diff --git a/AUTHORS b/AUTHORS
index d876644..1958d73 100644
--- a/AUTHORS
+++ b/AUTHORS
@@ -325,6 +325,7 @@
 Debadree Chatterjee <debadree333@gmail.com>
 Debashish Samantaray <d.samantaray@samsung.com>
 Debug Wang <debugwang@tencent.com>
+Deep Shah <deep.shah@samsung.com>
 Deepak Dilip Borade <deepak.db@samsung.com>
 Deepak Mittal <deepak.m1@samsung.com>
 Deepak Mohan <hop2deep@gmail.com>
diff --git a/DEPS b/DEPS
index 9a42c00..33f38f6c 100644
--- a/DEPS
+++ b/DEPS
@@ -318,7 +318,7 @@
   # 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': 'b2e96bd1a968ea6555610e6a6d725fa62fdc9527',
+  'v8_revision': '8a2d9bdb0c70c9b48113840278310a102c2f12ff',
   # Three lines of non-changing comments so that
   # the commit queue can handle CLs rolling ANGLE
   # and whatever else without interference from each other.
@@ -405,7 +405,7 @@
   # Three lines of non-changing comments so that
   # the commit queue can handle CLs rolling devtools-frontend
   # and whatever else without interference from each other.
-  'devtools_frontend_revision': '5f5101f3e0978b3e5ed60a5eb7732bbd8591e2c4',
+  'devtools_frontend_revision': '087d06b98e6fdd264fde7d16895a1c3cec4d0766',
   # Three lines of non-changing comments so that
   # the commit queue can handle CLs rolling libprotobuf-mutator
   # and whatever else without interference from each other.
@@ -445,7 +445,7 @@
   # Three lines of non-changing comments so that
   # the commit queue can handle CLs rolling feed
   # and whatever else without interference from each other.
-  'dawn_revision': '8bf090f5ff0db6275d26b4216e7fdcd3128b17d3',
+  'dawn_revision': 'dc5ac88f77bb62fe15111f355751055fd16e0c62',
   # Three lines of non-changing comments so that
   # the commit queue can handle CLs rolling feed
   # and whatever else without interference from each other.
@@ -465,7 +465,7 @@
   # Three lines of non-changing comments so that
   # the commit queue can handle CLs rolling libavif
   # and whatever else without interference from each other.
-  'libavif_revision': '3669d47e1f9f3ea5ab0e3a923b15fad185ac2209',
+  'libavif_revision': '0d4747af5b3f7b150c3838e6148c49a0bf0e0064',
   # Three lines of non-changing comments so that
   # the commit queue can handle CLs rolling libavifinfo
   # and whatever else without interference from each other.
@@ -501,7 +501,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.
-  'libunwind_revision':    '1f88fff745d19c33a35647987bfb5d0f070839a8',
+  'libunwind_revision':    'f2ca661b1da2215022b46d6e3f54c6c0aa09e457',
   # Three lines of non-changing comments so that
   # the commit queue can handle CLs rolling feed
   # and whatever else without interference from each other.
@@ -521,7 +521,7 @@
 
   # If you change this, also update the libc++ revision in
   # //buildtools/deps_revisions.gni.
-  'libcxx_revision':       '645470002f05eb47f5ec978559b1270e46ce3c72',
+  'libcxx_revision':       '26cbb86c20fea9562e31742a25f5577b724ab664',
 
   # GN CIPD package version.
   'gn_version': 'git_revision:991530ce394efb58fcd848195469022fa17ae126',
@@ -845,7 +845,7 @@
 
   'src/clank': {
     'url': Var('chrome_git') + '/clank/internal/apps.git' + '@' +
-    '19ddfe919551d9f121ba6a321c14bd9bb2e9b490',
+    '634fe7e05f59ab1a85a395b539490fe1aa85fef4',
     'condition': 'checkout_android and checkout_src_internal',
   },
 
@@ -1111,7 +1111,7 @@
       'packages': [
           {
                'package': 'chromium/third_party/android_build_tools/lint',
-               'version': 'l5GhbN0RAcpoaj1qIS43ZX7AYnLxdF-rZJ0ruGu_iWAC',
+               'version': '_HzBkAzPHHstN_PQaEGq4413D2VuwK7rqGfk8qD--SsC',
           },
       ],
       'condition': 'checkout_android',
@@ -1301,7 +1301,7 @@
     Var('chromium_git') + '/devtools/devtools-frontend' + '@' + Var('devtools_frontend_revision'),
 
   'src/third_party/devtools-frontend-internal': {
-      'url': Var('chrome_git') + '/devtools/devtools-internal.git' + '@' + 'cbf4670103207f1c95702aa364057cd9d5a7631b',
+      'url': Var('chrome_git') + '/devtools/devtools-internal.git' + '@' + 'c3526d66491c1c30fbb2b257ce94fbbb91474323',
     'condition': 'checkout_src_internal',
   },
 
@@ -1790,7 +1790,7 @@
     Var('pdfium_git') + '/pdfium.git' + '@' +  Var('pdfium_revision'),
 
   'src/third_party/perfetto':
-    Var('android_git') + '/platform/external/perfetto.git' + '@' + 'd0a7b97ca3f762396fcbcb419a0dcd20aaf687f7',
+    Var('android_git') + '/platform/external/perfetto.git' + '@' + '43ee4b90e33bcc0c9191d569b74e6f76585d314a',
 
   'src/third_party/perl': {
       'url': Var('chromium_git') + '/chromium/deps/perl.git' + '@' + '6f3e5028eb65d0b4c5fdd792106ac4c84eee1eb3',
@@ -1928,14 +1928,14 @@
       'packages': [
           {
               'package': 'chromium/third_party/turbine',
-              'version': 'NR31kJWll1NZz_scMvMPtPH_P3wOQ5aKBJ-n8XQ7QrYC',
+              'version': 'yCsGwOtj8SizFXXeS-xmdIaZ3PuyTsy8IJsp411p_uIC',
           },
       ],
       'condition': 'checkout_android',
       'dep_type': 'cipd',
   },
 
-  'src/third_party/vulkan-deps': '{chromium_git}/vulkan-deps@1a25722cff7e75641990d71e5a067e73f96a7289',
+  'src/third_party/vulkan-deps': '{chromium_git}/vulkan-deps@523a171d83b16ce440c21eb163149e5a10503ab8',
 
   'src/third_party/vulkan_memory_allocator':
     Var('chromium_git') + '/external/github.com/GPUOpen-LibrariesAndSDKs/VulkanMemoryAllocator.git' + '@' + 'e87036508bb156f9986ea959323de1869e328f58',
@@ -1972,10 +1972,10 @@
     Var('chromium_git') + '/external/khronosgroup/webgl.git' + '@' + 'f4bf599a8b575df685c31d9c4729a70a04e377ed',
 
   'src/third_party/webgpu-cts/src':
-    Var('chromium_git') + '/external/github.com/gpuweb/cts.git' + '@' + 'c2956655378dc2f27ba8e5b5f84cac1f73df3c45',
+    Var('chromium_git') + '/external/github.com/gpuweb/cts.git' + '@' + '0447990a43973392ca18aec8a0422f67e5b6776e',
 
   'src/third_party/webrtc':
-    Var('webrtc_git') + '/src.git' + '@' + 'd2f4cf9fd1f6dccb1fcce3b5973bc282987a2a0d',
+    Var('webrtc_git') + '/src.git' + '@' + '29d4a013bc90abdd78cffbe0a671d81a08010539',
 
   # 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.
@@ -2098,7 +2098,7 @@
     'packages': [
       {
         'package': 'chromeos_internal/apps/help_app/app',
-        'version': 'OJtZh6zzZmhaG9FnRMVEqM1Kml2FZ_R8LpqkLNOPUtIC',
+        'version': '9mz5D4-FpV3wg40b2gLSSHkNIGlo0QG_urINNgzHymIC',
       },
     ],
     'condition': 'checkout_chromeos and checkout_src_internal',
@@ -2142,7 +2142,7 @@
     'packages': [
       {
         'package': 'chromeos_internal/apps/projector_app/app',
-        'version': 'K7pfxk4Em_IUFU8oNBwPpr35iTESf7bhybolcUNquhgC',
+        'version': 'oi-98c8Ce52sJoVlsKixqw5bGE4NTlVQQ-izb_mEZ_4C',
       },
     ],
     'condition': 'checkout_chromeos and checkout_src_internal',
@@ -4269,7 +4269,7 @@
 
   'src/ios_internal':  {
       'url': Var('chrome_git') + '/chrome/ios_internal.git' + '@' +
-        '6a1c166da12cd7f4d3677c9dc05022ac97da2c52',
+        'b4ee1c0e0af715ddf8c0bf37925f6271c4b9a288',
       'condition': 'checkout_ios and checkout_src_internal',
   },
 
diff --git a/PRESUBMIT.py b/PRESUBMIT.py
index 1b7d56618..d30ce6f 100644
--- a/PRESUBMIT.py
+++ b/PRESUBMIT.py
@@ -1006,6 +1006,7 @@
       [
         # Needed to use QUICHE API.
         r'chrome/browser/ip_protection/.*',
+        r'services/network/web_transport.*',
         _THIRD_PARTY_EXCEPT_BLINK  # Not an error in third_party folders.
       ],
     ),
diff --git a/android_webview/browser/tracing/aw_tracing_delegate.cc b/android_webview/browser/tracing/aw_tracing_delegate.cc
index 1d382ff..f071f474 100644
--- a/android_webview/browser/tracing/aw_tracing_delegate.cc
+++ b/android_webview/browser/tracing/aw_tracing_delegate.cc
@@ -37,18 +37,29 @@
   registry->RegisterDictionaryPref(tracing::kBackgroundTracingSessionState);
 }
 
-bool AwTracingDelegate::IsAllowedToBeginBackgroundScenario(
-    const std::string& scenario_name,
-    bool requires_anonymized_data,
-    bool is_crash_scenario) {
+bool AwTracingDelegate::IsAllowedToStartScenario() const {
   // If the background tracing is specified on the command-line, we allow
   // any scenario to be traced and uploaded.
-  // TODO(crbug.com/1418116): Allow tracing scenarios when a local
-  // output is specified.
   if (IsBackgroundTracingCommandLine()) {
     return true;
   }
 
+  tracing::BackgroundTracingStateManager& state =
+      tracing::BackgroundTracingStateManager::GetInstance();
+
+  // Don't start a new trace if the previous trace did not end.
+  if (state.DidLastSessionEndUnexpectedly()) {
+    tracing::RecordDisallowedMetric(
+        tracing::TracingFinalizationDisallowedReason::
+            kLastTracingSessionDidNotEnd);
+    return false;
+  }
+
+  return true;
+}
+
+bool AwTracingDelegate::OnBackgroundTracingActive(
+    bool requires_anonymized_data) {
   // We call Initialize() only when a tracing scenario tries to start, and
   // unless this happens we never save state. In particular, if the background
   // tracing experiment is disabled, Initialize() will never be called, and we
@@ -62,49 +73,18 @@
       tracing::BackgroundTracingStateManager::GetInstance();
   state.Initialize(AwBrowserProcess::GetInstance()->local_state());
 
-  // Don't start a new trace if the previous trace did not end.
-  if (state.DidLastSessionEndUnexpectedly()) {
-    tracing::RecordDisallowedMetric(
-        tracing::TracingFinalizationDisallowedReason::
-            kLastTracingSessionDidNotEnd);
+  if (!IsAllowedToStartScenario()) {
     return false;
   }
 
-  // Check the trace limit both when starting and ending a scenario
-  // because there is no point starting a trace that can't be uploaded.
-  if (state.DidRecentlyUploadForScenario(scenario_name)) {
-    tracing::RecordDisallowedMetric(
-        tracing::TracingFinalizationDisallowedReason::kTraceUploadedRecently);
-    return false;
-  }
-
-  state.NotifyTracingStarted();
+  state.OnTracingStarted();
   return true;
 }
 
-bool AwTracingDelegate::IsAllowedToEndBackgroundScenario(
-    const std::string& scenario_name,
-    bool requires_anonymized_data,
-    bool is_crash_scenario) {
-  // If the background tracing is specified on the command-line, we allow
-  // any scenario to be traced and uploaded.
-  if (IsBackgroundTracingCommandLine()) {
-    return true;
-  }
-
+bool AwTracingDelegate::OnBackgroundTracingIdle(bool requires_anonymized_data) {
   tracing::BackgroundTracingStateManager& state =
       tracing::BackgroundTracingStateManager::GetInstance();
-  state.NotifyFinalizationStarted();
-
-  // Check the trace limit both when starting and ending a scenario
-  // because there is no point starting a trace that can't be uploaded.
-  if (state.DidRecentlyUploadForScenario(scenario_name)) {
-    tracing::RecordDisallowedMetric(
-        tracing::TracingFinalizationDisallowedReason::kTraceUploadedRecently);
-    return false;
-  }
-
-  state.OnScenarioUploaded(scenario_name);
+  state.OnTracingStopped();
   return true;
 }
 
diff --git a/android_webview/browser/tracing/aw_tracing_delegate.h b/android_webview/browser/tracing/aw_tracing_delegate.h
index c9fe585..8b37ebb 100644
--- a/android_webview/browser/tracing/aw_tracing_delegate.h
+++ b/android_webview/browser/tracing/aw_tracing_delegate.h
@@ -24,13 +24,12 @@
   static void RegisterPrefs(PrefRegistrySimple* registry);
 
   // content::TracingDelegate implementation:
-  bool IsAllowedToBeginBackgroundScenario(const std::string& scenario_name,
-                                          bool requires_anonymized_data,
-                                          bool is_crash_scenario) override;
-  bool IsAllowedToEndBackgroundScenario(const std::string& scenario_name,
-                                        bool requires_anonymized_data,
-                                        bool is_crash_scenario) override;
+  bool OnBackgroundTracingActive(bool requires_anonymized_data) override;
+  bool OnBackgroundTracingIdle(bool requires_anonymized_data) override;
   absl::optional<base::Value::Dict> GenerateMetadataDict() override;
+
+ private:
+  bool IsAllowedToStartScenario() const;
 };
 
 }  // namespace android_webview
diff --git a/android_webview/browser/tracing/aw_tracing_delegate_unittest.cc b/android_webview/browser/tracing/aw_tracing_delegate_unittest.cc
index 318b66f..8ca882ef 100644
--- a/android_webview/browser/tracing/aw_tracing_delegate_unittest.cc
+++ b/android_webview/browser/tracing/aw_tracing_delegate_unittest.cc
@@ -67,50 +67,21 @@
 }
 
 TEST_F(AwTracingDelegateTest, IsAllowedToBegin) {
-  auto config = CreateValidConfig();
-
-  EXPECT_TRUE(delegate_.IsAllowedToBeginBackgroundScenario(
-      config->scenario_name(), /*requires_anonymized_data=*/false,
-      /*is_crash_scenario=*/false));
-  EXPECT_TRUE(delegate_.IsAllowedToEndBackgroundScenario(
-      config->scenario_name(), /*requires_anonymized_data=*/false,
-      /*is_crash_scenario=*/false));
+  EXPECT_TRUE(delegate_.OnBackgroundTracingActive(
+      /*requires_anonymized_data=*/false));
+  EXPECT_TRUE(delegate_.OnBackgroundTracingIdle(
+      /*requires_anonymized_data=*/false));
 }
 
 TEST_F(AwTracingDelegateTest, IsAllowedToBeginSessionEndedUnexpectedly) {
   tracing::BackgroundTracingStateManager::GetInstance().SaveState(
-      {}, tracing::BackgroundTracingState::STARTED);
+      tracing::BackgroundTracingState::STARTED);
 
   base::Value dict(base::Value::Type::DICT);
   tracing::BackgroundTracingStateManager::GetInstance().Initialize(nullptr);
 
-  auto config = CreateValidConfig();
-
-  EXPECT_FALSE(delegate_.IsAllowedToBeginBackgroundScenario(
-      config->scenario_name(), /*requires_anonymized_data=*/false,
-      /*is_crash_scenario=*/false));
-}
-
-TEST_F(AwTracingDelegateTest, IsAllowedToBeginRecentlyUploaded) {
-  tracing::BackgroundTracingStateManager::GetInstance().Initialize(nullptr);
-  tracing::BackgroundTracingStateManager::GetInstance().OnScenarioUploaded(
-      "TestScenario");
-
-  auto config = CreateValidConfig();
-  EXPECT_FALSE(delegate_.IsAllowedToBeginBackgroundScenario(
-      config->scenario_name(), /*requires_anonymized_data=*/false,
-      /*is_crash_scenario=*/false));
-}
-
-TEST_F(AwTracingDelegateTest, IsAllowedToEndRecentlyUploaded) {
-  tracing::BackgroundTracingStateManager::GetInstance().Initialize(nullptr);
-  tracing::BackgroundTracingStateManager::GetInstance().OnScenarioUploaded(
-      "TestScenario");
-
-  auto config = CreateValidConfig();
-  EXPECT_FALSE(delegate_.IsAllowedToEndBackgroundScenario(
-      config->scenario_name(), /*requires_anonymized_data=*/false,
-      /*is_crash_scenario=*/false));
+  EXPECT_FALSE(delegate_.OnBackgroundTracingActive(
+      /*requires_anonymized_data=*/false));
 }
 
 }  // namespace android_webview
\ No newline at end of file
diff --git a/android_webview/java/src/org/chromium/android_webview/AwContents.java b/android_webview/java/src/org/chromium/android_webview/AwContents.java
index 45878bd..614eeda 100644
--- a/android_webview/java/src/org/chromium/android_webview/AwContents.java
+++ b/android_webview/java/src/org/chromium/android_webview/AwContents.java
@@ -1278,17 +1278,24 @@
 
     /**
      * For multi-profile public API. For internal access to the browser context,
-     * use the member variable {@link AwContents#mBrowserContext} directly.
+     * use the member variable {@link AwContents#mBrowserContext} directly. All Exception messages
+     * should be developer friendly and refer to the browser context as a "Profile".
+     *
+     * @throws IllegalStateException if the WebView has been destroyed via. {@link
+     *         AwContents#destroy()}.
      */
     @NonNull
     public AwBrowserContext getBrowserContext() {
+        if (isDestroyed(NO_WARN)) {
+            throw new IllegalStateException("Cannot get profile for destroyed WebView.");
+        }
         mBrowserContextAccessed = true;
         return mBrowserContext;
     }
 
     /**
      * For multi-profile public API. Sets a new browser context which will
-     * cause the web contents to reinitialize. All exception messages should
+     * cause the web contents to reinitialize. All Exception messages should
      * be developer friendly and refer to the browser context as a "Profile".
      *
      * @throws IllegalStateException if the WebView has been destroyed via. {@link
diff --git a/android_webview/javatests/src/org/chromium/android_webview/test/MultiProfileTest.java b/android_webview/javatests/src/org/chromium/android_webview/test/MultiProfileTest.java
index 305a251..1485935 100644
--- a/android_webview/javatests/src/org/chromium/android_webview/test/MultiProfileTest.java
+++ b/android_webview/javatests/src/org/chromium/android_webview/test/MultiProfileTest.java
@@ -12,6 +12,7 @@
 import androidx.test.filters.MediumTest;
 import androidx.test.filters.SmallTest;
 
+import org.junit.After;
 import org.junit.Assert;
 import org.junit.Rule;
 import org.junit.Test;
@@ -56,6 +57,11 @@
         });
     }
 
+    @After
+    public void tearDown() {
+        mActivityTestRule.tearDown();
+    }
+
     @Test
     @SmallTest
     @Feature({"AndroidWebView"})
@@ -303,6 +309,22 @@
     }
 
     @Test
+    @SmallTest
+    @OnlyRunIn(MULTI_PROCESS)
+    @Feature({"AndroidWebView"})
+    public void testGetBrowserContextThrowsExceptionIfWebViewDestroyed() throws Throwable {
+        mActivityTestRule.startBrowserProcess();
+        final AwBrowserContext myProfile = getContextSync("my-profile", true);
+        final AwContents awContents =
+                mActivityTestRule.createAwTestContainerViewOnMainSync(mContentsClient)
+                        .getAwContents();
+        setBrowserContextSync(awContents, myProfile);
+        awContents.destroy();
+        Assert.assertThrows("Cannot get profile for destroyed WebView.",
+                IllegalStateException.class, awContents::getBrowserContext);
+    }
+
+    @Test
     @LargeTest
     @OnlyRunIn(MULTI_PROCESS)
     @Feature({"AndroidWebView"})
diff --git a/android_webview/tools/system_webview_shell/lint-baseline.xml b/android_webview/tools/system_webview_shell/lint-baseline.xml
index b52f3099..f42a5a6 100644
--- a/android_webview/tools/system_webview_shell/lint-baseline.xml
+++ b/android_webview/tools/system_webview_shell/lint-baseline.xml
@@ -1,5 +1,5 @@
 <?xml version="1.0" encoding="UTF-8"?>
-<issues format="6" by="lint 8.3.0-alpha04" type="baseline" client="" dependencies="true" name="" variant="all" version="8.3.0-alpha04">
+<issues format="6" by="lint 8.3.0-alpha05" type="baseline" client="" dependencies="true" name="" variant="all" version="8.3.0-alpha05">
 
     <issue
         id="MissingClass"
diff --git a/ash/components/arc/session/arc_vm_client_adapter.cc b/ash/components/arc/session/arc_vm_client_adapter.cc
index b920777f..18e39bf 100644
--- a/ash/components/arc/session/arc_vm_client_adapter.cc
+++ b/ash/components/arc/session/arc_vm_client_adapter.cc
@@ -233,6 +233,20 @@
   return vm_memory_mb;
 }
 
+// Returns whether an LVM-provided disk should be used for virtio-blk /data.
+bool ShouldUseLvmApplicationContainerForVirtioBlkData() {
+  // Allow tests to override use_lvm param.
+  if (base::FeatureList::IsEnabled(kVirtioBlkDataConfigOverride)) {
+    return kVirtioBlkDataConfigUseLvm.Get();
+  }
+
+  // Use LVM backend if LVM application containers feature is supported and
+  // user cryptohome data is not ephemeral (b/278305150).
+  return base::FeatureList::IsEnabled(kLvmApplicationContainers) &&
+         !user_manager::UserManager::Get()->IsUserCryptohomeDataEphemeral(
+             arc::ArcServiceManager::Get()->account_id());
+}
+
 vm_tools::concierge::StartArcVmRequest CreateStartArcVmRequest(
     const std::string& user_id_hash,
     uint32_t cpus,
@@ -315,8 +329,14 @@
   if (data_disk_path) {
     disk_image->set_path(data_disk_path->value());
     disk_image->set_writable(true);
-    if (should_set_blocksize)
+    if (should_set_blocksize) {
       disk_image->set_block_size(kBlockSize);
+    }
+    // Set the O_DIRECT option only when the disk image is backed by LVM
+    // application container, because the option is invalidated on disk images
+    // in ext4 crypto.
+    disk_image->set_o_direct(
+        ShouldUseLvmApplicationContainerForVirtioBlkData());
   } else {
     // This should never be mounted as it's only mounted if
     // ro.boot.arcvm_virtio_blk_data=1 is set.
@@ -886,19 +906,7 @@
       return;
     }
 
-    // Use LVM backend if LVM application containers feature is supported and
-    // user cryptohome data is not ephemeral (b/278305150).
-    bool use_lvm =
-        base::FeatureList::IsEnabled(kLvmApplicationContainers) &&
-        !user_manager::UserManager::Get()->IsUserCryptohomeDataEphemeral(
-            arc::ArcServiceManager::Get()->account_id());
-
-    // Allow tests to override use_lvm param.
-    if (base::FeatureList::IsEnabled(kVirtioBlkDataConfigOverride)) {
-      use_lvm = kVirtioBlkDataConfigUseLvm.Get();
-    }
-
-    if (use_lvm) {
+    if (ShouldUseLvmApplicationContainerForVirtioBlkData()) {
       VLOG(2) << "Using virtio-blk with the LVM-provided disk for /data";
 
       // LVM disk name is generated by cryptohome::DmcryptVolumePrefix in
diff --git a/ash/components/arc/session/arc_vm_client_adapter_unittest.cc b/ash/components/arc/session/arc_vm_client_adapter_unittest.cc
index 8c6ee63c..d42d52b9 100644
--- a/ash/components/arc/session/arc_vm_client_adapter_unittest.cc
+++ b/ash/components/arc/session/arc_vm_client_adapter_unittest.cc
@@ -1639,11 +1639,19 @@
   EXPECT_EQ(GetTestConciergeClient()->create_disk_image_call_count(), 0);
 
   // StartArcVmRequest should contain the LVM-provided disk path.
+  const auto& req = GetTestConciergeClient()->start_arc_vm_request();
+  EXPECT_TRUE(req.enable_virtio_blk_data());
   const std::string expected_lvm_disk_path =
       base::StringPrintf("/dev/mapper/vm/dmcrypt-%s-arcvm",
                          std::string(kUserIdHash).substr(0, 8).c_str());
-  const auto& req = GetTestConciergeClient()->start_arc_vm_request();
-  EXPECT_TRUE(HasDiskImage(req, expected_lvm_disk_path));
+  const auto& disks = req.disks();
+  auto it =
+      base::ranges::find_if(disks, [&expected_lvm_disk_path](const auto& disk) {
+        return disk.path() == expected_lvm_disk_path;
+      });
+  EXPECT_NE(it, disks.end());
+  // O_DIRECT option should always be enabled on LVM-provided disk images.
+  EXPECT_TRUE(it->o_direct());
 }
 
 TEST_F(ArcVmClientAdapterTest, VirtioBlkForData_OverrideUseLvm) {
@@ -1664,12 +1672,19 @@
   EXPECT_EQ(GetTestConciergeClient()->create_disk_image_call_count(), 0);
 
   // StartArcVmRequest should contain the LVM-provided disk path.
+  const auto& req = GetTestConciergeClient()->start_arc_vm_request();
+  EXPECT_TRUE(req.enable_virtio_blk_data());
   const std::string expected_lvm_disk_path =
       base::StringPrintf("/dev/mapper/vm/dmcrypt-%s-arcvm",
                          std::string(kUserIdHash).substr(0, 8).c_str());
-  const auto& req = GetTestConciergeClient()->start_arc_vm_request();
-  EXPECT_TRUE(HasDiskImage(req, expected_lvm_disk_path));
-  EXPECT_TRUE(req.enable_virtio_blk_data());
+  const auto& disks = req.disks();
+  auto it =
+      base::ranges::find_if(disks, [&expected_lvm_disk_path](const auto& disk) {
+        return disk.path() == expected_lvm_disk_path;
+      });
+  EXPECT_NE(it, disks.end());
+  // O_DIRECT option should always be enabled on LVM-provided disk images.
+  EXPECT_TRUE(it->o_direct());
 }
 
 TEST_F(ArcVmClientAdapterTest, VirtioBlkForData_NoLvmForEphemeralCryptohome) {
diff --git a/ash/in_session_auth/authentication_dialog.cc b/ash/in_session_auth/authentication_dialog.cc
index a8305ce..cf6c918 100644
--- a/ash/in_session_auth/authentication_dialog.cc
+++ b/ash/in_session_auth/authentication_dialog.cc
@@ -161,12 +161,15 @@
 
   SetUIDisabled(true);
 
-  cryptohome::KeyLabel key_label;
+  const auto* password_factor =
+      user_context_->GetAuthFactorsData().FindAnyPasswordFactor();
+  if (!password_factor) {
+    LOG(ERROR) << "Could not find password key";
+    ShowAuthError();
+    return;
+  }
 
-  key_label = user_context_->GetAuthFactorsData()
-                  .FindOnlinePasswordFactor()
-                  ->ref()
-                  .label();
+  cryptohome::KeyLabel key_label = password_factor->ref().label();
 
   // Create a copy of `user_context_` so that we don't lose it to std::move
   // for future auth attempts
@@ -197,11 +200,7 @@
     LOG(ERROR) << "An error happened during the attempt to validate"
                   "the password: "
                << authentication_error.value().get_cryptohome_code();
-    password_field_->SetInvalid(true);
-    password_field_->SelectAll(false);
-    invalid_password_label_->SetText(
-        l10n_util::GetStringUTF16(IDS_ASH_LOGIN_ERROR_AUTHENTICATING));
-    SetUIDisabled(false);
+    ShowAuthError();
     return;
   }
 
@@ -217,6 +216,14 @@
   return;
 }
 
+void AuthenticationDialog::ShowAuthError() {
+  password_field_->SetInvalid(true);
+  password_field_->SelectAll(false);
+  invalid_password_label_->SetText(
+      l10n_util::GetStringUTF16(IDS_ASH_LOGIN_ERROR_AUTHENTICATING));
+  SetUIDisabled(false);
+}
+
 void AuthenticationDialog::CancelAuthAttempt() {
   // If dialog is closing after the submission of a valid auth factor,
   // we should not notify any parties, as they would have already been
diff --git a/ash/in_session_auth/authentication_dialog.h b/ash/in_session_auth/authentication_dialog.h
index 8d3d8ce..3675d3c 100644
--- a/ash/in_session_auth/authentication_dialog.h
+++ b/ash/in_session_auth/authentication_dialog.h
@@ -89,6 +89,9 @@
       std::unique_ptr<UserContext> user_context,
       absl::optional<AuthenticationError> cryptohome_error);
 
+  // Show an auth error in the UI and mark the password field as invalid.
+  void ShowAuthError();
+
   // Registered as a callback to the Cancel and Close buttons. Calls
   // `NotifyResult` with `success` == false.
   void CancelAuthAttempt();
diff --git a/base/profiler/native_unwinder_android_unittest.cc b/base/profiler/native_unwinder_android_unittest.cc
index 9de9a096..4a031f8 100644
--- a/base/profiler/native_unwinder_android_unittest.cc
+++ b/base/profiler/native_unwinder_android_unittest.cc
@@ -382,15 +382,13 @@
 }
 
 // Checks that java frames can be unwound through.
-TEST(NativeUnwinderAndroidTest, JavaFunction) {
+// Disabled, see: https://crbug.com/1076997
+TEST(NativeUnwinderAndroidTest, DISABLED_JavaFunction) {
   auto* build_info = base::android::BuildInfo::GetInstance();
-  const auto sdk_version = build_info->sdk_int();
-
-  // Skip this test on anything Android O or earlier, because Java unwinding
-  // fails on these.
-  if (sdk_version <= base::android::SDK_VERSION_OREO) {
-    GTEST_SKIP();
-  }
+  // Due to varying availability of compiled java unwind tables, unwinding is
+  // only expected to succeed on > SDK_VERSION_MARSHMALLOW.
+  bool can_always_unwind =
+      build_info->sdk_int() > base::android::SDK_VERSION_MARSHMALLOW;
 
   UnwindScenario scenario(base::BindRepeating(callWithJavaFunction));
 
@@ -409,7 +407,8 @@
                         ASSERT_TRUE(unwinder->CanUnwindFrom(sample->back()));
                         UnwindResult result = unwinder->TryUnwind(
                             thread_context, stack_top, sample);
-                        EXPECT_EQ(UnwindResult::kCompleted, result);
+                        if (can_always_unwind)
+                          EXPECT_EQ(UnwindResult::kCompleted, result);
                       }));
 
   // Check that all the modules are valid.
@@ -417,9 +416,11 @@
     EXPECT_NE(nullptr, frame.module);
 
   // The stack should contain a full unwind.
-  ExpectStackContains(sample, {scenario.GetWaitForSampleAddressRange(),
-                               scenario.GetSetupFunctionAddressRange(),
-                               scenario.GetOuterFunctionAddressRange()});
+  if (can_always_unwind) {
+    ExpectStackContains(sample, {scenario.GetWaitForSampleAddressRange(),
+                                 scenario.GetSetupFunctionAddressRange(),
+                                 scenario.GetOuterFunctionAddressRange()});
+  }
 }
 
 TEST(NativeUnwinderAndroidTest, UnwindStackMemoryTest) {
diff --git a/build/android/bytecode/java/org/chromium/bytecode/ByteCodeRewriter.java b/build/android/bytecode/java/org/chromium/bytecode/ByteCodeRewriter.java
index 6c7938ef7..b365cde 100644
--- a/build/android/bytecode/java/org/chromium/bytecode/ByteCodeRewriter.java
+++ b/build/android/bytecode/java/org/chromium/bytecode/ByteCodeRewriter.java
@@ -120,8 +120,8 @@
             byte[] classData = writer.toByteArray();
             outputStream.write(classData, 0, classData.length);
             return true;
-        } catch (IOException e) {
-            throw new RuntimeException(e);
+        } catch (Throwable e) {
+            throw new RuntimeException("Failed when processing " + entry.getName(), e);
         }
     }
 }
diff --git a/build/android/gyp/trace_event_bytecode_rewriter.py b/build/android/gyp/trace_event_bytecode_rewriter.py
index c8b250c..a38d06a 100755
--- a/build/android/gyp/trace_event_bytecode_rewriter.py
+++ b/build/android/gyp/trace_event_bytecode_rewriter.py
@@ -40,21 +40,23 @@
     if not os.path.exists(jar_dir):
       os.makedirs(jar_dir)
 
-  extra_inputs = set(args.classpath) - set(args.input_jars)
-  all_input_jars = args.input_jars + list(extra_inputs)
-  cmd = [args.script, ':'.join(all_input_jars), ':'.join(args.output_jars)]
+  cmd = [
+      args.script, '--classpath', ':'.join(args.classpath),
+      ':'.join(args.input_jars), ':'.join(args.output_jars)
+  ]
   if sum(len(x) for x in cmd) > _MAX_CMDLINE:
     # Cannot put --classpath in the args file because that is consumed by the
     # wrapper script.
     args_file = tempfile.NamedTemporaryFile(mode='w')
-    args_file.write('\n'.join(cmd[1:]))
+    args_file.write('\n'.join(cmd[3:]))
     args_file.flush()
-    cmd[1:] = ['@' + args_file.name]
+    cmd[3:] = ['@' + args_file.name]
 
   build_utils.CheckOutput(cmd, print_stdout=True)
 
   build_utils.Touch(args.stamp)
 
+  all_input_jars = args.input_jars + args.classpath
   action_helpers.write_depfile(args.depfile, args.stamp, inputs=all_input_jars)
 
 
diff --git a/build/config/android/rules.gni b/build/config/android/rules.gni
index c26419c4..cac756a 100644
--- a/build/config/android/rules.gni
+++ b/build/config/android/rules.gni
@@ -4711,8 +4711,6 @@
             "--script",
             rebase_path(_rewriter_path, root_build_dir),
             "--classpath",
-            "@FileArg($_rebased_build_config:deps_info:javac_full_classpath)",
-            "--classpath",
             "@FileArg($_rebased_build_config:android:sdk_jars)",
             "--input-jars",
             "@FileArg($_rebased_build_config:deps_info:device_classpath)",
diff --git a/buildtools/deps_revisions.gni b/buildtools/deps_revisions.gni
index 27bb298..df6bf33e 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 = "645470002f05eb47f5ec978559b1270e46ce3c72"
+  libcxx_revision = "26cbb86c20fea9562e31742a25f5577b724ab664"
 }
diff --git a/cc/base/devtools_instrumentation.cc b/cc/base/devtools_instrumentation.cc
index 5837f76..68a3db81 100644
--- a/cc/base/devtools_instrumentation.cc
+++ b/cc/base/devtools_instrumentation.cc
@@ -67,38 +67,6 @@
 ScopedImageUploadTask::~ScopedImageUploadTask() {
   TRACE_EVENT_END0(internal::CategoryName::kTimeline,
                    internal::kImageUploadTask);
-  if (suppress_metrics_)
-    return;
-
-  auto duration = base::TimeTicks::Now() - start_time_;
-  const char* histogram_name = nullptr;
-  switch (image_type_) {
-    case ImageType::kAvif:
-      histogram_name = "Renderer4.ImageUploadTaskDurationUs.Avif";
-      break;
-    case ImageType::kBmp:
-      histogram_name = "Renderer4.ImageUploadTaskDurationUs.Bmp";
-      break;
-    case ImageType::kGif:
-      histogram_name = "Renderer4.ImageUploadTaskDurationUs.Gif";
-      break;
-    case ImageType::kIco:
-      histogram_name = "Renderer4.ImageUploadTaskDurationUs.Ico";
-      break;
-    case ImageType::kJpeg:
-      histogram_name = "Renderer4.ImageUploadTaskDurationUs.Jpeg";
-      break;
-    case ImageType::kPng:
-      histogram_name = "Renderer4.ImageUploadTaskDurationUs.Png";
-      break;
-    case ImageType::kWebP:
-      histogram_name = "Renderer4.ImageUploadTaskDurationUs.WebP";
-      break;
-    case ImageType::kOther:
-      histogram_name = "Renderer4.ImageUploadTaskDurationUs.Other";
-  }
-  UmaHistogramCustomMicrosecondsTimes(histogram_name, duration, hist_min_,
-                                      hist_max_, bucket_count_);
 }
 
 ScopedImageDecodeTask::ScopedImageDecodeTask(const void* image_ptr,
diff --git a/cc/raster/one_copy_raster_buffer_provider.cc b/cc/raster/one_copy_raster_buffer_provider.cc
index 1d1ad9e..cbf2a3b 100644
--- a/cc/raster/one_copy_raster_buffer_provider.cc
+++ b/cc/raster/one_copy_raster_buffer_provider.cc
@@ -52,6 +52,10 @@
              "OneCopyRasterBufferPlaybackNormalThreadPriority",
              base::FEATURE_ENABLED_BY_DEFAULT);
 
+BASE_FEATURE(kAlwaysUseMappableSIForOneCopyRaster,
+             "AlwaysUseMappableSIForOneCopyRaster",
+             base::FEATURE_DISABLED_BY_DEFAULT);
+
 }  // namespace
 
 // Subclass for InUsePoolResource that holds ownership of a one-copy backing
@@ -337,6 +341,12 @@
     const RasterSource::PlaybackSettings& playback_settings,
     uint64_t previous_content_id,
     uint64_t new_content_id) {
+  is_shared_memory_ = false;
+  std::unique_ptr<gpu::SharedImageInterface::ScopedMapping> mapping;
+  gfx::GpuMemoryBuffer* buffer = nullptr;
+  void* memory = nullptr;
+  size_t stride = 0;
+
   gfx::Rect playback_rect = raster_full_rect;
   if (use_partial_raster_ && previous_content_id) {
     // Reduce playback rect to dirty region if the content id of the staging
@@ -348,46 +358,77 @@
 
   float full_rect_size = raster_full_rect.size().GetArea();
 
-  // Allocate GpuMemoryBuffer if necessary.
-  if (!staging_buffer->gpu_memory_buffer) {
-    staging_buffer->gpu_memory_buffer =
-        gpu_memory_buffer_manager_->CreateGpuMemoryBuffer(
-            staging_buffer->size,
-            viz::SinglePlaneSharedImageFormatToBufferFormat(format),
-            gfx::BufferUsage::GPU_READ_CPU_READ_WRITE, gpu::kNullSurfaceHandle,
-            shutdown_event_);
+  if (base::FeatureList::IsEnabled(kAlwaysUseMappableSIForOneCopyRaster)) {
+    CHECK(!staging_buffer->gpu_memory_buffer);
+
+    auto* sii = worker_context_provider_->SharedImageInterface();
+
+    // Allocate MappableSharedImage if necessary.
+    if (staging_buffer->mailbox.IsZero()) {
+      staging_buffer->mailbox = sii->CreateSharedImage(
+          format, staging_buffer->size, dst_color_space,
+          kTopLeft_GrSurfaceOrigin, kPremul_SkAlphaType,
+          gpu::SHARED_IMAGE_USAGE_CPU_WRITE, "OneCopyRasterStaging",
+          gpu::kNullSurfaceHandle, gfx::BufferUsage::GPU_READ_CPU_READ_WRITE);
+    }
+
+    mapping = sii->MapSharedImage(staging_buffer->mailbox);
+    if (!mapping) {
+      LOG(ERROR) << "MapSharedImage Failed.";
+      return false;
+    }
+    memory = mapping->Memory(0);
+    stride = mapping->Stride(0);
+    is_shared_memory_ = mapping->IsSharedMemory();
+  } else {
+    // Allocate GpuMemoryBuffer if necessary.
+    if (!staging_buffer->gpu_memory_buffer) {
+      staging_buffer->gpu_memory_buffer =
+          gpu_memory_buffer_manager_->CreateGpuMemoryBuffer(
+              staging_buffer->size,
+              viz::SinglePlaneSharedImageFormatToBufferFormat(format),
+              gfx::BufferUsage::GPU_READ_CPU_READ_WRITE,
+              gpu::kNullSurfaceHandle, shutdown_event_);
+    }
+
+    buffer = staging_buffer->gpu_memory_buffer.get();
+    if (!buffer) {
+      return false;
+    }
+
+    CHECK_EQ(1u, gfx::NumberOfPlanesForLinearBufferFormat(buffer->GetFormat()));
+    bool rv = buffer->Map();
+    CHECK(rv);
+    CHECK(buffer->memory(0));
+    // RasterBufferProvider::PlaybackToMemory only supports unsigned strides.
+    CHECK_GE(buffer->stride(0), 0);
+
+    // TODO(https://crbug.com/870663): Temporary diagnostics.
+    base::debug::Alias(&playback_rect);
+    base::debug::Alias(&full_rect_size);
+    base::debug::Alias(&rv);
+    void* buffer_memory = buffer->memory(0);
+    base::debug::Alias(&buffer_memory);
+    gfx::Size staging_buffer_size = staging_buffer->size;
+    base::debug::Alias(&staging_buffer_size);
+    gfx::Size buffer_size = buffer->GetSize();
+    base::debug::Alias(&buffer_size);
+
+    memory = buffer->memory(0);
+    stride = buffer->stride(0);
+    is_shared_memory_ =
+        buffer->GetType() == gfx::GpuMemoryBufferType::SHARED_MEMORY_BUFFER;
   }
 
-  if (!staging_buffer->gpu_memory_buffer) {
-    return false;
-  }
-
-  gfx::GpuMemoryBuffer* buffer = staging_buffer->gpu_memory_buffer.get();
-  CHECK_EQ(1u, gfx::NumberOfPlanesForLinearBufferFormat(buffer->GetFormat()));
-  bool rv = buffer->Map();
-  CHECK(rv);
-  CHECK(buffer->memory(0));
-  // RasterBufferProvider::PlaybackToMemory only supports unsigned strides.
-  CHECK_GE(buffer->stride(0), 0);
-
-  // TODO(https://crbug.com/870663): Temporary diagnostics.
-  base::debug::Alias(&playback_rect);
-  base::debug::Alias(&full_rect_size);
-  base::debug::Alias(&rv);
-  void* buffer_memory = buffer->memory(0);
-  base::debug::Alias(&buffer_memory);
-  gfx::Size staging_buffer_size = staging_buffer->size;
-  base::debug::Alias(&staging_buffer_size);
-  gfx::Size buffer_size = buffer->GetSize();
-  base::debug::Alias(&buffer_size);
-
   DCHECK(!playback_rect.IsEmpty())
       << "Why are we rastering a tile that's not dirty?";
   RasterBufferProvider::PlaybackToMemory(
-      buffer->memory(0), format, staging_buffer->size, buffer->stride(0),
-      raster_source, raster_full_rect, playback_rect, transform,
-      dst_color_space, /*gpu_compositing=*/true, playback_settings);
-  buffer->Unmap();
+      memory, format, staging_buffer->size, stride, raster_source,
+      raster_full_rect, playback_rect, transform, dst_color_space,
+      /*gpu_compositing=*/true, playback_settings);
+  base::FeatureList::IsEnabled(kAlwaysUseMappableSIForOneCopyRaster)
+      ? mapping.reset()
+      : buffer->Unmap();
   staging_buffer->content_id = new_content_id;
 
   return true;
@@ -407,7 +448,11 @@
   auto* sii = worker_context_provider_->SharedImageInterface();
   DCHECK(sii);
 
-  CHECK(staging_buffer->gpu_memory_buffer.get());
+  if (base::FeatureList::IsEnabled(kAlwaysUseMappableSIForOneCopyRaster)) {
+    CHECK(!staging_buffer->mailbox.IsZero());
+  } else {
+    CHECK(staging_buffer->gpu_memory_buffer.get());
+  }
 
   bool needs_clear = false;
 
@@ -460,10 +505,8 @@
   query_target = GL_COMMANDS_ISSUED_CHROMIUM;
 #endif
 
-  // COMMANDS_ISSUED is sufficient for shared memory GpuMemoryBuffers.
-  const auto* buffer = staging_buffer->gpu_memory_buffer.get();
-  if (buffer &&
-      buffer->GetType() == gfx::GpuMemoryBufferType::SHARED_MEMORY_BUFFER) {
+  // COMMANDS_ISSUED is sufficient for shared memory resources.
+  if (is_shared_memory_) {
     query_target = GL_COMMANDS_ISSUED_CHROMIUM;
   }
 
diff --git a/cc/raster/one_copy_raster_buffer_provider.h b/cc/raster/one_copy_raster_buffer_provider.h
index 978ef70..a187a37 100644
--- a/cc/raster/one_copy_raster_buffer_provider.h
+++ b/cc/raster/one_copy_raster_buffer_provider.h
@@ -172,6 +172,10 @@
   const bool tile_overlay_candidate_;
   const uint32_t tile_texture_target_;
 
+  // Whether the current data in the staging buffer came from a shared memory
+  // resource.
+  bool is_shared_memory_ = false;
+
   StagingBufferPool staging_pool_;
 };
 
diff --git a/cc/raster/zero_copy_raster_buffer_provider.cc b/cc/raster/zero_copy_raster_buffer_provider.cc
index 9284f9c..eef08c3b 100644
--- a/cc/raster/zero_copy_raster_buffer_provider.cc
+++ b/cc/raster/zero_copy_raster_buffer_provider.cc
@@ -9,6 +9,7 @@
 #include <algorithm>
 #include <utility>
 
+#include "base/feature_list.h"
 #include "base/memory/raw_ptr.h"
 #include "base/trace_event/process_memory_dump.h"
 #include "base/trace_event/trace_event.h"
@@ -29,6 +30,10 @@
 namespace cc {
 namespace {
 
+BASE_FEATURE(kAlwaysUseMappableSIForZeroCopyRaster,
+             "AlwaysUseMappableSIForZeroCopyRaster",
+             base::FEATURE_ENABLED_BY_DEFAULT);
+
 constexpr static auto kBufferUsage = gfx::BufferUsage::GPU_READ_CPU_READ_WRITE;
 
 // Subclass for InUsePoolResource that holds ownership of a zero-copy backing
@@ -49,10 +54,23 @@
       const base::trace_event::MemoryAllocatorDumpGuid& buffer_dump_guid,
       uint64_t tracing_process_id,
       int importance) const override {
-    if (!gpu_memory_buffer)
-      return;
-    gpu_memory_buffer->OnMemoryDump(pmd, buffer_dump_guid, tracing_process_id,
-                                    importance);
+    if (base::FeatureList::IsEnabled(kAlwaysUseMappableSIForZeroCopyRaster)) {
+      if (mailbox.IsZero()) {
+        return;
+      }
+      auto mapping = shared_image_interface->MapSharedImage(mailbox);
+      if (!mapping) {
+        return;
+      }
+      mapping->OnMemoryDump(pmd, buffer_dump_guid, tracing_process_id,
+                            importance);
+    } else {
+      if (!gpu_memory_buffer) {
+        return;
+      }
+      gpu_memory_buffer->OnMemoryDump(pmd, buffer_dump_guid, tracing_process_id,
+                                      importance);
+    }
   }
 
   // The SharedImageInterface used to clean up the shared image.
@@ -81,12 +99,20 @@
   ZeroCopyRasterBufferImpl(const ZeroCopyRasterBufferImpl&) = delete;
 
   ~ZeroCopyRasterBufferImpl() override {
-    // If GpuMemoryBuffer allocation failed (https://crbug.com/554541), then
-    // we don't have anything to give to the display compositor, so we report a
-    // zero mailbox that will result in checkerboarding.
-    if (!gpu_memory_buffer_) {
-      DCHECK(backing_->mailbox.IsZero());
-      return;
+    // If MapSharedImage() or GpuMemoryBuffer allocation failed
+    // (https://crbug.com/554541), then we don't have anything to give to the
+    // display compositor, so we report a zero mailbox that will result in
+    // checkerboarding.
+    if (base::FeatureList::IsEnabled(kAlwaysUseMappableSIForZeroCopyRaster)) {
+      CHECK(!gpu_memory_buffer_);
+      if (backing_->mailbox.IsZero()) {
+        return;
+      }
+    } else {
+      if (!gpu_memory_buffer_) {
+        DCHECK(backing_->mailbox.IsZero());
+        return;
+      }
     }
 
     // This is destroyed on the compositor thread when raster is complete, but
@@ -96,6 +122,8 @@
     // we need to do things in IsResourceReadyToDraw() and OrderingBarrier then?
     gpu::SharedImageInterface* sii = backing_->shared_image_interface;
     if (backing_->mailbox.IsZero()) {
+      CHECK(
+          !base::FeatureList::IsEnabled(kAlwaysUseMappableSIForZeroCopyRaster));
       uint32_t usage = gpu::SHARED_IMAGE_USAGE_DISPLAY_READ |
                        gpu::SHARED_IMAGE_USAGE_SCANOUT;
       // Make a mailbox for export of the GpuMemoryBuffer to the display
@@ -124,32 +152,68 @@
                 const GURL& url) override {
     TRACE_EVENT0("cc", "ZeroCopyRasterBuffer::Playback");
 
-    if (!gpu_memory_buffer_) {
-      gpu_memory_buffer_ = gpu_memory_buffer_manager_->CreateGpuMemoryBuffer(
-          resource_size_,
-          viz::SinglePlaneSharedImageFormatToBufferFormat(format_),
-          kBufferUsage, gpu::kNullSurfaceHandle, shutdown_event_);
-      // Note that GpuMemoryBuffer allocation can fail.
-      // https://crbug.com/554541
-      if (!gpu_memory_buffer_)
-        return;
-    }
+    std::unique_ptr<gpu::SharedImageInterface::ScopedMapping> mapping;
+    void* memory = nullptr;
+    size_t stride = 0;
 
-    CHECK_EQ(1u, gfx::NumberOfPlanesForLinearBufferFormat(
-                     gpu_memory_buffer_->GetFormat()));
-    bool rv = gpu_memory_buffer_->Map();
-    CHECK(rv);
-    CHECK(gpu_memory_buffer_->memory(0));
-    // RasterBufferProvider::PlaybackToMemory only supports unsigned strides.
-    CHECK_GE(gpu_memory_buffer_->stride(0), 0);
+    if (base::FeatureList::IsEnabled(kAlwaysUseMappableSIForZeroCopyRaster)) {
+      CHECK(!gpu_memory_buffer_);
+
+      gpu::SharedImageInterface* sii = backing_->shared_image_interface;
+
+      // Create a MappableSI if necessary.
+      if (backing_->mailbox.IsZero()) {
+        uint32_t usage = gpu::SHARED_IMAGE_USAGE_DISPLAY_READ |
+                         gpu::SHARED_IMAGE_USAGE_SCANOUT;
+        backing_->mailbox = sii->CreateSharedImage(
+            format_, resource_size_, resource_color_space_,
+            kTopLeft_GrSurfaceOrigin, kPremul_SkAlphaType, usage,
+            "ZeroCopyRasterTile", gpu::kNullSurfaceHandle, kBufferUsage);
+      }
+
+      mapping = sii->MapSharedImage(backing_->mailbox);
+      if (!mapping) {
+        LOG(ERROR) << "MapSharedImage Failed.";
+        sii->DestroySharedImage(gpu::SyncToken(), backing_->mailbox);
+        backing_->mailbox.SetZero();
+        return;
+      }
+      memory = mapping->Memory(0);
+      stride = mapping->Stride(0);
+    } else {
+      if (!gpu_memory_buffer_) {
+        gpu_memory_buffer_ = gpu_memory_buffer_manager_->CreateGpuMemoryBuffer(
+            resource_size_,
+            viz::SinglePlaneSharedImageFormatToBufferFormat(format_),
+            kBufferUsage, gpu::kNullSurfaceHandle, shutdown_event_);
+        // Note that GpuMemoryBuffer allocation can fail.
+        // https://crbug.com/554541
+        if (!gpu_memory_buffer_) {
+          return;
+        }
+      }
+
+      CHECK_EQ(1u, gfx::NumberOfPlanesForLinearBufferFormat(
+                       gpu_memory_buffer_->GetFormat()));
+      bool rv = gpu_memory_buffer_->Map();
+      CHECK(rv);
+      CHECK(gpu_memory_buffer_->memory(0));
+      // RasterBufferProvider::PlaybackToMemory only supports unsigned strides.
+      CHECK_GE(gpu_memory_buffer_->stride(0), 0);
+
+      memory = gpu_memory_buffer_->memory(0);
+      stride = gpu_memory_buffer_->stride(0);
+    }
 
     // TODO(danakj): Implement partial raster with raster_dirty_rect.
     RasterBufferProvider::PlaybackToMemory(
-        gpu_memory_buffer_->memory(0), format_, resource_size_,
-        gpu_memory_buffer_->stride(0), raster_source, raster_full_rect,
-        raster_full_rect, transform, resource_color_space_,
+        memory, format_, resource_size_, stride, raster_source,
+        raster_full_rect, raster_full_rect, transform, resource_color_space_,
         /*gpu_compositing=*/true, playback_settings);
-    gpu_memory_buffer_->Unmap();
+
+    base::FeatureList::IsEnabled(kAlwaysUseMappableSIForZeroCopyRaster)
+        ? mapping.reset()
+        : gpu_memory_buffer_->Unmap();
   }
 
   bool SupportsBackgroundThreadPriority() const override { return true; }
diff --git a/cc/trees/layer_tree_host_pixeltest_masks.cc b/cc/trees/layer_tree_host_pixeltest_masks.cc
index c3b5a8d..3b723a0 100644
--- a/cc/trees/layer_tree_host_pixeltest_masks.cc
+++ b/cc/trees/layer_tree_host_pixeltest_masks.cc
@@ -37,7 +37,11 @@
 #endif  // BUILDFLAG(ENABLE_GL_BACKEND_TESTS)
 #if BUILDFLAG(ENABLE_VULKAN_BACKEND_TESTS)
     {viz::RendererType::kSkiaVk, TestRasterType::kGpu},
+#if !BUILDFLAG(IS_FUCHSIA)
+    // TODO(crbug.com/1485883): Fix NativePixmap creation when running GPU
+    // service in process and re-enable these tests.
     {viz::RendererType::kSkiaVk, TestRasterType::kZeroCopy},
+#endif
 #endif  // BUILDFLAG(ENABLE_VULKAN_BACKEND_TESTS)
 };
 
@@ -875,9 +879,13 @@
                    kUseAntialiasing | kForceShaders},
 #endif  // BUILDFLAG(ENABLE_GL_BACKEND_TESTS)
 #if BUILDFLAG(ENABLE_VULKAN_BACKEND_TESTS)
+#if !BUILDFLAG(IS_FUCHSIA)
+    // TODO(crbug.com/1485883): Fix NativePixmap creation when running GPU
+    // service in process and re-enable these tests.
     MaskTestConfig{{viz::RendererType::kSkiaVk, TestRasterType::kZeroCopy}, 0},
     MaskTestConfig{{viz::RendererType::kSkiaVk, TestRasterType::kZeroCopy},
                    kUseAntialiasing},
+#endif
 #endif  // BUILDFLAG(ENABLE_VULKAN_BACKEND_TESTS)
 };
 
diff --git a/chrome/VERSION b/chrome/VERSION
index 009eed06..f18b288 100644
--- a/chrome/VERSION
+++ b/chrome/VERSION
@@ -1,4 +1,4 @@
 MAJOR=119
 MINOR=0
-BUILD=6030
+BUILD=6031
 PATCH=0
diff --git a/chrome/android/expectations/lint-baseline.xml b/chrome/android/expectations/lint-baseline.xml
index f5bd68c2..517c951 100644
--- a/chrome/android/expectations/lint-baseline.xml
+++ b/chrome/android/expectations/lint-baseline.xml
@@ -1,5 +1,5 @@
 <?xml version="1.0" encoding="UTF-8"?>
-<issues format="6" by="lint 8.3.0-alpha04" type="baseline" client="" dependencies="true" name="" variant="all" version="8.3.0-alpha04">
+<issues format="6" by="lint 8.3.0-alpha05" type="baseline" client="" dependencies="true" name="" variant="all" version="8.3.0-alpha05">
 
     <issue
         id="ResourceType"
@@ -69,6 +69,215 @@
 
     <issue
         id="NewApi"
+        message="Class requires API level 30 (current min is 24): `Natives`"
+        errorLine1="  private static AnrCollector.Natives testInstance;"
+        errorLine2="                 ~~~~~~~~~~~~~~~~~~~~">
+        <location
+            file="gen/chrome/android/monochrome_public_bundle__lint/SRCJARS/gen/components/crash/android/anr_collector_jni_headers/org/chromium/components/crash/anr/AnrCollectorJni.java"
+            line="38"
+            column="18"/>
+    </issue>
+
+    <issue
+        id="NewApi"
+        message="Class requires API level 30 (current min is 24): `Natives`"
+        errorLine1="    public void setInstanceForTesting(AnrCollector.Natives instance) {"
+        errorLine2="                                      ~~~~~~~~~~~~~~~~~~~~">
+        <location
+            file="gen/chrome/android/monochrome_public_bundle__lint/SRCJARS/gen/components/crash/android/anr_collector_jni_headers/org/chromium/components/crash/anr/AnrCollectorJni.java"
+            line="43"
+            column="39"/>
+    </issue>
+
+    <issue
+        id="NewApi"
+        message="Class requires API level 26 (current min is 24): `Natives`"
+        errorLine1="  private static AutofillProvider.Natives testInstance;"
+        errorLine2="                 ~~~~~~~~~~~~~~~~~~~~~~~~">
+        <location
+            file="gen/chrome/android/monochrome_public_bundle__lint/SRCJARS/gen/components/android_autofill/browser/jni_headers/org/chromium/components/autofill/AutofillProviderJni.java"
+            line="42"
+            column="18"/>
+    </issue>
+
+    <issue
+        id="NewApi"
+        message="Class requires API level 26 (current min is 24): `Natives`"
+        errorLine1="    public void setInstanceForTesting(AutofillProvider.Natives instance) {"
+        errorLine2="                                      ~~~~~~~~~~~~~~~~~~~~~~~~">
+        <location
+            file="gen/chrome/android/monochrome_public_bundle__lint/SRCJARS/gen/components/android_autofill/browser/jni_headers/org/chromium/components/autofill/AutofillProviderJni.java"
+            line="47"
+            column="39"/>
+    </issue>
+
+    <issue
+        id="NewApi"
+        message="Class requires API level 26 (current min is 24): `AutofillProvider`"
+        errorLine1="  public void init(AutofillProvider caller, WebContents webContents) {"
+        errorLine2="                   ~~~~~~~~~~~~~~~~">
+        <location
+            file="gen/chrome/android/monochrome_public_bundle__lint/SRCJARS/gen/components/android_autofill/browser/jni_headers/org/chromium/components/autofill/AutofillProviderJni.java"
+            line="62"
+            column="20"/>
+    </issue>
+
+    <issue
+        id="NewApi"
+        message="Class requires API level 26 (current min is 24): `AutofillProvider`"
+        errorLine1="  public void onAcceptDataListSuggestion(long nativeAutofillProviderAndroidBridgeImpl, AutofillProvider caller, String value) {"
+        errorLine2="                                                                                       ~~~~~~~~~~~~~~~~">
+        <location
+            file="gen/chrome/android/monochrome_public_bundle__lint/SRCJARS/gen/components/android_autofill/browser/jni_headers/org/chromium/components/autofill/AutofillProviderJni.java"
+            line="67"
+            column="88"/>
+    </issue>
+
+    <issue
+        id="NewApi"
+        message="Class requires API level 26 (current min is 24): `AutofillProvider`"
+        errorLine1="  public void onAutofillAvailable(long nativeAutofillProviderAndroidBridgeImpl, AutofillProvider caller) {"
+        errorLine2="                                                                                ~~~~~~~~~~~~~~~~">
+        <location
+            file="gen/chrome/android/monochrome_public_bundle__lint/SRCJARS/gen/components/android_autofill/browser/jni_headers/org/chromium/components/autofill/AutofillProviderJni.java"
+            line="72"
+            column="81"/>
+    </issue>
+
+    <issue
+        id="NewApi"
+        message="Class requires API level 26 (current min is 24): `AutofillProvider`"
+        errorLine1="  public void setAnchorViewRect(long nativeAutofillProviderAndroidBridgeImpl, AutofillProvider caller, View anchorView, float x, float y, float width, float height) {"
+        errorLine2="                                                                              ~~~~~~~~~~~~~~~~">
+        <location
+            file="gen/chrome/android/monochrome_public_bundle__lint/SRCJARS/gen/components/android_autofill/browser/jni_headers/org/chromium/components/autofill/AutofillProviderJni.java"
+            line="77"
+            column="79"/>
+    </issue>
+
+    <issue
+        id="NewApi"
+        message="Class requires API level 26 (current min is 24): `AutofillProvider`"
+        errorLine1="    private final AutofillProvider mAutofillProvider;"
+        errorLine2="                  ~~~~~~~~~~~~~~~~">
+        <location
+            file="../../components/android_autofill/browser/java/src/org/chromium/components/autofill/AutofillSelectionMenuItemProvider.java"
+            line="23"
+            column="19"/>
+    </issue>
+
+    <issue
+        id="NewApi"
+        message="Class requires API level 26 (current min is 24): `AutofillProvider`"
+        errorLine1="    public AutofillSelectionMenuItemProvider(Context context, AutofillProvider autofillProvider) {"
+        errorLine2="                                                              ~~~~~~~~~~~~~~~~">
+        <location
+            file="../../components/android_autofill/browser/java/src/org/chromium/components/autofill/AutofillSelectionMenuItemProvider.java"
+            line="28"
+            column="63"/>
+    </issue>
+
+    <issue
+        id="NewApi"
+        message="Class requires API level 26 (current min is 24): `AutofillProvider`"
+        errorLine1="    private AutofillProvider mAutofillProvider;"
+        errorLine2="            ~~~~~~~~~~~~~~~~">
+        <location
+            file="../../android_webview/java/src/org/chromium/android_webview/AwContents.java"
+            line="501"
+            column="13"/>
+    </issue>
+
+    <issue
+        id="NewApi"
+        message="Class requires API level 28 (current min is 24): `AwDisplayCutoutController`"
+        errorLine1="    private AwDisplayCutoutController mDisplayCutoutController;"
+        errorLine2="            ~~~~~~~~~~~~~~~~~~~~~~~~~">
+        <location
+            file="../../android_webview/java/src/org/chromium/android_webview/AwContents.java"
+            line="520"
+            column="13"/>
+    </issue>
+
+    <issue
+        id="NewApi"
+        message="Class requires API level 28 (current min is 24): `Natives`"
+        errorLine1="  private static AwPacProcessor.Natives testInstance;"
+        errorLine2="                 ~~~~~~~~~~~~~~~~~~~~~~">
+        <location
+            file="gen/chrome/android/monochrome_public_bundle__lint/SRCJARS/gen/android_webview/browser_jni_headers/org/chromium/android_webview/AwPacProcessorJni.java"
+            line="26"
+            column="18"/>
+    </issue>
+
+    <issue
+        id="NewApi"
+        message="Class requires API level 28 (current min is 24): `Natives`"
+        errorLine1="    public void setInstanceForTesting(AwPacProcessor.Natives instance) {"
+        errorLine2="                                      ~~~~~~~~~~~~~~~~~~~~~~">
+        <location
+            file="gen/chrome/android/monochrome_public_bundle__lint/SRCJARS/gen/android_webview/browser_jni_headers/org/chromium/android_webview/AwPacProcessorJni.java"
+            line="31"
+            column="39"/>
+    </issue>
+
+    <issue
+        id="NewApi"
+        message="Class requires API level 28 (current min is 24): `AwPacProcessor`"
+        errorLine1="  public void destroyNative(long nativeAwPacProcessor, AwPacProcessor caller) {"
+        errorLine2="                                                       ~~~~~~~~~~~~~~">
+        <location
+            file="gen/chrome/android/monochrome_public_bundle__lint/SRCJARS/gen/android_webview/browser_jni_headers/org/chromium/android_webview/AwPacProcessorJni.java"
+            line="46"
+            column="56"/>
+    </issue>
+
+    <issue
+        id="NewApi"
+        message="Class requires API level 28 (current min is 24): `AwPacProcessor`"
+        errorLine1="  public String makeProxyRequest(long nativeAwPacProcessor, AwPacProcessor caller, String url) {"
+        errorLine2="                                                            ~~~~~~~~~~~~~~">
+        <location
+            file="gen/chrome/android/monochrome_public_bundle__lint/SRCJARS/gen/android_webview/browser_jni_headers/org/chromium/android_webview/AwPacProcessorJni.java"
+            line="56"
+            column="61"/>
+    </issue>
+
+    <issue
+        id="NewApi"
+        message="Class requires API level 28 (current min is 24): `AwPacProcessor`"
+        errorLine1="  public boolean setProxyScript(long nativeAwPacProcessor, AwPacProcessor caller, String script) {"
+        errorLine2="                                                           ~~~~~~~~~~~~~~">
+        <location
+            file="gen/chrome/android/monochrome_public_bundle__lint/SRCJARS/gen/android_webview/browser_jni_headers/org/chromium/android_webview/AwPacProcessorJni.java"
+            line="66"
+            column="60"/>
+    </issue>
+
+    <issue
+        id="NewApi"
+        message="Class requires API level 26 (current min is 24): `ChannelsInitializer`"
+        errorLine1="    private final ChannelsInitializer mChannelsInitializer;"
+        errorLine2="                  ~~~~~~~~~~~~~~~~~~~">
+        <location
+            file="../../chrome/browser/notifications/android/java/src/org/chromium/chrome/browser/notifications/channels/ChannelsUpdater.java"
+            line="23"
+            column="19"/>
+    </issue>
+
+    <issue
+        id="NewApi"
+        message="Class requires API level 26 (current min is 24): `ChannelsInitializer`"
+        errorLine1="            ChannelsInitializer channelsInitializer, int channelsVersion) {"
+        errorLine2="            ~~~~~~~~~~~~~~~~~~~">
+        <location
+            file="../../chrome/browser/notifications/android/java/src/org/chromium/chrome/browser/notifications/channels/ChannelsUpdater.java"
+            line="55"
+            column="13"/>
+    </issue>
+
+    <issue
+        id="NewApi"
         message="Call requires API level 26 (current min is 24): `deleteLegacyChannels`"
         errorLine1="            mChannelsInitializer.deleteLegacyChannels();"
         errorLine2="                                 ~~~~~~~~~~~~~~~~~~~~">
@@ -102,6 +311,17 @@
 
     <issue
         id="NewApi"
+        message="Class requires API level 26 (current min is 24): `FullscreenVideoPictureInPictureController`"
+        errorLine1="    private FullscreenVideoPictureInPictureController mFullscreenVideoPictureInPictureController;"
+        errorLine2="            ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~">
+        <location
+            file="../../chrome/android/java/src/org/chromium/chrome/browser/app/ChromeActivity.java"
+            line="316"
+            column="13"/>
+    </issue>
+
+    <issue
+        id="NewApi"
         message="Call requires API level 26 (current min is 24): `onFrameworkExitedPictureInPicture`"
         errorLine1="            mFullscreenVideoPictureInPictureController.onFrameworkExitedPictureInPicture();"
         errorLine2="                                                       ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~">
@@ -157,6 +377,17 @@
 
     <issue
         id="NewApi"
+        message="Class requires API level 26 (current min is 24): `ChannelsInitializer`"
+        errorLine1="            ChannelsInitializer channelsInitializer, NotificationMetadata metadata) {"
+        errorLine2="            ~~~~~~~~~~~~~~~~~~~">
+        <location
+            file="../../chrome/browser/notifications/android/java/src/org/chromium/chrome/browser/notifications/ChromeNotificationWrapperCompatBuilder.java"
+            line="24"
+            column="13"/>
+    </issue>
+
+    <issue
+        id="NewApi"
         message="Call requires API level 26 (current min is 24): `getChannelIdForOrigin`"
         errorLine1="        return SiteChannelsManager.getInstance().getChannelIdForOrigin(origin);"
         errorLine2="                                                 ~~~~~~~~~~~~~~~~~~~~~">
@@ -184,7 +415,7 @@
         errorLine2="                    ~~~~~~~~~~~~~~~~~~~~~~~~">
         <location
             file="../../chrome/android/java/src/org/chromium/chrome/browser/ChromeTabbedActivity.java"
-            line="1600"
+            line="1601"
             column="21"/>
     </issue>
 
@@ -195,7 +426,7 @@
         errorLine2="                        ~~~~~~~~~~~~~~~~~~~~~~~~">
         <location
             file="../../chrome/android/java/src/org/chromium/chrome/browser/ChromeTabbedActivity.java"
-            line="1640"
+            line="1641"
             column="25"/>
     </issue>
 
@@ -206,7 +437,7 @@
         errorLine2="            ~~~~~~~~~~~~~~~~~~~~~~~~">
         <location
             file="../../chrome/android/java/src/org/chromium/chrome/browser/ChromeTabbedActivity.java"
-            line="2181"
+            line="2182"
             column="13"/>
     </issue>
 
@@ -217,12 +448,23 @@
         errorLine2="                ~~~~~~~~~~~~~~~~~~~~~~~~">
         <location
             file="../../chrome/android/java/src/org/chromium/chrome/browser/ChromeTabbedActivity.java"
-            line="2196"
+            line="2197"
             column="17"/>
     </issue>
 
     <issue
         id="NewApi"
+        message="Class requires API level 29 (current min is 24): `PlatformContentCaptureController`"
+        errorLine1="        PlatformContentCaptureController contentCaptureController ="
+        errorLine2="        ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~">
+        <location
+            file="../../chrome/android/java/src/org/chromium/chrome/browser/content_capture/ContentCaptureHistoryDeletionObserver.java"
+            line="24"
+            column="9"/>
+    </issue>
+
+    <issue
+        id="NewApi"
         message="Call requires API level 29 (current min is 24): `clearAllContentCaptureData`"
         errorLine1="            contentCaptureController.clearAllContentCaptureData();"
         errorLine2="                                     ~~~~~~~~~~~~~~~~~~~~~~~~~~">
@@ -245,6 +487,28 @@
 
     <issue
         id="NewApi"
+        message="Class requires API level 29 (current min is 24): `PlatformSession`"
+        errorLine1="            PlatformSession platformSession) {"
+        errorLine2="            ~~~~~~~~~~~~~~~">
+        <location
+            file="../../components/content_capture/android/java/src/org/chromium/components/content_capture/ContentCapturedTask.java"
+            line="16"
+            column="13"/>
+    </issue>
+
+    <issue
+        id="NewApi"
+        message="Class requires API level 29 (current min is 24): `PlatformSessionData`"
+        errorLine1="            PlatformSessionData parentPlatformSessionData, ContentCaptureDataBase data) {"
+        errorLine2="            ~~~~~~~~~~~~~~~~~~~">
+        <location
+            file="../../components/content_capture/android/java/src/org/chromium/components/content_capture/ContentCapturedTask.java"
+            line="22"
+            column="13"/>
+    </issue>
+
+    <issue
+        id="NewApi"
         message="Call requires API level 29 (current min is 24): `notifyViewAppeared`"
         errorLine1="        return notifyViewAppeared(parentPlatformSessionData, data);"
         errorLine2="               ~~~~~~~~~~~~~~~~~~">
@@ -267,6 +531,17 @@
 
     <issue
         id="NewApi"
+        message="Class requires API level 29 (current min is 24): `PlatformSession`"
+        errorLine1="            FrameSession session, long[] removedIds, PlatformSession platformSession) {"
+        errorLine2="                                                     ~~~~~~~~~~~~~~~">
+        <location
+            file="../../components/content_capture/android/java/src/org/chromium/components/content_capture/ContentRemovedTask.java"
+            line="16"
+            column="54"/>
+    </issue>
+
+    <issue
+        id="NewApi"
         message="Call requires API level 29 (current min is 24): `NotificationTask`"
         errorLine1="        super(session, platformSession);"
         errorLine2="        ~~~~~">
@@ -300,6 +575,17 @@
 
     <issue
         id="NewApi"
+        message="Class requires API level 29 (current min is 24): `PlatformSessionData`"
+        errorLine1="        PlatformSessionData platformSessionData = buildCurrentSession();"
+        errorLine2="        ~~~~~~~~~~~~~~~~~~~">
+        <location
+            file="../../components/content_capture/android/java/src/org/chromium/components/content_capture/ContentRemovedTask.java"
+            line="28"
+            column="9"/>
+    </issue>
+
+    <issue
+        id="NewApi"
         message="Call requires API level 29 (current min is 24): `getInstance`"
         errorLine1="        PlatformAPIWrapper.getInstance().notifyViewsDisappeared("
         errorLine2="                           ~~~~~~~~~~~">
@@ -366,6 +652,39 @@
 
     <issue
         id="NewApi"
+        message="Class requires API level 29 (current min is 24): `PlatformSession`"
+        errorLine1="            PlatformSession platformSession) {"
+        errorLine2="            ~~~~~~~~~~~~~~~">
+        <location
+            file="../../components/content_capture/android/java/src/org/chromium/components/content_capture/ContentUpdateTask.java"
+            line="16"
+            column="13"/>
+    </issue>
+
+    <issue
+        id="NewApi"
+        message="Class requires API level 29 (current min is 24): `PlatformSessionData`"
+        errorLine1="            PlatformSessionData parentPlatformSessionData, ContentCaptureDataBase data) {"
+        errorLine2="            ~~~~~~~~~~~~~~~~~~~">
+        <location
+            file="../../components/content_capture/android/java/src/org/chromium/components/content_capture/ContentUpdateTask.java"
+            line="22"
+            column="13"/>
+    </issue>
+
+    <issue
+        id="NewApi"
+        message="Class requires API level 29 (current min is 24): `PlatformSessionData`"
+        errorLine1="            PlatformSessionData parentPlatformSessionData, ContentCaptureData data) {"
+        errorLine2="            ~~~~~~~~~~~~~~~~~~~">
+        <location
+            file="../../components/content_capture/android/java/src/org/chromium/components/content_capture/ContentUpdateTask.java"
+            line="27"
+            column="13"/>
+    </issue>
+
+    <issue
+        id="NewApi"
         message="Call requires API level 29 (current min is 24): `getInstance`"
         errorLine1="        AutofillId autofillId = PlatformAPIWrapper.getInstance().newAutofillId("
         errorLine2="                                                   ~~~~~~~~~~~">
@@ -476,6 +795,17 @@
 
     <issue
         id="NewApi"
+        message="Class requires API level 29 (current min is 24): `DirectActionReporter`"
+        errorLine1="    void reportAvailableDirectActions(DirectActionReporter reporter);"
+        errorLine2="                                      ~~~~~~~~~~~~~~~~~~~~">
+        <location
+            file="../../chrome/android/java/src/org/chromium/chrome/browser/directactions/DirectActionHandler.java"
+            line="19"
+            column="39"/>
+    </issue>
+
+    <issue
+        id="NewApi"
         message="Call requires API level 34 (current min is 24): `logGestureType`"
         errorLine1="                StylusGestureConverter.logGestureType("
         errorLine2="                                       ~~~~~~~~~~~~~~">
@@ -564,6 +894,17 @@
 
     <issue
         id="NewApi"
+        message="Class requires API level 29 (current min is 24): `PlatformSession`"
+        errorLine1="    public FaviconUpdateTask(FrameSession session, PlatformSession platformSession) {"
+        errorLine2="                                                   ~~~~~~~~~~~~~~~">
+        <location
+            file="../../components/content_capture/android/java/src/org/chromium/components/content_capture/FaviconUpdateTask.java"
+            line="13"
+            column="52"/>
+    </issue>
+
+    <issue
+        id="NewApi"
         message="Call requires API level 29 (current min is 24): `NotificationTask`"
         errorLine1="        super(session, platformSession);"
         errorLine2="        ~~~~~">
@@ -597,6 +938,17 @@
 
     <issue
         id="NewApi"
+        message="Class requires API level 29 (current min is 24): `PlatformSessionData`"
+        errorLine1="        PlatformSessionData parentPlatformSessionData = buildCurrentSession();"
+        errorLine2="        ~~~~~~~~~~~~~~~~~~~">
+        <location
+            file="../../components/content_capture/android/java/src/org/chromium/components/content_capture/FaviconUpdateTask.java"
+            line="24"
+            column="9"/>
+    </issue>
+
+    <issue
+        id="NewApi"
         message="Call requires API level 29 (current min is 24): `getInstance`"
         errorLine1="        PlatformAPIWrapper.getInstance().notifyFaviconUpdated("
         errorLine2="                           ~~~~~~~~~~~">
@@ -641,6 +993,17 @@
 
     <issue
         id="NewApi"
+        message="Class requires API level 29 (current min is 24): `DirectActionReporter`"
+        errorLine1="    public final void reportAvailableDirectActions(DirectActionReporter reporter) {"
+        errorLine2="                                                   ~~~~~~~~~~~~~~~~~~~~">
+        <location
+            file="../../chrome/android/java/src/org/chromium/chrome/browser/directactions/FindInPageDirectActionHandler.java"
+            line="33"
+            column="52"/>
+    </issue>
+
+    <issue
+        id="NewApi"
         message="Call requires API level 29 (current min is 24): `addDirectAction`"
         errorLine1="            reporter.addDirectAction(ACTION_ID).withParameter("
         errorLine2="                     ~~~~~~~~~~~~~~~">
@@ -696,6 +1059,39 @@
 
     <issue
         id="NewApi"
+        message="Class requires API level 33 (current min is 24): `Natives`"
+        errorLine1="  private static MagnifierSurfaceControl.Natives testInstance;"
+        errorLine2="                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~">
+        <location
+            file="gen/chrome/android/monochrome_public_bundle__lint/SRCJARS/gen/content/public/android/content_jni_headers/org/chromium/content/browser/selection/MagnifierSurfaceControlJni.java"
+            line="23"
+            column="18"/>
+    </issue>
+
+    <issue
+        id="NewApi"
+        message="Class requires API level 33 (current min is 24): `Natives`"
+        errorLine1="    public void setInstanceForTesting(MagnifierSurfaceControl.Natives instance) {"
+        errorLine2="                                      ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~">
+        <location
+            file="gen/chrome/android/monochrome_public_bundle__lint/SRCJARS/gen/content/public/android/content_jni_headers/org/chromium/content/browser/selection/MagnifierSurfaceControlJni.java"
+            line="28"
+            column="39"/>
+    </issue>
+
+    <issue
+        id="NewApi"
+        message="Class requires API level 29 (current min is 24): `DirectActionReporter`"
+        errorLine1="    public void reportAvailableDirectActions(DirectActionReporter reporter) {"
+        errorLine2="                                             ~~~~~~~~~~~~~~~~~~~~">
+        <location
+            file="../../chrome/android/java/src/org/chromium/chrome/browser/directactions/MenuDirectActionHandler.java"
+            line="79"
+            column="46"/>
+    </issue>
+
+    <issue
+        id="NewApi"
         message="Call requires API level 29 (current min is 24): `addDirectAction`"
         errorLine1="                reporter.addDirectAction(entry.getKey());"
         errorLine2="                         ~~~~~~~~~~~~~~~">
@@ -718,6 +1114,28 @@
 
     <issue
         id="NewApi"
+        message="Class requires API level 26 (current min is 24): `SiteChannelsManager`"
+        errorLine1="    private final SiteChannelsManager mSiteChannelsManager;"
+        errorLine2="                  ~~~~~~~~~~~~~~~~~~~">
+        <location
+            file="../../chrome/android/java/src/org/chromium/chrome/browser/browserservices/permissiondelegation/NotificationChannelPreserver.java"
+            line="36"
+            column="19"/>
+    </issue>
+
+    <issue
+        id="NewApi"
+        message="Class requires API level 26 (current min is 24): `SiteChannelsManager`"
+        errorLine1="            InstalledWebappPermissionStore store, SiteChannelsManager siteChannelsManager) {"
+        errorLine2="                                                  ~~~~~~~~~~~~~~~~~~~">
+        <location
+            file="../../chrome/android/java/src/org/chromium/chrome/browser/browserservices/permissiondelegation/NotificationChannelPreserver.java"
+            line="40"
+            column="51"/>
+    </issue>
+
+    <issue
+        id="NewApi"
         message="Call requires API level 26 (current min is 24): `isValidSiteChannelId`"
         errorLine1="        if (channelId == null || !SiteChannelsManager.isValidSiteChannelId(channelId)) {"
         errorLine2="                                                      ~~~~~~~~~~~~~~~~~~~~">
@@ -773,6 +1191,17 @@
 
     <issue
         id="NewApi"
+        message="Class requires API level 26 (current min is 24): `ChannelsInitializer`"
+        errorLine1="        ChannelsInitializer channelsInitializer = new ChannelsInitializer(notificationManagerProxy,"
+        errorLine2="        ~~~~~~~~~~~~~~~~~~~">
+        <location
+            file="../../chrome/browser/notifications/android/java/src/org/chromium/chrome/browser/notifications/NotificationWrapperBuilderFactory.java"
+            line="46"
+            column="9"/>
+    </issue>
+
+    <issue
+        id="NewApi"
         message="Call requires API level 26 (current min is 24): `getInstance`"
         errorLine1="                ChromeChannelDefinitions.getInstance(), context.getResources());"
         errorLine2="                                         ~~~~~~~~~~~">
@@ -784,6 +1213,28 @@
 
     <issue
         id="NewApi"
+        message="Class requires API level 26 (current min is 24): `ChannelsInitializer`"
+        errorLine1="            ChannelsInitializer channelsInitializer, NotificationMetadata metadata) {"
+        errorLine2="            ~~~~~~~~~~~~~~~~~~~">
+        <location
+            file="../../components/browser_ui/notifications/android/java/src/org/chromium/components/browser_ui/notifications/NotificationWrapperCompatBuilder.java"
+            line="35"
+            column="13"/>
+    </issue>
+
+    <issue
+        id="NewApi"
+        message="Class requires API level 26 (current min is 24): `ChannelsInitializer`"
+        errorLine1="            ChannelsInitializer channelsInitializer, NotificationMetadata metadata) {"
+        errorLine2="            ~~~~~~~~~~~~~~~~~~~">
+        <location
+            file="../../components/browser_ui/notifications/android/java/src/org/chromium/components/browser_ui/notifications/NotificationWrapperStandardBuilder.java"
+            line="36"
+            column="13"/>
+    </issue>
+
+    <issue
+        id="NewApi"
         message="Call requires API level 30 (current min is 24): `getMaximumWindowMetricsBounds`"
         errorLine1="        Rect rect = ApiHelperForR.getMaximumWindowMetricsBounds(windowManager);"
         errorLine2="                                  ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~">
@@ -828,6 +1279,17 @@
 
     <issue
         id="NewApi"
+        message="Class requires API level 29 (current min is 24): `PlatformSession`"
+        errorLine1="            ContentCaptureFrame contentCaptureData, PlatformSession platformSession) {"
+        errorLine2="                                                    ~~~~~~~~~~~~~~~">
+        <location
+            file="../../components/content_capture/android/java/src/org/chromium/components/content_capture/ProcessContentCaptureDataTask.java"
+            line="24"
+            column="53"/>
+    </issue>
+
+    <issue
+        id="NewApi"
         message="Call requires API level 29 (current min is 24): `NotificationTask`"
         errorLine1="        super(session, platformSession);"
         errorLine2="        ~~~~~">
@@ -861,6 +1323,39 @@
 
     <issue
         id="NewApi"
+        message="Class requires API level 29 (current min is 24): `PlatformSessionData`"
+        errorLine1="        PlatformSessionData platformSessionData = buildCurrentSession();"
+        errorLine2="        ~~~~~~~~~~~~~~~~~~~">
+        <location
+            file="../../components/content_capture/android/java/src/org/chromium/components/content_capture/ProcessContentCaptureDataTask.java"
+            line="36"
+            column="9"/>
+    </issue>
+
+    <issue
+        id="NewApi"
+        message="Class requires API level 29 (current min is 24): `PlatformSessionData`"
+        errorLine1="            PlatformSessionData parentPlatformSessionData, ContentCaptureFrame data) {"
+        errorLine2="            ~~~~~~~~~~~~~~~~~~~">
+        <location
+            file="../../components/content_capture/android/java/src/org/chromium/components/content_capture/ProcessContentCaptureDataTask.java"
+            line="42"
+            column="13"/>
+    </issue>
+
+    <issue
+        id="NewApi"
+        message="Class requires API level 29 (current min is 24): `PlatformSessionData`"
+        errorLine1="        PlatformSessionData platformSessionData ="
+        errorLine2="        ~~~~~~~~~~~~~~~~~~~">
+        <location
+            file="../../components/content_capture/android/java/src/org/chromium/components/content_capture/ProcessContentCaptureDataTask.java"
+            line="44"
+            column="9"/>
+    </issue>
+
+    <issue
+        id="NewApi"
         message="Call requires API level 29 (current min is 24): `createOrGetSession`"
         errorLine1="                createOrGetSession(parentPlatformSessionData, data);"
         errorLine2="                ~~~~~~~~~~~~~~~~~~">
@@ -872,6 +1367,17 @@
 
     <issue
         id="NewApi"
+        message="Class requires API level 29 (current min is 24): `PlatformSessionData`"
+        errorLine1="            PlatformSessionData parentPlatformSessionData, ContentCaptureData data) {"
+        errorLine2="            ~~~~~~~~~~~~~~~~~~~">
+        <location
+            file="../../components/content_capture/android/java/src/org/chromium/components/content_capture/ProcessContentCaptureDataTask.java"
+            line="55"
+            column="13"/>
+    </issue>
+
+    <issue
+        id="NewApi"
         message="Call requires API level 29 (current min is 24): `PlatformSessionData`"
         errorLine1="            PlatformSessionData platformSessionData = new PlatformSessionData("
         errorLine2="                                                      ~~~~~~~~~~~~~~~~~~~~~~~">
@@ -883,6 +1389,17 @@
 
     <issue
         id="NewApi"
+        message="Class requires API level 29 (current min is 24): `PlatformSessionData`"
+        errorLine1="            PlatformSessionData platformSessionData = new PlatformSessionData("
+        errorLine2="            ~~~~~~~~~~~~~~~~~~~">
+        <location
+            file="../../components/content_capture/android/java/src/org/chromium/components/content_capture/ProcessContentCaptureDataTask.java"
+            line="64"
+            column="13"/>
+    </issue>
+
+    <issue
+        id="NewApi"
         message="Field requires API level 29 (current min is 24): `contentCaptureSession`"
         errorLine1="                    parentPlatformSessionData.contentCaptureSession, autofillId);"
         errorLine2="                                              ~~~~~~~~~~~~~~~~~~~~~">
@@ -894,6 +1411,17 @@
 
     <issue
         id="NewApi"
+        message="Class requires API level 29 (current min is 24): `PlatformSessionData`"
+        errorLine1="            PlatformSessionData parentPlatformSessionData, ContentCaptureDataBase data);"
+        errorLine2="            ~~~~~~~~~~~~~~~~~~~">
+        <location
+            file="../../components/content_capture/android/java/src/org/chromium/components/content_capture/ProcessContentCaptureDataTask.java"
+            line="81"
+            column="13"/>
+    </issue>
+
+    <issue
+        id="NewApi"
         message="Call requires API level 30 (current min is 24): `getExitReason`"
         errorLine1="        recordAsEnumHistogram(umaName, getExitReason(pid));"
         errorLine2="                                       ~~~~~~~~~~~~~">
@@ -916,12 +1444,23 @@
 
     <issue
         id="NewApi"
+        message="Class requires API level 29 (current min is 24): `DirectActionInitializer`"
+        errorLine1="    private DirectActionInitializer mDirectActionInitializer;"
+        errorLine2="            ~~~~~~~~~~~~~~~~~~~~~~~">
+        <location
+            file="../../chrome/android/java/src/org/chromium/chrome/browser/ui/RootUiCoordinator.java"
+            line="261"
+            column="13"/>
+    </issue>
+
+    <issue
+        id="NewApi"
         message="Call requires API level 29 (current min is 24): `onPerformDirectAction`"
         errorLine1="        mDirectActionInitializer.onPerformDirectAction("
         errorLine2="                                 ~~~~~~~~~~~~~~~~~~~~~">
         <location
             file="../../chrome/android/java/src/org/chromium/chrome/browser/ui/RootUiCoordinator.java"
-            line="1081"
+            line="1090"
             column="34"/>
     </issue>
 
@@ -932,7 +1471,7 @@
         errorLine2="                                 ~~~~~~~~~~~~~~~~~~">
         <location
             file="../../chrome/android/java/src/org/chromium/chrome/browser/ui/RootUiCoordinator.java"
-            line="1096"
+            line="1105"
             column="34"/>
     </issue>
 
@@ -943,12 +1482,23 @@
         errorLine2="                                   ~~~~~~~~~~~~~~~~~~~~~~~~~~~">
         <location
             file="../../chrome/android/java/src/org/chromium/chrome/browser/ui/RootUiCoordinator.java"
-            line="1634"
+            line="1643"
             column="36"/>
     </issue>
 
     <issue
         id="NewApi"
+        message="Class requires API level 28 (current min is 24): `SmartSelectionEventProcessor`"
+        errorLine1="    private SmartSelectionEventProcessor mSmartSelectionEventProcessor;"
+        errorLine2="            ~~~~~~~~~~~~~~~~~~~~~~~~~~~~">
+        <location
+            file="../../content/public/android/java/src/org/chromium/content/browser/selection/SelectionPopupControllerImpl.java"
+            line="226"
+            column="13"/>
+    </issue>
+
+    <issue
+        id="NewApi"
         message="Call requires API level 28 (current min is 24): `onSelectionModified`"
         errorLine1="                        mSmartSelectionEventProcessor.onSelectionModified("
         errorLine2="                                                      ~~~~~~~~~~~~~~~~~~~">
@@ -1015,6 +1565,17 @@
 
     <issue
         id="NewApi"
+        message="Class requires API level 29 (current min is 24): `PlatformSession`"
+        errorLine1="    public SessionRemovedTask(FrameSession session, PlatformSession platformSession) {"
+        errorLine2="                                                    ~~~~~~~~~~~~~~~">
+        <location
+            file="../../components/content_capture/android/java/src/org/chromium/components/content_capture/SessionRemovedTask.java"
+            line="13"
+            column="53"/>
+    </issue>
+
+    <issue
+        id="NewApi"
         message="Call requires API level 29 (current min is 24): `NotificationTask`"
         errorLine1="        super(session, platformSession);"
         errorLine2="        ~~~~~">
@@ -1037,6 +1598,17 @@
 
     <issue
         id="NewApi"
+        message="Class requires API level 29 (current min is 24): `PlatformSessionData`"
+        errorLine1="        PlatformSessionData removedPlatformSessionData ="
+        errorLine2="        ~~~~~~~~~~~~~~~~~~~">
+        <location
+            file="../../components/content_capture/android/java/src/org/chromium/components/content_capture/SessionRemovedTask.java"
+            line="24"
+            column="9"/>
+    </issue>
+
+    <issue
+        id="NewApi"
         message="Call requires API level 29 (current min is 24): `getFrameIdToPlatformSessionData`"
         errorLine1="                mPlatformSession.getFrameIdToPlatformSessionData().remove(mSession.get(0).getId());"
         errorLine2="                                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~">
@@ -1103,6 +1675,17 @@
 
     <issue
         id="NewApi"
+        message="Class requires API level 29 (current min is 24): `PlatformSessionData`"
+        errorLine1="        PlatformSessionData parentPlatformSessionData ="
+        errorLine2="        ~~~~~~~~~~~~~~~~~~~">
+        <location
+            file="../../components/content_capture/android/java/src/org/chromium/components/content_capture/SessionRemovedTask.java"
+            line="29"
+            column="9"/>
+    </issue>
+
+    <issue
+        id="NewApi"
         message="Call requires API level 29 (current min is 24): `getRootPlatformSessionData`"
         errorLine1="                mPlatformSession.getRootPlatformSessionData();"
         errorLine2="                                 ~~~~~~~~~~~~~~~~~~~~~~~~~~">
@@ -1213,6 +1796,17 @@
 
     <issue
         id="NewApi"
+        message="Class requires API level 29 (current min is 24): `DirectActionReporter`"
+        errorLine1="    public final void reportAvailableDirectActions(DirectActionReporter reporter) {"
+        errorLine2="                                                   ~~~~~~~~~~~~~~~~~~~~">
+        <location
+            file="../../chrome/android/java/src/org/chromium/chrome/browser/directactions/SimpleDirectActionHandler.java"
+            line="23"
+            column="52"/>
+    </issue>
+
+    <issue
+        id="NewApi"
         message="Call requires API level 29 (current min is 24): `addDirectAction`"
         errorLine1="        if (isAvailable()) reporter.addDirectAction(mActionId);"
         errorLine2="                                    ~~~~~~~~~~~~~~~">
@@ -1224,6 +1818,17 @@
 
     <issue
         id="NewApi"
+        message="Class requires API level 28 (current min is 24): `SmartSelectionEventProcessor`"
+        errorLine1="    private SmartSelectionEventProcessor mSmartSelectionEventProcessor;"
+        errorLine2="            ~~~~~~~~~~~~~~~~~~~~~~~~~~~~">
+        <location
+            file="../../content/public/android/java/src/org/chromium/content/browser/selection/SmartSelectionClient.java"
+            line="56"
+            column="13"/>
+    </issue>
+
+    <issue
+        id="NewApi"
         message="Call requires API level 26 (current min is 24): `setTextClassifier`"
         errorLine1="        mProvider.setTextClassifier(textClassifier);"
         errorLine2="                  ~~~~~~~~~~~~~~~~~">
@@ -1246,6 +1851,39 @@
 
     <issue
         id="NewApi"
+        message="Class requires API level 26 (current min is 24): `ClassificationTask`"
+        errorLine1="    private ClassificationTask mClassificationTask;"
+        errorLine2="            ~~~~~~~~~~~~~~~~~~">
+        <location
+            file="../../content/public/android/java/src/org/chromium/content/browser/selection/SmartSelectionProvider.java"
+            line="53"
+            column="13"/>
+    </issue>
+
+    <issue
+        id="NewApi"
+        message="Class requires API level 28 (current min is 24): `SmartSelectionEventProcessor`"
+        errorLine1="    private final SmartSelectionEventProcessor mSelectionEventProcessor;"
+        errorLine2="                  ~~~~~~~~~~~~~~~~~~~~~~~~~~~~">
+        <location
+            file="../../content/public/android/java/src/org/chromium/content/browser/selection/SmartSelectionProvider.java"
+            line="59"
+            column="19"/>
+    </issue>
+
+    <issue
+        id="NewApi"
+        message="Class requires API level 28 (current min is 24): `SmartSelectionEventProcessor`"
+        errorLine1="            @Nullable SmartSelectionEventProcessor selectionEventProcessor) {"
+        errorLine2="                      ~~~~~~~~~~~~~~~~~~~~~~~~~~~~">
+        <location
+            file="../../content/public/android/java/src/org/chromium/content/browser/selection/SmartSelectionProvider.java"
+            line="62"
+            column="23"/>
+    </issue>
+
+    <issue
+        id="NewApi"
         message="Call requires API level 26 (current min is 24): `sendSmartSelectionRequest`"
         errorLine1="        sendSmartSelectionRequest(RequestType.SUGGEST_AND_CLASSIFY, text, start, end);"
         errorLine2="        ~~~~~~~~~~~~~~~~~~~~~~~~~">
@@ -1268,6 +1906,17 @@
 
     <issue
         id="NewApi"
+        message="Class requires API level 33 (current min is 24): `AndroidStylusWritingHandler`"
+        errorLine1="    private AndroidStylusWritingHandler mAndroidHandler;"
+        errorLine2="            ~~~~~~~~~~~~~~~~~~~~~~~~~~~">
+        <location
+            file="../../components/stylus_handwriting/android/java/src/org/chromium/components/stylus_handwriting/StylusWritingController.java"
+            line="28"
+            column="13"/>
+    </issue>
+
+    <issue
+        id="NewApi"
         message="Call requires API level 29 (current min is 24): `android.view.SurfaceControl#writeToParcel`"
         errorLine1="            mSurfaceControl.writeToParcel(out, 0);"
         errorLine2="                            ~~~~~~~~~~~~~">
@@ -1279,6 +1928,17 @@
 
     <issue
         id="NewApi"
+        message="Class requires API level 27 (current min is 24): `TabbedNavigationBarColorController`"
+        errorLine1="                        TabbedNavigationBarColorController controller ="
+        errorLine2="                        ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~">
+        <location
+            file="../../chrome/android/java/src/org/chromium/chrome/browser/tabbed_mode/TabbedRootUiCoordinator.java"
+            line="628"
+            column="25"/>
+    </issue>
+
+    <issue
+        id="NewApi"
         message="Call requires API level 27 (current min is 24): `setNavigationBarScrimFraction`"
         errorLine1="                        controller.setNavigationBarScrimFraction(scrimFraction);"
         errorLine2="                                   ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~">
@@ -1290,6 +1950,17 @@
 
     <issue
         id="NewApi"
+        message="Class requires API level 27 (current min is 24): `TabbedNavigationBarColorController`"
+        errorLine1="    private @Nullable TabbedNavigationBarColorController mNavigationBarColorController;"
+        errorLine2="                      ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~">
+        <location
+            file="../../chrome/android/java/src/org/chromium/chrome/browser/tabbed_mode/TabbedSystemUiCoordinator.java"
+            line="25"
+            column="23"/>
+    </issue>
+
+    <issue
+        id="NewApi"
         message="Call requires API level 27 (current min is 24): `destroy`"
         errorLine1="        if (mNavigationBarColorController != null) mNavigationBarColorController.destroy();"
         errorLine2="                                                                                 ~~~~~~~">
@@ -1312,6 +1983,17 @@
 
     <issue
         id="NewApi"
+        message="Class requires API level 29 (current min is 24): `PlatformSession`"
+        errorLine1="    public TitleUpdateTask(ContentCaptureFrame mainFrame, PlatformSession platformSession) {"
+        errorLine2="                                                          ~~~~~~~~~~~~~~~">
+        <location
+            file="../../components/content_capture/android/java/src/org/chromium/components/content_capture/TitleUpdateTask.java"
+            line="16"
+            column="59"/>
+    </issue>
+
+    <issue
+        id="NewApi"
         message="Call requires API level 29 (current min is 24): `NotificationTask`"
         errorLine1="        super(null, platformSession);"
         errorLine2="        ~~~~~">
@@ -1345,6 +2027,17 @@
 
     <issue
         id="NewApi"
+        message="Class requires API level 29 (current min is 24): `PlatformSessionData`"
+        errorLine1="        PlatformSessionData parentPlatformSessionData = buildCurrentSession();"
+        errorLine2="        ~~~~~~~~~~~~~~~~~~~">
+        <location
+            file="../../components/content_capture/android/java/src/org/chromium/components/content_capture/TitleUpdateTask.java"
+            line="30"
+            column="9"/>
+    </issue>
+
+    <issue
+        id="NewApi"
         message="Call requires API level 29 (current min is 24): `getInstance`"
         errorLine1="        AutofillId autofillId = PlatformAPIWrapper.getInstance().newAutofillId("
         errorLine2="                                                   ~~~~~~~~~~~">
@@ -1476,6 +2169,17 @@
     </issue>
 
     <issue
+        id="NewApi"
+        message="Class requires API level 32 (current min is 24): `OverlayTransformApiHelper`"
+        errorLine1="    private OverlayTransformApiHelper mOverlayTransformApiHelper;"
+        errorLine2="            ~~~~~~~~~~~~~~~~~~~~~~~~~">
+        <location
+            file="../../ui/android/java/src/org/chromium/ui/base/WindowAndroid.java"
+            line="118"
+            column="13"/>
+    </issue>
+
+    <issue
         id="SuspiciousIndentation"
         message="Suspicious indentation: This is indented but is not nested under the previous expression (`if (!LibraryLoader.g`...)"
         errorLine1="            RecordHistogram.recordEnumeratedHistogram("
diff --git a/chrome/android/features/tab_ui/junit/src/org/chromium/chrome/browser/tasks/tab_management/IncognitoReauthPromoMessageServiceUnitTest.java b/chrome/android/features/tab_ui/junit/src/org/chromium/chrome/browser/tasks/tab_management/IncognitoReauthPromoMessageServiceUnitTest.java
index 40be73b4..4d47a4c 100644
--- a/chrome/android/features/tab_ui/junit/src/org/chromium/chrome/browser/tasks/tab_management/IncognitoReauthPromoMessageServiceUnitTest.java
+++ b/chrome/android/features/tab_ui/junit/src/org/chromium/chrome/browser/tasks/tab_management/IncognitoReauthPromoMessageServiceUnitTest.java
@@ -374,7 +374,7 @@
             return true;
         })
                 .when(mReauthenticatorBridgeMock)
-                .reauthenticate(notNull(), /*useLastValidReauth=*/eq(false));
+                .reauthenticate(notNull());
 
         // Setup snackbar interaction.
         final String snackBarTestString = "This is written inside the snackbar.";
@@ -391,8 +391,7 @@
 
         verify(mReauthenticatorBridgeMock, times(1))
                 .canUseAuthenticationWithBiometricOrScreenLock();
-        verify(mReauthenticatorBridgeMock, times(1))
-                .reauthenticate(notNull(), /*useLastValidReauth=*/eq(false));
+        verify(mReauthenticatorBridgeMock, times(1)).reauthenticate(notNull());
         verify(mPrefServiceMock, times(1))
                 .setBoolean(Pref.INCOGNITO_REAUTHENTICATION_FOR_ANDROID, true);
         verify(mMessageObserverMock, times(1)).messageInvalidate(MessageType.FOR_TESTING);
diff --git a/chrome/android/java/src/org/chromium/chrome/browser/ChromeStrictMode.java b/chrome/android/java/src/org/chromium/chrome/browser/ChromeStrictMode.java
index 144e2eb5..b3c9059 100644
--- a/chrome/android/java/src/org/chromium/chrome/browser/ChromeStrictMode.java
+++ b/chrome/android/java/src/org/chromium/chrome/browser/ChromeStrictMode.java
@@ -236,7 +236,8 @@
         // non-Nexus, non-Pixel devices to improve the signal to noise ratio.
         String lowercaseModel = Build.MODEL.toLowerCase(Locale.US);
         if (!lowercaseModel.contains("nexus") && !lowercaseModel.contains("pixel")) {
-            threadInterceptor.onlyDetectViolationsForPackage("org.chromium.content");
+            threadInterceptor.onlyDetectViolationsForPackage(
+                    "org.chromium.content", "org.chromium.chrome");
         }
     }
 }
diff --git a/chrome/android/java/src/org/chromium/chrome/browser/ChromeTabbedActivity.java b/chrome/android/java/src/org/chromium/chrome/browser/ChromeTabbedActivity.java
index 971c7a7..d1e10e4 100644
--- a/chrome/android/java/src/org/chromium/chrome/browser/ChromeTabbedActivity.java
+++ b/chrome/android/java/src/org/chromium/chrome/browser/ChromeTabbedActivity.java
@@ -1833,17 +1833,15 @@
         boolean shouldShowOverviewPageOnStart = shouldShowOverviewPageOnStart();
         StartSurfaceUserData.getInstance().setUnusedTabRestoredAtStartup(
                 shouldShowOverviewPageOnStart);
-        if (StartupPaintPreviewHelper.isEnabled()) {
-            StartupPaintPreviewHelper paintPreviewHelper = new StartupPaintPreviewHelper(
-                    getWindowAndroid(), getOnCreateTimestampMs(), getBrowserControlsManager(),
-                    getTabModelSelector(), shouldShowOverviewPageOnStart, () -> {
-                        return getToolbarManager() == null
-                                ? null
-                                : getToolbarManager().getProgressBarCoordinator();
-                    });
-            mStartupPaintPreviewHelperSupplier.set(paintPreviewHelper);
-            getActivityTabStartupMetricsTracker().registerPaintPreviewObserver(paintPreviewHelper);
-        }
+        StartupPaintPreviewHelper paintPreviewHelper = new StartupPaintPreviewHelper(
+                getWindowAndroid(), getOnCreateTimestampMs(), getBrowserControlsManager(),
+                getTabModelSelector(), shouldShowOverviewPageOnStart, () -> {
+                    return getToolbarManager() == null
+                            ? null
+                            : getToolbarManager().getProgressBarCoordinator();
+                });
+        mStartupPaintPreviewHelperSupplier.set(paintPreviewHelper);
+        getActivityTabStartupMetricsTracker().registerPaintPreviewObserver(paintPreviewHelper);
     }
 
     private boolean shouldIgnoreIntent() {
diff --git a/chrome/android/java/src/org/chromium/chrome/browser/app/ChromeActivity.java b/chrome/android/java/src/org/chromium/chrome/browser/app/ChromeActivity.java
index 7f8f2ca..cf98bd7 100644
--- a/chrome/android/java/src/org/chromium/chrome/browser/app/ChromeActivity.java
+++ b/chrome/android/java/src/org/chromium/chrome/browser/app/ChromeActivity.java
@@ -2806,8 +2806,14 @@
             mIsTabReparentingPrepared = true;
             if (!isFinishing()) {
                 mIsRecreatingForTabletModeChange = true;
-                // Store the OnPause timestamp before recreation to capture unfold latency metric.
-                if (isTablet) super.setOnPauseBeforeFoldRecreateTimestampMs();
+                // Store the OnPause timestamp before recreation to capture unfold latency metric
+                // only if the activity is currently not in stopped state, to not capture the time
+                // when system was suspended. Hence, unfolding instances where Chrome wasn't in
+                // foreground are not captured in this metric.
+                if (isTablet
+                        && ApplicationStatus.getStateForActivity(this) != ActivityState.STOPPED) {
+                    super.setOnPauseBeforeFoldRecreateTimestampMs();
+                }
                 recreate();
                 mHandler.removeCallbacks(mShowContentRunnable);
                 return true;
diff --git a/chrome/android/java/src/org/chromium/chrome/browser/autofill/settings/AutofillPaymentMethodsFragment.java b/chrome/android/java/src/org/chromium/chrome/browser/autofill/settings/AutofillPaymentMethodsFragment.java
index 19b7a87..a7a8004 100644
--- a/chrome/android/java/src/org/chromium/chrome/browser/autofill/settings/AutofillPaymentMethodsFragment.java
+++ b/chrome/android/java/src/org/chromium/chrome/browser/autofill/settings/AutofillPaymentMethodsFragment.java
@@ -368,7 +368,7 @@
                         MandatoryReauthAuthenticationFlowEvent.FLOW_FAILED,
                         MandatoryReauthAuthenticationFlowEvent.MAX_VALUE + 1);
             }
-        }, /*useLastValidAuth=*/false);
+        });
         // Returning false here holds the toggle to still display the old value while
         // waiting for biometric auth. Once biometric is completed (either succeed or
         // fail), OnResume will reload the page with the pref value, which will switch
@@ -411,7 +411,7 @@
                         MandatoryReauthAuthenticationFlowEvent.FLOW_FAILED,
                         MandatoryReauthAuthenticationFlowEvent.MAX_VALUE + 1);
             }
-        }, /*useLastValidAuth=*/false);
+        });
         return true;
     }
 
diff --git a/chrome/android/java/src/org/chromium/chrome/browser/device_lock/DeviceLockActivityLauncherImpl.java b/chrome/android/java/src/org/chromium/chrome/browser/device_lock/DeviceLockActivityLauncherImpl.java
index 886386c0..b0da1fe 100644
--- a/chrome/android/java/src/org/chromium/chrome/browser/device_lock/DeviceLockActivityLauncherImpl.java
+++ b/chrome/android/java/src/org/chromium/chrome/browser/device_lock/DeviceLockActivityLauncherImpl.java
@@ -76,12 +76,12 @@
                         }
                     });
         } else {
-            DeviceLockCoordinator.createDeviceLockAuthenticatorBridge()
-                    .reauthenticate((authSucceeded) -> {
+            DeviceLockCoordinator.createDeviceLockAuthenticatorBridge().reauthenticate(
+                    (authSucceeded) -> {
                         if (authSucceeded) {
                             callback.run();
                         }
-                    }, false);
+                    });
         }
     }
 
diff --git a/chrome/android/java/src/org/chromium/chrome/browser/download/DownloadUtils.java b/chrome/android/java/src/org/chromium/chrome/browser/download/DownloadUtils.java
index a95dda91..5193a343 100644
--- a/chrome/android/java/src/org/chromium/chrome/browser/download/DownloadUtils.java
+++ b/chrome/android/java/src/org/chromium/chrome/browser/download/DownloadUtils.java
@@ -248,7 +248,7 @@
         int minSupportedVersion = sMinSdkVersionForUserInitiatedJobsForTesting == null
                 ? 34
                 : sMinSdkVersionForUserInitiatedJobsForTesting;
-        return ChromeFeatureList.isEnabled(ChromeFeatureList.DOWNLOADS_MIGRATE_TO_JOBS_API)
+        return ChromeFeatureList.sDownloadsMigrateToJobsAPI.isEnabled()
                 && Build.VERSION.SDK_INT >= minSupportedVersion;
     }
 
diff --git a/chrome/android/java/src/org/chromium/chrome/browser/init/AsyncInitializationActivity.java b/chrome/android/java/src/org/chromium/chrome/browser/init/AsyncInitializationActivity.java
index 03a604d..5f2e4ff 100644
--- a/chrome/android/java/src/org/chromium/chrome/browser/init/AsyncInitializationActivity.java
+++ b/chrome/android/java/src/org/chromium/chrome/browser/init/AsyncInitializationActivity.java
@@ -71,7 +71,10 @@
     private long mOnCreateTimestampMs;
     /** Time at which onPause is called. */
     private long mOnPauseTimestampMs;
-    /** Time at which onPause is called before the activity is recreated due to unfolding. */
+    /**
+     * Time at which onPause is called before the activity is recreated due to unfolding. The
+     * timestamp is captured only if recreation starts when the activity is not in stopped state.
+     */
     private long mOnPauseBeforeFoldRecreateTimestampMs;
 
     private ActivityWindowAndroid mWindowAndroid;
diff --git a/chrome/android/java/src/org/chromium/chrome/browser/paint_preview/StartupPaintPreviewHelper.java b/chrome/android/java/src/org/chromium/chrome/browser/paint_preview/StartupPaintPreviewHelper.java
index ac6f168..e01a1d9 100644
--- a/chrome/android/java/src/org/chromium/chrome/browser/paint_preview/StartupPaintPreviewHelper.java
+++ b/chrome/android/java/src/org/chromium/chrome/browser/paint_preview/StartupPaintPreviewHelper.java
@@ -106,14 +106,6 @@
     }
 
     /**
-     * Checks whether the paint preview feature is enabled
-     * @return the feature availability
-     */
-    public static boolean isEnabled() {
-        return true;
-    }
-
-    /**
      * Sets whether a Paint Preview should attempt to be shown on restoration of a tab. If the
      * feature is not enabled this is effectively a no-op.
      */
diff --git a/chrome/android/java/src/org/chromium/chrome/browser/payments/ChromePaymentRequestService.java b/chrome/android/java/src/org/chromium/chrome/browser/payments/ChromePaymentRequestService.java
index 7cbe5738..241a354 100644
--- a/chrome/android/java/src/org/chromium/chrome/browser/payments/ChromePaymentRequestService.java
+++ b/chrome/android/java/src/org/chromium/chrome/browser/payments/ChromePaymentRequestService.java
@@ -452,12 +452,6 @@
         return mPaymentUiService.hasAvailableApps();
     }
 
-    // Implements BrowserPaymentRequest:
-    @Override
-    public boolean isPaymentSheetBasedPaymentAppSupported() {
-        // TODO(crbug.com/1209835): Remove this method entirely.
-        return false;
-    }
 
     // Implements BrowserPaymentRequest:
     @Override
diff --git a/chrome/android/java/src/org/chromium/chrome/browser/tab/TabImpl.java b/chrome/android/java/src/org/chromium/chrome/browser/tab/TabImpl.java
index ff121fb..338d5a3 100644
--- a/chrome/android/java/src/org/chromium/chrome/browser/tab/TabImpl.java
+++ b/chrome/android/java/src/org/chromium/chrome/browser/tab/TabImpl.java
@@ -1570,18 +1570,16 @@
      * the load codepath is the same (run in loadIfNecessary()) and the same caching policies of
      * history load are used.
      */
-    private final void restoreIfNeeded(@LoadIfNeededCaller int caller) {
-        // Attempts to display the Paint Preview representation of this Tab. Please note that this
-        // is behind an experimental flag (crbug.com/1008520).
+    private void restoreIfNeeded(@LoadIfNeededCaller int caller) {
+        // Attempts to display the Paint Preview representation of this Tab.
         if (isFrozen()) StartupPaintPreviewHelper.showPaintPreviewOnRestore(this);
 
         try {
             TraceEvent.begin("Tab.restoreIfNeeded");
-            if (isFrozen()) {
-                assert mWebContentsState
-                        != null
-                    : "crbug/1393848: A frozen tab must have WebContentsState to restore from.";
-            }
+            assert !isFrozen()
+                    || mWebContentsState
+                            != null
+                : "crbug/1393848: A frozen tab must have WebContentsState to restore from.";
             // Restore is needed for a tab that is loaded for the first time. WebContents will
             // be restored from a saved state.
             if ((isFrozen() && mWebContentsState != null && !unfreezeContents())
diff --git a/chrome/android/java/src/org/chromium/chrome/browser/toolbar/ToolbarButtonInProductHelpController.java b/chrome/android/java/src/org/chromium/chrome/browser/toolbar/ToolbarButtonInProductHelpController.java
index aac6703..3a561f98 100644
--- a/chrome/android/java/src/org/chromium/chrome/browser/toolbar/ToolbarButtonInProductHelpController.java
+++ b/chrome/android/java/src/org/chromium/chrome/browser/toolbar/ToolbarButtonInProductHelpController.java
@@ -61,7 +61,6 @@
     private final ActivityLifecycleDispatcher mLifecycleDispatcher;
     private final AppMenuPropertiesDelegate mAppMenuPropertiesDelegate;
     private final ScreenshotMonitor mScreenshotMonitor;
-    private final Handler mHandler = new Handler();
     private final View mMenuButtonAnchorView;
     private final View mSecurityIconAnchorView;
     private final AppMenuHandler mAppMenuHandler;
@@ -93,7 +92,7 @@
         mMenuButtonAnchorView = menuButtonAnchorView;
         mSecurityIconAnchorView = securityIconAnchorView;
         mIsInOverviewModeSupplier = isInOverviewModeSupplier;
-        mUserEducationHelper = new UserEducationHelper(mActivity, mHandler);
+        mUserEducationHelper = new UserEducationHelper(mActivity, new Handler());
         mScreenshotMonitor = new ScreenshotMonitorImpl(this, mActivity);
         mLifecycleDispatcher = lifecycleDispatcher;
         mLifecycleDispatcher.register(this);
diff --git a/chrome/android/javatests/src/org/chromium/chrome/browser/autofill/settings/AutofillPaymentMethodsFragmentTest.java b/chrome/android/javatests/src/org/chromium/chrome/browser/autofill/settings/AutofillPaymentMethodsFragmentTest.java
index cc8a37a..cf97b33 100644
--- a/chrome/android/javatests/src/org/chromium/chrome/browser/autofill/settings/AutofillPaymentMethodsFragmentTest.java
+++ b/chrome/android/javatests/src/org/chromium/chrome/browser/autofill/settings/AutofillPaymentMethodsFragmentTest.java
@@ -6,7 +6,6 @@
 
 import static com.google.common.truth.Truth.assertThat;
 
-import static org.mockito.ArgumentMatchers.eq;
 import static org.mockito.ArgumentMatchers.notNull;
 import static org.mockito.Mockito.doAnswer;
 import static org.mockito.Mockito.never;
@@ -395,7 +394,7 @@
         // authentication which should succeed.
         TestThreadUtils.runOnUiThreadBlocking(getMandatoryReauthPreference(activity)::performClick);
 
-        verify(mReauthenticatorMock).reauthenticate(notNull(), /*useLastValidReauth=*/eq(false));
+        verify(mReauthenticatorMock).reauthenticate(notNull());
         // Verify that the Reauth toggle is now checked.
         Assert.assertTrue(getMandatoryReauthPreference(activity).isChecked());
         optInHistogram.assertExpected();
@@ -429,7 +428,7 @@
         // authentication which should fail.
         TestThreadUtils.runOnUiThreadBlocking(getMandatoryReauthPreference(activity)::performClick);
 
-        verify(mReauthenticatorMock).reauthenticate(notNull(), /*useLastValidReauth=*/eq(false));
+        verify(mReauthenticatorMock).reauthenticate(notNull());
         // Verify that the Reauth toggle is still checked since authentication failed.
         Assert.assertTrue(getMandatoryReauthPreference(activity).isChecked());
         optOutHistogram.assertExpected();
@@ -481,7 +480,7 @@
         // afterwards. Wait for the new dialog to be rendered.
         rule.waitForFragmentToBeShown();
 
-        verify(mReauthenticatorMock).reauthenticate(notNull(), /*useLastValidReauth=*/eq(false));
+        verify(mReauthenticatorMock).reauthenticate(notNull());
         // Verify that the local card edit dialog was shown.
         Assert.assertTrue(rule.getLastestShownFragment() instanceof AutofillLocalCardEditor);
         editCardReauthHistogram.assertExpected();
@@ -520,7 +519,7 @@
         // which should fail and hence the payment methods page should still be open.
         TestThreadUtils.runOnUiThreadBlocking(cardPreference::performClick);
 
-        verify(mReauthenticatorMock).reauthenticate(notNull(), /*useLastValidReauth=*/eq(false));
+        verify(mReauthenticatorMock).reauthenticate(notNull());
         // Verify that the local card edit dialog was NOT shown.
         Assert.assertNull(rule.getLastestShownFragment());
         editCardReauthHistogram.assertExpected();
@@ -551,8 +550,7 @@
         // new dialog to be rendered.
         rule.waitForFragmentToBeShown();
 
-        verify(mReauthenticatorMock, never())
-                .reauthenticate(notNull(), /*useLastValidReauth=*/eq(false));
+        verify(mReauthenticatorMock, never()).reauthenticate(notNull());
         // Verify that the local card edit dialog was shown.
         Assert.assertTrue(rule.getLastestShownFragment() instanceof AutofillLocalCardEditor);
     }
@@ -583,8 +581,7 @@
         // dialog to be rendered.
         rule.waitForFragmentToBeShown();
 
-        verify(mReauthenticatorMock, never())
-                .reauthenticate(notNull(), /*useLastValidReauth=*/eq(false));
+        verify(mReauthenticatorMock, never()).reauthenticate(notNull());
         // Verify that the local card edit dialog was shown.
         Assert.assertTrue(rule.getLastestShownFragment() instanceof AutofillLocalCardEditor);
     }
@@ -623,8 +620,7 @@
 
         // Verify there were 2 biometric authentication attempts, once for enabling mandatory
         // reauth, and another time for opening the local card edit page.
-        verify(mReauthenticatorMock, times(2))
-                .reauthenticate(notNull(), /*useLastValidReauth=*/eq(false));
+        verify(mReauthenticatorMock, times(2)).reauthenticate(notNull());
         // Verify that the local card edit dialog was shown.
         Assert.assertTrue(rule.getLastestShownFragment() instanceof AutofillLocalCardEditor);
     }
@@ -665,8 +661,7 @@
         // Verify there was only 1 biometric authentication attempt, for disabling mandatory reauth.
         // After disabling, biometric authentication challenge should not be presented to open the
         // local card edit page.
-        verify(mReauthenticatorMock, times(1))
-                .reauthenticate(notNull(), /*useLastValidReauth=*/eq(false));
+        verify(mReauthenticatorMock, times(1)).reauthenticate(notNull());
         // Verify that the local card edit dialog was shown.
         Assert.assertTrue(rule.getLastestShownFragment() instanceof AutofillLocalCardEditor);
     }
@@ -749,7 +744,7 @@
             return true;
         })
                 .when(mReauthenticatorMock)
-                .reauthenticate(notNull(), /*useLastValidReauth=*/eq(false));
+                .reauthenticate(notNull());
     }
 
     private ChromeSwitchPreference getMandatoryReauthPreference(SettingsActivity activity) {
diff --git a/chrome/android/javatests/src/org/chromium/chrome/browser/device_lock/DeviceLockActivityLauncherImplTest.java b/chrome/android/javatests/src/org/chromium/chrome/browser/device_lock/DeviceLockActivityLauncherImplTest.java
index af31a54..5d9247f1 100644
--- a/chrome/android/javatests/src/org/chromium/chrome/browser/device_lock/DeviceLockActivityLauncherImplTest.java
+++ b/chrome/android/javatests/src/org/chromium/chrome/browser/device_lock/DeviceLockActivityLauncherImplTest.java
@@ -7,7 +7,6 @@
 import static org.junit.Assert.assertFalse;
 import static org.junit.Assert.assertTrue;
 import static org.mockito.ArgumentMatchers.any;
-import static org.mockito.ArgumentMatchers.anyBoolean;
 import static org.mockito.ArgumentMatchers.eq;
 import static org.mockito.ArgumentMatchers.isNull;
 import static org.mockito.Mockito.doAnswer;
@@ -125,7 +124,7 @@
         DeviceLockActivityLauncherImpl.get().presentDeviceLockChallenge(
                 mContext, true, mWindowAndroid, () -> mCallbackCalled.set(true));
         verify(mWindowAndroid, times(1)).showIntent(any(Intent.class), any(), any());
-        verify(mReauthenticatorBridge, never()).reauthenticate(any(), anyBoolean());
+        verify(mReauthenticatorBridge, never()).reauthenticate(any());
         assertTrue("The callback should have been called if the activity ends with RESULT_OK.",
                 mCallbackCalled.get());
     }
@@ -151,7 +150,7 @@
         DeviceLockActivityLauncherImpl.get().presentDeviceLockChallenge(
                 mContext, true, mWindowAndroid, () -> mCallbackCalled.set(true));
         verify(mWindowAndroid, times(1)).showIntent(any(Intent.class), any(), any());
-        verify(mReauthenticatorBridge, never()).reauthenticate(any(), anyBoolean());
+        verify(mReauthenticatorBridge, never()).reauthenticate(any());
         assertFalse("The callback should not have been called if the activity ends with "
                         + "RESULT_CANCELED.",
                 mCallbackCalled.get());
@@ -172,12 +171,12 @@
             return null;
         })
                 .when(mReauthenticatorBridge)
-                .reauthenticate(any(), anyBoolean());
+                .reauthenticate(any());
 
         DeviceLockActivityLauncherImpl.get().presentDeviceLockChallenge(
                 mContext, true, mWindowAndroid, () -> mCallbackCalled.set(true));
         verify(mWindowAndroid, never()).showIntent(any(Intent.class), any(), any());
-        verify(mReauthenticatorBridge, times(1)).reauthenticate(any(), anyBoolean());
+        verify(mReauthenticatorBridge, times(1)).reauthenticate(any());
         assertTrue("The callback should be called after a successful reauthentication.",
                 mCallbackCalled.get());
     }
@@ -196,12 +195,12 @@
             return null;
         })
                 .when(mReauthenticatorBridge)
-                .reauthenticate(any(), anyBoolean());
+                .reauthenticate(any());
 
         DeviceLockActivityLauncherImpl.get().presentDeviceLockChallenge(
                 mContext, true, mWindowAndroid, () -> mCallbackCalled.set(true));
         verify(mWindowAndroid, never()).showIntent(any(Intent.class), any(), any());
-        verify(mReauthenticatorBridge, times(1)).reauthenticate(any(), anyBoolean());
+        verify(mReauthenticatorBridge, times(1)).reauthenticate(any());
         assertFalse("The callback should be not called after a failed reauthentication.",
                 mCallbackCalled.get());
     }
diff --git a/chrome/android/javatests/src/org/chromium/chrome/browser/status_indicator/StatusIndicatorTest.java b/chrome/android/javatests/src/org/chromium/chrome/browser/status_indicator/StatusIndicatorTest.java
index 3b35ee2..52d97e2 100644
--- a/chrome/android/javatests/src/org/chromium/chrome/browser/status_indicator/StatusIndicatorTest.java
+++ b/chrome/android/javatests/src/org/chromium/chrome/browser/status_indicator/StatusIndicatorTest.java
@@ -27,12 +27,10 @@
 import org.hamcrest.TypeSafeMatcher;
 import org.junit.Assert;
 import org.junit.Before;
-import org.junit.ClassRule;
 import org.junit.Rule;
 import org.junit.Test;
 import org.junit.runner.RunWith;
 
-import org.chromium.base.test.util.Batch;
 import org.chromium.base.test.util.CommandLineFlags;
 import org.chromium.base.test.util.Criteria;
 import org.chromium.base.test.util.CriteriaHelper;
@@ -48,7 +46,6 @@
 import org.chromium.chrome.test.ChromeJUnit4ClassRunner;
 import org.chromium.chrome.test.ChromeTabbedActivityTestRule;
 import org.chromium.chrome.test.R;
-import org.chromium.chrome.test.batch.BlankCTATabInitialStateRule;
 import org.chromium.chrome.test.util.NewTabPageTestUtils;
 import org.chromium.chrome.test.util.RecentTabsPageTestUtils;
 import org.chromium.chrome.test.util.browser.Features.DisableFeatures;
@@ -62,20 +59,14 @@
  */
 // clang-format off
 @RunWith(ChromeJUnit4ClassRunner.class)
-@Batch(Batch.PER_CLASS)
 @CommandLineFlags.Add({ChromeSwitches.DISABLE_FIRST_RUN_EXPERIENCE})
 // TODO(crbug.com/1035584): Enable for tablets once we support them.
 @Restriction({UiRestriction.RESTRICTION_TYPE_PHONE})
 public class StatusIndicatorTest {
     // clang-format on
 
-    @ClassRule
-    public static ChromeTabbedActivityTestRule sActivityTestRule =
-            new ChromeTabbedActivityTestRule();
-
     @Rule
-    public BlankCTATabInitialStateRule mBlankCTATabInitialStateRule =
-            new BlankCTATabInitialStateRule(sActivityTestRule, true);
+    public ChromeTabbedActivityTestRule mActivityTestRule = new ChromeTabbedActivityTestRule();
 
     private StatusIndicatorCoordinator mStatusIndicatorCoordinator;
     private StatusIndicatorSceneLayer mStatusIndicatorSceneLayer;
@@ -85,12 +76,13 @@
     @Before
     public void setUp() throws InterruptedException {
         TabbedRootUiCoordinator.setDisableStatusIndicatorAnimationsForTesting(true);
-        mStatusIndicatorCoordinator = ((TabbedRootUiCoordinator) sActivityTestRule.getActivity()
+        mActivityTestRule.startMainActivityOnBlankPage();
+        mStatusIndicatorCoordinator = ((TabbedRootUiCoordinator) mActivityTestRule.getActivity()
                                                .getRootUiCoordinatorForTesting())
                                               .getStatusIndicatorCoordinatorForTesting();
         mStatusIndicatorSceneLayer = mStatusIndicatorCoordinator.getSceneLayer();
-        mControlContainer = sActivityTestRule.getActivity().findViewById(R.id.control_container);
-        mBrowserControlsStateProvider = sActivityTestRule.getActivity().getBrowserControlsManager();
+        mControlContainer = mActivityTestRule.getActivity().findViewById(R.id.control_container);
+        mBrowserControlsStateProvider = mActivityTestRule.getActivity().getBrowserControlsManager();
     }
 
     @Test
@@ -101,7 +93,7 @@
         Assert.assertNull("Status indicator shouldn't be in the hierarchy initially.",
                 getStatusIndicator());
         Assert.assertNotNull("Status indicator stub should be in the hierarchy initially.",
-                sActivityTestRule.getActivity().findViewById(R.id.status_indicator_stub));
+                mActivityTestRule.getActivity().findViewById(R.id.status_indicator_stub));
         Assert.assertFalse("Wrong initial composited view visibility.",
                 mStatusIndicatorSceneLayer.isSceneOverlayTreeShowing());
         Assert.assertEquals("Wrong initial control container top margin.", 0,
@@ -214,9 +206,9 @@
     @DisableFeatures(ChromeFeatureList.START_SURFACE_REFACTOR)
     public void testShowAndHideOnStartSurface() {
         // clang-format on
-        TabUiTestHelper.enterTabSwitcher(sActivityTestRule.getActivity());
+        TabUiTestHelper.enterTabSwitcher(mActivityTestRule.getActivity());
 
-        StartSurfaceTestUtils.waitForTabSwitcherVisible(sActivityTestRule.getActivity());
+        StartSurfaceTestUtils.waitForTabSwitcherVisible(mActivityTestRule.getActivity());
         // R.id.status_indicator won't be in the View tree until the indicator is shown for the
         // first time and the corresponding ViewStub is inflated.
         onView(withId(R.id.status_indicator)).check(doesNotExist());
@@ -278,8 +270,8 @@
     @Test
     @MediumTest
     public void testShowAndHideOnNTP() {
-        sActivityTestRule.loadUrl(UrlConstants.NTP_URL);
-        Tab tab = sActivityTestRule.getActivity().getActivityTab();
+        mActivityTestRule.loadUrl(UrlConstants.NTP_URL);
+        Tab tab = mActivityTestRule.getActivity().getActivityTab();
         NewTabPageTestUtils.waitForNtpLoaded(tab);
         final int viewId = View.generateViewId();
         final View view = tab.getNativePage().getView();
@@ -341,8 +333,8 @@
     @Test
     @MediumTest
     public void testShowAndHideOnRecentTabsPage() {
-        sActivityTestRule.loadUrl(UrlConstants.RECENT_TABS_URL);
-        final Tab tab = sActivityTestRule.getActivity().getActivityTab();
+        mActivityTestRule.loadUrl(UrlConstants.RECENT_TABS_URL);
+        final Tab tab = mActivityTestRule.getActivity().getActivityTab();
         RecentTabsPageTestUtils.waitForRecentTabsPageLoaded(tab);
 
         // R.id.status_indicator won't be in the View tree until the indicator is shown for the
@@ -404,7 +396,7 @@
     }
 
     private View getStatusIndicator() {
-        return sActivityTestRule.getActivity().findViewById(R.id.status_indicator);
+        return mActivityTestRule.getActivity().findViewById(R.id.status_indicator);
     }
 
     private static Matcher<View> withTopMargin(final int expected) {
diff --git a/chrome/android/junit/src/org/chromium/chrome/browser/download/service/DownloadBackgroundTaskTest.java b/chrome/android/junit/src/org/chromium/chrome/browser/download/service/DownloadBackgroundTaskTest.java
index 63d1b70..a45df36 100644
--- a/chrome/android/junit/src/org/chromium/chrome/browser/download/service/DownloadBackgroundTaskTest.java
+++ b/chrome/android/junit/src/org/chromium/chrome/browser/download/service/DownloadBackgroundTaskTest.java
@@ -28,12 +28,12 @@
 import org.chromium.base.test.BaseRobolectricTestRunner;
 import org.chromium.base.test.util.Feature;
 import org.chromium.base.test.util.Features;
-import org.chromium.base.test.util.Features.EnableFeatures;
 import org.chromium.base.test.util.JniMocker;
 import org.chromium.chrome.browser.background_task_scheduler.ChromeNativeBackgroundTaskDelegate;
 import org.chromium.chrome.browser.download.DownloadManagerService;
 import org.chromium.chrome.browser.download.DownloadNotificationService;
 import org.chromium.chrome.browser.download.DownloadUtils;
+import org.chromium.chrome.browser.flags.CachedFeatureFlags;
 import org.chromium.chrome.browser.flags.ChromeFeatureList;
 import org.chromium.chrome.browser.profiles.ProfileKey;
 import org.chromium.components.background_task_scheduler.BackgroundTask.TaskFinishedCallback;
@@ -46,11 +46,13 @@
 import org.chromium.components.background_task_scheduler.TaskParameters;
 import org.chromium.components.download.DownloadTaskType;
 
+import java.util.HashMap;
+import java.util.Map;
+
 /** Unit tests for {@link org.chromium.chrome.browser.download.service.DownloadBackgroundTask}. */
 @RunWith(BaseRobolectricTestRunner.class)
 // TODO(crbug/1483735): Update this to 34 once robolectric support is added.
 @Config(manifest = Config.NONE, sdk = 33)
-@EnableFeatures(ChromeFeatureList.DOWNLOADS_MIGRATE_TO_JOBS_API)
 public class DownloadBackgroundTaskTest {
     @Rule
     public JniMocker mJniMocker = new JniMocker();
@@ -100,8 +102,15 @@
         return TaskParameters.create(taskId).build();
     }
 
+    private void setupFeatures(boolean enableJobsAPI) {
+        Map<String, Boolean> features = new HashMap<>();
+        features.put(ChromeFeatureList.DOWNLOADS_MIGRATE_TO_JOBS_API, true);
+        CachedFeatureFlags.setFeaturesForTesting(features);
+    }
+
     @Before
     public void setup() {
+        setupFeatures(/*enableJobsAPI=*/true);
         MockitoAnnotations.initMocks(this);
         mJniMocker.mock(DownloadBackgroundTaskJni.TEST_HOOKS, mNativeMock);
         DownloadManagerService.setDownloadManagerService(mDownloadManagerService);
@@ -184,6 +193,21 @@
         Assert.assertFalse(DownloadUtils.isUserInitiatedJob(TaskIds.DOWNLOAD_CLEANUP_JOB_ID));
         Assert.assertFalse(DownloadUtils.isUserInitiatedJob(TaskIds.DOWNLOAD_LATER_JOB_ID));
     }
+    @Test
+    @Feature({"Download"})
+    public void testIsUserInitiatedJobForDisabledFeature() {
+        setupFeatures(/*enableJobsAPI=*/false);
+        DownloadUtils.setMinSdkVersionForUserInitiatedJobsForTesting(33);
+        Assert.assertTrue(DownloadUtils.isUserInitiatedJob(
+                TaskIds.DOWNLOAD_AUTO_RESUMPTION_UNMETERED_JOB_ID));
+        Assert.assertTrue(DownloadUtils.isUserInitiatedJob(
+                TaskIds.DOWNLOAD_AUTO_RESUMPTION_ANY_NETWORK_JOB_ID));
+        Assert.assertFalse(
+                DownloadUtils.isUserInitiatedJob(TaskIds.DOWNLOAD_AUTO_RESUMPTION_JOB_ID));
+        Assert.assertFalse(DownloadUtils.isUserInitiatedJob(TaskIds.DOWNLOAD_SERVICE_JOB_ID));
+        Assert.assertFalse(DownloadUtils.isUserInitiatedJob(TaskIds.DOWNLOAD_CLEANUP_JOB_ID));
+        Assert.assertFalse(DownloadUtils.isUserInitiatedJob(TaskIds.DOWNLOAD_LATER_JOB_ID));
+    }
 
     @Test
     @Feature({"Download"})
diff --git a/chrome/app/chrome_main_delegate.cc b/chrome/app/chrome_main_delegate.cc
index e9a402a27..5d9d463 100644
--- a/chrome/app/chrome_main_delegate.cc
+++ b/chrome/app/chrome_main_delegate.cc
@@ -111,6 +111,8 @@
 #include "base/threading/platform_thread_win.h"
 #include "base/win/atl.h"
 #include "base/win/resource_exhaustion.h"
+#include "chrome/browser/chrome_browser_main_win.h"
+#include "chrome/browser/win/browser_util.h"
 #include "chrome/child/v8_crashpad_support_win.h"
 #include "chrome/chrome_elf/chrome_elf_main.h"
 #include "chrome/common/child_process_logging.h"
@@ -515,6 +517,59 @@
 }
 #endif  // !BUILDFLAG(ENABLE_EXTENSIONS)
 
+#if BUILDFLAG(ENABLE_PROCESS_SINGLETON)
+absl::optional<int> AcquireProcessSingleton(
+    const base::FilePath& user_data_dir) {
+  // Configure the early process singleton experiment.
+  const base::CommandLine& command_line =
+      *base::CommandLine::ForCurrentProcess();
+  ChromeProcessSingleton::SetupEarlySingletonFeature(command_line);
+
+  if (ChromeProcessSingleton::IsEarlySingletonFeatureEnabled()) {
+    // Take the Chrome process singleton lock. The process can become the
+    // Browser process if it succeed to take the lock. Otherwise, the
+    // command-line is sent to the actual Browser process and the current
+    // process can be exited.
+    ChromeProcessSingleton::CreateInstance(user_data_dir);
+
+    ProcessSingleton::NotifyResult notify_result =
+        ChromeProcessSingleton::GetInstance()->NotifyOtherProcessOrCreate();
+    UMA_HISTOGRAM_ENUMERATION("Chrome.ProcessSingleton.NotifyResult",
+                              notify_result,
+                              ProcessSingleton::kNumNotifyResults);
+
+    switch (notify_result) {
+      case ProcessSingleton::PROCESS_NONE:
+        break;
+
+      case ProcessSingleton::PROCESS_NOTIFIED: {
+        // Ensure there is an instance of ResourceBundle that is initialized for
+        // localized string resource accesses.
+        ui::ScopedStartupResourceBundle startup_resource_bundle;
+        printf("%s\n", base::SysWideToNativeMB(
+                           base::UTF16ToWide(l10n_util::GetStringUTF16(
+                               IDS_USED_EXISTING_BROWSER)))
+                           .c_str());
+        return chrome::RESULT_CODE_NORMAL_EXIT_PROCESS_NOTIFIED;
+      }
+
+      case ProcessSingleton::PROFILE_IN_USE:
+        return chrome::RESULT_CODE_PROFILE_IN_USE;
+
+      case ProcessSingleton::LOCK_ERROR:
+        LOG(ERROR) << "Failed to create a ProcessSingleton for your profile "
+                      "directory. This means that running multiple instances "
+                      "would start multiple browser processes rather than "
+                      "opening a new window in the existing process. Aborting "
+                      "now to avoid profile corruption.";
+        return chrome::RESULT_CODE_PROFILE_IN_USE;
+    }
+  }
+
+  return absl::nullopt;
+}
+#endif
+
 struct MainFunction {
   const char* name;
   int (*function)(content::MainFunctionParams);
@@ -705,63 +760,35 @@
   }
 
 #if BUILDFLAG(ENABLE_PROCESS_SINGLETON)
-  // Configure the early process singleton experiment.
-  const base::CommandLine& command_line =
-      *base::CommandLine::ForCurrentProcess();
-  ChromeProcessSingleton::SetupEarlySingletonFeature(command_line);
+  base::FilePath user_data_dir;
+  if (!base::PathService::Get(chrome::DIR_USER_DATA, &user_data_dir)) {
+    return chrome::RESULT_CODE_MISSING_DATA;
+  }
 
-  if (ChromeProcessSingleton::IsEarlySingletonFeatureEnabled()) {
-    // Take the Chrome process singleton lock. The process can become the
-    // Browser process if it succeed to take the lock. Otherwise, the
-    // command-line is sent to the actual Browser process and the current
-    // process can be exited.
-    base::FilePath user_data_dir;
-    if (!base::PathService::Get(chrome::DIR_USER_DATA, &user_data_dir)) {
-      return chrome::RESULT_CODE_MISSING_DATA;
+  // On platforms that support the process rendezvous, acquire the process
+  // singleton. In case of failure, it means there is already a running browser
+  // instance that handled the command-line.
+  if (auto process_singleton_result = AcquireProcessSingleton(user_data_dir);
+      process_singleton_result.has_value()) {
+    // To ensure that the histograms emitted in this process are reported in
+    // case of early exit, report the metrics accumulated this session with a
+    // future session's metrics.
+    DeferBrowserMetrics(user_data_dir);
+
+#if BUILDFLAG(IS_WIN)
+    // In the case the process is not the singleton process, the uninstall tasks
+    // need to be executed here. A window will be displayed asking to close all
+    // running instances.
+    if (base::CommandLine::ForCurrentProcess()->HasSwitch(
+            switches::kUninstall)) {
+      // Ensure there is an instance of ResourceBundle that is initialized
+      // for localized string resource accesses.
+      ui::ScopedStartupResourceBundle startup_resource_bundle;
+      return DoUninstallTasks(browser_util::IsBrowserAlreadyRunning());
     }
+#endif
 
-    ChromeProcessSingleton::CreateInstance(user_data_dir);
-
-    ProcessSingleton::NotifyResult notify_result =
-        ChromeProcessSingleton::GetInstance()->NotifyOtherProcessOrCreate();
-    UMA_HISTOGRAM_ENUMERATION("Chrome.ProcessSingleton.NotifyResult",
-                              notify_result,
-                              ProcessSingleton::kNumNotifyResults);
-
-    // If |notify_result| is not PROCESS_NONE, this process will exit. To ensure
-    // that the histograms emitted in this process are reported, report the
-    // metrics accumulated this session with a future session's metrics.
-    if (notify_result != ProcessSingleton::PROCESS_NONE) {
-      DeferBrowserMetrics(user_data_dir);
-    }
-
-    switch (notify_result) {
-      case ProcessSingleton::PROCESS_NONE:
-        // No process already running, continue on to starting a new one.
-        break;
-
-      case ProcessSingleton::PROCESS_NOTIFIED: {
-        // Ensure there is an instance of ResourceBundle that is initialized for
-        // localized string resource accesses.
-        ui::ScopedStartupResourceBundle startup_resource_bundle;
-        printf("%s\n", base::SysWideToNativeMB(
-                           base::UTF16ToWide(l10n_util::GetStringUTF16(
-                               IDS_USED_EXISTING_BROWSER)))
-                           .c_str());
-        return chrome::RESULT_CODE_NORMAL_EXIT_PROCESS_NOTIFIED;
-      }
-
-      case ProcessSingleton::PROFILE_IN_USE:
-        return chrome::RESULT_CODE_PROFILE_IN_USE;
-
-      case ProcessSingleton::LOCK_ERROR:
-        LOG(ERROR) << "Failed to create a ProcessSingleton for your profile "
-                      "directory. This means that running multiple instances "
-                      "would start multiple browser processes rather than "
-                      "opening a new window in the existing process. Aborting "
-                      "now to avoid profile corruption.";
-        return chrome::RESULT_CODE_PROFILE_IN_USE;
-    }
+    return process_singleton_result;
   }
 #endif
 
diff --git a/chrome/app/resources/generated_resources_af.xtb b/chrome/app/resources/generated_resources_af.xtb
index 9d01ddd1..4d875e8 100644
--- a/chrome/app/resources/generated_resources_af.xtb
+++ b/chrome/app/resources/generated_resources_af.xtb
@@ -5040,7 +5040,6 @@
 <translation id="5027550639139316293">E-possertifikaat</translation>
 <translation id="5027562294707732951">Voeg uitbreiding by</translation>
 <translation id="5028445315206872221">Uitbreidings word op hierdie werf geblokkeer</translation>
-<translation id="5029568752722684782">Vee kopie uit</translation>
 <translation id="5029873138381728058">Kon nie VM'e nagaan nie</translation>
 <translation id="503155457707535043">Programme laai nou af</translation>
 <translation id="5032430150487044192">Kan nie QR-kode skep nie</translation>
@@ -5734,7 +5733,6 @@
 <translation id="5601823921345337195">Mag nie aan MIDI-toestelle koppel nie</translation>
 <translation id="5601833336918638013">Moenie werwe toelaat om Bluetooth-toestelle te soek nie</translation>
 <translation id="5602586420788540146">Maak in nuwe oortjiegroep oop</translation>
-<translation id="5602765853043467355">Vee boekmerke, geskiedenis, wagwoorde en meer van hierdie toestel af uit</translation>
 <translation id="5605758115928394442">'n Kennisgewing is na jou foon toe gestuur om te bevestig dat dit jy is.</translation>
 <translation id="5606849116180480101">{NUM_EXTENSIONS,plural, =1{Hierdie uitbreiding is geblokkeer}other{Hierdie uitbreidings is geblokkeer}}</translation>
 <translation id="560834977503641186">Wi-fi-sinkronisering, kom meer te wete</translation>
@@ -5787,7 +5785,6 @@
 <translation id="5641648607875312660">Skermskootprentredigeerder</translation>
 <translation id="5642508497713047">CRL-ondertekenaar</translation>
 <translation id="5643321261065707929">Beperkte netwerk</translation>
-<translation id="5643620609347735571">Vee uit en gaan voort</translation>
 <translation id="5646376287012673985">Ligging</translation>
 <translation id="5646558797914161501">Sakeman</translation>
 <translation id="5648021990716966815">Mikrofoonsok</translation>
@@ -7704,7 +7701,6 @@
 <translation id="7241389281993241388">Meld asseblief by <ph name="TOKEN_NAME" /> aan om die kliëntsertifikaat in te voer.</translation>
 <translation id="7241763419756062043">Kies jou soek- en blaaigehalte</translation>
 <translation id="7243092385765551741">Vee toegangsleutel uit?</translation>
-<translation id="7243632151880336635">Vee uit en meld af</translation>
 <translation id="7245162963905242662">Soek hierdie bladsy met Google …</translation>
 <translation id="7245628041916450754"><ph name="WIDTH" /> x <ph name="HEIGHT" /> (beste)</translation>
 <translation id="7246230585855757313">Sit jou sekuriteitsleutel weer in en probeer weer</translation>
@@ -8582,7 +8578,6 @@
 <translation id="7925285046818567682">Wag tans vir <ph name="HOST_NAME" /> …</translation>
 <translation id="7926423016278357561">Dit was nie ek nie.</translation>
 <translation id="7926975587469166629">Kaart se bynaam</translation>
-<translation id="7927610604078150317">Grootte: <ph name="CHROME_APP_SIZE" /></translation>
 <translation id="7928175190925744466">Het jy hierdie wagwoord reeds verander?</translation>
 <translation id="7929962904089429003">Maak die kieslys oop</translation>
 <translation id="7930294771522048157">Gestoorde betaalmetodes sal hier verskyn</translation>
@@ -9231,6 +9226,7 @@
 <translation id="8448729345478502352">Maak items op jou skerm kleiner of groter</translation>
 <translation id="8449008133205184768">Plak en pas by styl</translation>
 <translation id="8449036207308062757">Bestuur berging</translation>
+<translation id="8449347986464073209">Vee uit en meld af</translation>
 <translation id="8449836157089738489">Maak almal in nuwe oortjiegroep oop</translation>
 <translation id="8449869326050867919">Wagwoord is gedeel</translation>
 <translation id="8451512073679317615">assistent</translation>
diff --git a/chrome/app/resources/generated_resources_am.xtb b/chrome/app/resources/generated_resources_am.xtb
index 188b1b1..7201595 100644
--- a/chrome/app/resources/generated_resources_am.xtb
+++ b/chrome/app/resources/generated_resources_am.xtb
@@ -5031,7 +5031,6 @@
 <translation id="5027550639139316293">የኢሜይል ሰርቲፊኬት</translation>
 <translation id="5027562294707732951">ቅጥያ ያክሉ</translation>
 <translation id="5028445315206872221">በዚህ ጣቢያ ላይ ቅጥያዎች ታግደዋል</translation>
-<translation id="5029568752722684782">ቅጂን አጽዳ</translation>
 <translation id="5029873138381728058">VMsን መፈተሽ አልተሳካም</translation>
 <translation id="503155457707535043">መተግበሪያዎች በመውረድ ላይ</translation>
 <translation id="5032430150487044192">የQR ኮድ መፍጠር አልተቻለም</translation>
@@ -5725,7 +5724,6 @@
 <translation id="5601823921345337195">ከMIDI መሣሪያዎች ጋር እንዲገናኝ አልተፈቀደም</translation>
 <translation id="5601833336918638013">ጣቢያዎች የብሉቱዝ መሣሪያዎችን እንዲፈልጉ አይፍቀዱ</translation>
 <translation id="5602586420788540146">በአዲስ ትር ቡድን ውስጥ ይክፈቱ</translation>
-<translation id="5602765853043467355">ዕልባቶችን፣ ታሪክ፣ የይለፍ ቃላት እና ተጨማሪ ነገሮችን ከዚህ መሣሪያ ላይ አጽዳ</translation>
 <translation id="5605758115928394442">እርስዎ መሆንዎን ለማረጋገጥ አንድ ማሳወቂያ ወደ ስልክዎ ተልኳል።</translation>
 <translation id="5606849116180480101">{NUM_EXTENSIONS,plural, =1{ይህ ቅጥያ ታግዷል}one{እነዚህ ቅጥያዎች ታግደዋል}other{እነዚህ ቅጥያዎች ታግደዋል}}</translation>
 <translation id="560834977503641186">የWi-Fi ስምረት፣ የበለጠ ለመረዳት</translation>
@@ -5777,7 +5775,6 @@
 <translation id="5641648607875312660">የቅጽበታዊ ገፅ ዕይታ ምስል አርታዒ</translation>
 <translation id="5642508497713047">CRL ፈራሚ</translation>
 <translation id="5643321261065707929">የሚለካ አውታረ መረብ</translation>
-<translation id="5643620609347735571">አጽዳ እና ቀጥል</translation>
 <translation id="5646376287012673985">አካባቢ</translation>
 <translation id="5646558797914161501">ነጋዴ</translation>
 <translation id="5648021990716966815">የማይክሮፎን መሰኪያ</translation>
@@ -7697,7 +7694,6 @@
 <translation id="7241389281993241388">የደንበኛ እውቅና ማረጋገጫውን ለማስመጣት እባክዎ ወደ <ph name="TOKEN_NAME" /> ይግቡ።</translation>
 <translation id="7241763419756062043">የእርስዎን ፍለጋ እና የአሰሳ ጥራት ይምረጡ</translation>
 <translation id="7243092385765551741">የይለፍ ቁልፍ ይሰረዝ?</translation>
-<translation id="7243632151880336635">አጽዳና ዘግተህ ውጣ</translation>
 <translation id="7245162963905242662">ይህን ገጽ Google ላይ ፈልግ...</translation>
 <translation id="7245628041916450754"><ph name="WIDTH" /> x <ph name="HEIGHT" /> (ምርጥ)</translation>
 <translation id="7246230585855757313">የእርስዎን የደህንነት ቁልፍ እንደገና ያስገቡ እና ደግመው ይሞክሩ</translation>
@@ -8575,7 +8571,6 @@
 <translation id="7925285046818567682"><ph name="HOST_NAME" /> በመጠበቅ ላይ…</translation>
 <translation id="7926423016278357561">ይህ እኔ አልነበርኩም።</translation>
 <translation id="7926975587469166629">የካርድ ቅጽል ስም</translation>
-<translation id="7927610604078150317">መጠን፦ <ph name="CHROME_APP_SIZE" /></translation>
 <translation id="7928175190925744466">ይህን የይለፍ ቃለ አስቀድመው ለውጠዋል?</translation>
 <translation id="7929962904089429003">ምናሌውን ክፈት</translation>
 <translation id="7930294771522048157">የተቀመጡ የመክፈያ ዘዴዎች እዚህ ላይ ብቅ ይላሉ</translation>
@@ -9230,6 +9225,7 @@
 <translation id="8448729345478502352">በማያ ገጽዎ ላይ ያሉ ንጥሎችን ያሳንሱ ወይም ያተልቁ</translation>
 <translation id="8449008133205184768">ለጥፍና ቅጥ አዛምድ</translation>
 <translation id="8449036207308062757">የማከማቻ ያቀናብሩ</translation>
+<translation id="8449347986464073209">ሰርዝ እና ዘግተህ ውጣ</translation>
 <translation id="8449836157089738489">ሁሉንም በአዲስ ትር ቡድን ውስጥ ይክፈቱ</translation>
 <translation id="8449869326050867919">የይለፍ ቃል ተጋርቷል</translation>
 <translation id="8451512073679317615">ረዳት</translation>
diff --git a/chrome/app/resources/generated_resources_ar.xtb b/chrome/app/resources/generated_resources_ar.xtb
index 9ff1e5b0..8b941c31 100644
--- a/chrome/app/resources/generated_resources_ar.xtb
+++ b/chrome/app/resources/generated_resources_ar.xtb
@@ -5026,7 +5026,6 @@
 <translation id="5027550639139316293">شهادة البريد الإلكتروني</translation>
 <translation id="5027562294707732951">تثبيت إضافة</translation>
 <translation id="5028445315206872221">الإضافات محظورة على هذا الموقع الإلكتروني.</translation>
-<translation id="5029568752722684782">محو النسخة</translation>
 <translation id="5029873138381728058">‏تعذّر التحقّق من الأجهزة الافتراضية (VM).</translation>
 <translation id="503155457707535043">تنزيل التطبيقات</translation>
 <translation id="5032430150487044192">يتعذّر إنشاء رمز الاستجابة السريعة.</translation>
@@ -5720,7 +5719,6 @@
 <translation id="5601823921345337195">‏المواقع الإلكترونية التي لا يُسمح لها بالاتصال بأجهزة MIDI</translation>
 <translation id="5601833336918638013">عدم السماح للمواقع الإلكترونية بالبحث عن أجهزة تتضمّن بلوتوث</translation>
 <translation id="5602586420788540146">فتح في مجموعة علامات تبويب جديدة</translation>
-<translation id="5602765853043467355">محو الإشارات المرجعية والسجلّ وكلمات المرور وغيرها من البيانات على هذا الجهاز</translation>
 <translation id="5605758115928394442">تم إرسال إشعار إلى هاتفك لتأكيد هويتك.</translation>
 <translation id="5606849116180480101">{NUM_EXTENSIONS,plural, =1{تم حظر هذه الإضافة}zero{تم حظر هذه الإضافات}two{تم حظر هاتين الإضافتين}few{تم حظر هذه الإضافات}many{تم حظر هذه الإضافات}other{تم حظر هذه الإضافات}}</translation>
 <translation id="560834977503641186">مزيد من المعلومات عن ميزة "مزامنة الواي فاي"</translation>
@@ -5772,7 +5770,6 @@
 <translation id="5641648607875312660">محرِّر صور لقطات الشاشة</translation>
 <translation id="5642508497713047">‏التوقيع على قوائم إبطال الشهادات (CRL)</translation>
 <translation id="5643321261065707929">شبكة تفرض تكلفة استخدام</translation>
-<translation id="5643620609347735571">محو ومتابعة</translation>
 <translation id="5646376287012673985">الموقع الجغرافي</translation>
 <translation id="5646558797914161501">رجل أعمال</translation>
 <translation id="5648021990716966815">مقبس الميكروفون</translation>
@@ -7699,7 +7696,6 @@
 <translation id="7241389281993241388">يُرجى تسجيل الدخول إلى <ph name="TOKEN_NAME" /> لاستيراد شهادة العميل.</translation>
 <translation id="7241763419756062043">اختيار جودة البحث والتصفّح</translation>
 <translation id="7243092385765551741">هل تريد حذف مفتاح المرور؟</translation>
-<translation id="7243632151880336635">المحو والخروج</translation>
 <translation id="7245162963905242662">‏البحث في هذه الصفحة باستخدام Google…</translation>
 <translation id="7245628041916450754">‏<ph name="WIDTH" /> x <ph name="HEIGHT" /> (الأفضل)</translation>
 <translation id="7246230585855757313">أعِد إدخال مفتاح الأمان وحاول مجددًا</translation>
@@ -8576,7 +8572,6 @@
 <translation id="7925285046818567682">في انتظار <ph name="HOST_NAME" />‏ ...</translation>
 <translation id="7926423016278357561">لم يكن هذا أنا.</translation>
 <translation id="7926975587469166629">لقب البطاقة</translation>
-<translation id="7927610604078150317">الحجم: <ph name="CHROME_APP_SIZE" /></translation>
 <translation id="7928175190925744466">هل سبق وغيرت كلمة المرور هذه؟</translation>
 <translation id="7929962904089429003">فتح القائمة</translation>
 <translation id="7930294771522048157">ستظهر هنا طرق الدفع المحفوظة</translation>
@@ -9227,6 +9222,7 @@
 <translation id="8448729345478502352">تصغير العناصر المعروضة على شاشتك أو تكبيرها</translation>
 <translation id="8449008133205184768">لصق النمط ومطابقته</translation>
 <translation id="8449036207308062757">إدارة مساحة التخزين</translation>
+<translation id="8449347986464073209">الحذف وتسجيل الخروج</translation>
 <translation id="8449836157089738489">فتح الكل في مجموعة علامات تبويب جديدة</translation>
 <translation id="8449869326050867919">تمت مشاركة كلمة المرور</translation>
 <translation id="8451512073679317615">المساعد</translation>
diff --git a/chrome/app/resources/generated_resources_as.xtb b/chrome/app/resources/generated_resources_as.xtb
index 6e01849..ebb2e3c 100644
--- a/chrome/app/resources/generated_resources_as.xtb
+++ b/chrome/app/resources/generated_resources_as.xtb
@@ -5037,7 +5037,6 @@
 <translation id="5027550639139316293">ইমেইলৰ প্ৰমাণপত্ৰ</translation>
 <translation id="5027562294707732951">এক্সটেনশ্বন যোগ কৰক</translation>
 <translation id="5028445315206872221">এই ছাইটটোত এক্সটেনশ্বন অৱৰোধ কৰা হৈছে</translation>
-<translation id="5029568752722684782">প্ৰতিলিপিটো মচক</translation>
 <translation id="5029873138381728058">VM পৰীক্ষা কৰিব পৰা নগ’ল</translation>
 <translation id="503155457707535043">এপ্‌ ডাউনল’ড হৈ আছে</translation>
 <translation id="5032430150487044192">কিউআৰ ক’ড সৃষ্টি কৰিব নোৱাৰি</translation>
@@ -5731,7 +5730,6 @@
 <translation id="5601823921345337195">MIDI ডিভাইচৰ সৈতে সংযোগ কৰাৰ অনুমতি নাই</translation>
 <translation id="5601833336918638013">ছাইটক ব্লুটুথ ডিভাইচ বিচাৰিবলৈ নিদিব</translation>
 <translation id="5602586420788540146">নতুন টেবৰ গোটত খোলক</translation>
-<translation id="5602765853043467355">এই ডিভাইচৰ পৰা বুকমার্ক, ইতিহাস, পাছৱর্ড আৰু অধিক তথ্য মচক</translation>
 <translation id="5605758115928394442">এইগৰাকী আপুনিয়েই হয় বুলি নিশ্চিত কৰিবলৈ আপোনাৰ ফ'নলৈ এটা জাননী পঠিওৱা হৈছে।</translation>
 <translation id="5606849116180480101">{NUM_EXTENSIONS,plural, =1{এই এক্সটেনশ্বনটো অৱৰোধ কৰা হৈছে}one{এই এক্সটেনশ্বনসমূহ অৱৰোধ কৰা হৈছে}other{এই এক্সটেনশ্বনসমূহ অৱৰোধ কৰা হৈছে}}</translation>
 <translation id="560834977503641186">ৱাই-ফাই ছিংক, অধিক জানক</translation>
@@ -5783,7 +5781,6 @@
 <translation id="5641648607875312660">স্ক্ৰীনশ্বট প্ৰতিচ্ছবিৰ সম্পাদক</translation>
 <translation id="5642508497713047">CRL ছাইন কৰোঁতা</translation>
 <translation id="5643321261065707929">নিৰিখ-নিৰ্দিষ্ট নেটৱৰ্ক</translation>
-<translation id="5643620609347735571">মচক আৰু অব্যাহত ৰাখক</translation>
 <translation id="5646376287012673985">অৱস্থান</translation>
 <translation id="5646558797914161501">ব্যৱসায়ী</translation>
 <translation id="5648021990716966815">মাইকৰ জেক</translation>
@@ -7702,7 +7699,6 @@
 <translation id="7241389281993241388">ক্লাইণ্টৰ প্ৰমাণপত্ৰ আমদানি কৰিবলৈ <ph name="TOKEN_NAME" />ত ছাইন ইন কৰক।</translation>
 <translation id="7241763419756062043">আপোনাৰ চোৱা আৰু ব্ৰাউজ কৰাৰ গুণগত মান বাছনি কৰক</translation>
 <translation id="7243092385765551741">পাছকী মচিবনে?</translation>
-<translation id="7243632151880336635">মচক আৰু ছাইন আউট কৰক</translation>
 <translation id="7245162963905242662">Googleৰ জৰিয়তে এই পৃষ্ঠাখন সন্ধান কৰক...</translation>
 <translation id="7245628041916450754"><ph name="WIDTH" /> x <ph name="HEIGHT" /> (উত্তম)</translation>
 <translation id="7246230585855757313">আপোনাৰ সুৰক্ষা চাবিটো পুনৰাই দি চেষ্টা কৰক</translation>
@@ -8580,7 +8576,6 @@
 <translation id="7925285046818567682"><ph name="HOST_NAME" />ৰ বাবে অপেক্ষাৰত...</translation>
 <translation id="7926423016278357561">এয়া মই নহয়।</translation>
 <translation id="7926975587469166629">কার্ডৰ উপনাম</translation>
-<translation id="7927610604078150317">আকাৰ: <ph name="CHROME_APP_SIZE" /></translation>
 <translation id="7928175190925744466">ইতিমধ্যে এই পাছৱৰ্ডটো সলনি কৰিছে নেকি?</translation>
 <translation id="7929962904089429003">মেনু খোলক</translation>
 <translation id="7930294771522048157">ছেভ কৰি থোৱা পৰিশোধ পদ্ধতিসমূহ ইয়াত দেখা পোৱা যাব</translation>
@@ -9229,6 +9224,7 @@
 <translation id="8448729345478502352">আপোনাৰ স্ক্ৰীনত থকা বস্তুবোৰ সৰু বা ডাঙৰ কৰক</translation>
 <translation id="8449008133205184768">ইয়াত থকা ষ্টাইলৰ সৈতে মিলাকৈ পে’ষ্ট কৰক</translation>
 <translation id="8449036207308062757">ষ্ট’ৰেজ পৰিচালনা কৰক</translation>
+<translation id="8449347986464073209">মচক আৰু ছাইন আউট কৰক</translation>
 <translation id="8449836157089738489">নতুন টেবৰ গোটত আটাইবোৰ খোলক</translation>
 <translation id="8449869326050867919">পাছৱৰ্ড শ্বেয়াৰ কৰা হ'ল</translation>
 <translation id="8451512073679317615">Assistant</translation>
diff --git a/chrome/app/resources/generated_resources_az.xtb b/chrome/app/resources/generated_resources_az.xtb
index cf5941c..35d274c 100644
--- a/chrome/app/resources/generated_resources_az.xtb
+++ b/chrome/app/resources/generated_resources_az.xtb
@@ -5031,7 +5031,6 @@
 <translation id="5027550639139316293">E-poçt Sertifikatı</translation>
 <translation id="5027562294707732951">Artırma əlavə edin</translation>
 <translation id="5028445315206872221">Bu saytda artırmalar bloklanıb</translation>
-<translation id="5029568752722684782">Kopyanı təmizləyin</translation>
 <translation id="5029873138381728058">VM'ləri yoxlamaq alınmadı</translation>
 <translation id="503155457707535043">Tətbiqlər endirilir</translation>
 <translation id="5032430150487044192">QR kod yaratmaq olmur</translation>
@@ -5725,7 +5724,6 @@
 <translation id="5601823921345337195">MIDI cihazlarına qoşulmağa icazə verilməyib</translation>
 <translation id="5601833336918638013">Saytlara Bluetooth cihazlarını axtarmağa icazə verməyin</translation>
 <translation id="5602586420788540146">Yeni tab qrupunda açın</translation>
-<translation id="5602765853043467355">Bu cihazda əlfəcin, tarixçə, parollar və daha çoxunu silin</translation>
 <translation id="5605758115928394442">Kimliyinizi doğrulamaq üçün telefona bildiriş göndərildi.</translation>
 <translation id="5606849116180480101">{NUM_EXTENSIONS,plural, =1{Bu artırma bloklanıb}other{Bu artırmalar bloklanıb}}</translation>
 <translation id="560834977503641186">Wi-Fi Sinxronlaşdırması, Ətraflı Məlumat</translation>
@@ -5777,7 +5775,6 @@
 <translation id="5641648607875312660">Skrinşot Şəkil Redaktoru</translation>
 <translation id="5642508497713047">CRL İmzalayıcısı</translation>
 <translation id="5643321261065707929">Limitli şəbəkə</translation>
-<translation id="5643620609347735571">Silin və davam edin</translation>
 <translation id="5646376287012673985">Məkan</translation>
 <translation id="5646558797914161501">Biznesmen</translation>
 <translation id="5648021990716966815">Mikrofon yuvası</translation>
@@ -7694,7 +7691,6 @@
 <translation id="7241389281993241388">Klient sertifikatını import etmək üçün <ph name="TOKEN_NAME" /> üzərinə daxil olun.</translation>
 <translation id="7241763419756062043">Axtarış və baxış keyfiyyətinizi seçin</translation>
 <translation id="7243092385765551741">Giriş açarı silinsin?</translation>
-<translation id="7243632151880336635">Silin və çıxış edin</translation>
 <translation id="7245162963905242662">Google ilə bu Səhifəni axtarın...</translation>
 <translation id="7245628041916450754"><ph name="WIDTH" /> x <ph name="HEIGHT" /> (Ən yaxşı)</translation>
 <translation id="7246230585855757313">Güvənlik açarını yenidən daxil edib cəhd edin</translation>
@@ -8574,7 +8570,6 @@
 <translation id="7925285046818567682"><ph name="HOST_NAME" /> gözlənilir...</translation>
 <translation id="7926423016278357561">Mən deyildim.</translation>
 <translation id="7926975587469166629">Kart ləqəbi</translation>
-<translation id="7927610604078150317">Ölçü: <ph name="CHROME_APP_SIZE" /></translation>
 <translation id="7928175190925744466">Artıq bu parolu dəyişmisiniz?</translation>
 <translation id="7929962904089429003">Menyunu açın</translation>
 <translation id="7930294771522048157">Yadda saxlanmış ödəniş üsulları burada görünəcək</translation>
@@ -9223,6 +9218,7 @@
 <translation id="8448729345478502352">Elementləri ekranda balacalaşdırın və ya böyüdün</translation>
 <translation id="8449008133205184768">Üslubu Yerləşdirin və Uyğunlaşdırın</translation>
 <translation id="8449036207308062757">Yaddaş idarəetməsi</translation>
+<translation id="8449347986464073209">Silin və çıxın</translation>
 <translation id="8449836157089738489">Hamısını yeni tab qrupunda açın</translation>
 <translation id="8449869326050867919">Parol paylaşıldı</translation>
 <translation id="8451512073679317615">assistent</translation>
diff --git a/chrome/app/resources/generated_resources_be.xtb b/chrome/app/resources/generated_resources_be.xtb
index 71c51cc0..d950c77 100644
--- a/chrome/app/resources/generated_resources_be.xtb
+++ b/chrome/app/resources/generated_resources_be.xtb
@@ -5023,7 +5023,6 @@
 <translation id="5027550639139316293">Сертыфікат электроннай пошты</translation>
 <translation id="5027562294707732951">Дадаць пашырэнне</translation>
 <translation id="5028445315206872221">Пашырэнні на гэтым сайце заблакіраваны</translation>
-<translation id="5029568752722684782">Выдаліць копію</translation>
 <translation id="5029873138381728058">Не ўдалося праверыць віртуальныя машыны</translation>
 <translation id="503155457707535043">Ідзе спампоўванне праграм</translation>
 <translation id="5032430150487044192">Не ўдалося стварыць QR-код</translation>
@@ -5717,7 +5716,6 @@
 <translation id="5601823921345337195">Не дазволена падключацца да прылад MIDI</translation>
 <translation id="5601833336918638013">Сайтам забаронена шукаць прылады з Bluetooth</translation>
 <translation id="5602586420788540146">Адкрыць у новай групе ўкладак</translation>
-<translation id="5602765853043467355">Выдаліць закладкі, гісторыю, паролі і іншае з гэтай прылады</translation>
 <translation id="5605758115928394442">Вам на тэлефон для пацвярджэння вашай асобы адпраўлена апавяшчэнне.</translation>
 <translation id="5606849116180480101">{NUM_EXTENSIONS,plural, =1{Гэта пашырэнне заблакіравана}one{Гэтыя пашырэнні заблакіраваны}few{Гэтыя пашырэнні заблакіраваны}many{Гэтыя пашырэнні заблакіраваны}other{Гэтыя пашырэнні заблакіраваны}}</translation>
 <translation id="560834977503641186">Сінхранізацыя параметраў Wi-Fi, даведацца больш</translation>
@@ -5769,7 +5767,6 @@
 <translation id="5641648607875312660">Рэдактар здымкаў экрана</translation>
 <translation id="5642508497713047">Сродак подпісу CRL</translation>
 <translation id="5643321261065707929">Сетка з падлікам трафіка</translation>
-<translation id="5643620609347735571">Выдаліць і працягнуць</translation>
 <translation id="5646376287012673985">Месцазнаходжанне</translation>
 <translation id="5646558797914161501">Бізнесмен</translation>
 <translation id="5648021990716966815">Раздым для мікрафона</translation>
@@ -7692,7 +7689,6 @@
 <translation id="7241389281993241388">Увайдзіце ў <ph name="TOKEN_NAME" />, каб імпартаваць кліенцкі сертыфікат.</translation>
 <translation id="7241763419756062043">Задайце параметры пошуку і прагляду сайтаў</translation>
 <translation id="7243092385765551741">Выдаліць ключ доступу?</translation>
-<translation id="7243632151880336635">Выдаліць і выйсці</translation>
 <translation id="7245162963905242662">П&amp;ошук на старонцы з дапамогай Google...</translation>
 <translation id="7245628041916450754"><ph name="WIDTH" /> × <ph name="HEIGHT" /> (найлепшая)</translation>
 <translation id="7246230585855757313">Устаўце ключ бяспекі яшчэ раз і паўтарыце спробу</translation>
@@ -8570,7 +8566,6 @@
 <translation id="7925285046818567682">Чакаецца <ph name="HOST_NAME" />...</translation>
 <translation id="7926423016278357561">Гэта быў не мой профіль.</translation>
 <translation id="7926975587469166629">Псеўданім карткі</translation>
-<translation id="7927610604078150317">Памер: <ph name="CHROME_APP_SIZE" /></translation>
 <translation id="7928175190925744466">Вы ўжо змянілі гэты пароль?</translation>
 <translation id="7929962904089429003">Адкрыць меню</translation>
 <translation id="7930294771522048157">Захаваныя спосабы аплаты з'явяцца тут</translation>
@@ -9219,6 +9214,7 @@
 <translation id="8448729345478502352">Павелічэнне або памяншэнне элементаў на экране</translation>
 <translation id="8449008133205184768">Уставіць з улікам стылю</translation>
 <translation id="8449036207308062757">Кіраванне сховішчам</translation>
+<translation id="8449347986464073209">Выдаліць і выйсці</translation>
 <translation id="8449836157089738489">Адкрыць усе ў новай групе ўкладак</translation>
 <translation id="8449869326050867919">Пароль абагулены</translation>
 <translation id="8451512073679317615">памочнік</translation>
diff --git a/chrome/app/resources/generated_resources_bg.xtb b/chrome/app/resources/generated_resources_bg.xtb
index c2cadb28..723081a 100644
--- a/chrome/app/resources/generated_resources_bg.xtb
+++ b/chrome/app/resources/generated_resources_bg.xtb
@@ -5037,7 +5037,6 @@
 <translation id="5027550639139316293">Сертификат за имейл</translation>
 <translation id="5027562294707732951">Добавяне на разширението</translation>
 <translation id="5028445315206872221">Разширенията са блокирани на този сайт</translation>
-<translation id="5029568752722684782">Изчистване на копието</translation>
 <translation id="5029873138381728058">Проверката на виртуалните машини не бе успешна</translation>
 <translation id="503155457707535043">Приложенията се изтеглят</translation>
 <translation id="5032430150487044192">Не може да се създаде QR код</translation>
@@ -5731,7 +5730,6 @@
 <translation id="5601823921345337195">Сайтове без разрешение за свързване с MIDI устройства</translation>
 <translation id="5601833336918638013">Забраняване на сайтовете да търсят устройства с Bluetooth</translation>
 <translation id="5602586420788540146">Отваряне в нова група раздели</translation>
-<translation id="5602765853043467355">Изчистване на отметките, историята, паролите и др. от това устройство</translation>
 <translation id="5605758115928394442">На телефона ви бе изпратено известие, за да потвърдите, че това сте вие.</translation>
 <translation id="5606849116180480101">{NUM_EXTENSIONS,plural, =1{Това разширение е блокирано}other{Тези разширения са блокирани}}</translation>
 <translation id="560834977503641186">Синхронизиране на Wi-Fi, научете повече</translation>
@@ -5784,7 +5782,6 @@
 <translation id="5641648607875312660">Редактор на екранни снимки</translation>
 <translation id="5642508497713047">Подписващ CRL</translation>
 <translation id="5643321261065707929">Мрежа с отчитане</translation>
-<translation id="5643620609347735571">Изчистване и продължаване</translation>
 <translation id="5646376287012673985">Местоположение</translation>
 <translation id="5646558797914161501">Бизнесмен</translation>
 <translation id="5648021990716966815">Жак за микрофон</translation>
@@ -7702,7 +7699,6 @@
 <translation id="7241389281993241388">Моля, влезте в(ъв) <ph name="TOKEN_NAME" />, за да импортирате сертификата за клиентската програма.</translation>
 <translation id="7241763419756062043">Изберете ниво на качеството при търсене и сърфиране</translation>
 <translation id="7243092385765551741">Искате ли да изтриете ключа за достъп?</translation>
-<translation id="7243632151880336635">Изчистване и изход</translation>
 <translation id="7245162963905242662">&amp;Търсене на тази страница с Google...</translation>
 <translation id="7245628041916450754"><ph name="WIDTH" /> x <ph name="HEIGHT" /> (най-добро)</translation>
 <translation id="7246230585855757313">Поставете отново ключа си за сигурност и опитайте пак</translation>
@@ -8580,7 +8576,6 @@
 <translation id="7925285046818567682">Изчаква се отговор от <ph name="HOST_NAME" />...</translation>
 <translation id="7926423016278357561">Това не бях аз.</translation>
 <translation id="7926975587469166629">Псевдоним на картата</translation>
-<translation id="7927610604078150317">Размер: <ph name="CHROME_APP_SIZE" /></translation>
 <translation id="7928175190925744466">Променихте ли вече тази парола?</translation>
 <translation id="7929962904089429003">Отваряне на менюто</translation>
 <translation id="7930294771522048157">Тук ще се покажат запазените начини на плащане</translation>
@@ -9230,6 +9225,7 @@
 <translation id="8448729345478502352">Смаляване или уголемяване на елементите на екрана</translation>
 <translation id="8449008133205184768">Поставяне и съобразяване със стила</translation>
 <translation id="8449036207308062757">Управление на хранилището</translation>
+<translation id="8449347986464073209">Изтриване и излизане от профила</translation>
 <translation id="8449836157089738489">Отваряне на всички в нова група раздели</translation>
 <translation id="8449869326050867919">Паролата е споделена</translation>
 <translation id="8451512073679317615">асистент</translation>
diff --git a/chrome/app/resources/generated_resources_bn.xtb b/chrome/app/resources/generated_resources_bn.xtb
index 810c9fb..62d0df9 100644
--- a/chrome/app/resources/generated_resources_bn.xtb
+++ b/chrome/app/resources/generated_resources_bn.xtb
@@ -5042,7 +5042,6 @@
 <translation id="5027550639139316293">ইমেল সার্টিফিকেট</translation>
 <translation id="5027562294707732951">এক্সটেনশন যোগ করুন</translation>
 <translation id="5028445315206872221">এই সাইটে এক্সটেনশন ব্লক করা আছে</translation>
-<translation id="5029568752722684782">কপি সাফ করুন</translation>
 <translation id="5029873138381728058">VM চেক করা যায়নি</translation>
 <translation id="503155457707535043">অ্যাপ ডাউনলোড করা হচ্ছে</translation>
 <translation id="5032430150487044192">QR কোড তৈরি করা যায়নি</translation>
@@ -5736,7 +5735,6 @@
 <translation id="5601823921345337195">MIDI ডিভাইসের সাথে কানেক্ট করার অনুমতি দেওয়া হয়নি</translation>
 <translation id="5601833336918638013">সাইটকে ব্লুটুথ ডিভাইস খোঁজার জন্য অনুমতি দেবেন না</translation>
 <translation id="5602586420788540146">নতুন ট্যাব গ্রুপে খুলুন</translation>
-<translation id="5602765853043467355">এই ডিভাইসের বুকমার্ক, ইতিহাস, পাসওয়ার্ড এবং আরও অনেক কিছু খালি করুন</translation>
 <translation id="5605758115928394442">এটি যে আপনি তা কনফার্ম করতে আপনার ফোনে একটি বিজ্ঞপ্তি পাঠানো হয়েছে।</translation>
 <translation id="5606849116180480101">{NUM_EXTENSIONS,plural, =1{এই এক্সটেনশন ব্লক করা আছে}one{এই এক্সটেনশন ব্লক করা আছে}other{এই এক্সটেনশন ব্লক করা আছে}}</translation>
 <translation id="560834977503641186">Wi-Fi সিঙ্ক, আরও জানুন</translation>
@@ -5789,7 +5787,6 @@
 <translation id="5641648607875312660">স্ক্রিনশট ইমেজ এডিটর</translation>
 <translation id="5642508497713047">CRL স্বাক্ষরকারী</translation>
 <translation id="5643321261065707929">মিটার্ড নেটওয়ার্ক</translation>
-<translation id="5643620609347735571">খালি করুন এবং চালিয়ে যান</translation>
 <translation id="5646376287012673985">লোকেশন</translation>
 <translation id="5646558797914161501">ব্যবসায়ী</translation>
 <translation id="5648021990716966815">মাইক জ্যাক</translation>
@@ -7710,7 +7707,6 @@
 <translation id="7241389281993241388">ক্লায়েন্ট সার্টিফিকেট ইমপোর্ট করতে অনুগ্রহ করে <ph name="TOKEN_NAME" />-এ সাইন-ইন করুন৷</translation>
 <translation id="7241763419756062043">আপনার সার্চ এবং ব্রাউজিং কোয়ালিটি বেছে নিন</translation>
 <translation id="7243092385765551741">পাসকী মুছে দেবেন?</translation>
-<translation id="7243632151880336635">সাফ করে সাইন-আউট করুন</translation>
 <translation id="7245162963905242662">Google ব্যবহার করে এই পৃষ্ঠা সার্চ করুন...</translation>
 <translation id="7245628041916450754"><ph name="WIDTH" /> x <ph name="HEIGHT" /> (সর্বোত্তম)</translation>
 <translation id="7246230585855757313">আপনার নিরাপত্তা কী আবার লিখুন এবং আবার চেষ্টা করুন</translation>
@@ -8587,7 +8583,6 @@
 <translation id="7925285046818567682"><ph name="HOST_NAME" />-এর জন্য অপেক্ষা করা হচ্ছে...</translation>
 <translation id="7926423016278357561">এটা আমি নই।</translation>
 <translation id="7926975587469166629">কার্ডের বিশেষ নাম</translation>
-<translation id="7927610604078150317">সাইজ: <ph name="CHROME_APP_SIZE" /></translation>
 <translation id="7928175190925744466">এই পাসওয়ার্ড আগে থেকেই পরিবর্তন করেছেন?</translation>
 <translation id="7929962904089429003">মেনুটি খুলুন</translation>
 <translation id="7930294771522048157">এখানে সেভ করা পেমেন্টের পদ্ধতিগুলি দেখা যাবে</translation>
@@ -9237,6 +9232,7 @@
 <translation id="8448729345478502352">আপনার স্ক্রিনে আইটেমগুলি ছোট অথবা বড় করুন</translation>
 <translation id="8449008133205184768">পেস্ট ও ম্যাচ স্টাইল</translation>
 <translation id="8449036207308062757">স্টোরেজ পরিচালনা করুন</translation>
+<translation id="8449347986464073209">মুছুন ও সাইন-আউট করুন</translation>
 <translation id="8449836157089738489">সবকটি নতুন ট্যাব গ্রুপে খুলুন</translation>
 <translation id="8449869326050867919">পাসওয়ার্ড শেয়ার করা হয়েছে</translation>
 <translation id="8451512073679317615">সহায়ক</translation>
diff --git a/chrome/app/resources/generated_resources_bs.xtb b/chrome/app/resources/generated_resources_bs.xtb
index 0523af0..80fa783 100644
--- a/chrome/app/resources/generated_resources_bs.xtb
+++ b/chrome/app/resources/generated_resources_bs.xtb
@@ -5049,7 +5049,6 @@
 <translation id="5027550639139316293">Potvrda za e-poštu</translation>
 <translation id="5027562294707732951">Dodaj ekstenziju</translation>
 <translation id="5028445315206872221">Ekstenzije su blokirane na ovoj web lokaciji</translation>
-<translation id="5029568752722684782">Obriši kopiju</translation>
 <translation id="5029873138381728058">Provjera VM-ova nije uspjela</translation>
 <translation id="503155457707535043">Preuzimanje aplikacija</translation>
 <translation id="5032430150487044192">Nije moguće kreirati QR kôd</translation>
@@ -5743,7 +5742,6 @@
 <translation id="5601823921345337195">Nije dozvoljeno povezivanje na MIDI uređaje</translation>
 <translation id="5601833336918638013">Nemoj dozvoliti web lokacijama da pretraže Bluetooth uređaje</translation>
 <translation id="5602586420788540146">Otvori u novoj grupi kartica</translation>
-<translation id="5602765853043467355">Obriši oznake, historiju, lozinke i drugo s ovog uređaja</translation>
 <translation id="5605758115928394442">Na vaš telefon je poslano obavještenje da potvrdimo vaš identitet.</translation>
 <translation id="5606849116180480101">{NUM_EXTENSIONS,plural, =1{Ova ekstenzija je blokirana}one{Ove ekstenzije su blokirane}few{Ove ekstenzije su blokirane}other{Ove ekstenzije su blokirane}}</translation>
 <translation id="560834977503641186">WiFi sinhronizacija, saznajte više</translation>
@@ -5795,7 +5793,6 @@
 <translation id="5641648607875312660">Uređivač slika snimaka ekrana</translation>
 <translation id="5642508497713047">Potpisnik CRL-a</translation>
 <translation id="5643321261065707929">Mreža s naplatom</translation>
-<translation id="5643620609347735571">Obriši i nastavi</translation>
 <translation id="5646376287012673985">Lokacija</translation>
 <translation id="5646558797914161501">Biznismen</translation>
 <translation id="5648021990716966815">Priključak za mikrofon</translation>
@@ -7719,7 +7716,6 @@
 <translation id="7241389281993241388">Prijavite se na <ph name="TOKEN_NAME" /> da uvezete potvrdu klijenta.</translation>
 <translation id="7241763419756062043">Odaberite kvalitet pretraživanja i pregledanja</translation>
 <translation id="7243092385765551741">Izbrisati pristupni ključ?</translation>
-<translation id="7243632151880336635">Obriši i odjavi me</translation>
 <translation id="7245162963905242662">Pretraživa&amp;nje ove stranice putem Googlea…</translation>
 <translation id="7245628041916450754"><ph name="WIDTH" /> x <ph name="HEIGHT" /> (Najbolje)</translation>
 <translation id="7246230585855757313">Ponovo umetnite sigurnosni ključ i pokušajte ponovo</translation>
@@ -8599,7 +8595,6 @@
 <translation id="7925285046818567682">Čeka se <ph name="HOST_NAME" />...</translation>
 <translation id="7926423016278357561">To nisam bio/la ja</translation>
 <translation id="7926975587469166629">Nadimak kartice</translation>
-<translation id="7927610604078150317">Veličina: <ph name="CHROME_APP_SIZE" /></translation>
 <translation id="7928175190925744466">Već ste promijenili ovu lozinku?</translation>
 <translation id="7929962904089429003">Otvorite meni</translation>
 <translation id="7930294771522048157">Ovdje će se prikazati vaši sačuvani načini plaćanja</translation>
@@ -9249,6 +9244,7 @@
 <translation id="8448729345478502352">Smanjite ili povećajte stavke na ekranu</translation>
 <translation id="8449008133205184768">Stil lijepljenja i podudaranja</translation>
 <translation id="8449036207308062757">Upravljaj prostorom za pohranu</translation>
+<translation id="8449347986464073209">Izbriši i odjavi</translation>
 <translation id="8449836157089738489">Otvori sve u novoj grupi kartica</translation>
 <translation id="8449869326050867919">Lozinka je podijeljena</translation>
 <translation id="8451512073679317615">asistent</translation>
diff --git a/chrome/app/resources/generated_resources_ca.xtb b/chrome/app/resources/generated_resources_ca.xtb
index 0950a30..70dd3cb 100644
--- a/chrome/app/resources/generated_resources_ca.xtb
+++ b/chrome/app/resources/generated_resources_ca.xtb
@@ -5033,7 +5033,6 @@
 <translation id="5027550639139316293">Certificat de correu electrònic</translation>
 <translation id="5027562294707732951">Afegeix l'extensió</translation>
 <translation id="5028445315206872221">Les extensions estan bloquejades en aquest lloc web</translation>
-<translation id="5029568752722684782">Esborra la còpia</translation>
 <translation id="5029873138381728058">No s'han pogut comprovar les màquines virtuals</translation>
 <translation id="503155457707535043">S'estan baixant les aplicacions</translation>
 <translation id="5032430150487044192">No es pot crear el codi QR</translation>
@@ -5728,7 +5727,6 @@
 <translation id="5601823921345337195">Sense permís per connectar-se a dispositius MIDI</translation>
 <translation id="5601833336918638013">No permetis que els llocs web cerquin dispositius Bluetooth</translation>
 <translation id="5602586420788540146">Obre en un grup de pestanyes nou</translation>
-<translation id="5602765853043467355">Esborra les adreces d'interès, l'historial, les contrasenyes i altres dades d'aquest dispositiu</translation>
 <translation id="5605758115928394442">S'ha enviat una notificació al teu telèfon per confirmar la teva identitat.</translation>
 <translation id="5606849116180480101">{NUM_EXTENSIONS,plural, =1{Aquesta extensió està bloquejada}other{Aquestes extensions estan bloquejades}}</translation>
 <translation id="560834977503641186">Sincronització Wi‑Fi, més informació</translation>
@@ -5779,7 +5777,6 @@
 <translation id="5641648607875312660">Editor d'imatges de captura de pantalla</translation>
 <translation id="5642508497713047">Signant de CRL</translation>
 <translation id="5643321261065707929">Xarxa d'ús mesurat</translation>
-<translation id="5643620609347735571">Esborra i continua</translation>
 <translation id="5646376287012673985">Ubicació</translation>
 <translation id="5646558797914161501">Home de negocis</translation>
 <translation id="5648021990716966815">Connector per al micròfon</translation>
@@ -7698,7 +7695,6 @@
 <translation id="7241389281993241388">Inicieu la sessió a <ph name="TOKEN_NAME" /> per importar el certificat de client.</translation>
 <translation id="7241763419756062043">Tria la qualitat de cerca i navegació</translation>
 <translation id="7243092385765551741">Vols suprimir la clau d'accés?</translation>
-<translation id="7243632151880336635">Esborra i tanca la sessió</translation>
 <translation id="7245162963905242662">Cerc&amp;a aquesta pàgina amb Google...</translation>
 <translation id="7245628041916450754"><ph name="WIDTH" /> x <ph name="HEIGHT" /> (millor resolució)</translation>
 <translation id="7246230585855757313">Torna a inserir la clau de seguretat i torna-ho a provar</translation>
@@ -8578,7 +8574,6 @@
 <translation id="7925285046818567682">Esperant <ph name="HOST_NAME" />...</translation>
 <translation id="7926423016278357561">No era jo.</translation>
 <translation id="7926975587469166629">Àlies de la targeta</translation>
-<translation id="7927610604078150317">Mida: <ph name="CHROME_APP_SIZE" /></translation>
 <translation id="7928175190925744466">Ja has canviat aquesta contrasenya?</translation>
 <translation id="7929962904089429003">Obre el menú</translation>
 <translation id="7930294771522048157">Les formes de pagament desades es mostraran aquí</translation>
@@ -9229,6 +9224,7 @@
 <translation id="8448729345478502352">Amplia o redueix els elements de la pantalla</translation>
 <translation id="8449008133205184768">Enganxa i ajusta l'estil</translation>
 <translation id="8449036207308062757">Gestiona l'emmagatzematge</translation>
+<translation id="8449347986464073209">Suprimeix i tanca la sessió</translation>
 <translation id="8449836157089738489">Obre'ls tots en un grup de pestanyes nou</translation>
 <translation id="8449869326050867919">S'ha compartit la contrasenya</translation>
 <translation id="8451512073679317615">Assistent</translation>
diff --git a/chrome/app/resources/generated_resources_cs.xtb b/chrome/app/resources/generated_resources_cs.xtb
index 375955c..8f93e54 100644
--- a/chrome/app/resources/generated_resources_cs.xtb
+++ b/chrome/app/resources/generated_resources_cs.xtb
@@ -5025,7 +5025,6 @@
 <translation id="5027550639139316293">E-mailový certifikát</translation>
 <translation id="5027562294707732951">Přidat rozšíření</translation>
 <translation id="5028445315206872221">Rozšíření jsou na tomto webu blokována</translation>
-<translation id="5029568752722684782">Vymazat kopii</translation>
 <translation id="5029873138381728058">Virtuální počítače se nepodařilo zkontrolovat</translation>
 <translation id="503155457707535043">Aplikace se stahují</translation>
 <translation id="5032430150487044192">QR kód nelze vytvořit</translation>
@@ -5719,7 +5718,6 @@
 <translation id="5601823921345337195">Zákaz připojovat se k zařízením MIDI</translation>
 <translation id="5601833336918638013">Nepovolovat webům vyhledávat zařízení Bluetooth</translation>
 <translation id="5602586420788540146">Otevřít v nové skupině karet</translation>
-<translation id="5602765853043467355">Vymazat z tohoto zařízení záložky, historii, hesla a další údaje</translation>
 <translation id="5605758115928394442">Odeslali jsme vám na telefon oznámení, abychom si ověřili, zda jste to skutečně vy.</translation>
 <translation id="5606849116180480101">{NUM_EXTENSIONS,plural, =1{Toto rozšíření je blokováno}few{Tato rozšíření jsou blokována}many{Tato rozšíření jsou blokována}other{Tato rozšíření jsou blokována}}</translation>
 <translation id="560834977503641186">Synchronizace Wi-Fi, další informace</translation>
@@ -5769,7 +5767,6 @@
 <translation id="5641648607875312660">Editor obrázků snímků obrazovek</translation>
 <translation id="5642508497713047">Autor podpisu CRL</translation>
 <translation id="5643321261065707929">Měřená síť</translation>
-<translation id="5643620609347735571">Vymazat a pokračovat</translation>
 <translation id="5646376287012673985">Poloha</translation>
 <translation id="5646558797914161501">Businessman</translation>
 <translation id="5648021990716966815">Konektor mikrofonu</translation>
@@ -7690,7 +7687,6 @@
 <translation id="7241389281993241388">Chcete-li importovat certifikát klienta, přihlaste se prosím do zařízení <ph name="TOKEN_NAME" />.</translation>
 <translation id="7241763419756062043">Vyberte si kvalitu vyhledávání a procházení</translation>
 <translation id="7243092385765551741">Smazat přístupový klíč?</translation>
-<translation id="7243632151880336635">Vymazat a odhlásit se</translation>
 <translation id="7245162963905242662">Pro&amp;hledat tuto stránku Googlem…</translation>
 <translation id="7245628041916450754"><ph name="WIDTH" /> × <ph name="HEIGHT" /> (nejlepší)</translation>
 <translation id="7246230585855757313">Opět bezpečností klíč vložte a zkuste to znovu</translation>
@@ -8567,7 +8563,6 @@
 <translation id="7925285046818567682">Čekání na <ph name="HOST_NAME" />...</translation>
 <translation id="7926423016278357561">To jsem nebyl(a) já.</translation>
 <translation id="7926975587469166629">Přezdívka karty</translation>
-<translation id="7927610604078150317">Velikost: <ph name="CHROME_APP_SIZE" /></translation>
 <translation id="7928175190925744466">Už jste toto heslo změnili?</translation>
 <translation id="7929962904089429003">Otevřít nabídku</translation>
 <translation id="7930294771522048157">Zde se budou zobrazovat uložené platební metody</translation>
@@ -9217,6 +9212,7 @@
 <translation id="8448729345478502352">Umožňuje zvětšit nebo zmenšit položky na obrazovce</translation>
 <translation id="8449008133205184768">Vložit a použít odpovídající styl</translation>
 <translation id="8449036207308062757">Správa úložiště</translation>
+<translation id="8449347986464073209">Vymazat a odhlásit se</translation>
 <translation id="8449836157089738489">Otevřít vše v nové skupině karet</translation>
 <translation id="8449869326050867919">Heslo bylo sdíleno</translation>
 <translation id="8451512073679317615">asistent</translation>
diff --git a/chrome/app/resources/generated_resources_cy.xtb b/chrome/app/resources/generated_resources_cy.xtb
index d9ba27d..2416ff3 100644
--- a/chrome/app/resources/generated_resources_cy.xtb
+++ b/chrome/app/resources/generated_resources_cy.xtb
@@ -5043,7 +5043,6 @@
 <translation id="5027550639139316293">Tystysgrif E-bost</translation>
 <translation id="5027562294707732951">Ychwanegu estyniad</translation>
 <translation id="5028445315206872221">Mae estyniadau wedi'u rhwystro ar y wefan hon</translation>
-<translation id="5029568752722684782">Clirio'r copi</translation>
 <translation id="5029873138381728058">Wedi methu â gwirio VM</translation>
 <translation id="503155457707535043">Wrthi'n lawrlwytho apiau</translation>
 <translation id="5032430150487044192">Methu â chreu Cod QR</translation>
@@ -5737,7 +5736,6 @@
 <translation id="5601823921345337195">Ni chaniateir cysylltu â dyfeisiau MIDI</translation>
 <translation id="5601833336918638013">Peidio â chaniatáu i wefannau chwilio am ddyfeisiau Bluetooth</translation>
 <translation id="5602586420788540146">Agor mewn grŵp tabiau newydd</translation>
-<translation id="5602765853043467355">Clirio nodau tudalen, hanes, cyfrineiriau a rhagor o'r ddyfais hon</translation>
 <translation id="5605758115928394442">Anfonwyd hysbysiad i'ch ffôn i gadarnhau mai chi sydd yno.</translation>
 <translation id="5606849116180480101">{NUM_EXTENSIONS,plural, =1{Mae'r estyniad hwn wedi'i rwystro}zero{Mae'r estyniadau hyn wedi'u rhwystro}two{Mae'r estyniadau hyn wedi'u rhwystro}few{Mae'r estyniadau hyn wedi'u rhwystro}many{Mae'r estyniadau hyn wedi'u rhwystro}other{Mae'r estyniadau hyn wedi'u rhwystro}}</translation>
 <translation id="560834977503641186">Cysoni Wi-Fi, Dysgu Rhagor</translation>
@@ -5789,7 +5787,6 @@
 <translation id="5641648607875312660">Golygydd Llun Sgrinlun</translation>
 <translation id="5642508497713047">Llofnodwr SRL</translation>
 <translation id="5643321261065707929">Rhwydwaith ar fesurydd</translation>
-<translation id="5643620609347735571">Clirio a pharhau</translation>
 <translation id="5646376287012673985">Lleoliad</translation>
 <translation id="5646558797914161501">Dyn busnes</translation>
 <translation id="5648021990716966815">Cysylltydd meic</translation>
@@ -7714,7 +7711,6 @@
 <translation id="7241389281993241388">Mewngofnodwch i <ph name="TOKEN_NAME" /> i fewnforio'r dystysgrif cleient.</translation>
 <translation id="7241763419756062043">Dewiswch eich ansawdd chwilio a phori</translation>
 <translation id="7243092385765551741">Dileu cod pas?</translation>
-<translation id="7243632151880336635">Clirio ac Allgofnodi</translation>
 <translation id="7245162963905242662">Chwilio'r Dudalen hon gyda Google...</translation>
 <translation id="7245628041916450754"><ph name="WIDTH" /> x <ph name="HEIGHT" /> (Gorau)</translation>
 <translation id="7246230585855757313">Ailfewnosodwch eich allwedd ddiogelwch a rhowch gynnig arall arni</translation>
@@ -8592,7 +8588,6 @@
 <translation id="7925285046818567682">Wrthi'n aros am <ph name="HOST_NAME" />...</translation>
 <translation id="7926423016278357561">Nid fi oedd hwn.</translation>
 <translation id="7926975587469166629">Llysenw cerdyn</translation>
-<translation id="7927610604078150317">Maint: <ph name="CHROME_APP_SIZE" /></translation>
 <translation id="7928175190925744466">Wedi newid y cyfrinair hwn eisoes?</translation>
 <translation id="7929962904089429003">Agorwch y ddewislen</translation>
 <translation id="7930294771522048157">Bydd dulliau talu sydd wedi'u cadw yn ymddangos yma</translation>
@@ -9241,6 +9236,7 @@
 <translation id="8448729345478502352">Gwneud eitemau ar eich sgrîn yn llai neu'n fwy</translation>
 <translation id="8449008133205184768">Gludo a Chopïo Arddull</translation>
 <translation id="8449036207308062757">Rheoli'r storfa</translation>
+<translation id="8449347986464073209">Dileu ac Allgofnodi</translation>
 <translation id="8449836157089738489">Agor pob un mewn grŵp tabiau newydd</translation>
 <translation id="8449869326050867919">Wedi rhannu cyfrinair</translation>
 <translation id="8451512073679317615">cynorthwyydd</translation>
diff --git a/chrome/app/resources/generated_resources_da.xtb b/chrome/app/resources/generated_resources_da.xtb
index 889636e..74402b9 100644
--- a/chrome/app/resources/generated_resources_da.xtb
+++ b/chrome/app/resources/generated_resources_da.xtb
@@ -5041,7 +5041,6 @@
 <translation id="5027550639139316293">Mail-certifikat</translation>
 <translation id="5027562294707732951">Tilføj udvidelsen</translation>
 <translation id="5028445315206872221">Udvidelser er blokeret på dette website</translation>
-<translation id="5029568752722684782">Slet kopi</translation>
 <translation id="5029873138381728058">Det var ikke muligt at tjekke VM'er</translation>
 <translation id="503155457707535043">De valgte apps downloades</translation>
 <translation id="5032430150487044192">QR-koden kan ikke oprettes</translation>
@@ -5735,7 +5734,6 @@
 <translation id="5601823921345337195">Har ikke tilladelse til at oprette forbindelse til MIDI-enheder</translation>
 <translation id="5601833336918638013">Tillad ikke, at websites søger efter Bluetooth-enheder</translation>
 <translation id="5602586420788540146">Åbn i en ny fanegruppe</translation>
-<translation id="5602765853043467355">Ryd bogmærker, historik, adgangskoder osv. fra denne enhed</translation>
 <translation id="5605758115928394442">Der blev sendt en notifikation til din telefon til bekræftelse af din identitet.</translation>
 <translation id="5606849116180480101">{NUM_EXTENSIONS,plural, =1{Denne udvidelse er blokeret}one{Denne udvidelse er blokeret}other{Disse udvidelser er blokeret}}</translation>
 <translation id="560834977503641186">Wi-Fi-synkronisering, Få flere oplysninger</translation>
@@ -5787,7 +5785,6 @@
 <translation id="5641648607875312660">Redigering af screenshot</translation>
 <translation id="5642508497713047">CRL-underskriver</translation>
 <translation id="5643321261065707929">Forbrugsafregnet netværk</translation>
-<translation id="5643620609347735571">Ryd og fortsæt</translation>
 <translation id="5646376287012673985">Placering</translation>
 <translation id="5646558797914161501">Forretningsmand</translation>
 <translation id="5648021990716966815">Stik til mikrofon</translation>
@@ -7707,7 +7704,6 @@
 <translation id="7241389281993241388">Log ind på <ph name="TOKEN_NAME" /> for at importere klientcertifikatet.</translation>
 <translation id="7241763419756062043">Vælg din søge- og browsingkvalitet</translation>
 <translation id="7243092385765551741">Vil du slette adgangsnøglen?</translation>
-<translation id="7243632151880336635">Ryd, og log ud</translation>
 <translation id="7245162963905242662">Søg på denne side med Google…</translation>
 <translation id="7245628041916450754"><ph name="WIDTH" /> x <ph name="HEIGHT" /> (Bedste)</translation>
 <translation id="7246230585855757313">Indsæt nøglen igen, og prøv igen.</translation>
@@ -8584,7 +8580,6 @@
 <translation id="7925285046818567682">Venter på <ph name="HOST_NAME" />...</translation>
 <translation id="7926423016278357561">Det var ikke mig.</translation>
 <translation id="7926975587469166629">Kortets kaldenavn</translation>
-<translation id="7927610604078150317">Størrelse: <ph name="CHROME_APP_SIZE" /></translation>
 <translation id="7928175190925744466">Har du allerede ændret denne adgangskode?</translation>
 <translation id="7929962904089429003">Åbn menuen</translation>
 <translation id="7930294771522048157">Her kan du se dine gemte betalingsmetoder</translation>
@@ -9234,6 +9229,7 @@
 <translation id="8448729345478502352">Gør elementer på skærmen mindre eller større</translation>
 <translation id="8449008133205184768">Indsæt og match stil</translation>
 <translation id="8449036207308062757">Administrer lagerplads</translation>
+<translation id="8449347986464073209">Slet, og log ud</translation>
 <translation id="8449836157089738489">Åbn alle i en ny fanegruppe</translation>
 <translation id="8449869326050867919">Adgangskoden er delt</translation>
 <translation id="8451512073679317615">assistent</translation>
diff --git a/chrome/app/resources/generated_resources_de.xtb b/chrome/app/resources/generated_resources_de.xtb
index 93d6b29b..22a983e 100644
--- a/chrome/app/resources/generated_resources_de.xtb
+++ b/chrome/app/resources/generated_resources_de.xtb
@@ -5005,7 +5005,6 @@
 <translation id="5027550639139316293">E-Mail-Zertifikat</translation>
 <translation id="5027562294707732951">Erweiterung hinzufügen</translation>
 <translation id="5028445315206872221">Erweiterungen sind auf dieser Website blockiert</translation>
-<translation id="5029568752722684782">Kopie löschen</translation>
 <translation id="5029873138381728058">Fehler beim Überprüfen von VMs</translation>
 <translation id="503155457707535043">Apps werden heruntergeladen</translation>
 <translation id="5032430150487044192">QR-Code konnte nicht erstellt werden</translation>
@@ -5698,7 +5697,6 @@
 <translation id="5601823921345337195">Dürfen keine Verbindung mit MIDI-Geräten herstellen</translation>
 <translation id="5601833336918638013">Websites dürfen nicht darum bitten, nach Bluetooth-Geräten zu suchen</translation>
 <translation id="5602586420788540146">In neuer Tabgruppe öffnen</translation>
-<translation id="5602765853043467355">Lesezeichen, Verlauf, Passwörter und weitere Daten von diesem Gerät löschen</translation>
 <translation id="5605758115928394442">An dein Smartphone wurde eine Benachrichtigung gesendet, um deine Identität zu bestätigen.</translation>
 <translation id="5606849116180480101">{NUM_EXTENSIONS,plural, =1{Diese Erweiterung ist blockiert}other{Diese Erweiterungen sind blockiert}}</translation>
 <translation id="560834977503641186">Weitere Informationen zur WLAN-Synchronisation</translation>
@@ -5748,7 +5746,6 @@
 <translation id="5641648607875312660">Screenshot-Bildeditor</translation>
 <translation id="5642508497713047">CRL-Signaturgeber</translation>
 <translation id="5643321261065707929">Kostenpflichtiges Netzwerk</translation>
-<translation id="5643620609347735571">Löschen und fortfahren</translation>
 <translation id="5646376287012673985">Standort</translation>
 <translation id="5646558797914161501">Geschäftsmann</translation>
 <translation id="5648021990716966815">Mikrofonanschluss</translation>
@@ -7660,7 +7657,6 @@
 <translation id="7241389281993241388">Melde dich in <ph name="TOKEN_NAME" /> an, um das Clientzertifikat zu importieren.</translation>
 <translation id="7241763419756062043">Qualität für Suchanfragen und Surfen auswählen</translation>
 <translation id="7243092385765551741">Passkey löschen?</translation>
-<translation id="7243632151880336635">Löschen und abmelden</translation>
 <translation id="7245162963905242662">Auf dieser Seite mit Google su&amp;chen…</translation>
 <translation id="7245628041916450754"><ph name="WIDTH" /> x <ph name="HEIGHT" /> (höchste Qualität)</translation>
 <translation id="7246230585855757313">Stecke den Sicherheitsschlüssel wieder ein und versuche es noch einmal</translation>
@@ -9182,6 +9178,7 @@
 <translation id="8448729345478502352">Die Elemente auf dem Bildschirm vergrößern oder verkleinern</translation>
 <translation id="8449008133205184768">Einsetzen und Stil anpassen</translation>
 <translation id="8449036207308062757">Speicherplatz verwalten</translation>
+<translation id="8449347986464073209">Löschen und abmelden</translation>
 <translation id="8449836157089738489">Alle in neuer Tabgruppe öffnen</translation>
 <translation id="8449869326050867919">Passwort geteilt</translation>
 <translation id="8451512073679317615">Assistant</translation>
diff --git a/chrome/app/resources/generated_resources_el.xtb b/chrome/app/resources/generated_resources_el.xtb
index a5ff1b8..924c4b3 100644
--- a/chrome/app/resources/generated_resources_el.xtb
+++ b/chrome/app/resources/generated_resources_el.xtb
@@ -5040,7 +5040,6 @@
 <translation id="5027550639139316293">Πιστοποιητικό ηλεκτρονικού ταχυδρομείου</translation>
 <translation id="5027562294707732951">Προσθήκη επέκτασης</translation>
 <translation id="5028445315206872221">Οι επεκτάσεις αποκλείονται από αυτόν τον ιστότοπο</translation>
-<translation id="5029568752722684782">Διαγραφή αντιγράφου</translation>
 <translation id="5029873138381728058">Απέτυχε ο έλεγχος των VM</translation>
 <translation id="503155457707535043">Λήψη εφαρμογών</translation>
 <translation id="5032430150487044192">Δεν είναι δυνατή η δημιουργία κωδικού QR</translation>
@@ -5734,7 +5733,6 @@
 <translation id="5601823921345337195">Δεν επιτρέπεται να συνδέονται σε συσκευές MIDI</translation>
 <translation id="5601833336918638013">Να μην επιτρέπεται στους ιστοτόπους να κάνουν αναζήτηση για συσκευές Bluetooth</translation>
 <translation id="5602586420788540146">Άνοιγμα σε νέα ομάδα καρτελών</translation>
-<translation id="5602765853043467355">Διαγραφή σελιδοδεικτών, ιστορικού, κωδικών πρόσβασης κ.ά. από αυτή τη συσκευή</translation>
 <translation id="5605758115928394442">Στάλθηκε μια ειδοποίηση στο τηλέφωνό σας για την επιβεβαίωση της ταυτότητάς σας.</translation>
 <translation id="5606849116180480101">{NUM_EXTENSIONS,plural, =1{Αυτή η επέκταση έχει αποκλειστεί}other{Αυτές οι επεκτάσεις έχουν αποκλειστεί}}</translation>
 <translation id="560834977503641186">Συγχρονισμός Wi-Fi, Μάθετε περισσότερα</translation>
@@ -5787,7 +5785,6 @@
 <translation id="5641648607875312660">Πρόγραμμα επεξεργασίας εικόνας στιγμιότυπου οθόνης</translation>
 <translation id="5642508497713047">Υπηρεσία υπογραφής CRL</translation>
 <translation id="5643321261065707929">Δίκτυο με ογκοχρέωση</translation>
-<translation id="5643620609347735571">Διαγραφή και συνέχεια</translation>
 <translation id="5646376287012673985">Τοποθεσία</translation>
 <translation id="5646558797914161501">Επιχειρηματίας</translation>
 <translation id="5648021990716966815">Υποδοχή μικροφώνου</translation>
@@ -7705,7 +7702,6 @@
 <translation id="7241389281993241388">Συνδεθείτε στο <ph name="TOKEN_NAME" /> για εισαγωγή του πιστοποιητικού πελάτη.</translation>
 <translation id="7241763419756062043">Επιλέξτε την ποιότητα αναζήτησης και περιήγησης</translation>
 <translation id="7243092385765551741">Διαγραφή κλειδιού πρόσβασης;</translation>
-<translation id="7243632151880336635">Διαγραφή και αποσύνδεση</translation>
 <translation id="7245162963905242662">Αναζ&amp;ήτηση αυτής της σελίδας με το Google…</translation>
 <translation id="7245628041916450754"><ph name="WIDTH" /> x <ph name="HEIGHT" /> (βέλτιστη)</translation>
 <translation id="7246230585855757313">Επανατοποθετήστε το κλειδί ασφαλείας και δοκιμάστε ξανά</translation>
@@ -8583,7 +8579,6 @@
 <translation id="7925285046818567682">Αναμονή για κεντρικό υπολογιστή <ph name="HOST_NAME" />...</translation>
 <translation id="7926423016278357561">Δεν ήμουν εγώ.</translation>
 <translation id="7926975587469166629">Ψευδώνυμο κάρτας</translation>
-<translation id="7927610604078150317">Μέγεθος: <ph name="CHROME_APP_SIZE" /></translation>
 <translation id="7928175190925744466">Έχετε αλλάξει ήδη αυτόν τον κωδικό πρόσβασης;</translation>
 <translation id="7929962904089429003">Άνοιγμα μενού</translation>
 <translation id="7930294771522048157">Οι αποθηκευμένοι τρόποι πληρωμής θα εμφανίζονται εδώ</translation>
@@ -9233,6 +9228,7 @@
 <translation id="8448729345478502352">Κάντε τα στοιχεία στην οθόνη μικρότερα ή μεγαλύτερα</translation>
 <translation id="8449008133205184768">Επικόλληση και αντιστοίχιση στιλ</translation>
 <translation id="8449036207308062757">Διαχείριση αποθηκευτικού χώρου</translation>
+<translation id="8449347986464073209">Διαγραφή και αποσύνδεση</translation>
 <translation id="8449836157089738489">Άνοιγμα όλων σε νέα ομάδα καρτελών</translation>
 <translation id="8449869326050867919">Ο κωδικός πρόσβασης κοινοποιήθηκε</translation>
 <translation id="8451512073679317615">βοηθός</translation>
diff --git a/chrome/app/resources/generated_resources_en-GB.xtb b/chrome/app/resources/generated_resources_en-GB.xtb
index 3a7a829a..0c43fa2 100644
--- a/chrome/app/resources/generated_resources_en-GB.xtb
+++ b/chrome/app/resources/generated_resources_en-GB.xtb
@@ -5040,7 +5040,6 @@
 <translation id="5027550639139316293">Email Certificate</translation>
 <translation id="5027562294707732951">Add extension</translation>
 <translation id="5028445315206872221">Extensions are blocked on this site</translation>
-<translation id="5029568752722684782">Clear copy</translation>
 <translation id="5029873138381728058">Failed to check VMs</translation>
 <translation id="503155457707535043">Apps downloading</translation>
 <translation id="5032430150487044192">Can't create QR code</translation>
@@ -5734,7 +5733,6 @@
 <translation id="5601823921345337195">Not allowed to connect to MIDI devices</translation>
 <translation id="5601833336918638013">Don't allow sites to look for Bluetooth devices</translation>
 <translation id="5602586420788540146">Open in new tab group</translation>
-<translation id="5602765853043467355">Clear bookmarks, history, passwords and more from this device</translation>
 <translation id="5605758115928394442">A notification was sent to your phone to confirm that it's you.</translation>
 <translation id="5606849116180480101">{NUM_EXTENSIONS,plural, =1{This extension is blocked}other{These extensions are blocked}}</translation>
 <translation id="560834977503641186">Wi-Fi Sync, learn more</translation>
@@ -5786,7 +5784,6 @@
 <translation id="5641648607875312660">Screenshot image editor</translation>
 <translation id="5642508497713047">CRL Signer</translation>
 <translation id="5643321261065707929">Metered network</translation>
-<translation id="5643620609347735571">Clear and continue</translation>
 <translation id="5646376287012673985">Location</translation>
 <translation id="5646558797914161501">Businessman</translation>
 <translation id="5648021990716966815">Mic jack</translation>
@@ -7704,7 +7701,6 @@
 <translation id="7241389281993241388">Please sign in to <ph name="TOKEN_NAME" /> to import the client certificate.</translation>
 <translation id="7241763419756062043">Choose your search and browsing quality</translation>
 <translation id="7243092385765551741">Delete passkey?</translation>
-<translation id="7243632151880336635">Clear and Sign Out</translation>
 <translation id="7245162963905242662">Search this page with Google...</translation>
 <translation id="7245628041916450754"><ph name="WIDTH" /> x <ph name="HEIGHT" /> (Best)</translation>
 <translation id="7246230585855757313">Reinsert your security key and try again</translation>
@@ -8582,7 +8578,6 @@
 <translation id="7925285046818567682">Waiting for <ph name="HOST_NAME" />...</translation>
 <translation id="7926423016278357561">This wasn't me.</translation>
 <translation id="7926975587469166629">Card nickname</translation>
-<translation id="7927610604078150317">Size: <ph name="CHROME_APP_SIZE" /></translation>
 <translation id="7928175190925744466">Already changed this password?</translation>
 <translation id="7929962904089429003">Opening the menu</translation>
 <translation id="7930294771522048157">Saved payment methods will appear here</translation>
@@ -9232,6 +9227,7 @@
 <translation id="8448729345478502352">Make items on your screen smaller or larger</translation>
 <translation id="8449008133205184768">Paste and Match Style</translation>
 <translation id="8449036207308062757">Manage storage</translation>
+<translation id="8449347986464073209">Delete and sign out</translation>
 <translation id="8449836157089738489">Open all in new tab group</translation>
 <translation id="8449869326050867919">Password shared</translation>
 <translation id="8451512073679317615">assistant</translation>
diff --git a/chrome/app/resources/generated_resources_es-419.xtb b/chrome/app/resources/generated_resources_es-419.xtb
index 5845e0a..8f1bdf3 100644
--- a/chrome/app/resources/generated_resources_es-419.xtb
+++ b/chrome/app/resources/generated_resources_es-419.xtb
@@ -5021,7 +5021,6 @@
 <translation id="5027550639139316293">Enviar certificado por correo electrónico</translation>
 <translation id="5027562294707732951">Agregar extensión</translation>
 <translation id="5028445315206872221">Las extensiones están bloqueadas en este sitio</translation>
-<translation id="5029568752722684782">Borrar la copia</translation>
 <translation id="5029873138381728058">No se pudieron comprobar las VM</translation>
 <translation id="503155457707535043">Se están descargando las apps</translation>
 <translation id="5032430150487044192">No se puede crear el código QR</translation>
@@ -5715,7 +5714,6 @@
 <translation id="5601823921345337195">No puede conectarse con dispositivos MIDI</translation>
 <translation id="5601833336918638013">No permitir que los sitios busquen dispositivos Bluetooth</translation>
 <translation id="5602586420788540146">Abrir en un nuevo grupo de pestañas</translation>
-<translation id="5602765853043467355">Borrar favoritos, historial, contraseñas y otras opciones de configuración de este dispositivo</translation>
 <translation id="5605758115928394442">Se envió una notificación a tu teléfono para confirmar que eres tú</translation>
 <translation id="5606849116180480101">{NUM_EXTENSIONS,plural, =1{Se bloqueó esta extensión}other{Se bloquearon estas extensiones}}</translation>
 <translation id="560834977503641186">Sincronización Wi-Fi, Más información</translation>
@@ -5767,7 +5765,6 @@
 <translation id="5641648607875312660">Editor de capturas de pantalla</translation>
 <translation id="5642508497713047">Firmante de la CRL</translation>
 <translation id="5643321261065707929">Red de uso medido</translation>
-<translation id="5643620609347735571">Borrar y continuar</translation>
 <translation id="5646376287012673985">Ubicación</translation>
 <translation id="5646558797914161501">Empresario</translation>
 <translation id="5648021990716966815">Conector para micrófono</translation>
@@ -7685,7 +7682,6 @@
 <translation id="7241389281993241388">Accede a <ph name="TOKEN_NAME" /> para importar el certificado de cliente.</translation>
 <translation id="7241763419756062043">Elige la calidad de la búsqueda y navegación</translation>
 <translation id="7243092385765551741">¿Quieres borrar la llave de acceso?</translation>
-<translation id="7243632151880336635">Borrar y salir</translation>
 <translation id="7245162963905242662">Bus&amp;ca en esta página con Google…</translation>
 <translation id="7245628041916450754"><ph name="WIDTH" /> × <ph name="HEIGHT" /> (la mejor resolución)</translation>
 <translation id="7246230585855757313">Reinserta tu llave de seguridad y vuelve a intentarlo</translation>
@@ -8563,7 +8559,6 @@
 <translation id="7925285046818567682">Esperando <ph name="HOST_NAME" />...</translation>
 <translation id="7926423016278357561">No era yo.</translation>
 <translation id="7926975587469166629">Sobrenombre de la tarjeta</translation>
-<translation id="7927610604078150317">Tamaño: <ph name="CHROME_APP_SIZE" /></translation>
 <translation id="7928175190925744466">¿Ya cambiaste esta contraseña?</translation>
 <translation id="7929962904089429003">Abrir el menú</translation>
 <translation id="7930294771522048157">Las formas de pago guardadas se mostrarán aquí</translation>
@@ -9213,6 +9208,7 @@
 <translation id="8448729345478502352">Aumenta o reduce el tamaño de los elementos en tu pantalla</translation>
 <translation id="8449008133205184768">Pegar con el mismo estilo</translation>
 <translation id="8449036207308062757">Administrar almacenamiento</translation>
+<translation id="8449347986464073209">Borrar y salir</translation>
 <translation id="8449836157089738489">Abrir todo en un grupo nuevo de pestañas</translation>
 <translation id="8449869326050867919">Se compartió la contraseña</translation>
 <translation id="8451512073679317615">asistente</translation>
diff --git a/chrome/app/resources/generated_resources_es.xtb b/chrome/app/resources/generated_resources_es.xtb
index ff03163..31a8d20fb 100644
--- a/chrome/app/resources/generated_resources_es.xtb
+++ b/chrome/app/resources/generated_resources_es.xtb
@@ -5024,7 +5024,6 @@
 <translation id="5027550639139316293">Certificado de correo electrónico</translation>
 <translation id="5027562294707732951">Añadir extensión</translation>
 <translation id="5028445315206872221">Las extensiones están bloqueadas en este sitio</translation>
-<translation id="5029568752722684782">Borrar copia</translation>
 <translation id="5029873138381728058">No se han podido comprobar las máquinas virtuales</translation>
 <translation id="503155457707535043">Se están descargando las aplicaciones</translation>
 <translation id="5032430150487044192">No se puede crear el código QR</translation>
@@ -5718,7 +5717,6 @@
 <translation id="5601823921345337195">No puede conectarse a dispositivos MIDI</translation>
 <translation id="5601833336918638013">No permitir que los sitios busquen dispositivos Bluetooth</translation>
 <translation id="5602586420788540146">Abrir en un nuevo grupo de pestañas</translation>
-<translation id="5602765853043467355">Borrar marcadores, historial, contraseñas, etc. de este dispositivo</translation>
 <translation id="5605758115928394442">Se ha enviado una notificación a tu teléfono para confirmar que eres tú.</translation>
 <translation id="5606849116180480101">{NUM_EXTENSIONS,plural, =1{Esta extensión está bloqueada}other{Estas extensiones están bloqueadas}}</translation>
 <translation id="560834977503641186">Más información sobre Sincronización Wi‑Fi</translation>
@@ -5770,7 +5768,6 @@
 <translation id="5641648607875312660">Editor de imágenes de capturas de pantalla</translation>
 <translation id="5642508497713047">Firmante de la lista de revocación de certificados</translation>
 <translation id="5643321261065707929">Red de uso medido</translation>
-<translation id="5643620609347735571">Borrar y continuar</translation>
 <translation id="5646376287012673985">Ubicación</translation>
 <translation id="5646558797914161501">Hombre de negocios</translation>
 <translation id="5648021990716966815">Conector jack para micrófono</translation>
@@ -7688,7 +7685,6 @@
 <translation id="7241389281993241388">Inicia sesión en <ph name="TOKEN_NAME" /> para importar el certificado de cliente.</translation>
 <translation id="7241763419756062043">Elegir la calidad de búsqueda y navegación</translation>
 <translation id="7243092385765551741">¿Eliminar llave de acceso?</translation>
-<translation id="7243632151880336635">Borrar y cerrar sesión</translation>
 <translation id="7245162963905242662">Bus&amp;car esta página en Google...</translation>
 <translation id="7245628041916450754"><ph name="WIDTH" /> x <ph name="HEIGHT" /> (recomendado)</translation>
 <translation id="7246230585855757313">Vuelve a introducir la llave de seguridad e inténtalo de nuevo.</translation>
@@ -8566,7 +8562,6 @@
 <translation id="7925285046818567682">Esperando a <ph name="HOST_NAME" />...</translation>
 <translation id="7926423016278357561">No es mi perfil</translation>
 <translation id="7926975587469166629">Nombre de la tarjeta</translation>
-<translation id="7927610604078150317">Tamaño: <ph name="CHROME_APP_SIZE" /></translation>
 <translation id="7928175190925744466">¿Has cambiado esta contraseña?</translation>
 <translation id="7929962904089429003">Abre el menú</translation>
 <translation id="7930294771522048157">Los métodos de pago guardados aparecerán aquí</translation>
@@ -9216,6 +9211,7 @@
 <translation id="8448729345478502352">Reducir o aumentar el tamaño de los elementos de la pantalla</translation>
 <translation id="8449008133205184768">Pegar adaptando el estilo</translation>
 <translation id="8449036207308062757">Gestionar almacenamiento</translation>
+<translation id="8449347986464073209">Eliminar y cerrar sesión</translation>
 <translation id="8449836157089738489">Abrir todas en un grupo de pestañas</translation>
 <translation id="8449869326050867919">Contraseña compartida</translation>
 <translation id="8451512073679317615">asistente</translation>
diff --git a/chrome/app/resources/generated_resources_et.xtb b/chrome/app/resources/generated_resources_et.xtb
index ff4d8fe..6706121 100644
--- a/chrome/app/resources/generated_resources_et.xtb
+++ b/chrome/app/resources/generated_resources_et.xtb
@@ -5030,7 +5030,6 @@
 <translation id="5027550639139316293">Meili sertifikaat</translation>
 <translation id="5027562294707732951">Lisa laiendus</translation>
 <translation id="5028445315206872221">Laiendused on sellel saidil blokeeritud</translation>
-<translation id="5029568752722684782">Kustuta koopia</translation>
 <translation id="5029873138381728058">Virtuaalmasinate kontrollimine ebaõnnestus</translation>
 <translation id="503155457707535043">Rakendusi laaditakse alla</translation>
 <translation id="5032430150487044192">QR-koodi ei saa luua</translation>
@@ -5724,7 +5723,6 @@
 <translation id="5601823921345337195">Pole lubatud MIDI-seadmetega ühendada</translation>
 <translation id="5601833336918638013">Saitidel ei lubata Bluetooth-seadmeid otsida</translation>
 <translation id="5602586420788540146">Ava uues vahelehegrupis</translation>
-<translation id="5602765853043467355">Kustuta sellest seadmest järjehoidjad, ajalugu, paroolid ja muu</translation>
 <translation id="5605758115928394442">Teie telefoni saadeti märguanne, et teie isik kinnitada.</translation>
 <translation id="5606849116180480101">{NUM_EXTENSIONS,plural, =1{See laiendus on blokeeritud}other{Need laiendused on blokeeritud}}</translation>
 <translation id="560834977503641186">WiFi sünkroonimine, lisateave</translation>
@@ -5776,7 +5774,6 @@
 <translation id="5641648607875312660">Ekraanipildi redaktor</translation>
 <translation id="5642508497713047">CRL-i allkirjastaja</translation>
 <translation id="5643321261065707929">Mahupõhine võrk</translation>
-<translation id="5643620609347735571">Kustuta ja jätka</translation>
 <translation id="5646376287012673985">Asukoht</translation>
 <translation id="5646558797914161501">Ärimees</translation>
 <translation id="5648021990716966815">Mikrofoni pistikupesa</translation>
@@ -7694,7 +7691,6 @@
 <translation id="7241389281993241388">Logige sisse rakendusse <ph name="TOKEN_NAME" /> kliendi sertifikaadi importimiseks.</translation>
 <translation id="7241763419756062043">Valige oma otsingu ja sirvimise kvaliteet</translation>
 <translation id="7243092385765551741">Kas soovite pääsukoodi kustutada?</translation>
-<translation id="7243632151880336635">Kustuta ja logi välja</translation>
 <translation id="7245162963905242662">Sellelt lehelt otsimine Google'iga …</translation>
 <translation id="7245628041916450754"><ph name="WIDTH" /> x <ph name="HEIGHT" /> (parim)</translation>
 <translation id="7246230585855757313">Sisestage oma turvavõti uuesti ja proovige veel kord</translation>
@@ -8572,7 +8568,6 @@
 <translation id="7925285046818567682"><ph name="HOST_NAME" /> vastuse ootel...</translation>
 <translation id="7926423016278357561">See ei olnud mina.</translation>
 <translation id="7926975587469166629">Kaardi hüüdnimi</translation>
-<translation id="7927610604078150317">Suurus: <ph name="CHROME_APP_SIZE" /></translation>
 <translation id="7928175190925744466">Kas muutsite juba seda parooli?</translation>
 <translation id="7929962904089429003">Menüü avamine</translation>
 <translation id="7930294771522048157">Salvestatud makseviisid kuvatakse siin</translation>
@@ -9222,6 +9217,7 @@
 <translation id="8448729345478502352">Muutke ekraanil kuvatud üksused väiksemaks või suuremaks</translation>
 <translation id="8449008133205184768">Kleebi ja ühita laad</translation>
 <translation id="8449036207308062757">Halda salvestusruumi</translation>
+<translation id="8449347986464073209">Kustuta ja logi välja</translation>
 <translation id="8449836157089738489">Ava kõik uues vahelehegrupis</translation>
 <translation id="8449869326050867919">Parool on jagatud</translation>
 <translation id="8451512073679317615">assistent</translation>
diff --git a/chrome/app/resources/generated_resources_eu.xtb b/chrome/app/resources/generated_resources_eu.xtb
index 7d1f219..8424408 100644
--- a/chrome/app/resources/generated_resources_eu.xtb
+++ b/chrome/app/resources/generated_resources_eu.xtb
@@ -5021,7 +5021,6 @@
 <translation id="5027550639139316293">Posta elektronikoko ziurtagiria</translation>
 <translation id="5027562294707732951">Gehitu luzapena</translation>
 <translation id="5028445315206872221">Webgune honetan luzapenak blokeatuta daude</translation>
-<translation id="5029568752722684782">Garbitu kopia</translation>
 <translation id="5029873138381728058">Ezin izan dira egiaztatu makina birtualak</translation>
 <translation id="503155457707535043">Deskargatzen ari dira aplikazioak</translation>
 <translation id="5032430150487044192">Ezin da sortu QR kodea</translation>
@@ -5714,7 +5713,6 @@
 <translation id="5601823921345337195">Ezin da konektatu MIDI gailuetara</translation>
 <translation id="5601833336918638013">Ez eman Bluetooth bidezko gailuak bilatzeko baimena webguneei</translation>
 <translation id="5602586420788540146">Ireki beste fitxa talde batean</translation>
-<translation id="5602765853043467355">Ezabatu gailu honetako laster-markak, historia, pasahitzak eta beste</translation>
 <translation id="5605758115928394442">Jakinarazpen bat bidali dizugu telefonora zeu zarela berresteko.</translation>
 <translation id="5606849116180480101">{NUM_EXTENSIONS,plural, =1{Luzapena blokeatuta dago}other{Luzapenak blokeatuta daude}}</translation>
 <translation id="560834977503641186">Wifi-sinkronizazioa, Lortu informazio gehiago</translation>
@@ -5764,7 +5762,6 @@
 <translation id="5641648607875312660">Pantaila-argazkiaren editorea</translation>
 <translation id="5642508497713047">CRL sinatzailea</translation>
 <translation id="5643321261065707929">Sare neurtua</translation>
-<translation id="5643620609347735571">Garbitu eta egin aurrera</translation>
 <translation id="5646376287012673985">Kokapena</translation>
 <translation id="5646558797914161501">Enpresaria</translation>
 <translation id="5648021990716966815">Mikrofonoaren konektorea</translation>
@@ -7679,7 +7676,6 @@
 <translation id="7241389281993241388">Bezero-ziurtagiria inportatzeko, hasi saioa <ph name="TOKEN_NAME" /> gailuan.</translation>
 <translation id="7241763419756062043">Aukeratu bilaketen eta arakatzeko moduaren kalitatea</translation>
 <translation id="7243092385765551741">Sarbide-gakoa ezabatu nahi duzu?</translation>
-<translation id="7243632151880336635">Garbitu eta amaitu saioa</translation>
 <translation id="7245162963905242662">Bilatu orri honetan Google-rekin…</translation>
 <translation id="7245628041916450754"><ph name="WIDTH" /> × <ph name="HEIGHT" /> (onena)</translation>
 <translation id="7246230585855757313">Sartu segurtasun-giltza eta saiatu berriro</translation>
@@ -8553,7 +8549,6 @@
 <translation id="7925285046818567682"><ph name="HOST_NAME" /> ostalariaren erantzunaren zain…</translation>
 <translation id="7926423016278357561">Ez naiz ni izan.</translation>
 <translation id="7926975587469166629">Txartelaren goitizena</translation>
-<translation id="7927610604078150317">Tamaina: <ph name="CHROME_APP_SIZE" /></translation>
 <translation id="7928175190925744466">Aldatu al duzu pasahitza?</translation>
 <translation id="7929962904089429003">Ireki menua</translation>
 <translation id="7930294771522048157">Hemen agertuko dira gordetako ordainketa-metodoak</translation>
@@ -9202,6 +9197,7 @@
 <translation id="8448729345478502352">Handitu edo txikitu pantailako elementuak</translation>
 <translation id="8449008133205184768">Itsatsi eta bat etorrarazi estiloarekin</translation>
 <translation id="8449036207308062757">Kudeatu memoria</translation>
+<translation id="8449347986464073209">Ezabatu datuak eta amaitu saioa</translation>
 <translation id="8449836157089738489">Ireki guztiak beste fitxa talde batean</translation>
 <translation id="8449869326050867919">Partekatu da pasahitza</translation>
 <translation id="8451512073679317615">laguntzailea</translation>
diff --git a/chrome/app/resources/generated_resources_fa.xtb b/chrome/app/resources/generated_resources_fa.xtb
index 2102a9a..f6e8f53a 100644
--- a/chrome/app/resources/generated_resources_fa.xtb
+++ b/chrome/app/resources/generated_resources_fa.xtb
@@ -5037,7 +5037,6 @@
 <translation id="5027550639139316293">گواهی ایمیل</translation>
 <translation id="5027562294707732951">افزودن افزونه</translation>
 <translation id="5028445315206872221">افزونه‌های این سایت مسدود شده است</translation>
-<translation id="5029568752722684782">پاک کردن نسخه کپی</translation>
 <translation id="5029873138381728058">‏بررسی ماشین‌های مجازی (VMs) انجام نشد</translation>
 <translation id="503155457707535043">درحال بارگیری برنامه‌ها</translation>
 <translation id="5032430150487044192">رمزینه پاسخ‌سریع ایجاد نمی‌شود</translation>
@@ -5731,7 +5730,6 @@
 <translation id="5601823921345337195">‏اجازه ندارد به دستگاه‌های MIDI مرتبط شود</translation>
 <translation id="5601833336918638013">به سایت‌ها اجازه داده نشود دستگاه‌های بلوتوث را جستجو کنند</translation>
 <translation id="5602586420788540146">باز کردن در گروه برگه جدید</translation>
-<translation id="5602765853043467355">نشانک‌ها، سابقه، گذرواژه‌ها و موارد دیگر از این دستگاه پاک شود</translation>
 <translation id="5605758115928394442">برای تأیید اینکه خودتان هستید، اعلانی به تلفنتان ارسال شد.</translation>
 <translation id="5606849116180480101">{NUM_EXTENSIONS,plural, =1{این افزونه مسدود شده است}one{این افزونه‌ها مسدود شده‌اند}other{این افزونه‌ها مسدود شده‌اند}}</translation>
 <translation id="560834977503641186">‏«همگام‌سازی Wi-Fi»، بیشتر بدانید</translation>
@@ -5783,7 +5781,6 @@
 <translation id="5641648607875312660">ویرایشگر تصویر نماگرفت</translation>
 <translation id="5642508497713047">‏امضاکننده CRL</translation>
 <translation id="5643321261065707929">شبکه محدود</translation>
-<translation id="5643620609347735571">پاک کردن و ادامه دادن</translation>
 <translation id="5646376287012673985">مکان</translation>
 <translation id="5646558797914161501">تاجر</translation>
 <translation id="5648021990716966815">فیش میکروفون</translation>
@@ -7703,7 +7700,6 @@
 <translation id="7241389281993241388">لطفاً جهت ورود به مجوز سرویس گیرنده، به <ph name="TOKEN_NAME" /> وارد شوید.</translation>
 <translation id="7241763419756062043">کیفیت مرور و جستجو را انتخاب کنید</translation>
 <translation id="7243092385765551741">گذرکلید حذف شود؟</translation>
-<translation id="7243632151880336635">پاک کردن و خروج از سیستم</translation>
 <translation id="7245162963905242662">‏جستجوی این صفحه با Google…</translation>
 <translation id="7245628041916450754"><ph name="WIDTH" /> × <ph name="HEIGHT" /> (بهترین)</translation>
 <translation id="7246230585855757313">کلید امنیتی را مجدداً وارد کنید و دوباره امتحان کنید</translation>
@@ -8580,7 +8576,6 @@
 <translation id="7925285046818567682">منتظر <ph name="HOST_NAME" />...</translation>
 <translation id="7926423016278357561">من نبودم.</translation>
 <translation id="7926975587469166629">نام مستعار کارت</translation>
-<translation id="7927610604078150317">حجم: <ph name="CHROME_APP_SIZE" /></translation>
 <translation id="7928175190925744466">قبلاً این گذرواژه را تغییر داده‌اید؟</translation>
 <translation id="7929962904089429003">باز کردن منو</translation>
 <translation id="7930294771522048157">روش‌های پرداخت ذخیره‌شده در اینجا نشان داده می‌شود</translation>
@@ -9230,6 +9225,7 @@
 <translation id="8448729345478502352">بزرگ‌تر با کوچک‌تر کردن موارد روی صفحه</translation>
 <translation id="8449008133205184768">شیوه انطباق و جاگذاری</translation>
 <translation id="8449036207308062757">مدیریت فضای ذخیره‌سازی</translation>
+<translation id="8449347986464073209">حذف و خروج از سیستم</translation>
 <translation id="8449836157089738489">باز کردن همه در گروه برگه جدید</translation>
 <translation id="8449869326050867919">گذرواژه هم‌رسانی شد</translation>
 <translation id="8451512073679317615">دستیار</translation>
diff --git a/chrome/app/resources/generated_resources_fi.xtb b/chrome/app/resources/generated_resources_fi.xtb
index 9cb89c07..1816a157 100644
--- a/chrome/app/resources/generated_resources_fi.xtb
+++ b/chrome/app/resources/generated_resources_fi.xtb
@@ -5036,7 +5036,6 @@
 <translation id="5027550639139316293">Sähköpostivarmenne</translation>
 <translation id="5027562294707732951">Lisää laajennus</translation>
 <translation id="5028445315206872221">Laajennukset on estetty tällä sivustolla</translation>
-<translation id="5029568752722684782">Poista kopio</translation>
 <translation id="5029873138381728058">VM:ien tarkistus ei onnistunut</translation>
 <translation id="503155457707535043">Sovelluksia ladataan</translation>
 <translation id="5032430150487044192">QR-koodin luominen ei onnistu</translation>
@@ -5730,7 +5729,6 @@
 <translation id="5601823921345337195">MIDI-laitteisiin yhdistäminen kielletty</translation>
 <translation id="5601833336918638013">Älä salli sivustojen etsiä Bluetooth-laitteita</translation>
 <translation id="5602586420788540146">Avaa uudelle välilehtiryhmälle</translation>
-<translation id="5602765853043467355">Poista kirjanmerkit, historia, salasanat ja muuta tältä laitteelta</translation>
 <translation id="5605758115928394442">Puhelimeesi lähetettiin ilmoitus henkilöllisyytesi vahvistamiseksi.</translation>
 <translation id="5606849116180480101">{NUM_EXTENSIONS,plural, =1{Tämä laajennus on estetty}other{Nämä laajennukset on estetty}}</translation>
 <translation id="560834977503641186">Wi-Fin synkronointi, lue lisää</translation>
@@ -5782,7 +5780,6 @@
 <translation id="5641648607875312660">Kuvakaappausten muokkaus</translation>
 <translation id="5642508497713047">CRL-allekirjoittaja</translation>
 <translation id="5643321261065707929">Maksullinen verkko</translation>
-<translation id="5643620609347735571">Poista ja jatka</translation>
 <translation id="5646376287012673985">Sijainti</translation>
 <translation id="5646558797914161501">Liikemies</translation>
 <translation id="5648021990716966815">Mikrofoniliitäntä</translation>
@@ -7700,7 +7697,6 @@
 <translation id="7241389281993241388">Kirjaudu sisään laitteeseen <ph name="TOKEN_NAME" /> ja tuo asiakkaan varmenne.</translation>
 <translation id="7241763419756062043">Haku‑ ja selauslaadun valitseminen</translation>
 <translation id="7243092385765551741">Poistetaanko avainkoodi?</translation>
-<translation id="7243632151880336635">Tyhjennä ja kirjaudu ulos</translation>
 <translation id="7245162963905242662">Ha&amp;e tätä sivua Googlen avulla…</translation>
 <translation id="7245628041916450754"><ph name="WIDTH" /> x <ph name="HEIGHT" /> (paras)</translation>
 <translation id="7246230585855757313">Aseta suojausavain takaisin ja yritä uudelleen</translation>
@@ -8577,7 +8573,6 @@
 <translation id="7925285046818567682">Odotetaan palvelinta osoitteessa <ph name="HOST_NAME" />...</translation>
 <translation id="7926423016278357561">Luo uusi profiili.</translation>
 <translation id="7926975587469166629">Kortin lyhytnimi</translation>
-<translation id="7927610604078150317">Koko: <ph name="CHROME_APP_SIZE" /></translation>
 <translation id="7928175190925744466">Vaihdoitko jo tämän salasanan?</translation>
 <translation id="7929962904089429003">Avaa valikko</translation>
 <translation id="7930294771522048157">Tallennetut maksutavat näkyvät tässä</translation>
@@ -9227,6 +9222,7 @@
 <translation id="8448729345478502352">Pienennä tai suurenna näytöllä näkyviä kohteita</translation>
 <translation id="8449008133205184768">Liitä ja sovita tyyli</translation>
 <translation id="8449036207308062757">Hallinnoi tallennustilaa</translation>
+<translation id="8449347986464073209">Poista ja kirjaudu ulos</translation>
 <translation id="8449836157089738489">Avaa kaikki uudella välilehtiryhmällä</translation>
 <translation id="8449869326050867919">Salasana jaettu</translation>
 <translation id="8451512073679317615">assistant</translation>
diff --git a/chrome/app/resources/generated_resources_fil.xtb b/chrome/app/resources/generated_resources_fil.xtb
index 8c20a57..50eb30d 100644
--- a/chrome/app/resources/generated_resources_fil.xtb
+++ b/chrome/app/resources/generated_resources_fil.xtb
@@ -5041,7 +5041,6 @@
 <translation id="5027550639139316293">Email Certificate</translation>
 <translation id="5027562294707732951">Idagdag ang extension</translation>
 <translation id="5028445315206872221">Naka-block ang mga extension sa site na ito</translation>
-<translation id="5029568752722684782">I-clear ang kopya</translation>
 <translation id="5029873138381728058">Hindi nasuri ang mga VM</translation>
 <translation id="503155457707535043">Dina-download ang mga app</translation>
 <translation id="5032430150487044192">Hindi magawa ang QR Code</translation>
@@ -5735,7 +5734,6 @@
 <translation id="5601823921345337195">Hindi pinapayagang kumonekta sa mga MIDI device</translation>
 <translation id="5601833336918638013">Huwag payagan ang mga site na maghanap ng mga Bluetooth device</translation>
 <translation id="5602586420788540146">Buksan sa bagong grupo ng tab</translation>
-<translation id="5602765853043467355">I-clear ang mga bookmark, history, mga password, at higit pa sa device na ito</translation>
 <translation id="5605758115928394442">Nagpadala ng notification sa iyong telepono para kumpirmahing ikaw nga ito.</translation>
 <translation id="5606849116180480101">{NUM_EXTENSIONS,plural, =1{Naka-block ang extension na ito}one{Naka-block ang mga extension na ito}other{Naka-block ang mga extension na ito}}</translation>
 <translation id="560834977503641186">Wi-Fi Sync, Matuto Pa</translation>
@@ -5787,7 +5785,6 @@
 <translation id="5641648607875312660">Editor ng Screenshot na Larawan</translation>
 <translation id="5642508497713047">Tagapaglagda ng CRL</translation>
 <translation id="5643321261065707929">Nakametrong network</translation>
-<translation id="5643620609347735571">I-clear at magpatuloy</translation>
 <translation id="5646376287012673985">Lokasyon</translation>
 <translation id="5646558797914161501">Negosyante</translation>
 <translation id="5648021990716966815">Jack ng mikropono</translation>
@@ -7707,7 +7704,6 @@
 <translation id="7241389281993241388">Mangyaring mag-sign in sa <ph name="TOKEN_NAME" /> upang i-import ang certificate ng client.</translation>
 <translation id="7241763419756062043">Piliin ang iyong kalidad ng paghahanap at pag-browse</translation>
 <translation id="7243092385765551741">I-delete ang passkey?</translation>
-<translation id="7243632151880336635">I-clear at Mag-sign Out</translation>
 <translation id="7245162963905242662">Maghan&amp;ap sa page na ito gamit ang Google...</translation>
 <translation id="7245628041916450754"><ph name="WIDTH" /> x <ph name="HEIGHT" /> (Pinakamainam)</translation>
 <translation id="7246230585855757313">Muling ipasok ang iyong security key at subukan ulit</translation>
@@ -8585,7 +8581,6 @@
 <translation id="7925285046818567682">Naghihintay para sa <ph name="HOST_NAME" />...</translation>
 <translation id="7926423016278357561">Hindi ako ito.</translation>
 <translation id="7926975587469166629">Nickname ng card</translation>
-<translation id="7927610604078150317">Sukat: <ph name="CHROME_APP_SIZE" /></translation>
 <translation id="7928175190925744466">Napalitan mo na ang password na ito?</translation>
 <translation id="7929962904089429003">Buksan ang menu</translation>
 <translation id="7930294771522048157">Lalabas dito ang mga naka-save na paraan ng pagbabayad</translation>
@@ -9236,6 +9231,7 @@
 <translation id="8448729345478502352">Paliitin o palakihin ang mga item sa iyong screen</translation>
 <translation id="8449008133205184768">I-paste at Itugma ang Estilo</translation>
 <translation id="8449036207308062757">Pamahalaan ang storage</translation>
+<translation id="8449347986464073209">I-delete at Mag-sign Out</translation>
 <translation id="8449836157089738489">Buksan lahat sa bagong grupo ng tab</translation>
 <translation id="8449869326050867919">Na-share ang password</translation>
 <translation id="8451512073679317615">assistant</translation>
diff --git a/chrome/app/resources/generated_resources_fr-CA.xtb b/chrome/app/resources/generated_resources_fr-CA.xtb
index 23e454a..46239806 100644
--- a/chrome/app/resources/generated_resources_fr-CA.xtb
+++ b/chrome/app/resources/generated_resources_fr-CA.xtb
@@ -5014,7 +5014,6 @@
 <translation id="5027550639139316293">Certificat de courrier électronique</translation>
 <translation id="5027562294707732951">Ajouter une extension</translation>
 <translation id="5028445315206872221">Les extensions sont bloquées sur ce site</translation>
-<translation id="5029568752722684782">Effacer la copie</translation>
 <translation id="5029873138381728058">Échec de la vérification des MV</translation>
 <translation id="503155457707535043">Téléchargement des applications en cours…</translation>
 <translation id="5032430150487044192">Impossible de créer un code QR</translation>
@@ -5707,7 +5706,6 @@
 <translation id="5601823921345337195">Non autorisés à se connecter à des appareils MIDI</translation>
 <translation id="5601833336918638013">Ne pas autoriser les sites à rechercher les appareils Bluetooth</translation>
 <translation id="5602586420788540146">Ouvrir dans un nouveau groupe d'onglets</translation>
-<translation id="5602765853043467355">Effacer les favoris, l'historique, les mots de passe et autres de cet appareil</translation>
 <translation id="5605758115928394442">Nous avons envoyé une notification à votre téléphone pour confirmer votre identité.</translation>
 <translation id="5606849116180480101">{NUM_EXTENSIONS,plural, =1{Cette extension est bloquée}one{Cette extension est bloquée}other{Ces extensions sont bloquées}}</translation>
 <translation id="560834977503641186">Synchronisation Wi-Fi, en savoir plus</translation>
@@ -5759,7 +5757,6 @@
 <translation id="5641648607875312660">Éditeur d'images de capture d'écran</translation>
 <translation id="5642508497713047">Signataire de la liste de révocation de certificats</translation>
 <translation id="5643321261065707929">Réseau à connexion mesurée</translation>
-<translation id="5643620609347735571">Effacer et continuer</translation>
 <translation id="5646376287012673985">Lieu</translation>
 <translation id="5646558797914161501">Homme d'affaires</translation>
 <translation id="5648021990716966815">Prise du microphone</translation>
@@ -7677,7 +7674,6 @@
 <translation id="7241389281993241388">Veuillez vous connecter à <ph name="TOKEN_NAME" /> pour importer le certificat de client.</translation>
 <translation id="7241763419756062043">Choisir la qualité désirée en matière de recherche et de navigation</translation>
 <translation id="7243092385765551741">Supprimer la clé d'accès?</translation>
-<translation id="7243632151880336635">Effacer et se déconnecter</translation>
 <translation id="7245162963905242662">Rechercher cette page avec Google…</translation>
 <translation id="7245628041916450754"><ph name="WIDTH" /> x <ph name="HEIGHT" /> (Meilleure résolution)</translation>
 <translation id="7246230585855757313">Réinsérez votre clé de sécurité, puis réessayez</translation>
@@ -8551,7 +8547,6 @@
 <translation id="7925285046818567682">En attente d'une réponse de <ph name="HOST_NAME" />...</translation>
 <translation id="7926423016278357561">Ce n'était pas moi.</translation>
 <translation id="7926975587469166629">Pseudo de la carte</translation>
-<translation id="7927610604078150317">Taille : <ph name="CHROME_APP_SIZE" /></translation>
 <translation id="7928175190925744466">Avez-vous déjà modifié ce mot de passe?</translation>
 <translation id="7929962904089429003">Ouvrir le menu</translation>
 <translation id="7930294771522048157">Les modes de paiement enregistrés s'afficheront ici</translation>
@@ -9199,6 +9194,7 @@
 <translation id="8448729345478502352">Agrandir ou réduire les éléments affichés</translation>
 <translation id="8449008133205184768">Coller en adaptant le style</translation>
 <translation id="8449036207308062757">Gérer l'espace de stockage</translation>
+<translation id="8449347986464073209">Supprimer et se déconnecter</translation>
 <translation id="8449836157089738489">Tout ouvrir dans un nouveau groupe d'onglets</translation>
 <translation id="8449869326050867919">Mot de passe partagé</translation>
 <translation id="8451512073679317615">assistant</translation>
diff --git a/chrome/app/resources/generated_resources_fr.xtb b/chrome/app/resources/generated_resources_fr.xtb
index 35ba5b20..6e93b98 100644
--- a/chrome/app/resources/generated_resources_fr.xtb
+++ b/chrome/app/resources/generated_resources_fr.xtb
@@ -5025,7 +5025,6 @@
 <translation id="5027550639139316293">Certificat de courrier électronique</translation>
 <translation id="5027562294707732951">Ajouter l'extension</translation>
 <translation id="5028445315206872221">Les extensions sont bloquées sur ce site</translation>
-<translation id="5029568752722684782">Effacer la copie</translation>
 <translation id="5029873138381728058">Échec de la vérification des VM</translation>
 <translation id="503155457707535043">Téléchargement des applications</translation>
 <translation id="5032430150487044192">Impossible de créer le code QR</translation>
@@ -5719,7 +5718,6 @@
 <translation id="5601823921345337195">Non autorisé à se connecter à des appareils MIDI</translation>
 <translation id="5601833336918638013">Ne pas autoriser les sites à rechercher des appareils Bluetooth</translation>
 <translation id="5602586420788540146">Ouvrir dans un nouveau groupe d'onglets</translation>
-<translation id="5602765853043467355">Effacer les favoris, l'historique, les mots de passe et autres paramètres de cet appareil</translation>
 <translation id="5605758115928394442">Une notification a été envoyée à votre téléphone pour que vous puissiez confirmer votre identité.</translation>
 <translation id="5606849116180480101">{NUM_EXTENSIONS,plural, =1{Cette extension est bloquée}one{Cette extension est bloquée}other{Ces extensions sont bloquées}}</translation>
 <translation id="560834977503641186">Sync Wi-Fi (en savoir plus)</translation>
@@ -5772,7 +5770,6 @@
 <translation id="5641648607875312660">Éditeur de captures d'écran</translation>
 <translation id="5642508497713047">Signataire de la liste de révocation de certificats</translation>
 <translation id="5643321261065707929">Réseau facturé à l'usage</translation>
-<translation id="5643620609347735571">Effacer et continuer</translation>
 <translation id="5646376287012673985">Localisation</translation>
 <translation id="5646558797914161501">Homme d'affaires</translation>
 <translation id="5648021990716966815">Connecteur micro</translation>
@@ -7692,7 +7689,6 @@
 <translation id="7241389281993241388">Connectez-vous à <ph name="TOKEN_NAME" /> pour importer le certificat client.</translation>
 <translation id="7241763419756062043">Choisissez la qualité de vos recherches et de votre navigation</translation>
 <translation id="7243092385765551741">Supprimer la clé d'accès ?</translation>
-<translation id="7243632151880336635">Effacer et se déconnecter</translation>
 <translation id="7245162963905242662">Rechercher cette page sur Google</translation>
 <translation id="7245628041916450754"><ph name="WIDTH" /> x <ph name="HEIGHT" /> (résolution optimale)</translation>
 <translation id="7246230585855757313">Réinsérez votre clé de sécurité et réessayez</translation>
@@ -8570,7 +8566,6 @@
 <translation id="7925285046818567682">En attente de <ph name="HOST_NAME" />...</translation>
 <translation id="7926423016278357561">Ce n'était pas moi</translation>
 <translation id="7926975587469166629">Pseudo associé à la carte</translation>
-<translation id="7927610604078150317">Taille : <ph name="CHROME_APP_SIZE" /></translation>
 <translation id="7928175190925744466">Vous avez déjà modifié ce mot de passe ?</translation>
 <translation id="7929962904089429003">Ouvrir le menu</translation>
 <translation id="7930294771522048157">Les modes de paiement enregistrés s'afficheront ici</translation>
@@ -9220,6 +9215,7 @@
 <translation id="8448729345478502352">Agrandissez ou réduisez la taille des éléments à l'écran</translation>
 <translation id="8449008133205184768">Coller en adaptant le style</translation>
 <translation id="8449036207308062757">Gérer l'espace de stockage</translation>
+<translation id="8449347986464073209">Supprimer et se déconnecter</translation>
 <translation id="8449836157089738489">Tout ouvrir dans un nouveau groupe d'onglets</translation>
 <translation id="8449869326050867919">Mot de passe partagé</translation>
 <translation id="8451512073679317615">assistant</translation>
diff --git a/chrome/app/resources/generated_resources_gl.xtb b/chrome/app/resources/generated_resources_gl.xtb
index d2b289d4..37eb5cd 100644
--- a/chrome/app/resources/generated_resources_gl.xtb
+++ b/chrome/app/resources/generated_resources_gl.xtb
@@ -5026,7 +5026,6 @@
 <translation id="5027550639139316293">Certificado de correo electrónico</translation>
 <translation id="5027562294707732951">Engadir extensión</translation>
 <translation id="5028445315206872221">Bloqueáronse as extensións neste sitio</translation>
-<translation id="5029568752722684782">Borrar copia</translation>
 <translation id="5029873138381728058">Produciuse un erro ao comprobar as máquinas virtuais</translation>
 <translation id="503155457707535043">Descargando aplicacións</translation>
 <translation id="5032430150487044192">Non se puido crear o código QR</translation>
@@ -5720,7 +5719,6 @@
 <translation id="5601823921345337195">Sitios que non poden conectarse a dispositivos MIDI</translation>
 <translation id="5601833336918638013">Non permitir que os sitios busquen dispositivos Bluetooth</translation>
 <translation id="5602586420788540146">Abrir nun grupo de pestanas novo</translation>
-<translation id="5602765853043467355">Borrar marcadores, historial, contrasinais etc., deste dispositivo</translation>
 <translation id="5605758115928394442">Enviouse unha notificación ao teu teléfono para confirmar a túa identidade.</translation>
 <translation id="5606849116180480101">{NUM_EXTENSIONS,plural, =1{Esta extensión está bloqueada}other{Estas extensións están bloqueadas}}</translation>
 <translation id="560834977503641186">Sincronización wifi; máis información</translation>
@@ -5770,7 +5768,6 @@
 <translation id="5641648607875312660">Editor de imaxes de captura de pantalla</translation>
 <translation id="5642508497713047">Asinante de CRL</translation>
 <translation id="5643321261065707929">Rede de pago por consumo</translation>
-<translation id="5643620609347735571">Borrar e continuar</translation>
 <translation id="5646376287012673985">Localización</translation>
 <translation id="5646558797914161501">Home de negocios</translation>
 <translation id="5648021990716966815">Conector do micrófono</translation>
@@ -7686,7 +7683,6 @@
 <translation id="7241389281993241388">Inicia sesión en <ph name="TOKEN_NAME" /> para importar o certificado de cliente.</translation>
 <translation id="7241763419756062043">Escolle a calidade de navegación e de busca</translation>
 <translation id="7243092385765551741">Queres eliminar a clave de acceso?</translation>
-<translation id="7243632151880336635">Borrar e pechar sesión</translation>
 <translation id="7245162963905242662">Bus&amp;car esta páxina con Google...</translation>
 <translation id="7245628041916450754"><ph name="WIDTH" /> x <ph name="HEIGHT" /> (a mellor)</translation>
 <translation id="7246230585855757313">Volve introducir a túa chave de seguranza e téntao de novo</translation>
@@ -8564,7 +8560,6 @@
 <translation id="7925285046818567682">Esperando por <ph name="HOST_NAME" />...</translation>
 <translation id="7926423016278357561">Non era eu.</translation>
 <translation id="7926975587469166629">Alcume da tarxeta</translation>
-<translation id="7927610604078150317">Tamaño: <ph name="CHROME_APP_SIZE" /></translation>
 <translation id="7928175190925744466">Xa cambiaches este contrasinal?</translation>
 <translation id="7929962904089429003">Abrir o menú</translation>
 <translation id="7930294771522048157">Os métodos de pago gardados aparecerán aquí</translation>
@@ -9213,6 +9208,7 @@
 <translation id="8448729345478502352">Reduce ou amplía os elementos da pantalla</translation>
 <translation id="8449008133205184768">Pegar co mesmo estilo</translation>
 <translation id="8449036207308062757">Xestionar almacenamento</translation>
+<translation id="8449347986464073209">Eliminar e pechar sesión</translation>
 <translation id="8449836157089738489">Abrir todo nun grupo de pestanas novo</translation>
 <translation id="8449869326050867919">Compartiuse o contrasinal</translation>
 <translation id="8451512073679317615">asistente</translation>
diff --git a/chrome/app/resources/generated_resources_gu.xtb b/chrome/app/resources/generated_resources_gu.xtb
index 189e144..f0ca2b7d 100644
--- a/chrome/app/resources/generated_resources_gu.xtb
+++ b/chrome/app/resources/generated_resources_gu.xtb
@@ -5032,7 +5032,6 @@
 <translation id="5027550639139316293">ઇમેઇલ પ્રમાણપત્ર</translation>
 <translation id="5027562294707732951">એક્સ્ટેન્શન ઉમેરો</translation>
 <translation id="5028445315206872221">આ સાઇટ પર એક્સ્ટેન્શન બ્લૉક કરવામાં આવ્યા છે</translation>
-<translation id="5029568752722684782">કૉપિ સાફ કરો</translation>
 <translation id="5029873138381728058">VMs ચેક કરવામાં નિષ્ફળ રહ્યાં</translation>
 <translation id="503155457707535043">ઍપ ડાઉનલોડ થઈ રહી છે</translation>
 <translation id="5032430150487044192">QR કોડ બનાવી શકતા નથી</translation>
@@ -5726,7 +5725,6 @@
 <translation id="5601823921345337195">MIDI ડિવાઇસ સાથે કનેક્ટ કરવાની મંજૂરી આપેલી નથી</translation>
 <translation id="5601833336918638013">બ્લૂટૂથ ડિવાઇસ શોધવા માટે સાઇટને મંજૂરી આપશો નહીં</translation>
 <translation id="5602586420788540146">નવા ટૅબના ગ્રૂપમાં ખોલો</translation>
-<translation id="5602765853043467355">આ ડિવાઇસમાંથી બુકમાર્ક, ઇતિહાસ, પાસવર્ડ અને વધુ સાફ કરો</translation>
 <translation id="5605758115928394442">તમે જ છો તે કન્ફર્મ કરવા માટે તમારા ફોન પર નોટિફિકેશન મોકલવામાં આવ્યું હતું.</translation>
 <translation id="5606849116180480101">{NUM_EXTENSIONS,plural, =1{આ એક્સ્ટેન્શનને બ્લૉક કરવામાં આવ્યું છે}one{આ એક્સ્ટેન્શનને બ્લૉક કરવામાં આવ્યું છે}other{આ એક્સ્ટેન્શનને બ્લૉક કરવામાં આવ્યા છે}}</translation>
 <translation id="560834977503641186">વાઇ-ફાઇ સિંક, વધુ જાણો</translation>
@@ -5779,7 +5777,6 @@
 <translation id="5641648607875312660">સ્ક્રીનશૉટ છબી એડિટર</translation>
 <translation id="5642508497713047">CRL હસ્તાક્ષરકર્તા</translation>
 <translation id="5643321261065707929">મીટર્ડ (ડેટા નિયંત્રણ) નેટવર્ક</translation>
-<translation id="5643620609347735571">સાફ કરો અને ચાલુ રાખો</translation>
 <translation id="5646376287012673985">સ્થાન</translation>
 <translation id="5646558797914161501">ઉદ્યોગપતિ</translation>
 <translation id="5648021990716966815">માઇક જેક</translation>
@@ -7702,7 +7699,6 @@
 <translation id="7241389281993241388">ક્લાયંટ પ્રમાણપત્ર આયાત કરવા માટે કૃપા કરીને <ph name="TOKEN_NAME" /> પર સાઇન ઇન કરો.</translation>
 <translation id="7241763419756062043">તમારી શોધ અને બ્રાઉઝિંગ ક્વૉલિટી પસંદ કરો</translation>
 <translation id="7243092385765551741">પાસકી ડિલીટ કરીએ?</translation>
-<translation id="7243632151880336635">સાફ કરો અને સાઇન આઉટ કરો</translation>
 <translation id="7245162963905242662">Google વડે આ પેજ શોધો...</translation>
 <translation id="7245628041916450754"><ph name="WIDTH" /> x <ph name="HEIGHT" /> (શ્રેષ્ઠ)</translation>
 <translation id="7246230585855757313">તમારો સુરક્ષા કોડ ફરી શામેલ કરીને ફરી પ્રયાસ કરો</translation>
@@ -8581,7 +8577,6 @@
 <translation id="7925285046818567682"><ph name="HOST_NAME" /> ની પ્રતીક્ષા કરે છે...</translation>
 <translation id="7926423016278357561">આ હું ન હતો/હતી.</translation>
 <translation id="7926975587469166629">કાર્ડનું ઉપનામ</translation>
-<translation id="7927610604078150317">કદ: <ph name="CHROME_APP_SIZE" /></translation>
 <translation id="7928175190925744466">આ પાસવર્ડ પહેલેથી બદલી નાખ્યો છે?</translation>
 <translation id="7929962904089429003">મેનૂ ખોલો</translation>
 <translation id="7930294771522048157">સાચવેલ ચુકવણી પદ્ધતિઓ અહીં દેખાશે</translation>
@@ -9226,6 +9221,7 @@
 <translation id="8448729345478502352">તમારી સ્ક્રીન પરની આઇટમને નાની અથવા મોટી કરો</translation>
 <translation id="8449008133205184768">શૈલી પેસ્ટ કરો અને મેળ બેસાડો</translation>
 <translation id="8449036207308062757">સ્ટોરેજ મેનેજ કરો</translation>
+<translation id="8449347986464073209">ડિલીટ કરો અને સાઇન આઉટ કરો</translation>
 <translation id="8449836157089738489">બધા નવી ટૅબના ગ્રૂપમાં ખોલો</translation>
 <translation id="8449869326050867919">પાસવર્ડ શેર કરવામાં આવ્યો</translation>
 <translation id="8451512073679317615">સહાયક</translation>
diff --git a/chrome/app/resources/generated_resources_hi.xtb b/chrome/app/resources/generated_resources_hi.xtb
index beeb6603..747d4fe 100644
--- a/chrome/app/resources/generated_resources_hi.xtb
+++ b/chrome/app/resources/generated_resources_hi.xtb
@@ -5037,7 +5037,6 @@
 <translation id="5027550639139316293">ईमेल प्रमाणपत्र</translation>
 <translation id="5027562294707732951">एक्‍सटेंशन जोड़ें</translation>
 <translation id="5028445315206872221">इस साइट पर एक्सटेंशन को ब्लॉक कर दिया गया है</translation>
-<translation id="5029568752722684782">स्‍पष्‍ट कॉपी</translation>
 <translation id="5029873138381728058">यह पता नहीं चला कि कितने वीएम मौजूद हैं</translation>
 <translation id="503155457707535043">ऐप्लिकेशन डाउनलोड हो रहे हैं</translation>
 <translation id="5032430150487044192">क्यूआर कोड नहीं बनाया जा सकता</translation>
@@ -5730,7 +5729,6 @@
 <translation id="5601823921345337195">MIDI डिवाइस से कनेक्ट करने की अनुमति नहीं है</translation>
 <translation id="5601833336918638013">साइटों को ब्लूटूथ डिवाइस खोजने की अनुमति न दें</translation>
 <translation id="5602586420788540146">नए टैब ग्रुप में खोलें</translation>
-<translation id="5602765853043467355">इस डिवाइस से बुकमार्क, इतिहास, पासवर्ड वगैरह मिटाएं</translation>
 <translation id="5605758115928394442">आपकी पहचान की पुष्टि करने के लिए, आपके फ़ोन पर एक सूचना भेजी गई थी.</translation>
 <translation id="5606849116180480101">{NUM_EXTENSIONS,plural, =1{इस एक्सटेंशन को ब्लॉक किया गया है}one{इस एक्सटेंशन को ब्लॉक किया गया है}other{इन एक्सटेंशन को ब्लॉक किया गया है}}</translation>
 <translation id="560834977503641186">'वाई-फ़ाई सिंक' के बारे में ज़्यादा जानें</translation>
@@ -5782,7 +5780,6 @@
 <translation id="5641648607875312660">स्क्रीनशॉट इमेज एडिटर</translation>
 <translation id="5642508497713047">CRL हस्ताक्षरकर्ता</translation>
 <translation id="5643321261065707929">सीमित डेटा वाला नेटवर्क</translation>
-<translation id="5643620609347735571">साफ़ करें और जारी रखें</translation>
 <translation id="5646376287012673985">जगह की जानकारी</translation>
 <translation id="5646558797914161501">व्यवसायी</translation>
 <translation id="5648021990716966815">माइक जैक</translation>
@@ -7701,7 +7698,6 @@
 <translation id="7241389281993241388">क्लाइंट प्रमाणपत्र लेकर आने के लिए, कृपया <ph name="TOKEN_NAME" /> में साइन इन करें.</translation>
 <translation id="7241763419756062043">अपनी खोज और ब्राउज़िंग की क्वालिटी चुनें</translation>
 <translation id="7243092385765551741">क्या पासकी को मिटाना है?</translation>
-<translation id="7243632151880336635">साफ़ करें और प्रस्थान करें</translation>
 <translation id="7245162963905242662">इस पेज को Google की मदद से खोजें...</translation>
 <translation id="7245628041916450754"><ph name="WIDTH" /> x <ph name="HEIGHT" /> (श्रेष्ठ)</translation>
 <translation id="7246230585855757313">अपनी सुरक्षा कुंजी फिर से लगाएं और दोबारा कोशिश करें</translation>
@@ -8574,7 +8570,6 @@
 <translation id="7925285046818567682"><ph name="HOST_NAME" /> की प्रतीक्षा कर रहा है...</translation>
 <translation id="7926423016278357561">यह मैं नहीं था/थी.</translation>
 <translation id="7926975587469166629">कार्ड का कोई दूसरा नाम</translation>
-<translation id="7927610604078150317">साइज़: <ph name="CHROME_APP_SIZE" /></translation>
 <translation id="7928175190925744466">क्या आपने पहले ही यह पासवर्ड बदल दिया है?</translation>
 <translation id="7929962904089429003">मेन्यू खोलें</translation>
 <translation id="7930294771522048157">सेव किए गए पेमेंट के तरीके यहां दिखेंगे</translation>
@@ -9224,6 +9219,7 @@
 <translation id="8448729345478502352">अपनी स्क्रीन पर मौजूद आइटम को छोटा या बड़ा करें</translation>
 <translation id="8449008133205184768">चिपकाएं और शैली का मिलान करें</translation>
 <translation id="8449036207308062757">जगह प्रबंधित करें</translation>
+<translation id="8449347986464073209">मिटाएं और साइन आउट करें</translation>
 <translation id="8449836157089738489">सभी यूआरएल नए टैब ग्रुप में खोलें</translation>
 <translation id="8449869326050867919">पासवर्ड शेयर किया गया</translation>
 <translation id="8451512073679317615">assistant</translation>
diff --git a/chrome/app/resources/generated_resources_hr.xtb b/chrome/app/resources/generated_resources_hr.xtb
index cdc0bc2..960ac902 100644
--- a/chrome/app/resources/generated_resources_hr.xtb
+++ b/chrome/app/resources/generated_resources_hr.xtb
@@ -5027,7 +5027,6 @@
 <translation id="5027550639139316293">Certifikat e-pošte</translation>
 <translation id="5027562294707732951">Dodaj proširenje</translation>
 <translation id="5028445315206872221">Proširenja su blokirana na ovoj web-lokaciji</translation>
-<translation id="5029568752722684782">Izbriši kopiju</translation>
 <translation id="5029873138381728058">Provjera VM-ova nije uspjela</translation>
 <translation id="503155457707535043">Preuzimanje aplikacija</translation>
 <translation id="5032430150487044192">Izrada QR koda nije uspjela</translation>
@@ -5721,7 +5720,6 @@
 <translation id="5601823921345337195">Nije dopušteno povezivanje s MIDI uređajima</translation>
 <translation id="5601833336918638013">Ne dopuštaj web-lokacijama traženje Bluetooth uređaja</translation>
 <translation id="5602586420788540146">Otvori u novoj grupi kartica</translation>
-<translation id="5602765853043467355">Izbriši oznake, povijest, zaporke i druge podatke s ovog uređaja</translation>
 <translation id="5605758115928394442">Poslali smo obavijest na vaš telefon kako bismo potvrdili da ste to vi.</translation>
 <translation id="5606849116180480101">{NUM_EXTENSIONS,plural, =1{To je proširenje blokirano}one{Ta su proširenja blokirana}few{Ta su proširenja blokirana}other{Ta su proširenja blokirana}}</translation>
 <translation id="560834977503641186">Wi-Fi sinkronizacija, saznajte više</translation>
@@ -5771,7 +5769,6 @@
 <translation id="5641648607875312660">Uređivač snimki zaslona</translation>
 <translation id="5642508497713047">CRL potpisnik</translation>
 <translation id="5643321261065707929">Mreža s ograničenim prometom</translation>
-<translation id="5643620609347735571">Izbriši i nastavi</translation>
 <translation id="5646376287012673985">Lokacija</translation>
 <translation id="5646558797914161501">Poslovni čovjek</translation>
 <translation id="5648021990716966815">Utičnica mikrofona</translation>
@@ -7692,7 +7689,6 @@
 <translation id="7241389281993241388">Prijavite se na uređaj <ph name="TOKEN_NAME" /> kako biste uvezli certifikat klijenta.</translation>
 <translation id="7241763419756062043">Odaberite kvalitetu pretraživanja i pregledavanja</translation>
 <translation id="7243092385765551741">Želite li izbrisati pristupni ključ?</translation>
-<translation id="7243632151880336635">Izbriši i odjavi se</translation>
 <translation id="7245162963905242662">Pretražite ovu stranicu pomoću Googlea...</translation>
 <translation id="7245628041916450754"><ph name="WIDTH" /> x <ph name="HEIGHT" /> (najbolje)</translation>
 <translation id="7246230585855757313">Ponovo umetnite sigurnosni ključ i pokušajte opet</translation>
@@ -8570,7 +8566,6 @@
 <translation id="7925285046818567682">Čekanje <ph name="HOST_NAME" />...</translation>
 <translation id="7926423016278357561">To nisam bio ja.</translation>
 <translation id="7926975587469166629">Nadimak kartice</translation>
-<translation id="7927610604078150317">Veličina: <ph name="CHROME_APP_SIZE" /></translation>
 <translation id="7928175190925744466">Već ste promijenili ovu zaporku?</translation>
 <translation id="7929962904089429003">Otvaranje izbornika</translation>
 <translation id="7930294771522048157">Ovdje će se prikazivati spremljeni načini plaćanja</translation>
@@ -9220,6 +9215,7 @@
 <translation id="8448729345478502352">Povećajte ili smanjite stavke na zaslonu</translation>
 <translation id="8449008133205184768">Zalijepi i podesi stil</translation>
 <translation id="8449036207308062757">Upravljanje pohranom</translation>
+<translation id="8449347986464073209">Izbriši i odjavi se</translation>
 <translation id="8449836157089738489">Otvori sve u novoj grupi kartica</translation>
 <translation id="8449869326050867919">Podijeljena je zaporka</translation>
 <translation id="8451512073679317615">asistent</translation>
diff --git a/chrome/app/resources/generated_resources_hu.xtb b/chrome/app/resources/generated_resources_hu.xtb
index 1ccf1eb..3da6c217 100644
--- a/chrome/app/resources/generated_resources_hu.xtb
+++ b/chrome/app/resources/generated_resources_hu.xtb
@@ -5048,7 +5048,6 @@
 <translation id="5027550639139316293">E-mail tanúsítvány</translation>
 <translation id="5027562294707732951">Bővítmény hozzáadása</translation>
 <translation id="5028445315206872221">A bővítmények le vannak tiltva ezen a webhelyen</translation>
-<translation id="5029568752722684782">Példány törlése</translation>
 <translation id="5029873138381728058">Nem sikerült a VM-ek ellenőrzése</translation>
 <translation id="503155457707535043">Alkalmazások letöltése folyamatban</translation>
 <translation id="5032430150487044192">Nem lehet létrehozni a QR-kódot.</translation>
@@ -5743,7 +5742,6 @@
 <translation id="5601823921345337195">Nem csatlakozhatnak a MIDI-eszközökhöz</translation>
 <translation id="5601833336918638013">A webhelyek nem kereshetnek Bluetooth-eszközöket</translation>
 <translation id="5602586420788540146">Megnyitás új lapcsoportban</translation>
-<translation id="5602765853043467355">Könyvjelzők, előzmények, jelszavak és egyebek törlése erről az eszközről</translation>
 <translation id="5605758115928394442">A rendszer értesítést küldött az Ön telefonjára, hogy segítségével igazolhassa személyazonosságát.</translation>
 <translation id="5606849116180480101">{NUM_EXTENSIONS,plural, =1{Ez a bővítmény le van tiltva}other{Ezek a bővítmények le vannak tiltva}}</translation>
 <translation id="560834977503641186">Wi-Fi szinkronizálása, további információ</translation>
@@ -5796,7 +5794,6 @@
 <translation id="5641648607875312660">Képernyőkép-szerkesztő</translation>
 <translation id="5642508497713047">Tanúsítvány-visszavonási lista aláírója</translation>
 <translation id="5643321261065707929">Forgalomkorlátos hálózat</translation>
-<translation id="5643620609347735571">Törlés és folytatás</translation>
 <translation id="5646376287012673985">Tartózkodási hely</translation>
 <translation id="5646558797914161501">Üzletember</translation>
 <translation id="5648021990716966815">Mikrofon jack csatlakozója</translation>
@@ -7716,7 +7713,6 @@
 <translation id="7241389281993241388">Kérjük, jelentkezzen be a(z) <ph name="TOKEN_NAME" /> szolgáltatásba az ügyféltanúsítvány importálásához.</translation>
 <translation id="7241763419756062043">A keresés és a böngészés minőségének beállítása</translation>
 <translation id="7243092385765551741">Törli az azonosítókulcsot?</translation>
-<translation id="7243632151880336635">Törlés és kijelentkezés</translation>
 <translation id="7245162963905242662">Keresés az oldalon a Google-lal…</translation>
 <translation id="7245628041916450754"><ph name="WIDTH" /> x <ph name="HEIGHT" /> képpont (a legjobb)</translation>
 <translation id="7246230585855757313">Helyezze be újra a biztonsági hardverkulcsot, és próbálja újra</translation>
@@ -8595,7 +8591,6 @@
 <translation id="7925285046818567682">Várakozás a szerverre: <ph name="HOST_NAME" />...</translation>
 <translation id="7926423016278357561">Nem én voltam.</translation>
 <translation id="7926975587469166629">Egyéni kártyanév</translation>
-<translation id="7927610604078150317">Méret: <ph name="CHROME_APP_SIZE" /></translation>
 <translation id="7928175190925744466">Módosította már ezt a jelszót?</translation>
 <translation id="7929962904089429003">A menü megnyitása</translation>
 <translation id="7930294771522048157">Az elmentett fizetési módok itt jelennek meg</translation>
@@ -9245,6 +9240,7 @@
 <translation id="8448729345478502352">Nagyíthatja és kicsinyítheti a képernyőn megjelenő elemeket</translation>
 <translation id="8449008133205184768">Beillesztés és stílus egyeztetése</translation>
 <translation id="8449036207308062757">Tárhely kezelése</translation>
+<translation id="8449347986464073209">Törlés és kijelentkezés</translation>
 <translation id="8449836157089738489">Az összes megnyitása új lapcsoportban</translation>
 <translation id="8449869326050867919">Jelszó megosztva</translation>
 <translation id="8451512073679317615">segéd</translation>
diff --git a/chrome/app/resources/generated_resources_hy.xtb b/chrome/app/resources/generated_resources_hy.xtb
index 53a127ac..b854bc6 100644
--- a/chrome/app/resources/generated_resources_hy.xtb
+++ b/chrome/app/resources/generated_resources_hy.xtb
@@ -5025,7 +5025,6 @@
 <translation id="5027550639139316293">Էլփոստի վկայագիր</translation>
 <translation id="5027562294707732951">Ավելացնել ընդլայնում</translation>
 <translation id="5028445315206872221">Ընդլայնումներն արգելափակված են այս կայքում</translation>
-<translation id="5029568752722684782">Մաքրել պատճենը</translation>
 <translation id="5029873138381728058">Չհաջողվեց ստուգել վիրտուալ մեքենաները</translation>
 <translation id="503155457707535043">Հավելվածները ներբեռնվում են</translation>
 <translation id="5032430150487044192">Չհաջողվեց ստեղծել QR կոդը</translation>
@@ -5721,7 +5720,6 @@
 <translation id="5601823921345337195">Չի թույլատրվում միանալ MIDI սարքերին</translation>
 <translation id="5601833336918638013">Թույլ չտալ կայքերին որոնել Bluetooth սարքեր</translation>
 <translation id="5602586420788540146">Բացել ներդիրների նոր խմբում</translation>
-<translation id="5602765853043467355">Մաքրել այս սարքի էջանիշները, պատմությունը, գաղտնաբառերն ու մյուս տվյալները</translation>
 <translation id="5605758115928394442">Ձեր ինքնությունը հաստատելու համար ձեր հեռախոսին ծանուցում է ուղարկվել:</translation>
 <translation id="5606849116180480101">{NUM_EXTENSIONS,plural, =1{Այս ընդլայնումն արգելափակված է}one{Այս ընդլայնումն արգելափակված է}other{Այս ընդլայնումներն արգելափակված են}}</translation>
 <translation id="560834977503641186">Մանրամասն Wi-Fi համաժամացման մասին</translation>
@@ -5771,7 +5769,6 @@
 <translation id="5641648607875312660">Սքրինշոթների խմբագրիչ</translation>
 <translation id="5642508497713047">CRL-ի ստորագրող</translation>
 <translation id="5643321261065707929">Վճարովի ինտերնետ</translation>
-<translation id="5643620609347735571">Մաքրել և շարունակել</translation>
 <translation id="5646376287012673985">Տեղադրություն</translation>
 <translation id="5646558797914161501">Բիզնեսմեն</translation>
 <translation id="5648021990716966815">Խոսափողի հարակցիչ</translation>
@@ -7689,7 +7686,6 @@
 <translation id="7241389281993241388">Սպասառուի վկայագիրը ներմուծելու համար մուտք գործեք <ph name="TOKEN_NAME" />:</translation>
 <translation id="7241763419756062043">Կարգավորեք որոնումն ու դիտարկումը</translation>
 <translation id="7243092385765551741">Ջնջե՞լ անցաբառը</translation>
-<translation id="7243632151880336635">Մաքրել և դուրս գալ</translation>
 <translation id="7245162963905242662">Որոնել այս էջում Google-ի միջոցով…</translation>
 <translation id="7245628041916450754"><ph name="WIDTH" /> x <ph name="HEIGHT" /> (լավագույն)</translation>
 <translation id="7246230585855757313">Նորից տեղադրեք անվտանգության բանալին ու կրկնեք փորձը։</translation>
@@ -8566,7 +8562,6 @@
 <translation id="7925285046818567682">Սպասում ենք <ph name="HOST_NAME" />-ին…</translation>
 <translation id="7926423016278357561">Սա ես չեմ։</translation>
 <translation id="7926975587469166629">Քարտի այլանունը</translation>
-<translation id="7927610604078150317">Չափսը՝ <ph name="CHROME_APP_SIZE" /></translation>
 <translation id="7928175190925744466">Արդեն փոխե՞լ եք այս գաղտնաբառը</translation>
 <translation id="7929962904089429003">Բացել ընտրացանկը</translation>
 <translation id="7930294771522048157">Վճարման պահված եղանակները կհայտնվեն այստեղ</translation>
@@ -9215,6 +9210,7 @@
 <translation id="8448729345478502352">Փոփոխեք էկրանի տարրերի չափը</translation>
 <translation id="8449008133205184768">Տեղադրել՝ ոճի համապատասխանությամբ</translation>
 <translation id="8449036207308062757">Կառավարել հիշողությունը</translation>
+<translation id="8449347986464073209">Ջնջել և դուրս գալ</translation>
 <translation id="8449836157089738489">Բացել բոլորը նոր ներդիրների խմբում</translation>
 <translation id="8449869326050867919">Գաղտնաբառը փոխանցվեց</translation>
 <translation id="8451512073679317615">օգնական</translation>
diff --git a/chrome/app/resources/generated_resources_id.xtb b/chrome/app/resources/generated_resources_id.xtb
index 7630ff3..93cba252 100644
--- a/chrome/app/resources/generated_resources_id.xtb
+++ b/chrome/app/resources/generated_resources_id.xtb
@@ -5040,7 +5040,6 @@
 <translation id="5027550639139316293">Sertifikat Email</translation>
 <translation id="5027562294707732951">Tambahkan ekstensi</translation>
 <translation id="5028445315206872221">Ekstensi diblokir di situs ini</translation>
-<translation id="5029568752722684782">Hapus salinan</translation>
 <translation id="5029873138381728058">Gagal memeriksa VM</translation>
 <translation id="503155457707535043">Aplikasi sedang didownload</translation>
 <translation id="5032430150487044192">Tidak dapat membuat Kode QR</translation>
@@ -5734,7 +5733,6 @@
 <translation id="5601823921345337195">Tidak diizinkan terhubung ke perangkat MIDI</translation>
 <translation id="5601833336918638013">Jangan izinkan situs mencari perangkat Bluetooth</translation>
 <translation id="5602586420788540146">Buka di grup tab baru</translation>
-<translation id="5602765853043467355">Hapus bookmark, histori, sandi, dan lainnya dari perangkat ini.</translation>
 <translation id="5605758115928394442">Notifikasi telah dikirim ke ponsel Anda untuk mengonfirmasi bahwa ini memang Anda.</translation>
 <translation id="5606849116180480101">{NUM_EXTENSIONS,plural, =1{Ekstensi ini diblokir}other{Ekstensi ini diblokir}}</translation>
 <translation id="560834977503641186">Wi-Fi Sync, Pelajari Lebih Lanjut</translation>
@@ -5786,7 +5784,6 @@
 <translation id="5641648607875312660">Editor Gambar Screenshot</translation>
 <translation id="5642508497713047">Penandatangan CRL</translation>
 <translation id="5643321261065707929">Jaringan berbayar</translation>
-<translation id="5643620609347735571">Hapus dan lanjutkan</translation>
 <translation id="5646376287012673985">Lokasi</translation>
 <translation id="5646558797914161501">Pengusaha</translation>
 <translation id="5648021990716966815">Colokan mikrofon</translation>
@@ -7704,7 +7701,6 @@
 <translation id="7241389281993241388">Masuklah ke <ph name="TOKEN_NAME" /> untuk mengimpor sertifikat klien.</translation>
 <translation id="7241763419756062043">Pilih kualitas penelusuran dan penjelajahan Anda</translation>
 <translation id="7243092385765551741">Hapus kunci sandi?</translation>
-<translation id="7243632151880336635">Hapus dan Keluar</translation>
 <translation id="7245162963905242662">Telusur&amp;i Halaman ini dengan Google...</translation>
 <translation id="7245628041916450754"><ph name="WIDTH" /> x <ph name="HEIGHT" /> (Terbaik)</translation>
 <translation id="7246230585855757313">Masukkan kembali kunci keamanan, lalu coba lagi</translation>
@@ -8581,7 +8577,6 @@
 <translation id="7925285046818567682">Menunggu <ph name="HOST_NAME" />...</translation>
 <translation id="7926423016278357561">Ini bukan saya.</translation>
 <translation id="7926975587469166629">Nama panggilan kartu</translation>
-<translation id="7927610604078150317">Ukuran: <ph name="CHROME_APP_SIZE" /></translation>
 <translation id="7928175190925744466">Telah mengubah sandi ini?</translation>
 <translation id="7929962904089429003">Membuka menu</translation>
 <translation id="7930294771522048157">Metode pembayaran yang tersimpan akan muncul di sini</translation>
@@ -9231,6 +9226,7 @@
 <translation id="8448729345478502352">Membuat item di layar menjadi lebih kecil atau lebih besar</translation>
 <translation id="8449008133205184768">Tempel dan Cocokkan Gaya</translation>
 <translation id="8449036207308062757">Kelola penyimpanan</translation>
+<translation id="8449347986464073209">Hapus dan Logout</translation>
 <translation id="8449836157089738489">Buka semua di grup tab baru</translation>
 <translation id="8449869326050867919">Sandi dibagikan</translation>
 <translation id="8451512073679317615">asisten</translation>
diff --git a/chrome/app/resources/generated_resources_is.xtb b/chrome/app/resources/generated_resources_is.xtb
index 6346b5c..3d46828 100644
--- a/chrome/app/resources/generated_resources_is.xtb
+++ b/chrome/app/resources/generated_resources_is.xtb
@@ -5041,7 +5041,6 @@
 <translation id="5027550639139316293">Vottorð tölvupósts</translation>
 <translation id="5027562294707732951">Bæta viðbót við</translation>
 <translation id="5028445315206872221">Lokað er fyrir viðbætur á þessari síðu</translation>
-<translation id="5029568752722684782">Hreinsa eintak</translation>
 <translation id="5029873138381728058">Ekki tókst að leita að sýndarvélum</translation>
 <translation id="503155457707535043">Sækir forrit</translation>
 <translation id="5032430150487044192">Ekki hægt að búa til QR-kóða</translation>
@@ -5735,7 +5734,6 @@
 <translation id="5601823921345337195">Mega ekki tengjast MIDI-tækjum</translation>
 <translation id="5601833336918638013">Ekki leyfa vefsvæðum að leita að Bluetooth-tækjum</translation>
 <translation id="5602586420788540146">Opna í nýjum flipahóp</translation>
-<translation id="5602765853043467355">Hreinsa bókamerki, feril, aðgangsorð og fleira úr þessu tæki</translation>
 <translation id="5605758115928394442">Tilkynning var send í símann þinn til að staðfesta að þetta sért þú.</translation>
 <translation id="5606849116180480101">{NUM_EXTENSIONS,plural, =1{Þessi viðbót er á bannlista}one{Þessar viðbætur eru á bannlista}other{Þessar viðbætur eru á bannlista}}</translation>
 <translation id="560834977503641186">Wi-Fi-samstilling, Frekari upplýsingar</translation>
@@ -5787,7 +5785,6 @@
 <translation id="5641648607875312660">Myndvinnsla skjámynda</translation>
 <translation id="5642508497713047">CRL-undirritun</translation>
 <translation id="5643321261065707929">Net með mældri notkun</translation>
-<translation id="5643620609347735571">Hreinsa og halda áfram</translation>
 <translation id="5646376287012673985">Staðsetning</translation>
 <translation id="5646558797914161501">Viðskiptamaður</translation>
 <translation id="5648021990716966815">Hljóðnematengi</translation>
@@ -7706,7 +7703,6 @@
 <translation id="7241389281993241388">Skráðu þig inn á <ph name="TOKEN_NAME" /> til að flytja inn biðlaravottorðið.</translation>
 <translation id="7241763419756062043">Veldu gæði leitar og vefskoðunar</translation>
 <translation id="7243092385765551741">Eyða aðgangslykli?</translation>
-<translation id="7243632151880336635">Hreinsa og skrá út</translation>
 <translation id="7245162963905242662">Leita á þessari síðu með Google...</translation>
 <translation id="7245628041916450754"><ph name="WIDTH" /> x <ph name="HEIGHT" /> (best)</translation>
 <translation id="7246230585855757313">Settu öryggislykilinn aftur inn og reyndu aftur</translation>
@@ -8584,7 +8580,6 @@
 <translation id="7925285046818567682">Bíður eftir <ph name="HOST_NAME" />...</translation>
 <translation id="7926423016278357561">Þetta var ekki ég.</translation>
 <translation id="7926975587469166629">Gælunafn spjalds</translation>
-<translation id="7927610604078150317">Stærð: <ph name="CHROME_APP_SIZE" /></translation>
 <translation id="7928175190925744466">Hefurðu þegar breytt þessu aðgangsorði?</translation>
 <translation id="7929962904089429003">Opna valmyndina</translation>
 <translation id="7930294771522048157">Vistaðir greiðslumátar birtast hér</translation>
@@ -9233,6 +9228,7 @@
 <translation id="8448729345478502352">Stækka eða minnka hluti á skjánum</translation>
 <translation id="8449008133205184768">Líma og para við stíl</translation>
 <translation id="8449036207308062757">Hafa umsjón með geymslu</translation>
+<translation id="8449347986464073209">Eyða og skrá út</translation>
 <translation id="8449836157089738489">Opna allt í nýjum flipahóp</translation>
 <translation id="8449869326050867919">Aðgangsorði deilt</translation>
 <translation id="8451512073679317615">aðstoðarmaður</translation>
diff --git a/chrome/app/resources/generated_resources_it.xtb b/chrome/app/resources/generated_resources_it.xtb
index 1c3a208..88793086 100644
--- a/chrome/app/resources/generated_resources_it.xtb
+++ b/chrome/app/resources/generated_resources_it.xtb
@@ -5034,7 +5034,6 @@
 <translation id="5027550639139316293">Certificato email</translation>
 <translation id="5027562294707732951">Aggiungi estensione</translation>
 <translation id="5028445315206872221">Le estensioni sono bloccate su questo sito</translation>
-<translation id="5029568752722684782">Cancella copia</translation>
 <translation id="5029873138381728058">Impossibile controllare le VM</translation>
 <translation id="503155457707535043">Download delle app in corso</translation>
 <translation id="5032430150487044192">Impossibile creare codice QR</translation>
@@ -5728,7 +5727,6 @@
 <translation id="5601823921345337195">Non possono connettersi ai dispositivi MIDI</translation>
 <translation id="5601833336918638013">Non consentire ai siti di cercare dispositivi Bluetooth</translation>
 <translation id="5602586420788540146">Apri in un nuovo gruppo di schede</translation>
-<translation id="5602765853043467355">Cancella preferiti, cronologia, password e altro da questo dispositivo</translation>
 <translation id="5605758115928394442">È stata inviata una notifica al tuo telefono per verificare la tua identità.</translation>
 <translation id="5606849116180480101">{NUM_EXTENSIONS,plural, =1{Questa estensione è bloccata}other{Queste estensioni sono bloccate}}</translation>
 <translation id="560834977503641186">Sync Wi-Fi, Ulteriori informazioni</translation>
@@ -5778,7 +5776,6 @@
 <translation id="5641648607875312660">Editor di screenshot</translation>
 <translation id="5642508497713047">Firmatario CRL</translation>
 <translation id="5643321261065707929">Rete a consumo</translation>
-<translation id="5643620609347735571">Cancella e continua</translation>
 <translation id="5646376287012673985">Posizione</translation>
 <translation id="5646558797914161501">Uomo d'affari</translation>
 <translation id="5648021990716966815">Jack per microfono</translation>
@@ -7697,7 +7694,6 @@
 <translation id="7241389281993241388">Accedi a <ph name="TOKEN_NAME" /> per importare il certificato client.</translation>
 <translation id="7241763419756062043">Scegli la qualità di navigazione e ricerca</translation>
 <translation id="7243092385765551741">Vuoi eliminare la passkey?</translation>
-<translation id="7243632151880336635">Cancella ed esci</translation>
 <translation id="7245162963905242662">Cerca questa pagina con Google…</translation>
 <translation id="7245628041916450754"><ph name="WIDTH" /> x <ph name="HEIGHT" /> (opzione migliore)</translation>
 <translation id="7246230585855757313">Inserisci di nuovo il token di sicurezza e riprova</translation>
@@ -8577,7 +8573,6 @@
 <translation id="7925285046818567682">In attesa di risposta da <ph name="HOST_NAME" />...</translation>
 <translation id="7926423016278357561">Non ero io.</translation>
 <translation id="7926975587469166629">Nickname carta</translation>
-<translation id="7927610604078150317">Dimensioni: <ph name="CHROME_APP_SIZE" /></translation>
 <translation id="7928175190925744466">Hai già modificato questa password?</translation>
 <translation id="7929962904089429003">Apri il menu</translation>
 <translation id="7930294771522048157">I metodi di pagamento salvati verranno visualizzati qui</translation>
@@ -9227,6 +9222,7 @@
 <translation id="8448729345478502352">Ingrandisci o rimpicciolisci gli elementi sullo schermo</translation>
 <translation id="8449008133205184768">Incolla e mantieni lo stile</translation>
 <translation id="8449036207308062757">Gestisci spazio di archiviazione</translation>
+<translation id="8449347986464073209">Elimina ed esci</translation>
 <translation id="8449836157089738489">Apri tutto in un nuovo gruppo di schede</translation>
 <translation id="8449869326050867919">Password condivisa</translation>
 <translation id="8451512073679317615">assistente</translation>
diff --git a/chrome/app/resources/generated_resources_iw.xtb b/chrome/app/resources/generated_resources_iw.xtb
index bb3d49f..43f1c7e 100644
--- a/chrome/app/resources/generated_resources_iw.xtb
+++ b/chrome/app/resources/generated_resources_iw.xtb
@@ -5040,7 +5040,6 @@
 <translation id="5027550639139316293">אישור אימייל</translation>
 <translation id="5027562294707732951">התקנת התוסף</translation>
 <translation id="5028445315206872221">התוספים חסומים באתר הזה</translation>
-<translation id="5029568752722684782">מחיקת העותק</translation>
 <translation id="5029873138381728058">‏נכשל הניסיון לבדיקת מכונות VM</translation>
 <translation id="503155457707535043">הורדת האפליקציות מתבצעת</translation>
 <translation id="5032430150487044192">‏לא ניתן ליצור קוד QR</translation>
@@ -5734,7 +5733,6 @@
 <translation id="5601823921345337195">‏לא מורשים להתחבר אל מכשירי MIDI</translation>
 <translation id="5601833336918638013">‏לא לאפשר לאתרים לאתר מכשירי Bluetooth</translation>
 <translation id="5602586420788540146">פתיחה בקבוצת כרטיסיות חדשה</translation>
-<translation id="5602765853043467355">ניקוי הסימניות, ההיסטוריה, הסיסמאות ונתונים נוספים מהמכשיר הזה</translation>
 <translation id="5605758115928394442">הודעה נשלחה לטלפון שלך כדי לאשר את זהותך.</translation>
 <translation id="5606849116180480101">{NUM_EXTENSIONS,plural, =1{התוסף הזה נחסם}one{התוספים האלה נחסמו}two{התוספים האלה נחסמו}other{התוספים האלה נחסמו}}</translation>
 <translation id="560834977503641186">‏מידע נוסף על סנכרון Wi-Fi</translation>
@@ -5786,7 +5784,6 @@
 <translation id="5641648607875312660">עורך התמונות של צילומי מסך</translation>
 <translation id="5642508497713047">‏חותם CRL</translation>
 <translation id="5643321261065707929">רשת עם חיוב לפי שימוש בנתונים</translation>
-<translation id="5643620609347735571">ניקוי והמשך</translation>
 <translation id="5646376287012673985">מיקום</translation>
 <translation id="5646558797914161501">איש עסקים</translation>
 <translation id="5648021990716966815">שקע מיקרופון</translation>
@@ -7708,7 +7705,6 @@
 <translation id="7241389281993241388">יש להיכנס אל <ph name="TOKEN_NAME" /> כדי לייבא את אישור הלקוח.</translation>
 <translation id="7241763419756062043">בחירת איכות החיפוש והגלישה</translation>
 <translation id="7243092385765551741">למחוק את מפתח הגישה?</translation>
-<translation id="7243632151880336635">זה מספיק, ברצוני לצאת</translation>
 <translation id="7245162963905242662">‏חיפוש בדף הזה באמצעות Google…</translation>
 <translation id="7245628041916450754">‏<ph name="WIDTH" /> ‏x ‏<ph name="HEIGHT" /> (הטובה ביותר)</translation>
 <translation id="7246230585855757313">יש להכניס מחדש את מפתח האבטחה ולנסות שוב</translation>
@@ -8585,7 +8581,6 @@
 <translation id="7925285046818567682">בהמתנה ל-<ph name="HOST_NAME" />...</translation>
 <translation id="7926423016278357561">זה לא הייתי אני.</translation>
 <translation id="7926975587469166629">כינוי הכרטיס</translation>
-<translation id="7927610604078150317">גודל: <ph name="CHROME_APP_SIZE" /></translation>
 <translation id="7928175190925744466">כבר שינית את הסיסמה הזו?</translation>
 <translation id="7929962904089429003">פתיחת התפריט</translation>
 <translation id="7930294771522048157">אמצעי תשלום שנשמרו יופיעו כאן</translation>
@@ -9237,6 +9232,7 @@
 <translation id="8448729345478502352">הגדלה או הקטנה של פריטים במסך</translation>
 <translation id="8449008133205184768">הדבקה והתאמה של סגנון</translation>
 <translation id="8449036207308062757">ניהול האחסון</translation>
+<translation id="8449347986464073209">מחיקה ויציאה מהחשבון</translation>
 <translation id="8449836157089738489">פתיחת הכול בקבוצת כרטיסיות חדשה</translation>
 <translation id="8449869326050867919">הסיסמה שותפה</translation>
 <translation id="8451512073679317615">אסיסטנט</translation>
diff --git a/chrome/app/resources/generated_resources_ja.xtb b/chrome/app/resources/generated_resources_ja.xtb
index 7613c28..3f34a5b 100644
--- a/chrome/app/resources/generated_resources_ja.xtb
+++ b/chrome/app/resources/generated_resources_ja.xtb
@@ -5016,7 +5016,6 @@
 <translation id="5027550639139316293">メール証明書</translation>
 <translation id="5027562294707732951">拡張機能を追加</translation>
 <translation id="5028445315206872221">このサイトでは拡張機能がブロックされています</translation>
-<translation id="5029568752722684782">コピーを消去</translation>
 <translation id="5029873138381728058">VM を確認できませんでした</translation>
 <translation id="503155457707535043">アプリをダウンロード中</translation>
 <translation id="5032430150487044192">QR コードを作成できません</translation>
@@ -5708,7 +5707,6 @@
 <translation id="5601823921345337195">MIDI デバイスへの接続を許可しないサイト</translation>
 <translation id="5601833336918638013">サイトが Bluetooth デバイスを検出することを許可しない</translation>
 <translation id="5602586420788540146">新しいタブグループで開く</translation>
-<translation id="5602765853043467355">ブックマーク、履歴、パスワード、その他の設定情報をこのデバイスから削除する</translation>
 <translation id="5605758115928394442">本人確認の通知をご使用のスマートフォンに送信しました。</translation>
 <translation id="5606849116180480101">{NUM_EXTENSIONS,plural, =1{この拡張機能はブロックされています}other{これらの拡張機能はブロックされています}}</translation>
 <translation id="560834977503641186">Wi-Fi 同期の詳細</translation>
@@ -5760,7 +5758,6 @@
 <translation id="5641648607875312660">スクリーンショット画像エディタ</translation>
 <translation id="5642508497713047">CRL の署名者</translation>
 <translation id="5643321261065707929">従量制ネットワーク</translation>
-<translation id="5643620609347735571">削除して続行</translation>
 <translation id="5646376287012673985">保存先</translation>
 <translation id="5646558797914161501">ビジネスマン</translation>
 <translation id="5648021990716966815">マイク差込口</translation>
@@ -7676,7 +7673,6 @@
 <translation id="7241389281993241388">クライアント証明書をインポートするには <ph name="TOKEN_NAME" /> にログインしてください。</translation>
 <translation id="7241763419756062043">検索とブラウジングの品質を選択する</translation>
 <translation id="7243092385765551741">パスキーを削除しますか?</translation>
-<translation id="7243632151880336635">削除してログアウト</translation>
 <translation id="7245162963905242662">Google でこのページを検索(&amp;C)...</translation>
 <translation id="7245628041916450754"><ph name="WIDTH" />x<ph name="HEIGHT" />(最適)</translation>
 <translation id="7246230585855757313">セキュリティ キーを挿入し直して、もう一度お試しください</translation>
@@ -8552,7 +8548,6 @@
 <translation id="7925285046818567682"><ph name="HOST_NAME" /> を待機しています...</translation>
 <translation id="7926423016278357561">これは私ではありません。</translation>
 <translation id="7926975587469166629">カードのニックネーム</translation>
-<translation id="7927610604078150317">サイズ: <ph name="CHROME_APP_SIZE" /></translation>
 <translation id="7928175190925744466">このパスワードをすでに変更した場合</translation>
 <translation id="7929962904089429003">メニューを開く</translation>
 <translation id="7930294771522048157">保存したお支払い方法がここに表示されます</translation>
@@ -9202,6 +9197,7 @@
 <translation id="8448729345478502352">アイテムの表示サイズを変更します</translation>
 <translation id="8449008133205184768">ペーストしてスタイルを合わせる</translation>
 <translation id="8449036207308062757">ストレージを管理</translation>
+<translation id="8449347986464073209">削除してログアウト</translation>
 <translation id="8449836157089738489">すべてを新しいタブグループで開く</translation>
 <translation id="8449869326050867919">パスワードを共有しました</translation>
 <translation id="8451512073679317615">アシスタント</translation>
diff --git a/chrome/app/resources/generated_resources_ka.xtb b/chrome/app/resources/generated_resources_ka.xtb
index 87592c6..4bab1167 100644
--- a/chrome/app/resources/generated_resources_ka.xtb
+++ b/chrome/app/resources/generated_resources_ka.xtb
@@ -5024,7 +5024,6 @@
 <translation id="5027550639139316293">ელფოსტის სერტიფიკატი</translation>
 <translation id="5027562294707732951">გაფართოების დამატება</translation>
 <translation id="5028445315206872221">გაფართოებები დაბლოკილია ამ საიტზე</translation>
-<translation id="5029568752722684782">ასლის გასუფთავება</translation>
 <translation id="5029873138381728058">ვირტუალური მოწყობილობების შემოწმება ვერ მოხერხდა</translation>
 <translation id="503155457707535043">მიმდინარეობს აპების ჩამოტვირთვა</translation>
 <translation id="5032430150487044192">QR კოდის შექმნა ვერ მოხერხდა</translation>
@@ -5718,7 +5717,6 @@
 <translation id="5601823921345337195">MIDI-მოწყობილობებთან დაკავშირება დაუშვებელია</translation>
 <translation id="5601833336918638013">Bluetooth მოწყობილობების მოძიების აკრძალვა საიტებისთვის</translation>
 <translation id="5602586420788540146">ჩანართების ახალ ჯგუფში გახსნა</translation>
-<translation id="5602765853043467355">ამ მოწყობილობაზე სანიშნეების, ისტორიის, პაროლებისა და სხვა კონტენტის გასუფთავება</translation>
 <translation id="5605758115928394442">თქვენს ტელეფონზე გაიგზავნა შეტყობინება თქვენი ვინაობის დასადასტურებლად.</translation>
 <translation id="5606849116180480101">{NUM_EXTENSIONS,plural, =1{ეს გაფართოება დაბლოკილია}other{ეს გაფართოებები დაბლოკილია}}</translation>
 <translation id="560834977503641186">Wi-Fi სინქრონიზაცია, შეიტყვეთ მეტი</translation>
@@ -5770,7 +5768,6 @@
 <translation id="5641648607875312660">ეკრანის ანაბეჭდების რედაქტორი</translation>
 <translation id="5642508497713047">CRL ხელმომწერი</translation>
 <translation id="5643321261065707929">ლიმიტირებული ქსელი</translation>
-<translation id="5643620609347735571">გასუფთავება და გაგრძელება</translation>
 <translation id="5646376287012673985">მდებარეობა</translation>
 <translation id="5646558797914161501">ბიზნესმენი</translation>
 <translation id="5648021990716966815">მიკროფონის ჯეკი</translation>
@@ -7687,7 +7684,6 @@
 <translation id="7241389281993241388">შედით <ph name="TOKEN_NAME" />-ში, კლიენტის სერტიფიკატის იმპორტისთვის.</translation>
 <translation id="7241763419756062043">აირჩიეთ ძიებისა და ვების დათვალიერების ხარისხი</translation>
 <translation id="7243092385765551741">გსურთ წვდომის გასაღების წაშლა?</translation>
-<translation id="7243632151880336635">გასუფთავება და გამოსვლა</translation>
 <translation id="7245162963905242662">ამ გვერდზე ძიებ&amp;ა Google-ით...</translation>
 <translation id="7245628041916450754"><ph name="WIDTH" /> x <ph name="HEIGHT" /> (საუკეთესო)</translation>
 <translation id="7246230585855757313">ხელახლა მიაერთეთ უსაფრთხოების გასაღები და ცადეთ ხელახლა</translation>
@@ -8564,7 +8560,6 @@
 <translation id="7925285046818567682"><ph name="HOST_NAME" />-ის მოლოდინში…</translation>
 <translation id="7926423016278357561">ეს მე არ ვყოფილვარ.</translation>
 <translation id="7926975587469166629">ბარათის მეტსახელი</translation>
-<translation id="7927610604078150317">ზომა: <ph name="CHROME_APP_SIZE" /></translation>
 <translation id="7928175190925744466">ეს პაროლი უკვე შეცვალეთ?</translation>
 <translation id="7929962904089429003">მენიუს გახსნა</translation>
 <translation id="7930294771522048157">აქ გამოჩნდება გადახდის შენახული მეთოდები</translation>
@@ -9213,6 +9208,7 @@
 <translation id="8448729345478502352">ეკრანზე ერთეულების დაპატარავება ან გადიდება</translation>
 <translation id="8449008133205184768">ჩასმა და შედარების სტილი</translation>
 <translation id="8449036207308062757">მეხსიერების მართვა</translation>
+<translation id="8449347986464073209">წაშლა და გასვლა</translation>
 <translation id="8449836157089738489">ყველას გახსნა ჩანართების ახალ ჯგუფში</translation>
 <translation id="8449869326050867919">პაროლი გაზიარებულია</translation>
 <translation id="8451512073679317615">ასისტენტი</translation>
diff --git a/chrome/app/resources/generated_resources_kk.xtb b/chrome/app/resources/generated_resources_kk.xtb
index 8d5ac21..3c4034b8 100644
--- a/chrome/app/resources/generated_resources_kk.xtb
+++ b/chrome/app/resources/generated_resources_kk.xtb
@@ -5021,7 +5021,6 @@
 <translation id="5027550639139316293">Электрондық пошта сертификаты</translation>
 <translation id="5027562294707732951">Кеңейтім қосу</translation>
 <translation id="5028445315206872221">Бұл сайтта кеңейтімдер блокталған</translation>
-<translation id="5029568752722684782">Көшірмені өшіру</translation>
 <translation id="5029873138381728058">Виртуалдық машиналар тексерілмеді.</translation>
 <translation id="503155457707535043">Қолданбалар жүктеп алынуда</translation>
 <translation id="5032430150487044192">QR кодын жасау мүмкін емес.</translation>
@@ -5715,7 +5714,6 @@
 <translation id="5601823921345337195">MIDI құрылғыларына қосылуға рұқсаты жоқтар</translation>
 <translation id="5601833336918638013">Сайттардың Bluetooth құрылғыларын іздеуіне рұқсат берілмесін.</translation>
 <translation id="5602586420788540146">Жаңа қойындылар тобында ашу</translation>
-<translation id="5602765853043467355">Осы құрылғыдан алынған бетбелгілерді, тарихты, құпия сөздерді, т.б. өшіру</translation>
 <translation id="5605758115928394442">Жеке басыңызды растау үшін телефоныңызға хабарландыру жіберілді.</translation>
 <translation id="5606849116180480101">{NUM_EXTENSIONS,plural, =1{Бұл кеңейтім бөгелді}other{Бұл кеңейтімдер бөгелді}}</translation>
 <translation id="560834977503641186">Wi-Fi деректерін синхрондау, толығырақ</translation>
@@ -5765,7 +5763,6 @@
 <translation id="5641648607875312660">Скриншот кескіні редакторы</translation>
 <translation id="5642508497713047">CRL қол қоюшы</translation>
 <translation id="5643321261065707929">Шектелген желі</translation>
-<translation id="5643620609347735571">Өшіру және жалғастыру</translation>
 <translation id="5646376287012673985">Орын</translation>
 <translation id="5646558797914161501">Бизнесмен</translation>
 <translation id="5648021990716966815">Микрофон ұяшығы</translation>
@@ -7681,7 +7678,6 @@
 <translation id="7241389281993241388">Клиент сертификатын импорттау үшін <ph name="TOKEN_NAME" /> жүйсіне кіріңіз.</translation>
 <translation id="7241763419756062043">Іздеу және шолу сапасын таңдаңыз</translation>
 <translation id="7243092385765551741">Кіру кілтін жою керек пе?</translation>
-<translation id="7243632151880336635">Өшіру және шығу</translation>
 <translation id="7245162963905242662">Бұл бетті Google арқылы із&amp;деу...</translation>
 <translation id="7245628041916450754"><ph name="WIDTH" /> x <ph name="HEIGHT" /> (оңтайлы)</translation>
 <translation id="7246230585855757313">Қауіпсіздік кілтін қайта енгізіп, қайталап көріңіз.</translation>
@@ -8558,7 +8554,6 @@
 <translation id="7925285046818567682"><ph name="HOST_NAME" /> хосты күтілуде…</translation>
 <translation id="7926423016278357561">Бұл мен емес едім.</translation>
 <translation id="7926975587469166629">Картаның қысқа аты</translation>
-<translation id="7927610604078150317">Өлшемі: <ph name="CHROME_APP_SIZE" /></translation>
 <translation id="7928175190925744466">Бұл құпия сөзді әлдеқашан өзгертіп қойдыңыз ба?</translation>
 <translation id="7929962904089429003">Мәзірді ашу</translation>
 <translation id="7930294771522048157">Сақталған төлеу әдістері осы жерде көрсетіледі</translation>
@@ -9207,6 +9202,7 @@
 <translation id="8448729345478502352">Экрандағы элементтерді кішірейту немесе ұлғайту</translation>
 <translation id="8449008133205184768">Қою және сәйкестендіру стилі</translation>
 <translation id="8449036207308062757">Жадты басқару</translation>
+<translation id="8449347986464073209">Жою және шығу</translation>
 <translation id="8449836157089738489">Барлығын жаңа қойындылар тобында ашу</translation>
 <translation id="8449869326050867919">Құпия сөз жіберілді</translation>
 <translation id="8451512073679317615">assistant</translation>
diff --git a/chrome/app/resources/generated_resources_km.xtb b/chrome/app/resources/generated_resources_km.xtb
index 1020ce25..27f44abf 100644
--- a/chrome/app/resources/generated_resources_km.xtb
+++ b/chrome/app/resources/generated_resources_km.xtb
@@ -5050,7 +5050,6 @@
 <translation id="5027550639139316293">វិញ្ញាបនប័ត្រអ៊ីម៉ែល</translation>
 <translation id="5027562294707732951">បន្ថែមផ្នែកបន្ថែម</translation>
 <translation id="5028445315206872221">កម្មវិធី​បន្ថែម​ត្រូវ​បាន​ទប់ស្កាត់​នៅលើ​គេហទំព័រ​នេះ</translation>
-<translation id="5029568752722684782">ជម្រះការថតចម្លង</translation>
 <translation id="5029873138381728058">ការពិនិត្យ​ VM មិនបានសម្រេចទេ</translation>
 <translation id="503155457707535043">កំពុងទាញយក​កម្មវិធី</translation>
 <translation id="5032430150487044192">មិនអាចបង្កើតកូដ QR បានទេ</translation>
@@ -5744,7 +5743,6 @@
 <translation id="5601823921345337195">មិនអនុញ្ញាតឱ្យភ្ជាប់ជាមួយឧបករណ៍ MIDI ទេ</translation>
 <translation id="5601833336918638013">កុំ​អនុញ្ញាត​ឱ្យ​គេហទំព័រ​រកមើល​ឧបករណ៍​ប៊្លូធូស</translation>
 <translation id="5602586420788540146">បើក​នៅ​ក្នុង​ក្រុមផ្ទាំង​ថ្មី</translation>
-<translation id="5602765853043467355">សម្អាត​ចំណាំ ប្រវត្តិ ពាក្យ​សម្ងាត់ និងអ្វីៗ​ជាច្រើនទៀត​ពីឧបករណ៍​នេះ</translation>
 <translation id="5605758115928394442">ការជូនដំណឹង​ត្រូវបានផ្ញើ​ទៅទូរសព្ទ​របស់អ្នក ដើម្បីបញ្ជាក់ថា​ពិតជាអ្នក។</translation>
 <translation id="5606849116180480101">{NUM_EXTENSIONS,plural, =1{កម្មវិធីបន្ថែម​នេះ​ត្រូវបាន​ទប់ស្កាត់}other{កម្មវិធីបន្ថែម​ទាំងនេះ​ត្រូវបាន​ទប់ស្កាត់}}</translation>
 <translation id="560834977503641186">Wi-Fi Sync, ស្វែងយល់បន្ថែម</translation>
@@ -5797,7 +5795,6 @@
 <translation id="5641648607875312660">កម្មវិធីកែ​រូបភាព​រូបថត​អេក្រង់</translation>
 <translation id="5642508497713047">អ្នកចុះហត្ថលេខា CRL</translation>
 <translation id="5643321261065707929">បណ្ដាញផ្អែកតាមទិន្នន័យដែលប្រើ</translation>
-<translation id="5643620609347735571">សម្អាត ហើយបន្ត</translation>
 <translation id="5646376287012673985">ទីតាំង</translation>
 <translation id="5646558797914161501">អ្នកជំនួញ</translation>
 <translation id="5648021990716966815">ឌុយ​មីក្រូហ្វូន</translation>
@@ -7716,7 +7713,6 @@
 <translation id="7241389281993241388">សូមចូលទៅកាន់ <ph name="TOKEN_NAME" /> ដើម្បីនាំចូលវិញ្ញាបនប័ត្រអតិថិជន។</translation>
 <translation id="7241763419756062043">ជ្រើសរើស​គុណភាពរុករក និង​ការស្វែងរករបស់អ្នក</translation>
 <translation id="7243092385765551741">លុបកូដសម្ងាត់ឬ?</translation>
-<translation id="7243632151880336635">ជម្រះ ហើយចាកចេញ</translation>
 <translation id="7245162963905242662">&amp;ស្វែងរក​ទំព័រនេះ​តាមរយៈ Google...</translation>
 <translation id="7245628041916450754"><ph name="WIDTH" /> x <ph name="HEIGHT" /> (ល្អបំផុត)</translation>
 <translation id="7246230585855757313">ដោតបញ្ចូលសោសុវត្ថិភាព​របស់អ្នកឡើងវិញ រួចព្យាយាម​ម្ដងទៀត</translation>
@@ -8596,7 +8592,6 @@
 <translation id="7925285046818567682">កំពុងរង់ចាំ <ph name="HOST_NAME" />...</translation>
 <translation id="7926423016278357561">នេះមិនមែន​ជា​ខ្ញុំ​ទេ។</translation>
 <translation id="7926975587469166629">ឈ្មោះហៅក្រៅរបស់កាត</translation>
-<translation id="7927610604078150317">ទំហំ៖ <ph name="CHROME_APP_SIZE" /></translation>
 <translation id="7928175190925744466">បានប្ដូរ​ពាក្យសម្ងាត់នេះ​រួចហើយមែនទេ?</translation>
 <translation id="7929962904089429003">បើកម៉ឺនុយ</translation>
 <translation id="7930294771522048157">វិធី​បង់ប្រាក់​ដែលបាន​រក្សាទុក​នឹងបង្ហាញ​នៅទីនេះ</translation>
@@ -9245,6 +9240,7 @@
 <translation id="8448729345478502352">ធ្វើឱ្យធាតុ​នៅលើ​អេក្រង់​របស់អ្នក​តូចជាងមុន ឬ​ធំជាង​មុន</translation>
 <translation id="8449008133205184768">បិទភ្ជាប់ និងការផ្គូរផ្គងស្តាយ៍</translation>
 <translation id="8449036207308062757">គ្រប់គ្រងទំហំផ្ទុក</translation>
+<translation id="8449347986464073209">លុប និង​ចេញពីគណនី</translation>
 <translation id="8449836157089738489">បើកទាំងអស់នៅក្នុងក្រុមផ្ទាំងថ្មី</translation>
 <translation id="8449869326050867919">បានចែករំលែក​ពាក្យសម្ងាត់</translation>
 <translation id="8451512073679317615">ជំនួយ​ការ</translation>
diff --git a/chrome/app/resources/generated_resources_kn.xtb b/chrome/app/resources/generated_resources_kn.xtb
index 6d2f27f2..fb705ba3 100644
--- a/chrome/app/resources/generated_resources_kn.xtb
+++ b/chrome/app/resources/generated_resources_kn.xtb
@@ -5044,7 +5044,6 @@
 <translation id="5027550639139316293">ಇಮೇಲ್ ಪ್ರಮಾಣಪತ್ರ</translation>
 <translation id="5027562294707732951">ವಿಸ್ತರಣೆ ಸೇರಿಸು</translation>
 <translation id="5028445315206872221">ಈ ಸೈಟ್‌ನಲ್ಲಿ ವಿಸ್ತರಣೆಗಳನ್ನು ನಿರ್ಬಂಧಿಸಲಾಗಿದೆ</translation>
-<translation id="5029568752722684782">ನಕಲು ತೆರವುಗೊಳಿಸು</translation>
 <translation id="5029873138381728058">VM ಗಳನ್ನು ಪರಿಶೀಲಿಸಲು ವಿಫಲವಾಗಿದೆ</translation>
 <translation id="503155457707535043">ಆ್ಯಪ್‌ಗಳು ಡೌನ್‌ಲೋಡ್ ಆಗುತ್ತಿವೆ</translation>
 <translation id="5032430150487044192">QR ಕೋಡ್‌ ಅನ್ನು ರಚಿಸಲು ಸಾಧ್ಯವಾಗುತ್ತಿಲ್ಲ</translation>
@@ -5738,7 +5737,6 @@
 <translation id="5601823921345337195">MIDI ಸಾಧನಗಳಿಗೆ ಸಂಪರ್ಕಿಸಲು ಈ ಸೈಟ್‌ಗಳಿಗೆ ಅನುಮತಿಸಲಾಗುವುದಿಲ್ಲ</translation>
 <translation id="5601833336918638013">ಸೈಟ್‌ಗಳಿಗೆ ಬ್ಲೂಟೂತ್ ಸಾಧನಗಳನ್ನು ಹುಡುಕುವ ಅನುಮತಿ ನೀಡಬೇಡಿ</translation>
 <translation id="5602586420788540146">ಹೊಸ ಟ್ಯಾಬ್ ಗುಂಪಿನಲ್ಲಿ ತೆರೆಯಿರಿ</translation>
-<translation id="5602765853043467355">ಈ ಸಾಧನದಿಂದ ಬುಕ್‌ಮಾರ್ಕ್‌ಗಳು, ಇತಿಹಾಸ, ಪಾಸ್‌ವರ್ಡ್‌ಗಳು ಮತ್ತು ಇನ್ನಷ್ಟನ್ನು ತೆರವುಗೊಳಿಸಿ</translation>
 <translation id="5605758115928394442">ಇದು ನೀವೇ ಎಂದು ಖಚಿತಪಡಿಸಿಕೊಳ್ಳಲು ನಿಮ್ಮ ಫೋನ್‌ಗೆ ಒಂದು ಅಧಿಸೂಚನೆಯನ್ನು ಕಳುಹಿಸಲಾಗಿದೆ.</translation>
 <translation id="5606849116180480101">{NUM_EXTENSIONS,plural, =1{ಈ ವಿಸ್ತರಣೆಯನ್ನು ನಿರ್ಬಂಧಿಸಲಾಗಿದೆ}one{ಈ ವಿಸ್ತರಣೆಗಳನ್ನು ನಿರ್ಬಂಧಿಸಲಾಗಿದೆ}other{ಈ ವಿಸ್ತರಣೆಗಳನ್ನು ನಿರ್ಬಂಧಿಸಲಾಗಿದೆ}}</translation>
 <translation id="560834977503641186">Wi-Fi ಸಿಂಕ್, ಇನ್ನಷ್ಟು ತಿಳಿಯಿರಿ</translation>
@@ -5791,7 +5789,6 @@
 <translation id="5641648607875312660">ಸ್ಕ್ರೀನ್‌ಶಾಟ್ ಚಿತ್ರದ ಎಡಿಟರ್</translation>
 <translation id="5642508497713047">CRL ಸೈನರ್</translation>
 <translation id="5643321261065707929">ಮಾಪನ ಮಾಡಿದ ನೆಟ್‌ವರ್ಕ್</translation>
-<translation id="5643620609347735571">ತೆರವುಗೊಳಿಸಿ ಮತ್ತು ಮುಂದುವರಿಸಿ</translation>
 <translation id="5646376287012673985">ಸ್ಥಳ</translation>
 <translation id="5646558797914161501">ವ್ಯಾಪಾರಿ</translation>
 <translation id="5648021990716966815">ಮೈಕ್ ಜ್ಯಾಕ್</translation>
@@ -7714,7 +7711,6 @@
 <translation id="7241389281993241388">ಕ್ಲೈಂಟ್ ಪ್ರಮಾಣಪತ್ರವನ್ನು ಆಮದು ಮಾಡಿಕೊಳ್ಳಲು <ph name="TOKEN_NAME" /> ಗೆ ದಯವಿಟ್ಟು ಸೈನ್ ಇನ್ ಮಾಡಿ.</translation>
 <translation id="7241763419756062043">ನಿಮ್ಮ ಹುಡುಕಾಟ ಮತ್ತು ಬ್ರೌಸಿಂಗ್ ಗುಣಮಟ್ಟವನ್ನು ಆಯ್ಕೆಮಾಡಿ</translation>
 <translation id="7243092385765551741">ಪಾಸ್‌ಕೀಯನ್ನು ಅಳಿಸಬೇಕೇ?</translation>
-<translation id="7243632151880336635">ತೆರವುಗೊಳಿಸು ಮತ್ತು ಸೈನ್ ಔಟ್ ಮಾಡು</translation>
 <translation id="7245162963905242662">Google ಮೂಲಕ ಈ ಪುಟವನ್ನು ಹುಡುಕಿ...</translation>
 <translation id="7245628041916450754"><ph name="WIDTH" /> x <ph name="HEIGHT" /> (ಅತ್ಯುತ್ತಮ)</translation>
 <translation id="7246230585855757313">ನಿಮ್ಮ ಭದ್ರತೆ ಕೀ ಅನ್ನು ಮರುಸೇರ್ಪಡಿಸಿ ಮತ್ತು ಪುನಃ ಪ್ರಯತ್ನಿಸಿ</translation>
@@ -8592,7 +8588,6 @@
 <translation id="7925285046818567682"><ph name="HOST_NAME" /> ಗಾಗಿ ಕಾಯುತ್ತಿದೆ...</translation>
 <translation id="7926423016278357561">ಇದು ನಾನಲ್ಲ.</translation>
 <translation id="7926975587469166629">ಕಾರ್ಡ್ ಅಡ್ಡ ಹೆಸರು</translation>
-<translation id="7927610604078150317">ಗಾತ್ರ: <ph name="CHROME_APP_SIZE" /></translation>
 <translation id="7928175190925744466">ಈಗಾಗಲೇ ಈ ಪಾಸ್‌ವರ್ಡ್ ಅನ್ನು ಬದಲಾಯಿಸಲಾಗಿದೆಯೇ?</translation>
 <translation id="7929962904089429003">ಮೆನು ತೆರೆಯಿರಿ</translation>
 <translation id="7930294771522048157">ಉಳಿಸಲಾದ ಪಾವತಿ ವಿಧಾನಗಳು ಇಲ್ಲಿ ಗೋಚರಿಸುತ್ತವೆ</translation>
@@ -9239,6 +9234,7 @@
 <translation id="8448729345478502352">ನಿಮ್ಮ ಪರದೆಯ ಮೇಲೆ ಐಟಂಗಳನ್ನು ಸಣ್ಣದು ಅಥವಾ ದೊಡ್ಡದು ಮಾಡಿ</translation>
 <translation id="8449008133205184768">ಅಂಟಿಸು  ಮತ್ತು  ಶೈಲಿ ಹೊಂದಿಸು</translation>
 <translation id="8449036207308062757">ಸಂಗ್ರಹಣೆಯನ್ನು ನಿರ್ವಹಿಸಿ</translation>
+<translation id="8449347986464073209">ಅಳಿಸಿ ಮತ್ತು ಸೈನ್ ಔಟ್ ಆಗಿ</translation>
 <translation id="8449836157089738489">ಹೊಸ ಟ್ಯಾಬ್ ಗುಂಪಿನಲ್ಲಿ ಎಲ್ಲವನ್ನೂ ತೆರೆಯಿರಿ</translation>
 <translation id="8449869326050867919">ಪಾಸ್‌ವರ್ಡ್ ಹಂಚಿಕೊಳ್ಳಲಾಗಿದೆ</translation>
 <translation id="8451512073679317615">ಸಹಾಯಕ</translation>
diff --git a/chrome/app/resources/generated_resources_ko.xtb b/chrome/app/resources/generated_resources_ko.xtb
index 6ef75533..95151e3 100644
--- a/chrome/app/resources/generated_resources_ko.xtb
+++ b/chrome/app/resources/generated_resources_ko.xtb
@@ -5040,7 +5040,6 @@
 <translation id="5027550639139316293">이메일 인증서</translation>
 <translation id="5027562294707732951">확장 프로그램 추가</translation>
 <translation id="5028445315206872221">이 사이트에서 확장 프로그램이 차단되었습니다.</translation>
-<translation id="5029568752722684782">사본 지우기</translation>
 <translation id="5029873138381728058">VM 확인에 실패했습니다.</translation>
 <translation id="503155457707535043">앱 다운로드 중</translation>
 <translation id="5032430150487044192">QR 코드를 만들 수 없음</translation>
@@ -5734,7 +5733,6 @@
 <translation id="5601823921345337195">MIDI 기기 연결이 허용되지 않음</translation>
 <translation id="5601833336918638013">사이트의 블루투스 기기 검색 허용 안함</translation>
 <translation id="5602586420788540146">새 탭 그룹에서 열기</translation>
-<translation id="5602765853043467355">기기에서 북마크, 방문 기록, 비밀번호 등을 삭제합니다.</translation>
 <translation id="5605758115928394442">휴대전화로 본인 인증을 위한 알림이 전송되었습니다.</translation>
 <translation id="5606849116180480101">{NUM_EXTENSIONS,plural, =1{확장 프로그램이 차단됨}other{확장 프로그램이 차단됨}}</translation>
 <translation id="560834977503641186">Wi-Fi 동기화, 자세히 알아보기</translation>
@@ -5786,7 +5784,6 @@
 <translation id="5641648607875312660">스크린샷 이미지 편집기</translation>
 <translation id="5642508497713047">CRL 서명자</translation>
 <translation id="5643321261065707929">종량제 네트워크</translation>
-<translation id="5643620609347735571">삭제하고 계속</translation>
 <translation id="5646376287012673985">위치</translation>
 <translation id="5646558797914161501">사업가</translation>
 <translation id="5648021990716966815">마이크 잭</translation>
@@ -7704,7 +7701,6 @@
 <translation id="7241389281993241388"><ph name="TOKEN_NAME" />에 로그인하여 클라이언트 인증서를 가져오세요.</translation>
 <translation id="7241763419756062043">검색 및 탐색 품질 선택</translation>
 <translation id="7243092385765551741">패스키를 삭제하시겠습니까?</translation>
-<translation id="7243632151880336635">지우기 및 로그아웃</translation>
 <translation id="7245162963905242662">Google에서 이 페이지 검색...</translation>
 <translation id="7245628041916450754"><ph name="WIDTH" />x<ph name="HEIGHT" />(최고)</translation>
 <translation id="7246230585855757313">보안 키를 다시 삽입하고 한번 더 시도해 보세요.</translation>
@@ -8582,7 +8578,6 @@
 <translation id="7925285046818567682"><ph name="HOST_NAME" />의 응답을 기다리는 중...</translation>
 <translation id="7926423016278357561">본인이 아닙니다.</translation>
 <translation id="7926975587469166629">카드 닉네임</translation>
-<translation id="7927610604078150317">크기: <ph name="CHROME_APP_SIZE" /></translation>
 <translation id="7928175190925744466">이 비밀번호를 이미 변경하셨나요?</translation>
 <translation id="7929962904089429003">메뉴 열기</translation>
 <translation id="7930294771522048157">저장한 결제 수단이 여기에 표시됩니다.</translation>
@@ -9232,6 +9227,7 @@
 <translation id="8448729345478502352">화면에 표시되는 항목을 축소 또는 확대합니다.</translation>
 <translation id="8449008133205184768">붙여넣고 스타일 일치시킴</translation>
 <translation id="8449036207308062757">저장용량 관리</translation>
+<translation id="8449347986464073209">삭제 및 로그아웃</translation>
 <translation id="8449836157089738489">새로운 탭 그룹에서 모두 열기</translation>
 <translation id="8449869326050867919">비밀번호 공유됨</translation>
 <translation id="8451512073679317615">어시스턴트</translation>
diff --git a/chrome/app/resources/generated_resources_ky.xtb b/chrome/app/resources/generated_resources_ky.xtb
index 94fc41cc..2ab61a9b 100644
--- a/chrome/app/resources/generated_resources_ky.xtb
+++ b/chrome/app/resources/generated_resources_ky.xtb
@@ -5040,7 +5040,6 @@
 <translation id="5027550639139316293">Электрондук почта тастыктамасы</translation>
 <translation id="5027562294707732951">Кеңейтүү кошуу</translation>
 <translation id="5028445315206872221">Бул сайтта кеңейтүүлөр бөгөттөлдү</translation>
-<translation id="5029568752722684782">Көчүрмөнү тазалоо</translation>
 <translation id="5029873138381728058">Виртуалдык машиналар текшерилбей койду</translation>
 <translation id="503155457707535043">Колдонмолор жүктөлүп алынууда</translation>
 <translation id="5032430150487044192">QR код түзүлгөн жок</translation>
@@ -5734,7 +5733,6 @@
 <translation id="5601823921345337195">MIDI түзмөктөрүнө туташа албайт</translation>
 <translation id="5601833336918638013">Сайттарга Bluetooth түзмөктөрүн издөөгө тыюу салуу</translation>
 <translation id="5602586420788540146">Жаңы өтмөктөр тобунда ачуу</translation>
-<translation id="5602765853043467355">Бул түзмөктөгү кыстармаларды, таржымалды, сырсөздөрдү жана башкаларды тазалоо</translation>
 <translation id="5605758115928394442">Сиз экениңизди ырастоо үчүн телефонуңузга билдирме жөнөтүлдү.</translation>
 <translation id="5606849116180480101">{NUM_EXTENSIONS,plural, =1{Бул кеңейтүү бөгөттөлгөн}other{Бул кеңейтүүлөр бөгөттөлгөн}}</translation>
 <translation id="560834977503641186">Wi-Fi Sync тууралуу кеңири маалымат</translation>
@@ -5786,7 +5784,6 @@
 <translation id="5641648607875312660">Скриншот сүрөтүн түзөткүч</translation>
 <translation id="5642508497713047">CRL кол койгуч</translation>
 <translation id="5643321261065707929">Тарифтелген тармак</translation>
-<translation id="5643620609347735571">Тазалоо жана улантуу</translation>
 <translation id="5646376287012673985">Жайгашкан жер</translation>
 <translation id="5646558797914161501">Ишкер мырза</translation>
 <translation id="5648021990716966815">Микрофондун оюкчасы</translation>
@@ -7703,7 +7700,6 @@
 <translation id="7241389281993241388">Кардар тастыктамасын импорттоо үчүн <ph name="TOKEN_NAME" /> ичине кириңиз.</translation>
 <translation id="7241763419756062043">Издөө жана карап чыгуу сапатын тандаңыз</translation>
 <translation id="7243092385765551741">Киргизүүчү ачкычы өчүрүлсүнбү?</translation>
-<translation id="7243632151880336635">Тазалоо жана Чыгуу</translation>
 <translation id="7245162963905242662">Бул баракты Google менен издеңиз…</translation>
 <translation id="7245628041916450754"><ph name="WIDTH" /> х <ph name="HEIGHT" /> (Эң мыкты)</translation>
 <translation id="7246230585855757313">Коопсуздук ачкычын кайра киргизип туруп, кайра аракет кылып көрүңүз</translation>
@@ -8581,7 +8577,6 @@
 <translation id="7925285046818567682">Төмөнкүнү күтүүдө <ph name="HOST_NAME" />…</translation>
 <translation id="7926423016278357561">Ал мен эмес болчумун.</translation>
 <translation id="7926975587469166629">Картанын ылакап аты</translation>
-<translation id="7927610604078150317">Өлчөмү: <ph name="CHROME_APP_SIZE" /></translation>
 <translation id="7928175190925744466">Бул сырсөздү өзгөрттүңүз беле?</translation>
 <translation id="7929962904089429003">Менюну ачуу</translation>
 <translation id="7930294771522048157">Сакталган төлөм ыкмалары бул жерде көрүнөт</translation>
@@ -9230,6 +9225,7 @@
 <translation id="8448729345478502352">Экраныңыздагы элементтерди кичирейтип же чоңойтот</translation>
 <translation id="8449008133205184768">Чаптоо жана далдаштыруу стили</translation>
 <translation id="8449036207308062757">Сактагычты башкаруу</translation>
+<translation id="8449347986464073209">Өчүрүү жана аккаунттан чыгуу</translation>
 <translation id="8449836157089738489">Баарын жаңы өтмөктөр тобунда ачуу</translation>
 <translation id="8449869326050867919">Сырсөз бөлүшүлдү</translation>
 <translation id="8451512073679317615">жардамчы</translation>
diff --git a/chrome/app/resources/generated_resources_lo.xtb b/chrome/app/resources/generated_resources_lo.xtb
index ddec38d5..0579ee7 100644
--- a/chrome/app/resources/generated_resources_lo.xtb
+++ b/chrome/app/resources/generated_resources_lo.xtb
@@ -5049,7 +5049,6 @@
 <translation id="5027550639139316293">ໃບ​ຢັ້ງ​ຢືນອີເມວ</translation>
 <translation id="5027562294707732951">ເພີ່ມ​ສ່ວນ​ຂະ​ຫຍາຍ</translation>
 <translation id="5028445315206872221">ສ່ວນຂະຫຍາຍຖືກບລັອກຢູ່ເວັບໄຊນີ້</translation>
-<translation id="5029568752722684782">ລ້າງ​ສຳ​ເນົາ</translation>
 <translation id="5029873138381728058">ກວດສອບ VM ບໍ່ສຳເລັດ</translation>
 <translation id="503155457707535043">ກຳລັງດາວໂຫຼດແອັບ</translation>
 <translation id="5032430150487044192">ບໍ່ສາມາດສ້າງລະຫັດ QR ໄດ້</translation>
@@ -5742,7 +5741,6 @@
 <translation id="5601823921345337195">ບໍ່ໄດ້ຮັບອະນຸຍາດໃຫ້ເຊື່ອມຕໍ່ກັບອຸປະກອນ MIDI</translation>
 <translation id="5601833336918638013">ບໍ່ອະນຸຍາດໃຫ້ເວັບໄຊຕ່າງໆຊອກຫາອຸປະກອນ Bluetooth</translation>
 <translation id="5602586420788540146">ເປີດໃນກຸ່ມແຖບໃໝ່</translation>
-<translation id="5602765853043467355">ລຶບລ້າງບຸກມາກ, ປະຫວັດ, ລະຫັດຜ່ານ ແລະ ອື່ນໆອີກຈາກອຸປະກອນນີ້</translation>
 <translation id="5605758115928394442">ລະບົບໄດ້ສົ່ງການແຈ້ງເຕືອນຫາໂທລະສັບຂອງທ່ານແລ້ວເພື່ອຢືນຢັນວ່າແມ່ນທ່ານ.</translation>
 <translation id="5606849116180480101">{NUM_EXTENSIONS,plural, =1{ສ່ວນຂະຫຍາຍນີ້ຖືກບລັອກໄວ້}other{ສ່ວນຂະຫຍາຍເຫຼົ່ານີ້ຖືກບລັອກໄວ້}}</translation>
 <translation id="560834977503641186">Wi-Fi Sync, ສຶກສາເພີ່ມເຕີມ</translation>
@@ -5794,7 +5792,6 @@
 <translation id="5641648607875312660">ຕົວແກ້ໄຂຮູບໜ້າຈໍ</translation>
 <translation id="5642508497713047">ຜູ້ເຊັນ CRL</translation>
 <translation id="5643321261065707929">ເຄືອຂ່າຍມີການວັດແທກປະລິມານອິນເຕີເນັດ</translation>
-<translation id="5643620609347735571">ລຶບລ້າງ ແລະ ສືບຕໍ່</translation>
 <translation id="5646376287012673985">ສະ​ຖານ​ທີ່</translation>
 <translation id="5646558797914161501">ນັກທຸລະກິດ</translation>
 <translation id="5648021990716966815">ແຈັກໄມໂຄຣໂຟນ</translation>
@@ -7713,7 +7710,6 @@
 <translation id="7241389281993241388">ກະ​ລຸ​ນາ​ລົງຊື່ເຂົ້າ​ໃຊ້<ph name="TOKEN_NAME" /> ເພື່ອນໍາໃບຢັ້ງຢືນລູກຂ່າຍເຂົ້າມາ.</translation>
 <translation id="7241763419756062043">ເລືອກຄຸນນະພາບການຊອກຫາ ແລະ ການທ່ອງເວັບຂອງທ່ານ</translation>
 <translation id="7243092385765551741">ລຶບກະແຈຜ່ານບໍ?</translation>
-<translation id="7243632151880336635">ລຶບລ້າງ ແລະ ອອກຈາກລະບົບ</translation>
 <translation id="7245162963905242662">ຊອກຫາໜ້ານີ້ດ້ວຍ Google...</translation>
 <translation id="7245628041916450754"><ph name="WIDTH" /> x <ph name="HEIGHT" /> (ດີທີ່ສຸດ)</translation>
 <translation id="7246230585855757313">ສຽບກະແຈຄວາມປອດໄພຂອງທ່ານຄືນໃໝ່ ແລ້ວລອງອີກຄັ້ງ</translation>
@@ -8591,7 +8587,6 @@
 <translation id="7925285046818567682">ກໍາລັງລໍຖ້າ <ph name="HOST_NAME" />...</translation>
 <translation id="7926423016278357561">ນີ້ບໍ່ແມ່ນຂ້ອຍ.</translation>
 <translation id="7926975587469166629">ຊື່ຫຼິ້ນບັດ</translation>
-<translation id="7927610604078150317">ຂະໜາດ: <ph name="CHROME_APP_SIZE" /></translation>
 <translation id="7928175190925744466">ປ່ຽນລະຫັດຜ່ານນີ້ແລ້ວບໍ?</translation>
 <translation id="7929962904089429003">ເປີດເມນູ</translation>
 <translation id="7930294771522048157">ວິທີການຈ່າຍເງິນທີ່ບັນທຶກໄວ້ຈະປາກົດຢູ່ບ່ອນນີ້</translation>
@@ -9240,6 +9235,7 @@
 <translation id="8448729345478502352">ເຮັດໃຫ້ລາຍການຕ່າງໆໃນໜ້າຈໍຂອງທ່ານນ້ອຍລົງ ຫຼື ໃຫຍ່ຂຶ້ນ</translation>
 <translation id="8449008133205184768">ແປະໃສ່ ແລະຈັບຄູ່ຮູບແບບ</translation>
 <translation id="8449036207308062757">ຈັດການບ່ອນເກັບຂໍ້ມູນ</translation>
+<translation id="8449347986464073209">ລຶບ ແລະ ອອກຈາກລະບົບ</translation>
 <translation id="8449836157089738489">ເປີດທັງໝົດໃນກຸ່ມແຖບໃໝ່</translation>
 <translation id="8449869326050867919">ແບ່ງປັນລະຫັດຜ່ານແລ້ວ</translation>
 <translation id="8451512073679317615">ຜູ້ຊ່ວຍ</translation>
diff --git a/chrome/app/resources/generated_resources_lt.xtb b/chrome/app/resources/generated_resources_lt.xtb
index 33c5e0e..752557b9 100644
--- a/chrome/app/resources/generated_resources_lt.xtb
+++ b/chrome/app/resources/generated_resources_lt.xtb
@@ -5043,7 +5043,6 @@
 <translation id="5027550639139316293">El. pašto sertifikatas</translation>
 <translation id="5027562294707732951">Pridėti plėtinį</translation>
 <translation id="5028445315206872221">Šioje svetainėje plėtiniai blokuojami</translation>
-<translation id="5029568752722684782">Išvalyti kopiją</translation>
 <translation id="5029873138381728058">Nepavyko patikrinti virtualaus įrenginio</translation>
 <translation id="503155457707535043">Programos atsisiunčiamos</translation>
 <translation id="5032430150487044192">Nepavyko sukurti QR kodo</translation>
@@ -5737,7 +5736,6 @@
 <translation id="5601823921345337195">Neleidžiama prijungti MIDI įrenginių</translation>
 <translation id="5601833336918638013">Neleisti svetainėms ieškoti „Bluetooth“ įrenginių</translation>
 <translation id="5602586420788540146">Atidaryti naujoje skirtukų grupėje</translation>
-<translation id="5602765853043467355">Išvalyti žymes, istoriją, slaptažodžius ir kt. iš šio įrenginio</translation>
 <translation id="5605758115928394442">Pranešimas išsiųstas į jūsų telefoną norint patvirtinti, kad tai jūs.</translation>
 <translation id="5606849116180480101">{NUM_EXTENSIONS,plural, =1{Šis plėtinys užblokuotas}one{Šie plėtiniai užblokuoti}few{Šie plėtiniai užblokuoti}many{Šie plėtiniai užblokuoti}other{Šie plėtiniai užblokuoti}}</translation>
 <translation id="560834977503641186">„Wi-Fi“ sinchronizavimas, sužinokite daugiau</translation>
@@ -5790,7 +5788,6 @@
 <translation id="5641648607875312660">Ekrano kopijos vaizdo redagavimo priemonė</translation>
 <translation id="5642508497713047">CRL pasirašantis asmuo</translation>
 <translation id="5643321261065707929">Matuojamas tinklas</translation>
-<translation id="5643620609347735571">Išvalyti ir tęsti</translation>
 <translation id="5646376287012673985">Vietovė</translation>
 <translation id="5646558797914161501">Verslininkas</translation>
 <translation id="5648021990716966815">Mikrofono jungtis</translation>
@@ -7714,7 +7711,6 @@
 <translation id="7241389281993241388">Jei norite importuoti programos sertifikatą, prisijunkite prie „<ph name="TOKEN_NAME" />“.</translation>
 <translation id="7241763419756062043">Paieškos ir naršymo kokybės pasirinkimas</translation>
 <translation id="7243092385765551741">Ištrinti prieigos raktą?</translation>
-<translation id="7243632151880336635">Išvalyti ir atsijungti</translation>
 <translation id="7245162963905242662">Ieš&amp;koti šiame puslapyje naudojant „Google“...</translation>
 <translation id="7245628041916450754"><ph name="WIDTH" /> x <ph name="HEIGHT" /> (geriausia)</translation>
 <translation id="7246230585855757313">Įdėkite saugos raktą iš naujo ir bandykite dar kartą</translation>
@@ -8592,7 +8588,6 @@
 <translation id="7925285046818567682">Laukiama <ph name="HOST_NAME" />...</translation>
 <translation id="7926423016278357561">Tai buvau ne aš.</translation>
 <translation id="7926975587469166629">Kortelės slapyvardis</translation>
-<translation id="7927610604078150317">Dydis: <ph name="CHROME_APP_SIZE" /></translation>
 <translation id="7928175190925744466">Jau pakeitėte šį slaptažodį?</translation>
 <translation id="7929962904089429003">Atidaryti meniu</translation>
 <translation id="7930294771522048157">Čia bus rodomi išsaugoti mokėjimo metodai</translation>
@@ -9242,6 +9237,7 @@
 <translation id="8448729345478502352">Padidinkite arba sumažinkite elementus ekrane</translation>
 <translation id="8449008133205184768">Įklijuoti ir atitikti stilių</translation>
 <translation id="8449036207308062757">Tvarkyti saugyklą</translation>
+<translation id="8449347986464073209">Ištrinti ir atsijungti</translation>
 <translation id="8449836157089738489">Atidaryti viską naujoje skirtukų grupėje</translation>
 <translation id="8449869326050867919">Slaptažodis bendrinamas</translation>
 <translation id="8451512073679317615">Padėjėjas</translation>
diff --git a/chrome/app/resources/generated_resources_lv.xtb b/chrome/app/resources/generated_resources_lv.xtb
index d1a5eaf..5ad2946 100644
--- a/chrome/app/resources/generated_resources_lv.xtb
+++ b/chrome/app/resources/generated_resources_lv.xtb
@@ -5026,7 +5026,6 @@
 <translation id="5027550639139316293">E-pasta sertifikāts</translation>
 <translation id="5027562294707732951">Pievienot paplašinājumu</translation>
 <translation id="5028445315206872221">Paplašinājumi ir bloķēti šajā vietnē</translation>
-<translation id="5029568752722684782">Dzēst kopiju</translation>
 <translation id="5029873138381728058">Neizdevās pārbaudīt virtuālās mašīnas</translation>
 <translation id="503155457707535043">Pašlaik lejupielādētās lietotnes</translation>
 <translation id="5032430150487044192">Nevar izveidot kvadrātkodu</translation>
@@ -5720,7 +5719,6 @@
 <translation id="5601823921345337195">Nedrīkst izveidot savienojumu ar MIDI ierīcēm</translation>
 <translation id="5601833336918638013">Neatļaut vietnēm meklēt Bluetooth ierīces</translation>
 <translation id="5602586420788540146">Atveriet jaunā ciļņu grupā</translation>
-<translation id="5602765853043467355">Notīrīt grāmatzīmes, vēsturi, paroles un citu saturu šajā ierīcē</translation>
 <translation id="5605758115928394442">Uz jūsu tālruni tika nosūtīts paziņojums, lai apstiprinātu, ka tas esat jūs.</translation>
 <translation id="5606849116180480101">{NUM_EXTENSIONS,plural, =1{Šis paplašinājums ir bloķēts}zero{Šie paplašinājumi ir bloķēti}one{Šie paplašinājumi ir bloķēti}other{Šie paplašinājumi ir bloķēti}}</translation>
 <translation id="560834977503641186">Wi-Fi sinhronizācija, uzzināt vairāk</translation>
@@ -5770,7 +5768,6 @@
 <translation id="5641648607875312660">Ekrānuzņēmuma attēla redaktors</translation>
 <translation id="5642508497713047">CRL parakstītājs</translation>
 <translation id="5643321261065707929">Maksas tīkls</translation>
-<translation id="5643620609347735571">Notīrīt un turpināt</translation>
 <translation id="5646376287012673985">Atrašanās vieta</translation>
 <translation id="5646558797914161501">Uzņēmējs</translation>
 <translation id="5648021990716966815">Mikrofona ligzda</translation>
@@ -7691,7 +7688,6 @@
 <translation id="7241389281993241388">Pierakstieties ierīcē <ph name="TOKEN_NAME" />, lai importētu klienta sertifikātu.</translation>
 <translation id="7241763419756062043">Iespēja izvēlēties meklēšanas un pārlūkošanas kvalitāti</translation>
 <translation id="7243092385765551741">Vai dzēst piekļuves atslēgu?</translation>
-<translation id="7243632151880336635">Dzēst un izrakstīties</translation>
 <translation id="7245162963905242662">Meklēt šajā lapā, izmantojot Google…</translation>
 <translation id="7245628041916450754"><ph name="WIDTH" /> x <ph name="HEIGHT" /> (labākā)</translation>
 <translation id="7246230585855757313">Atkārtoti ievietojiet drošības atslēgu un mēģiniet vēlreiz</translation>
@@ -8568,7 +8564,6 @@
 <translation id="7925285046818567682">Gaida <ph name="HOST_NAME" />...</translation>
 <translation id="7926423016278357561">Tas nebiju es.</translation>
 <translation id="7926975587469166629">Kredītkartes apzīmējums</translation>
-<translation id="7927610604078150317">Lielums: <ph name="CHROME_APP_SIZE" /></translation>
 <translation id="7928175190925744466">Vai jūs jau nomainījāt šo paroli?</translation>
 <translation id="7929962904089429003">Atvērt izvēlni</translation>
 <translation id="7930294771522048157">Šeit tiks parādīti saglabātie maksājumu veidi.</translation>
@@ -9218,6 +9213,7 @@
 <translation id="8448729345478502352">Palieliniet vai samaziniet ekrānā redzamos vienumus.</translation>
 <translation id="8449008133205184768">Ielīmēt un pielāgot stilam</translation>
 <translation id="8449036207308062757">Pārvaldīt krātuvi</translation>
+<translation id="8449347986464073209">Dzēst un izrakstīties</translation>
 <translation id="8449836157089738489">Atvērt visu jaunā ciļņu grupā</translation>
 <translation id="8449869326050867919">Parole ir kopīgota</translation>
 <translation id="8451512073679317615">asistents</translation>
diff --git a/chrome/app/resources/generated_resources_mk.xtb b/chrome/app/resources/generated_resources_mk.xtb
index d3ebd617..248a1ce9 100644
--- a/chrome/app/resources/generated_resources_mk.xtb
+++ b/chrome/app/resources/generated_resources_mk.xtb
@@ -5041,7 +5041,6 @@
 <translation id="5027550639139316293">Сертификат за е-пошта</translation>
 <translation id="5027562294707732951">Инсталирај екстензија</translation>
 <translation id="5028445315206872221">Екстензиите се блокирани на овој сајт</translation>
-<translation id="5029568752722684782">Исчисти копија</translation>
 <translation id="5029873138381728058">Не успеаја да се проверат виртуелните машини</translation>
 <translation id="503155457707535043">Апликациите се преземаат</translation>
 <translation id="5032430150487044192">Не може да се создаде QR-код</translation>
@@ -5735,7 +5734,6 @@
 <translation id="5601823921345337195">Не им е дозволено да се поврзуваат со MIDI-уредите</translation>
 <translation id="5601833336918638013">Не им дозволувај на сајтовите да бараат уреди со Bluetooth</translation>
 <translation id="5602586420788540146">Отвори во нова група картички</translation>
-<translation id="5602765853043467355">Исчисти обележувачи, историја, лозинки и друго од уредов</translation>
 <translation id="5605758115928394442">Испратено ви е известување на телефонот за потврда на вашиот идентитет.</translation>
 <translation id="5606849116180480101">{NUM_EXTENSIONS,plural, =1{Екстензијава е блокирана}one{Екстензииве се блокирани}other{Екстензииве се блокирани}}</translation>
 <translation id="560834977503641186">Синхронизирање на Wi-Fi, дознајте повеќе</translation>
@@ -5787,7 +5785,6 @@
 <translation id="5641648607875312660">Уредувач на слика од екранот</translation>
 <translation id="5642508497713047">CRL-пријавувач</translation>
 <translation id="5643321261065707929">Мрежа со мерен сообраќај</translation>
-<translation id="5643620609347735571">Исчисти и продолжи</translation>
 <translation id="5646376287012673985">Локација</translation>
 <translation id="5646558797914161501">Бизнисмен</translation>
 <translation id="5648021990716966815">Приклучок за микрофон</translation>
@@ -7706,7 +7703,6 @@
 <translation id="7241389281993241388">Најавете се на <ph name="TOKEN_NAME" /> за да го увезете клиентскиот сертификат.</translation>
 <translation id="7241763419756062043">Изберете го квалитетот на пребарувањето и прелистувањето</translation>
 <translation id="7243092385765551741">Да се избрише криптографскиот клуч?</translation>
-<translation id="7243632151880336635">Исчисти и одјави се</translation>
 <translation id="7245162963905242662">Пребарајте ја страницава со Google…</translation>
 <translation id="7245628041916450754"><ph name="WIDTH" /> x <ph name="HEIGHT" /> (најдобра)</translation>
 <translation id="7246230585855757313">Вметнете го безбедносниот клуч пак и обидете се повторно</translation>
@@ -8584,7 +8580,6 @@
 <translation id="7925285046818567682">Се чека <ph name="HOST_NAME" />...</translation>
 <translation id="7926423016278357561">Не бев јас.</translation>
 <translation id="7926975587469166629">Прекар на картичката</translation>
-<translation id="7927610604078150317">Големина: <ph name="CHROME_APP_SIZE" /></translation>
 <translation id="7928175190925744466">Веќе ја променивте лозинкава?</translation>
 <translation id="7929962904089429003">Отворете го менито</translation>
 <translation id="7930294771522048157">Зачуваните начини за плаќање ќе се појават тука</translation>
@@ -9236,6 +9231,7 @@
 <translation id="8448729345478502352">Намалете ги или зголемете ги ставките на екранот</translation>
 <translation id="8449008133205184768">Залепи и усогласи стил</translation>
 <translation id="8449036207308062757">Управувајте со капацитетот</translation>
+<translation id="8449347986464073209">Избриши и одјави се</translation>
 <translation id="8449836157089738489">Отвори ги сите во нова група картички</translation>
 <translation id="8449869326050867919">Лозинката е споделена</translation>
 <translation id="8451512073679317615">помошник</translation>
diff --git a/chrome/app/resources/generated_resources_ml.xtb b/chrome/app/resources/generated_resources_ml.xtb
index 9719fcc1..ecf713c 100644
--- a/chrome/app/resources/generated_resources_ml.xtb
+++ b/chrome/app/resources/generated_resources_ml.xtb
@@ -5032,7 +5032,6 @@
 <translation id="5027550639139316293">ഇമെയില്‍‌ സര്‍‌ട്ടിഫിക്കറ്റ്</translation>
 <translation id="5027562294707732951">വിപുലീകരണം ചേർക്കുക</translation>
 <translation id="5028445315206872221">ഈ സൈറ്റിൽ വിപുലീകരണങ്ങൾ ബ്ലോക്ക് ചെയ്‌തിരിക്കുന്നു</translation>
-<translation id="5029568752722684782">പകർപ്പ് മായ്‌ക്കുക</translation>
 <translation id="5029873138381728058">VM-കൾ പരിശോധിക്കാനായില്ല</translation>
 <translation id="503155457707535043">ആപ്പുകൾ ഡൗൺലോഡ് ചെയ്യുന്നു</translation>
 <translation id="5032430150487044192">QR കോഡ് സൃഷ്‌ടിക്കാനാകില്ല</translation>
@@ -5726,7 +5725,6 @@
 <translation id="5601823921345337195">MIDI ഉപകരണങ്ങളിലേക്ക് കണക്‌റ്റ് ചെയ്യാൻ അനുവാദമില്ല</translation>
 <translation id="5601833336918638013">Bluetooth ഉപകരണങ്ങൾ തിരയാൻ സൈറ്റുകളെ അനുവദിക്കരുത്</translation>
 <translation id="5602586420788540146">പുതിയ ടാബ് ഗ്രൂപ്പിൽ തുറക്കുക</translation>
-<translation id="5602765853043467355">ഈ ഉപകരണത്തിൽ നിന്ന് ബുക്ക്‌മാർക്കുകൾ, ചരിത്രം, പാസ്‌വേഡുകൾ എന്നിവയും മറ്റും മായ്ക്കുക</translation>
 <translation id="5605758115928394442">ഇത് നിങ്ങൾ തന്നെയാണെന്ന് സ്ഥിരീകരിക്കാൻ ഫോണിലേക്ക് ഒരു അറിയിപ്പ് അയച്ചിട്ടുണ്ട്.</translation>
 <translation id="5606849116180480101">{NUM_EXTENSIONS,plural, =1{ഈ വിപുലീകരണം ബ്ലോക്ക് ചെയ്‌തു}other{ഈ വിപുലീകരണങ്ങൾ ബ്ലോക്ക് ചെയ്‌തു}}</translation>
 <translation id="560834977503641186">വൈഫൈ സമന്വയം, കൂടുതലറിയുക</translation>
@@ -5778,7 +5776,6 @@
 <translation id="5641648607875312660">സ്ക്രീൻഷോട്ട് ഇമേജ് എഡിറ്റർ</translation>
 <translation id="5642508497713047">CRL സൈനര്‍‌</translation>
 <translation id="5643321261065707929">മീറ്റർ ചെയ്‌ത നെറ്റ്‌വർക്ക്</translation>
-<translation id="5643620609347735571">മായ്ച്ചതിന് ശേഷം തുടരുക</translation>
 <translation id="5646376287012673985">സ്ഥാനം</translation>
 <translation id="5646558797914161501">ബിസിനസ്‌മാൻ</translation>
 <translation id="5648021990716966815">Mic jack</translation>
@@ -7700,7 +7697,6 @@
 <translation id="7241389281993241388">ക്ലയന്‍റ് സര്‍ട്ടിഫിക്കറ്റ് ഇമ്പോർട്ട് ചെയ്യുന്നതിന് <ph name="TOKEN_NAME" /> എന്നതിലേക്ക് ദയവായി പ്രവേശിക്കുക.</translation>
 <translation id="7241763419756062043">നിങ്ങളുടെ തിരയൽ, ബ്രൗസിംഗ് നിലവാരം തിരഞ്ഞെടുക്കുക</translation>
 <translation id="7243092385765551741">പാസ്‌കീ ഇല്ലാതാക്കണോ?</translation>
-<translation id="7243632151880336635">മായ്‌ച്ച്, സൈൻ ഔട്ട് ചെയ്യുക</translation>
 <translation id="7245162963905242662">ഈ പേജ് Google ഉപയോഗിച്ച് തിരയുക...</translation>
 <translation id="7245628041916450754"><ph name="WIDTH" /> x <ph name="HEIGHT" /> (മികച്ചത്)</translation>
 <translation id="7246230585855757313">സുരക്ഷാ കീ വീണ്ടും ബന്ധിപ്പിച്ച് വീണ്ടും ശ്രമിക്കുക</translation>
@@ -8579,7 +8575,6 @@
 <translation id="7925285046818567682"><ph name="HOST_NAME" /> നായി കാത്തിരിക്കുന്നു...</translation>
 <translation id="7926423016278357561">ഇത് ഞാൻ അല്ല.</translation>
 <translation id="7926975587469166629">കാർഡിന്റെ വിളിപ്പേര്</translation>
-<translation id="7927610604078150317">വലുപ്പം: <ph name="CHROME_APP_SIZE" /></translation>
 <translation id="7928175190925744466">മുമ്പേ തന്നെ ഈ പാസ്‌വേഡ് മാറ്റിയിട്ടുണ്ടോ?</translation>
 <translation id="7929962904089429003">മെനു തുറക്കുക</translation>
 <translation id="7930294771522048157">സംരക്ഷിച്ച പേയ്മെന്റ് രീതികൾ ഇവിടെ ദൃശ്യമാകും</translation>
@@ -9229,6 +9224,7 @@
 <translation id="8448729345478502352">സ്ക്രീനിലെ ഇനങ്ങൾ കൂടുതൽ ചെറുതോ വലുതോ ആക്കുക</translation>
 <translation id="8449008133205184768">ശൈലി ഒട്ടിക്കുകയും പൊരുത്തപ്പെടുത്തുകയും ചെയ്യുക</translation>
 <translation id="8449036207308062757">സ്റ്റോറേജ് മാനേജ് ചെയ്യുക</translation>
+<translation id="8449347986464073209">ഇല്ലാതാക്കിയ ശേഷം സൈൻ ഔട്ട് ചെയ്യുക</translation>
 <translation id="8449836157089738489">എല്ലാം പുതിയ ടാബ് ഗ്രൂപ്പിൽ തുറക്കുക</translation>
 <translation id="8449869326050867919">പാസ്‌വേഡ് പങ്കിട്ടു</translation>
 <translation id="8451512073679317615">അസിസ്‌റ്റന്‍റ്</translation>
diff --git a/chrome/app/resources/generated_resources_mn.xtb b/chrome/app/resources/generated_resources_mn.xtb
index 44a3903..4c8cc14 100644
--- a/chrome/app/resources/generated_resources_mn.xtb
+++ b/chrome/app/resources/generated_resources_mn.xtb
@@ -5035,7 +5035,6 @@
 <translation id="5027550639139316293">И-мэйлийн гэрчилгээ</translation>
 <translation id="5027562294707732951">Өргөтгөл нэмэх</translation>
 <translation id="5028445315206872221">Энэ сайтад өргөтгөлүүдийг блоклосон</translation>
-<translation id="5029568752722684782">Хуулбарыг арилгах</translation>
 <translation id="5029873138381728058">VM-г шалгаж чадсангүй</translation>
 <translation id="503155457707535043">Аппуyдыг татаж байна</translation>
 <translation id="5032430150487044192">QR код үүсгэх боломжгүй байна</translation>
@@ -5729,7 +5728,6 @@
 <translation id="5601823921345337195">MIDI төхөөрөмжүүдэд холбогдохыг зөвшөөрөөгүй</translation>
 <translation id="5601833336918638013">Сайтуудад Bluetooth төхөөрөмж хайхыг бүү зөвшөөр</translation>
 <translation id="5602586420788540146">Шинэ табын бүлэгт нээх</translation>
-<translation id="5602765853043467355">Энэ төхөөрөмжөөс хавчуурга, түүх, нууц үг болон бусад зүйлийг устгах</translation>
 <translation id="5605758115928394442">Таныг мөн эсэхийг баталгаажуулах зорилгоор таны утсанд мэдэгдэл илгээсэн болно.</translation>
 <translation id="5606849116180480101">{NUM_EXTENSIONS,plural, =1{Энэ өргөтгөлийг блоклосон байна}other{Эдгээр өргөтгөлийг блоклосон байна}}</translation>
 <translation id="560834977503641186">Wi-Fi синк, Нэмэлт мэдээлэл авах</translation>
@@ -5782,7 +5780,6 @@
 <translation id="5641648607875312660">Дэлгэцийн агшин зургийг засварлагч</translation>
 <translation id="5642508497713047">CRL гарын үсэг зурагч</translation>
 <translation id="5643321261065707929">Хязгаартай сүлжээ</translation>
-<translation id="5643620609347735571">Устгаад үргэлжлүүлэх</translation>
 <translation id="5646376287012673985">Байршил</translation>
 <translation id="5646558797914161501">Ажил хэрэгч хүн</translation>
 <translation id="5648021990716966815">Микрофоны чихэвчний оролт</translation>
@@ -7698,7 +7695,6 @@
 <translation id="7241389281993241388">Хэрэглэгчийн гэрчилгээг оруулах зорилгоор <ph name="TOKEN_NAME" />-д нэвтрэнэ үү.</translation>
 <translation id="7241763419756062043">Хайлт болон хайлтын чанараа сонгоно уу</translation>
 <translation id="7243092385765551741">Нэвтрэх түлхүүрийг устгах уу?</translation>
-<translation id="7243632151880336635">Цэвэрлээд гарах</translation>
 <translation id="7245162963905242662">Энэ хуудсыг Google-р хайх...</translation>
 <translation id="7245628041916450754"><ph name="WIDTH" /> x <ph name="HEIGHT" /> (Шилдэг)</translation>
 <translation id="7246230585855757313">Аюулгүй байдлын түлхүүрээ дахин залгаад дахин оролдоно уу</translation>
@@ -8575,7 +8571,6 @@
 <translation id="7925285046818567682"><ph name="HOST_NAME" />-ийг хүлээж байна...</translation>
 <translation id="7926423016278357561">Би байгаагүй.</translation>
 <translation id="7926975587469166629">Картын хоч</translation>
-<translation id="7927610604078150317">Хэмжээ: <ph name="CHROME_APP_SIZE" /></translation>
 <translation id="7928175190925744466">Энэ нууц үгийг аль хэдийн өөрчилсөн үү?</translation>
 <translation id="7929962904089429003">Цэс нээх</translation>
 <translation id="7930294771522048157">Хадгалсан төлбөрийн хэрэгсэл энд харагдана</translation>
@@ -9223,6 +9218,7 @@
 <translation id="8448729345478502352">Дэлгэц дээрх зүйлсийг жижигрүүлэх эсвэл томруулах</translation>
 <translation id="8449008133205184768">Зөөж тавиад, хэлбэршүүлэлттэй нийцүүл</translation>
 <translation id="8449036207308062757">Хадгалах санг удирдах</translation>
+<translation id="8449347986464073209">Устгаад, гарах</translation>
 <translation id="8449836157089738489">Бүгдийг шинэ табын бүлэгт нээх</translation>
 <translation id="8449869326050867919">Нууц үгийг хуваалцсан</translation>
 <translation id="8451512073679317615">туслах</translation>
diff --git a/chrome/app/resources/generated_resources_mr.xtb b/chrome/app/resources/generated_resources_mr.xtb
index 24bc6db..7b20ad2 100644
--- a/chrome/app/resources/generated_resources_mr.xtb
+++ b/chrome/app/resources/generated_resources_mr.xtb
@@ -5037,7 +5037,6 @@
 <translation id="5027550639139316293">ईमेल सर्टिफिकेट</translation>
 <translation id="5027562294707732951">एक्स्टेंशन जोडा</translation>
 <translation id="5028445315206872221">या साइटवर एक्स्टेंशन ब्लॉक केले आहेत</translation>
-<translation id="5029568752722684782">कॉपी साफ करा</translation>
 <translation id="5029873138381728058">VM तपासता आले नाही</translation>
 <translation id="503155457707535043">अ‍ॅप्स डाउनलोड होत आहेत</translation>
 <translation id="5032430150487044192">QR कोड तयार करता आला नाही</translation>
@@ -5731,7 +5730,6 @@
 <translation id="5601823921345337195">MIDI डिव्हाइसशी कनेक्ट करण्याची अनुमती नाही</translation>
 <translation id="5601833336918638013">साइटना ब्लूटूथ डिव्हाइस शोधण्याची अनुमती देऊ नका</translation>
 <translation id="5602586420788540146">नवीन टॅब गटामध्ये उघडा</translation>
-<translation id="5602765853043467355">या डिव्हाइसमधून बुकमार्क, इतिहास, पासवर्ड आणि बरेच काही साफ करा</translation>
 <translation id="5605758115928394442">ते तुम्हीच आहात हे निश्चित करण्यासाठी तुमच्या फोनवर सूचना पाठवली होती.</translation>
 <translation id="5606849116180480101">{NUM_EXTENSIONS,plural, =1{हे एक्स्टेंशन ब्लॉक केले आहे}other{ही एक्स्टेंशन ब्लॉक केली आहेत}}</translation>
 <translation id="560834977503641186">वाय-फाय सिंक, अधिक जाणून घ्या</translation>
@@ -5783,7 +5781,6 @@
 <translation id="5641648607875312660">स्क्रीनशॉट इमेज संपादक</translation>
 <translation id="5642508497713047">CRL स्वाक्षरीकर्ता</translation>
 <translation id="5643321261065707929">मर्यादित नेटवर्क</translation>
-<translation id="5643620609347735571">साफ करा आणि सुरू ठेवा</translation>
 <translation id="5646376287012673985">स्थान</translation>
 <translation id="5646558797914161501">व्यवसायी</translation>
 <translation id="5648021990716966815">माइक जॅक</translation>
@@ -7702,7 +7699,6 @@
 <translation id="7241389281993241388">कृपया क्लायंट प्रमाणपत्र इंपोर्ट करण्यासाठी <ph name="TOKEN_NAME" /> मध्ये साइन इन करा.</translation>
 <translation id="7241763419756062043">तुमची शोध आणि ब्राउझिंग गुणवत्ता निवडा</translation>
 <translation id="7243092385765551741">पासकी हटवायची आहे का?</translation>
-<translation id="7243632151880336635">साफ करा आणि साइन आउट करा</translation>
 <translation id="7245162963905242662">हे पेज Google वर शोधा…</translation>
 <translation id="7245628041916450754"><ph name="WIDTH" /> x <ph name="HEIGHT" /> (उत्कृष्‍ट)</translation>
 <translation id="7246230585855757313">तुमची सिक्युरिटी की पुन्हा घाला आणि पुन्हा प्रयत्न करा</translation>
@@ -8578,7 +8574,6 @@
 <translation id="7925285046818567682"><ph name="HOST_NAME" /> साठी प्रतीक्षा करीत आहे...</translation>
 <translation id="7926423016278357561">ही व्यक्ती मी नाही.</translation>
 <translation id="7926975587469166629">कार्डावरील टोपणनाव</translation>
-<translation id="7927610604078150317">आकार: <ph name="CHROME_APP_SIZE" /></translation>
 <translation id="7928175190925744466">हा पासवर्ड आधीच बदलला आहे का?</translation>
 <translation id="7929962904089429003">मेनू उघडा</translation>
 <translation id="7930294771522048157">सेव्ह केलेल्या पेमेंट पद्धती येथे दिसतील</translation>
@@ -9228,6 +9223,7 @@
 <translation id="8448729345478502352">तुमच्या स्क्रीनवर आयटम लहान किंवा मोठे करा</translation>
 <translation id="8449008133205184768">पेस्ट करा आणि शैली जुळवा</translation>
 <translation id="8449036207308062757">स्टोरेज व्यवस्थापित करा</translation>
+<translation id="8449347986464073209">हटवा आणि साइन आउट करा</translation>
 <translation id="8449836157089738489">सर्व नवीन टॅब गटामध्ये उघडा</translation>
 <translation id="8449869326050867919">पासवर्ड शेअर केला</translation>
 <translation id="8451512073679317615">साहाय्यक</translation>
diff --git a/chrome/app/resources/generated_resources_ms.xtb b/chrome/app/resources/generated_resources_ms.xtb
index 41526b6..0f371de0 100644
--- a/chrome/app/resources/generated_resources_ms.xtb
+++ b/chrome/app/resources/generated_resources_ms.xtb
@@ -5040,7 +5040,6 @@
 <translation id="5027550639139316293">Sijil E-mel</translation>
 <translation id="5027562294707732951">Tambahkan sambungan</translation>
 <translation id="5028445315206872221">Sambungan disekat pada laman ini</translation>
-<translation id="5029568752722684782">Hapuskan salinan</translation>
 <translation id="5029873138381728058">Gagal menyemak VM</translation>
 <translation id="503155457707535043">Apl sedang dimuat turun</translation>
 <translation id="5032430150487044192">Tidak dapat membuat Kod QR</translation>
@@ -5734,7 +5733,6 @@
 <translation id="5601823921345337195">Tidak dibenarkan untuk menyambung kepada peranti MIDI</translation>
 <translation id="5601833336918638013">Jangan benarkan laman mencari peranti Bluetooth</translation>
 <translation id="5602586420788540146">Buka dalam kumpulan tab baharu</translation>
-<translation id="5602765853043467355">Kosongkan penanda halaman, sejarah, kata laluan dan pelbagai lagi daripada peranti ini</translation>
 <translation id="5605758115928394442">Pemberitahuan telah dihantar ke telefon anda untuk mengesahkan orang itu ialah anda.</translation>
 <translation id="5606849116180480101">{NUM_EXTENSIONS,plural, =1{Sambungan ini disekat}other{Sambungan ini disekat}}</translation>
 <translation id="560834977503641186">Penyegerakan Wi-Fi, Ketahui Lebih Lanjut</translation>
@@ -5786,7 +5784,6 @@
 <translation id="5641648607875312660">Editor Imej Tangkapan Skrin</translation>
 <translation id="5642508497713047">Penandatangan CRL</translation>
 <translation id="5643321261065707929">Rangkaian bermeter</translation>
-<translation id="5643620609347735571">Kosongkan dan teruskan</translation>
 <translation id="5646376287012673985">Lokasi</translation>
 <translation id="5646558797914161501">Ahli perniagaan</translation>
 <translation id="5648021990716966815">Bicu mikrofon</translation>
@@ -7704,7 +7701,6 @@
 <translation id="7241389281993241388">Sila log masuk ke <ph name="TOKEN_NAME" /> untuk mengimport sijil klien.</translation>
 <translation id="7241763419756062043">Pilih kualiti carian dan penyemakan imbas anda</translation>
 <translation id="7243092385765551741">Padamkan kunci laluan?</translation>
-<translation id="7243632151880336635">Kosongkan dan Log Keluar</translation>
 <translation id="7245162963905242662">Cari Halaman ini dengan Google...</translation>
 <translation id="7245628041916450754"><ph name="WIDTH" /> x <ph name="HEIGHT" /> (Terbaik)</translation>
 <translation id="7246230585855757313">Masukkan semula kunci keselamatan anda dan cuba lagi</translation>
@@ -8582,7 +8578,6 @@
 <translation id="7925285046818567682">Menunggu untuk <ph name="HOST_NAME" />...</translation>
 <translation id="7926423016278357561">Ini bukan saya.</translation>
 <translation id="7926975587469166629">Nama panggilan kad</translation>
-<translation id="7927610604078150317">Saiz: <ph name="CHROME_APP_SIZE" /></translation>
 <translation id="7928175190925744466">Sudah menukar kata laluan ini?</translation>
 <translation id="7929962904089429003">Buka menu</translation>
 <translation id="7930294771522048157">Kaedah pembayaran yang disimpan akan dipaparkan di sini</translation>
@@ -9233,6 +9228,7 @@
 <translation id="8448729345478502352">Kecilkan atau besarkan item pada skrin anda</translation>
 <translation id="8449008133205184768">Gaya Tampal dan Padan</translation>
 <translation id="8449036207308062757">Urus storan</translation>
+<translation id="8449347986464073209">Padam dan Log Keluar</translation>
 <translation id="8449836157089738489">Buka semua dalam kumpulan tab baharu</translation>
 <translation id="8449869326050867919">Kata laluan dikongsi</translation>
 <translation id="8451512073679317615">assistant</translation>
diff --git a/chrome/app/resources/generated_resources_my.xtb b/chrome/app/resources/generated_resources_my.xtb
index b5553b4..9bbebae 100644
--- a/chrome/app/resources/generated_resources_my.xtb
+++ b/chrome/app/resources/generated_resources_my.xtb
@@ -5047,7 +5047,6 @@
 <translation id="5027550639139316293">အီးမေးလ် လက်မှတ်</translation>
 <translation id="5027562294707732951">ပရိုဂရမ်အဆက် ပေါင်းထည့်ရန်</translation>
 <translation id="5028445315206872221">ဤဝဘ်ဆိုက်တွင် နောက်ဆက်တွဲများ ပိတ်ထားသည်</translation>
-<translation id="5029568752722684782">ကြည်လင်ပြတ်သား မိတ္ထူ</translation>
 <translation id="5029873138381728058">VM များ စစ်ဆေး၍ မရပါ</translation>
 <translation id="503155457707535043">အက်ပ်များကို ဒေါင်းလုဒ်လုပ်နေသည်</translation>
 <translation id="5032430150487044192">QR ကုဒ် ပြုလုပ်၍မရပါ</translation>
@@ -5741,7 +5740,6 @@
 <translation id="5601823921345337195">MIDI ကိရိယာများသို့ ချိတ်ဆက်ရန် ခွင့်ပြုမထားပါ</translation>
 <translation id="5601833336918638013">ဘလူးတုသ်သုံးစက်များ ရှာရန် ဝဘ်ဆိုက်များကို ခွင့်မပြုပါနှင့်</translation>
 <translation id="5602586420788540146">တဘ်အုပ်စုအသစ်တွင် ဖွင့်ရန်</translation>
-<translation id="5602765853043467355">ဤစက်ပစ္စည်းထဲရှိ စာညှပ်၊ မှတ်တမ်း၊ စကားဝှက်နှင့် အခြားအရာများကို ရှင်းလင်းရန်</translation>
 <translation id="5605758115928394442">သင်ဖြစ်ကြောင်း အတည်ပြုရန် သင့်ဖုန်းသို့ အကြောင်းကြားချက်တစ်ခု ပို့ထားသည်။</translation>
 <translation id="5606849116180480101">{NUM_EXTENSIONS,plural, =1{ဤနောက်ဆက်တွဲကို ပိတ်ထားသည်}other{ဤနောက်ဆက်တွဲများကို ပိတ်ထားသည်}}</translation>
 <translation id="560834977503641186">Wi-Fi စင့်ခ်၊ ပိုမိုလေ့လာရန်</translation>
@@ -5794,7 +5792,6 @@
 <translation id="5641648607875312660">ဖန်သားပြင်ဓာတ်ပုံ ပုံတည်းဖြတ်စနစ်</translation>
 <translation id="5642508497713047">CRL လက်မှတ်ထိုးသူ</translation>
 <translation id="5643321261065707929">အခမဲ့မဟုတ်သော ကွန်ရက်</translation>
-<translation id="5643620609347735571">ရှင်းလင်းပြီး ရှေ့ဆက်ရန်</translation>
 <translation id="5646376287012673985">တည်နေရာ</translation>
 <translation id="5646558797914161501">စီးပွားရေးလုပ်ငန်းရှင်</translation>
 <translation id="5648021990716966815">မိုက်ခရိုဖုန်း ဂျက်ပင်</translation>
@@ -7710,7 +7707,6 @@
 <translation id="7241389281993241388">ကျေးဇူးပြုပြီး သုံးသူလက်မှတ်ကို သွင်းယူရန် <ph name="TOKEN_NAME" /> သို့ လက်မှတ်ထိုးဝင်ပါ။</translation>
 <translation id="7241763419756062043">သင့်ရှာဖွေမှုနှင့် ကြည့်ရှုမှု အရည်အသွေး ရွေးချယ်ခြင်း</translation>
 <translation id="7243092385765551741">လျှို့ဝှက်ကီး ဖျက်မလား။</translation>
-<translation id="7243632151880336635">ရှင်းလင်းပြီး ထွက်ရန်</translation>
 <translation id="7245162963905242662">ဤစာမျက်နှာကို Google ဖြင့် ရှာရန်...</translation>
 <translation id="7245628041916450754"><ph name="WIDTH" /> x <ph name="HEIGHT" /> (အကောင်းဆုံး)</translation>
 <translation id="7246230585855757313">သင့်လုံခြုံရေးကီးကို ပြန်ထည့်ပြီး ထပ်စမ်းကြည့်ပါ</translation>
@@ -8590,7 +8586,6 @@
 <translation id="7925285046818567682"><ph name="HOST_NAME" />အတွက် စောင့်နေ...</translation>
 <translation id="7926423016278357561">၎င်းသည် ကျွှန်ုပ်မဟုတ်ပါ။</translation>
 <translation id="7926975587469166629">ကတ်နာမည်ပြောင်</translation>
-<translation id="7927610604078150317">အရွယ်အစား− <ph name="CHROME_APP_SIZE" /></translation>
 <translation id="7928175190925744466">ဤစကားဝှက်ကို ပြောင်းပြီးပြီလား။</translation>
 <translation id="7929962904089429003">မီနူးကို ဖွင့်ရန်</translation>
 <translation id="7930294771522048157">သိမ်းထားသော ငွေပေးချေနည်းလမ်းများ ဤနေရာတွင် ပေါ်လာပါမည်</translation>
@@ -9239,6 +9234,7 @@
 <translation id="8448729345478502352">သင်၏ မျက်နှာပြင်ပေါ်ရှိ အရာများကို ပိုသေးအောင် သို့မဟုတ် ပိုကြီးအောင် ပြုလုပ်ပါ</translation>
 <translation id="8449008133205184768">ကပ်ပေးရန် နှင့် စတိုင် ညှိပေ</translation>
 <translation id="8449036207308062757">သိုလှောင်ခန်းကို စီမံခန့်ခွဲပါ</translation>
+<translation id="8449347986464073209">ဖျက်ပြီး ထွက်ရန်</translation>
 <translation id="8449836157089738489">အားလုံးကို တဘ်အုပ်စုအသစ်တွင် ဖွင့်ရန်</translation>
 <translation id="8449869326050867919">စကားဝှက်မျှဝေထားသည်</translation>
 <translation id="8451512073679317615">အကူအညီ</translation>
diff --git a/chrome/app/resources/generated_resources_ne.xtb b/chrome/app/resources/generated_resources_ne.xtb
index 491b4b4..1ed7a47 100644
--- a/chrome/app/resources/generated_resources_ne.xtb
+++ b/chrome/app/resources/generated_resources_ne.xtb
@@ -5031,7 +5031,6 @@
 <translation id="5027550639139316293">इमेल प्रमाणपत्र</translation>
 <translation id="5027562294707732951">विस्तार थप्नुहोस्</translation>
 <translation id="5028445315206872221">यो साइटमा एक्स्टेन्सनहरू ब्लक गरिएका छन्</translation>
-<translation id="5029568752722684782">प्रतिलिपि हटाउनुहोस्</translation>
 <translation id="5029873138381728058">VM हरू जाँच गर्न सकिएन</translation>
 <translation id="503155457707535043">एपहरू डाउनलोड गर्दै</translation>
 <translation id="5032430150487044192">QR कोड सिर्जना गर्न सकिएन</translation>
@@ -5725,7 +5724,6 @@
 <translation id="5601823921345337195">MIDI यन्त्रहरूमा कनेक्ट गर्न अनुमति नदिइएका साइटहरू</translation>
 <translation id="5601833336918638013">साइटहरूलाई ब्लुटुथ डिभाइसहरू खोज्ने अनुमति नदिइयोस्</translation>
 <translation id="5602586420788540146">नयाँ ट्याब समूहमा खोल्नुहोस्</translation>
-<translation id="5602765853043467355">यो यन्त्रबाट पुस्तक चिन्ह, इतिहास, पासवर्ड र थप कुराहरू खाली गर्नुहोस्</translation>
 <translation id="5605758115928394442">यो व्यक्ति तपाईं नै हो भन्ने सुनिश्चित गर्न तपाईंको फोनमा एउटा सूचना पठाइयो।</translation>
 <translation id="5606849116180480101">{NUM_EXTENSIONS,plural, =1{यो एक्स्टेन्सन ब्लक गरिएको छ}other{यी एक्स्टेन्सन ब्लक गरिएका छन्}}</translation>
 <translation id="560834977503641186">Wi-Fi सिंकका बारेमा थप जान्नुहोस्</translation>
@@ -5777,7 +5775,6 @@
 <translation id="5641648607875312660">स्क्रिनसट इमेज एडिटर</translation>
 <translation id="5642508497713047">CRL हस्ताक्षरकर्ता</translation>
 <translation id="5643321261065707929">सीमा तोकिएको नेटवर्क</translation>
-<translation id="5643620609347735571">खाली गरी जारी राख्नुहोस्</translation>
 <translation id="5646376287012673985">लोकेसन</translation>
 <translation id="5646558797914161501">व्यापारी</translation>
 <translation id="5648021990716966815">माइकको ज्याक</translation>
@@ -7695,7 +7692,6 @@
 <translation id="7241389281993241388">ग्राहक प्रमाणपत्र आयात गर्न कृपया <ph name="TOKEN_NAME" /> मा साइन इन गर्नुहोस्।</translation>
 <translation id="7241763419756062043">खोज्ने र ब्राउज गर्ने सुविधाको गुणस्तर छनौट गर्नुहोस्</translation>
 <translation id="7243092385765551741">पासकी मेटाउने हो?</translation>
-<translation id="7243632151880336635">खाली गरी साइन आउट गर्नुहोस्</translation>
 <translation id="7245162963905242662">Google मा यो पेज खोज्नुहोस्...</translation>
 <translation id="7245628041916450754"><ph name="WIDTH" /> गुणा <ph name="HEIGHT" /> (उत्कृष्ट)</translation>
 <translation id="7246230585855757313">आफ्नो सुरक्षा साँचो पुनः प्रविष्टि गरी फेरि प्रयास गर्नुहोस्</translation>
@@ -8575,7 +8571,6 @@
 <translation id="7925285046818567682"><ph name="HOST_NAME" /> को लागि प्रतिक्षा गर्दै...</translation>
 <translation id="7926423016278357561">यो म थिइन।</translation>
 <translation id="7926975587469166629">कार्डको उपनाम</translation>
-<translation id="7927610604078150317">आकार: <ph name="CHROME_APP_SIZE" /></translation>
 <translation id="7928175190925744466">यो पासवर्ड परिवर्तन गरिसक्नुभयो?</translation>
 <translation id="7929962904089429003">मेनु खोल्नुहोस्</translation>
 <translation id="7930294771522048157">सुरक्षित गरिएका भुक्तानी विधिहरू यहाँ देखिने छन्</translation>
@@ -9224,6 +9219,7 @@
 <translation id="8448729345478502352">तपाईंको स्क्रिनमा भएका वस्तुहरूलाई अझ ठुलो वा सानो पार्नुहोस्</translation>
 <translation id="8449008133205184768">टाँस्नुहोस् र शैली मिलाउनुहोस्</translation>
 <translation id="8449036207308062757">भण्डारणको व्यवस्थापन गर्नुहोस्</translation>
+<translation id="8449347986464073209">मेटाउनुहोस् र साइन आउट गर्नुहोस्</translation>
 <translation id="8449836157089738489">सबै URL नयाँ ट्याब समूहमा खोल्नुहोस्</translation>
 <translation id="8449869326050867919">पासवर्ड सेयर गरिएको छ</translation>
 <translation id="8451512073679317615">सहायक</translation>
diff --git a/chrome/app/resources/generated_resources_nl.xtb b/chrome/app/resources/generated_resources_nl.xtb
index c7205277..5631d61 100644
--- a/chrome/app/resources/generated_resources_nl.xtb
+++ b/chrome/app/resources/generated_resources_nl.xtb
@@ -5022,7 +5022,6 @@
 <translation id="5027550639139316293">Certificaat voor e-mail</translation>
 <translation id="5027562294707732951">Extensie toevoegen</translation>
 <translation id="5028445315206872221">Extensies worden geblokkeerd op deze site</translation>
-<translation id="5029568752722684782">Kopie wissen</translation>
 <translation id="5029873138381728058">Kan VM's niet checken</translation>
 <translation id="503155457707535043">Apps downloaden</translation>
 <translation id="5032430150487044192">Kan geen QR-code maken</translation>
@@ -5716,7 +5715,6 @@
 <translation id="5601823921345337195">Geen toestemming om verbinding te maken met MIDI-apparaten</translation>
 <translation id="5601833336918638013">Niet toestaan dat sites naar bluetooth-apparaten zoeken</translation>
 <translation id="5602586420788540146">Openen in nieuwe tabbladgroep</translation>
-<translation id="5602765853043467355">Bookmarks, geschiedenis, wachtwoorden en meer wissen van dit apparaat</translation>
 <translation id="5605758115928394442">Er is een melding naar je telefoon verstuurd om te bevestigen dat jij het bent.</translation>
 <translation id="5606849116180480101">{NUM_EXTENSIONS,plural, =1{Deze extensie is geblokkeerd}other{Deze extensies zijn geblokkeerd}}</translation>
 <translation id="560834977503641186">Wifi-synchronisatie, meer informatie</translation>
@@ -5766,7 +5764,6 @@
 <translation id="5641648607875312660">Afbeeldingseditor voor screenshots</translation>
 <translation id="5642508497713047">CRL-ondertekenaar</translation>
 <translation id="5643321261065707929">Netwerk met datalimiet</translation>
-<translation id="5643620609347735571">Wissen en doorgaan</translation>
 <translation id="5646376287012673985">Locatie</translation>
 <translation id="5646558797914161501">Zakenman</translation>
 <translation id="5648021990716966815">Microfoonaansluiting</translation>
@@ -7681,7 +7678,6 @@
 <translation id="7241389281993241388">Log in bij <ph name="TOKEN_NAME" /> om het klantcertificaat te importeren.</translation>
 <translation id="7241763419756062043">Kies je zoek- en browsekwaliteit</translation>
 <translation id="7243092385765551741">Toegangssleutel verwijderen?</translation>
-<translation id="7243632151880336635">Wissen en uitloggen</translation>
 <translation id="7245162963905242662">Zoe&amp;ken op deze pagina met Google...</translation>
 <translation id="7245628041916450754"><ph name="WIDTH" /> x <ph name="HEIGHT" /> (beste)</translation>
 <translation id="7246230585855757313">Plaats de beveiligingssleutel opnieuw en probeer het opnieuw.</translation>
@@ -8556,7 +8552,6 @@
 <translation id="7925285046818567682">Wachten op <ph name="HOST_NAME" />...</translation>
 <translation id="7926423016278357561">Dit was ik niet.</translation>
 <translation id="7926975587469166629">Bijnaam kaart</translation>
-<translation id="7927610604078150317">Grootte: <ph name="CHROME_APP_SIZE" /></translation>
 <translation id="7928175190925744466">Heb je dit wachtwoord al gewijzigd?</translation>
 <translation id="7929962904089429003">Het menu openen</translation>
 <translation id="7930294771522048157">Opgeslagen betaalmethoden zie je hier</translation>
@@ -9206,6 +9201,7 @@
 <translation id="8448729345478502352">Items op het scherm kleiner of groter maken</translation>
 <translation id="8449008133205184768">Plakken en stijl aanpassen</translation>
 <translation id="8449036207308062757">Opslag beheren</translation>
+<translation id="8449347986464073209">Verwijderen en uitloggen</translation>
 <translation id="8449836157089738489">Alles openen in nieuwe tabbladgroep</translation>
 <translation id="8449869326050867919">Wachtwoord gedeeld</translation>
 <translation id="8451512073679317615">assistent</translation>
diff --git a/chrome/app/resources/generated_resources_no.xtb b/chrome/app/resources/generated_resources_no.xtb
index 9db3c2ffa..9f8ae860 100644
--- a/chrome/app/resources/generated_resources_no.xtb
+++ b/chrome/app/resources/generated_resources_no.xtb
@@ -5032,7 +5032,6 @@
 <translation id="5027550639139316293">E-postsertifikat</translation>
 <translation id="5027562294707732951">Legg til utvidelsen</translation>
 <translation id="5028445315206872221">Utvidelser er blokkert på dette nettstedet</translation>
-<translation id="5029568752722684782">Slett kopi</translation>
 <translation id="5029873138381728058">Kunne ikke kontrollere VM-er</translation>
 <translation id="503155457707535043">Apper lastes ned</translation>
 <translation id="5032430150487044192">Kan ikke opprette QR-kode</translation>
@@ -5725,7 +5724,6 @@
 <translation id="5601823921345337195">Nettsteder som ikke har lov til å koble til MIDI-enheter</translation>
 <translation id="5601833336918638013">Ikke la nettsteder se etter Bluetooth-enheter</translation>
 <translation id="5602586420788540146">Åpne i ny fanegruppe</translation>
-<translation id="5602765853043467355">Slett bokmerker, logger, passord og annet fra denne enheten</translation>
 <translation id="5605758115928394442">Vi har sendt et varsel til telefonen din for å bekrefte at det er deg.</translation>
 <translation id="5606849116180480101">{NUM_EXTENSIONS,plural, =1{Denne utvidelsen er blokkert}other{Disse utvidelsene er blokkert}}</translation>
 <translation id="560834977503641186">Wifi-synkronisering – finn ut mer</translation>
@@ -5777,7 +5775,6 @@
 <translation id="5641648607875312660">Redigering av skjermdump</translation>
 <translation id="5642508497713047">Signatar for sertifikatopphevelsesliste</translation>
 <translation id="5643321261065707929">Nettverk med datamåling</translation>
-<translation id="5643620609347735571">Slett og fortsett</translation>
 <translation id="5646376287012673985">Posisjon</translation>
 <translation id="5646558797914161501">Forretningsmann</translation>
 <translation id="5648021990716966815">Mikrofonkontakt</translation>
@@ -7695,7 +7692,6 @@
 <translation id="7241389281993241388">Logg på <ph name="TOKEN_NAME" /> for å importere klientsertifikat.</translation>
 <translation id="7241763419756062043">Velg søke- og nettlesingskvalitet</translation>
 <translation id="7243092385765551741">Vil du slette passnøkkelen?</translation>
-<translation id="7243632151880336635">Slett og logg av</translation>
 <translation id="7245162963905242662">Sø&amp;k på denne siden med Google…</translation>
 <translation id="7245628041916450754"><ph name="WIDTH" /> x <ph name="HEIGHT" /> (best)</translation>
 <translation id="7246230585855757313">Sett inn sikkerhetsnøkkelen på nytt, og prøv igjen</translation>
@@ -8573,7 +8569,6 @@
 <translation id="7925285046818567682">Venter på <ph name="HOST_NAME" />...</translation>
 <translation id="7926423016278357561">Dette var ikke meg.</translation>
 <translation id="7926975587469166629">Kallenavn på kortet</translation>
-<translation id="7927610604078150317">Størrelse: <ph name="CHROME_APP_SIZE" /></translation>
 <translation id="7928175190925744466">Har du allerede endret dette passordet?</translation>
 <translation id="7929962904089429003">Åpne menyen</translation>
 <translation id="7930294771522048157">Lagrede betalingsmåter vises her</translation>
@@ -9223,6 +9218,7 @@
 <translation id="8448729345478502352">Gjør elementer på skjermen mindre eller større.</translation>
 <translation id="8449008133205184768">Lim inn og tilpass til stil</translation>
 <translation id="8449036207308062757">Administrer lagring</translation>
+<translation id="8449347986464073209">Slett og logg av</translation>
 <translation id="8449836157089738489">Åpne alle i en ny fanegruppe</translation>
 <translation id="8449869326050867919">Passordet er delt</translation>
 <translation id="8451512073679317615">assistent</translation>
diff --git a/chrome/app/resources/generated_resources_or.xtb b/chrome/app/resources/generated_resources_or.xtb
index b6e18ff8..8b10c71d 100644
--- a/chrome/app/resources/generated_resources_or.xtb
+++ b/chrome/app/resources/generated_resources_or.xtb
@@ -5022,7 +5022,6 @@
 <translation id="5027550639139316293">ଇମେଲ୍ ସାର୍ଟିଫିକେଟ୍</translation>
 <translation id="5027562294707732951">ଏକ୍ସଟେନ୍‌ସନ୍ ଯୋଗ କରନ୍ତୁ</translation>
 <translation id="5028445315206872221">ଏହି ସାଇଟରେ ଏକ୍ସଟେନସନଗୁଡ଼ିକୁ ବ୍ଲକ କରାଯାଇଛି</translation>
-<translation id="5029568752722684782">କପି ଖାଲି କରନ୍ତୁ</translation>
 <translation id="5029873138381728058">VM ଯାଞ୍ଚ କରିବାରେ ବିଫଳ ହୋଇଛି</translation>
 <translation id="503155457707535043">ଆପଗୁଡ଼ିକ ଡାଉନଲୋଡ୍ ହେଉଛି</translation>
 <translation id="5032430150487044192">QR କୋଡ୍ ତିଆରି କରାଯାଇପାରିବ ନାହିଁ</translation>
@@ -5716,7 +5715,6 @@
 <translation id="5601823921345337195">MIDI ଡିଭାଇସଗୁଡ଼ିକ ସହିତ ସଂଯୋଗ କରିବାକୁ ଅନୁମତି ଦିଆଯାଇନାହିଁ</translation>
 <translation id="5601833336918638013">ବ୍ଲୁଟୁଥ ଡିଭାଇସଗୁଡ଼ିକୁ ଖୋଜିବା ପାଇଁ ସାଇଟଗୁଡ଼ିକୁ ଅନୁମତି ଦିଅନ୍ତୁ ନାହିଁ</translation>
 <translation id="5602586420788540146">ନୂଆ ଟାବ ଗ୍ରୁପରେ ଖୋଲନ୍ତୁ</translation>
-<translation id="5602765853043467355">ଏହି ଡିଭାଇସ୍‌ରୁ ବୁକ୍‌ମାର୍କ, ଇତିବୃତ୍ତି, ପାସ୍‌ୱର୍ଡ ଏବଂ ଆହୁରି ଅନେକ କିଛି ଖାଲି କରନ୍ତୁ</translation>
 <translation id="5605758115928394442">ଏହା ଆପଣ ବୋଲି ସୁନିଶ୍ଚିତ କରିବା ପାଇଁ ଆପଣଙ୍କ ଫୋନ୍‌କୁ ଗୋଟିଏ ବିଜ୍ଞପ୍ତି ପଠାଯାଇଥିଲା।</translation>
 <translation id="5606849116180480101">{NUM_EXTENSIONS,plural, =1{ଏହି ଏକ୍ସଟେନସନକୁ ବ୍ଲକ୍ କରାଯାଇଛି}other{ଏହି ଏକ୍ସଟେନସନଗୁଡ଼ିକୁ ବ୍ଲକ୍ କରାଯାଇଛି}}</translation>
 <translation id="560834977503641186">ୱାଇ-ଫାଇ ସିଙ୍କ୍, ଅଧିକ ଜାଣନ୍ତୁ</translation>
@@ -5766,7 +5764,6 @@
 <translation id="5641648607875312660">ସ୍କ୍ରିନସଟ ଇମେଜ ଏଡିଟର</translation>
 <translation id="5642508497713047">CRL ସ୍ୱାକ୍ଷରକାରୀ</translation>
 <translation id="5643321261065707929">ମିଟର ହୋଇଥିବା ନେଟୱାର୍କ</translation>
-<translation id="5643620609347735571">ଖାଲି କରନ୍ତୁ ଏବଂ ଜାରି ରଖନ୍ତୁ</translation>
 <translation id="5646376287012673985">ଅବସ୍ଥାନ</translation>
 <translation id="5646558797914161501">ବ୍ୟବସାୟୀ</translation>
 <translation id="5648021990716966815">ମାଇକ୍ ଜ୍ୟାକ୍</translation>
@@ -7684,7 +7681,6 @@
 <translation id="7241389281993241388">କ୍ଲାଏଣ୍ଟ ସାର୍ଟିଫିକେଟ୍ ଇମ୍ପୋର୍ଟ କରିବାକୁ ଦୟାକରି <ph name="TOKEN_NAME" />କୁ ସାଇନ୍ ଇନ୍ କରନ୍ତୁ।</translation>
 <translation id="7241763419756062043">ଆପଣଙ୍କ ସନ୍ଧାନ ଏବଂ ବ୍ରାଉଜିଂ ଗୁଣବତ୍ତା ବାଛନ୍ତୁ</translation>
 <translation id="7243092385765551741">ପାସକୀ ଡିଲିଟ କରିବେ?</translation>
-<translation id="7243632151880336635">ଖାଲି କରନ୍ତୁ ଏବଂ ସାଇନ୍ ଆଉଟ୍ କରନ୍ତୁ</translation>
 <translation id="7245162963905242662">Google ମାଧ୍ୟମରେ ଏହି ପୃଷ୍ଠାକୁ ସର୍ଚ୍ଚ କରନ୍ତୁ...</translation>
 <translation id="7245628041916450754"><ph name="WIDTH" /> x <ph name="HEIGHT" /> (ଶ୍ରେଷ୍ଠ)</translation>
 <translation id="7246230585855757313">ଆପଣଙ୍କର ସୁରକ୍ଷା କୀ’କୁ ପୁଣି ଭର୍ତ୍ତି କରନ୍ତୁ ଏବଂ ପୁଣି ଚେଷ୍ଟା କରନ୍ତୁ</translation>
@@ -8562,7 +8558,6 @@
 <translation id="7925285046818567682"><ph name="HOST_NAME" />ନିମନ୍ତେ ଅପେକ୍ଷାରତ...</translation>
 <translation id="7926423016278357561">ଏହା ମୁଁ ନଥିଲି।</translation>
 <translation id="7926975587469166629">କାର୍ଡର ଡାକନାମ</translation>
-<translation id="7927610604078150317">ସାଇଜ: <ph name="CHROME_APP_SIZE" /></translation>
 <translation id="7928175190925744466">ଏହି ପାସୱାର୍ଡ ପରିବର୍ତ୍ତନ କରିସାରିଛନ୍ତି?</translation>
 <translation id="7929962904089429003">ମେନୁ ଖୋଲନ୍ତୁ</translation>
 <translation id="7930294771522048157">ଏଠାରେ ସେଭ୍‍ କରାଯାଇଥିବା ପେମେଣ୍ଟ ପଦ୍ଧତି ଦେଖାଯିବ</translation>
@@ -9210,6 +9205,7 @@
 <translation id="8448729345478502352">ଆପଣଙ୍କ ସ୍କ୍ରିନ୍‍‍ରେ ଆଇଟମ୍‍ଗୁଡ଼ିକୁ ଛୋଟ କିମ୍ୱା ବଡ଼ କରନ୍ତୁ</translation>
 <translation id="8449008133205184768">ପେଷ୍ଟ କରନ୍ତୁ ଏବଂ ଷ୍ଟାଇଲ୍ ମେଳ କରନ୍ତୁ</translation>
 <translation id="8449036207308062757">ଷ୍ଟୋରେଜ୍‌ ପରିଚାଳନା କରନ୍ତୁ</translation>
+<translation id="8449347986464073209">ଡିଲିଟ କରି ସାଇନ ଆଉଟ କରନ୍ତୁ</translation>
 <translation id="8449836157089738489">ସମସ୍ତ URLକୁ ନୂଆ ଟାବ ଗ୍ରୁପରେ ଖୋଲନ୍ତୁ</translation>
 <translation id="8449869326050867919">ପାସୱାର୍ଡ ସେୟାର କରାଯାଇଛି</translation>
 <translation id="8451512073679317615">Assistant</translation>
diff --git a/chrome/app/resources/generated_resources_pa.xtb b/chrome/app/resources/generated_resources_pa.xtb
index 28ac078..9c4ba4b 100644
--- a/chrome/app/resources/generated_resources_pa.xtb
+++ b/chrome/app/resources/generated_resources_pa.xtb
@@ -5040,7 +5040,6 @@
 <translation id="5027550639139316293">ਈਮੇਲ ਪ੍ਰਮਾਣ-ਪੱਤਰ</translation>
 <translation id="5027562294707732951">ਐਕਸਟੈਂਸ਼ਨ ਜੋੜੋ</translation>
 <translation id="5028445315206872221">ਇਸ ਸਾਈਟ 'ਤੇ ਐਕਸਟੈਂਸ਼ਨਾਂ ਨੂੰ ਬਲਾਕ ਕੀਤਾ ਗਿਆ ਹੈ</translation>
-<translation id="5029568752722684782">ਕਾਪੀ ਹਟਾਓ</translation>
 <translation id="5029873138381728058">VM ਲਈ ਜਾਂਚ ਕਰਨਾ ਅਸਫਲ ਰਿਹਾ</translation>
 <translation id="503155457707535043">ਐਪਾਂ ਡਾਊਨਲੋਡ ਕੀਤੀਆਂ ਜਾ ਰਹੀਆਂ ਹਨ</translation>
 <translation id="5032430150487044192">QR ਕੋਡ ਬਣਾਇਆ ਨਹੀਂ ਜਾ ਸਕਦਾ</translation>
@@ -5734,7 +5733,6 @@
 <translation id="5601823921345337195">MIDI ਡੀਵਾਈਸਾਂ ਨਾਲ ਕਨੈਕਟ ਕਰਨ ਦੀ ਇਜਾਜ਼ਤ ਨਹੀਂ ਹੈ</translation>
 <translation id="5601833336918638013">ਸਾਈਟਾਂ ਨੂੰ ਬਲੂਟੁੱਥ ਡੀਵਾਈਸਾਂ ਦੀ ਖੋਜ ਕਰਨ ਦੀ ਆਗਿਆ ਨਾ ਦਿਓ</translation>
 <translation id="5602586420788540146">ਨਵੇਂ ਟੈਬ ਗਰੁੱਪ ਵਿੱਚ ਖੋਲ੍ਹੋ</translation>
-<translation id="5602765853043467355">ਇਸ ਡੀਵਾਈਸ ਵਿੱਚੋਂ ਬੁੱਕਮਾਰਕ, ਇਤਿਹਾਸ, ਪਾਸਵਰਡ ਅਤੇ ਹੋਰ ਚੀਜ਼ਾਂ ਨੂੰ ਕਲੀਅਰ ਕਰੋ</translation>
 <translation id="5605758115928394442">ਤੁਹਾਡੀ ਪਛਾਣ ਦੀ ਪੁਸ਼ਟੀ ਕਰਨ ਲਈ ਇੱਕ ਸੂਚਨਾ ਤੁਹਾਡੇ ਫ਼ੋਨ 'ਤੇ ਭੇਜੀ ਗਈ।</translation>
 <translation id="5606849116180480101">{NUM_EXTENSIONS,plural, =1{ਇਸ ਐਕਸਟੈਂਸ਼ਨ ਨੂੰ ਬਲਾਕ ਕੀਤਾ ਗਿਆ ਹੈ}one{ਇਸ ਐਕਸਟੈਂਸ਼ਨ ਨੂੰ ਬਲਾਕ ਕੀਤਾ ਗਿਆ ਹੈ}other{ਇਨ੍ਹਾਂ ਐਕਸਟੈਂਸ਼ਨਾਂ ਨੂੰ ਬਲਾਕ ਕੀਤਾ ਗਿਆ ਹੈ}}</translation>
 <translation id="560834977503641186">ਵਾਈ-ਫਾਈ ਸਿੰਕ, ਹੋਰ ਜਾਣੋ</translation>
@@ -5786,7 +5784,6 @@
 <translation id="5641648607875312660">ਸਕ੍ਰੀਨਸ਼ਾਟ ਚਿੱਤਰ ਸੰਪਾਦਕ</translation>
 <translation id="5642508497713047">CRL ਸਾਈਨਰ</translation>
 <translation id="5643321261065707929">ਮੀਟਰਡ ਨੈੱਟਵਰਕ</translation>
-<translation id="5643620609347735571">ਕਲੀਅਰ ਕਰਕੇ ਜਾਰੀ ਰੱਖੋ</translation>
 <translation id="5646376287012673985">ਨਿਰਧਾਰਿਤ ਸਥਾਨ</translation>
 <translation id="5646558797914161501">ਕਾਰੋਬਾਰੀ</translation>
 <translation id="5648021990716966815">ਮਾਈਕ ਜੈਕ</translation>
@@ -7706,7 +7703,6 @@
 <translation id="7241389281993241388">ਕਿਰਪਾ ਕਰਕੇ ਕਲਾਈਂਟ ਪ੍ਰਮਾਣ-ਪੱਤਰ ਆਯਾਤ ਕਰਨ ਲਈ <ph name="TOKEN_NAME" /> 'ਤੇ ਸਾਈਨ-ਇਨ ਕਰੋ।</translation>
 <translation id="7241763419756062043">ਆਪਣੀ ਖੋਜ ਅਤੇ ਬ੍ਰਾਊਜ਼ਿੰਗ ਦੀ ਕੁਆਲਿਟੀ ਚੁਣੋ</translation>
 <translation id="7243092385765551741">ਪਾਸਕੀ ਮਿਟਾਉਣਾ ਚਾਹੁੰਦੇ ਹੋ?</translation>
-<translation id="7243632151880336635">ਸਾਫ਼ ਕਰੋ ਅਤੇ ਸਾਈਨ-ਆਊਟ ਕਰੋ</translation>
 <translation id="7245162963905242662">Google ਨਾਲ ਇਹ ਪੰਨਾ ਖੋ&amp;ਜੋ...</translation>
 <translation id="7245628041916450754"><ph name="WIDTH" /> x <ph name="HEIGHT" /> (ਸਭ ਤੋਂ ਵਧੀਆ)</translation>
 <translation id="7246230585855757313">ਆਪਣੀ ਸੁਰੱਖਿਆ ਕੁੰਜੀ ਨੂੰ ਮੁੜ-ਪਾਓ ਅਤੇ ਦੁਬਾਰਾ ਕੋਸ਼ਿਸ਼ ਕਰੋ</translation>
@@ -8583,7 +8579,6 @@
 <translation id="7925285046818567682"><ph name="HOST_NAME" /> ਨੂੰ ਉਡੀਕ ਰਿਹਾ ਹੈ...</translation>
 <translation id="7926423016278357561">ਇਹ ਮੈਂ ਨਹੀਂ ਸੀ।</translation>
 <translation id="7926975587469166629">ਕਾਰਡ ਦਾ ਉਪਨਾਮ</translation>
-<translation id="7927610604078150317">ਆਕਾਰ: <ph name="CHROME_APP_SIZE" /></translation>
 <translation id="7928175190925744466">ਕੀ ਪਹਿਲਾਂ ਹੀ ਇਹ ਪਾਸਵਰਡ ਬਦਲ ਦਿੱਤਾ ਹੈ?</translation>
 <translation id="7929962904089429003">ਮੀਨੂ ਖੋਲ੍ਹੋ</translation>
 <translation id="7930294771522048157">ਰੱਖਿਅਤ ਕੀਤੀਆਂ ਭੁਗਤਾਨ ਵਿਧੀਆਂ ਇੱਥੇ ਦਿਖਾਈ ਦੇਣਗੀਆਂ</translation>
@@ -9232,6 +9227,7 @@
 <translation id="8448729345478502352">ਆਪਣੀ ਸਕ੍ਰੀਨ 'ਤੇ ਆਈਟਮਾਂ ਨੂੰ ਛੋਟਾ ਜਾਂ ਵੱਡਾ ਕਰੋ</translation>
 <translation id="8449008133205184768">ਪੇਸਟ ਅਤੇ ਮਿਲਾਨ ਸਟਾਈਲ</translation>
 <translation id="8449036207308062757">ਸਟੋਰੇਜ ਦਾ ਪ੍ਰਬੰਧਨ ਕਰੋ</translation>
+<translation id="8449347986464073209">ਮਿਟਾਓ ਅਤੇ ਸਾਈਨ-ਆਊਟ ਕਰੋ</translation>
 <translation id="8449836157089738489">ਸਾਰਿਆਂ ਨੂੰ ਨਵੇਂ ਟੈਬ ਗਰੁੱਪ ਵਿੱਚ ਖੋਲ੍ਹੋ</translation>
 <translation id="8449869326050867919">ਪਾਸਵਰਡ ਸਾਂਝਾ ਕੀਤਾ ਗਿਆ</translation>
 <translation id="8451512073679317615">ਸਹਾਇਕ</translation>
diff --git a/chrome/app/resources/generated_resources_pl.xtb b/chrome/app/resources/generated_resources_pl.xtb
index 6f8ab3d..6163e0b4 100644
--- a/chrome/app/resources/generated_resources_pl.xtb
+++ b/chrome/app/resources/generated_resources_pl.xtb
@@ -5008,7 +5008,6 @@
 <translation id="5027550639139316293">Certyfikat poczty e-mail</translation>
 <translation id="5027562294707732951">Dodaj rozszerzenie</translation>
 <translation id="5028445315206872221">Rozszerzenia są zablokowane w tej witrynie</translation>
-<translation id="5029568752722684782">Usuń kopię</translation>
 <translation id="5029873138381728058">Nie udało się sprawdzić maszyn wirtualnych</translation>
 <translation id="503155457707535043">Pobieram aplikacje</translation>
 <translation id="5032430150487044192">Nie udało się utworzyć kodu QR</translation>
@@ -5701,7 +5700,6 @@
 <translation id="5601823921345337195">Nie zezwolono na łączenie się z urządzeniami MIDI</translation>
 <translation id="5601833336918638013">Nie zezwalaj witrynom na wyszukiwanie urządzeń Bluetooth</translation>
 <translation id="5602586420788540146">Otwórz w nowej grupie kart</translation>
-<translation id="5602765853043467355">Usuń z tego urządzenia zakładki, historię, hasła i inne informacje</translation>
 <translation id="5605758115928394442">Wysłaliśmy powiadomienie na Twój telefon, by potwierdzić, że to Ty.</translation>
 <translation id="5606849116180480101">{NUM_EXTENSIONS,plural, =1{To rozszerzenie jest zablokowane}few{Te rozszerzenia są zablokowane}many{Te rozszerzenia są zablokowane}other{Te rozszerzenia są zablokowane}}</translation>
 <translation id="560834977503641186">Synchronizacja Wi-Fi, więcej informacji</translation>
@@ -5753,7 +5751,6 @@
 <translation id="5641648607875312660">Edytor obrazów zrzutu ekranu</translation>
 <translation id="5642508497713047">Podmiot podpisujący listę CRL</translation>
 <translation id="5643321261065707929">Sieć z pomiarem użycia danych</translation>
-<translation id="5643620609347735571">Usuń i kontynuuj</translation>
 <translation id="5646376287012673985">Lokalizacja</translation>
 <translation id="5646558797914161501">Biznesmen</translation>
 <translation id="5648021990716966815">Gniazdo mikrofonu</translation>
@@ -7673,7 +7670,6 @@
 <translation id="7241389281993241388">Zaloguj się do urządzenia <ph name="TOKEN_NAME" />, aby zaimportować certyfikat klienta.</translation>
 <translation id="7241763419756062043">Wybierz jakość wyszukiwania i przeglądania</translation>
 <translation id="7243092385765551741">Usunąć klucz dostępu?</translation>
-<translation id="7243632151880336635">Wyczyść i wyloguj</translation>
 <translation id="7245162963905242662">Prze&amp;szukaj tę stronę za pomocą Google…</translation>
 <translation id="7245628041916450754"><ph name="WIDTH" /> x <ph name="HEIGHT" /> (najlepsza)</translation>
 <translation id="7246230585855757313">Ponownie włóż klucz bezpieczeństwa i spróbuj jeszcze raz</translation>
@@ -8550,7 +8546,6 @@
 <translation id="7925285046818567682">Czekam na <ph name="HOST_NAME" />...</translation>
 <translation id="7926423016278357561">To nie ja.</translation>
 <translation id="7926975587469166629">Nazwa karty</translation>
-<translation id="7927610604078150317">Rozmiar: <ph name="CHROME_APP_SIZE" /></translation>
 <translation id="7928175190925744466">Hasło zostało już zmienione?</translation>
 <translation id="7929962904089429003">Otwórz menu</translation>
 <translation id="7930294771522048157">Tutaj pojawią się zapisane formy płatności</translation>
@@ -9200,6 +9195,7 @@
 <translation id="8448729345478502352">Powiększ lub pomniejsz elementy na ekranie</translation>
 <translation id="8449008133205184768">Wklej i dopasuj do stylu</translation>
 <translation id="8449036207308062757">Zarządzaj miejscem na dane</translation>
+<translation id="8449347986464073209">Usuń i wyloguj się</translation>
 <translation id="8449836157089738489">Otwórz wszystko w nowej grupie kart</translation>
 <translation id="8449869326050867919">Hasło udostępnione</translation>
 <translation id="8451512073679317615">Asystent</translation>
diff --git a/chrome/app/resources/generated_resources_pt-BR.xtb b/chrome/app/resources/generated_resources_pt-BR.xtb
index 5a6fc020..0e8661cb 100644
--- a/chrome/app/resources/generated_resources_pt-BR.xtb
+++ b/chrome/app/resources/generated_resources_pt-BR.xtb
@@ -5041,7 +5041,6 @@
 <translation id="5027550639139316293">Certificado de e-mail</translation>
 <translation id="5027562294707732951">Adicionar extensão</translation>
 <translation id="5028445315206872221">As extensões estão bloqueadas neste site</translation>
-<translation id="5029568752722684782">Limpar cópia</translation>
 <translation id="5029873138381728058">Falha ao verificar as VMs</translation>
 <translation id="503155457707535043">Fazendo o download dos apps</translation>
 <translation id="5032430150487044192">Não é possível criar o código QR</translation>
@@ -5735,7 +5734,6 @@
 <translation id="5601823921345337195">Bloquear a conexão a dispositivos MIDI</translation>
 <translation id="5601833336918638013">Não permitir que os sites procurem dispositivos Bluetooth</translation>
 <translation id="5602586420788540146">Abrir em um novo grupo de guias</translation>
-<translation id="5602765853043467355">Limpar favoritos, histórico, senhas e mais deste dispositivo.</translation>
 <translation id="5605758115928394442">Uma notificação foi enviada ao seu smartphone para confirmar sua identidade.</translation>
 <translation id="5606849116180480101">{NUM_EXTENSIONS,plural, =1{A extensão está bloqueada}one{A extensão está bloqueada}other{As extensões estão bloqueadas}}</translation>
 <translation id="560834977503641186">Saiba mais sobre o Sincronizar Wi-Fi</translation>
@@ -5788,7 +5786,6 @@
 <translation id="5641648607875312660">Editor de imagem da captura de tela</translation>
 <translation id="5642508497713047">Signatário de lista de certificados revogados</translation>
 <translation id="5643321261065707929">Rede limitada</translation>
-<translation id="5643620609347735571">Limpar e continuar</translation>
 <translation id="5646376287012673985">Local</translation>
 <translation id="5646558797914161501">Empresário</translation>
 <translation id="5648021990716966815">Entrada para microfone</translation>
@@ -7708,7 +7705,6 @@
 <translation id="7241389281993241388">Faça login no <ph name="TOKEN_NAME" /> para importar o certificado do cliente.</translation>
 <translation id="7241763419756062043">Escolha a qualidade da navegação e da pesquisa</translation>
 <translation id="7243092385765551741">Excluir a chave de acesso?</translation>
-<translation id="7243632151880336635">Limpar e sair</translation>
 <translation id="7245162963905242662">Procurar nesta página com o Google...</translation>
 <translation id="7245628041916450754"><ph name="WIDTH" /> x <ph name="HEIGHT" /> (Melhor)</translation>
 <translation id="7246230585855757313">Reinsira sua chave de segurança e tente novamente</translation>
@@ -8586,7 +8582,6 @@
 <translation id="7925285046818567682">Aguardando <ph name="HOST_NAME" />...</translation>
 <translation id="7926423016278357561">Não fui eu.</translation>
 <translation id="7926975587469166629">Apelido do cartão</translation>
-<translation id="7927610604078150317">Tamanho: <ph name="CHROME_APP_SIZE" /></translation>
 <translation id="7928175190925744466">Já mudou essa senha?</translation>
 <translation id="7929962904089429003">Abrir o menu</translation>
 <translation id="7930294771522048157">As formas de pagamento salvas serão exibidas aqui</translation>
@@ -9236,6 +9231,7 @@
 <translation id="8448729345478502352">Torne os itens na tela menores ou maiores</translation>
 <translation id="8449008133205184768">Colar com o Mesmo Estilo</translation>
 <translation id="8449036207308062757">Gerenciar armazenamento</translation>
+<translation id="8449347986464073209">Excluir e sair</translation>
 <translation id="8449836157089738489">Abrir tudo em um novo grupo de guias</translation>
 <translation id="8449869326050867919">Senha compartilhada</translation>
 <translation id="8451512073679317615">assistente</translation>
diff --git a/chrome/app/resources/generated_resources_pt-PT.xtb b/chrome/app/resources/generated_resources_pt-PT.xtb
index cc7d2fe..347c8ad 100644
--- a/chrome/app/resources/generated_resources_pt-PT.xtb
+++ b/chrome/app/resources/generated_resources_pt-PT.xtb
@@ -5025,7 +5025,6 @@
 <translation id="5027550639139316293">Certificado de email</translation>
 <translation id="5027562294707732951">Adicionar extensão</translation>
 <translation id="5028445315206872221">As extensões estão bloqueadas neste site</translation>
-<translation id="5029568752722684782">Limpar cópia</translation>
 <translation id="5029873138381728058">Falha ao verificar VMs</translation>
 <translation id="503155457707535043">A transferir aplicações…</translation>
 <translation id="5032430150487044192">Não é possível criar o código QR</translation>
@@ -5719,7 +5718,6 @@
 <translation id="5601823921345337195">Sem autorização para estabelecer ligação a dispositivos MIDI</translation>
 <translation id="5601833336918638013">Não permitir que os sites procurem dispositivos Bluetooth</translation>
 <translation id="5602586420788540146">Abra num novo grupo de separadores</translation>
-<translation id="5602765853043467355">Limpar os marcadores, o histórico, as palavras-passe e mais dados deste dispositivo</translation>
 <translation id="5605758115928394442">Foi enviada uma notificação para o seu telemóvel para confirmar a sua identidade.</translation>
 <translation id="5606849116180480101">{NUM_EXTENSIONS,plural, =1{Esta extensão está bloqueada}other{Estas extensões estão bloqueadas}}</translation>
 <translation id="560834977503641186">Sync Wi-Fi, saiba mais</translation>
@@ -5772,7 +5770,6 @@
 <translation id="5641648607875312660">Editor de imagens de capturas de ecrã</translation>
 <translation id="5642508497713047">Signatário CRL</translation>
 <translation id="5643321261065707929">Rede com acesso limitado</translation>
-<translation id="5643620609347735571">Limpar e continuar</translation>
 <translation id="5646376287012673985">Localização</translation>
 <translation id="5646558797914161501">Homem de negócios</translation>
 <translation id="5648021990716966815">Entrada para microfone</translation>
@@ -7690,7 +7687,6 @@
 <translation id="7241389281993241388">Inicie sessão no <ph name="TOKEN_NAME" /> para importar o certificado de cliente.</translation>
 <translation id="7241763419756062043">Escolha a qualidade da pesquisa e navegação</translation>
 <translation id="7243092385765551741">Eliminar a chave de acesso?</translation>
-<translation id="7243632151880336635">Limpar e terminar sessão</translation>
 <translation id="7245162963905242662">Pesq&amp;uisar esta página com o Google…</translation>
 <translation id="7245628041916450754"><ph name="WIDTH" /> x <ph name="HEIGHT" /> (a melhor)</translation>
 <translation id="7246230585855757313">Volte a inserir a chave de segurança e tente novamente.</translation>
@@ -8568,7 +8564,6 @@
 <translation id="7925285046818567682">A aguardar por <ph name="HOST_NAME" />...</translation>
 <translation id="7926423016278357561">Não fui eu.</translation>
 <translation id="7926975587469166629">Alcunha do cartão</translation>
-<translation id="7927610604078150317">Tamanho: <ph name="CHROME_APP_SIZE" /></translation>
 <translation id="7928175190925744466">Já alterou esta palavra-passe?</translation>
 <translation id="7929962904089429003">Abrir o menu</translation>
 <translation id="7930294771522048157">Os métodos de pagamento guardados são apresentados aqui.</translation>
@@ -9218,6 +9213,7 @@
 <translation id="8448729345478502352">Diminuir ou aumentar os elementos no ecrã</translation>
 <translation id="8449008133205184768">Colar e fazer corresponder estilo</translation>
 <translation id="8449036207308062757">Gerir armazenamento</translation>
+<translation id="8449347986464073209">Eliminar e terminar sessão</translation>
 <translation id="8449836157089738489">Abrir tudo num novo grupo de separadores</translation>
 <translation id="8449869326050867919">Palavra-passe partilhada</translation>
 <translation id="8451512073679317615">assistente</translation>
diff --git a/chrome/app/resources/generated_resources_ro.xtb b/chrome/app/resources/generated_resources_ro.xtb
index 84955e2..7bba867 100644
--- a/chrome/app/resources/generated_resources_ro.xtb
+++ b/chrome/app/resources/generated_resources_ro.xtb
@@ -5025,7 +5025,6 @@
 <translation id="5027550639139316293">Certificat pentru e-mail</translation>
 <translation id="5027562294707732951">Adaugă extensia</translation>
 <translation id="5028445315206872221">Extensiile sunt blocate pe acest site</translation>
-<translation id="5029568752722684782">Șterge copia</translation>
 <translation id="5029873138381728058">Nu s-au putut verifica mașinile virtuale</translation>
 <translation id="503155457707535043">Aplicațiile se descarcă</translation>
 <translation id="5032430150487044192">Nu s-a putut crea codul QR</translation>
@@ -5719,7 +5718,6 @@
 <translation id="5601823921345337195">Nu au permisiunea de a se conecta la dispozitive MIDI</translation>
 <translation id="5601833336918638013">Nu permite site-urilor să caute dispozitive Bluetooth</translation>
 <translation id="5602586420788540146">Deschide într-un nou grup de file</translation>
-<translation id="5602765853043467355">Șterge marcajele, istoricul, parolele și altele de pe acest dispozitiv</translation>
 <translation id="5605758115928394442">Ți s-a trimis o notificare pe telefon pentru a-ți confirma identitatea.</translation>
 <translation id="5606849116180480101">{NUM_EXTENSIONS,plural, =1{Extensia este blocată}few{Extensiile sunt blocate}other{Extensiile sunt blocate}}</translation>
 <translation id="560834977503641186">Sincronizare Wi-Fi, află mai multe</translation>
@@ -5771,7 +5769,6 @@
 <translation id="5641648607875312660">Editor de capturi de ecran</translation>
 <translation id="5642508497713047">Semnatar CRL</translation>
 <translation id="5643321261065707929">Rețea contorizată</translation>
-<translation id="5643620609347735571">Șterge și continuă</translation>
 <translation id="5646376287012673985">Locație</translation>
 <translation id="5646558797914161501">Om de afaceri</translation>
 <translation id="5648021990716966815">Mufă pentru microfon</translation>
@@ -7691,7 +7688,6 @@
 <translation id="7241389281993241388">Conectează-te la <ph name="TOKEN_NAME" /> pentru a importa certificatul client.</translation>
 <translation id="7241763419756062043">Îmbunătățește calitatea căutării și a navigării</translation>
 <translation id="7243092385765551741">Ștergi cheia de acces?</translation>
-<translation id="7243632151880336635">Șterge și deconectează-te</translation>
 <translation id="7245162963905242662">Caut&amp;ă această pagină pe Google...</translation>
 <translation id="7245628041916450754"><ph name="WIDTH" /> x <ph name="HEIGHT" /> (optimă)</translation>
 <translation id="7246230585855757313">Reintrodu cheia de securitate și încearcă din nou</translation>
@@ -8569,7 +8565,6 @@
 <translation id="7925285046818567682">Se așteaptă <ph name="HOST_NAME" />...</translation>
 <translation id="7926423016278357561">Nu am fost eu.</translation>
 <translation id="7926975587469166629">Pseudonimul cardului</translation>
-<translation id="7927610604078150317">Dimensiune: <ph name="CHROME_APP_SIZE" /></translation>
 <translation id="7928175190925744466">Ai schimbat deja parola?</translation>
 <translation id="7929962904089429003">Deschide meniul</translation>
 <translation id="7930294771522048157">Metodele de plată salvate vor fi afișate aici</translation>
@@ -9219,6 +9214,7 @@
 <translation id="8448729345478502352">Micșorează sau mărește elementele de pe ecran</translation>
 <translation id="8449008133205184768">Inserează și potrivește stilul</translation>
 <translation id="8449036207308062757">Gestionează stocarea</translation>
+<translation id="8449347986464073209">Șterge și deconectează-te</translation>
 <translation id="8449836157089738489">Deschideți-le pe toate într-un nou grup de file</translation>
 <translation id="8449869326050867919">S-a permis accesul la parolă</translation>
 <translation id="8451512073679317615">asistent</translation>
diff --git a/chrome/app/resources/generated_resources_ru.xtb b/chrome/app/resources/generated_resources_ru.xtb
index 03957f2d..d05c9b9 100644
--- a/chrome/app/resources/generated_resources_ru.xtb
+++ b/chrome/app/resources/generated_resources_ru.xtb
@@ -5026,7 +5026,6 @@
 <translation id="5027550639139316293">Сертификат электронной почты</translation>
 <translation id="5027562294707732951">Установить расширение</translation>
 <translation id="5028445315206872221">Расширения заблокированы на этом сайте</translation>
-<translation id="5029568752722684782">Удалить данные</translation>
 <translation id="5029873138381728058">Не удалось проверить виртуальные машины.</translation>
 <translation id="503155457707535043">Скачивание приложений</translation>
 <translation id="5032430150487044192">Не удалось создать QR-код.</translation>
@@ -5720,7 +5719,6 @@
 <translation id="5601823921345337195">Запретить сайтам подключаться к MIDI-устройствам</translation>
 <translation id="5601833336918638013">Запретить сайтам поиск устройств Bluetooth</translation>
 <translation id="5602586420788540146">Открыть в новой группе вкладок</translation>
-<translation id="5602765853043467355">Удалить с устройства закладки, пароли, данные о работе в браузере и т. д.</translation>
 <translation id="5605758115928394442">На ваш телефон отправлено уведомление для подтверждения личности.</translation>
 <translation id="5606849116180480101">{NUM_EXTENSIONS,plural, =1{Это расширение заблокировано}one{Эти расширения заблокированы}few{Эти расширения заблокированы}many{Эти расширения заблокированы}other{Эти расширения заблокированы}}</translation>
 <translation id="560834977503641186">Узнать больше о функции "Синхронизация Wi-Fi"</translation>
@@ -5772,7 +5770,6 @@
 <translation id="5641648607875312660">Редактор скриншотов</translation>
 <translation id="5642508497713047">Сторона, подписавшая список отзыва сертификатов</translation>
 <translation id="5643321261065707929">Сеть с тарификацией</translation>
-<translation id="5643620609347735571">Удалить и продолжить</translation>
 <translation id="5646376287012673985">Местоположение</translation>
 <translation id="5646558797914161501">Бизнесмен</translation>
 <translation id="5648021990716966815">Микрофонный разъем</translation>
@@ -7696,7 +7693,6 @@
 <translation id="7241389281993241388">Войдите в <ph name="TOKEN_NAME" />, чтобы импортировать сертификат клиента.</translation>
 <translation id="7241763419756062043">Настройте поиск и просмотр</translation>
 <translation id="7243092385765551741">Удалить ключ доступа?</translation>
-<translation id="7243632151880336635">Стереть данные и выйти</translation>
 <translation id="7245162963905242662">Найт&amp;и эту страницу в Google</translation>
 <translation id="7245628041916450754"><ph name="WIDTH" /> x <ph name="HEIGHT" /> (оптимальное)</translation>
 <translation id="7246230585855757313">Вставьте электронный ключ ещё раз и повторите попытку.</translation>
@@ -8573,7 +8569,6 @@
 <translation id="7925285046818567682">Ожидание <ph name="HOST_NAME" />...</translation>
 <translation id="7926423016278357561">Это не я</translation>
 <translation id="7926975587469166629">Название карты</translation>
-<translation id="7927610604078150317">Размер: <ph name="CHROME_APP_SIZE" /></translation>
 <translation id="7928175190925744466">Уже сменили пароль?</translation>
 <translation id="7929962904089429003">Открыть меню</translation>
 <translation id="7930294771522048157">Здесь появятся сохраненные способы оплаты.</translation>
@@ -9223,6 +9218,7 @@
 <translation id="8448729345478502352">Уменьшить или увеличить объекты на экране</translation>
 <translation id="8449008133205184768">Вставить с соблюдением стиля</translation>
 <translation id="8449036207308062757">Управление хранилищем</translation>
+<translation id="8449347986464073209">Удалить и выйти</translation>
 <translation id="8449836157089738489">Открыть все URL в новой группе вкладок</translation>
 <translation id="8449869326050867919">Доступ к паролю предоставлен</translation>
 <translation id="8451512073679317615">Ассистент</translation>
diff --git a/chrome/app/resources/generated_resources_si.xtb b/chrome/app/resources/generated_resources_si.xtb
index 201d13e5..4ec086fa 100644
--- a/chrome/app/resources/generated_resources_si.xtb
+++ b/chrome/app/resources/generated_resources_si.xtb
@@ -5039,7 +5039,6 @@
 <translation id="5027550639139316293">ඊමේල් සහතිකය</translation>
 <translation id="5027562294707732951">දිගුව එක් කරන්න</translation>
 <translation id="5028445315206872221">මෙම අඩවියෙහි දිගු අවහිර කර ඇත</translation>
-<translation id="5029568752722684782">පැහැදිලි පිටපත</translation>
 <translation id="5029873138381728058">VM පරීක්ෂා කිරීම අසාර්ථක විය</translation>
 <translation id="503155457707535043">යෙදුම් බාගනිමින්</translation>
 <translation id="5032430150487044192">QR කේතය තැනිය නොහැකිය</translation>
@@ -5733,7 +5732,6 @@
 <translation id="5601823921345337195">MIDI උපාංග වෙත සම්බන්ධ වීමට ඉඩ නොදේ</translation>
 <translation id="5601833336918638013">බ්ලූටූත් උපාංග සෙවීමට අඩවිවලට ඉඩ නොදෙන්න</translation>
 <translation id="5602586420788540146">නව පටිති සමූහයක විවෘත කරන්න</translation>
-<translation id="5602765853043467355">මෙම උපාංගයෙන් පිටුසන්, ඉතිහාසය, මුරපද, සහ තවත් දේ හිස් කරන්න</translation>
 <translation id="5605758115928394442">ඒ ඔබ බව තහවුරු කිරීමට ඔබේ දුරකථනයට දැනුම්දීමක් යවන ලදි.</translation>
 <translation id="5606849116180480101">{NUM_EXTENSIONS,plural, =1{මෙම දිගුව අවහිර කර ඇත}one{මෙම දිගු අවහිර කර ඇත}other{මෙම දිගු අවහිර කර ඇත}}</translation>
 <translation id="560834977503641186">Wi-Fi සමමුහුර්තකරණය, තව දැන ගන්න</translation>
@@ -5786,7 +5784,6 @@
 <translation id="5641648607875312660">තිර රූ රූප සංස්කාරකය</translation>
 <translation id="5642508497713047">CRL Signer</translation>
 <translation id="5643321261065707929">මනුගත ජාලය</translation>
-<translation id="5643620609347735571">හිස් කර දිගටම පවත්වාගෙන යන්න</translation>
 <translation id="5646376287012673985">පිහිටීම</translation>
 <translation id="5646558797914161501">ව්‍යාපාරිකයා</translation>
 <translation id="5648021990716966815">මයික් ජැක්කුව</translation>
@@ -7705,7 +7702,6 @@
 <translation id="7241389281993241388">කරුණාකර සේවාදායක සහතිකය ආයාත කිරීමට <ph name="TOKEN_NAME" /> වෙත පුරන්න.</translation>
 <translation id="7241763419756062043">ඔබගේ සෙවීම් සහ බ්‍රවුස් කිරීමේ ගුණත්වය තෝරන්න</translation>
 <translation id="7243092385765551741">මුරයතුර මකන්න ද?</translation>
-<translation id="7243632151880336635">හිස් කර වරන්න</translation>
 <translation id="7245162963905242662">Google සමග මෙම පිටුව සො&amp;යන්න...</translation>
 <translation id="7245628041916450754"><ph name="WIDTH" /> x <ph name="HEIGHT" /> (හොඳම)</translation>
 <translation id="7246230585855757313">ඔබේ ආරක්‍ෂක යතුර යළි සකසා නැවත උත්සාහ කරන්න</translation>
@@ -8584,7 +8580,6 @@
 <translation id="7925285046818567682"><ph name="HOST_NAME" /> සඳහා රැඳෙමින්...</translation>
 <translation id="7926423016278357561">මේ මෙම නොවේ.</translation>
 <translation id="7926975587469166629">කාඩ්පතෙහි අපනාමය</translation>
-<translation id="7927610604078150317">තරම: <ph name="CHROME_APP_SIZE" /></translation>
 <translation id="7928175190925744466">දැනටමත් මෙම මුරපදය වෙනස් කර තිබේද?</translation>
 <translation id="7929962904089429003">මෙනුව විවෘත කරන්න</translation>
 <translation id="7930294771522048157">සුරැකි ගෙවීම් ක්‍රම මෙහි දිස් වනු ඇත</translation>
@@ -9233,6 +9228,7 @@
 <translation id="8448729345478502352">ඔබගේ තිරය මත ඇති අයිතම කුඩා හෝ විශාල කරන්න</translation>
 <translation id="8449008133205184768">රටාව අලවා ගලපන්න</translation>
 <translation id="8449036207308062757">ගබඩාව කළමනාකරණය</translation>
+<translation id="8449347986464073209">මකා දමා වරන්න</translation>
 <translation id="8449836157089738489">නව ටැබ සමූහයක සියල්ල විවෘත කරන්න</translation>
 <translation id="8449869326050867919">මුරපදය බෙදා ගන්නා ලදි</translation>
 <translation id="8451512073679317615">සහායක</translation>
diff --git a/chrome/app/resources/generated_resources_sk.xtb b/chrome/app/resources/generated_resources_sk.xtb
index 91357fb..b7d1785 100644
--- a/chrome/app/resources/generated_resources_sk.xtb
+++ b/chrome/app/resources/generated_resources_sk.xtb
@@ -5026,7 +5026,6 @@
 <translation id="5027550639139316293">E-mailový certifikát</translation>
 <translation id="5027562294707732951">Pridať rozšírenie</translation>
 <translation id="5028445315206872221">Rozšírenia sú na tomto webe blokované</translation>
-<translation id="5029568752722684782">Vymazať kópiu</translation>
 <translation id="5029873138381728058">Virtuálny počítač sa nepodarilo skontrolovať</translation>
 <translation id="503155457707535043">Sťahujú sa aplikácie</translation>
 <translation id="5032430150487044192">QR kód sa nedá vytvoriť</translation>
@@ -5720,7 +5719,6 @@
 <translation id="5601823921345337195">Nemôže sa pripájať sa k zariadeniam MIDI</translation>
 <translation id="5601833336918638013">Nepovoliť webom vyhľadávať zariadenia s rozhraním Bluetooth</translation>
 <translation id="5602586420788540146">Otvoriť v novej skupine kariet</translation>
-<translation id="5602765853043467355">Vymazať záložky, históriu, heslá a ďalší obsah z tohto zariadenia</translation>
 <translation id="5605758115928394442">Do vášho telefónu bolo odoslané upozornenie, ktorým overíte, že ste to vy.</translation>
 <translation id="5606849116180480101">{NUM_EXTENSIONS,plural, =1{Toto rozšírenie je blokované}few{Tieto rozšírenia sú blokované}many{Tieto rozšírenia sú blokované}other{Tieto rozšírenia sú blokované}}</translation>
 <translation id="560834977503641186">Synchronizácia Wi-Fi, ďalšie informácie</translation>
@@ -5772,7 +5770,6 @@
 <translation id="5641648607875312660">Editor snímok obrazovky</translation>
 <translation id="5642508497713047">Podpisovateľ CRL</translation>
 <translation id="5643321261065707929">Meraná sieť</translation>
-<translation id="5643620609347735571">Vymazať a pokračovať</translation>
 <translation id="5646376287012673985">Poloha</translation>
 <translation id="5646558797914161501">Obchodník</translation>
 <translation id="5648021990716966815">Konektor mikrofónu</translation>
@@ -7694,7 +7691,6 @@
 <translation id="7241389281993241388">Ak chcete importovať certifikát klienta, prihláste sa do <ph name="TOKEN_NAME" />.</translation>
 <translation id="7241763419756062043">Vyberte kvalitu vyhľadávania a prehliadania</translation>
 <translation id="7243092385765551741">Chcete prístupový kľúč odstrániť?</translation>
-<translation id="7243632151880336635">Vymazať a odhlásiť sa</translation>
 <translation id="7245162963905242662">Vyhľadávať na tejto stránke Googlom…</translation>
 <translation id="7245628041916450754"><ph name="WIDTH" /> x <ph name="HEIGHT" /></translation>
 <translation id="7246230585855757313">Bezpečnostný kľúč opäť vložte a skúste to znova</translation>
@@ -8571,7 +8567,6 @@
 <translation id="7925285046818567682">Čakanie na <ph name="HOST_NAME" />...</translation>
 <translation id="7926423016278357561">To som nebol(a) ja.</translation>
 <translation id="7926975587469166629">Prezývka karty</translation>
-<translation id="7927610604078150317">Veľkosť: <ph name="CHROME_APP_SIZE" /></translation>
 <translation id="7928175190925744466">Už ste zmenili toto heslo?</translation>
 <translation id="7929962904089429003">Otvorenie ponuky</translation>
 <translation id="7930294771522048157">Tu sa zobrazia uložené spôsoby platby</translation>
@@ -9221,6 +9216,7 @@
 <translation id="8448729345478502352">Zväčšte alebo zmenšite položky na obrazovke</translation>
 <translation id="8449008133205184768">Prilepiť a prispôsobiť štýlu</translation>
 <translation id="8449036207308062757">Spravovať úložisko</translation>
+<translation id="8449347986464073209">Odstrániť a odhlásiť</translation>
 <translation id="8449836157089738489">Otvoriť všetko v novej skupine kariet</translation>
 <translation id="8449869326050867919">Heslo bolo zdieľané</translation>
 <translation id="8451512073679317615">asistent</translation>
diff --git a/chrome/app/resources/generated_resources_sl.xtb b/chrome/app/resources/generated_resources_sl.xtb
index d56b2670..a14b1b4 100644
--- a/chrome/app/resources/generated_resources_sl.xtb
+++ b/chrome/app/resources/generated_resources_sl.xtb
@@ -5043,7 +5043,6 @@
 <translation id="5027550639139316293">E-poštno potrdilo</translation>
 <translation id="5027562294707732951">Dodaj razširitev</translation>
 <translation id="5028445315206872221">Razširitve so blokirane na tem spletnem mestu.</translation>
-<translation id="5029568752722684782">Počisti kopijo</translation>
 <translation id="5029873138381728058">Ni bilo mogoče preveriti navideznih računalnikov.</translation>
 <translation id="503155457707535043">Prenašanje aplikacij</translation>
 <translation id="5032430150487044192">Kode QR ni mogoče ustvariti.</translation>
@@ -5738,7 +5737,6 @@
 <translation id="5601823921345337195">Ni dovoljena povezava z napravami MIDI</translation>
 <translation id="5601833336918638013">Spletnim mestom ni dovoljeno iskanje naprav Bluetooth.</translation>
 <translation id="5602586420788540146">Odpri v novi skupini zavihkov</translation>
-<translation id="5602765853043467355">Počistite zaznamke, zgodovino, gesla in drugo v tej napravi</translation>
 <translation id="5605758115928394442">V vaš telefon smo poslali obvestilo, da potrdite, da ste to res vi.</translation>
 <translation id="5606849116180480101">{NUM_EXTENSIONS,plural, =1{Ta razširitev je blokirana}one{Te razširitve so blokirane}two{Te razširitve so blokirane}few{Te razširitve so blokirane}other{Te razširitve so blokirane}}</translation>
 <translation id="560834977503641186">Sinhronizacija poverilnic za Wi-Fi, več o tem</translation>
@@ -5791,7 +5789,6 @@
 <translation id="5641648607875312660">Urejevalnik slik posnetkov zaslona</translation>
 <translation id="5642508497713047">Podpisnik seznama ukinjenih potrdil</translation>
 <translation id="5643321261065707929">Omrežje z omejenim prenosom podatkov</translation>
-<translation id="5643620609347735571">Počisti in nadaljuj</translation>
 <translation id="5646376287012673985">Lokacija</translation>
 <translation id="5646558797914161501">Poslovnež</translation>
 <translation id="5648021990716966815">Vtič za mikrofon</translation>
@@ -7715,7 +7712,6 @@
 <translation id="7241389281993241388">Prijavite se v <ph name="TOKEN_NAME" />, da uvozite potrdilo odjemalca.</translation>
 <translation id="7241763419756062043">Izbira kakovosti iskanja in brskanja</translation>
 <translation id="7243092385765551741">Želite izbrisati geslo?</translation>
-<translation id="7243632151880336635">Brisanje in odjava</translation>
 <translation id="7245162963905242662">I&amp;šči po tej strani z Googlom …</translation>
 <translation id="7245628041916450754"><ph name="WIDTH" /> x <ph name="HEIGHT" /> (najboljša)</translation>
 <translation id="7246230585855757313">Znova vstavite varnostni ključ in poskusite znova</translation>
@@ -8593,7 +8589,6 @@
 <translation id="7925285046818567682">Čakam <ph name="HOST_NAME" /> ...</translation>
 <translation id="7926423016278357561">To nisem bil(-a) jaz.</translation>
 <translation id="7926975587469166629">Vzdevek za kartico</translation>
-<translation id="7927610604078150317">Velikost: <ph name="CHROME_APP_SIZE" /></translation>
 <translation id="7928175190925744466">Ali ste že spremenili to geslo?</translation>
 <translation id="7929962904089429003">Odpiranje menija</translation>
 <translation id="7930294771522048157">Shranjena plačilna sredstva bodo prikazana tu</translation>
@@ -9243,6 +9238,7 @@
 <translation id="8448729345478502352">Pomanjšajte ali povečajte elemente na zaslonu.</translation>
 <translation id="8449008133205184768">Prilepite in uskladite slog</translation>
 <translation id="8449036207308062757">Upravljanje shrambe</translation>
+<translation id="8449347986464073209">Brisanje in odjava</translation>
 <translation id="8449836157089738489">Odpri vse v novi skupini zavihkov</translation>
 <translation id="8449869326050867919">Geslo je deljeno</translation>
 <translation id="8451512073679317615">pomočnik</translation>
diff --git a/chrome/app/resources/generated_resources_sq.xtb b/chrome/app/resources/generated_resources_sq.xtb
index b286739..d079569 100644
--- a/chrome/app/resources/generated_resources_sq.xtb
+++ b/chrome/app/resources/generated_resources_sq.xtb
@@ -5022,7 +5022,6 @@
 <translation id="5027550639139316293">Dërgo certifikatën me mail</translation>
 <translation id="5027562294707732951">Shto një shtesë</translation>
 <translation id="5028445315206872221">Shtesat bllokohen në këtë sajt</translation>
-<translation id="5029568752722684782">Pastro kopjen</translation>
 <translation id="5029873138381728058">Nuk mund të kontrolloheshin VM-të</translation>
 <translation id="503155457707535043">Po shkarkon aplikacionet</translation>
 <translation id="5032430150487044192">Kodi QR nuk mund të krijohet</translation>
@@ -5716,7 +5715,6 @@
 <translation id="5601823921345337195">Nuk lejohen të lidhen me pajisjet MIDI</translation>
 <translation id="5601833336918638013">Mos lejo që sajtet të kërkojnë për pajisjet me Bluetooth</translation>
 <translation id="5602586420788540146">Hape në një grup të ri skedash</translation>
-<translation id="5602765853043467355">Pastro faqeshënuesit, historikun, fjalëkalimet dhe më shumë nga kjo pajisje</translation>
 <translation id="5605758115928394442">Një njoftim është dërguar te telefoni yt për të konfirmuar që je ti.</translation>
 <translation id="5606849116180480101">{NUM_EXTENSIONS,plural, =1{Kjo shtesë është bllokuar}other{Këto shtesa janë bllokuar}}</translation>
 <translation id="560834977503641186">"Sinkronizimi i Wi-Fi", Mëso më shumë</translation>
@@ -5768,7 +5766,6 @@
 <translation id="5641648607875312660">Modifikuesi i imazhit të pamjes së ekranit</translation>
 <translation id="5642508497713047">Nënshkrues CRL</translation>
 <translation id="5643321261065707929">Rrjet me matje</translation>
-<translation id="5643620609347735571">Pastro dhe vazhdo</translation>
 <translation id="5646376287012673985">Vendndodhja</translation>
 <translation id="5646558797914161501">Biznesmen</translation>
 <translation id="5648021990716966815">Fisha e mikrofonit</translation>
@@ -7685,7 +7682,6 @@
 <translation id="7241389281993241388">Identifikohu te <ph name="TOKEN_NAME" /> për të importuar certifikatën e klientit.</translation>
 <translation id="7241763419756062043">Zgjidh cilësinë e kërkimit dhe shfletimit</translation>
 <translation id="7243092385765551741">Të fshihet çelësi i kalimit?</translation>
-<translation id="7243632151880336635">Pastro dhe dil</translation>
 <translation id="7245162963905242662">&amp;Kërko në këtë faqe me Google...</translation>
 <translation id="7245628041916450754"><ph name="WIDTH" /> x <ph name="HEIGHT" /> (më i miri)</translation>
 <translation id="7246230585855757313">Rifut çelësin e sigurisë dhe provo përsëri</translation>
@@ -8562,7 +8558,6 @@
 <translation id="7925285046818567682">Po pret për <ph name="HOST_NAME" />...</translation>
 <translation id="7926423016278357561">Nuk isha unë.</translation>
 <translation id="7926975587469166629">Pseudonimi i kartës</translation>
-<translation id="7927610604078150317">Madhësia: <ph name="CHROME_APP_SIZE" /></translation>
 <translation id="7928175190925744466">E ke ndryshuar tashmë këtë fjalëkalim?</translation>
 <translation id="7929962904089429003">Hap menynë</translation>
 <translation id="7930294771522048157">Mënyrat e ruajtura të pagesës do të shfaqen këtu</translation>
@@ -9211,6 +9206,7 @@
 <translation id="8448729345478502352">Bëji artikujt në ekran më të vegjël ose më të mëdhenj</translation>
 <translation id="8449008133205184768">Stili i ngjitjes dhe përputhjes</translation>
 <translation id="8449036207308062757">Menaxho hapësirën ruajtëse</translation>
+<translation id="8449347986464073209">Fshi dhe dil</translation>
 <translation id="8449836157089738489">Hapi të gjitha në një grup të ri skedash</translation>
 <translation id="8449869326050867919">Fjalëkalimi u nda</translation>
 <translation id="8451512073679317615">asistenti</translation>
diff --git a/chrome/app/resources/generated_resources_sr-Latn.xtb b/chrome/app/resources/generated_resources_sr-Latn.xtb
index 56462cd78..b0b4f3d 100644
--- a/chrome/app/resources/generated_resources_sr-Latn.xtb
+++ b/chrome/app/resources/generated_resources_sr-Latn.xtb
@@ -5032,7 +5032,6 @@
 <translation id="5027550639139316293">Sertifikat za e-poštu</translation>
 <translation id="5027562294707732951">Dodaj dodatak</translation>
 <translation id="5028445315206872221">Dodaci su blokirani na ovom sajtu</translation>
-<translation id="5029568752722684782">Obriši kopiju</translation>
 <translation id="5029873138381728058">Provera virtuelnih mašina nije uspela</translation>
 <translation id="503155457707535043">Preuzimanje aplikacija</translation>
 <translation id="5032430150487044192">Pravljenje QR koda nije uspelo</translation>
@@ -5725,7 +5724,6 @@
 <translation id="5601823921345337195">Nije im dozvoljeno da se povezuju sa MIDI uređajima</translation>
 <translation id="5601833336918638013">Ne dozvoljavaj sajtovima da traže Bluetooth uređaje</translation>
 <translation id="5602586420788540146">Otvori u novoj grupi kartica</translation>
-<translation id="5602765853043467355">Obriši obeleživače, istoriju, lozinke i drugo sa ovog uređaja</translation>
 <translation id="5605758115928394442">Poslali smo vam obaveštenje na telefon da biste potvrdili da ste to vi.</translation>
 <translation id="5606849116180480101">{NUM_EXTENSIONS,plural, =1{Ovaj dodatak je blokiran}one{Ovi dodaci su blokirani}few{Ovi dodaci su blokirani}other{Ovi dodaci su blokirani}}</translation>
 <translation id="560834977503641186">WiFi sinhronizacija, saznajte više</translation>
@@ -5778,7 +5776,6 @@
 <translation id="5641648607875312660">Uređivač za snimke ekrana</translation>
 <translation id="5642508497713047">CRL potpisnik</translation>
 <translation id="5643321261065707929">Mreža sa ograničenjem</translation>
-<translation id="5643620609347735571">Obriši i nastavi</translation>
 <translation id="5646376287012673985">Lokacija</translation>
 <translation id="5646558797914161501">Biznismen</translation>
 <translation id="5648021990716966815">Utikač za mikrofon</translation>
@@ -7702,7 +7699,6 @@
 <translation id="7241389281993241388">Prijavite se na <ph name="TOKEN_NAME" /> da biste uvezli sertifikat klijenta.</translation>
 <translation id="7241763419756062043">Odaberite kvalitet pretrage i pregledanja</translation>
 <translation id="7243092385765551741">Želite da izbrišete pristupni ključ?</translation>
-<translation id="7243632151880336635">Obriši i odjavi me</translation>
 <translation id="7245162963905242662">Pretraži ovu stranicu pomoću Google-a...</translation>
 <translation id="7245628041916450754"><ph name="WIDTH" /> x <ph name="HEIGHT" /> (Najbolje)</translation>
 <translation id="7246230585855757313">Ponovo umetnite bezbednosni ključ i probajte ponovo</translation>
@@ -8582,7 +8578,6 @@
 <translation id="7925285046818567682">Čeka se <ph name="HOST_NAME" />...</translation>
 <translation id="7926423016278357561">To nisam ja.</translation>
 <translation id="7926975587469166629">Nadimak kartice</translation>
-<translation id="7927610604078150317">Veličina: <ph name="CHROME_APP_SIZE" /></translation>
 <translation id="7928175190925744466">Već ste promenili ovu lozinku?</translation>
 <translation id="7929962904089429003">Otvorite meni</translation>
 <translation id="7930294771522048157">Sačuvani načini plaćanja će se prikazivati ovde</translation>
@@ -9232,6 +9227,7 @@
 <translation id="8448729345478502352">Uvećajte ili umanjite stavke na ekranu</translation>
 <translation id="8449008133205184768">Nalepi sa podudaranjem stila</translation>
 <translation id="8449036207308062757">Upravljaj memorijskim prostorom</translation>
+<translation id="8449347986464073209">Izbriši i odjavi me</translation>
 <translation id="8449836157089738489">Otvori sve u novoj grupi kartica</translation>
 <translation id="8449869326050867919">Lozinka se deli</translation>
 <translation id="8451512073679317615">Pomoćnik</translation>
diff --git a/chrome/app/resources/generated_resources_sr.xtb b/chrome/app/resources/generated_resources_sr.xtb
index 50c35112..8d387de4 100644
--- a/chrome/app/resources/generated_resources_sr.xtb
+++ b/chrome/app/resources/generated_resources_sr.xtb
@@ -5032,7 +5032,6 @@
 <translation id="5027550639139316293">Сертификат за е-пошту</translation>
 <translation id="5027562294707732951">Додај додатак</translation>
 <translation id="5028445315206872221">Додаци су блокирани на овом сајту</translation>
-<translation id="5029568752722684782">Обриши копију</translation>
 <translation id="5029873138381728058">Провера виртуелних машина није успела</translation>
 <translation id="503155457707535043">Преузимање апликација</translation>
 <translation id="5032430150487044192">Прављење QR кода није успело</translation>
@@ -5725,7 +5724,6 @@
 <translation id="5601823921345337195">Није им дозвољено да се повезују са MIDI уређајима</translation>
 <translation id="5601833336918638013">Не дозвољавај сајтовима да траже Bluetooth уређаје</translation>
 <translation id="5602586420788540146">Отвори у новој групи картица</translation>
-<translation id="5602765853043467355">Обриши обележиваче, историју, лозинке и друго са овог уређаја</translation>
 <translation id="5605758115928394442">Послали смо вам обавештење на телефон да бисте потврдили да сте то ви.</translation>
 <translation id="5606849116180480101">{NUM_EXTENSIONS,plural, =1{Овај додатак је блокиран}one{Ови додаци су блокирани}few{Ови додаци су блокирани}other{Ови додаци су блокирани}}</translation>
 <translation id="560834977503641186">WiFi синхронизација, сазнајте више</translation>
@@ -5778,7 +5776,6 @@
 <translation id="5641648607875312660">Уређивач за снимке екрана</translation>
 <translation id="5642508497713047">CRL потписник</translation>
 <translation id="5643321261065707929">Мрежа са ограничењем</translation>
-<translation id="5643620609347735571">Обриши и настави</translation>
 <translation id="5646376287012673985">Локација</translation>
 <translation id="5646558797914161501">Бизнисмен</translation>
 <translation id="5648021990716966815">Утикач за микрофон</translation>
@@ -7702,7 +7699,6 @@
 <translation id="7241389281993241388">Пријавите се на <ph name="TOKEN_NAME" /> да бисте увезли сертификат клијента.</translation>
 <translation id="7241763419756062043">Одаберите квалитет претраге и прегледања</translation>
 <translation id="7243092385765551741">Желите да избришете приступни кључ?</translation>
-<translation id="7243632151880336635">Обриши и одјави ме</translation>
 <translation id="7245162963905242662">Претражи ову страницу помоћу Google-а...</translation>
 <translation id="7245628041916450754"><ph name="WIDTH" /> x <ph name="HEIGHT" /> (Најбоље)</translation>
 <translation id="7246230585855757313">Поново уметните безбедносни кључ и пробајте поново</translation>
@@ -8582,7 +8578,6 @@
 <translation id="7925285046818567682">Чека се <ph name="HOST_NAME" />...</translation>
 <translation id="7926423016278357561">То нисам ја.</translation>
 <translation id="7926975587469166629">Надимак картице</translation>
-<translation id="7927610604078150317">Величина: <ph name="CHROME_APP_SIZE" /></translation>
 <translation id="7928175190925744466">Већ сте променили ову лозинку?</translation>
 <translation id="7929962904089429003">Отворите мени</translation>
 <translation id="7930294771522048157">Сачувани начини плаћања ће се приказивати овде</translation>
@@ -9232,6 +9227,7 @@
 <translation id="8448729345478502352">Увећајте или умањите ставке на екрану</translation>
 <translation id="8449008133205184768">Налепи са подударањем стила</translation>
 <translation id="8449036207308062757">Управљај меморијским простором</translation>
+<translation id="8449347986464073209">Избриши и одјави ме</translation>
 <translation id="8449836157089738489">Отвори све у новој групи картица</translation>
 <translation id="8449869326050867919">Лозинка се дели</translation>
 <translation id="8451512073679317615">Помоћник</translation>
diff --git a/chrome/app/resources/generated_resources_sv.xtb b/chrome/app/resources/generated_resources_sv.xtb
index 2324ad7..b9410f4 100644
--- a/chrome/app/resources/generated_resources_sv.xtb
+++ b/chrome/app/resources/generated_resources_sv.xtb
@@ -5040,7 +5040,6 @@
 <translation id="5027550639139316293">E-postcertifikat</translation>
 <translation id="5027562294707732951">Lägg till tillägg</translation>
 <translation id="5028445315206872221">Tillägg är blockerade på den här webbplatsen</translation>
-<translation id="5029568752722684782">Ta bort kopia</translation>
 <translation id="5029873138381728058">Kontrollen av virtuella maskiner misslyckades</translation>
 <translation id="503155457707535043">Appar laddas ned</translation>
 <translation id="5032430150487044192">Det gick inte att skapa QR-koden</translation>
@@ -5734,7 +5733,6 @@
 <translation id="5601823921345337195">Får inte ansluta till MIDI-enheter</translation>
 <translation id="5601833336918638013">Tillåt inte att webbplatser söker efter Bluetooth-enheter</translation>
 <translation id="5602586420788540146">Öppna i en ny flikgrupp</translation>
-<translation id="5602765853043467355">Rensa bokmärken, historik , lösenord med mera från den här enheten</translation>
 <translation id="5605758115928394442">En avisering har skickats till din mobil för att bekräfta att det är du.</translation>
 <translation id="5606849116180480101">{NUM_EXTENSIONS,plural, =1{Detta tillägg har blockerats}other{Dessa tillägg har blockerats}}</translation>
 <translation id="560834977503641186">wifi-synkronisering, läs mer</translation>
@@ -5786,7 +5784,6 @@
 <translation id="5641648607875312660">Redigeringsprogram för skärmbilder</translation>
 <translation id="5642508497713047">CRL-signerare</translation>
 <translation id="5643321261065707929">Nätverk med datapriser</translation>
-<translation id="5643620609347735571">Rensa och fortsätt</translation>
 <translation id="5646376287012673985">Plats</translation>
 <translation id="5646558797914161501">Affärsman</translation>
 <translation id="5648021990716966815">Mikrofonuttag</translation>
@@ -7704,7 +7701,6 @@
 <translation id="7241389281993241388">Logga in på <ph name="TOKEN_NAME" /> om du vill importera klientcertifikatet.</translation>
 <translation id="7241763419756062043">Välj kvalitet för sökning och surfning</translation>
 <translation id="7243092385765551741">Vill du radera nyckeln?</translation>
-<translation id="7243632151880336635">Rensa och logga ut</translation>
 <translation id="7245162963905242662">Sö&amp;k på den här sidan med Google …</translation>
 <translation id="7245628041916450754"><ph name="WIDTH" /> x <ph name="HEIGHT" /> (bäst)</translation>
 <translation id="7246230585855757313">Sätt i säkerhetsnyckeln en gång till och försök igen</translation>
@@ -8582,7 +8578,6 @@
 <translation id="7925285046818567682">Väntar på <ph name="HOST_NAME" />...</translation>
 <translation id="7926423016278357561">Det var inte jag.</translation>
 <translation id="7926975587469166629">Kortets namn</translation>
-<translation id="7927610604078150317">Storlek: <ph name="CHROME_APP_SIZE" /></translation>
 <translation id="7928175190925744466">Har du redan ändrat det här lösenordet?</translation>
 <translation id="7929962904089429003">Öppna menyn</translation>
 <translation id="7930294771522048157">Sparade betalningsmetoder visas här</translation>
@@ -9232,6 +9227,7 @@
 <translation id="8448729345478502352">Gör objekt på skärmen mindre eller större</translation>
 <translation id="8449008133205184768">Klistra in och matcha stilen</translation>
 <translation id="8449036207308062757">Hantera lagringsutrymme</translation>
+<translation id="8449347986464073209">Radera och logga ut</translation>
 <translation id="8449836157089738489">Öppna alla i en ny flikgrupp</translation>
 <translation id="8449869326050867919">Lösenordet har delats</translation>
 <translation id="8451512073679317615">assistent</translation>
diff --git a/chrome/app/resources/generated_resources_sw.xtb b/chrome/app/resources/generated_resources_sw.xtb
index d59da09..4f9d1b3 100644
--- a/chrome/app/resources/generated_resources_sw.xtb
+++ b/chrome/app/resources/generated_resources_sw.xtb
@@ -5035,7 +5035,6 @@
 <translation id="5027550639139316293">Cheti cha Barua Pepe</translation>
 <translation id="5027562294707732951">Ongeza kiendelezi</translation>
 <translation id="5028445315206872221">Viendelezi vimezuiwa kwenye tovuti hii</translation>
-<translation id="5029568752722684782">Futa nakala</translation>
 <translation id="5029873138381728058">Imeshindwa kukagua mashine pepe</translation>
 <translation id="503155457707535043">Inapakua programu</translation>
 <translation id="5032430150487044192">Imeshindwa kutunga Msimbo wa QR</translation>
@@ -5729,7 +5728,6 @@
 <translation id="5601823921345337195">Zisizoruhusiwa kuunganisha kwenye vifaa vya MIDI</translation>
 <translation id="5601833336918638013">Usiruhusu tovuti zitafute vifaa vyenye Bluetooth</translation>
 <translation id="5602586420788540146">Fungua katika kikundi kipya cha vichupo</translation>
-<translation id="5602765853043467355">Futa alamisho, historia, manenosiri na mengineyo kwenye kifaa hiki</translation>
 <translation id="5605758115928394442">Arifa imetumwa kwenye simu yako ili kuthibitisha ni wewe.</translation>
 <translation id="5606849116180480101">{NUM_EXTENSIONS,plural, =1{Kiendelezi hiki kimezuiwa}other{Viendelezi hivi vimezuiwa}}</translation>
 <translation id="560834977503641186">Usawazishaji Wi-Fi, Pata Maelezo Zaidi</translation>
@@ -5781,7 +5779,6 @@
 <translation id="5641648607875312660">Kihariri cha Picha ya Skrini</translation>
 <translation id="5642508497713047">Kitia Sahihi cha CRL</translation>
 <translation id="5643321261065707929">Mtandao unaopima data</translation>
-<translation id="5643620609347735571">Futa na uendelee</translation>
 <translation id="5646376287012673985">Mahali</translation>
 <translation id="5646558797914161501">Mfanyabiashara</translation>
 <translation id="5648021990716966815">Pini ya maikrofoni</translation>
@@ -7699,7 +7696,6 @@
 <translation id="7241389281993241388">Tafadhali ingia kwenye <ph name="TOKEN_NAME" /> ili kuleta cheti cha mteja.</translation>
 <translation id="7241763419756062043">Chagua ubora wa kutafuta na kuvinjari unaopendelea</translation>
 <translation id="7243092385765551741">Je, ungependa kufuta ufunguo wa siri?</translation>
-<translation id="7243632151880336635">Futa na Uondoke kwenye Akaunti</translation>
 <translation id="7245162963905242662">Tafuta ukurasa huu kwa kutumia Google...</translation>
 <translation id="7245628041916450754"><ph name="WIDTH" /> x <ph name="HEIGHT" /> (Bora)</translation>
 <translation id="7246230585855757313">Weka tena ufunguo wako wa usalama kisha ujaribu tena</translation>
@@ -8578,7 +8574,6 @@
 <translation id="7925285046818567682">Inasubiri <ph name="HOST_NAME" />...</translation>
 <translation id="7926423016278357561">Si mimi.</translation>
 <translation id="7926975587469166629">Jina la kuwakilisha kadi</translation>
-<translation id="7927610604078150317">Ukubwa: <ph name="CHROME_APP_SIZE" /></translation>
 <translation id="7928175190925744466">Je, tayari umebadilisha nenosiri hili?</translation>
 <translation id="7929962904089429003">Fungua menyu</translation>
 <translation id="7930294771522048157">Njia za kulipa ulizohifadhi zitaonekana hapa</translation>
@@ -9228,6 +9223,7 @@
 <translation id="8448729345478502352">Ongeza au upunguze ukubwa wa vipengee vilivyo kwenye skrini yako</translation>
 <translation id="8449008133205184768">Bandika na Ulinganishe Mtindo</translation>
 <translation id="8449036207308062757">Dhibiti hifadhi</translation>
+<translation id="8449347986464073209">Futa na Uondoke kwenye Akaunti</translation>
 <translation id="8449836157089738489">Fungua zote katika kikundi kipya cha vichupo</translation>
 <translation id="8449869326050867919">Nenosiri limeshirikiwa</translation>
 <translation id="8451512073679317615">mratibu</translation>
diff --git a/chrome/app/resources/generated_resources_ta.xtb b/chrome/app/resources/generated_resources_ta.xtb
index 5e48354..b7149c6 100644
--- a/chrome/app/resources/generated_resources_ta.xtb
+++ b/chrome/app/resources/generated_resources_ta.xtb
@@ -5040,7 +5040,6 @@
 <translation id="5027550639139316293">மின்னஞ்சல் சான்றிதழ்</translation>
 <translation id="5027562294707732951">நீட்டிப்பைச் சேர்</translation>
 <translation id="5028445315206872221">இந்தத் தளத்தில் நீட்டிப்புகள் தடுக்கப்பட்டுள்ளன</translation>
-<translation id="5029568752722684782">நகலை அழி</translation>
 <translation id="5029873138381728058">VMகளைச் சரிபார்க்க முடியவில்லை</translation>
 <translation id="503155457707535043">ஆப்ஸ் பதிவிறக்கப்படுகின்றன</translation>
 <translation id="5032430150487044192">QR குறியீட்டை உருவாக்க முடியவில்லை</translation>
@@ -5734,7 +5733,6 @@
 <translation id="5601823921345337195">MIDI சாதனங்களுடன் இணைப்பதற்கு அனுமதி இல்லாத தளங்கள்</translation>
 <translation id="5601833336918638013">புளூடூத் சாதனங்கள் உள்ளதா எனத் தேட தளங்களுக்கு அனுமதி இல்லை</translation>
 <translation id="5602586420788540146">புதிய பக்கக் குழுவில் திறக்கும்</translation>
-<translation id="5602765853043467355">இந்தச் சாதனத்திலிருந்து புக்மார்க்குகள், வரலாறு, கடவுச்சொற்கள் மற்றும் பலவற்றை அழிக்கவும்</translation>
 <translation id="5605758115928394442">அது நீங்கள்தான் என்பதை உறுதிப்படுத்த உங்கள் ஃபோனுக்கு ஓர் அறிவிப்பு அனுப்பப்பட்டுள்ளது.</translation>
 <translation id="5606849116180480101">{NUM_EXTENSIONS,plural, =1{இந்த நீட்டிப்பு தடுக்கப்பட்டுள்ளது}other{இந்த நீட்டிப்புகள் தடுக்கப்பட்டுள்ளன}}</translation>
 <translation id="560834977503641186">வைஃபை ஒத்திசைவு, மேலும் அறிக</translation>
@@ -5787,7 +5785,6 @@
 <translation id="5641648607875312660">ஸ்கிரீன்ஷாட் பட எடிட்டர்</translation>
 <translation id="5642508497713047">CRL கையொப்பமிடுநர்</translation>
 <translation id="5643321261065707929">கட்டண நெட்வொர்க்</translation>
-<translation id="5643620609347735571">அழித்து, தொடர்க</translation>
 <translation id="5646376287012673985">இருப்பிடம்</translation>
 <translation id="5646558797914161501">தொழிலதிபர்</translation>
 <translation id="5648021990716966815">மைக் ஜாக்</translation>
@@ -7705,7 +7702,6 @@
 <translation id="7241389281993241388">கிளையண்ட் சான்றிதழை இறக்குமதி செய்ய தயவுசெய்து <ph name="TOKEN_NAME" /> இல் உள்நுழைக.</translation>
 <translation id="7241763419756062043">தேடல் மற்றும் உலாவல் தரத்தைத் தேர்வுசெய்யுங்கள்</translation>
 <translation id="7243092385765551741">கடவுச்சாவியை நீக்கவா?</translation>
-<translation id="7243632151880336635">அழித்து, வெளியேறு</translation>
 <translation id="7245162963905242662">Google மூலம் இந்தப் பக்கத்தைத் தேடு...</translation>
 <translation id="7245628041916450754"><ph name="WIDTH" /> x <ph name="HEIGHT" /> (சிறந்தது)</translation>
 <translation id="7246230585855757313">உங்கள் பாதுகாப்பு விசையை மீண்டும் செருகி முயலவும்</translation>
@@ -8583,7 +8579,6 @@
 <translation id="7925285046818567682"><ph name="HOST_NAME" /> க்காக காத்திருக்கிறது...</translation>
 <translation id="7926423016278357561">அது நான் அல்ல.</translation>
 <translation id="7926975587469166629">கார்டின் புனைப்பெயர்</translation>
-<translation id="7927610604078150317">அளவு: <ph name="CHROME_APP_SIZE" /></translation>
 <translation id="7928175190925744466">இந்தக் கடவுச்சொல்லை ஏற்கெனவே மாற்றிவிட்டீர்களா?</translation>
 <translation id="7929962904089429003">மெனுவைத் திறக்கும்</translation>
 <translation id="7930294771522048157">சேமிக்கப்பட்ட பேமெண்ட் முறைகள் இங்கு காண்பிக்கப்படும்</translation>
@@ -9233,6 +9228,7 @@
 <translation id="8448729345478502352">திரையில் உள்ளவற்றைச் சிறிதாக்கும் அல்லது பெரிதாக்கும்</translation>
 <translation id="8449008133205184768">நடையை ஒட்டி, பொருத்துக</translation>
 <translation id="8449036207308062757">சேமிப்பிடத்தை நிர்வகி</translation>
+<translation id="8449347986464073209">நீக்கிவிட்டு வெளியேறு</translation>
 <translation id="8449836157089738489">அனைத்தையும் புதிய பிரிவுக் குழுவில் திற</translation>
 <translation id="8449869326050867919">கடவுச்சொல் பகிரப்பட்டது</translation>
 <translation id="8451512073679317615">அசிஸ்டண்ட்</translation>
diff --git a/chrome/app/resources/generated_resources_te.xtb b/chrome/app/resources/generated_resources_te.xtb
index b55aa9d..0c4c771 100644
--- a/chrome/app/resources/generated_resources_te.xtb
+++ b/chrome/app/resources/generated_resources_te.xtb
@@ -5038,7 +5038,6 @@
 <translation id="5027550639139316293">ఈమెయిల్‌ సర్టిఫికెట్</translation>
 <translation id="5027562294707732951">ఎక్స్‌టెన్షన్‌ని జోడించండి</translation>
 <translation id="5028445315206872221">ఈ సైట్‌లోని ఎక్స్‌టెన్షన్‌లు బ్లాక్ చేయబడ్డాయి</translation>
-<translation id="5029568752722684782">కాపీని తీసివేయండి</translation>
 <translation id="5029873138381728058">వర్చువల్ మెషీన్‌లను చెక్ చేయడం విఫలమైంది</translation>
 <translation id="503155457707535043">యాప్‌లు డౌన్‌లోడ్ చేయబడుతున్నాయి</translation>
 <translation id="5032430150487044192">QR కోడ్‌ను క్రియేట్ చేయడం సాధ్యపడదు</translation>
@@ -5732,7 +5731,6 @@
 <translation id="5601823921345337195">MIDI పరికరాలకు కనెక్ట్ చేయడానికి అనుమతించబడలేదు</translation>
 <translation id="5601833336918638013">బ్లూటూత్ పరికరాల కోసం వెతకడానికి సైట్‌లను అనుమతించవద్దు</translation>
 <translation id="5602586420788540146">కొత్త ట్యాబ్ గ్రూప్‌లో తెరవండి</translation>
-<translation id="5602765853043467355">ఈ పరికరం నుండి బుక్‌మార్క్‌లు, హిస్టరీ, పాస్‌వర్డ్‌లు వంటివాటిని తీసివేయండి</translation>
 <translation id="5605758115928394442">మీరేనని నిర్ధారించుకోవడానికి మీ ఫోన్‌కు ఒక నోటిఫికేషన్ పంపబడింది.</translation>
 <translation id="5606849116180480101">{NUM_EXTENSIONS,plural, =1{ఈ ఎక్స్‌టెన్షన్ బ్లాక్ చేయబడింది}other{ఈ ఎక్స్‌టెన్షన్‌లు బ్లాక్ చేయబడ్డాయి}}</translation>
 <translation id="560834977503641186">Wi-Fi సింక్, మరింత తెలుసుకోండి</translation>
@@ -5784,7 +5782,6 @@
 <translation id="5641648607875312660">స్క్రీన్‌షాట్ ఇమేజ్ ఎడిటర్</translation>
 <translation id="5642508497713047">CRL సైన్ చేసినవారు</translation>
 <translation id="5643321261065707929">డేటా నియంత్రిత నెట్‌వర్క్</translation>
-<translation id="5643620609347735571">క్లియర్ చేసి కొనసాగించండి</translation>
 <translation id="5646376287012673985">లొకేషన్</translation>
 <translation id="5646558797914161501">వ్యాపారవేత్త</translation>
 <translation id="5648021990716966815">మైక్ జాక్</translation>
@@ -7702,7 +7699,6 @@
 <translation id="7241389281993241388">దయచేసి క్లయింట్ స‌ర్టిఫికెట్‌ను దిగుమతి చేయ‌డానికి <ph name="TOKEN_NAME" />కు సైన్ ఇన్ చేయండి.</translation>
 <translation id="7241763419756062043">మీ సెర్చ్, బ్రౌజింగ్ క్వాలిటీని ఎంచుకోండి</translation>
 <translation id="7243092385765551741">పాస్-కీని తొలగించాలా?</translation>
-<translation id="7243632151880336635">తీసివేసి, సైన్ అవుట్ చేయి</translation>
 <translation id="7245162963905242662">Googleతో ఈ పేజీని సెర్చ్ చేయండి...</translation>
 <translation id="7245628041916450754"><ph name="WIDTH" /> x <ph name="HEIGHT" /> (ఉత్తమం)</translation>
 <translation id="7246230585855757313">మీ సెక్యూరిటీ కీని తీసివేసి, మళ్లీ ఇన్‌సర్ట్ చేసి, ఆపై మరొకసారి ప్రయత్నించండి</translation>
@@ -8579,7 +8575,6 @@
 <translation id="7925285046818567682"><ph name="HOST_NAME" /> కోసం వేచి ఉంది ...</translation>
 <translation id="7926423016278357561">ఇది నేను కాదు.</translation>
 <translation id="7926975587469166629">కార్డ్ మారుపేరు</translation>
-<translation id="7927610604078150317">పరిమాణం: <ph name="CHROME_APP_SIZE" /></translation>
 <translation id="7928175190925744466">ఇప్పటికే ఈ పాస్‌వర్డ్‌ను మార్చారా?</translation>
 <translation id="7929962904089429003">మెనూను తెరవండి</translation>
 <translation id="7930294771522048157">సేవ్ చేసిన పేమెంట్ ఆప్షన్‌లు ఇక్కడ చూపబడతాయి</translation>
@@ -9226,6 +9221,7 @@
 <translation id="8448729345478502352">మీ స్క్రీన్‌లోని అంశాలను చిన్నవిగా లేదా పెద్దవిగా చేయండి</translation>
 <translation id="8449008133205184768">శైలిని పేస్ట్ చేసి, సరిపోల్చు</translation>
 <translation id="8449036207308062757">నిల్వను మేనేజ్ చేయండి</translation>
+<translation id="8449347986464073209">తొలగించి, సైన్ అవుట్ చేయండి</translation>
 <translation id="8449836157089738489">అన్నింటినీ కొత్త ట్యాబ్ గ్రూప్‌లో తెరవండి</translation>
 <translation id="8449869326050867919">పాస్‌వర్డ్ షేర్ చేయబడింది</translation>
 <translation id="8451512073679317615">సహాయకం</translation>
diff --git a/chrome/app/resources/generated_resources_th.xtb b/chrome/app/resources/generated_resources_th.xtb
index e864d981..056176a 100644
--- a/chrome/app/resources/generated_resources_th.xtb
+++ b/chrome/app/resources/generated_resources_th.xtb
@@ -5024,7 +5024,6 @@
 <translation id="5027550639139316293">ใบรับรองอีเมล</translation>
 <translation id="5027562294707732951">เพิ่มส่วนขยาย</translation>
 <translation id="5028445315206872221">ส่วนขยายถูกบล็อกในเว็บไซต์นี้</translation>
-<translation id="5029568752722684782">ล้างสำเนา</translation>
 <translation id="5029873138381728058">ตรวจสอบ VM ไม่สำเร็จ</translation>
 <translation id="503155457707535043">กำลังดาวน์โหลดแอป</translation>
 <translation id="5032430150487044192">สร้างคิวอาร์โค้ดไม่ได้</translation>
@@ -5718,7 +5717,6 @@
 <translation id="5601823921345337195">ไม่ได้รับอนุญาตให้เชื่อมต่ออุปกรณ์ MIDI</translation>
 <translation id="5601833336918638013">ไม่อนุญาตให้เว็บไซต์ค้นหาอุปกรณ์บลูทูธ</translation>
 <translation id="5602586420788540146">เปิดในกลุ่มแท็บใหม่</translation>
-<translation id="5602765853043467355">ล้างบุ๊กมาร์ก ประวัติการเข้าชม รหัสผ่าน และอื่นๆ จากอุปกรณ์นี้</translation>
 <translation id="5605758115928394442">เราส่งการแจ้งเตือนให้คุณทางโทรศัพท์แล้วเพื่อยืนยันตัวตน</translation>
 <translation id="5606849116180480101">{NUM_EXTENSIONS,plural, =1{ส่วนขยายนี้ถูกบล็อก}other{ส่วนขยายเหล่านี้ถูกบล็อก}}</translation>
 <translation id="560834977503641186">การซิงค์ Wi-Fi ดูข้อมูลเพิ่มเติม</translation>
@@ -5768,7 +5766,6 @@
 <translation id="5641648607875312660">เครื่องมือแก้ไขภาพหน้าจอ</translation>
 <translation id="5642508497713047">ผู้เซ็นชื่อ CRL</translation>
 <translation id="5643321261065707929">เครือข่ายมีการวัดปริมาณอินเทอร์เน็ต</translation>
-<translation id="5643620609347735571">ล้างและดำเนินการต่อ</translation>
 <translation id="5646376287012673985">ตำแหน่ง</translation>
 <translation id="5646558797914161501">นักธุรกิจ</translation>
 <translation id="5648021990716966815">ช่องเสียบไมโครโฟน</translation>
@@ -7685,7 +7682,6 @@
 <translation id="7241389281993241388">โปรดลงชื่อเข้าใช้ <ph name="TOKEN_NAME" /> เพื่อนำเข้าใบรับรองไคลเอ็นต์</translation>
 <translation id="7241763419756062043">เลือกคุณภาพในการค้นหาและการท่องเว็บ</translation>
 <translation id="7243092385765551741">ลบพาสคีย์ไหม</translation>
-<translation id="7243632151880336635">ล้างและออกจากระบบ</translation>
 <translation id="7245162963905242662">ค้นหาหน้านี้ด้วย Google...</translation>
 <translation id="7245628041916450754"><ph name="WIDTH" /> x <ph name="HEIGHT" /> (ดีที่สุด)</translation>
 <translation id="7246230585855757313">เสียบคีย์ความปลอดภัยใหม่แล้วลองอีกครั้ง</translation>
@@ -8562,7 +8558,6 @@
 <translation id="7925285046818567682">กำลังรอ <ph name="HOST_NAME" />...</translation>
 <translation id="7926423016278357561">นี่ไม่ใช่ฉัน</translation>
 <translation id="7926975587469166629">ชื่อเล่นของบัตร</translation>
-<translation id="7927610604078150317">ขนาด: <ph name="CHROME_APP_SIZE" /></translation>
 <translation id="7928175190925744466">เปลี่ยนรหัสผ่านนี้แล้วใช่ไหม</translation>
 <translation id="7929962904089429003">เปิดเมนู</translation>
 <translation id="7930294771522048157">วิธีการชำระเงินที่บันทึกไว้จะปรากฏที่นี่</translation>
@@ -9212,6 +9207,7 @@
 <translation id="8448729345478502352">ทำให้รายการในหน้าจอมีขนาดเล็กลงหรือใหญ่ขึ้น</translation>
 <translation id="8449008133205184768">วางและจับคู่รูปแบบ</translation>
 <translation id="8449036207308062757">จัดการพื้นที่เก็บข้อมูล</translation>
+<translation id="8449347986464073209">ลบและออกจากระบบ</translation>
 <translation id="8449836157089738489">เปิดทั้งหมดในกลุ่มแท็บใหม่</translation>
 <translation id="8449869326050867919">แชร์รหัสผ่านแล้ว</translation>
 <translation id="8451512073679317615">Assistant</translation>
diff --git a/chrome/app/resources/generated_resources_tr.xtb b/chrome/app/resources/generated_resources_tr.xtb
index ddae5a27..b153d69 100644
--- a/chrome/app/resources/generated_resources_tr.xtb
+++ b/chrome/app/resources/generated_resources_tr.xtb
@@ -5022,7 +5022,6 @@
 <translation id="5027550639139316293">E-posta Sertifikası</translation>
 <translation id="5027562294707732951">Uzantı ekle</translation>
 <translation id="5028445315206872221">Bu sitede uzantılar engellendi</translation>
-<translation id="5029568752722684782">Kopyayı temizle</translation>
 <translation id="5029873138381728058">Sanal makineler kontrol edilemedi</translation>
 <translation id="503155457707535043">Uygulamalar indiriliyor</translation>
 <translation id="5032430150487044192">QR Kodu oluşturulamıyor</translation>
@@ -5716,7 +5715,6 @@
 <translation id="5601823921345337195">MIDI cihazlarına bağlanmasına izin verilmeyen siteler</translation>
 <translation id="5601833336918638013">Sitelerin, Bluetooth cihazları aramasına izin verme</translation>
 <translation id="5602586420788540146">Yeni sekme grubunda aç</translation>
-<translation id="5602765853043467355">Yer işaretleri, geçmiş, şifreler ve diğer bilgileri bu cihazdan temizle</translation>
 <translation id="5605758115928394442">Telefonunuza kimliğinizi doğrulamak için bir bildirim gönderildi.</translation>
 <translation id="5606849116180480101">{NUM_EXTENSIONS,plural, =1{Bu uzantı engellendi}other{Bu uzantılar engellendi}}</translation>
 <translation id="560834977503641186">Wi-Fi Senkronizasyonu, Daha Fazla Bilgi</translation>
@@ -5769,7 +5767,6 @@
 <translation id="5641648607875312660">Ekran Görüntüsü Resmi Düzenleyici</translation>
 <translation id="5642508497713047">CRL İmza Sahibi</translation>
 <translation id="5643321261065707929">Sayaçlı ağ</translation>
-<translation id="5643620609347735571">Temizle ve devam et</translation>
 <translation id="5646376287012673985">Konum</translation>
 <translation id="5646558797914161501">İş adamı</translation>
 <translation id="5648021990716966815">Mikrofon jakı</translation>
@@ -7687,7 +7684,6 @@
 <translation id="7241389281993241388">Lütfen istemci sertifikasını içe aktarmak için <ph name="TOKEN_NAME" /> cihazında oturum açın.</translation>
 <translation id="7241763419756062043">Arama ve tarama kalitenizi seçin</translation>
 <translation id="7243092385765551741">Geçiş anahtarı silinsin mi?</translation>
-<translation id="7243632151880336635">Temizle ve Oturumu Kapat</translation>
 <translation id="7245162963905242662">Bu Sayfayı Google'da A&amp;ra...</translation>
 <translation id="7245628041916450754"><ph name="WIDTH" /> x <ph name="HEIGHT" /> (En iyi)</translation>
 <translation id="7246230585855757313">Güvenlik anahtarınızı yeniden takıp tekrar deneyin</translation>
@@ -8564,7 +8560,6 @@
 <translation id="7925285046818567682"><ph name="HOST_NAME" /> bekleniyor...</translation>
 <translation id="7926423016278357561">Bu kişi ben değildim.</translation>
 <translation id="7926975587469166629">Kart için takma ad</translation>
-<translation id="7927610604078150317">Boyut: <ph name="CHROME_APP_SIZE" /></translation>
 <translation id="7928175190925744466">Bu şifreyi zaten değiştirdiniz mi?</translation>
 <translation id="7929962904089429003">Menüyü açar</translation>
 <translation id="7930294771522048157">Kaydedilen ödeme yöntemleri burada görünecek</translation>
@@ -9214,6 +9209,7 @@
 <translation id="8448729345478502352">Ekranınızdaki öğeleri küçültün veya büyütün</translation>
 <translation id="8449008133205184768">Stili Yapıştır ve Eşleştir</translation>
 <translation id="8449036207308062757">Depolama alanını yönet</translation>
+<translation id="8449347986464073209">Sil ve Oturumu Kapat</translation>
 <translation id="8449836157089738489">Tümünü yeni sekme grubunda aç</translation>
 <translation id="8449869326050867919">Şifre paylaşıldı</translation>
 <translation id="8451512073679317615">asistan</translation>
diff --git a/chrome/app/resources/generated_resources_uk.xtb b/chrome/app/resources/generated_resources_uk.xtb
index 3a03a291..e26f2be 100644
--- a/chrome/app/resources/generated_resources_uk.xtb
+++ b/chrome/app/resources/generated_resources_uk.xtb
@@ -5043,7 +5043,6 @@
 <translation id="5027550639139316293">Сертифікат електронної пошти</translation>
 <translation id="5027562294707732951">Додати розширення</translation>
 <translation id="5028445315206872221">На цьому сайті заблоковано розширення</translation>
-<translation id="5029568752722684782">Видалити копію</translation>
 <translation id="5029873138381728058">Не вдалося перевірити віртуальні машини</translation>
 <translation id="503155457707535043">Завантаження додатків</translation>
 <translation id="5032430150487044192">Не вдається створити QR-код</translation>
@@ -5737,7 +5736,6 @@
 <translation id="5601823921345337195">Заборонено підключатися до пристроїв MIDI</translation>
 <translation id="5601833336918638013">Заборонити сайтам шукати пристрої з Bluetooth</translation>
 <translation id="5602586420788540146">Відкрити в новій групі вкладок</translation>
-<translation id="5602765853043467355">Видалити закладки, історію, паролі тощо з цього пристрою</translation>
 <translation id="5605758115928394442">Ми надіслали сповіщення на ваш телефон, щоб підтвердити вашу особу.</translation>
 <translation id="5606849116180480101">{NUM_EXTENSIONS,plural, =1{Це розширення заблоковано}one{Ці розширення заблоковано}few{Ці розширення заблоковано}many{Ці розширення заблоковано}other{Ці розширення заблоковано}}</translation>
 <translation id="560834977503641186">Докладніше про синхронізацію Wi-Fi</translation>
@@ -5787,7 +5785,6 @@
 <translation id="5641648607875312660">Редактор знімків екрана</translation>
 <translation id="5642508497713047">Сторона, що підписала CRL</translation>
 <translation id="5643321261065707929">Мережа з тарифікацією трафіку</translation>
-<translation id="5643620609347735571">Видалити та продовжити</translation>
 <translation id="5646376287012673985">Місцезнаходження</translation>
 <translation id="5646558797914161501">Бізнесмен</translation>
 <translation id="5648021990716966815">Гніздо для мікрофона</translation>
@@ -7710,7 +7707,6 @@
 <translation id="7241389281993241388">Увійдіть у <ph name="TOKEN_NAME" />, щоб імпортувати сертифікат клієнта.</translation>
 <translation id="7241763419756062043">Виберіть якість пошуку та веб-перегляду</translation>
 <translation id="7243092385765551741">Видалити ключ доступу?</translation>
-<translation id="7243632151880336635">Очистити та вийти з облікового запису</translation>
 <translation id="7245162963905242662">Шука&amp;ти цю сторінку в Google…</translation>
 <translation id="7245628041916450754"><ph name="WIDTH" />x<ph name="HEIGHT" /> (найвища)</translation>
 <translation id="7246230585855757313">Знову вставте ключ безпеки та повторіть спробу</translation>
@@ -8587,7 +8583,6 @@
 <translation id="7925285046818567682"><ph name="HOST_NAME" />...</translation>
 <translation id="7926423016278357561">Це не я.</translation>
 <translation id="7926975587469166629">Псевдонім картки</translation>
-<translation id="7927610604078150317">Розмір: <ph name="CHROME_APP_SIZE" /></translation>
 <translation id="7928175190925744466">Уже змінили цей пароль?</translation>
 <translation id="7929962904089429003">Відкрити меню</translation>
 <translation id="7930294771522048157">Тут відображатимуться збережені способи оплати</translation>
@@ -9237,6 +9232,7 @@
 <translation id="8448729345478502352">Зменшуйте або збільшуйте елементи на екрані</translation>
 <translation id="8449008133205184768">Вставити та застосувати стиль</translation>
 <translation id="8449036207308062757">Керувати пам’яттю</translation>
+<translation id="8449347986464073209">Видалити й вийти</translation>
 <translation id="8449836157089738489">Відкрити всі в новій групі вкладок</translation>
 <translation id="8449869326050867919">Пароль надіслано</translation>
 <translation id="8451512073679317615">асистент</translation>
diff --git a/chrome/app/resources/generated_resources_ur.xtb b/chrome/app/resources/generated_resources_ur.xtb
index 17629a65..9c179e1 100644
--- a/chrome/app/resources/generated_resources_ur.xtb
+++ b/chrome/app/resources/generated_resources_ur.xtb
@@ -5036,7 +5036,6 @@
 <translation id="5027550639139316293">ای میل سرٹیفکیٹ</translation>
 <translation id="5027562294707732951">ایکسٹینشن شامل کریں</translation>
 <translation id="5028445315206872221">اس سائٹ پر ایکسٹینشنز مسدود ہیں</translation>
-<translation id="5029568752722684782">کاپی صاف کریں</translation>
 <translation id="5029873138381728058">‏VMs چیک کرنے میں ناکام</translation>
 <translation id="503155457707535043">ایپس ڈاؤن لوڈ ہو رہی ہیں</translation>
 <translation id="5032430150487044192">‏QR کوڈ تخلیق نہیں کیا جا سکتا</translation>
@@ -5729,7 +5728,6 @@
 <translation id="5601823921345337195">‏MIDI آلات سے منسلک ہونے کی اجازت نہیں ہے</translation>
 <translation id="5601833336918638013">سائٹس کو بلوٹوتھ آلات تلاش کرنے کی اجازت نہ دیں</translation>
 <translation id="5602586420788540146">نئے ٹیب گروپ میں کھولیں</translation>
-<translation id="5602765853043467355">بُک مارکس، سرگزشت، پاس ورڈز وغیرہ اس آلہ سے صاف کريں</translation>
 <translation id="5605758115928394442">اس بات کی تصدیق کرنے کیلئے کہ یہ آپ ہی ہیں، آپ کے فون پر ایک اطلاع بھیجی گئی۔</translation>
 <translation id="5606849116180480101">{NUM_EXTENSIONS,plural, =1{یہ ایکسٹینشن مسدود ہے}other{یہ ایکسٹینشنز مسدود ہیں}}</translation>
 <translation id="560834977503641186">‏Wi-Fi سِنک، مزید جانیں</translation>
@@ -5781,7 +5779,6 @@
 <translation id="5641648607875312660">اسکرین شاٹ امیج ایڈیٹر</translation>
 <translation id="5642508497713047">‏CRL سائنر</translation>
 <translation id="5643321261065707929">میٹرڈ نیٹ ورک</translation>
-<translation id="5643620609347735571">صاف کریں اور جاری رکھیں</translation>
 <translation id="5646376287012673985">مقام</translation>
 <translation id="5646558797914161501">تاجر</translation>
 <translation id="5648021990716966815">مائیک جیک</translation>
@@ -7700,7 +7697,6 @@
 <translation id="7241389281993241388">براہ کرم کلائنٹ سرٹیفکیٹ درآمد کرنے کیلئے <ph name="TOKEN_NAME" /> میں سائن ان کریں۔</translation>
 <translation id="7241763419756062043">اپنی تلاش اور براؤنگ کا معیار منتخب کریں</translation>
 <translation id="7243092385765551741">پاس کی حذف کریں؟</translation>
-<translation id="7243632151880336635">صاف کریں اور سائن آؤٹ کریں</translation>
 <translation id="7245162963905242662">‏Google کے ساتھ یہ صفحہ تلاش کریں...</translation>
 <translation id="7245628041916450754">‏<ph name="WIDTH" /> x <ph name="HEIGHT" /> (بہترین)</translation>
 <translation id="7246230585855757313">اپنی سیکیورٹی کلید دوبارہ داخل کریں اور دوبارہ کوشش کریں</translation>
@@ -8580,7 +8576,6 @@
 <translation id="7925285046818567682"><ph name="HOST_NAME" /> کا منتظر…</translation>
 <translation id="7926423016278357561">یہ میں نہیں تھا۔</translation>
 <translation id="7926975587469166629">کارڈ کا عرفی نام</translation>
-<translation id="7927610604078150317">سائز: <ph name="CHROME_APP_SIZE" /></translation>
 <translation id="7928175190925744466">پہلے ہی یہ پاس ورڈ تبدیل کیا ہے؟</translation>
 <translation id="7929962904089429003">مینیو کھولیں</translation>
 <translation id="7930294771522048157">ادائیگی کے محفوظ کردہ طریقے یہاں ظاہر ہوں گے</translation>
@@ -9229,6 +9224,7 @@
 <translation id="8448729345478502352">اپنی اسکرین پر موجود آئٹمز کو اور چھوٹا یا بڑا کریں</translation>
 <translation id="8449008133205184768">طرز پیسٹ کریں اور مماثل بنائیں</translation>
 <translation id="8449036207308062757">اسٹوریج کا نظم کریں</translation>
+<translation id="8449347986464073209">حذف کریں اور سائن آؤٹ کریں</translation>
 <translation id="8449836157089738489">سبھی کو نئے ٹیب گروپ میں کھولیں</translation>
 <translation id="8449869326050867919">پاس ورڈ کا اشتراک کر دیا گیا</translation>
 <translation id="8451512073679317615">اسسٹنٹ</translation>
diff --git a/chrome/app/resources/generated_resources_uz.xtb b/chrome/app/resources/generated_resources_uz.xtb
index 5d5a9ee..4146914 100644
--- a/chrome/app/resources/generated_resources_uz.xtb
+++ b/chrome/app/resources/generated_resources_uz.xtb
@@ -5027,7 +5027,6 @@
 <translation id="5027550639139316293">Email sertifikati</translation>
 <translation id="5027562294707732951">Kengaytmani o‘rnatish</translation>
 <translation id="5028445315206872221">Bu saytda kengaytmalar taqiqlangan</translation>
-<translation id="5029568752722684782">Nusxani o‘chirib tashlash</translation>
 <translation id="5029873138381728058">VM tekshirilmadi</translation>
 <translation id="503155457707535043">Ilovalar yuklab olinishi</translation>
 <translation id="5032430150487044192">QR kod yaratilmadi</translation>
@@ -5721,7 +5720,6 @@
 <translation id="5601823921345337195">MIDI qurilmalarga ulanishga ruxsat berilmagan</translation>
 <translation id="5601833336918638013">Saytlar Bluetooth qurilmalarni qidirishi mumkin emas</translation>
 <translation id="5602586420788540146">Yangi varaqlar guruhida ochish</translation>
-<translation id="5602765853043467355">Qurilmadagi xatcho‘plar, tarix, parollar va boshqa ma’lumotlarni tozalash</translation>
 <translation id="5605758115928394442">Telefoningizga bildirishnoma yuborildi. Shaxsingizni tasdiqlang.</translation>
 <translation id="5606849116180480101">{NUM_EXTENSIONS,plural, =1{Bu kengaytma bloklandi}other{Bu kengaytmalar bloklandi}}</translation>
 <translation id="560834977503641186">Wi-Fi Sync, Batafsil</translation>
@@ -5773,7 +5771,6 @@
 <translation id="5641648607875312660">Skrinshot rasmlari muharriri</translation>
 <translation id="5642508497713047">CRL imzolovchisi</translation>
 <translation id="5643321261065707929">Trafik hisoblanadigan tarmoq</translation>
-<translation id="5643620609347735571">Tozalash va davom etish</translation>
 <translation id="5646376287012673985">Joylashuv</translation>
 <translation id="5646558797914161501">Biznesmen</translation>
 <translation id="5648021990716966815">Mikrofon teshigi</translation>
@@ -7690,7 +7687,6 @@
 <translation id="7241389281993241388">Mijoz sertifikatini import qilish uchun, <ph name="TOKEN_NAME" />’ga kiring.</translation>
 <translation id="7241763419756062043">Qidiruv va kezish sifatini tanlang</translation>
 <translation id="7243092385765551741">Kalit oʻchirilsinmi?</translation>
-<translation id="7243632151880336635">Tozalash va sinxronizatsiyadan chiqish</translation>
 <translation id="7245162963905242662">&amp;Bu sahifada Google bilan qidirish...</translation>
 <translation id="7245628041916450754"><ph name="WIDTH" /> x <ph name="HEIGHT" /> (eng yaxshi)</translation>
 <translation id="7246230585855757313">Elektron kalitni yana suqing va qaytadan urining</translation>
@@ -8567,7 +8563,6 @@
 <translation id="7925285046818567682"><ph name="HOST_NAME" /> kutilmoqda...</translation>
 <translation id="7926423016278357561">Men emasdim.</translation>
 <translation id="7926975587469166629">Karta nomi</translation>
-<translation id="7927610604078150317">Hajmi: <ph name="CHROME_APP_SIZE" /></translation>
 <translation id="7928175190925744466">Bu parol allaqachon oʻzgartirilganmi?</translation>
 <translation id="7929962904089429003">Menyuni ochish</translation>
 <translation id="7930294771522048157">Saqlangan to‘lov usullari shu yerda turadi</translation>
@@ -9216,6 +9211,7 @@
 <translation id="8448729345478502352">Ekrandagi elementlarni kichiklashtirish yoki kattalashtirish</translation>
 <translation id="8449008133205184768">Uslubni solishtirib joylash</translation>
 <translation id="8449036207308062757">Xotirani boshqarish</translation>
+<translation id="8449347986464073209">Oʻchirish va hisobdan chiqish</translation>
 <translation id="8449836157089738489">Barchasini yangi varaqlar guruhida ochish</translation>
 <translation id="8449869326050867919">Parol ulashilgan</translation>
 <translation id="8451512073679317615">assistent</translation>
diff --git a/chrome/app/resources/generated_resources_vi.xtb b/chrome/app/resources/generated_resources_vi.xtb
index c8927db9..f2d71f73 100644
--- a/chrome/app/resources/generated_resources_vi.xtb
+++ b/chrome/app/resources/generated_resources_vi.xtb
@@ -5040,7 +5040,6 @@
 <translation id="5027550639139316293">Chứng chỉ Email</translation>
 <translation id="5027562294707732951">Thêm tiện ích</translation>
 <translation id="5028445315206872221">Các tiện ích bị chặn trên trang web này</translation>
-<translation id="5029568752722684782">Xóa bản sao</translation>
 <translation id="5029873138381728058">Không kiểm tra được máy ảo</translation>
 <translation id="503155457707535043">Đang tải ứng dụng xuống</translation>
 <translation id="5032430150487044192">Không thể tạo mã QR</translation>
@@ -5734,7 +5733,6 @@
 <translation id="5601823921345337195">Không được phép kết nối với các thiết bị MIDI</translation>
 <translation id="5601833336918638013">Không cho phép các trang web tìm thiết bị Bluetooth</translation>
 <translation id="5602586420788540146">Mở trong nhóm thẻ mới</translation>
-<translation id="5602765853043467355">Xóa dấu trang, lịch sử, mật khẩu và nhiều nội dung khác từ thiết bị này</translation>
 <translation id="5605758115928394442">Chúng tôi đã gửi một thông báo đến điện thoại của bạn để xác nhận đó là bạn.</translation>
 <translation id="5606849116180480101">{NUM_EXTENSIONS,plural, =1{Tiện ích này đã bị chặn}other{Các tiện ích này đã bị chặn}}</translation>
 <translation id="560834977503641186">Đồng bộ hóa Wi-Fi, Tìm hiểu thêm</translation>
@@ -5786,7 +5784,6 @@
 <translation id="5641648607875312660">Trình chỉnh sửa ảnh chụp màn hình</translation>
 <translation id="5642508497713047">Trình ký CRL</translation>
 <translation id="5643321261065707929">Mạng có đo lượng dữ liệu</translation>
-<translation id="5643620609347735571">Xóa và tiếp tục</translation>
 <translation id="5646376287012673985">Vị trí</translation>
 <translation id="5646558797914161501">Doanh nhân</translation>
 <translation id="5648021990716966815">Giắc cắm micrô</translation>
@@ -7704,7 +7701,6 @@
 <translation id="7241389281993241388">Vui lòng đăng nhập vào <ph name="TOKEN_NAME" /> để nhập chứng chỉ ứng dụng khách.</translation>
 <translation id="7241763419756062043">Chọn chất lượng tìm kiếm và duyệt web</translation>
 <translation id="7243092385765551741">Xoá khoá truy cập?</translation>
-<translation id="7243632151880336635">Xóa và đăng xuất</translation>
 <translation id="7245162963905242662">Tìm kiếm trang này bằng Google...</translation>
 <translation id="7245628041916450754"><ph name="WIDTH" /> x <ph name="HEIGHT" /> (Tốt nhất)</translation>
 <translation id="7246230585855757313">Cắm lại khóa bảo mật rồi thử lại lần nữa</translation>
@@ -8582,7 +8578,6 @@
 <translation id="7925285046818567682">Đang chờ <ph name="HOST_NAME" />...</translation>
 <translation id="7926423016278357561">Đây không phải là tôi.</translation>
 <translation id="7926975587469166629">Biệt hiệu của thẻ</translation>
-<translation id="7927610604078150317">Kích thước: <ph name="CHROME_APP_SIZE" /></translation>
 <translation id="7928175190925744466">Bạn đã đổi mật khẩu này?</translation>
 <translation id="7929962904089429003">Mở menu</translation>
 <translation id="7930294771522048157">Các phương thức thanh toán đã lưu sẽ xuất hiện ở đây</translation>
@@ -9232,6 +9227,7 @@
 <translation id="8448729345478502352">Tăng hoặc giảm kích thước các mục trên màn hình</translation>
 <translation id="8449008133205184768">Dán và Khớp Kiểu</translation>
 <translation id="8449036207308062757">Quản lý bộ nhớ</translation>
+<translation id="8449347986464073209">Xoá và đăng xuất</translation>
 <translation id="8449836157089738489">Mở tất cả trong nhóm thẻ mới</translation>
 <translation id="8449869326050867919">Đã chia sẻ mật khẩu</translation>
 <translation id="8451512073679317615">trợ lý</translation>
diff --git a/chrome/app/resources/generated_resources_zh-CN.xtb b/chrome/app/resources/generated_resources_zh-CN.xtb
index 7af3f1f..9207fae 100644
--- a/chrome/app/resources/generated_resources_zh-CN.xtb
+++ b/chrome/app/resources/generated_resources_zh-CN.xtb
@@ -5002,7 +5002,6 @@
 <translation id="5027550639139316293">电子邮件证书</translation>
 <translation id="5027562294707732951">添加扩展程序</translation>
 <translation id="5028445315206872221">已阻止在此网站上使用扩展程序</translation>
-<translation id="5029568752722684782">清除副本</translation>
 <translation id="5029873138381728058">未能检查虚拟机</translation>
 <translation id="503155457707535043">正在下载所选应用</translation>
 <translation id="5032430150487044192">无法创建二维码</translation>
@@ -5695,7 +5694,6 @@
 <translation id="5601823921345337195">不允许连接到 MIDI 设备</translation>
 <translation id="5601833336918638013">不允许网站寻找蓝牙设备</translation>
 <translation id="5602586420788540146">在新标签页分组中打开</translation>
-<translation id="5602765853043467355">清除此设备上的书签、历史记录、密码等信息</translation>
 <translation id="5605758115928394442">系统向您的手机发送了一条通知,以确认您的身份。</translation>
 <translation id="5606849116180480101">{NUM_EXTENSIONS,plural, =1{这个扩展程序已被屏蔽}other{这些扩展程序已被屏蔽}}</translation>
 <translation id="560834977503641186">Wi-Fi 同步,了解详情</translation>
@@ -5745,7 +5743,6 @@
 <translation id="5641648607875312660">屏幕截图编辑器</translation>
 <translation id="5642508497713047">CRL 签名人</translation>
 <translation id="5643321261065707929">按流量计费的网络</translation>
-<translation id="5643620609347735571">清除并继续</translation>
 <translation id="5646376287012673985">位置信息</translation>
 <translation id="5646558797914161501">商务人士</translation>
 <translation id="5648021990716966815">麦克风耳机插孔</translation>
@@ -7661,7 +7658,6 @@
 <translation id="7241389281993241388">请登录“<ph name="TOKEN_NAME" />”,导入客户端证书。</translation>
 <translation id="7241763419756062043">选择您所需的搜索和浏览质量</translation>
 <translation id="7243092385765551741">要删除通行密钥吗?</translation>
-<translation id="7243632151880336635">清除并退出</translation>
 <translation id="7245162963905242662">使用 Google 搜索此页面(&amp;C)…</translation>
 <translation id="7245628041916450754"><ph name="WIDTH" /> x <ph name="HEIGHT" />(最佳)</translation>
 <translation id="7246230585855757313">请重新插入您的安全密钥,然后再试一次</translation>
@@ -8535,7 +8531,6 @@
 <translation id="7925285046818567682">正在等待 <ph name="HOST_NAME" /> 的响应...</translation>
 <translation id="7926423016278357561">不是我本人。</translation>
 <translation id="7926975587469166629">卡的昵称</translation>
-<translation id="7927610604078150317">大小:<ph name="CHROME_APP_SIZE" /></translation>
 <translation id="7928175190925744466">已经更改了此密码?</translation>
 <translation id="7929962904089429003">打开菜单</translation>
 <translation id="7930294771522048157">已保存的付款方式会显示在这里</translation>
@@ -9184,6 +9179,7 @@
 <translation id="8448729345478502352">缩小或放大屏幕上的内容</translation>
 <translation id="8449008133205184768">粘贴并匹配样式</translation>
 <translation id="8449036207308062757">管理存储空间</translation>
+<translation id="8449347986464073209">删除数据并退出账号</translation>
 <translation id="8449836157089738489">在新标签页分组中打开全部网址</translation>
 <translation id="8449869326050867919">已分享密码</translation>
 <translation id="8451512073679317615">智能助理</translation>
diff --git a/chrome/app/resources/generated_resources_zh-HK.xtb b/chrome/app/resources/generated_resources_zh-HK.xtb
index e1da835c..e7c721a13 100644
--- a/chrome/app/resources/generated_resources_zh-HK.xtb
+++ b/chrome/app/resources/generated_resources_zh-HK.xtb
@@ -5036,7 +5036,6 @@
 <translation id="5027550639139316293">電郵憑證</translation>
 <translation id="5027562294707732951">新增擴充程式</translation>
 <translation id="5028445315206872221">系統已封鎖此網站上的擴充程式</translation>
-<translation id="5029568752722684782">清除副本</translation>
 <translation id="5029873138381728058">無法檢查虛擬機器</translation>
 <translation id="503155457707535043">正在下載應用程式</translation>
 <translation id="5032430150487044192">無法建立 QR 碼</translation>
@@ -5730,7 +5729,6 @@
 <translation id="5601823921345337195">不允許連接 MIDI 裝置</translation>
 <translation id="5601833336918638013">不允許網站尋找藍牙裝置</translation>
 <translation id="5602586420788540146">在新分頁中開啟</translation>
-<translation id="5602765853043467355">清除此裝置上的書籤、記錄和密碼等資料。</translation>
 <translation id="5605758115928394442">已將通知傳送至您的手機,以確認您的身分。</translation>
 <translation id="5606849116180480101">{NUM_EXTENSIONS,plural, =1{已封鎖這個擴充程式}other{已封鎖這些擴充程式}}</translation>
 <translation id="560834977503641186">Wi-Fi Sync,了解詳情</translation>
@@ -5780,7 +5778,6 @@
 <translation id="5641648607875312660">螢幕截圖編輯器</translation>
 <translation id="5642508497713047">CRL 簽署者</translation>
 <translation id="5643321261065707929">按用量收費的網絡</translation>
-<translation id="5643620609347735571">清除並繼續</translation>
 <translation id="5646376287012673985">位置</translation>
 <translation id="5646558797914161501">商人</translation>
 <translation id="5648021990716966815">麥克風插孔</translation>
@@ -7698,7 +7695,6 @@
 <translation id="7241389281993241388">請登入 <ph name="TOKEN_NAME" /> 以匯入用戶端憑證。</translation>
 <translation id="7241763419756062043">選擇搜尋和瀏覽品質</translation>
 <translation id="7243092385765551741">要刪除密鑰嗎?</translation>
-<translation id="7243632151880336635">清除並登出</translation>
 <translation id="7245162963905242662">使用 Google 搜尋此網頁…(&amp;C)</translation>
 <translation id="7245628041916450754"><ph name="WIDTH" /> x <ph name="HEIGHT" /> (最佳)</translation>
 <translation id="7246230585855757313">請重新插入安全密鑰,然後再試一次</translation>
@@ -8575,7 +8571,6 @@
 <translation id="7925285046818567682">正在等候 <ph name="HOST_NAME" />…</translation>
 <translation id="7926423016278357561">這不是我本人。</translation>
 <translation id="7926975587469166629">信用卡暱稱</translation>
-<translation id="7927610604078150317">大小:<ph name="CHROME_APP_SIZE" /></translation>
 <translation id="7928175190925744466">已變更此密碼?</translation>
 <translation id="7929962904089429003">開啟選單</translation>
 <translation id="7930294771522048157">已儲存的付款方法會在這裡顯示</translation>
@@ -9225,6 +9220,7 @@
 <translation id="8448729345478502352">縮小或放大畫面上的項目</translation>
 <translation id="8449008133205184768">貼上並配對樣式</translation>
 <translation id="8449036207308062757">管理儲存空間</translation>
+<translation id="8449347986464073209">刪除並登出</translation>
 <translation id="8449836157089738489">在新分頁群組中開啟所有網址</translation>
 <translation id="8449869326050867919">已分享密碼</translation>
 <translation id="8451512073679317615">助理</translation>
diff --git a/chrome/app/resources/generated_resources_zh-TW.xtb b/chrome/app/resources/generated_resources_zh-TW.xtb
index 1c4d49cf..193ce5d 100644
--- a/chrome/app/resources/generated_resources_zh-TW.xtb
+++ b/chrome/app/resources/generated_resources_zh-TW.xtb
@@ -5023,7 +5023,6 @@
 <translation id="5027550639139316293">電子郵件憑證</translation>
 <translation id="5027562294707732951">新增擴充功能</translation>
 <translation id="5028445315206872221">已封鎖這個網站的擴充功能</translation>
-<translation id="5029568752722684782">清除複本</translation>
 <translation id="5029873138381728058">無法檢查 VM</translation>
 <translation id="503155457707535043">正在下載應用程式</translation>
 <translation id="5032430150487044192">無法建立 QR 圖碼</translation>
@@ -5717,7 +5716,6 @@
 <translation id="5601823921345337195">不得連接 MIDI 裝置</translation>
 <translation id="5601833336918638013">不允許網站掃描藍牙裝置</translation>
 <translation id="5602586420788540146">在新分頁群組中開啟</translation>
-<translation id="5602765853043467355">清除這個裝置的書籤、歷史記錄、密碼和其他設定</translation>
 <translation id="5605758115928394442">為了確認你的身分,系統已傳送通知到你的手機。</translation>
 <translation id="5606849116180480101">{NUM_EXTENSIONS,plural, =1{已封鎖這個擴充功能}other{已封鎖這些擴充功能}}</translation>
 <translation id="560834977503641186">Wi-Fi 同步功能,瞭解詳情</translation>
@@ -5767,7 +5765,6 @@
 <translation id="5641648607875312660">螢幕截圖編輯工具</translation>
 <translation id="5642508497713047">CRL 簽署者</translation>
 <translation id="5643321261065707929">計量付費的網路</translation>
-<translation id="5643620609347735571">清除並繼續</translation>
 <translation id="5646376287012673985">位置</translation>
 <translation id="5646558797914161501">商人</translation>
 <translation id="5648021990716966815">麥克風插孔</translation>
@@ -7683,7 +7680,6 @@
 <translation id="7241389281993241388">登入 <ph name="TOKEN_NAME" /> 即可匯入用戶端憑證。</translation>
 <translation id="7241763419756062043">選擇你的搜尋和瀏覽品質</translation>
 <translation id="7243092385765551741">要刪除密碼金鑰嗎?</translation>
-<translation id="7243632151880336635">清除並登出</translation>
 <translation id="7245162963905242662">使用 Google 搜尋這個網頁(&amp;C)...</translation>
 <translation id="7245628041916450754"><ph name="WIDTH" /> x <ph name="HEIGHT" /> (最佳)</translation>
 <translation id="7246230585855757313">請重新插入安全金鑰,然後再試一次</translation>
@@ -8561,7 +8557,6 @@
 <translation id="7925285046818567682">正在等候 <ph name="HOST_NAME" />...</translation>
 <translation id="7926423016278357561">這不是我。</translation>
 <translation id="7926975587469166629">卡片暱稱</translation>
-<translation id="7927610604078150317">大小:<ph name="CHROME_APP_SIZE" /></translation>
 <translation id="7928175190925744466">已經變更這個密碼了嗎?</translation>
 <translation id="7929962904089429003">開啟選單</translation>
 <translation id="7930294771522048157">已儲存的付款方式會顯示在這裡</translation>
@@ -9211,6 +9206,7 @@
 <translation id="8448729345478502352">縮小或放大畫面上的項目</translation>
 <translation id="8449008133205184768">貼上並符合樣式</translation>
 <translation id="8449036207308062757">管理儲存空間</translation>
+<translation id="8449347986464073209">刪除並登出</translation>
 <translation id="8449836157089738489">在新分頁群組中開啟所有網址</translation>
 <translation id="8449869326050867919">已分享密碼</translation>
 <translation id="8451512073679317615">小幫手</translation>
diff --git a/chrome/app/resources/generated_resources_zu.xtb b/chrome/app/resources/generated_resources_zu.xtb
index feecacb..90fcc21 100644
--- a/chrome/app/resources/generated_resources_zu.xtb
+++ b/chrome/app/resources/generated_resources_zu.xtb
@@ -5040,7 +5040,6 @@
 <translation id="5027550639139316293">Isitifiketi se-imeyili</translation>
 <translation id="5027562294707732951">Engeza isandiso</translation>
 <translation id="5028445315206872221">Izandiso zivinjelwe kuleli sayithi</translation>
-<translation id="5029568752722684782">Sula ikhophi</translation>
 <translation id="5029873138381728058">Yehlulekile ukuhlola i-VMs</translation>
 <translation id="503155457707535043">Izinhlelo zokusebenza ziyalandwa</translation>
 <translation id="5032430150487044192">Ayikwazi ukudala ikhodi ye-QR</translation>
@@ -5736,7 +5735,6 @@
 <translation id="5601823921345337195">Ayivumelekile ukuxhuma kumadivayisi e-MIDI</translation>
 <translation id="5601833336918638013">Ungavumeli amasayithi ukuthi abheke amadivayisi e-Bluetooth</translation>
 <translation id="5602586420788540146">Vula eqenjini lethebhu entsha</translation>
-<translation id="5602765853043467355">Sula amabhukhimakhi, umlando, amaphasiwedi, nokuningi kusuka kule divayisi</translation>
 <translation id="5605758115928394442">Isaziso siye sathunyelwa kufoni yakho ukuze kuqinisekiswe ukuthi unguwe.</translation>
 <translation id="5606849116180480101">{NUM_EXTENSIONS,plural, =1{Lesi sandiso sivinjelwe}one{Lezi zandiso zivinjelwe}other{Lezi zandiso zivinjelwe}}</translation>
 <translation id="560834977503641186">Ukuxhumana ne-Wi-Fi, Funda kabanzi</translation>
@@ -5789,7 +5787,6 @@
 <translation id="5641648607875312660">Umhleli Wesithombe-skrini Somfanekiso</translation>
 <translation id="5642508497713047">Isisayini se-CRL</translation>
 <translation id="5643321261065707929">Inethiwekhi eyenziwe imitha</translation>
-<translation id="5643620609347735571">Sula futhi uqhubeke</translation>
 <translation id="5646376287012673985">Indawo</translation>
 <translation id="5646558797914161501">Usomabhizinisi</translation>
 <translation id="5648021990716966815">Umgodi we-earphone</translation>
@@ -7708,7 +7705,6 @@
 <translation id="7241389281993241388">Sicela ungene ngemvume ku-<ph name="TOKEN_NAME" /> ukuze ungenise isitifiketi seklayenti.</translation>
 <translation id="7241763419756062043">Khetha ikhwalithi yakho yosesho nokubhrawuza</translation>
 <translation id="7243092385765551741">Sula ukhiye wokudlula?</translation>
-<translation id="7243632151880336635">Sula uphinde uphume ngemvume</translation>
 <translation id="7245162963905242662">Sesha leli Khasi nge-Google...</translation>
 <translation id="7245628041916450754"><ph name="WIDTH" /> x <ph name="HEIGHT" /> (Okuhamba phambili)</translation>
 <translation id="7246230585855757313">Faka kabusha ukhiye wakho wokuqinisekisa ubunikazi bes uyazama futhi</translation>
@@ -8585,7 +8581,6 @@
 <translation id="7925285046818567682">Ilindele i-<ph name="HOST_NAME" />...</translation>
 <translation id="7926423016278357561">Lo kwakungemina.</translation>
 <translation id="7926975587469166629">Igama lesidlaliso lekhadi</translation>
-<translation id="7927610604078150317">Usayizi: <ph name="CHROME_APP_SIZE" /></translation>
 <translation id="7928175190925744466">Usuyishintshile kakade le phasiwedi?</translation>
 <translation id="7929962904089429003">Vula imenyu</translation>
 <translation id="7930294771522048157">Izindlela zokukhokha ezilondoloziwe zizovela lapha</translation>
@@ -9234,6 +9229,7 @@
 <translation id="8448729345478502352">Yenza izinto kusikrini sakho zibe zincane noma zibe zinkulu</translation>
 <translation id="8449008133205184768">Namathisela uphinde ufanise isitayela</translation>
 <translation id="8449036207308062757">Phatha isitoreji</translation>
+<translation id="8449347986464073209">Susa Bese Uyaphuma</translation>
 <translation id="8449836157089738489">Vula konke kwiqembu lethebhu entsha</translation>
 <translation id="8449869326050867919">Iphasiwedi edluliselwe kwabanye</translation>
 <translation id="8451512073679317615">umsizi</translation>
diff --git a/chrome/browser/BUILD.gn b/chrome/browser/BUILD.gn
index c6046cc..5eb1deb 100644
--- a/chrome/browser/BUILD.gn
+++ b/chrome/browser/BUILD.gn
@@ -7282,8 +7282,8 @@
     ]
     if (is_chromeos_ash) {
       sources += [
-        "accessibility/accessibility_extension_api_chromeos.cc",
-        "accessibility/accessibility_extension_api_chromeos.h",
+        "accessibility/accessibility_extension_api_ash.cc",
+        "accessibility/accessibility_extension_api_ash.h",
         "accessibility/service/accessibility_service_router.cc",
         "accessibility/service/accessibility_service_router.h",
         "accessibility/service/accessibility_service_router_factory.cc",
diff --git a/chrome/browser/about_flags.cc b/chrome/browser/about_flags.cc
index 71a28f4..16da370 100644
--- a/chrome/browser/about_flags.cc
+++ b/chrome/browser/about_flags.cc
@@ -6914,6 +6914,11 @@
      FEATURE_VALUE_TYPE(
          download::features::kUseDownloadOfflineContentProvider)},
 
+    {"downloads-migrate-to-jobs-api",
+     flag_descriptions::kDownloadsMigrateToJobsAPIName,
+     flag_descriptions::kDownloadsMigrateToJobsAPIDescription, kOsAndroid,
+     FEATURE_VALUE_TYPE(download::features::kDownloadsMigrateToJobsAPI)},
+
     {"download-range", flag_descriptions::kDownloadRangeName,
      flag_descriptions::kDownloadRangeDescription, kOsAll,
      FEATURE_VALUE_TYPE(download::features::kDownloadRange)},
@@ -8262,6 +8267,14 @@
      kOsDesktop | kOsAndroid,
      FEATURE_VALUE_TYPE(content_settings::features::kTrackingProtection3pcd)},
 
+    {"tracking-protection-onboarding-force-eligibility",
+     flag_descriptions::kTrackingProtectionOnboardingForceEligibilityName,
+     flag_descriptions::
+         kTrackingProtectionOnboardingForceEligibilityDescription,
+     kOsDesktop | kOsAndroid,
+     FEATURE_VALUE_TYPE(
+         privacy_sandbox::kTrackingProtectionOnboardingForceEligibility)},
+
 #if BUILDFLAG(IS_CHROMEOS_ASH)
     {kClipboardHistoryLongpressInternalName,
      flag_descriptions::kClipboardHistoryLongpressName,
@@ -11074,6 +11087,12 @@
      FEATURE_VALUE_TYPE(chrome::android::kGridTabSwitcherAndroidAnimations)},
 #endif  // !BUILDFLAG(IS_ANDROID)
 
+#if BUILDFLAG(ENABLE_LIBRARY_CDMS)
+    {"cdm-storage-database", flag_descriptions::kCdmStorageDatabaseName,
+     flag_descriptions::kCdmStorageDatabaseDescription, kOsDesktop,
+     FEATURE_VALUE_TYPE(features::kCdmStorageDatabase)},
+#endif  // BUILDFLAG(ENABLE_LIBRARY_CDMS)
+
     // NOTE: Adding a new flag requires adding a corresponding entry to enum
     // "LoginCustomFlags" in tools/metrics/histograms/enums.xml. See "Flag
     // Histograms" in tools/metrics/histograms/README.md (run the
diff --git a/chrome/browser/accessibility/DEPS b/chrome/browser/accessibility/DEPS
index 8a1d211..b2487c4 100644
--- a/chrome/browser/accessibility/DEPS
+++ b/chrome/browser/accessibility/DEPS
@@ -7,7 +7,7 @@
 ]
 
 specific_include_rules = {
-  'accessibility_extension_api_chromeos.cc': [
+  'accessibility_extension_api_ash.cc': [
     "+services/accessibility/public/mojom/assistive_technology_type.mojom.h",
   ]
 }
\ No newline at end of file
diff --git a/chrome/browser/accessibility/accessibility_extension_api_chromeos.cc b/chrome/browser/accessibility/accessibility_extension_api_ash.cc
similarity index 97%
rename from chrome/browser/accessibility/accessibility_extension_api_chromeos.cc
rename to chrome/browser/accessibility/accessibility_extension_api_ash.cc
index d828d4a..b397fcb 100644
--- a/chrome/browser/accessibility/accessibility_extension_api_chromeos.cc
+++ b/chrome/browser/accessibility/accessibility_extension_api_ash.cc
@@ -2,7 +2,7 @@
 // Use of this source code is governed by a BSD-style license that can be
 // found in the LICENSE file.
 
-#include "chrome/browser/accessibility/accessibility_extension_api_chromeos.h"
+#include "chrome/browser/accessibility/accessibility_extension_api_ash.h"
 
 #include <stddef.h>
 
@@ -394,14 +394,18 @@
 
   int modifiers = 0;
   if (key_data->modifiers) {
-    if (key_data->modifiers->ctrl && *key_data->modifiers->ctrl)
+    if (key_data->modifiers->ctrl && *key_data->modifiers->ctrl) {
       modifiers |= ui::EF_CONTROL_DOWN;
-    if (key_data->modifiers->alt && *key_data->modifiers->alt)
+    }
+    if (key_data->modifiers->alt && *key_data->modifiers->alt) {
       modifiers |= ui::EF_ALT_DOWN;
-    if (key_data->modifiers->search && *key_data->modifiers->search)
+    }
+    if (key_data->modifiers->search && *key_data->modifiers->search) {
       modifiers |= ui::EF_COMMAND_DOWN;
-    if (key_data->modifiers->shift && *key_data->modifiers->shift)
+    }
+    if (key_data->modifiers->shift && *key_data->modifiers->shift) {
       modifiers |= ui::EF_SHIFT_DOWN;
+    }
   }
 
   ui::KeyboardCode keyboard_code =
@@ -491,20 +495,23 @@
   int changed_button_flags = flags;
 
   flags |= ui::EF_IS_SYNTHESIZED;
-  if (mouse_data->touch_accessibility && *(mouse_data->touch_accessibility))
+  if (mouse_data->touch_accessibility && *(mouse_data->touch_accessibility)) {
     flags |= ui::EF_TOUCH_ACCESSIBILITY;
+  }
 
   // Locations are assumed to be in screen coordinates.
   gfx::Point location_in_screen(mouse_data->x, mouse_data->y);
   const display::Display& display =
       display::Screen::GetScreen()->GetDisplayNearestPoint(location_in_screen);
   auto* host = ash::GetWindowTreeHostForDisplay(display.id());
-  if (!host)
+  if (!host) {
     return RespondNow(NoArguments());
+  }
 
   aura::Window* root_window = host->window();
-  if (!root_window)
+  if (!root_window) {
     return RespondNow(NoArguments());
+  }
 
   aura::client::CursorClient* cursor_client =
       aura::client::GetCursorClient(root_window);
@@ -665,8 +672,9 @@
   }
 
   SkColor color;
-  if (!content::ParseHexColorString(params->color, &color))
+  if (!content::ParseHexColorString(params->color, &color)) {
     return RespondNow(Error("Could not parse hex color"));
+  }
 
   // Set the highlights to cover all of these rects.
   AccessibilityManager::Get()->SetHighlights(rects, color);
@@ -687,8 +695,9 @@
   AccessibilityManager* manager = AccessibilityManager::Get();
 
   const std::string current_id = manager->keyboard_listener_extension_id();
-  if (!current_id.empty() && extension()->id() != current_id)
+  if (!current_id.empty() && extension()->id() != current_id) {
     return RespondNow(Error("Existing keyboard listener registered."));
+  }
 
   manager->SetKeyboardListenerExtensionId(
       enabled ? extension()->id() : std::string(),
@@ -864,14 +873,16 @@
 ExtensionFunction::ResponseAction
 AccessibilityPrivateToggleDictationFunction::Run() {
   ash::DictationToggleSource source = ash::DictationToggleSource::kChromevox;
-  if (extension()->id() == extension_misc::kSwitchAccessExtensionId)
+  if (extension()->id() == extension_misc::kSwitchAccessExtensionId) {
     source = ash::DictationToggleSource::kSwitchAccess;
-  else if (extension()->id() == extension_misc::kChromeVoxExtensionId)
+  } else if (extension()->id() == extension_misc::kChromeVoxExtensionId) {
     source = ash::DictationToggleSource::kChromevox;
-  else if (extension()->id() == extension_misc::kAccessibilityCommonExtensionId)
+  } else if (extension()->id() ==
+             extension_misc::kAccessibilityCommonExtensionId) {
     source = ash::DictationToggleSource::kAccessibilityCommon;
-  else
+  } else {
     NOTREACHED();
+  }
 
   ash::AccessibilityController::Get()->ToggleDictationFromSource(source);
 
@@ -913,8 +924,9 @@
 
   // Extract text.
   absl::optional<std::u16string> text;
-  if (properties.text)
+  if (properties.text) {
     text = base::UTF8ToUTF16(*properties.text);
+  }
 
   // Extract hints.
   absl::optional<std::vector<ash::DictationBubbleHintType>> hints;
@@ -927,8 +939,9 @@
     hints = std::move(converted_hints);
   }
 
-  if (hints.has_value() && hints.value().size() > 5)
+  if (hints.has_value() && hints.value().size() > 5) {
     return RespondNow(Error("Should not provide more than five hints."));
+  }
 
   ash::AccessibilityController::Get()->UpdateDictationBubble(properties.visible,
                                                              icon, text, hints);
@@ -947,8 +960,9 @@
     return RespondNow(NoArguments());
   }
 
-  if (!params->anchor || !params->is_paused || !params->speed)
+  if (!params->anchor || !params->is_paused || !params->speed) {
     return RespondNow(Error("Required parameters missing to show panel."));
+  }
 
   const gfx::Rect anchor =
       gfx::Rect(params->anchor->left, params->anchor->top,
@@ -968,15 +982,18 @@
 
   if (!params->show) {
     if (params->bubble ==
-        accessibility_private::SWITCH_ACCESS_BUBBLE_BACKBUTTON)
+        accessibility_private::SWITCH_ACCESS_BUBBLE_BACKBUTTON) {
       ash::AccessibilityController::Get()->HideSwitchAccessBackButton();
-    else if (params->bubble == accessibility_private::SWITCH_ACCESS_BUBBLE_MENU)
+    } else if (params->bubble ==
+               accessibility_private::SWITCH_ACCESS_BUBBLE_MENU) {
       ash::AccessibilityController::Get()->HideSwitchAccessMenu();
+    }
     return RespondNow(NoArguments());
   }
 
-  if (!params->anchor)
+  if (!params->anchor) {
     return RespondNow(Error("An anchor rect is required to show a bubble."));
+  }
 
   gfx::Rect anchor(params->anchor->left, params->anchor->top,
                    params->anchor->width, params->anchor->height);
@@ -987,8 +1004,9 @@
     return RespondNow(NoArguments());
   }
 
-  if (!params->actions)
+  if (!params->actions) {
     return RespondNow(Error("The menu cannot be shown without actions."));
+  }
 
   std::vector<std::string> actions_to_show;
   for (accessibility_private::SwitchAccessMenuAction extension_action :
diff --git a/chrome/browser/accessibility/accessibility_extension_api_chromeos.h b/chrome/browser/accessibility/accessibility_extension_api_ash.h
similarity index 99%
rename from chrome/browser/accessibility/accessibility_extension_api_chromeos.h
rename to chrome/browser/accessibility/accessibility_extension_api_ash.h
index 4972202..beafc595 100644
--- a/chrome/browser/accessibility/accessibility_extension_api_chromeos.h
+++ b/chrome/browser/accessibility/accessibility_extension_api_ash.h
@@ -2,8 +2,8 @@
 // Use of this source code is governed by a BSD-style license that can be
 // found in the LICENSE file.
 
-#ifndef CHROME_BROWSER_ACCESSIBILITY_ACCESSIBILITY_EXTENSION_API_CHROMEOS_H_
-#define CHROME_BROWSER_ACCESSIBILITY_ACCESSIBILITY_EXTENSION_API_CHROMEOS_H_
+#ifndef CHROME_BROWSER_ACCESSIBILITY_ACCESSIBILITY_EXTENSION_API_ASH_H_
+#define CHROME_BROWSER_ACCESSIBILITY_ACCESSIBILITY_EXTENSION_API_ASH_H_
 
 // The functions in this file are alphabetized. Please insert new functions in
 // alphabetical order.
@@ -323,4 +323,4 @@
                              ACCESSIBILITY_PRIVATE_ISLACROSPRIMARY)
 };
 
-#endif  // CHROME_BROWSER_ACCESSIBILITY_ACCESSIBILITY_EXTENSION_API_CHROMEOS_H_
+#endif  // CHROME_BROWSER_ACCESSIBILITY_ACCESSIBILITY_EXTENSION_API_ASH_H_
diff --git a/chrome/browser/ash/BUILD.gn b/chrome/browser/ash/BUILD.gn
index 55c152d5..7d43106c 100644
--- a/chrome/browser/ash/BUILD.gn
+++ b/chrome/browser/ash/BUILD.gn
@@ -1934,6 +1934,8 @@
     "login/screens/update_required_screen.h",
     "login/screens/update_screen.cc",
     "login/screens/update_screen.h",
+    "login/screens/user_allowlist_check_screen.cc",
+    "login/screens/user_allowlist_check_screen.h",
     "login/screens/user_creation_screen.cc",
     "login/screens/user_creation_screen.h",
     "login/screens/user_selection_screen.cc",
diff --git a/chrome/browser/ash/accessibility/accessibility_manager.cc b/chrome/browser/ash/accessibility/accessibility_manager.cc
index 155b180..d072441e 100644
--- a/chrome/browser/ash/accessibility/accessibility_manager.cc
+++ b/chrome/browser/ash/accessibility/accessibility_manager.cc
@@ -44,7 +44,7 @@
 #include "base/task/thread_pool.h"
 #include "base/threading/scoped_blocking_call.h"
 #include "base/values.h"
-#include "chrome/browser/accessibility/accessibility_extension_api_chromeos.h"
+#include "chrome/browser/accessibility/accessibility_extension_api_ash.h"
 #include "chrome/browser/accessibility/pdf_ocr_controller.h"
 #include "chrome/browser/accessibility/pdf_ocr_controller_factory.h"
 #include "chrome/browser/ash/accessibility/accessibility_extension_loader.h"
diff --git a/chrome/browser/ash/app_restore/arc_ghost_window_shell_surface.cc b/chrome/browser/ash/app_restore/arc_ghost_window_shell_surface.cc
index a2930ba..bbadb1d 100644
--- a/chrome/browser/ash/app_restore/arc_ghost_window_shell_surface.cc
+++ b/chrome/browser/ash/app_restore/arc_ghost_window_shell_surface.cc
@@ -6,6 +6,7 @@
 
 #include "ash/frame/non_client_frame_view_ash.h"
 #include "ash/wm/desks/desks_util.h"
+#include "base/check_op.h"
 #include "chrome/browser/ash/app_list/arc/arc_app_list_prefs.h"
 #include "chrome/browser/ash/app_restore/arc_ghost_window_delegate.h"
 #include "chrome/browser/ash/app_restore/arc_ghost_window_view.h"
@@ -13,6 +14,8 @@
 #include "chrome/browser/ash/arc/window_predictor/window_predictor_utils.h"
 #include "chrome/browser/profiles/profile_manager.h"
 #include "chromeos/constants/chromeos_features.h"
+#include "chromeos/ui/base/window_state_type.h"
+#include "chromeos/ui/frame/frame_utils.h"
 #include "components/app_restore/app_restore_data.h"
 #include "components/app_restore/window_properties.h"
 #include "components/exo/buffer.h"
@@ -26,31 +29,6 @@
 
 namespace ash::full_restore {
 
-namespace {
-
-bool IsMaximizedState(
-    const absl::optional<chromeos::WindowStateType>& window_state) {
-  return window_state.has_value() &&
-         (window_state.value() == chromeos::WindowStateType::kMaximized ||
-          window_state.value() == chromeos::WindowStateType::kFullscreen);
-}
-
-bool IsMinimizedState(
-    const absl::optional<chromeos::WindowStateType>& window_state) {
-  return window_state.has_value() &&
-         window_state.value() == chromeos::WindowStateType::kMinimized;
-}
-
-bool ShouldHaveRoundedWindow(
-    const absl::optional<chromeos::WindowStateType>& window_state) {
-  return window_state.has_value() &&
-         (window_state.value() == chromeos::WindowStateType::kNormal ||
-          window_state.value() == chromeos::WindowStateType::kDefault ||
-          window_state.value() == chromeos::WindowStateType::kFloated);
-}
-
-}  // namespace
-
 // Explicitly identifies ARC ghost surface.
 DEFINE_UI_CLASS_PROPERTY_KEY(bool, kArcGhostSurface, false)
 
@@ -94,13 +72,17 @@
   int64_t display_id_value =
       restore_data->display_id.value_or(display::kInvalidDisplayId);
 
-  const auto& window_state = restore_data->window_state_type;
+  const chromeos::WindowStateType window_state =
+      restore_data->window_state_type.value_or(
+          chromeos::WindowStateType::kDefault);
+
   gfx::Rect local_bounds = bounds;
   // If the window is maximize / minimized, the initial bounds will be
   // unnecessary. Here set it as display size to ensure the content render is
   // correct.
   if (local_bounds.IsEmpty()) {
-    DCHECK(IsMaximizedState(window_state) || IsMinimizedState(window_state));
+    DCHECK(chromeos::IsMaximizedOrFullscreenWindowStateType(window_state) ||
+           chromeos::IsMinimizedWindowStateType(window_state));
     display::Display disp;
     display::Screen::GetScreen()->GetDisplayWithDisplayId(display_id_value,
                                                           &disp);
@@ -126,7 +108,7 @@
   // TODO(sstan): Add set_surface_destroyed_callback.
   shell_surface->set_delegate(std::make_unique<ArcGhostWindowDelegate>(
       shell_surface.get(), window_id, app_id, display_id_value, local_bounds,
-      window_state.value_or(chromeos::WindowStateType::kDefault)));
+      window_state));
   shell_surface->set_close_callback(std::move(close_callback));
 
   shell_surface->SetAppId(app_id);
@@ -152,8 +134,10 @@
 
   absl::optional<gfx::RoundedCornersF> overlay_corners_radii;
   if (chromeos::features::IsRoundedWindowsEnabled()) {
+    DCHECK_NE(window_state, chromeos::WindowStateType::kPip);
+
     const int window_corner_radius =
-        ShouldHaveRoundedWindow(window_state)
+        chromeos::ShouldHaveRoundedWindow(window_state)
             ? chromeos::features::RoundedWindowsRadius()
             : 0;
     shell_surface->SetWindowCornerRadii(
@@ -176,10 +160,10 @@
 
   // Change the window state at the last operation, since we need create the
   // window entity first.
-  if (IsMaximizedState(window_state)) {
+  if (chromeos::IsMaximizedOrFullscreenWindowStateType(window_state)) {
     shell_surface->SetMaximized();
     shell_surface->controller_surface()->Commit();
-  } else if (IsMinimizedState(window_state)) {
+  } else if (chromeos::IsMinimizedWindowStateType(window_state)) {
     shell_surface->SetMinimized();
     shell_surface->controller_surface()->Commit();
   } else {
diff --git a/chrome/browser/ash/arc/tracing/arc_tracing_graphics_model.cc b/chrome/browser/ash/arc/tracing/arc_tracing_graphics_model.cc
index 7d1bc233..17ed70c4 100644
--- a/chrome/browser/ash/arc/tracing/arc_tracing_graphics_model.cc
+++ b/chrome/browser/ash/arc/tracing/arc_tracing_graphics_model.cc
@@ -42,7 +42,6 @@
 
 constexpr char kUnknownActivity[] = "unknown";
 
-constexpr char kArgumentAppId[] = "app_id";
 constexpr char kArgumentBufferId[] = "buffer_id";
 
 constexpr char kKeyActivity[] = "activity";
@@ -59,12 +58,6 @@
 constexpr char kKeyTimestamp[] = "timestamp";
 constexpr char kKeyTitle[] = "title";
 
-constexpr char kAcquireBufferQuery[] =
-    "android:onMessageReceived/android:handleMessageInvalidate/"
-    "android:latchBuffer/android:updateTexImage/android:acquireBuffer";
-constexpr char kReleaseBufferQuery[] =
-    "android:onMessageReceived/android:handleMessageRefresh/"
-    "android:postComposition/android:releaseBuffer";
 constexpr char kDequeueBufferQuery[] = "android:dequeueBuffer";
 constexpr char kQueueBufferQuery[] = "android:queueBuffer";
 
@@ -304,100 +297,12 @@
   return android_buffer_name.substr(0, position);
 }
 
-// Processes surface flinger events. It selects events using |query| from the
-// model. Buffer id is extracted for the each returned event and new events are
-// grouped by its buffer id. If |surface_flinger_pid| is set to the positive
-// value than this activates filtering events by process id to avoid the case
-// when android:queueBuffer/dequeueBuffer events may appear in context of child
-// process and could be processed as surface flinger event. Returns positive
-// process id in case surface flinger events are found and belong to the same
-// process. In case of error -1 is returned.
-int ProcessSurfaceFlingerEvents(const ArcTracingModel& common_model,
-                                const std::string& query,
-                                BufferToEvents* buffer_to_events,
-                                int surface_flinger_pid) {
-  int detected_pid = -1;
-  const ArcTracingModel::TracingEventPtrs surface_flinger_events =
-      common_model.Select(query);
-  std::string buffer_id;
-  for (const ArcTracingEvent* event : surface_flinger_events) {
-    if (surface_flinger_pid > 0 && event->GetPid() != surface_flinger_pid)
-      continue;
-    if (!ExtractBufferIdFromSurfaceFlingerEvent(*event, &buffer_id)) {
-      LOG(ERROR) << "Failed to get buffer id from surface flinger event";
-      continue;
-    }
-    if (detected_pid < 0) {
-      DCHECK_GE(event->GetPid(), 0);
-      detected_pid = event->GetPid();
-    } else if (detected_pid != event->GetPid()) {
-      LOG(ERROR) << "Found multiple surface flinger process ids "
-                 << detected_pid << "/" << event->GetPid();
-      return -1;
-    }
-    ArcTracingGraphicsModel::BufferEvents& graphics_events =
-        (*buffer_to_events)[buffer_id];
-    GetEventMapper().Produce(*event, &graphics_events);
-  }
-  return detected_pid;
-}
-
-// Processes Android events acquireBuffer, releaseBuffer, dequeueBuffer and
-// queueBuffer. It returns map buffer id to the list of sorted by timestamp
-// events.
-bool GetSurfaceFlingerEvents(const ArcTracingModel& common_model,
-                             BufferToEvents* out_events) {
-  // Detect surface_flinger_pid using |kAcquireBufferQuery| that has unique
-  // hierarchy.
-  const int surface_flinger_pid =
-      ProcessSurfaceFlingerEvents(common_model, kAcquireBufferQuery, out_events,
-                                  -1 /* surface_flinger_pid */);
-  if (surface_flinger_pid <= 0) {
-    LOG(ERROR) << "Failed to detect acquireBuffer events.";
-    return false;
-  }
-
-  const int surface_flinger_release_buffer_pid =
-      ProcessSurfaceFlingerEvents(common_model, kReleaseBufferQuery, out_events,
-                                  -1 /* surface_flinger_pid */);
-  if (surface_flinger_release_buffer_pid <= 0) {
-    LOG(ERROR) << "Failed to detect releaseBuffer events.";
-    return false;
-  }
-
-  if (surface_flinger_pid != surface_flinger_release_buffer_pid) {
-    LOG(ERROR) << "Detected acquireBuffer and releaseBuffer from"
-                  " different processes.";
-    return false;
-  }
-
-  // queueBuffer and dequeueBuffer may appear in context of client task.
-  // Use detected |surface_flinger_pid| to filter out such events.
-  if (ProcessSurfaceFlingerEvents(common_model, kQueueBufferQuery, out_events,
-                                  surface_flinger_pid) < 0) {
-    LOG(ERROR) << "Failed to detect queueBuffer events.";
-    return false;
-  }
-
-  if (ProcessSurfaceFlingerEvents(common_model, kDequeueBufferQuery, out_events,
-                                  surface_flinger_pid) < 0) {
-    LOG(ERROR) << "Failed to detect dequeueBuffer events.";
-    return false;
-  }
-
-  for (auto& buffer : *out_events)
-    SortBufferEventsByTimestamp(&buffer.second);
-  return true;
-}
-
 // Processes exo events Surface::Attach and Buffer::ReleaseContents. Each event
 // has argument buffer_id that identifies graphics buffer on Chrome side.
-// buffer_id is just row pointer to internal class. If |buffer_id_to_task_id| is
-// set then it is updated to map buffer id to task id.
+// buffer_id is just row pointer to internal class.
 void ProcessChromeEvents(const ArcTracingModel& common_model,
                          const std::string& query,
-                         BufferToEvents* buffer_to_events,
-                         std::map<std::string, int>* buffer_id_to_task_id) {
+                         BufferToEvents* buffer_to_events) {
   const ArcTracingModel::TracingEventPtrs chrome_events =
       common_model.Select(query);
   for (const ArcTracingEvent* event : chrome_events) {
@@ -407,30 +312,13 @@
       LOG(ERROR) << "Failed to get buffer id from event: " << event->ToString();
       continue;
     }
-    if (buffer_id_to_task_id) {
-      const std::string app_id = event->GetArgAsString(
-          kArgumentAppId, std::string() /* default_value */);
-      if (app_id.empty()) {
-        LOG(ERROR) << "Failed to get app id from event: " << event->ToString();
-        continue;
-      }
-      auto task_id = GetTaskIdFromWindowAppId(app_id);
-      if (!task_id.has_value()) {
-        LOG(ERROR) << "Failed to parse app id from event: "
-                   << event->ToString();
-        continue;
-      }
-      (*buffer_id_to_task_id)[buffer_id] = *task_id;
-    }
     ArcTracingGraphicsModel::BufferEvents& graphics_events =
         (*buffer_to_events)[buffer_id];
     GetEventMapper().Produce(*event, &graphics_events);
   }
 }
 
-BufferToEvents GetChromeEvents(
-    const ArcTracingModel& common_model,
-    std::map<std::string, int>* buffer_id_to_task_id) {
+BufferToEvents GetChromeEvents(const ArcTracingModel& common_model) {
   // The tracing hierarchy may be easy changed any time in Chrome. This makes
   // using static queries fragile and dependent of many external components. To
   // provide the reliable way of requesting the needed information, let scan
@@ -454,7 +342,7 @@
   BufferToEvents per_buffer_chrome_events;
   // Only exo:Surface::Attach has app id argument.
   ProcessChromeEvents(common_model, attach_surface_query,
-                      &per_buffer_chrome_events, buffer_id_to_task_id);
+                      &per_buffer_chrome_events);
 
   for (auto& buffer : per_buffer_chrome_events)
     SortBufferEventsByTimestamp(&buffer.second);
@@ -499,33 +387,6 @@
   return kInvalidBufferIndex;
 }
 
-// Helper that finds valid pair of events for acquire/release buffer.
-// |kBufferQueueReleased| should go immediately after |kBufferQueueAcquire|
-// event with one exception of |kBufferQueueDequeueStart| that is allowed due to
-// asynchronous flow of requesting buffers in Android. Returns
-// |kInvalidBufferIndex| if such pair cannot be found.
-ssize_t FindAcquireReleasePair(
-    const ArcTracingGraphicsModel::BufferEvents& events,
-    size_t start_index) {
-  const ssize_t index_acquire =
-      FindEvent(events, BufferEventType::kBufferQueueAcquire, start_index);
-  if (index_acquire == kInvalidBufferIndex)
-    return kInvalidBufferIndex;
-
-  // kBufferQueueDequeueStart is allowed between kBufferQueueAcquire and
-  // kBufferQueueReleased.
-  for (size_t i = index_acquire + 1; i < events.size(); ++i) {
-    if (events[i].type == BufferEventType::kBufferQueueDequeueStart) {
-      continue;
-    }
-    if (events[i].type == BufferEventType::kBufferQueueReleased) {
-      return index_acquire;
-    }
-    break;
-  }
-  return kInvalidBufferIndex;
-}
-
 // Helper that performs bisection search of event of type |type| in the ordered
 // list of events |events|. Found event should have timestamp not later than
 // |timestamp|. Returns |kInvalidBufferIndex| in case event is not found.
@@ -551,60 +412,6 @@
   return kInvalidBufferIndex;
 }
 
-// Tries to match Android graphics buffer events and Chrome graphics buffer
-// events. There is no direct id usable to say if the same buffer is used or
-// not. This tests if two set of events potentially belong the same buffer and
-// return the maximum number of matching sequences. In case impossible
-// combination is found then it returns 0 score. Impossible combination for
-// example when we detect Chrome buffer was attached while it was not held by
-// Android between |kBufferQueueAcquire| and |kBufferQueueRelease.
-// The process of merging buffers continues while we can merge something. At
-// each iteration buffers with maximum merge score get merged. Practically,
-// having 20+ cycles (assuming 4 buffers in use) is enough to exactly identify
-// the same buffer in Chrome and Android. If needed more similar checks can be
-// added.
-size_t GetMergeScore(
-    const ArcTracingGraphicsModel::BufferEvents& surface_flinger_events,
-    const ArcTracingGraphicsModel::BufferEvents& chrome_events) {
-  ssize_t attach_index = -1;
-  ssize_t acquire_index = -1;
-  while (true) {
-    acquire_index =
-        FindAcquireReleasePair(surface_flinger_events, acquire_index + 1);
-    if (acquire_index == kInvalidBufferIndex)
-      return 0;
-    attach_index =
-        FindNotLaterThan(chrome_events, BufferEventType::kExoSurfaceAttach,
-                         surface_flinger_events[acquire_index + 1].timestamp);
-    if (attach_index >= 0)
-      break;
-  }
-  // From here buffers must be in sync. Attach should happen between acquire and
-  // release.
-  size_t score = 0;
-  while (true) {
-    const int64_t timestamp_from =
-        surface_flinger_events[acquire_index].timestamp;
-    const int64_t timestamp_to =
-        surface_flinger_events[acquire_index + 1].timestamp;
-    const int64_t timestamp = chrome_events[attach_index].timestamp;
-    if (timestamp < timestamp_from || timestamp > timestamp_to) {
-      return 0;
-    }
-    acquire_index =
-        FindAcquireReleasePair(surface_flinger_events, acquire_index + 2);
-    attach_index = FindEvent(chrome_events, BufferEventType::kExoSurfaceAttach,
-                             attach_index + 1);
-    if (acquire_index == kInvalidBufferIndex ||
-        attach_index == kInvalidBufferIndex) {
-      break;
-    }
-    ++score;
-  }
-
-  return score;
-}
-
 // Adds jank events into |ArcTracingGraphicsModel::EventsContainer|.
 // |pulse_event_type| defines the type of the event that should appear
 // periodically. Once it is missed in analyzed buffer events, new jank event is
@@ -882,64 +689,17 @@
 bool ArcTracingGraphicsModel::Build(const ArcTracingModel& common_model) {
   Reset();
 
-  BufferToEvents per_buffer_surface_flinger_events;
-  if (!GetSurfaceFlingerEvents(common_model,
-                               &per_buffer_surface_flinger_events)) {
-    if (!skip_structure_validation_)
-      return false;
-  }
-  BufferToEvents per_buffer_chrome_events =
-      GetChromeEvents(common_model, &chrome_buffer_id_to_task_id_);
-
-  // Try to merge surface flinger events and Chrome events. See |GetMergeScore|
-  // for more details.
-  while (true) {
-    size_t max_merge_score = 0;
-    std::string surface_flinger_buffer_id;
-    std::string chrome_buffer_id;
-    for (const auto& surface_flinger_buffer :
-         per_buffer_surface_flinger_events) {
-      for (const auto& chrome_buffer : per_buffer_chrome_events) {
-        const size_t merge_score =
-            GetMergeScore(surface_flinger_buffer.second, chrome_buffer.second);
-        if (merge_score > max_merge_score) {
-          max_merge_score = merge_score;
-          surface_flinger_buffer_id = surface_flinger_buffer.first;
-          chrome_buffer_id = chrome_buffer.first;
-        }
-      }
-    }
-    if (!max_merge_score)
-      break;  // No more merge candidates.
-
-    const ViewId view_id(GetTaskIdFromBufferName(chrome_buffer_id),
-                         GetActivityFromBufferName(surface_flinger_buffer_id));
-
-    std::vector<BufferEvents>& view_buffers =
-        view_buffers_[view_id].buffer_events();
-    view_buffers.push_back(std::move(
-        per_buffer_surface_flinger_events[surface_flinger_buffer_id]));
-    per_buffer_surface_flinger_events.erase(surface_flinger_buffer_id);
-    view_buffers.back().insert(
-        view_buffers.back().end(),
-        per_buffer_chrome_events[chrome_buffer_id].begin(),
-        per_buffer_chrome_events[chrome_buffer_id].end());
-    per_buffer_chrome_events.erase(chrome_buffer_id);
-    SortBufferEventsByTimestamp(&view_buffers.back());
-  }
-
-  for (auto& buffer : per_buffer_surface_flinger_events) {
-    LOG(WARNING) << "Failed to merge events for buffer: " << buffer.first;
-    view_buffers_[ViewId(-1 /* task_id */,
-                         GetActivityFromBufferName(buffer.first))]
-        .buffer_events()
-        .emplace_back(std::move(buffer.second));
-  }
+  BufferToEvents per_buffer_chrome_events = GetChromeEvents(common_model);
 
   for (auto& buffer : per_buffer_chrome_events) {
-    LOG(WARNING) << "Failed to merge events for buffer: " << buffer.first;
-    view_buffers_[ViewId(GetTaskIdFromBufferName(buffer.first),
-                         kUnknownActivity)]
+    // TODO(b/296595454): Remove the mapping mechanism as it was only needed for
+    // arc-graphics-tracing, and use callbacks to only get buffer updates for
+    // a single task.
+    // Note that JS code for arc-overview-tracing conflates the buffers for all
+    // view IDs when calculating app commit time and FPS (see
+    // getAppCommitEvents), so we don't gain anything by generating unique view
+    // IDs here.
+    view_buffers_[ViewId(1 /* task_id */, kUnknownActivity)]
         .buffer_events()
         .emplace_back(std::move(buffer.second));
   }
@@ -1036,7 +796,6 @@
 void ArcTracingGraphicsModel::Reset() {
   chrome_top_level_.Reset();
   view_buffers_.clear();
-  chrome_buffer_id_to_task_id_.clear();
   system_model_.Reset();
   duration_ = 0;
   app_title_ = std::string();
@@ -1063,14 +822,6 @@
   system_model_.Trim(trim_timestamp);
 }
 
-int ArcTracingGraphicsModel::GetTaskIdFromBufferName(
-    const std::string& chrome_buffer_name) const {
-  const auto it = chrome_buffer_id_to_task_id_.find(chrome_buffer_name);
-  if (it == chrome_buffer_id_to_task_id_.end())
-    return -1;
-  return it->second;
-}
-
 base::Value::Dict ArcTracingGraphicsModel::Serialize() const {
   base::Value::Dict root;
 
diff --git a/chrome/browser/ash/arc/tracing/arc_tracing_graphics_model.h b/chrome/browser/ash/arc/tracing/arc_tracing_graphics_model.h
index 4016e95..1a9a564d 100644
--- a/chrome/browser/ash/arc/tracing/arc_tracing_graphics_model.h
+++ b/chrome/browser/ash/arc/tracing/arc_tracing_graphics_model.h
@@ -217,10 +217,6 @@
   // graphics buffer confusing.
   void VsyncTrim();
 
-  // Extracts task id from the Chrome buffer name. Returns -1 if task id cannot
-  // be extracted.
-  int GetTaskIdFromBufferName(const std::string& chrome_buffer_name) const;
-
   ViewMap view_buffers_;
   // To avoid overlapping events are stored interlaced.
   EventsContainer chrome_top_level_;
@@ -235,8 +231,6 @@
   // Timestamp of tracing.
   base::Time timestamp_;
 
-  // Map Chrome buffer id to task id.
-  std::map<std::string, int> chrome_buffer_id_to_task_id_;
   // CPU event model.
   ArcSystemModel system_model_;
   // Allows to have model incomplete, used in overview and in tests.
diff --git a/chrome/browser/ash/arc/tracing/arc_tracing_model_unittest.cc b/chrome/browser/ash/arc/tracing/arc_tracing_model_unittest.cc
index 00ede32..38595c4 100644
--- a/chrome/browser/ash/arc/tracing/arc_tracing_model_unittest.cc
+++ b/chrome/browser/ash/arc/tracing/arc_tracing_model_unittest.cc
@@ -213,15 +213,7 @@
     EXPECT_FALSE(view.second.buffer_events().empty());
     for (const auto& buffer : view.second.buffer_events()) {
       EXPECT_TRUE(ValidateGrahpicsEvents(
-          buffer, {
-                      GraphicsEventType::kBufferQueueDequeueStart,
-                      GraphicsEventType::kBufferQueueDequeueDone,
-                      GraphicsEventType::kBufferQueueQueueStart,
-                      GraphicsEventType::kBufferQueueQueueDone,
-                      GraphicsEventType::kBufferQueueAcquire,
-                      GraphicsEventType::kBufferQueueReleased,
-                      GraphicsEventType::kExoSurfaceAttach,
-                  }));
+          buffer, {GraphicsEventType::kExoSurfaceAttach}));
     }
   }
 
diff --git a/chrome/browser/ash/file_manager/file_manager_browsertest.cc b/chrome/browser/ash/file_manager/file_manager_browsertest.cc
index 9edc6759..af6dd8a 100644
--- a/chrome/browser/ash/file_manager/file_manager_browsertest.cc
+++ b/chrome/browser/ash/file_manager/file_manager_browsertest.cc
@@ -1586,8 +1586,14 @@
     GuestOs, /* guest_os.js */
     FilesAppBrowserTest,
     ::testing::Values(TestCase("fakesListed"),
-                      TestCase("listUpdatedWhenGuestsChanged"),
+                      TestCase("listUpdatedWhenGuestsChanged")
+// TODO(http://crbug.com/1486453): Flaky on ASan.
+#if !defined(ADDRESS_SANITIZER) && !defined(LEAK_SANITIZER) && \
+    !defined(MEMORY_SANITIZER)
+                          ,
                       TestCase("mountGuestSuccess"),
-                      TestCase("mountAndroidVolumeSuccess").EnableArcVm()));
+                      TestCase("mountAndroidVolumeSuccess").EnableArcVm()
+#endif
+                          ));
 
 }  // namespace file_manager
diff --git a/chrome/browser/ash/file_manager/file_tasks.cc b/chrome/browser/ash/file_manager/file_tasks.cc
index 3e19c36..7084695 100644
--- a/chrome/browser/ash/file_manager/file_tasks.cc
+++ b/chrome/browser/ash/file_manager/file_tasks.cc
@@ -590,7 +590,8 @@
 void UpdateDefaultTask(Profile* profile,
                        const TaskDescriptor& task_descriptor,
                        const std::set<std::string>& suffixes,
-                       const std::set<std::string>& mime_types) {
+                       const std::set<std::string>& mime_types,
+                       bool replace_existing) {
   PrefService* pref_service = profile->GetPrefs();
   if (!pref_service) {
     return;
@@ -646,6 +647,9 @@
     ScopedDictPrefUpdate mime_type_pref(pref_service,
                                         prefs::kDefaultTasksByMimeType);
     for (const std::string& mime_type : mime_types_to_set) {
+      if (!replace_existing && mime_type_pref->contains(mime_type)) {
+        continue;
+      }
       mime_type_pref->Set(mime_type, task_id);
     }
   }
@@ -654,6 +658,9 @@
     ScopedDictPrefUpdate suffix_pref(pref_service,
                                      prefs::kDefaultTasksBySuffix);
     for (const std::string& suffix : suffixes_to_set) {
+      if (!replace_existing && suffix_pref->contains(suffix)) {
+        continue;
+      }
       suffix_pref->Set(suffix, task_id);
     }
   }
@@ -662,6 +669,37 @@
                                suffixes_to_set);
 }
 
+void RemoveDefaultTask(Profile* profile,
+                       const TaskDescriptor& task_descriptor,
+                       const std::set<std::string>& suffixes,
+                       const std::set<std::string>& mime_types) {
+  PrefService* pref_service = profile->GetPrefs();
+  std::string task_id = TaskDescriptorToId(task_descriptor);
+
+  std::set<std::string> suffixes_to_remove;
+  // Suffixes are case insensitive.
+  base::ranges::transform(
+      suffixes, std::inserter(suffixes_to_remove, suffixes_to_remove.begin()),
+      [](const std::string& suffix) { return base::ToLowerASCII(suffix); });
+
+  ScopedDictPrefUpdate mime_type_pref(pref_service,
+                                      prefs::kDefaultTasksByMimeType);
+  for (const auto& mime_type : mime_types) {
+    std::string* pref_value = mime_type_pref->FindString(mime_type);
+    if (pref_value && *pref_value == task_id) {
+      mime_type_pref->Remove(mime_type);
+    }
+  }
+
+  ScopedDictPrefUpdate suffix_pref(pref_service, prefs::kDefaultTasksBySuffix);
+  for (const auto& suffix : suffixes_to_remove) {
+    std::string* pref_value = suffix_pref->FindString(suffix);
+    if (pref_value && *pref_value == task_id) {
+      suffix_pref->Remove(suffix);
+    }
+  }
+}
+
 absl::optional<TaskDescriptor> GetDefaultTaskFromPrefs(
     const PrefService& pref_service,
     const std::string& mime_type,
diff --git a/chrome/browser/ash/file_manager/file_tasks.h b/chrome/browser/ash/file_manager/file_tasks.h
index 778b5ea3..838b5fd 100644
--- a/chrome/browser/ash/file_manager/file_tasks.h
+++ b/chrome/browser/ash/file_manager/file_tasks.h
@@ -242,10 +242,18 @@
 void RegisterProfilePrefs(user_prefs::PrefRegistrySyncable*);
 
 // Update the default file handler for the given sets of suffixes and MIME
-// types.
+// types. If |replace_existing| is false, does not rewrite existing prefs.
 void UpdateDefaultTask(Profile* profile,
                        const TaskDescriptor& task_descriptor,
                        const std::set<std::string>& suffixes,
+                       const std::set<std::string>& mime_types,
+                       bool replace_existing = true);
+
+// Remove the specified file handler for the given sets of suffixes and MIME
+// types.
+void RemoveDefaultTask(Profile* profile,
+                       const TaskDescriptor& task_descriptor,
+                       const std::set<std::string>& suffixes,
                        const std::set<std::string>& mime_types);
 
 // Returns the default task for the given |mime_type|/|suffix| combination in
diff --git a/chrome/browser/ash/file_manager/file_tasks_unittest.cc b/chrome/browser/ash/file_manager/file_tasks_unittest.cc
index 152d556..3b44b19 100644
--- a/chrome/browser/ash/file_manager/file_tasks_unittest.cc
+++ b/chrome/browser/ash/file_manager/file_tasks_unittest.cc
@@ -755,4 +755,56 @@
   ASSERT_EQ(*default_task_id, files_task_id);
 }
 
+TEST_F(FileManagerFileTaskPreferencesTest, RemoveDefaultTask) {
+  TaskDescriptor app1_view("app1", TASK_TYPE_FILE_BROWSER_HANDLER, "view");
+  TaskDescriptor app1_edit("app1", TASK_TYPE_FILE_BROWSER_HANDLER, "edit");
+  TaskDescriptor app2_view("app2", TASK_TYPE_FILE_BROWSER_HANDLER, "view");
+
+  UpdateDefaultTask(profile(), app1_view, {"eXT1", "ext2"}, {"mime1", "mime2"});
+  UpdateDefaultTask(profile(), app1_edit, {"Ext3"}, {"mime3"});
+  UpdateDefaultTask(profile(), app2_view, {"ext4"}, {"mime4"});
+
+  // Removing app1_edit or app2_view should not change app1_view.
+  RemoveDefaultTask(profile(), app1_edit, {"ext1"}, {"mime1"});
+  RemoveDefaultTask(profile(), app2_view, {"ext1"}, {"mime1"});
+  EXPECT_EQ("app1|file|view", *tasks_by_suffix().FindString("ext1"));
+  EXPECT_EQ("app1|file|view", *tasks_by_mime_type().FindString("mime1"));
+
+  // Suffix match should be case-insensitive. Only specified suffixes or mimes
+  // should be removed, others should not change.
+  RemoveDefaultTask(profile(), app1_view, {"Ext1"}, {"mime1"});
+  EXPECT_EQ(nullptr, tasks_by_suffix().FindString("ext1"));
+  EXPECT_EQ(nullptr, tasks_by_mime_type().FindString("mime1"));
+  EXPECT_EQ("app1|file|view", *tasks_by_suffix().FindString("ext2"));
+  EXPECT_EQ("app1|file|view", *tasks_by_mime_type().FindString("mime2"));
+
+  // Remove all matches for app1_view.
+  RemoveDefaultTask(profile(), app1_view, {"ext1", "ext2"}, {"mime1", "mime2"});
+  EXPECT_EQ(nullptr, tasks_by_suffix().FindString("ext1"));
+  EXPECT_EQ(nullptr, tasks_by_suffix().FindString("ext2"));
+  EXPECT_EQ(nullptr, tasks_by_mime_type().FindString("mime1"));
+  EXPECT_EQ(nullptr, tasks_by_mime_type().FindString("mime2"));
+}
+
+TEST_F(FileManagerFileTaskPreferencesTest, UpdateDefaultTask_ReplaceExisting) {
+  TaskDescriptor app1("app1", TASK_TYPE_FILE_BROWSER_HANDLER, "view");
+  TaskDescriptor app2("app2", TASK_TYPE_FILE_BROWSER_HANDLER, "view");
+
+  // Replace-existing true or false both work when no existing task exists.
+  UpdateDefaultTask(profile(), app1, {"ext1"}, {"mime1"}, true);
+  UpdateDefaultTask(profile(), app2, {"ext2"}, {"mime2"}, false);
+  EXPECT_EQ("app1|file|view", *tasks_by_suffix().FindString("ext1"));
+  EXPECT_EQ("app2|file|view", *tasks_by_suffix().FindString("ext2"));
+  EXPECT_EQ("app1|file|view", *tasks_by_mime_type().FindString("mime1"));
+  EXPECT_EQ("app2|file|view", *tasks_by_mime_type().FindString("mime2"));
+
+  // Replace-existing true should overwrite, false should not.
+  UpdateDefaultTask(profile(), app2, {"ext1"}, {"mime1"}, true);
+  UpdateDefaultTask(profile(), app1, {"ext2"}, {"mime2"}, false);
+  EXPECT_EQ("app2|file|view", *tasks_by_suffix().FindString("ext1"));
+  EXPECT_EQ("app2|file|view", *tasks_by_suffix().FindString("ext2"));
+  EXPECT_EQ("app2|file|view", *tasks_by_mime_type().FindString("mime1"));
+  EXPECT_EQ("app2|file|view", *tasks_by_mime_type().FindString("mime2"));
+}
+
 }  // namespace file_manager::file_tasks
diff --git a/chrome/browser/ash/file_manager/office_file_tasks.cc b/chrome/browser/ash/file_manager/office_file_tasks.cc
index 682f5080..ac106ca 100644
--- a/chrome/browser/ash/file_manager/office_file_tasks.cc
+++ b/chrome/browser/ash/file_manager/office_file_tasks.cc
@@ -339,15 +339,19 @@
   return extension_task_prefs.contains(lower_extension);
 }
 
-void SetWordFileHandler(Profile* profile, const TaskDescriptor& task) {
-  UpdateDefaultTask(profile, task, WordGroupExtensions(), WordGroupMimeTypes());
+void SetWordFileHandler(Profile* profile,
+                        const TaskDescriptor& task,
+                        bool replace_existing) {
+  UpdateDefaultTask(profile, task, WordGroupExtensions(), WordGroupMimeTypes(),
+                    replace_existing);
 }
 
 void SetWordFileHandlerToFilesSWA(Profile* profile,
-                                  const std::string& action_id) {
+                                  const std::string& action_id,
+                                  bool replace_existing) {
   TaskDescriptor task(kFileManagerSwaAppId, TaskType::TASK_TYPE_WEB_APP,
                       ToSwaActionId(action_id));
-  SetWordFileHandler(profile, task);
+  SetWordFileHandler(profile, task, replace_existing);
 }
 
 std::set<std::string> ExcelGroupExtensions() {
@@ -366,16 +370,19 @@
   return *mime_types;
 }
 
-void SetExcelFileHandler(Profile* profile, const TaskDescriptor& task) {
+void SetExcelFileHandler(Profile* profile,
+                         const TaskDescriptor& task,
+                         bool replace_existing) {
   UpdateDefaultTask(profile, task, ExcelGroupExtensions(),
-                    ExcelGroupMimeTypes());
+                    ExcelGroupMimeTypes(), replace_existing);
 }
 
 void SetExcelFileHandlerToFilesSWA(Profile* profile,
-                                   const std::string& action_id) {
+                                   const std::string& action_id,
+                                   bool replace_existing) {
   TaskDescriptor task(kFileManagerSwaAppId, TaskType::TASK_TYPE_WEB_APP,
                       ToSwaActionId(action_id));
-  SetExcelFileHandler(profile, task);
+  SetExcelFileHandler(profile, task, replace_existing);
 }
 
 std::set<std::string> PowerPointGroupExtensions() {
@@ -393,18 +400,20 @@
   return *mime_types;
 }
 
-void SetPowerPointFileHandler(Profile* profile, const TaskDescriptor& task) {
+void SetPowerPointFileHandler(Profile* profile,
+                              const TaskDescriptor& task,
+                              bool replace_existing) {
   UpdateDefaultTask(profile, task, PowerPointGroupExtensions(),
-                    PowerPointGroupMimeTypes());
+                    PowerPointGroupMimeTypes(), replace_existing);
 }
 
 void SetPowerPointFileHandlerToFilesSWA(Profile* profile,
-                                        const std::string& action_id) {
+                                        const std::string& action_id,
+                                        bool replace_existing) {
   TaskDescriptor task(kFileManagerSwaAppId, TaskType::TASK_TYPE_WEB_APP,
                       ToSwaActionId(action_id));
-  SetPowerPointFileHandler(profile, task);
+  SetPowerPointFileHandler(profile, task, replace_existing);
 }
-
 void SetAlwaysMoveOfficeFilesToDrive(Profile* profile, bool always_move) {
   profile->GetPrefs()->SetBoolean(prefs::kOfficeFilesAlwaysMoveToDrive,
                                   always_move);
@@ -497,4 +506,27 @@
   profile->GetPrefs()->SetTime(prefs::kOfficeFileMovedToGoogleDrive, moved);
 }
 
+void RemoveFilesSWAWordFileHandler(Profile* profile,
+                                   const std::string& action_id) {
+  TaskDescriptor task(kFileManagerSwaAppId, TaskType::TASK_TYPE_WEB_APP,
+                      ToSwaActionId(action_id));
+  RemoveDefaultTask(profile, task, WordGroupExtensions(), WordGroupMimeTypes());
+}
+
+void RemoveFilesSWAExcelFileHandler(Profile* profile,
+                                    const std::string& action_id) {
+  TaskDescriptor task(kFileManagerSwaAppId, TaskType::TASK_TYPE_WEB_APP,
+                      ToSwaActionId(action_id));
+  RemoveDefaultTask(profile, task, ExcelGroupExtensions(),
+                    ExcelGroupMimeTypes());
+}
+
+void RemoveFilesSWAPowerPointFileHandler(Profile* profile,
+                                         const std::string& action_id) {
+  TaskDescriptor task(kFileManagerSwaAppId, TaskType::TASK_TYPE_WEB_APP,
+                      ToSwaActionId(action_id));
+  RemoveDefaultTask(profile, task, PowerPointGroupExtensions(),
+                    PowerPointGroupMimeTypes());
+}
+
 }  // namespace file_manager::file_tasks
diff --git a/chrome/browser/ash/file_manager/office_file_tasks.h b/chrome/browser/ash/file_manager/office_file_tasks.h
index f6b3ceb..fd1340c3c5 100644
--- a/chrome/browser/ash/file_manager/office_file_tasks.h
+++ b/chrome/browser/ash/file_manager/office_file_tasks.h
@@ -197,9 +197,15 @@
 std::set<std::string> PowerPointGroupMimeTypes();
 
 // Updates the default task for each of the office file types.
-void SetWordFileHandler(Profile* profile, const TaskDescriptor& task);
-void SetExcelFileHandler(Profile* profile, const TaskDescriptor& task);
-void SetPowerPointFileHandler(Profile* profile, const TaskDescriptor& task);
+void SetWordFileHandler(Profile* profile,
+                        const TaskDescriptor& task,
+                        bool replace_existing = true);
+void SetExcelFileHandler(Profile* profile,
+                         const TaskDescriptor& task,
+                         bool replace_existing = true);
+void SetPowerPointFileHandler(Profile* profile,
+                              const TaskDescriptor& task,
+                              bool replace_existing = true);
 
 // Whether we have an explicit user preference stored for the file handler for
 // this extension. |extension| should contain the leading '.'.
@@ -210,11 +216,23 @@
 // SWA with |action_id|. |action_id| must be a valid action registered with the
 // Files app SWA.
 void SetWordFileHandlerToFilesSWA(Profile* profile,
-                                  const std::string& action_id);
+                                  const std::string& action_id,
+                                  bool replace_existing = true);
 void SetExcelFileHandlerToFilesSWA(Profile* profile,
-                                   const std::string& action_id);
+                                   const std::string& action_id,
+                                   bool replace_existing = true);
 void SetPowerPointFileHandlerToFilesSWA(Profile* profile,
-                                        const std::string& action_id);
+                                        const std::string& action_id,
+                                        bool replace_existing = true);
+
+// Removes the specified default task for |action_id| for each of the office
+// file types.
+void RemoveFilesSWAWordFileHandler(Profile* profile,
+                                   const std::string& action_id);
+void RemoveFilesSWAExcelFileHandler(Profile* profile,
+                                    const std::string& action_id);
+void RemoveFilesSWAPowerPointFileHandler(Profile* profile,
+                                         const std::string& action_id);
 
 // Sets the user preference storing whether we should always move office files
 // to Google Drive without first asking the user.
diff --git a/chrome/browser/ash/file_manager/office_file_tasks_unittest.cc b/chrome/browser/ash/file_manager/office_file_tasks_unittest.cc
index 3bf771b..0fbb91a0 100644
--- a/chrome/browser/ash/file_manager/office_file_tasks_unittest.cc
+++ b/chrome/browser/ash/file_manager/office_file_tasks_unittest.cc
@@ -179,68 +179,94 @@
                       "chrome://file-manager/?a");
 
   // Check no default tasks exist for Doc files.
-  ASSERT_FALSE(file_manager::file_tasks::GetDefaultTaskFromPrefs(
-      *profile()->GetPrefs(), "application/msword", ".doc"));
-  ASSERT_FALSE(file_manager::file_tasks::GetDefaultTaskFromPrefs(
-      *profile()->GetPrefs(),
+  std::string docx_mime(
       "application/"
-      "vnd.openxmlformats-officedocument.wordprocessingml.document",
-      ".docx"));
+      "vnd.openxmlformats-officedocument.wordprocessingml.document");
+  EXPECT_FALSE(file_manager::file_tasks::GetDefaultTaskFromPrefs(
+      *profile()->GetPrefs(), "application/msword", ".doc"));
+  EXPECT_FALSE(file_manager::file_tasks::GetDefaultTaskFromPrefs(
+      *profile()->GetPrefs(), docx_mime, ".docx"));
   // Set default task for Doc files as a Files App SWA with action id "a".
   SetWordFileHandlerToFilesSWA(profile(), "a");
   // Check the default task for Doc files is `task`.
-  ASSERT_EQ(file_manager::file_tasks::GetDefaultTaskFromPrefs(
+  EXPECT_EQ(file_manager::file_tasks::GetDefaultTaskFromPrefs(
                 *profile()->GetPrefs(), "application/msword", ".doc"),
             task);
-  ASSERT_EQ(file_manager::file_tasks::GetDefaultTaskFromPrefs(
-                *profile()->GetPrefs(),
-                "application/"
-                "vnd.openxmlformats-officedocument.wordprocessingml.document",
-                ".docx"),
+  EXPECT_EQ(file_manager::file_tasks::GetDefaultTaskFromPrefs(
+                *profile()->GetPrefs(), docx_mime, ".docx"),
             task);
+  // Update with replace_existing=false should not change the default.
+  SetWordFileHandlerToFilesSWA(profile(), "b", false);
+  EXPECT_EQ(file_manager::file_tasks::GetDefaultTaskFromPrefs(
+                *profile()->GetPrefs(), "application/msword", ".doc"),
+            task);
+  EXPECT_EQ(file_manager::file_tasks::GetDefaultTaskFromPrefs(
+                *profile()->GetPrefs(), docx_mime, ".docx"),
+            task);
+  // Removing an action which is not set should not change the default.
+  RemoveFilesSWAWordFileHandler(profile(), "b");
+  EXPECT_EQ(file_manager::file_tasks::GetDefaultTaskFromPrefs(
+                *profile()->GetPrefs(), "application/msword", ".doc"),
+            task);
+  EXPECT_EQ(file_manager::file_tasks::GetDefaultTaskFromPrefs(
+                *profile()->GetPrefs(), docx_mime, ".docx"),
+            task);
+  // Remove the task.
+  RemoveFilesSWAWordFileHandler(profile(), "a");
+  EXPECT_FALSE(file_manager::file_tasks::GetDefaultTaskFromPrefs(
+      *profile()->GetPrefs(), "application/msword", ".doc"));
+  EXPECT_FALSE(file_manager::file_tasks::GetDefaultTaskFromPrefs(
+      *profile()->GetPrefs(), docx_mime, ".docx"));
 
   // Check no default tasks exist for Excel files.
-  ASSERT_FALSE(file_manager::file_tasks::GetDefaultTaskFromPrefs(
+  std::string xlsx_mime(
+      "application/"
+      "vnd.openxmlformats-officedocument.spreadsheetml.sheet");
+  EXPECT_FALSE(file_manager::file_tasks::GetDefaultTaskFromPrefs(
       *profile()->GetPrefs(), "application/vnd.ms-excel", ".xls"));
-  ASSERT_FALSE(file_manager::file_tasks::GetDefaultTaskFromPrefs(
-      *profile()->GetPrefs(),
-      "application/vnd.openxmlformats-officedocument.spreadsheetml.sheet",
-      ".xlsx"));
+  EXPECT_FALSE(file_manager::file_tasks::GetDefaultTaskFromPrefs(
+      *profile()->GetPrefs(), xlsx_mime, ".xlsx"));
   // Set default task for Excel files as a Files App SWA with action id "a".
   SetExcelFileHandlerToFilesSWA(profile(), "a");
   // Check the default task for Excel files is `task`.
   ASSERT_EQ(file_manager::file_tasks::GetDefaultTaskFromPrefs(
                 *profile()->GetPrefs(), "application/vnd.ms-excel", ".xls"),
             task);
-  ASSERT_EQ(
-      file_manager::file_tasks::GetDefaultTaskFromPrefs(
-          *profile()->GetPrefs(),
-          "application/vnd.openxmlformats-officedocument.spreadsheetml.sheet",
-          ".xlsx"),
-      task);
+  ASSERT_EQ(file_manager::file_tasks::GetDefaultTaskFromPrefs(
+                *profile()->GetPrefs(), xlsx_mime, ".xlsx"),
+            task);
+  // Remove the task.
+  RemoveFilesSWAExcelFileHandler(profile(), "a");
+  EXPECT_FALSE(file_manager::file_tasks::GetDefaultTaskFromPrefs(
+      *profile()->GetPrefs(), "application/vnd.ms-excel", ".xls"));
+  EXPECT_FALSE(file_manager::file_tasks::GetDefaultTaskFromPrefs(
+      *profile()->GetPrefs(), xlsx_mime, ".xlsx"));
 
   // Check no default tasks exist for Powerpoint files.
-  ASSERT_FALSE(file_manager::file_tasks::GetDefaultTaskFromPrefs(
-      *profile()->GetPrefs(), "application/vnd.ms-powerpoint", ".ppt"));
-  ASSERT_FALSE(file_manager::file_tasks::GetDefaultTaskFromPrefs(
-      *profile()->GetPrefs(),
+  std::string pptx_mime(
       "application/"
-      "vnd.openxmlformats-officedocument.presentationml.presentation",
-      ".pptx"));
+      "vnd.openxmlformats-officedocument.presentationml.presentation");
+  EXPECT_FALSE(file_manager::file_tasks::GetDefaultTaskFromPrefs(
+      *profile()->GetPrefs(), "application/vnd.ms-powerpoint", ".ppt"));
+  EXPECT_FALSE(file_manager::file_tasks::GetDefaultTaskFromPrefs(
+      *profile()->GetPrefs(), pptx_mime, ".pptx"));
   // Set default task for Powerpoint files as a Files App SWA with action id
   // "a".
   SetPowerPointFileHandlerToFilesSWA(profile(), "a");
   // Check the default task for Powerpoint files is `task`.
-  ASSERT_EQ(
+  EXPECT_EQ(
       file_manager::file_tasks::GetDefaultTaskFromPrefs(
           *profile()->GetPrefs(), "application/vnd.ms-powerpoint", ".ppt"),
       task);
-  ASSERT_EQ(file_manager::file_tasks::GetDefaultTaskFromPrefs(
-                *profile()->GetPrefs(),
-                "application/"
-                "vnd.openxmlformats-officedocument.presentationml.presentation",
-                ".pptx"),
+  EXPECT_EQ(file_manager::file_tasks::GetDefaultTaskFromPrefs(
+                *profile()->GetPrefs(), pptx_mime, ".pptx"),
             task);
+  // Remove the task.
+  RemoveFilesSWAPowerPointFileHandler(profile(), "a");
+  EXPECT_FALSE(file_manager::file_tasks::GetDefaultTaskFromPrefs(
+      *profile()->GetPrefs(), "application/vnd.ms-powerpoint", ".ppt"));
+  EXPECT_FALSE(file_manager::file_tasks::GetDefaultTaskFromPrefs(
+      *profile()->GetPrefs(), pptx_mime, ".pptx"));
 }
 
 }  // namespace file_manager::file_tasks
diff --git a/chrome/browser/ash/login/debug_overlay_browsertest.cc b/chrome/browser/ash/login/debug_overlay_browsertest.cc
index de304f5a..7247eb7 100644
--- a/chrome/browser/ash/login/debug_overlay_browsertest.cc
+++ b/chrome/browser/ash/login/debug_overlay_browsertest.cc
@@ -21,8 +21,8 @@
 constexpr char kDebugOverlay[] = "debuggerOverlay";
 constexpr char kScreensPanel[] = "DebuggerPanelScreens";
 
-constexpr int kOobeScreensCount = 50;
-constexpr int kLoginScreensCount = 46;
+constexpr int kOobeScreensCount = 51;
+constexpr int kLoginScreensCount = 47;
 constexpr int kOsInstallScreensCount = 2;
 
 std::string ElementsInPanel(const std::string& panel) {
diff --git a/chrome/browser/ash/login/screens/gaia_screen.cc b/chrome/browser/ash/login/screens/gaia_screen.cc
index 42cc821..c79b7841 100644
--- a/chrome/browser/ash/login/screens/gaia_screen.cc
+++ b/chrome/browser/ash/login/screens/gaia_screen.cc
@@ -34,7 +34,6 @@
 constexpr char kUserActionCancel[] = "cancel";
 constexpr char kUserActionStartEnrollment[] = "startEnrollment";
 constexpr char kUserActionReloadDefault[] = "reloadDefault";
-constexpr char kUserActionRetry[] = "retry";
 constexpr char kUserActionEnterIdentifier[] = "identifierEntered";
 constexpr char kUserActionQuickStartButtonClicked[] = "activateQuickStart";
 
@@ -169,12 +168,6 @@
   }
 }
 
-void GaiaScreen::ShowAllowlistCheckFailedError() {
-  if (!view_)
-    return;
-  view_->ShowAllowlistCheckFailedError();
-}
-
 void GaiaScreen::Reset() {
   if (!view_)
     return;
@@ -257,8 +250,6 @@
   } else if (action_id == kUserActionReloadDefault) {
     Reset();
     LoadDefaultOnlineGaia(EmptyAccountId());
-  } else if (action_id == kUserActionRetry) {
-    LoadDefaultOnlineGaia(EmptyAccountId());
   } else if (action_id == kUserActionEnterIdentifier) {
     CHECK_EQ(2u, args.size());
     const std::string& email = args[1].GetString();
diff --git a/chrome/browser/ash/login/screens/gaia_screen.h b/chrome/browser/ash/login/screens/gaia_screen.h
index e8814cf..85ba4877 100644
--- a/chrome/browser/ash/login/screens/gaia_screen.h
+++ b/chrome/browser/ash/login/screens/gaia_screen.h
@@ -63,7 +63,6 @@
 
   // Loads online GAIA into the webview.
   void LoadOnlineGaia();
-  void ShowAllowlistCheckFailedError();
   // Reset authenticator.
   void Reset();
   // Calls authenticator reload on JS side.
diff --git a/chrome/browser/ash/login/screens/multidevice_setup_screen.cc b/chrome/browser/ash/login/screens/multidevice_setup_screen.cc
index e6eed61..026bea7 100644
--- a/chrome/browser/ash/login/screens/multidevice_setup_screen.cc
+++ b/chrome/browser/ash/login/screens/multidevice_setup_screen.cc
@@ -81,6 +81,7 @@
 bool MultiDeviceSetupScreen::MaybeSkip(WizardContext& context) {
   // Skip multidevice setup screen during oobe.SmokeEndToEnd test.
   if (switches::ShouldMultideviceScreenBeSkippedForTesting()) {
+    exit_callback_.Run(Result::NOT_APPLICABLE);
     return true;
   }
 
diff --git a/chrome/browser/ash/login/screens/user_allowlist_check_screen.cc b/chrome/browser/ash/login/screens/user_allowlist_check_screen.cc
new file mode 100644
index 0000000..e8cbaec8
--- /dev/null
+++ b/chrome/browser/ash/login/screens/user_allowlist_check_screen.cc
@@ -0,0 +1,68 @@
+// Copyright 2023 The Chromium Authors
+// Use of this source code is governed by a BSD-style license that can be
+// found in the LICENSE file.
+
+#include "chrome/browser/ash/login/screens/user_allowlist_check_screen.h"
+
+#include "base/memory/weak_ptr.h"
+#include "base/values.h"
+#include "chrome/browser/ash/policy/core/browser_policy_connector_ash.h"
+#include "chrome/browser/ash/settings/cros_settings.h"
+#include "chrome/browser/browser_process.h"
+#include "chrome/browser/browser_process_platform_part_ash.h"
+#include "chrome/browser/ui/webui/ash/login/user_allowlist_check_screen_handler.h"
+namespace ash {
+namespace {
+
+constexpr char kUserActionRetry[] = "retry";
+
+}  // namespace
+
+// static
+std::string UserAllowlistCheckScreen::GetResultString(Result result) {
+  switch (result) {
+    case Result::RETRY:
+      return "Retry";
+  }
+}
+
+UserAllowlistCheckScreen::UserAllowlistCheckScreen(
+    base::WeakPtr<UserAllowlistCheckScreenView> view,
+    const ScreenExitCallback& exit_callback)
+    : BaseScreen(UserAllowlistCheckScreenView::kScreenId,
+                 OobeScreenPriority::DEFAULT),
+      view_(std::move(view)),
+      exit_callback_(exit_callback) {}
+
+UserAllowlistCheckScreen::~UserAllowlistCheckScreen() = default;
+
+void UserAllowlistCheckScreen::ShowImpl() {
+  if (!view_) {
+    return;
+  }
+
+  const bool enterprise_managed = g_browser_process->platform_part()
+                                      ->browser_policy_connector_ash()
+                                      ->IsDeviceEnterpriseManaged();
+
+  bool family_link_allowed = false;
+  CrosSettings::Get()->GetBoolean(kAccountsPrefFamilyLinkAccountsAllowed,
+                                  &family_link_allowed);
+
+  view_->Show(enterprise_managed, family_link_allowed);
+}
+
+void UserAllowlistCheckScreen::HideImpl() {
+  view_->Hide();
+}
+
+void UserAllowlistCheckScreen::OnUserAction(const base::Value::List& args) {
+  const std::string& action_id = args[0].GetString();
+  if (action_id == kUserActionRetry) {
+    exit_callback_.Run(Result::RETRY);
+  } else {
+    BaseScreen::OnUserAction(args);
+  }
+}
+
+}  // namespace ash
diff --git a/chrome/browser/ash/login/screens/user_allowlist_check_screen.h b/chrome/browser/ash/login/screens/user_allowlist_check_screen.h
new file mode 100644
index 0000000..83c4845
--- /dev/null
+++ b/chrome/browser/ash/login/screens/user_allowlist_check_screen.h
@@ -0,0 +1,53 @@
+// 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_ASH_LOGIN_SCREENS_USER_ALLOWLIST_CHECK_SCREEN_H_
+#define CHROME_BROWSER_ASH_LOGIN_SCREENS_USER_ALLOWLIST_CHECK_SCREEN_H_
+
+#include <string>
+
+#include "base/functional/callback.h"
+#include "base/memory/weak_ptr.h"
+#include "base/values.h"
+#include "chrome/browser/ash/login/screens/base_screen.h"
+
+namespace ash {
+
+class UserAllowlistCheckScreenView;
+
+// Show error UI at the end of Gaia flow when user is not allowlisted.
+class UserAllowlistCheckScreen : public BaseScreen {
+ public:
+  using TView = UserAllowlistCheckScreenView;
+
+  enum class Result {
+    RETRY,
+  };
+
+  static std::string GetResultString(Result result);
+
+  using ScreenExitCallback = base::RepeatingCallback<void(Result result)>;
+
+  UserAllowlistCheckScreen(base::WeakPtr<UserAllowlistCheckScreenView> view,
+                           const ScreenExitCallback& exit_callback);
+
+  UserAllowlistCheckScreen(const UserAllowlistCheckScreen&) = delete;
+  UserAllowlistCheckScreen& operator=(const UserAllowlistCheckScreen&) = delete;
+
+  ~UserAllowlistCheckScreen() override;
+
+ private:
+  void ShowImpl() override;
+  void HideImpl() override;
+  void OnUserAction(const base::Value::List& args) override;
+
+  base::WeakPtr<UserAllowlistCheckScreenView> view_;
+  ScreenExitCallback exit_callback_;
+
+  base::WeakPtrFactory<UserAllowlistCheckScreen> weak_ptr_factory_{this};
+};
+
+}  // namespace ash
+
+#endif  // CHROME_BROWSER_ASH_LOGIN_SCREENS_USER_ALLOWLIST_CHECK_SCREEN_H_
diff --git a/chrome/browser/ash/login/ui/login_display_host_common.cc b/chrome/browser/ash/login/ui/login_display_host_common.cc
index f2e5be578..854b4ba 100644
--- a/chrome/browser/ash/login/ui/login_display_host_common.cc
+++ b/chrome/browser/ash/login/ui/login_display_host_common.cc
@@ -59,6 +59,7 @@
 #include "chrome/browser/ui/webui/ash/login/saml_confirm_password_handler.h"
 #include "chrome/browser/ui/webui/ash/login/signin_fatal_error_screen_handler.h"
 #include "chrome/browser/ui/webui/ash/login/terms_of_service_screen_handler.h"
+#include "chrome/browser/ui/webui/ash/login/user_allowlist_check_screen_handler.h"
 #include "chrome/browser/ui/webui/ash/login/user_creation_screen_handler.h"
 #include "chrome/common/pref_names.h"
 #include "chrome/grit/generated_resources.h"
@@ -415,10 +416,7 @@
 }
 
 void LoginDisplayHostCommon::ShowAllowlistCheckFailedError() {
-  StartWizard(GaiaView::kScreenId);
-
-  GaiaScreen* gaia_screen = GetWizardController()->GetScreen<GaiaScreen>();
-  gaia_screen->ShowAllowlistCheckFailedError();
+  StartWizard(UserAllowlistCheckScreenView::kScreenId);
 }
 
 void LoginDisplayHostCommon::UpdateWallpaper(
diff --git a/chrome/browser/ash/login/wizard_controller.cc b/chrome/browser/ash/login/wizard_controller.cc
index 7f914ad..0a6f4003 100644
--- a/chrome/browser/ash/login/wizard_controller.cc
+++ b/chrome/browser/ash/login/wizard_controller.cc
@@ -112,6 +112,7 @@
 #include "chrome/browser/ash/login/screens/tpm_error_screen.h"
 #include "chrome/browser/ash/login/screens/update_required_screen.h"
 #include "chrome/browser/ash/login/screens/update_screen.h"
+#include "chrome/browser/ash/login/screens/user_allowlist_check_screen.h"
 #include "chrome/browser/ash/login/screens/user_creation_screen.h"
 #include "chrome/browser/ash/login/screens/welcome_screen.h"
 #include "chrome/browser/ash/login/screens/wrong_hwid_screen.h"
@@ -201,6 +202,7 @@
 #include "chrome/browser/ui/webui/ash/login/tpm_error_screen_handler.h"
 #include "chrome/browser/ui/webui/ash/login/update_required_screen_handler.h"
 #include "chrome/browser/ui/webui/ash/login/update_screen_handler.h"
+#include "chrome/browser/ui/webui/ash/login/user_allowlist_check_screen_handler.h"
 #include "chrome/browser/ui/webui/ash/login/user_creation_screen_handler.h"
 #include "chrome/browser/ui/webui/ash/login/welcome_screen_handler.h"
 #include "chrome/browser/ui/webui/ash/login/wrong_hwid_screen_handler.h"
@@ -754,6 +756,11 @@
       base::BindRepeating(&WizardController::OnGaiaScreenExit,
                           weak_factory_.GetWeakPtr())));
 
+  append(std::make_unique<UserAllowlistCheckScreen>(
+      oobe_ui->GetView<UserAllowlistCheckScreenHandler>()->AsWeakPtr(),
+      base::BindRepeating(&WizardController::OnUserAllowlistCheckScreenExit,
+                          weak_factory_.GetWeakPtr())));
+
   append(std::make_unique<SamlConfirmPasswordScreen>(
       oobe_ui->GetView<SamlConfirmPasswordHandler>()->AsWeakPtr(),
       base::BindRepeating(&WizardController::OnSamlConfirmPasswordScreenExit,
@@ -1406,6 +1413,14 @@
   }
 }
 
+void WizardController::OnUserAllowlistCheckScreenExit(
+    UserAllowlistCheckScreen::Result result) {
+  CHECK(result == UserAllowlistCheckScreen::Result::RETRY);
+  OnScreenExit(UserAllowlistCheckScreenView::kScreenId,
+               UserAllowlistCheckScreen::GetResultString(result));
+  AdvanceToScreen(GaiaView::kScreenId);
+}
+
 void WizardController::OnGaiaInfoScreenExit(GaiaInfoScreen::Result result) {
   OnScreenExit(GaiaInfoScreenView::kScreenId,
                GaiaInfoScreen::GetResultString(result));
@@ -2731,6 +2746,7 @@
              screen_id == GaiaView::kScreenId ||
              screen_id == UserCreationView::kScreenId ||
              screen_id == SignInFatalErrorView::kScreenId ||
+             screen_id == UserAllowlistCheckScreenView::kScreenId ||
              screen_id == LocaleSwitchView::kScreenId ||
              screen_id == RecoveryEligibilityView::kScreenId ||
              screen_id == OfflineLoginView::kScreenId ||
diff --git a/chrome/browser/ash/login/wizard_controller.h b/chrome/browser/ash/login/wizard_controller.h
index ea09195..760b310 100644
--- a/chrome/browser/ash/login/wizard_controller.h
+++ b/chrome/browser/ash/login/wizard_controller.h
@@ -73,11 +73,13 @@
 #include "chrome/browser/ash/login/screens/touchpad_scroll_screen.h"
 #include "chrome/browser/ash/login/screens/tpm_error_screen.h"
 #include "chrome/browser/ash/login/screens/update_screen.h"
+#include "chrome/browser/ash/login/screens/user_allowlist_check_screen.h"
 #include "chrome/browser/ash/login/screens/user_creation_screen.h"
 #include "chrome/browser/ash/login/screens/welcome_screen.h"
 #include "chrome/browser/ash/policy/enrollment/auto_enrollment_controller.h"
 #include "chrome/browser/ash/policy/enrollment/enrollment_config.h"
 #include "chrome/browser/ui/webui/ash/login/oobe_ui.h"
+#include "chrome/browser/ui/webui/ash/login/user_allowlist_check_screen_handler.h"
 #include "components/account_id/account_id.h"
 #include "third_party/abseil-cpp/absl/types/optional.h"
 
@@ -410,6 +412,7 @@
   void OnOobeFlowFinished();
   void OnPackagedLicenseScreenExit(PackagedLicenseScreen::Result result);
   void OnFamilyLinkNoticeScreenExit(FamilyLinkNoticeScreen::Result result);
+  void OnUserAllowlistCheckScreenExit(UserAllowlistCheckScreen::Result);
   void OnTpmErrorScreenExit(TpmErrorScreen::Result result);
   void OnPasswordChangeLegacyScreenExit(
       GaiaPasswordChangedScreenLegacy::Result result);
diff --git a/chrome/browser/ash/policy/dlp/dlp_files_controller_ash.cc b/chrome/browser/ash/policy/dlp/dlp_files_controller_ash.cc
index 2d89947..a1436dc 100644
--- a/chrome/browser/ash/policy/dlp/dlp_files_controller_ash.cc
+++ b/chrome/browser/ash/policy/dlp/dlp_files_controller_ash.cc
@@ -352,9 +352,6 @@
 DlpFilesControllerAsh* DlpFilesControllerAsh::GetForPrimaryProfile() {
   DlpRulesManager* rules_manager =
       DlpRulesManagerFactory::GetForPrimaryProfile();
-  if (!rules_manager) {
-    return nullptr;
-  }
   return static_cast<DlpFilesControllerAsh*>(
       rules_manager ? rules_manager->GetDlpFilesController() : nullptr);
 }
diff --git a/chrome/browser/autofill/BUILD.gn b/chrome/browser/autofill/BUILD.gn
index 26b6787..af8aca8 100644
--- a/chrome/browser/autofill/BUILD.gn
+++ b/chrome/browser/autofill/BUILD.gn
@@ -34,6 +34,8 @@
     "strike_database_factory.h",
     "subkey_requester_factory.cc",
     "subkey_requester_factory.h",
+    "ui/ui_util.cc",
+    "ui/ui_util.h",
     "validation_rules_storage_factory.cc",
     "validation_rules_storage_factory.h",
   ]
@@ -52,6 +54,7 @@
     "//components/autofill/core/common",
     "//components/keyed_service/content",
     "//components/keyed_service/core",
+    "//components/signin/public/identity_manager:identity_manager",
     "//content/public/browser",
     "//services/network/public/cpp",
     "//ui/gfx",
diff --git a/chrome/browser/autofill/android/save_update_address_profile_message_controller.cc b/chrome/browser/autofill/android/save_update_address_profile_message_controller.cc
index e712b7d..ff00aa8 100644
--- a/chrome/browser/autofill/android/save_update_address_profile_message_controller.cc
+++ b/chrome/browser/autofill/android/save_update_address_profile_message_controller.cc
@@ -9,6 +9,7 @@
 #include "base/strings/utf_string_conversions.h"
 #include "chrome/browser/android/android_theme_resources.h"
 #include "chrome/browser/android/resource_mapper.h"
+#include "chrome/browser/autofill/ui/ui_util.h"
 #include "chrome/browser/browser_process.h"
 #include "chrome/browser/profiles/profile.h"
 #include "chrome/browser/signin/identity_manager_factory.h"
@@ -175,12 +176,9 @@
 }
 
 std::u16string SaveUpdateAddressProfileMessageController::GetSourceNotice() {
-  const signin::IdentityManager* identity_manager =
-      IdentityManagerFactory::GetForProfile(
-          Profile::FromBrowserContext(web_contents_->GetBrowserContext()));
-  const CoreAccountInfo primary_account_info =
-      identity_manager->GetPrimaryAccountInfo(signin::ConsentLevel::kSignin);
-  if (primary_account_info.IsEmpty()) {
+  absl::optional<AccountInfo> account = GetPrimaryAccountInfoFromBrowserContext(
+      web_contents_->GetBrowserContext());
+  if (!account) {
     return std::u16string();
   }
 
@@ -189,7 +187,7 @@
                    IDS_AUTOFILL_SAVE_IN_ACCOUNT_MESSAGE_ADDRESS_MIGRATION_SOURCE_NOTICE)
              : l10n_util::GetStringFUTF16(
                    IDS_AUTOFILL_SAVE_IN_ACCOUNT_MESSAGE_ADDRESS_SOURCE_NOTICE,
-                   base::UTF8ToUTF16(primary_account_info.email));
+                   base::UTF8ToUTF16(account->email));
 }
 
 std::u16string
diff --git a/chrome/browser/autofill/android/save_update_address_profile_prompt_controller.cc b/chrome/browser/autofill/android/save_update_address_profile_prompt_controller.cc
index 84723db..18fbc5d 100644
--- a/chrome/browser/autofill/android/save_update_address_profile_prompt_controller.cc
+++ b/chrome/browser/autofill/android/save_update_address_profile_prompt_controller.cc
@@ -89,9 +89,11 @@
       profile_.source() != AutofillProfile::Source::kAccount) {
     return std::u16string();
   }
-  CoreAccountInfo account_info =
-      identity_manager->GetPrimaryAccountInfo(signin::ConsentLevel::kSignin);
-  if (account_info.IsEmpty()) {
+  absl::optional<AccountInfo> account =
+      identity_manager->FindExtendedAccountInfo(
+          identity_manager->GetPrimaryAccountInfo(
+              signin::ConsentLevel::kSignin));
+  if (!account) {
     return std::u16string();
   }
 
@@ -102,7 +104,7 @@
         personal_data_->IsSyncFeatureEnabledForAutofill()
             ? IDS_AUTOFILL_SYNCABLE_PROFILE_MIGRATION_PROMPT_NOTICE
             : IDS_AUTOFILL_LOCAL_PROFILE_MIGRATION_PROMPT_NOTICE,
-        base::UTF8ToUTF16(account_info.email));
+        base::UTF8ToUTF16(account->email));
   }
 
   // Notify user that their address has already been saved in their Google
@@ -110,14 +112,14 @@
   if (original_profile_) {
     return l10n_util::GetStringFUTF16(
         IDS_AUTOFILL_ADDRESS_ALREADY_SAVED_IN_ACCOUNT_SOURCE_NOTICE,
-        base::UTF8ToUTF16(account_info.email));
+        base::UTF8ToUTF16(account->email));
   }
 
   // Notify the user that their address is going to be saved in their Google
   // account if they accept the prompt.
   return l10n_util::GetStringFUTF16(
       IDS_AUTOFILL_ADDRESS_WILL_BE_SAVED_IN_ACCOUNT_SOURCE_NOTICE,
-      base::UTF8ToUTF16(account_info.email));
+      base::UTF8ToUTF16(account->email));
 }
 
 std::u16string
diff --git a/chrome/browser/autofill/autofill_across_iframes_browsertest.cc b/chrome/browser/autofill/autofill_across_iframes_browsertest.cc
index d49bc30b..6ea64bc0 100644
--- a/chrome/browser/autofill/autofill_across_iframes_browsertest.cc
+++ b/chrome/browser/autofill/autofill_across_iframes_browsertest.cc
@@ -545,8 +545,15 @@
 };
 
 // Tests that a newly emerging frame with a field triggers a refill.
+// TODO(crbug.com/1486516): Test is flaky on Windows.
+#if BUILDFLAG(IS_WIN)
+#define MAYBE_RefillDynamicFormWithNewFrame \
+  DISABLED_RefillDynamicFormWithNewFrame
+#else
+#define MAYBE_RefillDynamicFormWithNewFrame RefillDynamicFormWithNewFrame
+#endif
 IN_PROC_BROWSER_TEST_F(AutofillAcrossIframesTest_Dynamic,
-                       RefillDynamicFormWithNewFrame) {
+                       MAYBE_RefillDynamicFormWithNewFrame) {
   const FormStructure* form = LoadFormWithAppearingFrame();
   ASSERT_TRUE(form);
   EXPECT_THAT(FillForm(*form, *form->field(1)),
diff --git a/chrome/browser/ui/autofill/ui_util.cc b/chrome/browser/autofill/ui/ui_util.cc
similarity index 94%
rename from chrome/browser/ui/autofill/ui_util.cc
rename to chrome/browser/autofill/ui/ui_util.cc
index 58e60fd..397cb5e 100644
--- a/chrome/browser/ui/autofill/ui_util.cc
+++ b/chrome/browser/autofill/ui/ui_util.cc
@@ -2,7 +2,7 @@
 // Use of this source code is governed by a BSD-style license that can be
 // found in the LICENSE file.
 
-#include "chrome/browser/ui/autofill/ui_util.h"
+#include "chrome/browser/autofill/ui/ui_util.h"
 
 #include "chrome/browser/profiles/profile.h"
 #include "chrome/browser/signin/identity_manager_factory.h"
diff --git a/chrome/browser/ui/autofill/ui_util.h b/chrome/browser/autofill/ui/ui_util.h
similarity index 80%
rename from chrome/browser/ui/autofill/ui_util.h
rename to chrome/browser/autofill/ui/ui_util.h
index d222d5e0..21b0b39 100644
--- a/chrome/browser/ui/autofill/ui_util.h
+++ b/chrome/browser/autofill/ui/ui_util.h
@@ -2,8 +2,8 @@
 // Use of this source code is governed by a BSD-style license that can be
 // found in the LICENSE file.
 
-#ifndef CHROME_BROWSER_UI_AUTOFILL_UI_UTIL_H_
-#define CHROME_BROWSER_UI_AUTOFILL_UI_UTIL_H_
+#ifndef CHROME_BROWSER_AUTOFILL_UI_UI_UTIL_H_
+#define CHROME_BROWSER_AUTOFILL_UI_UI_UTIL_H_
 
 #include "components/signin/public/identity_manager/account_info.h"
 #include "third_party/abseil-cpp/absl/types/optional.h"
@@ -21,4 +21,4 @@
 
 }  // namespace autofill
 
-#endif  // CHROME_BROWSER_UI_AUTOFILL_UI_UTIL_H_
+#endif  // CHROME_BROWSER_AUTOFILL_UI_UI_UTIL_H_
diff --git a/chrome/browser/chrome_browser_main.cc b/chrome/browser/chrome_browser_main.cc
index c6d87796..2791a57e 100644
--- a/chrome/browser/chrome_browser_main.cc
+++ b/chrome/browser/chrome_browser_main.cc
@@ -488,6 +488,16 @@
     return;
   }
 
+#if BUILDFLAG(IS_WIN)
+  // The uninstall command-line switch is handled by the origin process; see
+  // ChromeMainDelegate::PostEarlyInitialization(...). The other process won't
+  // be able to become the singleton process and will display a window asking
+  // the user to close running Chrome instances.
+  if (command_line.HasSwitch(switches::kUninstall)) {
+    return;
+  }
+#endif
+
   g_browser_process->platform_part()->PlatformSpecificCommandLineProcessing(
       command_line);
 
@@ -1463,27 +1473,27 @@
     // new one. NotifyOtherProcess will currently give the other process up to
     // 20 seconds to respond. Note that this needs to be done before we attempt
     // to read the profile.
-    notify_result_ =
+    const ProcessSingleton::NotifyResult notify_result =
         ChromeProcessSingleton::GetInstance()->NotifyOtherProcessOrCreate();
     UMA_HISTOGRAM_ENUMERATION("Chrome.ProcessSingleton.NotifyResult",
-                              notify_result_,
+                              notify_result,
                               ProcessSingleton::kNumNotifyResults);
 
-    // If `notify_result_` is not PROCESS_NONE, this process will exit.
+    // If `notify_result` is not PROCESS_NONE, this process will exit.
     // Conditionally defer browser metrics (which is how metrics are reported
     // when the early singleton feature is enabled) to verify whether the
     // metrics reporting mechanism has an impact on the metrics. If
     // ShouldMergeMetrics() returns false, the metrics will instead be sent in
     // an independent log in some future session.
     if (ChromeProcessSingleton::ShouldMergeMetrics() &&
-        notify_result_ != ProcessSingleton::PROCESS_NONE) {
+        notify_result != ProcessSingleton::PROCESS_NONE) {
       base::FilePath user_data_dir;
       if (base::PathService::Get(chrome::DIR_USER_DATA, &user_data_dir)) {
         DeferBrowserMetrics(user_data_dir);
       }
     }
 
-    switch (notify_result_) {
+    switch (notify_result) {
       case ProcessSingleton::PROCESS_NONE:
         // No process already running, fall through to starting a new one.
         ChromeProcessSingleton::GetInstance()->StartWatching();
@@ -1964,8 +1974,7 @@
   TranslateService::Shutdown();
 
 #if BUILDFLAG(ENABLE_PROCESS_SINGLETON)
-  if (notify_result_ == ProcessSingleton::PROCESS_NONE)
-    ChromeProcessSingleton::GetInstance()->Cleanup();
+  ChromeProcessSingleton::GetInstance()->Cleanup();
 #endif  // BUILDFLAG(ENABLE_PROCESS_SINGLETON)
 
   browser_process_->metrics_service()->Stop();
diff --git a/chrome/browser/chrome_browser_main.h b/chrome/browser/chrome_browser_main.h
index 623936f..04faf69 100644
--- a/chrome/browser/chrome_browser_main.h
+++ b/chrome/browser/chrome_browser_main.h
@@ -19,10 +19,6 @@
 #include "content/public/browser/browser_main_parts.h"
 #include "content/public/common/result_codes.h"
 
-#if BUILDFLAG(ENABLE_PROCESS_SINGLETON)
-#include "chrome/browser/process_singleton.h"
-#endif
-
 #if BUILDFLAG(ENABLE_DOWNGRADE_PROCESSING)
 #include "chrome/browser/downgrade/downgrade_manager.h"
 #endif
@@ -188,11 +184,6 @@
   std::unique_ptr<StartupBrowserCreator> browser_creator_;
 #endif  // !BUILDFLAG(IS_ANDROID)
 
-#if BUILDFLAG(ENABLE_PROCESS_SINGLETON)
-  ProcessSingleton::NotifyResult notify_result_ =
-      ProcessSingleton::PROCESS_NONE;
-#endif  // BUILDFLAG(ENABLE_PROCESS_SINGLETON)
-
 #if !BUILDFLAG(IS_ANDROID)
   // Members needed across shutdown methods.
   bool restart_last_session_ = false;
diff --git a/chrome/browser/chrome_content_browser_client.cc b/chrome/browser/chrome_content_browser_client.cc
index 923e073f..527fbd4 100644
--- a/chrome/browser/chrome_content_browser_client.cc
+++ b/chrome/browser/chrome_content_browser_client.cc
@@ -7830,7 +7830,8 @@
 
 bool ChromeContentBrowserClient::WillProvidePublicFirstPartySets() {
 #if BUILDFLAG(ENABLE_COMPONENT_UPDATER)
-  return !base::CommandLine::ForCurrentProcess()->HasSwitch(
+  return !is_minimal_mode_ &&
+         !base::CommandLine::ForCurrentProcess()->HasSwitch(
              switches::kDisableComponentUpdate) &&
          base::FeatureList::IsEnabled(features::kFirstPartySets);
 #else
@@ -8110,3 +8111,7 @@
   // enabled by default.
   return true;
 }
+
+void ChromeContentBrowserClient::SetIsMinimalMode(bool minimal) {
+  is_minimal_mode_ = minimal;
+}
diff --git a/chrome/browser/chrome_content_browser_client.h b/chrome/browser/chrome_content_browser_client.h
index 972ad69..f7d2397e 100644
--- a/chrome/browser/chrome_content_browser_client.h
+++ b/chrome/browser/chrome_content_browser_client.h
@@ -939,6 +939,8 @@
   bool ShouldAllowBackForwardCacheForCacheControlNoStorePage(
       content::BrowserContext* browser_context) override;
 
+  void SetIsMinimalMode(bool minimal) override;
+
  protected:
   static bool HandleWebUI(GURL* url, content::BrowserContext* browser_context);
   static bool HandleWebUIReverse(GURL* url,
@@ -1093,6 +1095,10 @@
   std::string GetChildProcessSuffix(int child_flags) override;
 #endif  // BUILDFLAG(IS_MAC)
 
+  // Tracks whether the browser was started in "minimal" mode (as opposed to
+  // full browser mode), where most subsystems are not initialized.
+  bool is_minimal_mode_ = false;
+
   base::WeakPtrFactory<ChromeContentBrowserClient> weak_factory_{this};
 };
 
diff --git a/chrome/browser/chrome_process_singleton.cc b/chrome/browser/chrome_process_singleton.cc
index 597917d..2dda9684 100644
--- a/chrome/browser/chrome_process_singleton.cc
+++ b/chrome/browser/chrome_process_singleton.cc
@@ -48,7 +48,9 @@
 }
 
 void ChromeProcessSingleton::Cleanup() {
-  process_singleton_.Cleanup();
+  if (is_singleton_instance_) {
+    process_singleton_.Cleanup();
+  }
 }
 
 void ChromeProcessSingleton::SetModalDialogNotificationHandler(
diff --git a/chrome/browser/component_updater/privacy_sandbox_attestations_component_installer.cc b/chrome/browser/component_updater/privacy_sandbox_attestations_component_installer.cc
index a68e2e63..7b1b8a3b 100644
--- a/chrome/browser/component_updater/privacy_sandbox_attestations_component_installer.cc
+++ b/chrome/browser/component_updater/privacy_sandbox_attestations_component_installer.cc
@@ -18,12 +18,14 @@
 #include "base/path_service.h"
 #include "base/task/task_traits.h"
 #include "base/task/thread_pool.h"
+#include "base/time/time.h"
 #include "base/values.h"
 #include "base/version.h"
 #include "chrome/common/chrome_paths.h"
 #include "components/component_updater/component_installer.h"
 #include "components/privacy_sandbox/privacy_sandbox_attestations/privacy_sandbox_attestations.h"
 #include "components/privacy_sandbox/privacy_sandbox_features.h"
+#include "components/startup_metric_utils/browser/startup_metric_utils.h"
 #include "components/update_client/update_client.h"
 
 namespace {
@@ -125,6 +127,10 @@
     return;
   }
 
+  // Record the time taken for the downloaded attestations file to be detected.
+  startup_metric_utils::GetBrowser().RecordPrivacySandboxAttestationsFirstReady(
+      base::TimeTicks::Now());
+
   VLOG(1) << "Privacy Sandbox Attestations Component ready, version "
           << version.GetString() << " in " << install_dir.value();
 
diff --git a/chrome/browser/component_updater/privacy_sandbox_attestations_component_installer_unittest.cc b/chrome/browser/component_updater/privacy_sandbox_attestations_component_installer_unittest.cc
index fae1ac75..0e215c9 100644
--- a/chrome/browser/component_updater/privacy_sandbox_attestations_component_installer_unittest.cc
+++ b/chrome/browser/component_updater/privacy_sandbox_attestations_component_installer_unittest.cc
@@ -12,17 +12,23 @@
 #include "base/files/file_util.h"
 #include "base/files/scoped_temp_dir.h"
 #include "base/functional/callback.h"
+#include "base/functional/callback_helpers.h"
 #include "base/path_service.h"
+#include "base/strings/stringprintf.h"
+#include "base/test/metrics/histogram_tester.h"
 #include "base/test/repeating_test_future.h"
 #include "base/test/scoped_feature_list.h"
 #include "base/test/scoped_path_override.h"
 #include "base/test/task_environment.h"
+#include "base/time/time.h"
 #include "base/values.h"
 #include "base/version.h"
 #include "chrome/browser/component_updater/privacy_sandbox_attestations_component_installer_test_util.h"
 #include "chrome/common/chrome_paths.h"
 #include "components/component_updater/mock_component_updater_service.h"
+#include "components/privacy_sandbox/privacy_sandbox_attestations/privacy_sandbox_attestations_histograms.h"
 #include "components/privacy_sandbox/privacy_sandbox_features.h"
+#include "components/startup_metric_utils/browser/startup_metric_utils.h"
 #include "testing/gtest/include/gtest/gtest.h"
 
 namespace component_updater {
@@ -253,4 +259,112 @@
   EXPECT_EQ(loaded_path_v3, Installer::GetInstalledFilePath(dir_v1.GetPath()));
 }
 
+class PrivacySandboxAttestationsHistogramsTest
+    : public PrivacySandboxAttestationsInstallerFeatureEnabledTest,
+      public testing::WithParamInterface<std::tuple<bool, bool>> {
+ public:
+  std::string GetHistogram() const {
+    if (BrowserWindowFirstPaintRecorded()) {
+      return privacy_sandbox::kComponentReadyFromBrowserWindowFirstPaintUMA;
+    }
+
+    if (NonBrowserUIDisplayed()) {
+      return privacy_sandbox::
+          kComponentReadyFromApplicationStartWithInterruptionUMA;
+    }
+
+    return privacy_sandbox::kComponentReadyFromApplicationStartUMA;
+  }
+
+  bool NonBrowserUIDisplayed() const { return std::get<0>(GetParam()); }
+  bool BrowserWindowFirstPaintRecorded() const {
+    return std::get<1>(GetParam());
+  }
+
+ protected:
+  void SetUp() override {
+    // Reset the singleton recorder to avoid interference across test cases.
+    startup_metric_utils::GetBrowser().ResetSessionForTesting();
+
+    if (NonBrowserUIDisplayed()) {
+      // Simulate a non browser UI, e.g, profile picker has been displayed.
+      startup_metric_utils::GetBrowser().SetNonBrowserUIDisplayed();
+    }
+
+    if (BrowserWindowFirstPaintRecorded()) {
+      // Simulate that the browser window paint has shown and been recorded.
+      startup_metric_utils::GetBrowser().RecordBrowserWindowFirstPaintTicks(
+          base::TimeTicks::Now());
+    }
+  }
+
+  base::HistogramTester histogram_tester_;
+};
+
+TEST_P(PrivacySandboxAttestationsHistogramsTest,
+       RecordHistogramWhenComponentReady) {
+  PrivacySandboxAttestationsComponentInstallerPolicy policy(base::DoNothing());
+
+  base::ScopedTempDir dir_v1;
+  ASSERT_TRUE(
+      dir_v1.CreateUniqueTempDirUnderPath(component_install_dir_.GetPath()));
+  const base::Version version_1 = base::Version("0.0.1");
+  policy.ComponentReadyForTesting(version_1, dir_v1.GetPath(),
+                                  base::Value::Dict());
+
+  histogram_tester_.ExpectTotalCount(GetHistogram(), 1);
+}
+
+TEST_P(PrivacySandboxAttestationsHistogramsTest,
+       HistogramShouldOnlyRecordedOnce) {
+  PrivacySandboxAttestationsComponentInstallerPolicy policy(base::DoNothing());
+
+  // Load the initial version.
+  base::ScopedTempDir dir_v1;
+  ASSERT_TRUE(
+      dir_v1.CreateUniqueTempDirUnderPath(component_install_dir_.GetPath()));
+  const base::Version version_1 = base::Version("0.0.1");
+  policy.ComponentReadyForTesting(version_1, dir_v1.GetPath(),
+                                  base::Value::Dict());
+
+  histogram_tester_.ExpectTotalCount(GetHistogram(), 1);
+
+  // Load the newer version.
+  base::ScopedTempDir dir_v2;
+  ASSERT_TRUE(
+      dir_v2.CreateUniqueTempDirUnderPath(component_install_dir_.GetPath()));
+  const base::Version version_2 = base::Version("0.0.2");
+  policy.ComponentReadyForTesting(version_2, dir_v2.GetPath(),
+                                  base::Value::Dict());
+
+  histogram_tester_.ExpectTotalCount(GetHistogram(), 1);
+}
+
+TEST_P(PrivacySandboxAttestationsHistogramsTest,
+       HistogramNotRecordedIfInvalidInput) {
+  PrivacySandboxAttestationsComponentInstallerPolicy policy(base::DoNothing());
+
+  // Try loading with an empty path.
+  policy.ComponentReadyForTesting(base::Version("0.0.1"), base::FilePath(),
+                                  base::Value::Dict());
+  histogram_tester_.ExpectTotalCount(GetHistogram(), 0);
+
+  // Try loading with an invalid version.
+  policy.ComponentReadyForTesting(
+      base::Version(), component_install_dir_.GetPath(), base::Value::Dict());
+  histogram_tester_.ExpectTotalCount(GetHistogram(), 0);
+}
+
+INSTANTIATE_TEST_SUITE_P(
+    PrivacySandboxAttestationsHistograms,
+    PrivacySandboxAttestationsHistogramsTest,
+    testing::Combine(testing::Bool(), testing::Bool()),
+    [](const testing::TestParamInfo<std::tuple<bool, bool>>& info) {
+      return base::StringPrintf(
+          "%s_%s",
+          std::get<0>(info.param) ? "NonBrowserUIDisplayed" : "NormalStart",
+          std::get<1>(info.param) ? "BrowserWindowFirstPaintRecorded"
+                                  : "NoBrowserWindowFirstPaint");
+    });
+
 }  // namespace component_updater
diff --git a/chrome/browser/content_settings/one_time_permission_provider.cc b/chrome/browser/content_settings/one_time_permission_provider.cc
index e2a8a4a..f16700bf 100644
--- a/chrome/browser/content_settings/one_time_permission_provider.cc
+++ b/chrome/browser/content_settings/one_time_permission_provider.cc
@@ -15,6 +15,7 @@
 #include "chrome/browser/browser_process_platform_part.h"
 #include "chrome/browser/permissions/one_time_permissions_tracker.h"
 #include "chrome/browser/permissions/one_time_permissions_tracker_factory.h"
+#include "chrome/browser/permissions/one_time_permissions_tracker_observer.h"
 #include "components/content_settings/core/browser/content_settings_registry.h"
 #include "components/content_settings/core/browser/content_settings_rule.h"
 #include "components/content_settings/core/browser/user_modifiable_provider.h"
@@ -255,10 +256,18 @@
 // expires geolocation. We remove the geolocation permission associated with
 // the origin.
 void OneTimePermissionProvider::OnAllTabsInBackgroundTimerExpired(
-    const url::Origin& origin) {
-  DeleteEntriesMatchingGURL(
-      ContentSettingsType::GEOLOCATION, origin.GetURL(),
-      permissions::OneTimePermissionEvent::EXPIRED_IN_BACKGROUND);
+    const url::Origin& origin,
+    const OneTimePermissionsTrackerObserver::BackgroundExpiryType&
+        expiry_type) {
+  switch (expiry_type) {
+    case BackgroundExpiryType::kTimeout:
+      DeleteEntriesMatchingGURL(
+          ContentSettingsType::GEOLOCATION, origin.GetURL(),
+          permissions::OneTimePermissionEvent::EXPIRED_IN_BACKGROUND);
+      return;
+    case BackgroundExpiryType::kLongTimeout:
+      return;
+  }
 }
 
 // All tabs to the origin have not shown a tab indicator for video for a
diff --git a/chrome/browser/content_settings/one_time_permission_provider.h b/chrome/browser/content_settings/one_time_permission_provider.h
index 839bec7d..0714071e 100644
--- a/chrome/browser/content_settings/one_time_permission_provider.h
+++ b/chrome/browser/content_settings/one_time_permission_provider.h
@@ -81,7 +81,9 @@
 
   // OneTimePermissionsTrackerObserver:
   void OnLastPageFromOriginClosed(const url::Origin&) override;
-  void OnAllTabsInBackgroundTimerExpired(const url::Origin&) override;
+  void OnAllTabsInBackgroundTimerExpired(
+      const url::Origin& origin,
+      const BackgroundExpiryType& expiry_type) override;
   void OnCapturingVideoExpired(const url::Origin&) override;
   void OnCapturingAudioExpired(const url::Origin&) override;
 
diff --git a/chrome/browser/content_settings/one_time_permission_provider_unittest.cc b/chrome/browser/content_settings/one_time_permission_provider_unittest.cc
index aa8ec08..5263a63 100644
--- a/chrome/browser/content_settings/one_time_permission_provider_unittest.cc
+++ b/chrome/browser/content_settings/one_time_permission_provider_unittest.cc
@@ -9,6 +9,7 @@
 #include "base/time/time.h"
 #include "base/values.h"
 #include "chrome/browser/permissions/one_time_permissions_tracker.h"
+#include "chrome/browser/permissions/one_time_permissions_tracker_observer.h"
 #include "components/content_settings/core/browser/content_settings_registry.h"
 #include "components/content_settings/core/common/content_settings.h"
 #include "components/content_settings/core/common/content_settings_constraints.h"
@@ -152,7 +153,8 @@
       one_time_constraints());
 
   one_time_permission_provider_->OnAllTabsInBackgroundTimerExpired(
-      url::Origin::Create(primary_url));
+      url::Origin::Create(primary_url),
+      OneTimePermissionsTrackerObserver::BackgroundExpiryType::kTimeout);
 
   EXPECT_EQ(CONTENT_SETTING_DEFAULT,
             TestUtils::GetContentSetting(
@@ -264,7 +266,8 @@
       one_time_constraints());
 
   one_time_permission_provider_->OnAllTabsInBackgroundTimerExpired(
-      url::Origin::Create(primary_url));
+      url::Origin::Create(primary_url),
+      OneTimePermissionsTrackerObserver::BackgroundExpiryType::kTimeout);
 
   EXPECT_EQ(CONTENT_SETTING_ALLOW,
             TestUtils::GetContentSetting(
@@ -277,6 +280,29 @@
                 ContentSettingsType::MEDIASTREAM_MIC, false));
 }
 
+TEST_F(
+    OneTimePermissionProviderTest,
+    AllTabsInBackgroundExpiryRevokesEphemeralFileSystemAccessPermissions_LongTimeout) {
+  EXPECT_EQ(CONTENT_SETTING_DEFAULT,
+            TestUtils::GetContentSetting(
+                one_time_permission_provider_.get(), primary_url, secondary_url,
+                ContentSettingsType::FILE_SYSTEM_WRITE_GUARD, false));
+
+  one_time_permission_provider_->SetWebsiteSetting(
+      primary_pattern, ContentSettingsPattern::Wildcard(),
+      ContentSettingsType::FILE_SYSTEM_WRITE_GUARD,
+      base::Value(CONTENT_SETTING_ALLOW), one_time_constraints());
+
+  one_time_permission_provider_->OnAllTabsInBackgroundTimerExpired(
+      url::Origin::Create(primary_url),
+      OneTimePermissionsTrackerObserver::BackgroundExpiryType::kLongTimeout);
+
+  EXPECT_EQ(CONTENT_SETTING_DEFAULT,
+            TestUtils::GetContentSetting(
+                one_time_permission_provider_.get(), primary_url, secondary_url,
+                ContentSettingsType::FILE_SYSTEM_WRITE_GUARD, false));
+}
+
 TEST_F(OneTimePermissionProviderTest, ManualRevocationUmaTest) {
   base::HistogramTester histograms;
   EXPECT_EQ(CONTENT_SETTING_DEFAULT,
diff --git a/chrome/browser/device_reauth/android/device_authenticator_android.cc b/chrome/browser/device_reauth/android/device_authenticator_android.cc
index 765134d..6aae8610 100644
--- a/chrome/browser/device_reauth/android/device_authenticator_android.cc
+++ b/chrome/browser/device_reauth/android/device_authenticator_android.cc
@@ -67,7 +67,8 @@
 }
 
 void LogAuthSource(device_reauth::DeviceAuthSource source) {
-  base::UmaHistogramEnumeration("Android.BiometricAuth.AuthSource", source);
+  base::UmaHistogramEnumeration("Android.DeviceAuthenticator.AuthSource",
+                                source);
 }
 
 void LogCanAuthenticate(BiometricsAvailability availability) {
diff --git a/chrome/browser/device_reauth/android/device_authenticator_android_unittest.cc b/chrome/browser/device_reauth/android/device_authenticator_android_unittest.cc
index 704f4df4..ed4aafc 100644
--- a/chrome/browser/device_reauth/android/device_authenticator_android_unittest.cc
+++ b/chrome/browser/device_reauth/android/device_authenticator_android_unittest.cc
@@ -113,7 +113,7 @@
                                 /*use_last_valid_auth=*/true);
 
   histogram_tester.ExpectUniqueSample(
-      "Android.BiometricAuth.AuthSource",
+      "Android.DeviceAuthenticator.AuthSource",
       device_reauth::DeviceAuthSource::kPasswordManager, 1);
 }
 
diff --git a/chrome/browser/device_reauth/android/java/src/org/chromium/chrome/browser/device_reauth/ReauthenticatorBridge.java b/chrome/browser/device_reauth/android/java/src/org/chromium/chrome/browser/device_reauth/ReauthenticatorBridge.java
index 1395fdd..ea34132 100644
--- a/chrome/browser/device_reauth/android/java/src/org/chromium/chrome/browser/device_reauth/ReauthenticatorBridge.java
+++ b/chrome/browser/device_reauth/android/java/src/org/chromium/chrome/browser/device_reauth/ReauthenticatorBridge.java
@@ -44,17 +44,16 @@
     }
 
     /**
-     * Starts reauthentication.
+     * Starts reauthentication. This method implies that the user will need to authenticate again if
+     * they want to perform an authenticated action (i.e. the user will be considered not
+     * authenticated immediately after the current action finishes).
      *
      * @param callback Callback that will be executed once request is done.
-     * @param useLastValidAuth A boolean value indicating whether to consider the last but "recent"
-     *         validated auth for passing the current authentication request.
      */
-    public void reauthenticate(Callback<Boolean> callback, boolean useLastValidAuth) {
+    public void reauthenticate(Callback<Boolean> callback) {
         if (mAuthResultCallback == null) {
             mAuthResultCallback = callback;
-            ReauthenticatorBridgeJni.get().reauthenticate(
-                    mNativeReauthenticatorBridge, useLastValidAuth);
+            ReauthenticatorBridgeJni.get().reauthenticate(mNativeReauthenticatorBridge);
         }
     }
 
@@ -87,6 +86,6 @@
         long create(ReauthenticatorBridge reauthenticatorBridge, int source);
         boolean canUseAuthenticationWithBiometric(long nativeReauthenticatorBridge);
         boolean canUseAuthenticationWithBiometricOrScreenLock(long nativeReauthenticatorBridge);
-        void reauthenticate(long nativeReauthenticatorBridge, boolean useLastValidAuth);
+        void reauthenticate(long nativeReauthenticatorBridge);
     }
 }
diff --git a/chrome/browser/device_reauth/android/reauthenticator_bridge.cc b/chrome/browser/device_reauth/android/reauthenticator_bridge.cc
index 4eab608..ad5bb012 100644
--- a/chrome/browser/device_reauth/android/reauthenticator_bridge.cc
+++ b/chrome/browser/device_reauth/android/reauthenticator_bridge.cc
@@ -50,8 +50,7 @@
          authenticator_->CanAuthenticateWithBiometricOrScreenLock();
 }
 
-void ReauthenticatorBridge::Reauthenticate(JNIEnv* env,
-                                           bool use_last_valid_auth) {
+void ReauthenticatorBridge::Reauthenticate(JNIEnv* env) {
   if (!authenticator_) {
     return;
   }
@@ -62,7 +61,7 @@
   authenticator_->Authenticate(
       base::BindOnce(&ReauthenticatorBridge::OnReauthenticationCompleted,
                      base::Unretained(this)),
-      use_last_valid_auth);
+      false);
 }
 
 void ReauthenticatorBridge::OnReauthenticationCompleted(bool auth_succeeded) {
diff --git a/chrome/browser/device_reauth/android/reauthenticator_bridge.h b/chrome/browser/device_reauth/android/reauthenticator_bridge.h
index 24bf309..b2a6a4f 100644
--- a/chrome/browser/device_reauth/android/reauthenticator_bridge.h
+++ b/chrome/browser/device_reauth/android/reauthenticator_bridge.h
@@ -29,7 +29,7 @@
   bool CanUseAuthenticationWithBiometricOrScreenLock(JNIEnv* env);
 
   // Called by Java to start authentication.
-  void Reauthenticate(JNIEnv* env, bool use_last_valid_auth);
+  void Reauthenticate(JNIEnv* env);
 
   // Called when reauthentication is completed.
   void OnReauthenticationCompleted(bool auth_succeeded);
diff --git a/chrome/browser/extensions/BUILD.gn b/chrome/browser/extensions/BUILD.gn
index 8eec6f4..1698ba8 100644
--- a/chrome/browser/extensions/BUILD.gn
+++ b/chrome/browser/extensions/BUILD.gn
@@ -1196,6 +1196,7 @@
       "//chrome/browser/devtools",
       "//chrome/browser/nearby_sharing/common",
       "//chromeos/ash/components/attestation",
+      "//chromeos/ash/components/browser_context_helper",
       "//chromeos/ash/components/cryptohome",
       "//chromeos/ash/components/dbus",
       "//chromeos/ash/components/dbus/attestation:attestation_proto",
diff --git a/chrome/browser/extensions/api/quick_unlock_private/quick_unlock_private_api.cc b/chrome/browser/extensions/api/quick_unlock_private/quick_unlock_private_api.cc
index 82f7ff8..8586ebf 100644
--- a/chrome/browser/extensions/api/quick_unlock_private/quick_unlock_private_api.cc
+++ b/chrome/browser/extensions/api/quick_unlock_private/quick_unlock_private_api.cc
@@ -22,6 +22,7 @@
 #include "chrome/browser/extensions/api/quick_unlock_private/quick_unlock_private_ash_utils.h"
 #include "chrome/browser/profiles/profile.h"
 #include "chrome/browser/profiles/profile_manager.h"
+#include "chromeos/ash/components/browser_context_helper/browser_context_helper.h"
 #include "chromeos/ash/components/login/auth/public/authentication_error.h"
 #include "chromeos/ash/components/login/auth/public/user_context.h"
 #include "chromeos/ash/components/osauth/public/auth_session_storage.h"
@@ -469,13 +470,19 @@
       GetCredentialRequirements::Params::Create(args());
   EXTENSION_FUNCTION_VALIDATE(params_);
 
-  // GetCredentialRequirements could be called before user sign-in during
-  // UI initialization in SetupPinKeyboardElement.connectedCallback.
+  // GetCredentialRequirements could be called before user sign-in, or before
+  // the user profile is finished loading during UI initialization in
+  // SetupPinKeyboardElement.connectedCallback,
   // Use the sign-in profile from browser_context() in such case.
   // TODO(b/288150711): Revert to `GetActiveProfile` after fix.
-  Profile* profile = user_manager::UserManager::Get()->IsUserLoggedIn()
-                         ? GetActiveProfile(browser_context())
-                         : Profile::FromBrowserContext(browser_context());
+  const user_manager::User* active_user =
+      user_manager::UserManager::Get()->GetActiveUser();
+  Profile* profile =
+      active_user && active_user->is_profile_created()
+          ? Profile::FromBrowserContext(
+                ash::BrowserContextHelper::Get()->GetBrowserContextByUser(
+                    active_user))
+          : Profile::FromBrowserContext(browser_context());
 
   auto result = std::make_unique<CredentialRequirements>();
   std::tie(result->min_length, result->max_length) =
diff --git a/chrome/browser/file_system_access/chrome_file_system_access_permission_context.cc b/chrome/browser/file_system_access/chrome_file_system_access_permission_context.cc
index 9ce6788..6ff9ce3 100644
--- a/chrome/browser/file_system_access/chrome_file_system_access_permission_context.cc
+++ b/chrome/browser/file_system_access/chrome_file_system_access_permission_context.cc
@@ -41,6 +41,7 @@
 #include "chrome/grit/generated_resources.h"
 #include "components/content_settings/core/browser/host_content_settings_map.h"
 #include "components/content_settings/core/common/content_settings.h"
+#include "components/permissions/features.h"
 #include "components/permissions/permission_decision_auto_blocker.h"
 #include "components/permissions/permission_util.h"
 #include "components/safe_browsing/buildflags.h"
@@ -57,6 +58,8 @@
 #include "url/origin.h"
 
 #if !BUILDFLAG(IS_ANDROID)
+#include "chrome/browser/permissions/one_time_permissions_tracker_factory.h"
+#include "chrome/browser/permissions/one_time_permissions_tracker_observer.h"
 #include "chrome/browser/ui/browser.h"
 #include "chrome/browser/ui/browser_list.h"
 #include "chrome/browser/ui/browser_window.h"
@@ -987,6 +990,13 @@
   // feature flag checks before launch.
   if (base::FeatureList::IsEnabled(
           features::kFileSystemAccessPersistentPermissions)) {
+#if !BUILDFLAG(IS_ANDROID)
+    if (base::FeatureList::IsEnabled(
+            permissions::features::kOneTimePermission)) {
+      one_time_permissions_tracker_.Observe(
+          OneTimePermissionsTrackerFactory::GetForBrowserContext(context));
+    }
+#endif
     // Deprecated persisted permission objects contains a timestamp key, used
     // in old implementation. Revoke them so that the state is reset for the new
     // persisted permission implementation.
@@ -1032,11 +1042,10 @@
         grant_revoked = true;
       }
     }
-    // TODO(crbug.com/1011533): Update `grant_status` value depending on
-    // whether the permissions have been revoked due to tab backgrounding,
-    // once the One Time Permissions tab backgrounding listener has been
-    // implemented.
-    if (file_path.empty()) {
+    // Only update `grant_status` if the state has not already been set via
+    // tab backgrounding.
+    if (file_path.empty() &&
+        origin_state.grant_status != GrantStatus::kBackgrounded) {
       origin_state.grant_status = GrantStatus::kLoaded;
     }
   }
@@ -1858,6 +1867,38 @@
   });
 }
 
+// All tabs for a given origin have been backgrounded or cleared in the past
+// 16 hours. When this happens, we update the given origin's `OriginState` to
+// note that all tabs were recently backgrounded.
+#if !BUILDFLAG(IS_ANDROID)
+void ChromeFileSystemAccessPermissionContext::OnAllTabsInBackgroundTimerExpired(
+    const url::Origin& origin,
+    const OneTimePermissionsTrackerObserver::BackgroundExpiryType&
+        expiry_type) {
+  if (!base::FeatureList::IsEnabled(
+          features::kFileSystemAccessPersistentPermissions) ||
+      !base::FeatureList::IsEnabled(
+          permissions::features::kOneTimePermission)) {
+    return;
+  }
+  auto origin_it = active_permissions_map_.find(origin);
+  if (origin_it != active_permissions_map_.end()) {
+    OriginState& origin_state = origin_it->second;
+    origin_state.grant_status = GrantStatus::kBackgrounded;
+    if (RevokeActiveGrants(origin)) {
+      // TODO(crbug.com/1011533): Add `RecordOneTimePermissionEvent` UMA
+      // histogram logging when active grants are revoked as a result of tab
+      // backgrounding.
+      ScheduleUsageIconUpdate();
+    }
+  }
+}
+
+void ChromeFileSystemAccessPermissionContext::OnShutdown() {
+  one_time_permissions_tracker_.Reset();
+}
+#endif
+
 void ChromeFileSystemAccessPermissionContext::NavigatedAwayFromOrigin(
     const url::Origin& origin) {
   DCHECK_CALLED_ON_VALID_SEQUENCE(sequence_checker_);
@@ -2075,10 +2116,16 @@
     return false;
   }
 
-  // TODO(crbug.com/1011533): Implement logic to check if permissions have
-  // been revoked as a result of tab(s) being backgrounded, and allow the
-  // possibility of the Restore Prompt to be shown even if the handle was not
-  // retrieved from IndexedDB.
+  // While this method is called from `RequestPermission`, which implies that
+  // a `PermissionGrantImpl` exists - we want to insert the origin into the
+  // permissions map if it does not exist, in order to cover cases of shutdown
+  // or page navigation.
+  auto& origin_state = active_permissions_map_[origin];
+
+  if (origin_state.grant_status == GrantStatus::kBackgrounded) {
+    return HasDormantPermission(origin, file_path, handle_type, grant_type);
+  }
+
   if (user_action != UserAction::kLoadFromStorage) {
     return false;
   }
diff --git a/chrome/browser/file_system_access/chrome_file_system_access_permission_context.h b/chrome/browser/file_system_access/chrome_file_system_access_permission_context.h
index cd27040..85683eb9 100644
--- a/chrome/browser/file_system_access/chrome_file_system_access_permission_context.h
+++ b/chrome/browser/file_system_access/chrome_file_system_access_permission_context.h
@@ -11,15 +11,23 @@
 #include "base/feature_list.h"
 #include "base/files/file_path.h"
 #include "base/memory/raw_ptr.h"
+#include "base/scoped_observation.h"
 #include "base/sequence_checker.h"
 #include "base/time/clock.h"
 #include "base/time/default_clock.h"
 #include "components/permissions/object_permission_context_base.h"
-#include "components/permissions/permission_decision_auto_blocker.h"
 #include "content/public/browser/file_system_access_permission_context.h"
 #include "third_party/blink/public/mojom/file_system_access/file_system_access_manager.mojom-forward.h"
 
+#if !BUILDFLAG(IS_ANDROID)
+#include "chrome/browser/permissions/one_time_permissions_tracker.h"
+#include "chrome/browser/permissions/one_time_permissions_tracker_observer.h"
+#endif
+
 class HostContentSettingsMap;
+#if !BUILDFLAG(IS_ANDROID)
+class OneTimePermissionsTracker;
+#endif
 enum ContentSetting;
 
 namespace content {
@@ -55,7 +63,12 @@
 // All methods must be called on the UI thread.
 class ChromeFileSystemAccessPermissionContext
     : public content::FileSystemAccessPermissionContext,
-      public permissions::ObjectPermissionContextBase {
+      public permissions::ObjectPermissionContextBase
+#if !BUILDFLAG(IS_ANDROID)
+    ,
+      public OneTimePermissionsTrackerObserver
+#endif
+{
  public:
   // Represents the origin-scoped state for a given origin's permission grants.
   // The associated `grant_status` value is stored on the `OriginState`, for
@@ -93,6 +106,18 @@
   std::u16string GetObjectDisplayName(const base::Value::Dict& object) override;
   std::set<url::Origin> GetOriginsWithGrants() override;
 
+#if !BUILDFLAG(IS_ANDROID)
+  // OneTimePermissionsTrackerObserver:
+  base::ScopedObservation<OneTimePermissionsTracker,
+                          OneTimePermissionsTrackerObserver>
+      one_time_permissions_tracker_{this};
+  void OnAllTabsInBackgroundTimerExpired(
+      const url::Origin& origin,
+      const OneTimePermissionsTrackerObserver::BackgroundExpiryType&
+          expiry_type) override;
+  void OnShutdown() override;
+#endif
+
   // content::FileSystemAccessPermissionContext:
   scoped_refptr<content::FileSystemAccessPermissionGrant>
   GetReadPermissionGrant(const url::Origin& origin,
diff --git a/chrome/browser/file_system_access/chrome_file_system_access_permission_context_unittest.cc b/chrome/browser/file_system_access/chrome_file_system_access_permission_context_unittest.cc
index 5dfe90e..bba7954 100644
--- a/chrome/browser/file_system_access/chrome_file_system_access_permission_context_unittest.cc
+++ b/chrome/browser/file_system_access/chrome_file_system_access_permission_context_unittest.cc
@@ -32,6 +32,7 @@
 #include "chrome/test/base/testing_profile.h"
 #include "components/content_settings/core/browser/host_content_settings_map.h"
 #include "components/content_settings/core/common/pref_names.h"
+#include "components/permissions/features.h"
 #include "components/permissions/permission_decision_auto_blocker.h"
 #include "components/permissions/permission_util.h"
 #include "components/sync_preferences/testing_pref_service_syncable.h"
@@ -46,6 +47,10 @@
 #include "url/gurl.h"
 #include "url/origin.h"
 
+#if !BUILDFLAG(IS_ANDROID)
+#include "chrome/browser/permissions/one_time_permissions_tracker_observer.h"
+#endif
+
 using content::BrowserContext;
 using content::WebContents;
 using content::WebContentsTester;
@@ -80,8 +85,10 @@
 class ChromeFileSystemAccessPermissionContextTest : public testing::Test {
  public:
   ChromeFileSystemAccessPermissionContextTest() {
-    scoped_feature_list_.InitAndEnableFeature(
-        features::kFileSystemAccessPersistentPermissions);
+    scoped_feature_list_.InitWithFeatures(
+        {features::kFileSystemAccessPersistentPermissions,
+         permissions::features::kOneTimePermission},
+        {});
   }
   void SetUp() override {
     // Create a scoped directory under %TEMP% instead of using
@@ -1540,6 +1547,32 @@
   EXPECT_TRUE(origin_is_embargoed_after_ignore_limit);
 }
 
+TEST_F(ChromeFileSystemAccessPermissionContextTest,
+       ShowRestorePrompt_RequestPermissionAfterTabsBackgrounded) {
+  auto grant = permission_context()->GetWritePermissionGrant(
+      kTestOrigin, kTestPath, HandleType::kFile, UserAction::kSave);
+  EXPECT_EQ(PermissionStatus::GRANTED, grant->GetStatus());
+  base::test::TestFuture<PermissionRequestOutcome> future;
+  grant->RequestPermission(frame_id(), UserActivationState::kNotRequired,
+                           future.GetCallback());
+  auto permisison_request_outcome = future.Get();
+  EXPECT_FALSE(PermissionRequestOutcome::kGrantedByRestorePrompt ==
+               permisison_request_outcome);
+  EXPECT_EQ(PermissionStatus::GRANTED, grant->GetStatus());
+
+  // Active grants are set to `ASK` state, as a result of tab backgrounding.
+  permission_context()->OnAllTabsInBackgroundTimerExpired(
+      kTestOrigin,
+      OneTimePermissionsTrackerObserver::BackgroundExpiryType::kLongTimeout);
+  EXPECT_EQ(PermissionStatus::ASK, grant->GetStatus());
+
+  // The origin is now eligible to show the restore prompt.
+  base::test::TestFuture<PermissionRequestOutcome> future2;
+  grant->RequestPermission(frame_id(), UserActivationState::kNotRequired,
+                           future2.GetCallback());
+  EXPECT_EQ(PermissionRequestOutcome::kGrantedByRestorePrompt, future2.Get());
+}
+
 TEST_F(
     ChromeFileSystemAccessPermissionContextNoPersistenceTest,
     GetWritePermissionGrant_GrantIsRevokedWhenNoLongerUsed_GlobalGuardBlockedAfterNewGrant_NoPersistentPermissions) {
diff --git a/chrome/browser/flag-metadata.json b/chrome/browser/flag-metadata.json
index 6679c38..da2c591d 100644
--- a/chrome/browser/flag-metadata.json
+++ b/chrome/browser/flag-metadata.json
@@ -1139,6 +1139,11 @@
     "expiry_milestone": 123
   },
   {
+    "name": "cdm-storage-database",
+    "owners": ["vpasupathy@google.com", "alcatraz-eng@google.com", "chrome-owp-storage@google.com"],
+    "expiry_milestone": 125
+  },
+  {
     "name": "cellular-bypass-esim-installation-connectivity-check",
     "owners": [ "azeemarshad", "khorimoto", "jiajunz", "cros-connectivity@google.com" ],
     // This flag does not expire because it allows some test cases that host a local SM-DP+ server
@@ -1875,6 +1880,11 @@
     "expiry_milestone": 120
   },
   {
+    "name": "downloads-migrate-to-jobs-api",
+    "owners": ["shaktisahu", "qinmin"],
+    "expiry_milestone": 125
+  },
+  {
     "name": "drag-drop-into-omnibox",
     "owners": ["jtanaristy", "wenyufu"],
     "expiry_milestone": 120
@@ -8015,6 +8025,11 @@
     "expiry_milestone": 133
   },
   {
+    "name": "tracking-protection-onboarding-force-eligibility",
+    "owners": ["boujane@google.com", "koilos@google.com"],
+    "expiry_milestone": 125
+  },
+  {
     "name": "traffic-counters",
     "owners": ["khorimoto", "cros-connectivity@google.com"],
     "expiry_milestone": 120
diff --git a/chrome/browser/flag_descriptions.cc b/chrome/browser/flag_descriptions.cc
index 0a8ee6d29..40edb7b5 100644
--- a/chrome/browser/flag_descriptions.cc
+++ b/chrome/browser/flag_descriptions.cc
@@ -125,6 +125,10 @@
     "Broker file operations on disk cache running in the Network Service. This "
     "is no-op when the Network Service is running in the browser process.";
 
+const char kCdmStorageDatabaseName[] = "Cdm Storage Database";
+const char kCdmStorageDatabaseDescription[] =
+    "Use the Cdm Storage Database over the MediaLicenseDatabase";
+
 const char kClickToCallName[] = "Click-To-Call";
 const char kClickToCallDescription[] = "Enable the click-to-call feature.";
 
@@ -1287,6 +1291,11 @@
 const char kEnableNewDownloadBackendDescription[] =
     "Enables the new download backend that uses offline content provider";
 
+const char kDownloadsMigrateToJobsAPIName[] = "Migrate downloads use jobs API";
+const char kDownloadsMigrateToJobsAPIDescription[] =
+    "Migrate downloads to use user-initiated jobs instead of foreground "
+    "service on Android 14";
+
 const char kEnablePerfettoSystemTracingName[] =
     "Enable Perfetto system tracing";
 const char kEnablePerfettoSystemTracingDescription[] =
@@ -3398,6 +3407,11 @@
     "Enables the tracking protection UI + prefs that will be used for the 3PCD "
     "1%. ";
 
+const char kTrackingProtectionOnboardingForceEligibilityName[] =
+    "Tracking Protection Onboarding Flow";
+const char kTrackingProtectionOnboardingForceEligibilityDescription[] =
+    "Enables the onboarding flow for Tracking Protections";
+
 const char kUserBypassUIName[] = "User Bypass UI";
 const char kUserBypassUIDescription[] = "Enables the User Bypass UI. ";
 
diff --git a/chrome/browser/flag_descriptions.h b/chrome/browser/flag_descriptions.h
index ef046a9..a16e595 100644
--- a/chrome/browser/flag_descriptions.h
+++ b/chrome/browser/flag_descriptions.h
@@ -107,6 +107,9 @@
 
 extern const char kCOLRV1FontsDescription[];
 
+extern const char kCdmStorageDatabaseName[];
+extern const char kCdmStorageDatabaseDescription[];
+
 extern const char kChromeRootStoreEnabledName[];
 extern const char kChromeRootStoreEnabledDescription[];
 
@@ -786,6 +789,9 @@
 extern const char kEnableNewDownloadBackendName[];
 extern const char kEnableNewDownloadBackendDescription[];
 
+extern const char kDownloadsMigrateToJobsAPIName[];
+extern const char kDownloadsMigrateToJobsAPIDescription[];
+
 extern const char kEnablePenetratingImageSelectionName[];
 extern const char kEnablePenetratingImageSelectionDescription[];
 
@@ -1959,6 +1965,9 @@
 extern const char kTrackingProtection3pcdName[];
 extern const char kTrackingProtection3pcdDescription[];
 
+extern const char kTrackingProtectionOnboardingForceEligibilityName[];
+extern const char kTrackingProtectionOnboardingForceEligibilityDescription[];
+
 extern const char kUnifiedPasswordManagerAndroidName[];
 extern const char kUnifiedPasswordManagerAndroidDescription[];
 
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 b94feba..85131d6 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
@@ -539,6 +539,8 @@
             new CachedFlag(DELAY_TEMP_STRIP_REMOVAL, true);
     public static final CachedFlag sDragDropIntoOmnibox =
             new CachedFlag(DRAG_DROP_INTO_OMNIBOX, false);
+    public static final CachedFlag sDownloadsMigrateToJobsAPI =
+            new CachedFlag(DOWNLOADS_MIGRATE_TO_JOBS_API, false);
     public static final CachedFlag sEmptyStates = new CachedFlag(EMPTY_STATES, true);
     public static final CachedFlag sExperimentsForAgsa = new CachedFlag(EXPERIMENTS_FOR_AGSA, true);
     public static final CachedFlag sFeedLoadingPlaceholder =
@@ -644,6 +646,7 @@
         sCommandLineOnNonRooted,
         sDelayTempStripRemoval,
         sDragDropIntoOmnibox,
+        sDownloadsMigrateToJobsAPI,
         sEmptyStates,
         sFeedLoadingPlaceholder,
         sFriendlierSafeBrowsingSettingsEnhancedProtection,
diff --git a/chrome/browser/incognito/android/java/src/org/chromium/chrome/browser/incognito/reauth/IncognitoReauthManager.java b/chrome/browser/incognito/android/java/src/org/chromium/chrome/browser/incognito/reauth/IncognitoReauthManager.java
index e855bc6..96a784cd 100644
--- a/chrome/browser/incognito/android/java/src/org/chromium/chrome/browser/incognito/reauth/IncognitoReauthManager.java
+++ b/chrome/browser/incognito/android/java/src/org/chromium/chrome/browser/incognito/reauth/IncognitoReauthManager.java
@@ -66,7 +66,7 @@
             } else {
                 incognitoReauthCallback.onIncognitoReauthFailure();
             }
-        }, /*useLastValidAuth=*/false);
+        });
     }
     /**
      * @return A boolean indicating whether the platform version supports reauth and the
diff --git a/chrome/browser/incognito/android/java/src/org/chromium/chrome/browser/incognito/reauth/IncognitoReauthManagerTest.java b/chrome/browser/incognito/android/java/src/org/chromium/chrome/browser/incognito/reauth/IncognitoReauthManagerTest.java
index 35c0b3e..9ec5acf 100644
--- a/chrome/browser/incognito/android/java/src/org/chromium/chrome/browser/incognito/reauth/IncognitoReauthManagerTest.java
+++ b/chrome/browser/incognito/android/java/src/org/chromium/chrome/browser/incognito/reauth/IncognitoReauthManagerTest.java
@@ -4,7 +4,6 @@
 
 package org.chromium.chrome.browser.incognito.reauth;
 
-import static org.mockito.ArgumentMatchers.eq;
 import static org.mockito.ArgumentMatchers.notNull;
 import static org.mockito.Mockito.doAnswer;
 import static org.mockito.Mockito.verify;
@@ -83,7 +82,7 @@
             return true;
         })
                 .when(mReauthenticatorBridgeMock)
-                .reauthenticate(notNull(), /*useLastValidAuth=*/eq(false));
+                .reauthenticate(notNull());
 
         mIncognitoReauthManager.startReauthenticationFlow(mIncognitoReauthCallbackMock);
         verify(mIncognitoReauthCallbackMock).onIncognitoReauthSuccess();
@@ -102,7 +101,7 @@
             return false;
         })
                 .when(mReauthenticatorBridgeMock)
-                .reauthenticate(notNull(), /*useLastValidAuth=*/eq(false));
+                .reauthenticate(notNull());
 
         mIncognitoReauthManager.startReauthenticationFlow(mIncognitoReauthCallbackMock);
         verify(mIncognitoReauthCallbackMock).onIncognitoReauthFailure();
diff --git a/chrome/browser/media/cast_mirroring_service_host_browsertest.cc b/chrome/browser/media/cast_mirroring_service_host_browsertest.cc
index 05c4f27f..b338c4b0 100644
--- a/chrome/browser/media/cast_mirroring_service_host_browsertest.cc
+++ b/chrome/browser/media/cast_mirroring_service_host_browsertest.cc
@@ -96,6 +96,8 @@
   MOCK_METHOD1(OnBufferDestroyedCall, void(int buffer_id));
   MOCK_METHOD1(OnStateChangedCall, void(media::mojom::VideoCaptureState state));
   MOCK_METHOD1(OnVideoCaptureErrorCall, void(media::VideoCaptureError error));
+  MOCK_METHOD1(OnFrameDroppedEarly,
+               void(media::VideoCaptureFrameDropReason reason));
 
   // media::mojom::VideoCaptureObserver implementation.
   void OnNewBuffer(int32_t buffer_id,
diff --git a/chrome/browser/net/profile_network_context_service.cc b/chrome/browser/net/profile_network_context_service.cc
index f67a9a97..8825dc2 100644
--- a/chrome/browser/net/profile_network_context_service.cc
+++ b/chrome/browser/net/profile_network_context_service.cc
@@ -244,19 +244,6 @@
       settings));
 }
 
-void Update3pcdMetadataGrantsSettings(Profile* profile) {
-  ContentSettingsForOneType settings =
-      HostContentSettingsMapFactory::GetForProfile(profile)
-          ->GetSettingsForOneType(ContentSettingsType::TPCD_METADATA_GRANTS);
-  profile->ForEachLoadedStoragePartition(base::BindRepeating(
-      [](ContentSettingsForOneType settings,
-         content::StoragePartition* storage_partition) {
-        storage_partition->GetCookieManagerForBrowserProcess()
-            ->SetContentSettingsFor3pcdMetadataGrants(settings);
-      },
-      settings));
-}
-
 // `kPermissionStorageAccessAPI` enables feature: Storage Access API with
 // Prompts (https://chromestatus.com/feature/5085655327047680). StorageAccessAPI
 // is considered enabled when either feature is enabled (by different field
@@ -645,9 +632,7 @@
   out->settings_for_3pcd = host_content_settings_map->GetSettingsForOneType(
       ContentSettingsType::TPCD_SUPPORT);
 
-  out->settings_for_3pcd_metadata_grants =
-      host_content_settings_map->GetSettingsForOneType(
-          ContentSettingsType::TPCD_METADATA_GRANTS);
+  out->settings_for_3pcd_metadata_grants = ContentSettingsForOneType();
 
   if (StorageAccessAPIEnabled()) {
     out->settings_for_storage_access =
@@ -1115,9 +1100,6 @@
     case ContentSettingsType::TPCD_SUPPORT:
       Update3pcdSettings(profile_);
       break;
-    case ContentSettingsType::TPCD_METADATA_GRANTS:
-      Update3pcdMetadataGrantsSettings(profile_);
-      break;
     case ContentSettingsType::STORAGE_ACCESS:
       UpdateStorageAccessSettings(profile_);
       break;
@@ -1129,7 +1111,6 @@
       UpdateCookieSettings(profile_);
       UpdateLegacyCookieSettings(profile_);
       Update3pcdSettings(profile_);
-      Update3pcdMetadataGrantsSettings(profile_);
       UpdateAllStorageAccessSettings(profile_);
       break;
     default:
diff --git a/chrome/browser/password_manager/android/password_store_android_backend.cc b/chrome/browser/password_manager/android/password_store_android_backend.cc
index 1eefba1e..b36c841 100644
--- a/chrome/browser/password_manager/android/password_store_android_backend.cc
+++ b/chrome/browser/password_manager/android/password_store_android_backend.cc
@@ -44,7 +44,6 @@
 #include "components/password_manager/core/browser/password_store_util.h"
 #include "components/password_manager/core/browser/password_sync_util.h"
 #include "components/password_manager/core/browser/psl_matching_helper.h"
-#include "components/password_manager/core/common/password_manager_features.h"
 #include "components/password_manager/core/common/password_manager_pref_names.h"
 #include "components/prefs/pref_service.h"
 #include "components/sync/model/proxy_model_type_controller_delegate.h"
@@ -262,10 +261,6 @@
 }
 
 void LogUPMActiveStatus(syncer::SyncService* sync_service, PrefService* prefs) {
-  // This is called from `PasswordStoreAndroidBackend` which is only
-  // created when feature is enabled.
-  DCHECK(base::FeatureList::IsEnabled(
-      password_manager::features::kUnifiedPasswordManagerAndroid));
   if (!sync_util::IsPasswordSyncEnabled(sync_service)) {
     base::UmaHistogramEnumeration(
         kUPMActiveHistogram,
@@ -552,8 +547,6 @@
 PasswordStoreAndroidBackend::PasswordStoreAndroidBackend(PrefService* prefs)
     : lifecycle_helper_(std::make_unique<PasswordManagerLifecycleHelperImpl>()),
       bridge_helper_(PasswordStoreAndroidBackendBridgeHelper::Create()) {
-  DCHECK(base::FeatureList::IsEnabled(
-      password_manager::features::kUnifiedPasswordManagerAndroid));
   DCHECK(bridge_helper_);
   prefs_ = prefs;
   DCHECK(prefs_);
diff --git a/chrome/browser/password_manager/password_store_backend_factory.cc b/chrome/browser/password_manager/password_store_backend_factory.cc
index 1162cdc..862cb64 100644
--- a/chrome/browser/password_manager/password_store_backend_factory.cc
+++ b/chrome/browser/password_manager/password_store_backend_factory.cc
@@ -16,10 +16,8 @@
 #include "components/prefs/pref_service.h"
 
 #if BUILDFLAG(IS_ANDROID)
-#include "base/feature_list.h"
 #include "chrome/browser/password_manager/android/password_store_android_backend.h"
 #include "components/password_manager/core/browser/password_store_backend_migration_decorator.h"
-#include "components/password_manager/core/common/password_manager_features.h"
 #endif  // BUILDFLAG(IS_ANDROID)
 
 namespace password_manager {
@@ -33,9 +31,7 @@
       CreateLoginDatabaseForProfileStorage(login_db_path),
       syncer::WipeModelUponSyncDisabledBehavior::kNever);
 #else  // BUILDFLAG(IS_ANDROID) && !USE_LEGACY_PASSWORD_STORE_BACKEND
-  if (PasswordStoreAndroidBackendBridgeHelper::CanCreateBackend() &&
-      base::FeatureList::IsEnabled(
-          password_manager::features::kUnifiedPasswordManagerAndroid)) {
+  if (PasswordStoreAndroidBackendBridgeHelper::CanCreateBackend()) {
     base::UmaHistogramBoolean(
         "PasswordManager.PasswordStore.WasEnrolledInUPMWhenBackendWasCreated",
         !prefs->GetBoolean(password_manager::prefs::
diff --git a/chrome/browser/permissions/one_time_permissions_tracker.cc b/chrome/browser/permissions/one_time_permissions_tracker.cc
index f400a95..aea9c18 100644
--- a/chrome/browser/permissions/one_time_permissions_tracker.cc
+++ b/chrome/browser/permissions/one_time_permissions_tracker.cc
@@ -16,6 +16,7 @@
 #include "chrome/browser/profiles/profile.h"
 #include "components/content_settings/core/common/content_settings_types.h"
 #include "components/permissions/features.h"
+#include "components/permissions/permission_context_base.h"
 #include "content/public/browser/visibility.h"
 #include "url/gurl.h"
 
@@ -50,18 +51,30 @@
 
     if (AreAllTabsToOriginBackgroundedOrDiscarded(origin)) {
       // When all undiscarded tabs which point to the origin are in the
-      // background, the timer should be reset.
+      // background, the timers should be reset.
       origin_tracker_[origin].background_expiration_timer->Start(
           FROM_HERE,
           permissions::feature_params::kOneTimePermissionTimeout.Get(),
           base::BindOnce(
               &OneTimePermissionsTracker::NotifyBackgroundTimerExpired,
-              weak_factory_.GetWeakPtr(), origin));
+              weak_factory_.GetWeakPtr(), origin,
+              OneTimePermissionsTrackerObserver::BackgroundExpiryType::
+                  kTimeout));
+
+      origin_tracker_[origin].background_expiration_long_timer->Start(
+          FROM_HERE,
+          permissions::feature_params::kOneTimePermissionLongTimeout.Get(),
+          base::BindOnce(
+              &OneTimePermissionsTracker::NotifyBackgroundTimerExpired,
+              weak_factory_.GetWeakPtr(), origin,
+              OneTimePermissionsTrackerObserver::BackgroundExpiryType::
+                  kLongTimeout));
 
       HandleUserMediaState(origin, ContentSettingsType::MEDIASTREAM_CAMERA);
       HandleUserMediaState(origin, ContentSettingsType::MEDIASTREAM_MIC);
     } else {
       origin_tracker_[origin].background_expiration_timer->Stop();
+      origin_tracker_[origin].background_expiration_long_timer->Stop();
     }
   }
 }
@@ -70,8 +83,9 @@
     const url::Origin& origin) {
   if (!ShouldIgnoreOrigin(origin)) {
     origin_tracker_[origin].background_tab_counter--;
-    // Since the tab has been unbackgrounded, the timer should be reset
+    // Since the tab has been unbackgrounded, the timers should be reset
     origin_tracker_[origin].background_expiration_timer->Stop();
+    origin_tracker_[origin].background_expiration_long_timer->Stop();
   }
 }
 
@@ -80,6 +94,7 @@
   if (!ShouldIgnoreOrigin(origin)) {
     origin_tracker_[origin].undiscarded_tab_counter++;
     origin_tracker_[origin].background_expiration_timer->Stop();
+    origin_tracker_[origin].background_expiration_long_timer->Stop();
   }
 }
 
@@ -250,11 +265,20 @@
 }
 
 void OneTimePermissionsTracker::NotifyBackgroundTimerExpired(
-    const url::Origin& origin) {
+    const url::Origin& origin,
+    const OneTimePermissionsTrackerObserver::BackgroundExpiryType&
+        expiry_type) {
   for (auto& observer : observer_list_) {
-    observer.OnAllTabsInBackgroundTimerExpired(origin);
+    observer.OnAllTabsInBackgroundTimerExpired(origin, expiry_type);
   }
-  origin_tracker_[origin].background_expiration_timer->Stop();
+  switch (expiry_type) {
+    case OneTimePermissionsTrackerObserver::BackgroundExpiryType::kTimeout:
+      origin_tracker_[origin].background_expiration_timer->Stop();
+      return;
+    case OneTimePermissionsTrackerObserver::BackgroundExpiryType::kLongTimeout:
+      origin_tracker_[origin].background_expiration_long_timer->Stop();
+      return;
+  }
 }
 
 void OneTimePermissionsTracker::NotifyCapturingVideoExpired(
diff --git a/chrome/browser/permissions/one_time_permissions_tracker.h b/chrome/browser/permissions/one_time_permissions_tracker.h
index 168f8e13..0a4c059 100644
--- a/chrome/browser/permissions/one_time_permissions_tracker.h
+++ b/chrome/browser/permissions/one_time_permissions_tracker.h
@@ -103,6 +103,12 @@
     std::unique_ptr<base::OneShotTimer> background_expiration_timer =
         std::make_unique<base::OneShotTimer>();
 
+    // One shot timer for expiring permissions that are temporarily disabled by
+    // backgrounding. This timer is only used in the File System Access
+    // Persistent Permissions implementation to detect tab backgrounding events.
+    std::unique_ptr<base::OneShotTimer> background_expiration_long_timer =
+        std::make_unique<base::OneShotTimer>();
+
     // One shot timer for user-media one-time permissions for this origin.
     std::map<ContentSettingsType, std::unique_ptr<base::OneShotTimer>>
         content_setting_specific_expiration_timer_map;
@@ -120,7 +126,10 @@
                                            ContentSettingsType content_setting,
                                            NotifyFunction notify_callback);
 
-  void NotifyBackgroundTimerExpired(const url::Origin& origin);
+  void NotifyBackgroundTimerExpired(
+      const url::Origin& origin,
+      const OneTimePermissionsTrackerObserver::BackgroundExpiryType&
+          expiry_type);
   void NotifyCapturingVideoExpired(const url::Origin& origin);
   void NotifyCapturingAudioExpired(const url::Origin& origin);
 
diff --git a/chrome/browser/permissions/one_time_permissions_tracker_observer.h b/chrome/browser/permissions/one_time_permissions_tracker_observer.h
index 714bf7d..51d8c75 100644
--- a/chrome/browser/permissions/one_time_permissions_tracker_observer.h
+++ b/chrome/browser/permissions/one_time_permissions_tracker_observer.h
@@ -10,14 +10,21 @@
 
 class OneTimePermissionsTrackerObserver : public base::CheckedObserver {
  public:
+  // The value of this enum is used to determine which timer is stopped on
+  // `NotifyBackgroundTimerExpired`, for the given timeout duration.
+  enum class BackgroundExpiryType { kTimeout, kLongTimeout };
+
   // Event fired when the last tab in a given Profile whose top-level document
   // is from |origin| is closed or navigated away.
   virtual void OnLastPageFromOriginClosed(const url::Origin&) {}
 
   // Event fired when all tabs in a given Profile whose top-level document is
-  // from |origin| have been discarded or have been in the backgrounded for
-  // OneTimePermissionsTracker::kBackgroundExpirationDuration
-  virtual void OnAllTabsInBackgroundTimerExpired(const url::Origin&) {}
+  // from `origin` have been discarded or have been in the backgrounded based
+  // on the `OneTimePermissionTrackerObserver::BackgroundExpiryType` enum
+  // value.
+  virtual void OnAllTabsInBackgroundTimerExpired(
+      const url::Origin& origin,
+      const BackgroundExpiryType& expiry_type) {}
 
   // Event fired when one time permission for an origin's camera permission
   // should be expired.
diff --git a/chrome/browser/prefs/browser_prefs.cc b/chrome/browser/prefs/browser_prefs.cc
index 0525020..f31dedcb 100644
--- a/chrome/browser/prefs/browser_prefs.cc
+++ b/chrome/browser/prefs/browser_prefs.cc
@@ -224,6 +224,12 @@
 #endif  // BUILDFLAG(IS_CHROMEOS_ASH)
 #endif  // BUILDFLAG(ENABLE_EXTENSIONS)
 
+// `search_engine_choice_service.h` includes `chrome/browser/ui/browser_list.h`
+// that can't be included on android.
+#if BUILDFLAG(ENABLE_SEARCH_ENGINE_CHOICE)
+#include "chrome/browser/search_engine_choice/search_engine_choice_service.h"
+#endif
+
 #if BUILDFLAG(ENABLE_PDF)
 #include "chrome/browser/pdf/pdf_pref_names.h"
 #endif  // BUILDFLAG(ENABLE_PDF)
@@ -1562,6 +1568,10 @@
   PlatformAuthPolicyObserver::RegisterPrefs(registry);
 #endif  // BUILDFLAG(IS_WIN)
 
+#if BUILDFLAG(ENABLE_SEARCH_ENGINE_CHOICE)
+  SearchEngineChoiceService::RegisterLocalStatePrefs(registry);
+#endif
+
   // This is intentionally last.
   RegisterLocalStatePrefsForMigration(registry);
 }
diff --git a/chrome/browser/privacy_sandbox/privacy_sandbox_service_factory.cc b/chrome/browser/privacy_sandbox/privacy_sandbox_service_factory.cc
index 0cbcca1..4710c8c 100644
--- a/chrome/browser/privacy_sandbox/privacy_sandbox_service_factory.cc
+++ b/chrome/browser/privacy_sandbox/privacy_sandbox_service_factory.cc
@@ -12,6 +12,7 @@
 #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 "chrome/browser/tpcd/experiment/eligibility_service_factory.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"
@@ -76,6 +77,11 @@
 #endif
   DependsOn(
       first_party_sets::FirstPartySetsPolicyServiceFactory::GetInstance());
+
+  // The Eligibility service should be created before the Privacy Sandbox
+  // service is created to determine the cookie deprecation experiment
+  // eligibility.
+  DependsOn(tpcd::experiment::EligibilityServiceFactory::GetInstance());
 }
 
 std::unique_ptr<KeyedService>
diff --git a/chrome/browser/renderer_context_menu/render_view_context_menu_browsertest.cc b/chrome/browser/renderer_context_menu/render_view_context_menu_browsertest.cc
index 593a8b50..e0f0116 100644
--- a/chrome/browser/renderer_context_menu/render_view_context_menu_browsertest.cc
+++ b/chrome/browser/renderer_context_menu/render_view_context_menu_browsertest.cc
@@ -412,13 +412,6 @@
   AllowPreCommitInputFlagMixin allow_pre_commit_input_flag_mixin_{mixin_host_};
 };
 
-class ContextMenuWithProfileLinksBrowserTest : public ContextMenuBrowserTest {
- public:
- private:
-  base::test::ScopedFeatureList scoped_feature_list_{
-      features::kDisplayOpenLinkAsProfile};
-};
-
 class PdfPluginContextMenuBrowserTest : public InProcessBrowserTest {
  public:
   PdfPluginContextMenuBrowserTest() = default;
@@ -1729,11 +1722,7 @@
 
 // Functionality is not present on ChromeOS.
 #if !BUILDFLAG(IS_CHROMEOS_ASH)
-// TODO(https://crbug.com/1246393): delete this test when
-// `features::kDisplayOpenLinkAsProfile` is launched, as it is superseded by
-// `ContextMenuWithProfileLinksBrowserTest`.
-IN_PROC_BROWSER_TEST_F(ContextMenuBrowserTest,
-                       DISABLED_OpenLinkInProfileEntryPresent) {
+IN_PROC_BROWSER_TEST_F(ContextMenuBrowserTest, OpenLinkInProfileEntryPresent) {
   {
     std::unique_ptr<TestRenderViewContextMenu> menu(
         CreateContextMenuMediaTypeNone(GURL("http://www.google.com/"),
@@ -1749,8 +1738,14 @@
                                             IDC_OPEN_LINK_IN_PROFILE_LAST));
   }
 
-  // Create one additional profile, but do not yet open windows in it.
+  // Create one additional profile, but do not yet open windows in it. This
+  // profile is not yet active.
   Profile* profile = CreateSecondaryProfile(1);
+  const ProfileAttributesEntry* entry =
+      g_browser_process->profile_manager()
+          ->GetProfileAttributesStorage()
+          .GetProfileAttributesWithPath(profile->GetPath());
+  ASSERT_FALSE(ProfileMetrics::IsProfileActive(entry));
 
   {
     std::unique_ptr<TestRenderViewContextMenu> menu(
@@ -1760,15 +1755,29 @@
     ASSERT_TRUE(menu->IsItemPresent(IDC_CONTENT_CONTEXT_OPENLINKNEWTAB));
     ASSERT_TRUE(menu->IsItemPresent(IDC_CONTENT_CONTEXT_OPENLINKNEWWINDOW));
     ASSERT_TRUE(menu->IsItemPresent(IDC_CONTENT_CONTEXT_COPYLINKLOCATION));
-    // With the second profile not open, no entry is created.
+    // With the second profile not yet open and thus not active, an inline entry
+    // to open the link with the secondary profile is not displayed.
     ASSERT_FALSE(menu->IsItemPresent(IDC_CONTENT_CONTEXT_OPENLINKINPROFILE));
     ASSERT_FALSE(menu->IsItemPresent(IDC_OPEN_LINK_IN_PROFILE_FIRST));
   }
 
+  // Open new window for the additional profile. This profile becomes active.
   profiles::FindOrCreateNewWindowForProfile(
       profile, chrome::startup::IsProcessStartup::kNo,
       chrome::startup::IsFirstRun::kNo, false);
 
+  // On Lacros SessionStartupPref::ShouldRestoreLastSession() returns true for
+  // the new profile. The session is then restored before the browser is shown
+  // and the profile set to active. If the session is restoring, then wait for
+  // it to finish so the profile can be active.
+  if (SessionRestore::IsRestoring(profile)) {
+    base::test::RepeatingTestFuture<Profile*, int> future;
+    auto subscription =
+        SessionRestore::RegisterOnSessionRestoredCallback(future.GetCallback());
+    ASSERT_TRUE(future.Wait()) << "Could not restore the session";
+  }
+  ASSERT_TRUE(ProfileMetrics::IsProfileActive(entry));
+
   {
     std::unique_ptr<TestRenderViewContextMenu> menu(
         CreateContextMenuMediaTypeNone(GURL("http://www.google.com/"),
@@ -1777,7 +1786,25 @@
     ASSERT_TRUE(menu->IsItemPresent(IDC_CONTENT_CONTEXT_OPENLINKNEWTAB));
     ASSERT_TRUE(menu->IsItemPresent(IDC_CONTENT_CONTEXT_OPENLINKNEWWINDOW));
     ASSERT_TRUE(menu->IsItemPresent(IDC_CONTENT_CONTEXT_COPYLINKLOCATION));
-    // With the second profile open, an inline menu entry is created.
+    // With the second profile open, an inline entry to open the link with the
+    // secondary profile is displayed.
+    ASSERT_FALSE(menu->IsItemPresent(IDC_CONTENT_CONTEXT_OPENLINKINPROFILE));
+    ASSERT_TRUE(menu->IsItemPresent(IDC_OPEN_LINK_IN_PROFILE_FIRST));
+  }
+
+  // Close all windows for the additional profile. The profile is still active.
+  profiles::CloseProfileWindows(profile);
+
+  {
+    std::unique_ptr<TestRenderViewContextMenu> menu(
+        CreateContextMenuMediaTypeNone(GURL("http://www.google.com/"),
+                                       GURL("http://www.google.com/")));
+
+    ASSERT_TRUE(menu->IsItemPresent(IDC_CONTENT_CONTEXT_OPENLINKNEWTAB));
+    ASSERT_TRUE(menu->IsItemPresent(IDC_CONTENT_CONTEXT_OPENLINKNEWWINDOW));
+    ASSERT_TRUE(menu->IsItemPresent(IDC_CONTENT_CONTEXT_COPYLINKLOCATION));
+    // With the second profile closed but active, an inline entry to open the
+    // link with the secondary profile is displayed.
     ASSERT_FALSE(menu->IsItemPresent(IDC_CONTENT_CONTEXT_OPENLINKINPROFILE));
     ASSERT_TRUE(menu->IsItemPresent(IDC_OPEN_LINK_IN_PROFILE_FIRST));
   }
@@ -1792,8 +1819,7 @@
     ASSERT_TRUE(menu->IsItemPresent(IDC_CONTENT_CONTEXT_OPENLINKNEWTAB));
     ASSERT_TRUE(menu->IsItemPresent(IDC_CONTENT_CONTEXT_OPENLINKNEWWINDOW));
     ASSERT_TRUE(menu->IsItemPresent(IDC_CONTENT_CONTEXT_COPYLINKLOCATION));
-    // As soon as at least three profiles exist, we show all profiles in a
-    // submenu.
+    // With at least two secondary profiles, they are displayed in a submenu.
     ui::MenuModel* model = nullptr;
     size_t index = 0;
     ASSERT_TRUE(menu->GetMenuModelAndItemIndex(IDC_OPEN_LINK_IN_PROFILE_FIRST,
@@ -3061,119 +3087,6 @@
   EXPECT_FALSE(menu->IsItemPresent(IDC_CONTENT_CONTEXT_COPYLINKTOTEXT));
 }
 
-// Functionality is not present on ChromeOS.
-#if !BUILDFLAG(IS_CHROMEOS_ASH)
-IN_PROC_BROWSER_TEST_F(ContextMenuWithProfileLinksBrowserTest,
-                       OpenLinkInProfileEntryPresent) {
-  {
-    std::unique_ptr<TestRenderViewContextMenu> menu(
-        CreateContextMenuMediaTypeNone(GURL("http://www.google.com/"),
-                                       GURL("http://www.google.com/")));
-
-    ASSERT_TRUE(menu->IsItemPresent(IDC_CONTENT_CONTEXT_OPENLINKNEWTAB));
-    ASSERT_TRUE(menu->IsItemPresent(IDC_CONTENT_CONTEXT_OPENLINKNEWWINDOW));
-    ASSERT_TRUE(menu->IsItemPresent(IDC_CONTENT_CONTEXT_COPYLINKLOCATION));
-    // With only one profile exists, we don't add any items to the context menu
-    // for opening links in other profiles.
-    ASSERT_FALSE(menu->IsItemPresent(IDC_CONTENT_CONTEXT_OPENLINKINPROFILE));
-    ASSERT_FALSE(menu->IsItemInRangePresent(IDC_OPEN_LINK_IN_PROFILE_FIRST,
-                                            IDC_OPEN_LINK_IN_PROFILE_LAST));
-  }
-
-  // Create one additional profile, but do not yet open windows in it. This
-  // profile is not yet active.
-  Profile* profile = CreateSecondaryProfile(1);
-  const ProfileAttributesEntry* entry =
-      g_browser_process->profile_manager()
-          ->GetProfileAttributesStorage()
-          .GetProfileAttributesWithPath(profile->GetPath());
-  ASSERT_FALSE(ProfileMetrics::IsProfileActive(entry));
-
-  {
-    std::unique_ptr<TestRenderViewContextMenu> menu(
-        CreateContextMenuMediaTypeNone(GURL("http://www.google.com/"),
-                                       GURL("http://www.google.com/")));
-
-    ASSERT_TRUE(menu->IsItemPresent(IDC_CONTENT_CONTEXT_OPENLINKNEWTAB));
-    ASSERT_TRUE(menu->IsItemPresent(IDC_CONTENT_CONTEXT_OPENLINKNEWWINDOW));
-    ASSERT_TRUE(menu->IsItemPresent(IDC_CONTENT_CONTEXT_COPYLINKLOCATION));
-    // With the second profile not yet open and thus not active, an inline entry
-    // to open the link with the secondary profile is not displayed.
-    ASSERT_FALSE(menu->IsItemPresent(IDC_CONTENT_CONTEXT_OPENLINKINPROFILE));
-    ASSERT_FALSE(menu->IsItemPresent(IDC_OPEN_LINK_IN_PROFILE_FIRST));
-  }
-
-  // Open new window for the additional profile. This profile becomes active.
-  profiles::FindOrCreateNewWindowForProfile(
-      profile, chrome::startup::IsProcessStartup::kNo,
-      chrome::startup::IsFirstRun::kNo, false);
-
-  // On Lacros SessionStartupPref::ShouldRestoreLastSession() returns true for
-  // the new profile. The session is then restored before the browser is shown
-  // and the profile set to active. If the session is restoring, then wait for
-  // it to finish so the profile can be active.
-  if (SessionRestore::IsRestoring(profile)) {
-    base::test::RepeatingTestFuture<Profile*, int> future;
-    auto subscription =
-        SessionRestore::RegisterOnSessionRestoredCallback(future.GetCallback());
-    ASSERT_TRUE(future.Wait()) << "Could not restore the session";
-  }
-  ASSERT_TRUE(ProfileMetrics::IsProfileActive(entry));
-
-  {
-    std::unique_ptr<TestRenderViewContextMenu> menu(
-        CreateContextMenuMediaTypeNone(GURL("http://www.google.com/"),
-                                       GURL("http://www.google.com/")));
-
-    ASSERT_TRUE(menu->IsItemPresent(IDC_CONTENT_CONTEXT_OPENLINKNEWTAB));
-    ASSERT_TRUE(menu->IsItemPresent(IDC_CONTENT_CONTEXT_OPENLINKNEWWINDOW));
-    ASSERT_TRUE(menu->IsItemPresent(IDC_CONTENT_CONTEXT_COPYLINKLOCATION));
-    // With the second profile open, an inline entry to open the link with the
-    // secondary profile is displayed.
-    ASSERT_FALSE(menu->IsItemPresent(IDC_CONTENT_CONTEXT_OPENLINKINPROFILE));
-    ASSERT_TRUE(menu->IsItemPresent(IDC_OPEN_LINK_IN_PROFILE_FIRST));
-  }
-
-  // Close all windows for the additional profile. The profile is still active.
-  profiles::CloseProfileWindows(profile);
-
-  {
-    std::unique_ptr<TestRenderViewContextMenu> menu(
-        CreateContextMenuMediaTypeNone(GURL("http://www.google.com/"),
-                                       GURL("http://www.google.com/")));
-
-    ASSERT_TRUE(menu->IsItemPresent(IDC_CONTENT_CONTEXT_OPENLINKNEWTAB));
-    ASSERT_TRUE(menu->IsItemPresent(IDC_CONTENT_CONTEXT_OPENLINKNEWWINDOW));
-    ASSERT_TRUE(menu->IsItemPresent(IDC_CONTENT_CONTEXT_COPYLINKLOCATION));
-    // With the second profile closed but active, an inline entry to open the
-    // link with the secondary profile is displayed.
-    ASSERT_FALSE(menu->IsItemPresent(IDC_CONTENT_CONTEXT_OPENLINKINPROFILE));
-    ASSERT_TRUE(menu->IsItemPresent(IDC_OPEN_LINK_IN_PROFILE_FIRST));
-  }
-
-  CreateSecondaryProfile(2);
-
-  {
-    std::unique_ptr<TestRenderViewContextMenu> menu(
-        CreateContextMenuMediaTypeNone(GURL("http://www.google.com/"),
-                                       GURL("http://www.google.com/")));
-
-    ASSERT_TRUE(menu->IsItemPresent(IDC_CONTENT_CONTEXT_OPENLINKNEWTAB));
-    ASSERT_TRUE(menu->IsItemPresent(IDC_CONTENT_CONTEXT_OPENLINKNEWWINDOW));
-    ASSERT_TRUE(menu->IsItemPresent(IDC_CONTENT_CONTEXT_COPYLINKLOCATION));
-    // With at least two secondary profiles, they are displayed in a submenu.
-    ui::MenuModel* model = nullptr;
-    size_t index = 0;
-    ASSERT_TRUE(menu->GetMenuModelAndItemIndex(IDC_OPEN_LINK_IN_PROFILE_FIRST,
-                                               &model, &index));
-    ASSERT_EQ(2u, model->GetItemCount());
-    ASSERT_FALSE(menu->IsItemInRangePresent(IDC_OPEN_LINK_IN_PROFILE_FIRST,
-                                            IDC_OPEN_LINK_IN_PROFILE_LAST));
-  }
-}
-
-#endif
-
 IN_PROC_BROWSER_TEST_F(ContextMenuBrowserTest, OpenReadingMode) {
   // Open in reading mode is not an option when text is unselected.
   std::unique_ptr<TestRenderViewContextMenu> menu1 =
diff --git a/chrome/browser/renderer_context_menu/render_view_context_menu_unittest.cc b/chrome/browser/renderer_context_menu/render_view_context_menu_unittest.cc
index 8b486971..3facc3cc 100644
--- a/chrome/browser/renderer_context_menu/render_view_context_menu_unittest.cc
+++ b/chrome/browser/renderer_context_menu/render_view_context_menu_unittest.cc
@@ -1683,8 +1683,16 @@
 
 // Verify that the adding the companion image search option to the menu
 // issues a preconnection request to lens.google.com.
+// TODO(crbug.com/1486497): Test is flaky on ChromeOS.
+#if BUILDFLAG(IS_CHROMEOS)
+#define MAYBE_CompanionImageSearchIssuesGoogleLensPreconnect \
+  DISABLED_CompanionImageSearchIssuesGoogleLensPreconnect
+#else
+#define MAYBE_CompanionImageSearchIssuesGoogleLensPreconnect \
+  CompanionImageSearchIssuesGoogleLensPreconnect
+#endif
 TEST_F(RenderViewContextMenuPrefsTest,
-       CompanionImageSearchIssuesGoogleLensPreconnect) {
+       MAYBE_CompanionImageSearchIssuesGoogleLensPreconnect) {
   BeginPreresolveListening();
   base::test::ScopedFeatureList features;
   features.InitWithFeaturesAndParameters(
@@ -1712,8 +1720,16 @@
 
 // Verify that the adding the companion region search option to the menu
 // issues a preconnection request to lens.google.com.
+// TODO(crbug.com/1486497): Test is flaky on ChromeOS.
+#if BUILDFLAG(IS_CHROMEOS)
+#define MAYBE_CompanionRegionSearchIssuesGoogleLensPreconnect \
+  DISABLED_CompanionRegionSearchIssuesGoogleLensPreconnect
+#else
+#define MAYBE_CompanionRegionSearchIssuesGoogleLensPreconnect \
+  CompanionRegionSearchIssuesGoogleLensPreconnect
+#endif
 TEST_F(RenderViewContextMenuPrefsTest,
-       CompanionRegionSearchIssuesGoogleLensPreconnect) {
+       MAYBE_CompanionRegionSearchIssuesGoogleLensPreconnect) {
   BeginPreresolveListening();
   base::test::ScopedFeatureList features;
   features.InitWithFeaturesAndParameters(
@@ -1768,8 +1784,16 @@
 
 // Verify that the adding the Lens region search option to the menu
 // issues a preconnection request to lens.google.com.
+// TODO(crbug.com/1486497): Test is flaky on ChromeOS.
+#if BUILDFLAG(IS_CHROMEOS)
+#define MAYBE_LensRegionSearchIssuesGoogleLensPreconnect \
+  DISABLED_LensRegionSearchIssuesGoogleLensPreconnect
+#else
+#define MAYBE_LensRegionSearchIssuesGoogleLensPreconnect \
+  LensRegionSearchIssuesGoogleLensPreconnect
+#endif
 TEST_F(RenderViewContextMenuPrefsTest,
-       LensRegionSearchIssuesGoogleLensPreconnect) {
+       MAYBE_LensRegionSearchIssuesGoogleLensPreconnect) {
   BeginPreresolveListening();
   base::test::ScopedFeatureList features;
   features.InitAndEnableFeature(lens::features::kLensStandalone);
diff --git a/chrome/browser/resources/ash/settings/os_printing_page/cups_edit_printer_dialog.ts b/chrome/browser/resources/ash/settings/os_printing_page/cups_edit_printer_dialog.ts
index 845425d..90bb69622 100644
--- a/chrome/browser/resources/ash/settings/os_printing_page/cups_edit_printer_dialog.ts
+++ b/chrome/browser/resources/ash/settings/os_printing_page/cups_edit_printer_dialog.ts
@@ -45,7 +45,6 @@
   VIEW_PPD_CLICKED = 1,
 }
 
-
 /** Keyword used for recording metrics */
 const METRICS_KEYWORD = 'Printing.CUPS.EditDialog';
 
@@ -278,8 +277,8 @@
   /**
    * Handler for update|reconfigureCupsPrinter failure.
    */
-  private onPrinterEditFailed_(result: PrinterSetupResult) {
-    this.errorText_ = getErrorText((result));
+  private onPrinterEditFailed_(result: PrinterSetupResult): void {
+    this.errorText_ = getErrorText(result);
   }
 
   private onSaveClick_(): void {
@@ -409,7 +408,7 @@
     this.eulaUrl_ = eulaUrl;
   }
 
-  private onViewPpd_() {
+  private onViewPpd_(): void {
     chrome.metricsPrivate.recordEnumerationValue(
         METRICS_KEYWORD, DialogActions.VIEW_PPD_CLICKED,
         Object.keys(DialogActions).length);
diff --git a/chrome/browser/resources/ash/settings/os_printing_page/cups_nearby_printers.ts b/chrome/browser/resources/ash/settings/os_printing_page/cups_nearby_printers.ts
index f76c066..47b60a8 100644
--- a/chrome/browser/resources/ash/settings/os_printing_page/cups_nearby_printers.ts
+++ b/chrome/browser/resources/ash/settings/os_printing_page/cups_nearby_printers.ts
@@ -305,7 +305,7 @@
   /**
    * Forces the printer list to re-render all items.
    */
-  resizePrintersList() {
+  resizePrintersList(): void {
     this.shadowRoot!.querySelector<IronListElement>(
                         '#printerEntryList')!.notifyResize();
   }
diff --git a/chrome/browser/resources/ash/settings/os_printing_page/cups_printers.ts b/chrome/browser/resources/ash/settings/os_printing_page/cups_printers.ts
index cbdbed1..6bb86219a 100644
--- a/chrome/browser/resources/ash/settings/os_printing_page/cups_printers.ts
+++ b/chrome/browser/resources/ash/settings/os_printing_page/cups_printers.ts
@@ -76,7 +76,7 @@
 }
 
 export function recordPrinterSettingsUserAction(
-    userAction: PrinterSettingsUserAction) {
+    userAction: PrinterSettingsUserAction): void {
   chrome.metricsPrivate.recordEnumerationValue(
       'Printing.CUPS.SettingsUserAction', userAction,
       Object.keys(PrinterSettingsUserAction).length);
diff --git a/chrome/browser/resources/ash/settings/os_printing_page/cups_printers_browser_proxy.ts b/chrome/browser/resources/ash/settings/os_printing_page/cups_printers_browser_proxy.ts
index 44b50d6e..094d9c5 100644
--- a/chrome/browser/resources/ash/settings/os_printing_page/cups_printers_browser_proxy.ts
+++ b/chrome/browser/resources/ash/settings/os_printing_page/cups_printers_browser_proxy.ts
@@ -178,7 +178,7 @@
     return instance || (instance = new CupsPrintersBrowserProxyImpl());
   }
 
-  static setInstanceForTesting(obj: CupsPrintersBrowserProxy) {
+  static setInstanceForTesting(obj: CupsPrintersBrowserProxy): void {
     instance = obj;
   }
 
@@ -195,11 +195,12 @@
     return sendWithPromise('updateCupsPrinter', printerId, printerName);
   }
 
-  removeCupsPrinter(printerId: string, printerName: string) {
+  removeCupsPrinter(printerId: string, printerName: string): void {
     chrome.send('removeCupsPrinter', [printerId, printerName]);
   }
 
-  retrieveCupsPrinterPpd(printerId: string, printerName: string, eula: string) {
+  retrieveCupsPrinterPpd(printerId: string, printerName: string, eula: string):
+      void {
     chrome.send('retrieveCupsPrinterPpd', [printerId, printerName, eula]);
   }
 
@@ -216,11 +217,11 @@
     return sendWithPromise('selectPPDFile');
   }
 
-  startDiscoveringPrinters() {
+  startDiscoveringPrinters(): void {
     chrome.send('startDiscoveringPrinters');
   }
 
-  stopDiscoveringPrinters() {
+  stopDiscoveringPrinters(): void {
     chrome.send('stopDiscoveringPrinters');
   }
 
@@ -245,7 +246,7 @@
     return sendWithPromise('addDiscoveredPrinter', printerId);
   }
 
-  cancelPrinterSetUp(newPrinter: CupsPrinterInfo) {
+  cancelPrinterSetUp(newPrinter: CupsPrinterInfo): void {
     chrome.send('cancelPrinterSetUp', [newPrinter]);
   }
 
@@ -257,15 +258,15 @@
     return sendWithPromise('queryPrintServer', serverUrl);
   }
 
-  openPrintManagementApp() {
+  openPrintManagementApp(): void {
     chrome.send('openPrintManagementApp');
   }
 
-  openScanningApp() {
+  openScanningApp(): void {
     chrome.send('openScanningApp');
   }
 
-  requestPrinterStatusUpdate(printerId: string) {
+  requestPrinterStatusUpdate(printerId: string): Promise<PrinterStatus> {
     return sendWithPromise('requestPrinterStatus', printerId);
   }
 }
diff --git a/chrome/browser/resources/ash/settings/os_printing_page/cups_printers_entry_list_mixin.ts b/chrome/browser/resources/ash/settings/os_printing_page/cups_printers_entry_list_mixin.ts
index 9d9b9690..e94504f 100644
--- a/chrome/browser/resources/ash/settings/os_printing_page/cups_printers_entry_list_mixin.ts
+++ b/chrome/browser/resources/ash/settings/os_printing_page/cups_printers_entry_list_mixin.ts
@@ -135,10 +135,10 @@
         }
 
         // Override in the custom element implementation
-        onSavedPrintersAdded(_addedPrinters: PrinterListEntry[]) {}
+        onSavedPrintersAdded(_addedPrinters: PrinterListEntry[]): void {}
 
         // Override in the custom element implementation
-        onSavedPrintersRemoved(_removedPrinters: PrinterListEntry[]) {}
+        onSavedPrintersRemoved(_removedPrinters: PrinterListEntry[]): void {}
       }
 
       return CupsPrintersEntryListMixinInternal;
diff --git a/chrome/browser/resources/ash/settings/os_printing_page/cups_printers_entry_manager.ts b/chrome/browser/resources/ash/settings/os_printing_page/cups_printers_entry_manager.ts
index 7b5be9ca..4845051 100644
--- a/chrome/browser/resources/ash/settings/os_printing_page/cups_printers_entry_manager.ts
+++ b/chrome/browser/resources/ash/settings/os_printing_page/cups_printers_entry_manager.ts
@@ -224,7 +224,7 @@
    */
   private notifyOnSavedPrintersChangedListeners_(
       savedPrinters: PrinterListEntry[], addedPrinter: PrinterListEntry[],
-      removedPrinter: PrinterListEntry[]) {
+      removedPrinter: PrinterListEntry[]): void {
     this.onSavedPrintersChangedListeners_.forEach(
         listener => listener(savedPrinters, addedPrinter, removedPrinter));
   }
diff --git a/chrome/browser/resources/ash/settings/os_printing_page/cups_saved_printers.ts b/chrome/browser/resources/ash/settings/os_printing_page/cups_saved_printers.ts
index 70caf64..0390d594 100644
--- a/chrome/browser/resources/ash/settings/os_printing_page/cups_saved_printers.ts
+++ b/chrome/browser/resources/ash/settings/os_printing_page/cups_saved_printers.ts
@@ -64,7 +64,7 @@
  * Move a printer's position in |printerArr| from |fromIndex| to |toIndex|.
  */
 function moveEntryInPrinters(
-    printerArr: PrinterListEntry[], fromIndex: number, toIndex: number) {
+    printerArr: PrinterListEntry[], fromIndex: number, toIndex: number): void {
   const element = printerArr[fromIndex];
   printerArr.splice(fromIndex, 1);
   printerArr.splice(toIndex, 0, element);
@@ -283,7 +283,7 @@
   }
 
   private onOpenActionMenu_(
-      e: CustomEvent<{target: HTMLElement, item: PrinterListEntry}>) {
+      e: CustomEvent<{target: HTMLElement, item: PrinterListEntry}>): void {
     const item = e.detail.item;
     this.activePrinterListEntryIndex_ = this.savedPrinters.findIndex(
         (printer: PrinterListEntry) =>
@@ -364,7 +364,7 @@
     return !!this.searchTerm && !this.filteredPrinters_.length;
   }
 
-  override onSavedPrintersAdded(addedPrinters: PrinterListEntry[]) {
+  override onSavedPrintersAdded(addedPrinters: PrinterListEntry[]): void {
     const currArr = this.newPrinters_.slice();
     for (const printer of addedPrinters) {
       this.visiblePrinterCounter_++;
@@ -374,7 +374,7 @@
     this.set('newPrinters_', currArr);
   }
 
-  override onSavedPrintersRemoved(removedPrinters: PrinterListEntry[]) {
+  override onSavedPrintersRemoved(removedPrinters: PrinterListEntry[]): void {
     const currArr = this.newPrinters_.slice();
     for (const printer of removedPrinters) {
       const newPrinterRemovedIdx = currArr.findIndex(
@@ -425,7 +425,7 @@
    * printer list.
    */
   private moveNewlyAddedPrinters_(
-      printerArr: PrinterListEntry[], toIndex: number) {
+      printerArr: PrinterListEntry[], toIndex: number): void {
     if (!this.newPrinters_.length) {
       return;
     }
diff --git a/chrome/browser/resources/ash/settings/os_privacy_page/manage_users_subpage.ts b/chrome/browser/resources/ash/settings/os_privacy_page/manage_users_subpage.ts
index 6e8b22b..c19b88b 100644
--- a/chrome/browser/resources/ash/settings/os_privacy_page/manage_users_subpage.ts
+++ b/chrome/browser/resources/ash/settings/os_privacy_page/manage_users_subpage.ts
@@ -116,7 +116,7 @@
         });
   }
 
-  override ready() {
+  override ready(): void {
     super.ready();
 
     this.addEventListener(
diff --git a/chrome/browser/resources/ash/settings/os_privacy_page/metrics_consent_toggle_button.ts b/chrome/browser/resources/ash/settings/os_privacy_page/metrics_consent_toggle_button.ts
index 8f13ab59..623a8a8 100644
--- a/chrome/browser/resources/ash/settings/os_privacy_page/metrics_consent_toggle_button.ts
+++ b/chrome/browser/resources/ash/settings/os_privacy_page/metrics_consent_toggle_button.ts
@@ -72,7 +72,7 @@
     });
   }
 
-  override focus() {
+  override focus(): void {
     this.metricsToggle_.focus();
   }
 
diff --git a/chrome/browser/resources/ash/settings/os_reset_page/os_powerwash_dialog.ts b/chrome/browser/resources/ash/settings/os_reset_page/os_powerwash_dialog.ts
index f1e63552..7e442a6db 100644
--- a/chrome/browser/resources/ash/settings/os_reset_page/os_powerwash_dialog.ts
+++ b/chrome/browser/resources/ash/settings/os_reset_page/os_powerwash_dialog.ts
@@ -93,28 +93,28 @@
     this.lifetimeBrowserProxy_ = LifetimeBrowserProxyImpl.getInstance();
   }
 
-  override connectedCallback() {
+  override connectedCallback(): void {
     super.connectedCallback();
 
     this.osResetBrowserProxy_.onPowerwashDialogShow();
     this.$.dialog.showModal();
   }
 
-  private onCancelClick_() {
+  private onCancelClick_(): void {
     this.$.dialog.close();
   }
 
-  private onRestartClick_() {
+  private onRestartClick_(): void {
     recordSettingChange();
     LifetimeBrowserProxyImpl.getInstance().factoryReset(
         this.requestTpmFirmwareUpdate);
   }
 
-  private onContinueClick_() {
+  private onContinueClick_(): void {
     this.hasContinueBeenTapped_ = true;
   }
 
-  private onMobileSettingsLinkClicked_(event: CustomEvent) {
+  private onMobileSettingsLinkClicked_(event: CustomEvent): void {
     event.detail.event.preventDefault();
 
     const params = new URLSearchParams();
diff --git a/chrome/browser/resources/ash/settings/os_reset_page/os_powerwash_dialog_esim_item.ts b/chrome/browser/resources/ash/settings/os_reset_page/os_powerwash_dialog_esim_item.ts
index 811d29e..1a4b5977 100644
--- a/chrome/browser/resources/ash/settings/os_reset_page/os_powerwash_dialog_esim_item.ts
+++ b/chrome/browser/resources/ash/settings/os_reset_page/os_powerwash_dialog_esim_item.ts
@@ -46,7 +46,7 @@
   profile: ESimProfileRemote|null;
   private profileProperties_: ESimProfileProperties|null;
 
-  private onProfileChanged_() {
+  private onProfileChanged_(): void {
     if (!this.profile) {
       this.profileProperties_ = null;
       return;
diff --git a/chrome/browser/resources/ash/settings/os_reset_page/os_reset_browser_proxy.ts b/chrome/browser/resources/ash/settings/os_reset_page/os_reset_browser_proxy.ts
index 289a118..ab184246 100644
--- a/chrome/browser/resources/ash/settings/os_reset_page/os_reset_browser_proxy.ts
+++ b/chrome/browser/resources/ash/settings/os_reset_page/os_reset_browser_proxy.ts
@@ -21,15 +21,15 @@
     return instance || (instance = new OsResetBrowserProxyImpl());
   }
 
-  static setInstanceForTesting(obj: OsResetBrowserProxy) {
+  static setInstanceForTesting(obj: OsResetBrowserProxy): void {
     instance = obj;
   }
 
-  onPowerwashDialogShow() {
+  onPowerwashDialogShow(): void {
     chrome.send('onPowerwashDialogShow');
   }
 
-  requestFactoryResetRestart() {
+  requestFactoryResetRestart(): void {
     chrome.send('requestFactoryResetRestart');
   }
 }
diff --git a/chrome/browser/resources/chromeos/accessibility/chromevox/background/keyboard_handler.js b/chrome/browser/resources/chromeos/accessibility/chromevox/background/keyboard_handler.js
index 7a90e49..a020fcd 100644
--- a/chrome/browser/resources/chromeos/accessibility/chromevox/background/keyboard_handler.js
+++ b/chrome/browser/resources/chromeos/accessibility/chromevox/background/keyboard_handler.js
@@ -111,9 +111,8 @@
       evt.preventDefault();
       evt.stopPropagation();
       this.eatenKeyDowns_.add(evt.keyCode);
-    } else {
-      ChromeVox.earcons.playEarcon(EarconId.INVALID_KEYPRESS);
     }
+
     return false;
   }
 
diff --git a/chrome/browser/resources/chromeos/login/BUILD.gn b/chrome/browser/resources/chromeos/login/BUILD.gn
index 894588f..c6dd0f9 100644
--- a/chrome/browser/resources/chromeos/login/BUILD.gn
+++ b/chrome/browser/resources/chromeos/login/BUILD.gn
@@ -299,6 +299,7 @@
     "screens/common/theme_selection.js",
     "screens/common/touchpad_scroll.js",
     "screens/common/tpm_error.js",
+    "screens/common/user_allowlist_check_screen.js",
     "screens/common/user_creation.js",
     "screens/common/wrong_hwid.js",
     "screens/login/arc_vm_data_migration.js",
diff --git a/chrome/browser/resources/chromeos/login/debug/debug.js b/chrome/browser/resources/chromeos/login/debug/debug.js
index 1c4ad44..e261254 100644
--- a/chrome/browser/resources/chromeos/login/debug/debug.js
+++ b/chrome/browser/resources/chromeos/login/debug/debug.js
@@ -663,7 +663,7 @@
     {
       id: 'gaia-signin',
       kind: ScreenKind.NORMAL,
-      handledSteps: 'online-gaia,allowlist-error,enrollment-nudge',
+      handledSteps: 'online-gaia,enrollment-nudge',
       states: [
         {
           id: 'online-gaia',
@@ -679,14 +679,6 @@
           },
         },
         {
-          id: 'allowlist-error',
-          trigger: (screen) => {
-            screen.showAllowlistCheckFailedError({
-              enterpriseManaged: false,
-            });
-          },
-        },
-        {
           id: 'enrollment-nudge',
           trigger: (screen) => {
             screen.showEnrollmentNudge('example.com');
@@ -1807,6 +1799,10 @@
         },
       ],
     },
+    {
+      id: 'user-allowlist-check-screen',
+      kind: ScreenKind.NORMAL,
+    },
   ];
 
   class DebugButton {
diff --git a/chrome/browser/resources/chromeos/login/screens.js b/chrome/browser/resources/chromeos/login/screens.js
index ca9760b..fe778e71 100644
--- a/chrome/browser/resources/chromeos/login/screens.js
+++ b/chrome/browser/resources/chromeos/login/screens.js
@@ -47,6 +47,7 @@
 import './screens/common/theme_selection.js';
 import './screens/common/touchpad_scroll.js';
 import './screens/common/tpm_error.js';
+import './screens/common/user_allowlist_check_screen.js';
 import './screens/common/wrong_hwid.js';
 // SCREENS USED DURING THE LOGIN FLOW
 import './screens/login/arc_vm_data_migration.js';
@@ -153,6 +154,10 @@
     condition: 'isTouchpadScrollEnabled',
   },
   {tag: 'tpm-error-message-element', id: 'tpm-error-message'},
+  {
+    tag: 'user-allowlist-check-screen-element',
+    id: 'user-allowlist-check-screen',
+  },
   {tag: 'wrong-hwid-element', id: 'wrong-hwid'},
 ];
 
diff --git a/chrome/browser/resources/chromeos/login/screens/common/BUILD.gn b/chrome/browser/resources/chromeos/login/screens/common/BUILD.gn
index 2a63b19..7040d06f 100644
--- a/chrome/browser/resources/chromeos/login/screens/common/BUILD.gn
+++ b/chrome/browser/resources/chromeos/login/screens/common/BUILD.gn
@@ -807,6 +807,7 @@
     "theme_selection.js",
     "touchpad_scroll.js",
     "tpm_error.js",
+    "user_allowlist_check_screen.js",
     "user_creation.js",
     "wrong_hwid.js",
   ]
diff --git a/chrome/browser/resources/chromeos/login/screens/common/gaia_signin.html b/chrome/browser/resources/chromeos/login/screens/common/gaia_signin.html
index 401c2cf..a072aea 100644
--- a/chrome/browser/resources/chromeos/login/screens/common/gaia_signin.html
+++ b/chrome/browser/resources/chromeos/login/screens/common/gaia_signin.html
@@ -64,14 +64,6 @@
     id="step-loading" for-step="loading">
   <iron-icon slot="icon" icon="oobe-32:googleg"></iron-icon>
 </oobe-loading-dialog>
-<notification-card id="gaia-allowlist-error" class="fit"
-    for-step="allowlist-error"
-    on-buttonclick="onAllowlistErrorTryAgainClick_"
-    on-linkclick="onAllowlistErrorLinkClick_"
-    button-label="[[i18nDynamic(locale, 'tryAgainButton')]]"
-    link-label="[[i18nDynamic(locale, 'learnMoreButton')]]">
-  [[i18nDynamic(locale, allowlistError_)]]
-</notification-card>
 <oobe-modal-dialog id="enrollmentNudge">
   <div slot="title">
     [[i18nDynamic(locale, 'enrollmentNudgeTitle')]]
diff --git a/chrome/browser/resources/chromeos/login/screens/common/gaia_signin.js b/chrome/browser/resources/chromeos/login/screens/common/gaia_signin.js
index ea80723b..3156c6a1 100644
--- a/chrome/browser/resources/chromeos/login/screens/common/gaia_signin.js
+++ b/chrome/browser/resources/chromeos/login/screens/common/gaia_signin.js
@@ -9,7 +9,6 @@
 import '//resources/cr_elements/icons.html.js';
 import '//resources/js/action_link.js';
 import '//resources/polymer/v3_0/iron-icon/iron-icon.js';
-import '../../components/notification_card.js';
 import '../../components/security_token_pin.js';
 import '../../components/gaia_dialog.js';
 import '../../components/oobe_icons.html.js';
@@ -43,9 +42,6 @@
 // Maximum Gaia loading time in seconds.
 const MAX_GAIA_LOADING_TIME_SEC = 60;
 
-// The help topic regarding user not being in the allowlist.
-const HELP_CANT_ACCESS_ACCOUNT = 188036;
-
 // Amount of time allowed for video based SAML logins, to prevent a site from
 // keeping the camera on indefinitely.  This is a hard deadline and it will
 // not be extended by user activity.
@@ -68,7 +64,6 @@
   GAIA: 'online-gaia',
   LOADING: 'loading',
   PIN_DIALOG: 'pin',
-  GAIA_ALLOWLIST_ERROR: 'allowlist-error',
 };
 
 /**
@@ -141,16 +136,7 @@
       isLoadingUiShown_: {
         type: Boolean,
         computed: 'computeIsLoadingUiShown_(loadingFrameContents_, ' +
-            'isAllowlistErrorShown_, authCompleted_)',
-      },
-
-      /**
-       * Whether the loading allowlist error UI is shown.
-       * @private
-       */
-      isAllowlistErrorShown_: {
-        type: Boolean,
-        value: false,
+            'authCompleted_)',
       },
 
       /**
@@ -297,14 +283,6 @@
       },
 
       /**
-       * @private {string}
-       */
-      allowlistError_: {
-        type: String,
-        value: 'allowlistErrorConsumer',
-      },
-
-      /**
        * Domain extracted from user's email.
        * @private
        */
@@ -380,7 +358,6 @@
     return [
       'loadAuthExtension',
       'doReload',
-      'showAllowlistCheckFailedError',
       'showEnrollmentNudge',
       'showPinDialog',
       'closePinDialog',
@@ -395,7 +372,7 @@
   static get observers() {
     return [
       'refreshDialogStep_(isShown_, pinDialogParameters_,' +
-          'isLoadingUiShown_, isAllowlistErrorShown_)',
+          'isLoadingUiShown_)',
     ];
   }
 
@@ -474,7 +451,6 @@
    */
   loadAuthenticator_(doSamlRedirect) {
     this.loadingFrameContents_ = true;
-    this.isAllowlistErrorShown_ = false;
     this.isDefaultSsoProvider_ = doSamlRedirect;
     this.startLoadingTimer_();
 
@@ -685,7 +661,6 @@
   reset() {
     this.clearLoadingTimer_();
     this.clearVideoTimer_();
-    this.isAllowlistErrorShown_ = false;
     this.authCompleted_ = false;
     // Reset webview to prevent calls from authenticator.
     this.authenticator_.resetWebview();
@@ -895,7 +870,6 @@
   doReload() {
     this.authenticator_.reload();
     this.loadingFrameContents_ = true;
-    this.isAllowlistErrorShown_ = false;
     this.startLoadingTimer_();
     this.authCompleted_ = false;
   }
@@ -910,7 +884,7 @@
 
     // TODO(crbug.com/470893): Figure out whether/which of these exit conditions
     // are useful.
-    if (this.isAllowlistErrorShown_ || this.authCompleted_) {
+    if (this.authCompleted_) {
       return;
     }
 
@@ -925,31 +899,6 @@
   }
 
   /**
-   * Show/Hide error when user is not in allowlist. When UI is hidden GAIA is
-   * reloaded.
-   * @param {!Object=} opt_data Optional additional information.
-   */
-  showAllowlistCheckFailedError(opt_data) {
-    const isManaged = opt_data && opt_data.enterpriseManaged;
-    const isFamilyLinkAllowed = opt_data && opt_data.familyLinkAllowed;
-    if (isManaged && isFamilyLinkAllowed) {
-      this.allowlistError_ = 'allowlistErrorEnterpriseAndFamilyLink';
-    } else if (isManaged) {
-      this.allowlistError_ = 'allowlistErrorEnterprise';
-    } else {
-      this.allowlistError_ = 'allowlistErrorConsumer';
-    }
-
-    // Reset the state when allowlist error is shown to prevent any loading
-    // glitches during the retry.
-    this.reset();
-
-    this.$['gaia-allowlist-error'].submitButton.focus();
-    this.isAllowlistErrorShown_ = true;
-  }
-
-
-  /**
    * Show enrollment nudge pop-up.
    * @param {string} domain User's email domain.
    */
@@ -1087,10 +1036,9 @@
    * @param {boolean} isScreenShown
    * @param {OobeTypes.SecurityTokenPinDialogParameters} pinParams
    * @param {boolean} isLoading
-   * @param {boolean} isAllowlistError
    * @private
    */
-  refreshDialogStep_(isScreenShown, pinParams, isLoading, isAllowlistError) {
+  refreshDialogStep_(isScreenShown, pinParams, isLoading) {
     if (!isScreenShown) {
       return;
     }
@@ -1102,10 +1050,6 @@
       this.setUIStep(DialogMode.LOADING);
       return;
     }
-    if (isAllowlistError) {
-      this.setUIStep(DialogMode.GAIA_ALLOWLIST_ERROR);
-      return;
-    }
     this.setUIStep(DialogMode.GAIA);
   }
 
@@ -1125,14 +1069,12 @@
   /**
    * Computes the value of the isLoadingUiShown_ property.
    * @param {boolean} loadingFrameContents
-   * @param {boolean} isAllowlistErrorShown
    * @param {boolean} authCompleted
    * @return {boolean}
    * @private
    */
-  computeIsLoadingUiShown_(
-      loadingFrameContents, isAllowlistErrorShown, authCompleted) {
-    return (loadingFrameContents || authCompleted) && !isAllowlistErrorShown;
+  computeIsLoadingUiShown_(loadingFrameContents, authCompleted) {
+    return (loadingFrameContents || authCompleted);
   }
 
   /**
@@ -1152,7 +1094,6 @@
     // TODO(https://crbug.com/1317991): Investigate why the call is making Gaia
     // loading slowly.
     // this.loadingFrameContents_ = true;
-    // this.isAllowlistErrorShown_ = false;
   }
 
   /**
@@ -1170,14 +1111,6 @@
     return '';
   }
 
-  onAllowlistErrorTryAgainClick_() {
-    this.userActed('retry');
-  }
-
-  onAllowlistErrorLinkClick_() {
-    chrome.send('launchHelpApp', [HELP_CANT_ACCESS_ACCOUNT]);
-  }
-
   /**
    * Handle "Quick Start" button for "Signin" screen.
    *
diff --git a/chrome/browser/resources/chromeos/login/screens/common/user_allowlist_check_screen.html b/chrome/browser/resources/chromeos/login/screens/common/user_allowlist_check_screen.html
new file mode 100644
index 0000000..d7700ae
--- /dev/null
+++ b/chrome/browser/resources/chromeos/login/screens/common/user_allowlist_check_screen.html
@@ -0,0 +1,13 @@
+<!--
+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.
+-->
+
+<notification-card id="gaia-allowlist-error" class="fit" for-step="default"
+  on-buttonclick="onAllowlistErrorTryAgainClick_"
+  on-linkclick="onAllowlistErrorLinkClick_"
+  button-label="[[i18nDynamic(locale, 'tryAgainButton')]]"
+  link-label="[[i18nDynamic(locale, 'learnMoreButton')]]">
+  [[i18nDynamic(locale, allowlistError_)]]
+</notification-card>
diff --git a/chrome/browser/resources/chromeos/login/screens/common/user_allowlist_check_screen.js b/chrome/browser/resources/chromeos/login/screens/common/user_allowlist_check_screen.js
new file mode 100644
index 0000000..3738d5e
--- /dev/null
+++ b/chrome/browser/resources/chromeos/login/screens/common/user_allowlist_check_screen.js
@@ -0,0 +1,113 @@
+// 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 Oobe signin screen implementation.
+ */
+
+
+import '../../components/notification_card.js';
+
+import {assert} from '//resources/ash/common/assert.js';
+import {html, mixinBehaviors, PolymerElement} from '//resources/polymer/v3_0/polymer/polymer_bundled.min.js';
+
+import {LoginScreenBehavior, LoginScreenBehaviorInterface} from '../../components/behaviors/login_screen_behavior.js';
+import {MultiStepBehavior, MultiStepBehaviorInterface} from '../../components/behaviors/multi_step_behavior.js';
+import {OobeI18nBehavior, OobeI18nBehaviorInterface} from '../../components/behaviors/oobe_i18n_behavior.js';
+
+// The help topic regarding user not being in the allowlist.
+const HELP_CANT_ACCESS_ACCOUNT = 188036;
+
+/**
+ * UI mode for the dialog.
+ * @enum {string}
+ */
+const DialogMode = {
+  DEFAULT: 'default',
+};
+
+
+/**
+ * @constructor
+ * @extends {PolymerElement}
+ * @implements {LoginScreenBehaviorInterface}
+ * @implements {MultiStepBehaviorInterface}
+ * @implements {OobeI18nBehaviorInterface}
+ */
+const UserAllowlistCheckScreenElementBase = mixinBehaviors(
+    [OobeI18nBehavior, LoginScreenBehavior, MultiStepBehavior], PolymerElement);
+
+
+/**
+ * @polymer
+ */
+class UserAllowlistCheckScreenElement extends
+    UserAllowlistCheckScreenElementBase {
+  static get is() {
+    return 'user-allowlist-check-screen-element';
+  }
+
+  static get template() {
+    return html`{__html_template__}`;
+  }
+
+  static get properties() {
+    return {
+      /**
+       * @private {string}
+       */
+      allowlistError_: {
+        type: String,
+        value: 'allowlistErrorConsumer',
+      },
+    };
+  }
+
+  get EXTERNAL_API() {
+    return [];
+  }
+
+  defaultUIStep() {
+    return DialogMode.DEFAULT;
+  }
+
+  get UI_STEPS() {
+    return DialogMode;
+  }
+
+  /** @override */
+  ready() {
+    super.ready();
+    this.initializeLoginScreen('UserAllowlistCheckScreen');
+  }
+
+  /**
+   * Event handler that is invoked just before the frame is shown.
+   * @param {!Object=} opt_data Optional additional information.
+   */
+  onBeforeShow(opt_data) {
+    const isManaged = opt_data && opt_data.enterpriseManaged;
+    const isFamilyLinkAllowed = opt_data && opt_data.familyLinkAllowed;
+    if (isManaged && isFamilyLinkAllowed) {
+      this.allowlistError_ = 'allowlistErrorEnterpriseAndFamilyLink';
+    } else if (isManaged) {
+      this.allowlistError_ = 'allowlistErrorEnterprise';
+    } else {
+      this.allowlistError_ = 'allowlistErrorConsumer';
+    }
+
+    this.$['gaia-allowlist-error'].submitButton.focus();
+  }
+
+  onAllowlistErrorTryAgainClick_() {
+    this.userActed('retry');
+  }
+
+  onAllowlistErrorLinkClick_() {
+    chrome.send('launchHelpApp', [HELP_CANT_ACCESS_ACCOUNT]);
+  }
+}
+
+customElements.define(
+    UserAllowlistCheckScreenElement.is, UserAllowlistCheckScreenElement);
diff --git a/chrome/browser/resources/settings/site_settings_page/site_settings_list.ts b/chrome/browser/resources/settings/site_settings_page/site_settings_list.ts
index f8783df0..b4a57b68a 100644
--- a/chrome/browser/resources/settings/site_settings_page/site_settings_list.ts
+++ b/chrome/browser/resources/settings/site_settings_page/site_settings_list.ts
@@ -138,7 +138,8 @@
     const hasCookies = this.categoryList.some(item => {
       return item.id === ContentSettingsTypes.COOKIES;
     });
-    if (hasCookies && !loadTimeData.getBoolean('isPrivacySandboxSettings4')) {
+    if (hasCookies && !loadTimeData.getBoolean('isPrivacySandboxSettings4') &&
+        !loadTimeData.getBoolean('is3pcdCookieSettingsRedesignEnabled')) {
       // The cookies sub-label is provided by an update from C++.
       this.browserProxy_.getCookieSettingDescription().then(
           (label: string) => this.updateCookiesLabel_(label));
diff --git a/chrome/browser/resources/side_panel/performance_controls/OWNERS b/chrome/browser/resources/side_panel/performance_controls/OWNERS
new file mode 100644
index 0000000..7c22fc5
--- /dev/null
+++ b/chrome/browser/resources/side_panel/performance_controls/OWNERS
@@ -0,0 +1 @@
+file://chrome/browser/ui/performance_controls/OWNERS
\ No newline at end of file
diff --git a/chrome/browser/safe_browsing/tailored_security/chrome_tailored_security_service.cc b/chrome/browser/safe_browsing/tailored_security/chrome_tailored_security_service.cc
index 7a1ba987..b521fbf7 100644
--- a/chrome/browser/safe_browsing/tailored_security/chrome_tailored_security_service.cc
+++ b/chrome/browser/safe_browsing/tailored_security/chrome_tailored_security_service.cc
@@ -296,11 +296,17 @@
     return false;
   }
   if (prefs->GetInteger(prefs::kTailoredSecuritySyncFlowRetryState) ==
-      safe_browsing::UNSET) {
+          safe_browsing::UNSET &&
+      !prefs->GetBoolean(
+          prefs::kEnhancedProtectionEnabledViaTailoredSecurity)) {
     // The stateful version of `ChromeTailoredSecurityService` has not run yet,
     // and we don't know if a previous version of the service showed the dialog
-    // to the user in the past, so we need to ensure that we wait long enough
-    // before retrying.
+    // to the user in the past (pre-M106), so we need to wait long enough before
+    // retrying.
+    //
+    // Chrome M106+ sets kEnhancedProtectionEnabledViaTailoredSecurity on
+    // successfully showing a notification to the user, so we can guard this
+    // logic based on that.
     if (prefs->GetTime(prefs::kTailoredSecurityNextSyncFlowTimestamp) ==
         base::Time()) {
       prefs->SetTime(prefs::kTailoredSecurityNextSyncFlowTimestamp,
diff --git a/chrome/browser/safe_browsing/tailored_security/chrome_tailored_security_service.h b/chrome/browser/safe_browsing/tailored_security/chrome_tailored_security_service.h
index 87246a17..35dbf14 100644
--- a/chrome/browser/safe_browsing/tailored_security/chrome_tailored_security_service.h
+++ b/chrome/browser/safe_browsing/tailored_security/chrome_tailored_security_service.h
@@ -79,6 +79,9 @@
       WhenRetryNeededButNotEnoughTimeHasPassedDoesNotRetry);
   FRIEND_TEST_ALL_PREFIXES(
       ChromeTailoredSecurityServiceTest,
+      WhenRetryNotSetAndEnhancedProtectionEnabledViaTailoredSecurityDoesNotSetNextSyncFlowTimestamp);
+  FRIEND_TEST_ALL_PREFIXES(
+      ChromeTailoredSecurityServiceTest,
       WhenRetryNotSetAndNextSyncFlowHasNotPassedDoesNotRunRetryLogic);
   FRIEND_TEST_ALL_PREFIXES(
       ChromeTailoredSecurityServiceTest,
diff --git a/chrome/browser/safe_browsing/tailored_security/chrome_tailored_security_service_unittest.cc b/chrome/browser/safe_browsing/tailored_security/chrome_tailored_security_service_unittest.cc
index 2e25f12b2..43185c5 100644
--- a/chrome/browser/safe_browsing/tailored_security/chrome_tailored_security_service_unittest.cc
+++ b/chrome/browser/safe_browsing/tailored_security/chrome_tailored_security_service_unittest.cc
@@ -728,6 +728,34 @@
 
 TEST_F(
     ChromeTailoredSecurityServiceTest,
+    WhenRetryNotSetAndEnhancedProtectionEnabledViaTailoredSecurityDoesNotSetNextSyncFlowTimestamp) {
+  const GURL google_url("https://www.google.com");
+  AddTab(google_url);
+  SetAccountTailoredSecurityTimestamp(base::Time::Now());
+  tailored_security_service()->SetTailoredSecurityServiceValue(true);
+  SetSafeBrowsingState(prefs(), SafeBrowsingState::STANDARD_PROTECTION);
+
+  prefs()->SetTime(prefs::kTailoredSecurityNextSyncFlowTimestamp, base::Time());
+  prefs()->SetInteger(prefs::kTailoredSecuritySyncFlowRetryState,
+                      safe_browsing::UNSET);
+  prefs()->SetBoolean(prefs::kEnhancedProtectionEnabledViaTailoredSecurity,
+                      true);
+
+  base::HistogramTester tester;
+  task_environment_.FastForwardBy(
+      ChromeTailoredSecurityService::kRetryAttemptStartupDelay);
+  EXPECT_EQ(prefs()->GetTime(prefs::kTailoredSecurityNextSyncFlowTimestamp),
+            base::Time());
+
+  tester.ExpectBucketCount(
+      "SafeBrowsing.TailoredSecurity.ShouldRetryOutcome",
+      ChromeTailoredSecurityService::TailoredSecurityShouldRetryOutcome::
+          kUnsetInitializeWaitingPeriod,
+      0);
+}
+
+TEST_F(
+    ChromeTailoredSecurityServiceTest,
     WhenRetryNotSetAndNextSyncFlowNotSetSetsNextSyncFlowToWaitingIntervalFromNow) {
   const GURL google_url("https://www.google.com");
   AddTab(google_url);
diff --git a/chrome/browser/screen_ai/screen_ai_dlc_installer.cc b/chrome/browser/screen_ai/screen_ai_dlc_installer.cc
index 710aac0e..3736e46 100644
--- a/chrome/browser/screen_ai/screen_ai_dlc_installer.cc
+++ b/chrome/browser/screen_ai/screen_ai_dlc_installer.cc
@@ -19,7 +19,8 @@
 
 // Retry delay will exponentially increase.
 constexpr int kBaseRetryDelayInSeconds = 3;
-constexpr int kMaxInstallRetries = 3;
+constexpr int kMaxRetryDelayInSeconds = 180;
+constexpr int kMaxInstallRetries = 5;
 
 struct InstallMetadata {
   bool dlc_available_from_before_this_session = false;
@@ -29,6 +30,10 @@
 
 void InstallInternal(InstallMetadata metadata);
 
+int CalculateNextDelayInSeconds(int delay_in_seconds) {
+  return std::min(delay_in_seconds * delay_in_seconds, kMaxRetryDelayInSeconds);
+}
+
 void OnInstallCompleted(
     InstallMetadata metadata,
     const ash::DlcserviceClient::InstallResult& install_result) {
@@ -37,7 +42,9 @@
     VLOG(1) << "ScreenAI installation failed as DLC service is busy, retrying.";
     base::TimeDelta retry_delay =
         base::Seconds(metadata.retry_delay_in_seconds);
-    metadata.retry_delay_in_seconds *= metadata.retry_delay_in_seconds;
+
+    metadata.retry_delay_in_seconds =
+        CalculateNextDelayInSeconds(metadata.retry_delay_in_seconds);
     metadata.install_retries++;
 
     base::SequencedTaskRunner::GetCurrentDefault()->PostDelayedTask(
@@ -139,4 +146,16 @@
       }));
 }
 
+int CalculateNextDelayInSecondsForTesting(int delay_in_seconds) {
+  return CalculateNextDelayInSeconds(delay_in_seconds);
+}
+
+int base_retry_delay_in_seconds_for_testing() {
+  return kBaseRetryDelayInSeconds;
+}
+
+int max_install_retries_for_testing() {
+  return kMaxInstallRetries;
+}
+
 }  // namespace screen_ai::dlc_installer
diff --git a/chrome/browser/screen_ai/screen_ai_dlc_installer.h b/chrome/browser/screen_ai/screen_ai_dlc_installer.h
index b8dc566..aef98a1 100644
--- a/chrome/browser/screen_ai/screen_ai_dlc_installer.h
+++ b/chrome/browser/screen_ai/screen_ai_dlc_installer.h
@@ -18,6 +18,10 @@
 // Requests installation of Screen AI DLC.
 void Install();
 
+int CalculateNextDelayInSecondsForTesting(int delay_in_seconds);
+int base_retry_delay_in_seconds_for_testing();
+int max_install_retries_for_testing();
+
 }  // namespace screen_ai::dlc_installer
 
 #endif  // CHROME_BROWSER_SCREEN_AI_SCREEN_AI_DLC_INSTALLER_H_
diff --git a/chrome/browser/screen_ai/screen_ai_dlc_installer_unittest.cc b/chrome/browser/screen_ai/screen_ai_dlc_installer_unittest.cc
index 5b266b1c..8dd4b5ac 100644
--- a/chrome/browser/screen_ai/screen_ai_dlc_installer_unittest.cc
+++ b/chrome/browser/screen_ai/screen_ai_dlc_installer_unittest.cc
@@ -15,11 +15,6 @@
 #include "testing/gtest/include/gtest/gtest.h"
 #include "third_party/cros_system_api/dbus/dlcservice/dbus-constants.h"
 
-namespace {
-// `kBaseRetryDelayInSeconds` must be synced with `kBaseRetryDelayInSeconds` in
-// screen_ai_dlc_installer.cc.
-constexpr int kBaseRetryDelayInSeconds = 3;
-}  // namespace
 namespace ash {
 
 class ScreenAIDlcInstallerTest
@@ -29,6 +24,10 @@
   void SetUp() override {
     DlcserviceClient::InitializeFake();
     install_state_ = screen_ai::ScreenAIInstallState::Create();
+    base_retry_delay_in_seconds =
+        screen_ai::dlc_installer::base_retry_delay_in_seconds_for_testing();
+    max_install_retries =
+        screen_ai::dlc_installer::max_install_retries_for_testing();
   }
 
   void TearDown() override { DlcserviceClient::Shutdown(); }
@@ -63,6 +62,9 @@
         "Accessibility.ScreenAI.Component.Install", expected_total_count);
   }
 
+  int base_retry_delay_in_seconds;
+  int max_install_retries;
+
  private:
   FakeDlcserviceClient* fake_dlcservice_client() {
     return static_cast<FakeDlcserviceClient*>(DlcserviceClient::Get());
@@ -90,12 +92,13 @@
   InstallAndWait();
   ExpectFailureHistogramCount(/*expected_count=*/0, /*expected_total_count=*/0);
 
-  int delay_in_seconds = kBaseRetryDelayInSeconds;
-  WaitForDelay(delay_in_seconds);
-  delay_in_seconds *= delay_in_seconds;
-  WaitForDelay(delay_in_seconds);
-  delay_in_seconds *= delay_in_seconds;
-  WaitForDelay(delay_in_seconds);
+  int delay_in_seconds = base_retry_delay_in_seconds;
+  for (int i = 0; i < max_install_retries; ++i) {
+    WaitForDelay(delay_in_seconds);
+    delay_in_seconds =
+        screen_ai::dlc_installer::CalculateNextDelayInSecondsForTesting(
+            delay_in_seconds);
+  }
   ExpectFailureHistogramCount(/*expected_count=*/1, /*expected_total_count=*/1);
 }
 
@@ -103,12 +106,14 @@
        InstallFailureWithDlcErrorBusyAndRetrySuccess) {
   SetInstallError(dlcservice::kErrorBusy);
   InstallAndWait();
-  int delay_in_seconds = kBaseRetryDelayInSeconds;
+  int delay_in_seconds = base_retry_delay_in_seconds;
   WaitForDelay(delay_in_seconds);
   ExpectFailureHistogramCount(/*expected_count=*/0, /*expected_total_count=*/0);
 
   SetInstallError(dlcservice::kErrorNone);
-  delay_in_seconds *= delay_in_seconds;
+  delay_in_seconds =
+      screen_ai::dlc_installer::CalculateNextDelayInSecondsForTesting(
+          delay_in_seconds);
   WaitForDelay(delay_in_seconds);
   ExpectSuccessHistogramCount(/*expected_count=*/1, /*expected_total_count=*/1);
 }
@@ -117,14 +122,24 @@
   SetInstallError(dlcservice::kErrorBusy);
   InstallAndWait();
   ExpectFailureHistogramCount(/*expected_count=*/0, /*expected_total_count=*/0);
-
-  int delay_in_seconds = kBaseRetryDelayInSeconds;
-  WaitForDelay(delay_in_seconds);
-  delay_in_seconds *= delay_in_seconds;
-  WaitForDelay(delay_in_seconds);
-  delay_in_seconds *= delay_in_seconds;
-  WaitForDelay(delay_in_seconds);
+  int delay_in_seconds = base_retry_delay_in_seconds;
+  for (int i = 0; i < max_install_retries; ++i) {
+    WaitForDelay(delay_in_seconds);
+    delay_in_seconds =
+        screen_ai::dlc_installer::CalculateNextDelayInSecondsForTesting(
+            delay_in_seconds);
+  }
   ExpectFailureHistogramCount(/*expected_count=*/1, /*expected_total_count=*/1);
+
+  InstallAndWait();
+  delay_in_seconds = base_retry_delay_in_seconds;
+  for (int i = 0; i < max_install_retries; ++i) {
+    WaitForDelay(delay_in_seconds);
+    delay_in_seconds =
+        screen_ai::dlc_installer::CalculateNextDelayInSecondsForTesting(
+            delay_in_seconds);
+  }
+  ExpectFailureHistogramCount(/*expected_count=*/2, /*expected_total_count=*/2);
 }
 
 }  // namespace ash
diff --git a/chrome/browser/search_engine_choice/search_engine_choice_browsertest.cc b/chrome/browser/search_engine_choice/search_engine_choice_browsertest.cc
index 76e3827..ad09f54f 100644
--- a/chrome/browser/search_engine_choice/search_engine_choice_browsertest.cc
+++ b/chrome/browser/search_engine_choice/search_engine_choice_browsertest.cc
@@ -37,6 +37,7 @@
 #include "components/keyed_service/core/keyed_service.h"
 #include "components/search_engines/default_search_manager.h"
 #include "components/search_engines/search_engine_choice_utils.h"
+#include "components/search_engines/search_engines_switches.h"
 #include "components/search_engines/search_engines_test_util.h"
 #include "components/search_engines/template_url.h"
 #include "components/search_engines/template_url_service.h"
@@ -349,15 +350,6 @@
   EXPECT_EQ(first_profile_service->GetNumberOfBrowsersWithDialogsOpen(), 2u);
   CheckChoiceScreenWasDisplayedRecordedOnce();
 
-#if !BUILDFLAG(IS_CHROMEOS_ASH)
-  // Create another profile and open a browser with it.
-  ProfileManager* profile_manager = g_browser_process->profile_manager();
-  Profile* second_profile = &profiles::testing::CreateProfileSync(
-      profile_manager, profile_manager->GenerateNextProfileDirectoryPath());
-  auto* second_profile_service = static_cast<MockSearchEngineChoiceService*>(
-      SearchEngineChoiceServiceFactory::GetForProfile(second_profile));
-  Browser* browser_with_second_profile = CreateBrowser(second_profile);
-#endif
   // Simulate a dialog closing event for the first profile and test that the
   // dialogs for that profile are closed.
   first_profile_service->NotifyChoiceMade(/*prepopulate_id=*/1);
@@ -367,14 +359,55 @@
   EXPECT_FALSE(first_profile_service->IsShowingDialog(
       second_browser_with_first_profile));
   EXPECT_EQ(first_profile_service->GetNumberOfBrowsersWithDialogsOpen(), 0u);
+}
 
+// We don't run this test on ChromeOS Ash because we can't create multiple
+// profiles on Ash.
 #if !BUILDFLAG(IS_CHROMEOS_ASH)
-  // Test that the browser with the second profile is still showing a dialog.
+IN_PROC_BROWSER_TEST_F(SearchEngineChoiceBrowserTest,
+                       DialogGetsDisplayedOnlyForFirstProfile) {
+  Profile* first_profile = browser()->profile();
+  Browser* browser_with_first_profile = browser();
+  auto* first_profile_service = static_cast<MockSearchEngineChoiceService*>(
+      SearchEngineChoiceServiceFactory::GetForProfile(first_profile));
+
+  // Navigate to a URL to display the dialog.
+  ASSERT_TRUE(ui_test_utils::NavigateToURLWithDisposition(
+      browser_with_first_profile, GURL(chrome::kChromeUINewTabPageURL),
+      WindowOpenDisposition::CURRENT_TAB,
+      ui_test_utils::BROWSER_TEST_WAIT_FOR_LOAD_STOP));
+
+  EXPECT_TRUE(
+      first_profile_service->IsShowingDialog(browser_with_first_profile));
+
+  // Create another profile and open a browser with it.
+  ProfileManager* profile_manager = g_browser_process->profile_manager();
+  Profile* second_profile = &profiles::testing::CreateProfileSync(
+      profile_manager, profile_manager->GenerateNextProfileDirectoryPath());
+  auto* second_profile_service = static_cast<MockSearchEngineChoiceService*>(
+      SearchEngineChoiceServiceFactory::GetForProfile(second_profile));
+  Browser* browser_with_second_profile = CreateBrowser(second_profile);
+
+  // Make sure that the browser with the second profile doesn't have a
+  // dialog opened.
+  EXPECT_FALSE(
+      second_profile_service->IsShowingDialog(browser_with_second_profile));
+  CheckChoiceScreenWasDisplayedRecordedOnce();
+
+  // Test that the second profile will display the dialog when forced to.
+  base::CommandLine::ForCurrentProcess()->AppendSwitch(
+      switches::kForceSearchEngineChoiceScreen);
+
+  // Navigate to a URL to display the dialog.
+  ASSERT_TRUE(ui_test_utils::NavigateToURLWithDisposition(
+      browser_with_second_profile, GURL(chrome::kChromeUINewTabPageURL),
+      WindowOpenDisposition::CURRENT_TAB,
+      ui_test_utils::BROWSER_TEST_WAIT_FOR_LOAD_STOP));
+
   EXPECT_TRUE(
       second_profile_service->IsShowingDialog(browser_with_second_profile));
-  EXPECT_EQ(second_profile_service->GetNumberOfBrowsersWithDialogsOpen(), 1u);
-#endif
 }
+#endif
 
 IN_PROC_BROWSER_TEST_F(SearchEngineChoiceBrowserTest,
                        DialogDoesNotShowAgainAfterSettingPref) {
diff --git a/chrome/browser/search_engine_choice/search_engine_choice_service.cc b/chrome/browser/search_engine_choice/search_engine_choice_service.cc
index 40375b2..43daafd 100644
--- a/chrome/browser/search_engine_choice/search_engine_choice_service.cc
+++ b/chrome/browser/search_engine_choice/search_engine_choice_service.cc
@@ -6,6 +6,7 @@
 
 #include "base/check_is_test.h"
 #include "base/containers/contains.h"
+#include "chrome/browser/browser_process.h"
 #include "chrome/browser/profiles/profile.h"
 #include "chrome/browser/ui/browser.h"
 #include "chrome/browser/ui/startup/first_run_service.h"
@@ -13,6 +14,7 @@
 #include "components/prefs/pref_service.h"
 #include "components/search_engines/search_engine_choice_utils.h"
 #include "components/search_engines/search_engines_pref_names.h"
+#include "components/search_engines/search_engines_switches.h"
 #include "components/search_engines/template_url.h"
 #include "components/search_engines/template_url_data.h"
 #include "components/search_engines/template_url_prepopulate_data.h"
@@ -21,7 +23,27 @@
 
 namespace {
 bool g_dialog_disabled_for_testing = false;
+
+// Checks that the profile is the first profile that sees the search engine
+// choice dialog.
+bool IsSelectedChoiceProfile(Profile& profile, PrefService* local_state) {
+  base::CommandLine* const command_line =
+      base::CommandLine::ForCurrentProcess();
+  // Force-enable the choice screen for testing the screen itself.
+  if (command_line->HasSwitch(switches::kForceSearchEngineChoiceScreen)) {
+    return true;
+  }
+
+  if (!local_state->HasPrefPath(prefs::kSearchEnginesChoiceProfile)) {
+    local_state->SetFilePath(prefs::kSearchEnginesChoiceProfile,
+                             profile.GetBaseName());
+    return true;
+  }
+
+  return profile.GetBaseName() ==
+         local_state->GetFilePath(prefs::kSearchEnginesChoiceProfile);
 }
+}  // namespace
 
 SearchEngineChoiceService::BrowserObserver::BrowserObserver(
     SearchEngineChoiceService& service)
@@ -120,6 +142,13 @@
   g_dialog_disabled_for_testing = dialog_disabled;
 }
 
+// static
+void SearchEngineChoiceService::RegisterLocalStatePrefs(
+    PrefRegistrySimple* registry) {
+  registry->RegisterFilePathPref(prefs::kSearchEnginesChoiceProfile,
+                                 base::FilePath());
+}
+
 bool SearchEngineChoiceService::IsShowingDialog(Browser* browser) {
   return base::Contains(browsers_with_open_dialogs_, browser);
 }
@@ -132,6 +161,11 @@
 }
 
 bool SearchEngineChoiceService::CanShowDialog(Browser& browser) {
+  if (!IsSelectedChoiceProfile(profile_.get(),
+                               g_browser_process->local_state())) {
+    return false;
+  }
+
   if (web_app::AppBrowserController::IsWebApp(&browser)) {
     // Showing a Chrome-specific search engine dialog on top of a window
     // dedicated to a specific web app is a horrible UX, we suppress it for this
diff --git a/chrome/browser/search_engine_choice/search_engine_choice_service.h b/chrome/browser/search_engine_choice/search_engine_choice_service.h
index 2b7e50f..b905c64 100644
--- a/chrome/browser/search_engine_choice/search_engine_choice_service.h
+++ b/chrome/browser/search_engine_choice/search_engine_choice_service.h
@@ -13,6 +13,7 @@
 #include "chrome/browser/ui/browser_list.h"
 #include "chrome/browser/ui/browser_list_observer.h"
 #include "components/keyed_service/core/keyed_service.h"
+#include "components/prefs/pref_registry_simple.h"
 #include "components/search_engines/template_url_data.h"
 #include "components/search_engines/template_url_service.h"
 
@@ -78,6 +79,10 @@
   // ensure it is reset at the end of your test.
   static void SetDialogDisabledForTests(bool dialog_disabled);
 
+  // Registers the local state preferences used by the search engine choice
+  // screen.
+  static void RegisterLocalStatePrefs(PrefRegistrySimple* registry);
+
  private:
   // Observes the BrowserList to make sure that closed browsers are correctly
   // removed from our set of browser pointers. This ensures that we don't get
diff --git a/chrome/browser/tpcd/experiment/eligibility_service_factory.cc b/chrome/browser/tpcd/experiment/eligibility_service_factory.cc
index 8421dbf..ca33cbe 100644
--- a/chrome/browser/tpcd/experiment/eligibility_service_factory.cc
+++ b/chrome/browser/tpcd/experiment/eligibility_service_factory.cc
@@ -4,10 +4,12 @@
 
 #include "chrome/browser/tpcd/experiment/eligibility_service_factory.h"
 
+#include "base/feature_list.h"
 #include "chrome/browser/browser_process.h"
 #include "chrome/browser/privacy_sandbox/tracking_protection_onboarding_factory.h"
 #include "chrome/browser/profiles/profile.h"
 #include "chrome/browser/tpcd/experiment/eligibility_service.h"
+#include "content/public/common/content_features.h"
 
 namespace tpcd::experiment {
 
@@ -32,9 +34,17 @@
   DependsOn(TrackingProtectionOnboardingFactory::GetInstance());
 }
 
+bool EligibilityServiceFactory::ServiceIsCreatedWithBrowserContext() const {
+  return true;
+}
+
 std::unique_ptr<KeyedService>
 EligibilityServiceFactory::BuildServiceInstanceForBrowserContext(
     content::BrowserContext* context) const {
+  if (!base::FeatureList::IsEnabled(
+          features::kCookieDeprecationFacilitatedTesting)) {
+    return nullptr;
+  }
   return std::make_unique<EligibilityService>(
       Profile::FromBrowserContext(context));
 }
diff --git a/chrome/browser/tpcd/experiment/eligibility_service_factory.h b/chrome/browser/tpcd/experiment/eligibility_service_factory.h
index 527c5ee..af501a2 100644
--- a/chrome/browser/tpcd/experiment/eligibility_service_factory.h
+++ b/chrome/browser/tpcd/experiment/eligibility_service_factory.h
@@ -28,6 +28,8 @@
   EligibilityServiceFactory();
 
   // BrowserContextKeyedServiceFactory:
+  bool ServiceIsCreatedWithBrowserContext() const override;
+
   std::unique_ptr<KeyedService> BuildServiceInstanceForBrowserContext(
       content::BrowserContext* context) const override;
 };
diff --git a/chrome/browser/tpcd/metadata/updater_service_browsertest.cc b/chrome/browser/tpcd/metadata/updater_service_browsertest.cc
index fca33651..486d0dc 100644
--- a/chrome/browser/tpcd/metadata/updater_service_browsertest.cc
+++ b/chrome/browser/tpcd/metadata/updater_service_browsertest.cc
@@ -82,11 +82,7 @@
   const GURL kEmbedded = GURL("http://www.bar.com");
   const GURL kEmbedder = GURL("http://www.foo.com");
 
-  ASSERT_EQ(GetCookieSettings()
-                ->GetContentSettingsForOneTypeForTesting(
-                    ContentSettingsType::TPCD_METADATA_GRANTS)
-                .size(),
-            0u);
+  ASSERT_EQ(GetCookieSettings()->GetTpcdMetadataGrantsForTesting().size(), 0u);
   EXPECT_EQ(
       ContentSetting::CONTENT_SETTING_BLOCK,
       GetCookieSettings()->GetContentSettingForTesting(
@@ -102,11 +98,7 @@
 
   MockComponentInstallation(metadata);
 
-  ASSERT_EQ(GetCookieSettings()
-                ->GetContentSettingsForOneTypeForTesting(
-                    ContentSettingsType::TPCD_METADATA_GRANTS)
-                .size(),
-            1u);
+  ASSERT_EQ(GetCookieSettings()->GetTpcdMetadataGrantsForTesting().size(), 1u);
   EXPECT_EQ(
       ContentSetting::CONTENT_SETTING_ALLOW,
       GetCookieSettings()->GetContentSettingForTesting(
@@ -131,10 +123,7 @@
     Metadata metadata = MakeMetadataProtoFromVectorOfPair(metadata_pairs);
     ASSERT_EQ(metadata.metadata_entries_size(), 1);
 
-    ASSERT_EQ(GetCookieSettings()
-                  ->GetContentSettingsForOneTypeForTesting(
-                      ContentSettingsType::TPCD_METADATA_GRANTS)
-                  .size(),
+    ASSERT_EQ(GetCookieSettings()->GetTpcdMetadataGrantsForTesting().size(),
               0u);
     EXPECT_EQ(
 
@@ -144,10 +133,7 @@
 
     MockComponentInstallation(metadata);
 
-    ASSERT_EQ(GetCookieSettings()
-                  ->GetContentSettingsForOneTypeForTesting(
-                      ContentSettingsType::TPCD_METADATA_GRANTS)
-                  .size(),
+    ASSERT_EQ(GetCookieSettings()->GetTpcdMetadataGrantsForTesting().size(),
               1u);
     EXPECT_EQ(
         GetCookieSettings()->GetContentSettingForTesting(
@@ -164,10 +150,7 @@
     Metadata metadata = MakeMetadataProtoFromVectorOfPair(metadata_pairs);
     ASSERT_EQ(metadata.metadata_entries_size(), 1);
 
-    ASSERT_EQ(GetCookieSettings()
-                  ->GetContentSettingsForOneTypeForTesting(
-                      ContentSettingsType::TPCD_METADATA_GRANTS)
-                  .size(),
+    ASSERT_EQ(GetCookieSettings()->GetTpcdMetadataGrantsForTesting().size(),
               1u);
     EXPECT_EQ(
         GetCookieSettings()->GetContentSettingForTesting(
@@ -180,10 +163,7 @@
 
     MockComponentInstallation(metadata);
 
-    ASSERT_EQ(GetCookieSettings()
-                  ->GetContentSettingsForOneTypeForTesting(
-                      ContentSettingsType::TPCD_METADATA_GRANTS)
-                  .size(),
+    ASSERT_EQ(GetCookieSettings()->GetTpcdMetadataGrantsForTesting().size(),
               1u);
     EXPECT_EQ(
         GetCookieSettings()->GetContentSettingForTesting(
diff --git a/chrome/browser/tracing/chrome_tracing_delegate.cc b/chrome/browser/tracing/chrome_tracing_delegate.cc
index 356d723..6f61e26 100644
--- a/chrome/browser/tracing/chrome_tracing_delegate.cc
+++ b/chrome/browser/tracing/chrome_tracing_delegate.cc
@@ -149,14 +149,11 @@
 }
 #endif  // BUILDFLAG(IS_ANDROID)
 
-bool ChromeTracingDelegate::IsActionAllowed(BackgroundScenarioAction action,
-                                            const std::string& scenario_name,
-                                            bool requires_anonymized_data,
-                                            bool ignore_trace_limit) const {
-  // If the background tracing is specified on the command-line, we
-  // allow any scenario to be traced and uploaded.
-  // TODO(crbug.com/1418116): Allow tracing scenarios when a local
-  // output is specified.
+bool ChromeTracingDelegate::IsActionAllowed(
+    BackgroundScenarioAction action,
+    bool requires_anonymized_data) const {
+  // If the background tracing is specified on the command-line, we allow
+  // any scenario to be traced and uploaded.
   if (IsBackgroundTracingCommandLine()) {
     return true;
   }
@@ -180,22 +177,11 @@
     return false;
   }
 
-  // Check the trace limit for both kStartTracing and kUploadTrace actions
-  // because there is no point starting a trace that can't be uploaded.
-  if (!ignore_trace_limit &&
-      state.DidRecentlyUploadForScenario(scenario_name)) {
-    tracing::RecordDisallowedMetric(
-        tracing::TracingFinalizationDisallowedReason::kTraceUploadedRecently);
-    return false;
-  }
-
   return true;
 }
 
-bool ChromeTracingDelegate::IsAllowedToBeginBackgroundScenario(
-    const std::string& scenario_name,
-    bool requires_anonymized_data,
-    bool is_crash_scenario) {
+bool ChromeTracingDelegate::OnBackgroundTracingActive(
+    bool requires_anonymized_data) {
   // We call Initialize() only when a tracing scenario tries to start, and
   // unless this happens we never save state. In particular, if the background
   // tracing experiment is disabled, Initialize() will never be called, and we
@@ -210,39 +196,23 @@
       BackgroundTracingStateManager::GetInstance();
   state.Initialize(g_browser_process->local_state());
 
-  // If the config includes a crash scenario, ignore the trace limit so that a
-  // trace can be taken on crash. We check if the trigger is actually due to a
-  // crash later before uploading.
-  const bool ignore_trace_limit = is_crash_scenario;
-
-  if (!IsActionAllowed(BackgroundScenarioAction::kStartTracing, scenario_name,
-                       requires_anonymized_data, ignore_trace_limit)) {
+  if (!IsActionAllowed(BackgroundScenarioAction::kStartTracing,
+                       requires_anonymized_data)) {
     return false;
   }
 
-  state.NotifyTracingStarted();
+  state.OnTracingStarted();
   return true;
 }
 
-bool ChromeTracingDelegate::IsAllowedToEndBackgroundScenario(
-    const std::string& scenario_name,
-    bool requires_anonymized_data,
-    bool is_crash_scenario) {
+bool ChromeTracingDelegate::OnBackgroundTracingIdle(
+    bool requires_anonymized_data) {
   BackgroundTracingStateManager& state =
       BackgroundTracingStateManager::GetInstance();
-  state.NotifyFinalizationStarted();
+  state.OnTracingStopped();
 
-  // If a crash scenario triggered, ignore the trace upload limit and continue
-  // uploading.
-  const bool ignore_trace_limit = is_crash_scenario;
-
-  if (!IsActionAllowed(BackgroundScenarioAction::kUploadTrace, scenario_name,
-                       requires_anonymized_data, ignore_trace_limit)) {
-    return false;
-  }
-
-  state.OnScenarioUploaded(scenario_name);
-  return true;
+  return IsActionAllowed(BackgroundScenarioAction::kUploadTrace,
+                         requires_anonymized_data);
 }
 
 bool ChromeTracingDelegate::ShouldSaveUnuploadedTrace() const {
diff --git a/chrome/browser/tracing/chrome_tracing_delegate.h b/chrome/browser/tracing/chrome_tracing_delegate.h
index 0afb603..ae95777 100644
--- a/chrome/browser/tracing/chrome_tracing_delegate.h
+++ b/chrome/browser/tracing/chrome_tracing_delegate.h
@@ -39,16 +39,12 @@
   // before tracing is started. If this returns true, a tasks is posted 30
   // seconds into the future that will mark a successful startup / run of a
   // trace and will allow tracing to run next time.
-  bool IsAllowedToBeginBackgroundScenario(const std::string& scenario_name,
-                                          bool requires_anonymized_data,
-                                          bool is_crash_scenario) override;
+  bool OnBackgroundTracingActive(bool requires_anonymized_data) override;
 
   // Returns true if tracing is allowed to end. Also updates the background
   // tracing state in prefs using BackgroundTracingStateManager when returning
   // true. This is required to be called before stopping background tracing.
-  bool IsAllowedToEndBackgroundScenario(const std::string& scenario_name,
-                                        bool requires_anonymized_data,
-                                        bool is_crash_scenario) override;
+  bool OnBackgroundTracingIdle(bool requires_anonymized_data) override;
 
   bool ShouldSaveUnuploadedTrace() const override;
   bool IsSystemWideTracingEnabled() override;
@@ -91,9 +87,7 @@
   // Returns true if the delegate should be allowed to perform `action` for the
   // scenario described in `config`.
   bool IsActionAllowed(BackgroundScenarioAction action,
-                       const std::string& scenario_name,
-                       bool requires_anonymized_data,
-                       bool ignore_trace_limit) const;
+                       bool requires_anonymized_data) const;
 
   bool incognito_launched_ = false;
 };
diff --git a/chrome/browser/tracing/chrome_tracing_delegate_browsertest.cc b/chrome/browser/tracing/chrome_tracing_delegate_browsertest.cc
index 36f5bd0..704bf45f 100644
--- a/chrome/browser/tracing/chrome_tracing_delegate_browsertest.cc
+++ b/chrome/browser/tracing/chrome_tracing_delegate_browsertest.cc
@@ -149,212 +149,12 @@
 }
 
 IN_PROC_BROWSER_TEST_F(ChromeTracingDelegateBrowserTest,
-                       BackgroundTracingTimeThrottled) {
-  EXPECT_TRUE(StartPreemptiveScenario(
-      content::BackgroundTracingManager::NO_DATA_FILTERING));
-
-  TestBackgroundTracingHelper background_tracing_helper;
-  TriggerPreemptiveScenario();
-
-  background_tracing_helper.WaitForTraceReceived();
-
-  std::string state = GetSessionStateJson();
-  EXPECT_TRUE(base::MatchPattern(
-      state,
-      R"({"state":3,"upload_times":[{"scenario":"TestScenario","time":"*"}]})"))
-      << "Actual: " << state;
-
-  content::BackgroundTracingManager::GetInstance().AbortScenarioForTesting();
-  background_tracing_helper.WaitForScenarioIdle();
-
-  EXPECT_FALSE(
-      content::BackgroundTracingManager::GetInstance().HasActiveScenario());
-#if !BUILDFLAG(USE_PERFETTO_CLIENT_LIBRARY)
-  EXPECT_FALSE(base::trace_event::TraceLog::GetInstance()->IsEnabled());
-#endif
-
-  // We should not be able to start a new reactive scenario immediately after
-  // a previous one gets uploaded.
-  EXPECT_FALSE(StartPreemptiveScenario(
-      content::BackgroundTracingManager::NO_DATA_FILTERING));
-}
-
-IN_PROC_BROWSER_TEST_F(ChromeTracingDelegateBrowserTest,
-                       BackgroundTracingTimeThrottledAfterPreviousDay) {
-  std::string state = GetSessionStateJson();
-  EXPECT_EQ(state, "{}");
-
-  base::Time upload_time = base::Time::Now() - base::Days(1);
-  tracing::BackgroundTracingStateManager::ScenarioUploadTimestampMap
-      upload_times;
-  upload_times["TestScenario"] = upload_time;
-  tracing::BackgroundTracingStateManager::GetInstance().SaveState(
-      upload_times, tracing::BackgroundTracingState::NOT_ACTIVATED);
-
-  EXPECT_FALSE(StartPreemptiveScenario(
-      content::BackgroundTracingManager::NO_DATA_FILTERING));
-
-  state = GetSessionStateJson();
-  EXPECT_TRUE(base::MatchPattern(
-      state,
-      R"({"state":0,"upload_times":[{"scenario":"TestScenario","time":"*"}]})"))
-      << "Actual: " << state;
-}
-
-IN_PROC_BROWSER_TEST_F(ChromeTracingDelegateBrowserTest,
-                       BackgroundTracingTimeThrottledUpdatedScenario) {
-  std::string state = GetSessionStateJson();
-  EXPECT_EQ(state, "{}");
-
-  base::Time upload_time = base::Time::Now() - base::Days(1);
-  tracing::BackgroundTracingStateManager::ScenarioUploadTimestampMap
-      upload_times;
-  upload_times["TestScenario10"] = upload_time;
-  upload_times["TestingScenario1"] = upload_time;
-  tracing::BackgroundTracingStateManager::GetInstance().SaveState(
-      upload_times, tracing::BackgroundTracingState::NOT_ACTIVATED);
-
-  EXPECT_FALSE(StartPreemptiveScenario(
-      content::BackgroundTracingManager::NO_DATA_FILTERING, "TestScenario12"));
-
-  state = GetSessionStateJson();
-  EXPECT_TRUE(base::MatchPattern(
-      state,
-      R"({"state":0,"upload_times":[{"scenario":"TestScenario","time":"*"},)"
-      R"({"scenario":"TestingScenario","time":"*"}]})"))
-      << "Actual: " << state;
-}
-
-IN_PROC_BROWSER_TEST_F(ChromeTracingDelegateBrowserTest,
-                       BackgroundTracingTimeThrottledDifferentScenario) {
-  std::string state = GetSessionStateJson();
-  EXPECT_EQ(state, "{}");
-
-  base::Time upload_time = base::Time::Now() - base::Days(1);
-  tracing::BackgroundTracingStateManager::ScenarioUploadTimestampMap
-      upload_times;
-  upload_times["TestScenario10"] = upload_time;
-  upload_times["TestingScenario1"] = upload_time;
-  tracing::BackgroundTracingStateManager::GetInstance().SaveState(
-      upload_times, tracing::BackgroundTracingState::NOT_ACTIVATED);
-
-  EXPECT_TRUE(StartPreemptiveScenario(
-      content::BackgroundTracingManager::NO_DATA_FILTERING, "OtherScenario"));
-
-  state = GetSessionStateJson();
-  EXPECT_TRUE(base::MatchPattern(
-      state,
-      R"({"state":1,"upload_times":[{"scenario":"TestScenario","time":"*"},)"
-      R"({"scenario":"TestingScenario","time":"*"}]})"))
-      << "Actual: " << state;
-
-  TestBackgroundTracingHelper background_tracing_helper;
-  TriggerPreemptiveScenario();
-
-  background_tracing_helper.WaitForTraceReceived();
-
-  state = GetSessionStateJson();
-  EXPECT_TRUE(base::MatchPattern(
-      state,
-      R"({"state":3,"upload_times":[{"scenario":"OtherScenario","time":"*"},)"
-      R"({"scenario":"TestScenario","time":"*"},)"
-      R"({"scenario":"TestingScenario","time":"*"}]})"))
-      << "Actual: " << state;
-}
-
-IN_PROC_BROWSER_TEST_F(ChromeTracingDelegateBrowserTest,
-                       BackgroundTracingThrottleTimeElapsed) {
-  std::string state = GetSessionStateJson();
-  EXPECT_EQ(state, "{}");
-
-  base::Time upload_time = base::Time::Now() - base::Days(8);
-  tracing::BackgroundTracingStateManager::ScenarioUploadTimestampMap
-      upload_times;
-  upload_times["TestScenario"] = upload_time;
-  tracing::BackgroundTracingStateManager::GetInstance().SaveState(
-      upload_times, tracing::BackgroundTracingState::NOT_ACTIVATED);
-
-  EXPECT_TRUE(StartPreemptiveScenario(
-      content::BackgroundTracingManager::NO_DATA_FILTERING));
-  state = GetSessionStateJson();
-  // Older entries are discarded.
-  EXPECT_EQ(state, R"({"state":1,"upload_times":[]})");
-}
-
-// Test how crash scenarios behave when uploads are throttled: tracing starts if
-// a crash scenario exists, and the trace is uploaded if the crash scenario is
-// triggered.
-IN_PROC_BROWSER_TEST_F(ChromeTracingDelegateBrowserTest,
-                       BackgroundTracingCrashScenarioNotThrottled) {
-  EXPECT_TRUE(StartPreemptiveScenario(
-      content::BackgroundTracingManager::NO_DATA_FILTERING));
-
-  {
-    TestBackgroundTracingHelper background_tracing_helper;
-    TriggerPreemptiveScenario();
-
-    background_tracing_helper.WaitForTraceReceived();
-
-    content::BackgroundTracingManager::GetInstance().AbortScenarioForTesting();
-    background_tracing_helper.WaitForScenarioIdle();
-  }
-
-  EXPECT_FALSE(
-      content::BackgroundTracingManager::GetInstance().HasActiveScenario());
-
-  TestBackgroundTracingHelper background_tracing_helper;
-  // We should immediately be able to start a new scenario that includes a
-  // crash scenario.
-  EXPECT_TRUE(StartPreemptiveScenarioWithCrash(
-      content::BackgroundTracingManager::NO_DATA_FILTERING));
-  TriggerPreemptiveScenarioWithCrash();
-
-  background_tracing_helper.WaitForTraceReceived();
-}
-
-// Test how crash scenarios behave when uploads are throttled: tracing starts if
-// a crash scenario exists, but if a different scenario is triggered the upload
-// should still be throttled.
-IN_PROC_BROWSER_TEST_F(ChromeTracingDelegateBrowserTest,
-                       BackgroundTracingCrashScenarioUploadThrottled) {
-  EXPECT_TRUE(StartPreemptiveScenario(
-      content::BackgroundTracingManager::NO_DATA_FILTERING));
-
-  {
-    TestBackgroundTracingHelper background_tracing_helper;
-    TriggerPreemptiveScenario();
-
-    background_tracing_helper.WaitForTraceReceived();
-  }
-
-  {
-    TestBackgroundTracingHelper background_tracing_helper;
-    content::BackgroundTracingManager::GetInstance().AbortScenarioForTesting();
-    background_tracing_helper.WaitForScenarioIdle();
-  }
-
-  EXPECT_FALSE(
-      content::BackgroundTracingManager::GetInstance().HasActiveScenario());
-
-  // We should immediately be able to start a new scenario that includes a
-  // crash scenario.
-  EXPECT_TRUE(StartPreemptiveScenarioWithCrash(
-      content::BackgroundTracingManager::NO_DATA_FILTERING));
-
-  TestBackgroundTracingHelper background_tracing_helper;
-  TriggerPreemptiveScenario();
-  background_tracing_helper.WaitForScenarioIdle();
-}
-
-IN_PROC_BROWSER_TEST_F(ChromeTracingDelegateBrowserTest,
                        BackgroundTracingUnexpectedSessionEnd) {
   std::string state = GetSessionStateJson();
   EXPECT_EQ(state, "{}");
 
-  tracing::BackgroundTracingStateManager::ScenarioUploadTimestampMap
-      upload_times;
   tracing::BackgroundTracingStateManager::GetInstance().SaveState(
-      upload_times, tracing::BackgroundTracingState::STARTED);
+      tracing::BackgroundTracingState::STARTED);
 
   EXPECT_FALSE(StartPreemptiveScenario(
       content::BackgroundTracingManager::NO_DATA_FILTERING));
@@ -365,10 +165,8 @@
   std::string state = GetSessionStateJson();
   EXPECT_EQ(state, "{}");
 
-  tracing::BackgroundTracingStateManager::ScenarioUploadTimestampMap
-      upload_times;
   tracing::BackgroundTracingStateManager::GetInstance().SaveState(
-      upload_times, tracing::BackgroundTracingState::RAN_30_SECONDS);
+      tracing::BackgroundTracingState::RAN_30_SECONDS);
 
   EXPECT_TRUE(StartPreemptiveScenario(
       content::BackgroundTracingManager::NO_DATA_FILTERING));
@@ -379,10 +177,8 @@
   std::string state = GetSessionStateJson();
   EXPECT_EQ(state, "{}");
 
-  tracing::BackgroundTracingStateManager::ScenarioUploadTimestampMap
-      upload_times;
   tracing::BackgroundTracingStateManager::GetInstance().SaveState(
-      upload_times, tracing::BackgroundTracingState::FINALIZATION_STARTED);
+      tracing::BackgroundTracingState::FINALIZATION_STARTED);
 
   EXPECT_TRUE(StartPreemptiveScenario(
       content::BackgroundTracingManager::NO_DATA_FILTERING));
@@ -393,16 +189,14 @@
   std::string state = GetSessionStateJson();
   EXPECT_EQ(state, "{}");
 
-  tracing::BackgroundTracingStateManager::ScenarioUploadTimestampMap
-      upload_times;
   tracing::BackgroundTracingStateManager::GetInstance().SaveState(
-      upload_times, tracing::BackgroundTracingState::FINALIZATION_STARTED);
+      tracing::BackgroundTracingState::FINALIZATION_STARTED);
 
   // State does not update from finalization started to ran 30 seconds.
   tracing::BackgroundTracingStateManager::GetInstance().SaveState(
-      upload_times, tracing::BackgroundTracingState::RAN_30_SECONDS);
+      tracing::BackgroundTracingState::RAN_30_SECONDS);
   state = GetSessionStateJson();
-  EXPECT_EQ(state, R"({"state":2,"upload_times":[]})");
+  EXPECT_EQ(state, R"({"state":2})");
 }
 
 // If we need a PII-stripped trace, any existing OTR session should block the
@@ -484,7 +278,7 @@
   EXPECT_TRUE(
       content::BackgroundTracingManager::GetInstance().HasActiveScenario());
   // State 1 = STARTED.
-  EXPECT_EQ(GetSessionStateJson(), R"({"state":1,"upload_times":[]})");
+  EXPECT_EQ(GetSessionStateJson(), R"({"state":1})");
 }
 
 IN_PROC_BROWSER_TEST_F(ChromeTracingDelegateBrowserTestOnStartup,
@@ -494,39 +288,7 @@
   EXPECT_FALSE(
       content::BackgroundTracingManager::GetInstance().HasActiveScenario());
   // State 0 = NOT_ACTIVATED, current session is inactive.
-  EXPECT_EQ(GetSessionStateJson(), R"({"state":0,"upload_times":[]})");
-}
-
-IN_PROC_BROWSER_TEST_F(ChromeTracingDelegateBrowserTestOnStartup,
-                       PRE_StartupTracingThrottle) {
-  EXPECT_TRUE(
-      content::BackgroundTracingManager::GetInstance().HasActiveScenario());
-  EXPECT_EQ(GetSessionStateJson(), R"({"state":1,"upload_times":[]})");
-
-  TestBackgroundTracingHelper background_tracing_helper;
-  TriggerPreemptiveScenario();
-
-  // This updates the upload time for the test scenario to current time.
-  background_tracing_helper.WaitForTraceReceived();
-
-  std::string state = GetSessionStateJson();
-  EXPECT_TRUE(base::MatchPattern(
-      state,
-      R"({"state":3,"upload_times":[{"scenario":"TestScenario","time":"*"}]})"))
-      << "Actual: " << state;
-}
-
-IN_PROC_BROWSER_TEST_F(ChromeTracingDelegateBrowserTestOnStartup,
-                       StartupTracingThrottle) {
-  // The startup scenario should *not* be started, since not enough
-  // time has elapsed since the last upload (set in the PRE_ above).
-  EXPECT_FALSE(
-      content::BackgroundTracingManager::GetInstance().HasActiveScenario());
-  std::string state = GetSessionStateJson();
-  EXPECT_TRUE(base::MatchPattern(
-      state,
-      R"({"state":0,"upload_times":[{"scenario":"TestScenario","time":"*"}]})"))
-      << "Actual: " << state;
+  EXPECT_EQ(GetSessionStateJson(), R"({"state":0})");
 }
 
 class ChromeTracingDelegateBrowserTestFromCommandLine
@@ -580,7 +342,7 @@
   EXPECT_TRUE(
       content::BackgroundTracingManager::GetInstance().HasActiveScenario());
   // State 1 = STARTED.
-  EXPECT_EQ(GetSessionStateJson(), R"({"state":1,"upload_times":[]})");
+  EXPECT_EQ(GetSessionStateJson(), R"({"state":1})");
 
   // The scenario should also be "uploaded" (actually written to the output
   // file).
@@ -592,7 +354,7 @@
                        PRE_IgnoreThrottle) {
   EXPECT_TRUE(
       content::BackgroundTracingManager::GetInstance().HasActiveScenario());
-  EXPECT_EQ(GetSessionStateJson(), R"({"state":1,"upload_times":[]})");
+  EXPECT_EQ(GetSessionStateJson(), R"({"state":1})");
 
   // This updates the upload time for the test scenario to the current time,
   // even though the output is actually written to a file.
@@ -600,9 +362,7 @@
   EXPECT_TRUE(OutputPathExists());
 
   std::string state = GetSessionStateJson();
-  EXPECT_TRUE(base::MatchPattern(
-      state,
-      R"({"state":3,"upload_times":[{"scenario":"TestScenario","time":"*"}]})"))
+  EXPECT_TRUE(base::MatchPattern(state, R"({"state":3})"))
       << "Actual: " << state;
 }
 
@@ -616,9 +376,7 @@
       content::BackgroundTracingManager::GetInstance().HasActiveScenario());
   // State 1 = STARTED.
   std::string state = GetSessionStateJson();
-  EXPECT_TRUE(base::MatchPattern(
-      state,
-      R"({"state":1,"upload_times":[{"scenario":"TestScenario","time":"*"}]})"))
+  EXPECT_TRUE(base::MatchPattern(state, R"({"state":1})"))
       << "Actual: " << state;
 
   // The scenario should also be "uploaded" (actually written to the output
diff --git a/chrome/browser/ui/BUILD.gn b/chrome/browser/ui/BUILD.gn
index d91350b..0b2f443 100644
--- a/chrome/browser/ui/BUILD.gn
+++ b/chrome/browser/ui/BUILD.gn
@@ -82,8 +82,6 @@
     "autofill/risk_util.h",
     "autofill/test/test_autofill_bubble_handler.cc",
     "autofill/test/test_autofill_bubble_handler.h",
-    "autofill/ui_util.cc",
-    "autofill/ui_util.h",
     "blocked_content/blocked_window_params.cc",
     "blocked_content/blocked_window_params.h",
     "blocked_content/chrome_popup_navigation_delegate.cc",
@@ -3121,6 +3119,8 @@
       "webui/ash/login/update_required_screen_handler.h",
       "webui/ash/login/update_screen_handler.cc",
       "webui/ash/login/update_screen_handler.h",
+      "webui/ash/login/user_allowlist_check_screen_handler.cc",
+      "webui/ash/login/user_allowlist_check_screen_handler.h",
       "webui/ash/login/user_creation_screen_handler.cc",
       "webui/ash/login/user_creation_screen_handler.h",
       "webui/ash/login/welcome_screen_handler.cc",
diff --git a/chrome/browser/ui/android/device_lock/java/src/org/chromium/chrome/browser/ui/device_lock/DeviceLockCoordinator.java b/chrome/browser/ui/android/device_lock/java/src/org/chromium/chrome/browser/ui/device_lock/DeviceLockCoordinator.java
index ec3c6fa9..f6b085b 100644
--- a/chrome/browser/ui/android/device_lock/java/src/org/chromium/chrome/browser/ui/device_lock/DeviceLockCoordinator.java
+++ b/chrome/browser/ui/android/device_lock/java/src/org/chromium/chrome/browser/ui/device_lock/DeviceLockCoordinator.java
@@ -92,11 +92,7 @@
      * Get a {@link ReauthenticatorBridge} for the Device Lock page.
      */
     public static ReauthenticatorBridge createDeviceLockAuthenticatorBridge() {
-        /**
-         * TODO(crbug.com/1486015): Add a new value for the enum and a new bucket for the
-         * corresponding metric: DEVICE_LOCK_PAGE.
-         */
-        return ReauthenticatorBridge.create(DeviceAuthSource.AUTOFILL);
+        return ReauthenticatorBridge.create(DeviceAuthSource.DEVICE_LOCK_PAGE);
     }
 
     /**
diff --git a/chrome/browser/ui/android/device_lock/java/src/org/chromium/chrome/browser/ui/device_lock/DeviceLockMediator.java b/chrome/browser/ui/android/device_lock/java/src/org/chromium/chrome/browser/ui/device_lock/DeviceLockMediator.java
index 392d2d1..c855562 100644
--- a/chrome/browser/ui/android/device_lock/java/src/org/chromium/chrome/browser/ui/device_lock/DeviceLockMediator.java
+++ b/chrome/browser/ui/android/device_lock/java/src/org/chromium/chrome/browser/ui/device_lock/DeviceLockMediator.java
@@ -138,7 +138,7 @@
             if (authSucceeded) {
                 onSuccess.run();
             }
-        }, false);
+        });
     }
 
     private void maybeTriggerAccountReauthenticationChallenge(Runnable onSuccess) {
diff --git a/chrome/browser/ui/android/device_lock/junit/src/org/chromium/chrome/browser/ui/device_lock/DeviceLockMediatorUnitTest.java b/chrome/browser/ui/android/device_lock/junit/src/org/chromium/chrome/browser/ui/device_lock/DeviceLockMediatorUnitTest.java
index 8a07e26..44bdfc0 100644
--- a/chrome/browser/ui/android/device_lock/junit/src/org/chromium/chrome/browser/ui/device_lock/DeviceLockMediatorUnitTest.java
+++ b/chrome/browser/ui/android/device_lock/junit/src/org/chromium/chrome/browser/ui/device_lock/DeviceLockMediatorUnitTest.java
@@ -394,7 +394,7 @@
         if (deviceLockChallengeResult != null) {
             doAnswer(deviceLockChallengeResult)
                     .when(deviceLockAuthenticatorBridge)
-                    .reauthenticate(any(), eq(false));
+                    .reauthenticate(any());
         }
         if (accountReauthenticationResult != null) {
             doAnswer(accountReauthenticationResult)
@@ -410,7 +410,7 @@
         verify(mWindowAndroid, times(deviceLockCreationCalls))
                 .showIntent(any(Intent.class), any(WindowAndroid.IntentCallback.class), any());
         verify(mDeviceLockAuthenticatorBridge, times(deviceLockChallengesTriggered))
-                .reauthenticate(any(), eq(false));
+                .reauthenticate(any());
         verify(mAccountReauthenticationUtils, times(accountReauthenticationsTriggered))
                 .confirmCredentialsOrRecentAuthentication(any(), any(), any(), any(), anyLong());
         verify(mDelegate, times(onDeviceLockReadyCalls)).onDeviceLockReady();
diff --git a/chrome/browser/ui/ash/OWNERS b/chrome/browser/ui/ash/OWNERS
index 2ceee6a..d40a42f5 100644
--- a/chrome/browser/ui/ash/OWNERS
+++ b/chrome/browser/ui/ash/OWNERS
@@ -8,6 +8,7 @@
 per-file chrome_keyboard_ui*=yhanada@chromium.org
 per-file clipboard_history*=file://ash/clipboard/OWNERS
 per-file default_pinned_apps.*=tsergeant@chromium.org
+per-file *auth*=file://ash/login/OWNERS
 per-file *login*=file://ash/login/OWNERS
 per-file keyboard_*=yhanada@chromium.org
 per-file *wallpaper*=file://ash/wallpaper/OWNERS
diff --git a/chrome/browser/ui/autofill/chrome_autofill_client.cc b/chrome/browser/ui/autofill/chrome_autofill_client.cc
index d50e180..b2191f4 100644
--- a/chrome/browser/ui/autofill/chrome_autofill_client.cc
+++ b/chrome/browser/ui/autofill/chrome_autofill_client.cc
@@ -25,6 +25,7 @@
 #include "chrome/browser/autofill/merchant_promo_code_manager_factory.h"
 #include "chrome/browser/autofill/personal_data_manager_factory.h"
 #include "chrome/browser/autofill/strike_database_factory.h"
+#include "chrome/browser/autofill/ui/ui_util.h"
 #include "chrome/browser/browser_process.h"
 #include "chrome/browser/device_reauth/chrome_device_authenticator_factory.h"
 #include "chrome/browser/fast_checkout/fast_checkout_client_impl.h"
@@ -852,9 +853,17 @@
   EditAddressProfileDialogControllerImpl* controller =
       EditAddressProfileDialogControllerImpl::FromWebContents(web_contents());
   CHECK(controller);
+
+  absl::optional<AccountInfo> account = GetPrimaryAccountInfoFromBrowserContext(
+      web_contents()->GetBrowserContext());
+  CHECK(account);
   controller->OfferEdit(
-      profile, /*original_profile=*/nullptr,
-      /*footer_message=*/u"",
+      /*profile=*/profile,
+      /*original_profile=*/nullptr,
+      /*footer_message=*/
+      l10n_util::GetStringFUTF16(
+          IDS_AUTOFILL_UPDATE_PROMPT_ACCOUNT_ADDRESS_SOURCE_NOTICE,
+          base::ASCIIToUTF16(account->email)),
       /*on_user_decision_callback=*/std::move(on_user_decision_callback),
       /*is_migration_to_account=*/false);
 #else
diff --git a/chrome/browser/ui/autofill/save_update_address_profile_bubble_controller_impl.cc b/chrome/browser/ui/autofill/save_update_address_profile_bubble_controller_impl.cc
index 94f5332..5ec9a96 100644
--- a/chrome/browser/ui/autofill/save_update_address_profile_bubble_controller_impl.cc
+++ b/chrome/browser/ui/autofill/save_update_address_profile_bubble_controller_impl.cc
@@ -14,12 +14,12 @@
 #include "base/strings/utf_string_conversions.h"
 #include "base/types/optional_util.h"
 #include "chrome/browser/autofill/personal_data_manager_factory.h"
+#include "chrome/browser/autofill/ui/ui_util.h"
 #include "chrome/browser/browser_process.h"
 #include "chrome/browser/profiles/profile.h"
 #include "chrome/browser/signin/identity_manager_factory.h"
 #include "chrome/browser/ui/autofill/autofill_bubble_handler.h"
 #include "chrome/browser/ui/autofill/edit_address_profile_dialog_controller_impl.h"
-#include "chrome/browser/ui/autofill/ui_util.h"
 #include "chrome/browser/ui/browser.h"
 #include "chrome/browser/ui/browser_finder.h"
 #include "chrome/browser/ui/browser_window.h"
diff --git a/chrome/browser/ui/autofill/save_update_address_profile_bubble_controller_impl_unittest.cc b/chrome/browser/ui/autofill/save_update_address_profile_bubble_controller_impl_unittest.cc
index 096aacaa..0efaebf 100644
--- a/chrome/browser/ui/autofill/save_update_address_profile_bubble_controller_impl_unittest.cc
+++ b/chrome/browser/ui/autofill/save_update_address_profile_bubble_controller_impl_unittest.cc
@@ -10,8 +10,8 @@
 #include "base/memory/raw_ptr.h"
 #include "base/test/mock_callback.h"
 #include "base/test/scoped_feature_list.h"
+#include "chrome/browser/autofill/ui/ui_util.h"
 #include "chrome/browser/browser_process.h"
-#include "chrome/browser/ui/autofill/ui_util.h"
 #include "chrome/browser/ui/tabs/tab_enums.h"
 #include "chrome/test/base/browser_with_test_window_test.h"
 #include "components/autofill/core/browser/autofill_address_util.h"
diff --git a/chrome/browser/ui/page_info/chrome_page_info_ui_delegate.cc b/chrome/browser/ui/page_info/chrome_page_info_ui_delegate.cc
index 99626dfd..68da144 100644
--- a/chrome/browser/ui/page_info/chrome_page_info_ui_delegate.cc
+++ b/chrome/browser/ui/page_info/chrome_page_info_ui_delegate.cc
@@ -10,6 +10,7 @@
 #include "chrome/browser/page_info/about_this_site_tab_helper.h"
 #include "chrome/browser/page_info/page_info_features.h"
 #include "chrome/browser/permissions/permission_manager_factory.h"
+#include "chrome/browser/privacy_sandbox/tracking_protection_settings_factory.h"
 #include "chrome/browser/profiles/profile.h"
 #include "chrome/browser/ui/browser_finder.h"
 #include "chrome/browser/ui/chrome_pages.h"
@@ -22,6 +23,7 @@
 #include "components/permissions/permission_manager.h"
 #include "components/permissions/permissions_client.h"
 #include "components/prefs/pref_service.h"
+#include "components/privacy_sandbox/tracking_protection_settings.h"
 #include "components/strings/grit/components_strings.h"
 #include "content/public/browser/permission_controller.h"
 #include "content/public/browser/permission_result.h"
@@ -210,6 +212,11 @@
           permission, url::Origin::Create(site_url_));
 }
 
+bool ChromePageInfoUiDelegate::IsTrackingProtection3pcdEnabled() {
+  return TrackingProtectionSettingsFactory::GetForProfile(GetProfile())
+      ->IsTrackingProtection3pcdEnabled();
+}
+
 absl::optional<content::PermissionResult>
 ChromePageInfoUiDelegate::GetEmbargoResult(ContentSettingsType type) {
   return permissions::PermissionsClient::Get()
diff --git a/chrome/browser/ui/page_info/chrome_page_info_ui_delegate.h b/chrome/browser/ui/page_info/chrome_page_info_ui_delegate.h
index 7930c2d2..0de0a4a 100644
--- a/chrome/browser/ui/page_info/chrome_page_info_ui_delegate.h
+++ b/chrome/browser/ui/page_info/chrome_page_info_ui_delegate.h
@@ -74,6 +74,8 @@
   absl::optional<content::PermissionResult> GetEmbargoResult(
       ContentSettingsType type) override;
 
+  bool IsTrackingProtection3pcdEnabled() override;
+
  private:
   Profile* GetProfile() const;
 
diff --git a/chrome/browser/ui/ui_features.cc b/chrome/browser/ui/ui_features.cc
index 4d1659cf..e2b019d 100644
--- a/chrome/browser/ui/ui_features.cc
+++ b/chrome/browser/ui/ui_features.cc
@@ -73,10 +73,10 @@
 #endif
 
 // Enables displaying the submenu to open a link with a different profile if
-// there is at least one other active profile.
+// there is at least one other active profile. Fully rolled out on Desktop.
 BASE_FEATURE(kDisplayOpenLinkAsProfile,
              "DisplayOpenLinkAsProfile",
-             base::FEATURE_DISABLED_BY_DEFAULT);
+             base::FEATURE_ENABLED_BY_DEFAULT);
 
 // Enables showing the EV certificate details in the Page Info bubble.
 BASE_FEATURE(kEvDetailsInPageInfo,
diff --git a/chrome/browser/ui/views/autofill/autofill_bubble_handler_impl.cc b/chrome/browser/ui/views/autofill/autofill_bubble_handler_impl.cc
index 284ca5af..8824644f 100644
--- a/chrome/browser/ui/views/autofill/autofill_bubble_handler_impl.cc
+++ b/chrome/browser/ui/views/autofill/autofill_bubble_handler_impl.cc
@@ -5,7 +5,6 @@
 #include "chrome/browser/ui/views/autofill/autofill_bubble_handler_impl.h"
 
 #include "chrome/app/chrome_command_ids.h"
-#include "chrome/browser/autofill/personal_data_manager_factory.h"
 #include "chrome/browser/profiles/profile.h"
 #include "chrome/browser/ui/autofill/autofill_bubble_base.h"
 #include "chrome/browser/ui/autofill/payments/save_card_ui.h"
@@ -38,8 +37,6 @@
 #include "components/autofill/content/browser/content_autofill_driver_factory.h"
 #include "components/autofill/core/browser/autofill_client.h"
 #include "components/autofill/core/browser/payments/virtual_card_enrollment_manager.h"
-#include "components/autofill/core/browser/personal_data_manager.h"
-#include "components/autofill/core/browser/personal_data_manager_observer.h"
 #include "components/autofill/core/common/autofill_payments_features.h"
 #include "components/constrained_window/constrained_window_views.h"
 #include "ui/views/bubble/bubble_dialog_delegate_view.h"
@@ -50,10 +47,6 @@
     Browser* browser,
     ToolbarButtonProvider* toolbar_button_provider)
     : browser_(browser), toolbar_button_provider_(toolbar_button_provider) {
-  if (browser->profile()) {
-    personal_data_manager_observation_.Observe(
-        PersonalDataManagerFactory::GetForProfile(browser->profile()));
-  }
   if (toolbar_button_provider_->GetAvatarToolbarButton()) {
     avatar_toolbar_button_observation_.Observe(
         toolbar_button_provider_->GetAvatarToolbarButton());
@@ -328,9 +321,6 @@
 
 void AutofillBubbleHandlerImpl::OnPasswordSaved() {}
 
-void AutofillBubbleHandlerImpl::OnCreditCardSaved(
-    bool should_show_sign_in_promo_if_applicable) {}
-
 void AutofillBubbleHandlerImpl::OnAvatarHighlightAnimationFinished() {
   if (should_show_sign_in_promo_if_applicable_) {
     should_show_sign_in_promo_if_applicable_ = false;
diff --git a/chrome/browser/ui/views/autofill/autofill_bubble_handler_impl.h b/chrome/browser/ui/views/autofill/autofill_bubble_handler_impl.h
index 952de59..707d1321 100644
--- a/chrome/browser/ui/views/autofill/autofill_bubble_handler_impl.h
+++ b/chrome/browser/ui/views/autofill/autofill_bubble_handler_impl.h
@@ -9,8 +9,6 @@
 #include "base/scoped_observation.h"
 #include "chrome/browser/ui/autofill/autofill_bubble_handler.h"
 #include "chrome/browser/ui/views/profiles/avatar_toolbar_button.h"
-#include "components/autofill/core/browser/personal_data_manager.h"
-#include "components/autofill/core/browser/personal_data_manager_observer.h"
 
 class Browser;
 class ToolbarButtonProvider;
@@ -27,7 +25,6 @@
 enum class IbanBubbleType;
 
 class AutofillBubbleHandlerImpl : public AutofillBubbleHandler,
-                                  public PersonalDataManagerObserver,
                                   public AvatarToolbarButton::Observer {
  public:
   AutofillBubbleHandlerImpl(Browser* browser,
@@ -84,9 +81,6 @@
 
   void OnPasswordSaved() override;
 
-  // PersonalDataManagerObserver:
-  void OnCreditCardSaved(bool should_show_sign_in_promo_if_applicable) override;
-
   // AvatarToolbarButton::Observer:
   void OnAvatarHighlightAnimationFinished() override;
 
@@ -102,8 +96,6 @@
   // button after the highlight animation finishes.
   bool should_show_sign_in_promo_if_applicable_ = false;
 
-  base::ScopedObservation<PersonalDataManager, PersonalDataManagerObserver>
-      personal_data_manager_observation_{this};
   base::ScopedObservation<AvatarToolbarButton, AvatarToolbarButton::Observer>
       avatar_toolbar_button_observation_{this};
 };
diff --git a/chrome/browser/ui/views/frame/browser_desktop_window_tree_host_lacros.cc b/chrome/browser/ui/views/frame/browser_desktop_window_tree_host_lacros.cc
index de94871..441170b6 100644
--- a/chrome/browser/ui/views/frame/browser_desktop_window_tree_host_lacros.cc
+++ b/chrome/browser/ui/views/frame/browser_desktop_window_tree_host_lacros.cc
@@ -242,6 +242,18 @@
   browser_view_->FullscreenStateChanged();
 }
 
+void BrowserDesktopWindowTreeHostLacros::OnOverviewModeChanged(
+    bool in_overview) {
+  DesktopWindowTreeHostLacros::OnOverviewModeChanged(in_overview);
+
+  // Window corner radius depends on weather the window is in overview mode or
+  // not. Once the overview property has been updated, the browser window
+  // corners needs to be updated.
+  // See `chromeos::GetFrameCornerRadius()` for more details.
+  // TODO(b/301501363): Rename to UpdateWindowHints.
+  UpdateFrameHints();
+}
+
 ////////////////////////////////////////////////////////////////////////////////
 // BrowserDesktopWindowTreeHostLacros,
 //     DesktopWindowTreeHostPlatform implementation:
diff --git a/chrome/browser/ui/views/frame/browser_desktop_window_tree_host_lacros.h b/chrome/browser/ui/views/frame/browser_desktop_window_tree_host_lacros.h
index 41f5465..7c2b9892 100644
--- a/chrome/browser/ui/views/frame/browser_desktop_window_tree_host_lacros.h
+++ b/chrome/browser/ui/views/frame/browser_desktop_window_tree_host_lacros.h
@@ -61,6 +61,7 @@
                             ui::PlatformWindowState new_state) override;
   void OnImmersiveModeChanged(bool enabled) override;
   void OnFullscreenModeChanged() override;
+  void OnOverviewModeChanged(bool in_overview) override;
 
   const raw_ptr<BrowserView> browser_view_;
   raw_ptr<DesktopBrowserFrameLacros> native_frame_ = nullptr;
diff --git a/chrome/browser/ui/views/frame/browser_view.cc b/chrome/browser/ui/views/frame/browser_view.cc
index 812cd14c..2d51755 100644
--- a/chrome/browser/ui/views/frame/browser_view.cc
+++ b/chrome/browser/ui/views/frame/browser_view.cc
@@ -207,6 +207,7 @@
 #include "components/services/screen_ai/buildflags/buildflags.h"
 #include "components/sessions/core/tab_restore_service.h"
 #include "components/startup_metric_utils/browser/startup_metric_utils.h"
+#include "components/sync/service/sync_service.h"
 #include "components/translate/core/browser/language_state.h"
 #include "components/translate/core/browser/translate_manager.h"
 #include "components/user_education/common/feature_promo_handle.h"
diff --git a/chrome/browser/ui/views/location_bar/cookie_controls/cookie_controls_content_view.cc b/chrome/browser/ui/views/location_bar/cookie_controls/cookie_controls_content_view.cc
index a56057e..4138896 100644
--- a/chrome/browser/ui/views/location_bar/cookie_controls/cookie_controls_content_view.cc
+++ b/chrome/browser/ui/views/location_bar/cookie_controls/cookie_controls_content_view.cc
@@ -10,6 +10,7 @@
 #include "chrome/browser/ui/views/controls/rich_controls_container_view.h"
 #include "chrome/browser/ui/views/controls/rich_hover_button.h"
 #include "chrome/grit/generated_resources.h"
+#include "components/content_settings/core/common/features.h"
 #include "components/vector_icons/vector_icons.h"
 #include "ui/base/l10n/l10n_util.h"
 #include "ui/base/ui_base_features.h"
@@ -144,7 +145,12 @@
 }
 
 void CookieControlsContentView::SetFeedbackSectionVisibility(bool visible) {
-  feedback_section_->SetVisible(visible);
+  if (visible && base::FeatureList::IsEnabled(
+                     content_settings::features::kUserBypassFeedback)) {
+    feedback_section_->SetVisible(true);
+  } else {
+    feedback_section_->SetVisible(false);
+  }
   PreferredSizeChanged();
 }
 
diff --git a/chrome/browser/ui/views/location_bar/cookie_controls/cookie_controls_interactive_uitest.cc b/chrome/browser/ui/views/location_bar/cookie_controls/cookie_controls_interactive_uitest.cc
index 86d06b1..4273d18 100644
--- a/chrome/browser/ui/views/location_bar/cookie_controls/cookie_controls_interactive_uitest.cc
+++ b/chrome/browser/ui/views/location_bar/cookie_controls/cookie_controls_interactive_uitest.cc
@@ -54,7 +54,8 @@
   ~CookieControlsInteractiveUiTest() override = default;
 
   void SetUp() override {
-    iph_feature_list_.InitAndEnableFeatures(EnabledFeatures());
+    iph_feature_list_.InitAndEnableFeatures(EnabledFeatures(),
+                                            DisabledFeatures());
     https_server()->SetSSLConfig(net::EmbeddedTestServer::CERT_TEST_NAMES);
     https_server()->ServeFilesFromSourceDirectory(GetChromeTestDataDir());
 
@@ -80,6 +81,8 @@
     return {content_settings::features::kUserBypassUI};
   }
 
+  virtual std::vector<base::test::FeatureRef> DisabledFeatures() { return {}; }
+
   auto CheckIcon(ElementSpecifier view,
                  const gfx::VectorIcon& icon_pre_2023_refresh,
                  const gfx::VectorIcon& icon_post_2023_refresh) {
@@ -139,6 +142,15 @@
                   views::kEyeCrossedRefreshIcon));
   }
 
+  auto CheckFeedbackButtonVisible(bool visible) {
+    if (visible) {
+      return Steps(EnsurePresent(CookieControlsContentView::kFeedbackButton));
+    } else {
+      return Steps(
+          EnsureNotPresent(CookieControlsContentView::kFeedbackButton));
+    }
+  }
+
   int ExceptionDurationInDays() {
     return content_settings::features::kUserBypassUIExceptionExpiration.Get()
         .InDays();
@@ -189,6 +201,18 @@
   std::unique_ptr<net::EmbeddedTestServer> https_server_;
 };
 
+class CookieControlsInteractiveUiNoFeedbackTest
+    : public CookieControlsInteractiveUiTest {
+ public:
+  CookieControlsInteractiveUiNoFeedbackTest() = default;
+  ~CookieControlsInteractiveUiNoFeedbackTest() override = default;
+
+ protected:
+  std::vector<base::test::FeatureRef> DisabledFeatures() override {
+    return {content_settings::features::kUserBypassFeedback};
+  }
+};
+
 IN_PROC_BROWSER_TEST_F(CookieControlsInteractiveUiTest, BubbleOpens) {
   BlockThirdPartyCookies();
   RunTestSequenceInContext(
@@ -196,7 +220,8 @@
       NavigateWebContents(kWebContentsElementId, third_party_cookie_page_url()),
       PressButton(kCookieControlsIconElementId),
       InAnyContext(
-          WaitForShow(CookieControlsBubbleView::kCookieControlsBubble)));
+          WaitForShow(CookieControlsBubbleView::kCookieControlsBubble)),
+      CheckFeedbackButtonVisible(false));
 }
 
 IN_PROC_BROWSER_TEST_F(CookieControlsInteractiveUiTest, CreateException) {
@@ -212,7 +237,24 @@
       CheckViewProperty(CookieControlsContentView::kToggleButton,
                         &views::ToggleButton::GetIsOn, false),
       PressButton(CookieControlsContentView::kToggleButton),
-      CheckStateForTemporaryException());
+      CheckFeedbackButtonVisible(true), CheckStateForTemporaryException());
+}
+
+IN_PROC_BROWSER_TEST_F(CookieControlsInteractiveUiNoFeedbackTest,
+                       CreateExceptionFeedbackDisabled) {
+  // Open the bubble while 3PC are blocked, re-enable them for the site, and
+  // confirm the appropriate exception is created.
+  BlockThirdPartyCookies();
+  RunTestSequenceInContext(
+      context(), InstrumentTab(kWebContentsElementId),
+      NavigateWebContents(kWebContentsElementId, third_party_cookie_page_url()),
+      PressButton(kCookieControlsIconElementId),
+      InAnyContext(WaitForShow(CookieControlsContentView::kToggleButton)),
+      CheckStateForNoException(),
+      CheckViewProperty(CookieControlsContentView::kToggleButton,
+                        &views::ToggleButton::GetIsOn, false),
+      PressButton(CookieControlsContentView::kToggleButton),
+      CheckFeedbackButtonVisible(false), CheckStateForTemporaryException());
 }
 
 IN_PROC_BROWSER_TEST_F(CookieControlsInteractiveUiTest, RemoveException) {
@@ -228,6 +270,7 @@
       InAnyContext(WaitForShow(CookieControlsContentView::kToggleButton)),
       CheckStateForTemporaryException(),
       PressButton(CookieControlsContentView::kToggleButton),
+      CheckFeedbackButtonVisible(false),
       CheckViewProperty(kCookieControlsIconElementId,
                         &CookieControlsIconView::is_animating_label, false),
       CheckStateForNoException());
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 0fc346e..a43e1e1c 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
@@ -30,6 +30,7 @@
 #include "components/page_info/page_info_ui_delegate.h"
 #include "components/permissions/permission_util.h"
 #include "components/privacy_sandbox/privacy_sandbox_features.h"
+#include "components/privacy_sandbox/tracking_protection_settings.h"
 #include "components/strings/grit/components_branded_strings.h"
 #include "components/strings/grit/components_strings.h"
 #include "content/public/browser/browser_task_traits.h"
@@ -157,6 +158,8 @@
   if (cookie_button_ != nullptr) {
     return;
   }
+  bool is_3pcd_enabled = ui_delegate_->IsTrackingProtection3pcdEnabled();
+
   // Get the icon.
   PageInfo::PermissionInfo info;
   info.type = ContentSettingsType::COOKIES;
@@ -171,7 +174,11 @@
       site_settings_view_->AddChildView(std::make_unique<RichHoverButton>(
           base::BindRepeating(&PageInfoNavigationHandler::OpenCookiesPage,
                               base::Unretained(navigation_handler_)),
-          icon, l10n_util::GetStringUTF16(IDS_PAGE_INFO_COOKIES_HEADER),
+          icon,
+          is_3pcd_enabled
+              ? l10n_util::GetStringUTF16(
+                    IDS_PAGE_INFO_TRACKING_PROTECTION_HEADER)
+              : l10n_util::GetStringUTF16(IDS_PAGE_INFO_COOKIES_HEADER),
           std::u16string(), tooltip, std::u16string(),
           PageInfoViewFactory::GetOpenSubpageIcon()));
   cookie_button_->SetID(
diff --git a/chrome/browser/ui/views/side_panel/performance_controls/OWNERS b/chrome/browser/ui/views/side_panel/performance_controls/OWNERS
new file mode 100644
index 0000000..7c22fc5
--- /dev/null
+++ b/chrome/browser/ui/views/side_panel/performance_controls/OWNERS
@@ -0,0 +1 @@
+file://chrome/browser/ui/performance_controls/OWNERS
\ No newline at end of file
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 2654ef22..aee762ae 100644
--- a/chrome/browser/ui/webui/ash/login/gaia_screen_handler.cc
+++ b/chrome/browser/ui/webui/ash/login/gaia_screen_handler.cc
@@ -575,12 +575,6 @@
   builder->Add("guestSignin", IDS_BROWSE_WITHOUT_SIGNING_IN_HTML);
   builder->Add("backButton", IDS_ACCNAME_BACK);
   builder->Add("closeButton", IDS_CLOSE);
-  builder->Add("allowlistErrorConsumer", IDS_LOGIN_ERROR_ALLOWLIST);
-  builder->Add("allowlistErrorEnterprise",
-               IDS_ENTERPRISE_LOGIN_ERROR_ALLOWLIST);
-  builder->Add("allowlistErrorEnterpriseAndFamilyLink",
-               IDS_ENTERPRISE_AND_FAMILY_LINK_LOGIN_ERROR_ALLOWLIST);
-  builder->Add("tryAgainButton", IDS_ALLOWLIST_ERROR_TRY_AGAIN_BUTTON);
   builder->Add("learnMoreButton", IDS_LEARN_MORE);
   builder->Add("gaiaLoading", IDS_LOGIN_GAIA_LOADING_MESSAGE);
 
@@ -642,7 +636,7 @@
   AddCallback("launchSAMLPublicSession",
               &GaiaScreenHandler::HandleLaunchSAMLPublicSession);
   AddCallback("completeAuthentication",
-              &GaiaScreenHandler::HandleCompleteAuthentication);
+              &GaiaScreenHandler::HandleCompleteAuthenticationEvent);
   AddCallback("usingSAMLAPI", &GaiaScreenHandler::HandleUsingSAMLAPI);
   AddCallback("recordSAMLProvider",
               &GaiaScreenHandler::HandleRecordSAMLProvider);
@@ -711,7 +705,7 @@
   UpdateState(error_reason);
 }
 
-void GaiaScreenHandler::HandleCompleteAuthentication(
+void GaiaScreenHandler::HandleCompleteAuthenticationEvent(
     const std::string& gaia_id,
     const std::string& email,
     const std::string& password_value,
@@ -721,45 +715,103 @@
     bool services_provided,
     const base::Value::Dict& password_attributes,
     const base::Value::Dict& sync_trusted_vault_keys) {
+  if (gaia_id.empty()) {
+    LOG(WARNING) << "GaiaId is empty!";
+  }
+  if (email.empty()) {
+    LOG(WARNING) << "The user email is empty!";
+  }
+
+  // Prepare the data delivered by Gaia
+  ash::login::OnlineSigninArtifacts signin_artifacts;
+  signin_artifacts.gaia_id = gaia_id;
+  signin_artifacts.email = email;
+  signin_artifacts.using_saml = using_saml;
+
+  // Optional fields
+  if (!password_value.empty() ||
+      ash::switches::AreEmptyPasswordsAllowedForForTesting()) {
+    signin_artifacts.password = password_value;
+  }
+  if (!scraped_saml_passwords_value.empty()) {
+    signin_artifacts.scraped_saml_passwords =
+        ::login::ConvertToStringList(scraped_saml_passwords_value);
+  }
+  if (!services_list.empty()) {
+    signin_artifacts.services_list =
+        ::login::ConvertToStringList(services_list);
+  }
+  if (!password_attributes.empty()) {
+    signin_artifacts.saml_password_attributes =
+        SamlPasswordAttributes::FromJs(password_attributes);
+  }
+  signin_artifacts.sync_trusted_vault_keys =
+      GetSyncTrustedVaultKeysForUserContext(sync_trusted_vault_keys, gaia_id);
+
+  // Clear collected passwords if a client certificate was used.
+  if (IsSamlUserPasswordless()) {
+    // In the passwordless case, the user data will be protected by non password
+    // based mechanisms. Clear anything that got collected into passwords.
+    signin_artifacts.scraped_saml_passwords.reset();
+    signin_artifacts.password.reset();
+  }
+
+  // Retrieve cookies and continue with authentication
+  login::SigninPartitionManager* signin_partition_manager =
+      login::SigninPartitionManager::Factory::GetForBrowserContext(
+          Profile::FromWebUI(web_ui()));
+  gaia_cookie_retriever_ = std::make_unique<GaiaCookieRetriever>(
+      signin_partition_name_, signin_partition_manager,
+      base::BindOnce(&GaiaScreenHandler::OnCookieWaitTimeout,
+                     weak_factory_.GetWeakPtr()));
+
+  gaia_cookie_retriever_->RetrieveCookies(
+      base::BindOnce(&GaiaScreenHandler::CompleteAuthWithCookies,
+                     weak_factory_.GetWeakPtr(), std::move(signin_artifacts)));
+}
+
+void GaiaScreenHandler::CompleteAuthWithCookies(
+    ash::login::OnlineSigninArtifacts signin_artifacts,
+    login::GaiaCookiesData gaia_cookies) {
+  // Set cookies and finish.
+  signin_artifacts.cookies = gaia_cookies;
+  CompleteAuthentication(std::move(signin_artifacts));
+}
+
+void GaiaScreenHandler::CompleteAuthentication(
+    ash::login::OnlineSigninArtifacts signin_artifacts) {
   if (!LoginDisplayHost::default_host()) {
     return;
   }
 
-  DCHECK(!email.empty());
-  DCHECK(!gaia_id.empty());
-
-  if (!using_saml) {
+  if (!signin_artifacts.using_saml) {
     base::UmaHistogramEnumeration("OOBE.GaiaScreen.SuccessLoginRequests",
                                   login_request_variant_);
     // Report whether the password has characters ignored by Gaia
     // (leading/trailing whitespaces).
-    base::UmaHistogramBoolean("OOBE.GaiaScreen.PasswordIgnoredChars",
-                              HasLeadingOrTrailingWhitespaces(password_value));
-  }
-  auto scraped_saml_passwords =
-      ::login::ConvertToStringList(scraped_saml_passwords_value);
-  const auto services = ::login::ConvertToStringList(services_list);
-  auto password = password_value;
-
-  if (IsSamlUserPasswordless()) {
-    // In the passwordless case, the user data will be protected by non password
-    // based mechanisms. Clear anything that got collected into passwords.
-    scraped_saml_passwords.clear();
-    password.clear();
+    base::UmaHistogramBoolean(
+        "OOBE.GaiaScreen.PasswordIgnoredChars",
+        HasLeadingOrTrailingWhitespaces(
+            signin_artifacts.password.value_or(std::string())));
   }
 
-  if (using_saml && !using_saml_api_ && !IsSamlUserPasswordless()) {
-    RecordScrapedPasswordCount(scraped_saml_passwords.size());
+  if (signin_artifacts.using_saml && !using_saml_api_ &&
+      !IsSamlUserPasswordless()) {
+    RecordScrapedPasswordCount(
+        signin_artifacts.scraped_saml_passwords.has_value()
+            ? signin_artifacts.scraped_saml_passwords.value().size()
+            : 0);
   }
 
-  const AccountId account_id =
-      login::GetAccountId(email, gaia_id, AccountType::GOOGLE);
+  const AccountId account_id = login::GetAccountId(
+      signin_artifacts.email, signin_artifacts.gaia_id, AccountType::GOOGLE);
   // Execute delayed allowlist check that is based on user type. If Gaia done
   // times out and doesn't provide us with services list try to use a saved
   // UserType.
   const user_manager::UserType user_type =
-      services_provided
-          ? login::GetUsertypeFromServicesString(services)
+      signin_artifacts.services_list.has_value()
+          ? login::GetUsertypeFromServicesString(
+                signin_artifacts.services_list.value())
           : user_manager::UserManager::Get()->GetUserType(account_id);
   if (ShouldCheckUserTypeBeforeAllowing() &&
       !LoginDisplayHost::default_host()->IsUserAllowlisted(account_id,
@@ -771,7 +823,7 @@
   // Record amount of time from the moment screen was shown till
   // completeAuthentication signal come. Only for no SAML flow and only during
   // first run in OOBE.
-  if (elapsed_timer_ && !using_saml &&
+  if (elapsed_timer_ && !signin_artifacts.using_saml &&
       session_manager::SessionManager::Get()->session_state() ==
           session_manager::SessionState::OOBE) {
     base::UmaHistogramMediumTimes("OOBE.GaiaLoginTime",
@@ -779,16 +831,20 @@
     elapsed_timer_.reset();
   }
 
-  const std::string sanitized_email = gaia::SanitizeEmail(email);
+  // ------ Set user's email on the UI
+  // ---
+  const std::string sanitized_email =
+      gaia::SanitizeEmail(signin_artifacts.email);
   LoginDisplayHost::default_host()->SetDisplayEmail(sanitized_email);
 
   auto user_context = std::make_unique<UserContext>();
   SigninError error;
   if (!login::BuildUserContextForGaiaSignIn(
-          user_type, account_id, using_saml, using_saml_api_, password,
-          SamlPasswordAttributes::FromJs(password_attributes),
-          GetSyncTrustedVaultKeysForUserContext(sync_trusted_vault_keys,
-                                                gaia_id),
+          user_type, account_id, signin_artifacts.using_saml, using_saml_api_,
+          signin_artifacts.password.value_or(std::string()),
+          signin_artifacts.saml_password_attributes.value_or(
+              SamlPasswordAttributes()),
+          signin_artifacts.sync_trusted_vault_keys,
           *extension_provided_client_cert_usage_observer_, user_context.get(),
           &error)) {
     LoginDisplayHost::default_host()->GetSigninUI()->ShowSigninError(
@@ -796,26 +852,20 @@
     return;
   }
 
-  // Create GaiaCookiesRetriever
-  login::SigninPartitionManager* signin_partition_manager =
-      login::SigninPartitionManager::Factory::GetForBrowserContext(
-          Profile::FromWebUI(web_ui()));
-  gaia_cookie_retriever_ = std::make_unique<GaiaCookieRetriever>(
-      signin_partition_name_, signin_partition_manager,
-      base::BindOnce(&GaiaScreenHandler::OnCookieWaitTimeout,
-                     weak_factory_.GetWeakPtr()));
+  // Transfer the received cookies into the UserContext
+  signin_artifacts.cookies->TransferCookiesToUserContext(*user_context);
 
-  // Create the callback that will be invoked once cookies are received.
+  // Finish the authentication
   const bool needs_saml_confirm_password =
-      password.empty() && !IsSamlUserPasswordless();
-  GaiaCookieRetriever::OnCookieRetrievedCallback finish_auth_callback =
-      base::BindOnce(&GaiaScreenHandler::CompleteAuthenticationWithCookies,
-                     weak_factory_.GetWeakPtr(), needs_saml_confirm_password,
-                     std::move(scraped_saml_passwords),
-                     std::move(user_context));
-
-  // Request cookies and proceed with authentication.
-  gaia_cookie_retriever_->RetrieveCookies(std::move(finish_auth_callback));
+      !signin_artifacts.password.has_value() && !IsSamlUserPasswordless();
+  if (needs_saml_confirm_password) {
+    auto scraped_saml_passwords =
+        signin_artifacts.scraped_saml_passwords.value_or(::login::StringList{});
+    CHECK_NE(scraped_saml_passwords.size(), 1u);
+    SAMLConfirmPassword(scraped_saml_passwords, std::move(user_context));
+  } else {
+    LoginDisplayHost::default_host()->CompleteLogin(*user_context);
+  }
 
   populated_account_id_.clear();
 
@@ -829,24 +879,6 @@
   }
 }
 
-void GaiaScreenHandler::CompleteAuthenticationWithCookies(
-    bool needs_saml_confirm_password,
-    ::login::StringList scraped_saml_passwords,
-    std::unique_ptr<UserContext> user_context,
-    login::GaiaCookiesData gaia_cookies) {
-  // Transfer the received cookies into the UserContext
-  gaia_cookies.TransferCookiesToUserContext(*user_context);
-
-  // Finish the authentication
-  if (needs_saml_confirm_password) {
-    CHECK_NE(scraped_saml_passwords.size(), 1u);
-    SAMLConfirmPassword(std::move(scraped_saml_passwords),
-                        std::move(user_context));
-  } else {
-    LoginDisplayHost::default_host()->CompleteLogin(*user_context);
-  }
-}
-
 void GaiaScreenHandler::OnCookieWaitTimeout() {
   LoadAuthExtension(true /* force */);
   LoginDisplayHost::default_host()->GetSigninUI()->ShowSigninError(
@@ -1310,17 +1342,9 @@
 }
 
 void GaiaScreenHandler::ShowAllowlistCheckFailedError() {
-  base::Value::Dict params;
-  params.Set("enterpriseManaged", g_browser_process->platform_part()
-                                      ->browser_policy_connector_ash()
-                                      ->IsDeviceEnterpriseManaged());
-
-  bool family_link_allowed = false;
-  CrosSettings::Get()->GetBoolean(kAccountsPrefFamilyLinkAccountsAllowed,
-                                  &family_link_allowed);
-  params.Set("familyLinkAllowed", family_link_allowed);
-
-  CallExternalAPI("showAllowlistCheckFailedError", std::move(params));
+  // TODO(b/292242156) - Replace with exit code flow.
+  Reset();
+  LoginDisplayHost::default_host()->ShowAllowlistCheckFailedError();
 }
 
 void GaiaScreenHandler::ReloadGaiaAuthenticator() {
diff --git a/chrome/browser/ui/webui/ash/login/gaia_screen_handler.h b/chrome/browser/ui/webui/ash/login/gaia_screen_handler.h
index 33a3910..72484e77 100644
--- a/chrome/browser/ui/webui/ash/login/gaia_screen_handler.h
+++ b/chrome/browser/ui/webui/ash/login/gaia_screen_handler.h
@@ -85,8 +85,6 @@
   // Shows Gaia screen.
   virtual void Show() = 0;
   virtual void Hide() = 0;
-  // Show error UI at the end of Gaia flow when user is not allowlisted.
-  virtual void ShowAllowlistCheckFailedError() = 0;
   // Reloads authenticator.
   virtual void ReloadGaiaAuthenticator() = 0;
   // Sets reauth request token in the URL, in order to get reauth proof token
@@ -155,7 +153,6 @@
   void LoadGaiaAsync(const AccountId& account_id) override;
   void Show() override;
   void Hide() override;
-  void ShowAllowlistCheckFailedError() override;
   void ReloadGaiaAuthenticator() override;
   void SetReauthRequestToken(const std::string& reauth_request_token) override;
   void ShowEnrollmentNudge(const std::string& email_domain) override;
@@ -212,6 +209,9 @@
  private:
   void LoadGaia(const login::GaiaContext& context);
 
+  // Resets the internal state and invokes the UserAllowListCheckScreen
+  void ShowAllowlistCheckFailedError();
+
   // Callback that loads GAIA after version and stat consent information has
   // been retrieved.
   void LoadGaiaWithPartition(const login::GaiaContext& context,
@@ -243,7 +243,10 @@
 
   // WebUI message handlers.
   void HandleWebviewLoadAborted(int error_code);
-  void HandleCompleteAuthentication(
+
+  // Handles Authenticator's 'completeAuthentication' event and gathers all the
+  // data into `OnlineSigninArtifacts` and fetches cookies.
+  void HandleCompleteAuthenticationEvent(
       const std::string& gaia_id,
       const std::string& email,
       const std::string& password,
@@ -254,11 +257,15 @@
       const base::Value::Dict& password_attributes,
       const base::Value::Dict& sync_trusted_vault_keys);
 
-  void CompleteAuthenticationWithCookies(
-      bool needs_saml_confirm_password,
-      ::login::StringList scraped_saml_passwords,
-      std::unique_ptr<UserContext> user_context,
-      login::GaiaCookiesData gaia_cookies);
+  // Intermediate step when cookies are received. The cookies are added into
+  // their final location within `OnlineSigninArtifacts` and then passed to
+  // `CompleteAuthentication`.
+  void CompleteAuthWithCookies(ash::login::OnlineSigninArtifacts artifacts,
+                               login::GaiaCookiesData gaia_cookies);
+
+  // Final step of the `completeAuthentication` flow.
+  // TODO(b/292242156) - Move to OnlineAuthenticationScreen
+  void CompleteAuthentication(ash::login::OnlineSigninArtifacts artifacts);
 
   void HandleCompleteLogin(const std::string& gaia_id,
                            const std::string& typed_email,
diff --git a/chrome/browser/ui/webui/ash/login/online_login_utils.cc b/chrome/browser/ui/webui/ash/login/online_login_utils.cc
index 97b416f..aa2b5ebc 100644
--- a/chrome/browser/ui/webui/ash/login/online_login_utils.cc
+++ b/chrome/browser/ui/webui/ash/login/online_login_utils.cc
@@ -50,6 +50,20 @@
   }
 }
 
+OnlineSigninArtifacts::~OnlineSigninArtifacts() = default;
+OnlineSigninArtifacts::OnlineSigninArtifacts() = default;
+
+OnlineSigninArtifacts::OnlineSigninArtifacts(OnlineSigninArtifacts&& original)
+    : gaia_id(original.gaia_id),
+      email(original.email),
+      using_saml(original.using_saml),
+      password(original.password),
+      scraped_saml_passwords(std::move(original.scraped_saml_passwords)),
+      services_list(std::move(original.services_list)),
+      saml_password_attributes(std::move(original.saml_password_attributes)),
+      sync_trusted_vault_keys(std::move(original.sync_trusted_vault_keys)),
+      cookies(original.cookies) {}
+
 bool ExtractSamlPasswordAttributesEnabled() {
   return base::FeatureList::IsEnabled(::features::kInSessionPasswordChange);
 }
diff --git a/chrome/browser/ui/webui/ash/login/online_login_utils.h b/chrome/browser/ui/webui/ash/login/online_login_utils.h
index 7777444..e6ef71cf 100644
--- a/chrome/browser/ui/webui/ash/login/online_login_utils.h
+++ b/chrome/browser/ui/webui/ash/login/online_login_utils.h
@@ -14,6 +14,7 @@
 #include "chrome/browser/ash/login/ui/login_display_host.h"
 #include "chrome/browser/ash/login/ui/signin_ui.h"
 #include "chrome/browser/extensions/api/cookies/cookies_api.h"
+#include "chromeos/ash/components/login/auth/public/saml_password_attributes.h"
 #include "components/account_id/account_id.h"
 #include "components/login/base_screen_handler_utils.h"
 #include "components/user_manager/user_manager.h"
@@ -65,6 +66,26 @@
   absl::optional<std::string> rapt = absl::nullopt;
 };
 
+// Artifacts that are generated by Gaia after successful online signin. Created
+// when the authenticator fires the 'HandleCompleteAuthentication' event with
+// data from the frontend and some extra fields provided by the Gaia screen.
+struct OnlineSigninArtifacts {
+  OnlineSigninArtifacts();
+  OnlineSigninArtifacts(OnlineSigninArtifacts&& original);
+  ~OnlineSigninArtifacts();
+
+  std::string gaia_id;
+  std::string email;
+  bool using_saml;
+
+  absl::optional<std::string> password;
+  absl::optional<::login::StringList> scraped_saml_passwords;
+  absl::optional<::login::StringList> services_list;
+  absl::optional<SamlPasswordAttributes> saml_password_attributes;
+  absl::optional<SyncTrustedVaultKeys> sync_trusted_vault_keys;
+  absl::optional<GaiaCookiesData> cookies;
+};
+
 using LoadGaiaWithPartition = base::OnceCallback<void(const std::string&)>;
 
 using OnSetCookieForLoadGaiaWithPartition =
diff --git a/chrome/browser/ui/webui/ash/login/oobe_ui.cc b/chrome/browser/ui/webui/ash/login/oobe_ui.cc
index 9d884cae..2f31c76b 100644
--- a/chrome/browser/ui/webui/ash/login/oobe_ui.cc
+++ b/chrome/browser/ui/webui/ash/login/oobe_ui.cc
@@ -114,6 +114,7 @@
 #include "chrome/browser/ui/webui/ash/login/tpm_error_screen_handler.h"
 #include "chrome/browser/ui/webui/ash/login/update_required_screen_handler.h"
 #include "chrome/browser/ui/webui/ash/login/update_screen_handler.h"
+#include "chrome/browser/ui/webui/ash/login/user_allowlist_check_screen_handler.h"
 #include "chrome/browser/ui/webui/ash/login/user_creation_screen_handler.h"
 #include "chrome/browser/ui/webui/ash/login/welcome_screen_handler.h"
 #include "chrome/browser/ui/webui/ash/login/wrong_hwid_screen_handler.h"
@@ -482,6 +483,8 @@
   AddScreenHandler(std::make_unique<GaiaScreenHandler>(network_state_informer_,
                                                        error_screen));
 
+  AddScreenHandler(std::make_unique<UserAllowlistCheckScreenHandler>());
+
   AddScreenHandler(std::make_unique<SamlConfirmPasswordHandler>());
 
   AddScreenHandler(std::make_unique<SignInFatalErrorScreenHandler>());
diff --git a/chrome/browser/ui/webui/ash/login/user_allowlist_check_screen_handler.cc b/chrome/browser/ui/webui/ash/login/user_allowlist_check_screen_handler.cc
new file mode 100644
index 0000000..19ad2f18
--- /dev/null
+++ b/chrome/browser/ui/webui/ash/login/user_allowlist_check_screen_handler.cc
@@ -0,0 +1,42 @@
+// Copyright 2023 The Chromium Authors
+// Use of this source code is governed by a BSD-style license that can be
+// found in the LICENSE file.
+
+#include "chrome/browser/ui/webui/ash/login/user_allowlist_check_screen_handler.h"
+
+#include "base/logging.h"
+#include "chrome/browser/ash/login/oobe_screen.h"
+#include "chrome/browser/ash/login/screens/user_allowlist_check_screen.h"
+#include "chrome/grit/generated_resources.h"
+#include "components/login/localized_values_builder.h"
+
+namespace ash {
+
+UserAllowlistCheckScreenHandler::UserAllowlistCheckScreenHandler()
+    : BaseScreenHandler(kScreenId) {}
+
+UserAllowlistCheckScreenHandler::~UserAllowlistCheckScreenHandler() = default;
+
+void UserAllowlistCheckScreenHandler::DeclareLocalizedValues(
+    ::login::LocalizedValuesBuilder* builder) {
+  builder->Add("allowlistErrorEnterpriseAndFamilyLink",
+               IDS_ENTERPRISE_AND_FAMILY_LINK_LOGIN_ERROR_ALLOWLIST);
+  builder->Add("allowlistErrorEnterprise",
+               IDS_ENTERPRISE_LOGIN_ERROR_ALLOWLIST);
+  builder->Add("allowlistErrorConsumer", IDS_LOGIN_ERROR_ALLOWLIST);
+  builder->Add("tryAgainButton", IDS_ALLOWLIST_ERROR_TRY_AGAIN_BUTTON);
+}
+
+void UserAllowlistCheckScreenHandler::DeclareJSCallbacks() {}
+
+void UserAllowlistCheckScreenHandler::Show(bool enterprise_managed,
+                                           bool family_link_allowed) {
+  base::Value::Dict params;
+  params.Set("enterpriseManaged", enterprise_managed);
+  params.Set("familyLinkAllowed", family_link_allowed);
+  ShowInWebUI(std::move(params));
+}
+
+void UserAllowlistCheckScreenHandler::Hide() {}
+
+}  // namespace ash
diff --git a/chrome/browser/ui/webui/ash/login/user_allowlist_check_screen_handler.h b/chrome/browser/ui/webui/ash/login/user_allowlist_check_screen_handler.h
new file mode 100644
index 0000000..877725c14
--- /dev/null
+++ b/chrome/browser/ui/webui/ash/login/user_allowlist_check_screen_handler.h
@@ -0,0 +1,52 @@
+// 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_WEBUI_ASH_LOGIN_USER_ALLOWLIST_CHECK_SCREEN_HANDLER_H_
+#define CHROME_BROWSER_UI_WEBUI_ASH_LOGIN_USER_ALLOWLIST_CHECK_SCREEN_HANDLER_H_
+
+#include "base/memory/weak_ptr.h"
+#include "chrome/browser/ui/webui/ash/login/base_screen_handler.h"
+
+namespace ash {
+
+class UserAllowlistCheckScreenView
+    : public base::SupportsWeakPtr<UserAllowlistCheckScreenView> {
+ public:
+  inline constexpr static StaticOobeScreenId kScreenId{
+      "user-allowlist-check-screen", "UserAllowlistCheckScreen"};
+
+  virtual void Show(bool enterprise_managed, bool family_link_allowed) = 0;
+  virtual void Hide() = 0;
+};
+
+// A class that handles WebUI hooks in Gaia screen.
+class UserAllowlistCheckScreenHandler : public UserAllowlistCheckScreenView,
+                                        public BaseScreenHandler {
+ public:
+  using TView = UserAllowlistCheckScreenView;
+
+  UserAllowlistCheckScreenHandler();
+
+  UserAllowlistCheckScreenHandler(const UserAllowlistCheckScreenHandler&) =
+      delete;
+  UserAllowlistCheckScreenHandler& operator=(
+      const UserAllowlistCheckScreenHandler&) = delete;
+
+  ~UserAllowlistCheckScreenHandler() override;
+
+  void Show(bool enterprise_managed, bool family_link_allowed) override;
+  void Hide() override;
+
+ private:
+  // BaseScreenHandler implementation:
+  void DeclareLocalizedValues(
+      ::login::LocalizedValuesBuilder* builder) override;
+  void DeclareJSCallbacks() override;
+
+  base::WeakPtrFactory<UserAllowlistCheckScreenHandler> weak_factory_{this};
+};
+
+}  // namespace ash
+
+#endif  // CHROME_BROWSER_UI_WEBUI_ASH_LOGIN_GAIA_SCREEN_HANDLER_H_
diff --git a/chrome/browser/ui/webui/ash/settings/constants/constants_util.cc b/chrome/browser/ui/webui/ash/settings/constants/constants_util.cc
index c1d4578..70d335cc 100644
--- a/chrome/browser/ui/webui/ash/settings/constants/constants_util.cc
+++ b/chrome/browser/ui/webui/ash/settings/constants/constants_util.cc
@@ -43,6 +43,7 @@
     // from the set of available Sections. An old Section can be filtered out
     // once it has been fully incorporated into the new revamp Section.
     return section == mojom::Section::kDateAndTime ||
+           section == mojom::Section::kCrostini ||
            section == mojom::Section::kFiles ||
            section == mojom::Section::kLanguagesAndInput ||
            section == mojom::Section::kPrinting ||
diff --git a/chrome/browser/ui/webui/ash/settings/pages/about/about_section.cc b/chrome/browser/ui/webui/ash/settings/pages/about/about_section.cc
index d0d17bec..39b7347 100644
--- a/chrome/browser/ui/webui/ash/settings/pages/about/about_section.cc
+++ b/chrome/browser/ui/webui/ash/settings/pages/about/about_section.cc
@@ -205,14 +205,29 @@
 
 }  // namespace
 
-#if BUILDFLAG(GOOGLE_CHROME_BRANDING)
 AboutSection::AboutSection(Profile* profile,
                            SearchTagRegistry* search_tag_registry,
                            PrefService* pref_service)
-    : AboutSection(profile, search_tag_registry) {
-  pref_service_ = pref_service;
-
+    : OsSettingsSection(profile, search_tag_registry),
+      pref_service_(pref_service),
+      crostini_subsection_(
+          ash::features::IsOsSettingsRevampWayfindingEnabled()
+              ? absl::make_optional<CrostiniSection>(profile,
+                                                     search_tag_registry,
+                                                     pref_service)
+              : absl::nullopt) {
   SearchTagRegistry::ScopedTagUpdater updater = registry()->StartUpdate();
+  updater.AddSearchTags(GetAboutSearchConcepts());
+
+  updater.AddSearchTags(GetDiagnosticsAppSearchConcepts());
+
+  updater.AddSearchTags(GetFirmwareUpdatesAppSearchConcepts());
+
+  if (base::FeatureList::IsEnabled(features::kEnableHostnameSetting)) {
+    updater.AddSearchTags(GetDeviceNameSearchConcepts());
+  }
+
+#if BUILDFLAG(GOOGLE_CHROME_BRANDING)
   updater.AddSearchTags(GetAboutTermsOfServiceSearchConcepts());
 
   pref_change_registrar_.Init(pref_service_);
@@ -224,22 +239,7 @@
 
   pref_change_registrar_.Add(prefs::kConsumerAutoUpdateToggle,
                              base::DoNothingAs<void()>());
-}
 #endif  // BUILDFLAG(GOOGLE_CHROME_BRANDING)
-
-AboutSection::AboutSection(Profile* profile,
-                           SearchTagRegistry* search_tag_registry)
-    : OsSettingsSection(profile, search_tag_registry) {
-  SearchTagRegistry::ScopedTagUpdater updater = registry()->StartUpdate();
-  updater.AddSearchTags(GetAboutSearchConcepts());
-
-  updater.AddSearchTags(GetDiagnosticsAppSearchConcepts());
-
-  updater.AddSearchTags(GetFirmwareUpdatesAppSearchConcepts());
-
-  if (base::FeatureList::IsEnabled(features::kEnableHostnameSetting)) {
-    updater.AddSearchTags(GetDeviceNameSearchConcepts());
-  }
 }
 
 AboutSection::~AboutSection() = default;
@@ -497,6 +497,10 @@
   html_source->AddString("aboutProductSafetyURL",
                          base::UTF8ToUTF16(safetyInfoLink));
 #endif
+
+  if (kIsRevampEnabled) {
+    crostini_subsection_->AddLoadTimeData(html_source);
+  }
 }
 
 void AboutSection::AddHandlers(content::WebUI* web_ui) {
@@ -505,6 +509,10 @@
   if (features::IsHostnameSettingEnabled()) {
     web_ui->AddMessageHandler(std::make_unique<DeviceNameHandler>());
   }
+
+  if (ash::features::IsOsSettingsRevampWayfindingEnabled()) {
+    crostini_subsection_->AddHandlers(web_ui);
+  }
 }
 
 int AboutSection::GetSectionNameMessageId() const {
@@ -538,6 +546,10 @@
   generator->RegisterTopLevelSetting(mojom::Setting::kDiagnostics);
   generator->RegisterTopLevelSetting(mojom::Setting::kFirmwareUpdates);
 
+  if (ash::features::IsOsSettingsRevampWayfindingEnabled()) {
+    crostini_subsection_->RegisterHierarchy(generator);
+  }
+
   // Detailed build info.
   generator->RegisterTopLevelSubpage(
       IDS_SETTINGS_ABOUT_PAGE_DETAILED_BUILD_INFO,
diff --git a/chrome/browser/ui/webui/ash/settings/pages/about/about_section.h b/chrome/browser/ui/webui/ash/settings/pages/about/about_section.h
index 2b067e3d..eb42b0f 100644
--- a/chrome/browser/ui/webui/ash/settings/pages/about/about_section.h
+++ b/chrome/browser/ui/webui/ash/settings/pages/about/about_section.h
@@ -8,9 +8,11 @@
 #include "base/memory/raw_ptr.h"
 #include "base/values.h"
 #include "build/branding_buildflags.h"
+#include "chrome/browser/ui/webui/ash/settings/pages/crostini/crostini_section.h"
 #include "chrome/browser/ui/webui/settings/ash/os_settings_section.h"
 #include "components/prefs/pref_change_registrar.h"
 #include "components/user_manager/user_manager.h"
+#include "third_party/abseil-cpp/absl/types/optional.h"
 
 namespace content {
 class WebUIDataSource;
@@ -23,12 +25,9 @@
 // Provides UI strings and search tags for the settings "About Chrome OS" page.
 class AboutSection : public OsSettingsSection {
  public:
-#if BUILDFLAG(GOOGLE_CHROME_BRANDING)
   AboutSection(Profile* profile,
                SearchTagRegistry* search_tag_registry,
                PrefService* pref_service);
-#endif  // BUILDFLAG(GOOGLE_CHROME_BRANDING)
-  AboutSection(Profile* profile, SearchTagRegistry* search_tag_registry);
   ~AboutSection() override;
 
   // OsSettingsSection:
@@ -46,10 +45,12 @@
   // Returns if the auto update toggle should be shown for the active user.
   bool ShouldShowAUToggle(user_manager::User* active_user);
 
+  raw_ptr<PrefService, ExperimentalAsh> pref_service_;
+  absl::optional<CrostiniSection> crostini_subsection_;
+
 #if BUILDFLAG(GOOGLE_CHROME_BRANDING)
   void UpdateReportIssueSearchTags();
 
-  raw_ptr<PrefService, ExperimentalAsh> pref_service_;
   PrefChangeRegistrar pref_change_registrar_;
 #endif  // BUILDFLAG(GOOGLE_CHROME_BRANDING)
 };
diff --git a/chrome/browser/ui/webui/ash/settings/pages/crostini/crostini_section.cc b/chrome/browser/ui/webui/ash/settings/pages/crostini/crostini_section.cc
index 8e4f2e31..fb98ec5 100644
--- a/chrome/browser/ui/webui/ash/settings/pages/crostini/crostini_section.cc
+++ b/chrome/browser/ui/webui/ash/settings/pages/crostini/crostini_section.cc
@@ -39,6 +39,7 @@
 namespace ash::settings {
 
 namespace mojom {
+using ::chromeos::settings::mojom::kAboutChromeOsSectionPath;
 using ::chromeos::settings::mojom::kBruschettaDetailsSubpagePath;
 using ::chromeos::settings::mojom::kBruschettaManageSharedFoldersSubpagePath;
 using ::chromeos::settings::mojom::kBruschettaUsbPreferencesSubpagePath;
@@ -110,18 +111,20 @@
   return *tags;
 }
 
-const std::vector<SearchConcept>& GetCrostiniOptedOutSearchConcepts() {
+const std::vector<SearchConcept>& GetCrostiniOptedOutSearchConcepts(
+    mojom::Section section,
+    const char* section_path) {
   static const base::NoDestructor<std::vector<SearchConcept>> tags({
       {IDS_OS_SETTINGS_TAG_CROSTINI,
-       mojom::kCrostiniSectionPath,
+       section_path,
        mojom::SearchResultIcon::kDeveloperTags,
        mojom::SearchResultDefaultRank::kMedium,
        mojom::SearchResultType::kSection,
-       {.section = mojom::Section::kCrostini},
+       {.section = section},
        {IDS_OS_SETTINGS_TAG_CROSTINI_ALT1, IDS_OS_SETTINGS_TAG_CROSTINI_ALT2,
         SearchConcept::kAltTagEnd}},
       {IDS_OS_SETTINGS_TAG_CROSTINI_SETUP,
-       mojom::kCrostiniSectionPath,
+       section_path,
        mojom::SearchResultIcon::kDeveloperTags,
        mojom::SearchResultDefaultRank::kMedium,
        mojom::SearchResultType::kSetting,
@@ -575,7 +578,9 @@
 }
 
 mojom::Section CrostiniSection::GetSection() const {
-  return mojom::Section::kCrostini;
+  return ash::features::IsOsSettingsRevampWayfindingEnabled()
+             ? mojom::Section::kAboutChromeOs
+             : mojom::Section::kCrostini;
 }
 
 mojom::SearchResultIcon CrostiniSection::GetSectionIcon() const {
@@ -583,7 +588,9 @@
 }
 
 const char* CrostiniSection::GetSectionPath() const {
-  return mojom::kCrostiniSectionPath;
+  return ash::features::IsOsSettingsRevampWayfindingEnabled()
+             ? mojom::kAboutChromeOsSectionPath
+             : mojom::kCrostiniSectionPath;
 }
 
 bool CrostiniSection::LogMetric(mojom::Setting setting,
@@ -710,7 +717,8 @@
   SearchTagRegistry::ScopedTagUpdater updater = registry()->StartUpdate();
 
   updater.RemoveSearchTags(GetCrostiniOptedInSearchConcepts());
-  updater.RemoveSearchTags(GetCrostiniOptedOutSearchConcepts());
+  updater.RemoveSearchTags(
+      GetCrostiniOptedOutSearchConcepts(GetSection(), GetSectionPath()));
   updater.RemoveSearchTags(GetCrostiniExportImportSearchConcepts());
   updater.RemoveSearchTags(GetCrostiniAdbSideloadingSearchConcepts());
   updater.RemoveSearchTags(GetCrostiniPortForwardingSearchConcepts());
@@ -719,7 +727,8 @@
 
   if (!crostini::CrostiniFeatures::Get()->IsAllowedNow(profile_) ||
       !pref_service_->GetBoolean(crostini::prefs::kCrostiniEnabled)) {
-    updater.AddSearchTags(GetCrostiniOptedOutSearchConcepts());
+    updater.AddSearchTags(
+        GetCrostiniOptedOutSearchConcepts(GetSection(), GetSectionPath()));
     return;
   }
 
diff --git a/chrome/browser/ui/webui/settings/ash/os_settings_sections.cc b/chrome/browser/ui/webui/settings/ash/os_settings_sections.cc
index a880b79a..11cce88 100644
--- a/chrome/browser/ui/webui/settings/ash/os_settings_sections.cc
+++ b/chrome/browser/ui/webui/settings/ash/os_settings_sections.cc
@@ -82,10 +82,6 @@
                                         arc_app_list_prefs, app_service_proxy));
 
   AddSection(
-      mojom::Section::kCrostini,
-      std::make_unique<CrostiniSection>(profile, search_tag_registry, prefs));
-
-  AddSection(
       mojom::Section::kPrivacyAndSecurity,
       std::make_unique<PrivacySection>(profile, search_tag_registry, prefs));
 
@@ -93,13 +89,9 @@
              std::make_unique<AccessibilitySection>(
                  profile, search_tag_registry, prefs));
 
-  AddSection(mojom::Section::kAboutChromeOs,
-#if BUILDFLAG(GOOGLE_CHROME_BRANDING)
-             std::make_unique<AboutSection>(profile, search_tag_registry, prefs)
-#else
-             std::make_unique<AboutSection>(profile, search_tag_registry)
-#endif  // BUILDFLAG(GOOGLE_CHROME_BRANDING)
-  );
+  AddSection(
+      mojom::Section::kAboutChromeOs,
+      std::make_unique<AboutSection>(profile, search_tag_registry, prefs));
 
   AddSection(mojom::Section::kKerberos,
              std::make_unique<KerberosSection>(profile, search_tag_registry,
@@ -110,6 +102,10 @@
                std::make_unique<SystemPreferencesSection>(
                    profile, search_tag_registry, prefs));
   } else {
+    AddSection(
+        mojom::Section::kCrostini,
+        std::make_unique<CrostiniSection>(profile, search_tag_registry, prefs));
+
     AddSection(mojom::Section::kDateAndTime,
                std::make_unique<DateTimeSection>(profile, search_tag_registry));
 
diff --git a/chrome/build/android-arm32.pgo.txt b/chrome/build/android-arm32.pgo.txt
index 630af6c..2497bf3 100644
--- a/chrome/build/android-arm32.pgo.txt
+++ b/chrome/build/android-arm32.pgo.txt
@@ -1 +1 @@
-chrome-android32-main-1695621448-f6a31e43561f433332e738d6c1ed1b3a4b815692.profdata
+chrome-android32-main-1695642859-ac235d17b32ea34b1616435cb1bc243e828a65c9.profdata
diff --git a/chrome/build/android-arm64.pgo.txt b/chrome/build/android-arm64.pgo.txt
index 80b5a36..84ccacd 100644
--- a/chrome/build/android-arm64.pgo.txt
+++ b/chrome/build/android-arm64.pgo.txt
@@ -1 +1 @@
-chrome-android64-main-1695621448-8e4e0f2c55bdb0062bc79b1aed52efdeaf60178d.profdata
+chrome-android64-main-1695642859-d3b4cb97f8b03116a8b3633926415bb8e17a76be.profdata
diff --git a/chrome/build/lacros64.pgo.txt b/chrome/build/lacros64.pgo.txt
index d2b0d88..facdfb6f 100644
--- a/chrome/build/lacros64.pgo.txt
+++ b/chrome/build/lacros64.pgo.txt
@@ -1 +1 @@
-chrome-chromeos-amd64-generic-main-1695599423-8fae9bdf3bc30bab0c8fdd59ebe446eef2d933c4.profdata
+chrome-chromeos-amd64-generic-main-1695643449-0dbe2596dc6b331fd6e7e12f1479b76c0d519408.profdata
diff --git a/chrome/build/linux.pgo.txt b/chrome/build/linux.pgo.txt
index 2821fb2..d59068c 100644
--- a/chrome/build/linux.pgo.txt
+++ b/chrome/build/linux.pgo.txt
@@ -1 +1 @@
-chrome-linux-main-1695621448-715f8cd192b80c53e8845a993eb08f48665a255f.profdata
+chrome-linux-main-1695642859-b6361fcf35177f216c1bec3e95d29382fafd03da.profdata
diff --git a/chrome/build/mac-arm.pgo.txt b/chrome/build/mac-arm.pgo.txt
index 0aab7f0..8c629fc2 100644
--- a/chrome/build/mac-arm.pgo.txt
+++ b/chrome/build/mac-arm.pgo.txt
@@ -1 +1 @@
-chrome-mac-arm-main-1695635793-7b1510cf0c8ca351d3d579f8c59c1a6c88cfeb76.profdata
+chrome-mac-arm-main-1695657547-58d18301c394642dce4f361841d34491488cc57a.profdata
diff --git a/chrome/build/mac.pgo.txt b/chrome/build/mac.pgo.txt
index cc2caec..4ede68b 100644
--- a/chrome/build/mac.pgo.txt
+++ b/chrome/build/mac.pgo.txt
@@ -1 +1 @@
-chrome-mac-main-1695621448-e20d43d3f677f1d4075d0630350a68bfa28d4e42.profdata
+chrome-mac-main-1695642859-76c2f6628943cff7f17ceed3b11866b13922fc55.profdata
diff --git a/chrome/build/win-arm64.pgo.txt b/chrome/build/win-arm64.pgo.txt
index 94af48c..f89160f 100644
--- a/chrome/build/win-arm64.pgo.txt
+++ b/chrome/build/win-arm64.pgo.txt
@@ -1 +1 @@
-chrome-win-arm64-main-1695621448-a00cc0171427c8385775861611ae116d398ce170.profdata
+chrome-win-arm64-main-1695642859-aa00bc0d8d65275522c4ee34625dbc91e5df0d49.profdata
diff --git a/chrome/build/win32.pgo.txt b/chrome/build/win32.pgo.txt
index e46ac720..4e693d1 100644
--- a/chrome/build/win32.pgo.txt
+++ b/chrome/build/win32.pgo.txt
@@ -1 +1 @@
-chrome-win32-main-1695621448-4fbb3960c9ccbd92819f39eea32a1b826fa9fd46.profdata
+chrome-win32-main-1695642859-52ad812765f5b29b3f0cafc08d6c428b5d343a58.profdata
diff --git a/chrome/build/win64.pgo.txt b/chrome/build/win64.pgo.txt
index f300ceb..e083f6c 100644
--- a/chrome/build/win64.pgo.txt
+++ b/chrome/build/win64.pgo.txt
@@ -1 +1 @@
-chrome-win64-main-1695621448-f5c68dcdb28b7d5f065ed2546e963156e1d91aaf.profdata
+chrome-win64-main-1695642859-915cf304f7d743d87ee91c223f6cbf918ea216f9.profdata
diff --git a/chrome/common/extensions/api/accessibility_private.json b/chrome/common/extensions/api/accessibility_private.json
index 7c11fe1..741c7b1 100644
--- a/chrome/common/extensions/api/accessibility_private.json
+++ b/chrome/common/extensions/api/accessibility_private.json
@@ -6,7 +6,7 @@
   {
     "namespace": "accessibilityPrivate",
     "compiler_options": {
-      "implemented_in": "chrome/browser/accessibility/accessibility_extension_api_chromeos.h"
+      "implemented_in": "chrome/browser/accessibility/accessibility_extension_api_ash.h"
     },
     "description": "none",
     "platforms": ["chromeos"],
diff --git a/chrome/test/base/chromeos/demo_ash_requires_lacros_browsertest.cc b/chrome/test/base/chromeos/demo_ash_requires_lacros_browsertest.cc
index bfe448c..b1629c5 100644
--- a/chrome/test/base/chromeos/demo_ash_requires_lacros_browsertest.cc
+++ b/chrome/test/base/chromeos/demo_ash_requires_lacros_browsertest.cc
@@ -48,7 +48,5 @@
     crosapi::BrowserManager::Get()->NewTab();
     // Assert Lacros is running.
     ASSERT_TRUE(crosapi::BrowserManager::Get()->IsRunning());
-    // browser() returns an Ash browser instance.
-    ASSERT_FALSE(browser()->profile()->IsOffTheRecord());
   }
 }
diff --git a/chrome/test/data/chromedriver/fedcm/signin.html b/chrome/test/data/chromedriver/fedcm/signin.html
index 982d2c2..272bc8a9 100644
--- a/chrome/test/data/chromedriver/fedcm/signin.html
+++ b/chrome/test/data/chromedriver/fedcm/signin.html
@@ -1,7 +1,7 @@
 <!DOCTYPE html>
 <script>
 function doLogin() {
-  IdentityProvider.login();
+  navigator.login.setStatus("logged-in");
   IdentityProvider.close();
 }
 onload = doLogin;
diff --git a/chromecast/android/lint-baseline.xml b/chromecast/android/lint-baseline.xml
index 03da519..1017075ad 100644
--- a/chromecast/android/lint-baseline.xml
+++ b/chromecast/android/lint-baseline.xml
@@ -1,5 +1,49 @@
 <?xml version="1.0" encoding="UTF-8"?>
-<issues format="6" by="lint 8.3.0-alpha04" type="baseline" client="" dependencies="true" name="" variant="all" version="8.3.0-alpha04">
+<issues format="6" by="lint 8.3.0-alpha05" type="baseline" client="" dependencies="true" name="" variant="all" version="8.3.0-alpha05">
+
+    <issue
+        id="NewApi"
+        message="Class requires API level 30 (current min is 24): `Natives`"
+        errorLine1="  private static AnrCollector.Natives testInstance;"
+        errorLine2="                 ~~~~~~~~~~~~~~~~~~~~">
+        <location
+            file="gen/chromecast/cast_shell_apk__lint/SRCJARS/gen/components/crash/android/anr_collector_jni_headers/org/chromium/components/crash/anr/AnrCollectorJni.java"
+            line="38"
+            column="18"/>
+    </issue>
+
+    <issue
+        id="NewApi"
+        message="Class requires API level 30 (current min is 24): `Natives`"
+        errorLine1="    public void setInstanceForTesting(AnrCollector.Natives instance) {"
+        errorLine2="                                      ~~~~~~~~~~~~~~~~~~~~">
+        <location
+            file="gen/chromecast/cast_shell_apk__lint/SRCJARS/gen/components/crash/android/anr_collector_jni_headers/org/chromium/components/crash/anr/AnrCollectorJni.java"
+            line="43"
+            column="39"/>
+    </issue>
+
+    <issue
+        id="NewApi"
+        message="Class requires API level 33 (current min is 24): `Natives`"
+        errorLine1="  private static MagnifierSurfaceControl.Natives testInstance;"
+        errorLine2="                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~">
+        <location
+            file="gen/chromecast/cast_shell_apk__lint/SRCJARS/gen/content/public/android/content_jni_headers/org/chromium/content/browser/selection/MagnifierSurfaceControlJni.java"
+            line="23"
+            column="18"/>
+    </issue>
+
+    <issue
+        id="NewApi"
+        message="Class requires API level 33 (current min is 24): `Natives`"
+        errorLine1="    public void setInstanceForTesting(MagnifierSurfaceControl.Natives instance) {"
+        errorLine2="                                      ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~">
+        <location
+            file="gen/chromecast/cast_shell_apk__lint/SRCJARS/gen/content/public/android/content_jni_headers/org/chromium/content/browser/selection/MagnifierSurfaceControlJni.java"
+            line="28"
+            column="39"/>
+    </issue>
 
     <issue
         id="UnspecifiedRegisterReceiverFlag"
diff --git a/chromeos/ash/components/osauth/impl/auth_session_storage_impl.cc b/chromeos/ash/components/osauth/impl/auth_session_storage_impl.cc
index ce618c06..d4e7810 100644
--- a/chromeos/ash/components/osauth/impl/auth_session_storage_impl.cc
+++ b/chromeos/ash/components/osauth/impl/auth_session_storage_impl.cc
@@ -73,6 +73,28 @@
   return std::move(data_it->second->context);
 }
 
+void AuthSessionStorageImpl::BorrowAsync(const base::Location& location,
+                                         const AuthProofToken& token,
+                                         BorrowCallback callback) {
+  auto data_it = tokens_.find(token);
+  if (data_it == std::end(tokens_)) {
+    LOG(ERROR) << "Accessing expired token";
+    std::move(callback).Run(nullptr);
+    return;
+  }
+  if (data_it->second->state == TokenState::kOwned) {
+    auto context = Borrow(location, token);
+    std::move(callback).Run(std::move(context));
+    return;
+  }
+  if (data_it->second->state == TokenState::kInvalidating ||
+      data_it->second->invalidate_on_return) {
+    std::move(callback).Run(nullptr);
+    return;
+  }
+  data_it->second->borrow_queue.emplace(location, std::move(callback));
+}
+
 const UserContext* AuthSessionStorageImpl::Peek(const AuthProofToken& token) {
   auto data_it = tokens_.find(token);
   CHECK(data_it != std::end(tokens_));
@@ -98,6 +120,13 @@
   if (data_it->second->invalidate_on_return) {
     data_it->second->invalidate_on_return = false;
     Invalidate(token, std::move(data_it->second->invalidation_closure));
+    return;
+  }
+  if (!data_it->second->borrow_queue.empty()) {
+    std::pair<base::Location, BorrowCallback> pending_borrow =
+        std::move(data_it->second->borrow_queue.front());
+    data_it->second->borrow_queue.pop();
+    BorrowAsync(pending_borrow.first, token, std::move(pending_borrow.second));
   }
 }
 
@@ -108,6 +137,12 @@
   if (data_it->second->state == TokenState::kBorrowed) {
     data_it->second->invalidate_on_return = true;
     data_it->second->invalidation_closure = std::move(on_invalidated);
+    while (!data_it->second->borrow_queue.empty()) {
+      std::pair<base::Location, BorrowCallback> pending_borrow =
+          std::move(data_it->second->borrow_queue.front());
+      data_it->second->borrow_queue.pop();
+      std::move(pending_borrow.second).Run(nullptr);
+    }
     return;
   }
   CHECK(data_it->second->state == TokenState::kOwned);
diff --git a/chromeos/ash/components/osauth/impl/auth_session_storage_impl.h b/chromeos/ash/components/osauth/impl/auth_session_storage_impl.h
index 42c35832..d582ae1 100644
--- a/chromeos/ash/components/osauth/impl/auth_session_storage_impl.h
+++ b/chromeos/ash/components/osauth/impl/auth_session_storage_impl.h
@@ -6,6 +6,7 @@
 #define CHROMEOS_ASH_COMPONENTS_OSAUTH_IMPL_AUTH_SESSION_STORAGE_IMPL_H_
 
 #include <memory>
+#include <queue>
 
 #include "base/component_export.h"
 #include "base/containers/flat_map.h"
@@ -47,6 +48,9 @@
   bool IsValid(const AuthProofToken& token) override;
   std::unique_ptr<UserContext> Borrow(const base::Location& location,
                                       const AuthProofToken& token) override;
+  void BorrowAsync(const base::Location& location,
+                   const AuthProofToken& token,
+                   BorrowCallback callback) override;
   const UserContext* Peek(const AuthProofToken& token) override;
   void Return(const AuthProofToken& token,
               std::unique_ptr<UserContext> context) override;
@@ -75,6 +79,7 @@
     // requested while context is borrowed.
     bool invalidate_on_return = false;
     base::OnceClosure invalidation_closure;
+    std::queue<std::pair<base::Location, BorrowCallback>> borrow_queue;
   };
 
   void OnSessionInvalidated(const AuthProofToken& token,
diff --git a/chromeos/ash/components/osauth/impl/auth_session_storage_impl_unittest.cc b/chromeos/ash/components/osauth/impl/auth_session_storage_impl_unittest.cc
index c651f23..374b257 100644
--- a/chromeos/ash/components/osauth/impl/auth_session_storage_impl_unittest.cc
+++ b/chromeos/ash/components/osauth/impl/auth_session_storage_impl_unittest.cc
@@ -4,8 +4,12 @@
 
 #include "chromeos/ash/components/osauth/impl/auth_session_storage_impl.h"
 
+#include <memory>
+#include <utility>
+
 #include "base/functional/callback_helpers.h"
 #include "base/location.h"
+#include "base/test/test_future.h"
 #include "chromeos/ash/components/dbus/userdataauth/mock_userdataauth_client.h"
 #include "chromeos/ash/components/login/auth/public/user_context.h"
 #include "testing/gmock/include/gmock/gmock.h"
@@ -76,4 +80,82 @@
   ASSERT_FALSE(storage_->IsValid(token));
 }
 
+TEST_F(AuthSessionStorageImplTest, AsyncBorrow) {
+  std::unique_ptr<UserContext> context = std::make_unique<UserContext>();
+  context->SetAuthSessionIds("some-id", "broadcast");
+
+  // Unknown token, callback should
+  // be called with nullptr immediately.
+  {
+    base::test::TestFuture<std::unique_ptr<UserContext>> borrow_future;
+    storage_->BorrowAsync(FROM_HERE, "unknown-token",
+                          borrow_future.GetCallback());
+
+    ASSERT_TRUE(borrow_future.IsReady());
+    ASSERT_EQ(borrow_future.Get().get(), nullptr);
+  }
+
+  // Store UserContext;
+  AuthProofToken token = storage_->Store(std::move(context));
+  ASSERT_TRUE(storage_->IsValid(token));
+
+  base::test::TestFuture<std::unique_ptr<UserContext>> borrow_future_1;
+  storage_->BorrowAsync(FROM_HERE, token, borrow_future_1.GetCallback());
+  // Borrow context, token is still valid.
+  ASSERT_TRUE(storage_->IsValid(token));
+
+  ASSERT_TRUE(borrow_future_1.IsReady());
+  ASSERT_NE(borrow_future_1.Get().get(), nullptr);
+
+  base::test::TestFuture<std::unique_ptr<UserContext>> borrow_future_2;
+  base::test::TestFuture<std::unique_ptr<UserContext>> borrow_future_3;
+
+  storage_->BorrowAsync(FROM_HERE, token, borrow_future_2.GetCallback());
+  storage_->BorrowAsync(FROM_HERE, token, borrow_future_3.GetCallback());
+
+  ASSERT_TRUE(storage_->IsValid(token));
+  ASSERT_FALSE(borrow_future_2.IsReady());
+  ASSERT_FALSE(borrow_future_3.IsReady());
+
+  // Return context, first in queue should get it
+  storage_->Return(token, borrow_future_1.Take());
+
+  ASSERT_TRUE(storage_->IsValid(token));
+
+  ASSERT_TRUE(borrow_future_2.IsReady());
+  ASSERT_NE(borrow_future_2.Get().get(), nullptr);
+
+  ASSERT_FALSE(borrow_future_3.IsReady());
+
+  // Pending borrow request should be invalidated.
+  storage_->Invalidate(token, base::DoNothing());
+
+  ASSERT_FALSE(storage_->IsValid(token));
+  ASSERT_TRUE(borrow_future_3.IsReady());
+  ASSERT_EQ(borrow_future_3.Get().get(), nullptr);
+
+  // Token is considered invalid, callback should
+  // be called with nullptr immediately.
+  {
+    base::test::TestFuture<std::unique_ptr<UserContext>> borrow_future;
+    storage_->BorrowAsync(FROM_HERE, token, borrow_future.GetCallback());
+
+    ASSERT_TRUE(borrow_future.IsReady());
+    ASSERT_EQ(borrow_future.Get().get(), nullptr);
+  }
+
+  storage_->Return(token, borrow_future_2.Take());
+  ASSERT_FALSE(storage_->IsValid(token));
+
+  // Context should be deleted by now, callback should
+  // be called with nullptr immediately.
+  {
+    base::test::TestFuture<std::unique_ptr<UserContext>> borrow_future;
+    storage_->BorrowAsync(FROM_HERE, token, borrow_future.GetCallback());
+
+    ASSERT_TRUE(borrow_future.IsReady());
+    ASSERT_EQ(borrow_future.Get().get(), nullptr);
+  }
+}
+
 }  // namespace ash
\ No newline at end of file
diff --git a/chromeos/ash/components/osauth/public/auth_session_storage.h b/chromeos/ash/components/osauth/public/auth_session_storage.h
index f8b361e..8a41d85 100644
--- a/chromeos/ash/components/osauth/public/auth_session_storage.h
+++ b/chromeos/ash/components/osauth/public/auth_session_storage.h
@@ -36,6 +36,8 @@
 // returned to storage as soon as operation completes.
 class COMPONENT_EXPORT(CHROMEOS_ASH_COMPONENTS_OSAUTH) AuthSessionStorage {
  public:
+  using BorrowCallback = base::OnceCallback<void(std::unique_ptr<UserContext>)>;
+
   // TODO (b/271249180): Define an observer for notifications about token
   // expiration/borrowing.
 
@@ -62,6 +64,17 @@
   // be borrowed.
   virtual std::unique_ptr<UserContext> Borrow(const base::Location& location,
                                               const AuthProofToken& token) = 0;
+
+  // Borrows UserContext to perform some authenticated operation. Borrowing
+  // a context does not make it invalid.
+  // If context is borrowed at the moment of the call, the callback
+  // would be called once the context is returned to the storage.
+  // Note that callback might be called with `null` value, if
+  // the context would become invalid before it is returned.
+  virtual void BorrowAsync(const base::Location& location,
+                           const AuthProofToken& token,
+                           BorrowCallback callback) = 0;
+
   // Allows to inspect stored UserContext. The reference is only valid within
   // same UI event, and should not be stored by caller.
   virtual const UserContext* Peek(const AuthProofToken& token) = 0;
diff --git a/chromeos/tast_control.gni b/chromeos/tast_control.gni
index 43317b6..ab909a90 100644
--- a/chromeos/tast_control.gni
+++ b/chromeos/tast_control.gni
@@ -35,9 +35,6 @@
   "inputs.VirtualKeyboardGlideTyping.tablet_floating",
   "inputs.VirtualKeyboardHandwriting.floating",
 
-  # crbug.com/1259127
-  "ui.TabletOperations",
-
   # crbug.com/1263233
   "security.SharedFilesystemState",
 
@@ -45,8 +42,6 @@
   "ui.ChromeCrashReporterMetrics.success_crashpad",
 
   # https://crbug.com/1276549: Flaky.
-  "ui.ChromeCrashLoop.breakpad",
-  "ui.ChromeCrashLoop.breakpad_mock_consent",
   "ui.ChromeCrashReporterMetrics.success_breakpad",
   "ui.ChromeCrashReporterMetrics.miss_breakpad",
 
@@ -71,19 +66,12 @@
   "security.GPUSandboxed",
 
   # https://crbug.com/1282481
-  "quicksettings.OpenSettings",
   "quicksettings.OpenSettings.qs_revamp_disabled",
   "quicksettings.OpenSettings.qs_revamp_enabled",
 
   # http://b/212644512
   "security.SELinuxFilesDataDir",
 
-  # https://crbug.com/1260046
-  "wmp.WindowCycle",
-
-  # crbug.com/1364513
-  "policy.ArcEnabled.vm",
-
   # https://crbug.com/1309331
   "policy.CookiesAllowedForUrls",
 
@@ -122,12 +110,6 @@
   # http://crbug.com/1363667
   "apps.CalculatorSmoke",
 
-  # https://crbug.com/1341074
-  "launcher.BubbleLaunchApp.enable_launcher_app_sort",
-
-  # https://crbug.com/1341076
-  "launcher.BubbleLaunchApp.disable_launcher_app_sort",
-
   # b/241122961
   "policy.BlockThirdPartyCookies",
 
@@ -137,15 +119,9 @@
   # https://crbug.com/1350880
   "arc.PIPRoundedCornersUnderlay",
 
-  # https://crbug.com/1352525
-  "apps.ContentPreview",
-
   # https://crbug.com/1362182
   "feedback.AttachFile",
 
-  # https://crbug.com/1360969
-  "launcher.SearchBuiltInApps.productivity_launcher_tablet_mode",
-
   # https://crbug.com/1365284
   "crostini.RestartApp.clamshell_stable",
 
@@ -163,8 +139,6 @@
   "crostini.RestartApp.bullseye_clamshell_stable",
 
   # https://crbug.com/1368586
-  "u2fd.WebauthnUsingPassword.tpm1",
-  "u2fd.WebauthnUsingPassword.tpm1_lacros",
   "u2fd.WebauthnUsingPassword.gsc",
   "u2fd.WebauthnUsingPassword.gsc_lacros",
 
@@ -172,23 +146,12 @@
   "arc.Drivefs",
   "arc.Drivefs.vm",
 
-  # https://crbug.com/1374943
-  "hwsec.CrossVersionLogin",
-
-  # https://crbug.com/1375191
-  "login.ChangePassword.auth_factor_experiment_on",
-  "login.ChangePassword.auth_factor_experiment_off",
-
   # https://crbug.com/1361163
   "lacros.AudioPinnedStream.play",
 
   # https://crbug.com/1392911
   "login.RestrictSignin",
 
-  # https://crbug.com/1401605
-  "hwsec.CrossVersionLogin.small",
-  "hwsec.CrossVersionLogin.tpm_dynamic_small",
-
   # https://crbug.com/1402224
   "audio.PlaybackAudioControls",
 
diff --git a/chromeos/ui/base/window_state_type.cc b/chromeos/ui/base/window_state_type.cc
index 0b165415..d7a3ddd 100644
--- a/chromeos/ui/base/window_state_type.cc
+++ b/chromeos/ui/base/window_state_type.cc
@@ -100,6 +100,11 @@
          IsFullscreenOrPinnedWindowStateType(type);
 }
 
+bool IsMaximizedOrFullscreenWindowStateType(WindowStateType type) {
+  return type == WindowStateType::kMaximized ||
+         type == WindowStateType::kFullscreen;
+}
+
 bool IsMinimizedWindowStateType(WindowStateType type) {
   return type == WindowStateType::kMinimized;
 }
diff --git a/chromeos/ui/base/window_state_type.h b/chromeos/ui/base/window_state_type.h
index 6f2dc6a..e468865 100644
--- a/chromeos/ui/base/window_state_type.h
+++ b/chromeos/ui/base/window_state_type.h
@@ -5,7 +5,6 @@
 #ifndef CHROMEOS_UI_BASE_WINDOW_STATE_TYPE_H_
 #define CHROMEOS_UI_BASE_WINDOW_STATE_TYPE_H_
 
-#include <cstdint>
 #include <ostream>
 
 #include "base/component_export.h"
@@ -69,6 +68,10 @@
 COMPONENT_EXPORT(CHROMEOS_UI_BASE)
 bool IsMaximizedOrFullscreenOrPinnedWindowStateType(WindowStateType type);
 
+// Returns true if `type` is MAXIMIZED or FULLSCREEN.
+COMPONENT_EXPORT(CHROMEOS_UI_BASE)
+bool IsMaximizedOrFullscreenWindowStateType(WindowStateType type);
+
 // Returns true if |type| is MINIMIZED.
 COMPONENT_EXPORT(CHROMEOS_UI_BASE)
 bool IsMinimizedWindowStateType(WindowStateType type);
diff --git a/chromeos/ui/frame/frame_utils.cc b/chromeos/ui/frame/frame_utils.cc
index 7bac9c7..2671a1d 100644
--- a/chromeos/ui/frame/frame_utils.cc
+++ b/chromeos/ui/frame/frame_utils.cc
@@ -127,18 +127,16 @@
   const WindowStateType window_state =
       native_window->GetProperty(kWindowStateTypeKey);
 
+  if (!ShouldHaveRoundedWindow(window_state)) {
+    return 0;
+  }
+
   if (window_state == WindowStateType::kPip) {
     return kPipRoundedCornerRadius;
   }
 
-  if (IsNormalWindowStateType(window_state) ||
-      window_state == WindowStateType::kFloated) {
-    return features::IsRoundedWindowsEnabled()
-               ? features::RoundedWindowsRadius()
-               : kTopCornerRadiusWhenRestored;
-  }
-
-  return 0;
+  return features::IsRoundedWindowsEnabled() ? features::RoundedWindowsRadius()
+                                             : kTopCornerRadiusWhenRestored;
 }
 
 bool CanPropertyEffectFrameRadius(const void* class_property_key) {
@@ -146,4 +144,9 @@
          class_property_key == kWindowStateTypeKey;
 }
 
+bool ShouldHaveRoundedWindow(WindowStateType type) {
+  return IsNormalWindowStateType(type) || type == WindowStateType::kFloated ||
+         type == WindowStateType::kPip;
+}
+
 }  // namespace chromeos
diff --git a/chromeos/ui/frame/frame_utils.h b/chromeos/ui/frame/frame_utils.h
index bceb4178..2c6ab3a5 100644
--- a/chromeos/ui/frame/frame_utils.h
+++ b/chromeos/ui/frame/frame_utils.h
@@ -6,6 +6,7 @@
 #define CHROMEOS_UI_FRAME_FRAME_UTILS_H_
 
 #include "base/component_export.h"
+#include "chromeos/ui/base/window_state_type.h"
 #include "chromeos/ui/frame/caption_buttons/snap_controller.h"
 #include "ui/views/widget/widget.h"
 
@@ -46,6 +47,11 @@
 COMPONENT_EXPORT(CHROMEOS_UI_FRAME)
 bool CanPropertyEffectFrameRadius(const void* class_property_key);
 
+// Returns true if window should have rounded corners for a given
+// `window_state`.
+COMPONENT_EXPORT(CHROMEOS_UI_FRAME)
+bool ShouldHaveRoundedWindow(WindowStateType window_state);
+
 }  // namespace chromeos
 
 #endif  // CHROMEOS_UI_FRAME_FRAME_UTILS_H_
diff --git a/clank b/clank
index 19ddfe9..634fe7e 160000
--- a/clank
+++ b/clank
@@ -1 +1 @@
-Subproject commit 19ddfe919551d9f121ba6a321c14bd9bb2e9b490
+Subproject commit 634fe7e05f59ab1a85a395b539490fe1aa85fef4
diff --git a/components/android_autofill/browser/android_autofill_manager.cc b/components/android_autofill/browser/android_autofill_manager.cc
index fc62e77..e44d659 100644
--- a/components/android_autofill/browser/android_autofill_manager.cc
+++ b/components/android_autofill/browser/android_autofill_manager.cc
@@ -192,7 +192,7 @@
 void AndroidAutofillManager::Reset() {
   // Inform the provider before resetting state in case it needs to access it.
   if (auto* provider = GetAutofillProvider()) {
-    provider->Reset(this);
+    provider->OnManagerResetOrDestroyed(this);
   }
   AutofillManager::Reset();
   forms_with_server_predictions_.clear();
diff --git a/components/android_autofill/browser/autofill_provider.h b/components/android_autofill/browser/autofill_provider.h
index 73f5913e..972e5ca3 100644
--- a/components/android_autofill/browser/autofill_provider.h
+++ b/components/android_autofill/browser/autofill_provider.h
@@ -83,7 +83,9 @@
   virtual void OnServerQueryRequestError(AndroidAutofillManager* manager,
                                          FormSignature form_signature) = 0;
 
-  virtual void Reset(AndroidAutofillManager* manager) = 0;
+  // Reacts to a reset or destruction of `manager`, e.g., by submitting forms
+  // for suspected navigations.
+  virtual void OnManagerResetOrDestroyed(AndroidAutofillManager* manager) = 0;
 
   // Returns autofilled state from AutofillProvider's cache.
   virtual bool GetCachedIsAutofilled(const FormFieldData& field) const = 0;
diff --git a/components/android_autofill/browser/autofill_provider_android.cc b/components/android_autofill/browser/autofill_provider_android.cc
index 1670dec..2431fcdf 100644
--- a/components/android_autofill/browser/autofill_provider_android.cc
+++ b/components/android_autofill/browser/autofill_provider_android.cc
@@ -118,19 +118,16 @@
                                               const FormFieldData& field,
                                               const gfx::RectF& bounding_box) {
   form_ = std::make_unique<FormDataAndroid>(form);
-  field_id_ = field.global_id();
-  field_type_group_ = manager->ComputeFieldTypeGroupForField(form, field);
-  triggered_origin_ = field.origin;
-
   FieldInfo field_info;
   if (!form_->GetFieldIndex(field, &field_info.index)) {
-    form_.reset();
-    field_id_ = {};
-    field_type_group_ = FieldTypeGroup::kNoGroup;
-    triggered_origin_ = {};
+    Reset();
     return;
   }
 
+  field_id_ = field.global_id();
+  field_type_group_ = manager->ComputeFieldTypeGroupForField(form, field);
+  triggered_origin_ = field.origin;
+  check_submission_ = false;
   manager_ = manager->GetWeakPtrToLeafClass();
 
   // Set the field type predictions in `form_`.
@@ -376,7 +373,8 @@
   }
 }
 
-void AutofillProviderAndroid::Reset(AndroidAutofillManager* manager) {
+void AutofillProviderAndroid::OnManagerResetOrDestroyed(
+    AndroidAutofillManager* manager) {
   DCHECK_CURRENTLY_ON(BrowserThread::UI);
   if (!IsCurrentlyLinkedManager(manager)) {
     return;
@@ -415,7 +413,7 @@
 }
 
 void AutofillProviderAndroid::Reset() {
-  form_.reset(nullptr);
+  form_.reset();
   field_id_ = {};
   field_type_group_ = FieldTypeGroup::kNoGroup;
   triggered_origin_ = {};
diff --git a/components/android_autofill/browser/autofill_provider_android.h b/components/android_autofill/browser/autofill_provider_android.h
index cb5f32c..3bd613f 100644
--- a/components/android_autofill/browser/autofill_provider_android.h
+++ b/components/android_autofill/browser/autofill_provider_android.h
@@ -31,12 +31,11 @@
   static AutofillProviderAndroid* FromWebContents(
       content::WebContents* web_contents);
 
-  ~AutofillProviderAndroid() override;
-
   AutofillProviderAndroid(const AutofillProviderAndroid&) = delete;
   AutofillProviderAndroid& operator=(const AutofillProviderAndroid&) = delete;
+  ~AutofillProviderAndroid() override;
 
-  // Attach this detached object to |jcaller|.
+  // Attach this detached object to `jcaller`.
   void AttachToJavaAutofillProvider(
       JNIEnv* env,
       const base::android::JavaRef<jobject>& jcaller);
@@ -82,7 +81,7 @@
   void OnServerQueryRequestError(AndroidAutofillManager* manager,
                                  FormSignature form_signature) override;
 
-  void Reset(AndroidAutofillManager* manager) override;
+  void OnManagerResetOrDestroyed(AndroidAutofillManager* manager) override;
 
   bool GetCachedIsAutofilled(const FormFieldData& field) const override;
 
diff --git a/components/android_autofill/browser/test_autofill_provider.h b/components/android_autofill/browser/test_autofill_provider.h
index 4895294..c83c916 100644
--- a/components/android_autofill/browser/test_autofill_provider.h
+++ b/components/android_autofill/browser/test_autofill_provider.h
@@ -56,7 +56,7 @@
       FormGlobalId form) override {}
   void OnServerQueryRequestError(AndroidAutofillManager* manager,
                                  FormSignature form_signature) override {}
-  void Reset(AndroidAutofillManager* manager) override {}
+  void OnManagerResetOrDestroyed(AndroidAutofillManager* manager) override {}
   bool GetCachedIsAutofilled(const FormFieldData& field) const override;
 };
 
diff --git a/components/autofill/core/browser/autofill_type.cc b/components/autofill/core/browser/autofill_type.cc
index 53bde72..a576275 100644
--- a/components/autofill/core/browser/autofill_type.cc
+++ b/components/autofill/core/browser/autofill_type.cc
@@ -16,225 +16,6 @@
 
 namespace autofill {
 
-ServerFieldTypeSet GetServerFieldTypesOfGroup(FieldTypeGroup group) {
-  ServerFieldTypeSet fields_matching_group;
-  for (ServerFieldType server_field_type : kAllServerFieldTypes) {
-    if (AutofillType(server_field_type).group() == group) {
-      fields_matching_group.insert(server_field_type);
-    }
-  }
-  return fields_matching_group;
-}
-
-FieldTypeGroup GroupTypeOfServerFieldType(ServerFieldType field_type) {
-  switch (field_type) {
-    case NAME_HONORIFIC_PREFIX:
-    case NAME_FIRST:
-    case NAME_MIDDLE:
-    case NAME_LAST:
-    case NAME_LAST_FIRST:
-    case NAME_LAST_SECOND:
-    case NAME_LAST_CONJUNCTION:
-    case NAME_MIDDLE_INITIAL:
-    case NAME_FULL:
-    case NAME_SUFFIX:
-    case NAME_FULL_WITH_HONORIFIC_PREFIX:
-      return FieldTypeGroup::kName;
-
-    case EMAIL_ADDRESS:
-    case USERNAME_AND_EMAIL_ADDRESS:
-      return FieldTypeGroup::kEmail;
-
-    case PHONE_HOME_NUMBER:
-    case PHONE_HOME_NUMBER_PREFIX:
-    case PHONE_HOME_NUMBER_SUFFIX:
-    case PHONE_HOME_CITY_CODE:
-    case PHONE_HOME_CITY_CODE_WITH_TRUNK_PREFIX:
-    case PHONE_HOME_COUNTRY_CODE:
-    case PHONE_HOME_CITY_AND_NUMBER:
-    case PHONE_HOME_CITY_AND_NUMBER_WITHOUT_TRUNK_PREFIX:
-    case PHONE_HOME_WHOLE_NUMBER:
-    case PHONE_HOME_EXTENSION:
-      return FieldTypeGroup::kPhone;
-
-    case ADDRESS_HOME_LINE1:
-    case ADDRESS_HOME_LINE2:
-    case ADDRESS_HOME_LINE3:
-    case ADDRESS_HOME_APT_NUM:
-    case ADDRESS_HOME_CITY:
-    case ADDRESS_HOME_STATE:
-    case ADDRESS_HOME_ZIP:
-    case ADDRESS_HOME_COUNTRY:
-    case ADDRESS_HOME_STREET_ADDRESS:
-    case ADDRESS_HOME_SORTING_CODE:
-    case ADDRESS_HOME_DEPENDENT_LOCALITY:
-    case ADDRESS_HOME_STREET_NAME:
-    case ADDRESS_HOME_HOUSE_NUMBER:
-    case ADDRESS_HOME_SUBPREMISE:
-    case ADDRESS_HOME_OTHER_SUBUNIT:
-    case ADDRESS_HOME_ADDRESS:
-    case ADDRESS_HOME_ADDRESS_WITH_NAME:
-    case ADDRESS_HOME_FLOOR:
-    case ADDRESS_HOME_LANDMARK:
-    case ADDRESS_HOME_BETWEEN_STREETS:
-    case ADDRESS_HOME_BETWEEN_STREETS_1:
-    case ADDRESS_HOME_BETWEEN_STREETS_2:
-    case ADDRESS_HOME_ADMIN_LEVEL2:
-    case ADDRESS_HOME_STREET_LOCATION:
-    case ADDRESS_HOME_OVERFLOW:
-    case ADDRESS_HOME_OVERFLOW_AND_LANDMARK:
-    case ADDRESS_HOME_BETWEEN_STREETS_OR_LANDMARK:
-    case DELIVERY_INSTRUCTIONS:
-      return FieldTypeGroup::kAddress;
-
-    case CREDIT_CARD_NAME_FULL:
-    case CREDIT_CARD_NAME_FIRST:
-    case CREDIT_CARD_NAME_LAST:
-    case CREDIT_CARD_NUMBER:
-    case CREDIT_CARD_EXP_MONTH:
-    case CREDIT_CARD_EXP_2_DIGIT_YEAR:
-    case CREDIT_CARD_EXP_4_DIGIT_YEAR:
-    case CREDIT_CARD_EXP_DATE_2_DIGIT_YEAR:
-    case CREDIT_CARD_EXP_DATE_4_DIGIT_YEAR:
-    case CREDIT_CARD_TYPE:
-    case CREDIT_CARD_VERIFICATION_CODE:
-    case CREDIT_CARD_STANDALONE_VERIFICATION_CODE:
-      return FieldTypeGroup::kCreditCard;
-
-    case IBAN_VALUE:
-      return FieldTypeGroup::kIban;
-
-    case COMPANY_NAME:
-      return FieldTypeGroup::kCompany;
-
-    case PASSWORD:
-    case ACCOUNT_CREATION_PASSWORD:
-    case NOT_ACCOUNT_CREATION_PASSWORD:
-    case NEW_PASSWORD:
-    case PROBABLY_NEW_PASSWORD:
-    case NOT_NEW_PASSWORD:
-    case CONFIRMATION_PASSWORD:
-    case NOT_PASSWORD:
-    case SINGLE_USERNAME:
-    case NOT_USERNAME:
-    case SINGLE_USERNAME_FORGOT_PASSWORD:
-      return FieldTypeGroup::kPasswordField;
-
-    case NO_SERVER_DATA:
-    case EMPTY_TYPE:
-    case AMBIGUOUS_TYPE:
-    case FIELD_WITH_DEFAULT_VALUE:
-    case MERCHANT_EMAIL_SIGNUP:
-    case MERCHANT_PROMO_CODE:
-    case UPI_VPA:
-      return FieldTypeGroup::kNoGroup;
-
-    case MAX_VALID_FIELD_TYPE:
-      NOTREACHED();
-      return FieldTypeGroup::kNoGroup;
-
-    case USERNAME:
-      return FieldTypeGroup::kUsernameField;
-
-    case BIRTHDATE_DAY:
-    case BIRTHDATE_MONTH:
-    case BIRTHDATE_4_DIGIT_YEAR:
-      return FieldTypeGroup::kBirthdateField;
-
-    case PRICE:
-    case SEARCH_TERM:
-    case NUMERIC_QUANTITY:
-    case ONE_TIME_CODE:
-      return FieldTypeGroup::kUnfillable;
-
-    case UNKNOWN_TYPE:
-      return FieldTypeGroup::kNoGroup;
-  }
-}
-
-FieldTypeGroup GroupTypeOfHtmlFieldType(HtmlFieldType field_type) {
-  switch (field_type) {
-    case HtmlFieldType::kName:
-    case HtmlFieldType::kHonorificPrefix:
-    case HtmlFieldType::kGivenName:
-    case HtmlFieldType::kAdditionalName:
-    case HtmlFieldType::kAdditionalNameInitial:
-    case HtmlFieldType::kFamilyName:
-      return FieldTypeGroup::kName;
-
-    case HtmlFieldType::kOrganization:
-      return FieldTypeGroup::kCompany;
-
-    case HtmlFieldType::kStreetAddress:
-    case HtmlFieldType::kAddressLine1:
-    case HtmlFieldType::kAddressLine2:
-    case HtmlFieldType::kAddressLine3:
-    case HtmlFieldType::kAddressLevel1:
-    case HtmlFieldType::kAddressLevel2:
-    case HtmlFieldType::kAddressLevel3:
-    case HtmlFieldType::kCountryCode:
-    case HtmlFieldType::kCountryName:
-    case HtmlFieldType::kPostalCode:
-    case HtmlFieldType::kFullAddress:
-      return FieldTypeGroup::kAddress;
-
-    case HtmlFieldType::kCreditCardNameFull:
-    case HtmlFieldType::kCreditCardNameFirst:
-    case HtmlFieldType::kCreditCardNameLast:
-    case HtmlFieldType::kCreditCardNumber:
-    case HtmlFieldType::kCreditCardExp:
-    case HtmlFieldType::kCreditCardExpDate2DigitYear:
-    case HtmlFieldType::kCreditCardExpDate4DigitYear:
-    case HtmlFieldType::kCreditCardExpMonth:
-    case HtmlFieldType::kCreditCardExpYear:
-    case HtmlFieldType::kCreditCardExp2DigitYear:
-    case HtmlFieldType::kCreditCardExp4DigitYear:
-    case HtmlFieldType::kCreditCardVerificationCode:
-    case HtmlFieldType::kCreditCardType:
-      return FieldTypeGroup::kCreditCard;
-
-    case HtmlFieldType::kTransactionAmount:
-    case HtmlFieldType::kTransactionCurrency:
-      return FieldTypeGroup::kTransaction;
-
-    case HtmlFieldType::kTel:
-    case HtmlFieldType::kTelCountryCode:
-    case HtmlFieldType::kTelNational:
-    case HtmlFieldType::kTelAreaCode:
-    case HtmlFieldType::kTelLocal:
-    case HtmlFieldType::kTelLocalPrefix:
-    case HtmlFieldType::kTelLocalSuffix:
-    case HtmlFieldType::kTelExtension:
-      return FieldTypeGroup::kPhone;
-
-    case HtmlFieldType::kEmail:
-      return FieldTypeGroup::kEmail;
-
-    case HtmlFieldType::kBirthdateDay:
-    case HtmlFieldType::kBirthdateMonth:
-    case HtmlFieldType::kBirthdateYear:
-      return FieldTypeGroup::kBirthdateField;
-
-    case HtmlFieldType::kUpiVpa:
-      return FieldTypeGroup::kNoGroup;
-
-    case HtmlFieldType::kOneTimeCode:
-      return FieldTypeGroup::kNoGroup;
-
-    case HtmlFieldType::kMerchantPromoCode:
-      return FieldTypeGroup::kNoGroup;
-
-    case HtmlFieldType::kIban:
-      return FieldTypeGroup::kNoGroup;
-
-    case HtmlFieldType::kUnspecified:
-    case HtmlFieldType::kUnrecognized:
-      return FieldTypeGroup::kNoGroup;
-  }
-  NOTREACHED();
-  return FieldTypeGroup::kNoGroup;
-}
-
 AutofillType::ServerPrediction::ServerPrediction() = default;
 
 AutofillType::ServerPrediction::ServerPrediction(const AutofillField& field) {
@@ -273,13 +54,8 @@
 AutofillType::AutofillType(HtmlFieldType field_type) : html_type_(field_type) {}
 
 FieldTypeGroup AutofillType::group() const {
-  FieldTypeGroup result = FieldTypeGroup::kNoGroup;
-  if (server_type_ != UNKNOWN_TYPE) {
-    result = GroupTypeOfServerFieldType(server_type_);
-  } else {
-    result = GroupTypeOfHtmlFieldType(html_type_);
-  }
-  return result;
+  return server_type_ != UNKNOWN_TYPE ? GroupTypeOfServerFieldType(server_type_)
+                                      : GroupTypeOfHtmlFieldType(html_type_);
 }
 
 bool AutofillType::IsUnknown() const {
@@ -289,158 +65,9 @@
 }
 
 ServerFieldType AutofillType::GetStorableType() const {
-  if (server_type_ != UNKNOWN_TYPE)
-    return server_type_;
-
-  switch (html_type_) {
-    case HtmlFieldType::kUnspecified:
-      return UNKNOWN_TYPE;
-
-    case HtmlFieldType::kName:
-      return NAME_FULL;
-
-    case HtmlFieldType::kHonorificPrefix:
-      return NAME_HONORIFIC_PREFIX;
-
-    case HtmlFieldType::kGivenName:
-      return NAME_FIRST;
-
-    case HtmlFieldType::kAdditionalName:
-      return NAME_MIDDLE;
-
-    case HtmlFieldType::kFamilyName:
-      return NAME_LAST;
-
-    case HtmlFieldType::kOrganization:
-      return COMPANY_NAME;
-
-    case HtmlFieldType::kStreetAddress:
-      return ADDRESS_HOME_STREET_ADDRESS;
-
-    case HtmlFieldType::kAddressLine1:
-      return ADDRESS_HOME_LINE1;
-
-    case HtmlFieldType::kAddressLine2:
-      return ADDRESS_HOME_LINE2;
-
-    case HtmlFieldType::kAddressLine3:
-      return ADDRESS_HOME_LINE3;
-
-    case HtmlFieldType::kAddressLevel1:
-      return ADDRESS_HOME_STATE;
-
-    case HtmlFieldType::kAddressLevel2:
-      return ADDRESS_HOME_CITY;
-
-    case HtmlFieldType::kAddressLevel3:
-      return ADDRESS_HOME_DEPENDENT_LOCALITY;
-
-    case HtmlFieldType::kCountryCode:
-    case HtmlFieldType::kCountryName:
-      return ADDRESS_HOME_COUNTRY;
-
-    case HtmlFieldType::kPostalCode:
-      return ADDRESS_HOME_ZIP;
-
-    // Full address is composed of other types; it can't be stored.
-    case HtmlFieldType::kFullAddress:
-      return UNKNOWN_TYPE;
-
-    case HtmlFieldType::kCreditCardNameFull:
-      return CREDIT_CARD_NAME_FULL;
-
-    case HtmlFieldType::kCreditCardNameFirst:
-      return CREDIT_CARD_NAME_FIRST;
-
-    case HtmlFieldType::kCreditCardNameLast:
-      return CREDIT_CARD_NAME_LAST;
-
-    case HtmlFieldType::kCreditCardNumber:
-      return CREDIT_CARD_NUMBER;
-
-    case HtmlFieldType::kCreditCardExp:
-      return CREDIT_CARD_EXP_DATE_4_DIGIT_YEAR;
-
-    case HtmlFieldType::kCreditCardExpMonth:
-      return CREDIT_CARD_EXP_MONTH;
-
-    case HtmlFieldType::kCreditCardExpYear:
-      return CREDIT_CARD_EXP_4_DIGIT_YEAR;
-
-    case HtmlFieldType::kCreditCardVerificationCode:
-      return CREDIT_CARD_VERIFICATION_CODE;
-
-    case HtmlFieldType::kCreditCardType:
-      return CREDIT_CARD_TYPE;
-
-    case HtmlFieldType::kTel:
-      return PHONE_HOME_WHOLE_NUMBER;
-
-    case HtmlFieldType::kTelCountryCode:
-      return PHONE_HOME_COUNTRY_CODE;
-
-    case HtmlFieldType::kTelNational:
-      return PHONE_HOME_CITY_AND_NUMBER;
-
-    case HtmlFieldType::kTelAreaCode:
-      return PHONE_HOME_CITY_CODE;
-
-    case HtmlFieldType::kTelLocal:
-      return PHONE_HOME_NUMBER;
-
-    case HtmlFieldType::kTelLocalPrefix:
-      return PHONE_HOME_NUMBER_PREFIX;
-
-    case HtmlFieldType::kTelLocalSuffix:
-      return PHONE_HOME_NUMBER_SUFFIX;
-
-    case HtmlFieldType::kTelExtension:
-      return PHONE_HOME_EXTENSION;
-
-    case HtmlFieldType::kEmail:
-      return EMAIL_ADDRESS;
-
-    case HtmlFieldType::kBirthdateDay:
-      return BIRTHDATE_DAY;
-    case HtmlFieldType::kBirthdateMonth:
-      return BIRTHDATE_MONTH;
-    case HtmlFieldType::kBirthdateYear:
-      return BIRTHDATE_4_DIGIT_YEAR;
-
-    case HtmlFieldType::kAdditionalNameInitial:
-      return NAME_MIDDLE_INITIAL;
-
-    case HtmlFieldType::kCreditCardExpDate2DigitYear:
-      return CREDIT_CARD_EXP_DATE_2_DIGIT_YEAR;
-
-    case HtmlFieldType::kCreditCardExpDate4DigitYear:
-      return CREDIT_CARD_EXP_DATE_4_DIGIT_YEAR;
-
-    case HtmlFieldType::kCreditCardExp2DigitYear:
-      return CREDIT_CARD_EXP_2_DIGIT_YEAR;
-
-    case HtmlFieldType::kCreditCardExp4DigitYear:
-      return CREDIT_CARD_EXP_4_DIGIT_YEAR;
-
-    case HtmlFieldType::kUpiVpa:
-      return UPI_VPA;
-
-    case HtmlFieldType::kOneTimeCode:
-      return ONE_TIME_CODE;
-
-    // These types aren't stored; they're transient.
-    case HtmlFieldType::kTransactionAmount:
-    case HtmlFieldType::kTransactionCurrency:
-    case HtmlFieldType::kMerchantPromoCode:
-    case HtmlFieldType::kIban:
-      return UNKNOWN_TYPE;
-
-    case HtmlFieldType::kUnrecognized:
-      return UNKNOWN_TYPE;
-  }
-
-  NOTREACHED();
-  return UNKNOWN_TYPE;
+  return server_type_ != UNKNOWN_TYPE
+             ? server_type_
+             : HtmlFieldTypeToBestCorrespondingServerFieldType(html_type_);
 }
 
 std::string AutofillType::ToString() const {
diff --git a/components/autofill/core/browser/autofill_type.h b/components/autofill/core/browser/autofill_type.h
index 242fb2ed..defac33 100644
--- a/components/autofill/core/browser/autofill_type.h
+++ b/components/autofill/core/browser/autofill_type.h
@@ -17,19 +17,6 @@
 
 class AutofillField;
 
-// Helper method that takes a `ServerFieldType` and returns its corresponding
-// `FieldTypeGroup` value.
-FieldTypeGroup GroupTypeOfServerFieldType(ServerFieldType field_type);
-
-// Helper method that takes a `HtmlFieldType` and `HtmlFieldMode`, then returns
-// their corresponding `FieldTypeGroup` value.
-FieldTypeGroup GroupTypeOfHtmlFieldType(HtmlFieldType field_type);
-
-// Helper method that takes a `FieldTypeGroup` and returns a
-// `ServerFieldTypeSet` containing all `ServerFieldType`(s) that matches the
-// target group.
-ServerFieldTypeSet GetServerFieldTypesOfGroup(FieldTypeGroup group);
-
 // The high-level description of Autofill types, used to categorize form fields
 // and for associating form fields with form values in the Web Database.
 class AutofillType {
diff --git a/components/autofill/core/browser/data_model/address.cc b/components/autofill/core/browser/data_model/address.cc
index be8fa9c..4082c7717 100644
--- a/components/autofill/core/browser/data_model/address.cc
+++ b/components/autofill/core/browser/data_model/address.cc
@@ -31,13 +31,14 @@
 
 namespace autofill {
 
-Address::Address()
-    : structured_address_(
-          i18n_model_definition::CreateAddressComponentModel()){};
+Address::Address() : Address(AddressCountryCode("")) {}
 
-Address::Address(const Address& address) {
-  *this = address;
-}
+Address::Address(AddressCountryCode country_code)
+    : structured_address_(
+          i18n_model_definition::CreateAddressComponentModel(country_code)),
+      is_legacy_address_(
+          !i18n_model_definition::IsCustomHierarchyAvailableForCountry(
+              country_code)) {}
 
 Address::~Address() = default;
 
@@ -45,6 +46,14 @@
   if (this == &address) {
     return *this;
   }
+
+  // Only build an i18n address hierarchy for `this` in case the copied
+  // `address` uses an i18n hierarchy. Otherwise the legacy address should be
+  // used.
+  structured_address_ = i18n_model_definition::CreateAddressComponentModel(
+      address.GetAddressCountryCode());
+  is_legacy_address_ = address.IsLegacyAddress();
+
   structured_address_->CopyFrom(address.GetStructuredAddress());
   return *this;
 };
@@ -92,6 +101,12 @@
   return *structured_address_.get();
 }
 
+AddressCountryCode Address::GetAddressCountryCode() const {
+  std::string country_code = base::UTF16ToUTF8(
+      structured_address_->GetValueForType(ADDRESS_HOME_COUNTRY));
+  return AddressCountryCode(country_code);
+}
+
 std::u16string Address::GetRawInfo(ServerFieldType type) const {
   DCHECK_EQ(FieldTypeGroup::kAddress, AutofillType(type).group());
 
diff --git a/components/autofill/core/browser/data_model/address.h b/components/autofill/core/browser/data_model/address.h
index 8cbf3260..a00f954 100644
--- a/components/autofill/core/browser/data_model/address.h
+++ b/components/autofill/core/browser/data_model/address.h
@@ -9,6 +9,7 @@
 #include <vector>
 
 #include "base/compiler_specific.h"
+#include "components/autofill/core/browser/country_type.h"
 #include "components/autofill/core/browser/data_model/autofill_structured_address.h"
 #include "components/autofill/core/browser/data_model/form_group.h"
 #include "components/autofill/core/browser/geo/alternative_state_name_map.h"
@@ -19,7 +20,7 @@
 class Address : public FormGroup {
  public:
   Address();
-  Address(const Address& address);
+  explicit Address(AddressCountryCode country_code);
   ~Address() override;
 
   Address& operator=(const Address& address);
@@ -58,6 +59,12 @@
   // Returns a constant reference to |structured_address_|.
   const AddressComponent& GetStructuredAddress() const;
 
+  // Returns the structured address country code.
+  AddressCountryCode GetAddressCountryCode() const;
+
+  // Returns whether the structured address uses the legacy address hierarchy.
+  bool IsLegacyAddress() const { return is_legacy_address_; }
+
  private:
   // FormGroup:
   void GetSupportedTypes(ServerFieldTypeSet* supported_types) const override;
@@ -75,6 +82,9 @@
   // This data structure holds the address information if the structured address
   // feature is enabled.
   std::unique_ptr<AddressComponent> structured_address_;
+
+  // Whether the structured address uses the legacy hierarchy.
+  bool is_legacy_address_;
 };
 
 }  // namespace autofill
diff --git a/components/autofill/core/browser/data_model/address_unittest.cc b/components/autofill/core/browser/data_model/address_unittest.cc
index ca4e7e8..68017dc 100644
--- a/components/autofill/core/browser/data_model/address_unittest.cc
+++ b/components/autofill/core/browser/data_model/address_unittest.cc
@@ -557,4 +557,33 @@
             VerificationStatus::kNoStatus);
 }
 
+class I18nAddressTest : public testing::Test {
+ public:
+  I18nAddressTest() = default;
+
+ private:
+  base::test::ScopedFeatureList features_{
+      features::kAutofillUseI18nAddressModel};
+};
+
+TEST_F(I18nAddressTest, IsLegacyAddress) {
+  Address address;
+  EXPECT_TRUE(address.IsLegacyAddress());
+
+  Address address_br(AddressCountryCode("BR"));
+  EXPECT_FALSE(address_br.IsLegacyAddress());
+
+  Address address_mx(AddressCountryCode("MX"));
+  EXPECT_FALSE(address_mx.IsLegacyAddress());
+
+  Address i18_copy;
+  // The legacy address should adopt the non legacy one.
+  i18_copy = address_mx;
+  EXPECT_FALSE(i18_copy.IsLegacyAddress());
+
+  Address legacy_copy;
+  legacy_copy = address;
+  EXPECT_TRUE(legacy_copy.IsLegacyAddress());
+}
+
 }  // namespace autofill
diff --git a/components/autofill/core/browser/data_model/autofill_i18n_api.cc b/components/autofill/core/browser/data_model/autofill_i18n_api.cc
index 7dbebc84..e6e3f01 100644
--- a/components/autofill/core/browser/data_model/autofill_i18n_api.cc
+++ b/components/autofill/core/browser/data_model/autofill_i18n_api.cc
@@ -32,6 +32,9 @@
 using TreeDefinition =
     base::flat_map<ServerFieldType, base::span<const ServerFieldType>>;
 
+using TreeEdgesList =
+    base::span<const autofill::i18n_model_definition::FieldTypeDescription>;
+
 // Address lines are currently the only computed types. These are are shared by
 // all countries.
 constexpr ServerFieldTypeSet kAddressComputedTypes = {
@@ -174,8 +177,7 @@
   return BuildTreeNode(root, std::move(children));
 }
 
-base::span<const autofill::i18n_model_definition::FieldTypeDescription>
-GetTreeEdges(AddressCountryCode country_code) {
+TreeEdgesList GetTreeEdges(AddressCountryCode country_code) {
   // Always use legacy rules while `kAutofillUseI18nAddressModel` is not rolled
   // out.
   if (!base::FeatureList::IsEnabled(features::kAutofillUseI18nAddressModel)) {
@@ -194,8 +196,7 @@
 
 std::unique_ptr<AddressComponent> CreateAddressComponentModel(
     AddressCountryCode country_code) {
-  base::span<const autofill::i18n_model_definition::FieldTypeDescription>
-      tree_edges = GetTreeEdges(country_code);
+  TreeEdgesList tree_edges = GetTreeEdges(country_code);
 
   // Convert the list of node properties into an adjacency lookup table.
   // For each field type it stores the list of children of the field type.
@@ -277,4 +278,13 @@
       });
 }
 
+bool IsCustomHierarchyAvailableForCountry(AddressCountryCode country_code) {
+  if (country_code->empty() ||
+      !base::FeatureList::IsEnabled(features::kAutofillUseI18nAddressModel)) {
+    return false;
+  }
+  return kAutofillModelRules.find(country_code.value()) !=
+         kAutofillModelRules.end();
+}
+
 }  // namespace autofill::i18n_model_definition
diff --git a/components/autofill/core/browser/data_model/autofill_i18n_api.h b/components/autofill/core/browser/data_model/autofill_i18n_api.h
index ac3dc45..b6ba1b7 100644
--- a/components/autofill/core/browser/data_model/autofill_i18n_api.h
+++ b/components/autofill/core/browser/data_model/autofill_i18n_api.h
@@ -44,6 +44,9 @@
 bool IsTypeEnabledForCountry(ServerFieldType field_type,
                              AddressCountryCode country_code);
 
+// Returns whether there is a custom address hierarchy available for the
+// provided `country_code`.
+bool IsCustomHierarchyAvailableForCountry(AddressCountryCode country_code);
 }  // namespace autofill::i18n_model_definition
 
 #endif  // COMPONENTS_AUTOFILL_CORE_BROWSER_DATA_MODEL_AUTOFILL_I18N_API_H_
diff --git a/components/autofill/core/browser/data_model/autofill_profile.cc b/components/autofill/core/browser/data_model/autofill_profile.cc
index 6245686..6eb9b2909 100644
--- a/components/autofill/core/browser/data_model/autofill_profile.cc
+++ b/components/autofill/core/browser/data_model/autofill_profile.cc
@@ -225,9 +225,12 @@
 AutofillProfile::AutofillProfile()
     : AutofillProfile(Source::kLocalOrSyncable) {}
 
-AutofillProfile::AutofillProfile(const std::string& guid, Source source)
+AutofillProfile::AutofillProfile(const std::string& guid,
+                                 Source source,
+                                 AddressCountryCode country_code)
     : guid_(guid),
       phone_number_(this),
+      address_(country_code),
       record_type_(LOCAL_PROFILE),
       has_converted_(false),
       source_(source),
@@ -235,9 +238,10 @@
       last_modifier_id_(kInitialCreatorOrModifierChrome),
       token_quality_(this) {}
 
-AutofillProfile::AutofillProfile(Source source)
+AutofillProfile::AutofillProfile(Source source, AddressCountryCode country_code)
     : AutofillProfile(base::Uuid::GenerateRandomV4().AsLowercaseString(),
-                      source) {}
+                      source,
+                      country_code) {}
 
 // TODO(crbug.com/1177366): Remove this constructor.
 AutofillProfile::AutofillProfile(RecordType type, const std::string& server_id)
@@ -676,6 +680,12 @@
          !IsSubsetOf(comparator, profile);
 }
 
+AddressCountryCode AutofillProfile::GetAddressCountryCode() const {
+  std::string country_code =
+      base::UTF16ToUTF8(GetRawInfo(ADDRESS_HOME_COUNTRY));
+  return AddressCountryCode(country_code);
+}
+
 void AutofillProfile::OverwriteDataFrom(const AutofillProfile& profile) {
   DCHECK_EQ(guid(), profile.guid());
 
@@ -920,7 +930,8 @@
 
   // A copy of |this| pruned down to contain only data for the address fields in
   // |included_fields|.
-  AutofillProfile trimmed_profile(guid());
+  AutofillProfile trimmed_profile(guid(), Source::kLocalOrSyncable,
+                                  GetAddressCountryCode());
   trimmed_profile.SetInfo(AutofillType(HtmlFieldType::kCountryCode),
                           profile_region_code, app_locale);
   trimmed_profile.set_language_code(language_code());
diff --git a/components/autofill/core/browser/data_model/autofill_profile.h b/components/autofill/core/browser/data_model/autofill_profile.h
index e69364eb..9c8b3f8 100644
--- a/components/autofill/core/browser/data_model/autofill_profile.h
+++ b/components/autofill/core/browser/data_model/autofill_profile.h
@@ -16,6 +16,7 @@
 
 #include "base/time/time.h"
 #include "components/autofill/core/browser/autofill_type.h"
+#include "components/autofill/core/browser/country_type.h"
 #include "components/autofill/core/browser/data_model/address.h"
 #include "components/autofill/core/browser/data_model/autofill_data_model.h"
 #include "components/autofill/core/browser/data_model/birthdate.h"
@@ -65,9 +66,13 @@
   static constexpr int kInitialCreatorOrModifierChrome = 70073;
 
   AutofillProfile();
-  explicit AutofillProfile(const std::string& guid,
-                           Source source = Source::kLocalOrSyncable);
-  explicit AutofillProfile(Source source);
+  explicit AutofillProfile(
+      const std::string& guid,
+      Source source = Source::kLocalOrSyncable,
+      AddressCountryCode country_code = AddressCountryCode(""));
+  explicit AutofillProfile(
+      Source source,
+      AddressCountryCode country_code = AddressCountryCode(""));
 
   // Server profile constructor. The type must be SERVER_PROFILE (this serves
   // to differentiate this constructor). |server_id| can be empty. If empty,
@@ -281,6 +286,9 @@
   // Returns a constant reference to the |address_| field.
   const Address& GetAddress() const { return address_; }
 
+  // Returns the profile country code.
+  AddressCountryCode GetAddressCountryCode() const;
+
   // Returns the label of the profile.
   const std::string& profile_label() const { return profile_label_; }
 
diff --git a/components/autofill/core/browser/data_model/autofill_structured_address_component_unittest.cc b/components/autofill/core/browser/data_model/autofill_structured_address_component_unittest.cc
index 325bd4d..dfe59bb 100644
--- a/components/autofill/core/browser/data_model/autofill_structured_address_component_unittest.cc
+++ b/components/autofill/core/browser/data_model/autofill_structured_address_component_unittest.cc
@@ -340,7 +340,7 @@
                                 NAME_LAST, NAME_FULL}));
 }
 
-// Tests the comparison of thw atoms of the same type.
+// Tests the comparison of the atoms of the same type.
 TEST(AutofillStructuredAddressAddressComponent, TestComparison_Atom) {
   AddressComponent left(NAME_FIRST, {}, MergeMode::kReplaceEmpty);
   AddressComponent right(NAME_FIRST, {}, MergeMode::kReplaceEmpty);
diff --git a/components/autofill/core/browser/field_types.cc b/components/autofill/core/browser/field_types.cc
index 4e9a19fe..3ad40b22 100644
--- a/components/autofill/core/browser/field_types.cc
+++ b/components/autofill/core/browser/field_types.cc
@@ -7,13 +7,26 @@
 #include "base/containers/fixed_flat_map.h"
 #include "base/no_destructor.h"
 #include "base/notreached.h"
-#include "base/strings/string_piece.h"
 #include "components/autofill/core/common/autofill_features.h"
 #include "components/autofill/core/common/autofill_payments_features.h"
-#include "third_party/abseil-cpp/absl/types/optional.h"
 
 namespace autofill {
 
+std::ostream& operator<<(std::ostream& o, ServerFieldTypeSet field_type_set) {
+  o << "[";
+  bool first = true;
+  for (const auto type : field_type_set) {
+    if (!first) {
+      o << ", ";
+    } else {
+      first = false;
+    }
+    o << FieldTypeToStringPiece(type);
+  }
+  o << "]";
+  return o;
+}
+
 // This map should be extended for every added ServerFieldType.
 // You are free to add or remove the String representation of ServerFieldType,
 // but don't change any existing values, Android WebView presents them to
@@ -242,14 +255,13 @@
   return false;
 }
 
-base::StringPiece FieldTypeToStringPiece(ServerFieldType type) {
+std::string_view FieldTypeToStringPiece(ServerFieldType type) {
   static const base::NoDestructor<
-      base::flat_map<ServerFieldType, base::StringPiece>>
-      kFieldTypeToTypeName(
-          base::MakeFlatMap<ServerFieldType, base::StringPiece>(
-              kTypeNameToFieldType, {}, [](const auto& item) {
-                return std::make_pair(item.second, item.first);
-              }));
+      base::flat_map<ServerFieldType, std::string_view>>
+      kFieldTypeToTypeName(base::MakeFlatMap<ServerFieldType, std::string_view>(
+          kTypeNameToFieldType, {}, [](const auto& item) {
+            return std::make_pair(item.second, item.first);
+          }));
 
   auto it = kFieldTypeToTypeName->find(type);
   if (it != kFieldTypeToTypeName->end()) {
@@ -258,27 +270,12 @@
   NOTREACHED_NORETURN();
 }
 
-ServerFieldType TypeNameToFieldType(base::StringPiece type_name) {
+ServerFieldType TypeNameToFieldType(std::string_view type_name) {
   auto* it = kTypeNameToFieldType.find(type_name);
   return it != kTypeNameToFieldType.end() ? it->second : UNKNOWN_TYPE;
 }
 
-std::ostream& operator<<(std::ostream& o, ServerFieldTypeSet field_type_set) {
-  o << "[";
-  bool first = true;
-  for (const auto type : field_type_set) {
-    if (!first) {
-      o << ", ";
-    } else {
-      first = false;
-    }
-    o << FieldTypeToStringPiece(type);
-  }
-  o << "]";
-  return o;
-}
-
-base::StringPiece FieldTypeToDeveloperRepresentationString(
+std::string_view FieldTypeToDeveloperRepresentationString(
     ServerFieldType type) {
   switch (type) {
     case NO_SERVER_DATA:
@@ -449,4 +446,373 @@
   NOTREACHED_NORETURN();
 }
 
+ServerFieldTypeSet GetServerFieldTypesOfGroup(FieldTypeGroup group) {
+  ServerFieldTypeSet fields_matching_group;
+  for (ServerFieldType server_field_type : kAllServerFieldTypes) {
+    if (GroupTypeOfServerFieldType(server_field_type) == group) {
+      fields_matching_group.insert(server_field_type);
+    }
+  }
+  return fields_matching_group;
+}
+
+FieldTypeGroup GroupTypeOfServerFieldType(ServerFieldType field_type) {
+  switch (field_type) {
+    case NAME_HONORIFIC_PREFIX:
+    case NAME_FIRST:
+    case NAME_MIDDLE:
+    case NAME_LAST:
+    case NAME_LAST_FIRST:
+    case NAME_LAST_SECOND:
+    case NAME_LAST_CONJUNCTION:
+    case NAME_MIDDLE_INITIAL:
+    case NAME_FULL:
+    case NAME_SUFFIX:
+    case NAME_FULL_WITH_HONORIFIC_PREFIX:
+      return FieldTypeGroup::kName;
+
+    case EMAIL_ADDRESS:
+    case USERNAME_AND_EMAIL_ADDRESS:
+      return FieldTypeGroup::kEmail;
+
+    case PHONE_HOME_NUMBER:
+    case PHONE_HOME_NUMBER_PREFIX:
+    case PHONE_HOME_NUMBER_SUFFIX:
+    case PHONE_HOME_CITY_CODE:
+    case PHONE_HOME_CITY_CODE_WITH_TRUNK_PREFIX:
+    case PHONE_HOME_COUNTRY_CODE:
+    case PHONE_HOME_CITY_AND_NUMBER:
+    case PHONE_HOME_CITY_AND_NUMBER_WITHOUT_TRUNK_PREFIX:
+    case PHONE_HOME_WHOLE_NUMBER:
+    case PHONE_HOME_EXTENSION:
+      return FieldTypeGroup::kPhone;
+
+    case ADDRESS_HOME_LINE1:
+    case ADDRESS_HOME_LINE2:
+    case ADDRESS_HOME_LINE3:
+    case ADDRESS_HOME_APT_NUM:
+    case ADDRESS_HOME_CITY:
+    case ADDRESS_HOME_STATE:
+    case ADDRESS_HOME_ZIP:
+    case ADDRESS_HOME_COUNTRY:
+    case ADDRESS_HOME_STREET_ADDRESS:
+    case ADDRESS_HOME_SORTING_CODE:
+    case ADDRESS_HOME_DEPENDENT_LOCALITY:
+    case ADDRESS_HOME_STREET_NAME:
+    case ADDRESS_HOME_HOUSE_NUMBER:
+    case ADDRESS_HOME_SUBPREMISE:
+    case ADDRESS_HOME_OTHER_SUBUNIT:
+    case ADDRESS_HOME_ADDRESS:
+    case ADDRESS_HOME_ADDRESS_WITH_NAME:
+    case ADDRESS_HOME_FLOOR:
+    case ADDRESS_HOME_LANDMARK:
+    case ADDRESS_HOME_BETWEEN_STREETS:
+    case ADDRESS_HOME_BETWEEN_STREETS_1:
+    case ADDRESS_HOME_BETWEEN_STREETS_2:
+    case ADDRESS_HOME_ADMIN_LEVEL2:
+    case ADDRESS_HOME_STREET_LOCATION:
+    case ADDRESS_HOME_OVERFLOW:
+    case ADDRESS_HOME_OVERFLOW_AND_LANDMARK:
+    case ADDRESS_HOME_BETWEEN_STREETS_OR_LANDMARK:
+    case DELIVERY_INSTRUCTIONS:
+      return FieldTypeGroup::kAddress;
+
+    case CREDIT_CARD_NAME_FULL:
+    case CREDIT_CARD_NAME_FIRST:
+    case CREDIT_CARD_NAME_LAST:
+    case CREDIT_CARD_NUMBER:
+    case CREDIT_CARD_EXP_MONTH:
+    case CREDIT_CARD_EXP_2_DIGIT_YEAR:
+    case CREDIT_CARD_EXP_4_DIGIT_YEAR:
+    case CREDIT_CARD_EXP_DATE_2_DIGIT_YEAR:
+    case CREDIT_CARD_EXP_DATE_4_DIGIT_YEAR:
+    case CREDIT_CARD_TYPE:
+    case CREDIT_CARD_VERIFICATION_CODE:
+    case CREDIT_CARD_STANDALONE_VERIFICATION_CODE:
+      return FieldTypeGroup::kCreditCard;
+
+    case IBAN_VALUE:
+      return FieldTypeGroup::kIban;
+
+    case COMPANY_NAME:
+      return FieldTypeGroup::kCompany;
+
+    case PASSWORD:
+    case ACCOUNT_CREATION_PASSWORD:
+    case NOT_ACCOUNT_CREATION_PASSWORD:
+    case NEW_PASSWORD:
+    case PROBABLY_NEW_PASSWORD:
+    case NOT_NEW_PASSWORD:
+    case CONFIRMATION_PASSWORD:
+    case NOT_PASSWORD:
+    case SINGLE_USERNAME:
+    case NOT_USERNAME:
+    case SINGLE_USERNAME_FORGOT_PASSWORD:
+      return FieldTypeGroup::kPasswordField;
+
+    case NO_SERVER_DATA:
+    case EMPTY_TYPE:
+    case AMBIGUOUS_TYPE:
+    case FIELD_WITH_DEFAULT_VALUE:
+    case MERCHANT_EMAIL_SIGNUP:
+    case MERCHANT_PROMO_CODE:
+    case UPI_VPA:
+      return FieldTypeGroup::kNoGroup;
+
+    case USERNAME:
+      return FieldTypeGroup::kUsernameField;
+
+    case BIRTHDATE_DAY:
+    case BIRTHDATE_MONTH:
+    case BIRTHDATE_4_DIGIT_YEAR:
+      return FieldTypeGroup::kBirthdateField;
+
+    case PRICE:
+    case SEARCH_TERM:
+    case NUMERIC_QUANTITY:
+    case ONE_TIME_CODE:
+      return FieldTypeGroup::kUnfillable;
+
+    case UNKNOWN_TYPE:
+      return FieldTypeGroup::kNoGroup;
+
+    case MAX_VALID_FIELD_TYPE:
+      break;
+  }
+  NOTREACHED_NORETURN();
+}
+
+FieldTypeGroup GroupTypeOfHtmlFieldType(HtmlFieldType field_type) {
+  switch (field_type) {
+    case HtmlFieldType::kName:
+    case HtmlFieldType::kHonorificPrefix:
+    case HtmlFieldType::kGivenName:
+    case HtmlFieldType::kAdditionalName:
+    case HtmlFieldType::kAdditionalNameInitial:
+    case HtmlFieldType::kFamilyName:
+      return FieldTypeGroup::kName;
+
+    case HtmlFieldType::kOrganization:
+      return FieldTypeGroup::kCompany;
+
+    case HtmlFieldType::kStreetAddress:
+    case HtmlFieldType::kAddressLine1:
+    case HtmlFieldType::kAddressLine2:
+    case HtmlFieldType::kAddressLine3:
+    case HtmlFieldType::kAddressLevel1:
+    case HtmlFieldType::kAddressLevel2:
+    case HtmlFieldType::kAddressLevel3:
+    case HtmlFieldType::kCountryCode:
+    case HtmlFieldType::kCountryName:
+    case HtmlFieldType::kPostalCode:
+    case HtmlFieldType::kFullAddress:
+      return FieldTypeGroup::kAddress;
+
+    case HtmlFieldType::kCreditCardNameFull:
+    case HtmlFieldType::kCreditCardNameFirst:
+    case HtmlFieldType::kCreditCardNameLast:
+    case HtmlFieldType::kCreditCardNumber:
+    case HtmlFieldType::kCreditCardExp:
+    case HtmlFieldType::kCreditCardExpDate2DigitYear:
+    case HtmlFieldType::kCreditCardExpDate4DigitYear:
+    case HtmlFieldType::kCreditCardExpMonth:
+    case HtmlFieldType::kCreditCardExpYear:
+    case HtmlFieldType::kCreditCardExp2DigitYear:
+    case HtmlFieldType::kCreditCardExp4DigitYear:
+    case HtmlFieldType::kCreditCardVerificationCode:
+    case HtmlFieldType::kCreditCardType:
+      return FieldTypeGroup::kCreditCard;
+
+    case HtmlFieldType::kTransactionAmount:
+    case HtmlFieldType::kTransactionCurrency:
+      return FieldTypeGroup::kTransaction;
+
+    case HtmlFieldType::kTel:
+    case HtmlFieldType::kTelCountryCode:
+    case HtmlFieldType::kTelNational:
+    case HtmlFieldType::kTelAreaCode:
+    case HtmlFieldType::kTelLocal:
+    case HtmlFieldType::kTelLocalPrefix:
+    case HtmlFieldType::kTelLocalSuffix:
+    case HtmlFieldType::kTelExtension:
+      return FieldTypeGroup::kPhone;
+
+    case HtmlFieldType::kEmail:
+      return FieldTypeGroup::kEmail;
+
+    case HtmlFieldType::kBirthdateDay:
+    case HtmlFieldType::kBirthdateMonth:
+    case HtmlFieldType::kBirthdateYear:
+      return FieldTypeGroup::kBirthdateField;
+
+    case HtmlFieldType::kUpiVpa:
+      return FieldTypeGroup::kNoGroup;
+
+    case HtmlFieldType::kOneTimeCode:
+      return FieldTypeGroup::kNoGroup;
+
+    case HtmlFieldType::kMerchantPromoCode:
+      return FieldTypeGroup::kNoGroup;
+
+    case HtmlFieldType::kIban:
+      return FieldTypeGroup::kNoGroup;
+
+    case HtmlFieldType::kUnspecified:
+    case HtmlFieldType::kUnrecognized:
+      return FieldTypeGroup::kNoGroup;
+  }
+  NOTREACHED_NORETURN();
+}
+
+ServerFieldType HtmlFieldTypeToBestCorrespondingServerFieldType(
+    HtmlFieldType field_type) {
+  switch (field_type) {
+    case HtmlFieldType::kUnspecified:
+      return UNKNOWN_TYPE;
+
+    case HtmlFieldType::kName:
+      return NAME_FULL;
+
+    case HtmlFieldType::kHonorificPrefix:
+      return NAME_HONORIFIC_PREFIX;
+
+    case HtmlFieldType::kGivenName:
+      return NAME_FIRST;
+
+    case HtmlFieldType::kAdditionalName:
+      return NAME_MIDDLE;
+
+    case HtmlFieldType::kFamilyName:
+      return NAME_LAST;
+
+    case HtmlFieldType::kOrganization:
+      return COMPANY_NAME;
+
+    case HtmlFieldType::kStreetAddress:
+      return ADDRESS_HOME_STREET_ADDRESS;
+
+    case HtmlFieldType::kAddressLine1:
+      return ADDRESS_HOME_LINE1;
+
+    case HtmlFieldType::kAddressLine2:
+      return ADDRESS_HOME_LINE2;
+
+    case HtmlFieldType::kAddressLine3:
+      return ADDRESS_HOME_LINE3;
+
+    case HtmlFieldType::kAddressLevel1:
+      return ADDRESS_HOME_STATE;
+
+    case HtmlFieldType::kAddressLevel2:
+      return ADDRESS_HOME_CITY;
+
+    case HtmlFieldType::kAddressLevel3:
+      return ADDRESS_HOME_DEPENDENT_LOCALITY;
+
+    case HtmlFieldType::kCountryCode:
+    case HtmlFieldType::kCountryName:
+      return ADDRESS_HOME_COUNTRY;
+
+    case HtmlFieldType::kPostalCode:
+      return ADDRESS_HOME_ZIP;
+
+    // Full address is composed of other types; it can't be stored.
+    case HtmlFieldType::kFullAddress:
+      return UNKNOWN_TYPE;
+
+    case HtmlFieldType::kCreditCardNameFull:
+      return CREDIT_CARD_NAME_FULL;
+
+    case HtmlFieldType::kCreditCardNameFirst:
+      return CREDIT_CARD_NAME_FIRST;
+
+    case HtmlFieldType::kCreditCardNameLast:
+      return CREDIT_CARD_NAME_LAST;
+
+    case HtmlFieldType::kCreditCardNumber:
+      return CREDIT_CARD_NUMBER;
+
+    case HtmlFieldType::kCreditCardExp:
+      return CREDIT_CARD_EXP_DATE_4_DIGIT_YEAR;
+
+    case HtmlFieldType::kCreditCardExpMonth:
+      return CREDIT_CARD_EXP_MONTH;
+
+    case HtmlFieldType::kCreditCardExpYear:
+      return CREDIT_CARD_EXP_4_DIGIT_YEAR;
+
+    case HtmlFieldType::kCreditCardVerificationCode:
+      return CREDIT_CARD_VERIFICATION_CODE;
+
+    case HtmlFieldType::kCreditCardType:
+      return CREDIT_CARD_TYPE;
+
+    case HtmlFieldType::kTel:
+      return PHONE_HOME_WHOLE_NUMBER;
+
+    case HtmlFieldType::kTelCountryCode:
+      return PHONE_HOME_COUNTRY_CODE;
+
+    case HtmlFieldType::kTelNational:
+      return PHONE_HOME_CITY_AND_NUMBER;
+
+    case HtmlFieldType::kTelAreaCode:
+      return PHONE_HOME_CITY_CODE;
+
+    case HtmlFieldType::kTelLocal:
+      return PHONE_HOME_NUMBER;
+
+    case HtmlFieldType::kTelLocalPrefix:
+      return PHONE_HOME_NUMBER_PREFIX;
+
+    case HtmlFieldType::kTelLocalSuffix:
+      return PHONE_HOME_NUMBER_SUFFIX;
+
+    case HtmlFieldType::kTelExtension:
+      return PHONE_HOME_EXTENSION;
+
+    case HtmlFieldType::kEmail:
+      return EMAIL_ADDRESS;
+
+    case HtmlFieldType::kBirthdateDay:
+      return BIRTHDATE_DAY;
+    case HtmlFieldType::kBirthdateMonth:
+      return BIRTHDATE_MONTH;
+    case HtmlFieldType::kBirthdateYear:
+      return BIRTHDATE_4_DIGIT_YEAR;
+
+    case HtmlFieldType::kAdditionalNameInitial:
+      return NAME_MIDDLE_INITIAL;
+
+    case HtmlFieldType::kCreditCardExpDate2DigitYear:
+      return CREDIT_CARD_EXP_DATE_2_DIGIT_YEAR;
+
+    case HtmlFieldType::kCreditCardExpDate4DigitYear:
+      return CREDIT_CARD_EXP_DATE_4_DIGIT_YEAR;
+
+    case HtmlFieldType::kCreditCardExp2DigitYear:
+      return CREDIT_CARD_EXP_2_DIGIT_YEAR;
+
+    case HtmlFieldType::kCreditCardExp4DigitYear:
+      return CREDIT_CARD_EXP_4_DIGIT_YEAR;
+
+    case HtmlFieldType::kUpiVpa:
+      return UPI_VPA;
+
+    case HtmlFieldType::kOneTimeCode:
+      return ONE_TIME_CODE;
+
+    // These types aren't stored; they're transient.
+    case HtmlFieldType::kTransactionAmount:
+    case HtmlFieldType::kTransactionCurrency:
+    case HtmlFieldType::kMerchantPromoCode:
+    case HtmlFieldType::kIban:
+      return UNKNOWN_TYPE;
+
+    case HtmlFieldType::kUnrecognized:
+      return UNKNOWN_TYPE;
+  }
+  NOTREACHED_NORETURN();
+}
+
 }  // namespace autofill
diff --git a/components/autofill/core/browser/field_types.h b/components/autofill/core/browser/field_types.h
index 6e1051b..d044c0a9 100644
--- a/components/autofill/core/browser/field_types.h
+++ b/components/autofill/core/browser/field_types.h
@@ -124,7 +124,6 @@
 //
 // A Java counterpart will be generated for this enum.
 // GENERATED_JAVA_ENUM_PACKAGE: org.chromium.components.autofill
-//
 enum ServerFieldType {
   // Server indication that it has no data for the requested field.
   NO_SERVER_DATA = 0,
@@ -447,6 +446,34 @@
 
 std::ostream& operator<<(std::ostream& o, ServerFieldTypeSet field_type_set);
 
+// Returns whether the field can be filled with data.
+bool IsFillableFieldType(ServerFieldType field_type);
+
+// Returns a StringPiece describing |type|. As the StringPiece points to a
+// static string, you don't need to worry about dangling pointers.
+std::string_view FieldTypeToStringPiece(ServerFieldType type);
+
+// Inverse FieldTypeToStringPiece(). Checks that only valid ServerFieldType
+// string representations are being passed.
+ServerFieldType TypeNameToFieldType(std::string_view type_name);
+
+// Returns a StringPiece describing `type`. The devtools UI uses this string to
+// give developers feedback about autofill's filling decision. Note that
+// different field types can map to the same string representation for
+// simplicity of the feedback. Returns an empty string if the type is not
+// supported.
+std::string_view FieldTypeToDeveloperRepresentationString(ServerFieldType type);
+
+// There's a one-to-many relationship between FieldTypeGroup and
+// ServerFieldType as well as HtmlFieldType.
+ServerFieldTypeSet GetServerFieldTypesOfGroup(FieldTypeGroup group);
+FieldTypeGroup GroupTypeOfServerFieldType(ServerFieldType field_type);
+FieldTypeGroup GroupTypeOfHtmlFieldType(HtmlFieldType field_type);
+
+// Not all HtmlFieldTypes have a corresponding ServerFieldType.
+ServerFieldType HtmlFieldTypeToBestCorrespondingServerFieldType(
+    HtmlFieldType field_type);
+
 // Returns |raw_value| if it corresponds to a non-deprecated enumeration
 // constant of ServerFieldType other than MAX_VALID_FIELD_TYPE. Otherwise,
 // returns |fallback_value|.
@@ -463,8 +490,7 @@
            !(44 <= t && t <= 50) &&
            // Probably-account creation password (value 94) is deprecated.
            t != 94 &&
-           // Billing addresses (values [37,43], 78, 80, 82, 84) are
-           // deprecated.
+           // Billing addresses (values [37,43], 78, 80, 82, 84) are deprecated.
            !(37 <= t && t <= 43) && t != 78 && t != 80 && t != 82 && t != 84 &&
            // Billing phone numbers (values [62,66]) are deprecated.
            !(62 <= t && t <= 66) &&
@@ -493,25 +519,6 @@
   return fields;
 }();
 
-// Returns whether the field can be filled with data.
-bool IsFillableFieldType(ServerFieldType field_type);
-
-// Returns a StringPiece describing |type|. As the StringPiece points to a
-// static string, you don't need to worry about memory deallocation.
-base::StringPiece FieldTypeToStringPiece(ServerFieldType type);
-
-// Returns a StringPiece describing `type`. The devtools UI uses this string to
-// give developers feedback about autofill's filling decision. Note that
-// different field types can map to the same string representation for
-// simplicity of the feedback. Returns an empty string if the type is not
-// supported.
-base::StringPiece FieldTypeToDeveloperRepresentationString(
-    ServerFieldType type);
-
-// Inverse map of FieldTypeToStringPiece. Checks that only valid ServerFieldType
-// string representations are being passed.
-ServerFieldType TypeNameToFieldType(base::StringPiece type_name);
-
 }  // namespace autofill
 
 #endif  // COMPONENTS_AUTOFILL_CORE_BROWSER_FIELD_TYPES_H_
diff --git a/components/autofill/core/browser/manual_testing_import.cc b/components/autofill/core/browser/manual_testing_import.cc
index 26ed478..334c6fb 100644
--- a/components/autofill/core/browser/manual_testing_import.cc
+++ b/components/autofill/core/browser/manual_testing_import.cc
@@ -93,7 +93,12 @@
   if (!source.has_value()) {
     return absl::nullopt;
   }
-  AutofillProfile profile(*source);
+  const std::string* country_code =
+      dict.FindString(FieldTypeToStringPiece(ADDRESS_HOME_COUNTRY));
+  AddressCountryCode address_country_code =
+      country_code ? AddressCountryCode(*country_code) : AddressCountryCode("");
+
+  AutofillProfile profile(*source, address_country_code);
   // `dict` is a dictionary of std::string -> base::Value.
   for (const auto [key, value] : dict) {
     if (key == kKeySource) {
diff --git a/components/autofill/core/browser/manual_testing_import_unittest.cc b/components/autofill/core/browser/manual_testing_import_unittest.cc
index 6132bfd..3a902cb 100644
--- a/components/autofill/core/browser/manual_testing_import_unittest.cc
+++ b/components/autofill/core/browser/manual_testing_import_unittest.cc
@@ -4,6 +4,8 @@
 
 #include <vector>
 
+#include "base/test/scoped_feature_list.h"
+#include "components/autofill/core/browser/country_type.h"
 #include "components/autofill/core/browser/manual_testing_import.h"
 
 #include "base/files/file_path.h"
@@ -14,6 +16,7 @@
 #include "components/autofill/core/browser/data_model/autofill_profile.h"
 #include "components/autofill/core/browser/data_model/credit_card.h"
 #include "components/autofill/core/browser/field_types.h"
+#include "components/autofill/core/common/autofill_features.h"
 #include "testing/gmock/include/gmock/gmock.h"
 #include "testing/gtest/include/gtest/gtest.h"
 #include "third_party/abseil-cpp/absl/types/optional.h"
@@ -312,4 +315,58 @@
   EXPECT_FALSE(LoadProfilesFromFile(file_path).has_value());
 }
 
+class ManualTestingImportTesti18n : public ManualTestingImportTest {
+ public:
+  base::test::ScopedFeatureList features_{
+      features::kAutofillUseI18nAddressModel};
+};
+
+// Tests that i18n profiles are converted correctly.
+TEST_F(ManualTestingImportTesti18n, Loadi18nProfilesFromFile_Valid) {
+  base::FilePath file_path = GetFilePath();
+  base::WriteFile(file_path, R"({
+    "profiles" : [
+      {
+        "NAME_FULL" : "first last",
+        "NAME_FIRST" : "first",
+        "NAME_LAST" : "last",
+        "NAME_LAST_SECOND" : "last"
+      },
+      {
+        "ADDRESS_HOME_COUNTRY" : "BR",
+        "ADDRESS_HOME_STREET_ADDRESS" : "street 123",
+        "ADDRESS_HOME_STREET_NAME" : "street",
+        "ADDRESS_HOME_HOUSE_NUMBER" : "123"
+      }
+    ]
+  })");
+
+  AutofillProfile expected_profile1(AutofillProfile::Source::kLocalOrSyncable);
+  expected_profile1.SetRawInfoWithVerificationStatus(
+      NAME_FULL, u"first last", VerificationStatus::kObserved);
+  expected_profile1.SetRawInfoWithVerificationStatus(
+      NAME_FIRST, u"first", VerificationStatus::kObserved);
+  expected_profile1.SetRawInfoWithVerificationStatus(
+      NAME_LAST, u"last", VerificationStatus::kObserved);
+  expected_profile1.SetRawInfoWithVerificationStatus(
+      NAME_LAST_SECOND, u"last", VerificationStatus::kObserved);
+
+  AutofillProfile expected_profile2(AutofillProfile::Source::kLocalOrSyncable,
+                                    AddressCountryCode("BR"));
+  expected_profile2.SetRawInfoWithVerificationStatus(
+      ADDRESS_HOME_STREET_ADDRESS, u"street 123",
+      VerificationStatus::kObserved);
+  expected_profile2.SetRawInfoWithVerificationStatus(
+      ADDRESS_HOME_STREET_NAME, u"street", VerificationStatus::kObserved);
+  expected_profile2.SetRawInfoWithVerificationStatus(
+      ADDRESS_HOME_HOUSE_NUMBER, u"123", VerificationStatus::kObserved);
+  absl::optional<std::vector<AutofillProfile>> loaded_profiles =
+      LoadProfilesFromFile(file_path);
+  EXPECT_THAT(loaded_profiles, testing::Optional(testing::Pointwise(
+                                   DataModelsCompareEqual(),
+                                   {expected_profile1, expected_profile2})));
+  EXPECT_TRUE(loaded_profiles.value().at(0).GetAddress().IsLegacyAddress());
+  EXPECT_FALSE(loaded_profiles.value().at(1).GetAddress().IsLegacyAddress());
+}
+
 }  // namespace autofill
diff --git a/components/autofill/core/browser/personal_data_manager_cleaner_unittest.cc b/components/autofill/core/browser/personal_data_manager_cleaner_unittest.cc
index 4de2937c..8cba2f0 100644
--- a/components/autofill/core/browser/personal_data_manager_cleaner_unittest.cc
+++ b/components/autofill/core/browser/personal_data_manager_cleaner_unittest.cc
@@ -4,6 +4,7 @@
 
 #include "components/autofill/core/browser/personal_data_manager_cleaner.h"
 
+#include "base/i18n/time_formatting.h"
 #include "base/test/metrics/histogram_tester.h"
 #include "base/test/scoped_feature_list.h"
 #include "base/test/task_environment.h"
@@ -16,6 +17,7 @@
 #include "components/autofill/core/common/autofill_constants.h"
 #include "components/autofill/core/common/autofill_features.h"
 #include "testing/gtest/include/gtest/gtest.h"
+#include "third_party/icu/source/i18n/unicode/timezone.h"
 
 using testing::Matcher;
 using testing::Pointee;
@@ -812,13 +814,13 @@
   // It is expected to remain.
   CreditCard credit_card3(base::Uuid::GenerateRandomV4().AsLowercaseString(),
                           test::kEmptyOrigin);
-  base::Time expiry_date = now - base::Days(32);
-  base::Time::Exploded exploded;
-  expiry_date.UTCExplode(&exploded);
+  const base::Time expiry_date = now - base::Days(32);
+  const std::string month = base::UnlocalizedTimeFormatWithPattern(
+      expiry_date, "MM", icu::TimeZone::getGMT());
+  const std::string year = base::UnlocalizedTimeFormatWithPattern(
+      expiry_date, "yyyy", icu::TimeZone::getGMT());
   test::SetCreditCardInfo(&credit_card3, "Clyde", "4111111111111111" /* Visa */,
-                          base::StringPrintf("%02d", exploded.month).c_str(),
-                          base::StringPrintf("%04d", exploded.year).c_str(),
-                          "1");
+                          month.c_str(), year.c_str(), "1");
   credit_card3.set_use_date(now - base::Days(400));
 
   // Create a local card expired 400 days ago, and last used 400 days ago.
diff --git a/components/autofill/core/browser/personal_data_manager_observer.h b/components/autofill/core/browser/personal_data_manager_observer.h
index b16beed..3850a34f 100644
--- a/components/autofill/core/browser/personal_data_manager_observer.h
+++ b/components/autofill/core/browser/personal_data_manager_observer.h
@@ -29,11 +29,6 @@
   // handle.
   virtual void OnPersonalDataFinishedProfileTasks() {}
 
-  // Notifies the observer whenever at least one (can be multiple) credit card
-  // is suceesfully saved.
-  virtual void OnCreditCardSaved(bool should_show_sign_in_promo_if_applicable) {
-  }
-
   // Called when (part of) the browsing history is cleared.
   virtual void OnBrowsingHistoryCleared(
       const history::DeletionInfo& deletion_info) {}
diff --git a/components/autofill/core/browser/webdata/autofill_table.cc b/components/autofill/core/browser/webdata/autofill_table.cc
index c133aff5..34ddd3cd 100644
--- a/components/autofill/core/browser/webdata/autofill_table.cc
+++ b/components/autofill/core/browser/webdata/autofill_table.cc
@@ -1042,6 +1042,12 @@
       continue;
     }
     if (!base::FeatureList::IsEnabled(
+            features::kAutofillEnableSupportForBetweenStreetsOrLandmark) &&
+        type == ADDRESS_HOME_BETWEEN_STREETS_OR_LANDMARK) {
+      continue;
+    }
+
+    if (!base::FeatureList::IsEnabled(
             features::kAutofillEnableSupportForAddressOverflow) &&
         type == ADDRESS_HOME_OVERFLOW) {
       continue;
@@ -1053,7 +1059,9 @@
     }
     if (!base::FeatureList::IsEnabled(
             features::kAutofillEnableSupportForBetweenStreets) &&
-        type == ADDRESS_HOME_BETWEEN_STREETS) {
+        (type == ADDRESS_HOME_BETWEEN_STREETS ||
+         type == ADDRESS_HOME_BETWEEN_STREETS_1 ||
+         type == ADDRESS_HOME_BETWEEN_STREETS_2)) {
       continue;
     }
     if (!base::FeatureList::IsEnabled(
@@ -1160,7 +1168,10 @@
       ADDRESS_HOME_OVERFLOW,
       ADDRESS_HOME_LANDMARK,
       ADDRESS_HOME_OVERFLOW_AND_LANDMARK,
+      ADDRESS_HOME_BETWEEN_STREETS_OR_LANDMARK,
       ADDRESS_HOME_BETWEEN_STREETS,
+      ADDRESS_HOME_BETWEEN_STREETS_1,
+      ADDRESS_HOME_BETWEEN_STREETS_2,
       ADDRESS_HOME_ADMIN_LEVEL2,
       EMAIL_ADDRESS,
       PHONE_HOME_WHOLE_NUMBER,
@@ -1677,21 +1688,31 @@
                     guid)) {
     return nullptr;
   }
-  auto profile = std::make_unique<AutofillProfile>(guid, profile_source);
+
   int index = 0;
-  profile->set_use_count(s.ColumnInt64(index++));
-  profile->set_use_date(base::Time::FromTimeT(s.ColumnInt64(index++)));
-  profile->set_modification_date(base::Time::FromTimeT(s.ColumnInt64(index++)));
-  profile->set_language_code(s.ColumnString(index++));
-  profile->set_profile_label(s.ColumnString(index++));
-  profile->set_initial_creator_id(s.ColumnInt(index++));
-  profile->set_last_modifier_id(s.ColumnInt(index++));
+  int64_t use_count = s.ColumnInt64(index++);
+  base::Time use_date = base::Time::FromTimeT(s.ColumnInt64(index++));
+  base::Time modification_date = base::Time::FromTimeT(s.ColumnInt64(index++));
+  std::string language_code = s.ColumnString(index++);
+  std::string profile_label = s.ColumnString(index++);
+  int creator_id = s.ColumnInt(index++);
+  int modifier_id = s.ColumnInt(index++);
 
   if (!SelectByGuid(db_, s, GetProfileTypeTokensTable(profile_source),
                     {kType, kValue, kVerificationStatus, kObservations},
                     guid)) {
     return nullptr;
   }
+
+  struct FieldTypeData {
+    ServerFieldType type;
+    std::u16string value;
+    int status;
+    std::vector<const uint8_t> serialized_data;
+  };
+
+  std::vector<FieldTypeData> field_type_values;
+  std::string country_code;
   // As `SelectByGuid()` already calls `s.Step()`, do-while is used here.
   do {
     ServerFieldType type = ToSafeServerFieldType(s.ColumnInt(0), UNKNOWN_TYPE);
@@ -1705,12 +1726,38 @@
       //   next update, the data will be dropped.
       continue;
     }
-    profile->SetRawInfoWithVerificationStatusInt(type, s.ColumnString16(1),
-                                                 s.ColumnInt(2));
-    profile->token_quality().LoadSerializedObservationsForStoredType(
-        type, s.ColumnBlob(3));
+
+    base::span<const uint8_t> observations_data = s.ColumnBlob(3);
+    field_type_values.emplace_back(
+        FieldTypeData{type, s.ColumnString16(1), s.ColumnInt(2),
+                      std::vector<const uint8_t>(observations_data.begin(),
+                                                 observations_data.end())});
+
+    if (type == ADDRESS_HOME_COUNTRY) {
+      country_code = base::UTF16ToUTF8(s.ColumnString16(1));
+    }
+
   } while (s.Step());
 
+  // TODO(crbug.com/1464568): Define a proper migration strategy from stored
+  // legacy profiles into i18n ones.
+  auto profile = std::make_unique<AutofillProfile>(
+      guid, profile_source, AddressCountryCode(country_code));
+  profile->set_use_count(use_count);
+  profile->set_use_date(use_date);
+  profile->set_modification_date(modification_date);
+  profile->set_language_code(language_code);
+  profile->set_profile_label(profile_label);
+  profile->set_initial_creator_id(creator_id);
+  profile->set_last_modifier_id(modifier_id);
+
+  for (const auto& data : field_type_values) {
+    profile->SetRawInfoWithVerificationStatusInt(data.type, data.value,
+                                                 data.status);
+    profile->token_quality().LoadSerializedObservationsForStoredType(
+        data.type, data.serialized_data);
+  }
+
   profile->FinalizeAfterImport();
   return profile;
 }
diff --git a/components/autofill/core/browser/webdata/autofill_table_unittest.cc b/components/autofill/core/browser/webdata/autofill_table_unittest.cc
index 75c40302..bc727ce 100644
--- a/components/autofill/core/browser/webdata/autofill_table_unittest.cc
+++ b/components/autofill/core/browser/webdata/autofill_table_unittest.cc
@@ -200,7 +200,10 @@
     features_.InitWithFeatures(
         {features::kAutofillEnableSupportForLandmark,
          features::kAutofillEnableSupportForBetweenStreets,
-         features::kAutofillEnableSupportForAdminLevel2},
+         features::kAutofillEnableSupportForAdminLevel2,
+         features::kAutofillEnableSupportForAddressOverflow,
+         features::kAutofillEnableSupportForAddressOverflowAndLandmark,
+         features::kAutofillEnableSupportForBetweenStreetsOrLandmark},
         {});
   }
   AutofillProfile::Source profile_source() const { return GetParam(); }
diff --git a/components/autofill/core/common/autofill_features.cc b/components/autofill/core/common/autofill_features.cc
index c96f0b6..ca6985c 100644
--- a/components/autofill/core/common/autofill_features.cc
+++ b/components/autofill/core/common/autofill_features.cc
@@ -213,6 +213,13 @@
              "AutofillEnableSupportForAddressOverflowAndLandmark",
              base::FEATURE_DISABLED_BY_DEFAULT);
 
+// Controls if Chrome support filling and importing address overflow and
+// landmark fields.
+// TODO(crbug.com/1441904) Remove once launched.
+BASE_FEATURE(kAutofillEnableSupportForBetweenStreetsOrLandmark,
+             "AutofillEnableSupportForBetweenStreetsOrLandmark",
+             base::FEATURE_DISABLED_BY_DEFAULT);
+
 // Controls if Chrome support filling and importing landmarks.
 // TODO(crbug.com/1441904) Remove once launched.
 BASE_FEATURE(kAutofillEnableSupportForLandmark,
diff --git a/components/autofill/core/common/autofill_features.h b/components/autofill/core/common/autofill_features.h
index 91bf64f..0a6ec46 100644
--- a/components/autofill/core/common/autofill_features.h
+++ b/components/autofill/core/common/autofill_features.h
@@ -53,6 +53,8 @@
 COMPONENT_EXPORT(AUTOFILL)
 BASE_DECLARE_FEATURE(kAutofillEnableSupportForAddressOverflowAndLandmark);
 COMPONENT_EXPORT(AUTOFILL)
+BASE_DECLARE_FEATURE(kAutofillEnableSupportForBetweenStreetsOrLandmark);
+COMPONENT_EXPORT(AUTOFILL)
 BASE_DECLARE_FEATURE(kAutofillEnableSupportForLandmark);
 COMPONENT_EXPORT(AUTOFILL)
 BASE_DECLARE_FEATURE(kAutofillPredictionsForAutocompleteUnrecognized);
diff --git a/components/autofill/ios/browser/resources/autofill_controller.js b/components/autofill/ios/browser/resources/autofill_controller.js
index 45d0c06..aa81368 100644
--- a/components/autofill/ios/browser/resources/autofill_controller.js
+++ b/components/autofill/ios/browser/resources/autofill_controller.js
@@ -2,7 +2,7 @@
 // Use of this source code is governed by a BSD-style license that can be
 // found in the LICENSE file.
 
-import {MAX_DATA_LENGTH, MAX_EXTRACTABLE_FIELDS} from '//components/autofill/ios/form_util/resources/fill_constants.js';
+import * as fill_constants from '//components/autofill/ios/form_util/resources/fill_constants.js';
 
 /**
  * @fileoverview Installs Autofill management functions on the __gCrWeb object.
@@ -393,7 +393,7 @@
   const webForms = document.forms;
 
   const extractMask =
-      __gCrWeb.fill.EXTRACT_MASK_VALUE | __gCrWeb.fill.EXTRACT_MASK_OPTIONS;
+      fill_constants.EXTRACT_MASK_VALUE | fill_constants.EXTRACT_MASK_OPTIONS;
   let numFieldsSeen = 0;
   for (let formIndex = 0; formIndex < webForms.length; ++formIndex) {
     /** @type {HTMLFormElement} */
@@ -413,7 +413,7 @@
     }
 
     numFieldsSeen += form['fields'].length;
-    if (numFieldsSeen > MAX_EXTRACTABLE_FIELDS) {
+    if (numFieldsSeen > fill_constants.MAX_EXTRACTABLE_FIELDS) {
       break;
     }
 
@@ -437,7 +437,7 @@
             restrictUnownedFieldsToFormlessCheckout, unownedForm);
     if (hasUnownedForm) {
       numFieldsSeen += unownedForm['fields'].length;
-      if (numFieldsSeen <= MAX_EXTRACTABLE_FIELDS) {
+      if (numFieldsSeen <= fill_constants.MAX_EXTRACTABLE_FIELDS) {
         const interesting = isFormInteresting_(
             unownedForm, numEditableUnownedElements, minimumRequiredFields);
         if (interesting) {
@@ -482,7 +482,7 @@
       // maxlength value is used.
       let maxLength = data['max_length'];
       if (maxLength < 0) {
-        maxLength = MAX_DATA_LENGTH;
+        maxLength = fill_constants.MAX_DATA_LENGTH;
       }
       sanitizedValue = data['value'].substr(0, maxLength);
     }
diff --git a/components/autofill/ios/form_util/resources/fill.js b/components/autofill/ios/form_util/resources/fill.js
index 18b6d3e..7517375d 100644
--- a/components/autofill/ios/form_util/resources/fill.js
+++ b/components/autofill/ios/form_util/resources/fill.js
@@ -399,10 +399,8 @@
  *
  * @param {FormControlElement} element The element to be processed.
  * @param {number} extractMask A bit field mask to extract data from |element|.
- *     See the document on variable __gCrWeb.fill.EXTRACT_MASK_NONE,
- *     __gCrWeb.fill.EXTRACT_MASK_VALUE,
- *     __gCrWeb.fill.EXTRACT_MASK_OPTION_TEXT and
- *     __gCrWeb.fill.EXTRACT_MASK_OPTIONS.
+ *     See the documentation on variable EXTRACT_MASK_VALUE,
+ *     EXTRACT_MASK_OPTION_TEXT and EXTRACT_MASK_OPTIONS.
  * @param {AutofillFormFieldData} field Field to fill in the element
  *     information.
  */
@@ -469,18 +467,18 @@
     field['is_checkable'] = __gCrWeb.fill.isCheckableElement(element);
   } else if (__gCrWeb.fill.isTextAreaElement(element)) {
     // Nothing more to do in this case.
-  } else if (extractMask & __gCrWeb.fill.EXTRACT_MASK_OPTIONS) {
+  } else if (extractMask & fillConstants.EXTRACT_MASK_OPTIONS) {
     __gCrWeb.fill.getOptionStringsFromElement(element, field);
   }
 
-  if (!(extractMask & __gCrWeb.fill.EXTRACT_MASK_VALUE)) {
+  if (!(extractMask & fillConstants.EXTRACT_MASK_VALUE)) {
     return;
   }
 
   let value = __gCrWeb.fill.value(element);
 
   if (__gCrWeb.fill.isSelectElement(element) &&
-      (extractMask & __gCrWeb.fill.EXTRACT_MASK_OPTION_TEXT)) {
+      (extractMask & fillConstants.EXTRACT_MASK_OPTION_TEXT)) {
     // Convert the |select_element| value to text if requested.
     const options = element.options;
     for (let index = 0; index < options.length; ++index) {
@@ -516,7 +514,7 @@
 __gCrWeb.fill.autofillSubmissionData = function(form) {
   const formData = new __gCrWeb['common'].JSONSafeObject();
   const extractMask =
-      __gCrWeb.fill.EXTRACT_MASK_VALUE | __gCrWeb.fill.EXTRACT_MASK_OPTIONS;
+      fillConstants.EXTRACT_MASK_VALUE | fillConstants.EXTRACT_MASK_OPTIONS;
   __gCrWeb['fill'].webFormElementToFormData(
       window, form, null, extractMask, formData, null);
   return __gCrWeb.stringify([formData]);
diff --git a/components/autofill/ios/form_util/resources/fill_constants.js b/components/autofill/ios/form_util/resources/fill_constants.js
index a2672f4..f2f9788 100644
--- a/components/autofill/ios/form_util/resources/fill_constants.js
+++ b/components/autofill/ios/form_util/resources/fill_constants.js
@@ -32,25 +32,12 @@
 
 /**
  * A bit field mask to extract data from WebFormControlElement for
- * extracting none value.
- *
- * This variable is from enum ExtractMask in
- * chromium/src/components/autofill/content/renderer/form_autofill_util.h
- *
- * @const {number}
- */
-__gCrWeb.fill.EXTRACT_MASK_NONE = 0;
-
-/**
- * A bit field mask to extract data from WebFormControlElement for
  * extracting value from WebFormControlElement.
  *
  * This variable is from enum ExtractMask in
  * chromium/src/components/autofill/content/renderer/form_autofill_util.h
- *
- * @const {number}
  */
-__gCrWeb.fill.EXTRACT_MASK_VALUE = 1 << 0;
+const EXTRACT_MASK_VALUE = 1 << 0;
 
 /**
  * A bit field mask to extract data from WebFormControlElement for
@@ -60,10 +47,8 @@
  *
  * This variable is from enum ExtractMask in
  * chromium/src/components/autofill/content/renderer/form_autofill_util.h
- *
- * @const {number}
  */
-__gCrWeb.fill.EXTRACT_MASK_OPTION_TEXT = 1 << 1;
+const EXTRACT_MASK_OPTION_TEXT = 1 << 1;
 
 /**
  * A bit field mask to extract data from WebFormControlElement for
@@ -71,10 +56,8 @@
  *
  * This variable is from enum ExtractMask in
  * chromium/src/components/autofill/content/renderer/form_autofill_util.h
- *
- * @const {number}
  */
-__gCrWeb.fill.EXTRACT_MASK_OPTIONS = 1 << 2;
+const EXTRACT_MASK_OPTIONS = 1 << 2;
 
 /**
  * A value for the "presentation" role.
@@ -104,4 +87,7 @@
   MAX_DATA_LENGTH,
   MAX_STRING_LENGTH,
   MAX_EXTRACTABLE_FIELDS,
+  EXTRACT_MASK_VALUE,
+  EXTRACT_MASK_OPTION_TEXT,
+  EXTRACT_MASK_OPTIONS,
 };
diff --git a/components/browser_ui/display_cutout/android/java/src/org/chromium/components/browser_ui/display_cutout/DisplayCutoutController.java b/components/browser_ui/display_cutout/android/java/src/org/chromium/components/browser_ui/display_cutout/DisplayCutoutController.java
index e15d003..ac8c781 100644
--- a/components/browser_ui/display_cutout/android/java/src/org/chromium/components/browser_ui/display_cutout/DisplayCutoutController.java
+++ b/components/browser_ui/display_cutout/android/java/src/org/chromium/components/browser_ui/display_cutout/DisplayCutoutController.java
@@ -147,9 +147,10 @@
      * @param value The new viewport fit value.
      */
     public void setViewportFit(@WebContentsObserver.ViewportFitType int value) {
-        if (value != ViewportFit.AUTO) {
-            assert mDelegate.getWebContents().isFullscreenForCurrentTab()
-                    || mDelegate.isInBrowserFullscreen();
+        // TODO(crbug.com/1480477): Investigate whether if() can be turned into assert.
+        if (!mDelegate.getWebContents().isFullscreenForCurrentTab()
+                && !mDelegate.isInBrowserFullscreen()) {
+            value = ViewportFit.AUTO;
         }
 
         if (value == mViewportFit) return;
diff --git a/components/certificate_transparency/data/log_list.json b/components/certificate_transparency/data/log_list.json
index 18bcab3f..5944967 100644
--- a/components/certificate_transparency/data/log_list.json
+++ b/components/certificate_transparency/data/log_list.json
@@ -1,6 +1,6 @@
 {
-  "version": "25.6",
-  "log_list_timestamp": "2023-09-24T12:54:20Z",
+  "version": "25.7",
+  "log_list_timestamp": "2023-09-25T12:54:19Z",
   "operators": [
     {
       "name": "Google",
diff --git a/components/commerce/core/account_checker.cc b/components/commerce/core/account_checker.cc
index 3fcd2fc1..2633552 100644
--- a/components/commerce/core/account_checker.cc
+++ b/components/commerce/core/account_checker.cc
@@ -70,6 +70,9 @@
            identity_manager_->HasPrimaryAccount(signin::ConsentLevel::kSignin);
   }
   // The feature is not enabled, fallback to old behavior.
+  // TODO(crbug.com/1462978): Delete ConsentLevel::kSync usage once
+  // kReplaceSyncPromosWithSignInPromos is launched on all platforms. See
+  // ConsentLevel::kSync documentation for details.
   return identity_manager_ &&
          identity_manager_->HasPrimaryAccount(signin::ConsentLevel::kSync);
 }
@@ -82,6 +85,9 @@
                                 syncer::UploadState::ACTIVE;
   }
   // The feature is not enabled, fallback to old behavior.
+  // TODO(crbug.com/1462978): Delete IsSyncFeatureActive() usage once
+  // kReplaceSyncPromosWithSignInPromos is launched on all platforms. See
+  // ConsentLevel::kSync documentation for details.
   return sync_service_ && sync_service_->IsSyncFeatureActive() &&
          syncer::GetUploadToGoogleState(sync_service_,
                                         syncer::ModelType::BOOKMARKS) !=
@@ -368,8 +374,9 @@
     int64_t timeout_ms,
     const std::string& post_data,
     const net::NetworkTrafficAnnotationTag& annotation_tag) {
-  // TODO(crbug.com/1463438): ConsentLevel::kSync is deprecated and should be
-  //     removed. See ConsentLevel::kSync documentation for details.
+  // TODO(crbug.com/1462978): Delete ConsentLevel::kSync usage once
+  // kReplaceSyncPromosWithSignInPromos is launched on all platforms. See
+  // ConsentLevel::kSync documentation for details.
   signin::ConsentLevel consent_level =
       base::FeatureList::IsEnabled(syncer::kReplaceSyncPromosWithSignInPromos)
           ? signin::ConsentLevel::kSignin
diff --git a/components/content_settings/core/browser/content_settings_registry.cc b/components/content_settings/core/browser/content_settings_registry.cc
index 0486610..8c6de09 100644
--- a/components/content_settings/core/browser/content_settings_registry.cc
+++ b/components/content_settings/core/browser/content_settings_registry.cc
@@ -292,15 +292,6 @@
            ContentSettingsInfo::INHERIT_IF_LESS_PERMISSIVE,
            ContentSettingsInfo::EXCEPTIONS_ON_SECURE_ORIGINS_ONLY);
 
-  Register(ContentSettingsType::TPCD_METADATA_GRANTS, "3pcd-metadata-grants",
-           CONTENT_SETTING_BLOCK, WebsiteSettingsInfo::UNSYNCABLE,
-           /*allowlisted_schemes=*/{},
-           /*valid_settings=*/{CONTENT_SETTING_ALLOW, CONTENT_SETTING_BLOCK},
-           WebsiteSettingsInfo::REQUESTING_AND_TOP_SCHEMEFUL_SITE_SCOPE,
-           WebsiteSettingsRegistry::ALL_PLATFORMS,
-           ContentSettingsInfo::INHERIT_IF_LESS_PERMISSIVE,
-           ContentSettingsInfo::EXCEPTIONS_ON_SECURE_AND_INSECURE_ORIGINS);
-
   // Content settings that aren't used to store any data. TODO(raymes): use a
   // different mechanism rather than content settings to represent these.
   // Since nothing is stored in them, there is no real point in them being a
diff --git a/components/content_settings/core/browser/cookie_settings.h b/components/content_settings/core/browser/cookie_settings.h
index 31182e1..d41731e3 100644
--- a/components/content_settings/core/browser/cookie_settings.h
+++ b/components/content_settings/core/browser/cookie_settings.h
@@ -130,14 +130,8 @@
     return GetContentSetting(primary_url, secondary_url, content_type);
   }
 
-  ContentSettingsForOneType GetContentSettingsForOneTypeForTesting(
-      ContentSettingsType content_type) {
-    switch (content_type) {
-      case ContentSettingsType::TPCD_METADATA_GRANTS:
-        return settings_for_3pcd_metadata_grants_;
-      default:
-        NOTREACHED_NORETURN() << static_cast<int>(content_type);
-    }
+  ContentSettingsForOneType GetTpcdMetadataGrantsForTesting() {
+    return settings_for_3pcd_metadata_grants_;
   }
 
   // Resets the cookie setting for the given url.
@@ -235,6 +229,10 @@
   // Used to represent content settings for 3PC accesses granted via the
   // component updater service. This type will only be populated when
   // `net::features::kTpcdMetadataGrants` is enabled.
+  //
+  // TODO(http://b/290039145): There's a chance for the list to get considerably
+  // big. Look into optimizing memory by querying straight from a global
+  // service.
   ContentSettingsForOneType settings_for_3pcd_metadata_grants_;
 
   mutable base::Lock lock_;
diff --git a/components/content_settings/core/common/features.cc b/components/content_settings/core/common/features.cc
index fa46718..6705be1 100644
--- a/components/content_settings/core/common/features.cc
+++ b/components/content_settings/core/common/features.cc
@@ -70,6 +70,10 @@
 const base::FeatureParam<base::TimeDelta> kUserBypassUIReloadTime{
     &kUserBypassUI, "reload-time", base::Seconds(30)};
 
+BASE_FEATURE(kUserBypassFeedback,
+             "UserBypassFeedback",
+             base::FEATURE_ENABLED_BY_DEFAULT);
+
 BASE_FEATURE(kImprovedSemanticsActivityIndicators,
              "ImprovedSemanticsActivityIndicators",
              base::FEATURE_DISABLED_BY_DEFAULT);
diff --git a/components/content_settings/core/common/features.h b/components/content_settings/core/common/features.h
index 595b0f8..fe6fe7c5 100644
--- a/components/content_settings/core/common/features.h
+++ b/components/content_settings/core/common/features.h
@@ -68,6 +68,10 @@
 extern const base::FeatureParam<base::TimeDelta>
     kSafetyCheckUnusedSitePermissionsRevocationCleanUpThreshold;
 
+// Feature to enable the feedback button in the User Bypass UI.
+COMPONENT_EXPORT(CONTENT_SETTINGS_FEATURES)
+BASE_DECLARE_FEATURE(kUserBypassFeedback);
+
 // Feature to enable the User Bypass UI.
 COMPONENT_EXPORT(CONTENT_SETTINGS_FEATURES)
 BASE_DECLARE_FEATURE(kUserBypassUI);
diff --git a/components/cronet/android/lint-baseline.xml b/components/cronet/android/lint-baseline.xml
index 6d6a058..03ff4833 100644
--- a/components/cronet/android/lint-baseline.xml
+++ b/components/cronet/android/lint-baseline.xml
@@ -1,5 +1,5 @@
 <?xml version="1.0" encoding="UTF-8"?>
-<issues format="6" by="lint 8.3.0-alpha04" type="baseline" client="" dependencies="true" name="" variant="all" version="8.3.0-alpha04">
+<issues format="6" by="lint 8.3.0-alpha05" type="baseline" client="" dependencies="true" name="" variant="all" version="8.3.0-alpha05">
 
     <issue
         id="AssertionSideEffect"
diff --git a/components/device_reauth/device_authenticator.h b/components/device_reauth/device_authenticator.h
index 6706eb2..40169b6 100644
--- a/components/device_reauth/device_authenticator.h
+++ b/components/device_reauth/device_authenticator.h
@@ -21,7 +21,8 @@
   kPasswordManager = 0,
   kAutofill = 1,
   kIncognito = 2,
-  kMaxValue = kIncognito,
+  kDeviceLockPage = 3,
+  kMaxValue = kDeviceLockPage,
 };
 
 // When creating a device authenticator, one should create a |DeviceAuthParam|
diff --git a/components/download/internal/common/download_path_reservation_tracker.cc b/components/download/internal/common/download_path_reservation_tracker.cc
index 63fc3c1a..1c11fd6 100644
--- a/components/download/internal/common/download_path_reservation_tracker.cc
+++ b/components/download/internal/common/download_path_reservation_tracker.cc
@@ -15,6 +15,7 @@
 #include "base/files/file_util.h"
 #include "base/functional/bind.h"
 #include "base/functional/callback.h"
+#include "base/i18n/time_formatting.h"
 #include "base/logging.h"
 #include "base/memory/ptr_util.h"
 #include "base/memory/raw_ptr.h"
@@ -161,20 +162,15 @@
        uniquifier <= DownloadPathReservationTracker::kMaxUniqueFiles + 1;
        ++uniquifier) {
     // Append uniquifier.
-    std::string suffix(base::StringPrintf(" (%d)", uniquifier));
-
-    // After we've tried all the unique numeric indices, make one attempt using
-    // the timestamp.
-    if (uniquifier > DownloadPathReservationTracker::kMaxUniqueFiles) {
-      // Generate an ISO8601 compliant local timestamp suffix that avoids
-      // reserved characters that are forbidden on some OSes like Windows.
-      base::Time::Exploded exploded;
-      download_start_time.LocalExplode(&exploded);
-      suffix = base::StringPrintf(
-          " - %04d-%02d-%02dT%02d%02d%02d.%03d", exploded.year, exploded.month,
-          exploded.day_of_month, exploded.hour, exploded.minute,
-          exploded.second, exploded.millisecond);
-    }
+    std::string suffix =
+        (uniquifier > DownloadPathReservationTracker::kMaxUniqueFiles)
+            ? base::UnlocalizedTimeFormatWithPattern(
+                  download_start_time,
+                  // ISO8601-compliant local timestamp suffix that avoids
+                  // reserved characters that are forbidden on some OSes like
+                  // Windows.
+                  " - yyyy-MM-dd'T'HHmmss.SSS")
+            : base::StringPrintf(" (%d)", uniquifier);
 
     base::FilePath path_to_check(*path);
     // If the name length limit is available (max_length != -1), and the
diff --git a/components/metrics/BUILD.gn b/components/metrics/BUILD.gn
index 40e4a538..b5c2637 100644
--- a/components/metrics/BUILD.gn
+++ b/components/metrics/BUILD.gn
@@ -218,6 +218,7 @@
       ":library_support",
       "//base",
       "//base:base_static",
+      "//base:i18n",
       "//build:branding_buildflags",
       "//build:chromeos_buildflags",
       "//components/flags_ui:switches",
diff --git a/components/metrics/data_use_tracker.cc b/components/metrics/data_use_tracker.cc
index 5a03210f..6ce9d591 100644
--- a/components/metrics/data_use_tracker.cc
+++ b/components/metrics/data_use_tracker.cc
@@ -7,7 +7,7 @@
 #include <memory>
 #include <string>
 
-#include "base/strings/stringprintf.h"
+#include "base/i18n/time_formatting.h"
 #include "base/values.h"
 #include "build/build_config.h"
 #include "components/metrics/metrics_pref_names.h"
@@ -154,11 +154,8 @@
 
 std::string DataUseTracker::GetCurrentMeasurementDateAsString() const {
   DCHECK_CALLED_ON_VALID_SEQUENCE(sequence_checker_);
-
-  base::Time::Exploded today_exploded;
-  GetCurrentMeasurementDate().LocalExplode(&today_exploded);
-  return base::StringPrintf("%04d-%02d-%02d", today_exploded.year,
-                            today_exploded.month, today_exploded.day_of_month);
+  return base::UnlocalizedTimeFormatWithPattern(GetCurrentMeasurementDate(),
+                                                "yyyy-MM-dd");
 }
 
 }  // namespace metrics
diff --git a/components/mirroring/browser/single_client_video_capture_host_unittest.cc b/components/mirroring/browser/single_client_video_capture_host_unittest.cc
index 74ead8e..8d5102e 100644
--- a/components/mirroring/browser/single_client_video_capture_host_unittest.cc
+++ b/components/mirroring/browser/single_client_video_capture_host_unittest.cc
@@ -157,6 +157,8 @@
     buffers_.erase(iter);
     OnBufferDestroyedCall(buffer_id);
   }
+  MOCK_METHOD1(OnFrameDroppedEarly,
+               void(media::VideoCaptureFrameDropReason reason));
 
   MOCK_METHOD1(OnNewCropVersion, void(uint32_t crop_version));
 
diff --git a/components/mirroring/service/video_capture_client.cc b/components/mirroring/service/video_capture_client.cc
index b1d3c1a1..f762c98 100644
--- a/components/mirroring/service/video_capture_client.cc
+++ b/components/mirroring/service/video_capture_client.cc
@@ -314,6 +314,9 @@
     client_buffers_.erase(buffer_iter);
 }
 
+void VideoCaptureClient::OnFrameDroppedEarly(
+    media::VideoCaptureFrameDropReason reason) {}
+
 void VideoCaptureClient::OnNewCropVersion(uint32_t crop_version) {}
 
 void VideoCaptureClient::OnClientBufferFinished(int buffer_id,
diff --git a/components/mirroring/service/video_capture_client.h b/components/mirroring/service/video_capture_client.h
index 4b752ee..184753f 100644
--- a/components/mirroring/service/video_capture_client.h
+++ b/components/mirroring/service/video_capture_client.h
@@ -68,6 +68,7 @@
       media::mojom::ReadyBufferPtr buffer,
       std::vector<media::mojom::ReadyBufferPtr> scaled_buffers) override;
   void OnBufferDestroyed(int32_t buffer_id) override;
+  void OnFrameDroppedEarly(media::VideoCaptureFrameDropReason reason) override;
   void OnNewCropVersion(uint32_t crop_version) override;
 
   void SwitchVideoCaptureHost(
diff --git a/components/nacl/browser/pnacl_translation_cache.cc b/components/nacl/browser/pnacl_translation_cache.cc
index 1be61a5..85537bf7 100644
--- a/components/nacl/browser/pnacl_translation_cache.cc
+++ b/components/nacl/browser/pnacl_translation_cache.cc
@@ -12,6 +12,7 @@
 #include "base/files/file_path.h"
 #include "base/functional/bind.h"
 #include "base/functional/callback.h"
+#include "base/i18n/time_formatting.h"
 #include "base/logging.h"
 #include "base/memory/raw_ptr.h"
 #include "base/strings/stringprintf.h"
@@ -22,6 +23,7 @@
 #include "net/base/io_buffer.h"
 #include "net/base/net_errors.h"
 #include "net/disk_cache/disk_cache.h"
+#include "third_party/icu/source/i18n/unicode/timezone.h"
 
 namespace pnacl {
 
@@ -420,15 +422,8 @@
   replacements.ClearRef();
   const GURL key_url = info.pexe_url.ReplaceComponents(replacements);
 
-  base::Time::Exploded exploded;
-  info.last_modified.UTCExplode(&exploded);
-  if (info.last_modified.is_null() || !exploded.HasValidValues()) {
-    memset(&exploded, 0, sizeof(exploded));
-  }
-  const std::string timestamp = base::StringPrintf(
-      "%d:%d:%d:%d:%d:%d:%d:UTC", exploded.year, exploded.month,
-      exploded.day_of_month, exploded.hour, exploded.minute, exploded.second,
-      exploded.millisecond);
+  const std::string timestamp = base::UnlocalizedTimeFormatWithPattern(
+      info.last_modified, "y:M:d:H:m:s:S:'UTC'", icu::TimeZone::getGMT());
 
   return base::StringPrintf(
       "ABI:%d;opt:%d%s;URL:%s;modified:%s;etag:%s;sandbox:%s;extra_flags:%s;",
diff --git a/components/nacl/browser/pnacl_translation_cache_unittest.cc b/components/nacl/browser/pnacl_translation_cache_unittest.cc
index f73724a7..ef547f9 100644
--- a/components/nacl/browser/pnacl_translation_cache_unittest.cc
+++ b/components/nacl/browser/pnacl_translation_cache_unittest.cc
@@ -198,10 +198,11 @@
 
   // Check for all the time components, and null time
   info.last_modified = base::Time();
-  EXPECT_EQ("ABI:2;opt:2;URL:http://www.google.com/;"
-            "modified:0:0:0:0:0:0:0:UTC;etag:etag;"
-            "sandbox:x86-32;extra_flags:-mavx-neon;",
-            PnaclTranslationCache::GetKey(info));
+  EXPECT_EQ(
+      "ABI:2;opt:2;URL:http://www.google.com/;"
+      "modified:1970:1:1:0:0:0:0:UTC;etag:etag;"
+      "sandbox:x86-32;extra_flags:-mavx-neon;",
+      PnaclTranslationCache::GetKey(info));
   test_time.assign("Fri, 29 Feb 2008 13:04:12 GMT");
   EXPECT_TRUE(base::Time::FromString(test_time.c_str(), &info.last_modified));
   EXPECT_EQ("ABI:2;opt:2;URL:http://www.google.com/;"
diff --git a/components/offline_pages/core/BUILD.gn b/components/offline_pages/core/BUILD.gn
index 40575c5..67da0c8 100644
--- a/components/offline_pages/core/BUILD.gn
+++ b/components/offline_pages/core/BUILD.gn
@@ -85,6 +85,7 @@
   deps = [
     ":switches",
     "//base",
+    "//base:i18n",
     "//components/filename_generation",
     "//components/keyed_service/core",
     "//components/offline_items_collection/core/utilities",
diff --git a/components/offline_pages/core/offline_event_logger.cc b/components/offline_pages/core/offline_event_logger.cc
index 511d861..7e948ee7 100644
--- a/components/offline_pages/core/offline_event_logger.cc
+++ b/components/offline_pages/core/offline_event_logger.cc
@@ -4,6 +4,7 @@
 
 #include "components/offline_pages/core/offline_event_logger.h"
 
+#include "base/i18n/time_formatting.h"
 #include "base/logging.h"
 #include "base/strings/stringprintf.h"
 #include "base/time/time.h"
@@ -38,13 +39,8 @@
   if (!is_logging_ || activity.empty())
     return;
 
-  base::Time::Exploded current_time;
-  OfflineTimeNow().LocalExplode(&current_time);
-
-  std::string date_string = base::StringPrintf(
-      "%d %02d %02d %02d:%02d:%02d", current_time.year, current_time.month,
-      current_time.day_of_month, current_time.hour, current_time.minute,
-      current_time.second);
+  std::string date_string = base::UnlocalizedTimeFormatWithPattern(
+      OfflineTimeNow(), "y MM dd HH:mm:ss: ");
 
   if (client_)
     client_->CustomLog(activity);
@@ -52,7 +48,7 @@
   if (activities_.size() == kMaxLogCount)
     activities_.pop_back();
 
-  activities_.push_front(date_string + ": " + activity);
+  activities_.push_front(date_string + activity);
 }
 
 void OfflineEventLogger::SetClient(Client* client) {
diff --git a/components/page_info/page_info_ui_delegate.h b/components/page_info/page_info_ui_delegate.h
index 963b5cb..ea873733 100644
--- a/components/page_info/page_info_ui_delegate.h
+++ b/components/page_info/page_info_ui_delegate.h
@@ -21,6 +21,7 @@
   virtual bool IsBlockAutoPlayEnabled() = 0;
   virtual bool IsMultipleTabsOpen() = 0;
 #endif
+  virtual bool IsTrackingProtection3pcdEnabled() = 0;
   virtual content::PermissionResult GetPermissionResult(
       blink::PermissionType permission) = 0;
   virtual absl::optional<content::PermissionResult> GetEmbargoResult(
diff --git a/components/page_info_strings.grdp b/components/page_info_strings.grdp
index bce8662..a785fbe 100644
--- a/components/page_info_strings.grdp
+++ b/components/page_info_strings.grdp
@@ -717,6 +717,9 @@
   <message name="IDS_PAGE_INFO_COOKIES_HEADER" desc="The header label of cookies subpage in Page Info bubble.">
   Cookies and site data
   </message>
+  <message name="IDS_PAGE_INFO_TRACKING_PROTECTION_HEADER" desc="The header label of Tracking Protection subpage in Page Info bubble." translateable="false">
+  Tracking Protection
+  </message>
   <message name="IDS_PAGE_INFO_COOKIES_DESCRIPTION" desc="The descritpion of cookies in Cookies Subpage with placeholder for link to settings.">
     Cookies and other site data are used to remember you, for example to sign you in or to personalize ads. To manage cookies for all sites, see <ph name="SETTINGS">$1<ex>Settings</ex></ph>.
   </message>
diff --git a/components/page_load_metrics/OWNERS b/components/page_load_metrics/OWNERS
index 1703764..552e533 100644
--- a/components/page_load_metrics/OWNERS
+++ b/components/page_load_metrics/OWNERS
@@ -7,3 +7,4 @@
 johnidel@chromium.org
 toyoshim@chromium.org
 kenoss@chromium.org
+iclelland@chromium.org
diff --git a/components/password_manager/ios/BUILD.gn b/components/password_manager/ios/BUILD.gn
index 311527c..0fdb9c2 100644
--- a/components/password_manager/ios/BUILD.gn
+++ b/components/password_manager/ios/BUILD.gn
@@ -87,6 +87,8 @@
 optimize_js("password_controller_js") {
   primary_script = "resources/password_controller.js"
   sources = [ "resources/password_controller.js" ]
+
+  deps = [ "//components/autofill/ios/form_util:fill_js_dependencies" ]
 }
 
 static_library("test_support") {
diff --git a/components/password_manager/ios/password_suggestion_helper_unittest.mm b/components/password_manager/ios/password_suggestion_helper_unittest.mm
index 663ff2b1..98d2fd4 100644
--- a/components/password_manager/ios/password_suggestion_helper_unittest.mm
+++ b/components/password_manager/ios/password_suggestion_helper_unittest.mm
@@ -118,8 +118,8 @@
                                isMainFrame:main_frame_->IsMainFrame()
                          forSecurityOrigin:main_frame_->GetSecurityOrigin()];
 
-  __block BOOL retrieved_suggestions;
-  __block BOOL completion_called;
+  __block BOOL retrieved_suggestions = NO;
+  __block BOOL completion_called = NO;
   SuggestionsAvailableCompletion completion = ^(BOOL suggestionsAvailable) {
     retrieved_suggestions = suggestionsAvailable;
     completion_called = YES;
@@ -163,8 +163,8 @@
                                isMainFrame:main_frame_->IsMainFrame()
                          forSecurityOrigin:main_frame_->GetSecurityOrigin()];
 
-  __block BOOL retrieved_suggestions;
-  __block BOOL completion_called;
+  __block BOOL retrieved_suggestions = NO;
+  __block BOOL completion_called = NO;
   SuggestionsAvailableCompletion completion = ^(BOOL suggestionsAvailable) {
     retrieved_suggestions = suggestionsAvailable;
     completion_called = YES;
@@ -198,8 +198,8 @@
   FormRendererId form1_renderer_id = autofill::test::MakeFormRendererId();
   FieldRendererId password1_renderer_id = autofill::test::MakeFieldRendererId();
 
-  __block BOOL retrieved_suggestions;
-  __block BOOL completion_called;
+  __block BOOL retrieved_suggestions = NO;
+  __block BOOL completion_called = NO;
   SuggestionsAvailableCompletion completion = ^(BOOL suggestionsAvailable) {
     retrieved_suggestions = suggestionsAvailable;
     completion_called = YES;
@@ -247,8 +247,8 @@
   FieldRendererId username1_renderer_id = autofill::test::MakeFieldRendererId();
   FieldRendererId password1_renderer_id = autofill::test::MakeFieldRendererId();
 
-  __block BOOL retrieved_suggestions;
-  __block BOOL completion_called;
+  __block BOOL retrieved_suggestions = NO;
+  __block BOOL completion_called = NO;
   SuggestionsAvailableCompletion completion = ^(BOOL suggestionsAvailable) {
     retrieved_suggestions = suggestionsAvailable;
     completion_called = YES;
@@ -310,8 +310,8 @@
                                           inFrame:main_frame_]);
 
   // First query.
-  __block BOOL retrieved_suggestions1;
-  __block BOOL completion1_called;
+  __block BOOL retrieved_suggestions1 = NO;
+  __block BOOL completion1_called = NO;
   SuggestionsAvailableCompletion completion1 = ^(BOOL suggestionsAvailable) {
     retrieved_suggestions1 = suggestionsAvailable;
     completion1_called = YES;
@@ -329,8 +329,8 @@
                             completionHandler:completion1];
 
   // Second query for the same focused field as query 1.
-  __block BOOL retrieved_suggestions2;
-  __block BOOL completion2_called;
+  __block BOOL retrieved_suggestions2 = NO;
+  __block BOOL completion2_called = NO;
   SuggestionsAvailableCompletion completion2 = ^(BOOL suggestionsAvailable) {
     retrieved_suggestions2 = suggestionsAvailable;
     completion2_called = YES;
@@ -348,8 +348,8 @@
                             completionHandler:completion2];
 
   // Third query for a field in a different form.
-  __block BOOL retrieved_suggestions3;
-  __block BOOL completion3_called;
+  __block BOOL retrieved_suggestions3 = NO;
+  __block BOOL completion3_called = NO;
   SuggestionsAvailableCompletion completion3 = ^(BOOL suggestionsAvailable) {
     retrieved_suggestions3 = suggestionsAvailable;
     completion3_called = YES;
@@ -428,8 +428,8 @@
                                                            inFrame:frame2_ptr]);
 
   // First query for form in main frame.
-  __block BOOL retrieved_suggestions1;
-  __block BOOL completion1_called;
+  __block BOOL retrieved_suggestions1 = NO;
+  __block BOOL completion1_called = NO;
   SuggestionsAvailableCompletion completion1 = ^(BOOL suggestionsAvailable) {
     retrieved_suggestions1 = suggestionsAvailable;
     completion1_called = YES;
@@ -449,8 +449,8 @@
   }
 
   // Second query for other form in main frame.
-  __block BOOL retrieved_suggestions2;
-  __block BOOL completion2_called;
+  __block BOOL retrieved_suggestions2 = NO;
+  __block BOOL completion2_called = NO;
   SuggestionsAvailableCompletion completion2 = ^(BOOL suggestionsAvailable) {
     retrieved_suggestions2 = suggestionsAvailable;
     completion2_called = YES;
@@ -470,8 +470,8 @@
   }
 
   // Third query for form in subframe.
-  __block BOOL retrieved_suggestions3;
-  __block BOOL completion3_called;
+  __block BOOL retrieved_suggestions3 = NO;
+  __block BOOL completion3_called = NO;
   SuggestionsAvailableCompletion completion3 = ^(BOOL suggestionsAvailable) {
     retrieved_suggestions3 = suggestionsAvailable;
     completion3_called = YES;
@@ -491,8 +491,8 @@
   }
 
   // Fourth query for form in other subframe.
-  __block BOOL retrieved_suggestions4;
-  __block BOOL completion4_called;
+  __block BOOL retrieved_suggestions4 = NO;
+  __block BOOL completion4_called = NO;
   SuggestionsAvailableCompletion completion4 = ^(BOOL suggestionsAvailable) {
     retrieved_suggestions4 = suggestionsAvailable;
     completion4_called = YES;
@@ -862,7 +862,7 @@
   AddWebFrame(std::move(frame1));
 
   // Queue check query for subframe.
-  __block BOOL completion_called;
+  __block BOOL completion_called = NO;
   SuggestionsAvailableCompletion completion = ^(BOOL suggestionsAvailable) {
     completion_called = YES;
   };
diff --git a/components/password_manager/ios/resources/password_controller.js b/components/password_manager/ios/resources/password_controller.js
index 2950481..cbe0f0e 100644
--- a/components/password_manager/ios/resources/password_controller.js
+++ b/components/password_manager/ios/resources/password_controller.js
@@ -2,6 +2,8 @@
 // Use of this source code is governed by a BSD-style license that can be
 // found in the LICENSE file.
 
+import {EXTRACT_MASK_VALUE} from '//components/autofill/ios/form_util/resources/fill_constants.js';
+
 /**
  * @fileoverview Installs Passwords management functions on the __gCrWeb object.
  *
@@ -299,7 +301,7 @@
  * @return {Object} Object of data from formElement.
  */
 __gCrWeb.passwords.getPasswordFormDataFromUnownedElements = function() {
-  const extractMask = __gCrWeb.fill.EXTRACT_MASK_VALUE;
+  const extractMask = EXTRACT_MASK_VALUE;
   const fieldsets = [];
   const unownedControlElements =
       __gCrWeb.fill.getUnownedAutofillableFormFieldElements(
@@ -322,7 +324,7 @@
  * @return {Object} Object of data from formElement.
  */
 __gCrWeb.passwords.getPasswordFormData = function(formElement) {
-  const extractMask = __gCrWeb.fill.EXTRACT_MASK_VALUE;
+  const extractMask = EXTRACT_MASK_VALUE;
   const formData = {};
   const ok = __gCrWeb.fill.webFormElementToFormData(
       window, formElement, null /* formControlElement */, extractMask, formData,
diff --git a/components/payments/content/android/java/src/org/chromium/components/payments/BrowserPaymentRequest.java b/components/payments/content/android/java/src/org/chromium/components/payments/BrowserPaymentRequest.java
index b6a33f7..6f3dc1f 100644
--- a/components/payments/content/android/java/src/org/chromium/components/payments/BrowserPaymentRequest.java
+++ b/components/payments/content/android/java/src/org/chromium/components/payments/BrowserPaymentRequest.java
@@ -130,14 +130,6 @@
     boolean onPaymentAppCreated(PaymentApp paymentApp);
 
     /**
-     * @return Whether payment sheet based payment app is supported, e.g., user entering credit
-     *      cards on payment sheet.
-     */
-    default boolean isPaymentSheetBasedPaymentAppSupported() {
-        return false;
-    }
-
-    /**
      * Patches the given payment response if needed.
      * @param response The payment response to be patched in place.
      * @return Whether the patching is successful.
diff --git a/components/payments/content/android/java/src/org/chromium/components/payments/PaymentRequestService.java b/components/payments/content/android/java/src/org/chromium/components/payments/PaymentRequestService.java
index 99c129a..1bb966ba 100644
--- a/components/payments/content/android/java/src/org/chromium/components/payments/PaymentRequestService.java
+++ b/components/payments/content/android/java/src/org/chromium/components/payments/PaymentRequestService.java
@@ -1766,7 +1766,7 @@
     // PaymentAppFactoryParams implementation.
     @Override
     public boolean getMayCrawl() {
-        return !mBrowserPaymentRequest.isPaymentSheetBasedPaymentAppSupported();
+        return true;
     }
 
     // PaymentAppFactoryParams implementation.
diff --git a/components/performance_manager/metrics/tab_revisit_tracker.cc b/components/performance_manager/metrics/tab_revisit_tracker.cc
index 36aba7d..cfeda4d 100644
--- a/components/performance_manager/metrics/tab_revisit_tracker.cc
+++ b/components/performance_manager/metrics/tab_revisit_tracker.cc
@@ -28,8 +28,61 @@
   return std::min(sample, max);
 }
 
+int64_t StateToSample(TabRevisitTracker::State state) {
+  // The UKM doesn't report discarded tabs, instead treating them as in the
+  // background.
+  if (state == TabRevisitTracker::State::kDiscarded) {
+    state = TabRevisitTracker::State::kBackground;
+  }
+  CHECK_LE(state, TabRevisitTracker::State::kClosed);
+  return static_cast<int64_t>(state);
+}
+
+void DoRecordUkm(TabRevisitTracker::StateBundle previous_state,
+                 TabRevisitTracker::StateBundle new_state,
+                 ukm::SourceId source_id) {
+  CHECK_NE(ukm::kInvalidSourceId, source_id);
+
+  ukm::builders::TabRevisitTracker_TabStateChange builder(source_id);
+
+  builder.SetPreviousState(StateToSample(previous_state.state))
+      .SetNewState(StateToSample(new_state.state))
+      .SetNumTotalRevisits(
+          GetLinearCappedBucket(new_state.num_revisits, kMaxNumRevisit))
+      .SetTimeInPreviousState(TabRevisitTracker::ExponentiallyBucketedSeconds(
+          base::TimeTicks::Now() - previous_state.last_state_change_time))
+      .SetTotalTimeActive(TabRevisitTracker::ExponentiallyBucketedSeconds(
+          new_state.total_time_active));
+
+  if (previous_state.connectedness_to_last_switch_active_tab &&
+      new_state.state == TabRevisitTracker::State::kActive) {
+    // It's possible for this score to be nullopt if the first switch to this
+    // tab isn't from another tab (for instance, on startup a tab will be made
+    // active but there will be no "previous" active tab). This is also only
+    // meaningful (thus recorded) if the tab is becoming the active tab.
+    builder.SetConnectednessToActiveTab(
+        previous_state.connectedness_to_last_switch_active_tab.value());
+  }
+
+  builder.Record(ukm::UkmRecorder::Get());
+}
+
 }  // namespace
 
+class TabRevisitTracker::UkmSourceIdReadyRecorder {
+ public:
+  UkmSourceIdReadyRecorder(StateBundle previous_state, StateBundle new_state)
+      : previous_state_(previous_state), new_state_(new_state) {}
+
+  void OnUkmSourceIdChanged(ukm::SourceId source_id) {
+    CHECK_NE(source_id, ukm::kInvalidSourceId);
+    DoRecordUkm(previous_state_, new_state_, source_id);
+  }
+
+  StateBundle previous_state_;
+  StateBundle new_state_;
+};
+
 TabRevisitTracker::TabRevisitTracker() = default;
 TabRevisitTracker::~TabRevisitTracker() = default;
 
@@ -64,38 +117,26 @@
 void TabRevisitTracker::RecordStateChangeUkmAndUpdateStateBundle(
     const TabPageDecorator::TabHandle* tab_handle,
     StateBundle new_state_bundle) {
-  // TODO(1469337): This may return the "invalid UKM source ID" for discarded
+  // This may return the "invalid UKM source ID" for discarded
   // tabs, because their source ID is set on navigation, which happens later
   // than the `PageNode`'s activation. If this is the invalid source ID, an
-  // observer should be set up on the source ID property and the UKM event
-  // should be reported after when it becomes available.
+  // observer is set up on the source ID property and the UKM event
+  // is reported after when it becomes available.
   ukm::builders::TabRevisitTracker_TabStateChange builder(
       tab_handle->page_node()->GetUkmSourceID());
 
   auto it = tab_states_.find(tab_handle);
   CHECK(it != tab_states_.end());
 
-  builder.SetPreviousState(StateToSample(it->second.state))
-      .SetNewState(StateToSample(new_state_bundle.state))
-      .SetNumTotalRevisits(
-          GetLinearCappedBucket(new_state_bundle.num_revisits, kMaxNumRevisit))
-      .SetTimeInPreviousState(ExponentiallyBucketedSeconds(
-          base::TimeTicks::Now() - it->second.last_state_change_time))
-      .SetTotalTimeActive(
-          ExponentiallyBucketedSeconds(new_state_bundle.total_time_active));
-
-  if (it->second.connectedness_to_last_switch_active_tab &&
-      new_state_bundle.state == State::kActive) {
-    // It's possible for this score to be nullopt if the first switch to this
-    // tab isn't from another tab (for instance, on startup a tab will be made
-    // active but there will be no "previous" active tab). This is also only
-    // meaningful (thus recorded) if the tab is becoming the active tab.
-    builder.SetConnectednessToActiveTab(
-        it->second.connectedness_to_last_switch_active_tab.value());
+  auto source_id = tab_handle->page_node()->GetUkmSourceID();
+  if (source_id == ukm::kInvalidSourceId) {
+    pending_ukm_records_.emplace(tab_handle,
+                                 std::make_unique<UkmSourceIdReadyRecorder>(
+                                     it->second, new_state_bundle));
+  } else {
+    DoRecordUkm(it->second, new_state_bundle, source_id);
   }
 
-  builder.Record(ukm::UkmRecorder::Get());
-
   it->second = new_state_bundle;
 }
 
@@ -123,16 +164,6 @@
   return new_bundle;
 }
 
-int64_t TabRevisitTracker::StateToSample(TabRevisitTracker::State state) {
-  // The UKM doesn't report discarded tabs, instead treating them as in the
-  // background.
-  if (state == TabRevisitTracker::State::kDiscarded) {
-    state = TabRevisitTracker::State::kBackground;
-  }
-  CHECK_LE(state, TabRevisitTracker::State::kClosed);
-  return static_cast<int64_t>(state);
-}
-
 // static
 int64_t TabRevisitTracker::ExponentiallyBucketedSeconds(base::TimeDelta time) {
   // Cap the reported time at 48 hours, effectively making the 48 hour bucket
@@ -152,6 +183,8 @@
       graph->GetRegisteredObjectAs<TabConnectednessDecorator>();
   CHECK(tab_connectedness_decorator);
   tab_connectedness_decorator->AddObserver(this);
+
+  graph->AddPageNodeObserver(this);
 }
 
 void TabRevisitTracker::OnTakenFromGraph(Graph* graph) {
@@ -166,6 +199,8 @@
   if (tab_connectedness_decorator) {
     tab_connectedness_decorator->RemoveObserver(this);
   }
+
+  graph->RemovePageNodeObserver(this);
 }
 
 void TabRevisitTracker::OnTabAdded(TabPageDecorator::TabHandle* tab_handle) {
@@ -228,6 +263,9 @@
   // away.
 
   tab_states_.erase(tab_handle);
+  // If there was a pending record for this tab that never materialized, remove
+  // it from the map.
+  pending_ukm_records_.erase(tab_handle);
 }
 
 void TabRevisitTracker::OnIsActiveTabChanged(const PageNode* page_node) {
@@ -271,4 +309,18 @@
       base::ClampRound<int64_t, float>(connectedness * kScaleFactor);
 }
 
+void TabRevisitTracker::OnUkmSourceIdChanged(const PageNode* page_node) {
+  TabPageDecorator::TabHandle* tab_handle =
+      TabPageDecorator::FromPageNode(page_node);
+  if (tab_handle) {
+    auto it = pending_ukm_records_.find(tab_handle);
+    if (it != pending_ukm_records_.end()) {
+      it->second->OnUkmSourceIdChanged(page_node->GetUkmSourceID());
+
+      // Once the recorder has done its job, it can be deleted.
+      pending_ukm_records_.erase(tab_handle);
+    }
+  }
+}
+
 }  // namespace performance_manager
diff --git a/components/performance_manager/metrics/tab_revisit_tracker_unittest.cc b/components/performance_manager/metrics/tab_revisit_tracker_unittest.cc
index f2f30c45..1a5d82b 100644
--- a/components/performance_manager/metrics/tab_revisit_tracker_unittest.cc
+++ b/components/performance_manager/metrics/tab_revisit_tracker_unittest.cc
@@ -24,6 +24,7 @@
 constexpr int64_t kActiveState = 0;
 constexpr int64_t kBackgroundState = 1;
 constexpr int64_t kClosedState = 2;
+constexpr ukm::SourceId kValidSourceId = 1;
 
 class TabRevisitTrackerTest : public GraphTestHarness {
  protected:
@@ -32,7 +33,9 @@
 
     graph()->PassToGraph(std::make_unique<TabPageDecorator>());
     graph()->PassToGraph(std::make_unique<TabConnectednessDecorator>());
-    graph()->PassToGraph(std::make_unique<TabRevisitTracker>());
+    auto tracker = std::make_unique<TabRevisitTracker>();
+    tab_revisit_tracker_ = tracker.get();
+    graph()->PassToGraph(std::move(tracker));
 
     test_ukm_recorder_ = std::make_unique<ukm::TestAutoSetUkmRecorder>();
   }
@@ -50,6 +53,13 @@
     SetIsActiveTab(to, true);
   }
 
+  void SimulateDiscard(PageNodeImpl* page_node) {
+    tab_revisit_tracker_->OnTabAboutToBeDiscarded(
+        page_node, TabPageDecorator::FromPageNode(page_node));
+
+    page_node->SetUkmSourceId(ukm::kInvalidSourceId);
+  }
+
   void ValidateEntry(size_t entries_count,
                      size_t entry_id,
                      int64_t previous_state,
@@ -77,11 +87,13 @@
   }
 
   std::unique_ptr<ukm::TestUkmRecorder> test_ukm_recorder_;
+  raw_ptr<TabRevisitTracker> tab_revisit_tracker_;
 };
 
 TEST_F(TabRevisitTrackerTest, StartsBackgroundedThenRevisited) {
   base::HistogramTester tester;
   MockSinglePageInSingleProcessGraph mock_graph(graph());
+  mock_graph.page->SetUkmSourceId(kValidSourceId);
 
   // Creating the graph doesn't record anything since the page nodes are created
   // as kUnknown and don't change their "active tab" status.
@@ -139,6 +151,7 @@
 TEST_F(TabRevisitTrackerTest, CloseInBackgroundRecordsToCloseHistogram) {
   base::HistogramTester tester;
   MockSinglePageInSingleProcessGraph mock_graph(graph());
+  mock_graph.page->SetUkmSourceId(kValidSourceId);
 
   SetIsActiveTab(mock_graph.page.get(), false);
   mock_graph.page->SetType(PageType::kTab);
@@ -168,6 +181,7 @@
 TEST_F(TabRevisitTrackerTest, CloseWhileActiveDoesntRecordClose) {
   base::HistogramTester tester;
   MockSinglePageInSingleProcessGraph mock_graph(graph());
+  mock_graph.page->SetUkmSourceId(kValidSourceId);
 
   SetIsActiveTab(mock_graph.page.get(), true);
   mock_graph.page->SetType(PageType::kTab);
@@ -196,10 +210,12 @@
   // This graph has 4 pages: `page` and `other_pages[0..2]`, hereafter referred
   // to as `OP_N`
   MockManyPagesInSingleProcessGraph mock_graph(graph(), 3);
+  mock_graph.page->SetUkmSourceId(kValidSourceId);
 
   mock_graph.page->SetType(PageType::kTab);
   for (auto& p : mock_graph.other_pages) {
     p->SetType(PageType::kTab);
+    p->SetUkmSourceId(kValidSourceId);
   }
 
   SetIsActiveTab(mock_graph.page.get(), true);
@@ -244,4 +260,52 @@
                                         1000);
 }
 
+TEST_F(TabRevisitTrackerTest, TestSwitchToDiscardedTab) {
+  // This graph has 4 pages: `page` and `other_pages[0..2]`, hereafter referred
+  // to as `OP_N`
+  MockManyPagesInSingleProcessGraph mock_graph(graph(), 3);
+  mock_graph.page->SetUkmSourceId(kValidSourceId);
+
+  mock_graph.page->SetType(PageType::kTab);
+  for (auto& p : mock_graph.other_pages) {
+    p->SetType(PageType::kTab);
+  }
+
+  SetIsActiveTab(mock_graph.page.get(), true);
+
+  // Simulate that other_pages[0] is being discarded, then switched to. The
+  // order in which things happen in that situation are:
+  //
+  // 1. OnAboutToBeDiscarded is invoked with the current tab's TabHandle and its
+  // PageNode before the discard.
+  // 2. The tab is discarded, its PageNode is deleted and replaced by a fresh
+  // one.
+  // 3. The tab is switched to, it becomes the active tab. TabRevisitTracker
+  // attempts to record the TabStateChange UKM but the tab's UKM source ID is
+  // invalid
+  // 4. The tab navigates to its URL, its UKM source ID is set.
+
+  EXPECT_EQ(mock_graph.other_pages[0]->ukm_source_id(), ukm::kInvalidSourceId);
+  // Set the page's source ID as if it had navigated before
+  mock_graph.other_pages[0]->SetUkmSourceId(kValidSourceId);
+  EXPECT_EQ(mock_graph.other_pages[0]->ukm_source_id(), kValidSourceId);
+
+  SimulateDiscard(mock_graph.other_pages[0].get());
+  SwitchTab(mock_graph.page.get(), mock_graph.other_pages[0].get());
+
+  auto entries = test_ukm_recorder_->GetEntriesByName(
+      ukm::builders::TabRevisitTracker_TabStateChange::kEntryName);
+  // There should be 3 entries: the first tab being made active, followed by one
+  // entry for the active tab going inactive. The inactive tab being made active
+  // will only be recorded when its UKM source ID becomes available.
+  EXPECT_EQ(entries.size(), 2UL);
+
+  // Simulate that the source ID is set post-navigation. This should trigger
+  // recording the inactive -> active UKM.
+  mock_graph.other_pages[0]->SetUkmSourceId(kValidSourceId);
+  entries = test_ukm_recorder_->GetEntriesByName(
+      ukm::builders::TabRevisitTracker_TabStateChange::kEntryName);
+  EXPECT_EQ(entries.size(), 3UL);
+}
+
 }  // namespace performance_manager
diff --git a/components/performance_manager/public/metrics/tab_revisit_tracker.h b/components/performance_manager/public/metrics/tab_revisit_tracker.h
index 50a26f0..6be6ded 100644
--- a/components/performance_manager/public/metrics/tab_revisit_tracker.h
+++ b/components/performance_manager/public/metrics/tab_revisit_tracker.h
@@ -22,7 +22,8 @@
 class TabRevisitTracker : public GraphOwned,
                           public TabPageObserver,
                           public PageLiveStateObserverDefaultImpl,
-                          public TabConnectednessDecorator::Observer {
+                          public TabConnectednessDecorator::Observer,
+                          public PageNode::ObserverDefaultImpl {
  public:
   static constexpr char kTimeToRevisitHistogramName[] =
       "PerformanceManager.TabRevisitTracker.TimeToRevisit2";
@@ -32,8 +33,7 @@
   TabRevisitTracker();
   ~TabRevisitTracker() override;
 
- private:
-  friend class TabRevisitTrackerTest;
+  static int64_t ExponentiallyBucketedSeconds(base::TimeDelta time);
 
   enum class State {
     // The order of the leading elements must match the one in enums.xml
@@ -60,6 +60,11 @@
     absl::optional<int64_t> connectedness_to_last_switch_active_tab;
   };
 
+ private:
+  friend class TabRevisitTrackerTest;
+
+  class UkmSourceIdReadyRecorder;
+
   void RecordRevisitHistograms(const TabPageDecorator::TabHandle* tab_handle);
   void RecordCloseHistograms(const TabPageDecorator::TabHandle* tab_handle);
   void RecordStateChangeUkmAndUpdateStateBundle(
@@ -70,9 +75,6 @@
       const TabPageDecorator::TabHandle* tab_handle,
       State new_state) const;
 
-  int64_t StateToSample(TabRevisitTracker::State state);
-  static int64_t ExponentiallyBucketedSeconds(base::TimeDelta time);
-
   // GraphOwned:
   void OnPassedToGraph(Graph* graph) override;
   void OnTakenFromGraph(Graph* graph) override;
@@ -91,7 +93,13 @@
   void OnBeforeTabSwitch(TabPageDecorator::TabHandle* source,
                          TabPageDecorator::TabHandle* destination) override;
 
+  // PageNode::ObserverDefaultImpl:
+  void OnUkmSourceIdChanged(const PageNode* page_node) override;
+
   std::map<const TabPageDecorator::TabHandle*, StateBundle> tab_states_;
+  std::map<const TabPageDecorator::TabHandle*,
+           std::unique_ptr<UkmSourceIdReadyRecorder>>
+      pending_ukm_records_;
 };
 
 }  // namespace performance_manager
diff --git a/components/permissions/features.cc b/components/permissions/features.cc
index 6127a71..b2c5946 100644
--- a/components/permissions/features.cc
+++ b/components/permissions/features.cc
@@ -176,6 +176,10 @@
     &features::kOneTimePermission, "one_time_permission_timeout",
     base::Minutes(5)};
 
+const base::FeatureParam<base::TimeDelta> kOneTimePermissionLongTimeout{
+    &features::kOneTimePermission, "one_time_permission_long_timeout",
+    base::Hours(16)};
+
 const base::FeatureParam<std::string> kPermissionPredictionServiceUrlOverride{
     &permissions::features::kPermissionPredictionServiceUseUrlOverride,
     "service_url", ""};
diff --git a/components/permissions/features.h b/components/permissions/features.h
index 964a7dfd..1f89d820 100644
--- a/components/permissions/features.h
+++ b/components/permissions/features.h
@@ -98,6 +98,9 @@
 extern const base::FeatureParam<base::TimeDelta> kOneTimePermissionTimeout;
 
 COMPONENT_EXPORT(PERMISSIONS_COMMON)
+extern const base::FeatureParam<base::TimeDelta> kOneTimePermissionLongTimeout;
+
+COMPONENT_EXPORT(PERMISSIONS_COMMON)
 extern const base::FeatureParam<std::string>
     kPermissionPredictionServiceUrlOverride;
 
diff --git a/components/policy/core/common/config_dir_policy_loader_unittest.cc b/components/policy/core/common/config_dir_policy_loader_unittest.cc
index 2c5c4b0..2c22dce9 100644
--- a/components/policy/core/common/config_dir_policy_loader_unittest.cc
+++ b/components/policy/core/common/config_dir_policy_loader_unittest.cc
@@ -37,6 +37,13 @@
   /* Some more comments here */
 })";
 
+#if !BUILDFLAG(IS_CHROMEOS)
+const char PrecedencePolicies[] = R"({
+  "CloudPolicyOverridesPlatformPolicy": true,
+  "CloudUserPolicyOverridesCloudMachinePolicy": false,
+})";
+#endif  // BUILDFLAG(IS_CHROMEOS)
+
 class TestHarness : public PolicyProviderTestHarness {
  public:
   TestHarness();
@@ -278,4 +285,27 @@
   EXPECT_TRUE(bundle.Equals(expected_bundle));
 }
 
+#if !BUILDFLAG(IS_CHROMEOS)
+TEST_F(ConfigDirPolicyLoaderTest, LoadPrecedencePolicies) {
+  const PolicyNamespace chrome_ns(POLICY_DOMAIN_CHROME, std::string());
+  RegisterChromeSchema(chrome_ns);
+
+  harness_.WriteConfigFile(PrecedencePolicies, "policies.json");
+  ConfigDirPolicyLoader loader(task_environment_.GetMainThreadTaskRunner(),
+                               harness_.test_dir(), POLICY_SCOPE_MACHINE);
+  PolicyBundle bundle = loader.Load();
+  PolicyBundle expected_bundle;
+  expected_bundle.Get(chrome_ns).Set(
+      key::kCloudPolicyOverridesPlatformPolicy, POLICY_LEVEL_MANDATORY,
+      POLICY_SCOPE_MACHINE, POLICY_SOURCE_PLATFORM, base::Value(true),
+      /*external_data_fetcher=*/nullptr);
+  expected_bundle.Get(chrome_ns).Set(
+      key::kCloudUserPolicyOverridesCloudMachinePolicy, POLICY_LEVEL_MANDATORY,
+      POLICY_SCOPE_MACHINE, POLICY_SOURCE_PLATFORM, base::Value(false),
+      /*external_data_fetcher=*/nullptr);
+
+  EXPECT_TRUE(bundle.Equals(expected_bundle));
+}
+#endif  // BUILDFLAG(IS_CHROMEOS)
+
 }  // namespace policy
diff --git a/components/policy/core/common/configuration_policy_provider_test.cc b/components/policy/core/common/configuration_policy_provider_test.cc
index 2484f568..59d4637 100644
--- a/components/policy/core/common/configuration_policy_provider_test.cc
+++ b/components/policy/core/common/configuration_policy_provider_test.cc
@@ -11,6 +11,7 @@
 #include "base/task/task_traits.h"
 #include "base/task/thread_pool.h"
 #include "base/values.h"
+#include "components/policy/core/common/chrome_schema.h"
 #include "components/policy/core/common/configuration_policy_provider.h"
 #include "components/policy/core/common/external_data_fetcher.h"
 #include "components/policy/core/common/mock_configuration_policy_provider.h"
@@ -151,6 +152,10 @@
   return false;
 }
 
+void PolicyTestBase::RegisterChromeSchema(const PolicyNamespace& ns) {
+  schema_registry_.RegisterComponent(ns, policy::GetChromeSchema());
+}
+
 PolicyProviderTestHarness::PolicyProviderTestHarness(PolicyLevel level,
                                                      PolicyScope scope,
                                                      PolicySource source)
diff --git a/components/policy/core/common/configuration_policy_provider_test.h b/components/policy/core/common/configuration_policy_provider_test.h
index 2d0ece4f..323805c 100644
--- a/components/policy/core/common/configuration_policy_provider_test.h
+++ b/components/policy/core/common/configuration_policy_provider_test.h
@@ -51,6 +51,9 @@
   bool RegisterSchema(const PolicyNamespace& ns,
                       const std::string& schema);
 
+  // Register the actual Chrome schema containing supported policies.
+  void RegisterChromeSchema(const PolicyNamespace& ns);
+
   // Needs to be the first member
   base::test::TaskEnvironment task_environment_;
   SchemaRegistry schema_registry_;
diff --git a/components/policy/core/common/policy_loader_mac_unittest.cc b/components/policy/core/common/policy_loader_mac_unittest.cc
index 7a86fa64..cb64401 100644
--- a/components/policy/core/common/policy_loader_mac_unittest.cc
+++ b/components/policy/core/common/policy_loader_mac_unittest.cc
@@ -25,6 +25,7 @@
 #include "components/policy/core/common/policy_test_utils.h"
 #include "components/policy/core/common/policy_types.h"
 #include "components/policy/core/common/preferences_mock_mac.h"
+#include "components/policy/policy_constants.h"
 #include "testing/gtest/include/gtest/gtest.h"
 
 using base::apple::ScopedCFTypeRef;
@@ -223,4 +224,35 @@
   EXPECT_TRUE(provider_->policies().Equals(expected_bundle));
 }
 
+TEST_F(PolicyLoaderMacTest, LoadPrecedencePolicies) {
+  // Update the policy schema to the actual Chrome schema.
+  const PolicyNamespace chrome_ns(POLICY_DOMAIN_CHROME, std::string());
+  RegisterChromeSchema(chrome_ns);
+
+  prefs_->AddTestItem(ScopedCFTypeRef<CFStringRef>(base::SysUTF8ToCFStringRef(
+                          key::kCloudPolicyOverridesPlatformPolicy)),
+                      kCFBooleanTrue,
+                      /*is_forced=*/true,
+                      /*is_machine=*/true);
+  prefs_->AddTestItem(ScopedCFTypeRef<CFStringRef>(base::SysUTF8ToCFStringRef(
+                          key::kCloudUserPolicyOverridesCloudMachinePolicy)),
+                      kCFBooleanTrue,
+                      /*is_forced=*/true,
+                      /*is_machine=*/true);
+
+  PolicyBundle expected;
+  expected.Get(chrome_ns).Set(
+      key::kCloudPolicyOverridesPlatformPolicy, POLICY_LEVEL_MANDATORY,
+      POLICY_SCOPE_MACHINE, POLICY_SOURCE_PLATFORM, base::Value(true), nullptr);
+  expected.Get(chrome_ns).Set(
+      key::kCloudUserPolicyOverridesCloudMachinePolicy, POLICY_LEVEL_MANDATORY,
+      POLICY_SCOPE_MACHINE, POLICY_SOURCE_PLATFORM, base::Value(true), nullptr);
+
+  // Make the provider read the updated |prefs_|.
+  provider_->RefreshPolicies();
+  task_environment_.RunUntilIdle();
+
+  EXPECT_TRUE(provider_->policies().Equals(expected));
+}
+
 }  // namespace policy
diff --git a/components/policy/core/common/policy_loader_win_unittest.cc b/components/policy/core/common/policy_loader_win_unittest.cc
index c6a9f88..8a1fe1e 100644
--- a/components/policy/core/common/policy_loader_win_unittest.cc
+++ b/components/policy/core/common/policy_loader_win_unittest.cc
@@ -36,6 +36,7 @@
 #include "components/policy/core/common/policy_map.h"
 #include "components/policy/core/common/policy_types.h"
 #include "components/policy/core/common/schema_map.h"
+#include "components/policy/policy_constants.h"
 #include "components/strings/grit/components_strings.h"
 #include "testing/gtest/include/gtest/gtest.h"
 
@@ -740,4 +741,33 @@
   EXPECT_TRUE(Matches(expected));
 }
 
+TEST_F(PolicyLoaderWinTest, LoadPrecedencePolicies) {
+  const PolicyNamespace chrome_ns(POLICY_DOMAIN_CHROME, std::string());
+  RegisterChromeSchema(chrome_ns);
+
+  // Merging of precedence policies is handled separately from all remaining
+  // policies. This ensures that all precedence policies are correctly loaded
+  // from the registry.
+  RegKey hklm_key(HKEY_LOCAL_MACHINE, kTestPolicyKey, KEY_ALL_ACCESS);
+  ASSERT_TRUE(hklm_key.Valid());
+  PolicyBundle expected;
+
+  hklm_key.WriteValue(
+      base::UTF8ToWide(key::kCloudPolicyOverridesPlatformPolicy).c_str(),
+      /*in_value=*/1);
+  hklm_key.WriteValue(
+      base::UTF8ToWide(key::kCloudUserPolicyOverridesCloudMachinePolicy)
+          .c_str(),
+      /*in_value=*/1);
+
+  expected.Get(chrome_ns).Set(
+      key::kCloudPolicyOverridesPlatformPolicy, POLICY_LEVEL_MANDATORY,
+      POLICY_SCOPE_MACHINE, POLICY_SOURCE_PLATFORM, base::Value(true), nullptr);
+  expected.Get(chrome_ns).Set(
+      key::kCloudUserPolicyOverridesCloudMachinePolicy, POLICY_LEVEL_MANDATORY,
+      POLICY_SCOPE_MACHINE, POLICY_SOURCE_PLATFORM, base::Value(true), nullptr);
+
+  EXPECT_TRUE(Matches(expected));
+}
+
 }  // namespace policy
diff --git a/components/policy/resources/policy_templates_de.xtb b/components/policy/resources/policy_templates_de.xtb
index cb7f341..47edefd 100644
--- a/components/policy/resources/policy_templates_de.xtb
+++ b/components/policy/resources/policy_templates_de.xtb
@@ -813,6 +813,7 @@
 Ist die Richtlinie deaktiviert, werden keine regelmäßigen Scans durchgeführt und auch die Option zum manuellen Starten ist deaktiviert.
 
 Unter <ph name="MS_WIN_NAME" /> steht diese Richtlinie nur bei Instanzen zur Verfügung, die Teil einer <ph name="MS_AD_NAME" />-Domain oder von <ph name="MS_AAD_NAME" /> sind oder die in<ph name="CHROME_BROWSER_CLOUD_MANAGEMENT_NAME" /> angemeldet sind.</translation>
+<translation id="1736990730683753958">Die in Gruppen eingeteilte Chrome-Verlaufsseite ist unter chrome://history/grouped nicht sichtbar.</translation>
 <translation id="1744340218280697033">Eltern dürfen keine gemeinsam verwalteten Konten hinzufügen</translation>
 <translation id="1751429117283165017">Wenn diese Richtlinie konfiguriert ist, kannst du eine Liste mit URL-Mustern erstellen, die angeben, welche Websites Nutzer nicht um Schreibzugriff auf Dateien oder Verzeichnisse im Dateisystem des Host-Betriebssystems bitten dürfen.
 
@@ -1213,6 +1214,7 @@
 <translation id="208566302163036794">Deaktivierte Funktionen sperren</translation>
 <translation id="208623333578980446">Bildschirm-Wakelocks für die Energieverwaltung zulassen</translation>
 <translation id="2089541797660774692">Cloud-Berichterstellung über verwaltete Browser aktivieren</translation>
+<translation id="2090712407517297305">Die in Gruppen eingeteilte Chrome-Verlaufsseite ist unter chrome://history/grouped sichtbar.</translation>
 <translation id="2090939118981888335">Wenn diese Richtlinie aktiviert ist, wird der Proxy zur Datenkomprimierung zugelassen. Ist die Richtlinie deaktiviert, kann der Proxy nicht verwendet werden.
 
       Wenn du diese Richtlinie konfigurierst, kann sie von Nutzern nicht geändert werden. Wenn sie nicht konfiguriert ist, können Nutzer entscheiden, ob die Funktion genutzt werden soll.</translation>
@@ -1364,6 +1366,7 @@
 <translation id="2204379573346866896">Zahl der in der aktuellen Stunde verstrichenen Minuten.</translation>
 <translation id="2204753382813641270">Automatisches Ausblenden der Ablage verwalten</translation>
 <translation id="2208976000652006649">Parameter für URL der Suche, die POST verwendet</translation>
+<translation id="2212011154693551439">Die in Gruppen eingeteilte Chrome-Verlaufsseite ist standardmäßig unter chrome://history/grouped sichtbar.</translation>
 <translation id="2213059592185933570">Erstellung von Roaming-Profilen aktivieren</translation>
 <translation id="2213342458177721585">Dadurch wird das Hindi-Inscript-Layout auf dem Gerät aktiviert.</translation>
 <translation id="2215238871726750562">Wenn die Richtlinie auf "True" gesetzt ist, wird verhindert, dass das Browserfenster zu Beginn der Sitzung geöffnet wird.
@@ -1843,6 +1846,10 @@
 <translation id="2664682171745499686">Warnungen zu nachgeahmten URLs auf Domains unterdrücken</translation>
 <translation id="2665129863304939984">Nutzer entscheiden lassen, ob sie vorhandene Browserdaten in ihr verwaltetes Profil importieren möchten</translation>
 <translation id="2665422249821137126">Großen Cursor auf der Anmeldeseite aktivieren</translation>
+<translation id="2666177084759967497">
+      Legt fest, ob lokale Kontodaten nach der Abmeldung in <ph name="PRODUCT_OS_NAME" /> gespeichert bleiben. Wenn die Richtlinie auf „true“ gesetzt ist, werden Kontodaten nicht dauerhaft in <ph name="PRODUCT_OS_NAME" /> gespeichert und alle Daten der Nutzersitzung werden nach der Abmeldung verworfen. Ist sie auf „false“ gesetzt oder nicht konfiguriert, werden lokale (verschlüsselte) Nutzerdaten auf dem Gerät gespeichert.
+
+      Hinweis: Seit Version M114 dürfen bestimmte Kiosk-Apps das Verhalten dieser Richtlinie für bestimmte Anwendungsfälle überschreiben, z. B. für Schulprüfungen.</translation>
 <translation id="2667894101494585925">Abruf von Daten zur Optimierung aktivieren</translation>
 <translation id="2669157090883237118">Dadurch wird die empfohlene Konfiguration von <ph name="PRODUCT_OS_NAME" /> nicht geändert.</translation>
 <translation id="2672012807430078509">Steuerung, durch die NTLM als Authentifizierungsprotokoll für SMB-Bereitstellungen aktiviert wird</translation>
@@ -2744,6 +2751,16 @@
 Verbindungen, die diese Prüfung nicht bestehen, schlagen mit dem Fehler ERR_SSL_KEY_USAGE_INCOMPATIBLE fehl. Websites, die mit diesem Fehler fehlschlagen, nutzen wahrscheinlich ein falsch konfiguriertes Zertifikat. Bei den modernen ECDHE_RSA-Cipher Suites wird die Schlüsselverwendungsoption „digitalSignature“ genutzt, bei älteren RSA-Entschlüsselungs-Cipher Suites die Schlüsselverwendungsoption „keyEncipherment“. Administratoren, die sich nicht sicher sind, sollten beide Optionen in RSA-Zertifikate für HTTPS einbinden.</translation>
 <translation id="3459509316159669723">Drucken</translation>
 <translation id="3461279434465463233">Status der Stromversorgung melden</translation>
+<translation id="3468115890799739909">Diese Richtlinie legt die Sichtbarkeit der in Seitengruppen eingeteilten Chrome-Verlaufsseite fest.
+
+      Wenn die Richtlinie aktiviert ist, ist die in Gruppen eingeteilte Chrome-Verlaufsseite unter chrome://history/grouped sichtbar.
+
+      Wenn die Richtlinie deaktiviert ist, ist die in Gruppen eingeteilte Chrome-Verlaufsseite unter chrome://history/grouped nicht sichtbar.
+
+      Wenn die Richtlinie nicht konfiguriert ist, ist die in Gruppen eingeteilte Chrome-Verlaufsseite standardmäßig unter chrome://history/grouped sichtbar.
+
+      Hinweis: Wenn die Richtlinie <ph name="COMPONENT_UPDATES_ENABLED_POLICY_NAME" /> deaktiviert, <ph name="HISTORY_CLUSTERS_VISIBLE_POLICY_NAME" /> jedoch aktiviert oder nicht konfiguriert ist, ist die in Gruppen eingeteilte Chrome-Verlaufsseite trotzdem unter chrome://history/grouped verfügbar, auch wenn sie möglicherweise weniger relevant für den Nutzer ist.
+</translation>
 <translation id="3478024346823118645">Nutzerdaten bei Abmeldung löschen</translation>
 <translation id="3480961938508521469">Lädt den Akku mit normaler Geschwindigkeit vollständig auf.</translation>
 <translation id="348110646151632565">Hiermit wird die Bedienungshilfe "Vorlesen" auf dem Anmeldebildschirm aktiviert.
diff --git a/components/policy/resources/policy_templates_es-419.xtb b/components/policy/resources/policy_templates_es-419.xtb
index 67f425e2..67114399 100644
--- a/components/policy/resources/policy_templates_es-419.xtb
+++ b/components/policy/resources/policy_templates_es-419.xtb
@@ -1915,7 +1915,7 @@
 <translation id="2666177084759967497">
       Determina si <ph name="PRODUCT_OS_NAME" /> conserva los datos locales de la cuenta después de salir. Si se configura como verdadera, <ph name="PRODUCT_OS_NAME" /> no conservará ningún dato de la cuenta de forma permanente y todos los datos de la sesión del usuario se descartarán al salir. Si esta política no se configura o se configura como falsa, el dispositivo conservará datos locales del usuario (encriptados).
 
-      Nota: A partir de la versión M114, determinadas aplicaciones de kiosco pueden anular el comportamiento de esta política en sus aplicaciones para casos de uso especiales, como evaluaciones de alumnos.</translation>
+      Nota: A partir de la versión M114, determinadas aplicaciones de kiosco pueden anular el comportamiento de esta política en sus aplicaciones para casos de uso especiales, como evaluaciones de estudiantes.</translation>
 <translation id="2667894101494585925">Habilitar la recuperación de la guía de optimización</translation>
 <translation id="2669157090883237118">No cambiar la configuración recomendada de <ph name="PRODUCT_OS_NAME" /></translation>
 <translation id="2672012807430078509">Controlar el uso de NTLM como protocolo de autenticación para las activaciones de archivos compartidos SMB</translation>
diff --git a/components/policy/resources/policy_templates_id.xtb b/components/policy/resources/policy_templates_id.xtb
index 87da9214..2c5bdba 100644
--- a/components/policy/resources/policy_templates_id.xtb
+++ b/components/policy/resources/policy_templates_id.xtb
@@ -1945,6 +1945,15 @@
 <translation id="2697717608663878828">Aktifkan eksperimen Encrypted ClientHello TLS</translation>
 <translation id="2699836109975228367">Aktifkan audio mono di layar login</translation>
 <translation id="2702023190395322609">Mengaktifkan Rekomendasi Media</translation>
+<translation id="2703733412051211941">Memicu tindakan saat komputer sedang tidak ada aktivitas.
+
+      Jika disetel, kebijakan ini akan menentukan durasi waktu tanpa input pengguna (dalam menit) sebelum browser menjalankan tindakan yang dikonfigurasi melalui kebijakan <ph name="IDLE_TIMEOUT_ACTIONS_POLICY_NAME" />.
+
+      Jika kebijakan ini tidak disetel, tidak ada tindakan yang akan dijalankan.
+
+      Nilai minimumnya adalah 1 menit.
+
+      "Input pengguna" ditentukan oleh Operating System API, dan menyertakan hal-hal seperti menggerakkan mouse atau mengetik di keyboard.</translation>
 <translation id="270582584528242502">Jangan tampilkan dialog peringatan saat pengguna mencoba menutup browser</translation>
 <translation id="2706708761587205154">Hanya izinkan pencetakan dengan PIN</translation>
 <translation id="2707733461906745082">Pemisahan Profil</translation>
@@ -6254,6 +6263,25 @@
       Jika kebijakan ini disetel ke Nonaktif atau tidak disetel, sandi SAML tidak akan dapat diubah di chrome://password-change dan tidak akan ada notifikasi saat masa berlaku sandi SAML hampir habis.</translation>
 <translation id="6457477291648119596">Type42</translation>
 <translation id="6458361632497500815">Jika kebijakan disetel ke Aktif atau tidak disetel, semua pengguna dapat menggunakan <ph name="PRODUCT_CROSTINI_NAME" />, selama ketiga kebijakan, <ph name="VIRTUAL_MACHINES_ALLOWED_POLICY_NAME" />, <ph name="CROSTINI_ALLOWED_POLICY_NAME" />, dan <ph name="DEVICE_UNAFFILIATED_CROSTINI_ALLOWED_POLICY_NAME" />, disetel ke Aktif. Jika kebijakan disetel ke Nonaktif, pengguna yang tidak terafiliasi tidak dapat menggunakan <ph name="PRODUCT_CROSTINI_NAME" />. Jika setelan diubah ke Nonaktif, kebijakan mulai diterapkan ke penampung <ph name="PRODUCT_CROSTINI_NAME" /> baru yang akan dijalankan, bukan yang sudah berjalan.</translation>
+<translation id="6458848208090676955">Daftar tindakan yang akan dijalankan saat waktu tunggu dari kebijakan <ph name="IDLE_TIMEOUT_POLICY_NAME" /> tercapai.
+
+      Jika kebijakan <ph name="IDLE_TIMEOUT_POLICY_NAME" /> tidak disetel, kebijakan ini tidak akan berpengaruh.
+
+      Saat waktu tunggu dari kebijakan <ph name="IDLE_TIMEOUT_POLICY_NAME" /> tercapai, browser akan menjalankan tindakan yang dikonfigurasi di kebijakan ini.
+
+      Jika kebijakan ini disetel ke kosong atau tidak disetel, kebijakan <ph name="IDLE_TIMEOUT_POLICY_NAME" /> tidak akan berpengaruh.
+
+      Tindakan yang didukung adalah:
+
+      '<ph name="CLOSE_BROWSERS_ACTION" />': menutup semua jendela browser dan PWA untuk profil ini. Tidak didukung di Android.
+
+      '<ph name="SHOW_PROFILE_PICKER_ACTION" />': menampilkan jendela Pemilih Profil. Tidak didukung di Android.
+
+      '<ph name="CLEAR_BROWSING_HISTORY_ACTION" />', '<ph name="CLEAR_DOWNLOAD_HISTORY_ACTION" />', '<ph name="CLEAR_COOKIES_AND_OTHER_SITE_DATA_ACTION" />', '<ph name="CLEAR_CACHED_IMAGES_AND_FILES_ACTION" />', '<ph name="CLEAR_PASSWORD_SIGNIN_ACTION" />', '<ph name="CLEAR_AUTOFILL_ACTION" />', '<ph name="CLEAR_SITE_SETTINGS_ACTION" />', '<ph name="CLEAR_HOSTED_APP_DATA_ACTION" />': menghapus data penjelajahan yang sesuai. Lihat kebijakan <ph name="CLEAR_BROWSING_DATA_ON_EXIT_LIST_POLICY_NAME" /> untuk detail selengkapnya.
+
+      '<ph name="RELOAD_PAGES_ACTION" />': memuat ulang semua halaman web. Untuk beberapa halaman, pengguna mungkin diminta untuk mengonfirmasi terlebih dahulu.
+
+      Menyetel '<ph name="CLEAR_BROWSING_HISTORY_ACTION" />', '<ph name="CLEAR_PASSWORD_SIGNIN_ACTION" />', '<ph name="CLEAR_AUTOFILL_ACTION" />', dan '<ph name="CLEAR_SITE_SETTINGS_ACTION" />' akan menonaktifkan sinkronisasi untuk setiap jenis data jika `<ph name="CHROME_SYNC_NAME" />` tidak dinonaktifkan dengan menyetel kebijakan <ph name="SYNC_DISABLED_POLICY_NAME" /> atau <ph name="BROWSER_SIGNIN_POLICY_NAME" /> tidak dinonaktifkan.</translation>
 <translation id="6462604655173570082">Jika kebijakan tidak disetel atau disetel ke Aktif, pengguna akan diizinkan melihat dan menggunakan tombol <ph name="GOOGLE_LENS_PRODUCT_NAME" /> di kotak penelusuran pada halaman Tab Baru. Jika kebijakan disetel ke Nonaktif, pengguna tidak akan melihat tombol <ph name="GOOGLE_LENS_PRODUCT_NAME" /> di kotak penelusuran pada halaman Tab Baru.</translation>
 <translation id="6464074037294098618">Mengaktifkan IsiOtomatis untuk alamat</translation>
 <translation id="6467613372414922590">Mengizinkan host Native Messaging level pengguna (diinstal tanpa izin admin)</translation>
diff --git a/components/policy/resources/policy_templates_it.xtb b/components/policy/resources/policy_templates_it.xtb
index ed088141..f0ed0d2f 100644
--- a/components/policy/resources/policy_templates_it.xtb
+++ b/components/policy/resources/policy_templates_it.xtb
@@ -1925,6 +1925,15 @@
 <translation id="2697717608663878828">Attiva l'esperimento TLS Encrypted ClientHello</translation>
 <translation id="2699836109975228367">Attiva l'audio in formato mono sulla schermata di accesso</translation>
 <translation id="2702023190395322609">Attiva consigli di contenuti multimediali</translation>
+<translation id="2703733412051211941">Consente di attivare un'azione quando il computer è inattivo.
+
+      Se questo criterio viene configurato, consente di specificare il periodo di tempo senza input utente (in minuti) prima che il browser esegua le azioni configurate tramite il criterio <ph name="IDLE_TIMEOUT_ACTIONS_POLICY_NAME" />.
+
+      Se il criterio non viene configurato, non verrà eseguita alcuna azione.
+
+      La soglia minima è di 1 minuto.
+
+      "L'input utente" è definito dalle API del sistema operativo e include, ad esempio, lo spostamento del mouse o la digitazione tramite tastiera.</translation>
 <translation id="270582584528242502">Non mostrare una finestra di dialogo di avviso quando l'utente sta tentando di uscire</translation>
 <translation id="2706708761587205154">Consenti la stampa solo con PIN</translation>
 <translation id="2707733461906745082">Separazione profilo</translation>
@@ -6183,6 +6192,25 @@
       Se questo criterio viene impostato su Disattivato o se non viene configurato, non è possibile modificare le password SAML all'indirizzo chrome://password-change e non verranno mostrate notifiche quando tali password stanno per scadere.</translation>
 <translation id="6457477291648119596">Type42</translation>
 <translation id="6458361632497500815">Se il criterio viene impostato su Attivato o se non viene configurato, tutti gli utenti possono utilizzare <ph name="PRODUCT_CROSTINI_NAME" /> finché tutti e tre i criteri, <ph name="VIRTUAL_MACHINES_ALLOWED_POLICY_NAME" />, <ph name="CROSTINI_ALLOWED_POLICY_NAME" /> e <ph name="DEVICE_UNAFFILIATED_CROSTINI_ALLOWED_POLICY_NAME" /> sono impostati su Attivato. Se il criterio viene impostato su Disattivato, gli utenti non affiliati non possono utilizzare <ph name="PRODUCT_CROSTINI_NAME" />. Impostando il criterio su Disattivato, questo viene applicato all'avvio di nuovi container <ph name="PRODUCT_CROSTINI_NAME" />, non a quelli già in esecuzione.</translation>
+<translation id="6458848208090676955">Elenco di azioni da eseguire quando viene raggiunto il timeout del criterio <ph name="IDLE_TIMEOUT_POLICY_NAME" />.
+
+      Se il criterio <ph name="IDLE_TIMEOUT_POLICY_NAME" /> non viene configurato, questo criterio non ha alcun effetto.
+
+      Quando viene raggiunto il timeout del criterio <ph name="IDLE_TIMEOUT_POLICY_NAME" />, il browser esegue le azioni configurate in questo criterio.
+
+      Se questo criterio è vuoto o se non viene configurato, il criterio <ph name="IDLE_TIMEOUT_POLICY_NAME" /> non ha alcun effetto.
+
+      Le azioni supportate sono:
+
+      "<ph name="CLOSE_BROWSERS_ACTION" />": vengono chiuse tutte le finestre del browser e le PWA di questo profilo. Azione non supportata su Android.
+
+      "<ph name="SHOW_PROFILE_PICKER_ACTION" />": viene mostrata la finestra Selettore profilo. Azione non supportata su Android.
+
+      "<ph name="CLEAR_BROWSING_HISTORY_ACTION" />", "<ph name="CLEAR_DOWNLOAD_HISTORY_ACTION" />", "<ph name="CLEAR_COOKIES_AND_OTHER_SITE_DATA_ACTION" />", "<ph name="CLEAR_CACHED_IMAGES_AND_FILES_ACTION" />", "<ph name="CLEAR_PASSWORD_SIGNIN_ACTION" />", "<ph name="CLEAR_AUTOFILL_ACTION" />", "<ph name="CLEAR_SITE_SETTINGS_ACTION" />", "<ph name="CLEAR_HOSTED_APP_DATA_ACTION" />": vengono cancellati i dati di navigazione corrispondenti. Per maggiori informazioni, vedi il criterio <ph name="CLEAR_BROWSING_DATA_ON_EXIT_LIST_POLICY_NAME" />.
+
+      "<ph name="RELOAD_PAGES_ACTION" />": vengono ricaricate tutte le pagine web. Per alcune pagine, all'utente potrebbe essere chiesto di confermare prima.
+
+      La configurazione dei criteri "<ph name="CLEAR_BROWSING_HISTORY_ACTION" />", "<ph name="CLEAR_PASSWORD_SIGNIN_ACTION" />", "<ph name="CLEAR_AUTOFILL_ACTION" />" e "<ph name="CLEAR_SITE_SETTINGS_ACTION" />" comporta la disattivazione della sincronizzazione per i rispettivi tipi di dati se né il criterio "<ph name="CHROME_SYNC_NAME" />" viene disattivato impostando il criterio <ph name="SYNC_DISABLED_POLICY_NAME" /> né il criterio <ph name="BROWSER_SIGNIN_POLICY_NAME" /> viene disattivato.</translation>
 <translation id="6462604655173570082">Se il criterio non viene configurato o se viene impostato su Attivato, gli utenti possono visualizzare e usare il pulsante <ph name="GOOGLE_LENS_PRODUCT_NAME" /> nella casella di ricerca della pagina Nuova scheda. Se il criterio viene impostato su Disattivato, gli utenti non vedranno il pulsante <ph name="GOOGLE_LENS_PRODUCT_NAME" /> nella casella di ricerca della pagina Nuova scheda.</translation>
 <translation id="6464074037294098618">Attiva la Compilazione automatica per gli indirizzi</translation>
 <translation id="6467613372414922590">Consenti host di messaggistica nativi a livello di utente (installati senza privilegi di amministratore)</translation>
diff --git a/components/policy/resources/policy_templates_ja.xtb b/components/policy/resources/policy_templates_ja.xtb
index b5efe506..14c3b3c5 100644
--- a/components/policy/resources/policy_templates_ja.xtb
+++ b/components/policy/resources/policy_templates_ja.xtb
@@ -1808,6 +1808,15 @@
 <translation id="2697717608663878828">TLS 暗号化 ClientHello テストを有効にする</translation>
 <translation id="2699836109975228367">ログイン画面でモノラル音声を有効にする</translation>
 <translation id="2702023190395322609">おすすめメディアを有効にする</translation>
+<translation id="2703733412051211941">パソコンがアイドル状態になってから動作をトリガーするまでの時間を設定します。
+
+      このポリシーでは、ブラウザでどのくらいの時間(分)ユーザー入力がなければ、<ph name="IDLE_TIMEOUT_ACTIONS_POLICY_NAME" /> ポリシーで指定された動作を行うかを指定します。
+
+      このポリシーを設定しない場合、何の動作も行われません。
+
+      最小しきい値は 1 分です。
+
+      「ユーザー入力」はオペレーティング システムの API によって定義され、マウスの移動やキーボード入力などが該当します。</translation>
 <translation id="270582584528242502">ユーザーが終了しようとしたときに警告ダイアログを表示しない</translation>
 <translation id="2706708761587205154">PIN ありの印刷のみを許可します</translation>
 <translation id="2707733461906745082">プロファイル分離</translation>
@@ -5752,6 +5761,25 @@
       このポリシーを無効に設定するか未設定のままにした場合、chrome://password-change で SAML パスワードを変更することはできず、SAML パスワードの有効期限が近づいても通知されません。</translation>
 <translation id="6457477291648119596">Type42</translation>
 <translation id="6458361632497500815">このポリシーを有効に設定するか未設定のままにした場合、<ph name="VIRTUAL_MACHINES_ALLOWED_POLICY_NAME" />、<ph name="CROSTINI_ALLOWED_POLICY_NAME" />、<ph name="DEVICE_UNAFFILIATED_CROSTINI_ALLOWED_POLICY_NAME" /> の 3 つのポリシーすべてが有効になっていれば、すべてのユーザーが <ph name="PRODUCT_CROSTINI_NAME" /> を使用できます。このポリシーを無効に設定した場合、外部のユーザーは <ph name="PRODUCT_CROSTINI_NAME" /> を使用できません。このポリシーを無効に変更すると、すでに実行されているコンテナではなく、新しい <ph name="PRODUCT_CROSTINI_NAME" /> コンテナの開始に対してポリシーが適用されます。</translation>
+<translation id="6458848208090676955"><ph name="IDLE_TIMEOUT_POLICY_NAME" /> ポリシーで定義されるタイムアウトに達したときに行う動作のリストを指定します。
+
+      <ph name="IDLE_TIMEOUT_POLICY_NAME" /> ポリシーが設定されていない場合、このポリシーは無視されます。
+
+      <ph name="IDLE_TIMEOUT_POLICY_NAME" /> ポリシーで定義されるタイムアウトに達すると、ブラウザはこのポリシーで指定された動作を行います。
+
+      このポリシーを空にするか未設定のままにした場合、<ph name="IDLE_TIMEOUT_POLICY_NAME" /> ポリシーは無視されます。
+
+      サポートされている動作は次のとおりです。
+
+      「<ph name="CLOSE_BROWSERS_ACTION" />」: このプロフィールのすべてのブラウザ ウィンドウと PWA を閉じます。Android ではサポートされていません。
+
+      「<ph name="SHOW_PROFILE_PICKER_ACTION" />」: プロフィール選択ウィンドウを表示します。Android ではサポートされていません。
+
+      「<ph name="CLEAR_BROWSING_HISTORY_ACTION" />」、「<ph name="CLEAR_DOWNLOAD_HISTORY_ACTION" />」、「<ph name="CLEAR_COOKIES_AND_OTHER_SITE_DATA_ACTION" />」、「<ph name="CLEAR_CACHED_IMAGES_AND_FILES_ACTION" />」、「<ph name="CLEAR_PASSWORD_SIGNIN_ACTION" />」、「<ph name="CLEAR_AUTOFILL_ACTION" />」、「<ph name="CLEAR_SITE_SETTINGS_ACTION" />」、「<ph name="CLEAR_HOSTED_APP_DATA_ACTION" />」: それぞれ該当する閲覧データを消去します。詳しくは、<ph name="CLEAR_BROWSING_DATA_ON_EXIT_LIST_POLICY_NAME" /> ポリシーをご覧ください。
+
+      「<ph name="RELOAD_PAGES_ACTION" />」: すべてのウェブページを再読み込みします。ページによっては、最初に確認を求めるメッセージが表示されることがあります。
+
+      「<ph name="CLEAR_BROWSING_HISTORY_ACTION" />」、「<ph name="CLEAR_PASSWORD_SIGNIN_ACTION" />」、「<ph name="CLEAR_AUTOFILL_ACTION" />」、「<ph name="CLEAR_SITE_SETTINGS_ACTION" />」を設定すると、<ph name="SYNC_DISABLED_POLICY_NAME" /> ポリシーを使用して「<ph name="CHROME_SYNC_NAME" />」を無効にしておらず、<ph name="BROWSER_SIGNIN_POLICY_NAME" /> も無効にしていない場合は、それぞれのデータタイプの同期が無効になります。</translation>
 <translation id="6462604655173570082">このポリシーを未設定のままにするか有効に設定した場合、新しいタブページの検索ボックスに <ph name="GOOGLE_LENS_PRODUCT_NAME" /> のボタンが表示され、ユーザーが使用できるようになります。このポリシーを無効に設定した場合、新しいタブページの検索ボックスに <ph name="GOOGLE_LENS_PRODUCT_NAME" /> のボタンは表示されません。</translation>
 <translation id="6464074037294098618">住所の自動入力を有効にします</translation>
 <translation id="6467613372414922590">ユーザーレベルのネイティブ メッセージング ホスト(管理者権限なしでインストールされたホスト)を許可する</translation>
diff --git a/components/policy/resources/policy_templates_ko.xtb b/components/policy/resources/policy_templates_ko.xtb
index 7ac9454c..b6b897fb 100644
--- a/components/policy/resources/policy_templates_ko.xtb
+++ b/components/policy/resources/policy_templates_ko.xtb
@@ -1905,6 +1905,15 @@
 <translation id="2697717608663878828">TLS Encrypted ClientHello 실험 사용</translation>
 <translation id="2699836109975228367">로그인 화면에서 모노 오디오 사용</translation>
 <translation id="2702023190395322609">미디어 추천 사용 설정</translation>
+<translation id="2703733412051211941">컴퓨터가 유휴 상태일 때 작업을 실행합니다.
+
+      정책을 설정하면 사용자 입력이 없는 시간(분)이 지정되어 해당 시간이 지나면 브라우저에서 <ph name="IDLE_TIMEOUT_ACTIONS_POLICY_NAME" /> 정책에 따라 구성된 작업을 실행합니다.
+
+      정책이 설정되어 있지 않으면 아무 작업도 실행되지 않습니다.
+
+      최소 기준은 1분입니다.
+
+      '사용자 입력'은 운영체제 API에 의해 정의되며, 마우스 이동 또는 키보드 입력 등의 항목이 포함됩니다.</translation>
 <translation id="270582584528242502">사용자가 종료하려고 할 때 경고 대화상자 표시 안함</translation>
 <translation id="2706708761587205154">PIN이 있을 때만 인쇄 허용</translation>
 <translation id="2707733461906745082">프로필 분리</translation>
@@ -6056,6 +6065,25 @@
       정책을 사용 안함으로 설정하거나 설정하지 않으면 chrome://password-change에서 SAML 비밀번호를 변경할 수 없으며 SAML 비밀번호가 곧 만료되는 시점에도 알림이 표시되지 않습니다.</translation>
 <translation id="6457477291648119596">Type42</translation>
 <translation id="6458361632497500815">정책을 사용으로 설정하거나 설정하지 않으면 <ph name="VIRTUAL_MACHINES_ALLOWED_POLICY_NAME" />, <ph name="CROSTINI_ALLOWED_POLICY_NAME" />, <ph name="DEVICE_UNAFFILIATED_CROSTINI_ALLOWED_POLICY_NAME" /> 정책 3개가 모두 사용으로 설정되어 있는 한 모든 사용자가 <ph name="PRODUCT_CROSTINI_NAME" />를 사용할 수 있습니다. 사용 안함으로 설정하면 제휴되지 않은 사용자는 <ph name="PRODUCT_CROSTINI_NAME" />를 사용할 수 없습니다. 사용 안함으로 변경하면 기존에 실행 중이던 컨테이너가 아닌 새로 시작되는 <ph name="PRODUCT_CROSTINI_NAME" /> 컨테이너에 정책 적용이 시작됩니다.</translation>
+<translation id="6458848208090676955"><ph name="IDLE_TIMEOUT_POLICY_NAME" /> 정책에 설정된 제한 시간 도달 시 실행할 작업 목록입니다.
+
+      <ph name="IDLE_TIMEOUT_POLICY_NAME" /> 정책이 설정되어 있지 않으면 이 정책이 적용되지 않습니다.
+
+      <ph name="IDLE_TIMEOUT_POLICY_NAME" /> 정책에 설정된 제한 시간 도달 시 브라우저에서 이 정책에 구성된 작업을 실행합니다.
+
+      정책이 비어 있거나 설정되어 있지 않으면 <ph name="IDLE_TIMEOUT_POLICY_NAME" /> 정책이 적용되지 않습니다.
+
+      지원되는 작업:
+
+      '<ph name="CLOSE_BROWSERS_ACTION" />': 프로필의 모든 브라우저 창과 PWA를 닫습니다. Android에서는 지원되지 않습니다.
+
+      '<ph name="SHOW_PROFILE_PICKER_ACTION" />': 프로필 선택 도구 창을 표시합니다. Android에서는 지원되지 않습니다.
+
+      '<ph name="CLEAR_BROWSING_HISTORY_ACTION" />', '<ph name="CLEAR_DOWNLOAD_HISTORY_ACTION" />', '<ph name="CLEAR_COOKIES_AND_OTHER_SITE_DATA_ACTION" />', '<ph name="CLEAR_CACHED_IMAGES_AND_FILES_ACTION" />', '<ph name="CLEAR_PASSWORD_SIGNIN_ACTION" />', '<ph name="CLEAR_AUTOFILL_ACTION" />', '<ph name="CLEAR_SITE_SETTINGS_ACTION" />', '<ph name="CLEAR_HOSTED_APP_DATA_ACTION" />': 해당 인터넷 사용 기록을 삭제합니다. 자세한 내용은 <ph name="CLEAR_BROWSING_DATA_ON_EXIT_LIST_POLICY_NAME" /> 정책을 참고하세요.
+
+      '<ph name="RELOAD_PAGES_ACTION" />': 모든 웹페이지를 새로고침합니다. 일부 페이지에서는 사용자에게 먼저 확인 메시지가 표시될 수 있습니다.
+
+      '<ph name="CLEAR_BROWSING_HISTORY_ACTION" />', '<ph name="CLEAR_PASSWORD_SIGNIN_ACTION" />', '<ph name="CLEAR_AUTOFILL_ACTION" />', '<ph name="CLEAR_SITE_SETTINGS_ACTION" />'를 설정하면 <ph name="SYNC_DISABLED_POLICY_NAME" /> 정책을 설정하여 '<ph name="CHROME_SYNC_NAME" />`를 사용 중지하지 않거나 <ph name="BROWSER_SIGNIN_POLICY_NAME" /> 정책을 사용 중지하지 않으면 각 데이터 유형의 동기화가 사용 중지됩니다.</translation>
 <translation id="6462604655173570082">정책을 설정하지 않거나 '사용'으로 설정하면 사용자가 새 탭 페이지의 검색창에서 <ph name="GOOGLE_LENS_PRODUCT_NAME" /> 버튼을 보고 사용할 수 있습니다. 정책을 '사용 안함'으로 설정하면 새 탭 페이지의 검색창에 <ph name="GOOGLE_LENS_PRODUCT_NAME" /> 버튼이 표시되지 않습니다.</translation>
 <translation id="6464074037294098618">주소 자동 완성 사용</translation>
 <translation id="6467613372414922590">관리자 권한 없이 설치된 사용자 수준의 기본 메시지 호스트를 허용합니다.</translation>
diff --git a/components/policy/resources/policy_templates_ru.xtb b/components/policy/resources/policy_templates_ru.xtb
index c7c3b3d..3ee0ccd 100644
--- a/components/policy/resources/policy_templates_ru.xtb
+++ b/components/policy/resources/policy_templates_ru.xtb
@@ -1903,6 +1903,15 @@
 <translation id="2697717608663878828">Включить экспериментальное расширение Encrypted ClientHello для TLS</translation>
 <translation id="2699836109975228367">Включить монофонический звук на экране входа</translation>
 <translation id="2702023190395322609">Включить советы о том, что посмотреть</translation>
+<translation id="2703733412051211941">Выполняет действия, когда на компьютере нет активности.
+
+      Если правило настроено, оно определяет, по истечении какого периода неактивности пользователя (в минутах) браузер выполнит действия, указанные в правиле <ph name="IDLE_TIMEOUT_ACTIONS_POLICY_NAME" />.
+
+      Если правило не настроено, никакие действия выполняться не будут.
+
+      Минимальное пороговое значение – одна минута.
+
+      Понятие "активность пользователя" определяется API операционной системы. Например, это может быть перемещение курсора мыши или ввод с клавиатуры.</translation>
 <translation id="270582584528242502">Не показывать диалоговое окно с предупреждением при закрытии браузера</translation>
 <translation id="2706708761587205154">Разрешить печать только с вводом PIN-кода</translation>
 <translation id="2707733461906745082">Создание отдельного профиля</translation>
@@ -6047,6 +6056,25 @@
       Если правило отключено или не настроено, пароль SAML нельзя будет изменить на странице chrome://password-change, а уведомления о том, что срок его действия истекает, приходить не будут.</translation>
 <translation id="6457477291648119596">Type42</translation>
 <translation id="6458361632497500815">Если правило включено или не задано, все пользователи могут запускать <ph name="PRODUCT_CROSTINI_NAME" /> при условии, что включены правила <ph name="VIRTUAL_MACHINES_ALLOWED_POLICY_NAME" />, <ph name="CROSTINI_ALLOWED_POLICY_NAME" /> и <ph name="DEVICE_UNAFFILIATED_CROSTINI_ALLOWED_POLICY_NAME" />. Если правило выключено, неаффилированные пользователи не могут запускать <ph name="PRODUCT_CROSTINI_NAME" />. Если выключить правило, оно начнет действовать при последующих попытках запустить любой контейнер <ph name="PRODUCT_CROSTINI_NAME" />, но не будет распространяться на уже запущенные контейнеры.</translation>
+<translation id="6458848208090676955">Список действий, которые необходимо выполнить, когда истечет период, заданный в правиле <ph name="IDLE_TIMEOUT_POLICY_NAME" />.
+
+      Это правило не действует, если не настроено правило <ph name="IDLE_TIMEOUT_POLICY_NAME" />.
+
+      Когда истечет время ожидания, установленное в правиле <ph name="IDLE_TIMEOUT_POLICY_NAME" />, браузер выполнит указанные действия.
+
+      Если правило не настроено или значение для него не задано, правило <ph name="IDLE_TIMEOUT_POLICY_NAME" /> работать не будет.
+
+      Поддерживаемые действия:
+
+      <ph name="CLOSE_BROWSERS_ACTION" /> (закрытие всех окон браузеров и PWA в этом профиле). Не поддерживается на Android.
+
+      <ph name="SHOW_PROFILE_PICKER_ACTION" /> (показ окна выбора профиля). Не поддерживается на Android.
+
+      <ph name="CLEAR_BROWSING_HISTORY_ACTION" />, <ph name="CLEAR_DOWNLOAD_HISTORY_ACTION" />, <ph name="CLEAR_COOKIES_AND_OTHER_SITE_DATA_ACTION" />, <ph name="CLEAR_CACHED_IMAGES_AND_FILES_ACTION" />, <ph name="CLEAR_PASSWORD_SIGNIN_ACTION" />, <ph name="CLEAR_AUTOFILL_ACTION" />, <ph name="CLEAR_SITE_SETTINGS_ACTION" />, <ph name="CLEAR_HOSTED_APP_DATA_ACTION" /> (очистка разных категорий данных о работе в браузере). Узнать больше можно в правиле <ph name="CLEAR_BROWSING_DATA_ON_EXIT_LIST_POLICY_NAME" />.
+
+      <ph name="RELOAD_PAGES_ACTION" /> (перезагрузка всех веб-страниц). На некоторых страницах пользователь может сначала получить запрос на подтверждение действия.
+
+      Настройки <ph name="CLEAR_BROWSING_HISTORY_ACTION" />, <ph name="CLEAR_PASSWORD_SIGNIN_ACTION" />, <ph name="CLEAR_AUTOFILL_ACTION" /> и <ph name="CLEAR_SITE_SETTINGS_ACTION" /> остановят синхронизацию для соответствующих типов данных, если функция "<ph name="CHROME_SYNC_NAME" />" не отключена в настройках правила <ph name="SYNC_DISABLED_POLICY_NAME" /> и не отключено правило <ph name="BROWSER_SIGNIN_POLICY_NAME" />.</translation>
 <translation id="6462604655173570082">Если правило включено или не настроено, пользователи смогут видеть и нажимать кнопку "<ph name="GOOGLE_LENS_PRODUCT_NAME" />" в окне поиска на странице быстрого доступа. Если правило отключено, кнопка "<ph name="GOOGLE_LENS_PRODUCT_NAME" />" не будет показываться в окне поиска на странице быстрого доступа.</translation>
 <translation id="6464074037294098618">Включить автозаполнение адресов</translation>
 <translation id="6467613372414922590">Разрешить установку хостов обмена сообщениями с оригинальными приложениями на уровне пользователей (без разрешения администратора)</translation>
diff --git a/components/policy/resources/policy_templates_zh-CN.xtb b/components/policy/resources/policy_templates_zh-CN.xtb
index 62f2972c..73537fb 100644
--- a/components/policy/resources/policy_templates_zh-CN.xtb
+++ b/components/policy/resources/policy_templates_zh-CN.xtb
@@ -1888,6 +1888,15 @@
 <translation id="2697717608663878828">启用经过 TLS 加密的 ClientHello 实验</translation>
 <translation id="2699836109975228367">为登录屏幕启用单声道音频</translation>
 <translation id="2702023190395322609">启用媒体推荐内容</translation>
+<translation id="2703733412051211941">在计算机处于闲置状态时触发操作。
+
+      设置此政策后,只要设备处于闲置状态(未发生用户输入)的时长达到此处指定的时长(以分钟为单位),浏览器就会运行 <ph name="IDLE_TIMEOUT_ACTIONS_POLICY_NAME" /> 政策中配置的操作。
+
+      如果未设置此政策,系统将不会运行任何操作。
+
+      最低阈值为 1 分钟。
+
+      “用户输入”由操作系统 API 定义,包括移动鼠标或使用键盘输入内容等操作。</translation>
 <translation id="270582584528242502">在用户尝试退出时不显示警告对话框</translation>
 <translation id="2706708761587205154">仅允许在有 PIN 码的情况下打印</translation>
 <translation id="2707733461906745082">资料分离</translation>
@@ -5974,6 +5983,25 @@
       如果停用或不设置此政策,用户将无法在 chrome://password-change 上更改 SAML 密码,当 SAML 密码即将到期时,系统也不会显示任何通知。</translation>
 <translation id="6457477291648119596">Type42</translation>
 <translation id="6458361632497500815">如果此政策已启用或未设置,系统会允许所有用户使用 <ph name="PRODUCT_CROSTINI_NAME" />,前提是 <ph name="VIRTUAL_MACHINES_ALLOWED_POLICY_NAME" />、<ph name="CROSTINI_ALLOWED_POLICY_NAME" /> 和 <ph name="DEVICE_UNAFFILIATED_CROSTINI_ALLOWED_POLICY_NAME" /> 这 3 项政策均已启用。如果此政策已停用,意味着独立用户无法使用 <ph name="PRODUCT_CROSTINI_NAME" />。如果将此政策的状态改为已停用,此政策将开始应用于新启动的 <ph name="PRODUCT_CROSTINI_NAME" /> 容器,而非应用于已在运行的容器。</translation>
+<translation id="6458848208090676955">在达到 <ph name="IDLE_TIMEOUT_POLICY_NAME" /> 政策所设的超时时限后要运行的一系列操作。
+
+      如果 <ph name="IDLE_TIMEOUT_POLICY_NAME" /> 政策未设置,此政策将不会产生任何效力。
+
+      达到 <ph name="IDLE_TIMEOUT_POLICY_NAME" /> 政策所设的超时时限后,浏览器会运行此政策中配置的操作。
+
+      如果此政策为空或未设置,<ph name="IDLE_TIMEOUT_POLICY_NAME" /> 政策将不会产生任何效力。
+
+      支持的操作如下:
+
+      “<ph name="CLOSE_BROWSERS_ACTION" />”:关闭该个人资料的所有浏览器窗口和 PWA。在 Android 设备上不受支持。
+
+      “<ph name="SHOW_PROFILE_PICKER_ACTION" />”:显示“个人资料选择器”窗口。在 Android 设备上不受支持。
+
+      “<ph name="CLEAR_BROWSING_HISTORY_ACTION" />”“<ph name="CLEAR_DOWNLOAD_HISTORY_ACTION" />”“<ph name="CLEAR_COOKIES_AND_OTHER_SITE_DATA_ACTION" />”“<ph name="CLEAR_CACHED_IMAGES_AND_FILES_ACTION" />”“<ph name="CLEAR_PASSWORD_SIGNIN_ACTION" />”“<ph name="CLEAR_AUTOFILL_ACTION" />”“<ph name="CLEAR_SITE_SETTINGS_ACTION" />”“<ph name="CLEAR_HOSTED_APP_DATA_ACTION" />”:清除相应的浏览数据。有关详情,请参阅 <ph name="CLEAR_BROWSING_DATA_ON_EXIT_LIST_POLICY_NAME" /> 政策。
+
+      “<ph name="RELOAD_PAGES_ACTION" />”:重新加载所有网页。对于某些页面,系统可能会提示用户先进行确认。
+
+      如果既未通过设置 <ph name="SYNC_DISABLED_POLICY_NAME" /> 政策停用“<ph name="CHROME_SYNC_NAME" />”,也未停用 <ph name="BROWSER_SIGNIN_POLICY_NAME" />,设置“<ph name="CLEAR_BROWSING_HISTORY_ACTION" />”“<ph name="CLEAR_PASSWORD_SIGNIN_ACTION" />”“<ph name="CLEAR_AUTOFILL_ACTION" />”和“<ph name="CLEAR_SITE_SETTINGS_ACTION" />”将为相应的数据类型停用同步功能。</translation>
 <translation id="6462604655173570082">如果此政策未设置或已启用,用户便可在“新标签页”页面上的搜索框中查看和使用 <ph name="GOOGLE_LENS_PRODUCT_NAME" />按钮。如果此政策已停用,用户将不会在“新标签页”页面上的搜索框中看到 <ph name="GOOGLE_LENS_PRODUCT_NAME" />按钮。</translation>
 <translation id="6464074037294098618">自动填充地址信息</translation>
 <translation id="6467613372414922590">允许使用用户级本地消息传递主机(安装时没有管理员权限)</translation>
diff --git a/components/policy/resources/policy_templates_zh-TW.xtb b/components/policy/resources/policy_templates_zh-TW.xtb
index 994a920..6379be3 100644
--- a/components/policy/resources/policy_templates_zh-TW.xtb
+++ b/components/policy/resources/policy_templates_zh-TW.xtb
@@ -1885,6 +1885,15 @@
 <translation id="2697717608663878828">啟用經過 TLS 加密的 ClientHello 實驗</translation>
 <translation id="2699836109975228367">在登入畫面上啟用單聲道音訊模式</translation>
 <translation id="2702023190395322609">啟用媒體推薦內容</translation>
+<translation id="2703733412051211941">在電腦閒置時觸發動作。
+
+      如果設定這項政策,而且政策指定的時間 (單位為分鐘) 內沒有任何使用者輸入內容,瀏覽器就會執行透過 <ph name="IDLE_TIMEOUT_ACTIONS_POLICY_NAME" /> 政策設定的動作。
+
+      如果不設定這項政策,系統將不會執行任何動作。
+
+      時間下限為 1 分鐘。
+
+      「使用者輸入內容」是由 Operating System API 定義,包括移動滑鼠或鍵盤輸入等等。</translation>
 <translation id="270582584528242502">使用者嘗試關閉瀏覽器時,不會顯示警告對話方塊</translation>
 <translation id="2706708761587205154">只在 PIN 碼啟用時允許列印</translation>
 <translation id="2707733461906745082">設定檔區隔</translation>
@@ -5956,6 +5965,23 @@
       如果將這項政策設為「停用」或不設定,則無法在 chrome://password-change 變更 SAML 密碼;當 SAML 密碼即將到期時,系統也不會顯示通知。</translation>
 <translation id="6457477291648119596">Type42</translation>
 <translation id="6458361632497500815">如果將這項政策設為啟用或不設定,只要 <ph name="VIRTUAL_MACHINES_ALLOWED_POLICY_NAME" />、<ph name="CROSTINI_ALLOWED_POLICY_NAME" /> 和 <ph name="DEVICE_UNAFFILIATED_CROSTINI_ALLOWED_POLICY_NAME" /> 這 3 項政策都設為啟用,所有使用者將可使用 <ph name="PRODUCT_CROSTINI_NAME" />。如果將這項政策設為停用,無關聯的使用者將無法使用 <ph name="PRODUCT_CROSTINI_NAME" />。變更為停用後,系統會開始將這項政策套用到新的 <ph name="PRODUCT_CROSTINI_NAME" /> 容器,不會套用到已經在執行的這類容器。</translation>
+<translation id="6458848208090676955">如果達到 <ph name="IDLE_TIMEOUT_POLICY_NAME" /> 政策指定的逾時時間,系統要執行的動作清單。
+
+      如果不設定 <ph name="IDLE_TIMEOUT_POLICY_NAME" /> 政策,這項政策就不會有任何作用。
+
+      假如達到 <ph name="IDLE_TIMEOUT_POLICY_NAME" /> 政策指定的逾時時間,瀏覽器就會執行在這項政策中設定的動作。
+
+      如果將這項政策留空或未設定,<ph name="IDLE_TIMEOUT_POLICY_NAME" /> 政策就不會有任何作用。
+
+      支援的動作為:
+
+      「<ph name="CLOSE_BROWSERS_ACTION" />」:關閉這個設定檔的所有瀏覽器視窗和 PWA。請注意,Android 不支援這項動作。
+
+      「<ph name="SHOW_PROFILE_PICKER_ACTION" />」:顯示設定檔選擇畫面視窗。請注意,Android 不支援這項動作。
+
+      「<ph name="CLEAR_BROWSING_HISTORY_ACTION" />」、「<ph name="CLEAR_DOWNLOAD_HISTORY_ACTION" />」、「<ph name="CLEAR_COOKIES_AND_OTHER_SITE_DATA_ACTION" />」、「<ph name="CLEAR_CACHED_IMAGES_AND_FILES_ACTION" />」、「<ph name="CLEAR_PASSWORD_SIGNIN_ACTION" />」、「<ph name="CLEAR_AUTOFILL_ACTION" />」、「<ph name="CLEAR_SITE_SETTINGS_ACTION" />」、「<ph name="CLEAR_HOSTED_APP_DATA_ACTION" />」:清除對應的瀏覽資料。詳情請參閱 <ph name="CLEAR_BROWSING_DATA_ON_EXIT_LIST_POLICY_NAME" /> 政策。「<ph name="RELOAD_PAGES_ACTION" />」:重新載入所有網頁。有些網頁可能會先提示使用者確認。
+
+      如果未以設定 <ph name="SYNC_DISABLED_POLICY_NAME" /> 政策的方式停用 <ph name="CHROME_SYNC_NAME" />,也沒有停用 <ph name="BROWSER_SIGNIN_POLICY_NAME" />,設定「<ph name="CLEAR_BROWSING_HISTORY_ACTION" />」、「<ph name="CLEAR_PASSWORD_SIGNIN_ACTION" />」、「<ph name="CLEAR_AUTOFILL_ACTION" />」和「<ph name="CLEAR_SITE_SETTINGS_ACTION" />」就會停用個別資料類型的同步處理作業。</translation>
 <translation id="6462604655173570082">如果將這項政策設為啟用或不設定,使用者即可在「新分頁」頁面的搜尋框中查看及使用 <ph name="GOOGLE_LENS_PRODUCT_NAME" />按鈕。如果停用這項政策,使用者將不會在「新分頁」頁面的搜尋框中看到 <ph name="GOOGLE_LENS_PRODUCT_NAME" />按鈕。</translation>
 <translation id="6464074037294098618">啟用地址的自動填入功能</translation>
 <translation id="6467613372414922590">允許使用者層級的內建訊息傳遞主機 (在無管理員權限的情況下安裝)。</translation>
diff --git a/components/policy/tools/OWNERS b/components/policy/tools/OWNERS
index ef592bc5..65657ab 100644
--- a/components/policy/tools/OWNERS
+++ b/components/policy/tools/OWNERS
@@ -5,5 +5,4 @@
 # When making changes, also update ToolOwners in the GwsQ config:
 # http://google3/chrome/enterprise/gwsq/enterprise-policy-review.gwsq
 hendrich@chromium.org #{LAST_RESORT_SUGGESTION}
-janagrill@google.com #{LAST_RESORT_SUGGESTION}
 ydago@chromium.org #{LAST_RESORT_SUGGESTION}
diff --git a/components/privacy_sandbox/BUILD.gn b/components/privacy_sandbox/BUILD.gn
index ffd1d20..18d2132 100644
--- a/components/privacy_sandbox/BUILD.gn
+++ b/components/privacy_sandbox/BUILD.gn
@@ -88,6 +88,7 @@
   ]
 
   deps = [
+    ":features",
     ":tracking_protection_prefs",
     "//components/keyed_service/core:core",
     "//components/pref_registry:pref_registry",
diff --git a/components/privacy_sandbox/privacy_sandbox_attestations/BUILD.gn b/components/privacy_sandbox/privacy_sandbox_attestations/BUILD.gn
index 2ef6449e..cdd8958 100644
--- a/components/privacy_sandbox/privacy_sandbox_attestations/BUILD.gn
+++ b/components/privacy_sandbox/privacy_sandbox_attestations/BUILD.gn
@@ -6,6 +6,7 @@
   sources = [
     "privacy_sandbox_attestations.cc",
     "privacy_sandbox_attestations.h",
+    "privacy_sandbox_attestations_histograms.h",
     "privacy_sandbox_attestations_parser.cc",
     "privacy_sandbox_attestations_parser.h",
   ]
diff --git a/components/privacy_sandbox/privacy_sandbox_attestations/privacy_sandbox_attestations.cc b/components/privacy_sandbox/privacy_sandbox_attestations/privacy_sandbox_attestations.cc
index c627eea..fbae875 100644
--- a/components/privacy_sandbox/privacy_sandbox_attestations/privacy_sandbox_attestations.cc
+++ b/components/privacy_sandbox/privacy_sandbox_attestations/privacy_sandbox_attestations.cc
@@ -23,6 +23,7 @@
 #include "base/task/thread_pool.h"
 #include "base/timer/elapsed_timer.h"
 #include "base/trace_event/memory_usage_estimator.h"
+#include "components/privacy_sandbox/privacy_sandbox_attestations/privacy_sandbox_attestations_histograms.h"
 #include "components/privacy_sandbox/privacy_sandbox_attestations/privacy_sandbox_attestations_parser.h"
 #include "components/privacy_sandbox/privacy_sandbox_features.h"
 #include "content/public/browser/browser_thread.h"
diff --git a/components/privacy_sandbox/privacy_sandbox_attestations/privacy_sandbox_attestations.h b/components/privacy_sandbox/privacy_sandbox_attestations/privacy_sandbox_attestations.h
index dfb98d55..1804cc4 100644
--- a/components/privacy_sandbox/privacy_sandbox_attestations/privacy_sandbox_attestations.h
+++ b/components/privacy_sandbox/privacy_sandbox_attestations/privacy_sandbox_attestations.h
@@ -23,12 +23,6 @@
 
 namespace privacy_sandbox {
 
-constexpr char kAttestationsFileParsingUMA[] =
-    "PrivacySandbox.Attestations.InitializationDuration.Parsing";
-
-constexpr char kAttestationsMapMemoryUsageUMA[] =
-    "PrivacySandbox.Attestations.EstimateMemoryUsage.AttestationsMap";
-
 const base::FilePath::CharType kSentinelFileName[] =
     FILE_PATH_LITERAL("attestations_sentinel");
 
diff --git a/components/privacy_sandbox/privacy_sandbox_attestations/privacy_sandbox_attestations_histograms.h b/components/privacy_sandbox/privacy_sandbox_attestations/privacy_sandbox_attestations_histograms.h
new file mode 100644
index 0000000..e5a34b09
--- /dev/null
+++ b/components/privacy_sandbox/privacy_sandbox_attestations/privacy_sandbox_attestations_histograms.h
@@ -0,0 +1,26 @@
+// 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_PRIVACY_SANDBOX_PRIVACY_SANDBOX_ATTESTATIONS_PRIVACY_SANDBOX_ATTESTATIONS_HISTOGRAMS_H_
+#define COMPONENTS_PRIVACY_SANDBOX_PRIVACY_SANDBOX_ATTESTATIONS_PRIVACY_SANDBOX_ATTESTATIONS_HISTOGRAMS_H_
+
+namespace privacy_sandbox {
+
+constexpr char kAttestationsFileParsingUMA[] =
+    "PrivacySandbox.Attestations.InitializationDuration.Parsing";
+constexpr char kAttestationsMapMemoryUsageUMA[] =
+    "PrivacySandbox.Attestations.EstimateMemoryUsage.AttestationsMap";
+constexpr char kComponentReadyFromApplicationStartUMA[] =
+    "PrivacySandbox.Attestations.InitializationDuration."
+    "ComponentReadyFromApplicationStart";
+constexpr char kComponentReadyFromApplicationStartWithInterruptionUMA[] =
+    "PrivacySandbox.Attestations.InitializationDuration."
+    "ComponentReadyFromApplicationStartWithInterruption";
+constexpr char kComponentReadyFromBrowserWindowFirstPaintUMA[] =
+    "PrivacySandbox.Attestations.InitializationDuration."
+    "ComponentReadyFromBrowserWindowFirstPaint";
+
+}  // namespace privacy_sandbox
+
+#endif  // COMPONENTS_PRIVACY_SANDBOX_PRIVACY_SANDBOX_ATTESTATIONS_PRIVACY_SANDBOX_ATTESTATIONS_HISTOGRAMS_H_
diff --git a/components/privacy_sandbox/privacy_sandbox_attestations/privacy_sandbox_attestations_unittest.cc b/components/privacy_sandbox/privacy_sandbox_attestations/privacy_sandbox_attestations_unittest.cc
index 15bbb4e1..81ceb1ba 100644
--- a/components/privacy_sandbox/privacy_sandbox_attestations/privacy_sandbox_attestations_unittest.cc
+++ b/components/privacy_sandbox/privacy_sandbox_attestations/privacy_sandbox_attestations_unittest.cc
@@ -13,6 +13,7 @@
 #include "base/test/metrics/histogram_tester.h"
 #include "base/test/scoped_feature_list.h"
 #include "base/version.h"
+#include "components/privacy_sandbox/privacy_sandbox_attestations/privacy_sandbox_attestations_histograms.h"
 #include "components/privacy_sandbox/privacy_sandbox_attestations/proto/privacy_sandbox_attestations.pb.h"
 #include "components/privacy_sandbox/privacy_sandbox_attestations/scoped_privacy_sandbox_attestations.h"
 #include "components/privacy_sandbox/privacy_sandbox_features.h"
diff --git a/components/privacy_sandbox/privacy_sandbox_features.cc b/components/privacy_sandbox/privacy_sandbox_features.cc
index 3b136f3..cc1bec9 100644
--- a/components/privacy_sandbox/privacy_sandbox_features.cc
+++ b/components/privacy_sandbox/privacy_sandbox_features.cc
@@ -116,4 +116,9 @@
              "PrivacySandboxProactiveTopicsBlocking",
              base::FEATURE_DISABLED_BY_DEFAULT);
 
+// Show the Tracking Protection onboarding flow if not already onboarded.
+BASE_FEATURE(kTrackingProtectionOnboardingForceEligibility,
+             "TrackingProtectionOnboardingForceEligibility",
+             base::FEATURE_DISABLED_BY_DEFAULT);
+
 }  // namespace privacy_sandbox
diff --git a/components/privacy_sandbox/privacy_sandbox_features.h b/components/privacy_sandbox/privacy_sandbox_features.h
index b393429..8faa20b7 100644
--- a/components/privacy_sandbox/privacy_sandbox_features.h
+++ b/components/privacy_sandbox/privacy_sandbox_features.h
@@ -159,6 +159,10 @@
 COMPONENT_EXPORT(PRIVACY_SANDBOX_FEATURES)
 BASE_DECLARE_FEATURE(kPrivacySandboxProactiveTopicsBlocking);
 
+// Forces profile eligibility for Tracking Protection Onboarding.
+COMPONENT_EXPORT(PRIVACY_SANDBOX_FEATURES)
+BASE_DECLARE_FEATURE(kTrackingProtectionOnboardingForceEligibility);
+
 }  // namespace privacy_sandbox
 
 #endif  // COMPONENTS_PRIVACY_SANDBOX_PRIVACY_SANDBOX_FEATURES_H_
diff --git a/components/privacy_sandbox/tracking_protection_onboarding.cc b/components/privacy_sandbox/tracking_protection_onboarding.cc
index 39bb580..cf8ade9 100644
--- a/components/privacy_sandbox/tracking_protection_onboarding.cc
+++ b/components/privacy_sandbox/tracking_protection_onboarding.cc
@@ -4,9 +4,11 @@
 
 #include "components/privacy_sandbox/tracking_protection_onboarding.h"
 #include "base/check.h"
+#include "base/feature_list.h"
 #include "base/functional/bind.h"
 #include "base/time/time.h"
 #include "components/prefs/pref_service.h"
+#include "components/privacy_sandbox/privacy_sandbox_features.h"
 #include "components/privacy_sandbox/tracking_protection_prefs.h"
 
 namespace privacy_sandbox {
@@ -40,6 +42,14 @@
       base::BindRepeating(
           &TrackingProtectionOnboarding::OnOnboardingAckedChanged,
           base::Unretained(this)));
+
+  // If we're forcing eligibility, then let' set it now.
+  if (base::FeatureList::IsEnabled(
+          privacy_sandbox::kTrackingProtectionOnboardingForceEligibility) &&
+      GetInternalOnboardingStatus(pref_service_) ==
+          TrackingProtectionOnboardingStatus::kIneligible) {
+    MaybeMarkEligible();
+  }
 }
 
 TrackingProtectionOnboarding::~TrackingProtectionOnboarding() = default;
diff --git a/components/privacy_sandbox/tracking_protection_onboarding_unittest.cc b/components/privacy_sandbox/tracking_protection_onboarding_unittest.cc
index f562ef6..c64ee65d 100644
--- a/components/privacy_sandbox/tracking_protection_onboarding_unittest.cc
+++ b/components/privacy_sandbox/tracking_protection_onboarding_unittest.cc
@@ -5,8 +5,10 @@
 #include "components/privacy_sandbox/tracking_protection_onboarding.h"
 #include <memory>
 #include <utility>
+#include "base/test/scoped_feature_list.h"
 #include "base/test/task_environment.h"
 #include "components/prefs/testing_pref_service.h"
+#include "components/privacy_sandbox/privacy_sandbox_features.h"
 #include "components/privacy_sandbox/tracking_protection_prefs.h"
 #include "testing/gmock/include/gmock/gmock.h"
 #include "testing/gtest/include/gtest/gtest.h"
@@ -43,7 +45,7 @@
 
   TestingPrefServiceSimple* prefs() { return &prefs_; }
 
- private:
+ protected:
   base::test::TaskEnvironment task_env_;
   TestingPrefServiceSimple prefs_;
   std::unique_ptr<TrackingProtectionOnboarding>
@@ -336,5 +338,26 @@
                   TrackingProtectionOnboarding::OnboardingStatus::kEligible),
         std::pair(TrackingProtectionOnboardingStatus::kOnboarded,
                   TrackingProtectionOnboarding::OnboardingStatus::kOnboarded)));
+
+class TrackingProtectionOnboardingWithFeatureOverrideTest
+    : public TrackingProtectionOnboardingTest {
+ public:
+  void SetUp() override {
+    feature_list_.InitAndEnableFeature(
+        privacy_sandbox::kTrackingProtectionOnboardingForceEligibility);
+    tracking_protection_onboarding_service_ =
+        std::make_unique<TrackingProtectionOnboarding>(prefs());
+  }
+
+ private:
+  base::test::ScopedFeatureList feature_list_;
+};
+
+TEST_F(TrackingProtectionOnboardingWithFeatureOverrideTest,
+       StartsUpAsEligible) {
+  EXPECT_EQ(tracking_protection_onboarding()->GetOnboardingStatus(),
+            TrackingProtectionOnboarding::OnboardingStatus::kEligible);
+}
+
 }  // namespace
 }  // namespace privacy_sandbox
diff --git a/components/search_engine_choice_strings.grdp b/components/search_engine_choice_strings.grdp
index 7c4b9335..a39d4f25 100644
--- a/components/search_engine_choice_strings.grdp
+++ b/components/search_engine_choice_strings.grdp
@@ -67,5 +67,9 @@
     Search with <ph name="PRODUCT_NAME">$1<ex>Google</ex></ph>
   </message>
 
+  <message name="IDS_SEARCH_ENGINE_CHOICE_SETTINGS_SUBTITLE" desc="This is the body text of a dialog where the user can change their default search engine. This string explains that the list of search engines reflects the user’s region and are randomized (not in order of recommendation). We want users to understand that they can use any search engine with Chrome.">
+    These search engines are popular in your region and are shown in random order
+  </message>
+
 </if>
 </grit-part>
diff --git a/components/search_engine_choice_strings_grdp/IDS_SEARCH_ENGINE_CHOICE_SETTINGS_SUBTITLE.png.sha1 b/components/search_engine_choice_strings_grdp/IDS_SEARCH_ENGINE_CHOICE_SETTINGS_SUBTITLE.png.sha1
new file mode 100644
index 0000000..9f45e23
--- /dev/null
+++ b/components/search_engine_choice_strings_grdp/IDS_SEARCH_ENGINE_CHOICE_SETTINGS_SUBTITLE.png.sha1
@@ -0,0 +1 @@
+b8581705ea85a2c3633038bc78db1f4c4fa7587d
\ No newline at end of file
diff --git a/components/search_engines/search_engine_choice_utils.cc b/components/search_engines/search_engine_choice_utils.cc
index fd6be39..b0424c4d 100644
--- a/components/search_engines/search_engine_choice_utils.cc
+++ b/components/search_engines/search_engine_choice_utils.cc
@@ -107,6 +107,11 @@
 const char kSearchEngineChoiceScreenEventsHistogram[] =
     "Search.ChoiceScreenEvents";
 
+bool ShouldShowUpdatedSettings(PrefService& profile_prefs) {
+  return base::FeatureList::IsEnabled(switches::kSearchEngineChoice) &&
+         IsEeaChoiceCountry(GetSearchEngineChoiceCountryId(profile_prefs));
+}
+
 bool ShouldShowChoiceScreen(const policy::PolicyService& policy_service,
                             const ProfileProperties& profile_properties) {
   if (!base::FeatureList::IsEnabled(switches::kSearchEngineChoice)) {
diff --git a/components/search_engines/search_engine_choice_utils.h b/components/search_engines/search_engine_choice_utils.h
index c5f04070..e1e08c9d 100644
--- a/components/search_engines/search_engine_choice_utils.h
+++ b/components/search_engines/search_engine_choice_utils.h
@@ -41,6 +41,10 @@
   raw_ptr<PrefService> pref_service;
 };
 
+// Returns which version of the settings screen for the default search engine
+// setting should be shown.
+bool ShouldShowUpdatedSettings(PrefService& profile_prefs);
+
 // Returns whether the search engine choice screen can be displayed or not based
 // on device policies and profile properties.
 bool ShouldShowChoiceScreen(const policy::PolicyService& policy_service,
diff --git a/components/search_engines/search_engine_choice_utils_unittest.cc b/components/search_engines/search_engine_choice_utils_unittest.cc
index 3d5b23b..7378d7d7 100644
--- a/components/search_engines/search_engine_choice_utils_unittest.cc
+++ b/components/search_engines/search_engine_choice_utils_unittest.cc
@@ -4,6 +4,7 @@
 
 #include "components/search_engines/search_engine_choice_utils.h"
 
+#include "base/check_deref.h"
 #include "base/command_line.h"
 #include "base/test/scoped_feature_list.h"
 #include "components/country_codes/country_codes.h"
@@ -39,6 +40,33 @@
     CheckPoliciesInitialState();
   }
 
+  void VerifyWillShowChoiceScreen(
+      const policy::PolicyService& policy_service,
+      const search_engines::ProfileProperties& profile_properties) {
+    PrefService& prefs = CHECK_DEREF(profile_properties.pref_service.get());
+    EXPECT_TRUE(search_engines::ShouldShowUpdatedSettings(prefs));
+    EXPECT_TRUE(search_engines::ShouldShowChoiceScreen(policy_service,
+                                                       profile_properties));
+  }
+
+  void VerifyEligibleButWillNotShowChoiceScreen(
+      const policy::PolicyService& policy_service,
+      const search_engines::ProfileProperties& profile_properties) {
+    PrefService& prefs = CHECK_DEREF(profile_properties.pref_service.get());
+    EXPECT_TRUE(search_engines::ShouldShowUpdatedSettings(prefs));
+    EXPECT_FALSE(search_engines::ShouldShowChoiceScreen(policy_service,
+                                                        profile_properties));
+  }
+
+  void VerifyNotEligibleAndWillNotShowChoiceScreen(
+      const policy::PolicyService& policy_service,
+      const search_engines::ProfileProperties& profile_properties) {
+    PrefService& prefs = CHECK_DEREF(profile_properties.pref_service.get());
+    EXPECT_FALSE(search_engines::ShouldShowUpdatedSettings(prefs));
+    EXPECT_FALSE(search_engines::ShouldShowChoiceScreen(policy_service,
+                                                        profile_properties));
+  }
+
   policy::MockPolicyService& policy_service() { return policy_service_; }
   policy::PolicyMap& policy_map() { return policy_map_; }
   TestingPrefServiceSimple* pref_service() { return &pref_service_; }
@@ -75,18 +103,19 @@
 
 // Test that the choice screen doesn't get displayed if the profile is not
 // regular.
-TEST_F(SearchEngineChoiceUtilsTest, ShowChoiceScreenWithRegularProfile) {
-  EXPECT_FALSE(search_engines::ShouldShowChoiceScreen(
+TEST_F(SearchEngineChoiceUtilsTest,
+       DoNotShowChoiceScreenWithNotRegularProfile) {
+  VerifyEligibleButWillNotShowChoiceScreen(
       policy_service(), /*profile_properties=*/{
-          .is_regular_profile = false, .pref_service = pref_service()}));
+          .is_regular_profile = false, .pref_service = pref_service()});
 }
 
 // Test that the choice screen gets displayed if the
 // `DefaultSearchProviderEnabled` policy is not set.
 TEST_F(SearchEngineChoiceUtilsTest, ShowChoiceScreenIfPoliciesAreNotSet) {
-  EXPECT_TRUE(search_engines::ShouldShowChoiceScreen(
+  VerifyWillShowChoiceScreen(
       policy_service(), /*profile_properties=*/{
-          .is_regular_profile = true, .pref_service = pref_service()}));
+          .is_regular_profile = true, .pref_service = pref_service()});
 }
 
 // Test that the choice screen doesn't get displayed if the
@@ -95,9 +124,9 @@
   policy_map().Set(policy::key::kDefaultSearchProviderEnabled,
                    policy::POLICY_LEVEL_MANDATORY, policy::POLICY_SCOPE_USER,
                    policy::POLICY_SOURCE_CLOUD, base::Value(false), nullptr);
-  EXPECT_FALSE(search_engines::ShouldShowChoiceScreen(
+  VerifyEligibleButWillNotShowChoiceScreen(
       policy_service(), /*profile_properties=*/{
-          .is_regular_profile = true, .pref_service = pref_service()}));
+          .is_regular_profile = true, .pref_service = pref_service()});
 }
 
 // Test that the choice screen gets displayed if the
@@ -108,9 +137,9 @@
   policy_map().Set(policy::key::kDefaultSearchProviderEnabled,
                    policy::POLICY_LEVEL_MANDATORY, policy::POLICY_SCOPE_USER,
                    policy::POLICY_SOURCE_CLOUD, base::Value(true), nullptr);
-  EXPECT_TRUE(search_engines::ShouldShowChoiceScreen(
+  VerifyWillShowChoiceScreen(
       policy_service(), /*profile_properties=*/{
-          .is_regular_profile = true, .pref_service = pref_service()}));
+          .is_regular_profile = true, .pref_service = pref_service()});
 }
 
 // Test that the choice screen doesn't get displayed if the
@@ -124,9 +153,9 @@
   policy_map().Set(policy::key::kDefaultSearchProviderSearchURL,
                    policy::POLICY_LEVEL_MANDATORY, policy::POLICY_SCOPE_USER,
                    policy::POLICY_SOURCE_CLOUD, base::Value("test"), nullptr);
-  EXPECT_FALSE(search_engines::ShouldShowChoiceScreen(
+  VerifyEligibleButWillNotShowChoiceScreen(
       policy_service(), /*profile_properties=*/{
-          .is_regular_profile = true, .pref_service = pref_service()}));
+          .is_regular_profile = true, .pref_service = pref_service()});
 }
 
 // Test that the choice screen gets displayed if the
@@ -135,18 +164,18 @@
 // screen.
 TEST_F(SearchEngineChoiceUtilsTest,
        ShowChoiceScreenIfTheTimestampPrefIsNotSet) {
-  EXPECT_TRUE(search_engines::ShouldShowChoiceScreen(
+  VerifyWillShowChoiceScreen(
       policy_service(),
       /*profile_properties=*/{.is_regular_profile = true,
-                              .pref_service = pref_service()}));
+                              .pref_service = pref_service()});
 
   pref_service()->SetInt64(
       prefs::kDefaultSearchProviderChoiceScreenCompletionTimestamp,
       base::Time::Now().ToDeltaSinceWindowsEpoch().InSeconds());
-  EXPECT_FALSE(search_engines::ShouldShowChoiceScreen(
+  VerifyEligibleButWillNotShowChoiceScreen(
       policy_service(),
       /*profile_properties=*/{.is_regular_profile = true,
-                              .pref_service = pref_service()}));
+                              .pref_service = pref_service()});
 }
 
 // Test that the choice screen does get displayed even if completed if the
@@ -158,18 +187,18 @@
       prefs::kDefaultSearchProviderChoiceScreenCompletionTimestamp,
       base::Time::Now().ToDeltaSinceWindowsEpoch().InSeconds());
 
-  EXPECT_TRUE(search_engines::ShouldShowChoiceScreen(
+  VerifyWillShowChoiceScreen(
       policy_service(), /*profile_properties=*/{
-          .is_regular_profile = true, .pref_service = pref_service()}));
+          .is_regular_profile = true, .pref_service = pref_service()});
 }
 
 // Ensure that the choice screen doesn't get displayed if the flag is disabled.
 TEST_F(SearchEngineChoiceUtilsTest, DoNotShowChoiceScreenIfFlagIsDisabled) {
   feature_list()->Reset();
   feature_list()->InitAndDisableFeature(switches::kSearchEngineChoice);
-  EXPECT_FALSE(search_engines::ShouldShowChoiceScreen(
+  VerifyNotEligibleAndWillNotShowChoiceScreen(
       policy_service(), /*profile_properties=*/{
-          .is_regular_profile = true, .pref_service = pref_service()}));
+          .is_regular_profile = true, .pref_service = pref_service()});
 }
 
 // Test that the choice screen does not get displayed if the command line
@@ -178,9 +207,9 @@
        DoNotShowChoiceScreenWithDisableCommandLineFlag) {
   base::CommandLine::ForCurrentProcess()->AppendSwitch(
       switches::kDisableSearchEngineChoiceScreen);
-  EXPECT_FALSE(search_engines::ShouldShowChoiceScreen(
+  VerifyEligibleButWillNotShowChoiceScreen(
       policy_service(), /*profile_properties=*/{
-          .is_regular_profile = true, .pref_service = pref_service()}));
+          .is_regular_profile = true, .pref_service = pref_service()});
 }
 
 TEST_F(SearchEngineChoiceUtilsTest, GetSearchEngineChoiceCountryId) {
diff --git a/components/search_engines/search_engines_pref_names.cc b/components/search_engines/search_engines_pref_names.cc
index 96b7d99a..e745967 100644
--- a/components/search_engines/search_engines_pref_names.cc
+++ b/components/search_engines/search_engines_pref_names.cc
@@ -45,4 +45,9 @@
 const char kSearchProviderOverridesVersion[] =
     "search_provider_overrides_version";
 
+// Path to the profile selected to show the search engine choice prompt.
+// NOTE: Unlike most of the other preferences here, this one is stored in the
+// local state, not the profile prefs.
+const char kSearchEnginesChoiceProfile[] = "search_engines.choice_profile";
+
 }  // namespace prefs
diff --git a/components/search_engines/search_engines_pref_names.h b/components/search_engines/search_engines_pref_names.h
index cdc5427..4e6bba0 100644
--- a/components/search_engines/search_engines_pref_names.h
+++ b/components/search_engines/search_engines_pref_names.h
@@ -14,6 +14,7 @@
 extern const char kDefaultSearchProviderEnabled[];
 extern const char kSearchProviderOverrides[];
 extern const char kSearchProviderOverridesVersion[];
+extern const char kSearchEnginesChoiceProfile[];
 
 }  // namespace prefs
 
diff --git a/components/security_interstitials/content/DEPS b/components/security_interstitials/content/DEPS
index a6506af..7a1b14f 100644
--- a/components/security_interstitials/content/DEPS
+++ b/components/security_interstitials/content/DEPS
@@ -22,7 +22,6 @@
   "+crypto",
   "+net",
   "+net/test",
-  "+services/cert_verifier/public/mojom/trial_comparison_cert_verifier.mojom.h",
   "+services/network/public",
   "+services/network/test",
   "+third_party/blink/public/common/features.h",
diff --git a/components/startup_metric_utils/browser/startup_metric_utils.cc b/components/startup_metric_utils/browser/startup_metric_utils.cc
index e48c9e8..6c73c51 100644
--- a/components/startup_metric_utils/browser/startup_metric_utils.cc
+++ b/components/startup_metric_utils/browser/startup_metric_utils.cc
@@ -270,8 +270,11 @@
   GetCommon().ResetSessionForTesting();
   // Reset global ticks that will be recorded multiple times when multiple
   // tests run in the same process.
+  main_window_startup_interrupted_ = false;
   message_loop_start_ticks_ = base::TimeTicks();
   browser_window_display_ticks_ = base::TimeTicks();
+  browser_window_first_paint_ticks_ = base::TimeTicks();
+  is_privacy_sandbox_attestations_histogram_recorded_ = false;
 }
 
 bool BrowserStartupMetricRecorder::WasMainWindowStartupInterrupted() const {
@@ -377,6 +380,17 @@
   browser_window_display_ticks_ = ticks;
 }
 
+void BrowserStartupMetricRecorder::RecordBrowserWindowFirstPaintTicks(
+    base::TimeTicks ticks) {
+  DCHECK(!ticks.is_null());
+
+  if (!browser_window_first_paint_ticks_.is_null()) {
+    return;
+  }
+
+  browser_window_first_paint_ticks_ = ticks;
+}
+
 void BrowserStartupMetricRecorder::RecordFirstWebContentsNonEmptyPaint(
     base::TimeTicks now,
     base::TimeTicks render_process_host_init_time) {
@@ -437,6 +451,7 @@
     return;
   }
   is_first_call = false;
+  RecordBrowserWindowFirstPaintTicks(ticks);
   if (!ShouldLogStartupHistogram()) {
     return;
   }
@@ -510,4 +525,69 @@
   }
 }
 
+// There are two possible callers of `ComponentReady()`:
+// a) Component registration, when there is existing component file on disk.
+// b) Component installation, when the component is downloaded.
+//
+// There are several factors that affect the timing of `ComponentReady()`:
+// 1. Feature `kPrivacySandboxAttestationsHigherComponentRegistrationPriority`
+// controls whether a higher task priority is used for component registration.
+// - When feature on, registration takes place almost immediately after opening
+// the browser.
+// - When feature off, registration takes place in a few seconds after opening
+// the browser.
+// 2. Non-browser UI during startup, for example, profile picker.
+// - When the above feature is off, and the user stays at the profile picker
+// indefinitely. The registration takes place in around 4 minutes after opening
+// the browser.
+//
+// The purpose of this metric is to understand the time gap between the time
+// users are able to navigate and the time the Privacy Sandbox attestations map
+// is ready. If navigation to sites that use Privacy Sandbox APIs takes place
+// during this gap, the API calls may be rejected because the attestations map
+// has not been ready yet.
+//
+// To reduce the noise introduced by non-browser UI, we measure from the first
+// browser window paint if it has been recorded. If it is not recorded, the
+// measurement is taken from application start.
+void BrowserStartupMetricRecorder::RecordPrivacySandboxAttestationsFirstReady(
+    base::TimeTicks ticks) {
+  DCHECK(!ticks.is_null());
+
+  // This metric should be recorded at most once for each Chrome session.
+  if (is_privacy_sandbox_attestations_histogram_recorded_) {
+    return;
+  }
+
+  // The first browser window paint has been recorded.
+  if (!browser_window_first_paint_ticks_.is_null()) {
+    is_privacy_sandbox_attestations_histogram_recorded_ = true;
+    UmaHistogramWithTraceAndTemperature(
+        &base::UmaHistogramMediumTimes,
+        "PrivacySandbox.Attestations.InitializationDuration."
+        "ComponentReadyFromBrowserWindowFirstPaint",
+        browser_window_first_paint_ticks_, ticks);
+    return;
+  }
+
+  // Otherwise, this implies the component is installed before first browser
+  // window paint.
+  is_privacy_sandbox_attestations_histogram_recorded_ = true;
+  if (WasMainWindowStartupInterrupted()) {
+    // The durations should be a few minutes.
+    UmaHistogramWithTraceAndTemperature(
+        &base::UmaHistogramMediumTimes,
+        "PrivacySandbox.Attestations.InitializationDuration."
+        "ComponentReadyFromApplicationStartWithInterruption",
+        GetCommon().application_start_ticks_, ticks);
+  } else {
+    // The durations should be a few milliseconds.
+    UmaHistogramWithTraceAndTemperature(
+        &base::UmaHistogramTimes,
+        "PrivacySandbox.Attestations.InitializationDuration."
+        "ComponentReadyFromApplicationStart",
+        GetCommon().application_start_ticks_, ticks);
+  }
+}
+
 }  // namespace startup_metric_utils
diff --git a/components/startup_metric_utils/browser/startup_metric_utils.h b/components/startup_metric_utils/browser/startup_metric_utils.h
index 827a5e2..e10b7d2c 100644
--- a/components/startup_metric_utils/browser/startup_metric_utils.h
+++ b/components/startup_metric_utils/browser/startup_metric_utils.h
@@ -72,6 +72,14 @@
   // Call this with the time when the first browser window became visible.
   void RecordBrowserWindowDisplay(base::TimeTicks ticks);
 
+  // Call this with the time when the browser window paints its children for the
+  // first time.
+  void RecordBrowserWindowFirstPaintTicks(base::TimeTicks ticks);
+
+  // Call this with the time when the Privacy Sandbox Attestations component
+  // becomes ready for the first time.
+  void RecordPrivacySandboxAttestationsFirstReady(base::TimeTicks ticks);
+
   // Call this with the time when the first web contents had a non-empty paint,
   // only if the first web contents was unimpeded in its attempt to do so. Must
   // be called after RecordApplicationStartTime(), because it computes time
@@ -143,6 +151,10 @@
   base::TimeTicks message_loop_start_ticks_;
 
   base::TimeTicks browser_window_display_ticks_;
+
+  base::TimeTicks browser_window_first_paint_ticks_;
+
+  bool is_privacy_sandbox_attestations_histogram_recorded_ = false;
 };
 
 COMPONENT_EXPORT(STARTUP_METRIC_UTILS)
diff --git a/components/storage_monitor/BUILD.gn b/components/storage_monitor/BUILD.gn
index 546f194a..4f1e7215 100644
--- a/components/storage_monitor/BUILD.gn
+++ b/components/storage_monitor/BUILD.gn
@@ -52,6 +52,9 @@
       "Foundation.framework",
       "ImageCaptureCore.framework",
     ]
+    weak_frameworks = [
+      "UniformTypeIdentifiers.framework",  # macOS 11
+    ]
   } else if (is_chromeos_ash) {
     # For Chrome OS, |is_linux| is also true. Put this in an else-if block above
     # the |is_linux| else-if block, so they do not clash.
@@ -165,6 +168,9 @@
       "image_capture_device_manager_unittest.mm",
       "storage_monitor_mac_unittest.mm",
     ]
+    weak_frameworks = [
+      "UniformTypeIdentifiers.framework",  # macOS 11
+    ]
   }
 
   if (is_chromeos_ash) {
diff --git a/components/storage_monitor/image_capture_device.mm b/components/storage_monitor/image_capture_device.mm
index 2ae5e548..657c49d1 100644
--- a/components/storage_monitor/image_capture_device.mm
+++ b/components/storage_monitor/image_capture_device.mm
@@ -5,6 +5,7 @@
 #import "components/storage_monitor/image_capture_device.h"
 
 #include <ImageCaptureCore/ImageCaptureCore.h>
+#import <UniformTypeIdentifiers/UniformTypeIdentifiers.h>
 
 #include "base/apple/bridging.h"
 #include "base/apple/foundation_util.h"
@@ -174,9 +175,16 @@
 
 - (void)cameraDevice:(ICCameraDevice*)camera
          didAddItems:(NSArray<ICCameraItem*>*)items {
+  NSString* folderIdentifier;
+  if (@available(macOS 11, *)) {
+    folderIdentifier = UTTypeFolder.identifier;
+  } else {
+    folderIdentifier = base::apple::CFToNSPtrCast(kUTTypeFolder);
+  }
+
   for (ICCameraItem* item in items) {
     base::File::Info info;
-    if ([item.UTI isEqualToString:base::apple::CFToNSPtrCast(kUTTypeFolder)]) {
+    if ([item.UTI isEqualToString:folderIdentifier]) {
       info.is_directory = true;
     } else {
       info.size = base::apple::ObjCCastStrict<ICCameraFile>(item).fileSize;
diff --git a/components/storage_monitor/image_capture_device_manager_unittest.mm b/components/storage_monitor/image_capture_device_manager_unittest.mm
index b29c11a7..3da13478 100644
--- a/components/storage_monitor/image_capture_device_manager_unittest.mm
+++ b/components/storage_monitor/image_capture_device_manager_unittest.mm
@@ -4,6 +4,7 @@
 
 #import <Foundation/Foundation.h>
 #import <ImageCaptureCore/ImageCaptureCore.h>
+#import <UniformTypeIdentifiers/UniformTypeIdentifiers.h>
 
 #include "base/apple/bridging.h"
 #include "base/apple/foundation_util.h"
@@ -176,7 +177,11 @@
 }
 
 - (NSString*)UTI {
-  return base::apple::CFToNSPtrCast(kUTTypeImage);
+  if (@available(macOS 11, *)) {
+    return UTTypeImage.identifier;
+  } else {
+    return base::apple::CFToNSPtrCast(kUTTypeImage);
+  }
 }
 
 - (NSDate*)modificationDate {
diff --git a/components/strictmode/android/BUILD.gn b/components/strictmode/android/BUILD.gn
index 04e60f2..93e6359 100644
--- a/components/strictmode/android/BUILD.gn
+++ b/components/strictmode/android/BUILD.gn
@@ -20,7 +20,11 @@
 
 android_library("unit_device_javatests") {
   testonly = true
-  sources = [ "javatests/src/org/chromium/components/strictmode/ThreadStrictModeInterceptorTest.java" ]
+  sources = [
+    "javatests/src/org/chromium/components/strictmode/ThreadStrictModeInterceptorTest.java",
+    "javatests/src/org/chromium/components/strictmode/test/disk_write_helper/DiskWriteHelper.java",
+    "javatests/src/org/chromium/components/strictmode/test/disk_write_proxy/DiskWriteProxy.java",
+  ]
   deps = [
     ":java",
     "//base:base_java_test_support",
diff --git a/components/strictmode/android/java/src/org/chromium/components/strictmode/ThreadStrictModeInterceptor.java b/components/strictmode/android/java/src/org/chromium/components/strictmode/ThreadStrictModeInterceptor.java
index 67c59eb..b02e677 100644
--- a/components/strictmode/android/java/src/org/chromium/components/strictmode/ThreadStrictModeInterceptor.java
+++ b/components/strictmode/android/java/src/org/chromium/components/strictmode/ThreadStrictModeInterceptor.java
@@ -47,14 +47,29 @@
         private @Nullable Consumer<Violation> mCustomPenalty;
 
         /**
-         * Ignores all StrictMode violations for which the passed-in package is not part of the
+         * Ignores all StrictMode violations for which {@link filterPackageName} is not part of the
          * stack trace.
+         *
+         * Also ignores StrictMode violations where:
+         * 1) {@link filterPackageName} calls {@link blocklistCalleePackageName}
+         * AND
+         * 2) The violation is caused in code called by {@link blocklistCalleePackageName}.
+         *
+         * This scenario occurs when {@link blocklistCalleePackageName} registers an observer with
+         * {@link filterPackageName} and the strict mode violation is in the observer code.
          */
-        public Builder onlyDetectViolationsForPackage(final String filterPackageName) {
+        public Builder onlyDetectViolationsForPackage(
+                final String filterPackageName, final String blocklistCalleePackageName) {
             mWhitelistEntries.add(violation -> {
-                return doesStackTraceContainPackage(violation, filterPackageName)
-                        ? null
-                        : Violation.DETECT_ALL_KNOWN;
+                for (StackTraceElement frame : violation.stackTrace()) {
+                    if (frame.getClassName().startsWith(blocklistCalleePackageName)) {
+                        return Violation.DETECT_ALL_KNOWN;
+                    }
+                    if (frame.getClassName().startsWith(filterPackageName)) {
+                        return null;
+                    }
+                }
+                return Violation.DETECT_ALL_KNOWN;
             });
             return this;
         }
diff --git a/components/strictmode/android/javatests/src/org/chromium/components/strictmode/ThreadStrictModeInterceptorTest.java b/components/strictmode/android/javatests/src/org/chromium/components/strictmode/ThreadStrictModeInterceptorTest.java
index eff0492..a5bec4bf 100644
--- a/components/strictmode/android/javatests/src/org/chromium/components/strictmode/ThreadStrictModeInterceptorTest.java
+++ b/components/strictmode/android/javatests/src/org/chromium/components/strictmode/ThreadStrictModeInterceptorTest.java
@@ -10,7 +10,6 @@
 import android.os.StrictMode;
 import android.os.StrictMode.ThreadPolicy;
 
-import androidx.core.content.ContextCompat;
 import androidx.test.InstrumentationRegistry;
 import androidx.test.filters.SmallTest;
 
@@ -18,15 +17,16 @@
 import org.junit.runner.RunWith;
 
 import org.chromium.base.test.BaseJUnit4ClassRunner;
+import org.chromium.base.test.util.Batch;
 import org.chromium.base.test.util.CallbackHelper;
+import org.chromium.components.strictmode.test.disk_write_helper.DiskWriteHelper;
+import org.chromium.components.strictmode.test.disk_write_proxy.DiskWriteProxy;
 import org.chromium.content_public.browser.test.util.TestThreadUtils;
 
-import java.io.File;
-import java.io.FileOutputStream;
-
 /**
  * Tests for {@link ThreadStrictModeInterceptor}.
  */
+@Batch(Batch.PER_CLASS)
 @RunWith(BaseJUnit4ClassRunner.class)
 public class ThreadStrictModeInterceptorTest {
     /**
@@ -39,10 +39,10 @@
         ThreadStrictModeInterceptor.Builder threadInterceptor =
                 new ThreadStrictModeInterceptor.Builder();
         threadInterceptor.addAllowedMethod(Violation.DETECT_DISK_IO,
-                "org.chromium.components.strictmode.ThreadStrictModeInterceptorTest#doDiskWrite");
+                "org.chromium.components.strictmode.test.disk_write_helper.DiskWriteHelper#doDiskWrite");
         TestThreadUtils.runOnUiThreadBlocking(() -> {
             installThreadInterceptor(threadInterceptor, strictModeDetector);
-            doDiskWrite();
+            DiskWriteHelper.doDiskWrite();
         });
 
         // Wait for any tasks posted to the main thread by android.os.StrictMode to complete.
@@ -62,7 +62,7 @@
                 new ThreadStrictModeInterceptor.Builder();
         TestThreadUtils.runOnUiThreadBlocking(() -> {
             installThreadInterceptor(threadInterceptor, strictModeDetector);
-            doDiskWrite();
+            DiskWriteHelper.doDiskWrite();
         });
 
         // Wait for any tasks posted to the main thread by android.os.StrictMode to complete.
@@ -71,13 +71,81 @@
         assertTrue(strictModeDetector.getCallCount() >= 1);
     }
 
-    private void doDiskWrite() {
-        File dataDir = ContextCompat.getDataDir(InstrumentationRegistry.getTargetContext());
-        File outFile = new File(dataDir, "random.txt");
-        try (FileOutputStream out = new FileOutputStream(outFile)) {
-            out.write(1);
-        } catch (Exception e) {
-        }
+    /**
+     * Test that when ThreadStrictModeInterceptor#onlyDetectViolationsForPackage() is used, that the
+     * penalty is not notified when org.chromium.content code calls org.chromium.chrome code and the
+     * org.chromium.chrome code causes the strict mode violation. This occurs when
+     * org.chromium.chrome code registers an observer and the observer gets called.
+     */
+    @Test
+    @SmallTest
+    public void testOnlyDetectViolationsForPackageCalleeBlocklisted() {
+        CallbackHelper strictModeDetector = new CallbackHelper();
+        ThreadStrictModeInterceptor.Builder threadInterceptor =
+                new ThreadStrictModeInterceptor.Builder();
+        threadInterceptor.onlyDetectViolationsForPackage(
+                "org.chromium.components.strictmode.test.disk_write_proxy",
+                "org.chromium.components.strictmode.test.disk_write_helper");
+        TestThreadUtils.runOnUiThreadBlocking(() -> {
+            installThreadInterceptor(threadInterceptor, strictModeDetector);
+            DiskWriteProxy.callDiskWriteHelper();
+        });
+
+        // Wait for any tasks posted to the main thread by android.os.StrictMode to complete.
+        InstrumentationRegistry.getInstrumentation().waitForIdleSync();
+
+        assertEquals(0, strictModeDetector.getCallCount());
+    }
+
+    /**
+     * Test that when ThreadStrictModeInterceptor#onlyDetectViolationsForPackage() is used, that the
+     * penalty is notified when org.chromium.chrome code calls org.chromium.content code and the
+     * org.chromium.content code causes the strict mode violation.
+     */
+    @Test
+    @SmallTest
+    public void testOnlyDetectViolationsForPackageCallerBlocklisted() {
+        CallbackHelper strictModeDetector = new CallbackHelper();
+        ThreadStrictModeInterceptor.Builder threadInterceptor =
+                new ThreadStrictModeInterceptor.Builder();
+        // .test package names are used for onlyDetectViolationsForPackage() to prevent the
+        // package names from being obfuscated.
+        threadInterceptor.onlyDetectViolationsForPackage(
+                "org.chromium.components.strictmode.test.disk_write_helper",
+                "org.chromium.components.strictmode.test.disk_write_proxy");
+        TestThreadUtils.runOnUiThreadBlocking(() -> {
+            installThreadInterceptor(threadInterceptor, strictModeDetector);
+            DiskWriteProxy.callDiskWriteHelper();
+        });
+
+        // Wait for any tasks posted to the main thread by android.os.StrictMode to complete.
+        InstrumentationRegistry.getInstrumentation().waitForIdleSync();
+
+        assertTrue(strictModeDetector.getCallCount() >= 1);
+    }
+
+    /**
+     * Test that when ThreadStrictModeInterceptor#onlyDetectViolationsForPackage() is used, that the
+     * penalty is not notified when the strict mode violation occurs in an unrelated package.
+     */
+    @Test
+    @SmallTest
+    public void testOnlyDetectViolationForPackageViolationInUnrelatedPackage() {
+        CallbackHelper strictModeDetector = new CallbackHelper();
+        ThreadStrictModeInterceptor.Builder threadInterceptor =
+                new ThreadStrictModeInterceptor.Builder();
+        threadInterceptor.onlyDetectViolationsForPackage(
+                "org.chromium.components.strictmode.test.non_existent",
+                "org.chromium.components.strictmode.test.non_existent2");
+        TestThreadUtils.runOnUiThreadBlocking(() -> {
+            installThreadInterceptor(threadInterceptor, strictModeDetector);
+            DiskWriteProxy.callDiskWriteHelper();
+        });
+
+        // Wait for any tasks posted to the main thread by android.os.StrictMode to complete.
+        InstrumentationRegistry.getInstrumentation().waitForIdleSync();
+
+        assertEquals(0, strictModeDetector.getCallCount());
     }
 
     private void installThreadInterceptor(ThreadStrictModeInterceptor.Builder threadInterceptor,
diff --git a/components/strictmode/android/javatests/src/org/chromium/components/strictmode/test/disk_write_helper/DiskWriteHelper.java b/components/strictmode/android/javatests/src/org/chromium/components/strictmode/test/disk_write_helper/DiskWriteHelper.java
new file mode 100644
index 0000000..73dc4fa6
--- /dev/null
+++ b/components/strictmode/android/javatests/src/org/chromium/components/strictmode/test/disk_write_helper/DiskWriteHelper.java
@@ -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.
+
+package org.chromium.components.strictmode.test.disk_write_helper;
+
+import androidx.core.content.ContextCompat;
+import androidx.test.InstrumentationRegistry;
+
+import java.io.File;
+import java.io.FileOutputStream;
+
+/* Utility for triggering a StrictMode violation. */
+public class DiskWriteHelper {
+    public static void doDiskWrite() {
+        File dataDir = ContextCompat.getDataDir(InstrumentationRegistry.getTargetContext());
+        File outFile = new File(dataDir, "random.txt");
+        try (FileOutputStream out = new FileOutputStream(outFile)) {
+            out.write(1);
+        } catch (Exception e) {
+        }
+    }
+}
diff --git a/components/strictmode/android/javatests/src/org/chromium/components/strictmode/test/disk_write_proxy/DiskWriteProxy.java b/components/strictmode/android/javatests/src/org/chromium/components/strictmode/test/disk_write_proxy/DiskWriteProxy.java
new file mode 100644
index 0000000..84dc7adb
--- /dev/null
+++ b/components/strictmode/android/javatests/src/org/chromium/components/strictmode/test/disk_write_proxy/DiskWriteProxy.java
@@ -0,0 +1,14 @@
+// Copyright 2023 The Chromium Authors
+// Use of this source code is governed by a BSD-style license that can be
+// found in the LICENSE file.
+
+package org.chromium.components.strictmode.test.disk_write_proxy;
+
+import org.chromium.components.strictmode.test.disk_write_helper.DiskWriteHelper;
+
+/* Calls {@link DiskWriteHelper} */
+public class DiskWriteProxy {
+    public static void callDiskWriteHelper() {
+        DiskWriteHelper.doDiskWrite();
+    }
+}
diff --git a/components/strings/components_strings_af.xtb b/components/strings/components_strings_af.xtb
index 4c770051..2c87587 100644
--- a/components/strings/components_strings_af.xtb
+++ b/components/strings/components_strings_af.xtb
@@ -125,7 +125,6 @@
 <translation id="1243027604378859286">Outeur:</translation>
 <translation id="1246424317317450637">Vetdruk</translation>
 <translation id="1247030632403369975">Aluminium</translation>
-<translation id="1250759482327835220">Stoor jou kaart, naam en faktureringadres in jou Google-rekening om volgende keer vinniger te betaal.</translation>
 <translation id="1252209483516427155">Boklere</translation>
 <translation id="1253921432148366685"><ph name="TYPE_1" />, <ph name="TYPE_2" /> (gesinkroniseer)</translation>
 <translation id="1255086252236620440">Kosmengers</translation>
@@ -158,7 +157,6 @@
 <translation id="1294154142200295408">Bevellynvariasies</translation>
 <translation id="129553762522093515">Onlangs toegemaak</translation>
 <translation id="1296930489679394997">Verkope</translation>
-<translation id="129863573139666797"><ph name="BEGIN_LINK" />Probeer om jou webkoekies uit te vee<ph name="END_LINK" /></translation>
 <translation id="1301227606947843452">Wetlik Ekstra</translation>
 <translation id="1301324364792935241">Gaan jou veilige-DNS-instellings na</translation>
 <translation id="1307966114820526988">Opgeskorte kenmerke</translation>
@@ -1351,7 +1349,6 @@
 <translation id="3767485424735936570">Administrateursbeleid beveel nie aan dat hierdie inhoud op <ph name="VM_NAME" /> gekopieer en geplak word nie</translation>
 <translation id="3772211998634047851">Papier (bond)</translation>
 <translation id="377451872037045164"><ph name="CREATE_GOOGLE_KEEP_NOTE_FOCUSED_FRIENDLY_MATCH_TEXT" />, druk Tab en dan Enter om vinnig 'n nuwe nota in Google Keep te skep</translation>
-<translation id="3778403066972421603">Wil jy hierdie kaart in jou Google-rekening en op hierdie toestel stoor?</translation>
 <translation id="378026377453746707">Chrome het ingeboude veiligheidkenmerke om jou te beskerm terwyl jy blaai, soos Google Veiligblaai. Veiligblaai het onlangs <ph name="BEGIN_LINK" />skadelike sagteware op <ph name="SITE" /> gevind<ph name="END_LINK" />, wat in die werf ingebed is wat jy probeer besoek.</translation>
 <translation id="3780694243617746492">Uitvoerbak</translation>
 <translation id="3781428340399460090">Helderpienk</translation>
@@ -1957,7 +1954,6 @@
 <translation id="5020776957610079374">Wêreldmusiek</translation>
 <translation id="5021557570875267742">Spoor pryse na met Chrome</translation>
 <translation id="5023310440958281426">Gaan jou administrateur se beleide na</translation>
-<translation id="5029568752722684782">Vee kopie uit</translation>
 <translation id="5030338702439866405">Uitgereik deur</translation>
 <translation id="503069730517007720">'n Kernsertifikaat vir "<ph name="SOFTWARE_NAME" />" word vereis, maar is nie geïnstalleer nie. Jou IT-administrateur moet opstellinginstruksies vir "<ph name="SOFTWARE_NAME" />" nagaan om hierdie probleem reg te stel. <ph name="FURTHER_EXPLANATION" /></translation>
 <translation id="5031870354684148875">Meer oor Google Vertaal</translation>
@@ -2540,7 +2536,6 @@
 <translation id="6270066318535733958">Skuitvaar</translation>
 <translation id="6272088941196661550">Hervat jou reis om relevante aktiwiteit in jou Chrome-geskiedenis te sien</translation>
 <translation id="6272383483618007430">Google-opdatering</translation>
-<translation id="627746635834430766">Stoor jou kaart en faktureringadres in jou Google-rekening om volgende keer vinniger te betaal.</translation>
 <translation id="6279183038361895380">Druk |<ph name="ACCELERATOR" />| om jou merker te wys</translation>
 <translation id="6280223929691119688">Kan nie by hierdie adres aflewer nie. Kies 'n ander adres.</translation>
 <translation id="6284292079994426700">26x38 dm.</translation>
@@ -3851,7 +3846,6 @@
 <translation id="8922013791253848639">Laat advertensies altyd op hierdie werf toe</translation>
 <translation id="892588693504540538">Pons regs bo</translation>
 <translation id="8930330541574156305">Eiendom</translation>
-<translation id="8931333241327730545">Wil jy hierdie kaart in jou Google-rekening stoor?</translation>
 <translation id="8932102934695377596">Jou horlosie is agter</translation>
 <translation id="893332455753468063">Voeg naam by</translation>
 <translation id="8942355029279167844">Jou administrateur het <ph name="APP_NAME" /> toegelaat om diagnostiese data in te samel om die produkervaring beter te maak. Sien <ph name="BEGIN_LINK" />https://www.parallels.com/pcep<ph name="END_LINK" /> vir meer inligting.</translation>
diff --git a/components/strings/components_strings_am.xtb b/components/strings/components_strings_am.xtb
index 718fb71..e84885b8 100644
--- a/components/strings/components_strings_am.xtb
+++ b/components/strings/components_strings_am.xtb
@@ -125,7 +125,6 @@
 <translation id="1243027604378859286">ደራሲ፦</translation>
 <translation id="1246424317317450637">ደማቅ</translation>
 <translation id="1247030632403369975">አሉሚንየም</translation>
-<translation id="1250759482327835220">በሚቀጥለው ጊዜ በበለጠ ፍጥነት ለመክፈል ካርድዎን እና የማስከፈያ አድራሻዎን በGoogle መለያዎ ላይ ያስቀምጡ።</translation>
 <translation id="1252209483516427155">ውጭ የሚለበስ</translation>
 <translation id="1253921432148366685"><ph name="TYPE_1" />፣ <ph name="TYPE_2" /> (ሰምሯል)</translation>
 <translation id="1255086252236620440">ምግብ ማደባለቂያዎች</translation>
@@ -158,7 +157,6 @@
 <translation id="1294154142200295408">የትእዛዝ መስመር ልዩነቶች</translation>
 <translation id="129553762522093515">በቅርብ ጊዜ የተዘጉ</translation>
 <translation id="1296930489679394997">ሽያጭ</translation>
-<translation id="129863573139666797"><ph name="BEGIN_LINK" />ኩኪዎችዎን ማጽዳት ይሞክሩ<ph name="END_LINK" /></translation>
 <translation id="1301227606947843452">የህግ ተጨማሪ</translation>
 <translation id="1301324364792935241">ደህንነታቸው የተጠበቁ የዲኤንኤስ ቅንብሮችዎን ይፈትሹ።</translation>
 <translation id="1307966114820526988">የተቋረጡ ባህሪያት</translation>
@@ -1350,7 +1348,6 @@
 <translation id="3767485424735936570">ይህንን ይዘት ወደ <ph name="VM_NAME" /> መቅዳት እና መለጠፍ በአስተዳዳሪው መመሪያ የሚመከር አይደለም</translation>
 <translation id="3772211998634047851">ወረቀት (ቦንድ)</translation>
 <translation id="377451872037045164"><ph name="CREATE_GOOGLE_KEEP_NOTE_FOCUSED_FRIENDLY_MATCH_TEXT" />፣ በGoogle Keep ውስጥ በፍጥነት አዲስ ማስታወሻ ለመፍጠር ትርን ከዚያ አስገባን ይጫኑ</translation>
-<translation id="3778403066972421603">ይህን ካርድ በእርስዎ የGoogle መለያ እና በዚህ መሣሪያ ላይ ማስቀመጥ ይፈልጋሉ?</translation>
 <translation id="378026377453746707">Chrome እንደ የGoogle ጥንቃቄ አሰሳ ያሉ በሚያስሱበት ጊዜ እርስዎን የሚጠብቁ ደህንነታቸው የተጠበቀ አብሮገነብ ባህሪያት አለው። ደህንነቱ የተጠበቀ አሰሳ ለመጎብኘት በሚሞክሩበት ጣቢያው ውስጥ የተካተተ <ph name="BEGIN_LINK" />በቅርብ ጊዜ <ph name="SITE" /> ላይ አደገኛ ሶፍትዌር ተገኝቷል<ph name="END_LINK" />።</translation>
 <translation id="3780694243617746492">የውጽዓት መጣያ</translation>
 <translation id="3781428340399460090">ደመቅ ያለ ሮዝ</translation>
@@ -1956,7 +1953,6 @@
 <translation id="5020776957610079374">የዓለም ሙዚቃ</translation>
 <translation id="5021557570875267742">በChrome አማካኝነት ዋጋዎችን ይከታተሉ</translation>
 <translation id="5023310440958281426">የአስተዳዳሪዎ መመሪያዎችን ያረጋግጡ</translation>
-<translation id="5029568752722684782">ቅጂን አጽዳ</translation>
 <translation id="5030338702439866405">የቀረበው</translation>
 <translation id="503069730517007720">ለ«<ph name="SOFTWARE_NAME" />» ስር እውቅና ማረጋገጫ ያስፈልጋል፣ ነገር ግን አልተጫነም። የእርስዎ አይቲ አስተዳዳሪ ይህን ችግር ለመፍታት የ«<ph name="SOFTWARE_NAME" />» ውቅረት መመሪያዎችን መመልከት አለበት። <ph name="FURTHER_EXPLANATION" /></translation>
 <translation id="5031870354684148875">ስለ Google ትርጉም</translation>
@@ -2539,7 +2535,6 @@
 <translation id="6270066318535733958">ጀልባ ቀዘፋ</translation>
 <translation id="6272088941196661550">በእርስዎ የChrome ታሪክ ውስጥ አግባብነት ያለው እንቅስቃሴን ለማየት ጉዞዎን ከቆመበት ይቀጥሉ</translation>
 <translation id="6272383483618007430">የGoogle ዝማኔ</translation>
-<translation id="627746635834430766">በሚቀጥለው ጊዜ በበለጠ ፍጥነት ለመክፈል ካርድዎን እና የማስከፈያ አድራሻዎን በGoogle መለያዎ ላይ ያስቀምጡ።</translation>
 <translation id="6279183038361895380">የእርስዎን ጠቋሚ ለማሳየት |<ph name="ACCELERATOR" />| ይጫኑ</translation>
 <translation id="6280223929691119688">ወደዚህ አድራሻ ማድረስ አይቻልም። የተለየ አድራሻ ይምረጡ።</translation>
 <translation id="6284292079994426700">26 x 38 ኢንች</translation>
@@ -3851,7 +3846,6 @@
 <translation id="8922013791253848639">ሁልጊዜ በዚህ ጣቢያ ላይ ማስታወቂያዎችን አሳይ</translation>
 <translation id="892588693504540538">ከላይ ቀኝ በኩል ብሳ</translation>
 <translation id="8930330541574156305">ሪል እስቴት</translation>
-<translation id="8931333241327730545">ይህን ካርድ በእርስዎ የGoogle መለያ ላይ ማስቀመጥ ይፈልጋሉ?</translation>
 <translation id="8932102934695377596">የእርስዎ ሰዓት ወደ ኋላ ቀርቷል</translation>
 <translation id="893332455753468063">ስም ያክሉ</translation>
 <translation id="8942355029279167844">የእርስዎ አስተዳዳሪ <ph name="APP_NAME" /> የምርቱን ተሞክሮ ለማሻሻል የምርመራዎች ውሂብ እንዲሰበስብ ፈቅዷል። ተጨማሪ መረጃ ለማግኘት <ph name="BEGIN_LINK" />https://www.parallels.com/pcep<ph name="END_LINK" />ን ይመልከቱ።</translation>
diff --git a/components/strings/components_strings_ar.xtb b/components/strings/components_strings_ar.xtb
index 8649bb55..7738411 100644
--- a/components/strings/components_strings_ar.xtb
+++ b/components/strings/components_strings_ar.xtb
@@ -125,7 +125,6 @@
 <translation id="1243027604378859286">المؤلف:</translation>
 <translation id="1246424317317450637">غامق</translation>
 <translation id="1247030632403369975">ألومنيوم</translation>
-<translation id="1250759482327835220">‏للدفع بشكلٍ أسرع في المرة القادمة، يمكنك حفظ البطاقة والاسم وعنوان إرسال الفواتير في حسابك على Google.</translation>
 <translation id="1252209483516427155">ملابس خروج</translation>
 <translation id="1253921432148366685"><ph name="TYPE_1" />، <ph name="TYPE_2" /> (تمت المزامنة)</translation>
 <translation id="1255086252236620440">خلاطات طعام</translation>
@@ -158,7 +157,6 @@
 <translation id="1294154142200295408">صيغ سطر الأوامر</translation>
 <translation id="129553762522093515">المغلقة حديثًا</translation>
 <translation id="1296930489679394997">مبيعات</translation>
-<translation id="129863573139666797"><ph name="BEGIN_LINK" />جرّب محو ملفات تعريف الارتباط<ph name="END_LINK" /></translation>
 <translation id="1301227606947843452">Legal Extra</translation>
 <translation id="1301324364792935241">التحقّق من إعدادات نظام أسماء النطاقات الآمن</translation>
 <translation id="1307966114820526988">الميزات المتوقفة</translation>
@@ -1353,7 +1351,6 @@
 <translation id="3767485424735936570">لا تقترح سياسة المشرف نسخ هذا المحتوى ولصقه في <ph name="VM_NAME" />.</translation>
 <translation id="3772211998634047851">ورق (سندات)</translation>
 <translation id="377451872037045164">‏<ph name="CREATE_GOOGLE_KEEP_NOTE_FOCUSED_FRIENDLY_MATCH_TEXT" />: اضغط على مفتاح التبويب (Tab) ثم Enter لإنشاء ملاحظة جديدة في Google Keep بسرعة.</translation>
-<translation id="3778403066972421603">‏هل تريد حفظ هذه البطاقة في حسابك في Google وعلى هذا الجهاز؟</translation>
 <translation id="378026377453746707">‏يحتوي متصفِّح Chrome على ميزات أمان مدمجة لحمايتك أثناء التصفُّح، مثل "التصفُّح الآمن من Google". رصدت ميزة "التصفُّح الآمن" مؤخرًا <ph name="BEGIN_LINK" />برامج ضارة على <ph name="SITE" /><ph name="END_LINK" /> مضمّنة في الموقع الإلكتروني الذي تحاول الانتقال إليه.</translation>
 <translation id="3780694243617746492">سلّة الإخراج</translation>
 <translation id="3781428340399460090">وردي برّاق</translation>
@@ -1961,7 +1958,6 @@
 <translation id="5020776957610079374">موسيقى عالمية</translation>
 <translation id="5021557570875267742">‏تتبُّع الأسعار باستخدام Chrome</translation>
 <translation id="5023310440958281426">التحقق من سياسات المشرف</translation>
-<translation id="5029568752722684782">محو النسخة</translation>
 <translation id="5030338702439866405">جهة الإصدار</translation>
 <translation id="503069730517007720">يلزم شهادة جذر لـ "<ph name="SOFTWARE_NAME" />" ولكن لم يتم تثبيتها. ينبغي على مشرف تقنية المعلومات أن يلقي نظرة على تعليمات الإعداد لـ "<ph name="SOFTWARE_NAME" />" لإصلاح تلك المشكلة. <ph name="FURTHER_EXPLANATION" /></translation>
 <translation id="5031870354684148875">‏لمحة عن "ترجمة Google"</translation>
@@ -2544,7 +2540,6 @@
 <translation id="6270066318535733958">ركوب قوارب</translation>
 <translation id="6272088941196661550">‏يمكنك استئناف سجلّ أنشطة البحث والتصفُّح للاطّلاع على النشاط ذي الصلة في سجلّ Chrome.</translation>
 <translation id="6272383483618007430">‏تحديث Google</translation>
-<translation id="627746635834430766">‏للدفع بشكلٍ أسرع في المرة القادمة، يجب حفظ البطاقة وعنوان إرسال الفواتير في حسابك على Google.</translation>
 <translation id="6279183038361895380">اضغط على |<ph name="ACCELERATOR" />| لعرض المؤشر</translation>
 <translation id="6280223929691119688">لا يمكن التسليم على هذا العنوان. اختَر عنوانًا آخر.</translation>
 <translation id="6284292079994426700">26 × 38 بوصة</translation>
@@ -3858,7 +3853,6 @@
 <translation id="8922013791253848639">السماح دائمًا بالإعلانات على هذا الموقع</translation>
 <translation id="892588693504540538">عمل ثقب أعلى اليمين</translation>
 <translation id="8930330541574156305">عقارات</translation>
-<translation id="8931333241327730545">‏هل تريد حفظ هذه البطاقة إلى حسابك في Google؟</translation>
 <translation id="8932102934695377596">توقيت ساعتك متأخر عن الوقت الحالي</translation>
 <translation id="893332455753468063">إضافة اسم</translation>
 <translation id="8942355029279167844">‏لقد سمح مشرفك لتطبيق <ph name="APP_NAME" /> بجمع بيانات التشخيص لتحسين تجربة المنتج. يُرجى الانتقال إلى <ph name="BEGIN_LINK" />https://www.parallels.com/pcep<ph name="END_LINK" /> للحصول على مزيد من المعلومات.</translation>
diff --git a/components/strings/components_strings_as.xtb b/components/strings/components_strings_as.xtb
index 821fecc..29d735ae 100644
--- a/components/strings/components_strings_as.xtb
+++ b/components/strings/components_strings_as.xtb
@@ -125,7 +125,6 @@
 <translation id="1243027604378859286">লেখক:</translation>
 <translation id="1246424317317450637">ব’ল্ড</translation>
 <translation id="1247030632403369975">এলুমিনিয়াম</translation>
-<translation id="1250759482327835220">পৰৱৰ্তী সময়ত দ্ৰুতভাৱে পৰিশোধ কৰিবলৈ আপোনাৰ Google একাউণ্টত নিজৰ কাৰ্ড, নাম আৰু বিলিঙৰ ঠিকনা ছেভ কৰক।</translation>
 <translation id="1252209483516427155">আউটাৰৱেৰ</translation>
 <translation id="1253921432148366685"><ph name="TYPE_1" />, <ph name="TYPE_2" /> (ছিংক কৰা আছে)</translation>
 <translation id="1255086252236620440">খাদ্য প্ৰস্তুত কৰা মিক্সাৰ</translation>
@@ -158,7 +157,6 @@
 <translation id="1294154142200295408">কামাণ্ড লাইনৰ ভিন্নতা</translation>
 <translation id="129553762522093515">শেহতীয়াকৈ বন্ধ কৰা</translation>
 <translation id="1296930489679394997">বিক্ৰী</translation>
-<translation id="129863573139666797"><ph name="BEGIN_LINK" />আপোনাৰ কুকিবোৰ মচি চাওক<ph name="END_LINK" /></translation>
 <translation id="1301227606947843452">লিগেল এক্সট্ৰা</translation>
 <translation id="1301324364792935241">আপোনাৰ সুৰক্ষিত DNS ছেটিংসমূহ পৰীক্ষা কৰক</translation>
 <translation id="1307966114820526988">অপ্ৰচলিত সুবিধাসমূহ</translation>
@@ -1348,7 +1346,6 @@
 <translation id="3767485424735936570">প্ৰশাসকৰ নীতিয়ে এই সমল <ph name="VM_NAME" />ত প্ৰতিলিপি কৰি পে’ষ্ট কৰাটো চুপাৰিছ নকৰে</translation>
 <translation id="3772211998634047851">কাগজ (বণ্ড)</translation>
 <translation id="377451872037045164"><ph name="CREATE_GOOGLE_KEEP_NOTE_FOCUSED_FRIENDLY_MATCH_TEXT" />, Google Keepত ক্ষিপ্ৰভাৱে এটা নতুন টোকা সৃষ্টি কৰিবলৈ প্ৰথমে টেব তাৰ পাছত এণ্টাৰ টিপক</translation>
-<translation id="3778403066972421603">আপোনাৰ Google একাউণ্ট আৰু লগতে এই ডিভাইচত  এই কার্ডখন ছেভ কৰিব খোজেনে?</translation>
 <translation id="378026377453746707">আপুনি ব্ৰাউজ কৰি থকাৰ সময়ত আপোনাক সুৰক্ষিত কৰিবলৈ, Chromeৰ ওচৰত Googleৰ সুৰক্ষিত ব্ৰাউজিঙৰ দৰে বিল্ট-ইন সুৰক্ষা সুবিধা আছে। সুৰক্ষিত ব্ৰাউজিঙে শেহতীয়াকৈ <ph name="BEGIN_LINK" /><ph name="SITE" />ত ক্ষতিকাৰক ছফ্টৱেৰ ধৰা পেলাইছে<ph name="END_LINK" />, যিটো আপুনি যাবলৈ চেষ্টা কৰি থকা ছাইটটোত এম্বেড কৰা আছে।</translation>
 <translation id="3780694243617746492">আউটপুট বিন</translation>
 <translation id="3781428340399460090">উজ্জ্বল গুলপীয়া</translation>
@@ -1953,7 +1950,6 @@
 <translation id="5020776957610079374">বিশ্ব সংগীত</translation>
 <translation id="5021557570875267742">Chromeৰ জৰিয়তে মূল্য ট্ৰেক কৰক</translation>
 <translation id="5023310440958281426">আপোনাৰ প্ৰশাসকৰ নীতি পৰীক্ষা কৰক</translation>
-<translation id="5029568752722684782">প্ৰতিলিপিটো মচক</translation>
 <translation id="5030338702439866405">প্ৰদান কৰোঁতা:</translation>
 <translation id="503069730517007720">"<ph name="SOFTWARE_NAME" />"ৰ বাবে এখন মূল প্ৰমাণপত্ৰৰ আৱশ্যক, কিন্তু সেইখন ইনষ্টল কৰা হোৱা নাই। আপোনাৰ আইটি প্ৰশাসকে এই সমস্যাটো সমাধান কৰিবলৈ "<ph name="SOFTWARE_NAME" />"ৰ বাবে থকা কনফিগাৰেশ্বনৰ নিৰ্দেশনাৱলী চোৱা উচিত। <ph name="FURTHER_EXPLANATION" /></translation>
 <translation id="5031870354684148875">Google অনুবাদৰ বিষয়ে</translation>
@@ -2535,7 +2531,6 @@
 <translation id="6270066318535733958">নাও চালনা</translation>
 <translation id="6272088941196661550">আপোনাৰ Chromeৰ ইতিহাসত প্ৰাসংগিক কাৰ্যকলাপ চাবলৈ আপোনাৰ যাত্ৰা পুনৰ আৰম্ভ কৰক</translation>
 <translation id="6272383483618007430">Google আপডে’ট</translation>
-<translation id="627746635834430766">পৰৱৰ্তী সময়ত দ্ৰুতভাৱে পৰিশোধ কৰিবলৈ আপোনাৰ কাৰ্ড আৰু বিলিঙৰ ঠিকনা নিজৰ Google একাউণ্টত ছেভ কৰক।</translation>
 <translation id="6279183038361895380">আপোনাৰ কাৰ্ছৰটো দেখুৱাবলৈ |<ph name="ACCELERATOR" />| টিপক</translation>
 <translation id="6280223929691119688">এই ঠিকনাটোত পঠিয়াব নোৱাৰি৷ অন্য এটা ঠিকনা বাছনি কৰক।</translation>
 <translation id="6284292079994426700">২৬ x ৩৮ ইঞ্চি</translation>
@@ -3846,7 +3841,6 @@
 <translation id="8922013791253848639">এই ছাইটটোত সদায় বিজ্ঞাপনৰ অনুমতি দিয়ক</translation>
 <translation id="892588693504540538">সোঁফালে ওপৰৰ অংশত পাঞ্চ কৰক</translation>
 <translation id="8930330541574156305">ৰিয়েল ইষ্টেট</translation>
-<translation id="8931333241327730545">আপুনি এই কার্ড নিজৰ Google একাউণ্টত ছেভ কৰিব খোজেনে?</translation>
 <translation id="8932102934695377596">আপোনাৰ ঘড়ীৰ সময় পিছপৰি আছে</translation>
 <translation id="893332455753468063">নাম যোগ কৰক</translation>
 <translation id="8942355029279167844">প্ৰ’ডাক্ট ব্যৱহাৰৰ অভিজ্ঞতা উন্নত কৰিবলৈ আপোনাৰ প্ৰশাসকে <ph name="APP_NAME" />ক ডায়েগন’ষ্টিক্সৰ ডেটা সংগ্ৰহ কৰিবলৈ দিছে। অধিক তথ্যৰ বাবে <ph name="BEGIN_LINK" />https://www.parallels.com/pcep<ph name="END_LINK" /> চাওক।</translation>
diff --git a/components/strings/components_strings_az.xtb b/components/strings/components_strings_az.xtb
index 2342f92e..bb2b257 100644
--- a/components/strings/components_strings_az.xtb
+++ b/components/strings/components_strings_az.xtb
@@ -125,7 +125,6 @@
 <translation id="1243027604378859286">Müəllif:</translation>
 <translation id="1246424317317450637">Qalın</translation>
 <translation id="1247030632403369975">Alüminium</translation>
-<translation id="1250759482327835220">Növbəti dəfə daha sürətli ödəniş etmək üçün kartı, adı və faktura ünvanını Google Hesabınızda yadda saxlayın.</translation>
 <translation id="1252209483516427155">Üst geyimi</translation>
 <translation id="1253921432148366685"><ph name="TYPE_1" />, <ph name="TYPE_2" /> (sinxronlaşdırıldı)</translation>
 <translation id="1255086252236620440">Qida mikserləri</translation>
@@ -158,7 +157,6 @@
 <translation id="1294154142200295408">Əmr xəttinin növləri</translation>
 <translation id="129553762522093515">Son qapadılan</translation>
 <translation id="1296930489679394997">Endirimlər</translation>
-<translation id="129863573139666797"><ph name="BEGIN_LINK" />Kukiləriniz təmizlənir<ph name="END_LINK" /></translation>
 <translation id="1301227606947843452">Hüquqi Ekstra</translation>
 <translation id="1301324364792935241">Təhlükəsiz DNS ayarlarınızı yoxlayın</translation>
 <translation id="1307966114820526988">Ləğv edilmiş funksiya</translation>
@@ -1347,7 +1345,6 @@
 <translation id="3767485424735936570">Bu məzmunun kopyalanması və <ph name="VM_NAME" /> bölməsinə yerləşdirilməsi administrator siyasəti tərəfindən tövsiyə edilmir</translation>
 <translation id="3772211998634047851">Kağız (yüksəkkeyfiyyətli)</translation>
 <translation id="377451872037045164"><ph name="CREATE_GOOGLE_KEEP_NOTE_FOCUSED_FRIENDLY_MATCH_TEXT" />, Tab düyməsi, sonra Enter düyməsinə basaraq Google Keep'də cəld yeni qeyd yaradın</translation>
-<translation id="3778403066972421603">Kartı Google Hesab və cihazda yadda saxlamaq istəyirsiniz?</translation>
 <translation id="378026377453746707">Chrome axtarış zamanı sizi qoruyan Google güvənli baxış kimi daxili güvənlik funksiyalarına malikdir. Bu yaxınlarda Güvənli baxış <ph name="BEGIN_LINK" /><ph name="SITE" /> saytında zərərli proqram təminatı tapıb<ph name="END_LINK" />.</translation>
 <translation id="3780694243617746492">Çıxış qabı</translation>
 <translation id="3781428340399460090">Parlaq Çəhrayı</translation>
@@ -1953,7 +1950,6 @@
 <translation id="5020776957610079374">Dünya musiqisi</translation>
 <translation id="5021557570875267742">Chrome ilə qiymətləri izləyin</translation>
 <translation id="5023310440958281426">Administrator siyasətlərinizi yoxlayın</translation>
-<translation id="5029568752722684782">Kopyanı təmizləyin</translation>
 <translation id="5030338702439866405">Verən qurum:</translation>
 <translation id="503069730517007720">Əsas "<ph name="SOFTWARE_NAME" />" sertifikatı tələb olunur, lakin quraşdırılmayıb. IT administratorunuz bu problemi həll etmək üçün "<ph name="SOFTWARE_NAME" />" konfiqurasiya təlimatlarına baxmalıdır. <ph name="FURTHER_EXPLANATION" /></translation>
 <translation id="5031870354684148875">Google Tərcümə haqqında</translation>
@@ -2536,7 +2532,6 @@
 <translation id="6270066318535733958">Qayıqla səyahət</translation>
 <translation id="6272088941196661550">Chrome tarixçəsində əlaqəli fəaliyyəti görmək üçün baxışa davam edin</translation>
 <translation id="6272383483618007430">Google Güncəlləməsi</translation>
-<translation id="627746635834430766">Növbəti dəfə daha sürətli ödəniş etmək üçün kartı və faktura ünvanını Google Hesabınızda yadda saxlayın.</translation>
 <translation id="6279183038361895380">Kursorunuzu göstərmək üçün |<ph name="ACCELERATOR" />| basın</translation>
 <translation id="6280223929691119688">Bu ünvana çatdırmaq mümkün deyil. Başqa ünvan seçin.</translation>
 <translation id="6284292079994426700">26 x 38 düym</translation>
@@ -3848,7 +3843,6 @@
 <translation id="8922013791253848639">Həmişə bu saytdakı reklamlara icazə verin</translation>
 <translation id="892588693504540538">Yuxarı sağdan deşik açın</translation>
 <translation id="8930330541574156305">Daşınmaz əmlak</translation>
-<translation id="8931333241327730545">Bu kartı Google Hesabınızda yadda saxlamaq istəyirsiniz?</translation>
 <translation id="8932102934695377596">Saatınız geridədir</translation>
 <translation id="893332455753468063">Ad əlavə edin</translation>
 <translation id="8942355029279167844">Admininiz <ph name="APP_NAME" /> tətbiqinə məhsul üzrə təcrübəni yaxşılaşdırmaq üçün diaqnostik datanı toplamaq icazəsi verib. Ətraflı məlumat üçün <ph name="BEGIN_LINK" />https://www.parallels.com/pcep<ph name="END_LINK" /> ünvanına baxın.</translation>
diff --git a/components/strings/components_strings_be.xtb b/components/strings/components_strings_be.xtb
index 4806825..9fbb3ed5 100644
--- a/components/strings/components_strings_be.xtb
+++ b/components/strings/components_strings_be.xtb
@@ -125,7 +125,6 @@
 <translation id="1243027604378859286">Аўтар:</translation>
 <translation id="1246424317317450637">Паўтлусты</translation>
 <translation id="1247030632403369975">Алюміній</translation>
-<translation id="1250759482327835220">Каб наступны раз плаціць хутчэй, захавайце картку, імя і адрас для выстаўлення рахункаў ва Уліковым запісе Google.</translation>
 <translation id="1252209483516427155">Вопратка</translation>
 <translation id="1253921432148366685"><ph name="TYPE_1" />, <ph name="TYPE_2" /> (сінхранізаваныя)</translation>
 <translation id="1255086252236620440">Міксеры</translation>
@@ -158,7 +157,6 @@
 <translation id="1294154142200295408">Варыянты для каманднага радка</translation>
 <translation id="129553762522093515">Нядаўна закрытыя</translation>
 <translation id="1296930489679394997">Продаж</translation>
-<translation id="129863573139666797"><ph name="BEGIN_LINK" />Паспрабуйце выдаліць файлы cookie<ph name="END_LINK" /></translation>
 <translation id="1301227606947843452">Legal Extra</translation>
 <translation id="1301324364792935241">Праверце налады абароненай DNS</translation>
 <translation id="1307966114820526988">Састарэлыя функцыі</translation>
@@ -1350,7 +1348,6 @@
 <translation id="3767485424735936570">Адміністратар не рэкамендуе капіраваць і ўстаўляць гэта змесціва ў <ph name="VM_NAME" /></translation>
 <translation id="3772211998634047851">Папера для дакументаў</translation>
 <translation id="377451872037045164"><ph name="CREATE_GOOGLE_KEEP_NOTE_FOCUSED_FRIENDLY_MATCH_TEXT" />. Каб хутка стварыць новую нататку ў Google Keep, націсніце Tab, затым Enter</translation>
-<translation id="3778403066972421603">Захаваць гэту картку ў вашым Уліковым запісе Google і на гэтай прыладзе?</translation>
 <translation id="378026377453746707">Chrome мае ўбудаваныя функцыі бяспекі, якія абараняюць вас падчас прагляду вэб-старонак, – напрыклад, "Google Бяспечны прагляд". Гэта функцыя нядаўна <ph name="BEGIN_LINK" />выявіла шкоднае праграмнае забеспячэнне на <ph name="SITE" /><ph name="END_LINK" />, убудаванае ў сайт, які вы спрабуеце наведаць.</translation>
 <translation id="3780694243617746492">Выхадны латок</translation>
 <translation id="3781428340399460090">Ярка-ружовы</translation>
@@ -1956,7 +1953,6 @@
 <translation id="5020776957610079374">Музыка з усяго свету</translation>
 <translation id="5021557570875267742">Адсочвайце цэны з Chrome</translation>
 <translation id="5023310440958281426">Праверце палітыкі адміністратара</translation>
-<translation id="5029568752722684782">Выдаліць копію</translation>
 <translation id="5030338702439866405">Хто выдаў</translation>
 <translation id="503069730517007720">Патрабуецца каранёвы сертыфікат для "<ph name="SOFTWARE_NAME" />", але ён не ўсталяваны. Каб выправіць гэту праблему, адміністратар павінен азнаёміцца з інструкцыяй па наладжванні для "<ph name="SOFTWARE_NAME" />". <ph name="FURTHER_EXPLANATION" />.</translation>
 <translation id="5031870354684148875">Пра Перакладчык Google</translation>
@@ -2539,7 +2535,6 @@
 <translation id="6270066318535733958">Лодачны спорт</translation>
 <translation id="6272088941196661550">Пашукаць звязаныя дзеянні ў гісторыі праглядаў Chrome</translation>
 <translation id="6272383483618007430">Абнаўленне Google</translation>
-<translation id="627746635834430766">Каб наступны раз плаціць хутчэй, захавайце картку і адрас для выстаўлення рахункаў ва Уліковым запісе Google.</translation>
 <translation id="6279183038361895380">Націсніце "<ph name="ACCELERATOR" />", каб убачыць курсор</translation>
 <translation id="6280223929691119688">Немагчыма адправіць на гэты адрас. Выберыце іншы адрас.</translation>
 <translation id="6284292079994426700">26 x 38 цаляў</translation>
@@ -3851,7 +3846,6 @@
 <translation id="8922013791253848639">Заўсёды паказваць рэкламу на гэтым сайце</translation>
 <translation id="892588693504540538">Дзірка зверху справа</translation>
 <translation id="8930330541574156305">Нерухомая маёмасць</translation>
-<translation id="8931333241327730545">Захаваць гэту картку ў вашым Уліковым запісе Google?</translation>
 <translation id="8932102934695377596">Ваш гадзіннік спазняецца</translation>
 <translation id="893332455753468063">Дадаць імя</translation>
 <translation id="8942355029279167844">Адміністратар дазволіў праграме "<ph name="APP_NAME" />" збіраць даныя дыягностыкі дзеля ўдасканалення работы прадукту. Дадатковая інфармацыя – па спасылцы <ph name="BEGIN_LINK" /> https://www.parallels.com/pcep<ph name="END_LINK" />.</translation>
diff --git a/components/strings/components_strings_bg.xtb b/components/strings/components_strings_bg.xtb
index 568e4658..462d5199 100644
--- a/components/strings/components_strings_bg.xtb
+++ b/components/strings/components_strings_bg.xtb
@@ -125,7 +125,6 @@
 <translation id="1243027604378859286">Автор:</translation>
 <translation id="1246424317317450637">Удебелен текст</translation>
 <translation id="1247030632403369975">Алуминий</translation>
-<translation id="1250759482327835220">За да платите по-бързо следващия път, запазете картата, името и адреса си за фактуриране в профила си в Google.</translation>
 <translation id="1252209483516427155">Горни дрехи</translation>
 <translation id="1253921432148366685"><ph name="TYPE_1" />, <ph name="TYPE_2" /> (синхронизирани)</translation>
 <translation id="1255086252236620440">Миксери за храна</translation>
@@ -158,7 +157,6 @@
 <translation id="1294154142200295408">Варианти във формат за командния ред</translation>
 <translation id="129553762522093515">Наскоро затворени</translation>
 <translation id="1296930489679394997">Продажби</translation>
-<translation id="129863573139666797"><ph name="BEGIN_LINK" />Опитайте да изчистите „бисквитките“ си<ph name="END_LINK" /></translation>
 <translation id="1301227606947843452">Legal Extra</translation>
 <translation id="1301324364792935241">Проверете настройките си за защитен DNS</translation>
 <translation id="1307966114820526988">Оттеглени функции</translation>
@@ -1351,7 +1349,6 @@
 <translation id="3767485424735936570">Според администраторско правило копирането и поставянето на съдържание в(ъв) „<ph name="VM_NAME" />“ не се препоръчва</translation>
 <translation id="3772211998634047851">Хартия (облигационна)</translation>
 <translation id="377451872037045164"><ph name="CREATE_GOOGLE_KEEP_NOTE_FOCUSED_FRIENDLY_MATCH_TEXT" />. Натиснете Tab и след това Enter, за да създадете бързо бележка в Google Keep</translation>
-<translation id="3778403066972421603">Искате ли тази карта да се запази на устройството и в профила ви в Google?</translation>
 <translation id="378026377453746707">Chrome има вградени функции за безопасност, които ви защитават, докато сърфирате, като например Google Безопасно сърфиране. Безопасно сърфиране наскоро <ph name="BEGIN_LINK" />откри опасен софтуер на <ph name="SITE" /><ph name="END_LINK" />, който е вграден в сайта, който се опитвате да посетите.</translation>
 <translation id="3780694243617746492">Изходен контейнер</translation>
 <translation id="3781428340399460090">ярко розово</translation>
@@ -1957,7 +1954,6 @@
 <translation id="5020776957610079374">Световна музика</translation>
 <translation id="5021557570875267742">Проследяване на цените с Chrome</translation>
 <translation id="5023310440958281426">Проверете правилата на администратора</translation>
-<translation id="5029568752722684782">Изчистване на копието</translation>
 <translation id="5030338702439866405">Издаден от</translation>
 <translation id="503069730517007720">За <ph name="SOFTWARE_NAME" /> се изисква основен сертификат, но такъв не е инсталиран. Системният ви администратор трябва да прегледа инструкциите за конфигуриране на <ph name="SOFTWARE_NAME" />, за да отстрани проблема. <ph name="FURTHER_EXPLANATION" /></translation>
 <translation id="5031870354684148875">Всичко за Google Преводач</translation>
@@ -2540,7 +2536,6 @@
 <translation id="6270066318535733958">Каране на лодка</translation>
 <translation id="6272088941196661550">Възобновете пътешествието си, за да прегледате съответната активност в историята си в Chrome</translation>
 <translation id="6272383483618007430">Google Актуализиране</translation>
-<translation id="627746635834430766">За да платите по-бързо следващия път, запазете картата и адреса си за фактуриране в профила си в Google.</translation>
 <translation id="6279183038361895380">Натиснете |<ph name="ACCELERATOR" />|, за да се покаже курсорът</translation>
 <translation id="6280223929691119688">Този адрес за бърза доставка не се поддържа. Изберете друг.</translation>
 <translation id="6284292079994426700">26 x 38 инча</translation>
@@ -3851,7 +3846,6 @@
 <translation id="8922013791253848639">Рекламите на този сайт да са разрешени винаги</translation>
 <translation id="892588693504540538">Перфориране горе вдясно</translation>
 <translation id="8930330541574156305">Недвижими имоти</translation>
-<translation id="8931333241327730545">Искате ли да запазите тази карта в профила си в Google?</translation>
 <translation id="8932102934695377596">Часовникът ви е назад</translation>
 <translation id="893332455753468063">Добавяне на име</translation>
 <translation id="8942355029279167844">Администраторът ви е разрешил на <ph name="APP_NAME" /> да събира диагностични данни с цел подобряване на практическата работа с продукта. За повече информация вижте <ph name="BEGIN_LINK" />https://www.parallels.com/pcep<ph name="END_LINK" />.</translation>
diff --git a/components/strings/components_strings_bn.xtb b/components/strings/components_strings_bn.xtb
index d306f0f..9a917f1 100644
--- a/components/strings/components_strings_bn.xtb
+++ b/components/strings/components_strings_bn.xtb
@@ -125,7 +125,6 @@
 <translation id="1243027604378859286">লেখক:</translation>
 <translation id="1246424317317450637">বোল্ড</translation>
 <translation id="1247030632403369975">অ্যালুমিনিয়াম</translation>
-<translation id="1250759482327835220">পরেরবার আরও দ্রুত পেমেন্ট করা জন্য আপনার কার্ড, নাম এবং বিলিং ঠিকানাটি Google অ্যাকাউন্টে সেভ করে রাখুন।</translation>
 <translation id="1252209483516427155">বাইরের পোশাক</translation>
 <translation id="1253921432148366685"><ph name="TYPE_1" />, <ph name="TYPE_2" /> (সিঙ্ক হয়েছে)</translation>
 <translation id="1255086252236620440">ফুড মিক্সার</translation>
@@ -158,7 +157,6 @@
 <translation id="1294154142200295408">কম্যান্ড-লাইন ভেরিয়েশন</translation>
 <translation id="129553762522093515">সম্প্রতি বন্ধ হয়েছে</translation>
 <translation id="1296930489679394997">বিক্রয়</translation>
-<translation id="129863573139666797"><ph name="BEGIN_LINK" />আপনার কুকিজ সাফ করে দেখুন<ph name="END_LINK" /></translation>
 <translation id="1301227606947843452">Legal Extra</translation>
 <translation id="1301324364792935241">আপনার সুরক্ষিত DNS সেটিংস চেক করে দেখুন</translation>
 <translation id="1307966114820526988">শীঘ্রই বন্ধ করা হবে এমন ফিচার</translation>
@@ -1352,7 +1350,6 @@
 <translation id="3767485424735936570">অ্যাডমিনিস্ট্রেটর নীতি অনুযায়ী <ph name="VM_NAME" />-এ এই কন্টেন্ট কপি ও পেস্ট না করার সাজেস্ট করা হচ্ছে</translation>
 <translation id="3772211998634047851">পেপার (বন্ড)</translation>
 <translation id="377451872037045164"><ph name="CREATE_GOOGLE_KEEP_NOTE_FOCUSED_FRIENDLY_MATCH_TEXT" />, Google Keep-এ চটপট নতুন নোট তৈরি করতে প্রথমে Tab, তারপরে Enter প্রেস করুন</translation>
-<translation id="3778403066972421603">আপনি কি এই কার্ডটি আপনার Google অ্যাকাউন্টে ও এই ডিভাইসে সেভ করতে চান?</translation>
 <translation id="378026377453746707">আপনি ব্রাউজ করার সময় আপনাকে সুরক্ষিত রাখতে, Chrome-এ বিল্ট-ইন নিরাপত্তা সম্পর্কিত ফিচার আছে, যেমন Google Safe Browsing। Safe Browsing <ph name="BEGIN_LINK" />সম্প্রতি <ph name="SITE" />-এ ক্ষতিকর সফ্টওয়্যার খুঁজে পেয়েছে<ph name="END_LINK" />, যেটি আপনি দেখার চেষ্টা করছেন যে সাইট, তার মধ্যে এম্বেড করা আছে।</translation>
 <translation id="3780694243617746492">আউটপুট বিন</translation>
 <translation id="3781428340399460090">হট গোলাপী</translation>
@@ -1958,7 +1955,6 @@
 <translation id="5020776957610079374">ওয়ার্ল্ড মিউজিক</translation>
 <translation id="5021557570875267742">Chrome ব্যবহার করে দাম ট্র্যাক করুন</translation>
 <translation id="5023310440958281426">আপনার প্রশাসকের নীতিগুলি দেখুন</translation>
-<translation id="5029568752722684782">কপি সাফ করুন</translation>
 <translation id="5030338702439866405">দ্বারা ইস্যু করা</translation>
 <translation id="503069730517007720">"<ph name="SOFTWARE_NAME" />" এর জন্য একটি রুট সার্টিফিকেট প্রয়োজন কিন্তু সেটি ইনস্টল করা নেই। এই সমস্যাটি সমাধান করতে আপনার IT প্রশাসককে "<ph name="SOFTWARE_NAME" />" এর কনফিগারেশন নির্দেশ ভাল করে দেখে নিতে হবে। <ph name="FURTHER_EXPLANATION" /></translation>
 <translation id="5031870354684148875">Google অনুবাদ সম্বন্ধে</translation>
@@ -2540,7 +2536,6 @@
 <translation id="6270066318535733958">বোটিং</translation>
 <translation id="6272088941196661550">Chrome ইতিহাসে প্রাসঙ্গিক অ্যাক্টিভিটি দেখতে সার্চ করা আবার চালু করুন</translation>
 <translation id="6272383483618007430">Google আপডেট</translation>
-<translation id="627746635834430766">পরের বার আরও দ্রুত পেমেন্ট করা জন্য আপনার এই কার্ড এবং বিলিং ঠিকানাটি Google অ্যাকাউন্টে সেভ করে রাখুন।</translation>
 <translation id="6279183038361895380">আপনার কার্সার দেখাতে |<ph name="ACCELERATOR" />| চাপুন</translation>
 <translation id="6280223929691119688">এই ঠিকানায় ডেলিভারি করা যাবে না। অন্য ঠিকানা বেছে নিন।</translation>
 <translation id="6284292079994426700">২৬ x ৩৮ ইঞ্চি</translation>
@@ -3851,7 +3846,6 @@
 <translation id="8922013791253848639">এই সাইটে সবসময় বিজ্ঞাপন দেখানোর অনুমতি দিন</translation>
 <translation id="892588693504540538">উপরের ডানদিকে পাঞ্চ</translation>
 <translation id="8930330541574156305">রিয়েল এস্টেট</translation>
-<translation id="8931333241327730545">আপনি কি আপনার Google অ্যাকাউন্টে এই কার্ড সেভ করতে চান?</translation>
 <translation id="8932102934695377596">আপনার ঘড়ির সময় পিছিয়ে রয়েছে</translation>
 <translation id="893332455753468063">নাম যোগ করুন</translation>
 <translation id="8942355029279167844">আপনার অ্যাডমিন প্রোডাক্ট ব্যবহারের অভিজ্ঞতাকে আরও উন্নত করার লক্ষ্যে <ph name="APP_NAME" />-কে ডায়াগনস্টিক ডেটা সংগ্রহ করার অনুমতি দিয়েছে। আরও তথ্যের জন্য, <ph name="BEGIN_LINK" />https://www.parallels.com/pcep<ph name="END_LINK" /> লিঙ্কে গিয়ে দেখুন।</translation>
diff --git a/components/strings/components_strings_bs.xtb b/components/strings/components_strings_bs.xtb
index aaf8e5a..5e01205 100644
--- a/components/strings/components_strings_bs.xtb
+++ b/components/strings/components_strings_bs.xtb
@@ -125,7 +125,6 @@
 <translation id="1243027604378859286">Autor:</translation>
 <translation id="1246424317317450637">Podebljano</translation>
 <translation id="1247030632403369975">Aluminij</translation>
-<translation id="1250759482327835220">Da sljedeći put brže platite, sačuvajte karticu, ime i adresu za naplatu na svoj Google račun.</translation>
 <translation id="1252209483516427155">Kaputi i jakne</translation>
 <translation id="1253921432148366685"><ph name="TYPE_1" />, <ph name="TYPE_2" /> (sinhronizirano)</translation>
 <translation id="1255086252236620440">Mikseri za hranu</translation>
@@ -158,7 +157,6 @@
 <translation id="1294154142200295408">Varijacije komandne linije</translation>
 <translation id="129553762522093515">Nedavno zatvoreno</translation>
 <translation id="1296930489679394997">Rasprodaje</translation>
-<translation id="129863573139666797"><ph name="BEGIN_LINK" />Pokušajte obrisati kolačiće<ph name="END_LINK" /></translation>
 <translation id="1301227606947843452">Legal Extra</translation>
 <translation id="1301324364792935241">Provjerite postavke sigurnosnog DNS-a</translation>
 <translation id="1307966114820526988">Zastarjele funkcije</translation>
@@ -1351,7 +1349,6 @@
 <translation id="3767485424735936570">U administratorskim pravilima se ne preporučuje kopiranje i lijepljenje ovog sadržaja na operativni sistem <ph name="VM_NAME" /></translation>
 <translation id="3772211998634047851">Papir (bond)</translation>
 <translation id="377451872037045164"><ph name="CREATE_GOOGLE_KEEP_NOTE_FOCUSED_FRIENDLY_MATCH_TEXT" />, pritisnite Tab, a zatim Enter da brzo kreirate novu bilješku u Google Keepu</translation>
-<translation id="3778403066972421603">Želite li sačuvati ovu karticu na svoj Google račun i na ovaj uređaj?</translation>
 <translation id="378026377453746707">Chrome ima ugrađene sigurnosne funkcije koje vas štite prilikom pregledanja, kao što je Sigurno pregledanje na Googleu. Sigurno pregledanje je nedavno <ph name="BEGIN_LINK" />pronašlo štetan softver na web lokaciji <ph name="SITE" /><ph name="END_LINK" />, koja je ugrađena na web lokaciji koju pokušavate posjetiti.</translation>
 <translation id="3780694243617746492">Spremnik izlaza</translation>
 <translation id="3781428340399460090">Vatreno ružičasta</translation>
@@ -1957,7 +1954,6 @@
 <translation id="5020776957610079374">Svjetska muzika</translation>
 <translation id="5021557570875267742">Pratite cijene uz Chrome</translation>
 <translation id="5023310440958281426">Provjerite pravila administratora</translation>
-<translation id="5029568752722684782">Obriši kopiju</translation>
 <translation id="5030338702439866405">Izdavač:</translation>
 <translation id="503069730517007720">Temeljni certifikat za softver "<ph name="SOFTWARE_NAME" />" je obavezan ali nije instaliran. Vaš IT administrator treba pregledati uputstva za konfiguraciju za softver "<ph name="SOFTWARE_NAME" />" radi ispravke ovog problema. <ph name="FURTHER_EXPLANATION" /></translation>
 <translation id="5031870354684148875">O Google Prevodiocu</translation>
@@ -2540,7 +2536,6 @@
 <translation id="6270066318535733958">Vožnja čamcem</translation>
 <translation id="6272088941196661550">Nastavite iskustvo pregledanja da vidite relevantne aktivnosti u historiji Chromea</translation>
 <translation id="6272383483618007430">Google Ažuriranje</translation>
-<translation id="627746635834430766">Da sljedeći put brže izvršite plaćanje, sačuvajte adresu kartice i adresu za naplatu na svoj Google račun.</translation>
 <translation id="6279183038361895380">Pritisnite |<ph name="ACCELERATOR" />| da prikažete kursor</translation>
 <translation id="6280223929691119688">Isporuka na ovu adresu nije moguća. Odaberite drugu adresu.</translation>
 <translation id="6284292079994426700">26 x 38 in</translation>
@@ -3852,7 +3847,6 @@
 <translation id="8922013791253848639">Uvijek omogući oglase na ovoj web lokaciji</translation>
 <translation id="892588693504540538">Bušenje u gornjem desnom uglu</translation>
 <translation id="8930330541574156305">Nekretnine</translation>
-<translation id="8931333241327730545">Želite li sačuvati ovu karticu na svoj Google račun?</translation>
 <translation id="8932102934695377596">Vaš sat kasni</translation>
 <translation id="893332455753468063">Dodaj ime</translation>
 <translation id="8942355029279167844">Vaš administrator je dozvolio aplikaciji <ph name="APP_NAME" /> da prikuplja dijagnostičke podatke radi poboljšanja iskustva s proizvodom. Pogledajte <ph name="BEGIN_LINK" />https://www.parallels.com/pcep<ph name="END_LINK" /> za više informacija.</translation>
diff --git a/components/strings/components_strings_ca.xtb b/components/strings/components_strings_ca.xtb
index 0a3a1fa8..60ef36f 100644
--- a/components/strings/components_strings_ca.xtb
+++ b/components/strings/components_strings_ca.xtb
@@ -125,7 +125,6 @@
 <translation id="1243027604378859286">Autor:</translation>
 <translation id="1246424317317450637">Negreta</translation>
 <translation id="1247030632403369975">Alumini</translation>
-<translation id="1250759482327835220">Perquè la propera vegada puguis pagar més ràpidament, desa la targeta, el nom i l'adreça de facturació al Compte de Google.</translation>
 <translation id="1252209483516427155">Moda d'abric</translation>
 <translation id="1253921432148366685"><ph name="TYPE_1" />, <ph name="TYPE_2" /> (informació sincronitzada)</translation>
 <translation id="1255086252236620440">Mescladores</translation>
@@ -158,7 +157,6 @@
 <translation id="1294154142200295408">Variacions de la línia d'ordres</translation>
 <translation id="129553762522093515">Tancades recentment</translation>
 <translation id="1296930489679394997">Vendes</translation>
-<translation id="129863573139666797"><ph name="BEGIN_LINK" />Esborreu les galetes<ph name="END_LINK" /></translation>
 <translation id="1301227606947843452">Legal Extra</translation>
 <translation id="1301324364792935241">Revisa la configuració de DNS segur</translation>
 <translation id="1307966114820526988">Funcions obsoletes</translation>
@@ -1351,7 +1349,6 @@
 <translation id="3767485424735936570">La política de l'administrador no recomana copiar i enganxar aquest contingut a <ph name="VM_NAME" /></translation>
 <translation id="3772211998634047851">Paper (valors)</translation>
 <translation id="377451872037045164"><ph name="CREATE_GOOGLE_KEEP_NOTE_FOCUSED_FRIENDLY_MATCH_TEXT" />: prem Tab i després Retorn per crear una nota ràpidament a Google Keep</translation>
-<translation id="3778403066972421603">Vols desar aquesta targeta al teu compte de Google i en aquest dispositiu?</translation>
 <translation id="378026377453746707">Chrome té funcions de seguretat integrades que et protegeixen mentre navegues, com ara Navegació segura de Google. Recentment, Navegació segura <ph name="BEGIN_LINK" />ha trobat programari nociu a <ph name="SITE" /><ph name="END_LINK" />, que està inserit al lloc web que proves de visitar.</translation>
 <translation id="3780694243617746492">Safata de sortida</translation>
 <translation id="3781428340399460090">Rosa fúcsia</translation>
@@ -1957,7 +1954,6 @@
 <translation id="5020776957610079374">Música del món</translation>
 <translation id="5021557570875267742">Fes un seguiment dels preus amb Chrome</translation>
 <translation id="5023310440958281426">Consulteu les polítiques de l'administrador</translation>
-<translation id="5029568752722684782">Esborra la còpia</translation>
 <translation id="5030338702439866405">Emès per</translation>
 <translation id="503069730517007720"><ph name="SOFTWARE_NAME" /> requereix un certificat arrel, però no està instal·lat. Per resoldre aquest problema, l'administrador de TI ha de consultar les instruccions per configurar <ph name="SOFTWARE_NAME" />. <ph name="FURTHER_EXPLANATION" /></translation>
 <translation id="5031870354684148875">Sobre el Traductor de Google</translation>
@@ -2540,7 +2536,6 @@
 <translation id="6270066318535733958">Navegació</translation>
 <translation id="6272088941196661550">Reprèn el recorregut per veure activitat rellevant a l'historial de Chrome</translation>
 <translation id="6272383483618007430">Google Update</translation>
-<translation id="627746635834430766">Perquè la propera vegada puguis pagar més ràpidament, desa la targeta i l'adreça de facturació al compte de Google.</translation>
 <translation id="6279183038361895380">Premeu |<ph name="ACCELERATOR" />| per veure el cursor</translation>
 <translation id="6280223929691119688">No es pot entregar a aquesta adreça. Selecciona'n una altra.</translation>
 <translation id="6284292079994426700">26 x 38 polzades</translation>
@@ -3852,7 +3847,6 @@
 <translation id="8922013791253848639">Permet sempre els anuncis en aquest lloc web</translation>
 <translation id="892588693504540538">Encunyació a la part superior dreta</translation>
 <translation id="8930330541574156305">Béns immobles</translation>
-<translation id="8931333241327730545">Voleu desar aquesta targeta al vostre compte de Google?</translation>
 <translation id="8932102934695377596">El rellotge està endarrerit</translation>
 <translation id="893332455753468063">Afegeix un nom</translation>
 <translation id="8942355029279167844">L'administrador ha permès que <ph name="APP_NAME" /> reculli dades de diagnòstic per millorar l'experiència amb el producte. Consulta <ph name="BEGIN_LINK" />https://www.parallels.com/pcep<ph name="END_LINK" /> per obtenir més informació.</translation>
diff --git a/components/strings/components_strings_cs.xtb b/components/strings/components_strings_cs.xtb
index 63a8cb4..35b60d15 100644
--- a/components/strings/components_strings_cs.xtb
+++ b/components/strings/components_strings_cs.xtb
@@ -125,7 +125,6 @@
 <translation id="1243027604378859286">Autor:</translation>
 <translation id="1246424317317450637">Tučné</translation>
 <translation id="1247030632403369975">Hliník</translation>
-<translation id="1250759482327835220">Abyste příště mohli zaplatit rychleji, uložte si kartu, jméno a fakturační adresu do účtu Google.</translation>
 <translation id="1252209483516427155">Svrchní oblečení</translation>
 <translation id="1253921432148366685"><ph name="TYPE_1" />, <ph name="TYPE_2" /> (synchronizováno)</translation>
 <translation id="1255086252236620440">Kuchyňské mixéry</translation>
@@ -158,7 +157,6 @@
 <translation id="1294154142200295408">Varianty pro příkazový řádek</translation>
 <translation id="129553762522093515">Nedávno zavřené</translation>
 <translation id="1296930489679394997">Výprodeje</translation>
-<translation id="129863573139666797"><ph name="BEGIN_LINK" />Zkuste vymazat soubory cookie<ph name="END_LINK" /></translation>
 <translation id="1301227606947843452">Legal Extra</translation>
 <translation id="1301324364792935241">Zkontrolujte nastavení zabezpečeného DNS</translation>
 <translation id="1307966114820526988">Funkce, které již nejsou podporovány</translation>
@@ -1347,7 +1345,6 @@
 <translation id="3767485424735936570">Kopírování a vkládání tohoto obsahu do počítače <ph name="VM_NAME" /> nedoporučují zásady administrátora</translation>
 <translation id="3772211998634047851">Papír (dluhopisový)</translation>
 <translation id="377451872037045164"><ph name="CREATE_GOOGLE_KEEP_NOTE_FOCUSED_FRIENDLY_MATCH_TEXT" />, stisknutím klávesy Tab a poté Enter rychle vytvoříte novou poznámku v aplikaci Google Keep</translation>
-<translation id="3778403066972421603">Chcete tuto kartu uložit do svého účtu Google a do tohoto zařízení?</translation>
 <translation id="378026377453746707">V Chromu jsou vestavěny bezpečnostní funkce, které vás při procházení chrání – například Bezpečné prohlížení Google. Bezpečné prohlížení nedávno nalezlo <ph name="BEGIN_LINK" />škodlivý software na webu <ph name="SITE" /><ph name="END_LINK" />, který je vložen na webu, který se pokoušíte navštívit.</translation>
 <translation id="3780694243617746492">Výstupní přihrádka</translation>
 <translation id="3781428340399460090">Jasně růžová</translation>
@@ -1953,7 +1950,6 @@
 <translation id="5020776957610079374">Světová hudba</translation>
 <translation id="5021557570875267742">Sledování cen v prohlížeči Chrome</translation>
 <translation id="5023310440958281426">Zkontrolujte zásady svého správce</translation>
-<translation id="5029568752722684782">Vymazat kopii</translation>
 <translation id="5030338702439866405">Vydal:</translation>
 <translation id="503069730517007720">Je vyžadován kořenový certifikát pro software <ph name="SOFTWARE_NAME" />, ale není nainstalován. Při řešení tohoto problému by si měl administrátor IT prostudovat pokyny ke konfiguraci softwaru <ph name="SOFTWARE_NAME" />. <ph name="FURTHER_EXPLANATION" /></translation>
 <translation id="5031870354684148875">O Překladači Google</translation>
@@ -2535,7 +2531,6 @@
 <translation id="6270066318535733958">Plavby na lodi</translation>
 <translation id="6272088941196661550">Obnovením cesty zobrazíte příslušnou aktivitu v historii Chromu</translation>
 <translation id="6272383483618007430">Aktualizace Google</translation>
-<translation id="627746635834430766">Abyste příště mohli zaplatit rychleji, uložte si kartu a fakturační adresu do účtu Google.</translation>
 <translation id="6279183038361895380">Kurzor zobrazíte stisknutím klávesy |<ph name="ACCELERATOR" />|</translation>
 <translation id="6280223929691119688">Doručení na tuto adresu není možné. Vyberte jinou adresu.</translation>
 <translation id="6284292079994426700">26 × 38 palců</translation>
@@ -3846,7 +3841,6 @@
 <translation id="8922013791253848639">Na tomto webu reklamy vždy povolovat</translation>
 <translation id="892588693504540538">Děrování vpravo nahoře</translation>
 <translation id="8930330541574156305">Reality</translation>
-<translation id="8931333241327730545">Chcete tuto kartu uložit do účtu Google?</translation>
 <translation id="8932102934695377596">Vaše hodiny se zpožďují</translation>
 <translation id="893332455753468063">Přidání jména</translation>
 <translation id="8942355029279167844">Váš administrátor aplikaci <ph name="APP_NAME" /> povolil shromažďovat diagnostická data ke zlepšování služby. Další informace naleznete na adrese <ph name="BEGIN_LINK" />https://www.parallels.com/pcep<ph name="END_LINK" />.</translation>
diff --git a/components/strings/components_strings_cy.xtb b/components/strings/components_strings_cy.xtb
index 9bfdbd4..35eba88 100644
--- a/components/strings/components_strings_cy.xtb
+++ b/components/strings/components_strings_cy.xtb
@@ -125,7 +125,6 @@
 <translation id="1243027604378859286">Awdur:</translation>
 <translation id="1246424317317450637">Trwm</translation>
 <translation id="1247030632403369975">Alwminiwm</translation>
-<translation id="1250759482327835220">I dalu'n gyflymach y tro nesaf, cadwch eich cerdyn, eich enw a'ch cyfeiriad bilio i'ch Cyfrif Google.</translation>
 <translation id="1252209483516427155">Dillad allanol</translation>
 <translation id="1253921432148366685"><ph name="TYPE_1" />, <ph name="TYPE_2" /> (wedi'u cysoni)</translation>
 <translation id="1255086252236620440">Cymysgwyr Bwyd</translation>
@@ -158,7 +157,6 @@
 <translation id="1294154142200295408">Amrywiadau llinell orchymyn</translation>
 <translation id="129553762522093515">Wedi'u cau'n ddiweddar</translation>
 <translation id="1296930489679394997">Gwerthu</translation>
-<translation id="129863573139666797"><ph name="BEGIN_LINK" />Rhowch gynnig ar glirio eich cwcis<ph name="END_LINK" /></translation>
 <translation id="1301227606947843452">Cyfreithiol Ychwanegol</translation>
 <translation id="1301324364792935241">Gwiriwch eich gosodiadau DNS Diogel</translation>
 <translation id="1307966114820526988">Nodweddion Anghymeradwy</translation>
@@ -1351,7 +1349,6 @@
 <translation id="3767485424735936570">Nid yw'r polisi gweinyddwr yn argymell copïo a gludo'r cynnwys hwn i <ph name="VM_NAME" /></translation>
 <translation id="3772211998634047851">Papur (Bond)</translation>
 <translation id="377451872037045164"><ph name="CREATE_GOOGLE_KEEP_NOTE_FOCUSED_FRIENDLY_MATCH_TEXT" />, pwyswch Tab yna Enter i greu nodyn newydd yn Google Keep yn gyflym</translation>
-<translation id="3778403066972421603">Ydych chi am gadw'r cerdyn hwn i'ch Cyfrif Google ac ar y ddyfais hon?</translation>
 <translation id="378026377453746707">Mae gan Chrome nodweddion diogelwch integredig i'ch amddiffyn tra rydych yn pori, megis Pori'n Ddiogel gyda Google. Daeth Pori'n Ddiogel <ph name="BEGIN_LINK" />o hyd i feddalwedd niweidiol ar <ph name="SITE" /><ph name="END_LINK" /> yn ddiweddar, sydd wedi'i fewnblannu yn y wefan rydych yn ceisio ymweld â hi.</translation>
 <translation id="3780694243617746492">Bin allbwn</translation>
 <translation id="3781428340399460090">Pinc Llachar</translation>
@@ -1956,7 +1953,6 @@
 <translation id="5020776957610079374">Cerddoriaeth y byd</translation>
 <translation id="5021557570875267742">Olrhain prisiau gyda Chrome</translation>
 <translation id="5023310440958281426">Gwiriwch bolisïau’ch gweinyddwr</translation>
-<translation id="5029568752722684782">Clirio'r copi</translation>
 <translation id="5030338702439866405">Cyflwynwyd gan</translation>
 <translation id="503069730517007720">Mae angen tystysgrif wraidd ar gyfer "<ph name="SOFTWARE_NAME" />" ond nid yw wedi'i gosod. Dylai eich gweinyddwr TG edrych ar gyfarwyddiadau ffurfweddu ar gyfer "<ph name="SOFTWARE_NAME" />" i ddatrys y broblem hon. <ph name="FURTHER_EXPLANATION" /></translation>
 <translation id="5031870354684148875">Ynghylch Google Translate</translation>
@@ -2539,7 +2535,6 @@
 <translation id="6270066318535733958">Hwylio</translation>
 <translation id="6272088941196661550">Parhewch â'ch taith i weld gweithgarwch perthnasol yn eich hanes Chrome</translation>
 <translation id="6272383483618007430">Diweddariad Google</translation>
-<translation id="627746635834430766">I dalu'n gyflymach y tro nesaf, cadwch eich cerdyn a'ch cyfeiriad bilio i'ch Cyfrif Google.</translation>
 <translation id="6279183038361895380">Pwyswch |<ph name="ACCELERATOR" />| i ddangos eich cyrchwr</translation>
 <translation id="6280223929691119688">Methu ag anfon i'r cyfeiriad hwn. Dewiswch gyfeiriad gwahanol.</translation>
 <translation id="6284292079994426700">26 x 38 modfedd</translation>
@@ -3850,7 +3845,6 @@
 <translation id="8922013791253848639">Caniatáu hysbysebion ar y wefan hon bob amser</translation>
 <translation id="892588693504540538">Twll ar y dde uchaf</translation>
 <translation id="8930330541574156305">Eiddo tiriog</translation>
-<translation id="8931333241327730545">Ydych chi am gadw'r cerdyn hwn i'ch Cyfrif Google?</translation>
 <translation id="8932102934695377596">Mae eich cloc yn araf</translation>
 <translation id="893332455753468063">Ychwanegu Enw</translation>
 <translation id="8942355029279167844">Mae eich gweinyddwr wedi caniatáu i <ph name="APP_NAME" /> gasglu data diagnosteg i wella profiad y cynnyrch. Gweler <ph name="BEGIN_LINK" />https://www.parallels.com/pcep<ph name="END_LINK" /> am ragor o wybodaeth.</translation>
diff --git a/components/strings/components_strings_da.xtb b/components/strings/components_strings_da.xtb
index 67170c02..8bfc06a 100644
--- a/components/strings/components_strings_da.xtb
+++ b/components/strings/components_strings_da.xtb
@@ -125,7 +125,6 @@
 <translation id="1243027604378859286">Forfatter:</translation>
 <translation id="1246424317317450637">Fed</translation>
 <translation id="1247030632403369975">Aluminium</translation>
-<translation id="1250759482327835220">Gem dit kort, dit navn og din faktureringsadresse på din Google-konto for at betale hurtigere næste gang.</translation>
 <translation id="1252209483516427155">Overtøj</translation>
 <translation id="1253921432148366685"><ph name="TYPE_1" />, <ph name="TYPE_2" /> (synkroniseret)</translation>
 <translation id="1255086252236620440">Foodprocessorer</translation>
@@ -158,7 +157,6 @@
 <translation id="1294154142200295408">Variationer i kommandolinjer</translation>
 <translation id="129553762522093515">Senest lukkede</translation>
 <translation id="1296930489679394997">Salg</translation>
-<translation id="129863573139666797"><ph name="BEGIN_LINK" />Prøv at rydde dine cookies<ph name="END_LINK" /></translation>
 <translation id="1301227606947843452">Legal Extra</translation>
 <translation id="1301324364792935241">Tjek indstillingerne for din sikre DNS</translation>
 <translation id="1307966114820526988">Udfasede funktioner</translation>
@@ -1351,7 +1349,6 @@
 <translation id="3767485424735936570">Administratorpolitikken fraråder at kopiere og indsætte dette indhold i <ph name="VM_NAME" /></translation>
 <translation id="3772211998634047851">Papir (bankpost)</translation>
 <translation id="377451872037045164"><ph name="CREATE_GOOGLE_KEEP_NOTE_FOCUSED_FRIENDLY_MATCH_TEXT" />, tryk på Tab-tasten efterfulgt af Enter for hurtigt at oprette en ny note i Google Keep</translation>
-<translation id="3778403066972421603">Vil du gemme dette kort på din Google-konto og på denne enhed?</translation>
 <translation id="378026377453746707">Chrome har indbyggede sikkerhedsfunktioner, der beskytter dig, når du er på nettet, f.eks. Google Beskyttet browsing. Beskyttet browsing har for nylig <ph name="BEGIN_LINK" />fundet skadelig software på <ph name="SITE" /><ph name="END_LINK" />, og dette website er indlejret på det website, du forsøger at besøge.</translation>
 <translation id="3780694243617746492">Outputbakke</translation>
 <translation id="3781428340399460090">Varm lyserød</translation>
@@ -1957,7 +1954,6 @@
 <translation id="5020776957610079374">Verdensmusik</translation>
 <translation id="5021557570875267742">Hold øje med priser ved hjælp af Chrome</translation>
 <translation id="5023310440958281426">Læs din administrators politikker</translation>
-<translation id="5029568752722684782">Slet kopi</translation>
 <translation id="5030338702439866405">Udstedt af</translation>
 <translation id="503069730517007720">Et rodcertifikat for "<ph name="SOFTWARE_NAME" />" er påkrævet, men ikke installeret. Din IT-administrator bør kigge på konfigurationsvejledningen til "<ph name="SOFTWARE_NAME" />" for at løse dette problem. <ph name="FURTHER_EXPLANATION" /></translation>
 <translation id="5031870354684148875">Om Google Oversæt</translation>
@@ -2540,7 +2536,6 @@
 <translation id="6270066318535733958">Med båd</translation>
 <translation id="6272088941196661550">Genoptag din søgning for at se relevant aktivitet i din Chrome-historik</translation>
 <translation id="6272383483618007430">Google Update</translation>
-<translation id="627746635834430766">Gem dit kort og din faktureringsadresse på din Google-konto for at betale hurtigere næste gang.</translation>
 <translation id="6279183038361895380">Tryk på |<ph name="ACCELERATOR" />| at se markøren</translation>
 <translation id="6280223929691119688">Der kan ikke leveres til denne adresse. Vælg en anden adresse.</translation>
 <translation id="6284292079994426700">26 x 38 tommer</translation>
@@ -3852,7 +3847,6 @@
 <translation id="8922013791253848639">Tillad altid annoncer på dette website</translation>
 <translation id="892588693504540538">Hul øverst til højre</translation>
 <translation id="8930330541574156305">Fast ejendom</translation>
-<translation id="8931333241327730545">Vil du gemme dette kort på din Google-konto?</translation>
 <translation id="8932102934695377596">Dit ur er bagud</translation>
 <translation id="893332455753468063">Tilføj navn</translation>
 <translation id="8942355029279167844">Din administrator har givet <ph name="APP_NAME" /> tilladelse til at indsamle diagnostikdata med henblik på at forbedre brugeroplevelsen i produktet. Du kan få flere oplysninger på <ph name="BEGIN_LINK" />https://www.parallels.com/pcep<ph name="END_LINK" />.</translation>
diff --git a/components/strings/components_strings_de.xtb b/components/strings/components_strings_de.xtb
index fece21e..744af95d 100644
--- a/components/strings/components_strings_de.xtb
+++ b/components/strings/components_strings_de.xtb
@@ -124,7 +124,6 @@
 <translation id="1243027604378859286">Autor:</translation>
 <translation id="1246424317317450637">Fett</translation>
 <translation id="1247030632403369975">Aluminium</translation>
-<translation id="1250759482327835220">Damit Zahlungen zukünftig schneller abgewickelt werden können, speichere deine Kreditkartendaten, deinen Namen und deine Rechnungsadresse in deinem Google-Konto.</translation>
 <translation id="1252209483516427155">Oberbekleidung</translation>
 <translation id="1253921432148366685"><ph name="TYPE_1" />, <ph name="TYPE_2" /> (synchronisiert)</translation>
 <translation id="1255086252236620440">Handrührgeräte</translation>
@@ -157,7 +156,6 @@
 <translation id="1294154142200295408">Befehlszeilen-Varianten</translation>
 <translation id="129553762522093515">Kürzlich geschlossen</translation>
 <translation id="1296930489679394997">Verkauf</translation>
-<translation id="129863573139666797"><ph name="BEGIN_LINK" />Lösche deine Cookies<ph name="END_LINK" /></translation>
 <translation id="1301227606947843452">Legal Extra</translation>
 <translation id="1301324364792935241">Prüfe die Einstellungen für sichere DNS-Abfragen</translation>
 <translation id="1307966114820526988">Eingestellte Funktionen</translation>
@@ -1342,7 +1340,6 @@
 <translation id="3767485424735936570">Die Administratorrichtlinie empfiehlt, keine Inhalte zu kopieren und an dieser Stelle (<ph name="VM_NAME" />) einzufügen</translation>
 <translation id="3772211998634047851">Papier (Hartpost)</translation>
 <translation id="377451872037045164"><ph name="CREATE_GOOGLE_KEEP_NOTE_FOCUSED_FRIENDLY_MATCH_TEXT" /> – drücke die Tabulatortaste und dann die Eingabetaste, um schnell eine neue Notiz in Google Notizen zu erstellen</translation>
-<translation id="3778403066972421603">Möchtest du diese Karte in deinem Google-Konto und auf diesem Gerät speichern?</translation>
 <translation id="378026377453746707">Chrome verfügt über integrierte Sicherheitsfunktionen wie Google Safe Browsing, die dich beim Surfen schützen. Safe Browsing hat kürzlich <ph name="BEGIN_LINK" />Schadsoftware auf <ph name="SITE" /> gefunden<ph name="END_LINK" />, eingebettet in die Website, die du besuchen möchtest.</translation>
 <translation id="3780694243617746492">Ausgabefach</translation>
 <translation id="3781428340399460090">Dunkelrosa</translation>
@@ -1946,7 +1943,6 @@
 <translation id="5020776957610079374">Weltmusik</translation>
 <translation id="5021557570875267742">Preise mit Chrome beobachten</translation>
 <translation id="5023310440958281426">Informiere dich über die von deinem Administrator festgelegten Richtlinien.</translation>
-<translation id="5029568752722684782">Kopie löschen</translation>
 <translation id="5030338702439866405">Ausgestellt von</translation>
 <translation id="503069730517007720">Für „<ph name="SOFTWARE_NAME" />“ ist ein Stammzertifikat erforderlich, das nicht installiert ist. Dein IT-Administrator sollte die Konfigurationsanweisungen für „<ph name="SOFTWARE_NAME" />“ lesen, um das Problem zu beheben. <ph name="FURTHER_EXPLANATION" /></translation>
 <translation id="5031870354684148875">Über Google Übersetzer</translation>
@@ -2527,7 +2523,6 @@
 <translation id="6270066318535733958">Bootsfahrten</translation>
 <translation id="6272088941196661550">Du kannst weiter stöbern, um relevante Aktivitäten in deinem Chrome-Verlauf zu sehen</translation>
 <translation id="6272383483618007430">Google Update</translation>
-<translation id="627746635834430766">Damit Zahlungen zukünftig schneller abgewickelt werden können, speichere deine Kreditkartendaten und deine Rechnungsadresse in deinem Google-Konto.</translation>
 <translation id="6279183038361895380">Zum Einblenden des Cursors |<ph name="ACCELERATOR" />| drücken</translation>
 <translation id="6280223929691119688">Die Lieferadresse wird nicht unterstützt. Bitte wähle eine andere Adresse aus.</translation>
 <translation id="6284292079994426700">26 x 38 Zoll</translation>
@@ -3832,7 +3827,6 @@
 <translation id="8922013791253848639">Werbung auf dieser Website immer zulassen</translation>
 <translation id="892588693504540538">Lochung oben rechts</translation>
 <translation id="8930330541574156305">Immobilien</translation>
-<translation id="8931333241327730545">Möchtest du diese Karte in deinem Google-Konto speichern?</translation>
 <translation id="8932102934695377596">Deine Uhr geht nach</translation>
 <translation id="893332455753468063">Namen hinzufügen</translation>
 <translation id="8942355029279167844">Dein Administrator hat der App "<ph name="APP_NAME" />" erlaubt, Diagnosedaten zu erheben, um die Produktqualität zu verbessern. Weitere Informationen erhältst du unter <ph name="BEGIN_LINK" />https://www.parallels.com/pcep<ph name="END_LINK" />.</translation>
diff --git a/components/strings/components_strings_el.xtb b/components/strings/components_strings_el.xtb
index 2518554..f544513 100644
--- a/components/strings/components_strings_el.xtb
+++ b/components/strings/components_strings_el.xtb
@@ -125,7 +125,6 @@
 <translation id="1243027604378859286">Συντάκτης:</translation>
 <translation id="1246424317317450637">Έντονη γραφή</translation>
 <translation id="1247030632403369975">Αλουμίνιο</translation>
-<translation id="1250759482327835220">Για πιο γρήγορες πληρωμές στο μέλλον, αποθηκεύστε τα στοιχεία της κάρτας σας, το όνομα και τη διεύθυνση χρέωσης στον Λογαριασμό σας Google.</translation>
 <translation id="1252209483516427155">Πανωφόρια</translation>
 <translation id="1253921432148366685"><ph name="TYPE_1" />, <ph name="TYPE_2" /> (συγχρονισμένο)</translation>
 <translation id="1255086252236620440">Μίξερ τροφίμων</translation>
@@ -158,7 +157,6 @@
 <translation id="1294154142200295408">Παραλλαγές γραμμής εντολών</translation>
 <translation id="129553762522093515">Έκλεισαν πρόσφατα</translation>
 <translation id="1296930489679394997">Πωλήσεις</translation>
-<translation id="129863573139666797"><ph name="BEGIN_LINK" />Δοκιμάστε να διαγράψετε τα cookie σας<ph name="END_LINK" /></translation>
 <translation id="1301227606947843452">Legal Extra</translation>
 <translation id="1301324364792935241">Ελέγξτε τις ρυθμίσεις ασφαλούς DNS</translation>
 <translation id="1307966114820526988">Λειτουργίες που καταργήθηκαν</translation>
@@ -1351,7 +1349,6 @@
 <translation id="3767485424735936570">Η αντιγραφή και η επικόλληση αυτού του περιεχομένου στο <ph name="VM_NAME" /> δεν συνιστάται από την πολιτική διαχειριστή.</translation>
 <translation id="3772211998634047851">Χαρτί (Bond)</translation>
 <translation id="377451872037045164"><ph name="CREATE_GOOGLE_KEEP_NOTE_FOCUSED_FRIENDLY_MATCH_TEXT" />, πατήστε το πλήκτρο Tab και έπειτα το πλήκτρο Enter για να δημιουργήσετε γρήγορα μια νέα σημείωση στο Google Keep</translation>
-<translation id="3778403066972421603">Θέλετε να αποθηκεύσετε αυτή την κάρτα στον Λογαριασμό σας Google και σε αυτήν τη συσκευή;</translation>
 <translation id="378026377453746707">Το Chrome διαθέτει ενσωματωμένες λειτουργίες ασφάλειας για την προστασία σας κατά την περιήγηση, όπως η Ασφαλής περιήγηση Google. Η Ασφαλής περιήγηση <ph name="BEGIN_LINK" />εντόπισε πρόσφατα επιβλαβές λογισμικό στον ιστότοπο <ph name="SITE" /><ph name="END_LINK" />, το οποίο είναι ενσωματωμένο στον ιστότοπο που προσπαθείτε να επισκεφτείτε.</translation>
 <translation id="3780694243617746492">Δίσκος εξόδου</translation>
 <translation id="3781428340399460090">Έντονο ροζ</translation>
@@ -1958,7 +1955,6 @@
 <translation id="5020776957610079374">Μουσική του κόσμου</translation>
 <translation id="5021557570875267742">Παρακολούθηση τιμών με το Chrome</translation>
 <translation id="5023310440958281426">Ελέγξτε τις πολιτικές του διαχειριστή</translation>
-<translation id="5029568752722684782">Διαγραφή αντιγράφου</translation>
 <translation id="5030338702439866405">Έκδοση από</translation>
 <translation id="503069730517007720">Απαιτείται πιστοποιητικό ρίζας για το λογισμικό "<ph name="SOFTWARE_NAME" />" αλλά δεν έχει εγκατασταθεί. Ο διαχειριστής IT πρέπει να εξετάσει τις οδηγίες διαμόρφωσης για το λογισμικό "<ph name="SOFTWARE_NAME" />", προκειμένου να διορθώσει αυτό το πρόβλημα. <ph name="FURTHER_EXPLANATION" /></translation>
 <translation id="5031870354684148875">Σχετικά με τη Google Μετάφραση</translation>
@@ -2541,7 +2537,6 @@
 <translation id="6270066318535733958">Tαξίδι με σκάφος</translation>
 <translation id="6272088941196661550">Συνεχίστε τη διαδρομή σας για προβολή σχετικής δραστηριότητας στο Ιστορικό Chrome</translation>
 <translation id="6272383483618007430">Google Update</translation>
-<translation id="627746635834430766">Για πιο γρήγορες πληρωμές, αποθηκεύστε τα στοιχεία της κάρτας και τη διεύθυνση χρέωσης στον Λογαριασμό σας Google.</translation>
 <translation id="6279183038361895380">Πιέστε |<ph name="ACCELERATOR" />| για να εμφανιστεί ο δρομέας</translation>
 <translation id="6280223929691119688">Δεν είναι δυνατή η παράδοση σε αυτήν τη διεύθυνση. Επιλέξτε μια άλλη διεύθυνση.</translation>
 <translation id="6284292079994426700">26 x 38 ίντσες</translation>
@@ -3853,7 +3848,6 @@
 <translation id="8922013791253848639">Να επιτρέπονται πάντα οι διαφημίσεις σε αυτόν τον ιστότοπο</translation>
 <translation id="892588693504540538">Τρύπημα επάνω δεξιά</translation>
 <translation id="8930330541574156305">Ακίνητα</translation>
-<translation id="8931333241327730545">Θέλετε να αποθηκεύσετε αυτή την κάρτα στο Λογαριασμό σας Google;</translation>
 <translation id="8932102934695377596">Το ρολόι σας πάει πίσω</translation>
 <translation id="893332455753468063">Προσθήκη ονόματος</translation>
 <translation id="8942355029279167844">Ο διαχειριστής επέτρεψε στην εφαρμογή <ph name="APP_NAME" /> να συλλέγει διαγνωστικά στοιχεία για τη βελτίωση της εμπειρίας του προϊόντος. Ανατρέξτε στη διεύθυνση <ph name="BEGIN_LINK" />https://www.parallels.com/pcep<ph name="END_LINK" /> για περισσότερες πληροφορίες.</translation>
diff --git a/components/strings/components_strings_en-GB.xtb b/components/strings/components_strings_en-GB.xtb
index 1567b77..4624161c6 100644
--- a/components/strings/components_strings_en-GB.xtb
+++ b/components/strings/components_strings_en-GB.xtb
@@ -125,7 +125,6 @@
 <translation id="1243027604378859286">Author:</translation>
 <translation id="1246424317317450637">Bold</translation>
 <translation id="1247030632403369975">Aluminium</translation>
-<translation id="1250759482327835220">To pay faster next time, save your card, name and billing address to your Google Account.</translation>
 <translation id="1252209483516427155">Outerwear</translation>
 <translation id="1253921432148366685"><ph name="TYPE_1" />, <ph name="TYPE_2" /> (synced)</translation>
 <translation id="1255086252236620440">Food Mixers</translation>
@@ -158,7 +157,6 @@
 <translation id="1294154142200295408">Command-line variations</translation>
 <translation id="129553762522093515">Recently closed</translation>
 <translation id="1296930489679394997">Sales</translation>
-<translation id="129863573139666797"><ph name="BEGIN_LINK" />Try clearing your cookies<ph name="END_LINK" /></translation>
 <translation id="1301227606947843452">Legal Extra</translation>
 <translation id="1301324364792935241">Check your secure DNS settings</translation>
 <translation id="1307966114820526988">Deprecated features</translation>
@@ -1351,7 +1349,6 @@
 <translation id="3767485424735936570">Copying and pasting this content to <ph name="VM_NAME" /> is not recommended by administrator policy</translation>
 <translation id="3772211998634047851">Paper (bond)</translation>
 <translation id="377451872037045164"><ph name="CREATE_GOOGLE_KEEP_NOTE_FOCUSED_FRIENDLY_MATCH_TEXT" />: press Tab then Enter to create a new note in Google Keep quickly</translation>
-<translation id="3778403066972421603">Do you want to save this card to your Google Account and on this device?</translation>
 <translation id="378026377453746707">Chrome has built-in safety features to protect you while you browse, like Google Safe Browsing. Safe Browsing recently <ph name="BEGIN_LINK" />found harmful software on <ph name="SITE" /><ph name="END_LINK" />, which is embedded in the site if you're trying to visit.</translation>
 <translation id="3780694243617746492">Output bin</translation>
 <translation id="3781428340399460090">Hot pink</translation>
@@ -1957,7 +1954,6 @@
 <translation id="5020776957610079374">World music</translation>
 <translation id="5021557570875267742">Track prices with Chrome</translation>
 <translation id="5023310440958281426">Check your administrator's policies</translation>
-<translation id="5029568752722684782">Clear copy</translation>
 <translation id="5030338702439866405">Issued By</translation>
 <translation id="503069730517007720">A root certificate for '<ph name="SOFTWARE_NAME" />' is required but isn’t installed. Your IT administrator should look at configuration instructions for '<ph name="SOFTWARE_NAME" />' to fix this problem. <ph name="FURTHER_EXPLANATION" /></translation>
 <translation id="5031870354684148875">About Google Translate</translation>
@@ -2540,7 +2536,6 @@
 <translation id="6270066318535733958">Boating</translation>
 <translation id="6272088941196661550">Resume your journey to see relevant activity in your Chrome history</translation>
 <translation id="6272383483618007430">Google update</translation>
-<translation id="627746635834430766">To pay faster next time, save your card and billing address to your Google Account.</translation>
 <translation id="6279183038361895380">Press |<ph name="ACCELERATOR" />| to show your cursor</translation>
 <translation id="6280223929691119688">Can’t deliver to this address. Select a different address.</translation>
 <translation id="6284292079994426700">26 in x 38 in</translation>
@@ -3851,7 +3846,6 @@
 <translation id="8922013791253848639">Always allow ads on this site</translation>
 <translation id="892588693504540538">Punch top right</translation>
 <translation id="8930330541574156305">Property</translation>
-<translation id="8931333241327730545">Do you want to save this card to your Google Account?</translation>
 <translation id="8932102934695377596">Your clock is behind</translation>
 <translation id="893332455753468063">Add name</translation>
 <translation id="8942355029279167844">Your administrator has allowed <ph name="APP_NAME" /> to collect diagnostics data to improve the product experience. See <ph name="BEGIN_LINK" />https://www.parallels.com/pcep<ph name="END_LINK" /> for more information.</translation>
diff --git a/components/strings/components_strings_es-419.xtb b/components/strings/components_strings_es-419.xtb
index ecbee2f..bc59a772 100644
--- a/components/strings/components_strings_es-419.xtb
+++ b/components/strings/components_strings_es-419.xtb
@@ -125,7 +125,6 @@
 <translation id="1243027604378859286">Autor:</translation>
 <translation id="1246424317317450637">Negrita</translation>
 <translation id="1247030632403369975">Aluminio</translation>
-<translation id="1250759482327835220">Para realizar pagos de forma más rápida la próxima vez, guarda tu tarjeta, nombre y dirección de facturación en tu Cuenta de Google.</translation>
 <translation id="1252209483516427155">Ropa de abrigo</translation>
 <translation id="1253921432148366685"><ph name="TYPE_1" />, <ph name="TYPE_2" /> (sincronizados)</translation>
 <translation id="1255086252236620440">Batidoras</translation>
@@ -158,7 +157,6 @@
 <translation id="1294154142200295408">Variaciones en la línea de comandos</translation>
 <translation id="129553762522093515">Cerrado recientemente</translation>
 <translation id="1296930489679394997">Ofertas</translation>
-<translation id="129863573139666797"><ph name="BEGIN_LINK" />Intenta borrar tus cookies<ph name="END_LINK" /></translation>
 <translation id="1301227606947843452">Legal extra</translation>
 <translation id="1301324364792935241">Revisa la configuración de DNS seguro</translation>
 <translation id="1307966114820526988">Funciones obsoletas</translation>
@@ -1352,7 +1350,6 @@
 <translation id="3767485424735936570">La política del administrador no recomienda copiar y pegar este contenido en <ph name="VM_NAME" />.</translation>
 <translation id="3772211998634047851">Papel (bond)</translation>
 <translation id="377451872037045164"><ph name="CREATE_GOOGLE_KEEP_NOTE_FOCUSED_FRIENDLY_MATCH_TEXT" />, presiona Tab y, luego, Intro para crear una nueva nota en Google Keep rápidamente</translation>
-<translation id="3778403066972421603">¿Deseas guardar esta tarjeta en tu cuenta de Google y en este dispositivo?</translation>
 <translation id="378026377453746707">Chrome tiene funciones de seguridad integradas para protegerte mientras navegas, como la Navegación segura de Google. Recientemente, la Navegación segura <ph name="BEGIN_LINK" />encontró software dañino en <ph name="SITE" /><ph name="END_LINK" />, que está incorporado en el sitio que intentas visitar.</translation>
 <translation id="3780694243617746492">Bandeja de salida</translation>
 <translation id="3781428340399460090">Fucsia</translation>
@@ -1958,7 +1955,6 @@
 <translation id="5020776957610079374">Música del mundo</translation>
 <translation id="5021557570875267742">Haz un seguimiento de los precios con Chrome</translation>
 <translation id="5023310440958281426">Revisa las políticas del administrador.</translation>
-<translation id="5029568752722684782">Borrar la copia</translation>
 <translation id="5030338702439866405">Proporcionada por</translation>
 <translation id="503069730517007720">Se requiere un certificado raíz para "<ph name="SOFTWARE_NAME" />", pero no está instalado. Tu administrador de TI debe analizar las instrucciones de configuración de "<ph name="SOFTWARE_NAME" />" para corregir este problema. <ph name="FURTHER_EXPLANATION" /></translation>
 <translation id="5031870354684148875">Acerca de Google Traductor</translation>
@@ -2541,7 +2537,6 @@
 <translation id="6270066318535733958">Paseos en barco</translation>
 <translation id="6272088941196661550">Reanuda la exploración para ver actividad pertinente en tu historial de Chrome.</translation>
 <translation id="6272383483618007430">Google Actualización</translation>
-<translation id="627746635834430766">Para realizar pagos de forma más rápida la próxima vez, guarda tu tarjeta y dirección de facturación en tu Cuenta de Google.</translation>
 <translation id="6279183038361895380">Presiona |<ph name="ACCELERATOR" />| para mostrar tu cursor</translation>
 <translation id="6280223929691119688">La dirección de envío no es válida. Selecciona una dirección diferente.</translation>
 <translation id="6284292079994426700">66.04 × 96.52 cm</translation>
@@ -3853,7 +3848,6 @@
 <translation id="8922013791253848639">Permite mostrar anuncios en este sitio</translation>
 <translation id="892588693504540538">Perforación en la esquina superior derecha</translation>
 <translation id="8930330541574156305">Bienes raíces</translation>
-<translation id="8931333241327730545">¿Quieres guardar esta tarjeta en tu cuenta de Google?</translation>
 <translation id="8932102934695377596">El reloj está atrasado</translation>
 <translation id="893332455753468063">Agregar nombre</translation>
 <translation id="8942355029279167844">El administrador permitió que <ph name="APP_NAME" /> recopile datos de diagnóstico para mejorar la experiencia del producto. Para obtener más información, consulta <ph name="BEGIN_LINK" />https://www.parallels.com/pcep<ph name="END_LINK" />.</translation>
diff --git a/components/strings/components_strings_es.xtb b/components/strings/components_strings_es.xtb
index bd8ce771..bf4e698 100644
--- a/components/strings/components_strings_es.xtb
+++ b/components/strings/components_strings_es.xtb
@@ -125,7 +125,6 @@
 <translation id="1243027604378859286">Autor:</translation>
 <translation id="1246424317317450637">Negrita</translation>
 <translation id="1247030632403369975">Aluminio</translation>
-<translation id="1250759482327835220">Para pagar más rápido la próxima vez, guarda tu tarjeta, tu nombre y tu dirección de facturación en tu cuenta de Google.</translation>
 <translation id="1252209483516427155">Abrigos</translation>
 <translation id="1253921432148366685"><ph name="TYPE_1" />, <ph name="TYPE_2" /> (sincronizados)</translation>
 <translation id="1255086252236620440">Batidoras</translation>
@@ -158,7 +157,6 @@
 <translation id="1294154142200295408">Variaciones de la línea de comandos</translation>
 <translation id="129553762522093515">Cerrado recientemente</translation>
 <translation id="1296930489679394997">Ventas</translation>
-<translation id="129863573139666797"><ph name="BEGIN_LINK" />Borrar las cookies<ph name="END_LINK" /></translation>
 <translation id="1301227606947843452">Legal extra</translation>
 <translation id="1301324364792935241">Revisa tu configuración de DNS seguro</translation>
 <translation id="1307966114820526988">Funciones obsoletas</translation>
@@ -1351,7 +1349,6 @@
 <translation id="3767485424735936570">Según la política del administrador, no se recomienda copiar y pegar este contenido en <ph name="VM_NAME" /></translation>
 <translation id="3772211998634047851">Papel (bond)</translation>
 <translation id="377451872037045164"><ph name="CREATE_GOOGLE_KEEP_NOTE_FOCUSED_FRIENDLY_MATCH_TEXT" />, pulsa Tabulador y luego Intro para crear una nueva nota en Google Keep rápidamente</translation>
-<translation id="3778403066972421603">¿Quieres guardar esta tarjeta en tu cuenta de Google y en este dispositivo?</translation>
 <translation id="378026377453746707">Chrome tiene funciones de seguridad integradas para protegerte mientras navegas, como Navegación segura de Google. Hace poco, Navegación segura <ph name="BEGIN_LINK" />detectó software dañino en <ph name="SITE" /><ph name="END_LINK" />, que está insertado en el sitio al que intentas acceder.</translation>
 <translation id="3780694243617746492">Bandeja de salida</translation>
 <translation id="3781428340399460090">Rosa fucsia</translation>
@@ -1957,7 +1954,6 @@
 <translation id="5020776957610079374">Música del mundo</translation>
 <translation id="5021557570875267742">Hacer un seguimiento de los precios con Chrome</translation>
 <translation id="5023310440958281426">Consulta las políticas del administrador</translation>
-<translation id="5029568752722684782">Borrar copia</translation>
 <translation id="5030338702439866405">Emitido por</translation>
 <translation id="503069730517007720">Se necesita un certificado raíz para "<ph name="SOFTWARE_NAME" />", pero no está instalado. El administrador de TI debe comprobar las instrucciones de configuración de "<ph name="SOFTWARE_NAME" />" para solucionar este problema. <ph name="FURTHER_EXPLANATION" /></translation>
 <translation id="5031870354684148875">Informacion del Traductor de Google</translation>
@@ -2540,7 +2536,6 @@
 <translation id="6270066318535733958">Actividades náuticas</translation>
 <translation id="6272088941196661550">Reanuda tu recorrido para ver la actividad relevante de tu historial de Chrome</translation>
 <translation id="6272383483618007430">Google Update</translation>
-<translation id="627746635834430766">Para pagar más rápido la próxima vez, guarda tu tarjeta y tu dirección de facturación en tu cuenta de Google.</translation>
 <translation id="6279183038361895380">Pulsa |<ph name="ACCELERATOR" />| para mostrar el cursor</translation>
 <translation id="6280223929691119688">Los pedidos no se pueden entregar en esta dirección. Selecciona otra.</translation>
 <translation id="6284292079994426700">26x38 pulgadas</translation>
@@ -3851,7 +3846,6 @@
 <translation id="8922013791253848639">Permite los anuncios siempre en este sitio web</translation>
 <translation id="892588693504540538">Perforado en la parte superior derecha</translation>
 <translation id="8930330541574156305">Inmobiliaria</translation>
-<translation id="8931333241327730545">¿Quieres guardar esta tarjeta en tu cuenta de Google?</translation>
 <translation id="8932102934695377596">Tu reloj está atrasado</translation>
 <translation id="893332455753468063">Añade un nombre</translation>
 <translation id="8942355029279167844">Tu administrador ha permitido a <ph name="APP_NAME" /> recoger datos de diagnóstico para mejorar la experiencia de los usuarios con el producto. Visita <ph name="BEGIN_LINK" />https://www.parallels.com/pcep<ph name="END_LINK" /> para consultar más información.</translation>
diff --git a/components/strings/components_strings_et.xtb b/components/strings/components_strings_et.xtb
index aa95942..0ad1272 100644
--- a/components/strings/components_strings_et.xtb
+++ b/components/strings/components_strings_et.xtb
@@ -125,7 +125,6 @@
 <translation id="1243027604378859286">Autor:</translation>
 <translation id="1246424317317450637">Paks</translation>
 <translation id="1247030632403369975">Alumiinium</translation>
-<translation id="1250759482327835220">Kui soovite järgmisel korral kiiremini maksta, salvestage kaart, nimi ja arveldusaadress oma Google'i kontole.</translation>
 <translation id="1252209483516427155">Välisrõivad</translation>
 <translation id="1253921432148366685"><ph name="TYPE_1" />, <ph name="TYPE_2" /> (sünkroonitud)</translation>
 <translation id="1255086252236620440">Mikserid</translation>
@@ -158,7 +157,6 @@
 <translation id="1294154142200295408">Käsurea variatsioonid</translation>
 <translation id="129553762522093515">Viimati suletud</translation>
 <translation id="1296930489679394997">Müük</translation>
-<translation id="129863573139666797"><ph name="BEGIN_LINK" />Kustutage küpsisefailid<ph name="END_LINK" /></translation>
 <translation id="1301227606947843452">Legal Extra</translation>
 <translation id="1301324364792935241">Kontrollige turvalise DNS-i seadeid</translation>
 <translation id="1307966114820526988">Katkestatud toega funktsioonid</translation>
@@ -1351,7 +1349,6 @@
 <translation id="3767485424735936570">Selle sisu kopeerimine ja kleepimine virtuaalmasinasse <ph name="VM_NAME" /> pole administraatori reegliga soovitatav</translation>
 <translation id="3772211998634047851">Paber (võlakirjapaber)</translation>
 <translation id="377451872037045164"><ph name="CREATE_GOOGLE_KEEP_NOTE_FOCUSED_FRIENDLY_MATCH_TEXT" />, rakenduses Google Keep kiirelt uue märkuse loomiseks vajutage tabulaatorit ja seejärel sisestusklahvi</translation>
-<translation id="3778403066972421603">Kas soovite selle kaardi salvestada oma Google'i kontole ja sellesse seadmesse?</translation>
 <translation id="378026377453746707">Chrome'il on sisseehitatud ohutusfunktsioonid, mis kaitsevad teid sirvimise ajal, näiteks Google'i ohutu sirvimine. Google'i ohutu sirvimine <ph name="BEGIN_LINK" />leidis hiljuti saidilt <ph name="SITE" /> kahjulikku tarkvara<ph name="END_LINK" />, mis manustatakse saidile, kui proovite seda külastada.</translation>
 <translation id="3780694243617746492">Väljundsalv</translation>
 <translation id="3781428340399460090">Erkroosa</translation>
@@ -1957,7 +1954,6 @@
 <translation id="5020776957610079374">Maailmamuusika</translation>
 <translation id="5021557570875267742">Hindade jälgimine Chrome'iga</translation>
 <translation id="5023310440958281426">Tutvuge administraatori reeglitega</translation>
-<translation id="5029568752722684782">Kustuta koopia</translation>
 <translation id="5030338702439866405">Väljaandja</translation>
 <translation id="503069730517007720">Vaja on tarkvara „<ph name="SOFTWARE_NAME" />” juursertifikaati, kuid see pole installitud. Teie IT-administraator peaks probleemi lahendamiseks tarkvara „<ph name="SOFTWARE_NAME" />” seadistamisjuhised üle vaatama. <ph name="FURTHER_EXPLANATION" /></translation>
 <translation id="5031870354684148875">Teave Google'i tõlke kohta</translation>
@@ -2540,7 +2536,6 @@
 <translation id="6270066318535733958">Paadi- ja laevasõit</translation>
 <translation id="6272088941196661550">Jätkake oma teekonda, et näha Chrome'i ajaloos asjakohaseid tegevusi</translation>
 <translation id="6272383483618007430">Google Update</translation>
-<translation id="627746635834430766">Kui soovite järgmisel korral kiiremini maksta, salvestage kaart ja arveldusaadress oma Google'i kontole.</translation>
 <translation id="6279183038361895380">Kursori kuvamiseks vajutage klahvi |<ph name="ACCELERATOR" />|</translation>
 <translation id="6280223929691119688">Sellele aadressile ei saa kaupa kohale toimetada. Valige mõni teine aadress.</translation>
 <translation id="6284292079994426700">26 × 38 tolli</translation>
@@ -3851,7 +3846,6 @@
 <translation id="8922013791253848639">Luba sellel saidil alati reklaamid</translation>
 <translation id="892588693504540538">Auk ülal paremal</translation>
 <translation id="8930330541574156305">Kinnisvara</translation>
-<translation id="8931333241327730545">Kas soovite selle kaardi salvestada oma Google'i kontole?</translation>
 <translation id="8932102934695377596">Teie kell on taga</translation>
 <translation id="893332455753468063">Nime lisamine</translation>
 <translation id="8942355029279167844">Teie administraator on lubanud rakendusel <ph name="APP_NAME" /> diagnostikaandmeid koguda, et toote kasutuskogemust täiustada. Lisateavet vaadake saidilt <ph name="BEGIN_LINK" />https://www.parallels.com/pcep<ph name="END_LINK" />.</translation>
diff --git a/components/strings/components_strings_eu.xtb b/components/strings/components_strings_eu.xtb
index 5b51bb9..9089804 100644
--- a/components/strings/components_strings_eu.xtb
+++ b/components/strings/components_strings_eu.xtb
@@ -125,7 +125,6 @@
 <translation id="1243027604378859286">Egilea:</translation>
 <translation id="1246424317317450637">Lodia</translation>
 <translation id="1247030632403369975">Aluminioa</translation>
-<translation id="1250759482327835220">Hurrengoan bizkorrago ordaintzeko, gorde txartela, izena eta fakturazio-helbidea Google-ko kontuan.</translation>
 <translation id="1252209483516427155">Berokiak</translation>
 <translation id="1253921432148366685"><ph name="TYPE_1" />, <ph name="TYPE_2" /> (sinkronizatuta)</translation>
 <translation id="1255086252236620440">Janari-nahasgailuak</translation>
@@ -158,7 +157,6 @@
 <translation id="1294154142200295408">Agindu-lerroaren aldaerak</translation>
 <translation id="129553762522093515">Itxitako azkenak</translation>
 <translation id="1296930489679394997">Salmentak</translation>
-<translation id="129863573139666797"><ph name="BEGIN_LINK" />Saiatu cookieak garbituta<ph name="END_LINK" /></translation>
 <translation id="1301227606947843452">Lege-kontuetarako (handiagoa)</translation>
 <translation id="1301324364792935241">Egiaztatu DNS ezarpen seguruak</translation>
 <translation id="1307966114820526988">Eginbide zaharkituak</translation>
@@ -1345,7 +1343,6 @@
 <translation id="3767485424735936570">Administratzailearen gidalerroek ez dute gomendatzen edukia kopiatu eta <ph name="VM_NAME" /> makina birtualean itsastea</translation>
 <translation id="3772211998634047851">Papera (bonu-papera)</translation>
 <translation id="377451872037045164"><ph name="CREATE_GOOGLE_KEEP_NOTE_FOCUSED_FRIENDLY_MATCH_TEXT" />: sakatu tabuladorea eta, ondoren, "Sartu", Google Keep-en ohar bat bizkor sortzeko</translation>
-<translation id="3778403066972421603">Google-ko kontuan eta gailu honetan gorde nahi duzu txartela?</translation>
 <translation id="378026377453746707">Chrome-k segurtasun-eginbide integratuak ditu, arakatzen duzun bitartean babesten zaituztenak. Google-ren Arakatze segurua eginbide horietako bat da. Duela gutxi, arakatze seguruak <ph name="BEGIN_LINK" />software kaltegarria aurkitu du <ph name="SITE" /> webgunean<ph name="END_LINK" />, bisitatu nahi duzun webgunean kapsulatuta dagoena.</translation>
 <translation id="3780694243617746492">Papera irteteko erretilua</translation>
 <translation id="3781428340399460090">Arrosa bizia</translation>
@@ -1951,7 +1948,6 @@
 <translation id="5020776957610079374">Munduko musika</translation>
 <translation id="5021557570875267742">Egin prezioen jarraipena Chrome-ren bidez</translation>
 <translation id="5023310440958281426">Egiaztatu administratzailearen gidalerroak</translation>
-<translation id="5029568752722684782">Garbitu kopia</translation>
 <translation id="5030338702439866405">Jaulkitzailea:</translation>
 <translation id="503069730517007720">"<ph name="SOFTWARE_NAME" />" softwareak instalatuta ez dagoen erroko ziurtagiri bat behar du. Arazoa konpontzeko, IKT saileko administratzaileak "<ph name="SOFTWARE_NAME" />" bilatu behar du konfigurazio-argibideetan. <ph name="FURTHER_EXPLANATION" /></translation>
 <translation id="5031870354684148875">Google Translate zerbitzuari buruz</translation>
@@ -2533,7 +2529,6 @@
 <translation id="6270066318535733958">Txalupan ibiltzea</translation>
 <translation id="6272088941196661550">Berrekin bilaketa-ibilbideari Chrome-ko historian dauden erlazionatutako jarduerak ikusteko</translation>
 <translation id="6272383483618007430">Google-ren eguneratzea</translation>
-<translation id="627746635834430766">Hurrengoan bizkorrago ordaintzeko, gorde txartela eta fakturazio-helbidea Google-ko kontuan.</translation>
 <translation id="6279183038361895380">Kurtsorea ikusteko, sakatu |<ph name="ACCELERATOR" />|</translation>
 <translation id="6280223929691119688">Ezin da entregatu helbide horretan. Hautatu beste helbide bat.</translation>
 <translation id="6284292079994426700">66,04 × 96,52 cm (26 × 38 in)</translation>
@@ -3843,7 +3838,6 @@
 <translation id="8922013791253848639">Eman beti iragarkiak webgune honetan erakusteko baimena</translation>
 <translation id="892588693504540538">Zulo bat goian, eskuinetara</translation>
 <translation id="8930330541574156305">Higiezinak</translation>
-<translation id="8931333241327730545">Txartela Google-ko kontuan gorde nahi duzu?</translation>
 <translation id="8932102934695377596">Erlojua atzeratuta duzu</translation>
 <translation id="893332455753468063">Gehitu izena</translation>
 <translation id="8942355029279167844">Administratzaileak diagnostiko-datuak biltzeko baimena eman dio <ph name="APP_NAME" /> aplikazioari, produktuaren esperientzia hobetzeko helburuarekin. Informazio gehiago lortzeko, joan <ph name="BEGIN_LINK" />https://www.parallels.com/pcep<ph name="END_LINK" /> helbidera.</translation>
diff --git a/components/strings/components_strings_fa.xtb b/components/strings/components_strings_fa.xtb
index 1e9181e..1993d6b0 100644
--- a/components/strings/components_strings_fa.xtb
+++ b/components/strings/components_strings_fa.xtb
@@ -125,7 +125,6 @@
 <translation id="1243027604378859286">نویسنده:</translation>
 <translation id="1246424317317450637">سیاه</translation>
 <translation id="1247030632403369975">آلومینیوم</translation>
-<translation id="1250759482327835220">‏برای اینکه دفعه بعد پرداخت سریع‌تری داشته باشید، اطلاعات کارت، نام و نشانی صورت‌حسابتان را در حساب Google خود ذخیره کنید.</translation>
 <translation id="1252209483516427155">لباس بیرون</translation>
 <translation id="1253921432148366685"><ph name="TYPE_1" />، <ph name="TYPE_2" /> (همگام‌سازی‌شده)</translation>
 <translation id="1255086252236620440">مخلوط‌کن غذا</translation>
@@ -158,7 +157,6 @@
 <translation id="1294154142200295408">انواع مختلف خط فرمان</translation>
 <translation id="129553762522093515">اخیراً بسته‌شده</translation>
 <translation id="1296930489679394997">فروش</translation>
-<translation id="129863573139666797"><ph name="BEGIN_LINK" />کوکی‌ها را پاک کنید<ph name="END_LINK" /></translation>
 <translation id="1301227606947843452">حقوقی بزرگ</translation>
 <translation id="1301324364792935241">‏تنظیمات DNS امن را بررسی کنید</translation>
 <translation id="1307966114820526988">ویژگی‌های منسوخ‌شده</translation>
@@ -1351,7 +1349,6 @@
 <translation id="3767485424735936570">براساس خط‌مشی سرپرست، کپی کردن و جای‌گذاری این محتوا در <ph name="VM_NAME" /> توصیه نمی‌شود</translation>
 <translation id="3772211998634047851">کاغذ (باند)</translation>
 <translation id="377451872037045164">‏<ph name="CREATE_GOOGLE_KEEP_NOTE_FOCUSED_FRIENDLY_MATCH_TEXT" />؛ برای ایجاد سریع یادداشت جدید در Google Keep، کلید «جهش» و سپس «ورود» را فشار دهید</translation>
-<translation id="3778403066972421603">‏آیا می‌خواهید این کارت در حساب Google شما و این دستگاه ذخیره شود؟</translation>
 <translation id="378026377453746707">‏Chrome دارای ویژگی‌های ایمنی داخلی است که از شما درحین مرور محافظت می‌کند، مثل «مرور ایمن Google». «مرور ایمن» اخیراً <ph name="BEGIN_LINK" />نرم‌افزار مخربی در <ph name="SITE" /> پیدا کرده است<ph name="END_LINK" />، که این نرم‌افزار مخرب در سایتی که می‌خواهید بازدید کنید جاسازی شده است.</translation>
 <translation id="3780694243617746492">مخزن خروجی</translation>
 <translation id="3781428340399460090">صورتی پررنگ</translation>
@@ -1957,7 +1954,6 @@
 <translation id="5020776957610079374">موسیقی ملل</translation>
 <translation id="5021557570875267742">‏ردیابی قیمت‌ها با Chrome</translation>
 <translation id="5023310440958281426">خط‌مشی‌های سرپرست سیستمتان را بررسی کنید</translation>
-<translation id="5029568752722684782">پاک کردن نسخه کپی</translation>
 <translation id="5030338702439866405">صدور توسط</translation>
 <translation id="503069730517007720">برای «<ph name="SOFTWARE_NAME" />» گواهینامه ریشه‌ لازم است اما نصب نشده است. برای رفع این مشکل، سرپرست فناوری اطلاعات شما باید دستورالعمل‌های پیکربندی مربوط به «<ph name="SOFTWARE_NAME" />» را بررسی کند. <ph name="FURTHER_EXPLANATION" /></translation>
 <translation id="5031870354684148875">‏درباره «ترجمه Google»‬</translation>
@@ -2540,7 +2536,6 @@
 <translation id="6270066318535733958">قایق‌رانی</translation>
 <translation id="6272088941196661550">‏سفر جستجو را ازسر بگیرید تا فعالیت‌های مرتبط را در سابقه Chrome ببینید</translation>
 <translation id="6272383483618007430">Google Update</translation>
-<translation id="627746635834430766">‏برای اینکه دفعات بعد پرداخت سریع‌تری داشته باشید، اطلاعات کارت و نشانی صورت‌حسابتان را در حساب Google خود ذخیره کنید.</translation>
 <translation id="6279183038361895380">برای نمایش نشان‌گر |<ph name="ACCELERATOR" />| را فشار دهید</translation>
 <translation id="6280223929691119688">تحویل به این نشانی ممکن نیست. نشانی دیگری را انتخاب کنید.</translation>
 <translation id="6284292079994426700">۳۸ × ۲۶ اینچ</translation>
@@ -3851,7 +3846,6 @@
 <translation id="8922013791253848639">آگهی‌ها همیشه در این سایت مجاز باشند</translation>
 <translation id="892588693504540538">سوراخ در بالا سمت راست</translation>
 <translation id="8930330541574156305">املاک و مستغلات</translation>
-<translation id="8931333241327730545">‏می‌خواهید این کارت را در حساب Google خود ذخیره کنید؟</translation>
 <translation id="8932102934695377596">ساعت شما عقب است</translation>
 <translation id="893332455753468063">افزودن نام</translation>
 <translation id="8942355029279167844">‏سرپرستتان به <ph name="APP_NAME" /> اجازه داده است تا برای بهبود دادن تجربه استفاده از محصول، داده‌های عیب‌یابی را جمع‌آوری کند. برای دریافت اطلاعات بیشتر، به <ph name="BEGIN_LINK" />https://www.parallels.com/pcep<ph name="END_LINK" /> بروید.</translation>
diff --git a/components/strings/components_strings_fi.xtb b/components/strings/components_strings_fi.xtb
index 379608a..ba7e038 100644
--- a/components/strings/components_strings_fi.xtb
+++ b/components/strings/components_strings_fi.xtb
@@ -125,7 +125,6 @@
 <translation id="1243027604378859286">Tekijä:</translation>
 <translation id="1246424317317450637">Lihavoitu</translation>
 <translation id="1247030632403369975">Alumiini</translation>
-<translation id="1250759482327835220">Jos haluat maksaa nopeammin ensi kerralla, tallenna kortti, nimi ja laskutusosoite Google-tilillesi.</translation>
 <translation id="1252209483516427155">Ulkoiluvaatteet</translation>
 <translation id="1253921432148366685"><ph name="TYPE_1" />, <ph name="TYPE_2" /> (synkronoitu)</translation>
 <translation id="1255086252236620440">Sähkövatkaimet</translation>
@@ -158,7 +157,6 @@
 <translation id="1294154142200295408">Komentorivin muunnelmat</translation>
 <translation id="129553762522093515">Hiljattain suljetut välilehdet</translation>
 <translation id="1296930489679394997">Myynti</translation>
-<translation id="129863573139666797"><ph name="BEGIN_LINK" />Tyhjennä evästeet.<ph name="END_LINK" /></translation>
 <translation id="1301227606947843452">Legal Extra</translation>
 <translation id="1301324364792935241">Tarkista suojatun DNS:n asetukset</translation>
 <translation id="1307966114820526988">Käytöstä poistetut ominaisuudet</translation>
@@ -1352,7 +1350,6 @@
 <translation id="3767485424735936570">Järjestelmänvalvojan käytännössä ei suositella tämän sisällön kopioimista ja liittämistä tänne: <ph name="VM_NAME" /></translation>
 <translation id="3772211998634047851">Paperi (kirjepaperi)</translation>
 <translation id="377451872037045164"><ph name="CREATE_GOOGLE_KEEP_NOTE_FOCUSED_FRIENDLY_MATCH_TEXT" />, luo uusi muistiinpano nopeasti Google Keepissa painamalla sarkainta ja sitten Enter</translation>
-<translation id="3778403066972421603">Haluatko tallentaa tämän kortin Google-tilille ja tälle laitteelle?</translation>
 <translation id="378026377453746707">Chromessa on sisäänrakennettuja turvallisuusominaisuuksia, jotka suojaavat sinua selaamisen aikana. Yksi niistä on Googlen selaussuoja. Selaussuoja <ph name="BEGIN_LINK" />löysi äskettäin haittaohjelmia osoitteesta <ph name="SITE" /><ph name="END_LINK" />. Se on upotettu sivustolle, jolle yrität siirtyä.</translation>
 <translation id="3780694243617746492">Tulostuslokero</translation>
 <translation id="3781428340399460090">Pinkki</translation>
@@ -1958,7 +1955,6 @@
 <translation id="5020776957610079374">Maailmanmusiikki</translation>
 <translation id="5021557570875267742">Seuraa hintoja Chromen avulla</translation>
 <translation id="5023310440958281426">Tarkista järjestelmänvalvojan käytännöt</translation>
-<translation id="5029568752722684782">Poista kopio</translation>
 <translation id="5030338702439866405">Myöntänyt</translation>
 <translation id="503069730517007720">Ohjelmiston <ph name="SOFTWARE_NAME" /> juurivarmennetta edellytetään, mutta sitä ei ole asennettu. IT-järjestelmänvalvojan on tutustuttava ohjelmiston <ph name="SOFTWARE_NAME" /> määritysohjeisiin, jotta hän voi korjata tämän ongelman. <ph name="FURTHER_EXPLANATION" /></translation>
 <translation id="5031870354684148875">Tietoja Google-kääntäjästä</translation>
@@ -2541,7 +2537,6 @@
 <translation id="6270066318535733958">Veneily</translation>
 <translation id="6272088941196661550">Jatka toimintoa, niin näet oleelliset tapahtumat Chrome-historiassasi</translation>
 <translation id="6272383483618007430">Google-päivitys</translation>
-<translation id="627746635834430766">Jos haluat maksaa nopeammin ensi kerralla, tallenna kortti ja laskutusosoite Google-tilillesi.</translation>
 <translation id="6279183038361895380">Näytä kursori painamalla |<ph name="ACCELERATOR" />|.</translation>
 <translation id="6280223929691119688">Toimitus ei onnistu tähän osoitteeseen. Valitse eri osoite.</translation>
 <translation id="6284292079994426700">26 x 38 tuumaa</translation>
@@ -3853,7 +3848,6 @@
 <translation id="8922013791253848639">Salli aina mainokset tällä sivustolla.</translation>
 <translation id="892588693504540538">Reikä oikeassa yläkulmassa</translation>
 <translation id="8930330541574156305">Kiinteistöala</translation>
-<translation id="8931333241327730545">Haluatko tallentaa tämän kortin Google-tilillesi?</translation>
 <translation id="8932102934695377596">Kellosi jätättää</translation>
 <translation id="893332455753468063">Lisää nimi</translation>
 <translation id="8942355029279167844"><ph name="APP_NAME" /> kerää järjestelmänvalvojan luvalla diagnostiikkadataa tuotteen käyttökokemuksen parantamiseksi. Katso lisätietoja osoitteesta <ph name="BEGIN_LINK" />https://www.parallels.com/pcep<ph name="END_LINK" />.</translation>
diff --git a/components/strings/components_strings_fil.xtb b/components/strings/components_strings_fil.xtb
index dfd2d39..ab9b272 100644
--- a/components/strings/components_strings_fil.xtb
+++ b/components/strings/components_strings_fil.xtb
@@ -125,7 +125,6 @@
 <translation id="1243027604378859286">May-akda:</translation>
 <translation id="1246424317317450637">Bold</translation>
 <translation id="1247030632403369975">Aluminum</translation>
-<translation id="1250759482327835220">Para mas mabilis na makapagbayad sa susunod, i-save ang iyong card, pangalan, at billing address sa Google Account mo.</translation>
 <translation id="1252209483516427155">Panlabas na Kasuotan</translation>
 <translation id="1253921432148366685"><ph name="TYPE_1" />, <ph name="TYPE_2" /> (naka-sync)</translation>
 <translation id="1255086252236620440">Mga Food Mixer</translation>
@@ -158,7 +157,6 @@
 <translation id="1294154142200295408">Mga variation ng command-line</translation>
 <translation id="129553762522093515">Kamakailang isinara</translation>
 <translation id="1296930489679394997">Sales</translation>
-<translation id="129863573139666797"><ph name="BEGIN_LINK" />Subukang i-clear ang iyong cookies<ph name="END_LINK" /></translation>
 <translation id="1301227606947843452">Legal Extra</translation>
 <translation id="1301324364792935241">Suriin ang iyong mga setting ng Secure na DNS</translation>
 <translation id="1307966114820526988">Mga Hindi na Ginagamit na Feature</translation>
@@ -1351,7 +1349,6 @@
 <translation id="3767485424735936570">Hindi inirerekomenda ng patakaran ng administrator ang pagkopya at pag-paste ng content na ito sa <ph name="VM_NAME" /></translation>
 <translation id="3772211998634047851">Papel (Bond)</translation>
 <translation id="377451872037045164"><ph name="CREATE_GOOGLE_KEEP_NOTE_FOCUSED_FRIENDLY_MATCH_TEXT" />, pindutin ang Tab at pagkatapos ay ang Enter para gumawa ng bagong tala sa Google Keep nang mabilis</translation>
-<translation id="3778403066972421603">Gusto mo bang i-save ang card na ito sa iyong Google Account at sa device na ito?</translation>
 <translation id="378026377453746707">May mga built-in na feature na pangkaligtasan ang Chrome para maprotektahan ka habang nagba-browse ka, tulad ng Ligtas na Pag-browse sa Google. Kamakailang <ph name="BEGIN_LINK" />nakakita ng mapanganib na software sa <ph name="SITE" /><ph name="END_LINK" /> ang Ligtas na Pag-browse, na naka-embed sa site na sinusubukan mong bisitahin.</translation>
 <translation id="3780694243617746492">Output bin</translation>
 <translation id="3781428340399460090">Hot Pink</translation>
@@ -1957,7 +1954,6 @@
 <translation id="5020776957610079374">Musika ng mundo</translation>
 <translation id="5021557570875267742">I-track ang mga presyo gamit ang Chrome</translation>
 <translation id="5023310440958281426">Suriin ang mga patakaran ng iyong administrator</translation>
-<translation id="5029568752722684782">I-clear ang kopya</translation>
 <translation id="5030338702439866405">Ibinigay Ni</translation>
 <translation id="503069730517007720">Kinakailangan ang root certificate para sa "<ph name="SOFTWARE_NAME" />" ngunit hindi ito naka-install. Dapat tingnan ng IT administrator ang mga tagubilin sa pag-configure para sa "<ph name="SOFTWARE_NAME" />" upang maayos ang problemang ito. <ph name="FURTHER_EXPLANATION" /></translation>
 <translation id="5031870354684148875">Tungkol sa Google Translate</translation>
@@ -2540,7 +2536,6 @@
 <translation id="6270066318535733958">Pamamangka</translation>
 <translation id="6272088941196661550">Ipagpatuloy ang iyong journey para makakita ng nauugnay na aktibidad sa history mo sa Chrome</translation>
 <translation id="6272383483618007430">Google Update</translation>
-<translation id="627746635834430766">Para mas mabilis na makapagbayad sa susunod, i-save ang iyong card at billing address sa Google Account mo.</translation>
 <translation id="6279183038361895380">Pindutin ang |<ph name="ACCELERATOR" />| upang ipakita ang iyong cursor</translation>
 <translation id="6280223929691119688">Hindi maaaring maghatid sa address na ito. Pumili ng ibang address.</translation>
 <translation id="6284292079994426700">26 x 38 in</translation>
@@ -3851,7 +3846,6 @@
 <translation id="8922013791253848639">Palaging payagan ang mga ad sa site na ito</translation>
 <translation id="892588693504540538">Punch top right</translation>
 <translation id="8930330541574156305">Real estate</translation>
-<translation id="8931333241327730545">Gusto mo bang i-save ang card na ito sa iyong Google Account?</translation>
 <translation id="8932102934695377596">Nahuhuli ang iyong orasan</translation>
 <translation id="893332455753468063">Magdagdag ng Pangalan</translation>
 <translation id="8942355029279167844">Pinayagan ng iyong administrator ang <ph name="APP_NAME" /> na mangolekta ng data ng mga diagnostic para mapahusay ang karanasan sa produkto. Tingnan ang <ph name="BEGIN_LINK" />https://www.parallels.com/pcep<ph name="END_LINK" /> para sa higit pang impormasyon.</translation>
diff --git a/components/strings/components_strings_fr-CA.xtb b/components/strings/components_strings_fr-CA.xtb
index 78c190c1..dd18025 100644
--- a/components/strings/components_strings_fr-CA.xtb
+++ b/components/strings/components_strings_fr-CA.xtb
@@ -124,7 +124,6 @@
 <translation id="1243027604378859286">Auteur :</translation>
 <translation id="1246424317317450637">Gras</translation>
 <translation id="1247030632403369975">Aluminium</translation>
-<translation id="1250759482327835220">Pour accélérer le paiement la prochaine fois, enregistrez votre carte, votre nom et votre adresse de facturation dans votre compte Google.</translation>
 <translation id="1252209483516427155">Vêtements d'extérieur</translation>
 <translation id="1253921432148366685"><ph name="TYPE_1" />, <ph name="TYPE_2" /> (synchronisés)</translation>
 <translation id="1255086252236620440">Batteurs</translation>
@@ -157,7 +156,6 @@
 <translation id="1294154142200295408">Variantes de ligne de commande</translation>
 <translation id="129553762522093515">Récemment fermés</translation>
 <translation id="1296930489679394997">Ventes</translation>
-<translation id="129863573139666797"><ph name="BEGIN_LINK" />Essayez d'effacer vos témoins<ph name="END_LINK" /></translation>
 <translation id="1301227606947843452">Légal extra</translation>
 <translation id="1301324364792935241">Vérifiez les paramètres de DNS sécurisés</translation>
 <translation id="1307966114820526988">Fonctionnalités obsolètes</translation>
@@ -1347,7 +1345,6 @@
 <translation id="3767485424735936570">La politique de l'administrateur ne recommande pas de copier-coller ce contenu dans <ph name="VM_NAME" /></translation>
 <translation id="3772211998634047851">Papier (bond)</translation>
 <translation id="377451872037045164"><ph name="CREATE_GOOGLE_KEEP_NOTE_FOCUSED_FRIENDLY_MATCH_TEXT" />, appuyez sur Tabulation, puis sur Entrée pour rapidement créer une note dans Google Keep</translation>
-<translation id="3778403066972421603">Voulez-vous enregistrer cette carte dans votre compte Google et sur cet appareil?</translation>
 <translation id="378026377453746707">Chrome est doté de fonctionnalités de sécurité intégrées pour vous protéger pendant votre navigation, comme la Navigation sécurisée Google. La Navigation sécurisée a récemment <ph name="BEGIN_LINK" />détecté un logiciel malveillant sur <ph name="SITE" /><ph name="END_LINK" />, qui est intégré au site si vous essayez de le visiter.</translation>
 <translation id="3780694243617746492">Bac de sortie</translation>
 <translation id="3781428340399460090">Rose indien</translation>
@@ -1952,7 +1949,6 @@
 <translation id="5020776957610079374">Musique du monde</translation>
 <translation id="5021557570875267742">Suivre les prix avec Chrome</translation>
 <translation id="5023310440958281426">Vérifiez les règles définies par votre administrateur</translation>
-<translation id="5029568752722684782">Effacer la copie</translation>
 <translation id="5030338702439866405">Délivré par</translation>
 <translation id="503069730517007720">Un certificat racine pour « <ph name="SOFTWARE_NAME" /> » est requis, mais n'est pas installé. Votre administrateur informatique devrait consulter les instructions de configuration de « <ph name="SOFTWARE_NAME" /> » pour corriger ce problème. <ph name="FURTHER_EXPLANATION" /></translation>
 <translation id="5031870354684148875">À propos de Google Traduction</translation>
@@ -2534,7 +2530,6 @@
 <translation id="6270066318535733958">Navigation de plaisance</translation>
 <translation id="6272088941196661550">Reprenez votre exploration pour consulter l'activité pertinente dans votre historique de Chrome</translation>
 <translation id="6272383483618007430">Mise à jour Google</translation>
-<translation id="627746635834430766">Pour accélérer le paiement la prochaine fois, enregistrez votre carte et votre adresse de facturation dans votre compte Google.</translation>
 <translation id="6279183038361895380">Appuyez sur |<ph name="ACCELERATOR" />| pour afficher votre curseur</translation>
 <translation id="6280223929691119688">Impossible d'effectuer une livraison à cette adresse. Sélectionnez une autre adresse.</translation>
 <translation id="6284292079994426700">26 po x 38 po</translation>
@@ -3843,7 +3838,6 @@
 <translation id="8922013791253848639">Toujours autoriser les annonces sur ce site</translation>
 <translation id="892588693504540538">Perforation en haut à droite</translation>
 <translation id="8930330541574156305">Immobilier</translation>
-<translation id="8931333241327730545">Voulez-vous enregistrer cette carte sur votre compte Google?</translation>
 <translation id="8932102934695377596">Votre horloge retarde</translation>
 <translation id="893332455753468063">Ajouter un nom</translation>
 <translation id="8942355029279167844">Votre administrateur a autorisé <ph name="APP_NAME" /> à collecter des données de diagnostic afin d'améliorer l'expérience du produit. Pour en savoir plus, consultez la page <ph name="BEGIN_LINK" />https://www.parallels.com/pcep<ph name="END_LINK" />.</translation>
diff --git a/components/strings/components_strings_fr.xtb b/components/strings/components_strings_fr.xtb
index 2d667b8..e63a348 100644
--- a/components/strings/components_strings_fr.xtb
+++ b/components/strings/components_strings_fr.xtb
@@ -125,7 +125,6 @@
 <translation id="1243027604378859286">Auteur :</translation>
 <translation id="1246424317317450637">Gras</translation>
 <translation id="1247030632403369975">Aluminium</translation>
-<translation id="1250759482327835220">Pour régler vos achats plus rapidement la prochaine fois, enregistrez votre carte, votre nom et votre adresse de facturation dans votre compte Google.</translation>
 <translation id="1252209483516427155">Vêtements d'extérieur</translation>
 <translation id="1253921432148366685"><ph name="TYPE_1" />, <ph name="TYPE_2" /> (synchronisés)</translation>
 <translation id="1255086252236620440">Batteurs mixeurs</translation>
@@ -158,7 +157,6 @@
 <translation id="1294154142200295408">Variations de ligne de commande</translation>
 <translation id="129553762522093515">Récemment fermés</translation>
 <translation id="1296930489679394997">Métiers de la vente</translation>
-<translation id="129863573139666797"><ph name="BEGIN_LINK" />Essayez de supprimer les cookies.<ph name="END_LINK" /></translation>
 <translation id="1301227606947843452">Legal Extra</translation>
 <translation id="1301324364792935241">Vérifier les paramètres du DNS sécurisé</translation>
 <translation id="1307966114820526988">Fonctionnalités obsolètes</translation>
@@ -1351,7 +1349,6 @@
 <translation id="3767485424735936570">La règle définie par l'administrateur déconseille de copier et de coller ce contenu vers <ph name="VM_NAME" /></translation>
 <translation id="3772211998634047851">Papier (bond)</translation>
 <translation id="377451872037045164"><ph name="CREATE_GOOGLE_KEEP_NOTE_FOCUSED_FRIENDLY_MATCH_TEXT" />, appuyez sur Tabulation, puis sur Entrée pour créer rapidement une note dans Google Keep</translation>
-<translation id="3778403066972421603">Voulez-vous enregistrer cette carte dans votre compte Google et sur cet appareil ?</translation>
 <translation id="378026377453746707">Chrome dispose de fonctionnalités de sécurité intégrées pour vous protéger sur Internet, comme la navigation sécurisée Google. La navigation sécurisée <ph name="BEGIN_LINK" />a récemment détecté un logiciel malveillant sur le site <ph name="SITE" /><ph name="END_LINK" />, qui est intégré au site que vous essayez de consulter.</translation>
 <translation id="3780694243617746492">Bac de sortie</translation>
 <translation id="3781428340399460090">Rose foncé</translation>
@@ -1957,7 +1954,6 @@
 <translation id="5020776957610079374">Musiques du monde</translation>
 <translation id="5021557570875267742">Suivre les prix avec Chrome</translation>
 <translation id="5023310440958281426">Vérifiez les règles définies par votre administrateur</translation>
-<translation id="5029568752722684782">Effacer la copie</translation>
 <translation id="5030338702439866405">Émis par</translation>
 <translation id="503069730517007720">Veuillez installer un certificat racine pour "<ph name="SOFTWARE_NAME" />". Nous recommandons à votre administrateur informatique de lire les instructions de configuration du logiciel "<ph name="SOFTWARE_NAME" />" afin de remédier à la situation. <ph name="FURTHER_EXPLANATION" /></translation>
 <translation id="5031870354684148875">À propos de Google Traduction</translation>
@@ -2540,7 +2536,6 @@
 <translation id="6270066318535733958">Nautisme</translation>
 <translation id="6272088941196661550">Reprenez votre parcours pour voir les activités pertinentes dans votre historique Chrome</translation>
 <translation id="6272383483618007430">Google Update</translation>
-<translation id="627746635834430766">Pour régler vos achats plus rapidement la prochaine fois, enregistrez votre carte et votre adresse de facturation dans votre compte Google.</translation>
 <translation id="6279183038361895380">Appuyez sur |<ph name="ACCELERATOR" />| pour afficher le curseur.</translation>
 <translation id="6280223929691119688">Impossible de livrer à cette adresse. Sélectionnez-en une autre.</translation>
 <translation id="6284292079994426700">26 x 38 pouces</translation>
@@ -3852,7 +3847,6 @@
 <translation id="8922013791253848639">Toujours autoriser les annonces sur ce site</translation>
 <translation id="892588693504540538">Perforation en haut à droite</translation>
 <translation id="8930330541574156305">Immobilier</translation>
-<translation id="8931333241327730545">Voulez-vous enregistrer cette carte dans votre compte Google ?</translation>
 <translation id="8932102934695377596">Votre horloge est en retard</translation>
 <translation id="893332455753468063">Ajouter un nom</translation>
 <translation id="8942355029279167844">Votre administrateur a autorisé <ph name="APP_NAME" /> à recueillir des données de diagnostic pour améliorer votre expérience avec le produit. Pour en savoir plus, consultez la page <ph name="BEGIN_LINK" />https://www.parallels.com/pcep<ph name="END_LINK" />.</translation>
diff --git a/components/strings/components_strings_gl.xtb b/components/strings/components_strings_gl.xtb
index 2d9c3e9b..f8c58a98 100644
--- a/components/strings/components_strings_gl.xtb
+++ b/components/strings/components_strings_gl.xtb
@@ -125,7 +125,6 @@
 <translation id="1243027604378859286">Autor:</translation>
 <translation id="1246424317317450637">Negra</translation>
 <translation id="1247030632403369975">Aluminio</translation>
-<translation id="1250759482327835220">Para pagar máis rápido a próxima vez, garda a túa tarxeta, o nome e o enderezo de facturación na túa Conta de Google.</translation>
 <translation id="1252209483516427155">Roupa exterior</translation>
 <translation id="1253921432148366685"><ph name="TYPE_1" /> e <ph name="TYPE_2" /> (sincronizado)</translation>
 <translation id="1255086252236620440">Batedores</translation>
@@ -158,7 +157,6 @@
 <translation id="1294154142200295408">Variacións da liña de comandos</translation>
 <translation id="129553762522093515">Pechado recentemente</translation>
 <translation id="1296930489679394997">Vendas</translation>
-<translation id="129863573139666797"><ph name="BEGIN_LINK" />Proba a borrar as cookies<ph name="END_LINK" /></translation>
 <translation id="1301227606947843452">Legal extra</translation>
 <translation id="1301324364792935241">Comproba a configuración do teu DNS seguro</translation>
 <translation id="1307966114820526988">Funcións obsoletas</translation>
@@ -1351,7 +1349,6 @@
 <translation id="3767485424735936570">A política do administrador non recomenda copiar e pegar este contido en <ph name="VM_NAME" /></translation>
 <translation id="3772211998634047851">Papel (carta)</translation>
 <translation id="377451872037045164"><ph name="CREATE_GOOGLE_KEEP_NOTE_FOCUSED_FRIENDLY_MATCH_TEXT" />. Preme Tabulador e, a continuación, Introducir para crear rapidamente unha nota nova en Google Keep</translation>
-<translation id="3778403066972421603">Queres gardar esta tarxeta na túa conta de Google e neste dispositivo?</translation>
 <translation id="378026377453746707">Chrome inclúe funcións de seguranza para protexerte cando navegas, como, por exemplo, Navegación segura de Google. Esta función <ph name="BEGIN_LINK" />detectou hai pouco software daniño en <ph name="SITE" /><ph name="END_LINK" />, que está integrado no sitio ao que tentas acceder.</translation>
 <translation id="3780694243617746492">Bandexa de saída</translation>
 <translation id="3781428340399460090">Rosa fucsia</translation>
@@ -1957,7 +1954,6 @@
 <translation id="5020776957610079374">Música do mundo</translation>
 <translation id="5021557570875267742">Facer un seguimento dos prezos con Chrome</translation>
 <translation id="5023310440958281426">Comproba as túas políticas de administrador</translation>
-<translation id="5029568752722684782">Borrar copia</translation>
 <translation id="5030338702439866405">Emitido por</translation>
 <translation id="503069730517007720">Precísase un certificado raíz para <ph name="SOFTWARE_NAME" />, pero non está instalado. O teu administrador de TI debe comprobar as instrucións de configuración de <ph name="SOFTWARE_NAME" /> para solucionar este problema. <ph name="FURTHER_EXPLANATION" /></translation>
 <translation id="5031870354684148875">Acerca do Tradutor de Google</translation>
@@ -2540,7 +2536,6 @@
 <translation id="6270066318535733958">Actividades en barco</translation>
 <translation id="6272088941196661550">Retomar o percorrido para ver a actividade relevante do teu historial de Chrome</translation>
 <translation id="6272383483618007430">Actualización de Google</translation>
-<translation id="627746635834430766">Para pagar máis rápido a próxima vez, garda a túa tarxeta e o enderezo de facturación na conta de Google.</translation>
 <translation id="6279183038361895380">Preme |<ph name="ACCELERATOR" />| para mostrar o cursor</translation>
 <translation id="6280223929691119688">Non se pode realizar a entrega neste enderezo. Selecciona un diferente.</translation>
 <translation id="6284292079994426700">26 × 38 in</translation>
@@ -3851,7 +3846,6 @@
 <translation id="8922013791253848639">Permitir sempre os anuncios neste sitio</translation>
 <translation id="892588693504540538">Perforación na parte superior dereita</translation>
 <translation id="8930330541574156305">Propiedades inmobiliarias</translation>
-<translation id="8931333241327730545">Queres gardar esta tarxeta na túa conta de Google?</translation>
 <translation id="8932102934695377596">O reloxo está atrasado</translation>
 <translation id="893332455753468063">Engade un nome</translation>
 <translation id="8942355029279167844">O teu administrador permitiu que a aplicación <ph name="APP_NAME" /> recompile datos de diagnóstico para mellorar a experiencia do produto. Consulta <ph name="BEGIN_LINK" />https://www.parallels.com/pcep<ph name="END_LINK" /> para obter máis información.</translation>
diff --git a/components/strings/components_strings_gu.xtb b/components/strings/components_strings_gu.xtb
index 065eb05a1..d6ae2b1 100644
--- a/components/strings/components_strings_gu.xtb
+++ b/components/strings/components_strings_gu.xtb
@@ -125,7 +125,6 @@
 <translation id="1243027604378859286">લેખક:</translation>
 <translation id="1246424317317450637">ઘાટું</translation>
 <translation id="1247030632403369975">એલ્યુમિનિયમ</translation>
-<translation id="1250759482327835220">આગલી વખતે વધુ ઝડપથી ચુકવણી કરવા માટે, તમારા કાર્ડ, નામ અને બિલિંગ સરનામાને તમારા Google એકાઉન્ટમાં સાચવો.</translation>
 <translation id="1252209483516427155">બહાર પહેરવાનો પોશાક</translation>
 <translation id="1253921432148366685"><ph name="TYPE_1" />, <ph name="TYPE_2" /> (સમન્વયિત)</translation>
 <translation id="1255086252236620440">ભોજન મિક્સર</translation>
@@ -158,7 +157,6 @@
 <translation id="1294154142200295408">આદેશ વાક્યમાં વિવિધતા</translation>
 <translation id="129553762522093515">તાજેતરમાં બંધ કરેલા</translation>
 <translation id="1296930489679394997">વેચાણ</translation>
-<translation id="129863573139666797"><ph name="BEGIN_LINK" />તમારી કૂકીઝને સાફ કરવાનો પ્રયાસ કરો<ph name="END_LINK" /></translation>
 <translation id="1301227606947843452">લીગલ એક્સ્ટ્રા</translation>
 <translation id="1301324364792935241">તમારા સુરક્ષિત DNS સેટિંગ ચેક કરો</translation>
 <translation id="1307966114820526988">નાપસંદ કરેલી સુવિધાઓ</translation>
@@ -1351,7 +1349,6 @@
 <translation id="3767485424735936570">વ્યવસ્થાપક પૉલિસી અંતર્ગત આ કન્ટેન્ટને <ph name="VM_NAME" />માં કૉપિ કરીને પેસ્ટ કરવાનો સુઝાવ આપવામાં આવતો નથી</translation>
 <translation id="3772211998634047851">પેપર (બોન્ડ)</translation>
 <translation id="377451872037045164"><ph name="CREATE_GOOGLE_KEEP_NOTE_FOCUSED_FRIENDLY_MATCH_TEXT" />, Google Keepમાં ઝડપથી કોઈ નવી નોંધ બનાવવા માટે, પહેલાં Tab અને પછી Enter કી દબાવો</translation>
-<translation id="3778403066972421603">શું તમે આ કાર્ડને તમારા Google એકાઉન્ટ અને આ ડિવાઇસ પર સાચવવા માગો છો?</translation>
 <translation id="378026377453746707">તમે બ્રાઉઝ કરી રહ્યાં હો એ દરમિયાન તમને સુરક્ષિત રાખવા માટે Chrome બિલ્ટ ઇન સલામતી સંબંધી સુવિધાઓ ધરાવે છે — જેમ કે Google Safe Browsing. તાજેતરમાં Safe Browsing દ્વારા <ph name="BEGIN_LINK" /><ph name="SITE" /> પર હાનિકારક સૉફ્ટવેર શોધવા<ph name="END_LINK" />માં આવ્યું હતું, જો તમે એની મુલાકાત લેવાનો પ્રયાસ કરી રહ્યાં હો, તો તે સાઇટમાં શામેલ હતું એ ધ્યાનમાં રાખો.</translation>
 <translation id="3780694243617746492">આઉટપુટ બિન</translation>
 <translation id="3781428340399460090">ચળકતો ગુલાબી</translation>
@@ -1957,7 +1954,6 @@
 <translation id="5020776957610079374">વર્લ્ડ મ્યુઝિક</translation>
 <translation id="5021557570875267742">Chrome વડે કિંમતો ટ્રૅક કરો</translation>
 <translation id="5023310440958281426">તમારા વ્યવસ્થાપકની પૉલિસીઓ તપાસો</translation>
-<translation id="5029568752722684782">કૉપિ સાફ કરો</translation>
 <translation id="5030338702439866405">આના દ્વારા રજૂ કરાયું</translation>
 <translation id="503069730517007720">"<ph name="SOFTWARE_NAME" />" માટેનું રૂટ પ્રમાણપત્ર આવશ્યક છે પરંતુ તે ઇન્સ્ટૉલ કરેલું નથી. આ સમસ્યાના નિવારણ માટે તમારા IT વ્યવસ્થાપકે "<ph name="SOFTWARE_NAME" />" ની ગોઠવણી માટેની સૂચના જોવી જરૂરી છે. <ph name="FURTHER_EXPLANATION" /></translation>
 <translation id="5031870354684148875">Google Translate વિશે</translation>
@@ -2540,7 +2536,6 @@
 <translation id="6270066318535733958">નૌકાવિહાર</translation>
 <translation id="6272088941196661550">તમારા Chrome ઇતિહાસમાં સંબંધિત પ્રવૃત્તિ જોવા માટે, તમારો પ્રવાસ ફરી શરૂ કરો</translation>
 <translation id="6272383483618007430">Google અપડેટ</translation>
-<translation id="627746635834430766">આગલી વખતે વધુ ઝડપથી ચુકવણી કરવા માટે, તમારા કાર્ડ અને બિલિંગ સરનામાંને તમારા Google એકાઉન્ટમાં સાચવો.</translation>
 <translation id="6279183038361895380">તમારા કર્સરને બતાવવા માટે |<ph name="ACCELERATOR" />| દબાવો</translation>
 <translation id="6280223929691119688">આ સરનામે વિતરણ કરી શકતા નથી. કોઈ ભિન્ન સરનામું પસંદ કરો.</translation>
 <translation id="6284292079994426700">26 x 38 ઇંચ</translation>
@@ -3852,7 +3847,6 @@
 <translation id="8922013791253848639">આ સાઇટ પર જાહેરાતો માટે હંમેશાં પરવાનગી આપે છે</translation>
 <translation id="892588693504540538">ઉપર જમણી બાજુએ કાણું પાડો</translation>
 <translation id="8930330541574156305">રિઅલ એસ્ટેટ</translation>
-<translation id="8931333241327730545">શું તમે આ કાર્ડને તમારા Google એકાઉન્ટમાં સાચવવા માગો છો?</translation>
 <translation id="8932102934695377596">તમારી ઘડિયાળ પાછળ છે</translation>
 <translation id="893332455753468063">નામ ઉમેરો</translation>
 <translation id="8942355029279167844">પ્રોડક્ટના અનુભવને બહેતર બનાવવા માટે તમારા વ્યવસ્થાપક દ્વારા <ph name="APP_NAME" />ને નિદાનનો ડેટા એકત્ર કરવાની મંજૂરી આપી છે. વધુ માહિતી માટે <ph name="BEGIN_LINK" />https://www.parallels.com/pcep<ph name="END_LINK" /> જુઓ.</translation>
diff --git a/components/strings/components_strings_hi.xtb b/components/strings/components_strings_hi.xtb
index 312d218..21010e4 100644
--- a/components/strings/components_strings_hi.xtb
+++ b/components/strings/components_strings_hi.xtb
@@ -125,7 +125,6 @@
 <translation id="1243027604378859286">लेखक:</translation>
 <translation id="1246424317317450637">बोल्ड टेक्स्ट</translation>
 <translation id="1247030632403369975">एल्युमिनियम</translation>
-<translation id="1250759482327835220">अगली बार तेज़ी से भुगतान करने के लिए, अपने कार्ड, नाम और बिलिंग पते को अपने 'Google खाते' में सेव करें.</translation>
 <translation id="1252209483516427155">जैकेट, कोट, रेनकोट वगैरह</translation>
 <translation id="1253921432148366685"><ph name="TYPE_1" />, <ph name="TYPE_2" /> (सिंक किए गए)</translation>
 <translation id="1255086252236620440">फ़ूड मिक्सर</translation>
@@ -158,7 +157,6 @@
 <translation id="1294154142200295408">अलग-अलग तरह की कमांड-लाइन</translation>
 <translation id="129553762522093515">हाल ही में बंद किए गए</translation>
 <translation id="1296930489679394997">सेल्स</translation>
-<translation id="129863573139666797"><ph name="BEGIN_LINK" />अपनी कुकी साफ़ करके देखें<ph name="END_LINK" /></translation>
 <translation id="1301227606947843452">लीगल एक्स्ट्रा</translation>
 <translation id="1301324364792935241">अपने सुरक्षित डीएनएस की सेटिंग की जांच करें</translation>
 <translation id="1307966114820526988">बंद की गई सुविधाएं</translation>
@@ -1349,7 +1347,6 @@
 <translation id="3767485424735936570">एडमिन नीति के मुताबिक, इस कॉन्टेंट को कॉपी करके <ph name="VM_NAME" /> में चिपकाने का सुझाव नहीं दिया जाता</translation>
 <translation id="3772211998634047851">पेपर (बॉन्ड)</translation>
 <translation id="377451872037045164"><ph name="CREATE_GOOGLE_KEEP_NOTE_FOCUSED_FRIENDLY_MATCH_TEXT" />, Google Keep में जल्दी से नया नोट बनाने के लिए, पहले Tab दबाएं और फिर Enter दबाएं</translation>
-<translation id="3778403066972421603">क्या आप इस कार्ड को अपने Google खाते में और इस डिवाइस में सेव करना चाहते हैं?</translation>
 <translation id="378026377453746707">ब्राउज़ करते समय आपको सुरक्षित रखने के लिए, Chrome में सुरक्षा से जुड़ी सुविधाएं पहले से ही मौजूद हैं. उदाहरण के लिए, Google सुरक्षित ब्राउज़िंग. सुरक्षित ब्राउज़िंग ने हाल ही में <ph name="BEGIN_LINK" /><ph name="SITE" /> पर नुकसान पहुंचाने वाला सॉफ़्टवेयर होने का पता<ph name="END_LINK" /> लगाया है, जो उस साइट में एम्बेड है जिसे आपको ब्राउज़ करना है.</translation>
 <translation id="3780694243617746492">आउटपुट बिन</translation>
 <translation id="3781428340399460090">चमकीला गुलाबी</translation>
@@ -1955,7 +1952,6 @@
 <translation id="5020776957610079374">वर्ल्ड म्यूज़िक</translation>
 <translation id="5021557570875267742">Chrome की मदद से कीमतों को ट्रैक करें</translation>
 <translation id="5023310440958281426">अपने एडमिन की नीतियां देखें</translation>
-<translation id="5029568752722684782">स्‍पष्‍ट कॉपी</translation>
 <translation id="5030338702439866405">जारीकर्ता</translation>
 <translation id="503069730517007720">"<ph name="SOFTWARE_NAME" />" के रूट प्रमाणपत्र की ज़रूरत है लेकिन वह इंस्टॉल नहीं है. यह समस्या ठीक करने के लिए आपके आईटी व्यवस्थापक को "<ph name="SOFTWARE_NAME" />" के कॉन्फ़िगरेशन से जुड़े निर्देशों पर नज़र डालनी चाहिए. <ph name="FURTHER_EXPLANATION" /></translation>
 <translation id="5031870354684148875">Google अनुवाद के बारे में</translation>
@@ -2538,7 +2534,6 @@
 <translation id="6270066318535733958">बोटिंग</translation>
 <translation id="6272088941196661550">अपने 'Chrome इतिहास' में काम की गतिविधि देखने के लिए, फिर से शुरू करें</translation>
 <translation id="6272383483618007430">Google अपडेट</translation>
-<translation id="627746635834430766">अगली बार तेज़ी से भुगतान करने के लिए, अपने कार्ड और बिलिंग पते को अपने Google खाते में सेव करें.</translation>
 <translation id="6279183038361895380">अपना कर्सर दिखाने के लिए |<ph name="ACCELERATOR" />| दबाएं</translation>
 <translation id="6280223929691119688">इस पते पर वितरित नहीं किया जा सकता. कोई दूसरा पता चुनें.</translation>
 <translation id="6284292079994426700">26 x 38 इंच</translation>
@@ -3849,7 +3844,6 @@
 <translation id="8922013791253848639">इस साइट पर विज्ञापनों की हमेशा अनुमति दें</translation>
 <translation id="892588693504540538">सबसे ऊपर दाईं ओर पंच</translation>
 <translation id="8930330541574156305">रीयल एस्टेट</translation>
-<translation id="8931333241327730545">क्या आप इस कार्ड को अपने Google खाते में सेव करना चाहते हैं?</translation>
 <translation id="8932102934695377596">आपकी घड़ी पीछे है</translation>
 <translation id="893332455753468063">नाम जोड़ें</translation>
 <translation id="8942355029279167844">आपके एडमिन ने प्रॉडक्ट को बेहतर बनाने के लिए, गड़बड़ी की जानकारी वाला डेटा इकट्ठा करने की अनुमति <ph name="APP_NAME" /> को दी है. ज़्यादा जानकारी के लिए, <ph name="BEGIN_LINK" />https://www.parallels.com/pcep<ph name="END_LINK" /> देखें.</translation>
diff --git a/components/strings/components_strings_hr.xtb b/components/strings/components_strings_hr.xtb
index 06c74f8..30a4f11a 100644
--- a/components/strings/components_strings_hr.xtb
+++ b/components/strings/components_strings_hr.xtb
@@ -125,7 +125,6 @@
 <translation id="1243027604378859286">Autor:</translation>
 <translation id="1246424317317450637">Podebljano</translation>
 <translation id="1247030632403369975">Aluminij</translation>
-<translation id="1250759482327835220">Da biste sljedeći put platili brže, spremite karticu, ime i adresu za naplatu na svoj Google račun.</translation>
 <translation id="1252209483516427155">Odjeća za van</translation>
 <translation id="1253921432148366685"><ph name="TYPE_1" />, <ph name="TYPE_2" /> (sinkronizirano)</translation>
 <translation id="1255086252236620440">Mikseri za hranu</translation>
@@ -158,7 +157,6 @@
 <translation id="1294154142200295408">Varijacije naredbenog retka</translation>
 <translation id="129553762522093515">Nedavno zatvoreno</translation>
 <translation id="1296930489679394997">Prodaja</translation>
-<translation id="129863573139666797"><ph name="BEGIN_LINK" />Izbrišite kolačiće<ph name="END_LINK" /></translation>
 <translation id="1301227606947843452">Legal Extra</translation>
 <translation id="1301324364792935241">Provjerite postavke sigurnog DNS-a</translation>
 <translation id="1307966114820526988">Ukinute značajke</translation>
@@ -1350,7 +1348,6 @@
 <translation id="3767485424735936570">Kopiranje i lijepljenje tog sadržaja u <ph name="VM_NAME" /> ne preporučuje se u skladu s administratorskim pravilima</translation>
 <translation id="3772211998634047851">Papir (bond)</translation>
 <translation id="377451872037045164"><ph name="CREATE_GOOGLE_KEEP_NOTE_FOCUSED_FRIENDLY_MATCH_TEXT" />, pritisnite Tab, a zatim Enter da biste brzo izradili novu bilješku u Google Keepu</translation>
-<translation id="3778403066972421603">Želite li spremiti ovu karticu na svoj Google račun i na ovaj uređaj?</translation>
 <translation id="378026377453746707">Chrome ima integrirane sigurnosne značajke koje vas štite dok pregledavate, na primjer Google sigurno pregledavanje. Sigurno pregledavanje nedavno je<ph name="BEGIN_LINK" />pronašlo štetan softver na web-lokaciji <ph name="SITE" /><ph name="END_LINK" /> koji je ugrađen u web-lokaciju koju pokušavate posjetiti.</translation>
 <translation id="3780694243617746492">Izlazni pretinac</translation>
 <translation id="3781428340399460090">Jarko ružičasta</translation>
@@ -1956,7 +1953,6 @@
 <translation id="5020776957610079374">Svjetska glazba</translation>
 <translation id="5021557570875267742">Praćenje cijena pomoću Chromea</translation>
 <translation id="5023310440958281426">Provjerite pravila svojeg administratora</translation>
-<translation id="5029568752722684782">Izbriši kopiju</translation>
 <translation id="5030338702439866405">Izdaje</translation>
 <translation id="503069730517007720">Potreban je korijenski certifikat za "<ph name="SOFTWARE_NAME" />", ali nije instaliran. Vaš IT administrator trebao bi pogledati upute za konfiguraciju softvera "<ph name="SOFTWARE_NAME" />" kako bi riješio taj problem. <ph name="FURTHER_EXPLANATION" /></translation>
 <translation id="5031870354684148875">O Google Prevoditelju</translation>
@@ -2539,7 +2535,6 @@
 <translation id="6270066318535733958">Vožnja čamcem</translation>
 <translation id="6272088941196661550">Nastavite putovanje da biste vidjeli relevantne aktivnosti u svojoj povijesti na Chromeu</translation>
 <translation id="6272383483618007430">Google ažuriranje</translation>
-<translation id="627746635834430766">Da biste sljedeći put platili brže, karticu i adresu za naplatu spremite na svoj Google račun.</translation>
 <translation id="6279183038361895380">Pritisnite |<ph name="ACCELERATOR" />| da bi se prikazao pokazivač</translation>
 <translation id="6280223929691119688">Dostava na tu adresu nije moguća. Odaberite drugu adresu.</translation>
 <translation id="6284292079994426700">26 x 38 inča</translation>
@@ -3851,7 +3846,6 @@
 <translation id="8922013791253848639">Uvijek dopusti oglase na ovoj web-lokaciji</translation>
 <translation id="892588693504540538">Bušenje pri vrhu desno</translation>
 <translation id="8930330541574156305">Nekretnine</translation>
-<translation id="8931333241327730545">Želite li spremiti tu karticu na Google račun?</translation>
 <translation id="8932102934695377596">Sat kasni</translation>
 <translation id="893332455753468063">Dodajte ime</translation>
 <translation id="8942355029279167844">Administrator je dopustio da <ph name="APP_NAME" /> prikuplja dijagnostičke podatke radi poboljšanja doživljaja proizvoda. Dodatne informacije potražite na <ph name="BEGIN_LINK" />https://www.parallels.com/pcep<ph name="END_LINK" />.</translation>
diff --git a/components/strings/components_strings_hu.xtb b/components/strings/components_strings_hu.xtb
index 7732906..52742cf 100644
--- a/components/strings/components_strings_hu.xtb
+++ b/components/strings/components_strings_hu.xtb
@@ -125,7 +125,6 @@
 <translation id="1243027604378859286">Szerző:</translation>
 <translation id="1246424317317450637">Félkövér</translation>
 <translation id="1247030632403369975">Alumínium</translation>
-<translation id="1250759482327835220">A következő alkalommal gyorsabban fizethet, ha elmenti kártyáját, nevét és számlázási címét a Google-fiókjába.</translation>
 <translation id="1252209483516427155">Kinti viselet</translation>
 <translation id="1253921432148366685"><ph name="TYPE_1" />, <ph name="TYPE_2" /> (szinkronizálva)</translation>
 <translation id="1255086252236620440">Robotgépek</translation>
@@ -158,7 +157,6 @@
 <translation id="1294154142200295408">Parancssorváltozatok</translation>
 <translation id="129553762522093515">Mostanában bezárt</translation>
 <translation id="1296930489679394997">Értékesítés</translation>
-<translation id="129863573139666797"><ph name="BEGIN_LINK" />Próbálkozzon a cookie-k törlésével<ph name="END_LINK" /></translation>
 <translation id="1301227606947843452">„Legal Extra” méret</translation>
 <translation id="1301324364792935241">Ellenőrizze a biztonságos DNS beállításait</translation>
 <translation id="1307966114820526988">Elavult funkciók</translation>
@@ -1349,7 +1347,6 @@
 <translation id="3767485424735936570">A rendszergazda által beállított házirend nem javasolja, hogy ezt a tartalmat másolja vagy beillessze ide: <ph name="VM_NAME" /></translation>
 <translation id="3772211998634047851">Papír (bankpostai)</translation>
 <translation id="377451872037045164"><ph name="CREATE_GOOGLE_KEEP_NOTE_FOCUSED_FRIENDLY_MATCH_TEXT" />, tartsa lenyomva a Tab billentyűt, majd nyomja meg az Enter billentyűt új jegyzet gyors létrehozásához a Google Keep szolgáltatással</translation>
-<translation id="3778403066972421603">Szeretné menteni a kártyát Google-fiókjába és az eszközre?</translation>
 <translation id="378026377453746707">A Chrome beépített biztonsági funkciókkal védi Önt böngészés közben (ilyen például a Google Biztonságos Böngészés). A Biztonságos Böngészés nemrég <ph name="BEGIN_LINK" />kártékony szoftvert talált a(z) <ph name="SITE" /> webhelyen<ph name="END_LINK" />, amely az Ön által felkeresni kívánt webhelybe van beágyazva.</translation>
 <translation id="3780694243617746492">Kimeneti tálca</translation>
 <translation id="3781428340399460090">Élénk rózsaszín</translation>
@@ -1955,7 +1952,6 @@
 <translation id="5020776957610079374">Világzene</translation>
 <translation id="5021557570875267742">Árak nyomon követése a Chrome segítségével</translation>
 <translation id="5023310440958281426">Ellenőrizze rendszergazdai házirendjeit</translation>
-<translation id="5029568752722684782">Példány törlése</translation>
 <translation id="5030338702439866405">Kiállította:</translation>
 <translation id="503069730517007720">A(z) „<ph name="SOFTWARE_NAME" />” szoftverhez főtanúsítványra van szükség, amely azonban nincs telepítve. A rendszergazda a(z) „<ph name="SOFTWARE_NAME" />” beállítási útmutatójában találhat segítséget a probléma megoldásához. <ph name="FURTHER_EXPLANATION" /></translation>
 <translation id="5031870354684148875">A Google Fordító leírása</translation>
@@ -2538,7 +2534,6 @@
 <translation id="6270066318535733958">Csónakázás</translation>
 <translation id="6272088941196661550">Utazás folytatása a Chrome-előzmények között található releváns tevékenységek megtekintéséhez</translation>
 <translation id="6272383483618007430">Google Frissítés</translation>
-<translation id="627746635834430766">A következő alkalommal gyorsabban fizethet, ha Google-fiókjába menti kártyáját és számlázási címét.</translation>
 <translation id="6279183038361895380">Az egérmutató megjelenítéséhez nyomja meg a következő billentyűt: |<ph name="ACCELERATOR" />|</translation>
 <translation id="6280223929691119688">Erre a címre nem lehetséges a kézbesítés. Válasszon másik címet.</translation>
 <translation id="6284292079994426700">26 × 38 hüvelyk</translation>
@@ -3851,7 +3846,6 @@
 <translation id="8922013791253848639">Mindig engedélyezi a hirdetéseket ezen a webhelyen</translation>
 <translation id="892588693504540538">Lyuk jobbra fent</translation>
 <translation id="8930330541574156305">Ingatlan</translation>
-<translation id="8931333241327730545">Menti ezt a kártyát a Google-fiókjába?</translation>
 <translation id="8932102934695377596">Késik az órája</translation>
 <translation id="893332455753468063">Név hozzáadása</translation>
 <translation id="8942355029279167844">Rendszergazdája engedélyezte, hogy a(z) <ph name="APP_NAME" /> diagnosztikai adatokat gyűjtsön a felhasználói élmény javítása érdekében. További információt a következő oldalon találhat: <ph name="BEGIN_LINK" />https://www.parallels.com/pcep<ph name="END_LINK" />.</translation>
diff --git a/components/strings/components_strings_hy.xtb b/components/strings/components_strings_hy.xtb
index 08e4ffeb..4a2f2d46 100644
--- a/components/strings/components_strings_hy.xtb
+++ b/components/strings/components_strings_hy.xtb
@@ -129,7 +129,6 @@
 <translation id="1243027604378859286">Հեղինակ՝</translation>
 <translation id="1246424317317450637">Թավ</translation>
 <translation id="1247030632403369975">Ալյումին</translation>
-<translation id="1250759482327835220">Հաջորդ անգամ ավելի արագ վճարելու համար պահեք ձեր քարտը, անունն ու վճարային հասցեն Google հաշվում:</translation>
 <translation id="1252209483516427155">Վերնահագուստ</translation>
 <translation id="1253921432148366685"><ph name="TYPE_1" />, <ph name="TYPE_2" /> (համաժամացված)</translation>
 <translation id="1255086252236620440">Խոհանոցային միքսերներ</translation>
@@ -162,7 +161,6 @@
 <translation id="1294154142200295408">Հրամանատողի տարբերակներ</translation>
 <translation id="129553762522093515">Վերջերս փակված</translation>
 <translation id="1296930489679394997">Զեղչեր</translation>
-<translation id="129863573139666797"><ph name="BEGIN_LINK" />Մաքրեք ձեր քուքիները<ph name="END_LINK" /></translation>
 <translation id="1301227606947843452">Legal Extra</translation>
 <translation id="1301324364792935241">Ստուգեք ձեր ապահով DNS-ի կարգավորումները</translation>
 <translation id="1307966114820526988">Հնացած գործառույթներ</translation>
@@ -1357,7 +1355,6 @@
 <translation id="3767485424735936570">Ադմինիստրատորը խորհուրդ չի տալիս պատճենել և տեղադրել այս բովանդակությունը <ph name="VM_NAME" /> վիրտուալ մեքենայում։</translation>
 <translation id="3772211998634047851">Թուղթ (բոնդ)</translation>
 <translation id="377451872037045164"><ph name="CREATE_GOOGLE_KEEP_NOTE_FOCUSED_FRIENDLY_MATCH_TEXT" />։ Google Keep-ում արագ նշում ստեղծելու համար սեղմեք Tab, ապա՝ Enter։</translation>
-<translation id="3778403066972421603">Ուզո՞ւմ եք պահել այս քարտի տվյալները ձեր Google հաշվում և այս սարքում</translation>
 <translation id="378026377453746707">Chrome-ում կան անվտանգության ներկառուցված գործառույթներ, որոնք պաշտպանում են ձեզ դիտարկման ընթացքում։ Դրանցից է, օրինակ, Google Ապահով դիտարկումը։ Այն վերջերս <ph name="BEGIN_LINK" />վնասաբեր ծրագիր է հայտնաբերել <ph name="SITE" /> կայքում<ph name="END_LINK" />, որը զետեղված է այն կայքում, որը փորձում եք այցելել։</translation>
 <translation id="3780694243617746492">Արտածման արկղ</translation>
 <translation id="3781428340399460090">Վառ վարդագույն</translation>
@@ -1966,7 +1963,6 @@
 <translation id="5020776957610079374">Աշխարհի ժողովուրդների երաժշտություն</translation>
 <translation id="5021557570875267742">Հետագծեք գները Chrome-ի միջոցով</translation>
 <translation id="5023310440958281426">Կարդացեք ադմինիստրատորի սահմանած կանոնները</translation>
-<translation id="5029568752722684782">Մաքրել պատճենը</translation>
 <translation id="5030338702439866405">Թողարկող`</translation>
 <translation id="503069730517007720">Անհրաժեշտ է «<ph name="SOFTWARE_NAME" />» ծրագրի արմատային հավաստագիրը, որը տեղադրված չէ: Խնդիրը լուծելու համար ՏՏ ադմինիստրատորը պետք է հետևի «<ph name="SOFTWARE_NAME" />» ծրագրի կազմաձևման ցուցումներին։ <ph name="FURTHER_EXPLANATION" /></translation>
 <translation id="5031870354684148875">Google Translate-ի մասին</translation>
@@ -2551,7 +2547,6 @@
 <translation id="6270066318535733958">Թիավարում</translation>
 <translation id="6272088941196661550">Շարունակել որոնումը՝ Chrome-ի պատմության մեջ նման հարցումները դիտելու համար</translation>
 <translation id="6272383483618007430">Google Update</translation>
-<translation id="627746635834430766">Հաջորդ անգամ ավելի արագ վճարելու համար պահեք ձեր քարտը և վճարային հասցեն Google հաշվում:</translation>
 <translation id="6279183038361895380">Նշորդը ցուցադրելու համար սեղմեք |<ph name="ACCELERATOR" />|</translation>
 <translation id="6280223929691119688">Այս հասցեով հնարավոր չէ առաքել: Ընտրեք այլ հասցե:</translation>
 <translation id="6284292079994426700">26 x 38 դյույմ</translation>
@@ -3862,7 +3857,6 @@
 <translation id="8922013791253848639">Միշտ թույլատրել գովազդն այս կայքում</translation>
 <translation id="892588693504540538">Անցք վերևի աջ կողմում</translation>
 <translation id="8930330541574156305">Անշարժ գույք</translation>
-<translation id="8931333241327730545">Ուզո՞ւմ եք պահել այս քարտը ձեր Google հաշվում:</translation>
 <translation id="8932102934695377596">Ձեր ժամացույցը հետ է ընկել</translation>
 <translation id="893332455753468063">Ավելացրեք անունը</translation>
 <translation id="8942355029279167844">Ձեր ադմինիստրատորը թույլատրել է <ph name="APP_NAME" /> հավելվածին հավաքել դիագնոստիկ տվյալներ՝ ծառայության որակը բարելավելու նպատակով։ Լրացուցիչ տեղեկությունների համար անցեք <ph name="BEGIN_LINK" />https://www.parallels.com/pcep<ph name="END_LINK" /> էջ։</translation>
diff --git a/components/strings/components_strings_id.xtb b/components/strings/components_strings_id.xtb
index 477d561..a2724437 100644
--- a/components/strings/components_strings_id.xtb
+++ b/components/strings/components_strings_id.xtb
@@ -125,7 +125,6 @@
 <translation id="1243027604378859286">Pengarang:</translation>
 <translation id="1246424317317450637">Tebal</translation>
 <translation id="1247030632403369975">Aluminium</translation>
-<translation id="1250759482327835220">Untuk membayar lebih cepat di pembelian berikutnya, simpan kartu, nama, dan alamat penagihan ke Akun Google Anda.</translation>
 <translation id="1252209483516427155">Pakaian Luar</translation>
 <translation id="1253921432148366685"><ph name="TYPE_1" />, <ph name="TYPE_2" /> (disinkronkan)</translation>
 <translation id="1255086252236620440">Pengaduk Makanan</translation>
@@ -158,7 +157,6 @@
 <translation id="1294154142200295408">Variasi baris perintah</translation>
 <translation id="129553762522093515">Baru saja ditutup</translation>
 <translation id="1296930489679394997">Penjualan</translation>
-<translation id="129863573139666797"><ph name="BEGIN_LINK" />Coba hapus cookie Anda<ph name="END_LINK" /></translation>
 <translation id="1301227606947843452">Legal Ekstra</translation>
 <translation id="1301324364792935241">Periksa setelan DNS Aman Anda</translation>
 <translation id="1307966114820526988">Fitur yang Tidak Digunakan Lagi</translation>
@@ -1351,7 +1349,6 @@
 <translation id="3767485424735936570">Menyalin dan menempelkan konten ini ke <ph name="VM_NAME" /> tidak direkomendasikan oleh kebijakan administrator</translation>
 <translation id="3772211998634047851">Kertas (Bond)</translation>
 <translation id="377451872037045164"><ph name="CREATE_GOOGLE_KEEP_NOTE_FOCUSED_FRIENDLY_MATCH_TEXT" />, tekan Tab lalu Enter untuk membuat catatan baru di Google Keep dengan cepat</translation>
-<translation id="3778403066972421603">Ingin menyimpan kartu ini di Akun Google dan perangkat ini?</translation>
 <translation id="378026377453746707">Chrome memiliki fitur keamanan bawaan untuk melindungi Anda saat menjelajah, seperti Google Safe Browsing. Safe Browsing baru-baru ini <ph name="BEGIN_LINK" />menemukan software berbahaya di <ph name="SITE" /><ph name="END_LINK" />, yang disematkan di situs jika Anda mencoba membukanya.</translation>
 <translation id="3780694243617746492">Tampungan keluaran</translation>
 <translation id="3781428340399460090">Merah Muda Terang</translation>
@@ -1957,7 +1954,6 @@
 <translation id="5020776957610079374">Musik dunia</translation>
 <translation id="5021557570875267742">Pantau harga dengan Chrome</translation>
 <translation id="5023310440958281426">Periksa kebijakan administrator Anda</translation>
-<translation id="5029568752722684782">Hapus salinan</translation>
 <translation id="5030338702439866405">Diterbitkan Oleh</translation>
 <translation id="503069730517007720">Sertifikat root wajib untuk "<ph name="SOFTWARE_NAME" />" tidak diinstal. Administrator IT Anda harus melihat petunjuk konfigurasi untuk "<ph name="SOFTWARE_NAME" />" agar dapat menyelesaikan masalah ini. <ph name="FURTHER_EXPLANATION" /></translation>
 <translation id="5031870354684148875">Tentang Google Terjemahan</translation>
@@ -2540,7 +2536,6 @@
 <translation id="6270066318535733958">Berperahu</translation>
 <translation id="6272088941196661550">Lanjutkan perjalanan Anda untuk melihat aktivitas yang relevan di histori Chrome Anda</translation>
 <translation id="6272383483618007430">Google Update</translation>
-<translation id="627746635834430766">Untuk membayar lebih cepat di pembelian selanjutnya, simpan kartu dan alamat penagihan ke Akun Google Anda.</translation>
 <translation id="6279183038361895380">Tekan |<ph name="ACCELERATOR" />| untuk menampilkan kursor</translation>
 <translation id="6280223929691119688">Tidak dapat mengirim ke alamat ini. Pilih alamat lain.</translation>
 <translation id="6284292079994426700">26 x 38 inci (66 x 96 cm)</translation>
@@ -3847,7 +3842,6 @@
 <translation id="8922013791253848639">Selalu izinkan iklan di situs ini</translation>
 <translation id="892588693504540538">Lubang di kanan atas</translation>
 <translation id="8930330541574156305">Properti real estat</translation>
-<translation id="8931333241327730545">Ingin menyimpan kartu ini ke Akun Google Anda?</translation>
 <translation id="8932102934695377596">Setelan waktu Anda terlalu lambat</translation>
 <translation id="893332455753468063">Tambahkan Nama</translation>
 <translation id="8942355029279167844">Administrator Anda telah mengizinkan <ph name="APP_NAME" /> untuk mengumpulkan data diagnostik guna menyempurnakan pengalaman produk. Buka <ph name="BEGIN_LINK" />https://www.parallels.com/pcep<ph name="END_LINK" /> untuk informasi selengkapnya.</translation>
diff --git a/components/strings/components_strings_is.xtb b/components/strings/components_strings_is.xtb
index 679fe13..2e810a5b 100644
--- a/components/strings/components_strings_is.xtb
+++ b/components/strings/components_strings_is.xtb
@@ -125,7 +125,6 @@
 <translation id="1243027604378859286">Höfundur:</translation>
 <translation id="1246424317317450637">Feitletur</translation>
 <translation id="1247030632403369975">Ál</translation>
-<translation id="1250759482327835220">Til að greiða hraðar næst geturðu vistað kortið og nafn og heimilisfang greiðanda á Google reikningnum.</translation>
 <translation id="1252209483516427155">Útiföt</translation>
 <translation id="1253921432148366685"><ph name="TYPE_1" />, <ph name="TYPE_2" /> (samstillt)</translation>
 <translation id="1255086252236620440">Matvinnsluvélar</translation>
@@ -158,7 +157,6 @@
 <translation id="1294154142200295408">Tilbrigði fyrir skipanalínu</translation>
 <translation id="129553762522093515">Nýlega lokað</translation>
 <translation id="1296930489679394997">Sala</translation>
-<translation id="129863573139666797"><ph name="BEGIN_LINK" />Prófaðu að hreinsa fótsporin þín<ph name="END_LINK" /></translation>
 <translation id="1301227606947843452">Legal Extra</translation>
 <translation id="1301324364792935241">Athugaðu stillingar fyrir öruggan DNS-þjón</translation>
 <translation id="1307966114820526988">Úreldir eiginleikar</translation>
@@ -1351,7 +1349,6 @@
 <translation id="3767485424735936570">Reglur stjórnanda mæla ekki með að þetta efni sé afritað og límt í <ph name="VM_NAME" /></translation>
 <translation id="3772211998634047851">Pappír (teikningapappír)</translation>
 <translation id="377451872037045164"><ph name="CREATE_GOOGLE_KEEP_NOTE_FOCUSED_FRIENDLY_MATCH_TEXT" />, ýttu á Tab og svo Enter til að búa til nýja glósu í Google Keep á skjótan hátt</translation>
-<translation id="3778403066972421603">Viltu vista þetta kort á Google reikningnum þínum og í þessu tæki?</translation>
 <translation id="378026377453746707">Chrome er með innbyggða öryggiseiginleika sem vernda þig þegar þú vafrar, s.s. örugga vefskoðun Google. Örugg vefskoðun <ph name="BEGIN_LINK" />fann nýlega skaðlegan hugbúnað á <ph name="SITE" /><ph name="END_LINK" />, sem er innfellt á vefsvæðið sem þú ert að reyna að opna.</translation>
 <translation id="3780694243617746492">Útbakki</translation>
 <translation id="3781428340399460090">Dökkbleikur</translation>
@@ -1957,7 +1954,6 @@
 <translation id="5020776957610079374">Heimstónlist</translation>
 <translation id="5021557570875267742">Vaktaðu verð með Chrome</translation>
 <translation id="5023310440958281426">Athugaðu stjórnandastefnurnar</translation>
-<translation id="5029568752722684782">Hreinsa eintak</translation>
 <translation id="5030338702439866405">Gefið út af</translation>
 <translation id="503069730517007720">Rótarvottorðs er krafist fyrir „<ph name="SOFTWARE_NAME" />“ en það er ekki sett upp. Kerfisstjóri ætti að athuga leiðbeiningar fyrir stillingu á „<ph name="SOFTWARE_NAME" />“ til að lagfæra vandamálið. <ph name="FURTHER_EXPLANATION" /></translation>
 <translation id="5031870354684148875">Um Google Translate</translation>
@@ -2540,7 +2536,6 @@
 <translation id="6270066318535733958">Siglingar</translation>
 <translation id="6272088941196661550">Haltu ferðinni áfram til að sjá viðkomandi virkni í Chrome ferlinum</translation>
 <translation id="6272383483618007430">Google uppfærslur</translation>
-<translation id="627746635834430766">Til að greiða hraðar næst geturðu vistað kortið og heimilisfang greiðanda á Google reikningnum.</translation>
 <translation id="6279183038361895380">Ýttu á |<ph name="ACCELERATOR" />| til að sýna bendilinn</translation>
 <translation id="6280223929691119688">Ekki er hægt að senda á þetta heimilisfang. Veldu annað heimilisfang.</translation>
 <translation id="6284292079994426700">26 x 38 to.</translation>
@@ -3851,7 +3846,6 @@
 <translation id="8922013791253848639">Leyfa alltaf auglýsingar á þessu vefsvæði</translation>
 <translation id="892588693504540538">Gatað efst til hægri</translation>
 <translation id="8930330541574156305">Fasteignir</translation>
-<translation id="8931333241327730545">Viltu vista þetta kort á Google reikningnum þínum?</translation>
 <translation id="8932102934695377596">Klukkan er á eftir</translation>
 <translation id="893332455753468063">Bæta við nafni</translation>
 <translation id="8942355029279167844">Kerfisstjórinn þinn hefur gefið <ph name="APP_NAME" /> heimild til að safna greiningargögnum til að bæta vöruna. Frekari upplýsingar eru á <ph name="BEGIN_LINK" />https://www.parallels.com/pcep<ph name="END_LINK" />.</translation>
diff --git a/components/strings/components_strings_it.xtb b/components/strings/components_strings_it.xtb
index 1f0df9f..03ec124 100644
--- a/components/strings/components_strings_it.xtb
+++ b/components/strings/components_strings_it.xtb
@@ -125,7 +125,6 @@
 <translation id="1243027604378859286">Autore:</translation>
 <translation id="1246424317317450637">Grassetto</translation>
 <translation id="1247030632403369975">Alluminio</translation>
-<translation id="1250759482327835220">Per pagare più velocemente la prossima volta, salva la carta, il nome e l'indirizzo di fatturazione sul tuo Account Google.</translation>
 <translation id="1252209483516427155">Capispalla</translation>
 <translation id="1253921432148366685"><ph name="TYPE_1" />, <ph name="TYPE_2" /> (sincronizzati)</translation>
 <translation id="1255086252236620440">Robot da cucina</translation>
@@ -158,7 +157,6 @@
 <translation id="1294154142200295408">Variazioni nella riga di comando</translation>
 <translation id="129553762522093515">Chiuse di recente</translation>
 <translation id="1296930489679394997">Vendite</translation>
-<translation id="129863573139666797"><ph name="BEGIN_LINK" />Prova a cancellare i cookie<ph name="END_LINK" /></translation>
 <translation id="1301227606947843452">Legal Extra</translation>
 <translation id="1301324364792935241">Controlla le impostazioni del sistema DNS sicuro</translation>
 <translation id="1307966114820526988">Funzionalità obsolete</translation>
@@ -1348,7 +1346,6 @@
 <translation id="3767485424735936570">Il criterio dell'amministratore sconsiglia di copiare e incollare questi contenuti su <ph name="VM_NAME" /></translation>
 <translation id="3772211998634047851">Carta (per scrivere)</translation>
 <translation id="377451872037045164"><ph name="CREATE_GOOGLE_KEEP_NOTE_FOCUSED_FRIENDLY_MATCH_TEXT" />, premi Tab e poi Invio per creare rapidamente una nuova nota in Google Keep</translation>
-<translation id="3778403066972421603">Vuoi salvare questa carta nel tuo Account Google e su questo dispositivo?</translation>
 <translation id="378026377453746707">Chrome ha funzionalità di sicurezza integrate che ti proteggono durante la navigazione, come Google Navigazione sicura. La funzione Navigazione sicura <ph name="BEGIN_LINK" />ha rilevato di recente software dannoso sul sito <ph name="SITE" /><ph name="END_LINK" />, che è incorporato nel sito che vuoi visitare.</translation>
 <translation id="3780694243617746492">Raccoglitore</translation>
 <translation id="3781428340399460090">Fucsia</translation>
@@ -1954,7 +1951,6 @@
 <translation id="5020776957610079374">World Music</translation>
 <translation id="5021557570875267742">Monitora i prezzi con Chrome</translation>
 <translation id="5023310440958281426">Consulta le norme dell'amministratore</translation>
-<translation id="5029568752722684782">Cancella copia</translation>
 <translation id="5030338702439866405">Emesso da</translation>
 <translation id="503069730517007720">Per "<ph name="SOFTWARE_NAME" />" è richiesto un certificato radice che non è installato. L'amministratore IT deve consultare le istruzioni di configurazione relative a "<ph name="SOFTWARE_NAME" />" per risolvere il problema. <ph name="FURTHER_EXPLANATION" /></translation>
 <translation id="5031870354684148875">Informazioni su Google Traduttore</translation>
@@ -2536,7 +2532,6 @@
 <translation id="6270066318535733958">Nautica</translation>
 <translation id="6272088941196661550">Riprendi il percorso per visualizzare le attività pertinenti nella tua cronologia di Chrome</translation>
 <translation id="6272383483618007430">Google Update</translation>
-<translation id="627746635834430766">Per pagare più velocemente la prossima volta, salva la carta e l'indirizzo di fatturazione sul tuo Account Google.</translation>
 <translation id="6279183038361895380">Premi |<ph name="ACCELERATOR" />| per mostrare il puntatore</translation>
 <translation id="6280223929691119688">Impossibile consegnare all'indirizzo specificato. Seleziona un indirizzo diverso.</translation>
 <translation id="6284292079994426700">66,0 × 96,5 cm</translation>
@@ -3849,7 +3844,6 @@
 <translation id="8922013791253848639">Consenti sempre gli annunci su questo sito</translation>
 <translation id="892588693504540538">Perforatura in alto a destra</translation>
 <translation id="8930330541574156305">Settore immobiliare</translation>
-<translation id="8931333241327730545">Vuoi salvare la scheda nel tuo Account Google?</translation>
 <translation id="8932102934695377596">L'orologio è indietro</translation>
 <translation id="893332455753468063">Aggiungi nome</translation>
 <translation id="8942355029279167844">L'amministratore ha autorizzato <ph name="APP_NAME" /> a raccogliere dati diagnostici per migliorare l'esperienza con il prodotto. Per ulteriori informazioni, visita la pagina <ph name="BEGIN_LINK" />https://www.parallels.com/pcep<ph name="END_LINK" />.</translation>
diff --git a/components/strings/components_strings_iw.xtb b/components/strings/components_strings_iw.xtb
index 8c9cb76f..47f20e3 100644
--- a/components/strings/components_strings_iw.xtb
+++ b/components/strings/components_strings_iw.xtb
@@ -125,7 +125,6 @@
 <translation id="1243027604378859286">מחבר:</translation>
 <translation id="1246424317317450637">מודגש</translation>
 <translation id="1247030632403369975">Aluminum</translation>
-<translation id="1250759482327835220">‏כדי לשלם מהר יותר בפעם הבאה, אפשר לשמור בחשבון Google את פרטי הכרטיס, השם והכתובת לחיוב.</translation>
 <translation id="1252209483516427155">ביגוד עליון</translation>
 <translation id="1253921432148366685"><ph name="TYPE_1" />, <ph name="TYPE_2" /> (מסונכרנים)</translation>
 <translation id="1255086252236620440">מיקסרים</translation>
@@ -158,7 +157,6 @@
 <translation id="1294154142200295408">וריאציות של שורת פקודה</translation>
 <translation id="129553762522093515">נסגרו לאחרונה</translation>
 <translation id="1296930489679394997">מכירות</translation>
-<translation id="129863573139666797">‏<ph name="BEGIN_LINK" />יש לנסות לנקות את קובצי ה-Cookie<ph name="END_LINK" /></translation>
 <translation id="1301227606947843452">‏9.5x15 אינץ' (Legal Extra)</translation>
 <translation id="1301324364792935241">‏בדיקת הגדרות ה-DNS המאובטח</translation>
 <translation id="1307966114820526988">תכונות שהוצאו משימוש</translation>
@@ -1351,7 +1349,6 @@
 <translation id="3767485424735936570">לפי המדיניות של מנהל המערכת, לא מומלץ להעתיק את התוכן ולהדביק אותו ב-<ph name="VM_NAME" /></translation>
 <translation id="3772211998634047851">Paper (Bond)</translation>
 <translation id="377451872037045164">‏<ph name="CREATE_GOOGLE_KEEP_NOTE_FOCUSED_FRIENDLY_MATCH_TEXT" />, מקישים על Tab ואז על Enter כדי ליצור הערה חדשה במהירות ב-Google Keep</translation>
-<translation id="3778403066972421603">‏ברצונך לשמור את הכרטיס בחשבון Google שלך ובמכשיר הזה?</translation>
 <translation id="378026377453746707">‏ב-Chrome יש תכונות בטיחות מובנות שנועדו להגן עליך בזמן הגלישה, כמו הגלישה הבטוחה של Google. התכונה 'גלישה בטוחה' <ph name="BEGIN_LINK" />מצאה לאחרונה תוכנה מזיקה באתר <ph name="SITE" /><ph name="END_LINK" />, שמוטמעת באתר שאליו ניסית להיכנס.</translation>
 <translation id="3780694243617746492">סל פלט</translation>
 <translation id="3781428340399460090">ורוד בוהק</translation>
@@ -1961,7 +1958,6 @@
 <translation id="5020776957610079374">מוזיקת עולם</translation>
 <translation id="5021557570875267742">‏מעקב אחר מחירים באמצעות Chrome</translation>
 <translation id="5023310440958281426">יש לבדוק את תקנון מנהל המערכת שלך</translation>
-<translation id="5029568752722684782">מחיקת העותק</translation>
 <translation id="5030338702439866405">הונפק על ידי</translation>
 <translation id="503069730517007720">‏יש צורך באישור שורש בשביל "<ph name="SOFTWARE_NAME" />", אבל לא מותקן אישור כזה. על מנהל ה-IT לבדוק את הוראות התצורה של "<ph name="SOFTWARE_NAME" />" כדי לפתור את הבעיה. <ph name="FURTHER_EXPLANATION" /></translation>
 <translation id="5031870354684148875">‏מידע על Google Translate</translation>
@@ -2545,7 +2541,6 @@
 <translation id="6270066318535733958">חתירה בסירה</translation>
 <translation id="6272088941196661550">‏חזרה לתהליך כדי להציג את הפעילות הרלוונטית בהיסטוריה ב-Chrome</translation>
 <translation id="6272383483618007430">‏עדכוני Google</translation>
-<translation id="627746635834430766">‏כדי לשלם מהר יותר בפעם הבאה, אפשר לשמור בחשבון Google את פרטי הכרטיס ואת הכתובת לחיוב.</translation>
 <translation id="6279183038361895380">יש להקיש על |<ph name="ACCELERATOR" />| כדי להציג את הסמן</translation>
 <translation id="6280223929691119688">לא ניתן לבצע מסירה בכתובת זו. עליך לבחור כתובת אחרת.</translation>
 <translation id="6284292079994426700">‏26x38 אינץ'</translation>
@@ -3856,7 +3851,6 @@
 <translation id="8922013791253848639">תמיד לאפשר מודעות באתר הזה</translation>
 <translation id="892588693504540538">ניקוב בפינה הימנית העליונה</translation>
 <translation id="8930330541574156305">נדל"ן</translation>
-<translation id="8931333241327730545">‏האם ברצונך לשמור את הכרטיס הזה בחשבון Google שלך?</translation>
 <translation id="8932102934695377596">השעון שלך מאחר</translation>
 <translation id="893332455753468063">הוספת שם</translation>
 <translation id="8942355029279167844">‏מנהל המערכת שלך אפשר לאפליקציה <ph name="APP_NAME" /> לאסוף נתוני אבחון כדי לשפר את חוויית השימוש במוצר. מידע נוסף זמין בכתובת <ph name="BEGIN_LINK" />https://www.parallels.com/pcep<ph name="END_LINK" />.</translation>
diff --git a/components/strings/components_strings_ja.xtb b/components/strings/components_strings_ja.xtb
index 12279859..edf913c 100644
--- a/components/strings/components_strings_ja.xtb
+++ b/components/strings/components_strings_ja.xtb
@@ -125,7 +125,6 @@
 <translation id="1243027604378859286">作成者:</translation>
 <translation id="1246424317317450637">太字</translation>
 <translation id="1247030632403369975">アルミニウム</translation>
-<translation id="1250759482327835220">カード、お名前、請求先住所を Google アカウントに保存すると、次回のお支払いが簡単になります。</translation>
 <translation id="1252209483516427155">アウター</translation>
 <translation id="1253921432148366685"><ph name="TYPE_1" />、<ph name="TYPE_2" />(同期済み)</translation>
 <translation id="1255086252236620440">フードミキサー</translation>
@@ -158,7 +157,6 @@
 <translation id="1294154142200295408">コマンドラインのバリエーション</translation>
 <translation id="129553762522093515">最近閉じたタブ</translation>
 <translation id="1296930489679394997">セールス</translation>
-<translation id="129863573139666797"><ph name="BEGIN_LINK" />Cookie を消去してみてください<ph name="END_LINK" /></translation>
 <translation id="1301227606947843452">リーガル エクストラ</translation>
 <translation id="1301324364792935241">セキュア DNS の設定を確認してください</translation>
 <translation id="1307966114820526988">サポート終了の機能</translation>
@@ -1351,7 +1349,6 @@
 <translation id="3767485424735936570">このコンテンツの <ph name="VM_NAME" /> へのコピーと貼り付けは、管理者のポリシーで推奨されていません</translation>
 <translation id="3772211998634047851">紙(ボンド)</translation>
 <translation id="377451872037045164"><ph name="CREATE_GOOGLE_KEEP_NOTE_FOCUSED_FRIENDLY_MATCH_TEXT" /> です。Tab キー、Enter キーの順に押すと、Google Keep で新しいメモをすばやく作成します</translation>
-<translation id="3778403066972421603">このカードを Google アカウントとこのデバイスに保存しますか?</translation>
 <translation id="378026377453746707">Chrome には、ブラウジング中のユーザーを保護する安全機能が組み込まれています。その一部である Google セーフ ブラウジングにより、最近 <ph name="BEGIN_LINK" /><ph name="SITE" /> で検出された有害なソフトウェア<ph name="END_LINK" />が、アクセスしようとしているサイトに埋め込まれています。</translation>
 <translation id="3780694243617746492">排紙トレイ</translation>
 <translation id="3781428340399460090">ホットピンク</translation>
@@ -1957,7 +1954,6 @@
 <translation id="5020776957610079374">ワールド ミュージック</translation>
 <translation id="5021557570875267742">Chrome で価格をトラッキング</translation>
 <translation id="5023310440958281426">管理者のポリシーを確認してください</translation>
-<translation id="5029568752722684782">コピーを消去</translation>
 <translation id="5030338702439866405">発行元</translation>
 <translation id="503069730517007720">「<ph name="SOFTWARE_NAME" />」のルート証明書が必要ですが、インストールされていません。IT 管理者に、「<ph name="SOFTWARE_NAME" />」の設定手順を確認したうえでこの問題を修正するよう依頼してください。<ph name="FURTHER_EXPLANATION" /></translation>
 <translation id="5031870354684148875">Google 翻訳について</translation>
@@ -2540,7 +2536,6 @@
 <translation id="6270066318535733958">ボート</translation>
 <translation id="6272088941196661550">ジャーニーを再開して、Chrome 履歴で関連するアクティビティを確認します</translation>
 <translation id="6272383483618007430">Google Update</translation>
-<translation id="627746635834430766">カードと請求先住所を Google アカウントに保存すると、次回のお支払いが簡単になります。</translation>
 <translation id="6279183038361895380">カーソルを表示するには |<ph name="ACCELERATOR" />| を押します</translation>
 <translation id="6280223929691119688">この住所には配達できません。別の住所を選択してください。</translation>
 <translation id="6284292079994426700">26x38 インチ</translation>
@@ -3853,7 +3848,6 @@
 <translation id="8922013791253848639">このサイトで常に広告を許可します</translation>
 <translation id="892588693504540538">パンチ(右上)</translation>
 <translation id="8930330541574156305">不動産</translation>
-<translation id="8931333241327730545">このカードを Google アカウントに保存しますか?</translation>
 <translation id="8932102934695377596">時計が遅れています</translation>
 <translation id="893332455753468063">名前の追加</translation>
 <translation id="8942355029279167844">管理者は、<ph name="APP_NAME" /> がサービス改善のために診断データを収集することを許可しています。詳しくは、<ph name="BEGIN_LINK" />https://www.parallels.com/pcep<ph name="END_LINK" /> をご覧ください。</translation>
diff --git a/components/strings/components_strings_ka.xtb b/components/strings/components_strings_ka.xtb
index f90f6937..c1b33d30 100644
--- a/components/strings/components_strings_ka.xtb
+++ b/components/strings/components_strings_ka.xtb
@@ -125,7 +125,6 @@
 <translation id="1243027604378859286">ავტორი:</translation>
 <translation id="1246424317317450637">მუქი</translation>
 <translation id="1247030632403369975">ალუმინი</translation>
-<translation id="1250759482327835220">შემდგომი გადახდების დასაჩქარებლად შეგიძლიათ შეინახოთ თქვენი ბარათის მონაცემები, სახელი და ბილინგის მისამართი თქვენს Google ანგარიშში.</translation>
 <translation id="1252209483516427155">გარე ტანსაცმელი</translation>
 <translation id="1253921432148366685"><ph name="TYPE_1" />, <ph name="TYPE_2" /> (სინქრონიზებული)</translation>
 <translation id="1255086252236620440">საჭმლის მიქსერები</translation>
@@ -158,7 +157,6 @@
 <translation id="1294154142200295408">ბრძანებათა სტრიქონის ვარიანტები</translation>
 <translation id="129553762522093515">ბოლოს დახურული</translation>
 <translation id="1296930489679394997">გაყიდვები</translation>
-<translation id="129863573139666797"><ph name="BEGIN_LINK" />ცადეთ თქვენი ქუქი-ჩანაწერების გასუფთავება<ph name="END_LINK" /></translation>
 <translation id="1301227606947843452">Legal Extra</translation>
 <translation id="1301324364792935241">შეამოწმეთ თქვენი დაცული DNS-ის პარამეტრები</translation>
 <translation id="1307966114820526988">მოძველებული ფუნქციები</translation>
@@ -1351,7 +1349,6 @@
 <translation id="3767485424735936570">ამ კონტენტის კოპირება და <ph name="VM_NAME" />-ში ჩასმა არ არის რეკომენდებული ადმინისტრატორის წესების მიხედვით</translation>
 <translation id="3772211998634047851">ქაღალდი (გადაბმული)</translation>
 <translation id="377451872037045164"><ph name="CREATE_GOOGLE_KEEP_NOTE_FOCUSED_FRIENDLY_MATCH_TEXT" />, Google Keep-ში ახალი ჩანიშვნის სწრაფად შესაქმნელად დააჭირეთ კლავიშს Tab, შემდეგ კი Enter-ს</translation>
-<translation id="3778403066972421603">გსურთ, შეინახოთ ეს ბარათი თქვენს Google ანგარიშში და ამ მოწყობილობაზე?</translation>
 <translation id="378026377453746707">Chrome-ში ჩაშენებულია უსაფრთხოების ფუნქციები, მაგალითად, Google Safe Browsing, რომლებიც დაგიცავთ ვების დათვალიერებისას. Safe Browsing-მა ახლახან <ph name="BEGIN_LINK" /><ph name="SITE" />-ზე აღმოაჩინა საზიანო პროგრამული უზრუნველყოფა<ph name="END_LINK" />, რომელიც ჩაშენებულია იმ საიტში, რომლის მონახულებასაც ცდილობთ.</translation>
 <translation id="3780694243617746492">გამოსასვლელი</translation>
 <translation id="3781428340399460090">მკვეთრი ვარდისფერი</translation>
@@ -1957,7 +1954,6 @@
 <translation id="5020776957610079374">მსოფლიო მუსიკა</translation>
 <translation id="5021557570875267742">გააკონტროლეთ ფასები Chrome-ის მეშვეობით</translation>
 <translation id="5023310440958281426">შეამოწმეთ ადმინისტრატორის წესები</translation>
-<translation id="5029568752722684782">ასლის გასუფთავება</translation>
 <translation id="5030338702439866405">გამცემი:</translation>
 <translation id="503069730517007720">საჭიროა „<ph name="SOFTWARE_NAME" />“-ის ძირეული სერტიფიკატი, რომელიც არ არის დაინსტალირებული. ამ პრობლემის მოსაგვარებლად თქვენმა IT ადმინისტრატორმა უნდა გადახედოს „<ph name="SOFTWARE_NAME" />“-ის კონფიგურაციის ინსტრუქციას. <ph name="FURTHER_EXPLANATION" /></translation>
 <translation id="5031870354684148875">Google Translate-ის შესახებ</translation>
@@ -2540,7 +2536,6 @@
 <translation id="6270066318535733958">ნაოსნობა</translation>
 <translation id="6272088941196661550">გააგრძელეთ თქვენი პროცესი, თქვენს Chrome-ის ისტორიაში შესაბამისი აქტივობა რომ იხილოთ</translation>
 <translation id="6272383483618007430">Google განახლება</translation>
-<translation id="627746635834430766">შემდგომი გადახდების დასაჩქარებლად შეგიძლიათ შეინახოთ თქვენი ბარათის მონაცემები და ბილინგის მისამართი თქვენს Google ანგარიშში.</translation>
 <translation id="6279183038361895380">კურსორის საჩვენებლად, დააჭირეთ კლავიშზე |<ph name="ACCELERATOR" />|</translation>
 <translation id="6280223929691119688">ამ მისამართზე მიწოდება ვერ მოხერხდება. აირჩიეთ სხვა მისამართი.</translation>
 <translation id="6284292079994426700">26 x 38 დუიმი</translation>
@@ -3851,7 +3846,6 @@
 <translation id="8922013791253848639">ამ საიტზე რეკლამის ყოველთვის დაშვება</translation>
 <translation id="892588693504540538">ზედა მარჯვენა ნაწილის გახვრეტა</translation>
 <translation id="8930330541574156305">უძრავი ქონება</translation>
-<translation id="8931333241327730545">გსურთ ამ ბარათის თქვენს Google ანგარიშში შენახვა?</translation>
 <translation id="8932102934695377596">თქვენი საათი უკანაა</translation>
 <translation id="893332455753468063">დაამატეთ სახელი</translation>
 <translation id="8942355029279167844">თქვენმა ადმინისტრატორმა <ph name="APP_NAME" />-ს ნება დართო, შეაგროვოს დიაგნოსტიკური მონაცემები, პროდუქტით სარგებლობის გასაუმჯობესებლად. დამატებითი ინფორმაციისთვის იხილეთ <ph name="BEGIN_LINK" />https://www.parallels.com/pcep<ph name="END_LINK" />.</translation>
diff --git a/components/strings/components_strings_kk.xtb b/components/strings/components_strings_kk.xtb
index a42fe5b..45173e2 100644
--- a/components/strings/components_strings_kk.xtb
+++ b/components/strings/components_strings_kk.xtb
@@ -125,7 +125,6 @@
 <translation id="1243027604378859286">Авторы:</translation>
 <translation id="1246424317317450637">Қалың</translation>
 <translation id="1247030632403369975">Алюминий</translation>
-<translation id="1250759482327835220">Келесіде жылдамырақ төлеу үшін картаңызды, аты-жөніңізді және төлем мекенжайын Google аккаунтыңызға сақтап қойыңыз.</translation>
 <translation id="1252209483516427155">Сырт киім</translation>
 <translation id="1253921432148366685"><ph name="TYPE_1" />, <ph name="TYPE_2" /> (синхрондалған)</translation>
 <translation id="1255086252236620440">Тамақ өнімдерін араластырғыштар</translation>
@@ -158,7 +157,6 @@
 <translation id="1294154142200295408">Пәрмендер жолының нұсқалары</translation>
 <translation id="129553762522093515">Жақында жабылған</translation>
 <translation id="1296930489679394997">Сауда</translation>
-<translation id="129863573139666797"><ph name="BEGIN_LINK" />Сookie файлдарын жоюға тырысыңыз<ph name="END_LINK" /></translation>
 <translation id="1301227606947843452">Legal Extra</translation>
 <translation id="1301324364792935241">Қауіпсіз DNS параметрлерін тексеріңіз.</translation>
 <translation id="1307966114820526988">Ескі функциялар</translation>
@@ -1350,7 +1348,6 @@
 <translation id="3767485424735936570">Әкімші саясаты бойынша бұл контентті <ph name="VM_NAME" /> құрылғысына көшіру және қою әрекеттерін орындамаған дұрыс.</translation>
 <translation id="3772211998634047851">Қағаз (бонд)</translation>
 <translation id="377451872037045164"><ph name="CREATE_GOOGLE_KEEP_NOTE_FOCUSED_FRIENDLY_MATCH_TEXT" />, Google Keep-те жылдам жаңа ескертпе жасау үшін Tab, содан кейін Enter пернесін басыңыз.</translation>
-<translation id="3778403066972421603">Бұл карта осы құрылғыдағы Google аккаунтына сақталсын ба?</translation>
 <translation id="378026377453746707">Chrome-ның браузерді пайдалану кезінде қорғайтын Google Safe Browsing сияқты ендірілген қауіпсіздік мүмкіндіктері бар. Safe Browsing жақында <ph name="BEGIN_LINK" /><ph name="SITE" /> сайтында зиянды бағдарламалық құралды анықтады<ph name="END_LINK" />, ол сіз кіргелі жатқан сайтқа ендірілген.</translation>
 <translation id="3780694243617746492">Шығу деректері</translation>
 <translation id="3781428340399460090">Қою алқызыл</translation>
@@ -1956,7 +1953,6 @@
 <translation id="5020776957610079374">Әлемдік музыка</translation>
 <translation id="5021557570875267742">Chrome браузерімен бағаларды қадағалау</translation>
 <translation id="5023310440958281426">Әкімші саясаттарын тексеріңіз</translation>
-<translation id="5029568752722684782">Көшірмені өшіру</translation>
 <translation id="5030338702439866405">Берген</translation>
 <translation id="503069730517007720">"<ph name="SOFTWARE_NAME" />" түбірлік сертификаты қажет, бірақ ол орнатылмаған. АТ әкімшіңіз мәселені шешу үшін "<ph name="SOFTWARE_NAME" />" конфигурациялық нұсқауларын қарауы керек. <ph name="FURTHER_EXPLANATION" /></translation>
 <translation id="5031870354684148875">Google Translate туралы</translation>
@@ -2539,7 +2535,6 @@
 <translation id="6270066318535733958">Қайықпен серуендеу</translation>
 <translation id="6272088941196661550">Chrome тарихынан сәйкес сұрауларды көру үшін шарлауды жалғастыру</translation>
 <translation id="6272383483618007430">Google Update</translation>
-<translation id="627746635834430766">Келесіде жылдамырақ төлеу үшін картаны және төлем мекенжайын Google аккаунтына сақтаңыз.</translation>
 <translation id="6279183038361895380">Курсорды көрсету үшін |<ph name="ACCELERATOR" />| басыңыз</translation>
 <translation id="6280223929691119688">Бұл мекенжайға жеткізілмейді. Басқа мекенжайды таңдаңыз.</translation>
 <translation id="6284292079994426700">26 x 38 дюйм</translation>
@@ -3850,7 +3845,6 @@
 <translation id="8922013791253848639">Осы сайтта жарнамаларға әрқашан рұқсат ету</translation>
 <translation id="892588693504540538">Жоғарғы оң жағын тесу</translation>
 <translation id="8930330541574156305">Жылжымайтын мүлік</translation>
-<translation id="8931333241327730545">Бұл картаны Google аккаунтына сақтағыңыз келе ме?</translation>
 <translation id="8932102934695377596">Сағатыңыз артта қалған</translation>
 <translation id="893332455753468063">Ат қосу</translation>
 <translation id="8942355029279167844">Әкімші <ph name="APP_NAME" /> қолданбасына өнімді пайдалануды жақсарту үшін диагностикалық деректерді жинауға рұқсат етті. Толығырақ ақпарат алу үшін <ph name="BEGIN_LINK" />https://www.parallels.com/pcep<ph name="END_LINK" /> бетін қараңыз.</translation>
diff --git a/components/strings/components_strings_km.xtb b/components/strings/components_strings_km.xtb
index ba76d74..48f146e 100644
--- a/components/strings/components_strings_km.xtb
+++ b/components/strings/components_strings_km.xtb
@@ -126,7 +126,6 @@
 <translation id="1243027604378859286">អ្នក​និពន្ធ៖</translation>
 <translation id="1246424317317450637">ដិត</translation>
 <translation id="1247030632403369975">អាលុយមីញ៉ូម</translation>
-<translation id="1250759482327835220">ដើម្បី​បង់ប្រាក់​លឿន​ជាងនេះ​នៅពេល​ក្រោយ សូម​រក្សា​ទុកកាត ឈ្មោះ និង​អាសយដ្ឋាន​ចេញ​វិក្កយបត្រ​​ទៅក្នុង​គណនី Google របស់អ្នក។</translation>
 <translation id="1252209483516427155">សម្លៀកបំពាក់ខាងក្រៅ</translation>
 <translation id="1253921432148366685"><ph name="TYPE_1" />, <ph name="TYPE_2" /> (បានធ្វើសមកាលកម្ម)</translation>
 <translation id="1255086252236620440">ម៉ាស៊ីន​កិនអាហារ</translation>
@@ -159,7 +158,6 @@
 <translation id="1294154142200295408">អថេរ​នៃ​អត្ថបទ​បញ្ជា</translation>
 <translation id="129553762522093515">បានបិទកន្លងទៅថ្មីៗ</translation>
 <translation id="1296930489679394997">ការ​លក់</translation>
-<translation id="129863573139666797"><ph name="BEGIN_LINK" />សាកល្បងជម្រះខុកឃីរបស់អ្នក<ph name="END_LINK" /></translation>
 <translation id="1301227606947843452">Legal Extra</translation>
 <translation id="1301324364792935241">ពិនិត្យ​ការកំណត់ DNS សុវត្ថិភាពរបស់អ្នក</translation>
 <translation id="1307966114820526988">មុខងារ​ដែលបាន​បញ្ឈប់</translation>
@@ -1354,7 +1352,6 @@
 <translation id="3767485424735936570">គោលការណ៍​អ្នកគ្រប់គ្រង​មិនណែនាំឱ្យ​ចម្លង និងដាក់ចូលខ្លឹមសារនេះទៅក្នុង <ph name="VM_NAME" /> ទេ</translation>
 <translation id="3772211998634047851">ក្រដាស (ក្រាស់រឹង)</translation>
 <translation id="377451872037045164"><ph name="CREATE_GOOGLE_KEEP_NOTE_FOCUSED_FRIENDLY_MATCH_TEXT" />, ចុច Tab រួចចុច Enter ដើម្បីបង្កើត​កំណត់ចំណាំថ្មី​នៅក្នុង Google Keep បានរហ័ស</translation>
-<translation id="3778403066972421603">តើអ្នកចង់រក្សាទុកបណ្ណនេះទៅគណនី Google របស់អ្នក និងនៅលើឧបករណ៍នេះដែរទេ?</translation>
 <translation id="378026377453746707">Chrome មាន​មុខងារ​សុវត្ថិភាព​ដែលភ្ជាប់មក​ជាមួយស្រាប់ ដើម្បី​ការពារអ្នក នៅពេលដែល​អ្នករុករក ដូចជា​ការរុករក​ដោយសុវត្ថិភាព​នៅលើ Google។ ថ្មីៗនេះ ការរុករក​ដោយសុវត្ថិភាព<ph name="BEGIN_LINK" />បានរកឃើញ​កម្មវិធីបង្កគ្រោះថ្នាក់​នៅលើ <ph name="SITE" /><ph name="END_LINK" /> ដែលត្រូវបាន​បង្កប់នៅក្នុង​គេហទំព័រ​ដែលអ្នកកំពុងព្យាយាម​ចូលមើល។</translation>
 <translation id="3780694243617746492">ទម្រ​ធាតុបញ្ចេញ</translation>
 <translation id="3781428340399460090">ផ្កាឈូកចាស់</translation>
@@ -1961,7 +1958,6 @@
 <translation id="5020776957610079374">តន្ត្រី​ពិភពលោក</translation>
 <translation id="5021557570875267742">តាមដាន​តម្លៃ​ដោយប្រើ Chrome</translation>
 <translation id="5023310440958281426">ពិនិត្យគោលការណ៍អ្នកគ្រប់គ្រងរបស់អ្នក</translation>
-<translation id="5029568752722684782">ជម្រះការថតចម្លង</translation>
 <translation id="5030338702439866405">ចេញដោយ</translation>
 <translation id="503069730517007720">តម្រូវឱ្យមានវិញ្ញាបនបត្រគោលសម្រាប់ "<ph name="SOFTWARE_NAME" />" ប៉ុន្តែមិនចាំបាច់ដំឡើងទេ។ អ្នកគ្រប់គ្រងផ្នែកព័ត៌មានវិទ្យារបស់អ្នកគួរតែមើលការណែនាំអំពីការកំណត់រចនាសម្ព័ន្ធសម្រាប់ "<ph name="SOFTWARE_NAME" />" ដើម្បីដោះស្រាយបញ្ហានេះ។ <ph name="FURTHER_EXPLANATION" /></translation>
 <translation id="5031870354684148875">អំពី Google បកប្រែ</translation>
@@ -2544,7 +2540,6 @@
 <translation id="6270066318535733958">ការជិះទូក</translation>
 <translation id="6272088941196661550">បន្ត​ការស្វែងរករបស់អ្នក ដើម្បីមើល​សកម្មភាព​ដែលពាក់ព័ន្ធ​នៅក្នុង​ប្រវត្តិ Chrome របស់អ្នក</translation>
 <translation id="6272383483618007430">Google បច្ចុប្បន្នភាព</translation>
-<translation id="627746635834430766">ដើម្បី​បង់ប្រាក់​លឿន​ជាងនេះ​នៅពេល​ក្រោយ សូម​រក្សា​ទុកបណ្ណ និង​អាសយដ្ឋាន​ចេញ​វិក្កយបត្រ​របស់អ្នក​ទៅក្នុង​គណនី Google របស់​អ្នក។</translation>
 <translation id="6279183038361895380">ចុច |<ph name="ACCELERATOR" />| ដើម្បីបង្ហាញទស្សន៍ទ្រនិចរបស់អ្នក</translation>
 <translation id="6280223929691119688">មិនអាចដឹកជញ្ជូនផ្ទាល់ទៅអាសយដ្ឋាននេះបានទេ។ សូមជ្រើសរើសអាសយដ្ឋានផ្សេង។</translation>
 <translation id="6284292079994426700">26 x 38 in</translation>
@@ -3858,7 +3853,6 @@
 <translation id="8922013791253848639">អនុញ្ញាត​ការផ្សាយ​ពាណិជ្ជកម្ម​នៅលើ​ទំព័រនេះ​ជានិច្ច</translation>
 <translation id="892588693504540538">ចោះ​ខាងលើ​ផ្នែក​ខាងស្ដាំ</translation>
 <translation id="8930330541574156305">អចលនទ្រព្យ</translation>
-<translation id="8931333241327730545">តើអ្នកចង់រក្សាទុកកាតនេះទៅគណនី Google របស់អ្នកដែរឬទេ?</translation>
 <translation id="8932102934695377596">ម៉ោងរបស់អ្នកដើរយឺត</translation>
 <translation id="893332455753468063">បញ្ចូល​ឈ្មោះ</translation>
 <translation id="8942355029279167844">អ្នកគ្រប់គ្រង​របស់អ្នកបាន​អនុញ្ញាតឱ្យ <ph name="APP_NAME" /> ប្រមូលទិន្នន័យ​វិភាគ ដើម្បីកែលម្អបទពិសោធន៍ប្រើប្រាស់​ផលិតផល។ សូមមើល <ph name="BEGIN_LINK" />https://www.parallels.com/pcep<ph name="END_LINK" /> ដើម្បីទទួលបាន​ព័ត៌មានបន្ថែម។</translation>
diff --git a/components/strings/components_strings_kn.xtb b/components/strings/components_strings_kn.xtb
index 9503960..c63c164e 100644
--- a/components/strings/components_strings_kn.xtb
+++ b/components/strings/components_strings_kn.xtb
@@ -125,7 +125,6 @@
 <translation id="1243027604378859286">ಲೇಖಕರು:</translation>
 <translation id="1246424317317450637">ಬೋಲ್ಡ್</translation>
 <translation id="1247030632403369975">ಅಲ್ಯೂಮಿನಿಯಂ</translation>
-<translation id="1250759482327835220">ಮುಂದಿನ ಬಾರಿ ವೇಗವಾಗಿ ಪಾವತಿಸಲು, ನಿಮ್ಮ ಕಾರ್ಡ್, ಹೆಸರು ಮತ್ತು ಬಿಲ್ಲಿಂಗ್ ವಿಳಾಸವನ್ನು ನಿಮ್ಮ Google ಖಾತೆಯಲ್ಲಿ ಉಳಿಸಿ.</translation>
 <translation id="1252209483516427155">ಹೊರಾಂಗಣ ಉಡುಪು</translation>
 <translation id="1253921432148366685"><ph name="TYPE_1" />, <ph name="TYPE_2" /> (ಸಿಂಕ್ ಮಾಡಲಾಗಿದೆ)</translation>
 <translation id="1255086252236620440">ಆಹಾರ ಮಿಕ್ಸರ್‌ಗಳು</translation>
@@ -158,7 +157,6 @@
 <translation id="1294154142200295408">ಕಮಾಂಡ್-ಲೈನ್ ವ್ಯತ್ಯಾಸಗಳು</translation>
 <translation id="129553762522093515">ಇತ್ತೀಚೆಗೆ ಮುಚ್ಚಲಾಗಿರುವುದು</translation>
 <translation id="1296930489679394997">ಮಾರಾಟಗಳು</translation>
-<translation id="129863573139666797"><ph name="BEGIN_LINK" />ನಿಮ್ಮ ಕುಕೀಗಳನ್ನು ತೆರವುಗೊಳಿಸಲು ಪ್ರಯತ್ನಿಸಿ<ph name="END_LINK" /></translation>
 <translation id="1301227606947843452">Legal Extra</translation>
 <translation id="1301324364792935241">ನಿಮ್ಮ ಸುರಕ್ಷಿತ DNS ಸೆಟ್ಟಿಂಗ್‌ಗಳನ್ನು ಪರಿಶೀಲಿಸಿ</translation>
 <translation id="1307966114820526988">ತೆಗೆದುಹಾಕಲಾದ ವೈಶಿಷ್ಟ್ಯಗಳು</translation>
@@ -1348,7 +1346,6 @@
 <translation id="3767485424735936570">ಈ ಕಂಟೆಂಟ್ ಅನ್ನು <ph name="VM_NAME" /> ನಲ್ಲಿ ನಕಲಿಸುವುದನ್ನು ಮತ್ತು ಪೇಸ್ಟ್ ಮಾಡುವುದನ್ನು ನಿರ್ವಾಹಕರ ನೀತಿಯು ಶಿಫಾರಸು ಮಾಡುವುದಿಲ್ಲ</translation>
 <translation id="3772211998634047851">ಕಾಗದ (ಬಾಂಡ್)</translation>
 <translation id="377451872037045164"><ph name="CREATE_GOOGLE_KEEP_NOTE_FOCUSED_FRIENDLY_MATCH_TEXT" />, Google Keep ನಲ್ಲಿ ಹೊಸ ಟಿಪ್ಪಣಿಯನ್ನು ತ್ವರಿತವಾಗಿ ರಚಿಸಲು Tab ಒತ್ತಿ, ನಂತರ Enter ಒತ್ತಿ</translation>
-<translation id="3778403066972421603">ಈ ಕಾರ್ಡ್‌ ಅನ್ನು ನಿಮ್ಮ Google ಖಾತೆ ಮತ್ತು ಈ ಸಾಧನದಲ್ಲಿ ಉಳಿಸಲು ಬಯಸುವಿರಾ?</translation>
 <translation id="378026377453746707">ಬ್ರೌಸ್ ಮಾಡುತ್ತಿರುವಾಗ ನಿಮ್ಮನ್ನು ರಕ್ಷಿಸಲು Google Safe Browsing ನಂತಹ ಅಂತರ್ನಿರ್ಮಿತ ಭದ್ರತಾ ಫೀಚರ್‌ಗಳನ್ನು Chrome ಹೊಂದಿದೆ. ಸುರಕ್ಷಿತ ಬ್ರೌಸಿಂಗ್‌ ಇತ್ತೀಚೆಗೆ <ph name="BEGIN_LINK" /><ph name="SITE" /> ನಲ್ಲಿ ಹಾನಿಕಾರಕ ಸಾಫ್ಟ್‌ವೇರ್ ಅನ್ನು ಕಂಡುಹಿಡಿದಿದೆ<ph name="END_LINK" />, ಅದನ್ನು ನೀವು ಭೇಟಿ ನೀಡಲು ಪ್ರಯತ್ನಿಸುತ್ತಿರುವ ಸೈಟ್‌ನಲ್ಲಿ ಎಂಬೆಡ್ ಮಾಡಲಾಗಿದೆ.</translation>
 <translation id="3780694243617746492">ಔಟ್‌ಪುಟ್ ಬಿನ್</translation>
 <translation id="3781428340399460090">ಗಾಢ ಗುಲಾಬಿ</translation>
@@ -1954,7 +1951,6 @@
 <translation id="5020776957610079374">ಜಾಗತಿಕ ಸಂಗೀತ</translation>
 <translation id="5021557570875267742">Chrome ಮೂಲಕ ಬೆಲೆಗಳನ್ನು ಟ್ರ್ಯಾಕ್ ಮಾಡಿ</translation>
 <translation id="5023310440958281426">ನಿಮ್ಮ ನಿರ್ವಾಹಕ ನೀತಿಗಳನ್ನು ಪರಿಶೀಲಿಸಿ</translation>
-<translation id="5029568752722684782">ನಕಲು ತೆರವುಗೊಳಿಸು</translation>
 <translation id="5030338702439866405">ಇವರಿಂದ ನೀಡಲಾಗಿದೆ</translation>
 <translation id="503069730517007720">"<ph name="SOFTWARE_NAME" />" ಗೆ ರೂಟ್ ಪ್ರಮಾಣಪತ್ರದ ಅಗತ್ಯವಿದೆ ಆದರೆ ಇನ್‌ಸ್ಟಾಲ್‌ ಮಾಡಲಾಗಿಲ್ಲ. ಈ ಸಮಸ್ಯೆಯನ್ನು ಪರಿಹರಿಸಲು ನಿಮ್ಮ IT ನಿರ್ವಾಹಕರು "<ph name="SOFTWARE_NAME" />" ಗಾಗಿ ಕಾನ್ಫಿಗರೇಶನ್ ಸೂಚನೆಗಳ ಕಡೆ ಗಮನವಿಡಬೇಕು. <ph name="FURTHER_EXPLANATION" /></translation>
 <translation id="5031870354684148875">Google ಅನುವಾದದ ಕುರಿತು</translation>
@@ -2536,7 +2532,6 @@
 <translation id="6270066318535733958">ದೋಣಿ ವಿಹಾರ</translation>
 <translation id="6272088941196661550">ನಿಮ್ಮ Chrome ಇತಿಹಾಸದಲ್ಲಿ ಸಂಬಂಧಿತ ಚಟುವಟಿಕೆಯನ್ನು ನೋಡಲು ನಿಮ್ಮ ಪ್ರಯಾಣವನ್ನು ಪುನರಾರಂಭಿಸಿ</translation>
 <translation id="6272383483618007430">Google ಅಪ್‍ಡೇಟ್</translation>
-<translation id="627746635834430766">ಮುಂದಿನ ಬಾರಿ ವೇಗವಾಗಿ ಪಾವತಿಸಲು, ನಿಮ್ಮ ಕಾರ್ಡ್‌ ಮತ್ತು ಬಿಲ್ಲಿಂಗ್ ವಿಳಾಸವನ್ನು ನಿಮ್ಮ Google ಖಾತೆಯಲ್ಲಿ ಉಳಿಸಿ.</translation>
 <translation id="6279183038361895380">ನಿಮ್ಮ ಕರ್ಸರ್ ತೋರಿಸಲು |<ph name="ACCELERATOR" />| ಒತ್ತಿ</translation>
 <translation id="6280223929691119688">ಈ ವಿಳಾಸಕ್ಕೆ ತಲುಪಿಸಲು ಸಾಧ್ಯವಿಲ್ಲ. ಬೇರೊಂದು ವಿಳಾಸವನ್ನು ಆಯ್ಕೆ ಮಾಡಿ.</translation>
 <translation id="6284292079994426700">26 x 38 ಇಂಚು</translation>
@@ -3849,7 +3844,6 @@
 <translation id="8922013791253848639">ಈ ಸೈಟ್‌ನಲ್ಲಿ ಯಾವಾಗಲೂ ಜಾಹೀರಾತುಗಳನ್ನು ಅನುಮತಿಸಿ</translation>
 <translation id="892588693504540538">ಮೇಲಿನ ಬಲಭಾಗದಲ್ಲಿ ತೂತು ಮಾಡಿ</translation>
 <translation id="8930330541574156305">ರಿಯಲ್ ಎಸ್ಟೇಟ್</translation>
-<translation id="8931333241327730545">ಈ ಕಾರ್ಡನ್ನು ನಿಮ್ಮ Google ಖಾತೆನಲ್ಲಿ ಉಳಿಸಲು ಬಯಸುವಿರಾ?</translation>
 <translation id="8932102934695377596">ನಿಮ್ಮ ಗಡಿಯಾರ ಹಿಂದೆ ಇದೆ</translation>
 <translation id="893332455753468063">ಹೆಸರು ಸೇರಿಸಿ</translation>
 <translation id="8942355029279167844">ಉತ್ಪನ್ನದ ಅನುಭವವನ್ನು ಸುಧಾರಿಸುವುದಕ್ಕೆ ಡಯಾಗ್ನಾಸ್ಟಿಕ್ಸ್ ಡೇಟಾವನ್ನು ಸಂಗ್ರಹಿಸಲು ನಿಮ್ಮ ನಿರ್ವಾಹಕರು <ph name="APP_NAME" /> ಗೆ ಅನುಮತಿಸಿದ್ದಾರೆ. ಹೆಚ್ಚಿನ ಮಾಹಿತಿಗಾಗಿ, <ph name="BEGIN_LINK" />https://www.parallels.com/pcep<ph name="END_LINK" /> ಗೆ ಭೇಟಿ ನೀಡಿ.</translation>
diff --git a/components/strings/components_strings_ko.xtb b/components/strings/components_strings_ko.xtb
index b2c7af2..36a57db 100644
--- a/components/strings/components_strings_ko.xtb
+++ b/components/strings/components_strings_ko.xtb
@@ -125,7 +125,6 @@
 <translation id="1243027604378859286">작성자:</translation>
 <translation id="1246424317317450637">굵게</translation>
 <translation id="1247030632403369975">알루미늄</translation>
-<translation id="1250759482327835220">다음번에 더 빠르게 결제할 수 있도록 Google 계정에 카드, 이름, 청구서 수신 주소를 저장하세요.</translation>
 <translation id="1252209483516427155">외투</translation>
 <translation id="1253921432148366685"><ph name="TYPE_1" />, <ph name="TYPE_2" />(동기화됨)</translation>
 <translation id="1255086252236620440">조리용 믹서</translation>
@@ -158,7 +157,6 @@
 <translation id="1294154142200295408">명령줄 변형</translation>
 <translation id="129553762522093515">최근에 닫은 탭</translation>
 <translation id="1296930489679394997">판매</translation>
-<translation id="129863573139666797"><ph name="BEGIN_LINK" />쿠키 삭제해 보기<ph name="END_LINK" /></translation>
 <translation id="1301227606947843452">Legal Extra</translation>
 <translation id="1301324364792935241">보안 DNS 설정 확인</translation>
 <translation id="1307966114820526988">지원 중단 기능</translation>
@@ -1351,7 +1349,6 @@
 <translation id="3767485424735936570">이 콘텐츠를 복사하여 <ph name="VM_NAME" />에 붙여넣는 작업은 관리자 정책에 따라 권장되지 않습니다.</translation>
 <translation id="3772211998634047851">용지(본드)</translation>
 <translation id="377451872037045164"><ph name="CREATE_GOOGLE_KEEP_NOTE_FOCUSED_FRIENDLY_MATCH_TEXT" />, Tab을 누른 다음 Enter를 눌러 Google Keep에서 빠르게 새 메모 만들기</translation>
-<translation id="3778403066972421603">이 카드를 Google 계정과 이 기기에 저장하시겠습니까?</translation>
 <translation id="378026377453746707">Chrome에는 Google 세이프 브라우징과 같이 인터넷을 사용하는 동안 사용자를 보호해 주는 안전 기능이 내장되어 있습니다. 최근 세이프 브라우징에서 사용자님이 방문하고자 한 <ph name="BEGIN_LINK" /><ph name="SITE" /> 사이트에 위험한 소프트웨어가 삽입되어 있음을 발견<ph name="END_LINK" />했습니다</translation>
 <translation id="3780694243617746492">출력함</translation>
 <translation id="3781428340399460090">진한 분홍색</translation>
@@ -1957,7 +1954,6 @@
 <translation id="5020776957610079374">제3세계 음악</translation>
 <translation id="5021557570875267742">Chrome으로 가격 추적</translation>
 <translation id="5023310440958281426">관리자 정책을 확인하세요.</translation>
-<translation id="5029568752722684782">사본 지우기</translation>
 <translation id="5030338702439866405">발급 기관</translation>
 <translation id="503069730517007720">'<ph name="SOFTWARE_NAME" />'의 루트 인증서가 필요하지만 설치되어 있지 않습니다. IT 관리자가 '<ph name="SOFTWARE_NAME" />'의 설정 안내에 따라 이 문제를 해결해야 합니다. <ph name="FURTHER_EXPLANATION" /></translation>
 <translation id="5031870354684148875">Google 번역 정보</translation>
@@ -2540,7 +2536,6 @@
 <translation id="6270066318535733958">보트 타기</translation>
 <translation id="6272088941196661550">Chrome 방문 기록에서 관련 활동을 보려면 탐색 여정을 재개하세요.</translation>
 <translation id="6272383483618007430">Google 업데이트</translation>
-<translation id="627746635834430766">다음번에 더 빠르게 결제할 수 있도록 Google 계정에 카드와 청구서 수신 주소를 저장하세요.</translation>
 <translation id="6279183038361895380">|<ph name="ACCELERATOR" />|을(를) 눌러 커서 표시</translation>
 <translation id="6280223929691119688">이 주소로 배달할 수 없습니다. 다른 주소를 선택하세요.</translation>
 <translation id="6284292079994426700">26x38인치</translation>
@@ -3850,7 +3845,6 @@
 <translation id="8922013791253848639">이 사이트의 광고 항상 허용</translation>
 <translation id="892588693504540538">오른쪽 상단 펀칭</translation>
 <translation id="8930330541574156305">부동산</translation>
-<translation id="8931333241327730545">이 카드를 Google 계정에 저장하시겠습니까?</translation>
 <translation id="8932102934695377596">시간이 너무 먼 과거로 설정되어 있습니다.</translation>
 <translation id="893332455753468063">이름 추가</translation>
 <translation id="8942355029279167844">관리자가 <ph name="APP_NAME" /> 앱에서 제품 환경 개선을 위한 진단 데이터를 수집하도록 허용했습니다. 자세한 내용은 <ph name="BEGIN_LINK" />https://www.parallels.com/pcep<ph name="END_LINK" />를 참고하세요.</translation>
diff --git a/components/strings/components_strings_ky.xtb b/components/strings/components_strings_ky.xtb
index 95ff560..401bfa81 100644
--- a/components/strings/components_strings_ky.xtb
+++ b/components/strings/components_strings_ky.xtb
@@ -125,7 +125,6 @@
 <translation id="1243027604378859286">Автор:</translation>
 <translation id="1246424317317450637">Жоон</translation>
 <translation id="1247030632403369975">Алюминий</translation>
-<translation id="1250759482327835220">Кийинки жолу тезирээк төлөө үчүн картаңызды, аты-жөнүңүздү жана эсептешүү дарегин Google аккаунтуңузга сактап коюңуз.</translation>
 <translation id="1252209483516427155">Сырт кийим</translation>
 <translation id="1253921432148366685"><ph name="TYPE_1" />, <ph name="TYPE_2" /> (шайкештирилген)</translation>
 <translation id="1255086252236620440">Тамак-аш чалгычы</translation>
@@ -158,7 +157,6 @@
 <translation id="1294154142200295408">Буйрук сабынын варианттары</translation>
 <translation id="129553762522093515">Жакында жабылган</translation>
 <translation id="1296930489679394997">Арзандатуулар</translation>
-<translation id="129863573139666797"><ph name="BEGIN_LINK" />Кукилериңизди тазалап көрүңүз<ph name="END_LINK" /></translation>
 <translation id="1301227606947843452">Legal Extra</translation>
 <translation id="1301324364792935241">Коопсуз DNS параметрлериңизди текшериңиз</translation>
 <translation id="1307966114820526988">Жоюлган функциялар</translation>
@@ -1350,7 +1348,6 @@
 <translation id="3767485424735936570">Администраторуңуз бул мазмунду <ph name="VM_NAME" /> көчүрүп, чаптоону сунуштабайт</translation>
 <translation id="3772211998634047851">Кагаз (жогорку сапаттуу)</translation>
 <translation id="377451872037045164"><ph name="CREATE_GOOGLE_KEEP_NOTE_FOCUSED_FRIENDLY_MATCH_TEXT" />, Google Keep'те эскертмени тез жазуу үчүн Tab, андан кийин Enter баскычтарын басыңыз</translation>
-<translation id="3778403066972421603">Бул карточка Google аккаунтуңузда жана ушул түзмөктө сакталсынбы?</translation>
 <translation id="378026377453746707">Chrome'дун Google Коопсуз серептөө сыяктуу алдын ала орнотулган коопсуздук функциялары серептөө учурунда сизди коргойт. Коопсуз серептөө аркылуу жакында сиз кирүүгө аракет кылып жаткан сайтка жалгаштырылган <ph name="BEGIN_LINK" /><ph name="SITE" /> сайтында зыяндуу программа табылды<ph name="END_LINK" />.</translation>
 <translation id="3780694243617746492">Чыгаруу түпкүчү</translation>
 <translation id="3781428340399460090">Ачык кызгылтым</translation>
@@ -1956,7 +1953,6 @@
 <translation id="5020776957610079374">Дүйнөлүк музыка</translation>
 <translation id="5021557570875267742">Бааларга Chrome менен көз салуу</translation>
 <translation id="5023310440958281426">Администраторуңуздун эрежелерин текшериңиз</translation>
-<translation id="5029568752722684782">Көчүрмөнү тазалоо</translation>
 <translation id="5030338702439866405">Ким берген</translation>
 <translation id="503069730517007720">"<ph name="SOFTWARE_NAME" />" программасынын түпкү тастыктамасы талап кылынат, бирок ал орнотулган эмес. Көйгөйдү чечүү үчүн IT администраторуңуз "<ph name="SOFTWARE_NAME" />" программасынын конфигурациясында берилген нускамаларды карап чыгышы керек. <ph name="FURTHER_EXPLANATION" /></translation>
 <translation id="5031870354684148875">Google Котормо жөнүндө</translation>
@@ -2539,7 +2535,6 @@
 <translation id="6270066318535733958">Кайыкта</translation>
 <translation id="6272088941196661550">Chrome´до көрүлгөн вебсайттарыңыздын арасынан ылайыктууларын көрүү үчүн саякатты улантыңыз</translation>
 <translation id="6272383483618007430">Google Update</translation>
-<translation id="627746635834430766">Кийинки жолу тезирээк төлөө үчүн картаңыз менен эсептешүү дарегин Google аккаунтуңузга сактап коюңуз.</translation>
 <translation id="6279183038361895380">Курсоруңузду көрсөтүү үчүн |<ph name="ACCELERATOR" />| дегенди басыңыз</translation>
 <translation id="6280223929691119688">Бул дарекке жеткирүү мүмкүн эмес. Башка дарек тандаңыз.</translation>
 <translation id="6284292079994426700">26 x 38 дюйм</translation>
@@ -3850,7 +3845,6 @@
 <translation id="8922013791253848639">Бул сайттагы жарнамалар дайыма көрүнсүн</translation>
 <translation id="892588693504540538">Жогорку оң жагын тешүү</translation>
 <translation id="8930330541574156305">Кыймылсыз мүлк</translation>
-<translation id="8931333241327730545">Бул карточканы Google аккаунтуңузга сактап коесузбу?</translation>
 <translation id="8932102934695377596">Саатыңыз артта</translation>
 <translation id="893332455753468063">Атын кошуу</translation>
 <translation id="8942355029279167844">Кызматты жакшыртуу максатында администраторуңуз <ph name="APP_NAME" /> колдонмосуна мүчүлүштүктөрдү оңдоо дайындарын топтоого уруксат берди. Толук маалымат алуу үчүн <ph name="BEGIN_LINK" />https://www.parallels.com/pcep<ph name="END_LINK" /> дарегине өтүңүз.</translation>
diff --git a/components/strings/components_strings_lo.xtb b/components/strings/components_strings_lo.xtb
index fe96c19f..2fc64bd 100644
--- a/components/strings/components_strings_lo.xtb
+++ b/components/strings/components_strings_lo.xtb
@@ -125,7 +125,6 @@
 <translation id="1243027604378859286">ຜູ້ຂຽນ:</translation>
 <translation id="1246424317317450637">ໂຕເຂັ້ມ</translation>
 <translation id="1247030632403369975">ອະລູມິນຽມ</translation>
-<translation id="1250759482327835220">ເພື່ອຈ່າຍໄດ້ໄວກວ່າໃນຄັ້ງຕໍ່ໄປ, ກະລຸນາບັນທຶກບັດ ແລະ ທີ່ຢູ່ຮຽກເກັບເງິນຂອງທ່ານໄວ້ໃນບັນຊີ Google ຂອງທ່ານ.</translation>
 <translation id="1252209483516427155">ເຄື່ອງນຸ່ງຊັ້ນນອກ</translation>
 <translation id="1253921432148366685"><ph name="TYPE_1" />, <ph name="TYPE_2" /> (ຊິ້ງຂໍ້ມູນແລ້ວ)</translation>
 <translation id="1255086252236620440">ເຄື່ອງປະສົມອາຫານ</translation>
@@ -158,7 +157,6 @@
 <translation id="1294154142200295408">ການປ່ຽນແປງແຖວຄຳສັ່ງ</translation>
 <translation id="129553762522093515">ປິດ​ບໍ່​ດົນ​ມາ​ນີ້</translation>
 <translation id="1296930489679394997">ຫຼຸດລາຄາ</translation>
-<translation id="129863573139666797"><ph name="BEGIN_LINK" />ລອງລຶບລ້າງຄຸກກີ້ຂອງທ່ານ<ph name="END_LINK" /></translation>
 <translation id="1301227606947843452">Legal Extra</translation>
 <translation id="1301324364792935241">ກວດເບິ່ງການຕັ້ງຄ່າ DNS ທີ່ປອດໄພຂອງທ່ານ</translation>
 <translation id="1307966114820526988">ຄຸນສົມບັດທີ່ເຊົາຮອງຮັບແລ້ວ</translation>
@@ -1351,7 +1349,6 @@
 <translation id="3767485424735936570">ນະໂຍບາຍຜູ້ເບິ່ງແຍງລະບບບໍ່ແນະນຳການສຳເນົາ ແລະ ວາງເນື້ອຫານີ້ໃສ່ <ph name="VM_NAME" /></translation>
 <translation id="3772211998634047851">ເຈ້ຍ (ບອນດ໌)</translation>
 <translation id="377451872037045164"><ph name="CREATE_GOOGLE_KEEP_NOTE_FOCUSED_FRIENDLY_MATCH_TEXT" />, ກົດ Tab ຈາກນັ້ນກົດ Enter ເພື່ອສ້າງບັນທຶກໃໝ່ໃນ Google Keep ໄດ້ຢ່າງວ່ອງໄວ</translation>
-<translation id="3778403066972421603">ທ່ານຕ້ອງການບັນທຶກບັດນີ້ໃສ່ບັນຊີ Google ຂອງທ່ານ ແລະ ໃນອຸປະກອນນີ້ບໍ?</translation>
 <translation id="378026377453746707">Chrome ມີຄຸນສົມບັດຄວາມປອດໄພໃນຕົວເພື່ອປົກປ້ອງທ່ານໃນລະຫວ່າງທີ່ທ່ານທ່ອງເວັບ ເຊັ່ນ: Google Safe Browsing. ເມື່ອບໍ່ດົນມານີ້ Safe Browsing <ph name="BEGIN_LINK" />ໄດ້ພົບຊອບແວທີ່ເປັນອັນຕະລາຍຢູ່ <ph name="SITE" /><ph name="END_LINK" />, ເຊິ່ງຖືກຝັງຢູ່ໃນເວັບໄຊຫາກທ່ານພະຍາຍາມເຂົ້າເບິ່ງ.</translation>
 <translation id="3780694243617746492">ຖາດເຈ້ຍອອກ</translation>
 <translation id="3781428340399460090">ສີ​ບົວ​ເຂັ້ມ</translation>
@@ -1957,7 +1954,6 @@
 <translation id="5020776957610079374">ເພງທົ່ວໂລກ</translation>
 <translation id="5021557570875267742">ຕິດຕາມລາຄາດ້ວຍ Chrome</translation>
 <translation id="5023310440958281426">ກວດ​ເບິ່ງ​ນະ​ໂຍ​ບາຍ​ຂອງຜູ້ຄຸ້ມຄອງ​ຂອງ​ທ່ານ</translation>
-<translation id="5029568752722684782">ລ້າງ​ສຳ​ເນົາ</translation>
 <translation id="5030338702439866405">ອອກໃຫ້ໂດຍ</translation>
 <translation id="503069730517007720">ຈຳເປັນຕ້ອງມີໃບຮັບຮອງພື້ນຖານສຳລັບ <ph name="SOFTWARE_NAME" /> ແຕ່ຍັງບໍ່ໄດ້ຕິດຕັ້ງເທື່ອ. ຜູ້ເບິ່ງແຍງລະບົບເຄືອຂ່າຍຂອງທ່ານຄວນກວດເບິ່ງຄຳແນະນຳການກຳນົດຄ່າສຳລັບ <ph name="SOFTWARE_NAME" /> ເພື່ອແກ້ໄຂບັນຫານີ້. <ph name="FURTHER_EXPLANATION" /></translation>
 <translation id="5031870354684148875">ກ່ຽວກັບ Google ແປພາສາ</translation>
@@ -2540,7 +2536,6 @@
 <translation id="6270066318535733958">ຂີ່ເຮືອ</translation>
 <translation id="6272088941196661550">ສືບຕໍ່ບັນທຶກຂອງທ່ານເພື່ອເບິ່ງການເຄື່ອນໄຫວທີ່ກ່ຽວຂ້ອງໃນປະຫວັດ Chrome ຂອງທ່ານ</translation>
 <translation id="6272383483618007430">Google Update</translation>
-<translation id="627746635834430766">ເພື່ອຈ່າຍໄດ້ໄວກວ່າໃນຄັ້ງຕໍ່ໄປ, ກະລຸນາບັນທຶກບັດ ແລະ ທີ່ຢູ່ຮຽກເກັບເງິນຂອງທ່ານໄວ້ໃນບັນຊີ Google ຂອງທ່ານ.</translation>
 <translation id="6279183038361895380">ກົດ |<ph name="ACCELERATOR" />| ເພື່ອສະແດງເຄີເຊີຂອງທ່ານ</translation>
 <translation id="6280223929691119688">ບໍ່ສາມາດສົ່ງຫາທີ່ຢູ່ນີ້ໄດ້. ກະລຸນາເລືອກທີ່ຢູ່ອື່ນ.</translation>
 <translation id="6284292079994426700">26 x 38 ນິ້ວ</translation>
@@ -3852,7 +3847,6 @@
 <translation id="8922013791253848639">ອະນຸຍາດໂຄສະນາໃນເວັບໄຊນີ້ທຸກເທື່ອ</translation>
 <translation id="892588693504540538">ເຈາະຮູເທິງສຸດເບື້ອງຊ້າຍ</translation>
 <translation id="8930330541574156305">ອະສັງຫາລິມະຊັບ</translation>
-<translation id="8931333241327730545">ທ່ານຕ້ອງການບັນທຶກບັດນີ້ໃສ່ບັນຊີ Google ຂອງທ່ານບໍ?</translation>
 <translation id="8932102934695377596">ໂມງ​ຂອງ​ທ່ານ​ຊ້າ</translation>
 <translation id="893332455753468063">ເພີ່ມຊື່</translation>
 <translation id="8942355029279167844">ຜູ້ເບິ່ງແຍງລະບົບຂອງທ່ານໄດ້ອະນຸຍາດໃຫ້ <ph name="APP_NAME" /> ເກັບເອົາຂໍ້ມູນການວິເຄາະບັນຫາເພື່ອປັບປຸງປະສົບການຜະລິດຕະພັນແລ້ວ. ເບິ່ງ <ph name="BEGIN_LINK" />https://www.parallels.com/pcep<ph name="END_LINK" /> ສຳລັບຂໍ້ມູນເພີ່ມເຕີມ.</translation>
diff --git a/components/strings/components_strings_lt.xtb b/components/strings/components_strings_lt.xtb
index 7d5a62b..0e74dd8 100644
--- a/components/strings/components_strings_lt.xtb
+++ b/components/strings/components_strings_lt.xtb
@@ -125,7 +125,6 @@
 <translation id="1243027604378859286">Autorius:</translation>
 <translation id="1246424317317450637">Pusjuodis</translation>
 <translation id="1247030632403369975">Aliuminis</translation>
-<translation id="1250759482327835220">Kad kitą kartą galėtumėte greičiau atlikti mokėjimą, išsaugokite kortelę, vardą bei pavardę ir atsiskaitymo adresą „Google“ paskyroje.</translation>
 <translation id="1252209483516427155">Viršutiniai drabužiai</translation>
 <translation id="1253921432148366685"><ph name="TYPE_1" />, <ph name="TYPE_2" /> (sinchronizuota)</translation>
 <translation id="1255086252236620440">Maisto maišytuvai</translation>
@@ -158,7 +157,6 @@
 <translation id="1294154142200295408">Komandos eilutės kintamieji</translation>
 <translation id="129553762522093515">Neseniai uždarytas</translation>
 <translation id="1296930489679394997">Išpardavimas</translation>
-<translation id="129863573139666797"><ph name="BEGIN_LINK" />Pabandykite išvalyti slapukus<ph name="END_LINK" /></translation>
 <translation id="1301227606947843452">Legal Extra</translation>
 <translation id="1301324364792935241">Patikrinkite saugios DNS nustatymus</translation>
 <translation id="1307966114820526988">Nebenaudojamos funkcijos</translation>
@@ -1352,7 +1350,6 @@
 <translation id="3767485424735936570">Vadovaujantis administratoriaus politika nerekomenduojama kopijuoti ir įklijuoti šio turinio sistemoje „<ph name="VM_NAME" />“</translation>
 <translation id="3772211998634047851">Popierius (standusis)</translation>
 <translation id="377451872037045164"><ph name="CREATE_GOOGLE_KEEP_NOTE_FOCUSED_FRIENDLY_MATCH_TEXT" />, paspauskite tabuliavimo klavišą, tada – klavišą „Enter“, jei norite greitai sukurti naują „Google Keep“ užrašą</translation>
-<translation id="3778403066972421603">Ar norite išsaugoti šią kortelę „Google“ paskyroje ir šiame įrenginyje?</translation>
 <translation id="378026377453746707">„Chrome“ integruotos saugos funkcijos, skirtos apsaugoti jus naršant, pvz., „Google“ saugus naršymas. Naudojant Saugaus naršymo funkciją neseniai <ph name="BEGIN_LINK" />rasta žalinga programinė įranga svetainėje <ph name="SITE" /><ph name="END_LINK" />, kuri įterpiama svetainėje, jei bandote apsilankyti.</translation>
 <translation id="3780694243617746492">Išvesties dėklas</translation>
 <translation id="3781428340399460090">Ryškiai rausva</translation>
@@ -1958,7 +1955,6 @@
 <translation id="5020776957610079374">Pasaulinė muzika</translation>
 <translation id="5021557570875267742">Kainų stebėjimas naudojant „Chrome“</translation>
 <translation id="5023310440958281426">Patikrinkite savo administratoriaus politiką</translation>
-<translation id="5029568752722684782">Išvalyti kopiją</translation>
 <translation id="5030338702439866405">Išdavė</translation>
 <translation id="503069730517007720">Reikalingas „<ph name="SOFTWARE_NAME" />“ šakninis sertifikatas, bet jis nėra įdiegtas. Jūsų IT administratorius turėtų peržiūrėti „<ph name="SOFTWARE_NAME" />“ konfigūravimo instrukcijas, kad išspręstų šią problemą. <ph name="FURTHER_EXPLANATION" /></translation>
 <translation id="5031870354684148875">Apie „Google“ vertėją</translation>
@@ -2541,7 +2537,6 @@
 <translation id="6270066318535733958">Valčių sportas</translation>
 <translation id="6272088941196661550">Tęsti veiksmus, norint matyti atitinkamą veiklą „Chrome“ istorijoje</translation>
 <translation id="6272383483618007430">„Google“ naujinys</translation>
-<translation id="627746635834430766">Kad kitą kartą galėtumėte greičiau atlikti mokėjimą, išsaugokite kortelę ir atsiskaitymo adresą „Google“ paskyroje.</translation>
 <translation id="6279183038361895380">Paspauskite |<ph name="ACCELERATOR" />|, kad būtų rodomas žymeklis</translation>
 <translation id="6280223929691119688">Negalima pristatyti šiuo adresu. Pasirinkite kitą adresą.</translation>
 <translation id="6284292079994426700">26 x 38 col.</translation>
@@ -3853,7 +3848,6 @@
 <translation id="8922013791253848639">Visada leisti skelbimus šioje svetainėje</translation>
 <translation id="892588693504540538">Skylė viršuje dešinėje</translation>
 <translation id="8930330541574156305">Nekilnojamasis turtas</translation>
-<translation id="8931333241327730545">Ar norite išsaugoti šios kortelės informaciją „Google“ paskyroje?</translation>
 <translation id="8932102934695377596">Jūsų laikrodis atsilieka</translation>
 <translation id="893332455753468063">Vardo ir pavardės pridėjimas</translation>
 <translation id="8942355029279167844">Administratorius leido programai „<ph name="APP_NAME" />“ rinkti diagnostikos duomenis, kad būtų galima tobulinti produkto funkcijas. Daugiau informacijos žr. <ph name="BEGIN_LINK" />https://www.parallels.com/pcep<ph name="END_LINK" />.</translation>
diff --git a/components/strings/components_strings_lv.xtb b/components/strings/components_strings_lv.xtb
index cdb71a1b..7b487826 100644
--- a/components/strings/components_strings_lv.xtb
+++ b/components/strings/components_strings_lv.xtb
@@ -125,7 +125,6 @@
 <translation id="1243027604378859286">Autors:</translation>
 <translation id="1246424317317450637">Treknraksts</translation>
 <translation id="1247030632403369975">Alumīnijs</translation>
-<translation id="1250759482327835220">Lai nākamreiz veiktu maksājumu ātrāk, saglabājiet kartes datus, vārdu un norēķinu adresi savā Google kontā.</translation>
 <translation id="1252209483516427155">Āra apģērbs</translation>
 <translation id="1253921432148366685"><ph name="TYPE_1" />, <ph name="TYPE_2" /> (veikta sinhronizācija)</translation>
 <translation id="1255086252236620440">Mikseri</translation>
@@ -158,7 +157,6 @@
 <translation id="1294154142200295408">Komandrindu varianti</translation>
 <translation id="129553762522093515">Nesen aizvērtas</translation>
 <translation id="1296930489679394997">Pārdošana</translation>
-<translation id="129863573139666797"><ph name="BEGIN_LINK" />Dzēsiet sīkfailus<ph name="END_LINK" /></translation>
 <translation id="1301227606947843452">Legal Extra</translation>
 <translation id="1301324364792935241">Pārbaudiet drošā DNS servera iestatījumus</translation>
 <translation id="1307966114820526988">Funkcijas, kuru darbība ir pārtraukta</translation>
@@ -1350,7 +1348,6 @@
 <translation id="3767485424735936570">Saskaņā ar administratora iestatīto politiku nav ieteicams kopēt un ielīmēt šo saturu šeit: <ph name="VM_NAME" />.</translation>
 <translation id="3772211998634047851">Papīrs (biroja)</translation>
 <translation id="377451872037045164"><ph name="CREATE_GOOGLE_KEEP_NOTE_FOCUSED_FRIENDLY_MATCH_TEXT" />. Lai ātri izveidotu jaunu piezīmi lietotnē Google Keep, nospiediet tabulēšanas taustiņu un pēc tam — taustiņu Enter.</translation>
-<translation id="3778403066972421603">Vai vēlaties saglabāt šo karti savā Google kontā un šajā ierīcē?</translation>
 <translation id="378026377453746707">Pārlūkā Chrome ir iebūvētas drošības funkcijas, piemēram, Google droša pārlūkošana, lai aizsargātu jūs pārlūkošanas laikā. Droša pārlūkošana nesen <ph name="BEGIN_LINK" />konstatēja kaitīgu programmatūru vietnē <ph name="SITE" /><ph name="END_LINK" />, kas ir iegulta vietnē, kuru mēģināt apmeklēt.</translation>
 <translation id="3780694243617746492">Izvades nodalījums</translation>
 <translation id="3781428340399460090">Spilgti rozā</translation>
@@ -1956,7 +1953,6 @@
 <translation id="5020776957610079374">Pasaules mūzika</translation>
 <translation id="5021557570875267742">Cenu izsekošana, izmantojot pārlūku Chrome</translation>
 <translation id="5023310440958281426">Administratora politiku pārbaude</translation>
-<translation id="5029568752722684782">Dzēst kopiju</translation>
 <translation id="5030338702439866405">Izsniedzis</translation>
 <translation id="503069730517007720">Programmatūrai <ph name="SOFTWARE_NAME" /> ir nepieciešams saknes sertifikāts, taču tas nav instalēts. Lai novērstu šo problēmu, tīkla administratoram ir jāapskata <ph name="SOFTWARE_NAME" /> konfigurācijas norādījumi. <ph name="FURTHER_EXPLANATION" /></translation>
 <translation id="5031870354684148875">Par Google tulkotāju</translation>
@@ -2539,7 +2535,6 @@
 <translation id="6270066318535733958">Laivošana</translation>
 <translation id="6272088941196661550">Atsāciet meklēšanas ceļu, lai skatītu atbilstošās darbības savā Chrome vēsturē</translation>
 <translation id="6272383483618007430">Google atjauninājums</translation>
-<translation id="627746635834430766">Lai nākamreiz veiktu maksājumu ātrāk, saglabājiet kartes datus un norēķinu adresi savā Google kontā.</translation>
 <translation id="6279183038361895380">Lai tiktu parādīts kursors, nospiediet |<ph name="ACCELERATOR" />|</translation>
 <translation id="6280223929691119688">Nevar piegādāt uz šo adresi. Atlasiet citu adresi.</translation>
 <translation id="6284292079994426700">26 x 38 collas</translation>
@@ -3851,7 +3846,6 @@
 <translation id="8922013791253848639">Vienmēr atļaut reklāmu rādīšanu šajā vietnē</translation>
 <translation id="892588693504540538">Caurums augšējā labajā malā</translation>
 <translation id="8930330541574156305">Nekustamais īpašums</translation>
-<translation id="8931333241327730545">Vai vēlaties saglabāt šo karti savā Google kontā?</translation>
 <translation id="8932102934695377596">Norādītais laiks ir pārāk tālu pagātnē</translation>
 <translation id="893332455753468063">Vārda pievienošana</translation>
 <translation id="8942355029279167844">Jūsu administrators atļāva lietotnei <ph name="APP_NAME" /> vākt diagnostikas datus, lai uzlabotu produkta lietošanas iespējas. Plašāku informāciju skatiet vietnē <ph name="BEGIN_LINK" />https://www.parallels.com/pcep<ph name="END_LINK" />.</translation>
diff --git a/components/strings/components_strings_mk.xtb b/components/strings/components_strings_mk.xtb
index 0357d31..3b53a40 100644
--- a/components/strings/components_strings_mk.xtb
+++ b/components/strings/components_strings_mk.xtb
@@ -125,7 +125,6 @@
 <translation id="1243027604378859286">Автор:</translation>
 <translation id="1246424317317450637">Болд</translation>
 <translation id="1247030632403369975">Алуминиум</translation>
-<translation id="1250759482327835220">За да платите побрзо следниот пат, зачувајте ја картичката, името и адресата за наплата на вашата сметка на Google.</translation>
 <translation id="1252209483516427155">Горна облека</translation>
 <translation id="1253921432148366685"><ph name="TYPE_1" /> и <ph name="TYPE_2" /> (синхронизирани)</translation>
 <translation id="1255086252236620440">Миксери за храна</translation>
@@ -158,7 +157,6 @@
 <translation id="1294154142200295408">Варијации на линијата за наредби</translation>
 <translation id="129553762522093515">Неодамна затворено</translation>
 <translation id="1296930489679394997">Распродажби</translation>
-<translation id="129863573139666797"><ph name="BEGIN_LINK" />Обидете се да ги исчистите колачињата<ph name="END_LINK" /></translation>
 <translation id="1301227606947843452">Правно екстра</translation>
 <translation id="1301324364792935241">Проверете ги поставките за безбеден DNS</translation>
 <translation id="1307966114820526988">Неподдржани функции</translation>
@@ -1351,7 +1349,6 @@
 <translation id="3767485424735936570">Правилото на администраторот не препорачува копирање и залепување на содржиниве на <ph name="VM_NAME" /></translation>
 <translation id="3772211998634047851">Хартија (цврста)</translation>
 <translation id="377451872037045164"><ph name="CREATE_GOOGLE_KEEP_NOTE_FOCUSED_FRIENDLY_MATCH_TEXT" />, притиснете го копчето Tab, а потоа копчето Enter за да набрзина создадете нова белешка во Google Keep</translation>
-<translation id="3778403066972421603">Сакате ли да ја зачувате картичкава на сметката на Google и на уредов?</translation>
 <translation id="378026377453746707">Chrome има вградени безбедносни функции за да ве штитат додека прелистувате, како што е „Безбедно прелистување со Google“. „Безбедното прелистување“ неодамна <ph name="BEGIN_LINK" />најде штетен софтвер на <ph name="SITE" /><ph name="END_LINK" />, којшто е вметнат во сајтот што се обидувате да го отворите.</translation>
 <translation id="3780694243617746492">Излезна фиока</translation>
 <translation id="3781428340399460090">Впечатливо розова</translation>
@@ -1957,7 +1954,6 @@
 <translation id="5020776957610079374">Светска музика</translation>
 <translation id="5021557570875267742">Следете ги цените со Chrome</translation>
 <translation id="5023310440958281426">Проверете ги правилата на вашиот администратор</translation>
-<translation id="5029568752722684782">Исчисти копија</translation>
 <translation id="5030338702439866405">Издадено од</translation>
 <translation id="503069730517007720">Потребен е основен сертификат за „<ph name="SOFTWARE_NAME" />“, но не е инсталиран. Вашиот IT-администратор треба да погледне во упатствата за конфигурација за „<ph name="SOFTWARE_NAME" />“ за да го реши проблемот. <ph name="FURTHER_EXPLANATION" /></translation>
 <translation id="5031870354684148875">За Google Translate</translation>
@@ -2540,7 +2536,6 @@
 <translation id="6270066318535733958">Пловење со брод</translation>
 <translation id="6272088941196661550">Продолжете со патувањето за да ја прегледате релевантната активност во вашата „Историја на Chrome“</translation>
 <translation id="6272383483618007430">Ажурирање од Google</translation>
-<translation id="627746635834430766">За да платите побрзо следниот пат, зачувајте ја картичката и адресата за наплата на вашата сметка на Google.</translation>
 <translation id="6279183038361895380">Притиснете |<ph name="ACCELERATOR" />| за да се покаже покажувачот</translation>
 <translation id="6280223929691119688">Не може да се достави на оваа адреса. Изберете друга.</translation>
 <translation id="6284292079994426700">26 x 38 инчи</translation>
@@ -3851,7 +3846,6 @@
 <translation id="8922013791253848639">Секогаш дозволувај реклами на сајтов</translation>
 <translation id="892588693504540538">Дупка горе десно</translation>
 <translation id="8930330541574156305">Недвижности</translation>
-<translation id="8931333241327730545">Дали сакате да ја зачувате картичкава на сметката на Google?</translation>
 <translation id="8932102934695377596">Вашиот часовник доцни</translation>
 <translation id="893332455753468063">Додајте име</translation>
 <translation id="8942355029279167844">Администраторот дозволил <ph name="APP_NAME" /> да собира дијагностички податоци за да го подобри доживувањето со производот. Видете <ph name="BEGIN_LINK" />https://www.parallels.com/pcep<ph name="END_LINK" /> за повеќе информации.</translation>
diff --git a/components/strings/components_strings_ml.xtb b/components/strings/components_strings_ml.xtb
index 7a1aa90..75a744c 100644
--- a/components/strings/components_strings_ml.xtb
+++ b/components/strings/components_strings_ml.xtb
@@ -125,7 +125,6 @@
 <translation id="1243027604378859286">രചയിതാവ്:</translation>
 <translation id="1246424317317450637">ബോള്‍ഡ്</translation>
 <translation id="1247030632403369975">അലുമിനിയം</translation>
-<translation id="1250759482327835220">അടുത്ത പ്രാവശ്യം കൂടുതൽ വേഗത്തിൽ പണമടയ്ക്കാൻ, നിങ്ങളുടെ Google അക്കൗണ്ടിൽ കാർഡ്, പേര്, ബില്ലിംഗ് വിലാസം എന്നിവ സംരക്ഷിക്കുക.</translation>
 <translation id="1252209483516427155">ഔട്ടർവെയർ</translation>
 <translation id="1253921432148366685"><ph name="TYPE_1" />, <ph name="TYPE_2" /> (സമന്വയിപ്പിച്ചു)</translation>
 <translation id="1255086252236620440">ഫുഡ് മിക്‌സറുകൾ</translation>
@@ -158,7 +157,6 @@
 <translation id="1294154142200295408">കമാൻഡ്-ലൈൻ വ്യതിയാനങ്ങൾ</translation>
 <translation id="129553762522093515">സമീപകാലത്ത് അടച്ചവ</translation>
 <translation id="1296930489679394997">വിൽപ്പനകൾ</translation>
-<translation id="129863573139666797"><ph name="BEGIN_LINK" />നിങ്ങളുടെ കുക്കികൾ മായ്‌ക്കുന്നത് പരീക്ഷിക്കുക<ph name="END_LINK" /></translation>
 <translation id="1301227606947843452">ലീഗൽ എക്‌സ്‌ട്രാ</translation>
 <translation id="1301324364792935241">നിങ്ങളുടെ സുരക്ഷിത DNS ക്രമീകരണം പരിശോധിക്കുക</translation>
 <translation id="1307966114820526988">അവസാനിപ്പിച്ച ഫീച്ചറുകൾ</translation>
@@ -1350,7 +1348,6 @@
 <translation id="3767485424735936570">ഈ ഉള്ളടക്കം പകർത്തി <ph name="VM_NAME" />-ലേക്ക് ഒട്ടിക്കുന്നത് അഡ്‌മിൻ നയം ബ്ലോക്ക് ചെയ്തിരിക്കുന്നു</translation>
 <translation id="3772211998634047851">പേപ്പർ (ബോണ്ട്)</translation>
 <translation id="377451872037045164"><ph name="CREATE_GOOGLE_KEEP_NOTE_FOCUSED_FRIENDLY_MATCH_TEXT" />, Google Keep-ൽ പുതിയൊരു കുറിപ്പ് വേഗത്തിൽ സൃഷ്ടിക്കാൻ Tab അമർത്തുക, തുടർന്ന് Enter അമർത്തുക</translation>
-<translation id="3778403066972421603">ഈ കാർഡ് നിങ്ങളുടെ Google അക്കൗണ്ടിലും ഈ ഉപകരണത്തിലും സംരക്ഷിക്കണോ?</translation>
 <translation id="378026377453746707">ബ്രൗസ് ചെയ്യുമ്പോൾ നിങ്ങളെ പരിരക്ഷിക്കുന്നതിന് Chrome-ൽ Google സുരക്ഷിത ബ്രൗസിംഗ് പോലുള്ള ബിൽറ്റ്-ഇൻ സുരക്ഷാ ഫീച്ചറുകൾ ഉണ്ട്. നിങ്ങൾ സന്ദർശിക്കാൻ ശ്രമിക്കുന്ന സൈറ്റിൽ ഉൾച്ചേർത്തിട്ടുള്ള <ph name="BEGIN_LINK" /><ph name="SITE" /> എന്നതിൽ, സുരക്ഷിത ബ്രൗസിംഗ് അടുത്തിടെ ഹാനികരമായ സോഫ്റ്റ്‌വെയർ കണ്ടെത്തി<ph name="END_LINK" />.</translation>
 <translation id="3780694243617746492">ഔട്ട്പുട്ട് ബിൻ</translation>
 <translation id="3781428340399460090">ഹോട്ട് പിങ്ക്</translation>
@@ -1956,7 +1953,6 @@
 <translation id="5020776957610079374">ആഗോള സംഗീതം</translation>
 <translation id="5021557570875267742">Chrome ഉപയോഗിച്ച് നിരക്കുകൾ ട്രാക്ക് ചെയ്യുക</translation>
 <translation id="5023310440958281426">നിങ്ങളുടെ അഡ്‌മിനിസ്ട്രേറ്ററുടെ നയങ്ങൾ പരിശോധിക്കുക.</translation>
-<translation id="5029568752722684782">പകർപ്പ് മായ്‌ക്കുക</translation>
 <translation id="5030338702439866405">ഇനിപ്പറയുന്നത് നല്‍‌കിയത്</translation>
 <translation id="503069730517007720">"<ph name="SOFTWARE_NAME" />" സോഫ്റ്റ്‌വെയറിന് ഒരു റൂട്ട് സർട്ടിഫിക്കറ്റ് ആവശ്യമാണ്, എന്നാൽ അത് ഇൻസ്‌റ്റാൾ ചെയ്‌‌തിട്ടില്ല. ഈ പ്രശ്‌നം പരിഹരിക്കാൻ, "<ph name="SOFTWARE_NAME" />" സോഫ്റ്റ്‌വെയറിനുള്ള കോൺഫിഗറേഷൻ നിർദ്ദേശങ്ങൾ ഐടി അഡ്‌മിൻ പരിശോധിക്കേണ്ടതുണ്ട്. <ph name="FURTHER_EXPLANATION" /></translation>
 <translation id="5031870354684148875">Google വിവര്‍ത്തനത്തെക്കുറിച്ച്</translation>
@@ -2539,7 +2535,6 @@
 <translation id="6270066318535733958">ബോട്ടിംഗ്</translation>
 <translation id="6272088941196661550">നിങ്ങളുടെ Chrome ചരിത്രത്തിൽ പ്രസക്തമായ ആക്റ്റിവിറ്റി കാണാൻ ജേർണി പുനരാരംഭിക്കുക</translation>
 <translation id="6272383483618007430">Google അപ്ഡേറ്റ്</translation>
-<translation id="627746635834430766">അടുത്ത പ്രാവശ്യം വേഗത്തിൽ പണമടയ്ക്കാൻ, നിങ്ങളുടെ Google അക്കൗണ്ടിൽ ഈ കാർഡും ബില്ലിംഗ് വിലാസവും സംരക്ഷിക്കുക.</translation>
 <translation id="6279183038361895380">നിങ്ങളുടെ കഴ്‌സർ കാണിക്കാൻ |<ph name="ACCELERATOR" />| അമർത്തുക</translation>
 <translation id="6280223929691119688">ഈ വിലാസത്തിലേക്ക് ഡെലിവറി ചെയ്യാൻ കഴിയില്ല. മറ്റൊരു വിലാസം തിരഞ്ഞെടുക്കുക.</translation>
 <translation id="6284292079994426700">26 x 38 ഇഞ്ച്</translation>
@@ -3849,7 +3844,6 @@
 <translation id="8922013791253848639">ഈ സൈറ്റിൽ എല്ലായ്‌പ്പോഴും പരസ്യങ്ങൾ അനുവദിക്കുക</translation>
 <translation id="892588693504540538">മുകളിൽ വലതുവശത്ത് പഞ്ച് ചെയ്യുക</translation>
 <translation id="8930330541574156305">റിയൽ എസ്റ്റേറ്റ്</translation>
-<translation id="8931333241327730545">ഈ കാർഡ് നിങ്ങളുടെ Google അക്കൗണ്ടിൽ സംരക്ഷിക്കണോ?</translation>
 <translation id="8932102934695377596">നിങ്ങളുടെ ക്ലോക്ക് വളരെ പിന്നിലാണ്</translation>
 <translation id="893332455753468063">പേര് ചേർക്കുക</translation>
 <translation id="8942355029279167844">ഉൽപ്പന്ന അനുഭവം മെച്ചപ്പെടുത്തുന്നതിന്, പ്രശ്‍നനിർണ്ണയ ഡാറ്റ ശേഖരിക്കാൻ നിങ്ങളുടെ അഡ്‌മിൻ <ph name="APP_NAME" /> ആപ്പിനെ അനുവദിച്ചു. കൂടുതൽ വിവരങ്ങൾക്ക്, <ph name="BEGIN_LINK" />https://www.parallels.com/pcep<ph name="END_LINK" /> കാണുക.</translation>
diff --git a/components/strings/components_strings_mn.xtb b/components/strings/components_strings_mn.xtb
index 871daa1..06c3fd90 100644
--- a/components/strings/components_strings_mn.xtb
+++ b/components/strings/components_strings_mn.xtb
@@ -125,7 +125,6 @@
 <translation id="1243027604378859286">Зохиогч:</translation>
 <translation id="1246424317317450637">Тод</translation>
 <translation id="1247030632403369975">Хөнгөн цагаан</translation>
-<translation id="1250759482327835220">Дараагийн удаа төлбөрөө хурдан төлөхийн тулд Google Бүртгэлдээ карт, нэр болон тооцооны хаягаа хадгална уу.</translation>
 <translation id="1252209483516427155">Гадуур хувцас</translation>
 <translation id="1253921432148366685"><ph name="TYPE_1" />, <ph name="TYPE_2" /> (синк хийсэн)</translation>
 <translation id="1255086252236620440">Хүнсний холигчид</translation>
@@ -158,7 +157,6 @@
 <translation id="1294154142200295408">Тушаалын мөрийн хувилбар</translation>
 <translation id="129553762522093515">Саяхан хаагдсан</translation>
 <translation id="1296930489679394997">Борлуулалт</translation>
-<translation id="129863573139666797"><ph name="BEGIN_LINK" />Күүкигээ устгана уу<ph name="END_LINK" /></translation>
 <translation id="1301227606947843452">Хууль зүйн том</translation>
 <translation id="1301324364792935241">Аюулгүй DNS тохиргоогоо шалгана уу</translation>
 <translation id="1307966114820526988">Хуучирсан онцлог</translation>
@@ -1352,7 +1350,6 @@
 <translation id="3767485424735936570">Энэ контентыг <ph name="VM_NAME" /> руу хуулаад буулгахыг администраторын бодлогоор санал болгодоггүй</translation>
 <translation id="3772211998634047851">Цаас (бонд)</translation>
 <translation id="377451872037045164"><ph name="CREATE_GOOGLE_KEEP_NOTE_FOCUSED_FRIENDLY_MATCH_TEXT" />, Google Keep-д шинэ тэмдэглэл шуурхай үүсгэхийн тулд эхлээд Tab, дараа нь Enter дээр дарна уу</translation>
-<translation id="3778403066972421603">Та энэ картын дугаарыг Google бүртгэлдээ болон энэ төхөөрөмжид хадгалах уу?</translation>
 <translation id="378026377453746707">Chrome-д Google-н аюулгүй хөтөч зэрэг таныг үзэх үед хамгаалах аюулгүй байдлын бүрэлдэхүүн онцлогууд байдаг. Аюулгүй хөтөч саяхан <ph name="BEGIN_LINK" /><ph name="SITE" />-с аюултай программ хангамж олсон<ph name="END_LINK" /> бөгөөд үүнийг таны зочлохоор оролдож буй сайтад оруулсан.</translation>
 <translation id="3780694243617746492">Гарах цаасны сав</translation>
 <translation id="3781428340399460090">Тод ягаан</translation>
@@ -1958,7 +1955,6 @@
 <translation id="5020776957610079374">Дэлхийн хөгжим</translation>
 <translation id="5021557570875267742">Chrome-р үнэ хянах</translation>
 <translation id="5023310440958281426">Админимтраторын журмыг шалгах</translation>
-<translation id="5029568752722684782">Хуулбарыг арилгах</translation>
 <translation id="5030338702439866405">Гаргасан</translation>
 <translation id="503069730517007720">"<ph name="SOFTWARE_NAME" />"-н үндсэн сертификат шаардлагатай боловч үүнийг суулгаагүй байна. Таны IT админ энэ алдааг засахын тулд "<ph name="SOFTWARE_NAME" />"-н тохируулгын зааварчилгаатай танилцах шаардлагатай. <ph name="FURTHER_EXPLANATION" /></translation>
 <translation id="5031870354684148875">Google Translate-ын тухай</translation>
@@ -2540,7 +2536,6 @@
 <translation id="6270066318535733958">Завиар явах</translation>
 <translation id="6272088941196661550">Chrome-н түүхдээ хамааралтай үйл ажиллагааг харахын тулд аяллаа үргэлжлүүлнэ үү</translation>
 <translation id="6272383483618007430">Google Шинэчлэл</translation>
-<translation id="627746635834430766">Дараагийн удаа төлбөрөө хурдан төлөхийн тулд Google Бүртгэлдээ карт болон тооцооны хаягаа хадгална уу.</translation>
 <translation id="6279183038361895380">Курсороо харуулахын тулд |<ph name="ACCELERATOR" />|-г дарна уу</translation>
 <translation id="6280223929691119688">Энэ хаяг руу хүргэх боломжгүй тул өөр хаяг сонгоно уу.</translation>
 <translation id="6284292079994426700">26 x 38 инч</translation>
@@ -3851,7 +3846,6 @@
 <translation id="8922013791253848639">Энэ сайтад зарыг үргэлж зөвшөөрөх</translation>
 <translation id="892588693504540538">Баруун дээд буланд нэг нүх цоолох</translation>
 <translation id="8930330541574156305">Үл хөдлөх хөрөнгө</translation>
-<translation id="8931333241327730545">Та картаа өөрийн Google Бүртгэлд хадгалах уу?</translation>
 <translation id="8932102934695377596">Таны цаг хоцорч байна</translation>
 <translation id="893332455753468063">Нэр нэмэх</translation>
 <translation id="8942355029279167844">Таны администратор бүтээгдэхүүний туршлагыг сайжруулахын тулд <ph name="APP_NAME" />-д оношилгооны өгөгдлийг цуглуулахыг зөвшөөрсөн байна. Нэмэлт мэдээлэл авахын тулд <ph name="BEGIN_LINK" />https://www.parallels.com/pcep<ph name="END_LINK" />-г харна уу.</translation>
diff --git a/components/strings/components_strings_mr.xtb b/components/strings/components_strings_mr.xtb
index 8bd6f105..92865d3 100644
--- a/components/strings/components_strings_mr.xtb
+++ b/components/strings/components_strings_mr.xtb
@@ -125,7 +125,6 @@
 <translation id="1243027604378859286">लेखक:</translation>
 <translation id="1246424317317450637">ठळक</translation>
 <translation id="1247030632403369975">अ‍ॅल्युमिनिअम</translation>
-<translation id="1250759482327835220">पुढील वेळेस जलद पेमेंट करण्यासाठी, तुमच्या Google खात्यावर तुमचे कार्ड आणि बिलिंग पत्ता सेव्ह करा.</translation>
 <translation id="1252209483516427155">बाहेर घालायचे कपडे</translation>
 <translation id="1253921432148366685"><ph name="TYPE_1" />, <ph name="TYPE_2" /> (सिंक केलेले)</translation>
 <translation id="1255086252236620440">फूड मिक्सर</translation>
@@ -158,7 +157,6 @@
 <translation id="1294154142200295408">विविध कमांड लाइन</translation>
 <translation id="129553762522093515">अलीकडे बंद केलेले</translation>
 <translation id="1296930489679394997">विक्री</translation>
-<translation id="129863573139666797"><ph name="BEGIN_LINK" />आपल्या कुकीज साफ करून पहा<ph name="END_LINK" /></translation>
 <translation id="1301227606947843452">Legal Extra</translation>
 <translation id="1301324364792935241">तुमची सुरक्षित DNS सेटिंग्ज तपासा</translation>
 <translation id="1307966114820526988">कालबाह्य झालेली वैशिष्‍ट्ये</translation>
@@ -1350,7 +1348,6 @@
 <translation id="3767485424735936570">अ‍ॅडमिनिस्ट्रेटर धोरण हा आशय <ph name="VM_NAME" /> मध्ये कॉपी आणि पेस्ट करण्याची शिफारस करत नाही</translation>
 <translation id="3772211998634047851">पेपर (बाँड)</translation>
 <translation id="377451872037045164"><ph name="CREATE_GOOGLE_KEEP_NOTE_FOCUSED_FRIENDLY_MATCH_TEXT" />, Google Keep मध्ये नवीन टीप झटपट तयार करण्यासाठी टॅब आणि त्यानंतर एंटर प्रेस करा</translation>
-<translation id="3778403066972421603">तुम्हाला हे कार्ड तुमच्या Google खात्यामध्ये आणि या डिव्हाइसवर सेव्ह करायचे आहे का?</translation>
 <translation id="378026377453746707">तुम्ही ब्राउझ करत असताना तुमचे संरक्षण करण्यासाठी Chrome मध्ये बिल्ट-इन सुरक्षा वैशिष्ट्ये आहेत, जसे की Google सुरक्षित ब्राउझिंग. सुरक्षित ब्राउझिंग ला अलीकडे <ph name="BEGIN_LINK" /><ph name="SITE" /> वर हानिकारक सॉफ्टवेअर आढळले<ph name="END_LINK" />, जी तुम्ही भेट देण्याचा प्रयत्न करत असलेल्या साइटमध्ये एंबेड केलेली आहे.</translation>
 <translation id="3780694243617746492">आउटपुट बिन</translation>
 <translation id="3781428340399460090">गडद गुलाबी</translation>
@@ -1956,7 +1953,6 @@
 <translation id="5020776957610079374">जागतिक संगीत</translation>
 <translation id="5021557570875267742">Chrome वापरून किमतीचा माग ठेवा</translation>
 <translation id="5023310440958281426">तुमच्या ॲडमिनिस्ट्रेटरची धोरणे तपासा</translation>
-<translation id="5029568752722684782">कॉपी साफ करा</translation>
 <translation id="5030338702439866405">द्वारा जारी</translation>
 <translation id="503069730517007720">"<ph name="SOFTWARE_NAME" />" साठी मूळ सर्टिफिकेट आवश्यक आहे परंतु ते इंस्टॉल केलेले नाही. तुमच्या IT अ‍ॅडमिनिस्ट्रेटरने ही समस्या सोडण्यासाठी "<ph name="SOFTWARE_NAME" />" साठीच्या कॉंफिगरेशन सूचना पहाव्यात. <ph name="FURTHER_EXPLANATION" /></translation>
 <translation id="5031870354684148875">Google भाषांतर बद्दल</translation>
@@ -2540,7 +2536,6 @@
 <translation id="6270066318535733958">नौकाविहार</translation>
 <translation id="6272088941196661550">तुमच्या Chrome इतिहासामध्ये संबंधित अ‍ॅक्टिव्हिटी पाहण्यासाठी तुमचा प्रवास पुन्हा सुरू करा</translation>
 <translation id="6272383483618007430">Google Update</translation>
-<translation id="627746635834430766">पुढील वेळी जलद पेमेंट देण्यासाठी, तुमच्या Google खात्यावर तुमचे कार्ड आणि बिलिंग पत्ता सेव्ह करा.</translation>
 <translation id="6279183038361895380">तुमचा कर्सर दर्शविण्‍यासाठी |<ph name="ACCELERATOR" />| प्रेस करा</translation>
 <translation id="6280223929691119688">या पत्त्यावर देऊ शकत नाही. वेगळा पत्ता निवडा.</translation>
 <translation id="6284292079994426700">26 x 38 in</translation>
@@ -3851,7 +3846,6 @@
 <translation id="8922013791253848639">या साइटवर कायम जाहिरातींना परवानगी द्या</translation>
 <translation id="892588693504540538">पंच टॉप राइट</translation>
 <translation id="8930330541574156305">स्थावर मालमत्ता</translation>
-<translation id="8931333241327730545">तुम्ही तुमच्या Google खात्यात हे कार्ड सेव्ह करू इच्छिता?</translation>
 <translation id="8932102934695377596">तुमचे घड्याळ मागे आहे</translation>
 <translation id="893332455753468063">नाव जोडा</translation>
 <translation id="8942355029279167844">तुमच्या अ‍ॅडमिनिस्ट्रेटरने <ph name="APP_NAME" /> ला उत्पादन वापरण्याचा अनुभव सुधारित करण्यासाठी निदान डेटा गोळा करण्याची अनुमती दिली आहे. अधिक माहितीसाठी <ph name="BEGIN_LINK" />https://www.parallels.com/pcep<ph name="END_LINK" /> पहा.</translation>
diff --git a/components/strings/components_strings_ms.xtb b/components/strings/components_strings_ms.xtb
index 6607f145..c73cf419 100644
--- a/components/strings/components_strings_ms.xtb
+++ b/components/strings/components_strings_ms.xtb
@@ -125,7 +125,6 @@
 <translation id="1243027604378859286">Pengarang:</translation>
 <translation id="1246424317317450637">Huruf tebal</translation>
 <translation id="1247030632403369975">Aluminium</translation>
-<translation id="1250759482327835220">Untuk membayar dengan lebih cepat selepas ini, simpan kad, nama dan alamat pengebilan anda ke Akaun Google.</translation>
 <translation id="1252209483516427155">Pakaian luar</translation>
 <translation id="1253921432148366685"><ph name="TYPE_1" />, <ph name="TYPE_2" /> (disegerakkan)</translation>
 <translation id="1255086252236620440">Pengadun Makanan</translation>
@@ -158,7 +157,6 @@
 <translation id="1294154142200295408">Variasi baris perintah</translation>
 <translation id="129553762522093515">Ditutup baru-baru ini</translation>
 <translation id="1296930489679394997">Jualan</translation>
-<translation id="129863573139666797"><ph name="BEGIN_LINK" />Cuba kosongkan kuki anda<ph name="END_LINK" /></translation>
 <translation id="1301227606947843452">Perundangan Tambahan</translation>
 <translation id="1301324364792935241">Semak tetapan DNS Selamat anda</translation>
 <translation id="1307966114820526988">Ciri yang Ditamatkan</translation>
@@ -1352,7 +1350,6 @@
 <translation id="3767485424735936570">Penyalinan dan penampalan kandungan ini pada <ph name="VM_NAME" /> tidak disyorkan oleh dasar pentadbir</translation>
 <translation id="3772211998634047851">Kertas (Bond)</translation>
 <translation id="377451872037045164"><ph name="CREATE_GOOGLE_KEEP_NOTE_FOCUSED_FRIENDLY_MATCH_TEXT" />, tekan kekunci Tab kemudian Enter untuk membuat nota baharu dalam Google Keep dengan pantas</translation>
-<translation id="3778403066972421603">Adakah anda ingin menyimpan maklumat kad ini ke Akaun Google anda dan pada peranti ini?</translation>
 <translation id="378026377453746707">Chrome mengandungi ciri keselamatan terbina dalam untuk melindungi anda semasa menyemak imbas, seperti Penyemakan Imbas Selamat Google. Baru-baru ini, Penyemakan Imbas Selamat <ph name="BEGIN_LINK" />menemukan perisian berbahaya pada <ph name="SITE" /><ph name="END_LINK" /> yang dibenamkan pada laman jika anda cuba lawati.</translation>
 <translation id="3780694243617746492">Bekas output</translation>
 <translation id="3781428340399460090">Merah Jambu Hangat</translation>
@@ -1958,7 +1955,6 @@
 <translation id="5020776957610079374">Muzik dunia</translation>
 <translation id="5021557570875267742">Jejaki harga dengan Chrome</translation>
 <translation id="5023310440958281426">Semak dasar pentadbir anda</translation>
-<translation id="5029568752722684782">Hapuskan salinan</translation>
 <translation id="5030338702439866405">Dikeluarkan Oleh</translation>
 <translation id="503069730517007720">Sijil akar bagi "<ph name="SOFTWARE_NAME" />" diperlukan tetapi tidak dipasang. Pentadbir IT anda harus melihat arahan konfigurasi "<ph name="SOFTWARE_NAME" />" untuk menyelesaikan masalah ini. <ph name="FURTHER_EXPLANATION" /></translation>
 <translation id="5031870354684148875">Perihal Google Terjemah</translation>
@@ -2541,7 +2537,6 @@
 <translation id="6270066318535733958">Berperahu</translation>
 <translation id="6272088941196661550">Sambung semula perjalanan anda untuk melihat aktiviti yang berkaitan dalam sejarah Chrome anda</translation>
 <translation id="6272383483618007430">Kemas Kini Google</translation>
-<translation id="627746635834430766">Untuk membayar dengan lebih cepat selepas ini, simpan kad dan alamat pengebilan anda ke Akaun Google.</translation>
 <translation id="6279183038361895380">Tekan |<ph name="ACCELERATOR" />| untuk memaparkan kursor anda</translation>
 <translation id="6280223929691119688">Tidak dapat menghantar ke alamat ini. Pilih alamat lain.</translation>
 <translation id="6284292079994426700">26 x 38 in</translation>
@@ -3853,7 +3848,6 @@
 <translation id="8922013791253848639">Sentiasa benarkan iklan di tapak ini</translation>
 <translation id="892588693504540538">Tebukan atas sebelah kanan</translation>
 <translation id="8930330541574156305">Hartanah</translation>
-<translation id="8931333241327730545">Adakah anda mahu menyimpan kad ini ke Akaun Google anda?</translation>
 <translation id="8932102934695377596">Jam anda di belakang</translation>
 <translation id="893332455753468063">Tambahkan Nama</translation>
 <translation id="8942355029279167844">Pentadbir anda telah membenarkan <ph name="APP_NAME" /> untuk mengumpulkan data diagnostik untuk meningkatkan pengalaman produk. Lihat <ph name="BEGIN_LINK" />https://www.parallels.com/pcep<ph name="END_LINK" /> untuk mendapatkan maklumat lanjut.</translation>
diff --git a/components/strings/components_strings_my.xtb b/components/strings/components_strings_my.xtb
index 9f7c2da7..c5a7b3dd 100644
--- a/components/strings/components_strings_my.xtb
+++ b/components/strings/components_strings_my.xtb
@@ -125,7 +125,6 @@
 <translation id="1243027604378859286">စာရေးသူ-</translation>
 <translation id="1246424317317450637">စာလုံးထူ</translation>
 <translation id="1247030632403369975">အလူမီနီယံ</translation>
-<translation id="1250759482327835220">နောင်တွင် မြန်ဆန်စွာပေးချေနိုင်ရန် သင်၏ကတ်၊ အမည်နှင့် ငွေတောင်းခံလွှာပို့ရန် လိပ်စာကို သင့် Google အကောင့်တွင် သိမ်းပါ။</translation>
 <translation id="1252209483516427155">အပေါ်ရုံ</translation>
 <translation id="1253921432148366685"><ph name="TYPE_1" />၊ <ph name="TYPE_2" /> (စင့်ခ်လုပ်ထားသည်)</translation>
 <translation id="1255086252236620440">အစားအသောက် မွှေစက်</translation>
@@ -158,7 +157,6 @@
 <translation id="1294154142200295408">ကွန်မန်းလိုင်းစနစ် ကွဲပြားမှုများ</translation>
 <translation id="129553762522093515">မကြာသေးခင်က ပိတ်ထားခဲ့သည်</translation>
 <translation id="1296930489679394997">လျှော့ဈေး</translation>
-<translation id="129863573139666797"><ph name="BEGIN_LINK" />သင့်ကွတ်ကီးများကို ရှင်းလင်းကြည့်ပါ<ph name="END_LINK" /></translation>
 <translation id="1301227606947843452">လီဂယ်ဆိုဒ်ကြီး</translation>
 <translation id="1301324364792935241">သင်၏ 'လုံခြုံသော DNS' ဆက်တင်များကို စစ်ဆေးပါ</translation>
 <translation id="1307966114820526988">ရပ်ဆိုင်းထားသော ဝန်ဆောင်မှုများ</translation>
@@ -1351,7 +1349,6 @@
 <translation id="3767485424735936570">ဤအကြောင်းအရာကို <ph name="VM_NAME" /> တွင် မိတ္တူကူးပြီး ထည့်ခြင်းကို စီမံခန့်ခွဲသူမူဝါဒက အကြံမပြုပါ</translation>
 <translation id="3772211998634047851">စာရွက် (ငွေချေးစာချုပ်)</translation>
 <translation id="377451872037045164"><ph name="CREATE_GOOGLE_KEEP_NOTE_FOCUSED_FRIENDLY_MATCH_TEXT" />၊ Google Keep တွင် မှတ်စုအသစ် အမြန်ပြုလုပ်ရန် ‘တဘ်’ နှိပ်ပြီးနောက် Enter ခလုတ် နှိပ်ပါ</translation>
-<translation id="3778403066972421603">ဤကတ်ကို သင်၏ Google အကောင့်နှင့် ဤစက်ပစ္စည်းတွင် သိမ်းဆည်းလိုပါသလား။</translation>
 <translation id="378026377453746707">သင်ဘရောက်စ်လုပ်နေစဉ် ကာကွယ်ရန်အတွက် Chrome တွင် ‘Google လုံခြုံစွာ ကြည့်ရှုခြင်း’ ကဲ့သို့ လုံခြုံရေးတူးလ်များ အသင့်ထည့်သွင်းထားသည်။ ‘လုံခြုံစွာ ကြည့်ရှုခြင်း’ သည် မကြာသေးမီက <ph name="BEGIN_LINK" /><ph name="SITE" /> တွင် အန္တရာယ်ရှိသည့် ဆော့ဖ်ဝဲကို တွေ့ရှိထားသည်<ph name="END_LINK" />။ ၎င်းကို သင်ဝင်ကြည့်ရန် ကြိုးနေသည့် ဝဘ်ဆိုက်တွင် မြှုပ်သွင်းထားသည်။</translation>
 <translation id="3780694243617746492">ထုတ်ယူမည့်ပုံး</translation>
 <translation id="3781428340399460090">ပန်းရင့်ရောင်</translation>
@@ -1958,7 +1955,6 @@
 <translation id="5020776957610079374">ကမ္ဘာ့ တေးဂီတ</translation>
 <translation id="5021557570875267742">Chrome ဖြင့် ဈေးနှုန်းစောင့်ကြည့်ခြင်း</translation>
 <translation id="5023310440958281426">သင့် စီမံအုပ်ချုပ်သူ၏ မူဝါဒများကို စစ်ဆေးကြည့်ရန်</translation>
-<translation id="5029568752722684782">ကြည်လင်ပြတ်သား မိတ္ထူ</translation>
 <translation id="5030338702439866405">ထုတ်ပေးခဲ့သူ</translation>
 <translation id="503069730517007720">"<ph name="SOFTWARE_NAME" />" အတွက် ပင်မအသိအမှတ်ပြုလက်မှတ် လိုအပ်သော်လည်း ထည့်သွင်းမထားပါ။ ဤပြဿနာကို ဖြေရှင်းရန် IT စီမံခန့်ခွဲသူသည် "<ph name="SOFTWARE_NAME" />" အတွက် စီစဉ်သတ်မှတ်ခြင်း လမ်းညွှန်ချက်များကို ကြည့်သင့်ပါသည်။ <ph name="FURTHER_EXPLANATION" /></translation>
 <translation id="5031870354684148875">Google ဘာသာပြန် အကြောင်း</translation>
@@ -2540,7 +2536,6 @@
 <translation id="6270066318535733958">လှေစီးခြင်း</translation>
 <translation id="6272088941196661550">သင်၏ Chrome မှတ်တမ်းရှိ သက်ဆိုင်ရာလုပ်ဆောင်ချက်ကို ကြည့်ရန် သင့်ခရီးစဉ်ကို ဆက်လုပ်ပါ</translation>
 <translation id="6272383483618007430">Google Update</translation>
-<translation id="627746635834430766">နောင်တွင် မြန်ဆန်စွာပေးချေနိုင်ရန် သင်၏ကတ်နှင့် ငွေတောင်းခံလွှာပို့သော လိပ်စာကို သင့် Google အကောင့်တွင် သိမ်းပါ။</translation>
 <translation id="6279183038361895380">သင်၏ ညွှန်းမြားကို ပြပေးရန် |<ph name="ACCELERATOR" />ကို နှိပ်ပါ</translation>
 <translation id="6280223929691119688">ဤလိပ်စာသို့ ပို့၍မရပါ။ အခြားလိပ်စာတစ်ခုကို ရွေးပါ။</translation>
 <translation id="6284292079994426700">၂၆ x ၃၈ လက်မ</translation>
@@ -3854,7 +3849,6 @@
 <translation id="8922013791253848639">ဤဝဘ်ဆိုက်တွင် ကြော်ငြာများကို အမြဲတမ်း ခွင့်ပြုရန်</translation>
 <translation id="892588693504540538">ညာဘက်ထိပ်တွင် ဖောက်ရန်</translation>
 <translation id="8930330541574156305">အိမ်၊ ခြံ၊ မြေ ဝန်ဆောင်မှု</translation>
-<translation id="8931333241327730545">သင့် Google အကောင့်သို့ ဤကဒ်ကိုသိမ်းလိုပါသလား။</translation>
 <translation id="8932102934695377596">သင်၏ နာရီ နောက်ကျနေ</translation>
 <translation id="893332455753468063">အမည် ထည့်သွင်းခြင်း</translation>
 <translation id="8942355029279167844">သင်၏ စီမံခန့်ခွဲသူသည် ထုတ်ကုန်အသုံးပြုမှု ပိုမိုကောင်းမွန်စေရန်အတွက် အမှားရှာပြင်ခြင်းဒေတာများကို စုဆောင်းရန် <ph name="APP_NAME" /> ကို ခွင့်ပြုထားသည်။ နောက်ထပ်အချက်အလက်များအတွက် <ph name="BEGIN_LINK" />https://www.parallels.com/pcep<ph name="END_LINK" /> တွင် ကြည့်ပါ။</translation>
diff --git a/components/strings/components_strings_ne.xtb b/components/strings/components_strings_ne.xtb
index fe44dec..78e29ab 100644
--- a/components/strings/components_strings_ne.xtb
+++ b/components/strings/components_strings_ne.xtb
@@ -125,7 +125,6 @@
 <translation id="1243027604378859286">लेखक:</translation>
 <translation id="1246424317317450637">बोल्ड</translation>
 <translation id="1247030632403369975">एल्युमिनम</translation>
-<translation id="1250759482327835220">अर्को पटक अझ छिटो भुक्तानी गर्न आफ्नो Google खातामा आफ्नो कार्ड, नाम र बिलिङ ठेगाना सेभ गर्नुहोस्।</translation>
 <translation id="1252209483516427155">बाहिरी वस्त्र</translation>
 <translation id="1253921432148366685"><ph name="TYPE_1" />, <ph name="TYPE_2" /> (सिंक गरिएका)</translation>
 <translation id="1255086252236620440">खाना मिक्स गर्ने मेसिन</translation>
@@ -158,7 +157,6 @@
 <translation id="1294154142200295408">कमान्ड लाइनसम्बन्धी विविधताहरू</translation>
 <translation id="129553762522093515">हालैमा बन्द गरिएको</translation>
 <translation id="1296930489679394997">बिक्री</translation>
-<translation id="129863573139666797"><ph name="BEGIN_LINK" />कुकीहरूलाई खाली गर्ने प्रयास गर्नुहोस्<ph name="END_LINK" /></translation>
 <translation id="1301227606947843452">Legal Extra</translation>
 <translation id="1301324364792935241">DNS सेटिङ</translation>
 <translation id="1307966114820526988">चल्तीबाट हटाइएका सुविधाहरू</translation>
@@ -1348,7 +1346,6 @@
 <translation id="3767485424735936570">एड्मिनले तोक्नुभएको नीतिअनुसार यो सामग्री <ph name="VM_NAME" /> मा कपी र पेस्ट गर्न सिफारिस गरिँदैन</translation>
 <translation id="3772211998634047851">पेपर (बन्ड)</translation>
 <translation id="377451872037045164"><ph name="CREATE_GOOGLE_KEEP_NOTE_FOCUSED_FRIENDLY_MATCH_TEXT" />, Google Keep प्रयोग गरी तुरुन्तै नयाँ टिपोट बनाउन Tab थिच्नुहोस् अनि Enter थिच्नुहोस्</translation>
-<translation id="3778403066972421603">तपाईं यो कार्डलाई आफ्नो Google खाता र यस डिभाइसमा सेभ गर्न चाहनुहुन्छ?</translation>
 <translation id="378026377453746707">तपाईंले ब्राउज गर्दै गर्दा तपाईंलाई सुरक्षित राख्न Chrome मा Google सुरक्षित ब्राउजिङ जस्ता सुरक्षासम्बन्धी अन्तर्निर्मित सुविधाहरू उपलब्ध छन्। Safe Browsing ले भर्खरै <ph name="BEGIN_LINK" /><ph name="SITE" /> मा हानिकारक सफ्टवेयर भेट्टाएको छ<ph name="END_LINK" /> र यो तपाईंले खोल्न प्रयास गरिरहनुभएको साइटमा इम्बेड गरिएको छ।</translation>
 <translation id="3780694243617746492">आउटपुट बिन</translation>
 <translation id="3781428340399460090">गाढा गुलाबी</translation>
@@ -1955,7 +1952,6 @@
 <translation id="5020776957610079374">विश्व सङ्गीत</translation>
 <translation id="5021557570875267742">Chrome मार्फत मूल्य ट्र्याक गर्नुहोस्</translation>
 <translation id="5023310440958281426">तपाईंको व्यवस्थापकको नीतिहरु जाँच्नुहोस्</translation>
-<translation id="5029568752722684782">प्रतिलिपि हटाउनुहोस्</translation>
 <translation id="5030338702439866405">द्वारा जारी गरिएको</translation>
 <translation id="503069730517007720">"<ph name="SOFTWARE_NAME" />" को मूल प्रमाणपत्र आवश्यक छ तर स्थापना गरिएको छैन। यो समस्या समाधान गर्न तपाईंको IT एडमिनले "<ph name="SOFTWARE_NAME" />" को कन्फिगरेसनसम्बन्धी निर्देशनहरू हेर्नुपर्छ। <ph name="FURTHER_EXPLANATION" /></translation>
 <translation id="5031870354684148875">Google अनुवादको बारेमा</translation>
@@ -2538,7 +2534,6 @@
 <translation id="6270066318535733958">बोटिङ</translation>
 <translation id="6272088941196661550">तपाईं Chrome को ब्राउजिङ इतिहासमा सान्दर्भिक गतिविधि हेर्न चाहनुहुन्छ भने खोज्ने क्रम सुचारु गर्नुहोस्</translation>
 <translation id="6272383483618007430">Google अपडेट</translation>
-<translation id="627746635834430766">अर्को पटक अझ छिटो भुक्तानी गर्न आफ्नो Google खातामा आफ्नो कार्ड र बिलिङ ठेगाना सेभ गर्नुहोस्।</translation>
 <translation id="6279183038361895380">तपाईंको कर्सर देखाउन |<ph name="ACCELERATOR" />| लाई थिच्नुहोस्</translation>
 <translation id="6280223929691119688">यो ठेगानामा डेलिभर गर्न सकिँदैन। कुनै अर्को ठेगाना चयन गर्नुहोस्।</translation>
 <translation id="6284292079994426700">२६ x ३८ इन्च</translation>
@@ -3850,7 +3845,6 @@
 <translation id="8922013791253848639">यो साइटमा सधैँ विज्ञापनहरू राख्ने अनुमति दिनुहोस्</translation>
 <translation id="892588693504540538">सिरानको दायाँपट्टि प्वाल</translation>
 <translation id="8930330541574156305">घर जग्गा</translation>
-<translation id="8931333241327730545">तपाईं आफ्नो Google खातामा यो कार्ड सुरक्षित गर्न चाहनुहुन्छ?</translation>
 <translation id="8932102934695377596">तपाईंको घडी ढिला छ</translation>
 <translation id="893332455753468063">नाम थप्नुहोस्</translation>
 <translation id="8942355029279167844">तपाईंका एड्मिनले <ph name="APP_NAME" /> एप सुधार्ने प्रयोजनका लागि यो एपलाई निदानसम्बन्धी डेटा सङ्कलन गर्ने अनुमति दिनुभएको छ। थप जानकारीका लागि <ph name="BEGIN_LINK" />https://www.parallels.com/pcep<ph name="END_LINK" /> मा जानुहोस्।</translation>
diff --git a/components/strings/components_strings_nl.xtb b/components/strings/components_strings_nl.xtb
index 2145de7..627ffb0 100644
--- a/components/strings/components_strings_nl.xtb
+++ b/components/strings/components_strings_nl.xtb
@@ -125,7 +125,6 @@
 <translation id="1243027604378859286">Auteur:</translation>
 <translation id="1246424317317450637">Vet</translation>
 <translation id="1247030632403369975">Aluminium</translation>
-<translation id="1250759482327835220">Sla je pas, naam en factuuradres op in je Google-account zodat je de volgende keer sneller kunt betalen.</translation>
 <translation id="1252209483516427155">Bovenkleding</translation>
 <translation id="1253921432148366685"><ph name="TYPE_1" />, <ph name="TYPE_2" /> (gesynchroniseerd)</translation>
 <translation id="1255086252236620440">Mixers</translation>
@@ -158,7 +157,6 @@
 <translation id="1294154142200295408">Opdrachtregelvarianten</translation>
 <translation id="129553762522093515">Recent gesloten</translation>
 <translation id="1296930489679394997">Sales</translation>
-<translation id="129863573139666797"><ph name="BEGIN_LINK" />Probeer je cookies te wissen<ph name="END_LINK" /></translation>
 <translation id="1301227606947843452">Legal Extra</translation>
 <translation id="1301324364792935241">Controleer je instellingen voor beveiligde DNS</translation>
 <translation id="1307966114820526988">Verouderde functies</translation>
@@ -1346,7 +1344,6 @@
 <translation id="3767485424735936570">Deze content kopiëren en plakken in <ph name="VM_NAME" /> wordt afgeraden op basis van het beheerdersbeleid</translation>
 <translation id="3772211998634047851">Papier (gebonden)</translation>
 <translation id="377451872037045164"><ph name="CREATE_GOOGLE_KEEP_NOTE_FOCUSED_FRIENDLY_MATCH_TEXT" />, druk op Tab en daarna op Enter om snel een nieuwe notitie in Google Keep te maken</translation>
-<translation id="3778403066972421603">Wil je deze pas opslaan in je Google-account en op dit apparaat?</translation>
 <translation id="378026377453746707">Chrome bevat ingebouwde veiligheidsfuncties, zoals Google Safe Browsing, die je beschermen terwijl je browst. Safe Browsing heeft recent <ph name="BEGIN_LINK" />schadelijke software gevonden op <ph name="SITE" /><ph name="END_LINK" />, die is ingesloten in de site die je wilt bezoeken.</translation>
 <translation id="3780694243617746492">Uitvoerbak</translation>
 <translation id="3781428340399460090">Felroze</translation>
@@ -1952,7 +1949,6 @@
 <translation id="5020776957610079374">Wereldmuziek</translation>
 <translation id="5021557570875267742">Prijzen volgen met Chrome</translation>
 <translation id="5023310440958281426">Neem het beleid van je beheerder door</translation>
-<translation id="5029568752722684782">Kopie wissen</translation>
 <translation id="5030338702439866405">Verleend door</translation>
 <translation id="503069730517007720">Er is een rootcertificaat voor '<ph name="SOFTWARE_NAME" />' vereist, maar niet geïnstalleerd. Je IT-beheerder moet de configuratie-instructies voor '<ph name="SOFTWARE_NAME" />' raadplegen om dit probleem op te lossen. <ph name="FURTHER_EXPLANATION" /></translation>
 <translation id="5031870354684148875">Over Google Translate</translation>
@@ -2534,7 +2530,6 @@
 <translation id="6270066318535733958">Roeien en zeilen</translation>
 <translation id="6272088941196661550">Hervat je traject om relevante activiteit in je Chrome-geschiedenis te bekijken</translation>
 <translation id="6272383483618007430">Google Update</translation>
-<translation id="627746635834430766">Sla je pas en factuuradres op in je Google-account zodat je de volgende keer sneller kunt betalen.</translation>
 <translation id="6279183038361895380">Druk op |<ph name="ACCELERATOR" />| om je cursor te bekijken</translation>
 <translation id="6280223929691119688">Kan niet bezorgen op dit adres. Selecteer een ander adres.</translation>
 <translation id="6284292079994426700">26 x 38 inch</translation>
@@ -3845,7 +3840,6 @@
 <translation id="8922013791253848639">Altijd advertenties op deze site toestaan</translation>
 <translation id="892588693504540538">Perforatie rechtsboven</translation>
 <translation id="8930330541574156305">Vastgoed</translation>
-<translation id="8931333241327730545">Wil je deze pas opslaan in je Google-account?</translation>
 <translation id="8932102934695377596">Je klok loopt achter</translation>
 <translation id="893332455753468063">Naam toevoegen</translation>
 <translation id="8942355029279167844">Je beheerder heeft toegestaan dat <ph name="APP_NAME" /> diagnostische gegevens verzamelt om de productfunctionaliteit te verbeteren. Zie <ph name="BEGIN_LINK" />https://www.parallels.com/pcep<ph name="END_LINK" /> voor meer informatie.</translation>
diff --git a/components/strings/components_strings_no.xtb b/components/strings/components_strings_no.xtb
index 6ccf534..5e8b8256 100644
--- a/components/strings/components_strings_no.xtb
+++ b/components/strings/components_strings_no.xtb
@@ -125,7 +125,6 @@
 <translation id="1243027604378859286">Forfatter:</translation>
 <translation id="1246424317317450637">Fet</translation>
 <translation id="1247030632403369975">Aluminium</translation>
-<translation id="1250759482327835220">For å betale raskere neste gang, lagre kortet og faktureringsadressen i Google-kontoen din.</translation>
 <translation id="1252209483516427155">Ytterklær</translation>
 <translation id="1253921432148366685"><ph name="TYPE_1" /> og <ph name="TYPE_2" /> (synkronisert)</translation>
 <translation id="1255086252236620440">Kjøkkenmiksere</translation>
@@ -158,7 +157,6 @@
 <translation id="1294154142200295408">Variasjoner i kommandolinjen</translation>
 <translation id="129553762522093515">Nylig lukket</translation>
 <translation id="1296930489679394997">Salg</translation>
-<translation id="129863573139666797"><ph name="BEGIN_LINK" />Prøv å slette informasjonskapslene dine<ph name="END_LINK" /></translation>
 <translation id="1301227606947843452">Legal Extra</translation>
 <translation id="1301324364792935241">Kontroller innstillingene for sikker DNS</translation>
 <translation id="1307966114820526988">Avviklede funksjoner</translation>
@@ -1351,7 +1349,6 @@
 <translation id="3767485424735936570">Kopiering og innliming av dette innholdet i <ph name="VM_NAME" /> frarådes av en administratorregel</translation>
 <translation id="3772211998634047851">Papir (obligasjon)</translation>
 <translation id="377451872037045164"><ph name="CREATE_GOOGLE_KEEP_NOTE_FOCUSED_FRIENDLY_MATCH_TEXT" /> – trykk på Tab og deretter på Enter for å opprette et nytt notat i Google Keep raskt</translation>
-<translation id="3778403066972421603">Vil du lagre dette kortet i Google-kontoen din og på denne enheten?</translation>
 <translation id="378026377453746707">Chrome har innebygde sikkerhetsfunksjoner som beskytter deg mens du surfer, for eksempel Google Safe Browsing. Safe Browsing har nylig <ph name="BEGIN_LINK" />funnet skadelig programvare på <ph name="SITE" /><ph name="END_LINK" />, som er innebygd i nettstedet du prøver å besøke.</translation>
 <translation id="3780694243617746492">Ut-skuff</translation>
 <translation id="3781428340399460090">Knallrosa</translation>
@@ -1957,7 +1954,6 @@
 <translation id="5020776957610079374">Verdensmusikk</translation>
 <translation id="5021557570875267742">Spor priser med Chrome</translation>
 <translation id="5023310440958281426">Kontroller retningslinjene til administratoren din</translation>
-<translation id="5029568752722684782">Slett kopi</translation>
 <translation id="5030338702439866405">Utstedt av</translation>
 <translation id="503069730517007720">Et rotsertifikat for «<ph name="SOFTWARE_NAME" />» kreves, men er ikke installert. IT-administratoren din bør se på konfigurasjonsveiledningen for «<ph name="SOFTWARE_NAME" />» for å løse dette problemet. <ph name="FURTHER_EXPLANATION" /></translation>
 <translation id="5031870354684148875">Om Google Oversett</translation>
@@ -2540,7 +2536,6 @@
 <translation id="6270066318535733958">Båtsport</translation>
 <translation id="6272088941196661550">Fortsett reisen for å se relevant aktivitet i Chrome-loggen</translation>
 <translation id="6272383483618007430">Google Oppdatering</translation>
-<translation id="627746635834430766">For å betale raskere neste gang, lagre kortet ditt og faktureringsadressen i Google-kontoen din.</translation>
 <translation id="6279183038361895380">Trykk på |<ph name="ACCELERATOR" />| for å se markøren</translation>
 <translation id="6280223929691119688">Kan ikke levere til denne adressen. Velg en annen adresse.</translation>
 <translation id="6284292079994426700">26 x 38 tommer</translation>
@@ -3850,7 +3845,6 @@
 <translation id="8922013791253848639">Tillat alltid annonser på dette nettstedet</translation>
 <translation id="892588693504540538">Hull oppe til høyre</translation>
 <translation id="8930330541574156305">Eiendom</translation>
-<translation id="8931333241327730545">Vil du lagre dette kortet i Google-kontoen din?</translation>
 <translation id="8932102934695377596">Klokken går for sent</translation>
 <translation id="893332455753468063">Legg til navn</translation>
 <translation id="8942355029279167844">Administratoren din har gitt <ph name="APP_NAME" /> tillatelse til å samle inn diagnostikkdata for å gi deg en bedre produktopplevelse. Se <ph name="BEGIN_LINK" />https://www.parallels.com/pcep<ph name="END_LINK" /> for mer informasjon.</translation>
diff --git a/components/strings/components_strings_or.xtb b/components/strings/components_strings_or.xtb
index 93410224c..8049d20 100644
--- a/components/strings/components_strings_or.xtb
+++ b/components/strings/components_strings_or.xtb
@@ -125,7 +125,6 @@
 <translation id="1243027604378859286">ଲେଖକ:</translation>
 <translation id="1246424317317450637">ବୋଲ୍ଡ</translation>
 <translation id="1247030632403369975">ଆଲୁମିନିୟମ</translation>
-<translation id="1250759482327835220">ପରବର୍ତ୍ତୀ ସମୟରେ, ପୈଠ କରିବାର ପ୍ରକ୍ରିୟାକୁ ଦ୍ରୁତତର କରିବା ପାଇଁ ଆପଣଙ୍କର Google ଆକାଉଣ୍ଟରେ ଆପଣଙ୍କ କାର୍ଡ ଓ ବିଲିଂ ଠିକଣା ସେଭ୍ କରନ୍ତୁ।</translation>
 <translation id="1252209483516427155">ଆଉଟୱେର</translation>
 <translation id="1253921432148366685"><ph name="TYPE_1" />, <ph name="TYPE_2" /> (ସିଙ୍କ୍ କରାଯାଇଛି)</translation>
 <translation id="1255086252236620440">ଖାଦ୍ୟ ମିକ୍ସର</translation>
@@ -158,7 +157,6 @@
 <translation id="1294154142200295408">କମାଣ୍ଡ-ଲାଇନ୍‍ ଭିନ୍ନତା</translation>
 <translation id="129553762522093515">ବର୍ତ୍ତମାନ ବନ୍ଦ ହୋଇଛି</translation>
 <translation id="1296930489679394997">ସେଲ୍ସ</translation>
-<translation id="129863573139666797"><ph name="BEGIN_LINK" />ଆପଣଙ୍କର କୁକୀଗୁଡିକୁ ଖାଲି କରିବାକୁ ଚେଷ୍ଟା କରନ୍ତୁ<ph name="END_LINK" /></translation>
 <translation id="1301227606947843452">ଲିଗାଲ ଏକ୍ସଟ୍ରା</translation>
 <translation id="1301324364792935241">ଆପଣଙ୍କର ସୁରକ୍ଷିତ DNS ସେଟିଂସ୍ ଯାଞ୍ଚ କରନ୍ତୁ</translation>
 <translation id="1307966114820526988">ଅଗ୍ରାହ୍ୟ କରାଯାଇଥିବା ଫିଚର୍‍ଗୁଡ଼ିକ</translation>
@@ -1348,7 +1346,6 @@
 <translation id="3767485424735936570">ଏହି ବିଷୟବସ୍ତୁକୁ <ph name="VM_NAME" />ରେ କପି ଏବଂ ପେଷ୍ଟ କରିବା ଆଡମିନିଷ୍ଟ୍ରେଟର୍ ନୀତି ଦ୍ୱାରା ସୁପାରିଶ କରାଯାଇନାହିଁ</translation>
 <translation id="3772211998634047851">କାଗଜ (ବଣ୍ଡ)</translation>
 <translation id="377451872037045164"><ph name="CREATE_GOOGLE_KEEP_NOTE_FOCUSED_FRIENDLY_MATCH_TEXT" />, Google Keepରେ ଶୀଘ୍ର ଏକ ନୂଆ ନୋଟ୍ ତିଆରି କରିବାକୁ Tab କରି Enter ଦବାନ୍ତୁ</translation>
-<translation id="3778403066972421603">ଆପଣ ଏହି କାର୍ଡକୁ ଆପଣଙ୍କର Google ଆକାଉଣ୍ଟ ଏବଂ ଏହି ଡିଭାଇସ୍‍‍ରେ ସେଭ୍ କରିବାକୁ ଚାହୁଁଛନ୍ତି କି?</translation>
 <translation id="378026377453746707">ଆପଣ ବ୍ରାଉଜ କରିବା ସମୟରେ ଆପଣଙ୍କୁ ସୁରକ୍ଷିତ ରଖିବା ପାଇଁ Chromeରେ Google ସୁରକ୍ଷିତ ବ୍ରାଉଜିଂ ପରି ବିଲ୍ଟ-ଇନ ସୁରକ୍ଷା ଫିଚରଗୁଡ଼ିକ ଅଛି। ସୁରକ୍ଷିତ ବ୍ରାଉଜିଂ ବର୍ତ୍ତମାନ <ph name="BEGIN_LINK" /><ph name="SITE" />ରେ କ୍ଷତିକାରକ ସଫ୍ଟୱେର ପାଇଛି<ph name="END_LINK" />, ଯାହାକୁ ଆପଣ ଭିଜିଟ କରିବାକୁ ଚେଷ୍ଟା କରୁଥିବା ସାଇଟରେ ଏମ୍ବେଡ କରାଯାଇଛି।</translation>
 <translation id="3780694243617746492">ଆଉଟପୁଟ୍ ବିନ୍</translation>
 <translation id="3781428340399460090">ଅତ୍ୟଧିକ ଗୋଲାପି</translation>
@@ -1955,7 +1952,6 @@
 <translation id="5020776957610079374">ୱାର୍ଲ୍ଡ ମ୍ୟୁଜିକ</translation>
 <translation id="5021557570875267742">Chrome ମାଧ୍ୟମରେ ମୂଲ୍ୟଗୁଡ଼ିକୁ ଟ୍ରାକ କରନ୍ତୁ</translation>
 <translation id="5023310440958281426">ଆପଣଙ୍କର ବ୍ଯବସ୍ଥାପକଙ୍କ ନୀତି ଯାଞ୍ଚ କରନ୍ତୁ</translation>
-<translation id="5029568752722684782">କପି ଖାଲି କରନ୍ତୁ</translation>
 <translation id="5030338702439866405">ଏହାଙ୍କ ଦ୍ୱାରା ଜାରି କରାଯାଇଛି</translation>
 <translation id="503069730517007720">"<ph name="SOFTWARE_NAME" />" ପାଇଁ ଏକ ମୂଳ ସାର୍ଟିଫିକେଟ୍ ଆବଶ୍ୟକ କିନ୍ତୁ ଇନ୍‍ଷ୍ଟଲ୍ କରାଯାଇ ନାହିଁ। ଆପଣଙ୍କର IT ବ୍ୟବସ୍ଥାପକ ଏହି ସମସ୍ୟାକୁ ଠିକ୍ କରିବା ପାଇଁ "<ph name="SOFTWARE_NAME" />"ର କନଫିଗ୍‍‍ରେସନ୍ ନିର୍ଦ୍ଦେଶାବଳୀ ଦେଖିବା ଉଚିତ। <ph name="FURTHER_EXPLANATION" /></translation>
 <translation id="5031870354684148875">Google ଅନୁବାଦ ବିଷୟରେ</translation>
@@ -2537,7 +2533,6 @@
 <translation id="6270066318535733958">ନୌକା ଚାଳନା</translation>
 <translation id="6272088941196661550">ଆପଣଙ୍କ Chrome ଇତିହାସରେ ପ୍ରାସଙ୍ଗିକ କାର୍ଯ୍ୟକଳାପ ଦେଖିବାକୁ ଆପଣଙ୍କ ସନ୍ଧାନ ପୁଣି ଆରମ୍ଭ କରନ୍ତୁ</translation>
 <translation id="6272383483618007430">Google ଅପଡେଟ୍</translation>
-<translation id="627746635834430766">ପରବର୍ତ୍ତୀ ସମୟରେ ପୈଠ ପ୍ରକ୍ରିୟାକୁ ଦ୍ରୁତତର କରିବା ପାଇଁ ଆପଣଙ୍କର Google ଆକାଉଣ୍ଟରେ ଆପଣଙ୍କ କାର୍ଡ ଓ ବିଲିଂ ଠିକଣା ସେଭ୍ କରନ୍ତୁ।</translation>
 <translation id="6279183038361895380">ଆପଣଙ୍କର କର୍ସର୍‌ ଦେଖାଇବାକୁ |<ph name="ACCELERATOR" />| ଦବାନ୍ତୁ</translation>
 <translation id="6280223929691119688">ଏହି ଠିକଣାକୁ ପହଞ୍ଚାଇପାରିବ ନାହିଁ। ଏକ ଭିନ୍ନ ଠିକଣା ଚୟନ କରନ୍ତୁ।</translation>
 <translation id="6284292079994426700">26 x 38 ଇଞ୍ଚ</translation>
@@ -3848,7 +3843,6 @@
 <translation id="8922013791253848639">ଏହି ସାଇଟ୍‌ରେ ସର୍ବଦା ବିଜ୍ଞାପନକୁ ଅନୁମତି ଦିଅନ୍ତୁ</translation>
 <translation id="892588693504540538">ଉପର ଡାହାଣ ପଟରେ ପଞ୍ଚ୍</translation>
 <translation id="8930330541574156305">ରିଅଲ ଇଷ୍ଟେଟ</translation>
-<translation id="8931333241327730545">ଆପଣ ନିଜର Google ଆକାଉଣ୍ଟରେ ଏହି କାର୍ଡକୁ ସେଭ୍ କରିବାକୁ ଚାହୁଁଛନ୍ତି କି?</translation>
 <translation id="8932102934695377596">ଆପଣଙ୍କର ଘଣ୍ଟାର ସମୟ ପଛରେ ଅଛି</translation>
 <translation id="893332455753468063">ନାମ ଯୋଗ କରନ୍ତୁ</translation>
 <translation id="8942355029279167844">ଆପଣଙ୍କ ଆଡମିନିଷ୍ଟ୍ରେଟର <ph name="APP_NAME" />କୁ ପ୍ରଡକ୍ଟ ବ୍ୟବହାରର ଅନୁଭୂତିକୁ ଉନ୍ନତ କରିବା ପାଇଁ ଡାଏଗ୍ନୋଷ୍ଟିକ୍ସ ଡାଟା ସଂଗ୍ରହ କରିବାକୁ ଅନୁମତି ଦେଇଛନ୍ତି। ଅଧିକ ସୂଚନା ପାଇଁ <ph name="BEGIN_LINK" />https://www.parallels.com/pcep<ph name="END_LINK" /> ଦେଖନ୍ତୁ।</translation>
diff --git a/components/strings/components_strings_pa.xtb b/components/strings/components_strings_pa.xtb
index cebd9620..9b0026db 100644
--- a/components/strings/components_strings_pa.xtb
+++ b/components/strings/components_strings_pa.xtb
@@ -125,7 +125,6 @@
 <translation id="1243027604378859286">ਲੇਖਕ:</translation>
 <translation id="1246424317317450637">ਗੂੜ੍ਹਾ</translation>
 <translation id="1247030632403369975">ਐਲਮੀਨੀਅਮ</translation>
-<translation id="1250759482327835220">ਅਗਲੀ ਵਾਰ ਵਧੇਰੇ ਤੇਜ਼ੀ ਨਾਲ ਭੁਗਤਾਨ ਕਰਨ ਲਈ, ਆਪਣੇ 'Google ਖਾਤੇ' ਵਿੱਚ ਆਪਣਾ ਕਾਰਡ, ਨਾਮ ਅਤੇ ਬਿਲਿੰਗ ਪਤਾ ਰੱਖਿਅਤ ਕਰੋ।</translation>
 <translation id="1252209483516427155">ਬਾਹਰੀ ਕੱਪੜੇ</translation>
 <translation id="1253921432148366685"><ph name="TYPE_1" />, <ph name="TYPE_2" /> (ਸਿੰਕ ਕੀਤੇ ਗਏ)</translation>
 <translation id="1255086252236620440">ਭੋਜਨ ਮਿਕਸਰ</translation>
@@ -158,7 +157,6 @@
 <translation id="1294154142200295408">ਆਦੇਸ਼-ਰੇਖਾ ਵਖਰੇਂਵੇ</translation>
 <translation id="129553762522093515">ਹਾਲ ਵਿੱਚ ਹੀ ਬੰਦ ਕੀਤੇ</translation>
 <translation id="1296930489679394997">ਸੇਲਾਂ</translation>
-<translation id="129863573139666797"><ph name="BEGIN_LINK" />ਆਪਣੀਆਂ ਕੁਕੀਜ਼ ਨੂੰ ਸਾਫ਼ ਕਰਨ ਨੂੰ ਅਜ਼ਮਾਓ<ph name="END_LINK" /></translation>
 <translation id="1301227606947843452">ਲੀਗਲ ਐਕਸਟਰਾ</translation>
 <translation id="1301324364792935241">ਆਪਣੀਆਂ ਸੁਰੱਖਿਅਤ DNS ਸੈਟਿੰਗਾਂ ਦੀ ਜਾਂਚ ਕਰੋ</translation>
 <translation id="1307966114820526988">ਨਾਪਸੰਦ ਕੀਤੀਆਂ ਵਿਸ਼ੇਸ਼ਤਾਵਾਂ</translation>
@@ -1348,7 +1346,6 @@
 <translation id="3767485424735936570">ਪ੍ਰਸ਼ਾਸਕ ਨੀਤੀ ਵੱਲੋਂ <ph name="VM_NAME" /> 'ਤੇ ਇਸ ਸਮੱਗਰੀ ਨੂੰ ਕਾਪੀ ਅਤੇ ਪੇਸਟ ਕਰਨ ਦੀ ਸਿਫ਼ਾਰਸ਼ ਨਹੀਂ ਕੀਤੀ ਜਾਂਦੀ</translation>
 <translation id="3772211998634047851">ਪੇਪਰ (ਬੌਂਡ)</translation>
 <translation id="377451872037045164"><ph name="CREATE_GOOGLE_KEEP_NOTE_FOCUSED_FRIENDLY_MATCH_TEXT" />, Google Keep ਵਿੱਚ ਤੇਜ਼ੀ ਨਾਲ ਨਵਾਂ ਨੋਟ-ਕਥਨ ਬਣਾਉਣ ਲਈ Tab ਦਬਾ ਕੇ ਫਿਰ Enter ਦਬਾਓ</translation>
-<translation id="3778403066972421603">ਕੀ ਤੁਸੀਂ ਇਸ ਕਾਰਡ ਨੂੰ ਆਪਣੇ Google ਖਾਤੇ ਅਤੇ ਇਸ ਡੀਵਾਈਸ 'ਤੇ ਰੱਖਿਅਤ ਕਰਨਾ ਚਾਹੁੰਦੇ ਹੋ?</translation>
 <translation id="378026377453746707">ਤੁਹਾਡੇ ਵੱਲੋਂ ਬ੍ਰਾਊਜ਼ ਕਰਨ ਦੌਰਾਨ ਤੁਹਾਡੀ ਸੁਰੱਖਿਆ ਕਰਨ ਲਈ Chrome ਵਿੱਚ ਤੁਹਾਡੀ ਸੁਰੱਖਿਆ ਲਈ ਬਿਲਟ-ਇਨ ਸੁਰੱਖਿਆ ਵਿਸ਼ੇਸ਼ਤਾਵਾਂ ਹਨ — ਜਿਵੇਂ ਕਿ Google ਸੁਰੱਖਿਅਤ ਬ੍ਰਾਊਜ਼ਿੰਗ। ਸੁਰੱਖਿਅਤ ਬ੍ਰਾਊਜ਼ਿੰਗ ਨੂੰ ਹਾਲ ਹੀ ਵਿੱਚ <ph name="BEGIN_LINK" /><ph name="SITE" /> 'ਤੇ ਹਾਨੀਕਾਰਕ ਸਾਫ਼ਟਵੇਅਰ ਦਾ ਪਤਾ ਲੱਗਿਆ ਹੈ<ph name="END_LINK" />, ਜਿਸਨੂੰ ਉਸ ਸਾਈਟ ਵਿੱਚ ਜੋੜਿਆ ਗਿਆ ਹੈ ਜਿਸ 'ਤੇ ਤੁਸੀਂ ਜਾਣ ਦੀ ਕੋਸ਼ਿਸ਼ ਕਰ ਰਹੇ ਹੋ।</translation>
 <translation id="3780694243617746492">ਆਊਟਪੁੱਟ ਬਿਨ</translation>
 <translation id="3781428340399460090">ਗੂੜ੍ਹਾ ਗੁਲਾਬੀ</translation>
@@ -1954,7 +1951,6 @@
 <translation id="5020776957610079374">ਵਿਸ਼ਵ ਸੰਗੀਤ</translation>
 <translation id="5021557570875267742">Chrome ਨਾਲ ਕੀਮਤਾਂ ਟਰੈਕ ਕਰੋ</translation>
 <translation id="5023310440958281426">ਆਪਣੇ ਪ੍ਰਬੰਧਕ ਦੀਆਂ ਨੀਤੀਆਂ ਦੇਖੋ</translation>
-<translation id="5029568752722684782">ਕਾਪੀ ਹਟਾਓ</translation>
 <translation id="5030338702439866405">ਵੱਲੋਂ ਜਾਰੀ ਕੀਤਾ</translation>
 <translation id="503069730517007720">"<ph name="SOFTWARE_NAME" />" ਲਈ 'ਰੂਟ ਪ੍ਰਮਾਣ-ਪੱਤਰ' ਲੋੜੀਂਦਾ ਹੈ ਪਰ ਸਥਾਪਤ ਨਹੀਂ ਹੈ। ਇਸ ਸਮੱਸਿਆ ਨੂੰ ਠੀਕ ਕਰਨ ਲਈ ਤੁਹਾਡੇ ਆਈ.ਟੀ ਪ੍ਰਸ਼ਾਸਕ ਨੂੰ "<ph name="SOFTWARE_NAME" />" ਲਈ ਰੂਪ-ਰੇਖਾ ਹਿਦਾਇਤਾਂ ਨੂੰ ਦੇਖਣਾ ਚਾਹੀਦਾ ਹੈ। <ph name="FURTHER_EXPLANATION" /></translation>
 <translation id="5031870354684148875">Google Translate ਬਾਰੇ</translation>
@@ -2536,7 +2532,6 @@
 <translation id="6270066318535733958">ਕਿਸ਼ਤੀ ਦੀ ਸਵਾਰੀ</translation>
 <translation id="6272088941196661550">ਆਪਣੇ Chrome ਇਤਿਹਾਸ ਵਿੱਚ ਢੁਕਵੀਂ ਸਰਗਰਮੀ ਦੇਖਣ ਲਈ ਆਪਣੇ ਖੋਜ ਸਫ਼ਰ ਨੂੰ ਮੁੜ-ਚਾਲੂ ਕਰੋ</translation>
 <translation id="6272383483618007430">Google ਅੱਪਡੇਟ</translation>
-<translation id="627746635834430766">ਅਗਲੀ ਵਾਰ ਵਧੇਰੇ ਤੇਜ਼ੀ ਨਾਲ ਭੁਗਤਾਨ ਕਰਨ ਲਈ, ਆਪਣੇ ਕਾਰਡ ਅਤੇ ਬਿਲਿੰਗ ਪਤੇ ਨੂੰ ਆਪਣੇ Google ਖਾਤੇ ਵਿੱਚ ਰੱਖਿਅਤ ਕਰੋ।</translation>
 <translation id="6279183038361895380">ਆਪਣਾ ਕਰਸਰ ਵਿਖਾਉਣ ਲਈ |<ph name="ACCELERATOR" />| ਦਬਾਓ</translation>
 <translation id="6280223929691119688">ਇਸ ਪਤੇ 'ਤੇ ਅਦਾਇਗੀ ਨਹੀਂ ਕੀਤੀ ਜਾ ਸਕਦੀ। ਕੋਈ ਵੱਖਰਾ ਪਤਾ ਚੁਣੋ।</translation>
 <translation id="6284292079994426700">26 x 38 ਇੰਚ</translation>
@@ -3847,7 +3842,6 @@
 <translation id="8922013791253848639">ਇਸ ਸਾਈਟ 'ਤੇ ਹਮੇਸ਼ਾ ਵਿਗਿਆਪਨਾਂ ਨੂੰ ਇਜਾਜ਼ਤ ਦਿਓ</translation>
 <translation id="892588693504540538">ਉੱਪਰ ਸੱਜੇ ਪਾਸੇ ਮੋਰੀ</translation>
 <translation id="8930330541574156305">ਅਚੱਲ ਸੰਪਤੀ</translation>
-<translation id="8931333241327730545">ਕੀ ਤੁਸੀਂ ਇਸ ਕਾਰਡ ਨੂੰ ਆਪਣੇ Google ਖਾਤੇ ਵਿੱਚ ਰੱਖਿਅਤ ਕਰਨਾ ਚਾਹੁੰਦੇ ਹੋ?</translation>
 <translation id="8932102934695377596">ਤੁਹਾਡੀ ਘੜੀ ਪਿੱਛੇ ਹੈ</translation>
 <translation id="893332455753468063">ਨਾਮ ਸ਼ਾਮਲ ਕਰੋ</translation>
 <translation id="8942355029279167844">ਉਤਪਾਦ ਅਨੁਭਵ ਨੂੰ ਬਿਹਤਰ ਬਣਾਉਣ ਲਈ ਤੁਹਾਡੇ ਪ੍ਰਸ਼ਾਸਕ ਨੇ <ph name="APP_NAME" /> ਨੂੰ ਤਸ਼ਖੀਸੀ ਡਾਟਾ ਇਕੱਤਰ ਕਰਨ ਦੀ ਇਜਾਜ਼ਤ ਦੇ ਦਿੱਤੀ ਹੈ। ਹੋਰ ਜਾਣਕਾਰੀ ਲਈ <ph name="BEGIN_LINK" />https://www.parallels.com/pcep<ph name="END_LINK" /> ਨੂੰ ਦੇਖੋ।</translation>
diff --git a/components/strings/components_strings_pl.xtb b/components/strings/components_strings_pl.xtb
index 11b5e58b..8fbcb09 100644
--- a/components/strings/components_strings_pl.xtb
+++ b/components/strings/components_strings_pl.xtb
@@ -125,7 +125,6 @@
 <translation id="1243027604378859286">Autor:</translation>
 <translation id="1246424317317450637">Pogrubienie</translation>
 <translation id="1247030632403369975">Aluminium</translation>
-<translation id="1250759482327835220">Aby następnym razem zapłacić szybciej, zapisz kartę oraz imię, nazwisko i adres rozliczeniowy na swoim koncie Google.</translation>
 <translation id="1252209483516427155">Odzież wierzchnia</translation>
 <translation id="1253921432148366685"><ph name="TYPE_1" />, <ph name="TYPE_2" /> (zsynchronizowane)</translation>
 <translation id="1255086252236620440">Miksery</translation>
@@ -158,7 +157,6 @@
 <translation id="1294154142200295408">Odmiany w wierszu poleceń</translation>
 <translation id="129553762522093515">Ostatnio zamknięte</translation>
 <translation id="1296930489679394997">Sprzedaż</translation>
-<translation id="129863573139666797"><ph name="BEGIN_LINK" />Usuń pliki cookie<ph name="END_LINK" /></translation>
 <translation id="1301227606947843452">Legal Extra</translation>
 <translation id="1301324364792935241">Sprawdź ustawienia bezpiecznego DNS</translation>
 <translation id="1307966114820526988">Funkcje wycofane</translation>
@@ -1351,7 +1349,6 @@
 <translation id="3767485424735936570">Kopiowanie i wklejanie tej zawartości do systemu <ph name="VM_NAME" /> nie jest zalecane przez zasady administratora</translation>
 <translation id="3772211998634047851">Papier (Bond)</translation>
 <translation id="377451872037045164"><ph name="CREATE_GOOGLE_KEEP_NOTE_FOCUSED_FRIENDLY_MATCH_TEXT" />; naciśnij Tab, a potem Enter, aby szybko utworzyć nową notatkę w Google Keep</translation>
-<translation id="3778403066972421603">Czy chcesz zapisać tę kartę na swoim koncie Google i na tym urządzeniu?</translation>
 <translation id="378026377453746707">Chrome ma wbudowane zabezpieczenia takie jak Bezpieczne przeglądanie Google, które chronią Cię podczas korzystania z internetu. Niedawno Bezpieczne przeglądanie <ph name="BEGIN_LINK" />znalazło szkodliwe oprogramowanie na stronie<ph name="SITE" /><ph name="END_LINK" /> umieszczonej w witrynie, którą chcesz odwiedzić.</translation>
 <translation id="3780694243617746492">Pojemnik wyjściowy</translation>
 <translation id="3781428340399460090">Ciepłoróżowy</translation>
@@ -1957,7 +1954,6 @@
 <translation id="5020776957610079374">Muzyka świata</translation>
 <translation id="5021557570875267742">Monitorowanie cen w Chrome</translation>
 <translation id="5023310440958281426">Sprawdź zasady administratora</translation>
-<translation id="5029568752722684782">Usuń kopię</translation>
 <translation id="5030338702439866405">Wystawiony przez</translation>
 <translation id="503069730517007720">Certyfikat główny oprogramowania „<ph name="SOFTWARE_NAME" />” jest wymagany, ale nie został zainstalowany. Aby rozwiązać ten problem, administrator powinien przeczytać instrukcje dotyczące konfiguracji oprogramowania „<ph name="SOFTWARE_NAME" />”. <ph name="FURTHER_EXPLANATION" /></translation>
 <translation id="5031870354684148875">Tłumacz Google – informacje</translation>
@@ -2540,7 +2536,6 @@
 <translation id="6270066318535733958">Wioślarstwo</translation>
 <translation id="6272088941196661550">Wznów swoją serię czynności, aby zobaczyć odpowiednią aktywność w historii Chrome</translation>
 <translation id="6272383483618007430">Google Update</translation>
-<translation id="627746635834430766">Aby następnym razem zapłacić szybciej, zapisz kartę i adres rozliczeniowy na swoim koncie Google.</translation>
 <translation id="6279183038361895380">Naciśnij |<ph name="ACCELERATOR" />|, by wyświetlić kursor</translation>
 <translation id="6280223929691119688">Nie można dostarczyć pod ten adres. Wybierz inny.</translation>
 <translation id="6284292079994426700">26 x 38 cali</translation>
@@ -3851,7 +3846,6 @@
 <translation id="8922013791253848639">Zawsze zezwalaj na wyświetlanie reklam na tej stronie</translation>
 <translation id="892588693504540538">Otwór w prawym górnym rogu</translation>
 <translation id="8930330541574156305">Nieruchomości</translation>
-<translation id="8931333241327730545">Chcesz zapisać tę kartę na swoim koncie Google?</translation>
 <translation id="8932102934695377596">Twój zegar się spóźnia</translation>
 <translation id="893332455753468063">Dodaj imię i nazwisko lub nazwę firmy</translation>
 <translation id="8942355029279167844">Administrator zezwolił aplikacji <ph name="APP_NAME" /> na zbieranie danych diagnostycznych, z których korzystamy, by ulepszać działanie usługi. Więcej informacji znajdziesz na <ph name="BEGIN_LINK" />https://www.parallels.com/pcep<ph name="END_LINK" />.</translation>
diff --git a/components/strings/components_strings_pt-BR.xtb b/components/strings/components_strings_pt-BR.xtb
index fbd1f3d0..9fa2f0607 100644
--- a/components/strings/components_strings_pt-BR.xtb
+++ b/components/strings/components_strings_pt-BR.xtb
@@ -125,7 +125,6 @@
 <translation id="1243027604378859286">Autor:</translation>
 <translation id="1246424317317450637">Negrito</translation>
 <translation id="1247030632403369975">Alumínio</translation>
-<translation id="1250759482327835220">Para agilizar o pagamento na próxima vez, salve o cartão, seu nome e o endereço de faturamento na sua Conta do Google.</translation>
 <translation id="1252209483516427155">Roupas</translation>
 <translation id="1253921432148366685"><ph name="TYPE_1" />, <ph name="TYPE_2" /> (sincronizados)</translation>
 <translation id="1255086252236620440">Centrífugas de alimentos</translation>
@@ -158,7 +157,6 @@
 <translation id="1294154142200295408">Variações de linha de comando</translation>
 <translation id="129553762522093515">Fechadas recentemente</translation>
 <translation id="1296930489679394997">Vendas</translation>
-<translation id="129863573139666797"><ph name="BEGIN_LINK" />Tente limpar os cookies<ph name="END_LINK" /></translation>
 <translation id="1301227606947843452">Legal Extra</translation>
 <translation id="1301324364792935241">Verifique suas configurações de DNS seguro</translation>
 <translation id="1307966114820526988">Recursos obsoletos</translation>
@@ -1351,7 +1349,6 @@
 <translation id="3767485424735936570">De acordo com a política do administrador, não é recomendado copiar e colar esse conteúdo no <ph name="VM_NAME" />.</translation>
 <translation id="3772211998634047851">Papel sulfite</translation>
 <translation id="377451872037045164"><ph name="CREATE_GOOGLE_KEEP_NOTE_FOCUSED_FRIENDLY_MATCH_TEXT" />. Pressione Tab e depois Enter para criar rapidamente uma nova nota no Google Keep</translation>
-<translation id="3778403066972421603">Quer salvar este cartão na sua Conta do Google e neste dispositivo?</translation>
 <translation id="378026377453746707">O Chrome tem medidas de segurança integradas para proteger você, como o recurso Navegação segura do Google. Recentemente, esse <ph name="BEGIN_LINK" />encontrou software nocivo em <ph name="SITE" /><ph name="END_LINK" />, que é incorporado ao site quando você tenta acessá-lo.</translation>
 <translation id="3780694243617746492">Bandeja de saída</translation>
 <translation id="3781428340399460090">Rosa-escuro</translation>
@@ -1957,7 +1954,6 @@
 <translation id="5020776957610079374">Música mundial</translation>
 <translation id="5021557570875267742">Monitore preços com o Chrome</translation>
 <translation id="5023310440958281426">Verifique as políticas do administrador</translation>
-<translation id="5029568752722684782">Limpar cópia</translation>
 <translation id="5030338702439866405">Emitido por</translation>
 <translation id="503069730517007720">Um certificado raiz para "<ph name="SOFTWARE_NAME" />" é necessário, mas não está instalado. O administrador de TI deve revisar as instruções de configuração do "<ph name="SOFTWARE_NAME" />" para corrigir esse problema. <ph name="FURTHER_EXPLANATION" /></translation>
 <translation id="5031870354684148875">Sobre o Google Tradutor</translation>
@@ -2540,7 +2536,6 @@
 <translation id="6270066318535733958">Atividades em barcos</translation>
 <translation id="6272088941196661550">Retomar a jornada para ver as atividades relevantes no seu histórico do Chrome</translation>
 <translation id="6272383483618007430">Google Update</translation>
-<translation id="627746635834430766">Para agilizar o pagamento na próxima vez, salve o cartão e o endereço de faturamento na sua Conta do Google.</translation>
 <translation id="6279183038361895380">Pressione |<ph name="ACCELERATOR" />| para exibir seu cursor</translation>
 <translation id="6280223929691119688">Não é possível entregar nesse endereço. Selecione um endereço diferente.</translation>
 <translation id="6284292079994426700">26 x 38 pol.</translation>
@@ -3852,7 +3847,6 @@
 <translation id="8922013791253848639">Sempre permitir anúncios neste site</translation>
 <translation id="892588693504540538">Perfuração na parte superior direita</translation>
 <translation id="8930330541574156305">Imóveis</translation>
-<translation id="8931333241327730545">Quer salvar este cartão na sua Conta do Google?</translation>
 <translation id="8932102934695377596">Seu relógio está atrasado</translation>
 <translation id="893332455753468063">Adicione um Nome</translation>
 <translation id="8942355029279167844">Seu administrador permitiu que <ph name="APP_NAME" /> coletasse dados de diagnósticos para melhorar a experiência com o produto. Veja mais informações em <ph name="BEGIN_LINK" />https://www.parallels.com/br/pcep<ph name="END_LINK" />.</translation>
diff --git a/components/strings/components_strings_pt-PT.xtb b/components/strings/components_strings_pt-PT.xtb
index c16e56f..7c36ecb9 100644
--- a/components/strings/components_strings_pt-PT.xtb
+++ b/components/strings/components_strings_pt-PT.xtb
@@ -125,7 +125,6 @@
 <translation id="1243027604378859286">Autor:</translation>
 <translation id="1246424317317450637">Negrito</translation>
 <translation id="1247030632403369975">Alumínio</translation>
-<translation id="1250759482327835220">Para pagar mais rapidamente da próxima vez, guarde o cartão, o nome e o endereço de faturação na sua Conta Google.</translation>
 <translation id="1252209483516427155">Vestuário para exterior</translation>
 <translation id="1253921432148366685"><ph name="TYPE_1" />, <ph name="TYPE_2" /> (sincronizados)</translation>
 <translation id="1255086252236620440">Misturadoras</translation>
@@ -158,7 +157,6 @@
 <translation id="1294154142200295408">Variações da linha de comandos</translation>
 <translation id="129553762522093515">Fechados recentemente</translation>
 <translation id="1296930489679394997">Vendas</translation>
-<translation id="129863573139666797"><ph name="BEGIN_LINK" />Experimente limpar os cookies<ph name="END_LINK" /></translation>
 <translation id="1301227606947843452">Legal Extra</translation>
 <translation id="1301324364792935241">Verifique as definições seguras do DNS</translation>
 <translation id="1307966114820526988">Funcionalidades descontinuadas</translation>
@@ -1351,7 +1349,6 @@
 <translation id="3767485424735936570">A ação de copiar e colar este conteúdo para <ph name="VM_NAME" /> não é recomendada pela política do administrador.</translation>
 <translation id="3772211998634047851">Papel (bond)</translation>
 <translation id="377451872037045164"><ph name="CREATE_GOOGLE_KEEP_NOTE_FOCUSED_FRIENDLY_MATCH_TEXT" />, prima Tab e, em seguida, Enter para criar rapidamente uma nova nota no Google Keep</translation>
-<translation id="3778403066972421603">Quer guardar este cartão na sua Conta Google e neste dispositivo?</translation>
 <translation id="378026377453746707">O Chrome tem funcionalidades de segurança incorporadas para proteger o utilizador enquanto navega, como a Navegação Segura do Google. A Navegação Segura <ph name="BEGIN_LINK" />encontrou recentemente software prejudicial em <ph name="SITE" /><ph name="END_LINK" />, que está incorporado no site que está a tentar visitar.</translation>
 <translation id="3780694243617746492">Tabuleiro de saída</translation>
 <translation id="3781428340399460090">Rosa choque</translation>
@@ -1957,7 +1954,6 @@
 <translation id="5020776957610079374">Música do mundo</translation>
 <translation id="5021557570875267742">Acompanhe os preços com o Chrome</translation>
 <translation id="5023310440958281426">Rever as políticas do gestor</translation>
-<translation id="5029568752722684782">Limpar cópia</translation>
 <translation id="5030338702439866405">Emitido por</translation>
 <translation id="503069730517007720">É necessário um certificado de raiz para o "<ph name="SOFTWARE_NAME" />", que não está instalado. O gestor de TI deve consultar as instruções de configuração do "<ph name="SOFTWARE_NAME" />" para corrigir este problema. <ph name="FURTHER_EXPLANATION" /></translation>
 <translation id="5031870354684148875">Acerca do Google Tradutor</translation>
@@ -2540,7 +2536,6 @@
 <translation id="6270066318535733958">Passeios de barco</translation>
 <translation id="6272088941196661550">Retome o percurso para ver atividade relevante no seu Histórico do Chrome</translation>
 <translation id="6272383483618007430">Google Update</translation>
-<translation id="627746635834430766">Para pagar mais rapidamente da próxima vez, guarde o cartão e o endereço de faturação na sua Conta Google.</translation>
 <translation id="6279183038361895380">Premir |<ph name="ACCELERATOR" />| para mostrar o cursor</translation>
 <translation id="6280223929691119688">Não é possível entregar neste endereço. Selecione um diferente.</translation>
 <translation id="6284292079994426700">26 x 38 pol.</translation>
@@ -3851,7 +3846,6 @@
 <translation id="8922013791253848639">Permitir sempre anúncios neste site</translation>
 <translation id="892588693504540538">Perfurar na parte superior direita</translation>
 <translation id="8930330541574156305">Imobiliário</translation>
-<translation id="8931333241327730545">Quer guardar este cartão na sua Conta Google?</translation>
 <translation id="8932102934695377596">O seu relógio está atrasado</translation>
 <translation id="893332455753468063">Adicionar nome</translation>
 <translation id="8942355029279167844">O seu administrador autorizou a app <ph name="APP_NAME" /> a recolher dados de diagnóstico para melhorar a experiência do produto. Veja <ph name="BEGIN_LINK" />https://www.parallels.com/pcep<ph name="END_LINK" /> para obter mais informações.</translation>
diff --git a/components/strings/components_strings_ro.xtb b/components/strings/components_strings_ro.xtb
index ee3b598..f8acd8e 100644
--- a/components/strings/components_strings_ro.xtb
+++ b/components/strings/components_strings_ro.xtb
@@ -125,7 +125,6 @@
 <translation id="1243027604378859286">Autor:</translation>
 <translation id="1246424317317450637">Aldin</translation>
 <translation id="1247030632403369975">Aluminiu</translation>
-<translation id="1250759482327835220">Pentru a plăti mai rapid data viitoare, salvează cardul, numele și adresa de facturare în Contul Google.</translation>
 <translation id="1252209483516427155">Îmbrăcăminte pentru exterior</translation>
 <translation id="1253921432148366685"><ph name="TYPE_1" />, <ph name="TYPE_2" /> (sincronizate)</translation>
 <translation id="1255086252236620440">Mixere de bucătărie</translation>
@@ -158,7 +157,6 @@
 <translation id="1294154142200295408">Variații ale liniilor de comandă</translation>
 <translation id="129553762522093515">Închise recent</translation>
 <translation id="1296930489679394997">Reduceri</translation>
-<translation id="129863573139666797"><ph name="BEGIN_LINK" />Șterge cookie-urile<ph name="END_LINK" /></translation>
 <translation id="1301227606947843452">Legal Extra</translation>
 <translation id="1301324364792935241">Verifică setările pentru DNS securizat</translation>
 <translation id="1307966114820526988">Funcții învechite</translation>
@@ -1351,7 +1349,6 @@
 <translation id="3767485424735936570">Politica implementată de administrator nu recomandă copierea și inserarea acestui conținut pe <ph name="VM_NAME" /></translation>
 <translation id="3772211998634047851">Hârtie (cretată)</translation>
 <translation id="377451872037045164"><ph name="CREATE_GOOGLE_KEEP_NOTE_FOCUSED_FRIENDLY_MATCH_TEXT" />, apasă pe Tab, apoi pe Enter pentru a crea rapid o notă în Google Keep</translation>
-<translation id="3778403066972421603">Dorești să salvezi acest card în Contul Google și pe acest dispozitiv?</translation>
 <translation id="378026377453746707">Chrome are funcții de siguranță încorporate pentru a te proteja în timp ce navighezi, cum ar fi Navigarea sigură Google. Navigarea sigură <ph name="BEGIN_LINK" />a detectat recent software dăunător pe <ph name="SITE" /><ph name="END_LINK" />, care este încorporat în site-ul pe care încerci să-l accesezi.</translation>
 <translation id="3780694243617746492">Tavă de ieșire</translation>
 <translation id="3781428340399460090">Roz aprins</translation>
@@ -1957,7 +1954,6 @@
 <translation id="5020776957610079374">Muzică World Music</translation>
 <translation id="5021557570875267742">Urmărește prețurile cu Chrome</translation>
 <translation id="5023310440958281426">Consultați politicile administratorului</translation>
-<translation id="5029568752722684782">Șterge copia</translation>
 <translation id="5030338702439866405">Emis de</translation>
 <translation id="503069730517007720">Un certificat rădăcină pentru „<ph name="SOFTWARE_NAME" />” este necesar, dar nu este instalat. Administratorul IT trebuie să verifice instrucțiunile de configurare pentru „<ph name="SOFTWARE_NAME" />” ca să remedieze problema. <ph name="FURTHER_EXPLANATION" /></translation>
 <translation id="5031870354684148875">Despre Google Traducere</translation>
@@ -2540,7 +2536,6 @@
 <translation id="6270066318535733958">Navigație recreativă</translation>
 <translation id="6272088941196661550">Continuă-ți parcursul pentru a vedea activitatea relevantă din istoricul Chrome</translation>
 <translation id="6272383483618007430">Actualizare Google</translation>
-<translation id="627746635834430766">Pentru a plăti mai rapid data viitoare, salvează cardul și adresa de facturare în Contul Google.</translation>
 <translation id="6279183038361895380">Apasă pe |<ph name="ACCELERATOR" />| pentru a fi afișat cursorul</translation>
 <translation id="6280223929691119688">Nu se poate livra la această adresă. Selectează altă adresă.</translation>
 <translation id="6284292079994426700">26 x 38 in</translation>
@@ -3852,7 +3847,6 @@
 <translation id="8922013791253848639">Permite întotdeauna anunțurile pe acest site</translation>
 <translation id="892588693504540538">Perforare în dreapta sus</translation>
 <translation id="8930330541574156305">Imobiliare</translation>
-<translation id="8931333241327730545">Dorești să salvezi acest card în Contul Google?</translation>
 <translation id="8932102934695377596">Ora este setată în trecut</translation>
 <translation id="893332455753468063">Adaugă un nume</translation>
 <translation id="8942355029279167844">Administratorul a permis ca <ph name="APP_NAME" /> să colecteze date de diagnosticare pentru a îmbunătăți experiența cu produsul. Consultă <ph name="BEGIN_LINK" />https://www.parallels.com/pcep<ph name="END_LINK" /> pentru mai multe informații.</translation>
diff --git a/components/strings/components_strings_ru.xtb b/components/strings/components_strings_ru.xtb
index 8b96ce6..f21ff65 100644
--- a/components/strings/components_strings_ru.xtb
+++ b/components/strings/components_strings_ru.xtb
@@ -125,7 +125,6 @@
 <translation id="1243027604378859286">Автор:</translation>
 <translation id="1246424317317450637">Полужирный</translation>
 <translation id="1247030632403369975">Алюминий</translation>
-<translation id="1250759482327835220">Чтобы ускорить процесс оплаты в будущем, сохраните карту, свое имя и платежный адрес в аккаунте Google.</translation>
 <translation id="1252209483516427155">Верхняя одежда</translation>
 <translation id="1253921432148366685"><ph name="TYPE_1" />, <ph name="TYPE_2" /> (данные синхронизируются)</translation>
 <translation id="1255086252236620440">Миксеры</translation>
@@ -158,7 +157,6 @@
 <translation id="1294154142200295408">Модификации для командной строки</translation>
 <translation id="129553762522093515">Недавно закрытые</translation>
 <translation id="1296930489679394997">Продажи</translation>
-<translation id="129863573139666797"><ph name="BEGIN_LINK" />Удалите файлы cookie<ph name="END_LINK" /></translation>
 <translation id="1301227606947843452">Legal Extra</translation>
 <translation id="1301324364792935241">Проверьте настройки безопасного DNS-сервера</translation>
 <translation id="1307966114820526988">Устаревшие функции</translation>
@@ -1350,7 +1348,6 @@
 <translation id="3767485424735936570">Администратор не рекомендует копировать и вставлять этот контент в окно <ph name="VM_NAME" />.</translation>
 <translation id="3772211998634047851">Бумага (высокосортная)</translation>
 <translation id="377451872037045164"><ph name="CREATE_GOOGLE_KEEP_NOTE_FOCUSED_FRIENDLY_MATCH_TEXT" />. Чтобы быстро создать заметку в Google Keep, нажмите Tab, а затем Ввод.</translation>
-<translation id="3778403066972421603">Хотите сохранить карту в аккаунте Google и на этом устройстве?</translation>
 <translation id="378026377453746707">В Chrome есть функции, защищающие вас при работе в браузере. Например, к ним относится сервис "Google Безопасный просмотр". Недавно он <ph name="BEGIN_LINK" />обнаружил вредоносное ПО на странице <ph name="SITE" /><ph name="END_LINK" />, встроенной в сайт, на который вы хотите перейти.</translation>
 <translation id="3780694243617746492">Выходной лоток</translation>
 <translation id="3781428340399460090">Ярко-розовый</translation>
@@ -1956,7 +1953,6 @@
 <translation id="5020776957610079374">Этническая музыка</translation>
 <translation id="5021557570875267742">Следите за ценами с помощью Chrome</translation>
 <translation id="5023310440958281426">Проверьте правила, установленные администратором</translation>
-<translation id="5029568752722684782">Удалить данные</translation>
 <translation id="5030338702439866405">Кем выдан</translation>
 <translation id="503069730517007720">Необходимый корневой сертификат для программы "<ph name="SOFTWARE_NAME" />" не установлен. Чтобы устранить проблему, попросите системного администратора ознакомиться с инструкциями по настройке программы "<ph name="SOFTWARE_NAME" />". <ph name="FURTHER_EXPLANATION" /></translation>
 <translation id="5031870354684148875">О Переводчике Google</translation>
@@ -2539,7 +2535,6 @@
 <translation id="6270066318535733958">Лодочный спорт</translation>
 <translation id="6272088941196661550">Посмотреть похожие действия в истории Chrome</translation>
 <translation id="6272383483618007430">Google Update</translation>
-<translation id="627746635834430766">Чтобы ускорить процесс оплаты в будущем, сохраните карту и платежный адрес в аккаунте Google.</translation>
 <translation id="6279183038361895380">Чтобы показать курсор, нажмите |<ph name="ACCELERATOR" />|</translation>
 <translation id="6280223929691119688">Невозможно доставить заказ по этому адресу. Выберите другой вариант.</translation>
 <translation id="6284292079994426700">26 x 38 дюймов</translation>
@@ -3850,7 +3845,6 @@
 <translation id="8922013791253848639">Всегда разрешать рекламу на этом сайте</translation>
 <translation id="892588693504540538">Отверстие в правом верхнем углу</translation>
 <translation id="8930330541574156305">Недвижимость</translation>
-<translation id="8931333241327730545">Сохранить эту карту в аккаунте Google?</translation>
 <translation id="8932102934695377596">Часы отстают</translation>
 <translation id="893332455753468063">Добавьте имя</translation>
 <translation id="8942355029279167844">Ваш администратор разрешил приложению "<ph name="APP_NAME" />" собирать диагностические данные для улучшения продукта. Более подробные сведения приведены на странице <ph name="BEGIN_LINK" />https://www.parallels.com/pcep<ph name="END_LINK" />.</translation>
diff --git a/components/strings/components_strings_si.xtb b/components/strings/components_strings_si.xtb
index 9bde8e8..9a47d60 100644
--- a/components/strings/components_strings_si.xtb
+++ b/components/strings/components_strings_si.xtb
@@ -125,7 +125,6 @@
 <translation id="1243027604378859286">කර්තෘ:</translation>
 <translation id="1246424317317450637">තද</translation>
 <translation id="1247030632403369975">ඇලුමිනියම්</translation>
-<translation id="1250759482327835220">ඊළඟ වතාවේ ඉක්මනින් ගෙවීමට, ඔබගේ Google ගිණුමට ඔබගේ කාඩ්පත, නම සහ බිල්පත් ලිපිනය සුරකින්න.</translation>
 <translation id="1252209483516427155">පිටත ඇඳුම්</translation>
 <translation id="1253921432148366685"><ph name="TYPE_1" />, <ph name="TYPE_2" /> (සමමුහුර්තයි)</translation>
 <translation id="1255086252236620440">ආහාර මිශ්‍ර යන්ත්‍ර</translation>
@@ -158,7 +157,6 @@
 <translation id="1294154142200295408">විධාන-පේළි ප්‍රභේදනයන්</translation>
 <translation id="129553762522093515">මෑත දී වැසිණි</translation>
 <translation id="1296930489679394997">විකුණුම්</translation>
-<translation id="129863573139666797"><ph name="BEGIN_LINK" />ඔබේ කුකි හිස් කරමින්<ph name="END_LINK" /></translation>
 <translation id="1301227606947843452">නීතිමය අමතර</translation>
 <translation id="1301324364792935241">ඔබේ සුරක්‍ෂිත DNS සැකසුම් පරීක්‍ෂා කරන්න</translation>
 <translation id="1307966114820526988">අත් හරින ලද විශේෂාංග</translation>
@@ -1351,7 +1349,6 @@
 <translation id="3767485424735936570">මෙම අන්තර්ගතය <ph name="VM_NAME" /> වෙත පිටපත් කිරීම සහ ඇලවීම සඳහා පරිපාලක ප්‍රතිපත්තිය මගින් නිර්දේශ නොකෙරේ</translation>
 <translation id="3772211998634047851">කඩදාසි (බැඳුණු)</translation>
 <translation id="377451872037045164"><ph name="CREATE_GOOGLE_KEEP_NOTE_FOCUSED_FRIENDLY_MATCH_TEXT" />, Google Keep හි නව සටහනක් ඉක්මනින් තැනීමට Tab ඔබා අනතුරුව Enter ඔබන්න</translation>
-<translation id="3778403066972421603">ඔබට මෙම උපාංගයේ ඔබේ Google ගිණුමට මෙම කාඩ්පත සුරැකීමට අවශ්‍යයි ද?</translation>
 <translation id="378026377453746707">ඔබ බ්‍රවුස් කරන අතරේ ඔබව ආරක්ෂා කිරීම සඳහා Google ආරක්ෂිත බ්‍රවුස් කිරීම වැනි, Chrome හි එක්ව තැනූ සුරක්ෂිතතා විශේෂාංග ඇත. ආරක්ෂිත බ්‍රවුස් කිරීම විසින් මෑතක දී ඔබ පිවිසීමට උත්සාහ කරන අඩවියේ කාවැදී ඇති <ph name="BEGIN_LINK" /><ph name="SITE" /> මත හානිකර මෘදුකාංග සොයා ගන්නා ලදි<ph name="END_LINK" />.</translation>
 <translation id="3780694243617746492">නිමැවුම් කූඩය</translation>
 <translation id="3781428340399460090">උණුසුම් රෝස</translation>
@@ -1957,7 +1954,6 @@
 <translation id="5020776957610079374">ලෝක සංගීතය</translation>
 <translation id="5021557570875267742">Chrome සමග මිල ගණන් නිරීක්ෂණය කරන්න</translation>
 <translation id="5023310440958281426">ඔබේ පරිපාලකගේ ප්‍රතිපත්ති විමසන්න</translation>
-<translation id="5029568752722684782">පැහැදිලි පිටපත</translation>
 <translation id="5030338702439866405">නිකුත් කළේ</translation>
 <translation id="503069730517007720">"<ph name="SOFTWARE_NAME" />" සඳහා මූල සහතිකයක් අවශ්‍ය වන නමුත්, එය ස්ථාපිත කර නොමැත. ඔබේ තොරතුරු තාක්ෂණ පරිපාලකයා විසින් මෙම ගැටලුව විසඳීමට "<ph name="SOFTWARE_NAME" />" සඳහා වින්‍යාස කිරීමේ උපදෙස් බැලිය යුතුය. <ph name="FURTHER_EXPLANATION" /></translation>
 <translation id="5031870354684148875">Google Translate පිළිබඳ</translation>
@@ -2540,7 +2536,6 @@
 <translation id="6270066318535733958">බෝට්ටු පැදීම</translation>
 <translation id="6272088941196661550">ඔබගේ Chrome ඉතිහාසය තුළ අදාළ ක්‍රියාකාරකම් බැලීමට ඔබගේ සංචාරය නැවත පටන් ගන්න</translation>
 <translation id="6272383483618007430">Google යාවත්කාලීන</translation>
-<translation id="627746635834430766">මීළඟ වතාවේ දී වේගවත්ව ගෙවීමට, ඔබේ Google ගිණුමට ඔබේ කාඩ්පත සහ බිල්පත් ලිපිනය සුරකින්න.</translation>
 <translation id="6279183038361895380">ඔබේ කර්සරය පෙන්වීමට |<ph name="ACCELERATOR" />| ඔබන්න</translation>
 <translation id="6280223929691119688">මෙම ලිපිනයට බෙදා හැරීමට නොහැකිය. වෙනත් ලිපිනයක් තෝරන්න.</translation>
 <translation id="6284292079994426700">අඟ 26 x 38</translation>
@@ -3852,7 +3847,6 @@
 <translation id="8922013791253848639">මෙම අඩවිය මත වෙළඳ දැන්වීම්වලට සැම විටම ඉඩ දෙන්න</translation>
 <translation id="892588693504540538">ඉහළ දකුණ අනින්න</translation>
 <translation id="8930330541574156305">දේපළ වෙළදාම්</translation>
-<translation id="8931333241327730545">ඔබට ඔබේ Google ගිණුම වෙත මෙම කාඩ්පත සුරැකීමට අවශ්‍යද?</translation>
 <translation id="8932102934695377596">ඔබගේ ඔරලෝසුව ඇත්තේ පිටුපසින් ය</translation>
 <translation id="893332455753468063">නම එක් කරන්න</translation>
 <translation id="8942355029279167844">ඔබගේ පරිපාලක <ph name="APP_NAME" /> හට නිෂ්පාදන අත්දැකීම වැඩිදියුණු කිරීම සඳහා දෝෂ නිර්ණ දත්ත රැස් කිරීමට ඉඩ දී ඇත. වැඩි විස්තර සඳහා <ph name="BEGIN_LINK" />https://www.parallels.com/pcep<ph name="END_LINK" /> බලන්න.</translation>
diff --git a/components/strings/components_strings_sk.xtb b/components/strings/components_strings_sk.xtb
index 0081cc0..b357248a 100644
--- a/components/strings/components_strings_sk.xtb
+++ b/components/strings/components_strings_sk.xtb
@@ -125,7 +125,6 @@
 <translation id="1243027604378859286">Autor:</translation>
 <translation id="1246424317317450637">Tučné</translation>
 <translation id="1247030632403369975">Hliník</translation>
-<translation id="1250759482327835220">Ak chcete nabudúce zaplatiť rýchlejšie, uložte si kartu, meno a fakturačnú adresu do účtu Google.</translation>
 <translation id="1252209483516427155">Vrchné oblečenie</translation>
 <translation id="1253921432148366685"><ph name="TYPE_1" />, <ph name="TYPE_2" /> (synchronizované)</translation>
 <translation id="1255086252236620440">Mixéry na potraviny</translation>
@@ -158,7 +157,6 @@
 <translation id="1294154142200295408">Variácie v príkazovom riadku</translation>
 <translation id="129553762522093515">Nedávno zatvorené</translation>
 <translation id="1296930489679394997">Predaj</translation>
-<translation id="129863573139666797"><ph name="BEGIN_LINK" />Skúste vymazať súbory cookie<ph name="END_LINK" /></translation>
 <translation id="1301227606947843452">Právny dokument (Extra)</translation>
 <translation id="1301324364792935241">Skontrolujte svoje nastavenia zabezpečeného servera DNS</translation>
 <translation id="1307966114820526988">Funkcie s ukončenou podporou</translation>
@@ -1347,7 +1345,6 @@
 <translation id="3767485424735936570">Pravidlá správcu neodporúčajú skopírovanie tohto obsahu a jeho prilepenie do umiestnenia <ph name="VM_NAME" /></translation>
 <translation id="3772211998634047851">Papier (listinový)</translation>
 <translation id="377451872037045164"><ph name="CREATE_GOOGLE_KEEP_NOTE_FOCUSED_FRIENDLY_MATCH_TEXT" />, postupným stlačením klávesov Tab a Enter vytvoríte rýchlym spôsobom novú poznámku v službe Google Keep</translation>
-<translation id="3778403066972421603">Chcete uložiť túto kartu do svojho účtu Google a tohto zariadenia?</translation>
 <translation id="378026377453746707">Chrome má integrované bezpečnostné funkcie, ktoré vás chránia pri prehliadaní, napríklad Bezpečné prehliadanie Google. Bezpečné prehliadanie nedávno <ph name="BEGIN_LINK" />našlo škodlivý softvér na webe <ph name="SITE" /><ph name="END_LINK" /> vloženom na webe, ktorý sa pokúšate navštíviť.</translation>
 <translation id="3780694243617746492">Výstupná priehradka</translation>
 <translation id="3781428340399460090">Jasnoružová</translation>
@@ -1953,7 +1950,6 @@
 <translation id="5020776957610079374">Svetová hudba</translation>
 <translation id="5021557570875267742">Sledovanie cien pomocou Chromu</translation>
 <translation id="5023310440958281426">Skontrolujte pravidlá správcu</translation>
-<translation id="5029568752722684782">Vymazať kópiu</translation>
 <translation id="5030338702439866405">Vydavateľ</translation>
 <translation id="503069730517007720">Vyžaduje sa koreňový certifikát softvéru <ph name="SOFTWARE_NAME" />, ale nie je nainštalovaný. Váš správca IT by si mal prezrieť pokyny na konfiguráciu softvéru <ph name="SOFTWARE_NAME" /> a tento problém vyriešiť. <ph name="FURTHER_EXPLANATION" /></translation>
 <translation id="5031870354684148875">O službe Prekladač Google</translation>
@@ -2535,7 +2531,6 @@
 <translation id="6270066318535733958">Plavba loďou</translation>
 <translation id="6272088941196661550">Pokračujte v ceste a zobrazte si relevantnú aktivitu v histórii Chromu</translation>
 <translation id="6272383483618007430">Aktualizácie Google</translation>
-<translation id="627746635834430766">Ak chcete nabudúce zaplatiť rýchlejšie, uložte si kartu a fakturačnú adresu do účtu Google.</translation>
 <translation id="6279183038361895380">Stlačením klávesa |<ph name="ACCELERATOR" />| zobrazíte kurzor</translation>
 <translation id="6280223929691119688">Doručenie na túto adresu nie je možné. Vyberte inú adresu.</translation>
 <translation id="6284292079994426700">26 × 38 palcov</translation>
@@ -3847,7 +3842,6 @@
 <translation id="8922013791253848639">Vždy povoliť reklamy na tomto webe</translation>
 <translation id="892588693504540538">Prederaviť vpravo hore</translation>
 <translation id="8930330541574156305">Nehnuteľnosti</translation>
-<translation id="8931333241327730545">Chcete túto kartu uložiť do svojho účtu Google?</translation>
 <translation id="8932102934695377596">Vaše hodiny idú pozadu</translation>
 <translation id="893332455753468063">Pridanie mena</translation>
 <translation id="8942355029279167844">Váš správca povolil aplikácii <ph name="APP_NAME" /> zhromažďovať diagnostické údaje na zlepšenie prostredia služby. Viac sa dozviete na <ph name="BEGIN_LINK" />https://www.parallels.com/pcep<ph name="END_LINK" />.</translation>
diff --git a/components/strings/components_strings_sl.xtb b/components/strings/components_strings_sl.xtb
index 93d9f2d..15b99f2 100644
--- a/components/strings/components_strings_sl.xtb
+++ b/components/strings/components_strings_sl.xtb
@@ -125,7 +125,6 @@
 <translation id="1243027604378859286">Avtor:</translation>
 <translation id="1246424317317450637">Krepko</translation>
 <translation id="1247030632403369975">Aluminum</translation>
-<translation id="1250759482327835220">Če želite naslednjič hitreje plačati, shranite kartico, ime in naslov za izstavitev računa v Google Računu.</translation>
 <translation id="1252209483516427155">Zunanja oblačila</translation>
 <translation id="1253921432148366685"><ph name="TYPE_1" />, <ph name="TYPE_2" /> (sinhronizirano)</translation>
 <translation id="1255086252236620440">Mešalniki hrane</translation>
@@ -158,7 +157,6 @@
 <translation id="1294154142200295408">Različice ukazne vrstice</translation>
 <translation id="129553762522093515">Nedavno zaprto</translation>
 <translation id="1296930489679394997">Prodaja</translation>
-<translation id="129863573139666797"><ph name="BEGIN_LINK" />Poskusite izbrisati piškotke<ph name="END_LINK" /></translation>
 <translation id="1301227606947843452">Legal Extra</translation>
 <translation id="1301324364792935241">Preverite nastavitve za varni DNS</translation>
 <translation id="1307966114820526988">Zastarele funkcije</translation>
@@ -1351,7 +1349,6 @@
 <translation id="3767485424735936570">Pravilnik skrbnika ne priporoča, da to vsebino kopirate in prilepite v <ph name="VM_NAME" />.</translation>
 <translation id="3772211998634047851">Paper (Bond)</translation>
 <translation id="377451872037045164"><ph name="CREATE_GOOGLE_KEEP_NOTE_FOCUSED_FRIENDLY_MATCH_TEXT" />, pritisnite tabulatorko, nato Enter, če želite hitro ustvariti nov zapisek v Googlu Keep</translation>
-<translation id="3778403066972421603">Ali želite shraniti to kartico v Google Račun in v tej napravi?</translation>
 <translation id="378026377453746707">Chrome ima vgrajene varnostne funkcije, ki vas ščitijo med brskanjem, kot je Google Varno brskanje. Varno brskanje je nedavno <ph name="BEGIN_LINK" />odkrilo škodljivo programsko opremo na <ph name="SITE" /><ph name="END_LINK" />, ki je vdelana v spletno mesto, ki ga poskušate obiskati.</translation>
 <translation id="3780694243617746492">Izhodni koš</translation>
 <translation id="3781428340399460090">Živo rožnata</translation>
@@ -1957,7 +1954,6 @@
 <translation id="5020776957610079374">Svetovna glasba</translation>
 <translation id="5021557570875267742">Spremljanje cen v Chromu</translation>
 <translation id="5023310440958281426">Preverite skrbnikove pravilnike</translation>
-<translation id="5029568752722684782">Počisti kopijo</translation>
 <translation id="5030338702439866405">Izdajatelj</translation>
 <translation id="503069730517007720">Korensko potrdilo za programsko opremo »<ph name="SOFTWARE_NAME" />« je obvezno, vendar ni nameščeno. Skrbnik za IT lahko za odpravo te težave upošteva navodila za konfiguracijo za programsko opremo »<ph name="SOFTWARE_NAME" />«. <ph name="FURTHER_EXPLANATION" /></translation>
 <translation id="5031870354684148875">Google Prevajalnik – vizitka</translation>
@@ -2540,7 +2536,6 @@
 <translation id="6270066318535733958">Čolnarjenje</translation>
 <translation id="6272088941196661550">Nadaljujte pot, če si želite ogledati pomembno dejavnost v zgodovini uporabe Chroma.</translation>
 <translation id="6272383483618007430">Google Posodobitve</translation>
-<translation id="627746635834430766">Če želite naslednjič hitreje plačati, shranite kartico in naslov za izstavitev računa v Google Računu.</translation>
 <translation id="6279183038361895380">Pritisnite |<ph name="ACCELERATOR" />| za prikaz kazalca</translation>
 <translation id="6280223929691119688">Dostava na ta naslov ni mogoča. Izberite drugega.</translation>
 <translation id="6284292079994426700">26 x 38 palcev</translation>
@@ -3851,7 +3846,6 @@
 <translation id="8922013791253848639">Vedno dovoli oglase na tem spletnem mestu</translation>
 <translation id="892588693504540538">Luknjanje zgoraj desno</translation>
 <translation id="8930330541574156305">Nepremičnine</translation>
-<translation id="8931333241327730545">Ali želite to kartico shraniti v Google Račun?</translation>
 <translation id="8932102934695377596">Ura zaostaja</translation>
 <translation id="893332455753468063">Dodajanje imena</translation>
 <translation id="8942355029279167844">Skrbnik je omogočil aplikaciji <ph name="APP_NAME" />, da zbira diagnostične podatke zaradi izboljšanja uporabnosti izdelka. Več informacij je na voljo na <ph name="BEGIN_LINK" />https://www.parallels.com/pcep<ph name="END_LINK" />.</translation>
diff --git a/components/strings/components_strings_sq.xtb b/components/strings/components_strings_sq.xtb
index 814f118..ddaf469 100644
--- a/components/strings/components_strings_sq.xtb
+++ b/components/strings/components_strings_sq.xtb
@@ -125,7 +125,6 @@
 <translation id="1243027604378859286">Autori:</translation>
 <translation id="1246424317317450637">Të trashësuara</translation>
 <translation id="1247030632403369975">Alumin</translation>
-<translation id="1250759482327835220">Për të paguar më shpejt herën tjetër, ruaje kartën, emrin dhe adresën tënde të faturimit në "Llogarinë tënde të Google".</translation>
 <translation id="1252209483516427155">Xhaketa</translation>
 <translation id="1253921432148366685"><ph name="TYPE_1" />, <ph name="TYPE_2" /> (sinkronizuar)</translation>
 <translation id="1255086252236620440">Mikserë</translation>
@@ -158,7 +157,6 @@
 <translation id="1294154142200295408">Variantet e rreshtit të komandës</translation>
 <translation id="129553762522093515">Të mbyllura së fundi</translation>
 <translation id="1296930489679394997">Shitjet</translation>
-<translation id="129863573139666797"><ph name="BEGIN_LINK" />Provo të pastrosh kukit<ph name="END_LINK" /></translation>
 <translation id="1301227606947843452">Ligjore shtesë</translation>
 <translation id="1301324364792935241">Kontrollo cilësimet e DNS-së së sigurt</translation>
 <translation id="1307966114820526988">Veçori të vjetruara</translation>
@@ -1351,7 +1349,6 @@
 <translation id="3767485424735936570">Kopjimi dhe ngjitja e kësaj përmbajtjeje në <ph name="VM_NAME" /> nuk rekomandohet nga politika e administratorit</translation>
 <translation id="3772211998634047851">Letër (me ngjitje)</translation>
 <translation id="377451872037045164"><ph name="CREATE_GOOGLE_KEEP_NOTE_FOCUSED_FRIENDLY_MATCH_TEXT" />, shtyp Tab pastaj Enter për të krijuar shpejt një shënim të ri në Google Keep</translation>
-<translation id="3778403066972421603">Dëshiron që ta ruash këtë kartë te llogaria jote e Google dhe në këtë pajisje?</translation>
 <translation id="378026377453746707">Chrome ka veçori sigurie të integruara për të të mbrojtur ndërsa shfleton, si p.sh. "Shfletimi i sigurt i Google". "Shfletimi i sigurt" së fundi <ph name="BEGIN_LINK" />gjeti softuer të dëmshëm në <ph name="SITE" /><ph name="END_LINK" />, i cili është i integruar në sajtin që po përpiqesh të vizitosh.</translation>
 <translation id="3780694243617746492">Koshi i daljes</translation>
 <translation id="3781428340399460090">Rozë e ndezur</translation>
@@ -1957,7 +1954,6 @@
 <translation id="5020776957610079374">Muzika botërore</translation>
 <translation id="5021557570875267742">Monitoro çmimet me Chrome</translation>
 <translation id="5023310440958281426">Kontrollo politikat e administratorit tënd</translation>
-<translation id="5029568752722684782">Pastro kopjen</translation>
 <translation id="5030338702439866405">Lëshuar nga</translation>
 <translation id="503069730517007720">Për "<ph name="SOFTWARE_NAME" />" kërkohet një certifikatë rrënjë, por ajo nuk është instaluar. Administratori i TI-së duhet të shikojë udhëzimet e konfigurimit për "<ph name="SOFTWARE_NAME" />" për të rregulluar këtë problem. <ph name="FURTHER_EXPLANATION" /></translation>
 <translation id="5031870354684148875">Rreth "Përkthe me Google"</translation>
@@ -2539,7 +2535,6 @@
 <translation id="6270066318535733958">Lundrim me barkë</translation>
 <translation id="6272088941196661550">Vazhdo udhëtimin për të parë aktivitetin përkatës në historikun tënd të Chrome</translation>
 <translation id="6272383483618007430">Përditësimi i Google</translation>
-<translation id="627746635834430766">Për të paguar më shpejt herën tjetër, ruaje kartën dhe adresën tënde të faturimit në llogarinë tënde të Google.</translation>
 <translation id="6279183038361895380">Shtyp |<ph name="ACCELERATOR" />| për të shfaqur kursorin</translation>
 <translation id="6280223929691119688">Nuk mund të dorëzohet në këtë adresë. Zgjidh një adresë tjetër.</translation>
 <translation id="6284292079994426700">26 x 38 inç</translation>
@@ -3850,7 +3845,6 @@
 <translation id="8922013791253848639">Lejo gjithmonë reklamat në këtë sajt</translation>
 <translation id="892588693504540538">Shpim lart djathtas</translation>
 <translation id="8930330541574156305">Pasuritë e patundshme</translation>
-<translation id="8931333241327730545">Dëshiron që ta ruash këtë kartë te llogaria jote e Google?</translation>
 <translation id="8932102934695377596">Ora ka mbetur prapa</translation>
 <translation id="893332455753468063">Shto emër</translation>
 <translation id="8942355029279167844">Administratori yt ka lejuar që <ph name="APP_NAME" /> të grumbullojë të dhënat e diagnostikimit për të përmirësuar përvojën e produktit. Shiko <ph name="BEGIN_LINK" />https://www.parallels.com/pcep<ph name="END_LINK" /> për më shumë informacion.</translation>
diff --git a/components/strings/components_strings_sr-Latn.xtb b/components/strings/components_strings_sr-Latn.xtb
index 7ec4bd3..332d723 100644
--- a/components/strings/components_strings_sr-Latn.xtb
+++ b/components/strings/components_strings_sr-Latn.xtb
@@ -125,7 +125,6 @@
 <translation id="1243027604378859286">Autor:</translation>
 <translation id="1246424317317450637">Podebljano</translation>
 <translation id="1247030632403369975">Aluminijum</translation>
-<translation id="1250759482327835220">Da biste sledeći put platili brže, sačuvajte karticu, ime i adresu za obračun na Google nalogu.</translation>
 <translation id="1252209483516427155">Kaputi i jakne</translation>
 <translation id="1253921432148366685"><ph name="TYPE_1" />, <ph name="TYPE_2" /> (sinhronizovano)</translation>
 <translation id="1255086252236620440">Mikseri za hranu</translation>
@@ -158,7 +157,6 @@
 <translation id="1294154142200295408">Varijacije komandne linije</translation>
 <translation id="129553762522093515">Nedavno zatvoreno</translation>
 <translation id="1296930489679394997">Rasprodaja</translation>
-<translation id="129863573139666797"><ph name="BEGIN_LINK" />Pokušajte da obrišete kolačiće<ph name="END_LINK" /></translation>
 <translation id="1301227606947843452">Legal Extra</translation>
 <translation id="1301324364792935241">Proverite podešavanja za bezbedan DNS</translation>
 <translation id="1307966114820526988">Zastarele funkcije</translation>
@@ -1351,7 +1349,6 @@
 <translation id="3767485424735936570">Smernice administratora ne preporučuju kopiranje i lepljenje ovog sadržaja u <ph name="VM_NAME" /></translation>
 <translation id="3772211998634047851">Papir (izdržljiv)</translation>
 <translation id="377451872037045164"><ph name="CREATE_GOOGLE_KEEP_NOTE_FOCUSED_FRIENDLY_MATCH_TEXT" />, pritisnite Tab, pa Enter da biste brzo napravili novu belešku u Google Keep-u</translation>
-<translation id="3778403066972421603">Da li želite da sačuvate ovu karticu na Google nalogu i na ovom uređaju?</translation>
 <translation id="378026377453746707">Chrome ima ugrađene bezbednosne funkcije koje vas štite tokom pregledanja, kao što je Google bezbedno pregledanje. Bezbedno pregledanje je nedavno <ph name="BEGIN_LINK" />otkrilo štetan softver na sajtu <ph name="SITE" /><ph name="END_LINK" />, koji je ugrađen u sajt koji pokušavate da posetite.</translation>
 <translation id="3780694243617746492">Izlazna pregrada</translation>
 <translation id="3781428340399460090">Jarkoroze</translation>
@@ -1957,7 +1954,6 @@
 <translation id="5020776957610079374">Etno muzika</translation>
 <translation id="5021557570875267742">Pratite cene pomoću Chrome-a</translation>
 <translation id="5023310440958281426">Proverite smernice administratora</translation>
-<translation id="5029568752722684782">Obriši kopiju</translation>
 <translation id="5030338702439866405">Izdao/la</translation>
 <translation id="503069730517007720">Osnovni sertifikat za softver „<ph name="SOFTWARE_NAME" />“ je obavezan, ali nije instaliran. IT administrator treba da pregleda uputstva za konfiguraciju softvera „<ph name="SOFTWARE_NAME" />“ da bi rešio ovaj problem. <ph name="FURTHER_EXPLANATION" /></translation>
 <translation id="5031870354684148875">O Google prevodiocu</translation>
@@ -2539,7 +2535,6 @@
 <translation id="6270066318535733958">Vožnja čamcem</translation>
 <translation id="6272088941196661550">Nastavite put da biste videli relevantne aktivnosti u istoriji Chrome-a</translation>
 <translation id="6272383483618007430">Google ažuriranje</translation>
-<translation id="627746635834430766">Da biste sledeći put platili brže, sačuvajte karticu i adresu za obračun na Google nalogu.</translation>
 <translation id="6279183038361895380">Pritisnite |<ph name="ACCELERATOR" />| da biste prikazali pokazivač</translation>
 <translation id="6280223929691119688">Isporuka na ovu adresu nije moguća. Izaberite drugu adresu.</translation>
 <translation id="6284292079994426700">26×38 in</translation>
@@ -3852,7 +3847,6 @@
 <translation id="8922013791253848639">Uvek dozvoljavaj oglase na ovom sajtu</translation>
 <translation id="892588693504540538">Bušenje u gornjem desnom uglu</translation>
 <translation id="8930330541574156305">Nekretnine</translation>
-<translation id="8931333241327730545">Da li želite da sačuvate ovu karticu na Google nalog?</translation>
 <translation id="8932102934695377596">Sat vam kasni</translation>
 <translation id="893332455753468063">Dodajte ime</translation>
 <translation id="8942355029279167844">Administrator je dozvolio da <ph name="APP_NAME" /> prikuplja dijagnostičke podatke radi poboljšanja doživljaja proizvoda. Više informacija potražite na <ph name="BEGIN_LINK" />https://www.parallels.com/pcep<ph name="END_LINK" />.</translation>
diff --git a/components/strings/components_strings_sr.xtb b/components/strings/components_strings_sr.xtb
index d65f095..9e1c12d 100644
--- a/components/strings/components_strings_sr.xtb
+++ b/components/strings/components_strings_sr.xtb
@@ -125,7 +125,6 @@
 <translation id="1243027604378859286">Aутор:</translation>
 <translation id="1246424317317450637">Подебљано</translation>
 <translation id="1247030632403369975">Алуминијум</translation>
-<translation id="1250759482327835220">Да бисте следећи пут платили брже, сачувајте картицу, име и адресу за обрачун на Google налогу.</translation>
 <translation id="1252209483516427155">Капути и јакне</translation>
 <translation id="1253921432148366685"><ph name="TYPE_1" />, <ph name="TYPE_2" /> (синхронизовано)</translation>
 <translation id="1255086252236620440">Миксери за храну</translation>
@@ -158,7 +157,6 @@
 <translation id="1294154142200295408">Варијације командне линије</translation>
 <translation id="129553762522093515">Недавно затворено</translation>
 <translation id="1296930489679394997">Распродаја</translation>
-<translation id="129863573139666797"><ph name="BEGIN_LINK" />Покушајте да обришете колачиће<ph name="END_LINK" /></translation>
 <translation id="1301227606947843452">Legal Extra</translation>
 <translation id="1301324364792935241">Проверите подешавања за безбедан DNS</translation>
 <translation id="1307966114820526988">Застареле функције</translation>
@@ -1351,7 +1349,6 @@
 <translation id="3767485424735936570">Смернице администратора не препоручују копирање и лепљење овог садржаја у <ph name="VM_NAME" /></translation>
 <translation id="3772211998634047851">Папир (издржљив)</translation>
 <translation id="377451872037045164"><ph name="CREATE_GOOGLE_KEEP_NOTE_FOCUSED_FRIENDLY_MATCH_TEXT" />, притисните Tab, па Enter да бисте брзо направили нову белешку у Google Keep-у</translation>
-<translation id="3778403066972421603">Да ли желите да сачувате ову картицу на Google налогу и на овом уређају?</translation>
 <translation id="378026377453746707">Chrome има уграђене безбедносне функције које вас штите током прегледања, као што је Google безбедно прегледање. Безбедно прегледање је недавно <ph name="BEGIN_LINK" />открило штетан софтвер на сајту <ph name="SITE" /><ph name="END_LINK" />, који је уграђен у сајт који покушавате да посетите.</translation>
 <translation id="3780694243617746492">Излазна преграда</translation>
 <translation id="3781428340399460090">Јаркорозе</translation>
@@ -1957,7 +1954,6 @@
 <translation id="5020776957610079374">Етно музика</translation>
 <translation id="5021557570875267742">Пратите цене помоћу Chrome-а</translation>
 <translation id="5023310440958281426">Проверите смернице администратора</translation>
-<translation id="5029568752722684782">Обриши копију</translation>
 <translation id="5030338702439866405">Издао/ла</translation>
 <translation id="503069730517007720">Основни сертификат за софтвер „<ph name="SOFTWARE_NAME" />“ је обавезан, али није инсталиран. ИТ администратор треба да прегледа упутства за конфигурацију софтвера „<ph name="SOFTWARE_NAME" />“ да би решио овај проблем. <ph name="FURTHER_EXPLANATION" /></translation>
 <translation id="5031870354684148875">О Google преводиоцу</translation>
@@ -2539,7 +2535,6 @@
 <translation id="6270066318535733958">Вожња чамцем</translation>
 <translation id="6272088941196661550">Наставите пут да бисте видели релевантне активности у историји Chrome-а</translation>
 <translation id="6272383483618007430">Google ажурирање</translation>
-<translation id="627746635834430766">Да бисте следећи пут платили брже, сачувајте картицу и адресу за обрачун на Google налогу.</translation>
 <translation id="6279183038361895380">Притисните |<ph name="ACCELERATOR" />| да бисте приказали показивач</translation>
 <translation id="6280223929691119688">Испорука на ову адресу није могућа. Изаберите другу адресу.</translation>
 <translation id="6284292079994426700">26×38 in</translation>
@@ -3852,7 +3847,6 @@
 <translation id="8922013791253848639">Увек дозвољавај огласе на овом сајту</translation>
 <translation id="892588693504540538">Бушење у горњем десном углу</translation>
 <translation id="8930330541574156305">Некретнине</translation>
-<translation id="8931333241327730545">Да ли желите да сачувате ову картицу на Google налог?</translation>
 <translation id="8932102934695377596">Сат вам касни</translation>
 <translation id="893332455753468063">Додајте име</translation>
 <translation id="8942355029279167844">Администратор је дозволио да <ph name="APP_NAME" /> прикупља дијагностичке податке ради побољшања доживљаја производа. Више информација потражите на <ph name="BEGIN_LINK" />https://www.parallels.com/pcep<ph name="END_LINK" />.</translation>
diff --git a/components/strings/components_strings_sv.xtb b/components/strings/components_strings_sv.xtb
index f707ee3..f4b9531 100644
--- a/components/strings/components_strings_sv.xtb
+++ b/components/strings/components_strings_sv.xtb
@@ -125,7 +125,6 @@
 <translation id="1243027604378859286">Författare:</translation>
 <translation id="1246424317317450637">Fet</translation>
 <translation id="1247030632403369975">Aluminium</translation>
-<translation id="1250759482327835220">Spara kortet, faktureringsadressen och ditt namn i Google-kontot så går det snabbare att betala nästa gång.</translation>
 <translation id="1252209483516427155">Ytterkläder</translation>
 <translation id="1253921432148366685"><ph name="TYPE_1" />, <ph name="TYPE_2" /> (synkroniserade)</translation>
 <translation id="1255086252236620440">Matmixers</translation>
@@ -158,7 +157,6 @@
 <translation id="1294154142200295408">Varianter på kommandoraden</translation>
 <translation id="129553762522093515">Nyligen stängda</translation>
 <translation id="1296930489679394997">Försäljning</translation>
-<translation id="129863573139666797"><ph name="BEGIN_LINK" />Testa att rensa cookies<ph name="END_LINK" /></translation>
 <translation id="1301227606947843452">Legal Extra</translation>
 <translation id="1301324364792935241">Kontrollera inställningarna för den säkra DNS-konfigurationen</translation>
 <translation id="1307966114820526988">Utfasade funktioner</translation>
@@ -1351,7 +1349,6 @@
 <translation id="3767485424735936570">Att kopiera och klistra in i <ph name="VM_NAME" /> rekommenderas inte enligt en administratörspolicy</translation>
 <translation id="3772211998634047851">Papper (bond)</translation>
 <translation id="377451872037045164"><ph name="CREATE_GOOGLE_KEEP_NOTE_FOCUSED_FRIENDLY_MATCH_TEXT" />: tryck på Tabb och sedan på Retur om du snabbt vill skapa en ny anteckning i Google Keep</translation>
-<translation id="3778403066972421603">Vill du spara det här kortet i Google-kontot och på den här enheten?</translation>
 <translation id="378026377453746707">Chrome har inbyggda säkerhetsfunktioner som skyddar dig när du surfar, till exempel Google Säker webbsökning. Säker webbsökning <ph name="BEGIN_LINK" />hittade nyligen skadlig programvara på <ph name="SITE" /><ph name="END_LINK" />, som är inbäddad på webbplatsen som du försöker besöka.</translation>
 <translation id="3780694243617746492">Utmatningsfack</translation>
 <translation id="3781428340399460090">Cerise</translation>
@@ -1957,7 +1954,6 @@
 <translation id="5020776957610079374">Världsmusik</translation>
 <translation id="5021557570875267742">Bevaka priser med Chrome</translation>
 <translation id="5023310440958281426">Kontrollera administratörsprinciperna</translation>
-<translation id="5029568752722684782">Ta bort kopia</translation>
 <translation id="5030338702439866405">Utfärdat av</translation>
 <translation id="503069730517007720">Ett rotcertifikat för <ph name="SOFTWARE_NAME" /> krävs men har inte installerats. IT-administratören bör granska konfigurationsanvisningarna för <ph name="SOFTWARE_NAME" /> och åtgärda problemet. <ph name="FURTHER_EXPLANATION" /></translation>
 <translation id="5031870354684148875">Om Google Översätt</translation>
@@ -2540,7 +2536,6 @@
 <translation id="6270066318535733958">Båt</translation>
 <translation id="6272088941196661550">Återuppta sökningen för att se relevant aktivitet i Chrome-historiken</translation>
 <translation id="6272383483618007430">Google Update</translation>
-<translation id="627746635834430766">Spara kortet och faktureringsadressen i Google-kontot så går det snabbare att betala nästa gång.</translation>
 <translation id="6279183038361895380">Tryck på |<ph name="ACCELERATOR" />| om du vill visa markören</translation>
 <translation id="6280223929691119688">Det går inte att leverera till den här adressen. Välj en annan adress.</translation>
 <translation id="6284292079994426700">26 x 38 tum</translation>
@@ -3852,7 +3847,6 @@
 <translation id="8922013791253848639">Tillåt alltid annonser på den här webbplatsen</translation>
 <translation id="892588693504540538">Hål uppe till höger</translation>
 <translation id="8930330541574156305">Fastigheter</translation>
-<translation id="8931333241327730545">Vill du spara det här kortet i ditt Google-konto?</translation>
 <translation id="8932102934695377596">Klockan går efter</translation>
 <translation id="893332455753468063">Lägg till namn</translation>
 <translation id="8942355029279167844">Administratören har tillåtit <ph name="APP_NAME" /> att samla in diagnostikdata i syfte att förbättra produktupplevelsen. Du hittar mer information på <ph name="BEGIN_LINK" />https://www.parallels.com/pcep<ph name="END_LINK" />.</translation>
diff --git a/components/strings/components_strings_sw.xtb b/components/strings/components_strings_sw.xtb
index dd5cf5e..a38f3cd5 100644
--- a/components/strings/components_strings_sw.xtb
+++ b/components/strings/components_strings_sw.xtb
@@ -125,7 +125,6 @@
 <translation id="1243027604378859286">Mwandishi:</translation>
 <translation id="1246424317317450637">Herufi nzito</translation>
 <translation id="1247030632403369975">Alumini</translation>
-<translation id="1250759482327835220">Ili ulipe kwa haraka wakati ujao, hifadhi anwani ya kutuma bili, jina na maelezo ya kadi yako kwenye Akaunti yako ya Google.</translation>
 <translation id="1252209483516427155">Mavazi ya Nje</translation>
 <translation id="1253921432148366685"><ph name="TYPE_1" />, <ph name="TYPE_2" /> (zimesawazishwa)</translation>
 <translation id="1255086252236620440">Mashine za Kuchanganya Chakula</translation>
@@ -158,7 +157,6 @@
 <translation id="1294154142200295408">Tofauti za miundo ya amri</translation>
 <translation id="129553762522093515">Vilivyofungwa hivi karibuni</translation>
 <translation id="1296930489679394997">Mauzo</translation>
-<translation id="129863573139666797"><ph name="BEGIN_LINK" />Jaribu kufuta vidakuzi kwenye kivinjari chako<ph name="END_LINK" /></translation>
 <translation id="1301227606947843452">Ukubwa wa Legal Extra</translation>
 <translation id="1301324364792935241">Angalia mipangilio yako ya DNS Salama</translation>
 <translation id="1307966114820526988">Vipengele Vilivyoacha Kutumiwa</translation>
@@ -1351,7 +1349,6 @@
 <translation id="3767485424735936570">Sera ya msimamizi haipendekezi kunakili na kubandika maudhui haya kwenye <ph name="VM_NAME" /></translation>
 <translation id="3772211998634047851">Karatasi (Bondi)</translation>
 <translation id="377451872037045164"><ph name="CREATE_GOOGLE_KEEP_NOTE_FOCUSED_FRIENDLY_MATCH_TEXT" />, bonyeza 'Tab' kisha 'Enter' ili uunde dokezo jipya katika Google Keep kwa haraka</translation>
-<translation id="3778403066972421603">Je, ungependa kuhifadhi kadi hii kwenye Akaunti yako ya Google na kwenye kifaa hiki?</translation>
 <translation id="378026377453746707">Chrome ina vipengele vya usalama vilivyojumuishwa ili kukulinda unapovinjari, kama vile Kipengele cha Kuvinjari Salama na Google. Kipengele cha Kuvinjari Salama hivi karibuni <ph name="BEGIN_LINK" />kilipata programu hatari kwenye <ph name="SITE" /><ph name="END_LINK" />, ambayo imepachikwa kwenye tovuti unayojaribu kutembelea.</translation>
 <translation id="3780694243617746492">Tupio la kutoa</translation>
 <translation id="3781428340399460090">Waridi Inayong'aa</translation>
@@ -1957,7 +1954,6 @@
 <translation id="5020776957610079374">Muziki wa kimataifa</translation>
 <translation id="5021557570875267742">Fuatilia bei ukitumia Chrome</translation>
 <translation id="5023310440958281426">Angalia sera za msimamizi wako</translation>
-<translation id="5029568752722684782">Futa nakala</translation>
 <translation id="5030338702439866405">Kimetolewa Na</translation>
 <translation id="503069730517007720">Cheti cha msingi cha "<ph name="SOFTWARE_NAME" />" kinahitajika lakini hakijasakinishwa. Ni lazima msimamizi wako wa TEHAMA asome mipangilio ya "<ph name="SOFTWARE_NAME" />" ili atatue tatizo hili. <ph name="FURTHER_EXPLANATION" /></translation>
 <translation id="5031870354684148875">Kuhusu Google Tafsiri</translation>
@@ -2540,7 +2536,6 @@
 <translation id="6270066318535733958">Kusafiri kwa Kutumia Boti</translation>
 <translation id="6272088941196661550">Endelea na ziara yako ili uone shughuli muhimu katika historia yako kwenye Chrome</translation>
 <translation id="6272383483618007430">Sasisho kwa Google</translation>
-<translation id="627746635834430766">Ili ulipe kwa haraka wakati ujao, hifadhi anwani ya kutuma bili na maelezo ya kadi yako kwenye Akaunti yako ya Google.</translation>
 <translation id="6279183038361895380">Bonyeza |<ph name="ACCELERATOR" />| ili kiteuzi kionekane</translation>
 <translation id="6280223929691119688">Haiwezi kuwasilisha kwenye anwani hii. Chagua anwani tofauti.</translation>
 <translation id="6284292079994426700">Inchi 26 x 38</translation>
@@ -3848,7 +3843,6 @@
 <translation id="8922013791253848639">Ruhusu matangazo kwenye tovuti hii wakati wote</translation>
 <translation id="892588693504540538">Toboa juu kulia</translation>
 <translation id="8930330541574156305">Mali isiyohamishika</translation>
-<translation id="8931333241327730545">Je, ungependa kuhifadhi kadi hii katika Akaunti yako ya Google?</translation>
 <translation id="8932102934695377596">Saa yako iko nyuma</translation>
 <translation id="893332455753468063">Ongeza Jina</translation>
 <translation id="8942355029279167844">Msimamizi wako ameruhusu <ph name="APP_NAME" /> kukusanya data ya uchunguzi ili kuboresha hali ya utumiaji wa bidhaa. Angalia <ph name="BEGIN_LINK" />https://www.parallels.com/pcep<ph name="END_LINK" /> ili upate maelezo zaidi.</translation>
diff --git a/components/strings/components_strings_ta.xtb b/components/strings/components_strings_ta.xtb
index 1778119d..7d4c481 100644
--- a/components/strings/components_strings_ta.xtb
+++ b/components/strings/components_strings_ta.xtb
@@ -125,7 +125,6 @@
 <translation id="1243027604378859286">உருவாக்கியவர்:</translation>
 <translation id="1246424317317450637">தடித்த</translation>
 <translation id="1247030632403369975">அலுமினியம்</translation>
-<translation id="1250759482327835220">அடுத்த முறை விரைவாகப் பணம் செலுத்த, உங்கள் கார்டின் பெயரையும் பில்லிங் முகவரியையும் உங்கள் Google கணக்கில் சேமிக்கவும்.</translation>
 <translation id="1252209483516427155">மேலாடை</translation>
 <translation id="1253921432148366685"><ph name="TYPE_1" />, <ph name="TYPE_2" /> (ஒத்திசைக்கப்பட்டன)</translation>
 <translation id="1255086252236620440">உணவு மிக்ஸர்கள்</translation>
@@ -158,7 +157,6 @@
 <translation id="1294154142200295408">கட்டளை வரி மாற்று வடிவங்கள்</translation>
 <translation id="129553762522093515">சமீபத்தில் மூடியவை</translation>
 <translation id="1296930489679394997">விற்பனை</translation>
-<translation id="129863573139666797"><ph name="BEGIN_LINK" />குக்கீகளை அழிக்கவும்<ph name="END_LINK" /></translation>
 <translation id="1301227606947843452">லீகல் எக்ஸ்ட்ரா</translation>
 <translation id="1301324364792935241">உங்கள் பாதுகாப்பான DNS அமைப்புகளைச் சரிபாருங்கள்</translation>
 <translation id="1307966114820526988">நிறுத்தப்பட்ட அம்சங்கள்</translation>
@@ -1347,7 +1345,6 @@
 <translation id="3767485424735936570">இந்த உள்ளடக்கத்தை நகலெடுத்து <ph name="VM_NAME" /> இல் ஒட்டுவது நிர்வாகக் கொள்கையின்படி பரிந்துரைக்கப்படவில்லை</translation>
 <translation id="3772211998634047851">பாண்டு காகிதம்</translation>
 <translation id="377451872037045164"><ph name="CREATE_GOOGLE_KEEP_NOTE_FOCUSED_FRIENDLY_MATCH_TEXT" />, Google Keepபில் புதிய குறிப்பை விரைவாக உருவாக்க Tab பட்டனை அழுத்திவிட்டு Enter பட்டனை அழுத்துங்கள்</translation>
-<translation id="3778403066972421603">கார்டை உங்கள் Google கணக்கிலும் இந்தச் சாதனத்திலும் சேமிக்க விரும்புகிறீர்களா?</translation>
 <translation id="378026377453746707">நீங்கள் உலாவும்போது உங்களைப் பாதுகாக்க ‘Google பாதுகாப்பு உலாவல்’ போன்ற உள்ளமைந்த பாதுகாப்பு அம்சங்கள் Chromeமில் உள்ளன. இந்த அம்சம் நீங்கள் பார்க்க முயலும் <ph name="BEGIN_LINK" /><ph name="SITE" /> தளத்தில் தீங்கிழைக்கும் மென்பொருள் இருப்பதைச் சமீபத்தில் கண்டறிந்தது<ph name="END_LINK" />.</translation>
 <translation id="3780694243617746492">அவுட்புட் பின்</translation>
 <translation id="3781428340399460090">ஹாட் பிங்க்</translation>
@@ -1953,7 +1950,6 @@
 <translation id="5020776957610079374">சர்வதேச இசை</translation>
 <translation id="5021557570875267742">Chrome மூலம் விலைகளைக் கண்காணித்தல்</translation>
 <translation id="5023310440958281426">உங்கள் நிர்வாகியின் கொள்கைகளைச் சரிபார்க்கவும்</translation>
-<translation id="5029568752722684782">நகலை அழி</translation>
 <translation id="5030338702439866405">வழங்கியது</translation>
 <translation id="503069730517007720">"<ph name="SOFTWARE_NAME" />" மென்பொருளுக்கு மூலச் சான்றிதழ் தேவை, ஆனால் நிறுவப்படவில்லை. இந்தச் சிக்கலைச் சரிசெய்ய, "<ph name="SOFTWARE_NAME" />" மென்பொருளின் உள்ளமைவு வழிமுறைகளை ஐடி நிர்வாகி பின்பற்ற வேண்டும். <ph name="FURTHER_EXPLANATION" /></translation>
 <translation id="5031870354684148875">Google மொழியாக்கம் ஓர் அறிமுகம்</translation>
@@ -2535,7 +2531,6 @@
 <translation id="6270066318535733958">படகுச்சவாரி</translation>
 <translation id="6272088941196661550">Chrome செயல்பாடுகளில் இருக்கும் தொடர்புடைய செயல்பாடுகளைப் பார்க்க, உலாவலைத் தொடரலாம்</translation>
 <translation id="6272383483618007430">Google புதுப்பிப்பு</translation>
-<translation id="627746635834430766">அடுத்த முறை விரைவாகப் பணம் அனுப்ப, உங்கள் கார்டையும் பில்லிங் முகவரியையும் Google கணக்கில் சேமிக்கவும்.</translation>
 <translation id="6279183038361895380">உங்கள் சுட்டியைக் காட்ட |<ph name="ACCELERATOR" />| என்பதை அழுத்தவும்</translation>
 <translation id="6280223929691119688">இந்த முகவரிக்கு டெலிவரி செய்ய முடியாது. வேறு முகவரியைத் தேர்ந்தெடுக்கவும்.</translation>
 <translation id="6284292079994426700">26 x 38 இன்ச்</translation>
@@ -3846,7 +3841,6 @@
 <translation id="8922013791253848639">இந்தத் தளத்தில் எப்போதும் விளம்பரங்களை அனுமதி</translation>
 <translation id="892588693504540538">பஞ்ச் டாப் ரைட்</translation>
 <translation id="8930330541574156305">ரியல் எஸ்டேட்</translation>
-<translation id="8931333241327730545">இந்தக் கார்டை உங்கள் Google கணக்கில் சேமிக்க வேண்டுமா?</translation>
 <translation id="8932102934695377596">உங்கள் கடிகாரம் மிகவும் பின்தங்கி இருக்கிறது</translation>
 <translation id="893332455753468063">பெயரைச் சேர்க்கவும்</translation>
 <translation id="8942355029279167844">தயாரிப்பு அனுபவத்தை மேம்படுத்துவதற்காகப் பகுப்பாய்வுத் தரவைச் சேகரிக்க, <ph name="APP_NAME" /> ஆப்ஸுக்கு உங்கள் நிர்வாகி அனுமதி வழங்கியுள்ளார். கூடுதல் தகவல்களுக்கு <ph name="BEGIN_LINK" />https://www.parallels.com/pcep<ph name="END_LINK" /> என்ற தளத்திற்குச் செல்லவும்.</translation>
diff --git a/components/strings/components_strings_te.xtb b/components/strings/components_strings_te.xtb
index 5b34155b..73c4d35 100644
--- a/components/strings/components_strings_te.xtb
+++ b/components/strings/components_strings_te.xtb
@@ -125,7 +125,6 @@
 <translation id="1243027604378859286">రచయిత:</translation>
 <translation id="1246424317317450637">బోల్డ్</translation>
 <translation id="1247030632403369975">అల్యూమినియం</translation>
-<translation id="1250759482327835220">తర్వాతిసారి మరింత వేగంగా పేమెంట్ చేయడానికి, మీ కార్డ్, పేరు మరియు బిల్లింగ్ అడ్రస్‌ను మీ Google ఖాతాకు సేవ్ చేయండి.</translation>
 <translation id="1252209483516427155">పై దుస్తులు</translation>
 <translation id="1253921432148366685"><ph name="TYPE_1" />, <ph name="TYPE_2" /> (సింక్ చేయబడ్డాయి)</translation>
 <translation id="1255086252236620440">ఫుడ్ మిక్సర్‌లు</translation>
@@ -158,7 +157,6 @@
 <translation id="1294154142200295408">ఆదేశ-పంక్తి వ్యత్యాసాలు</translation>
 <translation id="129553762522093515">ఇటీవల మూసివేయబడినవి</translation>
 <translation id="1296930489679394997">విక్రయాలు</translation>
-<translation id="129863573139666797"><ph name="BEGIN_LINK" />మీ కుక్కీలను తీసివేయడానికి ప్రయత్నించండి<ph name="END_LINK" /></translation>
 <translation id="1301227606947843452">చట్ట సంబంధితం అదనం</translation>
 <translation id="1301324364792935241">మీ సెక్యూర్ DNS సెట్టింగ్‌లను చెక్ చేయండి</translation>
 <translation id="1307966114820526988">విస్మరించబడిన ఫీచర్‌లు</translation>
@@ -1353,7 +1351,6 @@
 <translation id="3767485424735936570">ఈ కంటెంట్‌ను <ph name="VM_NAME" />కు కాపీ చేసి, పేస్ట్ చేయడం అడ్మినిస్ట్రేటర్ పాలసీ ద్వారా సిఫార్సు చేయబడదు</translation>
 <translation id="3772211998634047851">పేపర్ (బాండ్)</translation>
 <translation id="377451872037045164"><ph name="CREATE_GOOGLE_KEEP_NOTE_FOCUSED_FRIENDLY_MATCH_TEXT" />, Google Keepలో త్వరగా కొత్త నోట్‌ను క్రియేట్ చేయడానికి Tabను నొక్కి, ఆపై Enterను నొక్కండి</translation>
-<translation id="3778403066972421603">ఈ కార్డ్‌ను మీ Google ఖాతాకు మరియు ఈ పరికరంలో సేవ్ చేయాలని అనుకుంటున్నారా?</translation>
 <translation id="378026377453746707">మీరు బ్రౌజ్ చేస్తున్నప్పుడు మిమ్మల్ని రక్షించడానికి Chromeలో Google సురక్షిత బ్రౌజింగ్ వంటి బిల్ట్-ఇన్ సేఫ్టీ ఫీచర్‌లు ఉంటాయి. ఇటీవల సురక్షిత బ్రౌజింగ్ <ph name="BEGIN_LINK" /><ph name="SITE" />‌లో హానికరమైన సాఫ్ట్‌వేర్ ఉన్నట్లు కనుగొంది<ph name="END_LINK" />, మీరు బ్రౌజ్ చేయాల్సిన సైట్‌లో ఇది పొందుపరచబడింది.</translation>
 <translation id="3780694243617746492">అవుట్‌పుట్ బిన్</translation>
 <translation id="3781428340399460090">ముదురు గులాబి రంగు</translation>
@@ -1959,7 +1956,6 @@
 <translation id="5020776957610079374">ప్రపంచవ్యాప్తంగాా వినదగిన మ్యూజిక్</translation>
 <translation id="5021557570875267742">Chromeతో ధరలు ట్రాక్ చేయండి</translation>
 <translation id="5023310440958281426">మీ నిర్వాహకుని విధానాలను చూడండి</translation>
-<translation id="5029568752722684782">కాపీని తీసివేయండి</translation>
 <translation id="5030338702439866405">వీరిచే జారీచేయబడింది</translation>
 <translation id="503069730517007720">"<ph name="SOFTWARE_NAME" />" యొక్క రూట్ సర్టిఫికేట్ అవసరం, కానీ అది ఇన్‌స్టాల్ చేయబడలేదు. ఈ సమస్యను పరిష్కరించాలంటే, మీ IT నిర్వాహకులు "<ph name="SOFTWARE_NAME" />" యొక్క కాన్ఫిగరేషన్ సూచనలను పరిశీలించాలి. <ph name="FURTHER_EXPLANATION" /></translation>
 <translation id="5031870354684148875">Google Translate గురించి</translation>
@@ -2542,7 +2538,6 @@
 <translation id="6270066318535733958">పడవ విహారం</translation>
 <translation id="6272088941196661550">మీ Chrome హిస్టరీలో మీ సందర్భోచితమైన యాక్టివిటీని చూడటానికి మీ సెర్చ్‌ను కొనసాగించండి</translation>
 <translation id="6272383483618007430">Google అప్‌డేట్</translation>
-<translation id="627746635834430766">తర్వాతిసారి మరింత వేగంగా పేమెంట్ చేయడానికి, మీ కార్డ్, బిల్లింగ్ అడ్రస్‌ను మీ Google ఖాతాకు సేవ్ చేయండి.</translation>
 <translation id="6279183038361895380">మీ కర్సర్‌ను చూపడానికి |<ph name="ACCELERATOR" />| నొక్కండి</translation>
 <translation id="6280223929691119688">ఈ అడ్రస్‌కు డెలివరీ చేయడం సాధ్యం కాదు. వేరే అడ్రస్‌ను ఎంచుకోండి.</translation>
 <translation id="6284292079994426700">26 x 38 అంగుళాలు</translation>
@@ -3853,7 +3848,6 @@
 <translation id="8922013791253848639">ప్రకటనలను ఈ సైట్‌లో ఎప్పుడూ అనుమతించండి</translation>
 <translation id="892588693504540538">కుడివైపు ఎగువ భాగంలో రంధ్రం</translation>
 <translation id="8930330541574156305">రియల్ ఎస్టేట్</translation>
-<translation id="8931333241327730545">మీరు ఈ కార్డ్‌ను మీ Google ఖాతాకు సేవ్ చేయాలనుకుంటున్నారా?</translation>
 <translation id="8932102934695377596">మీ గడియారం సమయం గతంలో ఉంది</translation>
 <translation id="893332455753468063">పేరుని జోడించండి</translation>
 <translation id="8942355029279167844">ప్రోడక్ట్ అనుభవాన్ని మెరుగుపరచడం కోసం, <ph name="APP_NAME" />కు సమస్య విశ్లేషణ డేటాను సేకరించడానికి మీ అడ్మినిస్ట్రేట‌ర్ అనుమతిచ్చారు. మరింత సమాచారం కోసం <ph name="BEGIN_LINK" />https://www.parallels.com/pcep<ph name="END_LINK" />ను చూడండి.</translation>
diff --git a/components/strings/components_strings_th.xtb b/components/strings/components_strings_th.xtb
index 16f18893..c930920c 100644
--- a/components/strings/components_strings_th.xtb
+++ b/components/strings/components_strings_th.xtb
@@ -125,7 +125,6 @@
 <translation id="1243027604378859286">ผู้เขียน:</translation>
 <translation id="1246424317317450637">ตัวหนา</translation>
 <translation id="1247030632403369975">อะลูมิเนียม</translation>
-<translation id="1250759482327835220">เพื่อความรวดเร็วในการชำระเงินครั้งถัดไป โปรดบันทึกบัตร ชื่อ และที่อยู่สำหรับการเรียกเก็บเงินไว้ในบัญชี Google</translation>
 <translation id="1252209483516427155">เสื้อผ้าชั้นนอก</translation>
 <translation id="1253921432148366685"><ph name="TYPE_1" /> <ph name="TYPE_2" /> (ซิงค์แล้ว)</translation>
 <translation id="1255086252236620440">เครื่องผสมอาหาร</translation>
@@ -158,7 +157,6 @@
 <translation id="1294154142200295408">บรรทัดคำสั่งรูปแบบต่างๆ</translation>
 <translation id="129553762522093515">เพิ่งปิด</translation>
 <translation id="1296930489679394997">การขาย</translation>
-<translation id="129863573139666797"><ph name="BEGIN_LINK" />ลองล้างคุกกี้<ph name="END_LINK" /></translation>
 <translation id="1301227606947843452">Legal Extra</translation>
 <translation id="1301324364792935241">ตรวจสอบการตั้งค่า DNS ที่ปลอดภัย</translation>
 <translation id="1307966114820526988">ฟีเจอร์ที่เลิกใช้งานแล้ว</translation>
@@ -1350,7 +1348,6 @@
 <translation id="3767485424735936570">นโยบายของผู้ดูแลระบบไม่แนะนำให้คัดลอกและวางเนื้อหานี้ใน <ph name="VM_NAME" /></translation>
 <translation id="3772211998634047851">กระดาษ (ผนึก)</translation>
 <translation id="377451872037045164"><ph name="CREATE_GOOGLE_KEEP_NOTE_FOCUSED_FRIENDLY_MATCH_TEXT" /> กด Tab ตามด้วย Enter เพื่อสร้างโน้ตใหม่ใน Google Keep อย่างรวดเร็ว</translation>
-<translation id="3778403066972421603">คุณต้องการบันทึกบัตรนี้ลงในบัญชี Google และในอุปกรณ์นี้ไหม</translation>
 <translation id="378026377453746707">Chrome มีฟีเจอร์ความปลอดภัยในตัวเพื่อปกป้องคุณขณะท่องเว็บ เช่น Google Safe Browsing เมื่อเร็วๆ นี้ Google Safe Browsing <ph name="BEGIN_LINK" />พบซอฟต์แวร์ที่เป็นอันตรายใน <ph name="SITE" /><ph name="END_LINK" /> ซึ่งฝังอยู่ในเว็บไซต์ที่คุณพยายามเข้าชม</translation>
 <translation id="3780694243617746492">ถาดกระดาษออก</translation>
 <translation id="3781428340399460090">ชมพูเจิดจ้า</translation>
@@ -1956,7 +1953,6 @@
 <translation id="5020776957610079374">เวิลด์มิวสิก</translation>
 <translation id="5021557570875267742">ติดตามราคาด้วย Chrome</translation>
 <translation id="5023310440958281426">ตรวจสอบนโยบายของผู้ดูแลระบบของคุณ</translation>
-<translation id="5029568752722684782">ล้างสำเนา</translation>
 <translation id="5030338702439866405">ออกโดย</translation>
 <translation id="503069730517007720">ไม่ได้ติดตั้งใบรับรองรากที่จำเป็นของ "<ph name="SOFTWARE_NAME" />" ผู้ดูแลระบบ IT ควรดูวิธีการกำหนดค่าของ "<ph name="SOFTWARE_NAME" />" เพื่อแก้ไขปัญหานี้ <ph name="FURTHER_EXPLANATION" /></translation>
 <translation id="5031870354684148875">เกี่ยวกับ Google แปลภาษา</translation>
@@ -2539,7 +2535,6 @@
 <translation id="6270066318535733958">การแล่นเรือ</translation>
 <translation id="6272088941196661550">สำรวจต่อเพื่อดูกิจกรรมที่เกี่ยวข้องในประวัติการเข้าชมใน Chrome</translation>
 <translation id="6272383483618007430">Google อัปเดต</translation>
-<translation id="627746635834430766">เพื่อให้ชำระเงินได้เร็วขึ้นในครั้งถัดไป โปรดบันทึกบัตรและที่อยู่สำหรับการเรียกเก็บเงินไว้ในบัญชี Google</translation>
 <translation id="6279183038361895380">กด |<ph name="ACCELERATOR" />| เพื่อแสดงเคอร์เซอร์ของคุณ</translation>
 <translation id="6280223929691119688">ไม่สามารถนำส่งสินค้าไปยังที่อยู่นี้ โปรดเลือกที่อยู่อื่น</translation>
 <translation id="6284292079994426700">26 x 38 นิ้ว</translation>
@@ -3851,7 +3846,6 @@
 <translation id="8922013791253848639">อนุญาตโฆษณาในไซต์นี้เสมอ</translation>
 <translation id="892588693504540538">เจาะรูด้านขวาบน</translation>
 <translation id="8930330541574156305">อสังหาริมทรัพย์</translation>
-<translation id="8931333241327730545">คุณต้องการบันทึกบัตรนี้ในบัญชี Google ไหม</translation>
 <translation id="8932102934695377596">นาฬิกาช้าเกินไป</translation>
 <translation id="893332455753468063">เพิ่มชื่อ</translation>
 <translation id="8942355029279167844">ผู้ดูแลระบบของคุณอนุญาตให้ <ph name="APP_NAME" /> รวบรวมข้อมูลการวิเคราะห์เพื่อปรับปรุงประสบการณ์การใช้ผลิตภัณฑ์ ดูข้อมูลเพิ่มเติมได้ที่ <ph name="BEGIN_LINK" />https://www.parallels.com/pcep<ph name="END_LINK" /></translation>
diff --git a/components/strings/components_strings_tr.xtb b/components/strings/components_strings_tr.xtb
index 8791735d..edc9ea0 100644
--- a/components/strings/components_strings_tr.xtb
+++ b/components/strings/components_strings_tr.xtb
@@ -125,7 +125,6 @@
 <translation id="1243027604378859286">Yazar:</translation>
 <translation id="1246424317317450637">Kalın</translation>
 <translation id="1247030632403369975">Alüminyum</translation>
-<translation id="1250759482327835220">Bir dahaki sefere daha hızlı ödeme yapmak için kartınızı ve fatura adresinizi Google Hesabınıza kaydedin.</translation>
 <translation id="1252209483516427155">Ceketler</translation>
 <translation id="1253921432148366685"><ph name="TYPE_1" />, <ph name="TYPE_2" /> (senkronize edildi)</translation>
 <translation id="1255086252236620440">Gıda Mikserleri</translation>
@@ -158,7 +157,6 @@
 <translation id="1294154142200295408">Komut satırı varyasyonları</translation>
 <translation id="129553762522093515">Son kapatılan</translation>
 <translation id="1296930489679394997">Satış</translation>
-<translation id="129863573139666797"><ph name="BEGIN_LINK" />Çerezlerinizi temizlemeyi deneyin<ph name="END_LINK" /></translation>
 <translation id="1301227606947843452">Legal Extra</translation>
 <translation id="1301324364792935241">Güvenli DNS ayarlarınızı kontrol edin</translation>
 <translation id="1307966114820526988">Kullanımdan Kaldırılan Özellikler</translation>
@@ -1351,7 +1349,6 @@
 <translation id="3767485424735936570">Yönetici politikası, bu içeriğin <ph name="VM_NAME" /> sanal makinesine kopyalanıp yapıştırılmasını önermiyor</translation>
 <translation id="3772211998634047851">Kağıt (Bond)</translation>
 <translation id="377451872037045164"><ph name="CREATE_GOOGLE_KEEP_NOTE_FOCUSED_FRIENDLY_MATCH_TEXT" />, Google Keep'te hızlıca yeni bir not oluşturmak için Sekme'ye, ardından Enter'a basın</translation>
-<translation id="3778403066972421603">Bu kartı Google Hesabınıza ve bu cihaza kaydetmek istiyor musunuz?</translation>
 <translation id="378026377453746707">Chrome, internette gezinirken sizi koruyacak Google Güvenli Tarama gibi yerleşik güvenlik özelliklerine sahiptir. Güvenli Tarama kısa süre önce, ziyaret etmeye çalıştığınız siteye yerleştirilmiş <ph name="BEGIN_LINK" /><ph name="SITE" /> sitesinde zararlı yazılım tespit etti<ph name="END_LINK" />.</translation>
 <translation id="3780694243617746492">Çıkış kutusu</translation>
 <translation id="3781428340399460090">Canlı Pembe</translation>
@@ -1957,7 +1954,6 @@
 <translation id="5020776957610079374">Dünya müzikleri</translation>
 <translation id="5021557570875267742">Chrome ile fiyatları takip edin</translation>
 <translation id="5023310440958281426">Yöneticinizin politikalarını inceleyin.</translation>
-<translation id="5029568752722684782">Kopyayı temizle</translation>
 <translation id="5030338702439866405">Veren:</translation>
 <translation id="503069730517007720">"<ph name="SOFTWARE_NAME" />" için bir kök sertifika gerekli, ancak yüklenmemiş. BT yöneticiniz bu sorunu çözmek için "<ph name="SOFTWARE_NAME" />" ile ilgili yapılandırma talimatlarına bakmalıdır. <ph name="FURTHER_EXPLANATION" /></translation>
 <translation id="5031870354684148875">Google Çeviri Hakkında</translation>
@@ -2540,7 +2536,6 @@
 <translation id="6270066318535733958">Tekne Sporları</translation>
 <translation id="6272088941196661550">Chrome geçmişinizde alakalı etkinlikleri görmek için arama yolculuğunuzu devam ettirin.</translation>
 <translation id="6272383483618007430">Google Güncelleme</translation>
-<translation id="627746635834430766">Bir dahaki sefere daha hızlı ödeme yapmak için kartınızı ve fatura adresinizi Google Hesabınıza kaydedin.</translation>
 <translation id="6279183038361895380">İmlecinizi göstermek için |<ph name="ACCELERATOR" />| tuşuna basın</translation>
 <translation id="6280223929691119688">Bu adrese teslimat yapılamıyor. Farklı bir adres seçin.</translation>
 <translation id="6284292079994426700">26 x 38 inç</translation>
@@ -3852,7 +3847,6 @@
 <translation id="8922013791253848639">Bu sitede her zaman reklamlara izin ver</translation>
 <translation id="892588693504540538">Sağ üstte delik</translation>
 <translation id="8930330541574156305">Emlak</translation>
-<translation id="8931333241327730545">Bu kartı Google Hesabınıza kaydetmek istiyor musunuz?</translation>
 <translation id="8932102934695377596">Saatiniz geri</translation>
 <translation id="893332455753468063">Ad Ekleyin</translation>
 <translation id="8942355029279167844">Yöneticiniz, <ph name="APP_NAME" /> uygulamasının ürün deneyimini iyileştirmek için teşhis verileri toplamasına izin verdi. Daha fazla bilgi için <ph name="BEGIN_LINK" />https://www.parallels.com/pcep<ph name="END_LINK" /> sayfasına bakın.</translation>
diff --git a/components/strings/components_strings_uk.xtb b/components/strings/components_strings_uk.xtb
index c2b7ccc0..931213a 100644
--- a/components/strings/components_strings_uk.xtb
+++ b/components/strings/components_strings_uk.xtb
@@ -125,7 +125,6 @@
 <translation id="1243027604378859286">Автор:</translation>
 <translation id="1246424317317450637">Жирний</translation>
 <translation id="1247030632403369975">Алюміній</translation>
-<translation id="1250759482327835220">Щоб наступного разу платити швидше, збережіть дані картки, ім’я та платіжну адресу в обліковому записі Google.</translation>
 <translation id="1252209483516427155">Верхній одяг</translation>
 <translation id="1253921432148366685"><ph name="TYPE_1" />, <ph name="TYPE_2" /> (синхронізовано)</translation>
 <translation id="1255086252236620440">Кухонні міксери</translation>
@@ -158,7 +157,6 @@
 <translation id="1294154142200295408">Варіанти командного рядка</translation>
 <translation id="129553762522093515">Нещодавно закриті</translation>
 <translation id="1296930489679394997">Продажі</translation>
-<translation id="129863573139666797"><ph name="BEGIN_LINK" />Спробуйте видалити файли cookie<ph name="END_LINK" /></translation>
 <translation id="1301227606947843452">Legal Extra</translation>
 <translation id="1301324364792935241">Перевірте налаштування безпеки DNS</translation>
 <translation id="1307966114820526988">Функції не підтримуються</translation>
@@ -1351,7 +1349,6 @@
 <translation id="3767485424735936570">Адміністратор не радить копіювати й вставляти цей контент на віртуальну машину <ph name="VM_NAME" /></translation>
 <translation id="3772211998634047851">Папір (для документів)</translation>
 <translation id="377451872037045164"><ph name="CREATE_GOOGLE_KEEP_NOTE_FOCUSED_FRIENDLY_MATCH_TEXT" />; натисніть Tab, а потім – Enter, щоб швидко створити нову нотатку в Google Keep</translation>
-<translation id="3778403066972421603">Зберегти дані картки у вашому обліковому записі Google і на цьому пристрої?</translation>
 <translation id="378026377453746707">Chrome має вбудовані функції безпеки, що захищають вас під час веб-перегляду, як-от Безпечний перегляд Google. Зокрема, ця функція нещодавно <ph name="BEGIN_LINK" />виявила шкідливе програмне забезпечення на сайті <ph name="SITE" /><ph name="END_LINK" />, який ви намагалися відвідати.</translation>
 <translation id="3780694243617746492">Вихідний контейнер</translation>
 <translation id="3781428340399460090">Яскраво-рожевий</translation>
@@ -1957,7 +1954,6 @@
 <translation id="5020776957610079374">Музика народів світу</translation>
 <translation id="5021557570875267742">Відстежуйте ціни за допомогою Chrome</translation>
 <translation id="5023310440958281426">Перегляньте правила свого адміністратора</translation>
-<translation id="5029568752722684782">Видалити копію</translation>
 <translation id="5030338702439866405">Ким видано:</translation>
 <translation id="503069730517007720">Для програмного забезпечення <ph name="SOFTWARE_NAME" /> потрібен кореневий сертифікат, однак його не встановлено. Вашому IT-адміністратору потрібно переглянути вказівки з налаштування <ph name="SOFTWARE_NAME" />, щоб вирішити цю проблему. <ph name="FURTHER_EXPLANATION" /></translation>
 <translation id="5031870354684148875">Про Google Перекладач</translation>
@@ -2540,7 +2536,6 @@
 <translation id="6270066318535733958">Веслувальний спорт</translation>
 <translation id="6272088941196661550">Щоб бачити релевантні дії в історії Chrome, відновіть сеанс</translation>
 <translation id="6272383483618007430">Оновлення Google</translation>
-<translation id="627746635834430766">Щоб наступного разу платити швидше, збережіть дані картки та платіжну адресу в обліковому записі Google.</translation>
 <translation id="6279183038361895380">Натисніть |<ph name="ACCELERATOR" />|, щоб побачити курсор</translation>
 <translation id="6280223929691119688">Неможливо доставити замовлення за цією адресою. Укажіть іншу адресу.</translation>
 <translation id="6284292079994426700">26 x 38 дюйм.</translation>
@@ -3852,7 +3847,6 @@
 <translation id="8922013791253848639">Завжди дозволяти показ реклами на цьому сайті</translation>
 <translation id="892588693504540538">Пробити отвір угорі праворуч</translation>
 <translation id="8930330541574156305">Нерухомість</translation>
-<translation id="8931333241327730545">Зберегти цю картку у вашому обліковому записі Google?</translation>
 <translation id="8932102934695377596">Ваш годинник запізнюється</translation>
 <translation id="893332455753468063">Додайте ім’я</translation>
 <translation id="8942355029279167844">Адміністратор надав додатку <ph name="APP_NAME" /> дозвіл збирати дані діагностики, щоб покращувати роботу продукту. Докладніше читайте на сторінці <ph name="BEGIN_LINK" />https://www.parallels.com/pcep<ph name="END_LINK" />.</translation>
diff --git a/components/strings/components_strings_ur.xtb b/components/strings/components_strings_ur.xtb
index 25e3fe2..230c60e 100644
--- a/components/strings/components_strings_ur.xtb
+++ b/components/strings/components_strings_ur.xtb
@@ -126,7 +126,6 @@
 <translation id="1243027604378859286">مصنف:</translation>
 <translation id="1246424317317450637">بولڈ</translation>
 <translation id="1247030632403369975">ایلومینیم</translation>
-<translation id="1250759482327835220">‏اگلی بار زیادہ تیزی سے ادائیگی کرنے کیلئے، اپنے کارڈ، نام اور بلنگ پتہ کو اپنے Google اکاؤنٹ میں محفوظ کریں۔</translation>
 <translation id="1252209483516427155">بیرونی جامہ</translation>
 <translation id="1253921432148366685"><ph name="TYPE_1" />، <ph name="TYPE_2" /> (مطابقت پذیر کردہ)</translation>
 <translation id="1255086252236620440">فوڈ مکسرز</translation>
@@ -159,7 +158,6 @@
 <translation id="1294154142200295408">کمانڈ لائن کے تغیرات</translation>
 <translation id="129553762522093515">حال ہی میں بند کردہ</translation>
 <translation id="1296930489679394997">سیلز</translation>
-<translation id="129863573139666797"><ph name="BEGIN_LINK" />اپنی کوکیز صاف کرنے کی کوشش کریں<ph name="END_LINK" /></translation>
 <translation id="1301227606947843452">Legal Extra</translation>
 <translation id="1301324364792935241">‏اپنی محفوظ DNS ترتیبات چیک کریں</translation>
 <translation id="1307966114820526988">فرسودہ خصوصیات</translation>
@@ -1353,7 +1351,6 @@
 <translation id="3767485424735936570">منتظم کی پالیسی کے تحت <ph name="VM_NAME" /> میں اس مواد کو کاپی اور پیسٹ کرنے کی تجویز نہیں کی جاتی ہے</translation>
 <translation id="3772211998634047851">کاغذ (بانڈ)</translation>
 <translation id="377451872037045164">‏<ph name="CREATE_GOOGLE_KEEP_NOTE_FOCUSED_FRIENDLY_MATCH_TEXT" />، Google Keep میں تیزی سے نیا نوٹ تخلیق کرنے کیلئے Tab، پھر Enter دبائیں</translation>
-<translation id="3778403066972421603">‏کیا آپ اس کارڈ کو اپنے Google اکاؤنٹ اور اس آلہ میں محفوظ کرنا چاہتے ہیں؟</translation>
 <translation id="378026377453746707">‏آپ کے براؤز کرتے وقت، Chrome کے پاس آپ کو تحفظ فراہم کرنے کیلئے Google محفوظ براؤزنگ جیسی پہلے سے شامل حفاظتی خصوصیات ہیں۔ محفوظ براؤزنگ کو حال ہی میں <ph name="BEGIN_LINK" /><ph name="SITE" /> پر نقصان دہ سافٹ ویئر کا پتا چلا ہے<ph name="END_LINK" />، جو اس سائٹ میں سرایت کردہ ہے جسے آپ ملاحظہ کرنے کی کوشش کر رہے ہیں۔</translation>
 <translation id="3780694243617746492">آؤٹ پٹ کوڑے دان</translation>
 <translation id="3781428340399460090">گہرا گلابی</translation>
@@ -1959,7 +1956,6 @@
 <translation id="5020776957610079374">عالمی موسیقی</translation>
 <translation id="5021557570875267742">‏Chrome کے ساتھ قیمتوں کو ٹریک کریں</translation>
 <translation id="5023310440958281426">اپنے منتظم کی پالیسیاں چیک کریں</translation>
-<translation id="5029568752722684782">کاپی صاف کریں</translation>
 <translation id="5030338702439866405">جاری کردہ بذریعہ</translation>
 <translation id="503069730517007720">‏"<ph name="SOFTWARE_NAME" />" کے لیے ایک روٹ سرٹیفکیٹ درکار ہے لیکن انسٹال نہیں ہے۔ آپ کے IT منتظم کو یہ مسئلہ حل کرنے کے لیے "<ph name="SOFTWARE_NAME" />" کی کنفیگریشن ہدایات کو دیکھنا چاہئے۔ <ph name="FURTHER_EXPLANATION" /></translation>
 <translation id="5031870354684148875">‏Google Translate کے بارے میں</translation>
@@ -2543,7 +2539,6 @@
 <translation id="6270066318535733958">بوٹنگ</translation>
 <translation id="6272088941196661550">‏اپنی Chrome کی سرگزشت میں متعلقہ سرگرمی دیکھنے کے لیے دوبارہ اپنا صارف کا تجربہ شروع کریں</translation>
 <translation id="6272383483618007430">‏Google اپ ڈیٹ</translation>
-<translation id="627746635834430766">‏اگلی بار زیادہ تیزی سے ادائیگی کرنے کے لیے، اپنے کارڈ اور بلنگ پتہ کو اپنے Google اکاؤنٹ میں محفوظ کریں۔</translation>
 <translation id="6279183038361895380">اپنا کرسر دکھانے کیلئے |<ph name="ACCELERATOR" />| کو دبائیں</translation>
 <translation id="6280223929691119688">اس پتے پر ڈیلیوری نہیں ہو سکتی۔ کوئی مختلف پتہ منتخب کریں۔</translation>
 <translation id="6284292079994426700">‏‎26 x 38 انچ</translation>
@@ -3855,7 +3850,6 @@
 <translation id="8922013791253848639">ہمیشہ اس سائٹ پر اشتہارات کی اجازت دیں</translation>
 <translation id="892588693504540538">اوپر دائیں طرف سوراخ</translation>
 <translation id="8930330541574156305">ریئل اسٹیٹ</translation>
-<translation id="8931333241327730545">‏کیا آپ اس کارڈ کو اپنے Google اکاؤنٹ میں محفوظ کرنا چاہتے ہیں؟</translation>
 <translation id="8932102934695377596">آپ کی گھڑی پیچھے ہے</translation>
 <translation id="893332455753468063">نام شامل کریں</translation>
 <translation id="8942355029279167844">‏آپ کے منتظم نے <ph name="APP_NAME" /> کو پروڈکٹ کے تجربے کو بہتر بنانے کے لیے ڈائیگناسٹکس ڈیٹا جمع کرنے کی اجازت دے دی ہے۔ مزید معلومات کے لیے <ph name="BEGIN_LINK" />https://www.parallels.com/pcep<ph name="END_LINK" /> دیکھیں۔</translation>
diff --git a/components/strings/components_strings_uz.xtb b/components/strings/components_strings_uz.xtb
index e315bf8..1f4c66d 100644
--- a/components/strings/components_strings_uz.xtb
+++ b/components/strings/components_strings_uz.xtb
@@ -125,7 +125,6 @@
 <translation id="1243027604378859286">Muallif:</translation>
 <translation id="1246424317317450637">Qalin</translation>
 <translation id="1247030632403369975">Alyuminiy</translation>
-<translation id="1250759482327835220">Keyingi safar tezroq to‘lash uchun kartangizni Google hisobingizga saqlang.</translation>
 <translation id="1252209483516427155">Ustki kiyimlar</translation>
 <translation id="1253921432148366685"><ph name="TYPE_1" />, <ph name="TYPE_2" /> (sinxronlandi)</translation>
 <translation id="1255086252236620440">Oshxona mikserlari</translation>
@@ -158,7 +157,6 @@
 <translation id="1294154142200295408">Buyruqlar qatori variantlari</translation>
 <translation id="129553762522093515">Yaqinda yopilganlar</translation>
 <translation id="1296930489679394997">Chegirmali sotuvlar</translation>
-<translation id="129863573139666797"><ph name="BEGIN_LINK" />Cookie-fayllarni tozalab ko‘ring<ph name="END_LINK" /></translation>
 <translation id="1301227606947843452">Huquqiy ekstra</translation>
 <translation id="1301324364792935241">DNS sozlamalar himoyasini tekshiring</translation>
 <translation id="1307966114820526988">Eskirgan funksiyalar</translation>
@@ -1346,7 +1344,6 @@
 <translation id="3767485424735936570">Bu kontentdan <ph name="VM_NAME" /> tizimiga nusxa olish va joylash administrator tomonidan tavsiya etilmaydi</translation>
 <translation id="3772211998634047851">Qogʻoz (oliy sifatli)</translation>
 <translation id="377451872037045164"><ph name="CREATE_GOOGLE_KEEP_NOTE_FOCUSED_FRIENDLY_MATCH_TEXT" />, Google Keepda yangi qaydni tez yaratish uchun avval Tab, keyin Enter tugmasini bosing</translation>
-<translation id="3778403066972421603">Bu kartani Google hisobi va ushbu qurilmaga saqlashni xohlaysizmi?</translation>
 <translation id="378026377453746707">Chrome tarkibida Google Saytlarni xavfsiz kezish kabi himoya funksiyalari mavjud. Saytlarni xavfsiz kezish funksiyasi siz ochayotgan saytga joylangan <ph name="BEGIN_LINK" /><ph name="SITE" /> saytida zararli dasturni aniqladi<ph name="END_LINK" />.</translation>
 <translation id="3780694243617746492">Chiqarish tarnovi</translation>
 <translation id="3781428340399460090">Och pushti</translation>
@@ -1952,7 +1949,6 @@
 <translation id="5020776957610079374">Etnik musiqa</translation>
 <translation id="5021557570875267742">Chrome bilan narxlarni kuzatish</translation>
 <translation id="5023310440958281426">Administrator tomonidan o‘rnatilgan qoidalarni tekshiring</translation>
-<translation id="5029568752722684782">Nusxani o‘chirib tashlash</translation>
 <translation id="5030338702439866405">Berilgan vaqt:</translation>
 <translation id="503069730517007720">“<ph name="SOFTWARE_NAME" />” uchun negiz sertifikati zarur, lekin o‘rnatilmagan. Tarmoq administratori bu muammoning yechimini “<ph name="SOFTWARE_NAME" />” konfiguratsiyasi ko‘rsatmalaridan izlashi zarur. <ph name="FURTHER_EXPLANATION" /></translation>
 <translation id="5031870354684148875">Google Tarjima haqida</translation>
@@ -2534,7 +2530,6 @@
 <translation id="6270066318535733958">Qayiqda suzish</translation>
 <translation id="6272088941196661550">Chrome tarixidagi tegishli faollikni koʻrish uchun tarixni qaytaring</translation>
 <translation id="6272383483618007430">Google Update</translation>
-<translation id="627746635834430766">Keyingi safar tezroq to‘lash uchun kartangizni Google hisobingizga saqlang.</translation>
 <translation id="6279183038361895380">Kursorni ko‘rish uchun |<ph name="ACCELERATOR" />| tugmasini bosing</translation>
 <translation id="6280223929691119688">Bu manzilga yetkazib bera olmaymiz. Boshqa manzilni tanlang.</translation>
 <translation id="6284292079994426700">26 x 38 in</translation>
@@ -3845,7 +3840,6 @@
 <translation id="8922013791253848639">Bu saytda har doim reklama ko‘rsatilsin</translation>
 <translation id="892588693504540538">Yuqori oʻngdan teshik ochish</translation>
 <translation id="8930330541574156305">Koʻchmas mulk</translation>
-<translation id="8931333241327730545">Ushbu karta Google hisobingizda saqlansinmi?</translation>
 <translation id="8932102934695377596">Soatingiz orqada</translation>
 <translation id="893332455753468063">Ism qo‘shing</translation>
 <translation id="8942355029279167844">Mahsulot sifatini yaxshilash maqsadida <ph name="APP_NAME" /> diagnostika maʼlumotlarini jamlashiga Administrator tomonidan ruxsat berildi. Batafsil: <ph name="BEGIN_LINK" />https://www.parallels.com/pcep<ph name="END_LINK" />.</translation>
diff --git a/components/strings/components_strings_vi.xtb b/components/strings/components_strings_vi.xtb
index 2bea06a..998e2585 100644
--- a/components/strings/components_strings_vi.xtb
+++ b/components/strings/components_strings_vi.xtb
@@ -125,7 +125,6 @@
 <translation id="1243027604378859286">Tác giả:</translation>
 <translation id="1246424317317450637">In đậm</translation>
 <translation id="1247030632403369975">Nhôm</translation>
-<translation id="1250759482327835220">Để thanh toán nhanh hơn vào lần tới, hãy lưu địa chỉ thanh toán, tên và thẻ vào Tài khoản Google của bạn.</translation>
 <translation id="1252209483516427155">Áo khoác ngoài</translation>
 <translation id="1253921432148366685"><ph name="TYPE_1" />, <ph name="TYPE_2" /> (được đồng bộ hóa)</translation>
 <translation id="1255086252236620440">Máy trộn thức ăn</translation>
@@ -158,7 +157,6 @@
 <translation id="1294154142200295408">Các biến thể của dòng lệnh</translation>
 <translation id="129553762522093515">Các thẻ đã đóng gần đây</translation>
 <translation id="1296930489679394997">Bán hàng</translation>
-<translation id="129863573139666797"><ph name="BEGIN_LINK" />Thử xóa các cookie của bạn<ph name="END_LINK" /></translation>
 <translation id="1301227606947843452">Legal Extra</translation>
 <translation id="1301324364792935241">Kiểm tra tùy chọn cài đặt của DNS bảo mật</translation>
 <translation id="1307966114820526988">Tính năng sắp ngừng hoạt động</translation>
@@ -1351,7 +1349,6 @@
 <translation id="3767485424735936570">Theo chính sách của quản trị viên, bạn không nên sao chép và dán nội dung này vào <ph name="VM_NAME" /></translation>
 <translation id="3772211998634047851">Giấy (Giấy bông)</translation>
 <translation id="377451872037045164"><ph name="CREATE_GOOGLE_KEEP_NOTE_FOCUSED_FRIENDLY_MATCH_TEXT" />, nhấn phím Tab rồi nhấn phím Enter để tạo nhanh ghi chú mới trong Google Keep</translation>
-<translation id="3778403066972421603">Bạn có muốn lưu thẻ này vào Tài khoản Google của bạn và trên thiết bị này không?</translation>
 <translation id="378026377453746707">Chrome tích hợp sẵn các tính năng an toàn nhằm bảo vệ bạn khi bạn duyệt web, chẳng hạn như Duyệt web An toàn của Google. Tính năng Duyệt web An toàn vừa <ph name="BEGIN_LINK" />phát hiện thấy phần mềm độc hại được nhúng trên trang web <ph name="SITE" /><ph name="END_LINK" /> mà bạn đang cố gắng truy cập.</translation>
 <translation id="3780694243617746492">Khay giấy ra</translation>
 <translation id="3781428340399460090">Hồng đậm</translation>
@@ -1957,7 +1954,6 @@
 <translation id="5020776957610079374">Âm nhạc thế giới</translation>
 <translation id="5021557570875267742">Theo dõi giá bằng Chrome</translation>
 <translation id="5023310440958281426">Kiểm tra chính sách của quản trị viên của bạn</translation>
-<translation id="5029568752722684782">Xóa bản sao</translation>
 <translation id="5030338702439866405">Cấp bởi</translation>
 <translation id="503069730517007720">Cần có chứng chỉ gốc cho "<ph name="SOFTWARE_NAME" />" nhưng chứng chỉ này chưa được cài đặt. Hãy yêu cầu quản trị viên CNTT của bạn xem hướng dẫn cấu hình cho "<ph name="SOFTWARE_NAME" />" để khắc phục sự cố này. <ph name="FURTHER_EXPLANATION" /></translation>
 <translation id="5031870354684148875">Giới thiệu về Google Dịch</translation>
@@ -2540,7 +2536,6 @@
 <translation id="6270066318535733958">Đi thuyền</translation>
 <translation id="6272088941196661550">Tiếp tục hành trình của bạn để xem hoạt động liên quan trong nhật ký duyệt web trên Chrome</translation>
 <translation id="6272383483618007430">Google Update</translation>
-<translation id="627746635834430766">Để thanh toán nhanh hơn vào lần tiếp theo, hãy lưu địa chỉ thanh toán và thẻ vào Tài khoản Google của bạn.</translation>
 <translation id="6279183038361895380">Nhấn |<ph name="ACCELERATOR" />| để hiển thị con trỏ của bạn</translation>
 <translation id="6280223929691119688">Không thể phân phối đến địa chỉ này. Chọn một địa chỉ khác.</translation>
 <translation id="6284292079994426700">26 x 38 inch</translation>
@@ -3852,7 +3847,6 @@
 <translation id="8922013791253848639">Luôn cho phép quảng cáo trên trang web này</translation>
 <translation id="892588693504540538">Đục lỗ trên cùng bên phải</translation>
 <translation id="8930330541574156305">Bất động sản</translation>
-<translation id="8931333241327730545">Bạn có muốn lưu thẻ này vào Tài khoản Google của mình không?</translation>
 <translation id="8932102934695377596">Đồng hồ của bạn chạy chậm</translation>
 <translation id="893332455753468063">Thêm tên</translation>
 <translation id="8942355029279167844">Quản trị viên đã cho phép <ph name="APP_NAME" /> thu thập dữ liệu chẩn đoán để nâng cao trải nghiệm sử dụng sản phẩm. Hãy truy cập vào <ph name="BEGIN_LINK" />https://www.parallels.com/pcep<ph name="END_LINK" /> để biết thêm thông tin.</translation>
diff --git a/components/strings/components_strings_zh-CN.xtb b/components/strings/components_strings_zh-CN.xtb
index f88793c9..2743eba 100644
--- a/components/strings/components_strings_zh-CN.xtb
+++ b/components/strings/components_strings_zh-CN.xtb
@@ -124,7 +124,6 @@
 <translation id="1243027604378859286">作者:</translation>
 <translation id="1246424317317450637">粗体</translation>
 <translation id="1247030632403369975">铝</translation>
-<translation id="1250759482327835220">若想在下次购物时更快捷地付款,请将您的付款卡信息、姓名和账单邮寄地址保存到您的 Google 账号名下。</translation>
 <translation id="1252209483516427155">外套</translation>
 <translation id="1253921432148366685"><ph name="TYPE_1" />、<ph name="TYPE_2" />(已同步)</translation>
 <translation id="1255086252236620440">食物搅拌机</translation>
@@ -157,7 +156,6 @@
 <translation id="1294154142200295408">命令行变体</translation>
 <translation id="129553762522093515">最近关闭的标签页</translation>
 <translation id="1296930489679394997">销售</translation>
-<translation id="129863573139666797"><ph name="BEGIN_LINK" />尝试清除 Cookie<ph name="END_LINK" /></translation>
 <translation id="1301227606947843452">Legal Extra</translation>
 <translation id="1301324364792935241">请检查您的安全 DNS 设置</translation>
 <translation id="1307966114820526988">已被弃用的功能</translation>
@@ -1343,7 +1341,6 @@
 <translation id="3767485424735936570">管理员政策不建议将此内容复制并粘贴到 <ph name="VM_NAME" /></translation>
 <translation id="3772211998634047851">纸(证券纸)</translation>
 <translation id="377451872037045164"><ph name="CREATE_GOOGLE_KEEP_NOTE_FOCUSED_FRIENDLY_MATCH_TEXT" />,依次按 Tab 键和 Enter 键即可在 Google Keep 中快速创建新记事</translation>
-<translation id="3778403066972421603">要将此卡的信息保存到您的 Google 账号中和此设备上吗?</translation>
 <translation id="378026377453746707">Chrome 内置的安全功能可在您浏览网页时为您提供保护,例如 Google 安全浏览功能。安全浏览功能近期<ph name="BEGIN_LINK" />在您尝试访问的网站 <ph name="SITE" /> 上发现了内嵌的有害软件<ph name="END_LINK" />。</translation>
 <translation id="3780694243617746492">出纸槽</translation>
 <translation id="3781428340399460090">艳粉色</translation>
@@ -1948,7 +1945,6 @@
 <translation id="5020776957610079374">世界音乐</translation>
 <translation id="5021557570875267742">使用 Chrome 跟踪价格</translation>
 <translation id="5023310440958281426">请查看管理员制定的政策</translation>
-<translation id="5029568752722684782">清除副本</translation>
 <translation id="5030338702439866405">颁发者</translation>
 <translation id="503069730517007720">必须为“<ph name="SOFTWARE_NAME" />”安装根证书,但您尚未安装该证书。您的 IT 管理员应仔细查看“<ph name="SOFTWARE_NAME" />”的配置说明,以解决此问题。<ph name="FURTHER_EXPLANATION" /></translation>
 <translation id="5031870354684148875">关于 Google 翻译</translation>
@@ -2529,7 +2525,6 @@
 <translation id="6270066318535733958">划船</translation>
 <translation id="6272088941196661550">继续您的历程,以查看您的 Chrome 历史记录中的相关活动记录</translation>
 <translation id="6272383483618007430">Google 更新</translation>
-<translation id="627746635834430766">若想在下次购物时更快捷地付款,请将您的付款卡信息和账单邮寄地址保存到您的 Google 账号中。</translation>
 <translation id="6279183038361895380">按 |<ph name="ACCELERATOR" />| 可显示鼠标光标</translation>
 <translation id="6280223929691119688">无法递送到此地址。请另选一个地址。</translation>
 <translation id="6284292079994426700">26 x 38 英寸</translation>
@@ -3839,7 +3834,6 @@
 <translation id="8922013791253848639">在此网站上始终允许显示广告</translation>
 <translation id="892588693504540538">打孔(右上角)</translation>
 <translation id="8930330541574156305">房地产</translation>
-<translation id="8931333241327730545">要将此卡的信息保存到您的 Google 账号吗?</translation>
 <translation id="8932102934695377596">您的时钟慢了</translation>
 <translation id="893332455753468063">添加名称</translation>
 <translation id="8942355029279167844">您的管理员已允许 <ph name="APP_NAME" /> 收集诊断数据以提升产品使用体验。有关详情,请参阅 <ph name="BEGIN_LINK" />https://www.parallels.com/pcep<ph name="END_LINK" />。</translation>
diff --git a/components/strings/components_strings_zh-HK.xtb b/components/strings/components_strings_zh-HK.xtb
index 817245b6..ea2fee4 100644
--- a/components/strings/components_strings_zh-HK.xtb
+++ b/components/strings/components_strings_zh-HK.xtb
@@ -125,7 +125,6 @@
 <translation id="1243027604378859286">作者:</translation>
 <translation id="1246424317317450637">粗體</translation>
 <translation id="1247030632403369975">鋁</translation>
-<translation id="1250759482327835220">只要將您的付款卡、姓名和帳單地址儲存至您的 Google 帳戶,下次即可更快完成付款程序。</translation>
 <translation id="1252209483516427155">外套</translation>
 <translation id="1253921432148366685"><ph name="TYPE_1" />、<ph name="TYPE_2" /> (已同步)</translation>
 <translation id="1255086252236620440">食物攪拌機</translation>
@@ -158,7 +157,6 @@
 <translation id="1294154142200295408">指令的變化</translation>
 <translation id="129553762522093515">最近關閉的分頁</translation>
 <translation id="1296930489679394997">銷售</translation>
-<translation id="129863573139666797"><ph name="BEGIN_LINK" />嘗試清除 Cookie<ph name="END_LINK" /></translation>
 <translation id="1301227606947843452">Legal Extra</translation>
 <translation id="1301324364792935241">請檢查您的安全 DNS 設定</translation>
 <translation id="1307966114820526988">這些功能已被淘汰</translation>
@@ -1350,7 +1348,6 @@
 <translation id="3767485424735936570">管理員政策不建議將此內容複製並貼到 <ph name="VM_NAME" /></translation>
 <translation id="3772211998634047851">紙 (證券紙)</translation>
 <translation id="377451872037045164"><ph name="CREATE_GOOGLE_KEEP_NOTE_FOCUSED_FRIENDLY_MATCH_TEXT" />,㩒一下 Tab 鍵,然後㩒一下 Enter 鍵就可以喺 Google Keep 度快速建立新筆記</translation>
-<translation id="3778403066972421603">您要將這張信用卡儲存至 Google 帳戶及此裝置上嗎?</translation>
 <translation id="378026377453746707">Chrome 內置安全功能,可在你瀏覽網站時提供保護,例如「Google 安全瀏覽」。此功能最近在 <ph name="BEGIN_LINK" /><ph name="SITE" /> 發現有害軟件體<ph name="END_LINK" />,而且你嘗試瀏覽的網站亦已嵌入該軟件。</translation>
 <translation id="3780694243617746492">出紙槽</translation>
 <translation id="3781428340399460090">豔粉紅色</translation>
@@ -1956,7 +1953,6 @@
 <translation id="5020776957610079374">世界音樂</translation>
 <translation id="5021557570875267742">使用 Chrome 追蹤價格</translation>
 <translation id="5023310440958281426">請查看您的管理員政策</translation>
-<translation id="5029568752722684782">清除副本</translation>
 <translation id="5030338702439866405">發行者:</translation>
 <translation id="503069730517007720">未安裝「<ph name="SOFTWARE_NAME" />」必要的「根憑證」。IT 管理員應查看「<ph name="SOFTWARE_NAME" />」的設定指示,才能修正此問題。<ph name="FURTHER_EXPLANATION" /></translation>
 <translation id="5031870354684148875">關於 Google 翻譯</translation>
@@ -2539,7 +2535,6 @@
 <translation id="6270066318535733958">划船</translation>
 <translation id="6272088941196661550">恢復瀏覽過程以查看 Chrome 記錄中的相關活動</translation>
 <translation id="6272383483618007430">Google 更新</translation>
-<translation id="627746635834430766">只要將此付款卡和帳單地址儲存至您的 Google 帳戶,下次即可更快完成付款程序。</translation>
 <translation id="6279183038361895380">按下 |<ph name="ACCELERATOR" />| 即可顯示游標</translation>
 <translation id="6280223929691119688">無法送貨至此地址,請選取其他地址。</translation>
 <translation id="6284292079994426700">26 x 38 吋</translation>
@@ -3850,7 +3845,6 @@
 <translation id="8922013791253848639">一律允許在此網站中顯示廣告</translation>
 <translation id="892588693504540538">打孔 (右上方)</translation>
 <translation id="8930330541574156305">地產</translation>
-<translation id="8931333241327730545">要將此信用卡儲存至您的 Google 帳戶嗎?</translation>
 <translation id="8932102934695377596">您時鐘的時間過慢</translation>
 <translation id="893332455753468063">新增名稱</translation>
 <translation id="8942355029279167844">您的管理員已允許 <ph name="APP_NAME" /> 收集診斷資料,以改善產品使用體驗。請查閱 <ph name="BEGIN_LINK" />https://www.parallels.com/pcep<ph name="END_LINK" /> 以瞭解詳情。</translation>
diff --git a/components/strings/components_strings_zh-TW.xtb b/components/strings/components_strings_zh-TW.xtb
index 938d17e..85cf6e6 100644
--- a/components/strings/components_strings_zh-TW.xtb
+++ b/components/strings/components_strings_zh-TW.xtb
@@ -125,7 +125,6 @@
 <translation id="1243027604378859286">作者:</translation>
 <translation id="1246424317317450637">粗體</translation>
 <translation id="1247030632403369975">鋁</translation>
-<translation id="1250759482327835220">只要將你的卡片資訊、姓名與帳單地址儲存到你的 Google 帳戶中,下次即可更快完成付款程序。</translation>
 <translation id="1252209483516427155">外衣</translation>
 <translation id="1253921432148366685"><ph name="TYPE_1" />、<ph name="TYPE_2" /> (已同步)</translation>
 <translation id="1255086252236620440">食物攪拌機</translation>
@@ -158,7 +157,6 @@
 <translation id="1294154142200295408">命令列變化版本</translation>
 <translation id="129553762522093515">最近關閉的分頁</translation>
 <translation id="1296930489679394997">銷售</translation>
-<translation id="129863573139666797"><ph name="BEGIN_LINK" />試試看清除 Cookie<ph name="END_LINK" /></translation>
 <translation id="1301227606947843452">Legal Extra</translation>
 <translation id="1301324364792935241">請檢查你的安全 DNS 設定</translation>
 <translation id="1307966114820526988">已淘汰的功能</translation>
@@ -1350,7 +1348,6 @@
 <translation id="3767485424735936570">系統管理員政策不建議複製這項內容並貼到「<ph name="VM_NAME" />」</translation>
 <translation id="3772211998634047851">紙 (證券紙)</translation>
 <translation id="377451872037045164"><ph name="CREATE_GOOGLE_KEEP_NOTE_FOCUSED_FRIENDLY_MATCH_TEXT" />;按下 Tab 鍵再按下 Enter 鍵即可在 Google Keep 中快速建立新記事</translation>
-<translation id="3778403066972421603">你要將這張信用卡的資訊儲存到你在這個裝置上的 Google 帳戶嗎?</translation>
 <translation id="378026377453746707">Chrome 內建安全性功能,可在你瀏覽網站時提供保護,Google 安全瀏覽功能就是其中之一。這項功能最近在 <ph name="BEGIN_LINK" /><ph name="SITE" /> 發現有害軟體<ph name="END_LINK" />,而且你嘗試造訪的網站也內嵌該軟體。</translation>
 <translation id="3780694243617746492">輸出紙槽</translation>
 <translation id="3781428340399460090">亮粉色</translation>
@@ -1956,7 +1953,6 @@
 <translation id="5020776957610079374">世界音樂</translation>
 <translation id="5021557570875267742">使用 Chrome 追蹤價格</translation>
 <translation id="5023310440958281426">請查看你的管理員政策</translation>
-<translation id="5029568752722684782">清除複本</translation>
 <translation id="5030338702439866405">發行者</translation>
 <translation id="503069730517007720">未安裝必要的「<ph name="SOFTWARE_NAME" />」根憑證。IT 管理員必須按照「<ph name="SOFTWARE_NAME" />」的設定說明修正這個問題。<ph name="FURTHER_EXPLANATION" /></translation>
 <translation id="5031870354684148875">關於「Google 翻譯」</translation>
@@ -2539,7 +2535,6 @@
 <translation id="6270066318535733958">泛舟遊艇</translation>
 <translation id="6272088941196661550">繼續瀏覽歷程即可查看 Chrome 歷史記錄中的相關活動</translation>
 <translation id="6272383483618007430">Google 更新</translation>
-<translation id="627746635834430766">只要將卡片資訊與帳單地址儲存到你的 Google 帳戶中,下次即可更快完成付款程序。</translation>
 <translation id="6279183038361895380">按下 |<ph name="ACCELERATOR" />| 即可顯示游標</translation>
 <translation id="6280223929691119688">快遞無法送貨到這個地址,請改用其他地址。</translation>
 <translation id="6284292079994426700">26 x 38 吋</translation>
@@ -3850,7 +3845,6 @@
 <translation id="8922013791253848639">一律允許在這個網站中顯示廣告</translation>
 <translation id="892588693504540538">打孔 (右上方)</translation>
 <translation id="8930330541574156305">房地產</translation>
-<translation id="8931333241327730545">您要將這張卡片的資訊儲存到您的 Google 帳戶嗎?</translation>
 <translation id="8932102934695377596">你的時鐘時間過慢</translation>
 <translation id="893332455753468063">新增名稱</translation>
 <translation id="8942355029279167844">系統管理員已允許 <ph name="APP_NAME" /> 收集診斷資料以改善產品使用體驗。詳情請參閱 <ph name="BEGIN_LINK" />https://www.parallels.com/pcep<ph name="END_LINK" />。</translation>
diff --git a/components/strings/components_strings_zu.xtb b/components/strings/components_strings_zu.xtb
index 22054dd..5ce39a1 100644
--- a/components/strings/components_strings_zu.xtb
+++ b/components/strings/components_strings_zu.xtb
@@ -125,7 +125,6 @@
 <translation id="1243027604378859286">Umbhali:</translation>
 <translation id="1246424317317450637">Okugqamile</translation>
 <translation id="1247030632403369975">I-Aluminum</translation>
-<translation id="1250759482327835220">Ukuze ukhokhe ngokushesha ngokuzayo, londoloza ikhadi lakho, igama, nekheli lokukhokha ku-akhawunti yakho ye-Google.</translation>
 <translation id="1252209483516427155">Okokugqoka Kwangaphandle</translation>
 <translation id="1253921432148366685"><ph name="TYPE_1" />, <ph name="TYPE_2" /> (kuvumelanisiwe)</translation>
 <translation id="1255086252236620440">Imishini Yokuhlanganisa Ukudla</translation>
@@ -158,7 +157,6 @@
 <translation id="1294154142200295408">Ukuhluka komugqa womyalo</translation>
 <translation id="129553762522093515">Ivalwe kamuva nje</translation>
 <translation id="1296930489679394997">Okuthengiswayo</translation>
-<translation id="129863573139666797"><ph name="BEGIN_LINK" />Zama ukusula amakhukhi akho<ph name="END_LINK" /></translation>
 <translation id="1301227606947843452">Okwengeziwe Kwezomthetho</translation>
 <translation id="1301324364792935241">Hlola izilungiselelo zakho ze-DNS ephephile</translation>
 <translation id="1307966114820526988">Izici ezihoxisiwe</translation>
@@ -1348,7 +1346,6 @@
 <translation id="3767485424735936570">Ukukopisha nokunamathisela lokhu okuqukethwe ku-<ph name="VM_NAME" /> akunconywa inqubomgomo yomlawuli</translation>
 <translation id="3772211998634047851">Iphepha (Ibhondi)</translation>
 <translation id="377451872037045164"><ph name="CREATE_GOOGLE_KEEP_NOTE_FOCUSED_FRIENDLY_MATCH_TEXT" />, cindezela u-Tab bese u-Enter ukuze udale inothi elisha ku-Google Keep ngokushesha</translation>
-<translation id="3778403066972421603">Uyafuna ukulondoloza leli khadi ku-akhawunti yakho ye-Google kanye nakule divayisi?</translation>
 <translation id="378026377453746707">I-Chrome yakhe izici zokuphepha zangaphakathi ukuze ikuvikele ngesikhathi ubhrawuza, Njengokuphequlula Ngokuphephile kwe-Google. Ukuphequlula Ngokuphephile kusanda <ph name="BEGIN_LINK" />kuthola isofthiwe eyingozi ku-<ph name="SITE" /><ph name="END_LINK" />, eshumekwe esayithini uma uzama ukuyivakashela.</translation>
 <translation id="3780694243617746492">Ibhini yokuphuma</translation>
 <translation id="3781428340399460090">Okuphinki kakhulu</translation>
@@ -1954,7 +1951,6 @@
 <translation id="5020776957610079374">Umculo womhlaba</translation>
 <translation id="5021557570875267742">Landelela izintengo nge-Chrome</translation>
 <translation id="5023310440958281426">Buka izinqubomgomo zomlawuli wakho</translation>
-<translation id="5029568752722684782">Sula ikhophi</translation>
 <translation id="5030338702439866405">Ikhishwe yi-</translation>
 <translation id="503069730517007720">Isitifiketi sempande se-"<ph name="SOFTWARE_NAME" />" siyadingeka kodwa asifakiwe. Umlawuli wakho we-IT kufanele abheke imiyalo yokulungisa ye-"<ph name="SOFTWARE_NAME" />" ukulungisa le nkinga. <ph name="FURTHER_EXPLANATION" /></translation>
 <translation id="5031870354684148875">Mayelana ne-Google Translate</translation>
@@ -2537,7 +2533,6 @@
 <translation id="6270066318535733958">Ngesikebhe</translation>
 <translation id="6272088941196661550">Qhubeka nohambo ukuze ubone umsebenzi ohambisanayo kumlando wakho we-Chrome</translation>
 <translation id="6272383483618007430">Isibuyekezo se-Google</translation>
-<translation id="627746635834430766">Khokha ngokushesha ngesikhathi esizayo, londoloza ikheli lakho lokukhokha ku-akhawunti yakho ye-Google.</translation>
 <translation id="6279183038361895380">Cindezela u-|<ph name="ACCELERATOR" />| ukuze ubonise ikhesa lakho</translation>
 <translation id="6280223929691119688">Ayikwazi ukuletha kuleli kheli. Khetha ikheli elihlukile.</translation>
 <translation id="6284292079994426700">U-26 x 38 phakathi</translation>
@@ -3848,7 +3843,6 @@
 <translation id="8922013791253848639">Njalo vumela izikhangiso kuleli sayithi</translation>
 <translation id="892588693504540538">Ukushaya phezulu kwesokudla</translation>
 <translation id="8930330541574156305">Izindlu ezidayiswayo</translation>
-<translation id="8931333241327730545">Ingabe ufuna ukulondoloza leli khadi ku-Akhawunti yakho ye-Google?</translation>
 <translation id="8932102934695377596">Iwashi lakho lisemuva</translation>
 <translation id="893332455753468063">Engeza igama</translation>
 <translation id="8942355029279167844">Umlawuli wakho uvumele i-<ph name="APP_NAME" /> ukuthi iqoqe idatha yokuxilonga ukuthuthukisa ukuzizwela komkhiqizo. Bona i-<ph name="BEGIN_LINK" />https://www.parallels.com/pcep<ph name="END_LINK" /> ukuthola ulwazi olwengeziwe.</translation>
diff --git a/components/tracing/common/background_tracing_state_manager.cc b/components/tracing/common/background_tracing_state_manager.cc
index d1c195a..34cd339 100644
--- a/components/tracing/common/background_tracing_state_manager.cc
+++ b/components/tracing/common/background_tracing_state_manager.cc
@@ -14,18 +14,6 @@
 namespace {
 
 constexpr char kTracingStateKey[] = "state";
-constexpr char kUploadTimesKey[] = "upload_times";
-constexpr char kScenarioKey[] = "scenario";
-constexpr char kUploadTimestampKey[] = "time";
-
-const int kMinDaysUntilNextUpload = 7;
-
-// Removes any version numbers from the scenario name.
-std::string StripScenarioName(const std::string& scenario_name) {
-  std::string stripped_scenario_name;
-  base::RemoveChars(scenario_name, "1234567890", &stripped_scenario_name);
-  return stripped_scenario_name;
-}
 
 }  // namespace
 
@@ -70,32 +58,6 @@
     }
   }
 
-  const base::Value::List* upload_times = dict.FindList(kUploadTimesKey);
-  if (upload_times) {
-    for (const base::Value& scenario_val : *upload_times) {
-      DCHECK(scenario_val.is_dict());
-      const base::Value::Dict& scenario_dict = scenario_val.GetDict();
-
-      const std::string* scenario = scenario_dict.FindString(kScenarioKey);
-      const base::Value* timestamp_val =
-          scenario_dict.Find(kUploadTimestampKey);
-      if (!scenario || !timestamp_val) {
-        continue;
-      }
-
-      absl::optional<base::Time> upload_time = base::ValueToTime(timestamp_val);
-      if (!upload_time) {
-        continue;
-      }
-
-      if ((base::Time::Now() - *upload_time) >
-          base::Days(kMinDaysUntilNextUpload)) {
-        continue;
-      }
-      scenario_last_upload_timestamp_[*scenario] = *upload_time;
-    }
-  }
-
   // Save state to update the current session state, replacing the previous
   // session state.
   SaveState();
@@ -104,24 +66,13 @@
 void BackgroundTracingStateManager::SaveState() {
   DCHECK_CURRENTLY_ON(content::BrowserThread::UI);
   DCHECK(initialized_);
-  SaveState(scenario_last_upload_timestamp_, state_);
+  SaveState(state_);
 }
 
-void BackgroundTracingStateManager::SaveState(
-    const ScenarioUploadTimestampMap& scenario_upload_times,
-    BackgroundTracingState state) {
+void BackgroundTracingStateManager::SaveState(BackgroundTracingState state) {
   DCHECK_CURRENTLY_ON(content::BrowserThread::UI);
   base::Value::Dict dict;
   dict.Set(kTracingStateKey, static_cast<int>(state));
-  base::Value::List upload_times;
-  for (const auto& it : scenario_upload_times) {
-    base::Value::Dict scenario;
-    scenario.Set(kScenarioKey, StripScenarioName(it.first));
-    scenario.Set(kUploadTimestampKey, base::TimeToValue(it.second));
-    upload_times.Append(std::move(scenario));
-  }
-
-  dict.Set(kUploadTimesKey, std::move(upload_times));
 
   local_state_->SetDict(kBackgroundTracingSessionState, std::move(dict));
   local_state_->CommitPendingWrite();
@@ -151,20 +102,7 @@
   }
 }
 
-bool BackgroundTracingStateManager::DidRecentlyUploadForScenario(
-    const std::string& scenario_name) const {
-  DCHECK_CURRENTLY_ON(content::BrowserThread::UI);
-  DCHECK(initialized_);
-  std::string stripped_scenario_name = StripScenarioName(scenario_name);
-  auto it = scenario_last_upload_timestamp_.find(stripped_scenario_name);
-  if (it != scenario_last_upload_timestamp_.end()) {
-    return (base::Time::Now() - it->second) <=
-           base::Days(kMinDaysUntilNextUpload);
-  }
-  return false;
-}
-
-void BackgroundTracingStateManager::NotifyTracingStarted() {
+void BackgroundTracingStateManager::OnTracingStarted() {
   DCHECK_CURRENTLY_ON(content::BrowserThread::UI);
   SetState(BackgroundTracingState::STARTED);
   base::SingleThreadTaskRunner::GetCurrentDefault()->PostDelayedTask(
@@ -175,7 +113,7 @@
       base::Seconds(30));
 }
 
-void BackgroundTracingStateManager::NotifyFinalizationStarted() {
+void BackgroundTracingStateManager::OnTracingStopped() {
   DCHECK_CURRENTLY_ON(content::BrowserThread::UI);
   SetState(BackgroundTracingState::FINALIZATION_STARTED);
 }
@@ -195,22 +133,11 @@
   SaveState();
 }
 
-void BackgroundTracingStateManager::OnScenarioUploaded(
-    const std::string& scenario_name) {
-  DCHECK_CURRENTLY_ON(content::BrowserThread::UI);
-  DCHECK(initialized_);
-
-  scenario_last_upload_timestamp_[StripScenarioName(scenario_name)] =
-      base::Time::Now();
-  SaveState();
-}
-
 void BackgroundTracingStateManager::Reset() {
   initialized_ = false;
   local_state_ = nullptr;
   state_ = BackgroundTracingState::NOT_ACTIVATED;
   last_session_end_state_ = BackgroundTracingState::NOT_ACTIVATED;
-  scenario_last_upload_timestamp_.clear();
 }
 
 }  // namespace tracing
diff --git a/components/tracing/common/background_tracing_state_manager.h b/components/tracing/common/background_tracing_state_manager.h
index 7601efb..4b5014c 100644
--- a/components/tracing/common/background_tracing_state_manager.h
+++ b/components/tracing/common/background_tracing_state_manager.h
@@ -37,8 +37,6 @@
 // UI thread.
 class COMPONENT_EXPORT(BACKGROUND_TRACING_UTILS) BackgroundTracingStateManager {
  public:
-  using ScenarioUploadTimestampMap = base::flat_map<std::string, base::Time>;
-
   static BackgroundTracingStateManager& GetInstance();
 
   // Initializes state from previous session and writes current state to
@@ -54,27 +52,16 @@
   // background tracing in current session.
   bool DidLastSessionEndUnexpectedly() const;
 
-  // True if the embedder uploaded a trace for the given |config| recently, and
-  // uploads should be throttled for the |config|.
-  bool DidRecentlyUploadForScenario(const std::string& scenario_name) const;
-
   // The embedder should call this method every time background tracing starts
   // so that the state in prefs is updated. Posts a timer task to the current
   // sequence to update the state once more to denote no crashes after a
   // reasonable time (see DidLastSessionEndUnexpectedly()).
-  void NotifyTracingStarted();
+  void OnTracingStarted();
 
-  // The embedder should call this method every time background tracing finishes
-  // so that the state in prefs is updated.
-  void NotifyFinalizationStarted();
-
-  // Updates the state to include the upload time for |scenario_name|, and
-  // saves it to prefs.
-  void OnScenarioUploaded(const std::string& scenario_name);
+  void OnTracingStopped();
 
   // Saves the given state to prefs, public for testing.
-  void SaveState(const ScenarioUploadTimestampMap& upload_times,
-                 BackgroundTracingState state);
+  void SaveState(BackgroundTracingState state);
 
  private:
   friend base::NoDestructor<BackgroundTracingStateManager>;
@@ -102,8 +89,6 @@
   // Following are valid only when |initialized_| = true.
   BackgroundTracingState last_session_end_state_ =
       BackgroundTracingState::NOT_ACTIVATED;
-
-  ScenarioUploadTimestampMap scenario_last_upload_timestamp_;
 };
 
 }  // namespace tracing
diff --git a/components/tracing/common/background_tracing_state_manager_unittest.cc b/components/tracing/common/background_tracing_state_manager_unittest.cc
index 62edb2f..6cb6c8f 100644
--- a/components/tracing/common/background_tracing_state_manager_unittest.cc
+++ b/components/tracing/common/background_tracing_state_manager_unittest.cc
@@ -50,7 +50,7 @@
 
 TEST_F(BackgroundTracingStateManagerTest, InitializeEmptyPrefs) {
   tracing::BackgroundTracingStateManager::GetInstance().Initialize(nullptr);
-  EXPECT_EQ(GetSessionStateJson(), R"({"state":0,"upload_times":[]})");
+  EXPECT_EQ(GetSessionStateJson(), R"({"state":0})");
 }
 
 TEST_F(BackgroundTracingStateManagerTest, InitializeInvalidState) {
@@ -61,55 +61,44 @@
                      base::Value(std::move(dict)));
 
   tracing::BackgroundTracingStateManager::GetInstance().Initialize(nullptr);
-  EXPECT_EQ(GetSessionStateJson(), R"({"state":0,"upload_times":[]})");
+  EXPECT_EQ(GetSessionStateJson(), R"({"state":0})");
 }
 
 TEST_F(BackgroundTracingStateManagerTest, InitializeNoScenario) {
   base::Value::Dict dict;
   dict.Set("state",
            static_cast<int>(tracing::BackgroundTracingState::NOT_ACTIVATED));
-  base::Value::List upload_times;
   base::Value::Dict scenario;
   scenario.Set("time", base::TimeToValue(base::Time::Now()));
-  upload_times.Append(std::move(scenario));
-  dict.Set("upload_times", std::move(upload_times));
   pref_service_->Set(tracing::kBackgroundTracingSessionState,
                      base::Value(std::move(dict)));
 
   tracing::BackgroundTracingStateManager::GetInstance().Initialize(nullptr);
-  EXPECT_EQ(GetSessionStateJson(), R"({"state":0,"upload_times":[]})");
+  EXPECT_EQ(GetSessionStateJson(), R"({"state":0})");
 }
 
 TEST_F(BackgroundTracingStateManagerTest, InitializeValidPrefs) {
   base::Value::Dict dict;
   dict.Set("state",
            static_cast<int>(tracing::BackgroundTracingState::NOT_ACTIVATED));
-  base::Value::List upload_times;
   base::Value::Dict scenario;
   scenario.Set("scenario", "TestScenario");
   scenario.Set("time", base::TimeToValue(base::Time::Now()));
-  upload_times.Append(std::move(scenario));
-  dict.Set("upload_times", std::move(upload_times));
   pref_service_->Set(tracing::kBackgroundTracingSessionState,
                      base::Value(std::move(dict)));
 
   tracing::BackgroundTracingStateManager::GetInstance().Initialize(nullptr);
-  EXPECT_TRUE(base::MatchPattern(
-      GetSessionStateJson(),
-      R"({"state":0,"upload_times":[{"scenario":"TestScenario","time":"*"}]})"))
+  EXPECT_TRUE(base::MatchPattern(GetSessionStateJson(), R"({"state":0})"))
       << "Actual: " << GetSessionStateJson();
   ;
 }
 
 TEST_F(BackgroundTracingStateManagerTest, SaveStateValidPrefs) {
   tracing::BackgroundTracingStateManager::GetInstance().SaveState(
-      {{"TestScenario", base::Time::Now()}},
       tracing::BackgroundTracingState::NOT_ACTIVATED);
   tracing::BackgroundTracingStateManager::GetInstance().Initialize(nullptr);
 
-  EXPECT_TRUE(base::MatchPattern(
-      GetSessionStateJson(),
-      R"({"state":0,"upload_times":[{"scenario":"TestScenario","time":"*"}]})"))
+  EXPECT_TRUE(base::MatchPattern(GetSessionStateJson(), R"({"state":0})"))
       << "Actual: " << GetSessionStateJson();
   EXPECT_FALSE(tracing::BackgroundTracingStateManager::GetInstance()
                    .DidLastSessionEndUnexpectedly());
@@ -117,92 +106,24 @@
 
 TEST_F(BackgroundTracingStateManagerTest, SessionEndedUnexpectedly) {
   tracing::BackgroundTracingStateManager::GetInstance().SaveState(
-      {}, tracing::BackgroundTracingState::STARTED);
+      tracing::BackgroundTracingState::STARTED);
   tracing::BackgroundTracingStateManager::GetInstance().Initialize(nullptr);
   EXPECT_TRUE(tracing::BackgroundTracingStateManager::GetInstance()
                   .DidLastSessionEndUnexpectedly());
 }
 
-TEST_F(BackgroundTracingStateManagerTest, NotUploadedRecently) {
-  tracing::BackgroundTracingStateManager::GetInstance().SaveState(
-      {{"TestScenario", base::Time::Now() - base::Days(8)}},
-      tracing::BackgroundTracingState::NOT_ACTIVATED);
+TEST_F(BackgroundTracingStateManagerTest, OnTracingStarted) {
   tracing::BackgroundTracingStateManager::GetInstance().Initialize(nullptr);
-
-  base::Value::Dict dict;
-  dict.Set("scenario_name", "TestScenario");
-  dict.Set("mode", "PREEMPTIVE_TRACING_MODE");
-  dict.Set("custom_categories", "toplevel");
-  base::Value::List rules_list;
-
-  {
-    base::Value::Dict rules_dict;
-    rules_dict.Set("rule", "MONITOR_AND_DUMP_WHEN_TRIGGER_NAMED");
-    rules_dict.Set("trigger_name", "test");
-    rules_list.Append(std::move(rules_dict));
-  }
-
-  dict.Set("configs", std::move(rules_list));
-  std::unique_ptr<content::BackgroundTracingConfig> config(
-      content::BackgroundTracingConfig::FromDict(std::move(dict)));
-
-  EXPECT_FALSE(tracing::BackgroundTracingStateManager::GetInstance()
-                   .DidRecentlyUploadForScenario(config->scenario_name()));
-}
-
-TEST_F(BackgroundTracingStateManagerTest, UploadedRecently) {
-  tracing::BackgroundTracingStateManager::GetInstance().SaveState(
-      {{"TestScenario", base::Time::Now() - base::Days(1)}},
-      tracing::BackgroundTracingState::NOT_ACTIVATED);
-  tracing::BackgroundTracingStateManager::GetInstance().Initialize(nullptr);
-
-  base::Value::Dict dict;
-  dict.Set("scenario_name", "TestScenario");
-  dict.Set("mode", "PREEMPTIVE_TRACING_MODE");
-  dict.Set("custom_categories", "toplevel");
-  base::Value::List rules_list;
-
-  {
-    base::Value::Dict rules_dict;
-    rules_dict.Set("rule", "MONITOR_AND_DUMP_WHEN_TRIGGER_NAMED");
-    rules_dict.Set("trigger_name", "test");
-    rules_list.Append(std::move(rules_dict));
-  }
-
-  dict.Set("configs", std::move(rules_list));
-  std::unique_ptr<content::BackgroundTracingConfig> config(
-      content::BackgroundTracingConfig::FromDict(std::move(dict)));
-
-  EXPECT_TRUE(tracing::BackgroundTracingStateManager::GetInstance()
-                  .DidRecentlyUploadForScenario(config->scenario_name()));
-}
-
-TEST_F(BackgroundTracingStateManagerTest, NotifyTracingStarted) {
-  tracing::BackgroundTracingStateManager::GetInstance().Initialize(nullptr);
-  tracing::BackgroundTracingStateManager::GetInstance().NotifyTracingStarted();
-  EXPECT_TRUE(base::MatchPattern(GetSessionStateJson(),
-                                 R"({"state":1,"upload_times":[]})"))
+  tracing::BackgroundTracingStateManager::GetInstance().OnTracingStarted();
+  EXPECT_TRUE(base::MatchPattern(GetSessionStateJson(), R"({"state":1})"))
       << "Actual: " << GetSessionStateJson();
 }
 
-TEST_F(BackgroundTracingStateManagerTest, NotifyFinalizationStarted) {
+TEST_F(BackgroundTracingStateManagerTest, OnTracingStopped) {
   tracing::BackgroundTracingStateManager::GetInstance().Initialize(nullptr);
-  tracing::BackgroundTracingStateManager::GetInstance()
-      .NotifyFinalizationStarted();
-  EXPECT_TRUE(base::MatchPattern(GetSessionStateJson(),
-                                 R"({"state":3,"upload_times":[]})"))
+  tracing::BackgroundTracingStateManager::GetInstance().OnTracingStopped();
+  EXPECT_TRUE(base::MatchPattern(GetSessionStateJson(), R"({"state":3})"))
       << "Actual: " << GetSessionStateJson();
 }
 
-TEST_F(BackgroundTracingStateManagerTest, OnScenarioUploaded) {
-  tracing::BackgroundTracingStateManager::GetInstance().Initialize(nullptr);
-  tracing::BackgroundTracingStateManager::GetInstance()
-      .NotifyFinalizationStarted();
-  tracing::BackgroundTracingStateManager::GetInstance().OnScenarioUploaded(
-      "TestScenario");
-  EXPECT_TRUE(base::MatchPattern(
-      GetSessionStateJson(),
-      R"({"state":3,"upload_times":[{"scenario":"TestScenario","time":"*"}]})"))
-      << "Actual: " << GetSessionStateJson();
-}
 }  // namespace tracing
diff --git a/components/ukm/ukm_recorder_impl.cc b/components/ukm/ukm_recorder_impl.cc
index b1e5d0ae..bab845d 100644
--- a/components/ukm/ukm_recorder_impl.cc
+++ b/components/ukm/ukm_recorder_impl.cc
@@ -285,11 +285,9 @@
 
   std::vector<mojom::UkmEntryPtr>& events = recordings_.entries;
 
-  events.erase(std::remove_if(events.begin(), events.end(),
-                              [&](const auto& event) {
-                                return source_ids.count(event->source_id);
-                              }),
-               events.end());
+  base::EraseIf(events, [&](const auto& event) {
+    return source_ids.count(event->source_id);
+  });
 }
 
 void UkmRecorderImpl::MarkSourceForDeletion(SourceId source_id) {
diff --git a/components/update_client/component.cc b/components/update_client/component.cc
index 47b2fe05..42c4743 100644
--- a/components/update_client/component.cc
+++ b/components/update_client/component.cc
@@ -1207,11 +1207,9 @@
 
   CHECK_EQ(ErrorCategory::kNone, component.diff_error_category_);
   CHECK_EQ(0, component.diff_error_code_);
-  CHECK_EQ(0, component.diff_extra_code1_);
 
   CHECK_EQ(ErrorCategory::kNone, component.error_category_);
   CHECK_EQ(0, component.error_code_);
-  CHECK_EQ(0, component.extra_code1_);
 
   if (component.action_run_.empty()) {
     TransitionState(std::make_unique<StateUpdated>(&component));
@@ -1291,7 +1289,6 @@
 
   CHECK_EQ(ErrorCategory::kNone, component.error_category_);
   CHECK_EQ(0, component.error_code_);
-  CHECK_EQ(0, component.extra_code1_);
 
   if (component.action_run_.empty()) {
     TransitionState(std::make_unique<StateUpdated>(&component));
diff --git a/components/viz/service/display_embedder/skia_output_surface_impl.cc b/components/viz/service/display_embedder/skia_output_surface_impl.cc
index 471c371b..948e693 100644
--- a/components/viz/service/display_embedder/skia_output_surface_impl.cc
+++ b/components/viz/service/display_embedder/skia_output_surface_impl.cc
@@ -1530,7 +1530,7 @@
             ->GetDeviceQueue()
             ->GetVulkanPhysicalDevice(),
         VK_IMAGE_TILING_OPTIMAL, valid_ycbcr_info);
-#if BUILDFLAG(IS_LINUX)
+#if BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_CHROMEOS)
     // Textures that were allocated _on linux_ with ycbcr info came from
     // VaapiVideoDecoder, which exports using DRM format modifiers.
     return GrBackendFormats::MakeVk(gr_ycbcr_info,
diff --git a/content/app/content_main_runner_impl.cc b/content/app/content_main_runner_impl.cc
index 47314a4..a90c1721 100644
--- a/content/app/content_main_runner_impl.cc
+++ b/content/app/content_main_runner_impl.cc
@@ -59,6 +59,8 @@
 #include "content/browser/browser_main.h"
 #include "content/browser/browser_process_io_thread.h"
 #include "content/browser/browser_thread_impl.h"
+#include "content/browser/first_party_sets/first_party_sets_handler_impl.h"
+#include "content/browser/first_party_sets/local_set_declaration.h"
 #include "content/browser/gpu/gpu_main_thread_factory.h"
 #include "content/browser/renderer_host/render_process_host_impl.h"
 #include "content/browser/scheduler/browser_task_executor.h"
@@ -1249,8 +1251,14 @@
     AndroidBatteryMetrics::CreateInstance();
 #endif
 
-    if (start_minimal_browser)
+    GetContentClient()->browser()->SetIsMinimalMode(start_minimal_browser);
+    if (start_minimal_browser) {
       ForceInProcessNetworkService();
+      // Minimal browser mode doesn't initialize First-Party Sets the "usual"
+      // way, so we do it manually.
+      content::FirstPartySetsHandlerImpl::GetInstance()->Init(
+          base::FilePath(), LocalSetDeclaration());
+    }
 
     discardable_shared_memory_manager_ =
         std::make_unique<discardable_memory::DiscardableSharedMemoryManager>();
diff --git a/content/browser/attribution_reporting/attribution_storage_unittest.cc b/content/browser/attribution_reporting/attribution_storage_unittest.cc
index 6796b9f..1f3eca6 100644
--- a/content/browser/attribution_reporting/attribution_storage_unittest.cc
+++ b/content/browser/attribution_reporting/attribution_storage_unittest.cc
@@ -549,19 +549,18 @@
 // <reporting_origin, destination_origin> pair, all existing impressions for
 // that origin that have converted are marked ineligible for new conversions per
 // the multi-touch model.
-//
-// TODO: The fast-forwards in this test don't seem relevant, but the test fails
-// without them.
 TEST_F(AttributionStorageTest,
        NewImpressionForConvertedImpression_MarkedInactive) {
   storage()->StoreSource(SourceBuilder().SetSourceEventId(0).Build());
   EXPECT_EQ(AttributionTrigger::EventLevelResult::kSuccess,
             MaybeCreateAndStoreEventLevelReport(DefaultTrigger()));
 
-  task_environment_.FastForwardBy(kReportDelay);
-
   // Delete the report.
-  DeleteReports(storage()->GetAttributionReports(base::Time::Now()));
+  DeleteReports(
+      storage()->GetAttributionReports(/*max_report_time=*/base::Time::Max()));
+
+  // Fast forward to ensure a later source time.
+  task_environment_.FastForwardBy(base::Milliseconds(1));
 
   // Store a new impression that should mark the first inactive.
   storage()->StoreSource(SourceBuilder().SetSourceEventId(1000).Build());
@@ -571,11 +570,10 @@
   EXPECT_EQ(AttributionTrigger::EventLevelResult::kSuccess,
             MaybeCreateAndStoreEventLevelReport(conversion));
 
-  task_environment_.FastForwardBy(kReportDelay);
-
   // Verify it was the new impression that converted.
-  EXPECT_THAT(storage()->GetAttributionReports(base::Time::Now()),
-              ElementsAre(ReportSourceIs(SourceEventIdIs(1000u))));
+  EXPECT_THAT(
+      storage()->GetAttributionReports(/*max_report_time=*/base::Time::Max()),
+      ElementsAre(ReportSourceIs(SourceEventIdIs(1000u))));
 }
 
 TEST_F(AttributionStorageTest,
diff --git a/content/browser/cookie_deprecation_label/cookie_deprecation_label_browsertest.cc b/content/browser/cookie_deprecation_label/cookie_deprecation_label_browsertest.cc
index 5062396..3ae08ef8 100644
--- a/content/browser/cookie_deprecation_label/cookie_deprecation_label_browsertest.cc
+++ b/content/browser/cookie_deprecation_label/cookie_deprecation_label_browsertest.cc
@@ -345,10 +345,11 @@
   http_response_a_b->set_code(net::HTTP_MOVED_PERMANENTLY);
   http_response_a_b->AddCustomHeader(
       "Location", https_server->GetURL("a.test", "/a_c").spec());
+  // Opt-in without specifying the Path
   http_response_a_b->AddCustomHeader(
       "Set-Cookie",
       "receive-cookie-deprecation=any-value; Secure; HttpOnly; "
-      "Path=/; SameSite=None; Partitioned");
+      "SameSite=None; Partitioned");
   response_a_b->Send(http_response_a_b->ToResponseString());
   response_a_b->Done();
 
@@ -370,18 +371,21 @@
     const char* description;
     const char* header_value;
   } kTestCases[] = {
-      {"Header not Secure",
+      {"Not Secure",
        "receive-cookie-deprecation=any-value; HttpOnly; Path=/; SameSite=None; "
        "Partitioned"},
-      {"Header not HttpOnly",
+      {"Not HttpOnly",
        "receive-cookie-deprecation=any-value; Secure; Path=/; SameSite=None; "
        "Partitioned"},
-      {"Header not Partitioned",
+      {"Not Partitioned",
        "receive-cookie-deprecation=any-value; Secure; HttpOnly; Path=/; "
        "SameSite=None;"},
-      {"Header default SameSite",
+      {"Default SameSite",
        "receive-cookie-deprecation=any-value; HttpOnly; Path=/; Secure; "
        "Partitioned"},
+      {"Non matching Path",
+       "receive-cookie-deprecation=any-value; Secure; HttpOnly; Secure; "
+       "Path=/non-matching; SameSite=None; Partitioned"},
   };
 
   for (const auto& test_case : kTestCases) {
diff --git a/content/browser/first_party_sets/first_party_sets_handler_impl.h b/content/browser/first_party_sets/first_party_sets_handler_impl.h
index a7cbc7f..9696bbb02 100644
--- a/content/browser/first_party_sets/first_party_sets_handler_impl.h
+++ b/content/browser/first_party_sets/first_party_sets_handler_impl.h
@@ -32,7 +32,7 @@
   // persisted sets, since we may still need to clear data from a previous
   // invocation of Chromium which had First-Party Sets enabled.
   //
-  // Must be called exactly once.
+  // Only the first call has any effect.
   void virtual Init(const base::FilePath& user_data_dir,
                     const LocalSetDeclaration& local_set) = 0;
 
diff --git a/content/browser/first_party_sets/first_party_sets_handler_impl_instance.cc b/content/browser/first_party_sets/first_party_sets_handler_impl_instance.cc
index 95a45a55..cdbe0fa 100644
--- a/content/browser/first_party_sets/first_party_sets_handler_impl_instance.cc
+++ b/content/browser/first_party_sets/first_party_sets_handler_impl_instance.cc
@@ -182,7 +182,9 @@
     const base::FilePath& user_data_dir,
     const LocalSetDeclaration& local_set) {
   DCHECK_CALLED_ON_VALID_SEQUENCE(sequence_checker_);
-  CHECK(!initialized_);
+  if (initialized_) {
+    return;
+  }
   CHECK(sets_loader_);
 
   initialized_ = true;
diff --git a/content/browser/renderer_host/media/video_capture_browsertest.cc b/content/browser/renderer_host/media/video_capture_browsertest.cc
index ddc412d..238d966 100644
--- a/content/browser/renderer_host/media/video_capture_browsertest.cc
+++ b/content/browser/renderer_host/media/video_capture_browsertest.cc
@@ -61,6 +61,9 @@
                void(const VideoCaptureControllerID& id,
                     const ReadyBuffer& fullsized_buffer,
                     const std::vector<ReadyBuffer>& downscaled_buffers));
+  MOCK_METHOD2(OnFrameDroppedEarly,
+               void(const VideoCaptureControllerID& id,
+                    media::VideoCaptureFrameDropReason reason));
   MOCK_METHOD1(OnFrameWithEmptyRegionCapture,
                void(const VideoCaptureControllerID&));
   MOCK_METHOD1(OnStarted, void(const VideoCaptureControllerID&));
diff --git a/content/browser/renderer_host/media/video_capture_controller.cc b/content/browser/renderer_host/media/video_capture_controller.cc
index be31491..0c958f9 100644
--- a/content/browser/renderer_host/media/video_capture_controller.cc
+++ b/content/browser/renderer_host/media/video_capture_controller.cc
@@ -666,9 +666,37 @@
 
 void VideoCaptureController::OnFrameDropped(
     media::VideoCaptureFrameDropReason reason) {
+  OnFrameDroppedLogging(reason);
+  // This method implements media::VideoFrameReceiver, which implements signals
+  // between the capture process and browser process. Therefore we'll want to
+  // forward the frame drop signal to the renderer process.
+  for (const auto& client : controller_clients_) {
+    if (client->session_closed) {
+      continue;
+    }
+    client->event_handler->OnFrameDroppedEarly(client->controller_id, reason);
+  }
+}
+
+void VideoCaptureController::OnFrameDroppedByRenderer(
+    media::VideoCaptureFrameDropReason reason) {
+  OnFrameDroppedLogging(reason);
+}
+
+void VideoCaptureController::OnFrameDroppedLogging(
+    media::VideoCaptureFrameDropReason reason) {
   TRACE_EVENT0(TRACE_DISABLED_BY_DEFAULT("video_and_image_capture"),
                "VideoCaptureController::OnFrameDropped");
 
+  // Logging and UMA reporting. This includes both frame drops that happened in
+  // the capture process (early) and frame drops that happened in the renderer
+  // process (late).
+  // TODO(https://crbug.com/1481448): When the MediaStreamTrackImpl in the
+  // renderer process is aware of all frame drops, including capture process
+  // frame drops, consider moving this logic there. This would allow deleting
+  // all frame drop callbacks that go in the direction renderer -> browser.
+  // Having frame drop signals only go in one direction would make the code less
+  // confusing.
   MaybeEmitFrameDropLogMessage(reason);
 
   if (reason == frame_drop_log_state_.drop_reason) {
diff --git a/content/browser/renderer_host/media/video_capture_controller.h b/content/browser/renderer_host/media/video_capture_controller.h
index 92d3861..2e939f6 100644
--- a/content/browser/renderer_host/media/video_capture_controller.h
+++ b/content/browser/renderer_host/media/video_capture_controller.h
@@ -135,6 +135,12 @@
   void OnStartedUsingGpuDecode() override;
   void OnStopped() override;
 
+  // Frames can be dropped early (e.g. capture process) or late (e.g. renderer
+  // process). Only if the frame drop happened early do we want to forward that
+  // signal to the renderer process for the purpose of the MediaStreamTrack
+  // Statistics API counting frame drops.
+  void OnFrameDroppedByRenderer(media::VideoCaptureFrameDropReason reason);
+
   // Implementation of VideoCaptureDeviceLauncher::Callbacks interface:
   void OnDeviceLaunched(
       std::unique_ptr<LaunchedVideoCaptureDevice> device) override;
@@ -269,6 +275,8 @@
                                    const VideoCaptureControllerID& id)>;
   void PerformForClientsWithOpenSession(EventHandlerAction action);
 
+  void OnFrameDroppedLogging(media::VideoCaptureFrameDropReason reason);
+
   void EmitLogMessage(const std::string& message, int verbose_log_level);
 
   void MaybeEmitFrameDropLogMessage(media::VideoCaptureFrameDropReason reason);
diff --git a/content/browser/renderer_host/media/video_capture_controller_event_handler.h b/content/browser/renderer_host/media/video_capture_controller_event_handler.h
index a202d7c..dfd6376f 100644
--- a/content/browser/renderer_host/media/video_capture_controller_event_handler.h
+++ b/content/browser/renderer_host/media/video_capture_controller_event_handler.h
@@ -66,6 +66,19 @@
       const ReadyBuffer& buffer,
       const std::vector<ReadyBuffer>& scaled_buffers) = 0;
 
+  // A frame was dropped early, such as by the capture process. This refers to
+  // a frame where we never called OnBufferReady().
+  //
+  // This callback is used to signal frame drops from browser process to
+  // renderer process and is named OnFrameDroppedEarly() to avoid naming clashes
+  // with VideoCaptureImpl::OnFrameDropped() which signals about frame drops in
+  // the other direction (renderer -> browser).
+  // TODO(https://crbug.com/1481448): When the UMAs are moved and the other
+  // OnFrameDropped() callback is deleted, rename this method to OnFrameDropped.
+  virtual void OnFrameDroppedEarly(
+      const VideoCaptureControllerID& id,
+      media::VideoCaptureFrameDropReason reason) = 0;
+
   // All subsequent buffers are guaranteed to have a crop version whose value
   // is at least |crop_version|.
   virtual void OnNewCropVersion(const VideoCaptureControllerID& id,
diff --git a/content/browser/renderer_host/media/video_capture_controller_unittest.cc b/content/browser/renderer_host/media/video_capture_controller_unittest.cc
index 237f9ce..c54bb27 100644
--- a/content/browser/renderer_host/media/video_capture_controller_unittest.cc
+++ b/content/browser/renderer_host/media/video_capture_controller_unittest.cc
@@ -110,6 +110,9 @@
   MOCK_METHOD1(OnStartedUsingGpuDecode, void(const VideoCaptureControllerID&));
   MOCK_METHOD2(OnNewCropVersion,
                void(const VideoCaptureControllerID&, uint32_t));
+  MOCK_METHOD2(OnFrameDroppedEarly,
+               void(const VideoCaptureControllerID&,
+                    media::VideoCaptureFrameDropReason));
 
   void OnError(const VideoCaptureControllerID& id,
                media::VideoCaptureError error) override {
@@ -1081,6 +1084,25 @@
   }
 }
 
+TEST_F(VideoCaptureControllerTest, EarlyDroppedFramesAreSignalled) {
+  media::VideoCaptureParams requested_params;
+  requested_params.requested_format = arbitrary_format_;
+  controller_->AddClient(arbitrary_route_id_, client_a_.get(),
+                         arbitrary_session_id_, requested_params);
+
+  // When OnFrameDropped() is called, the signal is forwarded.
+  EXPECT_CALL(*client_a_, OnFrameDroppedEarly(_, _)).Times(1);
+  controller_->OnFrameDropped(
+      media::VideoCaptureFrameDropReason::kBufferPoolMaxBufferCountExceeded);
+  Mock::VerifyAndClearExpectations(client_a_.get());
+
+  // When OnFrameDroppedByRenderer() is called, the signal is NOT forwarded.
+  EXPECT_CALL(*client_a_, OnFrameDroppedEarly(_, _)).Times(0);
+  controller_->OnFrameDroppedByRenderer(
+      media::VideoCaptureFrameDropReason::kBufferPoolMaxBufferCountExceeded);
+  Mock::VerifyAndClearExpectations(client_a_.get());
+}
+
 TEST_F(VideoCaptureControllerTest, DroppedFramesGetLoggedInUMA) {
   base::HistogramTester histogram_tester;
 
diff --git a/content/browser/renderer_host/media/video_capture_host.cc b/content/browser/renderer_host/media/video_capture_host.cc
index 6433897b..e4870f9 100644
--- a/content/browser/renderer_host/media/video_capture_host.cc
+++ b/content/browser/renderer_host/media/video_capture_host.cc
@@ -191,6 +191,17 @@
       std::move(mojom_buffer), std::move(mojom_scaled_buffers));
 }
 
+void VideoCaptureHost::OnFrameDroppedEarly(
+    const VideoCaptureControllerID& controller_id,
+    media::VideoCaptureFrameDropReason reason) {
+  DCHECK_CURRENTLY_ON(BrowserThread::IO);
+  if (controllers_.find(controller_id) == controllers_.end() ||
+      !base::Contains(device_id_to_observer_map_, controller_id)) {
+    return;
+  }
+  device_id_to_observer_map_[controller_id]->OnFrameDroppedEarly(reason);
+}
+
 void VideoCaptureHost::OnFrameWithEmptyRegionCapture(
     const VideoCaptureControllerID& controller_id) {
   DCHECK_CURRENTLY_ON(BrowserThread::IO);
@@ -405,8 +416,11 @@
     return;
 
   const base::WeakPtr<VideoCaptureController>& controller = it->second;
-  if (controller)
-    controller->OnFrameDropped(reason);
+  if (controller) {
+    // TODO(https://crbug.com/1481448): Delete this callback when
+    // MediaStreamTrackImpl handles the logging and UMAs related to frame drops.
+    controller->OnFrameDroppedByRenderer(reason);
+  }
 }
 
 void VideoCaptureHost::OnNewCropVersion(const base::UnguessableToken& device_id,
diff --git a/content/browser/renderer_host/media/video_capture_host.h b/content/browser/renderer_host/media/video_capture_host.h
index 149f9d2..56437114 100644
--- a/content/browser/renderer_host/media/video_capture_host.h
+++ b/content/browser/renderer_host/media/video_capture_host.h
@@ -74,6 +74,8 @@
   void OnBufferReady(const VideoCaptureControllerID& controller_id,
                      const ReadyBuffer& buffer,
                      const std::vector<ReadyBuffer>& scaled_buffers) override;
+  void OnFrameDroppedEarly(const VideoCaptureControllerID& controller_id,
+                           media::VideoCaptureFrameDropReason reason) override;
   void OnFrameWithEmptyRegionCapture(
       const VideoCaptureControllerID& controller_id) override;
   void OnEnded(const VideoCaptureControllerID& id) override;
@@ -102,6 +104,7 @@
   void GetDeviceFormatsInUse(const base::UnguessableToken& device_id,
                              const base::UnguessableToken& session_id,
                              GetDeviceFormatsInUseCallback callback) override;
+  // This refers to a late frame drop, originating from the renderer process.
   void OnFrameDropped(const base::UnguessableToken& device_id,
                       media::VideoCaptureFrameDropReason reason) override;
   void OnNewCropVersion(const base::UnguessableToken& device_id,
diff --git a/content/browser/renderer_host/media/video_capture_manager_unittest.cc b/content/browser/renderer_host/media/video_capture_manager_unittest.cc
index 922ddaf..461723a4 100644
--- a/content/browser/renderer_host/media/video_capture_manager_unittest.cc
+++ b/content/browser/renderer_host/media/video_capture_manager_unittest.cc
@@ -189,6 +189,9 @@
   void OnBufferReady(const VideoCaptureControllerID& id,
                      const ReadyBuffer& buffer,
                      const std::vector<ReadyBuffer>& scaled_buffers) override {}
+  void OnFrameDroppedEarly(const VideoCaptureControllerID& id,
+                           media::VideoCaptureFrameDropReason reason) override {
+  }
   void OnNewCropVersion(const VideoCaptureControllerID& id,
                         uint32_t crop_version) override {}
   void OnFrameWithEmptyRegionCapture(const VideoCaptureControllerID&) override {
diff --git a/content/browser/renderer_host/media/video_capture_unittest.cc b/content/browser/renderer_host/media/video_capture_unittest.cc
index 3671c59..ab908e3 100644
--- a/content/browser/renderer_host/media/video_capture_unittest.cc
+++ b/content/browser/renderer_host/media/video_capture_unittest.cc
@@ -213,6 +213,7 @@
   }
   MOCK_METHOD1(DoOnBufferReady, void(int32_t));
   MOCK_METHOD1(OnBufferDestroyed, void(int32_t));
+  MOCK_METHOD1(OnFrameDroppedEarly, void(media::VideoCaptureFrameDropReason));
   MOCK_METHOD1(OnNewCropVersion, void(uint32_t));
 
   void StartCapture() {
diff --git a/content/browser/smart_card/smart_card_browsertest.cc b/content/browser/smart_card/smart_card_browsertest.cc
index 27d0fc4..bc47d8f 100644
--- a/content/browser/smart_card/smart_card_browsertest.cc
+++ b/content/browser/smart_card/smart_card_browsertest.cc
@@ -823,7 +823,7 @@
   ASSERT_TRUE(NavigateToURL(shell(), GetIsolatedContextUrl()));
 
   EXPECT_EQ(
-      "Fake Reader, {unaware=false, ignore=false, changed=false, "
+      "Fake Reader, {ignore=false, changed=false, "
       "unknown=false, unavailable=false, empty=false, present=true, "
       "exclusive=false, inuse=true, mute=false, unpowered=false}, 7, {1,2,3,4}",
       EvalJs(shell(), R"((async () => {
@@ -842,8 +842,7 @@
        let atrString = new Uint8Array(statesOut[0].answerToReset).toString();
 
        let flags = statesOut[0].eventState;
-       let eventStateString = `unaware=${flags.unaware}`
-           + `, ignore=${flags.ignore}`
+       let eventStateString = `ignore=${flags.ignore}`
            + `, changed=${flags.changed}`
            + `, unknown=${flags.unknown}`
            + `, unavailable=${flags.unavailable}`
diff --git a/content/browser/tracing/background_tracing_active_scenario.cc b/content/browser/tracing/background_tracing_active_scenario.cc
index 51faab3..72ef679 100644
--- a/content/browser/tracing/background_tracing_active_scenario.cc
+++ b/content/browser/tracing/background_tracing_active_scenario.cc
@@ -124,10 +124,8 @@
     }
 
     if (parent_scenario_->delegate_ &&
-        (!parent_scenario_->delegate_->IsAllowedToEndBackgroundScenario(
-            parent_scenario_->GetConfig()->scenario_name(),
-            parent_scenario_->GetConfig()->requires_anonymized_data(),
-            is_crash_scenario))) {
+        (!parent_scenario_->delegate_->OnBackgroundTracingIdle(
+            parent_scenario_->GetConfig()->requires_anonymized_data()))) {
       auto on_failure_cb =
           base::MakeRefCounted<base::RefCountedData<base::OnceClosure>>(
               std::move(on_failure));
@@ -345,7 +343,7 @@
     std::string&& serialized_trace) {
   BackgroundTracingManagerImpl::GetInstance().OnProtoDataComplete(
       std::move(serialized_trace), config_->scenario_name(),
-      last_triggered_rule_->rule_id());
+      last_triggered_rule_->rule_id(), last_triggered_rule_->is_crash());
   tracing_session_.reset();
   SetState(State::kIdle);
 
diff --git a/content/browser/tracing/background_tracing_manager_impl.cc b/content/browser/tracing/background_tracing_manager_impl.cc
index e3c6357..b3e41da 100644
--- a/content/browser/tracing/background_tracing_manager_impl.cc
+++ b/content/browser/tracing/background_tracing_manager_impl.cc
@@ -53,6 +53,14 @@
 namespace {
 // The time to live of a trace is currently 14 days.
 const base::TimeDelta kTraceTimeToLive = base::Days(14);
+// We limit uploads of 1 trace per scenario over a period of 7 days. Since
+// traces live in the database for longer than 7 days, their TTL doesn't affect
+// this unless the database is manually cleared.
+const base::TimeDelta kMinTimeUntilNextUpload = base::Days(7);
+// We limit the overall number of traces per scenario saved to the database at
+// 20. When traces are deleted after their TTL, it leaves more capacity for new
+// traces.
+const size_t kMaxTracesPerScenario = 20;
 
 const char kBackgroundTracingConfig[] = "config";
 
@@ -66,7 +74,6 @@
     base::OnceCallback<void(BackgroundTracingManagerImpl::ScenarioCountMap,
                             absl::optional<BaseTraceReport>,
                             bool)> on_database_created) {
-  DCHECK(base::FeatureList::IsEnabled(kBackgroundTracingDatabase));
   if (database->is_initialized()) {
     return;
   }
@@ -88,52 +95,52 @@
     std::string&& serialized_trace,
     std::string&& serialized_system_profile,
     BaseTraceReport base_report,
+    bool should_save_trace,
+    bool is_crash_scenario,
     base::OnceCallback<void(absl::optional<NewTraceReport>, bool)>
         on_trace_saved) {
   if (!database->is_initialized()) {
     return;
   }
+  base::Time since = base::Time::Now() - kMinTimeUntilNextUpload;
+  auto upload_count =
+      database->UploadCountSince(base_report.scenario_name, since);
+  if (!is_crash_scenario && upload_count && *upload_count > 0) {
+    base_report.skip_reason = SkipUploadReason::kScenarioQuotaExceeded;
+    if (!should_save_trace) {
+      return;
+    }
+  }
+
   std::string compressed_trace;
   bool success = compression::GzipCompress(serialized_trace, &compressed_trace);
+  absl::optional<NewTraceReport> report_to_upload;
   if (success) {
     UMA_HISTOGRAM_COUNTS_100000("Tracing.Background.CompressedTraceSizeInKB",
                                 compressed_trace.size() / 1024);
-    NewTraceReport trace_report = base_report;
-    trace_report.trace_content = std::move(compressed_trace);
-    trace_report.system_profile = std::move(serialized_system_profile);
 
-    success = database->AddTrace(std::move(trace_report));
+    if (base::FeatureList::IsEnabled(kBackgroundTracingDatabase)) {
+      NewTraceReport trace_report = base_report;
+      trace_report.trace_content = std::move(compressed_trace);
+      trace_report.system_profile = std::move(serialized_system_profile);
+      success = database->AddTrace(trace_report);
+    } else {
+      // When the database is disabled, we still store the base report without
+      // the trace content proto to enable tracking of trace upload limits.
+      success = database->AddTrace(base_report);
+      if (success && base_report.skip_reason == SkipUploadReason::kNoSkip) {
+        report_to_upload = std::move(base_report);
+        report_to_upload->trace_content = std::move(compressed_trace);
+        report_to_upload->system_profile = std::move(serialized_system_profile);
+      }
+    }
+  }
+  if (base::FeatureList::IsEnabled(kBackgroundTracingDatabase)) {
+    report_to_upload = database->GetNextReportPendingUpload();
   }
   GetUIThreadTaskRunner({})->PostTask(
-      FROM_HERE,
-      base::BindOnce(std::move(on_trace_saved),
-                     database->GetNextReportPendingUpload(), success));
-}
-
-void CompressTraceOnDatabaseTaskRunner(
-    std::string&& serialized_trace,
-    BaseTraceReport base_report,
-    base::OnceCallback<void(absl::optional<NewTraceReport>, bool)>
-        on_trace_compressed) {
-  DCHECK_EQ(SkipUploadReason::kNoSkip, base_report.skip_reason);
-  std::string compressed_trace;
-  if (!compression::GzipCompress(serialized_trace, &compressed_trace)) {
-    GetUIThreadTaskRunner({})->PostTask(
-        FROM_HERE,
-        base::BindOnce(std::move(on_trace_compressed), absl::nullopt, false));
-    return;
-  }
-  UMA_HISTOGRAM_COUNTS_100000("Tracing.Background.CompressedTraceSizeInKB",
-                              compressed_trace.size() / 1024);
-
-  NewTraceReport trace_report = base_report;
-  trace_report.trace_content = std::move(compressed_trace);
-
-  // Return the report as-is to hold the trace content in memory until it
-  // can be uploaded.
-  GetUIThreadTaskRunner({})->PostTask(
-      FROM_HERE, base::BindOnce(std::move(on_trace_compressed),
-                                std::move(trace_report), true));
+      FROM_HERE, base::BindOnce(std::move(on_trace_saved),
+                                std::move(report_to_upload), success));
 }
 
 void GetProtoValueOnDatabaseTaskRunner(
@@ -386,7 +393,7 @@
   RecordMetric(success ? Metrics::SAVE_TRACE_SUCCEEDED
                        : Metrics::SAVE_TRACE_FAILED);
   trace_report_to_upload_ = std::move(trace_to_upload);
-  if (success && base::FeatureList::IsEnabled(kBackgroundTracingDatabase)) {
+  if (success) {
     ++scenario_saved_counts_[scenario_name];
   }
   for (auto* observer : background_tracing_observers_) {
@@ -439,8 +446,8 @@
   InitializeTraceReportDatabase();
 
   for (const auto& scenario_config : config.scenarios()) {
-    auto scenario = TracingScenario::Create(
-        scenario_config, requires_anonymized_data_, this, delegate_.get());
+    auto scenario = TracingScenario::Create(scenario_config,
+                                            requires_anonymized_data_, this);
     if (!scenario) {
       return false;
     }
@@ -497,9 +504,8 @@
   config_impl->set_requires_anonymized_data(requires_anonymized_data_);
 
   // TODO(oysteine): Retry when time_until_allowed has elapsed.
-  if (delegate_ && !delegate_->IsAllowedToBeginBackgroundScenario(
-                       config_impl->scenario_name(), requires_anonymized_data_,
-                       config_impl->has_crash_scenario())) {
+  if (delegate_ &&
+      !delegate_->OnBackgroundTracingActive(requires_anonymized_data_)) {
     return false;
   }
 
@@ -527,9 +533,6 @@
 
 void BackgroundTracingManagerImpl::InitializeTraceReportDatabase(
     bool open_in_memory) {
-  if (!base::FeatureList::IsEnabled(kBackgroundTracingDatabase)) {
-    return;
-  }
   absl::optional<base::FilePath> database_dir;
   if (!trace_database_) {
     trace_database_ = {new TraceReportDatabase,
@@ -551,9 +554,17 @@
                          weak_factory_.GetWeakPtr())));
 }
 
-void BackgroundTracingManagerImpl::OnScenarioActive(
+bool BackgroundTracingManagerImpl::OnScenarioActive(
     TracingScenario* active_scenario) {
   DCHECK_EQ(active_scenario_, nullptr);
+  if (GetScenarioSavedCount(active_scenario->scenario_name()) >=
+      kMaxTracesPerScenario) {
+    return false;
+  }
+  if (delegate_ &&
+      !delegate_->OnBackgroundTracingActive(requires_anonymized_data_)) {
+    return false;
+  }
   active_scenario_ = active_scenario;
   // TODO(crbug.com/1418116): Record scenario started metrics.
   for (auto* observer : background_tracing_observers_) {
@@ -565,18 +576,23 @@
     }
     scenario->Disable();
   }
+  return true;
 }
 
-void BackgroundTracingManagerImpl::OnScenarioIdle(
+bool BackgroundTracingManagerImpl::OnScenarioIdle(
     TracingScenario* idle_scenario) {
   DCHECK_EQ(active_scenario_, idle_scenario);
   active_scenario_ = nullptr;
   for (auto* observer : background_tracing_observers_) {
     observer->OnScenarioIdle(idle_scenario->scenario_name());
   }
+  bool is_allowed_finalization =
+      !delegate_ ||
+      delegate_->OnBackgroundTracingIdle(requires_anonymized_data_);
   for (auto& scenario : scenarios_) {
     scenario->Enable();
   }
+  return is_allowed_finalization;
 }
 
 void BackgroundTracingManagerImpl::OnScenarioRecording(
@@ -590,7 +606,7 @@
     const BackgroundTracingRule* triggered_rule,
     std::string&& trace_data) {
   OnProtoDataComplete(std::move(trace_data), scenario->scenario_name(),
-                      triggered_rule->rule_id());
+                      triggered_rule->rule_id(), /*is_crash_scenario=*/false);
 }
 
 bool BackgroundTracingManagerImpl::HasActiveScenario() {
@@ -626,13 +642,9 @@
 
   // Trace content was kept in memory.
   if (!trace_report_to_upload_->trace_content.empty()) {
-    std::string serialized_system_profile;
-    if (system_profile_recorder_) {
-      serialized_system_profile = system_profile_recorder_.Run();
-    }
     std::move(receive_callback)
         .Run(std::move(trace_report_to_upload_->trace_content),
-             std::move(serialized_system_profile));
+             std::move(trace_report_to_upload_->system_profile));
     OnFinalizeComplete(absl::nullopt, true);
     return;
   }
@@ -739,7 +751,8 @@
     const std::string& scenario_name,
     const std::string& rule_name) {
   InitializeTraceReportDatabase(true);
-  OnProtoDataComplete(std::move(serialized_trace), scenario_name, rule_name);
+  OnProtoDataComplete(std::move(serialized_trace), scenario_name, rule_name,
+                      /*is_crash_scenario=*/false);
 }
 
 size_t BackgroundTracingManagerImpl::GetScenarioSavedCount(
@@ -754,13 +767,16 @@
 void BackgroundTracingManagerImpl::OnProtoDataComplete(
     std::string&& serialized_trace,
     const std::string& scenario_name,
-    const std::string& rule_name) {
+    const std::string& rule_name,
+    bool is_crash_scenario) {
   DCHECK_CURRENTLY_ON(BrowserThread::UI);
 
   for (auto* observer : background_tracing_observers_) {
     observer->OnTraceReceived(serialized_trace);
   }
   if (!receive_callback_) {
+    DCHECK(trace_database_);
+
     SkipUploadReason skip_reason = SkipUploadReason::kNoSkip;
     if (!requires_anonymized_data_) {
       skip_reason = SkipUploadReason::kNotAnonymized;
@@ -768,8 +784,9 @@
     if (serialized_trace.size() > upload_limit_kb_ * 1024) {
       skip_reason = SkipUploadReason::kSizeLimitExceeded;
     }
-    if (skip_reason != SkipUploadReason::kNoSkip &&
-        !(delegate_ && delegate_->ShouldSaveUnuploadedTrace())) {
+    bool should_save_trace =
+        !delegate_ || delegate_->ShouldSaveUnuploadedTrace();
+    if (skip_reason != SkipUploadReason::kNoSkip && !should_save_trace) {
       return;
     }
     BackgroundTracingManagerImpl::RecordMetric(Metrics::FINALIZATION_STARTED);
@@ -783,31 +800,21 @@
     base_report.upload_rule_name = rule_name;
     base_report.total_size = serialized_trace.size();
     base_report.skip_reason = skip_reason;
-    if (base::FeatureList::IsEnabled(kBackgroundTracingDatabase)) {
-      DCHECK(trace_database_);
-      std::string serialized_system_profile;
-      if (system_profile_recorder_) {
-        serialized_system_profile = system_profile_recorder_.Run();
-      }
 
-      database_task_runner_->PostTask(
-          FROM_HERE,
-          base::BindOnce(
-              AddTraceOnDatabaseTaskRunner,
-              base::Unretained(trace_database_.get()),
-              std::move(serialized_trace), std::move(serialized_system_profile),
-              std::move(base_report),
-              base::BindOnce(&BackgroundTracingManagerImpl::OnTraceSaved,
-                             weak_factory_.GetWeakPtr(), scenario_name)));
-    } else if (skip_reason == SkipUploadReason::kNoSkip) {
-      database_task_runner_->PostTask(
-          FROM_HERE,
-          base::BindOnce(
-              CompressTraceOnDatabaseTaskRunner, std::move(serialized_trace),
-              std::move(base_report),
-              base::BindOnce(&BackgroundTracingManagerImpl::OnTraceSaved,
-                             weak_factory_.GetWeakPtr(), scenario_name)));
+    std::string serialized_system_profile;
+    if (system_profile_recorder_) {
+      serialized_system_profile = system_profile_recorder_.Run();
     }
+
+    database_task_runner_->PostTask(
+        FROM_HERE,
+        base::BindOnce(
+            AddTraceOnDatabaseTaskRunner,
+            base::Unretained(trace_database_.get()),
+            std::move(serialized_trace), std::move(serialized_system_profile),
+            std::move(base_report), should_save_trace, is_crash_scenario,
+            base::BindOnce(&BackgroundTracingManagerImpl::OnTraceSaved,
+                           weak_factory_.GetWeakPtr(), scenario_name)));
   } else {
     BackgroundTracingManagerImpl::RecordMetric(
         Metrics::FINALIZATION_STARTED_WITH_LOCAL_OUTPUT);
diff --git a/content/browser/tracing/background_tracing_manager_impl.h b/content/browser/tracing/background_tracing_manager_impl.h
index 0e2d6ae..e6d1cbf 100644
--- a/content/browser/tracing/background_tracing_manager_impl.h
+++ b/content/browser/tracing/background_tracing_manager_impl.h
@@ -108,8 +108,8 @@
   void DeleteTracesInDateRange(base::Time start, base::Time end) override;
 
   // TracingScenario::Delegate:
-  void OnScenarioActive(TracingScenario* scenario) override;
-  void OnScenarioIdle(TracingScenario* scenario) override;
+  bool OnScenarioActive(TracingScenario* scenario) override;
+  bool OnScenarioIdle(TracingScenario* scenario) override;
   void OnScenarioRecording(TracingScenario* scenario) override;
   void SaveTrace(TracingScenario* scenario,
                  const BackgroundTracingRule* triggered_rule,
@@ -160,7 +160,8 @@
   void OnStartTracingDone();
   void OnProtoDataComplete(std::string&& serialized_trace,
                            const std::string& scenario_name,
-                           const std::string& rule_name);
+                           const std::string& rule_name,
+                           bool is_crash_scenario);
 
   // For tests
   CONTENT_EXPORT BackgroundTracingActiveScenario* GetActiveScenarioForTesting();
diff --git a/content/browser/tracing/background_tracing_manager_unittest.cc b/content/browser/tracing/background_tracing_manager_unittest.cc
index 7d19b44..08dd7529 100644
--- a/content/browser/tracing/background_tracing_manager_unittest.cc
+++ b/content/browser/tracing/background_tracing_manager_unittest.cc
@@ -3,8 +3,11 @@
 // found in the LICENSE file.
 
 #include "base/files/scoped_temp_dir.h"
+#include "base/functional/callback_helpers.h"
+#include "base/path_service.h"
 #include "base/test/bind.h"
 #include "base/test/scoped_feature_list.h"
+#include "base/test/test_proto_loader.h"
 #include "base/values.h"
 #include "build/build_config.h"
 #include "content/browser/tracing/background_tracing_config_impl.h"
@@ -52,6 +55,22 @@
   base::RunLoop wait_for_trace_saved_;
 };
 
+perfetto::protos::gen::ChromeFieldTracingConfig ParseFieldTracingConfigFromText(
+    const std::string& proto_text) {
+  base::ScopedAllowBlockingForTesting allow_blocking;
+  base::TestProtoLoader config_loader(
+      base::PathService::CheckedGet(base::DIR_GEN_TEST_DATA_ROOT)
+          .Append(
+              FILE_PATH_LITERAL("third_party/perfetto/protos/perfetto/"
+                                "config/chrome/scenario_config.descriptor")),
+      "perfetto.protos.ChromeFieldTracingConfig");
+  std::string serialized_message;
+  config_loader.ParseFromText(proto_text, serialized_message);
+  perfetto::protos::gen::ChromeFieldTracingConfig destination;
+  destination.ParseFromString(serialized_message);
+  return destination;
+}
+
 class MockBrowserClient : public content::ContentBrowserClient {
  public:
   MockBrowserClient(base::FilePath traces_dir) : traces_dir_(traces_dir) {}
@@ -151,34 +170,36 @@
   EXPECT_FALSE(background_tracing_manager_->HasTraceToUpload());
 }
 
-TEST_F(BackgroundTracingManagerTest, GetTraceToUploadNoDatabase) {
-  base::test::ScopedFeatureList scoped_list;
-  scoped_list.InitAndDisableFeature(kBackgroundTracingDatabase);
-  {
+TEST_F(BackgroundTracingManagerTest, SavedCountPreventsStart) {
+  constexpr const char kScenarioConfig[] = R"pb(
+    scenarios: {
+      scenario_name: "test_scenario"
+      start_rules: {
+        name: "start_trigger"
+        manual_trigger_name: "start_trigger"
+      }
+      trace_config: {
+        data_sources: { config: { name: "org.chromium.trace_metadata" } }
+      }
+    }
+  )pb";
+
+  constexpr size_t kNumSavedTraces = 20;
+  for (size_t i = 0; i < kNumSavedTraces; ++i) {
     TestBackgroundTracingHelper background_tracing_helper;
     background_tracing_manager_->SaveTraceForTesting(
         kDummyTrace, "test_scenario", "test_rule");
     background_tracing_helper.WaitForTraceSaved();
   }
+  EXPECT_EQ(kNumSavedTraces,
+            BackgroundTracingManagerImpl::GetInstance().GetScenarioSavedCount(
+                "test_scenario"));
 
-  EXPECT_TRUE(background_tracing_manager_->HasTraceToUpload());
+  background_tracing_manager_->InitializeScenarios(
+      ParseFieldTracingConfigFromText(kScenarioConfig),
+      BackgroundTracingManager::NO_DATA_FILTERING);
 
-  std::string compressed_trace;
-  base::RunLoop run_loop;
-  background_tracing_manager_->GetTraceToUpload(
-      base::BindLambdaForTesting([&](absl::optional<std::string> trace_content,
-                                     absl::optional<std::string>) {
-        ASSERT_TRUE(trace_content);
-        compressed_trace = std::move(*trace_content);
-        run_loop.Quit();
-      }));
-  run_loop.Run();
-
-  std::string serialized_trace;
-  ASSERT_TRUE(compression::GzipUncompress(compressed_trace, &serialized_trace));
-  EXPECT_EQ(kDummyTrace, serialized_trace);
-
-  EXPECT_FALSE(background_tracing_manager_->HasTraceToUpload());
+  EXPECT_FALSE(BackgroundTracingManager::EmitNamedTrigger("start_trigger"));
 }
 
 TEST_F(BackgroundTracingManagerTest, SavedCountAfterClean) {
@@ -222,6 +243,56 @@
                 "test_scenario"));
 }
 
+TEST_F(BackgroundTracingManagerTest, UploadScenarioQuotaExceeded) {
+  {
+    TestBackgroundTracingHelper background_tracing_helper;
+    background_tracing_manager_->SaveTraceForTesting(
+        kDummyTrace, "test_scenario", "test_rule");
+    background_tracing_helper.WaitForTraceSaved();
+  }
+  EXPECT_TRUE(background_tracing_manager_->HasTraceToUpload());
+
+  base::RunLoop run_loop;
+  background_tracing_manager_->GetTraceToUpload(
+      base::IgnoreArgs<absl::optional<std::string>,
+                       absl::optional<std::string>>(run_loop.QuitClosure()));
+  run_loop.Run();
+
+  {
+    TestBackgroundTracingHelper background_tracing_helper;
+    background_tracing_manager_->SaveTraceForTesting(
+        kDummyTrace, "test_scenario", "test_rule");
+    background_tracing_helper.WaitForTraceSaved();
+  }
+  EXPECT_FALSE(background_tracing_manager_->HasTraceToUpload());
+}
+
+TEST_F(BackgroundTracingManagerTest, UploadScenarioQuotaReset) {
+  {
+    TestBackgroundTracingHelper background_tracing_helper;
+    background_tracing_manager_->SaveTraceForTesting(
+        kDummyTrace, "test_scenario", "test_rule");
+    background_tracing_helper.WaitForTraceSaved();
+  }
+  EXPECT_TRUE(background_tracing_manager_->HasTraceToUpload());
+
+  base::RunLoop run_loop;
+  background_tracing_manager_->GetTraceToUpload(
+      base::IgnoreArgs<absl::optional<std::string>,
+                       absl::optional<std::string>>(run_loop.QuitClosure()));
+  run_loop.Run();
+
+  task_environment_.FastForwardBy(base::Days(8));
+
+  {
+    TestBackgroundTracingHelper background_tracing_helper;
+    background_tracing_manager_->SaveTraceForTesting(
+        kDummyTrace, "test_scenario", "test_rule");
+    background_tracing_helper.WaitForTraceSaved();
+  }
+  EXPECT_TRUE(background_tracing_manager_->HasTraceToUpload());
+}
+
 TEST(BackgroundTracingManagerPersistentTest, DeleteTracesInDateRange) {
   base::test::ScopedFeatureList scoped_list;
   scoped_list.InitAndEnableFeature(kBackgroundTracingDatabase);
diff --git a/content/browser/tracing/trace_report/trace_report.mojom b/content/browser/tracing/trace_report/trace_report.mojom
index c8c3b4f..75865ec 100644
--- a/content/browser/tracing/trace_report/trace_report.mojom
+++ b/content/browser/tracing/trace_report/trace_report.mojom
@@ -24,6 +24,7 @@
   kNoSkip = 0,
   kSizeLimitExceeded = 1,
   kNotAnonymized = 2,
+  kScenarioQuotaExceeded = 3,
 };
 
 // Information about a single trace to display
diff --git a/content/browser/tracing/trace_report/trace_report_database.h b/content/browser/tracing/trace_report/trace_report_database.h
index 6a8c32f..e0e6fa6d 100644
--- a/content/browser/tracing/trace_report/trace_report_database.h
+++ b/content/browser/tracing/trace_report/trace_report_database.h
@@ -31,6 +31,7 @@
   kNoSkip = 0,
   kSizeLimitExceeded = 1,
   kNotAnonymized = 2,
+  kScenarioQuotaExceeded = 3,
 };
 
 // BaseTraceReport contains common data used to create and display a trace
diff --git a/content/browser/tracing/trace_report/trace_report_mojom_traits.cc b/content/browser/tracing/trace_report/trace_report_mojom_traits.cc
index 141a018..999be9d 100644
--- a/content/browser/tracing/trace_report/trace_report_mojom_traits.cc
+++ b/content/browser/tracing/trace_report/trace_report_mojom_traits.cc
@@ -50,6 +50,8 @@
       return SkipUploadReason::kSizeLimitExceeded;
     case content::SkipUploadReason::kNotAnonymized:
       return SkipUploadReason::kNotAnonymized;
+    case content::SkipUploadReason::kScenarioQuotaExceeded:
+      return SkipUploadReason::kScenarioQuotaExceeded;
   }
 }
 
@@ -66,6 +68,9 @@
     case SkipUploadReason::kNotAnonymized:
       *output = content::SkipUploadReason::kNotAnonymized;
       return true;
+    case SkipUploadReason::kScenarioQuotaExceeded:
+      *output = content::SkipUploadReason::kScenarioQuotaExceeded;
+      return true;
   }
 }
 
diff --git a/content/browser/tracing/tracing_scenario.cc b/content/browser/tracing/tracing_scenario.cc
index 92a2c12e..7efd3fe 100644
--- a/content/browser/tracing/tracing_scenario.cc
+++ b/content/browser/tracing/tracing_scenario.cc
@@ -43,10 +43,9 @@
 std::unique_ptr<TracingScenario> TracingScenario::Create(
     const perfetto::protos::gen::ScenarioConfig& config,
     bool requires_anonymized_data,
-    Delegate* scenario_delegate,
-    TracingDelegate* tracing_delegate) {
-  auto scenario = base::WrapUnique(
-      new TracingScenario(config, scenario_delegate, tracing_delegate));
+    Delegate* scenario_delegate) {
+  auto scenario =
+      base::WrapUnique(new TracingScenario(config, scenario_delegate));
   if (!scenario->Initialize(requires_anonymized_data)) {
     return nullptr;
   }
@@ -55,12 +54,10 @@
 
 TracingScenario::TracingScenario(
     const perfetto::protos::gen::ScenarioConfig& config,
-    Delegate* scenario_delegate,
-    TracingDelegate* tracing_delegate)
+    Delegate* scenario_delegate)
     : scenario_name_(config.scenario_name()),
       trace_config_(config.trace_config()),
       scenario_delegate_(scenario_delegate),
-      tracing_delegate_(tracing_delegate),
       task_runner_(base::SequencedTaskRunner::GetCurrentDefault()) {
   for (const auto& rule : config.start_rules()) {
     start_rules_.push_back(BackgroundTracingRule::Create(rule));
@@ -159,17 +156,13 @@
     const BackgroundTracingRule* triggered_rule) {
   DCHECK_CALLED_ON_VALID_SEQUENCE(sequence_checker_);
 
-  if (tracing_delegate_ &&
-      !tracing_delegate_->IsAllowedToBeginBackgroundScenario(
-          scenario_name(), requires_anonymized_data_,
-          /*is_crash_scenario=*/false)) {
+  if (!scenario_delegate_->OnScenarioActive(this)) {
     return false;
   }
 
   for (auto& rule : setup_rules_) {
     rule->Uninstall();
   }
-  scenario_delegate_->OnScenarioActive(this);
   for (auto& rule : stop_rules_) {
     rule->Install(base::BindRepeating(&TracingScenario::OnStopTrigger,
                                       base::Unretained(this)));
@@ -309,29 +302,25 @@
       rule->Uninstall();
     }
   }
-  bool should_finalize = (current_state_ == State::kFinalizing);
-  if (tracing_delegate_ &&
-      (!tracing_delegate_->IsAllowedToEndBackgroundScenario(
-          scenario_name(), requires_anonymized_data_,
-          /*is_crash_scenario=*/false))) {
-    BackgroundTracingManagerImpl::RecordMetric(
-        Metrics::FINALIZATION_DISALLOWED);
-    should_finalize = false;
+  for (auto& rule : upload_rules_) {
+    rule->Uninstall();
   }
-  if (!should_finalize) {
-    for (auto& rule : upload_rules_) {
-      rule->Uninstall();
-    }
-    tracing_session_.reset();
-    SetState(State::kDisabled);
-    scenario_delegate_->OnScenarioIdle(this);
+  bool should_upload = (current_state_ == State::kFinalizing);
+  auto tracing_session = std::move(tracing_session_);
+  SetState(State::kDisabled);
+  if (!scenario_delegate_->OnScenarioIdle(this)) {
+    should_upload = false;
+  }
+  if (!should_upload) {
+    tracing_session.reset();
     return;
   }
-  CHECK_EQ(current_state_, State::kFinalizing);
-  auto reader = base::MakeRefCounted<TraceReader>(std::move(tracing_session_));
+  DCHECK(triggered_rule_);
+  auto reader = base::MakeRefCounted<TraceReader>(std::move(tracing_session));
   reader->tracing_session->ReadTrace(
-      [task_runner = task_runner_, weak_ptr = GetWeakPtr(),
-       reader](perfetto::TracingSession::ReadTraceCallbackArgs args) mutable {
+      [task_runner = task_runner_, weak_ptr = GetWeakPtr(), reader,
+       triggered_rule = std::move(triggered_rule_).get()](
+          perfetto::TracingSession::ReadTraceCallbackArgs args) mutable {
         if (args.size) {
           reader->serialized_trace.append(args.data, args.size);
         }
@@ -340,19 +329,20 @@
               FROM_HERE,
               base::BindOnce(&TracingScenario::OnFinalizingDone, weak_ptr,
                              std::move(reader->serialized_trace),
-                             std::move(reader->tracing_session)));
+                             std::move(reader->tracing_session),
+                             triggered_rule));
         }
       });
-  SetState(State::kDisabled);
-  scenario_delegate_->OnScenarioIdle(this);
 }
 
-void TracingScenario::OnFinalizingDone(std::string&& serialized_trace,
-                                       TracingSession tracing_session) {
+void TracingScenario::OnFinalizingDone(
+    std::string&& serialized_trace,
+    TracingSession tracing_session,
+    const BackgroundTracingRule* triggered_rule) {
   DCHECK_CALLED_ON_VALID_SEQUENCE(sequence_checker_);
 
   tracing_session.reset();
-  scenario_delegate_->SaveTrace(this, triggered_rule_.get(),
+  scenario_delegate_->SaveTrace(this, triggered_rule,
                                 std::move(serialized_trace));
 }
 
diff --git a/content/browser/tracing/tracing_scenario.h b/content/browser/tracing/tracing_scenario.h
index 527002ac..eff64a1 100644
--- a/content/browser/tracing/tracing_scenario.h
+++ b/content/browser/tracing/tracing_scenario.h
@@ -11,7 +11,6 @@
 #include "base/trace_event/trace_config.h"
 #include "content/browser/tracing/background_tracing_rule.h"
 #include "content/common/content_export.h"
-#include "content/public/browser/tracing_delegate.h"
 #include "services/tracing/public/cpp/perfetto/perfetto_config.h"
 #include "third_party/perfetto/include/perfetto/tracing/tracing.h"
 #include "third_party/perfetto/protos/perfetto/config/chrome/scenario_config.gen.h"
@@ -44,10 +43,12 @@
   // The delegate gets notified of state transitions and receives traces.
   class Delegate {
    public:
-    // Called when |scenario| becomes active, i.e. kSetup or kRecoding.
-    virtual void OnScenarioActive(TracingScenario* scenario) = 0;
-    // Called when |scenario| becomes idle again.
-    virtual void OnScenarioIdle(TracingScenario* scenario) = 0;
+    // Called when |scenario| becomes active, i.e. kSetup or kRecoding. Returns
+    // true if tracing is allowed to begin.
+    virtual bool OnScenarioActive(TracingScenario* scenario) = 0;
+    // Called when |scenario| becomes idle again. Returns true if tracing is
+    // allowed to finalize.
+    virtual bool OnScenarioIdle(TracingScenario* scenario) = 0;
     // Called when |scenario| starts recording a trace.
     virtual void OnScenarioRecording(TracingScenario* scenario) = 0;
     // Called when a trace was collected.
@@ -62,8 +63,7 @@
   static std::unique_ptr<TracingScenario> Create(
       const perfetto::protos::gen::ScenarioConfig& config,
       bool requires_anonymized_data,
-      Delegate* scenario_delegate,
-      TracingDelegate* tracing_delegate);
+      Delegate* scenario_delegate);
 
   virtual ~TracingScenario();
 
@@ -81,8 +81,7 @@
 
  protected:
   TracingScenario(const perfetto::protos::gen::ScenarioConfig& config,
-                  Delegate* scenario_delegate,
-                  TracingDelegate* tracing_delegate);
+                  Delegate* scenario_delegate);
 
   virtual std::unique_ptr<perfetto::TracingSession> CreateTracingSession();
 
@@ -107,7 +106,8 @@
   void OnTracingStop();
   void OnTracingStart();
   void OnFinalizingDone(std::string&& serialized_trace,
-                        TracingSession tracing_session);
+                        TracingSession tracing_session,
+                        const BackgroundTracingRule* triggered_rule);
 
   bool OnSetupTrigger(const BackgroundTracingRule* rule);
   bool OnStartTrigger(const BackgroundTracingRule* rule);
@@ -126,10 +126,8 @@
   std::string scenario_name_;
   perfetto::TraceConfig trace_config_;
   raw_ptr<Delegate> scenario_delegate_;
-  raw_ptr<TracingDelegate> tracing_delegate_;
   TracingSession tracing_session_;
   raw_ptr<const BackgroundTracingRule> triggered_rule_;
-  const bool requires_anonymized_data_ = false;
 
   scoped_refptr<base::SequencedTaskRunner> task_runner_;
   SEQUENCE_CHECKER(sequence_checker_);
diff --git a/content/browser/tracing/tracing_scenario_unittest.cc b/content/browser/tracing/tracing_scenario_unittest.cc
index ac087c9..ff6c31f 100644
--- a/content/browser/tracing/tracing_scenario_unittest.cc
+++ b/content/browser/tracing/tracing_scenario_unittest.cc
@@ -35,8 +35,8 @@
  public:
   ~TestTracingScenarioDelegate() = default;
 
-  MOCK_METHOD(void, OnScenarioActive, (TracingScenario * scenario), (override));
-  MOCK_METHOD(void, OnScenarioIdle, (TracingScenario * scenario), (override));
+  MOCK_METHOD(bool, OnScenarioActive, (TracingScenario * scenario), (override));
+  MOCK_METHOD(bool, OnScenarioIdle, (TracingScenario * scenario), (override));
   MOCK_METHOD(void,
               OnScenarioRecording,
               (TracingScenario * scenario),
@@ -164,7 +164,7 @@
  public:
   TracingScenarioForTesting(const perfetto::protos::gen::ScenarioConfig& config,
                             TestTracingScenarioDelegate* delegate)
-      : TracingScenario(config, delegate, nullptr) {}
+      : TracingScenario(config, delegate) {}
 
  protected:
   std::unique_ptr<perfetto::TracingSession> CreateTracingSession() override {
@@ -249,13 +249,17 @@
 
   tracing_scenario.Enable();
   EXPECT_EQ(TracingScenario::State::kEnabled, tracing_scenario.current_state());
-  EXPECT_CALL(delegate, OnScenarioActive(&tracing_scenario)).Times(1);
+  EXPECT_CALL(delegate, OnScenarioActive(&tracing_scenario))
+      .WillOnce(testing::Return(true));
   EXPECT_TRUE(content::BackgroundTracingManager::GetInstance().EmitNamedTrigger(
       "start_trigger"));
 
   base::RunLoop run_loop;
   EXPECT_CALL(delegate, OnScenarioIdle(&tracing_scenario))
-      .WillOnce(base::test::RunOnceClosure(run_loop.QuitClosure()));
+      .WillOnce([&run_loop]() {
+        run_loop.Quit();
+        return true;
+      });
 
   EXPECT_TRUE(content::BackgroundTracingManager::GetInstance().EmitNamedTrigger(
       "stop_trigger"));
@@ -279,13 +283,17 @@
 
   tracing_scenario.Enable();
   EXPECT_EQ(TracingScenario::State::kEnabled, tracing_scenario.current_state());
-  EXPECT_CALL(delegate, OnScenarioActive(&tracing_scenario)).Times(1);
+  EXPECT_CALL(delegate, OnScenarioActive(&tracing_scenario))
+      .WillOnce(testing::Return(true));
   EXPECT_TRUE(content::BackgroundTracingManager::GetInstance().EmitNamedTrigger(
       "start_trigger"));
 
   base::RunLoop run_loop;
   EXPECT_CALL(delegate, OnScenarioIdle(&tracing_scenario))
-      .WillOnce(base::test::RunOnceClosure(run_loop.QuitClosure()));
+      .WillOnce([&run_loop]() {
+        run_loop.Quit();
+        return true;
+      });
 
   run_loop.Run();
   EXPECT_EQ(TracingScenario::State::kDisabled,
@@ -310,13 +318,17 @@
 
   tracing_scenario.Enable();
   EXPECT_EQ(TracingScenario::State::kEnabled, tracing_scenario.current_state());
-  EXPECT_CALL(delegate, OnScenarioActive(&tracing_scenario)).Times(1);
+  EXPECT_CALL(delegate, OnScenarioActive(&tracing_scenario))
+      .WillOnce(testing::Return(true));
   EXPECT_TRUE(content::BackgroundTracingManager::GetInstance().EmitNamedTrigger(
       "start_trigger"));
 
   base::RunLoop run_loop;
   EXPECT_CALL(delegate, OnScenarioIdle(&tracing_scenario))
-      .WillOnce(base::test::RunOnceClosure(run_loop.QuitClosure()));
+      .WillOnce([&run_loop]() {
+        run_loop.Quit();
+        return true;
+      });
 
   run_loop.Run();
   EXPECT_EQ(TracingScenario::State::kDisabled,
@@ -331,14 +343,18 @@
       ParseScenarioConfigFromText(kDefaultConfig), &delegate);
 
   tracing_scenario.Enable();
-  EXPECT_CALL(delegate, OnScenarioActive(&tracing_scenario)).Times(1);
+  EXPECT_CALL(delegate, OnScenarioActive(&tracing_scenario))
+      .WillOnce(testing::Return(true));
   EXPECT_TRUE(content::BackgroundTracingManager::GetInstance().EmitNamedTrigger(
       "setup_trigger"));
   EXPECT_EQ(TracingScenario::State::kSetup, tracing_scenario.current_state());
 
   base::RunLoop run_loop;
   EXPECT_CALL(delegate, OnScenarioIdle(&tracing_scenario))
-      .WillOnce(base::test::RunOnceClosure(run_loop.QuitClosure()));
+      .WillOnce([&run_loop]() {
+        run_loop.Quit();
+        return true;
+      });
 
   EXPECT_TRUE(content::BackgroundTracingManager::GetInstance().EmitNamedTrigger(
       "stop_trigger"));
@@ -352,7 +368,8 @@
       ParseScenarioConfigFromText(kDefaultConfig), &delegate);
 
   tracing_scenario.Enable();
-  EXPECT_CALL(delegate, OnScenarioActive(&tracing_scenario)).Times(1);
+  EXPECT_CALL(delegate, OnScenarioActive(&tracing_scenario))
+      .WillOnce(testing::Return(true));
   EXPECT_TRUE(content::BackgroundTracingManager::GetInstance().EmitNamedTrigger(
       "setup_trigger"));
   EXPECT_EQ(TracingScenario::State::kSetup, tracing_scenario.current_state());
@@ -360,7 +377,10 @@
   base::RunLoop run_loop;
   EXPECT_CALL(delegate, SaveTrace(_, _, _)).Times(0);
   EXPECT_CALL(delegate, OnScenarioIdle(&tracing_scenario))
-      .WillOnce(base::test::RunOnceClosure(run_loop.QuitClosure()));
+      .WillOnce([&run_loop]() {
+        run_loop.Quit();
+        return true;
+      });
 
   EXPECT_TRUE(content::BackgroundTracingManager::GetInstance().EmitNamedTrigger(
       "upload_trigger"));
@@ -374,7 +394,8 @@
       ParseScenarioConfigFromText(kDefaultConfig), &delegate);
 
   tracing_scenario.Enable();
-  EXPECT_CALL(delegate, OnScenarioActive(&tracing_scenario)).Times(1);
+  EXPECT_CALL(delegate, OnScenarioActive(&tracing_scenario))
+      .WillOnce(testing::Return(true));
   EXPECT_TRUE(content::BackgroundTracingManager::GetInstance().EmitNamedTrigger(
       "setup_trigger"));
   EXPECT_EQ(TracingScenario::State::kSetup, tracing_scenario.current_state());
@@ -387,7 +408,10 @@
 
   base::RunLoop run_loop;
   EXPECT_CALL(delegate, OnScenarioIdle(&tracing_scenario))
-      .WillOnce(base::test::RunOnceClosure(run_loop.QuitClosure()));
+      .WillOnce([&run_loop]() {
+        run_loop.Quit();
+        return true;
+      });
 
   EXPECT_TRUE(content::BackgroundTracingManager::GetInstance().EmitNamedTrigger(
       "stop_trigger"));
@@ -401,7 +425,8 @@
       ParseScenarioConfigFromText(kDefaultConfig), &delegate);
 
   tracing_scenario.Enable();
-  EXPECT_CALL(delegate, OnScenarioActive(&tracing_scenario)).Times(1);
+  EXPECT_CALL(delegate, OnScenarioActive(&tracing_scenario))
+      .WillOnce(testing::Return(true));
   EXPECT_TRUE(content::BackgroundTracingManager::GetInstance().EmitNamedTrigger(
       "start_trigger"));
   EXPECT_EQ(TracingScenario::State::kRecording,
@@ -409,7 +434,10 @@
 
   base::RunLoop run_loop;
   EXPECT_CALL(delegate, OnScenarioIdle(&tracing_scenario))
-      .WillOnce(base::test::RunOnceClosure(run_loop.QuitClosure()));
+      .WillOnce([&run_loop]() {
+        run_loop.Quit();
+        return true;
+      });
 
   tracing_scenario.Abort();
   run_loop.Run();
@@ -425,7 +453,8 @@
       ParseScenarioConfigFromText(kDefaultConfig), &delegate);
 
   tracing_scenario.Enable();
-  EXPECT_CALL(delegate, OnScenarioActive(&tracing_scenario)).Times(1);
+  EXPECT_CALL(delegate, OnScenarioActive(&tracing_scenario))
+      .WillOnce(testing::Return(true));
   EXPECT_TRUE(content::BackgroundTracingManager::GetInstance().EmitNamedTrigger(
       "start_trigger"));
 
@@ -433,7 +462,8 @@
   EXPECT_CALL(delegate,
               SaveTrace(&tracing_scenario, _, std::string("this is a trace")))
       .WillOnce(base::test::RunOnceClosure(run_loop.QuitClosure()));
-  EXPECT_CALL(delegate, OnScenarioIdle(&tracing_scenario)).Times(1);
+  EXPECT_CALL(delegate, OnScenarioIdle(&tracing_scenario))
+      .WillOnce(testing::Return(true));
 
   EXPECT_TRUE(content::BackgroundTracingManager::GetInstance().EmitNamedTrigger(
       "upload_trigger"));
@@ -448,7 +478,8 @@
       ParseScenarioConfigFromText(kDefaultConfig), &delegate);
 
   tracing_scenario.Enable();
-  EXPECT_CALL(delegate, OnScenarioActive(&tracing_scenario)).Times(1);
+  EXPECT_CALL(delegate, OnScenarioActive(&tracing_scenario))
+      .WillOnce(testing::Return(true));
   EXPECT_TRUE(content::BackgroundTracingManager::GetInstance().EmitNamedTrigger(
       "start_trigger"));
 
@@ -456,7 +487,8 @@
   EXPECT_CALL(delegate,
               SaveTrace(&tracing_scenario, _, std::string("this is a trace")))
       .WillOnce(base::test::RunOnceClosure(run_loop.QuitClosure()));
-  EXPECT_CALL(delegate, OnScenarioIdle(&tracing_scenario)).Times(1);
+  EXPECT_CALL(delegate, OnScenarioIdle(&tracing_scenario))
+      .WillOnce(testing::Return(true));
 
   EXPECT_TRUE(content::BackgroundTracingManager::GetInstance().EmitNamedTrigger(
       "stop_trigger"));
diff --git a/content/public/android/java/src/org/chromium/content/browser/selection/SelectActionMenuHelper.java b/content/public/android/java/src/org/chromium/content/browser/selection/SelectActionMenuHelper.java
index 43b1619..22ba084 100644
--- a/content/public/android/java/src/org/chromium/content/browser/selection/SelectActionMenuHelper.java
+++ b/content/public/android/java/src/org/chromium/content/browser/selection/SelectActionMenuHelper.java
@@ -8,6 +8,7 @@
 import android.app.RemoteAction;
 import android.content.Context;
 import android.content.Intent;
+import android.content.pm.PackageManager;
 import android.content.pm.ResolveInfo;
 import android.graphics.drawable.Drawable;
 import android.os.Build;
@@ -275,15 +276,18 @@
         SelectionMenuGroup textProcessingItems =
                 new SelectionMenuGroup(R.id.select_action_menu_text_processing_items,
                         GroupItemOrder.TEXT_PROCESSING_ITEMS);
+        final PackageManager packageManager = context.getPackageManager();
         for (int i = 0; i < supportedActivities.size(); i++) {
             ResolveInfo resolveInfo = supportedActivities.get(i);
             if (resolveInfo.activityInfo == null || !resolveInfo.activityInfo.exported) continue;
-            CharSequence title = resolveInfo.loadLabel(context.getPackageManager());
+            CharSequence title = resolveInfo.loadLabel(packageManager);
+            Drawable icon = resolveInfo.loadIcon(packageManager);
             Intent intent = createProcessTextIntentForResolveInfo(resolveInfo, isSelectionReadOnly);
             View.OnClickListener listener = v -> intentHandler.handleIntent(intent);
             textProcessingItems.addItem(
                     new SelectionMenuItem.Builder(title)
                             .setId(Menu.NONE)
+                            .setIcon(icon)
                             .setOrderInCategory(i)
                             .setShowAsActionFlags(MenuItem.SHOW_AS_ACTION_IF_ROOM)
                             .setClickListener(listener)
diff --git a/content/public/browser/content_browser_client.h b/content/public/browser/content_browser_client.h
index 049ab9f..fb6b64a 100644
--- a/content/public/browser/content_browser_client.h
+++ b/content/public/browser/content_browser_client.h
@@ -2626,6 +2626,10 @@
   // "Cache-control: no-store" header in BFCache.
   virtual bool ShouldAllowBackForwardCacheForCacheControlNoStorePage(
       content::BrowserContext* browser_context);
+
+  // Set whether the browser is running in minimal mode (where most subsystems
+  // are left uninitialized).
+  virtual void SetIsMinimalMode(bool minimal) {}
 };
 
 }  // namespace content
diff --git a/content/public/browser/tracing_delegate.cc b/content/public/browser/tracing_delegate.cc
index f8c81ca..a8a6a1f 100644
--- a/content/public/browser/tracing_delegate.cc
+++ b/content/public/browser/tracing_delegate.cc
@@ -9,17 +9,11 @@
 
 namespace content {
 
-bool TracingDelegate::IsAllowedToBeginBackgroundScenario(
-    const std::string& scenario_name,
-    bool requires_anonymized_data,
-    bool is_crash_scenario) {
+bool TracingDelegate::OnBackgroundTracingActive(bool requires_anonymized_data) {
   return false;
 }
 
-bool TracingDelegate::IsAllowedToEndBackgroundScenario(
-    const std::string& scenario_name,
-    bool requires_anonymized_data,
-    bool is_crash_scenario) {
+bool TracingDelegate::OnBackgroundTracingIdle(bool requires_anonymized_data) {
   return false;
 }
 
diff --git a/content/public/browser/tracing_delegate.h b/content/public/browser/tracing_delegate.h
index 8dd4f0c..d59b338 100644
--- a/content/public/browser/tracing_delegate.h
+++ b/content/public/browser/tracing_delegate.h
@@ -18,16 +18,12 @@
  public:
   virtual ~TracingDelegate() = default;
 
-  // This can be used to veto a particular background tracing scenario.
-  virtual bool IsAllowedToBeginBackgroundScenario(
-      const std::string& scenario_name,
-      bool requires_anonymized_data,
-      bool is_crash_scenario);
-
-  virtual bool IsAllowedToEndBackgroundScenario(
-      const std::string& scenario_name,
-      bool requires_anonymized_data,
-      bool is_crash_scenario);
+  // Notifies that background tracing became active and a tracing session
+  // started. Returns true if the tracing session is allowed to begin.
+  virtual bool OnBackgroundTracingActive(bool requires_anonymized_data);
+  // Notifies that a tracing session stopped and background tracing became idle
+  // again. Returns true if the tracing session is allowed finalize.
+  virtual bool OnBackgroundTracingIdle(bool requires_anonymized_data);
 
   // Specifies whether traces that aren't uploaded should still be saved.
   virtual bool ShouldSaveUnuploadedTrace() const;
diff --git a/content/public/common/content_features.cc b/content/public/common/content_features.cc
index 46fe2390..1fcb363 100644
--- a/content/public/common/content_features.cc
+++ b/content/public/common/content_features.cc
@@ -153,6 +153,10 @@
              "CacheControlNoStoreEnterBackForwardCache",
              base::FEATURE_DISABLED_BY_DEFAULT);
 
+BASE_FEATURE(kCdmStorageDatabase,
+             "CdmStorageDatabase",
+             base::FEATURE_DISABLED_BY_DEFAULT);
+
 // Clear the window.name property for the top-level cross-site navigations that
 // swap BrowsingContextGroups(BrowsingInstances).
 BASE_FEATURE(kClearCrossSiteCrossBrowsingContextGroupWindowName,
diff --git a/content/public/common/content_features.h b/content/public/common/content_features.h
index c19e008..df616bb 100644
--- a/content/public/common/content_features.h
+++ b/content/public/common/content_features.h
@@ -45,6 +45,7 @@
     kBrokerFileOperationsOnDiskCacheInNetworkService);
 CONTENT_EXPORT BASE_DECLARE_FEATURE(kBrowserVerifiedUserActivationMouse);
 CONTENT_EXPORT BASE_DECLARE_FEATURE(kCacheControlNoStoreEnterBackForwardCache);
+CONTENT_EXPORT BASE_DECLARE_FEATURE(kCdmStorageDatabase);
 CONTENT_EXPORT BASE_DECLARE_FEATURE(
     kClearCrossSiteCrossBrowsingContextGroupWindowName);
 CONTENT_EXPORT BASE_DECLARE_FEATURE(kCompositeBGColorAnimation);
diff --git a/content/public/test/browser_test_base.cc b/content/public/test/browser_test_base.cc
index 90ec45a..558e3f3 100644
--- a/content/public/test/browser_test_base.cc
+++ b/content/public/test/browser_test_base.cc
@@ -411,10 +411,12 @@
   if (command_line->HasSwitch("enable-gpu"))
     use_software_gl = false;
 
-#if BUILDFLAG(IS_MAC)
-  // On Mac we always use hardware GL.
+#if BUILDFLAG(IS_APPLE)
+  // On Apple we always use hardware GL.
   use_software_gl = false;
+#endif
 
+#if BUILDFLAG(IS_MAC)
   // Expand the network service sandbox to allow reading the test TLS
   // certificates.
   SetNetworkTestCertsDirectoryForTesting(net::GetTestCertsDirectory());
diff --git a/content/renderer/pepper/pepper_media_stream_video_track_host.cc b/content/renderer/pepper/pepper_media_stream_video_track_host.cc
index 4f93012..d7c77dbf 100644
--- a/content/renderer/pepper/pepper_media_stream_video_track_host.cc
+++ b/content/renderer/pepper/pepper_media_stream_video_track_host.cc
@@ -433,7 +433,8 @@
   void StartSourceImpl(
       blink::VideoCaptureDeliverFrameCB frame_callback,
       blink::EncodedVideoFrameCB encoded_frame_callback,
-      blink::VideoCaptureCropVersionCB crop_version_callback) final {
+      blink::VideoCaptureCropVersionCB crop_version_callback,
+      blink::VideoCaptureNotifyFrameDroppedCB frame_dropped_callback) final {
     if (host_) {
       host_->frame_deliverer_ =
           new FrameDeliverer(video_task_runner(), std::move(frame_callback));
diff --git a/content/renderer/pepper/pepper_platform_video_capture.cc b/content/renderer/pepper/pepper_platform_video_capture.cc
index 935fc53..c30dd91f 100644
--- a/content/renderer/pepper/pepper_platform_video_capture.cc
+++ b/content/renderer/pepper/pepper_platform_video_capture.cc
@@ -54,7 +54,8 @@
       base::BindPostTaskToCurrentDefault(
           base::BindRepeating(&PepperPlatformVideoCapture::OnFrameReady,
                               weak_factory_.GetWeakPtr())),
-      /*crop_version_cb=*/base::DoNothing());
+      /*crop_version_cb=*/base::DoNothing(),
+      /*frame_dropped_cb=*/base::DoNothing());
 }
 
 void PepperPlatformVideoCapture::StopCapture() {
diff --git a/content/services/auction_worklet/auction_v8_devtools_agent.cc b/content/services/auction_worklet/auction_v8_devtools_agent.cc
index 76edab3..7be36fe 100644
--- a/content/services/auction_worklet/auction_v8_devtools_agent.cc
+++ b/content/services/auction_worklet/auction_v8_devtools_agent.cc
@@ -8,6 +8,7 @@
 #include <stdint.h>
 
 #include "base/memory/ptr_util.h"
+#include "base/memory/scoped_refptr.h"
 #include "base/memory/weak_ptr.h"
 #include "base/notreached.h"
 #include "base/task/sequenced_task_runner.h"
@@ -22,11 +23,11 @@
 
 AuctionV8DevToolsAgent::AuctionV8DevToolsAgent(
     AuctionV8Helper* v8_helper,
-    DebugCommandQueue* debug_command_queue,
+    scoped_refptr<DebugCommandQueue> debug_command_queue,
     scoped_refptr<base::SequencedTaskRunner> io_session_receiver_sequence)
     : v8_helper_(v8_helper),
       io_session_receiver_sequence_(std::move(io_session_receiver_sequence)),
-      debug_command_queue_(debug_command_queue) {}
+      debug_command_queue_(debug_command_queue.get()) {}
 
 AuctionV8DevToolsAgent::~AuctionV8DevToolsAgent() {
   DCHECK_CALLED_ON_VALID_SEQUENCE(v8_sequence_checker_);
@@ -81,10 +82,11 @@
           // `sessions_` guarantees `session_impl` won't outlast `this`.
           base::Unretained(this));
   auto session_impl = std::make_unique<AuctionV8DevToolsSession>(
-      v8_helper_, debug_command_queue_, context_group_id, session_id,
-      client_expects_binary_responses, session_waits_for_debugger,
-      std::move(host), io_session_receiver_sequence_,
-      std::move(io_session_receiver), std::move(session_destroyed));
+      v8_helper_, scoped_refptr<DebugCommandQueue>(debug_command_queue_),
+      context_group_id, session_id, client_expects_binary_responses,
+      session_waits_for_debugger, std::move(host),
+      io_session_receiver_sequence_, std::move(io_session_receiver),
+      std::move(session_destroyed));
   context_group_info.sessions.insert(session_impl.get());
   sessions_.Add(std::move(session_impl), std::move(session_receiver));
 }
diff --git a/content/services/auction_worklet/auction_v8_devtools_agent.h b/content/services/auction_worklet/auction_v8_devtools_agent.h
index 8cc904b3..620e806 100644
--- a/content/services/auction_worklet/auction_v8_devtools_agent.h
+++ b/content/services/auction_worklet/auction_v8_devtools_agent.h
@@ -62,7 +62,7 @@
   // and handle a Mojo connection.
   AuctionV8DevToolsAgent(
       AuctionV8Helper* v8_helper,
-      DebugCommandQueue* debug_command_queue,
+      scoped_refptr<DebugCommandQueue> debug_command_queue,
       scoped_refptr<base::SequencedTaskRunner> io_session_receiver_sequence);
   AuctionV8DevToolsAgent(const AuctionV8DevToolsAgent&) = delete;
   AuctionV8DevToolsAgent& operator=(const AuctionV8DevToolsAgent&) = delete;
diff --git a/content/services/auction_worklet/auction_v8_devtools_session.cc b/content/services/auction_worklet/auction_v8_devtools_session.cc
index 9ab932a..d7b9fa3 100644
--- a/content/services/auction_worklet/auction_v8_devtools_session.cc
+++ b/content/services/auction_worklet/auction_v8_devtools_session.cc
@@ -12,6 +12,7 @@
 
 #include "base/memory/ptr_util.h"
 #include "base/memory/raw_ptr.h"
+#include "base/memory/scoped_refptr.h"
 #include "base/memory/weak_ptr.h"
 #include "base/notreached.h"
 #include "base/sequence_checker.h"
@@ -105,10 +106,10 @@
   static void Create(
       mojo::PendingReceiver<blink::mojom::DevToolsSession> io_session_receiver,
       scoped_refptr<base::SequencedTaskRunner> io_session_receiver_sequence,
-      DebugCommandQueue* debug_command_queue,
+      scoped_refptr<DebugCommandQueue> debug_command_queue,
       RunDispatch v8_thread_dispatch) {
-    auto instance = base::WrapUnique(
-        new IOSession(debug_command_queue, std::move(v8_thread_dispatch)));
+    auto instance = base::WrapUnique(new IOSession(
+        std::move(debug_command_queue), std::move(v8_thread_dispatch)));
     io_session_receiver_sequence->PostTask(
         FROM_HERE,
         base::BindOnce(&IOSession::ConnectReceiver, std::move(instance),
@@ -129,9 +130,9 @@
   }
 
  private:
-  IOSession(DebugCommandQueue* debug_command_queue,
+  IOSession(scoped_refptr<DebugCommandQueue> debug_command_queue,
             RunDispatch v8_thread_dispatch)
-      : debug_command_queue_(debug_command_queue),
+      : debug_command_queue_(std::move(debug_command_queue)),
         v8_thread_dispatch_(v8_thread_dispatch) {
     DETACH_FROM_SEQUENCE(io_session_receiver_sequence_checker_);
   }
@@ -146,8 +147,7 @@
                                 std::move(io_session_receiver));
   }
 
-  const raw_ptr<DebugCommandQueue, AcrossTasksDanglingUntriaged>
-      debug_command_queue_;
+  const scoped_refptr<DebugCommandQueue> debug_command_queue_;
   RunDispatch v8_thread_dispatch_;
 
   SEQUENCE_CHECKER(io_session_receiver_sequence_checker_);
@@ -155,7 +155,7 @@
 
 AuctionV8DevToolsSession::AuctionV8DevToolsSession(
     AuctionV8Helper* v8_helper,
-    DebugCommandQueue* debug_command_queue,
+    scoped_refptr<DebugCommandQueue> debug_command_queue,
     int context_group_id,
     const std::string& session_id,
     bool client_expects_binary_responses,
@@ -165,7 +165,7 @@
     mojo::PendingReceiver<blink::mojom::DevToolsSession> io_session_receiver,
     SessionDestroyedCallback on_delete_callback)
     : v8_helper_(v8_helper),
-      debug_command_queue_(debug_command_queue),
+      debug_command_queue_(debug_command_queue.get()),
       context_group_id_(context_group_id),
       session_id_(session_id),
       client_expects_binary_responses_(client_expects_binary_responses),
@@ -180,7 +180,7 @@
           : v8_inspector::V8Inspector::kNotWaitingForDebugger);
   IOSession::Create(
       std::move(io_session_receiver), std::move(io_session_receiver_sequence),
-      debug_command_queue_,
+      std::move(debug_command_queue),
       base::BindRepeating(
           &AuctionV8DevToolsSession::DispatchProtocolCommandFromIO,
           weak_ptr_factory_.GetWeakPtr()));
diff --git a/content/services/auction_worklet/auction_v8_devtools_session.h b/content/services/auction_worklet/auction_v8_devtools_session.h
index 59799b40..0121d7ac 100644
--- a/content/services/auction_worklet/auction_v8_devtools_session.h
+++ b/content/services/auction_worklet/auction_v8_devtools_session.h
@@ -41,6 +41,8 @@
   // identified with `context_group_id`, sending responses` and notifications
   // back via `host`.
   //
+  // Assumes `v8_helper` will own `this` and `debug_command_queue` both.
+  //
   // The actual mojo pipe for the DevToolsSession itself is expected to be
   // connected externally.
   //
@@ -52,7 +54,7 @@
   //
   AuctionV8DevToolsSession(
       AuctionV8Helper* v8_helper,
-      DebugCommandQueue* debug_command_queue,
+      scoped_refptr<DebugCommandQueue> debug_command_queue,
       int context_group_id,
       const std::string& session_id,
       bool client_expects_binary_responses,
diff --git a/content/services/auction_worklet/auction_v8_helper.cc b/content/services/auction_worklet/auction_v8_helper.cc
index ab0fd7c..103373f 100644
--- a/content/services/auction_worklet/auction_v8_helper.cc
+++ b/content/services/auction_worklet/auction_v8_helper.cc
@@ -14,6 +14,7 @@
 #include "base/location.h"
 #include "base/memory/raw_ptr.h"
 #include "base/memory/ref_counted.h"
+#include "base/memory/scoped_refptr.h"
 #include "base/memory/weak_ptr.h"
 #include "base/notreached.h"
 #include "base/strings/strcat.h"
@@ -806,7 +807,7 @@
   DCHECK_CALLED_ON_VALID_SEQUENCE(sequence_checker_);
   if (!devtools_agent_) {
     devtools_agent_ = std::make_unique<AuctionV8DevToolsAgent>(
-        this, debug_command_queue_.get(), std::move(mojo_sequence));
+        this, debug_command_queue_, std::move(mojo_sequence));
     v8_inspector_ =
         v8_inspector::V8Inspector::create(isolate(), devtools_agent_.get());
   }
diff --git a/content/services/auction_worklet/debug_command_queue.h b/content/services/auction_worklet/debug_command_queue.h
index a161f0e9..5661808 100644
--- a/content/services/auction_worklet/debug_command_queue.h
+++ b/content/services/auction_worklet/debug_command_queue.h
@@ -21,9 +21,9 @@
 
 // DebugCommandQueue helps coordinate command transfer between Session (lives on
 // V8 thread) and IOSession (lives on mojo thread), as well as blocking
-// execution of V8 thread when paused in debugger. It's owned by the
-// AuctionV8Helper (but may extend its own lifetime a bit to keep callbacks
-// safe).
+// execution of V8 thread when paused in debugger. It's jointly owned by the
+// AuctionV8Helper and IOSession, and may extend its own lifetime a bit to keep
+// callbacks safe.
 class CONTENT_EXPORT DebugCommandQueue
     : public base::RefCountedThreadSafe<DebugCommandQueue> {
  public:
diff --git a/infra/config/lib/builder_config.star b/infra/config/lib/builder_config.star
index 0fc6861..8a05728b 100644
--- a/infra/config/lib/builder_config.star
+++ b/infra/config/lib/builder_config.star
@@ -8,6 +8,7 @@
 load("@stdlib//internal/luci/common.star", "keys", "kinds", "triggerer")
 load("./args.star", "args")
 load("./builder_url.star", "linkify_builder")
+load("./sheriff_rotations.star", "get_sheriff_rotations")
 load("./chrome_settings.star", "per_builder_outputs_config")
 load("./nodes.star", "nodes")
 load("./structs.star", "structs")
@@ -736,6 +737,41 @@
 
             builder.description_html = _get_builder_mirror_description(bucket_name, builder, bc_state)
 
+            rotations = get_sheriff_rotations(bucket_name, builder.name)
+            excluded_groups = [
+                # Most/all the clang bots build using clang built from HEAD.
+                # Failures on them hopefully/rarely lead to reverts of random
+                # CLs on the Chromium-side. So trybots for these aren't as
+                # critical.
+                "chromium.clang",
+            ]
+            excluded_builders = [
+                # TODO(crbug.com/1485734): Remove the Samsung builders.
+                "Android FYI Release (Samsung A13)",
+                "Android FYI Release (Samsung A23)",
+
+                # TODO(crbug.com/1486140): Remove when skylab bots are fixed.
+                "lacros-amd64-generic-rel-skylab",
+                "lacros-arm-generic-rel-skylab",
+                "lacros-arm64-generic-rel-skylab",
+
+                # TODO(crbug.com/1484233): Remove the following as trybots are
+                # created for them.
+                "android-arm64-archive-rel",
+                "lacros-arm-archive-rel",
+                "lacros64-archive-rel",
+                "linux-chromeos-archive-rel",
+                "mac-arm64-dbg",
+
+                # These might be permanent exclusions since they do some
+                # perf things. See discussion on crrev.com/c/4884490.
+                "GPU FYI XR Win x64 Builder",
+                "Win10 FYI x64 Release XR Perf (NVIDIA)",
+            ]
+            is_excluded = builder.name in excluded_builders or node.props.builder_group in excluded_groups
+            if rotations and not mirroring_builders and not is_excluded:
+                fail("{} is on a sheriff/gardener rotation, but lacks a matching trybot".format(builder.name))
+
 lucicfg.generator(_set_builder_config_property)
 
 # Capture the details of working with the graph in methods that use caching so
diff --git a/infra/config/lib/sheriff_rotations.star b/infra/config/lib/sheriff_rotations.star
index ab229f8..e886948 100644
--- a/infra/config/lib/sheriff_rotations.star
+++ b/infra/config/lib/sheriff_rotations.star
@@ -22,12 +22,22 @@
         sheriff_rotations: A list of the names of sheriff rotations the builder
             is a part of.
     """
+    if sheriff_rotations and bucket != "ci":
+        # Note: if this restriction is relaxed, then the mirroring enforcements
+        # in builder_config.star may need updating.
+        fail("Builder must be in bucket 'ci' to be on a rotation:", builder)
     sheriffed_builder_key = _SHERIFFED_BUILDER.add(bucket, builder)
     for s in sheriff_rotations:
         sheriff_rotation_key = _SHERIFF_ROTATION.add(s, idempotent = True)
         graph.add_edge(sheriff_rotation_key, sheriffed_builder_key)
         graph.add_edge(keys.project(), sheriff_rotation_key)
 
+def get_sheriff_rotations(bucket, builder):
+    sheriffed_builder = _SHERIFFED_BUILDER.get(bucket, builder)
+    if sheriffed_builder:
+        return graph.parents(sheriffed_builder.key)
+    return []
+
 def _generate_sheriff_rotations_files(ctx):
     if not settings.is_main:
         return
diff --git a/ios/chrome/app/spotlight/bookmarks_spotlight_manager.mm b/ios/chrome/app/spotlight/bookmarks_spotlight_manager.mm
index db6b8658..3cc2e48 100644
--- a/ios/chrome/app/spotlight/bookmarks_spotlight_manager.mm
+++ b/ios/chrome/app/spotlight/bookmarks_spotlight_manager.mm
@@ -36,6 +36,9 @@
 // Called from the BrowserBookmarkModelBridge from C++ -> ObjC.
 @interface BookmarksSpotlightManager ()
 
+// Set at shutdown. Will not continue indexing when set.
+@property(nonatomic, assign) BOOL isShuttingDown;
+
 // Detaches the `SpotlightBookmarkModelBridge` from the bookmark model. The
 // manager must not be used after calling this method.
 - (void)detachBookmarkModel;
@@ -271,6 +274,9 @@
 }
 
 - (void)reindexBookmarksIfNeeded {
+  if (self.isShuttingDown) {
+    return;
+  }
   if (!_bookmarkModel->loaded() || _initialIndexDone) {
     return;
   }
@@ -284,6 +290,10 @@
 // multiple nodes with same URL and title, they will be merged into a single
 // spotlight item but will have tags from each of the bookmrk nodes.
 - (void)refreshItemWithURL:(const GURL&)URL title:(NSString*)title {
+  if (self.isShuttingDown) {
+    return;
+  }
+
   std::vector<const bookmarks::BookmarkNode*> nodesMatchingURL =
       _bookmarkModel->GetNodesByURL(URL);
 
@@ -324,6 +334,9 @@
 }
 
 - (void)refreshNodeInIndex:(const bookmarks::BookmarkNode*)node {
+  if (self.isShuttingDown) {
+    return;
+  }
   if (_nodesIndexed > kMaxInitialIndexSize) {
     return;
   }
@@ -338,6 +351,8 @@
 }
 
 - (void)shutdown {
+  self.isShuttingDown = YES;
+  [self.searchableItemFactory cancelItemsGeneration];
   [self detachBookmarkModel];
 }
 
@@ -357,6 +372,10 @@
 }
 
 - (void)completedClearAllSpotlightItems {
+  if (self.isShuttingDown) {
+    return;
+  }
+
   // If this method is called before bookmark model loaded, or after it
   // unloaded, reindexing won't be possible. The latter should happen at
   // shutdown, so the reindex can't happen until next app start. In the former
diff --git a/ios/chrome/app/strings/ios_strings.grd b/ios/chrome/app/strings/ios_strings.grd
index 1c883cc..1a48d1e 100644
--- a/ios/chrome/app/strings/ios_strings.grd
+++ b/ios/chrome/app/strings/ios_strings.grd
@@ -3126,6 +3126,12 @@
       <message name="IDS_IOS_PASSWORD_SHARING_FETCHING_RECIPIENTS_LABEL" desc="Text describing what is happening at the beginning of the password sharing flow. [iOS only]">
         Checking your family members…
       </message>
+      <message name="IDS_IOS_PASSWORD_SHARING_FIRST_RUN_TITLE" desc="Title text describing the password sharing feature displayed in the first run experience view. [iOS only]">
+        Share a Copy of Your Password
+      </message>
+      <message name="IDS_IOS_PASSWORD_SHARING_FIRST_RUN_SUBTITLE" desc="Subtitle text describing the password sharing feature displayed in the first run experience view. [iOS only]">
+        You can securely share a copy of your password with someone in your family group. <ph name="BEGIN_LINK">BEGIN_LINK</ph>Learn more<ph name="END_LINK">END_LINK</ph>
+      </message>
       <message name="IDS_IOS_PASSWORD_SHARING_PASSWORD_PICKER_NEXT_BUTTON" desc="Button text for the confirm action in the password picker view in the password sharing flow. [iOS only]">
         Next
       </message>
diff --git a/ios/chrome/app/strings/ios_strings_grd/IDS_IOS_PASSWORD_SHARING_FIRST_RUN_SUBTITLE.png.sha1 b/ios/chrome/app/strings/ios_strings_grd/IDS_IOS_PASSWORD_SHARING_FIRST_RUN_SUBTITLE.png.sha1
new file mode 100644
index 0000000..7135ded
--- /dev/null
+++ b/ios/chrome/app/strings/ios_strings_grd/IDS_IOS_PASSWORD_SHARING_FIRST_RUN_SUBTITLE.png.sha1
@@ -0,0 +1 @@
+b41a091450663d97bd4b0322c4ee6ddcc13c7e33
\ No newline at end of file
diff --git a/ios/chrome/app/strings/ios_strings_grd/IDS_IOS_PASSWORD_SHARING_FIRST_RUN_TITLE.png.sha1 b/ios/chrome/app/strings/ios_strings_grd/IDS_IOS_PASSWORD_SHARING_FIRST_RUN_TITLE.png.sha1
new file mode 100644
index 0000000..7135ded
--- /dev/null
+++ b/ios/chrome/app/strings/ios_strings_grd/IDS_IOS_PASSWORD_SHARING_FIRST_RUN_TITLE.png.sha1
@@ -0,0 +1 @@
+b41a091450663d97bd4b0322c4ee6ddcc13c7e33
\ No newline at end of file
diff --git a/ios/chrome/app/strings/resources/ios_chromium_strings_af.xtb b/ios/chrome/app/strings/resources/ios_chromium_strings_af.xtb
index 76bdbfc..59d8d64 100644
--- a/ios/chrome/app/strings/resources/ios_chromium_strings_af.xtb
+++ b/ios/chrome/app/strings/resources/ios_chromium_strings_af.xtb
@@ -66,7 +66,6 @@
 <translation id="3567399274263440288">Meld met jou Google-rekening aan om die meeste voordeel uit Chromium te trek.</translation>
 <translation id="3639997914391704523">Chromium kan jou wagwoorde nagaan as jy met jou Google-rekening aanmeld.</translation>
 <translation id="3650632991272923014"><ph name="USER_EMAIL1" /> het Chromium gebruik en het boekmerke, wagwoorde en ander instellings op hierdie toestel gelos.</translation>
-<translation id="3661862315467204831">Maak Chromium-instellings in iOS oop, en tik dan op “Blaaierverstekapp” en kies Chromium.</translation>
 <translation id="372658070733623520">Verifieer dis jy om Chromium-data in jou Google-rekening te gebruik en te stoor.</translation>
 <translation id="3780779443901618967">Waarsku jou oor gevaarlike werwe – selfs werwe waarvan Google nie voorheen geweet het nie – deur meer data van werwe te ontleed as standaardbeskerming. Jy kan kies om Chromium-waarskuwings oor te slaan.</translation>
 <translation id="3784369638459513223">Maak ’n nuwe Incognito-oortjie op Chromium oop.</translation>
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 75931d60..3bb4030 100644
--- a/ios/chrome/app/strings/resources/ios_chromium_strings_am.xtb
+++ b/ios/chrome/app/strings/resources/ios_chromium_strings_am.xtb
@@ -65,7 +65,6 @@
 <translation id="3567399274263440288">ከChromium የበለጠ ለማግኘት በGoogle መለያዎ ወደ Chromium ይግቡ።</translation>
 <translation id="3639997914391704523">Chromium በእርስዎ የGoogle መለያ በሚገቡበት ጊዜ የእርስዎን የይለፍ ቃላትን ሊፈትሽ ይችላል።</translation>
 <translation id="3650632991272923014"><ph name="USER_EMAIL1" /> በዚህ መሣሪያ ላይ Chromiumን እና ግራ ዕልባቶችን፣ የይለፍ ቃላትን እና ሌሎች ቅንብሮችን እየተጠቀመ ነበር።</translation>
-<translation id="3661862315467204831">በiOS ውስጥ የChromium ቅንብሮችን ይክፈቱ ከዚያ «አሳሸ ነባሪ ኤፒፒ» ላይ መታ ይድርጉ እና Chromiumን ይምረጡ።</translation>
 <translation id="372658070733623520">በGoogle መለያዎ ውስጥ የChromium ውሂብን ለመጠቀም እና ለማስቀመጥ እርስዎ መሆንዎን ያረጋግጡ።</translation>
 <translation id="3780779443901618967">ከመደበኛ ጥበቃ በላይ ተጨማሪ ውሂብ ከጣቢያዎች ትንታኔ በመስጠት Google እንኳን በፊት ስላላወቃቸው አደገኛ ጣቢያዎች ያስጠነቅቅዎታል። የChromium ማስጠንቀቂያዎችን ለመዝለል መምረጥ ይችላሉ።</translation>
 <translation id="3784369638459513223">አዲስ የChromium ማንነት የማያሳውቅ ትር ይከፍታል።</translation>
diff --git a/ios/chrome/app/strings/resources/ios_chromium_strings_ar.xtb b/ios/chrome/app/strings/resources/ios_chromium_strings_ar.xtb
index 9123669..42b232e 100644
--- a/ios/chrome/app/strings/resources/ios_chromium_strings_ar.xtb
+++ b/ios/chrome/app/strings/resources/ios_chromium_strings_ar.xtb
@@ -66,7 +66,6 @@
 <translation id="3567399274263440288">‏للاستفادة إلى أقصى حدّ من Chromium، سجِّل الدخول إلى Chromium باستخدام حسابك على Google.</translation>
 <translation id="3639997914391704523">‏يجب تسجيل الدخول إلى حسابك على Google ليتمكّن Chromium من التحقُّق من كلمات المرور.</translation>
 <translation id="3650632991272923014">‏كان <ph name="USER_EMAIL1" /> يستخدم Chromium وتركَ إشارات مرجعية وكلمات مرور وغيرها من الإعدادات مُسجَّلة على هذا الجهاز.</translation>
-<translation id="3661862315467204831">‏افتح إعدادات Chromium في نظام التشغيل iOS، ثم انقر على Default Browser App (تطبيق المتصفِّح التلقائي) واختَر Chromium.</translation>
 <translation id="372658070733623520">‏عليك إثبات هويتك لاستخدام بيانات Chromium وحفظها في حسابك على Google.</translation>
 <translation id="3780779443901618967">‏ستتلقّى تحذيرات بشأن المواقع الإلكترونية الخطيرة، بما فيها المواقع التي لم يتعرّف عليها محرك البحث Google من قَبل، من خلال تحليل بيانات من المواقع الإلكترونية أكثر من الحماية العادية. يمكنك اختيار تخطّي تحذيرات Chromium.</translation>
 <translation id="3784369638459513223">‏يؤدي هذا الاختصار إلى فتح علامة تبويب جديدة في وضع التصفُّح المتخفي في Chromium.</translation>
diff --git a/ios/chrome/app/strings/resources/ios_chromium_strings_as.xtb b/ios/chrome/app/strings/resources/ios_chromium_strings_as.xtb
index 38bcf7cb..8762c12 100644
--- a/ios/chrome/app/strings/resources/ios_chromium_strings_as.xtb
+++ b/ios/chrome/app/strings/resources/ios_chromium_strings_as.xtb
@@ -66,7 +66,6 @@
 <translation id="3567399274263440288">Chromium পাৰ্যমানে ব্যৱহাৰ কৰিবলৈ আপোনাৰ Google একাউণ্টটোৰ জৰিয়তে Chromiumত ছাইন ইন কৰক।</translation>
 <translation id="3639997914391704523">আপুনি নিজৰ Google একাউণ্টটোৰ জৰিয়তে ছাইন ইন কৰিলে Chromiumএ আপোনাৰ পাছৱর্ডসমূহ পৰীক্ষা কৰিব পাৰে।</translation>
 <translation id="3650632991272923014"><ph name="USER_EMAIL1" />এ Chromium ব্যৱহাৰ কৰি আছিল আৰু এই ডিভাইচটোত বুকমাৰ্ক, পাছৱৰ্ড আৰু অন্য ছেটিং এৰি গৈছে।</translation>
-<translation id="3661862315467204831">iOSত Chromiumৰ ছেটিং খোলক আৰু তাৰ পাছত "ব্ৰাউজাৰৰ ডিফ’ল্ট এপ"ত টিপক আৰু Chromium বাছনি কৰক।</translation>
 <translation id="372658070733623520">আপোনাৰ Google একাউণ্টত Chromiumৰ ডেটা ব্যৱহাৰ আৰু ছেভ কৰিবলৈ এয়া আপুনিয়েই বুলি সত্যাপন কৰক।</translation>
 <translation id="3780779443901618967">মানক সুৰক্ষাৰ তুলনাত ছাইটসমূহৰ পৰা অধিক ডেটা বিশ্লেষণ কৰি আনকি Googleৰ বাবেও পূৰ্বে অজ্ঞাত বিপজ্জনক ছাইটসমূহৰ বিষয়ে আপোনাক সতৰ্ক কৰি দিয়ে। আপুনি Chromiumৰ সকীয়নি এৰি যোৱাটো বাছনি কৰিব পাৰে।</translation>
 <translation id="3784369638459513223">এটা নতুন 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 9bccfd99..45f0a39 100644
--- a/ios/chrome/app/strings/resources/ios_chromium_strings_az.xtb
+++ b/ios/chrome/app/strings/resources/ios_chromium_strings_az.xtb
@@ -66,7 +66,6 @@
 <translation id="3567399274263440288">Chromium'dan maksimum yararlanmaq üçün Google Hesabınızla Chromium'a daxil olun.</translation>
 <translation id="3639997914391704523">Google Hesabınız ilə daxil olduqda Chromium parollarınızı yoxlaya bilər.</translation>
 <translation id="3650632991272923014"><ph name="USER_EMAIL1" /> bu cihazda Chromium istifadə edirdi və əlfəcinlər, parollar və digər ayarlar qalıb.</translation>
-<translation id="3661862315467204831">iOS-da Chromium ayarlarını açın, sonra "Defolt Brauzer TƏTBİQİ" üzərinə toxunun və Chromium seçin.</translation>
 <translation id="372658070733623520">Google Hesabında Chromium datasını istifadə etmək və saxlamaq üçün kimliyinizi təsdiq edin.</translation>
 <translation id="3780779443901618967">Standart qoruma ilə müqayisədə saytlardan daha çox data təhlil edərək təhlükəli, hətta Google-un bilmədiyi saytlar haqqında xəbərdar edir. Chromium xəbərdarlıqlarını ötürə bilərsiniz.</translation>
 <translation id="3784369638459513223">Yeni anonim Chromium tabı açı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 6703d69..e6382964 100644
--- a/ios/chrome/app/strings/resources/ios_chromium_strings_be.xtb
+++ b/ios/chrome/app/strings/resources/ios_chromium_strings_be.xtb
@@ -66,7 +66,6 @@
 <translation id="3567399274263440288">Каб карыстацца ўсімі магчымасцямі браўзера Chromium, увайдзіце ў яго праз свой Уліковы запіс Google.</translation>
 <translation id="3639997914391704523">Chromium зможа праверыць паролі толькі пасля таго, як вы ўвойдзеце ва Уліковы запіс Google.</translation>
 <translation id="3650632991272923014">Карыстальнік <ph name="USER_EMAIL1" />, папрацаваўшы ў браўзеры Chromium, пакінуў на гэтай прыладзе закладкі, паролі і іншыя налады.</translation>
-<translation id="3661862315467204831">Адкрыйце налады Chromium у iOS, затым націсніце "СТАНДАРТНАЯ ПРАГРАМА браўзера" і выберыце Chromium.</translation>
 <translation id="372658070733623520">Каб выкарыстоўваць і захоўваць даныя Chromium ва Уліковым запісе Google, пацвердзіце сваю асобу.</translation>
 <translation id="3780779443901618967">Папярэджвае пра небяспечныя сайты (нават тыя, пра якія ў Google дагэтуль не было звестак), аналізуючы больш даных з сайтаў, чым аналізуецца пры стандартнай абароне. Папярэджанні браўзера Chromium можна прапускаць.</translation>
 <translation id="3784369638459513223">Адкрывае ў Chromium новую ўкладку ў рэжыме інкогніта.</translation>
diff --git a/ios/chrome/app/strings/resources/ios_chromium_strings_bg.xtb b/ios/chrome/app/strings/resources/ios_chromium_strings_bg.xtb
index 0731e03..b6878608 100644
--- a/ios/chrome/app/strings/resources/ios_chromium_strings_bg.xtb
+++ b/ios/chrome/app/strings/resources/ios_chromium_strings_bg.xtb
@@ -66,7 +66,6 @@
 <translation id="3567399274263440288">За да се възползвате максимално от Chromium, влезте в браузъра с профила си в Google.</translation>
 <translation id="3639997914391704523">Chromium може да проверява паролите ви, когато влизате с профила си в Google.</translation>
 <translation id="3650632991272923014"><ph name="USER_EMAIL1" /> използва Chromium и запази на това устройство отметки, пароли и други настройки.</translation>
-<translation id="3661862315467204831">Отворете настройките на Chromium на устройство с iOS, след което докоснете „Стандартно приложение за браузър“ и изберете Chromium.</translation>
 <translation id="372658070733623520">Потвърдете, че сте вие, за да използвате и запазвате данните от Chromium в профила си в Google.</translation>
 <translation id="3780779443901618967">Предупреждава ви за опасни сайтове, включително такива, които не са били известни на Google, като анализира повече данни от сайтовете в сравнение със стандартната защита. Можете да пропуснете предупрежденията от Chromium.</translation>
 <translation id="3784369638459513223">Отваря нов раздел в 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 3d9fb16..f3230a3a 100644
--- a/ios/chrome/app/strings/resources/ios_chromium_strings_bn.xtb
+++ b/ios/chrome/app/strings/resources/ios_chromium_strings_bn.xtb
@@ -66,7 +66,6 @@
 <translation id="3567399274263440288">Chromium থেকে সবচেয়ে বেশি সুবিধা পেতে, আপনার Google অ্যাকাউন্ট দিয়ে Chromium-এ সাইন-ইন করুন।</translation>
 <translation id="3639997914391704523">আপনি যখন নিজের Google অ্যাকাউন্ট ব্যবহার করে সাইন-ইন করবেন, Chromium তখন আপনার পাসওয়ার্ড চেক করে দেখতে পারে।</translation>
 <translation id="3650632991272923014"><ph name="USER_EMAIL1" /> Chromium ব্যবহার করছিলেন এবং এই ডিভাইসে বুকমার্ক, পাসওয়ার্ড এবং অন্যান্য সেটিংস রয়ে গেছে।</translation>
-<translation id="3661862315467204831">iOS অপারেটিং সিস্টেমে Chromium সেটিংস খুলুন, তারপর "ব্রাউজার ডিফল্ট অ্যাপ" বিকল্পে ট্যাপ করে Chromium বেছে নিন।</translation>
 <translation id="372658070733623520">আপনার Google অ্যাকাউন্টে Chromium ডেটা ব্যবহার এবং সেভ করতে, আপনার পরিচয় যাচাই করুন।</translation>
 <translation id="3780779443901618967">স্ট্যান্ডার্ড সুরক্ষার চেয়ে সাইট থেকে আরও বেশি ডেটা বিশ্লেষণ করার মাধ্যমে Google আপনাকে বিপজ্জনক সাইট সম্পর্কে সতর্ক করে, এমনকি আগে যার সম্পর্কে জানা নেই সেই বিষয়েও সতর্ক করে। আপনি Chromium সম্পর্কিত সতর্কতা এড়িয়ে যাওয়ার বিকল্প বেছে নিতে পারবেন।</translation>
 <translation id="3784369638459513223">নতুন Chromium-এর ছদ্মবেশী ট্যাব খোলে।</translation>
diff --git a/ios/chrome/app/strings/resources/ios_chromium_strings_bs.xtb b/ios/chrome/app/strings/resources/ios_chromium_strings_bs.xtb
index f1f2530e..6d91104 100644
--- a/ios/chrome/app/strings/resources/ios_chromium_strings_bs.xtb
+++ b/ios/chrome/app/strings/resources/ios_chromium_strings_bs.xtb
@@ -66,7 +66,6 @@
 <translation id="3567399274263440288">Da iskoristite sve prednosti Chromiuma, prijavite se na Chromium pomoću Google računa.</translation>
 <translation id="3639997914391704523">Chromium može provjeravati vaše lozinke kada se prijavljujete pomoću Google računa.</translation>
 <translation id="3650632991272923014">Korisnik <ph name="USER_EMAIL1" /> je koristio Chromium i ostavio je oznake, lozinke i ostale postavke na ovom uređaju.</translation>
-<translation id="3661862315467204831">Otvorite Postavke Chromiuma u iOS-u pa dodirnite "Zadani APP za preglednik" i odaberite Chromium.</translation>
 <translation id="372658070733623520">Da koristite i sačuvate podatke Chromiuma na Google računu, potvrdite identitet.</translation>
 <translation id="3780779443901618967">Upozorava vas o opasnim web lokacijama, čak i onim za koje Google nije ranije znao, analizirajući više podataka s web lokacija nego što se analizira standardnom zaštitom. Možete odabrati preskakanje Chromiumovih upozorenja.</translation>
 <translation id="3784369638459513223">Otvara novu anonimnu karticu u Chromiumu.</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 d419e46..d87d13f 100644
--- a/ios/chrome/app/strings/resources/ios_chromium_strings_ca.xtb
+++ b/ios/chrome/app/strings/resources/ios_chromium_strings_ca.xtb
@@ -66,7 +66,6 @@
 <translation id="3567399274263440288">Per treure el màxim profit de Chromium, inicia-hi la sessió amb el teu Compte de Google.</translation>
 <translation id="3639997914391704523">Chromium pot comprovar les teves contrasenyes quan inicies la sessió amb el Compte de Google.</translation>
 <translation id="3650632991272923014"><ph name="USER_EMAIL1" /> ha utilitzat Chromium en aquest dispositiu i hi ha deixat adreces d'interès, contrasenyes i altres opcions de configuració.</translation>
-<translation id="3661862315467204831">Obre la configuració de Chromium a iOS, toca App de navegació per omissió i selecciona Chromium.</translation>
 <translation id="372658070733623520">Per utilitzar i desar les dades de Chromium al teu Compte de Google, verifica la teva identitat.</translation>
 <translation id="3780779443901618967">T'avisa de llocs web perillosos, fins i tot dels que Google no coneixia abans, ja que analitza més dades dels llocs web que la protecció estàndard. Pots optar per ometre els advertiments de Chromium.</translation>
 <translation id="3784369638459513223">Obre una pestanya d'incògnit nova a Chromium.</translation>
diff --git a/ios/chrome/app/strings/resources/ios_chromium_strings_cs.xtb b/ios/chrome/app/strings/resources/ios_chromium_strings_cs.xtb
index a1068f4..3423ce2 100644
--- a/ios/chrome/app/strings/resources/ios_chromium_strings_cs.xtb
+++ b/ios/chrome/app/strings/resources/ios_chromium_strings_cs.xtb
@@ -65,7 +65,6 @@
 <translation id="3567399274263440288">Pokud z prohlížeče Chromium chcete získat maximum, přihlaste se do něj pomocí účtu Google.</translation>
 <translation id="3639997914391704523">Když se přihlásíte pomocí účtu Google, může vám Chromium kontrolovat hesla.</translation>
 <translation id="3650632991272923014">Uživatel <ph name="USER_EMAIL1" /> používal Chromium a ponechal v tomto zařízení záložky, hesla a další nastavení.</translation>
-<translation id="3661862315467204831">V systému iOS otevřete Nastavení prohlížeče Chromium, klepněte na Výchozí prohlížeč a vyberte Chromium.</translation>
 <translation id="372658070733623520">Pokud chcete používat a ukládat data prohlížeče Chromium ve svém účtu Google, ověřte svoji totožnost.</translation>
 <translation id="3780779443901618967">Varuje vás před nebezpečnými weby (včetně těch, o kterých Google dříve nevěděl) tím, že analyzuje více dat z webů než standardní ochrana. Upozornění prohlížeče Chromium můžete přeskočit.</translation>
 <translation id="3784369638459513223">Otevře novou anonymní kartu prohlížeče 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 a1782727..4e56e41 100644
--- a/ios/chrome/app/strings/resources/ios_chromium_strings_cy.xtb
+++ b/ios/chrome/app/strings/resources/ios_chromium_strings_cy.xtb
@@ -66,7 +66,6 @@
 <translation id="3567399274263440288">I gael y gorau o Chromium, mewngofnodwch i Chromium â'ch Cyfrif Google.</translation>
 <translation id="3639997914391704523">Gall Chromium wirio'ch cyfrineiriau pan fyddwch yn mewngofnodi gyda'ch Cyfrif Google.</translation>
 <translation id="3650632991272923014">Roedd <ph name="USER_EMAIL1" /> yn defnyddio Chromium a gadawodd nodau tudalen, cyfrineiriau, a gosodiadau eraill ar y ddyfais hon.</translation>
-<translation id="3661862315467204831">Agorwch y Gosodiadau Chromium yn iOS yna tapiwch "Browser Default APP" a dewiswch Chromium.</translation>
 <translation id="372658070733623520">I ddefnyddio a chadw data Chromium yn eich Cyfrif Google, cadarnhewch mai chi sydd yno.</translation>
 <translation id="3780779443901618967">Yn eich rhybuddio am wefannau peryglus, hyd yn oed rhai nad oedd Google yn gwybod amdanynt o'r blaen, trwy ddadansoddi mwy o ddata o wefannau na diogelwch safonol. Gallwch ddewis hepgor rhybuddion Chromium.</translation>
 <translation id="3784369638459513223">Yn Agor Tab Anhysbys Chromium Newydd.</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 90c918d7..a247b0b8 100644
--- a/ios/chrome/app/strings/resources/ios_chromium_strings_da.xtb
+++ b/ios/chrome/app/strings/resources/ios_chromium_strings_da.xtb
@@ -66,7 +66,6 @@
 <translation id="3567399274263440288">Log ind i Chromium med din Google-konto for at få mest muligt ud af Chromium.</translation>
 <translation id="3639997914391704523">Chromium kan tjekke dine adgangskoder, når du er logget ind med din Google-konto</translation>
 <translation id="3650632991272923014"><ph name="USER_EMAIL1" /> brugte Chromium og gemte bogmærker, adgangskoder og andre indstillinger på denne enhed.</translation>
-<translation id="3661862315467204831">Åbn Chromium-indstillingerne i iOS, tryk på "Standardbrowserapp", og vælg Chromium.</translation>
 <translation id="372658070733623520">Verificer din identitet for at bruge og gemme Chromium-data på din Google-konto.</translation>
 <translation id="3780779443901618967">Advarer dig om skadelige websites – også websites, som Google ikke tidligere har kendt til – ved at analysere flere data fra websites end Standardbeskyttelse. Du kan vælge at springe Chromium-advarsler over.</translation>
 <translation id="3784369638459513223">Åbner en ny inkognitofane i Chromium.</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 dd700af..ccea20e 100644
--- a/ios/chrome/app/strings/resources/ios_chromium_strings_de.xtb
+++ b/ios/chrome/app/strings/resources/ios_chromium_strings_de.xtb
@@ -62,7 +62,6 @@
 <translation id="3567399274263440288">Wenn du Chromium optimal nutzen möchtest, melde dich mit deinem Google-Konto in Chromium an.</translation>
 <translation id="3639997914391704523">Chromium kann deine Passwörter prüfen, wenn du dich mit deinem Google-Konto anmeldest.</translation>
 <translation id="3650632991272923014"><ph name="USER_EMAIL1" /> hat Chromium genutzt und Lesezeichen, Passwörter und andere Einstellungen auf diesem Gerät festgelegt.</translation>
-<translation id="3661862315467204831">Öffne die Chromium-Einstellungen unter iOS, tippe auf „Standard-Browser-App“ und wähle „Chromium“ aus.</translation>
 <translation id="372658070733623520">Bestätige deine Identität, um Chromium-Daten in deinem Google-Konto zu verwenden und zu speichern.</translation>
 <translation id="3780779443901618967">Warnt dich vor schädlichen Websites, auch solchen, die Google vorher nicht bekannt waren, indem mehr Daten von Websites analysiert werden als beim Standardschutz. Du kannst Warnungen von Chromium überspringen.</translation>
 <translation id="3784369638459513223">Dadurch wird ein neuer Chromium-Inkognitotab geöffnet.</translation>
diff --git a/ios/chrome/app/strings/resources/ios_chromium_strings_el.xtb b/ios/chrome/app/strings/resources/ios_chromium_strings_el.xtb
index 1b224cb4..342319e 100644
--- a/ios/chrome/app/strings/resources/ios_chromium_strings_el.xtb
+++ b/ios/chrome/app/strings/resources/ios_chromium_strings_el.xtb
@@ -66,7 +66,6 @@
 <translation id="3567399274263440288">Συνδεθείτε στο Chromium με τον Λογαριασμό σας Google για να το αξιοποιήσετε στο έπακρο.</translation>
 <translation id="3639997914391704523">Το Chromium μπορεί να ελέγξει τους κωδικούς πρόσβασής σας όταν συνδέεστε με τον Λογαριασμό σας Google.</translation>
 <translation id="3650632991272923014">Ο χρήστης <ph name="USER_EMAIL1" /> χρησιμοποίησε το Chrome και οι σελιδοδείκτες, οι κωδικοί πρόσβασης και άλλες ρυθμίσεις του αποθηκεύτηκαν σε αυτήν τη συσκευή.</translation>
-<translation id="3661862315467204831">Ανοίξτε τις ρυθμίσεις του Chromium σε iOS, πατήστε Προεπιλεγμένη εφαρμογή προγράμματος περιήγησης και επιλέξτε το Chromium.</translation>
 <translation id="372658070733623520">Για να χρησιμοποιήσετε και να αποθηκεύσετε δεδομένα Chromium στον Λογαριασμό σας Google, επαληθεύστε την ταυτότητά σας.</translation>
 <translation id="3780779443901618967">Σας προειδοποιεί για επικίνδυνους ιστοτόπους, ακόμα και για όσους δεν γνώριζε η Google στο παρελθόν, αναλύοντας περισσότερα δεδομένα από ιστοτόπους σε σχέση με την βασική προστασία. Μπορείτε να επιλέξετε να παραβλέψετε τις ειδοποιήσεις του Chromium.</translation>
 <translation id="3784369638459513223">Ανοίγει μια νέα καρτέλα ανώνυμης περιήγησης του Chromium.</translation>
diff --git a/ios/chrome/app/strings/resources/ios_chromium_strings_en-GB.xtb b/ios/chrome/app/strings/resources/ios_chromium_strings_en-GB.xtb
index bbf61c2..0d4d0da 100644
--- a/ios/chrome/app/strings/resources/ios_chromium_strings_en-GB.xtb
+++ b/ios/chrome/app/strings/resources/ios_chromium_strings_en-GB.xtb
@@ -66,7 +66,6 @@
 <translation id="3567399274263440288">To get the most out of Chromium, sign in to Chromium with your Google Account.</translation>
 <translation id="3639997914391704523">Chromium can check your passwords when you sign in with your Google Account.</translation>
 <translation id="3650632991272923014"><ph name="USER_EMAIL1" /> was using Chromium and left bookmarks, passwords and other settings on this device.</translation>
-<translation id="3661862315467204831">Open Chromium Settings in iOS, then tap on 'Browser Default APP' and select Chromium.</translation>
 <translation id="372658070733623520">To use and save Chromium data in your Google Account, verify that it's you.</translation>
 <translation id="3780779443901618967">Warns you about dangerous sites, even ones that Google didn't know about before, by analysing more data from sites than standard protection. You can choose to skip Chromium warnings.</translation>
 <translation id="3784369638459513223">Opens a New Chromium Incognito Tab.</translation>
diff --git a/ios/chrome/app/strings/resources/ios_chromium_strings_es-419.xtb b/ios/chrome/app/strings/resources/ios_chromium_strings_es-419.xtb
index 091de98f..17d577a 100644
--- a/ios/chrome/app/strings/resources/ios_chromium_strings_es-419.xtb
+++ b/ios/chrome/app/strings/resources/ios_chromium_strings_es-419.xtb
@@ -66,7 +66,6 @@
 <translation id="3567399274263440288">Para aprovechar Chromium al maximo, accede al navegador con tu Cuenta de Google.</translation>
 <translation id="3639997914391704523">Chromium puede revisar las contraseñas cuando accedes con tu Cuenta de Google.</translation>
 <translation id="3650632991272923014"><ph name="USER_EMAIL1" /> usó Chromium y dejó favoritos, contraseñas y otros parámetros de configuración en este dispositivo.</translation>
-<translation id="3661862315467204831">Abre la Configuración de Chromium en iOS, presiona "Navegador predeterminado" y selecciona Chromium.</translation>
 <translation id="372658070733623520">Para usar y guardar datos de Chromium en tu Cuenta de Google, verifica tu identidad.</translation>
 <translation id="3780779443901618967">Analiza más datos de los sitios que la protección estándar para advertirte sobre sitios peligrosos, incluso sobre los que Google no conocía. Puedes omitir las advertencias de Chromium.</translation>
 <translation id="3784369638459513223">Abre una nueva pestaña de incógnito en Chromium.</translation>
diff --git a/ios/chrome/app/strings/resources/ios_chromium_strings_es.xtb b/ios/chrome/app/strings/resources/ios_chromium_strings_es.xtb
index f11f61f..3dd94eb 100644
--- a/ios/chrome/app/strings/resources/ios_chromium_strings_es.xtb
+++ b/ios/chrome/app/strings/resources/ios_chromium_strings_es.xtb
@@ -66,7 +66,6 @@
 <translation id="3567399274263440288">Para sacarle el máximo partido a Chromium, inicia sesión en Chromium con tu cuenta de Google.</translation>
 <translation id="3639997914391704523">Chromium puede comprobar tus contraseñas cuando inicias sesión con tu cuenta de Google.</translation>
 <translation id="3650632991272923014"><ph name="USER_EMAIL1" /> ha usado Chromium y ha dejado marcadores, contraseñas y otras configuraciones en este dispositivo.</translation>
-<translation id="3661862315467204831">En iOS, ve a Ajustes, selecciona Chromium, toca "App del navegador por omisión" y elige Chromium.</translation>
 <translation id="372658070733623520">Para usar y guardar los datos de Chromium en tu cuenta de Google, debes verificar tu identidad.</translation>
 <translation id="3780779443901618967">Te envía advertencias sobre sitios peligrosos (aunque Google no los conozca) analizando más datos de sitios que la protección estándar. Si quieres, puedes omitir las advertencias de Chromium.</translation>
 <translation id="3784369638459513223">Abre una nueva pestaña de Incógnito de Chromium.</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 1f5babb..2d235b7 100644
--- a/ios/chrome/app/strings/resources/ios_chromium_strings_et.xtb
+++ b/ios/chrome/app/strings/resources/ios_chromium_strings_et.xtb
@@ -66,7 +66,6 @@
 <translation id="3567399274263440288">Chromiumi kasutamiseks parimal moel logige Chromiumi sisse oma Google'i kontoga.</translation>
 <translation id="3639997914391704523">Chromium saab teie paroole kontrollida siis, kui logite sisse oma Google'i kontoga.</translation>
 <translation id="3650632991272923014"><ph name="USER_EMAIL1" /> kasutas Chromiumi ning jättis järjehoidjad, paroolid ja muud seaded sellesse seadmesse.</translation>
-<translation id="3661862315467204831">Avage iOS-is Chromiumi seaded, seejärel puudutage valikut „Brauseri vaike-APP” ja valige Chromium.</translation>
 <translation id="372658070733623520">Chromiumi andmete kasutamiseks ja salvestamiseks oma Google’i kontole kinnitage, et see olete teie.</translation>
 <translation id="3780779443901618967">Hoiatab teid ohtlike saitide eest, isegi nende eest, millest Google varem ei teadnud, analüüsides standardse kaitsega võrreldes rohkem saitidelt pärinevaid andmeid. Soovi korral saate Chromiumi hoiatused vahele jätta.</translation>
 <translation id="3784369638459513223">Avab uue Chromiumi inkognito vahelehe.</translation>
diff --git a/ios/chrome/app/strings/resources/ios_chromium_strings_eu.xtb b/ios/chrome/app/strings/resources/ios_chromium_strings_eu.xtb
index 062ab72d..5f722e75 100644
--- a/ios/chrome/app/strings/resources/ios_chromium_strings_eu.xtb
+++ b/ios/chrome/app/strings/resources/ios_chromium_strings_eu.xtb
@@ -64,7 +64,6 @@
 <translation id="3567399274263440288">Chromium-i etekinik handiena ateratzeko, hasi saioa Chromium-en Google-ko kontuarekin.</translation>
 <translation id="3639997914391704523">Saioa Google-ko kontu batekin hasten baduzu, Chromium-ek pasahitzak egiazta ditzake.</translation>
 <translation id="3650632991272923014"><ph name="USER_EMAIL1" /> Chromium-en erabiltzailea zenez, laster-markak, pasahitzak eta beste ezarpena batzuk utzi ditu gailuan.</translation>
-<translation id="3661862315467204831">Ireki Chromium-en ezarpenak iOS-en, sakatu "Browser Default APP" (arakatzaile-aplikazio lehenetsia) eta hautatu Chromium.</translation>
 <translation id="372658070733623520">Chromium-eko datuak Google-ko kontuan gordetzeko eta erabiltzeko, egiaztatu zeu zarela.</translation>
 <translation id="3780779443901618967">Webgune arriskutsuen berri ematen dizu, Google-k ezagutzen ez zituenak barne, webguneetan babes estandarrak baino datu gehiago aztertuz. Chromium-en abisuak saltatzea aukera dezakezu.</translation>
 <translation id="3784369638459513223">Chromium-en ezkutuko moduko fitxa berri bat irekitzen du.</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 a47356f..47daf6c 100644
--- a/ios/chrome/app/strings/resources/ios_chromium_strings_fa.xtb
+++ b/ios/chrome/app/strings/resources/ios_chromium_strings_fa.xtb
@@ -66,7 +66,6 @@
 <translation id="3567399274263440288">‏برای اینکه بیشترین بهره را از Chromium ببرید، با «حساب Google» به سیستم Chromium وارد شوید.</translation>
 <translation id="3639997914391704523">‏Chromium زمانی می‌تواند گذرواژه‌هایتان را بررسی کند که با «حساب Google» خود به سیستم وارد شوید.</translation>
 <translation id="3650632991272923014">‏<ph name="USER_EMAIL1" /> از Chromium استفاده می‌کرده است و نشانک‌ها، گذرواژه‌ها، و تنظیمات دیگری در این دستگاه ذخیره کرده است.</translation>
-<translation id="3661862315467204831">‏تنظیمات Chromium را در iOS باز کنید، سپس روی «برنامه پیش‌فرض مرورگر» ضربه بزنید و Chromium را انتخاب کنید.</translation>
 <translation id="372658070733623520">‏برای استفاده از داده‌های Chromium و ذخیره کردن این داده‌ها در «حساب Google»، هویت خود را به‌تأیید برسانید.</translation>
 <translation id="3780779443901618967">‏با تجزیه‌وتحلیل داده‌های بیشتری از سایت‌ها در مقایسه با محافظت استاندارد، درباره سایت‌های خطرناک به شما هشدار می‌دهد، حتی سایت‌هایی که Google قبلاً از آن‌ها اطلاعی نداشته است. می‌توانید هشدارهای Chromium را رد کنید.</translation>
 <translation id="3784369638459513223">‏برگه ناشناس جدیدی در Chromium باز می‌کند.</translation>
diff --git a/ios/chrome/app/strings/resources/ios_chromium_strings_fi.xtb b/ios/chrome/app/strings/resources/ios_chromium_strings_fi.xtb
index dc7ec37..8ae126f627 100644
--- a/ios/chrome/app/strings/resources/ios_chromium_strings_fi.xtb
+++ b/ios/chrome/app/strings/resources/ios_chromium_strings_fi.xtb
@@ -66,7 +66,6 @@
 <translation id="3567399274263440288">Kirjaudu sisään Chromiumiin Google-tililläsi, jotta saat parhaan hyödyn Chromiumista.</translation>
 <translation id="3639997914391704523">Chromium voi tarkistaa salasanasi, kun kirjaudut sisään Google-tililläsi.</translation>
 <translation id="3650632991272923014"><ph name="USER_EMAIL1" /> käytti Chromiumia, ja hänen käyttämiä kirjanmerkkejä, salasanoja ja muita asetuksia jäi laitteelle.</translation>
-<translation id="3661862315467204831">Avaa Chromiumin asetukset iOS:lla, napauta sitten Oletusselainsovellus ja valitse Chromium.</translation>
 <translation id="372658070733623520">Chromium-datan käyttö ja tallennus Google-tilillä edellyttää, että vahvistat henkilöllisyytesi.</translation>
 <translation id="3780779443901618967">Varoittaa vaarallisista sivustoista, myös niistä, joista Google ei ole tiennyt aiemmin, analysoimalla enemmän dataa sivustoilta kuin Perustason suojaus. Voit ohittaa Chromium-varoitukset.</translation>
 <translation id="3784369638459513223">Avaa uuden incognito-välilehden Chromiumissa.</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 9d3cad3..57fd42e 100644
--- a/ios/chrome/app/strings/resources/ios_chromium_strings_fil.xtb
+++ b/ios/chrome/app/strings/resources/ios_chromium_strings_fil.xtb
@@ -66,7 +66,6 @@
 <translation id="3567399274263440288">Para masulit ang Chromium, mag-sign in sa Chromium gamit ang iyong Google Account.</translation>
 <translation id="3639997914391704523">Masusuri ng Chromium ang iyong mga password kapag nag-sign in ka sa Google Account mo.</translation>
 <translation id="3650632991272923014">Ginamit ni <ph name="USER_EMAIL1" /> ang Chromium at nag-iwan siya ng mga bookmark, password, at iba pang mga setting sa device na ito.</translation>
-<translation id="3661862315467204831">Buksan ang Mga Setting ng Chromium sa iOS, pagkatapos ay i-tap ang "Default na APP ng Browser" at piliin ang Chromium.</translation>
 <translation id="372658070733623520">Para magamit at ma-save ang data ng Chromium sa iyong Google Account, i-verify na ikaw ito.</translation>
 <translation id="3780779443901618967">Babalaan ka tungkol sa mga mapanganib na site, kahit iyong mga hindi alam ng Google noon, sa pamamagitan ng pagsusuri sa higit pang data mula sa mga site kaysa sa karaniwang proteksyon. Puwede mong piliing laktawan ang mga babala ng Chromium.</translation>
 <translation id="3784369638459513223">Magbubukas ng Bagong Tab na Incognito sa 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 5afd94beb..f2ae46c 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
@@ -63,7 +63,6 @@
 <translation id="3567399274263440288">Connectez-vous à Chromium avec votre compte Google pour en tirer le meilleur parti.</translation>
 <translation id="3639997914391704523">Chromium peut vérifier vos mots de passe lorsque vous vous connectez avec votre compte Google.</translation>
 <translation id="3650632991272923014"><ph name="USER_EMAIL1" /> utilisait Chromium et a laissé des favoris, des mots de passe et d'autres paramètres sur cet appareil.</translation>
-<translation id="3661862315467204831">Ouvrez les paramètres Chromium dans iOS, puis touchez « PPA par défaut du navigateur » et sélectionnez Chromium.</translation>
 <translation id="372658070733623520">Pour utiliser et enregistrer des données Chromium dans votre compte Google, confirmez qu'il s'agit bien de vous.</translation>
 <translation id="3780779443901618967">Vous avertit des sites dangereux, même ceux que Google ne connaissait pas auparavant, en analysant plus de données provenant des sites que la protection standard. Vous pouvez choisir d'ignorer les avertissements de Chromium.</translation>
 <translation id="3784369638459513223">Ouvre un nouvel onglet de navigation privée dans Chromium.</translation>
diff --git a/ios/chrome/app/strings/resources/ios_chromium_strings_fr.xtb b/ios/chrome/app/strings/resources/ios_chromium_strings_fr.xtb
index eb5cca6..3106f6f1 100644
--- a/ios/chrome/app/strings/resources/ios_chromium_strings_fr.xtb
+++ b/ios/chrome/app/strings/resources/ios_chromium_strings_fr.xtb
@@ -66,7 +66,6 @@
 <translation id="3567399274263440288">Pour profiter pleinement de Chromium, connectez-vous avec votre compte Google.</translation>
 <translation id="3639997914391704523">Chromium peut vérifier vos mots de passe lorsque vous vous connectez avec votre compte Google.</translation>
 <translation id="3650632991272923014"><ph name="USER_EMAIL1" /> utilisait Chromium et a laissé des favoris, des mots de passe et d'autres paramètres sur cet appareil.</translation>
-<translation id="3661862315467204831">Ouvrez les paramètres Chromium dans iOS, appuyez sur "Navigateur par défaut", puis sélectionnez Chromium.</translation>
 <translation id="372658070733623520">Pour utiliser et enregistrer des données Chromium dans votre compte Google, confirmez votre identité.</translation>
 <translation id="3780779443901618967">Vous avertit en cas de sites dangereux, y compris pour ceux dont Google n'avait pas connaissance, en analysant plus de données provenant des sites que la protection standard. Vous pouvez ignorer les avertissements de Chromium.</translation>
 <translation id="3784369638459513223">Ouvre un nouvel onglet de navigation privée 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 2acf2fa..d6c490f9 100644
--- a/ios/chrome/app/strings/resources/ios_chromium_strings_gl.xtb
+++ b/ios/chrome/app/strings/resources/ios_chromium_strings_gl.xtb
@@ -66,7 +66,6 @@
 <translation id="3567399274263440288">Para tirarlle o máximo partido a Chromium, inicia sesión coa túa Conta de Google en Chromium.</translation>
 <translation id="3639997914391704523">Chromium pode comprobar os teus contrasinais cando inicies sesión coa túa Conta de Google.</translation>
 <translation id="3650632991272923014"><ph name="USER_EMAIL1" /> estivo usando Chromium e deixou os marcadores, os contrasinais e outras opcións de configuración neste dispositivo.</translation>
-<translation id="3661862315467204831">Abre a configuración de Chromium en iOS, toca Default Browser App (Aplicación de navegador predeterminada) e selecciona Chromium.</translation>
 <translation id="372658070733623520">Para usar e gardar os datos de Chromium na túa Conta de Google, verifica a túa identidade.</translation>
 <translation id="3780779443901618967">Analiza máis datos de sitios que a protección estándar para avisarte sobre os sitios perigosos (mesmo sobre os que Google non coñeza ata ese momento). Se queres, podes omitir as advertencias de Chromium.</translation>
 <translation id="3784369638459513223">Abre unha nova pestana do modo de incógnito en Chromium.</translation>
diff --git a/ios/chrome/app/strings/resources/ios_chromium_strings_gu.xtb b/ios/chrome/app/strings/resources/ios_chromium_strings_gu.xtb
index af607959..bae8dad 100644
--- a/ios/chrome/app/strings/resources/ios_chromium_strings_gu.xtb
+++ b/ios/chrome/app/strings/resources/ios_chromium_strings_gu.xtb
@@ -66,7 +66,6 @@
 <translation id="3567399274263440288">Chromiumનો વધુમાં વધુ લાભ લેવા માટે, તમારા Google એકાઉન્ટ વડે Chromiumમાં સાઇન ઇન કરો.</translation>
 <translation id="3639997914391704523">જ્યારે તમે તમારા Google એકાઉન્ટ વડે સાઇન ઇન કરો, ત્યારે Chromium તમારા પાસવર્ડ ચેક કરી શકે છે.</translation>
 <translation id="3650632991272923014"><ph name="USER_EMAIL1" /> Chromiumનો ઉપયોગ કરી રહ્યાં હતા અને તેઓ આ ડિવાઇસ પર બુકમાર્ક, પાસવર્ડ અને અન્ય સેટિંગ છોડી ગયા છે.</translation>
-<translation id="3661862315467204831">iOSમાં Chromium સેટિંગ ખોલો, પછી "બ્રાઉઝર ડિફૉલ્ટ APP" પર ટૅપ કરો અને Chromium પસંદ કરો.</translation>
 <translation id="372658070733623520">તમારા Google એકાઉન્ટમાં Chromium ડેટાનો ઉપયોગ કરવા અને તેને સાચવવા માટે, આ તમે જ છો તેની ચકાસણી કરો.</translation>
 <translation id="3780779443901618967">સાઇટ પરથી માનક સંરક્ષણ કરતા વધુ ડેટા વિશ્લેષિત કરીને, Googleને પણ પહેલાંથી જાણ ન હોય તેવી ખતરનાક સાઇટ માટે તમને ચેતવણી આપે છે. તમે Chromium ચેતવણીઓને છોડી દેવાનું પસંદ કરી શકો છો.</translation>
 <translation id="3784369638459513223">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 d8985b9..5679769 100644
--- a/ios/chrome/app/strings/resources/ios_chromium_strings_hi.xtb
+++ b/ios/chrome/app/strings/resources/ios_chromium_strings_hi.xtb
@@ -63,7 +63,6 @@
 <translation id="3567399274263440288">Chromium का ज़्यादा से ज़्यादा फ़ायदा पाने के लिए, अपने Google खाते से Chromium में साइन इन करें.</translation>
 <translation id="3639997914391704523">जब आप Google खाते से साइन इन करते हैं, तब क्रोमियम आपके पासवर्ड की जांच कर सकता है.</translation>
 <translation id="3650632991272923014"><ph name="USER_EMAIL1" /> से Chromium का इस्तेमाल किया गया था और इसमें सेव किए गए बुकमार्क, पासवर्ड, और दूसरी सेटिंग को इस डिवाइस से नहीं हटाया गया.</translation>
-<translation id="3661862315467204831">iOS पर Chromium Settings खोलें. इसके बाद, "Browser Default APP" पर टैप करें और Chromium चुनें.</translation>
 <translation id="372658070733623520">अपने Google खाते में Chromium का डेटा इस्तेमाल करने और उसे सेव करने के लिए, अपनी पहचान की पुष्टि करें.</translation>
 <translation id="3780779443901618967">यह सुविधा स्टैंडर्ड सुरक्षा मोड की तुलना में ज़्यादा डेटा का विश्लेषण करके, आपको ऐसी खतरनाक साइटों के बारे में चेतावनी देती है जिनके बारे में Google को पहले से नहीं पता था. Chromium की चेतावनियों को अनदेखा किया जा सकता है.</translation>
 <translation id="3784369638459513223">इससे 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 435be05..2e3e47ad 100644
--- a/ios/chrome/app/strings/resources/ios_chromium_strings_hr.xtb
+++ b/ios/chrome/app/strings/resources/ios_chromium_strings_hr.xtb
@@ -66,7 +66,6 @@
 <translation id="3567399274263440288">Da biste iskoristili sve prednosti koje vam pruža Chromium, prijavite se u Chromium Google računom.</translation>
 <translation id="3639997914391704523">Chromium može provjeriti vaše zaporke kad se prijavite Google računom.</translation>
 <translation id="3650632991272923014">Korisnik <ph name="USER_EMAIL1" /> upotrebljavao je Chromium i ostavio oznake, zaporke i druge postavke na ovom uređaju.</translation>
-<translation id="3661862315467204831">Otvorite postavke Chromiuma u iOS-u, zatim dodirnite "Zadana aplikacija preglednika" i odaberite Chromium.</translation>
 <translation id="372658070733623520">Da biste upotrebljavali i spremali podatke Chromiuma na svoj Google račun, potvrdite da ste to vi.</translation>
 <translation id="3780779443901618967">Upozorava vas na opasne web-lokacije, čak i one za koje Google još nije znao, analiziranjem više podataka s web-lokacija od standardne zaštite. Možete preskočiti Chromiumova upozorenja.</translation>
 <translation id="3784369638459513223">Otvara novu anonimnu karticu u Chromiumu.</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 ce3ae38..4059dd8 100644
--- a/ios/chrome/app/strings/resources/ios_chromium_strings_hu.xtb
+++ b/ios/chrome/app/strings/resources/ios_chromium_strings_hu.xtb
@@ -66,7 +66,6 @@
 <translation id="3567399274263440288">Annak érdekében, hogy a legtöbbet hozhassa ki a Chromiumból, jelentkezzen be Google-fiókjával a Chromiumba.</translation>
 <translation id="3639997914391704523">A Chromium ellenőrizni tudja a mentett jelszavakat, ha Ön bejelentkezik Google-fiókjával.</translation>
 <translation id="3650632991272923014"><ph name="USER_EMAIL1" /> felhasználó használta Chromiumot, és könyvjelzőket, jelszavakat, valamint egyéb beállításokat hagyott az eszközön.</translation>
-<translation id="3661862315467204831">Nyissa meg a Chromium beállításait iOS rendszeren, majd koppintson az „Alapértelmezett böngészőalkalmazás” elemre, és válassza ki a Chromiumot.</translation>
 <translation id="372658070733623520">Ha Chromium-adatokat szeretne használni és tárolni Google-fiókjában, igazolja személyazonosságát.</translation>
 <translation id="3780779443901618967">Figyelmezteti Önt a veszélyes webhelyekre (még azokra is, amelyekről a Google korábban nem tudott), azáltal hogy több, webhelyekről származó adatot elemez, mint a normál védelem. Beállíthatja a Chromium figyelmeztetéseinek kihagyását.</translation>
 <translation id="3784369638459513223">Új Chromium inkognitó lapot nyit meg.</translation>
diff --git a/ios/chrome/app/strings/resources/ios_chromium_strings_hy.xtb b/ios/chrome/app/strings/resources/ios_chromium_strings_hy.xtb
index 87b7e478..c4099b8 100644
--- a/ios/chrome/app/strings/resources/ios_chromium_strings_hy.xtb
+++ b/ios/chrome/app/strings/resources/ios_chromium_strings_hy.xtb
@@ -66,7 +66,6 @@
 <translation id="3567399274263440288">Chromium-ի բոլոր գործառույթներն օգտագործելու համար մտեք ձեր Google հաշիվ։</translation>
 <translation id="3639997914391704523">Chromium-ը կարող է ստուգել ձեր գաղտնաբառերը, երբ մտնեք Google հաշիվ։</translation>
 <translation id="3650632991272923014">Օգտատերը (<ph name="USER_EMAIL1" />) օգտագործել է Chromium-ը, և այս սարքում պահպանվել են էջանիշներ, գաղտնաբառեր և այլ կարգավորումներ։</translation>
-<translation id="3661862315467204831">Բացեք Chromium-ի Կարգավորումներն iOS-ում, ապա հպեք «Դիտարկիչի կանխադրված հավելված» և ընտրեք Chromium-ը։</translation>
 <translation id="372658070733623520">Chromium-ի տվյալները ձեր Google հաշվում օգտագործելու և պահելու համար հաստատեք ձեր ինքնությունը։</translation>
 <translation id="3780779443901618967">Զգուշացնում է ձեզ վտանգավոր, այդ թվում՝ Google-ին նախկինում անհայտ կայքերի մասին, քանի որ ավելի շատ տվյալներ է վերլուծում կայքերում՝ համեմատած ստանդարտ պաշտպանության հետ։ Դուք կարող եք բաց թողնել Chromium-ի նախազգուշացումները։</translation>
 <translation id="3784369638459513223">Բացում է նոր ինկոգնիտո ներդիր Chromium-ում։</translation>
diff --git a/ios/chrome/app/strings/resources/ios_chromium_strings_id.xtb b/ios/chrome/app/strings/resources/ios_chromium_strings_id.xtb
index 6e52fcc..32a647b 100644
--- a/ios/chrome/app/strings/resources/ios_chromium_strings_id.xtb
+++ b/ios/chrome/app/strings/resources/ios_chromium_strings_id.xtb
@@ -66,7 +66,6 @@
 <translation id="3567399274263440288">Untuk mengoptimalkan Chromium, login ke Chromium dengan Akun Google Anda.</translation>
 <translation id="3639997914391704523">Chromium dapat memeriksa sandi saat Anda login dengan Akun Google.</translation>
 <translation id="3650632991272923014"><ph name="USER_EMAIL1" /> menggunakan Chromium dan meninggalkan bookmark, sandi, serta setelan lainnya di perangkat ini.</translation>
-<translation id="3661862315467204831">Buka Setelan Chromium di iOS, lalu ketuk "Aplikasi Default Browser" dan pilih Chromium.</translation>
 <translation id="372658070733623520">Untuk menggunakan dan menyimpan data Chromium di Akun Google Anda, verifikasi diri Anda.</translation>
 <translation id="3780779443901618967">Memperingatkan Anda tentang situs berbahaya, bahkan situs yang tidak diketahui Google sebelumnya, dengan menganalisis lebih banyak data dari situs dibandingkan perlindungan standar. Anda dapat memilih untuk melewati peringatan Chromium.</translation>
 <translation id="3784369638459513223">Membuka Tab Samaran Chromium Baru.</translation>
diff --git a/ios/chrome/app/strings/resources/ios_chromium_strings_is.xtb b/ios/chrome/app/strings/resources/ios_chromium_strings_is.xtb
index 191d775..65526dc 100644
--- a/ios/chrome/app/strings/resources/ios_chromium_strings_is.xtb
+++ b/ios/chrome/app/strings/resources/ios_chromium_strings_is.xtb
@@ -66,7 +66,6 @@
 <translation id="3567399274263440288">Skráðu þig inn í Chromium með Google reikningnum þínum svo að Chromium nýtist þér sem best.</translation>
 <translation id="3639997914391704523">Chromium getur athugað aðgangsorðin þín þegar þú skráir þig inn með Google reikningnum þínum</translation>
 <translation id="3650632991272923014"><ph name="USER_EMAIL1" /> notaði Chromium og skildi eftir bókamerki, aðgangsorð og aðrar stillingar í þessu tæki.</translation>
-<translation id="3661862315467204831">Opnaðu stillingar Chromium í iOS, ýttu svo á „Browser Default APP“ og veldu Chromium.</translation>
 <translation id="372658070733623520">Staðfestu að þetta sért þú til að nota og vista Chromium-gögn á Google-reikningnum þínum.</translation>
 <translation id="3780779443901618967">Varar þig við hættulegum vefsvæðum, jafnvel þeim sem Google hafði enga vitneskju um, með því að greina fleiri gögn frá vefsvæðum en hefðbundin vörn. Þú getur valið að sleppa Chromium-viðvörunum.</translation>
 <translation id="3784369638459513223">Opnar nýjan Chromium-huliðsflipa.</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 5a84e92..b36edc4 100644
--- a/ios/chrome/app/strings/resources/ios_chromium_strings_it.xtb
+++ b/ios/chrome/app/strings/resources/ios_chromium_strings_it.xtb
@@ -66,7 +66,6 @@
 <translation id="3567399274263440288">Accedi con il tuo Account Google a Chromium per usare al meglio questo browser.</translation>
 <translation id="3639997914391704523">Chromium può controllare le tue password quando accedi con il tuo Account Google.</translation>
 <translation id="3650632991272923014"><ph name="USER_EMAIL1" /> stava usando Chromium e ha lasciato preferiti, password e altre impostazioni su questo dispositivo.</translation>
-<translation id="3661862315467204831">Apri le Impostazioni di Chromium in iOS, quindi tocca "App predefinita del browser" e seleziona Chromium.</translation>
 <translation id="372658070733623520">Per usare e salvare i dati di Chromium nel tuo Account Google, verifica la tua identità.</translation>
 <translation id="3780779443901618967">Ricevi un avviso in caso di siti pericolosi, inclusi quelli di cui Google non era a conoscenza, analizzando più dati provenienti dai siti rispetto al livello Protezione standard. Puoi scegliere di ignorare gli avvisi di Chromium.</translation>
 <translation id="3784369638459513223">Apre una nuova scheda di navigazione in incognito di Chromium.</translation>
diff --git a/ios/chrome/app/strings/resources/ios_chromium_strings_iw.xtb b/ios/chrome/app/strings/resources/ios_chromium_strings_iw.xtb
index c5128f1..dba91cf 100644
--- a/ios/chrome/app/strings/resources/ios_chromium_strings_iw.xtb
+++ b/ios/chrome/app/strings/resources/ios_chromium_strings_iw.xtb
@@ -66,7 +66,6 @@
 <translation id="3567399274263440288">‏אפשר להיכנס ל-Chromium באמצעות חשבון Google כדי להפיק את המרב מ-Chromium.</translation>
 <translation id="3639997914391704523">‏Chromium יכול לבדוק את הסיסמאות כשנכנסים באמצעות חשבון Google.</translation>
 <translation id="3650632991272923014">‏במכשיר הזה נעשה שימוש ב‑Chromium על ידי <ph name="USER_EMAIL1" /> ונשארו סימניות, סיסמאות והגדרות נוספות.</translation>
-<translation id="3661862315467204831">‏פותחים את הגדרות Chromium ב-iOS, מקישים על 'אפליקציית ברירת מחדל לדפדפן' ובוחרים ב-Chromium.</translation>
 <translation id="372658070733623520">‏כדי להשתמש בנתוני Chromium ולשמור אותם בחשבון Google, עליך לאמת את הזהות שלך.</translation>
 <translation id="3780779443901618967">‏מקבלים אזהרות לגבי אתרים מסוכנים, גם כאלה שלא היו ידועים ל-Google לפני כן, בעזרת ניתוח של יותר נתונים מאתרים בהשוואה להגנה הרגילה. אפשר לדלג על האזהרות מ-Chromium.</translation>
 <translation id="3784369638459513223">‏פתיחת כרטיסייה פרטית חדשה ב-Chromium.</translation>
diff --git a/ios/chrome/app/strings/resources/ios_chromium_strings_ja.xtb b/ios/chrome/app/strings/resources/ios_chromium_strings_ja.xtb
index 0ce5b866..c5e5f4d 100644
--- a/ios/chrome/app/strings/resources/ios_chromium_strings_ja.xtb
+++ b/ios/chrome/app/strings/resources/ios_chromium_strings_ja.xtb
@@ -66,7 +66,6 @@
 <translation id="3567399274263440288">Chromium を最大限に活用するには、Google アカウントで Chromium にログインしてください。</translation>
 <translation id="3639997914391704523">Google アカウントでログインすると、Chromium でパスワードを確認できるようになります。</translation>
 <translation id="3650632991272923014"><ph name="USER_EMAIL1" /> は Chromium を使用しており、ブックマークやパスワードなどの設定がこのデバイスに残っています。</translation>
-<translation id="3661862315467204831">iOS で Chromium の設定を開き、[デフォルトのブラウザアプリ] をタップして [Chromium] を選択します。</translation>
 <translation id="372658070733623520">Google アカウントで Chromium データを使用して保存するには、本人確認を行ってください。</translation>
 <translation id="3780779443901618967">標準保護機能より多くのサイトデータを分析して、危険なサイト(Google が認識していなかったサイトも含む)について警告します。Chromium の警告をスキップすることもできます。</translation>
 <translation id="3784369638459513223">Chromium で新しいシークレット タブを開きます。</translation>
diff --git a/ios/chrome/app/strings/resources/ios_chromium_strings_ka.xtb b/ios/chrome/app/strings/resources/ios_chromium_strings_ka.xtb
index 52a1db4..e73c7e86 100644
--- a/ios/chrome/app/strings/resources/ios_chromium_strings_ka.xtb
+++ b/ios/chrome/app/strings/resources/ios_chromium_strings_ka.xtb
@@ -66,7 +66,6 @@
 <translation id="3567399274263440288">Chromium-ის შესაძლებლობები მაქსიმალურად რომ გამოიყენოთ, შედით Chromium-ში თქვენი Google ანგარიშით.</translation>
 <translation id="3639997914391704523">პაროლების Chromium-ის მეშვეობით შესამოწმებლად შედით სისტემაში თქვენი Google ანგარიშით.</translation>
 <translation id="3650632991272923014"><ph name="USER_EMAIL1" /> იყენებდა Chromium-ს და ამ მოწყობილობაზე დატოვა სანიშნეები, პაროლები და სხვა პარამეტრები.</translation>
-<translation id="3661862315467204831">iOS-ში გახსენით Chromium-ის პარამეტრები, შემდეგ შეეხეთ „ბრაუზერის ნაგულისხმევ აპს“ და აირჩიეთ Chromium.</translation>
 <translation id="372658070733623520">თქვენს Google ანგარიშში Chromium მონაცემები რომ შეინახოთ და გამოიყენოთ ისინი, დაადასტურეთ ვინაობა.</translation>
 <translation id="3780779443901618967">გაგაფრთხილებთ სახიფათო საიტების შესახებ (თუნდაც Google-ისთვის იქამდე უცნობის შესახებ) საიტებიდან იმაზე მეტი მონაცემის სკანირების მეშვეობით, ვიდრე სტანდარტული დაცვის შემთხვევაში. სურვილისამებრ, შეგიძლიათ გამოტოვოთ Chromium-ის გაფრთხილებები.</translation>
 <translation id="3784369638459513223">გახსნის ახალ ინკოგნიტო ჩანართს Chromium-ში.</translation>
diff --git a/ios/chrome/app/strings/resources/ios_chromium_strings_kk.xtb b/ios/chrome/app/strings/resources/ios_chromium_strings_kk.xtb
index 24bf96c..f669044 100644
--- a/ios/chrome/app/strings/resources/ios_chromium_strings_kk.xtb
+++ b/ios/chrome/app/strings/resources/ios_chromium_strings_kk.xtb
@@ -66,7 +66,6 @@
 <translation id="3567399274263440288">Chromium-ді барынша пайдалану үшін оған Google аккаунтыңызбен кіріңіз.</translation>
 <translation id="3639997914391704523">Google аккаунтыңызбен кіргенде, Chromium сіздің құпия сөздеріңізді тексере алады.</translation>
 <translation id="3650632991272923014"><ph name="USER_EMAIL1" /> Chromium браузерін қолданған еді, сондықтан осы құрылғыда оның бетбелгілері, құпия сөздері және басқа да параметрлері қалып қойды.</translation>
-<translation id="3661862315467204831">iOS жүйесінде Chromium параметрлерін ашып, "Браузердің әдепкі қолданбасы" түймесін түртіп, Chromium параметрін таңдаңыз.</translation>
 <translation id="372658070733623520">Google аккаунтыңызда Chromium деректерін пайдалану және сақтау үшін жеке басыңызды растаңыз.</translation>
 <translation id="3780779443901618967">Стандартты қорғанысқа қарағанда сайттардағы көбірек деректерді талдау арқылы қауіпті сайттар, тіпті Google-ға бұрын белгісіз болған сайттар туралы ескертеді. Chromium ескертулерін өткізіп жіберуді таңдауға болады.</translation>
 <translation id="3784369638459513223">Chromium-нің жаңа инкогнито қойындысын ашады.</translation>
diff --git a/ios/chrome/app/strings/resources/ios_chromium_strings_km.xtb b/ios/chrome/app/strings/resources/ios_chromium_strings_km.xtb
index bfdaa33..8b894f4 100644
--- a/ios/chrome/app/strings/resources/ios_chromium_strings_km.xtb
+++ b/ios/chrome/app/strings/resources/ios_chromium_strings_km.xtb
@@ -66,7 +66,6 @@
 <translation id="3567399274263440288">ដើម្បីទទួលបាន​អត្ថប្រយោជន៍​ច្រើនបំផុត​ពី Chromium សូមចូល Chromium ដោយប្រើ​គណនី Google របស់អ្នក។</translation>
 <translation id="3639997914391704523">Chromium អាចពិនិត្យពាក្យសម្ងាត់របស់អ្នក នៅពេលអ្នកចូល​ដោយប្រើគណនី Google របស់អ្នក។</translation>
 <translation id="3650632991272923014"><ph name="USER_EMAIL1" /> កំពុងប្រើ Chromium និង​ទុកចំណាំ ពាក្យសម្ងាត់ និងការកំណត់​ផ្សេងទៀត​នៅលើ​ឧបករណ៍នេះ។</translation>
-<translation id="3661862315467204831">បើក​ការកំណត់ Chromium នៅក្នុង iOS រួច​ចុចលើ "កម្មវិធីរុករក​តាមអ៊ីនធឺណិត​លំនាំដើម" ហើយ​ជ្រើសរើស Chromium។</translation>
 <translation id="372658070733623520">ដើម្បីប្រើ និងរក្សាទុកទិន្នន័យ Chromium នៅក្នុងគណនី Google របស់អ្នក សូមផ្ទៀងផ្ទាត់ថាជាអ្នក។</translation>
 <translation id="3780779443901618967">ប្រាប់ឱ្យអ្នក​ប្រុងប្រយ័ត្នចំពោះគេហទំព័រ​គ្រោះថ្នាក់ សូម្បីតែ​គេហទំព័រ​ដែល Google មិនបានស្គាល់​ពីមុនក៏ដោយ ដោយវិភាគ​ទិន្នន័យកាន់តែច្រើនពីគេហទំព័រ បើធៀបនឹង​ការការពារ​ស្តង់ដារ។ អ្នកអាច​ជ្រើសរើស​រំលង​សារប្រុងប្រយ័ត្នពី Chromium បាន។</translation>
 <translation id="3784369638459513223">បើក​ផ្ទាំងឯកជន Chromium ថ្មី។</translation>
diff --git a/ios/chrome/app/strings/resources/ios_chromium_strings_kn.xtb b/ios/chrome/app/strings/resources/ios_chromium_strings_kn.xtb
index 3be782b..90792387 100644
--- a/ios/chrome/app/strings/resources/ios_chromium_strings_kn.xtb
+++ b/ios/chrome/app/strings/resources/ios_chromium_strings_kn.xtb
@@ -66,7 +66,6 @@
 <translation id="3567399274263440288">Chromium ನಿಂದ ಹೆಚ್ಚಿನ ಪ್ರಯೋಜನ ಪಡೆದುಕೊಳ್ಳಲು, ನಿಮ್ಮ Google ಖಾತೆಯ ಮೂಲಕ Chromium ಗೆ ಸೈನ್ ಇನ್ ಮಾಡಿ</translation>
 <translation id="3639997914391704523">ನೀವು Google ಖಾತೆಯ ಮೂಲಕ ಸೈನ್ ಇನ್ ಮಾಡಿದಾಗ, Chromium ನಿಮ್ಮ ಪಾಸ್‌ವರ್ಡ್‌ಗಳನ್ನು ಪರಿಶೀಲಿಸಬಹುದು.</translation>
 <translation id="3650632991272923014"><ph name="USER_EMAIL1" />, Chromium ಅನ್ನು ಬಳಸುತ್ತಿದ್ದರು ಮತ್ತು ಈ ಸಾಧನದಲ್ಲಿ ಬುಕ್‌ಮಾರ್ಕ್‌ಗಳು, ಪಾಸ್‌ವರ್ಡ್‌ಗಳು ಮತ್ತು ಇತರ ಸೆಟ್ಟಿಂಗ್‌ಗಳನ್ನು ಉಳಿಸಿದ್ದಾರೆ.</translation>
-<translation id="3661862315467204831">iOS ನಲ್ಲಿ Chromium ಸೆಟ್ಟಿಂಗ್‌ಗಳನ್ನು ತೆರೆಯಿರಿ, ನಂತರ "ಬ್ರೌಸರ್ ಡೀಫಾಲ್ಟ್ APP" ಮೇಲೆ ಟ್ಯಾಪ್ ಮಾಡಿ ಮತ್ತು Chromium ಆಯ್ಕೆಮಾಡಿ.</translation>
 <translation id="372658070733623520">ನಿಮ್ಮ Google ಖಾತೆಯಲ್ಲಿ Chromium ಡೇಟಾವನ್ನು ಬಳಸಲು ಮತ್ತು ಉಳಿಸಲು, ಇದು ನೀವೇ ಎಂದು ದೃಢೀಕರಿಸಿ.</translation>
 <translation id="3780779443901618967">ಪ್ರಮಾಣಿತ ಸುರಕ್ಷತೆಗಿಂತ ಹೆಚ್ಚಿನ ಡೇಟಾವನ್ನು ವೆಬ್‌ಸೈಟ್‌ಗಳಿಂದ ವಿಶ್ಲೇಷಿಸುವ ಮೂಲಕ Google ತಿಳಿದಿರದಂತಹ ಅಪಾಯಕಾರಿ ವೆಬ್‌ಸೈಟ್‌ಗಳ ಕುರಿತು ನಿಮ್ಮನ್ನು ಎಚ್ಚರಿಸುತ್ತದೆ. ನೀವು Chromium ಎಚ್ಚರಿಕೆಗಳನ್ನು ಸ್ಕಿಪ್ ಮಾಡಲು ಆಯ್ಕೆಮಾಡಬಹುದು.</translation>
 <translation id="3784369638459513223">ಹೊಸ 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 e8c064f4..0ccbe3ad 100644
--- a/ios/chrome/app/strings/resources/ios_chromium_strings_ko.xtb
+++ b/ios/chrome/app/strings/resources/ios_chromium_strings_ko.xtb
@@ -66,7 +66,6 @@
 <translation id="3567399274263440288">Chromium을 최대한 활용하려면 Google 계정으로 Chromium에 로그인하세요</translation>
 <translation id="3639997914391704523">Google 계정으로 로그인하면 Chromium에서 비밀번호를 확인할 수 있습니다.</translation>
 <translation id="3650632991272923014"><ph name="USER_EMAIL1" /> 계정이 Chromium을 사용했으며 이 기기에 북마크, 비밀번호, 기타 설정을 남겼습니다</translation>
-<translation id="3661862315467204831">iOS에서 Chromium 설정을 열고 'Browser Default APP(브라우저 기본 앱)'을 탭한 다음 Chromium을 선택합니다</translation>
 <translation id="372658070733623520">Google 계정에서 Chromium 데이터를 사용하고 저장하려면 본인 확인 절차를 거치세요.</translation>
 <translation id="3780779443901618967">표준 보호 모드보다 더 많은 사이트에서 데이터를 분석하여 위험한 사이트에 관해 경고합니다. Google이 이전에 몰랐던 사이트도 여기에 포함됩니다. Chromium 경고를 건너뛸 수 있습니다.</translation>
 <translation id="3784369638459513223">새 Chromium 시크릿 탭을 엽니다.</translation>
diff --git a/ios/chrome/app/strings/resources/ios_chromium_strings_ky.xtb b/ios/chrome/app/strings/resources/ios_chromium_strings_ky.xtb
index 7b0420f..272a4b2 100644
--- a/ios/chrome/app/strings/resources/ios_chromium_strings_ky.xtb
+++ b/ios/chrome/app/strings/resources/ios_chromium_strings_ky.xtb
@@ -66,7 +66,6 @@
 <translation id="3567399274263440288">Chromium'дун бардык мүмкүнчүлүктөрүн пайдалануу үчүн Google аккаунтуңуз менен Chromium'га кириңиз.</translation>
 <translation id="3639997914391704523">Google аккаунтуңуз менен киргенде Chromium сырсөздөрүңүздү текшерет.</translation>
 <translation id="3650632991272923014"><ph name="USER_EMAIL1" /> бул түзмөктө Chromium'ду колдонуп, кыстармаларды, сырсөздөрдү жана башка параметрлерди өчүрбөй калды.</translation>
-<translation id="3661862315467204831">iOS'то Chromium жөндөөлөрүн ачып, андан соң "Серепчинин демейки колдонмосун" таптап, Chromium'ду тандаңыз.</translation>
 <translation id="372658070733623520">Chromium'дагы маалыматты колдонуп жана Google аккаунтуңузга сактоо үчүн өзүңүздү ырастаңыз.</translation>
 <translation id="3780779443901618967">Стандарттык коргоого караганда сайттардагы көбүрөөк маалыматтарды талдоо менен Google мурда билбеген кооптуу сайттар боюнча эскертет. Chromium эскертүүлөрүн өткөрүп жиберүүнү тандай аласыз.</translation>
 <translation id="3784369638459513223">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 687bd6a..9fea66e0 100644
--- a/ios/chrome/app/strings/resources/ios_chromium_strings_lo.xtb
+++ b/ios/chrome/app/strings/resources/ios_chromium_strings_lo.xtb
@@ -66,7 +66,6 @@
 <translation id="3567399274263440288">ເພື່ອໃຊ້ປະໂຫຍດສູງສຸດຈາກ Chromium, ໃຫ້ເຂົ້າສູ່ລະບົບຫາ Chromium ດ້ວຍບັນຊີ Google ຂອງທ່ານ.</translation>
 <translation id="3639997914391704523">Chromium ສາມາດກວດເບິ່ງລະຫັດຜ່ານຂອງທ່ານ ເມື່ອທ່ານເຂົ້າສູ່ລະບົບດ້ວຍບັນຊີ Google ຂອງທ່ານໄດ້.</translation>
 <translation id="3650632991272923014"><ph name="USER_EMAIL1" /> ກຳລັງໃຊ້ Chromium ຢູ່ ແລະ ເປີດບຸກມາກ, ລະຫັດຜ່ານ ແລະ ການຕັ້ງຄ່າອື່ນໆປະໄວ້ຢູ່ອຸປະກອນນີ້.</translation>
-<translation id="3661862315467204831">ເປີດການຕັ້ງຄ່າ Chromium ໃນ iOS, ຈາກນັ້ນແຕະໃສ່ "APP ຄ່າເລີ່ມຕົ້ນໂປຣແກຣມທ່ອງເວັບ" ແລະ ເລືອກ Chromium.</translation>
 <translation id="372658070733623520">ເພື່ອໃຊ້ ແລະ ບັນທຶກຂໍ້ມູນ Chromium ໃນບັນຊີ Google ຂອງທ່ານ, ກະລຸນາຢັ້ງຢືນວ່າແມ່ນທ່ານ.</translation>
 <translation id="3780779443901618967">ເຕືອນທ່ານກ່ຽວກັບເວັບໄຊທີ່ເປັນອັນຕະລາຍ, ແມ່ນແຕ່ເວັບໄຊທີ່ Google ບໍ່ຮູ້ຈັກມາກ່ອນ, ໂດຍການວິເຄາະຂໍ້ມູນຈາກເວັບໄຊຫຼາຍກວ່າການປົກປ້ອງມາດຕະຖານ. ທ່ານສາມາດເລືອກທີ່ຈະຂ້າມຄຳເຕືອນຂອງ Chromium ໄດ້.</translation>
 <translation id="3784369638459513223">ເປີດແຖບບໍ່ເປີດເຜີຍຕົວຕົນ Chromium ໃໝ່.</translation>
diff --git a/ios/chrome/app/strings/resources/ios_chromium_strings_lt.xtb b/ios/chrome/app/strings/resources/ios_chromium_strings_lt.xtb
index 8dc577a..5125c160 100644
--- a/ios/chrome/app/strings/resources/ios_chromium_strings_lt.xtb
+++ b/ios/chrome/app/strings/resources/ios_chromium_strings_lt.xtb
@@ -66,7 +66,6 @@
 <translation id="3567399274263440288">Jei norite išnaudoti visas „Chromium“ galimybes, prisijunkite prie „Chromium“ naudodami „Google“ paskyrą.</translation>
 <translation id="3639997914391704523">„Chromium“ gali tikrinti jūsų slaptažodžius, kai prisijungiate naudodami „Google“ paskyrą.</translation>
 <translation id="3650632991272923014"><ph name="USER_EMAIL1" /> naudojo „Chromium“ ir paliko žymes, slaptažodžius bei kitus nustatymus šiame įrenginyje.</translation>
-<translation id="3661862315467204831">Atidarykite „Chromium“ nustatymus sistemoje „iOS“, tada palieskite „Browser Default APP“ ir pasirinkite „Chromium“.</translation>
 <translation id="372658070733623520">Jei norite naudoti ir išsaugoti „Chromium“ duomenis „Google“ paskyroje, patvirtinkite savo tapatybę.</translation>
 <translation id="3780779443901618967">Įspėjama apie pavojingas svetaines, net ir apie tas, apie kurias anksčiau „Google“ nežinojo, analizuojant daugiau duomenų iš svetainių, nei taikant įprastą apsaugą. Galite pasirinkti praleisti „Chromium“ įspėjimus.</translation>
 <translation id="3784369638459513223">Atidaromas naujas „Chromium“ inkognito skirtukas.</translation>
diff --git a/ios/chrome/app/strings/resources/ios_chromium_strings_lv.xtb b/ios/chrome/app/strings/resources/ios_chromium_strings_lv.xtb
index 7eaaae9d..2d5578f4 100644
--- a/ios/chrome/app/strings/resources/ios_chromium_strings_lv.xtb
+++ b/ios/chrome/app/strings/resources/ios_chromium_strings_lv.xtb
@@ -66,7 +66,6 @@
 <translation id="3567399274263440288">Lai pilnvērtīgi izmantotu pārlūku Chromium, pierakstieties tajā, izmantojot savu Google kontu.</translation>
 <translation id="3639997914391704523">Pārlūkprogrammā Chromium var pārbaudīt jūsu paroles, ja esat pierakstījies savā Google kontā.</translation>
 <translation id="3650632991272923014"><ph name="USER_EMAIL1" /> izmantoja pārlūku Chromium un neizdzēsa grāmatzīmes, paroles un citus iestatījumus šajā ierīcē.</translation>
-<translation id="3661862315467204831">Atveriet Chromium iestatījumus iOS ierīcē, pēc tam pieskarieties vienumam “Browser Default APP” (Noklusējuma pārlūka lietotne) un atlasiet Chromium.</translation>
 <translation id="372658070733623520">Lai izmantotu un saglabātu Chromium datus savā Google kontā, apstipriniet savu identitāti.</translation>
 <translation id="3780779443901618967">Tiek rādīts brīdinājums par bīstamām vietnēm (pat ja Google par tām iepriekš nezināja), analizējot vairāk datu no vietnēm, nekā analizē standarta aizsardzība. Varat izlaist Chromium brīdinājumus.</translation>
 <translation id="3784369638459513223">Tiek atvērta jauna Chromium inkognito cilne.</translation>
diff --git a/ios/chrome/app/strings/resources/ios_chromium_strings_mk.xtb b/ios/chrome/app/strings/resources/ios_chromium_strings_mk.xtb
index ab844aa..63bdd11c 100644
--- a/ios/chrome/app/strings/resources/ios_chromium_strings_mk.xtb
+++ b/ios/chrome/app/strings/resources/ios_chromium_strings_mk.xtb
@@ -66,7 +66,6 @@
 <translation id="3567399274263440288">За да го извлечете максимумот од Chromium, најавете се на Chromium со вашата сметка на Google.</translation>
 <translation id="3639997914391704523">Chromium може да ги проверува вашите лозинки кога ќе се најавите со вашата сметка на Google.</translation>
 <translation id="3650632991272923014"><ph name="USER_EMAIL1" /> користеше Chromium и остави обележувачи, лозинки и други поставки на уредов.</translation>
-<translation id="3661862315467204831">Отворете „Поставки за Chromium“ на iOS, па допрете на „Стандардна АПЛИКАЦИЈА за прелистување“ и изберете Chromium.</translation>
 <translation id="372658070733623520">За да користите и зачувувате податоци од Chromium во вашата сметка на Google, потврдете го вашиот идентитет.</translation>
 <translation id="3780779443901618967">Ве предупредува за опасни сајтови, дури и оние што Google не ги знаел претходно, така што анализира повеќе податоци од сајтови од стандардната заштита. Може да изберете да се прескокнуваат предупредувањата на Chromium.</translation>
 <translation id="3784369638459513223">Отвора нова картичка „Инкогнито“ во Chromium.</translation>
diff --git a/ios/chrome/app/strings/resources/ios_chromium_strings_ml.xtb b/ios/chrome/app/strings/resources/ios_chromium_strings_ml.xtb
index c960408..0fde7a6 100644
--- a/ios/chrome/app/strings/resources/ios_chromium_strings_ml.xtb
+++ b/ios/chrome/app/strings/resources/ios_chromium_strings_ml.xtb
@@ -66,7 +66,6 @@
 <translation id="3567399274263440288">Chromium പരമാവധി പ്രയോജനപ്പെടുത്താൻ, നിങ്ങളുടെ Google Account ഉപയോഗിച്ച് Chromium-ലേക്ക് സൈൻ ഇൻ ചെയ്യുക.</translation>
 <translation id="3639997914391704523">Google Account ഉപയോഗിച്ച് സൈൻ ഇൻ ചെയ്യുമ്പോൾ Chromium-ന് നിങ്ങളുടെ പാസ്‌വേഡുകൾ പരിശോധിക്കാനാകും.</translation>
 <translation id="3650632991272923014"><ph name="USER_EMAIL1" /> ആണ് Chromium ഉപയോഗിച്ചുകൊണ്ടിരുന്നത്, ഈ വ്യക്തിയുടെ ബുക്ക്‌മാർക്കുകളും പാസ്‌വേഡുകളും മറ്റ് ക്രമീകരണവും ഈ ഉപകരണത്തിലുണ്ട്.</translation>
-<translation id="3661862315467204831">iOS-ൽ Chromium ക്രമീകരണം തുറക്കുക, തുടർന്ന് "ബ്രൗസർ ഡിഫോൾട്ട് ആപ്പ്" എന്നതിൽ ടാപ്പ് ചെയ്ത് Chromium തിരഞ്ഞെടുക്കുക.</translation>
 <translation id="372658070733623520">നിങ്ങളുടെ Google അക്കൗണ്ടിൽ Chromium ഡാറ്റ സംരക്ഷിക്കാനും അത് ഉപയോഗിക്കാനും, ഇത് നിങ്ങൾ തന്നെയാണെന്ന് പരിശോധിച്ചുറപ്പിക്കുക.</translation>
 <translation id="3780779443901618967">Google-ന് മുമ്പ് അറിയാത്തവ ഉൾപ്പെടെയുള്ള അപകടകരമായ സൈറ്റുകളെക്കുറിച്ച് സ്‌റ്റാൻഡേർഡ് പരിരക്ഷയിൽ ഉപരിയായി സൈറ്റുകളിൽ നിന്നുള്ള കൂടുതൽ ഡാറ്റ വിശകലനം ചെയ്യുന്നതിലൂടെ മുന്നറിയിപ്പ് നൽകുന്നു. നിങ്ങൾക്ക് Chromium മുന്നറിയിപ്പുകൾ ഒഴിവാക്കാൻ തീരുമാനിക്കാം.</translation>
 <translation id="3784369638459513223">പുതിയ Chromium അദൃശ്യ ടാബ് തുറക്കുന്നു.</translation>
diff --git a/ios/chrome/app/strings/resources/ios_chromium_strings_mn.xtb b/ios/chrome/app/strings/resources/ios_chromium_strings_mn.xtb
index baa205f..68503fb 100644
--- a/ios/chrome/app/strings/resources/ios_chromium_strings_mn.xtb
+++ b/ios/chrome/app/strings/resources/ios_chromium_strings_mn.xtb
@@ -66,7 +66,6 @@
 <translation id="3567399274263440288">Chromium-г бүрэн ашиглахын тулд Chromium-д Google Бүртгэлээрээ нэвтэрнэ үү.</translation>
 <translation id="3639997914391704523">Chromium нь таныг Google Бүртгэлээрээ нэвтрэх үед таны нууц үгнүүдийг шалгах боломжтой.</translation>
 <translation id="3650632991272923014"><ph name="USER_EMAIL1" /> энэ төхөөрөмж дээр Chromium-г ашиглаж байсан бөгөөд хавчуурга, нууц үг болон бусад тохиргоог үлдээсэн.</translation>
-<translation id="3661862315467204831">iOS-т Chromium-н тохиргоог нээгээд дараа нь "Хөтчийн өгөгдмөл АПП"-ыг товшоод Chromium-г сонгоно уу.</translation>
 <translation id="372658070733623520">Google Бүртгэлдээ Chromium-н өгөгдлийг ашиглах болон хадгалахын тулд өөрийгөө мөн болохыг баталгаажуулна уу.</translation>
 <translation id="3780779443901618967">Стандарт хамгаалалтаас илүүтэйгээр сайтуудын бусад өгөгдлийг задлан шинжилснээр танд аюултай сайтуудын талаар сануулах бөгөөд эдгээрт Google-н өмнө нь мэдээгүй сайт ч багтана. Та Chromium-н сануулгыг алгасахаар сонгох боломжтой.</translation>
 <translation id="3784369638459513223">Chromium-н шинэ нууцлалтай табыг нээнэ.</translation>
diff --git a/ios/chrome/app/strings/resources/ios_chromium_strings_mr.xtb b/ios/chrome/app/strings/resources/ios_chromium_strings_mr.xtb
index 2c028df..c65426d 100644
--- a/ios/chrome/app/strings/resources/ios_chromium_strings_mr.xtb
+++ b/ios/chrome/app/strings/resources/ios_chromium_strings_mr.xtb
@@ -66,7 +66,6 @@
 <translation id="3567399274263440288">Chromium चा पुरेपूर वापर करण्यासाठी, तुमचे Google खाते वापरून Chromium मध्ये साइन इन करा.</translation>
 <translation id="3639997914391704523">तुम्ही तुमचे Google खाते वापरून साइन इन करता तेव्हा, Chromium तुमचे पासवर्ड तपासू शकते.</translation>
 <translation id="3650632991272923014"><ph name="USER_EMAIL1" /> हा Chromium वापरत होता आणि त्याने या डिव्हाइसवर बुकमार्क, पासवर्ड आणि इतर सेटिंग्ज ठेवली आहेत.</translation>
-<translation id="3661862315467204831">iOS मध्ये Chromium सेटिंग्ज उघडा, त्यानंतर "ब्राउझर डीफॉल्ट अ‍ॅप" वर टॅप करा आणि Chrome निवडा.</translation>
 <translation id="372658070733623520">तुमच्या Google खाते मधील Chromium डेटा वापरण्यासाठी आणि तो सेव्ह करण्यासाठी, हे तुम्हीच आहात याची पडताळणी करा.</translation>
 <translation id="3780779443901618967">साधारण संरक्षणापेक्षा साइटवरील अधिक डेटाचे विश्लेषण करून, Google ला यापूर्वी माहीत नसलेल्या धोकादायक साइटबद्दल तुम्हाला चेतावणी देते. तुम्ही Chromium च्या चेतावण्या वगळणे निवडू शकता.</translation>
 <translation id="3784369638459513223">नवीन 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 f4782ba..435a575 100644
--- a/ios/chrome/app/strings/resources/ios_chromium_strings_ms.xtb
+++ b/ios/chrome/app/strings/resources/ios_chromium_strings_ms.xtb
@@ -66,7 +66,6 @@
 <translation id="3567399274263440288">Untuk memanfaatkan Chromium sepenuhnya, log masuk ke Chromium dengan Google Account anda.</translation>
 <translation id="3639997914391704523">Chromium boleh menyemak kata laluan anda apabila anda log masuk menggunakan Akaun Google anda.</translation>
 <translation id="3650632991272923014"><ph name="USER_EMAIL1" /> telah menggunakan Chromium dan membiarkan penanda halaman, kata laluan dan tetapan lain pada peranti ini.</translation>
-<translation id="3661862315467204831">Buka Tetapan Chromium dalam iOS, kemudian ketik pada "Penyemak Imbas Lalai APP" dan pilih Chromium.</translation>
 <translation id="372658070733623520">Untuk menggunakan dan menyimpan data Chromium dalam Google Account anda, sahkan identiti anda.</translation>
 <translation id="3780779443901618967">Memberikan amaran kepada anda tentang laman berbahaya, termasuk laman yang tidak diketahui oleh Google sebelum ini, dengan menganalisis lebih banyak data daripada laman berbanding perlindungan standard. Anda boleh memilih untuk melangkau amaran Chromium.</translation>
 <translation id="3784369638459513223">Buka Tab Inkognito Chromium Baharu.</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 3754aa71..cb62136 100644
--- a/ios/chrome/app/strings/resources/ios_chromium_strings_my.xtb
+++ b/ios/chrome/app/strings/resources/ios_chromium_strings_my.xtb
@@ -66,7 +66,6 @@
 <translation id="3567399274263440288">Chromium ကို အကောင်းဆုံးသုံးနိုင်ရန် သင်၏ Google Account ဖြင့် Chromium တွင် လက်မှတ်ထိုးဝင်နိုင်သည်။</translation>
 <translation id="3639997914391704523">သင်၏ Google Account နှင့် လက်မှတ်ထိုးဝင်သည့်အခါ Chromium က သင့်စကားဝှက်များကို စစ်ဆေးနိုင်သည်။</translation>
 <translation id="3650632991272923014"><ph name="USER_EMAIL1" /> က Chromium အသုံးပြုလျက်ရှိပြီး ဤစက်တွင် လိပ်စာ၊ စကားဝှက်နှင့် အခြားဆက်တင်များ ချန်ထားသည်။</translation>
-<translation id="3661862315467204831">iOS တွင် Chromium ဆက်တင်များကို ဖွင့်ပါ၊ ထို့နောက် “မူရင်း ဘရောင်ဇာအက်ပ်” ကို တို့ပြီး Chromium ကို ရွေးပါ။</translation>
 <translation id="372658070733623520">Chromium ဒေတာ သုံးရန်နှင့် သင်၏ Google Account တွင် သိမ်းရန် သင်ဖြစ်ကြောင်းအတည်ပြုပါ။</translation>
 <translation id="3780779443901618967">ပုံမှန်ကာကွယ်မှုထက်ပို၍ ဝဘ်ဆိုက်များထံမှ နောက်ထပ်ဒေတာများကို စိတ်ဖြာလေ့လာခြင်းဖြင့် Google က ယခင် သိထားခြင်းမရှိသော အန္တရာယ်ရှိသည့် ဝဘ်ဆိုက်များအကြောင်း သင့်ကို သတိပေးပါသည်။ Chromium သတိပေးချက်များကို ကျော်ရန် ရွေးနိုင်ပါသည်။</translation>
 <translation id="3784369638459513223">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 fd2c9749..2f08e61 100644
--- a/ios/chrome/app/strings/resources/ios_chromium_strings_ne.xtb
+++ b/ios/chrome/app/strings/resources/ios_chromium_strings_ne.xtb
@@ -65,7 +65,6 @@
 <translation id="3567399274263440288">Chromium बाट बढीभन्दा बढी फाइदा लिन Chromium मा आफ्नो Google खातामार्फत साइन इन गर्नुहोस्।</translation>
 <translation id="3639997914391704523">तपाईंले आफ्नो Google खातामा साइन इन गरेपछि मात्र Chromium ले तपाईंका पासवर्डहरू जाँच्न सक्छ।</translation>
 <translation id="3650632991272923014"><ph name="USER_EMAIL1" /> ले Chromium प्रयोग गर्नुभएको थियो तर यो डिभाइसबाट सेभ गरिएका बुकमार्क, पासवर्ड र अन्य सेटिङ मेटाउनुभएको थिएन।</translation>
-<translation id="3661862315467204831">iOS मा Chromium का सेटिङ खोल्नुहोस्, त्यसपछि "डिफल्ट ब्राउजर एप" मा ट्याप गर्नुहोस् र "Chromium" चयन गर्नुहोस्।</translation>
 <translation id="372658070733623520">तपाईं आफ्नो Google खातामा सेभ गरिएको Chromium डेटा प्रयोग गर्न र Google खातामा थप Chromium डेटा सेभ गर्न चाहनुहुन्छ भने आफ्नो पहिचान पुष्टि गर्नुहोस्।</translation>
 <translation id="3780779443901618967">यसले साइटहरूबाट मानक सुरक्षाले भन्दा धेरै डेटा विश्लेषण गरेर Google लाई पनि यसअघि थाहा नभएका खतरनाक साइटहरूका बारेमा तपाईंलाई चेतावनी दिन्छ। तपाईं Chromium का चेतावनी सेटअप गर्ने प्रक्रिया स्किप गर्न सक्नुहुन्छ।</translation>
 <translation id="3784369638459513223">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 a99b1f5..fc257fec 100644
--- a/ios/chrome/app/strings/resources/ios_chromium_strings_nl.xtb
+++ b/ios/chrome/app/strings/resources/ios_chromium_strings_nl.xtb
@@ -66,7 +66,6 @@
 <translation id="3567399274263440288">Log in bij Chromium met je Google-account om het maximale uit Chromium te halen.</translation>
 <translation id="3639997914391704523">Chromium kan je wachtwoorden checken als je inlogt met je Google-account.</translation>
 <translation id="3650632991272923014"><ph name="USER_EMAIL1" /> heeft Chromium gebruikt en heeft bookmarks, wachtwoorden en andere instellingen op dit apparaat laten staan.</translation>
-<translation id="3661862315467204831">Open Chromium-instellingen in iOS, tik op Standaard browser-app en selecteer Chromium.</translation>
 <translation id="372658070733623520">Bevestig dat jij het bent als je Chromium-gegevens wilt gebruiken en opslaan in je Google-account.</translation>
 <translation id="3780779443901618967">Geeft je waarschuwingen over gevaarlijke sites, zelfs sites die Google niet eerder kende, door meer gegevens van sites te analyseren dan de standaardbeveiliging. Je kunt ervoor kiezen om waarschuwingen voor Chromium over te slaan.</translation>
 <translation id="3784369638459513223">Opent een nieuw Chromium-incognitotabblad.</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 1ebb1b6..150d907e 100644
--- a/ios/chrome/app/strings/resources/ios_chromium_strings_no.xtb
+++ b/ios/chrome/app/strings/resources/ios_chromium_strings_no.xtb
@@ -66,7 +66,6 @@
 <translation id="3567399274263440288">For å få mest mulig ut av Chromium, logg på Chromium med Google-kontoen din.</translation>
 <translation id="3639997914391704523">Chromium kan sjekke passordene dine når du logger på med Google-kontoen din.</translation>
 <translation id="3650632991272923014"><ph name="USER_EMAIL1" /> har brukt Chromium og etterlatt seg bokmerker, passord og andre innstillinger på denne enheten.</translation>
-<translation id="3661862315467204831">Åpne Chromium-innstillingene i iOS, trykk på «Standard nettleserapp», og velg Chromium.</translation>
 <translation id="372658070733623520">For å bruke og lagre Chromium-data i Google-kontoen din, bekreft at det er deg.</translation>
 <translation id="3780779443901618967">Advarer deg om farlige nettsteder, også nettsteder som Google ikke kjenner til fra før, ved å analysere mer data fra nettsteder enn ved standardbeskyttelse. Du kan velge å hoppe over Chromium-advarsler.</translation>
 <translation id="3784369638459513223">Åpner en ny inkognitofane i Chromium.</translation>
diff --git a/ios/chrome/app/strings/resources/ios_chromium_strings_or.xtb b/ios/chrome/app/strings/resources/ios_chromium_strings_or.xtb
index 06f1a95..bf8752d 100644
--- a/ios/chrome/app/strings/resources/ios_chromium_strings_or.xtb
+++ b/ios/chrome/app/strings/resources/ios_chromium_strings_or.xtb
@@ -66,7 +66,6 @@
 <translation id="3567399274263440288">Chromiumରୁ ସବୁଠାରୁ ଅଧିକ ସୁବିଧା ପାଇବା ପାଇଁ, ଆପଣଙ୍କ Google ଆକାଉଣ୍ଟ ମାଧ୍ୟମରେ Chromiumରେ ସାଇନ ଇନ କରନ୍ତୁ।</translation>
 <translation id="3639997914391704523">ଆପଣ ଆପଣଙ୍କ Google ଆକାଉଣ୍ଟ ମାଧ୍ୟମରେ ସାଇନ୍ ଇନ୍ କଲେ, Chromium ଆପଣଙ୍କର ପାସୱାର୍ଡଗୁଡ଼ିକୁ ଯାଞ୍ଚ କରିପାରିବ।</translation>
 <translation id="3650632991272923014"><ph name="USER_EMAIL1" /> ଏହି ଡିଭାଇସରେ Chromium ବ୍ୟବହାର କରି ବୁକମାର୍କ, ପାସୱାର୍ଡ ଏବଂ ଅନ୍ୟ ସେଟିଂସ ଛାଡ଼ିଛନ୍ତି।</translation>
-<translation id="3661862315467204831">iOSରେ Chromium ସେଟିଂସ ଖୋଲନ୍ତୁ, ତା'ପରେ "ବ୍ରାଉଜର ଡିଫ୍ଟଲ୍ଟ ଆପ"ରେ ଟାପ କରି Chromiumକୁ ଚୟନ କରନ୍ତୁ।</translation>
 <translation id="372658070733623520">ଆପଣଙ୍କ Google ଆକାଉଣ୍ଟରେ Chromium ଡାଟା ବ୍ୟବହାର ଏବଂ ସେଭ କରିବାକୁ ଏହା ଆପଣ ବୋଲି ଯାଞ୍ଚ କରନ୍ତୁ।</translation>
 <translation id="3780779443901618967">Google ପୂର୍ବରୁ ଜାଣିନଥିଲେ ମଧ୍ୟ ଏହା ଷ୍ଟାଣ୍ଡାର୍ଡ ସୁରକ୍ଷା ଅପେକ୍ଷା ସାଇଟଗୁଡ଼ିକରୁ ଅଧିକ ଡାଟା ବିଶ୍ଳେଷଣ କରି ବିପଦଜନକ ସାଇଟଗୁଡ଼ିକ ବିଷୟରେ ଚେତାବନୀ ଦେଇଥାଏ। ଆପଣ Chromium ଚେତାବନୀଗୁଡ଼ିକ ବାଦ ଦେବା ପାଇଁ ବାଛିପାରିବେ।</translation>
 <translation id="3784369638459513223">ଏକ ନୂଆ Chromium ଇନକଗ୍ନିଟୋ ଟାବ ଖୋଲେ।</translation>
diff --git a/ios/chrome/app/strings/resources/ios_chromium_strings_pa.xtb b/ios/chrome/app/strings/resources/ios_chromium_strings_pa.xtb
index 65e3016b..196a723 100644
--- a/ios/chrome/app/strings/resources/ios_chromium_strings_pa.xtb
+++ b/ios/chrome/app/strings/resources/ios_chromium_strings_pa.xtb
@@ -66,7 +66,6 @@
 <translation id="3567399274263440288">Chromium ਦਾ ਵੱਧ ਤੋਂ ਵੱਧ ਲਾਹਾ ਲੈਣ ਲਈ, ਆਪਣੇ Google ਖਾਤੇ ਨਾਲ Chromium ਵਿੱਚ ਸਾਈਨ-ਇਨ ਕਰੋ।</translation>
 <translation id="3639997914391704523">ਤੁਹਾਡੇ ਵੱਲੋਂ ਆਪਣੇ Google ਖਾਤੇ ਵਿੱਚ ਸਾਈਨ-ਇਨ ਕਰਨ 'ਤੇ Chromium ਤੁਹਾਡੇ ਪਾਸਵਰਡਾਂ ਦੀ ਜਾਂਚ ਕਰ ਸਕਦਾ ਹੈ।</translation>
 <translation id="3650632991272923014"><ph name="USER_EMAIL1" /> ਵੱਲੋਂ Chromium ਦੀ ਵਰਤੋਂ ਕੀਤੀ ਗਈ ਸੀ ਅਤੇ ਇਸ ਡੀਵਾਈਸ 'ਤੇ ਬੁੱਕਮਾਰਕ, ਪਾਸਵਰਡ ਅਤੇ ਹੋਰ ਸੈਟਿੰਗਾਂ ਨੂੰ ਆਯਾਤ ਨਹੀਂ ਕੀਤਾ ਗਿਆ।</translation>
-<translation id="3661862315467204831">iOS ਵਿੱਚ Chromium ਸੈਟਿੰਗਾਂ ਖੋਲ੍ਹੋ, ਫਿਰ "ਪੂਰਵ-ਨਿਰਧਾਰਿਤ ਬ੍ਰਾਊਜ਼ਰ ਐਪ" 'ਤੇ ਟੈਪ ਕਰੋ ਅਤੇ Chromium ਚੁਣੋ।</translation>
 <translation id="372658070733623520">ਆਪਣੇ Google ਖਾਤੇ ਵਿੱਚ Chromium ਡਾਟੇ ਨੂੰ ਵਰਤਣ ਅਤੇ ਰੱਖਿਅਤ ਕਰਨ ਲਈ, ਆਪਣੀ ਪਛਾਣ ਦੀ ਪੁਸ਼ਟੀ ਕਰੋ।</translation>
 <translation id="3780779443901618967">ਇਹ ਸੁਵਿਧਾ ਮਿਆਰੀ ਸੁਰੱਖਿਆ ਨਾਲੋਂ ਜ਼ਿਆਦਾ ਡਾਟੇ ਦਾ ਵਿਸ਼ਲੇਸ਼ਣ ਕਰ ਕੇ ਤੁਹਾਨੂੰ ਅਜਿਹੀਆਂ ਖਤਰਨਾਕ ਸਾਈਟਾਂ ਬਾਰੇ ਚਿਤਾਵਨੀ ਦਿੰਦੀ ਹੈ ਜਿਨ੍ਹਾਂ ਬਾਰੇ Google ਨੂੰ ਪਹਿਲਾਂ ਨਹੀਂ ਪਤਾ ਸੀ। ਤੁਸੀਂ Chromium ਚਿਤਾਵਨੀਆਂ ਨੂੰ ਛੱਡਣ ਦੀ ਚੋਣ ਕਰ ਸਕਦੇ ਹੋ।</translation>
 <translation id="3784369638459513223">ਇਸ ਨਾਲ ਨਵੀਂ Chromium ਇਨਕੋਗਨਿਟੋ ਟੈਬ ਖੁੱਲ੍ਹਦੀ ਹੈ।</translation>
diff --git a/ios/chrome/app/strings/resources/ios_chromium_strings_pl.xtb b/ios/chrome/app/strings/resources/ios_chromium_strings_pl.xtb
index 74767c9d..468f9dd8 100644
--- a/ios/chrome/app/strings/resources/ios_chromium_strings_pl.xtb
+++ b/ios/chrome/app/strings/resources/ios_chromium_strings_pl.xtb
@@ -66,7 +66,6 @@
 <translation id="3567399274263440288">Aby w pełni wykorzystać możliwości Chromium, zaloguj się na konto Google.</translation>
 <translation id="3639997914391704523">Chromium może sprawdzić Twoje hasła, gdy zalogujesz się na swoje konto Google.</translation>
 <translation id="3650632991272923014">Użytkownik <ph name="USER_EMAIL1" /> korzystał z Chromium i zapisał na tym urządzeniu swoje zakładki, hasła i inne ustawienia.</translation>
-<translation id="3661862315467204831">Otwórz Ustawienia Chromium na iOS, kliknij „Domyślna przeglądarka” i wybierz Chromium.</translation>
 <translation id="372658070733623520">Aby móc zapisywać dane z Chromium na koncie Google i ich używać, potwierdź swoją tożsamość.</translation>
 <translation id="3780779443901618967">Ostrzega o niebezpiecznych witrynach, nawet takich, które wcześniej nie były znane Google. Jest to możliwe dzięki analizowaniu większej ilości danych z witryn niż w trybie standardowej ochrony. Możesz wybrać pomijanie ostrzeżeń Chromium.</translation>
 <translation id="3784369638459513223">Otwiera nową kartę incognito w 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 e9461bd..62b6cf7 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
@@ -66,7 +66,6 @@
 <translation id="3567399274263440288">Para aproveitar o Chromium ao máximo, faça login na sua Conta do Google.</translation>
 <translation id="3639997914391704523">O Chromium pode verificar suas senhas quando você faz login com sua Conta do Google.</translation>
 <translation id="3650632991272923014"><ph name="USER_EMAIL1" /> estava usando o Chromium e deixou favoritos, senhas e outras configurações neste dispositivo.</translation>
-<translation id="3661862315467204831">Abra as configurações do Chromium no iOS, toque em "App de navegação padrão" e selecione o Chromium.</translation>
 <translation id="372658070733623520">Confirme sua identidade para usar e salvar dados do Chromium na sua Conta do Google.</translation>
 <translation id="3780779443901618967">Avisa você sobre sites perigosos, mesmo aqueles que o Google não conhecia, analisando mais dados de sites do que a proteção padrão. Você pode ignorar os avisos do Chromium.</translation>
 <translation id="3784369638459513223">Abre uma nova guia anônima do Chromium.</translation>
diff --git a/ios/chrome/app/strings/resources/ios_chromium_strings_pt-PT.xtb b/ios/chrome/app/strings/resources/ios_chromium_strings_pt-PT.xtb
index 65ffcac..7f40beb 100644
--- a/ios/chrome/app/strings/resources/ios_chromium_strings_pt-PT.xtb
+++ b/ios/chrome/app/strings/resources/ios_chromium_strings_pt-PT.xtb
@@ -66,7 +66,6 @@
 <translation id="3567399274263440288">Para tirar o máximo partido do Chromium, inicie sessão no mesmo com a sua Conta Google.</translation>
 <translation id="3639997914391704523">O Chromium pode verificar as suas palavras-passe quando inicia sessão com a sua Conta Google.</translation>
 <translation id="3650632991272923014"><ph name="USER_EMAIL1" /> estava a utilizar o Chromium e deixou marcadores, palavras-passe e outras definições neste dispositivo.</translation>
-<translation id="3661862315467204831">Abra as Definições do Chromium no iOS, toque em "APP de navegador predefinida" e selecione o Chromium.</translation>
 <translation id="372658070733623520">Para usar e guardar dados do Chromium na sua Conta Google, valide a sua identidade.</translation>
 <translation id="3780779443901618967">Envia-lhe avisos sobre sites perigosos, mesmo aqueles que a Google desconhecia, ao analisar mais dados de sites do que a Proteção padrão. Pode optar por ignorar os avisos do Chromium.</translation>
 <translation id="3784369638459513223">Abre um novo separador anónimo do Chromium.</translation>
diff --git a/ios/chrome/app/strings/resources/ios_chromium_strings_ro.xtb b/ios/chrome/app/strings/resources/ios_chromium_strings_ro.xtb
index b7b9535..360f99d4 100644
--- a/ios/chrome/app/strings/resources/ios_chromium_strings_ro.xtb
+++ b/ios/chrome/app/strings/resources/ios_chromium_strings_ro.xtb
@@ -66,7 +66,6 @@
 <translation id="3567399274263440288">Pentru a profita din plin de Chromium, conectează-te la Chromium folosind Contul Google.</translation>
 <translation id="3639997914391704523">Chromium poate să îți verifice parolele atunci când te conectezi folosind Contul Google.</translation>
 <translation id="3650632991272923014"><ph name="USER_EMAIL1" /> folosea Chromium și marcajele, parolele și alte setări ale sale au rămas pe acest dispozitiv.</translation>
-<translation id="3661862315467204831">Deschide setările Chromium în iOS, apoi atinge Aplicația browser prestabilită și selectează Chromium.</translation>
 <translation id="372658070733623520">Pentru a folosi și a salva datele Chromium în Contul Google, confirmă-ți identitatea.</translation>
 <translation id="3780779443901618967">Te avertizează cu privire la site-uri periculoase, chiar și cele pe care Google nu le cunoștea înainte, analizând mai multe date din site-uri decât Protecția standard. Poți alege să omiți avertismentele din Chromium.</translation>
 <translation id="3784369638459513223">Deschide o nouă filă incognito în 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 260e56e..dee4dfa1 100644
--- a/ios/chrome/app/strings/resources/ios_chromium_strings_ru.xtb
+++ b/ios/chrome/app/strings/resources/ios_chromium_strings_ru.xtb
@@ -66,7 +66,6 @@
 <translation id="3567399274263440288">Чтобы пользоваться всеми возможностями браузера Chromium, войдите в аккаунт Google.</translation>
 <translation id="3639997914391704523">Chromium сможет проверить ваши пароли, если вы войдете в аккаунт Google.</translation>
 <translation id="3650632991272923014">Пользователь <ph name="USER_EMAIL1" />, который работал с Chromium на этом устройстве, не удалил свои закладки, пароли и другие настройки</translation>
-<translation id="3661862315467204831">Откройте настройки Chromium в iOS, затем нажмите "Приложение браузера по умолчанию" и выберите Chromium.</translation>
 <translation id="372658070733623520">Чтобы использовать и сохранять данные Chromium в аккаунте Google, подтвердите свою личность.</translation>
 <translation id="3780779443901618967">Предупреждает об опасных сайтах, даже если раньше они были неизвестны Google. При этом анализируется больше данных по сравнению со стандартной защитой. Вы можете пропускать такие уведомления Chromium.</translation>
 <translation id="3784369638459513223">Откроется новая вкладка инкогнито в Chromium.</translation>
diff --git a/ios/chrome/app/strings/resources/ios_chromium_strings_si.xtb b/ios/chrome/app/strings/resources/ios_chromium_strings_si.xtb
index 1f8d9de..d729f5d 100644
--- a/ios/chrome/app/strings/resources/ios_chromium_strings_si.xtb
+++ b/ios/chrome/app/strings/resources/ios_chromium_strings_si.xtb
@@ -66,7 +66,6 @@
 <translation id="3567399274263440288">Chromium වෙතින් උපරිම ප්‍රයෝජන ලබා ගැනීමට, ඔබගේ Google ගිණුම සමඟ Chromium වෙත පුරන්න.</translation>
 <translation id="3639997914391704523">ඔබ ඔබේ Google ගිණුම සමග පුරන විට Chromium හට ඔබේ මුරපද පරීක්ෂා කළ හැකිය.</translation>
 <translation id="3650632991272923014"><ph name="USER_EMAIL1" /> Chromium භාවිත කරමින් සිටි අතර මෙම උපාංගයේ පිටුසන්, මුරපද සහ වෙනත් සැකසීම් තබා ඇත.</translation>
-<translation id="3661862315467204831">iOS තුළ Chromium සැකසීම් විවෘත කරන්න, ඉන්පසු "බ්‍රවුසර පෙරනිමි යෙදුම" මත තට්ටු කර Chromium තෝරන්න.</translation>
 <translation id="372658070733623520">ඔබේ Google ගිණුමේ Chromium දත්ත භාවිතා කිරීමට සහ සුරැකීමට, ඒ ඔබ බව සත්‍යාපනය කරන්න.</translation>
 <translation id="3780779443901618967">සම්මත ආරක්ෂණයට වඩා අඩවිවලින් වැඩිපුර දත්ත විශ්ලේෂණය කිරීමෙන්, Google කලින් නොදැන සිටි ඒවා පවා, භයානක අඩවි පිළිබඳව ඔබට අනතුරු අඟවයි. ඔබට Chromium අනතුරු ඇඟවීම් මඟ හැරීමට තේරිය හැක.</translation>
 <translation id="3784369638459513223">නව 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 9ea09687..b6bf49c 100644
--- a/ios/chrome/app/strings/resources/ios_chromium_strings_sk.xtb
+++ b/ios/chrome/app/strings/resources/ios_chromium_strings_sk.xtb
@@ -66,7 +66,6 @@
 <translation id="3567399274263440288">Ak chcete využívať Chromium naplno, prihláste sa doň svojím účtom Google.</translation>
 <translation id="3639997914391704523">Keď sa prihlásite účtom Google, Chromium môže skontrolovať vaše heslá.</translation>
 <translation id="3650632991272923014"><ph name="USER_EMAIL1" /> používal(a) Chromium a zanechal(a) záložky, heslá a ďalšie nastavenia v tomto zariadení.</translation>
-<translation id="3661862315467204831">V zariadení so systémom iOS otvorte Nastavenia prehliadača Chromium, klepnite na položku Predvolená aplikácia na prehliadanie a vyberte Chromium.</translation>
 <translation id="372658070733623520">Ak chcete vo svojom účte Google používať a ukladať údaje prehliadača Chromium, overte svoju totožnosť.</translation>
 <translation id="3780779443901618967">Analyzuje viac údajov z webov než štandardná ochrana a upozorňuje vás na nebezpečné weby, dokonca aj také, o ktorých Google predtým nevedel. Upozornenia z prehliadača Chromium môžete preskočiť.</translation>
 <translation id="3784369638459513223">Otvorí novú kartu inkognito v prehliadači Chromium.</translation>
diff --git a/ios/chrome/app/strings/resources/ios_chromium_strings_sl.xtb b/ios/chrome/app/strings/resources/ios_chromium_strings_sl.xtb
index b650aa1a..efca3b9 100644
--- a/ios/chrome/app/strings/resources/ios_chromium_strings_sl.xtb
+++ b/ios/chrome/app/strings/resources/ios_chromium_strings_sl.xtb
@@ -66,7 +66,6 @@
 <translation id="3567399274263440288">Če želite kar najbolje izkoristiti Chromium, se prijavite vanj z računom Google.</translation>
 <translation id="3639997914391704523">Chromium lahko preveri vaša gesla, ko se prijavite z računom Google.</translation>
 <translation id="3650632991272923014">Uporabnik <ph name="USER_EMAIL1" /> je uporabljal Chromium in pustil zaznamke, gesla in druge nastavitve v tej napravi.</translation>
-<translation id="3661862315467204831">V sistemu iOS odprite nastavitve za Chromium, nato se dotaknite »Browser Default APP« (Privzeti brskalnik) in izberite Chromium.</translation>
 <translation id="372658070733623520">Če želite v računu Google uporabljati in shranjevati podatke iz Chromiuma, potrdite, da ste to vi.</translation>
 <translation id="3780779443901618967">Opozori vas o nevarnih spletnih mestih, celo tistih, za katere Google prej ni vedel, in sicer tako, da analizira več podatkov s spletnih mest kot standardna zaščita. Izberete lahko, da preskočite opozorila za Chromium.</translation>
 <translation id="3784369638459513223">Odpre nov anonimni zavihek v Chromiumu.</translation>
diff --git a/ios/chrome/app/strings/resources/ios_chromium_strings_sq.xtb b/ios/chrome/app/strings/resources/ios_chromium_strings_sq.xtb
index c8c201e..7f41055 100644
--- a/ios/chrome/app/strings/resources/ios_chromium_strings_sq.xtb
+++ b/ios/chrome/app/strings/resources/ios_chromium_strings_sq.xtb
@@ -66,7 +66,6 @@
 <translation id="3567399274263440288">Për të marrë maksimumin nga Chromium, identifikohu në Chromium me "Llogarinë tënde të Google".</translation>
 <translation id="3639997914391704523">Chromium mund t'i kontrollojë fjalëkalimet e tua kur të identifikohesh me "Llogarinë tënde të Google".</translation>
 <translation id="3650632991272923014"><ph name="USER_EMAIL1" /> po përdorte Chromium dhe ka lënë faqeshënues, fjalëkalime dhe cilësime të tjera në këtë pajisje.</translation>
-<translation id="3661862315467204831">Hap "Cilësimet" e Chromium në iOS dhe më pas trokit te "Browser Default APP" dhe zgjidh Chromium.</translation>
 <translation id="372658070733623520">Për të përdorur dhe për të ruajtur të dhënat e Chromium në "Llogarinë tënde të Google", verifiko që je ti.</translation>
 <translation id="3780779443901618967">Të paralajmëron për sajtet e rrezikshme, edhe ato që Google nuk i ka njohur më parë, duke analizuar më shumë të dhëna nga sajtet sesa nga mbrojtja standarde. Mund të zgjedhësh që t'i kapërcesh paralajmërimet e Chromium.</translation>
 <translation id="3784369638459513223">Hap një skedë të re "të fshehtë" në 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 f5aee4c..67a1ed5a 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
@@ -66,7 +66,6 @@
 <translation id="3567399274263440288">Da biste koristili Chromium na najbolji način, prijavite se na Chromium pomoću Google naloga.</translation>
 <translation id="3639997914391704523">Chromium može da vam proverava lozinke kada se prijavite pomoću Google naloga.</translation>
 <translation id="3650632991272923014">Korisnik <ph name="USER_EMAIL1" /> je koristio Chromium i ostavio obeleživače, lozinke i druga podešavanja na ovom uređaju.</translation>
-<translation id="3661862315467204831">Otvorite podešavanja Chromium-a u iOS-u, pa dodirnite Podrazumevana aplikacija pregledača i izaberite Chromium.</translation>
 <translation id="372658070733623520">Da biste koristili i čuvali Chromium podatke na Google nalogu, potvrdite svoj identitet.</translation>
 <translation id="3780779443901618967">Upozorava vas na opasne sajtove, čak i na one za koje Google ranije nije znao, analizirajući više podataka sa sajtova nego standardna zaštita. Možete da izaberete da preskočite upozorenja Chromium-a.</translation>
 <translation id="3784369638459513223">Otvara novu Chromium karticu bez arhiviranja.</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 8d447d2..ea40227 100644
--- a/ios/chrome/app/strings/resources/ios_chromium_strings_sr.xtb
+++ b/ios/chrome/app/strings/resources/ios_chromium_strings_sr.xtb
@@ -66,7 +66,6 @@
 <translation id="3567399274263440288">Да бисте користили Chromium на најбољи начин, пријавите се на Chromium помоћу Google налога.</translation>
 <translation id="3639997914391704523">Chromium може да вам проверава лозинке када се пријавите помоћу Google налога.</translation>
 <translation id="3650632991272923014">Корисник <ph name="USER_EMAIL1" /> је користио Chromium и оставио обележиваче, лозинке и друга подешавања на овом уређају.</translation>
-<translation id="3661862315467204831">Отворите подешавања Chromium-а у iOS-у, па додирните Подразумевана апликација прегледача и изаберите Chromium.</translation>
 <translation id="372658070733623520">Да бисте користили и чували Chromium податке на Google налогу, потврдите свој идентитет.</translation>
 <translation id="3780779443901618967">Упозорава вас на опасне сајтове, чак и на оне за које Google раније није знао, анализирајући више података са сајтова него стандардна заштита. Можете да изаберете да прескочите упозорења Chromium-а.</translation>
 <translation id="3784369638459513223">Отвара нову Chromium картицу без архивирања.</translation>
diff --git a/ios/chrome/app/strings/resources/ios_chromium_strings_sv.xtb b/ios/chrome/app/strings/resources/ios_chromium_strings_sv.xtb
index 84d2e84..5f7ba8c 100644
--- a/ios/chrome/app/strings/resources/ios_chromium_strings_sv.xtb
+++ b/ios/chrome/app/strings/resources/ios_chromium_strings_sv.xtb
@@ -66,7 +66,6 @@
 <translation id="3567399274263440288">Logga in i Chromium med Google-kontot så att du får ut mesta möjliga av programmet.</translation>
 <translation id="3639997914391704523">Chromium kan kontrollera dina lösenord när du loggar in med Google-kontot.</translation>
 <translation id="3650632991272923014"><ph name="USER_EMAIL1" /> använde Chromium och har lämnat kvar bokmärken, lösenord och andra inställningar på enheten.</translation>
-<translation id="3661862315467204831">Öppna Chromium-inställningarna i iOS, tryck på Standardwebbläsarapp och välj Chromium.</translation>
 <translation id="372658070733623520">Verifiera din identitet för att använda och spara Chromium-data i ditt Google-konto.</translation>
 <translation id="3780779443901618967">Varnar dig om farliga webbplatser, även sådana som Google inte kände till tidigare, genom att analysera mer data från webbplatser än standardskyddet. Du kan välja att hoppa över Chromium-varningar.</translation>
 <translation id="3784369638459513223">Öppnar en ny inkognitoflik i Chromium.</translation>
diff --git a/ios/chrome/app/strings/resources/ios_chromium_strings_sw.xtb b/ios/chrome/app/strings/resources/ios_chromium_strings_sw.xtb
index b342669b..aba2b80 100644
--- a/ios/chrome/app/strings/resources/ios_chromium_strings_sw.xtb
+++ b/ios/chrome/app/strings/resources/ios_chromium_strings_sw.xtb
@@ -66,7 +66,6 @@
 <translation id="3567399274263440288">Ili unufaike zaidi na Chromium, ingia kwenye Chromium ukitumia Akaunti yako ya Google.</translation>
 <translation id="3639997914391704523">Chromium inaweza kukagua manenosiri yako unapoingia ukitumia Akaunti ya Google.</translation>
 <translation id="3650632991272923014"><ph name="USER_EMAIL1" /> alikuwa akitumia Chromium na akaacha alamisho, manenosiri na mipangilio mingine kwenye kifaa hiki.</translation>
-<translation id="3661862315467204831">Fungua Mipangilio ya Chromium kwenye iOS, kisha uguse "PROGRAMU Chaguomsingi ya Kivinjari" na uchague Chromium.</translation>
 <translation id="372658070733623520">Ili utumie na uhifadhi data ya Chromium katika Akaunti yako ya Google, thibitisha kuwa ni wewe.</translation>
 <translation id="3780779443901618967">Hukutahadharisha kuhusu tovuti hatari, hata zile ambazo hazikutambuliwa na Google hapo awali, kwa kuchambua data zaidi kutoka kwenye tovuti kuliko ulinzi wa kawaida. Unaweza kuchagua kuruka tahadhari za Chromium.</translation>
 <translation id="3784369638459513223">Hufungua Kichupo Fiche Kipya cha Chromium.</translation>
diff --git a/ios/chrome/app/strings/resources/ios_chromium_strings_ta.xtb b/ios/chrome/app/strings/resources/ios_chromium_strings_ta.xtb
index acacfcd..d7c7951a 100644
--- a/ios/chrome/app/strings/resources/ios_chromium_strings_ta.xtb
+++ b/ios/chrome/app/strings/resources/ios_chromium_strings_ta.xtb
@@ -66,7 +66,6 @@
 <translation id="3567399274263440288">Chromiumமில் இருந்து அதிகப் பலன்களைப் பெற, உங்கள் Google கணக்கின் மூலம் Chromiumமில் உள்நுழையவும்.</translation>
 <translation id="3639997914391704523">நீங்கள் Google கணக்கைக் கொண்டு உள்நுழையும்போது Chromium உலாவியால் உங்கள் கடவுச்சொற்களைச் சரிபார்க்க முடியும்.</translation>
 <translation id="3650632991272923014">Chromiumமை <ph name="USER_EMAIL1" /> பயன்படுத்திக் கொண்டிருந்தார். அவர் பயன்படுத்திய புக்மார்க்குகள், கடவுச்சொற்கள், பிற அமைப்புகள் ஆகியவை இந்தச் சாதனத்தில் சேமிக்கப்பட்டுள்ளன.</translation>
-<translation id="3661862315467204831">iOSஸில் Chromium அமைப்புகளைத் திறந்து "உலாவியின் இயல்பான ஆப்ஸ்" என்பதைத் தட்டி Chromium என்பதைத் தேர்ந்தெடுக்கவும்.</translation>
 <translation id="372658070733623520">உங்கள் Google கணக்கில் Chromium தரவைப் பயன்படுத்துவதற்கும் சேமிப்பதற்கும், இது நீங்கள்தான் என்பதை உறுதிப்படுத்தவும்.</translation>
 <translation id="3780779443901618967">தளங்களில் இருந்து தரவைப் பகுப்பாய்வு செய்வதன் மூலம் ஆபத்தான தளங்கள் (இந்தத் தளங்கள் பற்றி Googleளுக்கு முன்கூட்டியே தெரிந்திருக்கவில்லை என்றாலும்கூட) குறித்து உங்களை எச்சரிக்கும். இயல்பான பாதுகாப்பைக் காட்டிலும் அதிகளவில் 'தரவுப் பகுப்பாய்வு' செய்யப்படும். Chromium வழங்கும் எச்சரிக்கைகளை நீங்கள் தவிர்க்கலாம்.</translation>
 <translation id="3784369638459513223">Chromiumமில் புதிய மறைநிலைப் பக்கத்தைத் திறக்கும்.</translation>
diff --git a/ios/chrome/app/strings/resources/ios_chromium_strings_te.xtb b/ios/chrome/app/strings/resources/ios_chromium_strings_te.xtb
index 11d17e4..9817cd0 100644
--- a/ios/chrome/app/strings/resources/ios_chromium_strings_te.xtb
+++ b/ios/chrome/app/strings/resources/ios_chromium_strings_te.xtb
@@ -66,7 +66,6 @@
 <translation id="3567399274263440288">Chromium నుండి అత్యంత ఎక్కువ ప్రయోజనం పొందడం కోసం, మీ Google ఖాతాతో Chromiumకు సైన్ ఇన్ చేయండి.</translation>
 <translation id="3639997914391704523">మీరు మీ Google ఖాతాతో సైన్ ఇన్ చేసినప్పుడు, Chromium మీ పాస్‌వర్డ్‌లను చెక్ చేయగలదు.</translation>
 <translation id="3650632991272923014"><ph name="USER_EMAIL1" /> Chromiumను ఉపయోగిస్తూ, బుక్‌మార్క్‌లు, పాస్‌వర్డ్‌లు, ఇతర సెట్టింగ్‌లను ఈ పరికరంలో అలాగే ఉంచారు.</translation>
-<translation id="3661862315467204831">iOSలో Chromium సెట్టింగ్‌లను తెరిచి, ఆపై "ఆటోమేటిక్ బ్రౌజర్ APP"ని ట్యాప్ చేసి, Chromiumను ఎంచుకోండి.</translation>
 <translation id="372658070733623520">మీ Google ఖాతాలో Chromium డేటాను ఉపయోగించడానికి, సేవ్ చేయడానికి, ఇది మీరేనని వెరిఫై చేయండి.</translation>
 <translation id="3780779443901618967">స్టాండర్డ్ రక్షణ కంటే ఎక్కువగా సైట్‌లలోని డేటాను విశ్లేషించి, Googleకు మనుపెన్నడూ తెలియని ప్రమాదకరమైన సైట్‌ల గురించి కూడా ఇది హెచ్చరిస్తుంది. Chromium హెచ్చరికలను స్కిప్ చేయడానికి మీరు ఎంచుకోవచ్చు.</translation>
 <translation id="3784369638459513223">కొత్త Chromium అజ్ఞాత ట్యాబ్‌ను తెరుస్తుంది.</translation>
diff --git a/ios/chrome/app/strings/resources/ios_chromium_strings_th.xtb b/ios/chrome/app/strings/resources/ios_chromium_strings_th.xtb
index 8cec52d..37edeb89 100644
--- a/ios/chrome/app/strings/resources/ios_chromium_strings_th.xtb
+++ b/ios/chrome/app/strings/resources/ios_chromium_strings_th.xtb
@@ -66,7 +66,6 @@
 <translation id="3567399274263440288">ลงชื่อเข้าใช้ Chromium ด้วยบัญชี Google เพื่อรับประโยชน์สูงสุดจาก Chromium</translation>
 <translation id="3639997914391704523">Chromium จะตรวจสอบรหัสผ่านได้เมื่อคุณลงชื่อเข้าใช้ด้วยบัญชี Google</translation>
 <translation id="3650632991272923014"><ph name="USER_EMAIL1" /> ได้ใช้ Chromium และเก็บบุ๊กมาร์ก รหัสผ่าน รวมถึงการตั้งค่าอื่นๆ ไว้ในอุปกรณ์นี้</translation>
-<translation id="3661862315467204831">เปิดการตั้งค่า Chromium ใน iOS จากนั้นแตะ "แอปเบราว์เซอร์เริ่มต้น" แล้วเลือก Chromium</translation>
 <translation id="372658070733623520">โปรดยืนยันว่าเป็นคุณเพื่อใช้และบันทึกข้อมูล Chromium</translation>
 <translation id="3780779443901618967">เตือนคุณเกี่ยวกับเว็บไซต์ที่เป็นอันตราย แม้แต่เว็บไซต์ที่ Google ไม่เคยรู้จักมาก่อนด้วยการวิเคราะห์ข้อมูลจากเว็บไซต์มากกว่าการปกป้องแบบมาตรฐาน คุณเลือกข้ามคำเตือนของ Chromium ได้</translation>
 <translation id="3784369638459513223">เปิดแท็บที่ไม่ระบุตัวตนใหม่ใน Chromium</translation>
diff --git a/ios/chrome/app/strings/resources/ios_chromium_strings_tr.xtb b/ios/chrome/app/strings/resources/ios_chromium_strings_tr.xtb
index 2dbdc02..60f664f 100644
--- a/ios/chrome/app/strings/resources/ios_chromium_strings_tr.xtb
+++ b/ios/chrome/app/strings/resources/ios_chromium_strings_tr.xtb
@@ -66,7 +66,6 @@
 <translation id="3567399274263440288">Chromium'dan en iyi şekilde yararlanmak için Google Hesabı'nızla Chromium'da oturum açın.</translation>
 <translation id="3639997914391704523">Chromium, Google Hesabınızla oturum açtığınızda şifrelerinizi kontrol edebilir.</translation>
 <translation id="3650632991272923014"><ph name="USER_EMAIL1" />, Chromium'u kullanıyordu, ardından yer işaretlerini, şifrelerini ve diğer ayarlarını bu cihazda bıraktı.</translation>
-<translation id="3661862315467204831">iOS'te Chromium Ayarları'nı açtıktan sonra "Varsayılan Tarayıcı Uygulaması"na dokunup Chromium'u seçin.</translation>
 <translation id="372658070733623520">Chromium verilerini kullanmak ve Google Hesabınıza kaydetmek için kimliğinizi doğrulayın.</translation>
 <translation id="3780779443901618967">Standart korumaya ek olarak sitelerden alınmış daha fazla veriyi analiz ederek Google'ın daha önce bilmedikleri de dahil olmak üzere tehlikeli siteler hakkında sizi uyarır. Chromium uyarılarını atlamayı seçebilirsiniz.</translation>
 <translation id="3784369638459513223">Yeni bir Chromium gizli sekmesi açar.</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 ffc5420..b8aff28 100644
--- a/ios/chrome/app/strings/resources/ios_chromium_strings_uk.xtb
+++ b/ios/chrome/app/strings/resources/ios_chromium_strings_uk.xtb
@@ -66,7 +66,6 @@
 <translation id="3567399274263440288">Щоб користуватися всіма можливостями Chromium, увійдіть в обліковий запис Google у цьому веб-переглядачі.</translation>
 <translation id="3639997914391704523">Chromium зможе перевірити ваші паролі, коли ви ввійдете в обліковий запис Google.</translation>
 <translation id="3650632991272923014">Користувач <ph name="USER_EMAIL1" /> застосовував Chromium і зберіг закладки, паролі й інші налаштування на цьому пристрої.</translation>
-<translation id="3661862315467204831">На пристрої iOS відкрийте налаштування Chromium, натисніть "Веб-переглядач за умовчанням" і виберіть Chromium.</translation>
 <translation id="372658070733623520">Щоб зберігати й використовувати дані Chromium в обліковому записі Google, підтвердьте свою особу.</translation>
 <translation id="3780779443901618967">Попереджає вас про небезпечні сайти, навіть раніше невідомі Google, аналізуючи більше даних від сайтів, ніж системи стандартного захисту. Ви можете пропустити попередження Chromium.</translation>
 <translation id="3784369638459513223">Відкриває нову анонімну вкладку 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 4cb8938..da6ec10 100644
--- a/ios/chrome/app/strings/resources/ios_chromium_strings_ur.xtb
+++ b/ios/chrome/app/strings/resources/ios_chromium_strings_ur.xtb
@@ -66,7 +66,6 @@
 <translation id="3567399274263440288">‏Chromium سے بھرپور فائدہ اٹھانے کے لیے اپنے Google اکاؤنٹ کے ساتھ Chromium میں سائن ان کریں۔</translation>
 <translation id="3639997914391704523">‏جب آپ اپنے Google اکاؤنٹ سے سائن ان کرتے ہیں تو Chromium آپ کے پاس ورڈز کو چیک کر سکتا ہے۔</translation>
 <translation id="3650632991272923014">‏<ph name="USER_EMAIL1" /> Chromium استعمال کر رہا تھا اور اس آلہ پر بُک مارکس، پاس ورڈز اور دیگر ترتیبات چھوڑ دی ہیں۔</translation>
-<translation id="3661862315467204831">‏iOS میں Chromium کی ترتیبات کھولیں، پھر "ڈیفالٹ براؤزر ایپ" پر تھپتھپائیں اور Chromium منتخب کریں۔</translation>
 <translation id="372658070733623520">‏اپنے Google اکاؤنٹ میں Chromium ڈیٹا کا استعمال اور اسے محفوظ کرنے کیلئے، توثیق کریں کہ یہ آپ ہی ہیں۔</translation>
 <translation id="3780779443901618967">‏معیاری تحفظ سے زیادہ سائٹس کے ڈیٹا کا تجزیہ کر کے، آپ کو خطرناک سائٹس، یہاں تک کہ جن کے بارے میں Google پہلے نہیں جانتا تھا، کے بارے میں خبردار کرتا ہے۔ آپ Chromium وارننگز کو نظر انداز کرنے کا انتخاب کر سکتے ہیں۔</translation>
 <translation id="3784369638459513223">‏Chromium کے نئے پوشیدگی ٹیب میں کھلتا ہے۔</translation>
diff --git a/ios/chrome/app/strings/resources/ios_chromium_strings_uz.xtb b/ios/chrome/app/strings/resources/ios_chromium_strings_uz.xtb
index db6ae2b..b3920efa 100644
--- a/ios/chrome/app/strings/resources/ios_chromium_strings_uz.xtb
+++ b/ios/chrome/app/strings/resources/ios_chromium_strings_uz.xtb
@@ -65,7 +65,6 @@
 <translation id="3567399274263440288">Chromium imkoniyatlaridan maksimal foydalanish uchun Chromiumga Google hisobingiz bilan kiring.</translation>
 <translation id="3639997914391704523">Google hisobingizga kirsangiz, Chromium parollaringizni tekshira oladi.</translation>
 <translation id="3650632991272923014"><ph name="USER_EMAIL1" /> Chromium ishlatardi va bu qurilmada uning bukmarklar, parollar va boshqa sozlamalari qolgan.</translation>
-<translation id="3661862315467204831">iOSda Chromium sozlamalarini ochib, keyin “Birlamchi brauzer ILOVASI” ustiga bosib, Chromiumni tanlang.</translation>
 <translation id="372658070733623520">Chromium maʼlumotlarini Google hisobida saqlash va ulardan foydalanish uchun shaxsingizni tasdiqlang.</translation>
 <translation id="3780779443901618967">Standart himoyadan koʻra koʻproq saytlardan olingan maʼlumotlarni tahlil qilish orqali sizni xavfli saytlar, hatto Google ilgari bilmagan saytlar haqida ogohlantiradi. Chromium ogohlantirishlarini eʼtiborsiz qoldirishni tanlashingiz mumkin.</translation>
 <translation id="3784369638459513223">Chromiumda yangi inkognito varaq ochadi.</translation>
diff --git a/ios/chrome/app/strings/resources/ios_chromium_strings_vi.xtb b/ios/chrome/app/strings/resources/ios_chromium_strings_vi.xtb
index 3f80539..42d23e5 100644
--- a/ios/chrome/app/strings/resources/ios_chromium_strings_vi.xtb
+++ b/ios/chrome/app/strings/resources/ios_chromium_strings_vi.xtb
@@ -66,7 +66,6 @@
 <translation id="3567399274263440288">Để khai thác tối đa Chromium, hãy đăng nhập vào Chromium bằng Tài khoản Google của bạn.</translation>
 <translation id="3639997914391704523">Chromium có thể kiểm tra mật khẩu khi bạn đăng nhập bằng Tài khoản Google của mình.</translation>
 <translation id="3650632991272923014"><ph name="USER_EMAIL1" /> đã dùng Chromium và lưu lại dấu trang, mật khẩu cũng như các chế độ cài đặt khác trên thiết bị này.</translation>
-<translation id="3661862315467204831">Mở phần Cài đặt Chromium trong iOS, sau đó nhấn vào "Ứng dụng trình duyệt mặc định" và chọn Chromium.</translation>
 <translation id="372658070733623520">Để sử dụng và lưu dữ liệu Chromium trong Tài khoản Google, hãy xác minh danh tính của bạn.</translation>
 <translation id="3780779443901618967">Cảnh báo cho bạn về các trang web nguy hiểm, kể cả trang web mà Google chưa từng biết, bằng cách phân tích nhiều dữ liệu trên các trang web hơn so với chế độ bảo vệ tiêu chuẩn. Bạn có thể chọn bỏ qua cảnh báo của Chromium.</translation>
 <translation id="3784369638459513223">Mở thẻ ẩn danh mới trên Chromium.</translation>
diff --git a/ios/chrome/app/strings/resources/ios_chromium_strings_zh-CN.xtb b/ios/chrome/app/strings/resources/ios_chromium_strings_zh-CN.xtb
index be1fe10..636abc7 100644
--- a/ios/chrome/app/strings/resources/ios_chromium_strings_zh-CN.xtb
+++ b/ios/chrome/app/strings/resources/ios_chromium_strings_zh-CN.xtb
@@ -63,7 +63,6 @@
 <translation id="3567399274263440288">若要充分利用 Chromium,请使用您的 Google 账号登录 Chromium。</translation>
 <translation id="3639997914391704523">您需要先登录 Google 账号才能使用 Chromium 的密码检查功能。</translation>
 <translation id="3650632991272923014"><ph name="USER_EMAIL1" /> 原本使用 Chromium,并在此设备上保存了书签、密码及其他设置。</translation>
-<translation id="3661862315467204831">在 iOS 中打开 Chromium 设置,然后点按“浏览器默认应用”并选择“Chromium”。</translation>
 <translation id="372658070733623520">如要将 Chromium 数据保存在您的 Google 账号中并使用这些数据,请确认是您本人在操作。</translation>
 <translation id="3780779443901618967">通过比“标准保护”机制分析更多的网站数据,针对危险网站(甚至是 Google 未曾得知的网站)向您发出警告。您可以选择忽略 Chromium 警告。</translation>
 <translation id="3784369638459513223">打开新的 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 27187b0f..a18a0cc 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
@@ -66,7 +66,6 @@
 <translation id="3567399274263440288">如要充分運用 Chromium 的所有功能,請透過 Google 帳戶登入 Chromium。</translation>
 <translation id="3639997914391704523">Chromium 可在您使用 Google 帳戶登入時檢查密碼。</translation>
 <translation id="3650632991272923014"><ph name="USER_EMAIL1" /> 之前曾在此裝置上使用 Chromium,並儲存書籤、密碼和其他設定。</translation>
-<translation id="3661862315467204831">在 iOS 中開啟 Chromium 設定,輕按 [瀏覽器預設應用程式],然後選取 [Chromium]。</translation>
 <translation id="372658070733623520">如要將 Chromium 的資料儲存至 Google 帳戶及使用這類資料,請驗證身分。</translation>
 <translation id="3780779443901618967">此防護機制分析的網站資料比標準保護多,因此即使是 Google 不知道的網站,此防護機制亦能提供危險網站警告。你可選擇略過 Chromium 警告。</translation>
 <translation id="3784369638459513223">開啟新的 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 8ec9dd9..8a04831d 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
@@ -66,7 +66,6 @@
 <translation id="3567399274263440288">如要充分運用 Chromium 的所有功能,請透過 Google 帳戶登入 Chromium。</translation>
 <translation id="3639997914391704523">如果你使用 Google 帳戶登入,Chromium 可以檢查你的密碼。</translation>
 <translation id="3650632991272923014"><ph name="USER_EMAIL1" /> 原本使用 Chromium,並將書籤、密碼和其他設定儲存在裝置上。</translation>
-<translation id="3661862315467204831">在 iOS 中開啟 Chromium 設定,輕觸「瀏覽器預設應用程式」,然後選取「Chromium」。</translation>
 <translation id="372658070733623520">如要將 Chromium 的資料儲存到 Google 帳戶及使用這類資料,請驗證身分。</translation>
 <translation id="3780779443901618967">這項防護機制分析的網站資料比標準防護來得多,因此即使是 Google 不知道的網站,這項防護機制也能提供危險網站警告。你可以選擇略過 Chromium 的警告。</translation>
 <translation id="3784369638459513223">開啟新的 Chromium 無痕分頁。</translation>
diff --git a/ios/chrome/app/strings/resources/ios_chromium_strings_zu.xtb b/ios/chrome/app/strings/resources/ios_chromium_strings_zu.xtb
index cf10ca58..2c294845 100644
--- a/ios/chrome/app/strings/resources/ios_chromium_strings_zu.xtb
+++ b/ios/chrome/app/strings/resources/ios_chromium_strings_zu.xtb
@@ -66,7 +66,6 @@
 <translation id="3567399274263440288">Ukuze uthole okuningi kwe-Chromium, ngena ngemvume ku-Chromium nge-Google Account yakho</translation>
 <translation id="3639997914391704523">I-Chromium ingahlola amaphasiwedi akho uma ungena ngemvume nge-Akhawunti yakho ye-Google.</translation>
 <translation id="3650632991272923014">U-<ph name="USER_EMAIL1" /> ubesebenzisa i-Chromium futhi washiya amabhukhimakhi, amaphasiwedi, namanye amasethingi kule divayisi.</translation>
-<translation id="3661862315467204831">Vula Amasethingi we-Chromium ku-iOS, bese uthepha kokuthi "I-APP Ezenzakalelayo Yebhrawuza" bese ukhetha i-Chromium.</translation>
 <translation id="372658070733623520">Ukuze usebenzise futhi ulondoloze idatha ye-Chromium ku-Google Account yakho, qinisekisa ukuthi nguwe.</translation>
 <translation id="3780779443901618967">Ikuxwayisa mayelana namasayithi ayingozi, ngisho nalawo i-Google ebingazi ngawo ngaphambilini, ngokuhlaziya idatha eningi evela kumasayithi kunokuvikela okujwayelekile. Ungakhetha ukweqa izixwayiso ze-Chromium.</translation>
 <translation id="3784369638459513223">Ivula ithebhu ye-incognito entsha ye-Chromium.</translation>
diff --git a/ios/chrome/app/strings/resources/ios_google_chrome_strings_af.xtb b/ios/chrome/app/strings/resources/ios_google_chrome_strings_af.xtb
index 1ab1c54..48dff9a6 100644
--- a/ios/chrome/app/strings/resources/ios_google_chrome_strings_af.xtb
+++ b/ios/chrome/app/strings/resources/ios_google_chrome_strings_af.xtb
@@ -56,7 +56,6 @@
 <translation id="2732745070297234559">Chrome kon nie alle wagwoorde nagaan nie. Probeer môre weer.</translation>
 <translation id="2736805085127235148">Chrome-kennisgewings is tans in jou toestelinstellings afgeskakel.</translation>
 <translation id="2767464022270041271">Geen gestoorde wagwoorde nie. Google Wagwoordbestuurder kan jou wagwoorde nagaan wanneer jy hulle stoor.</translation>
-<translation id="2840432500933227975">Maak Chrome-instellings in iOS oop, en tik dan op “Blaaierverstekapp” en kies Chrome.</translation>
 <translation id="2868822340714096138">Vee blaaierdata in Chrome uit</translation>
 <translation id="2869959624320573933">Meld by Chrome aan</translation>
 <translation id="2876628302275096482">Kom meer te wete oor <ph name="BEGIN_LINK" />hoe Chrome jou data privaat hou<ph name="END_LINK" /></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 7c5d52ff..33db74d 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
@@ -56,7 +56,6 @@
 <translation id="2732745070297234559">Chrome ሁሉንም የይለፍ ቃላት ማረጋገጥ አልቻለም። ነገ እንደገና ይሞክሩ።</translation>
 <translation id="2736805085127235148">አሁን ላይ በእርስዎ የመሣሪያ ቅንብሮች ውስጥ የChrome ማሳወቂያዎች ጠፍተዋል።</translation>
 <translation id="2767464022270041271">ምንም የተቀመጡ የይለፍ ቃላት የሉም። Google የይለፍ ቃል አስተዳዳሪ የይለፍ ቃላትዎን ሲያስቀምጡ ሊፈትሻቸው ይችላል።</translation>
-<translation id="2840432500933227975">በiOS ውስጥ የChrome ቅንብሮችን ይክፈቱ ከዚያ «አሳሸ ነባሪ ኤፒፒ» ላይ መታ ይድርጉ እና Chromeን ይምረጡ።</translation>
 <translation id="2868822340714096138">Chrome ውስጥ የአሰሳ ውሂብን ያጽዱ</translation>
 <translation id="2869959624320573933">በመለያ ወደ Chrome ይግቡ</translation>
 <translation id="2876628302275096482"><ph name="BEGIN_LINK" />Chrome እንዴት የእርስዎን ውሂብ በግል እንደሚያስቀምጥ<ph name="END_LINK" /> የበለጠ ይወቁ</translation>
diff --git a/ios/chrome/app/strings/resources/ios_google_chrome_strings_ar.xtb b/ios/chrome/app/strings/resources/ios_google_chrome_strings_ar.xtb
index da810e7b..bca1d8e 100644
--- a/ios/chrome/app/strings/resources/ios_google_chrome_strings_ar.xtb
+++ b/ios/chrome/app/strings/resources/ios_google_chrome_strings_ar.xtb
@@ -56,7 +56,6 @@
 <translation id="2732745070297234559">‏تعذّر على متصفِّح Chrome التحقُّق من جميع كلمات المرور. يُرجى إعادة المحاولة غدًا.</translation>
 <translation id="2736805085127235148">‏إنّ إشعارات Chrome غير مفعَّلة حاليًا في إعدادات جهازك.</translation>
 <translation id="2767464022270041271">‏ما مِن كلمات مرور محفوظة. لا يستطيع "مدير كلمات المرور في Google" التأكد من كلمات المرور إلّا عند حفظها.</translation>
-<translation id="2840432500933227975">‏افتح إعدادات Chrome على جهاز iOS، ثم انقر على Default Browser App (تطبيق المتصفِّح التلقائي) واختَر Chrome.</translation>
 <translation id="2868822340714096138">‏محو بيانات التصفُّح في Chrome</translation>
 <translation id="2869959624320573933">‏تسجيل الدخول إلى Chrome</translation>
 <translation id="2876628302275096482">‏مزيد من المعلومات حول <ph name="BEGIN_LINK" />الطريقة التي يتّبعها Chrome للحفاظ على خصوصية بياناتك<ph name="END_LINK" /></translation>
diff --git a/ios/chrome/app/strings/resources/ios_google_chrome_strings_as.xtb b/ios/chrome/app/strings/resources/ios_google_chrome_strings_as.xtb
index 81c1adc..121411b 100644
--- a/ios/chrome/app/strings/resources/ios_google_chrome_strings_as.xtb
+++ b/ios/chrome/app/strings/resources/ios_google_chrome_strings_as.xtb
@@ -56,7 +56,6 @@
 <translation id="2732745070297234559">Chromeএ সকলো পাছৱৰ্ড পৰীক্ষা কৰিব নোৱাৰিলে। কাইলৈ পুনৰ চেষ্টা কৰক।</translation>
 <translation id="2736805085127235148">আপোনাৰ ডিভাইচৰ ছেটিঙত বৰ্তমান Chromeৰ জাননী অফ কৰা আছে।</translation>
 <translation id="2767464022270041271">কোনো ছেভ কৰা পাছৱৰ্ড নাই। আপুনি নিজৰ পাছৱৰ্ডসমূহ ছেভ কৰিলে Google Password Managerএ সেইসমূহ পৰীক্ষা কৰিব পাৰে।</translation>
-<translation id="2840432500933227975">iOSত Chromeৰ ছেটিং খোলক আৰু তাৰ পাছত "ব্ৰাউজাৰৰ ডিফ’ল্ট এপ"ত টিপক আৰু Chrome বাছনি কৰক।</translation>
 <translation id="2868822340714096138">Chromeত ব্ৰাউজিঙৰ ডেটা মচক</translation>
 <translation id="2869959624320573933">Chromeত ছাইন-ইন কৰক</translation>
 <translation id="2876628302275096482"><ph name="BEGIN_LINK" />Chromeএ কেনেকৈ আপোনাৰ ডেটা ব্যক্তিগত কৰি ৰাখে<ph name="END_LINK" /> সেই বিষয়ে অধিক জানক</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 6e02c17..f376c57 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
@@ -56,7 +56,6 @@
 <translation id="2732745070297234559">Chrome bütün parolları yoxlaya bilmədi. Sabah yenidən cəhd edin.</translation>
 <translation id="2736805085127235148">Hazırda Chrome bildirişləri cihaz ayarlarında deaktivdir.</translation>
 <translation id="2767464022270041271">Yadda saxlanmış parol yoxdur. Parollarınızı yadda saxladıqda Google Parol Meneceri onları yoxlaya bilər.</translation>
-<translation id="2840432500933227975">iOS-da Chrome ayarlarını açın, sonra "Defolt Brauzer TƏTBİQİ" üzərinə toxunun və Chrome seçin.</translation>
 <translation id="2868822340714096138">Chrome-da baxış datasını silin</translation>
 <translation id="2869959624320573933">Chrome'a daxil olun</translation>
 <translation id="2876628302275096482"><ph name="BEGIN_LINK" />Chrome-un datanı məxfi saxlaması<ph name="END_LINK" /> haqqında ətraflı</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 a8d0842a..89996c1 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
@@ -56,7 +56,6 @@
 <translation id="2732745070297234559">Браўзеру Chrome не ўдалося праверыць усе паролі. Паўтарыце спробу заўтра.</translation>
 <translation id="2736805085127235148">Апавяшчэнні Chrome адключаны ў наладах прылады.</translation>
 <translation id="2767464022270041271">Няма захаваных пароляў. Менеджар пароляў Google можа правяраць толькі захаваныя паролі.</translation>
-<translation id="2840432500933227975">Адкрыйце налады Chrome у iOS, затым націсніце "СТАНДАРТНАЯ ПРАГРАМА браўзера" і выберыце Chrome.</translation>
 <translation id="2868822340714096138">Выдаліць даныя пра работу ў браўзеры Chrome</translation>
 <translation id="2869959624320573933">Увайдзіце ў Chrome</translation>
 <translation id="2876628302275096482">Даведайцеся больш пра тое, <ph name="BEGIN_LINK" />як Chrome забяспечвае прыватнасць вашых даных<ph name="END_LINK" /></translation>
diff --git a/ios/chrome/app/strings/resources/ios_google_chrome_strings_bg.xtb b/ios/chrome/app/strings/resources/ios_google_chrome_strings_bg.xtb
index a24df3c1b..7de3db4 100644
--- a/ios/chrome/app/strings/resources/ios_google_chrome_strings_bg.xtb
+++ b/ios/chrome/app/strings/resources/ios_google_chrome_strings_bg.xtb
@@ -56,7 +56,6 @@
 <translation id="2732745070297234559">Chrome не успя да провери всички пароли. Опитайте отново утре.</translation>
 <translation id="2736805085127235148">Понастоящем известията в Chrome са изключени от настройките на устройството ви.</translation>
 <translation id="2767464022270041271">Няма запазени пароли. Google Мениджър на пароли може да проверява паролите ви, когато ги запазите.</translation>
-<translation id="2840432500933227975">Отворете настройките на Chrome на устройство с iOS, докоснете „Стандартно приложение за браузър“ и изберете Chrome.</translation>
 <translation id="2868822340714096138">Изчистване на данните за сърфирането в Chrome</translation>
 <translation id="2869959624320573933">Влизане в Chrome</translation>
 <translation id="2876628302275096482">Научете повече за това <ph name="BEGIN_LINK" />как Chrome се грижи за поверителността на данните ви<ph name="END_LINK" /></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 8ffa6c3..f184a34 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
@@ -56,7 +56,6 @@
 <translation id="2732745070297234559">Chrome সব পাসওয়ার্ড চেক করতে পারেনি। আগামীকাল আবার চেষ্টা করে দেখুন।</translation>
 <translation id="2736805085127235148">আপনার ডিভাইস সেটিংসে বর্তমান Chrome বিজ্ঞপ্তিগুলি বন্ধ করা আছে।</translation>
 <translation id="2767464022270041271">কোনও সেভ করা পাসওয়ার্ড নেই। আপনি পাসওয়ার্ড সেভ করলে Google Password Manager সেটি চেক করতে পারবে।</translation>
-<translation id="2840432500933227975">iOS অপারেটিং সিস্টেমে Chrome সেটিংস খুলুন, তারপর "ব্রাউজার ডিফল্ট অ্যাপ" বিকল্পে ট্যাপ করে Chrome বেছে নিন।</translation>
 <translation id="2868822340714096138">Chrome-এ ব্রাউজ করা ডেটা মুছুন</translation>
 <translation id="2869959624320573933">Chrome-এ সাইন-ইন করুন</translation>
 <translation id="2876628302275096482"><ph name="BEGIN_LINK" />Chrome কীভাবে আপনার ডেটা ব্যক্তিগত রাখে<ph name="END_LINK" /> সেই সম্পর্কে আরও জানুন</translation>
diff --git a/ios/chrome/app/strings/resources/ios_google_chrome_strings_bs.xtb b/ios/chrome/app/strings/resources/ios_google_chrome_strings_bs.xtb
index 7366f04..d50b3a7e 100644
--- a/ios/chrome/app/strings/resources/ios_google_chrome_strings_bs.xtb
+++ b/ios/chrome/app/strings/resources/ios_google_chrome_strings_bs.xtb
@@ -56,7 +56,6 @@
 <translation id="2732745070297234559">Chrome nije mogao provjeriti sve lozinke. Pokušajte ponovo sutra.</translation>
 <translation id="2736805085127235148">Obavještenja Chromea su trenutno isključena u postavkama uređaja.</translation>
 <translation id="2767464022270041271">Nije sačuvana nijedna lozinka. Google upravitelj lozinki može provjeriti vaše lozinke kada ih sačuvate.</translation>
-<translation id="2840432500933227975">Otvorite Postavke Chromea u iOS-u pa dodirnite "Zadani APP za preglednik" i odaberite Chrome.</translation>
 <translation id="2868822340714096138">Obriši podatke o pregledanju u Chromeu</translation>
 <translation id="2869959624320573933">Prijavite se na Chrome</translation>
 <translation id="2876628302275096482">Saznajte više o tome <ph name="BEGIN_LINK" />kako Chrome štiti privatnost vaših podataka<ph name="END_LINK" /></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 6789e0b..3610697 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
@@ -56,7 +56,6 @@
 <translation id="2732745070297234559">Chrome no ha pogut comprovar totes les contrasenyes. Torna-ho a provar demà.</translation>
 <translation id="2736805085127235148">En aquests moments, les notificacions de Chrome estan desactivades a la configuració del dispositiu.</translation>
 <translation id="2767464022270041271">No hi ha cap contrasenya desada. El gestor de contrasenyes de Google pot comprovar les teves contrasenyes quan les deses.</translation>
-<translation id="2840432500933227975">Obre la configuració de Chrome a iOS, toca App de navegació per omissió i selecciona Chrome.</translation>
 <translation id="2868822340714096138">Esborra les dades de navegació a Chrome</translation>
 <translation id="2869959624320573933">Inicia la sessió a Chrome</translation>
 <translation id="2876628302275096482">Més informació sobre <ph name="BEGIN_LINK" />com Chrome manté la privadesa de les teves dades<ph name="END_LINK" /></translation>
diff --git a/ios/chrome/app/strings/resources/ios_google_chrome_strings_cs.xtb b/ios/chrome/app/strings/resources/ios_google_chrome_strings_cs.xtb
index b4f8526..500e322 100644
--- a/ios/chrome/app/strings/resources/ios_google_chrome_strings_cs.xtb
+++ b/ios/chrome/app/strings/resources/ios_google_chrome_strings_cs.xtb
@@ -56,7 +56,6 @@
 <translation id="2732745070297234559">Chromu se nepodařilo zkontrolovat všechna hesla. Zkuste to znovu zítra.</translation>
 <translation id="2736805085127235148">Oznámení prohlížeče Chrome jsou aktuálně v nastavení zařízení vypnutá.</translation>
 <translation id="2767464022270041271">Nemáte žádná uložená hesla. Správce hesel Google může hesla zkontrolovat, pouze když si je uložíte.</translation>
-<translation id="2840432500933227975">V systému iOS otevřete Nastavení Chromu, klepněte na Výchozí prohlížeč a vyberte Chrome.</translation>
 <translation id="2868822340714096138">Vymazat údaje o prohlížení v Chromu</translation>
 <translation id="2869959624320573933">Přihlaste se do Chromu</translation>
 <translation id="2876628302275096482"><ph name="BEGIN_LINK" />Další informace o tom, jak Chrome uchovává vaše data v soukromí<ph name="END_LINK" /></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 3a74b7d9..c0f53aa3 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
@@ -56,7 +56,6 @@
 <translation id="2732745070297234559">Ni allai Chrome wirio'r holl gyfrineiriau. Rhowch gynnig arall arni yfory.</translation>
 <translation id="2736805085127235148">Mae hysbysiadau Chrome wedi'u diffodd yng ngosodiadau eich dyfais ar hyn o bryd.</translation>
 <translation id="2767464022270041271">Nid oes unrhyw gyfrineiriau sydd wedi'u cadw. Gall Rheolwr Cyfrineiriau Google wirio'ch cyfrineiriau pan fyddwch yn eu cadw.</translation>
-<translation id="2840432500933227975">Agorwch y Gosodiadau Chrome yn iOS yna tapiwch "Browser Default APP" a dewiswch Chrome.</translation>
 <translation id="2868822340714096138">Clirio Data Pori yn Chrome</translation>
 <translation id="2869959624320573933">Mewngofnodi i Chrome</translation>
 <translation id="2876628302275096482">Dysgu rhagor am <ph name="BEGIN_LINK" />sut mae Chrome yn cadw eich data yn breifat<ph name="END_LINK" /></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 3c26f86..917f971 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
@@ -56,7 +56,6 @@
 <translation id="2732745070297234559">Chrome kunne ikke tjekke alle adgangskoder. Prøv igen i morgen.</translation>
 <translation id="2736805085127235148">Chrome-notifikationer er i øjeblikket deaktiveret i enhedsindstillingerne.</translation>
 <translation id="2767464022270041271">Der er ingen gemte adgangskoder. Google Adgangskodeadministrator kan tjekke dine adgangskoder, når du gemmer dem.</translation>
-<translation id="2840432500933227975">Åbn Chrome-indstillingerne i iOS, tryk på "Standardbrowserapp", og vælg Chrome.</translation>
 <translation id="2868822340714096138">Ryd browserdata i Chrome</translation>
 <translation id="2869959624320573933">Log ind i Chrome</translation>
 <translation id="2876628302275096482">Se, <ph name="BEGIN_LINK" />hvordan Chrome beskytter dine data<ph name="END_LINK" /></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 362f334..41a6253 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
@@ -55,7 +55,6 @@
 <translation id="2732745070297234559">Chrome konnte nicht alle Passwörter prüfen. Versuche es morgen noch einmal.</translation>
 <translation id="2736805085127235148">Chrome-Benachrichtigungen sind in den Geräteeinstellungen momentan deaktiviert.</translation>
 <translation id="2767464022270041271">Keine gespeicherten Passwörter. Der Google Passwortmanager kann deine Passwörter prüfen, wenn du sie speicherst.</translation>
-<translation id="2840432500933227975">Öffne die Chrome-Einstellungen unter iOS, tippe auf „Standard-Browser-App“ und wähle „Chrome“ aus.</translation>
 <translation id="2868822340714096138">Browserdaten in Chrome löschen</translation>
 <translation id="2869959624320573933">In Chrome anmelden</translation>
 <translation id="2876628302275096482"><ph name="BEGIN_LINK" />Weitere Informationen zum Datenschutz bei Chrome<ph name="END_LINK" /></translation>
diff --git a/ios/chrome/app/strings/resources/ios_google_chrome_strings_el.xtb b/ios/chrome/app/strings/resources/ios_google_chrome_strings_el.xtb
index f4eec67..1b8595a 100644
--- a/ios/chrome/app/strings/resources/ios_google_chrome_strings_el.xtb
+++ b/ios/chrome/app/strings/resources/ios_google_chrome_strings_el.xtb
@@ -56,7 +56,6 @@
 <translation id="2732745070297234559">Το Chrome δεν μπόρεσε να ελέγξει όλους τους κωδικούς πρόσβασης. Δοκιμάστε ξανά αύριο.</translation>
 <translation id="2736805085127235148">Αυτήν τη στιγμή, οι ειδοποιήσεις του Chrome είναι απενεργοποιημένες στις ρυθμίσεις της συσκευής σας.</translation>
 <translation id="2767464022270041271">Δεν υπάρχουν αποθηκευμένοι κωδικοί πρόσβασης. O Διαχειριστής κωδικών πρόσβασης Google μπορεί να ελέγxει τους κωδικούς πρόσβασής σας όταν τους αποθηκεύετε.</translation>
-<translation id="2840432500933227975">Ανοίξτε τις ρυθμίσεις του Chrome σε iOS, πατήστε Προεπιλεγμένη εφαρμογή προγράμματος περιήγησης και επιλέξτε το Chrome.</translation>
 <translation id="2868822340714096138">Διαγραφή δεδομένων περιήγησης στο Chrome</translation>
 <translation id="2869959624320573933">Συνδεθείτε στο Chrome</translation>
 <translation id="2876628302275096482">Μάθετε περισσότερα σχετικά με το <ph name="BEGIN_LINK" />πώς το Chrome διατηρεί ιδιωτικά τα δεδομένα σας<ph name="END_LINK" /></translation>
diff --git a/ios/chrome/app/strings/resources/ios_google_chrome_strings_en-GB.xtb b/ios/chrome/app/strings/resources/ios_google_chrome_strings_en-GB.xtb
index c12e859..62476573 100644
--- a/ios/chrome/app/strings/resources/ios_google_chrome_strings_en-GB.xtb
+++ b/ios/chrome/app/strings/resources/ios_google_chrome_strings_en-GB.xtb
@@ -56,7 +56,6 @@
 <translation id="2732745070297234559">Chrome couldn't check all passwords. Try again tomorrow.</translation>
 <translation id="2736805085127235148">Chrome notifications are currently turned off in your device settings.</translation>
 <translation id="2767464022270041271">No saved passwords. Google Password Manager can check your passwords when you save them.</translation>
-<translation id="2840432500933227975">Open Chrome Settings in iOS, then tap on 'Browser Default APP' and select Chrome.</translation>
 <translation id="2868822340714096138">Clear browsing data in Chrome</translation>
 <translation id="2869959624320573933">Sign In to Chrome</translation>
 <translation id="2876628302275096482">Learn more about <ph name="BEGIN_LINK" />how Chrome keeps your data private<ph name="END_LINK" /></translation>
diff --git a/ios/chrome/app/strings/resources/ios_google_chrome_strings_es-419.xtb b/ios/chrome/app/strings/resources/ios_google_chrome_strings_es-419.xtb
index 15bd019..92113a7 100644
--- a/ios/chrome/app/strings/resources/ios_google_chrome_strings_es-419.xtb
+++ b/ios/chrome/app/strings/resources/ios_google_chrome_strings_es-419.xtb
@@ -56,7 +56,6 @@
 <translation id="2732745070297234559">Chrome no pudo revisar todas las contraseñas. Vuelve a intentarlo mañana.</translation>
 <translation id="2736805085127235148">Las notificaciones de Chrome están desactivadas en la configuración del dispositivo por el momento.</translation>
 <translation id="2767464022270041271">No hay contraseñas guardadas. El Administrador de contraseñas de Google puede revisar tus contraseñas cuando las guardas.</translation>
-<translation id="2840432500933227975">Abre la Configuración de Chrome en iOS, presiona "Navegador predeterminado" y selecciona Chrome.</translation>
 <translation id="2868822340714096138">Borrar los datos de navegación en Chrome</translation>
 <translation id="2869959624320573933">Acceder a Chrome</translation>
 <translation id="2876628302275096482">Más información sobre <ph name="BEGIN_LINK" />cómo Chrome mantiene la privacidad de tus datos<ph name="END_LINK" /></translation>
diff --git a/ios/chrome/app/strings/resources/ios_google_chrome_strings_es.xtb b/ios/chrome/app/strings/resources/ios_google_chrome_strings_es.xtb
index a4c792fb..be19da5 100644
--- a/ios/chrome/app/strings/resources/ios_google_chrome_strings_es.xtb
+++ b/ios/chrome/app/strings/resources/ios_google_chrome_strings_es.xtb
@@ -56,7 +56,6 @@
 <translation id="2732745070297234559">Chrome no ha podido comprobar todas las contraseñas. Vuelve a intentarlo mañana.</translation>
 <translation id="2736805085127235148">Las notificaciones de Chrome están desactivadas actualmente en los ajustes del dispositivo.</translation>
 <translation id="2767464022270041271">No hay contraseñas guardadas. El Gestor de contraseñas de Google puede comprobar tus contraseñas cuando las guardas.</translation>
-<translation id="2840432500933227975">En iOS, ve a Ajustes, selecciona Chrome, toca "App del navegador por omisión" y elige Chrome.</translation>
 <translation id="2868822340714096138">Borrar datos de navegación en Chrome</translation>
 <translation id="2869959624320573933">Inicia sesión en Chrome</translation>
 <translation id="2876628302275096482">Más información sobre <ph name="BEGIN_LINK" />cómo protege Chrome la privacidad de tus datos<ph name="END_LINK" /></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 2a1e221c..568c274 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
@@ -56,7 +56,6 @@
 <translation id="2732745070297234559">Chrome'il ei õnnestunud kõiki paroole kontrollida. Proovige homme uuesti.</translation>
 <translation id="2736805085127235148">Chrome’i märguanded on praegu teie seadme seadetes välja lülitatud.</translation>
 <translation id="2767464022270041271">Salvestatud paroole ei ole. Google'i paroolihaldur saab teie paroole kontrollida, kui olete need salvestanud.</translation>
-<translation id="2840432500933227975">Avage iOS-is Chrome'i seaded, seejärel puudutage valikut „Brauseri vaike-APP” ja valige Chrome.</translation>
 <translation id="2868822340714096138">Tühjenda Chrome'i sirvimisandmed</translation>
 <translation id="2869959624320573933">Logige Chromeʼi sisse</translation>
 <translation id="2876628302275096482">Vaadake lisateavet, <ph name="BEGIN_LINK" />kuidas Chrome teie andmeid privaatsena hoiab<ph name="END_LINK" /></translation>
diff --git a/ios/chrome/app/strings/resources/ios_google_chrome_strings_eu.xtb b/ios/chrome/app/strings/resources/ios_google_chrome_strings_eu.xtb
index 9851cdd..f7354115 100644
--- a/ios/chrome/app/strings/resources/ios_google_chrome_strings_eu.xtb
+++ b/ios/chrome/app/strings/resources/ios_google_chrome_strings_eu.xtb
@@ -56,7 +56,6 @@
 <translation id="2732745070297234559">Chrome-k ezin izan ditu egiaztatu pasahitz guztiak. Saiatu berriro bihar.</translation>
 <translation id="2736805085127235148">Chrome-ren jakinarazpenak desaktibatuta daude une honetan gailuaren ezarpenetan.</translation>
 <translation id="2767464022270041271">Ez dago pasahitzik gordeta. Gordetako pasahitzak egiaztatzeko gai da Google-ren Pasahitz-kudeatzailea.</translation>
-<translation id="2840432500933227975">Ireki Chrome-ren ezarpenak iOS-en, sakatu "Browser Default APP" (arakatzaile-aplikazio lehenetsia) eta hautatu Chrome.</translation>
 <translation id="2868822340714096138">Garbitu arakatze-datuak Chrome-n</translation>
 <translation id="2869959624320573933">Hasi saioa Chrome-n</translation>
 <translation id="2876628302275096482">Lortu <ph name="BEGIN_LINK" />Chrome-k zure datuen pribatutasuna babesteko duen moduari<ph name="END_LINK" /> buruzko informazio gehiago</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 5f7814de..82dbca5 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
@@ -56,7 +56,6 @@
 <translation id="2732745070297234559">‏Chrome نمی‌تواند همه گذرواژه‌هایتان را بررسی کند. فردا دوباره امتحان کنید.</translation>
 <translation id="2736805085127235148">‏اعلان‌های Chrome درحال‌حاضر در تنظیمات دستگاهتان خاموش است.</translation>
 <translation id="2767464022270041271">‏گذرواژه‌ای ذخیره نشده است. اگر گذرواژه‌هایتان را ذخیره کنید، «مدیر گذرواژه Google» می‌تواند آن‌ها را بررسی کند.</translation>
-<translation id="2840432500933227975">‏تنظیمات Chrome را در iOS باز کنید، سپس روی «برنامه پیش‌فرض مرورگر» ضربه بزنید و Chrome را انتخاب کنید.</translation>
 <translation id="2868822340714096138">‏پاک کردن داده‌های مرور در Chrome</translation>
 <translation id="2869959624320573933">‏ورود به سیستم Chrome</translation>
 <translation id="2876628302275096482">‏درباره اینکه <ph name="BEGIN_LINK" />Chrome چگونه داده‌های شما را خصوصی نگه می‌دارد<ph name="END_LINK" /> بیشتر بدانید</translation>
diff --git a/ios/chrome/app/strings/resources/ios_google_chrome_strings_fi.xtb b/ios/chrome/app/strings/resources/ios_google_chrome_strings_fi.xtb
index 3c7d977c..d23183b 100644
--- a/ios/chrome/app/strings/resources/ios_google_chrome_strings_fi.xtb
+++ b/ios/chrome/app/strings/resources/ios_google_chrome_strings_fi.xtb
@@ -56,7 +56,6 @@
 <translation id="2732745070297234559">Chrome ei voinut tarkistaa kaikkia salasanoja. Yritä uudelleen huomenna.</translation>
 <translation id="2736805085127235148">Chromen ilmoitukset ovat tällä hetkellä poissa päältä laiteasetuksissa.</translation>
 <translation id="2767464022270041271">Ei tallennettuja salasanoja Google Salasanat voi tarkistaa salasanasi tallennuksen yhteydessä.</translation>
-<translation id="2840432500933227975">Avaa Chromen asetukset iOS:lla, napauta sitten Oletusselainsovellus ja valitse Chrome.</translation>
 <translation id="2868822340714096138">Poista Chromen selausdata</translation>
 <translation id="2869959624320573933">Kirjaudu Chromeen</translation>
 <translation id="2876628302275096482">Lue lisää siitä, <ph name="BEGIN_LINK" />miten Chrome pitää datasi yksityisenä<ph name="END_LINK" /></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 4568af7e..b0ef36ae 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
@@ -56,7 +56,6 @@
 <translation id="2732745070297234559">Hindi masuri ng Chrome ang lahat ng password. Subukan ulit bukas.</translation>
 <translation id="2736805085127235148">Kasalukuyang naka-off ang mga notification sa Chrome sa mga setting ng iyong device.</translation>
 <translation id="2767464022270041271">Walang naka-save na password. Masusuri ng Google Password Manager ang iyong mga password kapag na-save mo ang mga ito.</translation>
-<translation id="2840432500933227975">Buksan ang Mga Setting ng Chrome sa iOS, pagkatapos ay i-tap ang "Default na APP ng Browser" at piliin ang Chrome.</translation>
 <translation id="2868822340714096138">I-clear ang Data Mula sa Pagba-browse sa Chrome</translation>
 <translation id="2869959624320573933">Mag-sign In sa Chrome</translation>
 <translation id="2876628302275096482">Matuto pa tungkol sa kung <ph name="BEGIN_LINK" />paano pinapanatiling pribado ng Chrome ang iyong data<ph name="END_LINK" /></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 83643211..b6dc0abc3 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
@@ -55,7 +55,6 @@
 <translation id="2732745070297234559">Chrome n'a pas pu vérifier tous les mots de passe. Réessayez demain.</translation>
 <translation id="2736805085127235148">Les notifications de Chrome sont présentement désactivées dans les paramètres de votre appareil.</translation>
 <translation id="2767464022270041271">Aucun mot de passe enregistré. Le gestionnaire de mots de passe de Google peut vérifier vos mots de passe lorsque vous les enregistrez.</translation>
-<translation id="2840432500933227975">Ouvrez les paramètres Chrome dans iOS, puis touchez « PPA par défaut du navigateur » et sélectionnez Chrome.</translation>
 <translation id="2868822340714096138">Effacer les données de navigation dans Chrome</translation>
 <translation id="2869959624320573933">Connectez-vous à Chrome</translation>
 <translation id="2876628302275096482">En savoir plus sur la <ph name="BEGIN_LINK" />manière dont Chrome préserve la confidentialité de vos données<ph name="END_LINK" /></translation>
diff --git a/ios/chrome/app/strings/resources/ios_google_chrome_strings_fr.xtb b/ios/chrome/app/strings/resources/ios_google_chrome_strings_fr.xtb
index cf861ae0..d76d738 100644
--- a/ios/chrome/app/strings/resources/ios_google_chrome_strings_fr.xtb
+++ b/ios/chrome/app/strings/resources/ios_google_chrome_strings_fr.xtb
@@ -56,7 +56,6 @@
 <translation id="2732745070297234559">Chrome n'est pas parvenu à vérifier tous les mots de passe. Réessayez demain.</translation>
 <translation id="2736805085127235148">Les notifications Chrome sont actuellement désactivées dans les paramètres de votre appareil.</translation>
 <translation id="2767464022270041271">Aucun mot de passe enregistré. Le Gestionnaire de mots de passe de Google peut vérifier vos mots de passe lorsque vous les enregistrez.</translation>
-<translation id="2840432500933227975">Ouvrez les paramètres Chrome dans iOS, appuyez sur "Navigateur par défaut", puis sélectionnez Chrome.</translation>
 <translation id="2868822340714096138">Effacer les données de navigation dans Chrome</translation>
 <translation id="2869959624320573933">Connectez-vous à Chrome</translation>
 <translation id="2876628302275096482">Découvrez <ph name="BEGIN_LINK" />comment Chrome protège la confidentialité de vos données<ph name="END_LINK" /></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 1c7da0c..04d6f62c 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
@@ -56,7 +56,6 @@
 <translation id="2732745070297234559">Chrome non puido comprobar todos os contrasinais. Téntao de novo mañá.</translation>
 <translation id="2736805085127235148">As notificacións de Chrome están desactivadas actualmente na configuración do dispositivo.</translation>
 <translation id="2767464022270041271">Non hai contrasinais gardados. O xestor de contrasinais de Google poderá comprobar os teus contrasinais cando os gardes.</translation>
-<translation id="2840432500933227975">Abre a configuración de Chrome en iOS, toca Default Browser App (Aplicación de navegador predeterminada) e selecciona Chrome.</translation>
 <translation id="2868822340714096138">Borra os datos de navegación en Chrome</translation>
 <translation id="2869959624320573933">Inicia sesión en Chrome</translation>
 <translation id="2876628302275096482">Máis información sobre <ph name="BEGIN_LINK" />como protexe Chrome a privacidade dos teus datos<ph name="END_LINK" /></translation>
diff --git a/ios/chrome/app/strings/resources/ios_google_chrome_strings_gu.xtb b/ios/chrome/app/strings/resources/ios_google_chrome_strings_gu.xtb
index da97f30..64ae325 100644
--- a/ios/chrome/app/strings/resources/ios_google_chrome_strings_gu.xtb
+++ b/ios/chrome/app/strings/resources/ios_google_chrome_strings_gu.xtb
@@ -56,7 +56,6 @@
 <translation id="2732745070297234559">Chrome બધા પાસવર્ડ ચેક કરી શક્યું નથી. આવતી કાલે ફરી પ્રયાસ કરો.</translation>
 <translation id="2736805085127235148">તમારા ડિવાઇસ સેટિંગમાં Chromeના નોટિફિકેશન હાલમાં બંધ કરવામાં આવ્યા છે.</translation>
 <translation id="2767464022270041271">કોઈ સાચવેલો પાસવર્ડ નથી. જ્યારે તમે તમારા પાસવર્ડ સાચવો, ત્યારે Google Password Manager તેને ચેક કરી શકે છે.</translation>
-<translation id="2840432500933227975">iOSમાં Chrome સેટિંગ ખોલો, પછી "બ્રાઉઝર ડિફૉલ્ટ APP" પર ટૅપ કરો અને Chrome પસંદ કરો.</translation>
 <translation id="2868822340714096138">Chromeમાં બ્રાઉઝિંગ ડેટા સાફ કરો</translation>
 <translation id="2869959624320573933">Chromeમાં સાઇન ઇન કરો</translation>
 <translation id="2876628302275096482"><ph name="BEGIN_LINK" />Chrome તમારા ડેટાને કેવી રીતે ખાનગી રાખે છે<ph name="END_LINK" /> તે વિશે વધુ જાણો</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 a03938f..255d1fd 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
@@ -56,7 +56,6 @@
 <translation id="2732745070297234559">Chrome सभी पासवर्ड की जांच नहीं कर सका. कल कोशिश करें.</translation>
 <translation id="2736805085127235148">फ़िलहाल, आपके डिवाइस की सेटिंग में, Chrome की सूचनाएं भेजने की सुविधा बंद है.</translation>
 <translation id="2767464022270041271">कोई भी पासवर्ड सेव नहीं किया गया है. पासवर्ड सेव होने पर ही, Google Password Manager आपके पासवर्ड की जांच कर सकता है.</translation>
-<translation id="2840432500933227975">iOS पर Chrome Settings खोलें. इसके बाद, "Browser Default APP" पर टैप करें और Chrome चुनें.</translation>
 <translation id="2868822340714096138">Chrome में ब्राउज़िंग डेटा मिटाएं</translation>
 <translation id="2869959624320573933">Chrome में साइन इन करें</translation>
 <translation id="2876628302275096482"><ph name="BEGIN_LINK" />Chrome आपके डेटा को निजी कैसे रखता है<ph name="END_LINK" />, इसके बारे में ज़्यादा जानें</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 baf60c5..d7bb5cb 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
@@ -56,7 +56,6 @@
 <translation id="2732745070297234559">Chrome nije uspio provjeriti sve zaporke. Pokušajte ponovo sutra.</translation>
 <translation id="2736805085127235148">Obavijesti Chromea trenutačno su isključene u postavkama uređaja.</translation>
 <translation id="2767464022270041271">Nema nijedne spremljene zaporke. Google upravitelj zaporki može provjeriti vaše zaporke kad ih spremite.</translation>
-<translation id="2840432500933227975">Otvorite postavke Chromea na iOS-u, zatim dodirnite "Zadana aplikacija preglednika" i odaberite Chrome.</translation>
 <translation id="2868822340714096138">Brisanje podataka o pregledavanju u Chromeu</translation>
 <translation id="2869959624320573933">Prijava u Chrome</translation>
 <translation id="2876628302275096482">Saznajte više o tome <ph name="BEGIN_LINK" />kako Chrome štiti privatnost vaših podataka<ph name="END_LINK" /></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 0ec861c8..d74673db 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
@@ -56,7 +56,6 @@
 <translation id="2732745070297234559">A Chrome nem tudta ellenőrizni az összes jelszót. Próbálkozzon újra holnap.</translation>
 <translation id="2736805085127235148">A Chrome-értesítések jelenleg ki vannak kapcsolva az eszköz beállításaiban.</translation>
 <translation id="2767464022270041271">Nincsenek mentett jelszavak. A Google Jelszókezelő képes a jelszavak ellenőrzésére, amikor Ön menti őket.</translation>
-<translation id="2840432500933227975">Nyissa meg a Chrome beállításait iOS rendszeren, majd koppintson az „Alapértelmezett böngészőalkalmazás” elemre, és válassza ki a Chrome-ot.</translation>
 <translation id="2868822340714096138">A Chrome-ban lévő böngészési adatok törlése</translation>
 <translation id="2869959624320573933">Bejelentkezés a Chrome-ba</translation>
 <translation id="2876628302275096482">További információ arról, <ph name="BEGIN_LINK" />hogyan gondoskodik az Ön adatainak védelméről a Chrome<ph name="END_LINK" />.</translation>
diff --git a/ios/chrome/app/strings/resources/ios_google_chrome_strings_hy.xtb b/ios/chrome/app/strings/resources/ios_google_chrome_strings_hy.xtb
index 62d054f..0b74f60 100644
--- a/ios/chrome/app/strings/resources/ios_google_chrome_strings_hy.xtb
+++ b/ios/chrome/app/strings/resources/ios_google_chrome_strings_hy.xtb
@@ -56,7 +56,6 @@
 <translation id="2732745070297234559">Chrome-ին չհաջողվեց ստուգել բոլոր գաղտնաբառերը։ Վաղը նորից փորձեք։</translation>
 <translation id="2736805085127235148">Chrome-ի ծանուցումներն այս պահին անջատված են սարքի կարգավորումներում։</translation>
 <translation id="2767464022270041271">Պահված գաղտնաբառեր չկան։ Google գաղտնաբառերի կառավարիչը կարող է ստուգել ձեր գաղտնաբառերը, երբ պահում եք դրանք։</translation>
-<translation id="2840432500933227975">Բացեք Chrome-ի Կարգավորումներն iOS-ում, ապա հպեք «Դիտարկիչի կանխադրված հավելված» և ընտրեք Chrome-ը։</translation>
 <translation id="2868822340714096138">Մաքրեք այցելությունների պատմությունը Chrome-ում</translation>
 <translation id="2869959624320573933">Մուտք Chrome</translation>
 <translation id="2876628302275096482">Իմացեք ավելին, թե <ph name="BEGIN_LINK" />ինչպես է Chrome-ը պահպանում ձեր տվյալների գաղտնիությունը<ph name="END_LINK" /></translation>
diff --git a/ios/chrome/app/strings/resources/ios_google_chrome_strings_id.xtb b/ios/chrome/app/strings/resources/ios_google_chrome_strings_id.xtb
index 7a03b08a..4e196b1 100644
--- a/ios/chrome/app/strings/resources/ios_google_chrome_strings_id.xtb
+++ b/ios/chrome/app/strings/resources/ios_google_chrome_strings_id.xtb
@@ -56,7 +56,6 @@
 <translation id="2732745070297234559">Chrome tidak dapat memeriksa semua sandi. Coba lagi besok.</translation>
 <translation id="2736805085127235148">Notifikasi Chrome saat ini dinonaktifkan di setelan perangkat.</translation>
 <translation id="2767464022270041271">Tidak ada sandi tersimpan. Pengelola Sandi Google dapat memeriksa sandi Anda jika Anda menyimpannya.</translation>
-<translation id="2840432500933227975">Buka Setelan Chrome di iOS, lalu ketuk "Aplikasi Default Browser" dan pilih Chrome.</translation>
 <translation id="2868822340714096138">Hapus Data Penjelajahan di Chrome</translation>
 <translation id="2869959624320573933">Login ke Chrome</translation>
 <translation id="2876628302275096482">Pelajari lebih lanjut <ph name="BEGIN_LINK" />cara Chrome menjaga privasi data Anda<ph name="END_LINK" /></translation>
diff --git a/ios/chrome/app/strings/resources/ios_google_chrome_strings_is.xtb b/ios/chrome/app/strings/resources/ios_google_chrome_strings_is.xtb
index 87d62a5b3..7846f5fe 100644
--- a/ios/chrome/app/strings/resources/ios_google_chrome_strings_is.xtb
+++ b/ios/chrome/app/strings/resources/ios_google_chrome_strings_is.xtb
@@ -56,7 +56,6 @@
 <translation id="2732745070297234559">Chrome gat ekki athugað öll aðgangsorð. Reyndu aftur á morgun.</translation>
 <translation id="2736805085127235148">Slökkt er á Chrome-tilkynningum í stillingum tækisins.</translation>
 <translation id="2767464022270041271">Engin vistuð aðgangsorð. Google-aðgangsorðastjórnun getur athugað aðgangsorðin þín þegar þú vistar þau.</translation>
-<translation id="2840432500933227975">Opnaðu stillingar Chrome í iOS, ýttu svo á „Browser Default APP“ og veldu Chrome.</translation>
 <translation id="2868822340714096138">Hreinsa vefskoðunargögn í Chrome</translation>
 <translation id="2869959624320573933">Skráðu þig inn á Chrome</translation>
 <translation id="2876628302275096482">Nánar um <ph name="BEGIN_LINK" />hvernig Chrome heldur gögnunum þínum leyndum<ph name="END_LINK" /></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 ba11f79..327fa4c 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
@@ -56,7 +56,6 @@
 <translation id="2732745070297234559">Chrome non ha potuto controllare tutte le password. Riprova domani.</translation>
 <translation id="2736805085127235148">Le notifiche di Chrome sono attualmente disattivate nelle impostazioni del dispositivo.</translation>
 <translation id="2767464022270041271">Nessuna password salvata. Gestore delle password di Google può controllare le tue password quando le salvi.</translation>
-<translation id="2840432500933227975">Apri le Impostazioni di Chrome in iOS, quindi tocca "App predefinita del browser" e seleziona Chrome.</translation>
 <translation id="2868822340714096138">Cancella i dati di navigazione in Chrome</translation>
 <translation id="2869959624320573933">Accedi a Chrome</translation>
 <translation id="2876628302275096482">Scopri di più su <ph name="BEGIN_LINK" />come Chrome mantiene privati i tuoi dati<ph name="END_LINK" /></translation>
diff --git a/ios/chrome/app/strings/resources/ios_google_chrome_strings_iw.xtb b/ios/chrome/app/strings/resources/ios_google_chrome_strings_iw.xtb
index 4f4afec..3605659 100644
--- a/ios/chrome/app/strings/resources/ios_google_chrome_strings_iw.xtb
+++ b/ios/chrome/app/strings/resources/ios_google_chrome_strings_iw.xtb
@@ -56,7 +56,6 @@
 <translation id="2732745070297234559">‏Chrome לא הצליח לבדוק את כל הסיסמאות. אפשר לנסות שוב מחר.</translation>
 <translation id="2736805085127235148">‏ההתראות מ-Chrome מושבתות עכשיו בהגדרות המכשיר.</translation>
 <translation id="2767464022270041271">‏אין סיסמאות שמורות. למנהל הסיסמאות של Google יש אפשרות לבדוק את הסיסמאות שלך רק אם שמרת אותן.</translation>
-<translation id="2840432500933227975">‏פותחים את הגדרות Chrome ב-iOS, מקישים על 'אפליקציית ברירת מחדל לדפדפן' ובוחרים ב-Chrome.</translation>
 <translation id="2868822340714096138">‏ניקוי נתוני הגלישה ב-Chrome</translation>
 <translation id="2869959624320573933">‏כניסה ל-Chrome</translation>
 <translation id="2876628302275096482">‏<ph name="BEGIN_LINK" />מידע נוסף לגבי השמירה על פרטיות הנתונים ב-Chrome<ph name="END_LINK" /></translation>
diff --git a/ios/chrome/app/strings/resources/ios_google_chrome_strings_ja.xtb b/ios/chrome/app/strings/resources/ios_google_chrome_strings_ja.xtb
index 8c81918..f4bea73d 100644
--- a/ios/chrome/app/strings/resources/ios_google_chrome_strings_ja.xtb
+++ b/ios/chrome/app/strings/resources/ios_google_chrome_strings_ja.xtb
@@ -56,7 +56,6 @@
 <translation id="2732745070297234559">Chrome ですべてのパスワードを確認できませんでした。明日もう一度お試しください。</translation>
 <translation id="2736805085127235148">現在、デバイスの設定で Chrome の通知がオフになっています。</translation>
 <translation id="2767464022270041271">保存されているパスワードがありません。パスワードを保存すると、Google パスワード マネージャーで確認できるようになります。</translation>
-<translation id="2840432500933227975">iOS で Chrome の設定を開き、[デフォルトのブラウザアプリ] をタップして [Chrome] を選択します。</translation>
 <translation id="2868822340714096138">Chrome の閲覧データを削除する</translation>
 <translation id="2869959624320573933">Chrome へのログイン</translation>
 <translation id="2876628302275096482"><ph name="BEGIN_LINK" />Chrome でユーザーデータのプライバシーを保護する方法<ph name="END_LINK" />についての詳細</translation>
diff --git a/ios/chrome/app/strings/resources/ios_google_chrome_strings_ka.xtb b/ios/chrome/app/strings/resources/ios_google_chrome_strings_ka.xtb
index 51f4f729..1e9f420 100644
--- a/ios/chrome/app/strings/resources/ios_google_chrome_strings_ka.xtb
+++ b/ios/chrome/app/strings/resources/ios_google_chrome_strings_ka.xtb
@@ -56,7 +56,6 @@
 <translation id="2732745070297234559">Chrome-მა ვერ შეამოწმა ყველა პაროლი. ცადეთ ხვალ.</translation>
 <translation id="2736805085127235148">Chrome-ისგან შეტყობინებების მიღება ამჟამად გამორთულია თქვენი მოწყობილობის პარამეტრებიდან.</translation>
 <translation id="2767464022270041271">შენახული პაროლები არ არის. Google პაროლების მმართველი თქვენი პაროლების შემოწმებას შეძლებს მათი შენახვის შემდეგ.</translation>
-<translation id="2840432500933227975">iOS-ში გახსენით Chrome-ის პარამეტრები, შემდეგ შეეხეთ „ბრაუზერის ნაგულისხმევ აპს“ და აირჩიეთ Chrome.</translation>
 <translation id="2868822340714096138">დათვალიერების მონაცემების გასუფთავება Chrome-ში</translation>
 <translation id="2869959624320573933">შედით Chrome-ში</translation>
 <translation id="2876628302275096482">შეიტყვეთ მეტი იმის შესახებ, თუ <ph name="BEGIN_LINK" />როგორ ინარჩუნებს Chrome თქვენი მონაცემების კონფიდენციალურობას<ph name="END_LINK" /></translation>
diff --git a/ios/chrome/app/strings/resources/ios_google_chrome_strings_kk.xtb b/ios/chrome/app/strings/resources/ios_google_chrome_strings_kk.xtb
index df1735a..672ae3d 100644
--- a/ios/chrome/app/strings/resources/ios_google_chrome_strings_kk.xtb
+++ b/ios/chrome/app/strings/resources/ios_google_chrome_strings_kk.xtb
@@ -56,7 +56,6 @@
 <translation id="2732745070297234559">Chrome барлық құпия сөзді тексере алмады. Ертең қайталап көріңіз.</translation>
 <translation id="2736805085127235148">Қазіргі уақытта құрылғы параметрлерінде Chrome хабарландырулары өшірілген.</translation>
 <translation id="2767464022270041271">Ешқандай құпия сөз сақталмаған. Google Password Manager құпия сөздерді сақтаған кезде оларды тексере алады.</translation>
-<translation id="2840432500933227975">iOS жүйесінде Chromium параметрлерін ашып, "Браузердің әдепкі қолданбасы" түймесін түртіп, Chrome параметрін таңдаңыз.</translation>
 <translation id="2868822340714096138">Chrome-дағы браузерді пайдалану деректерін тазалау</translation>
 <translation id="2869959624320573933">Chrome-ға кіріңіз</translation>
 <translation id="2876628302275096482"><ph name="BEGIN_LINK" />Chrome-ның деректеріңізді құпия сақтау жолы<ph name="END_LINK" /> туралы толық ақпарат</translation>
diff --git a/ios/chrome/app/strings/resources/ios_google_chrome_strings_km.xtb b/ios/chrome/app/strings/resources/ios_google_chrome_strings_km.xtb
index 80a8466..0c3a003 100644
--- a/ios/chrome/app/strings/resources/ios_google_chrome_strings_km.xtb
+++ b/ios/chrome/app/strings/resources/ios_google_chrome_strings_km.xtb
@@ -56,7 +56,6 @@
 <translation id="2732745070297234559">Chrome មិនអាចពិនិត្យពាក្យសម្ងាត់ទាំងអស់បានទេ។ សូម​ព្យាយាម​ម្ដងទៀតនៅថ្ងៃស្អែក។</translation>
 <translation id="2736805085127235148">បច្ចុប្បន្ន ការជូនដំណឹងនៅលើ Chrome ត្រូវបានបិទនៅក្នុងការកំណត់ឧបករណ៍របស់អ្នក។</translation>
 <translation id="2767464022270041271">មិនមាន​ពាក្យសម្ងាត់ដែលបានរក្សាទុកទេ។ កម្មវិធីគ្រប់គ្រងពាក្យសម្ងាត់អាចពិនិត្យមើលពាក្យសម្ងាត់របស់អ្នក នៅពេលអ្នករក្សាទុកពាក្យសម្ងាត់ទាំងនោះ។</translation>
-<translation id="2840432500933227975">បើក​ការកំណត់ Chrome នៅក្នុង iOS រួច​ចុចលើ "កម្មវិធីរុករក​តាមអ៊ីនធឺណិត​លំនាំដើម" ហើយ​ជ្រើសរើស Chrome។</translation>
 <translation id="2868822340714096138">សម្អាតទិន្នន័យរុករកនៅក្នុង Chrome</translation>
 <translation id="2869959624320573933">ចូល Chrome</translation>
 <translation id="2876628302275096482">ស្វែងយល់​បន្ថែម​អំពី<ph name="BEGIN_LINK" />របៀបដែល Chrome រក្សាទិន្នន័យ​របស់អ្នក​ជាលក្ខណៈ​ឯកជន<ph name="END_LINK" /></translation>
diff --git a/ios/chrome/app/strings/resources/ios_google_chrome_strings_kn.xtb b/ios/chrome/app/strings/resources/ios_google_chrome_strings_kn.xtb
index a05ac86..336e5c51e 100644
--- a/ios/chrome/app/strings/resources/ios_google_chrome_strings_kn.xtb
+++ b/ios/chrome/app/strings/resources/ios_google_chrome_strings_kn.xtb
@@ -56,7 +56,6 @@
 <translation id="2732745070297234559">ಎಲ್ಲಾ ಪಾಸ್‌ವರ್ಡ್‌ಗಳನ್ನು ಪರಿಶೀಲಿಸಲು Chrome ಗೆ ಸಾಧ್ಯವಾಗಲಿಲ್ಲ. ನಾಳೆ ಪುನಃ ಪ್ರಯತ್ನಿಸಿ.</translation>
 <translation id="2736805085127235148">ನಿಮ್ಮ ಸಾಧನದ ಸೆಟ್ಟಿಂಗ್‌ಗಳಲ್ಲಿ ಪ್ರಸ್ತುತ Chrome ಅಧಿಸೂಚನೆಗಳನ್ನು ಆಫ್ ಮಾಡಲಾಗಿದೆ.</translation>
 <translation id="2767464022270041271">ಉಳಿಸಿರುವ ಯಾವುದೇ ಪಾಸ್‍‍ವರ್ಡ್‍ಗಳಿಲ್ಲ. ನೀವು ಅವುಗಳನ್ನು ಉಳಿಸಿದಾಗ Google Password Manager ನಿಮ್ಮ ಪಾಸ್‌ವರ್ಡ್‌ಗಳನ್ನು ಪರಿಶೀಲಿಸಬಹುದು.</translation>
-<translation id="2840432500933227975">iOS ನಲ್ಲಿ Chrome ಸೆಟ್ಟಿಂಗ್‌ಗಳನ್ನು ತೆರೆಯಿರಿ, ನಂತರ "ಬ್ರೌಸರ್ ಡೀಫಾಲ್ಟ್ APP" ಮೇಲೆ ಟ್ಯಾಪ್ ಮಾಡಿ ಮತ್ತು Chromium ಆಯ್ಕೆಮಾಡಿ.</translation>
 <translation id="2868822340714096138">Chrome ನಲ್ಲಿ ಬ್ರೌಸಿಂಗ್ ಡೇಟಾವನ್ನು ತೆರವುಗೊಳಿಸಿ</translation>
 <translation id="2869959624320573933">Chrome ಗೆ ಸೈನ್ ಇನ್ ಮಾಡಿ</translation>
 <translation id="2876628302275096482"><ph name="BEGIN_LINK" />Chrome ನಿಮ್ಮ ಡೇಟಾವನ್ನು ಹೇಗೆ ಖಾಸಗಿಯಾಗಿ ಇರಿಸುತ್ತದೆ<ph name="END_LINK" /> ಎಂಬುದರ ಕುರಿತು ಇನ್ನಷ್ಟು ತಿಳಿಯಿರಿ</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 cc0af74..0beb1fe6 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
@@ -56,7 +56,6 @@
 <translation id="2732745070297234559">Chrome에서 일부 비밀번호를 확인할 수 없습니다. 내일 다시 시도해 보세요.</translation>
 <translation id="2736805085127235148">현재 기기 설정에서 Chrome 알림이 사용 중지되어 있습니다.</translation>
 <translation id="2767464022270041271">저장된 비밀번호가 없습니다. 비밀번호를 저장하면 Google 비밀번호 관리자에서 확인할 수 있습니다.</translation>
-<translation id="2840432500933227975">iOS에서 Chrome 설정을 열고 'Browser Default APP(브라우저 기본 앱)'을 탭한 다음 Chrome을 선택합니다</translation>
 <translation id="2868822340714096138">Chrome에서 인터넷 사용 기록 삭제</translation>
 <translation id="2869959624320573933">Chrome에 로그인</translation>
 <translation id="2876628302275096482"><ph name="BEGIN_LINK" />Chrome에서 데이터를 비공개로 유지하는 방법<ph name="END_LINK" /> 자세히 알아보기</translation>
diff --git a/ios/chrome/app/strings/resources/ios_google_chrome_strings_ky.xtb b/ios/chrome/app/strings/resources/ios_google_chrome_strings_ky.xtb
index 7724d35..4bec204b 100644
--- a/ios/chrome/app/strings/resources/ios_google_chrome_strings_ky.xtb
+++ b/ios/chrome/app/strings/resources/ios_google_chrome_strings_ky.xtb
@@ -56,7 +56,6 @@
 <translation id="2732745070297234559">Chrome бардык сырсөздөрдү текшере алган жок. Эртең кайталап көрүңүз.</translation>
 <translation id="2736805085127235148">Учурда түзмөгүңүздүн параметрлеринде Chrome билдирмелери күйүп турат.</translation>
 <translation id="2767464022270041271">Сакталган сырсөздөр жок. Сырсөздөрүңүздү сактаганда Сырсөздөрдү башкаргыч аларды текшерет.</translation>
-<translation id="2840432500933227975">iOS'то Chrome жөндөөлөрүн ачып, андан соң "Серепчинин демейки колдонмосун" таптап, Chrome'ду тандаңыз.</translation>
 <translation id="2868822340714096138">Chrome'догу серептөө дайындарын өчүрүү</translation>
 <translation id="2869959624320573933">Chrome'го кириңиз</translation>
 <translation id="2876628302275096482"><ph name="BEGIN_LINK" />Chrome маалыматыңызды кантип купуя сактаары тууралуу<ph name="END_LINK" /> көбүрөөк билип алыңыз</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 3e4b3cb..3c0c8409 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
@@ -56,7 +56,6 @@
 <translation id="2732745070297234559">Chrome ບໍ່ສາມາດກວດລະຫັດຜ່ານທັງໝົດໄດ້. ກະລຸນາລອງໃໝ່ໃນມື້ອື່ນ.</translation>
 <translation id="2736805085127235148">ຕອນນີ້ການແຈ້ງເຕືອນ Chrome ປິດຢູ່ໃນການຕັ້ງຄ່າອຸປະກອນຂອງທ່ານ.</translation>
 <translation id="2767464022270041271">ບໍ່ມີລະຫັດຜ່ານທີ່ບັນທຶກໄວ້. ຕົວຈັດການລະຫັດຜ່ານ Google ສາມາດກວດສອບລະຫັດຜ່ານຂອງທ່ານໃນເວລາທີ່ທ່ານບັນທຶກພວກມັນໄດ້.</translation>
-<translation id="2840432500933227975">ເປີດການຕັ້ງຄ່າ Chrome ໃນ iOS, ຈາກນັ້ນແຕະໃສ່ "APP ຄ່າເລີ່ມຕົ້ນໂປຣແກຣມທ່ອງເວັບ" ແລະ ເລືອກ Chrome.</translation>
 <translation id="2868822340714096138">ລຶບລ້າງຂໍ້ມູນການທ່ອງເວັບໃນ Chrome</translation>
 <translation id="2869959624320573933">ເຂົ້າສູ່ລະບົບຫາ Chrome</translation>
 <translation id="2876628302275096482">ສຶກສາເພີ່ມເຕີມກ່ຽວກັບ <ph name="BEGIN_LINK" />ວິທີທີ່ Chrome ຮັກສາຂໍ້ມູນຂອງທ່ານໃຫ້ເປັນສ່ວນຕົວ<ph name="END_LINK" /></translation>
diff --git a/ios/chrome/app/strings/resources/ios_google_chrome_strings_lt.xtb b/ios/chrome/app/strings/resources/ios_google_chrome_strings_lt.xtb
index 5f85723..f7f42b6 100644
--- a/ios/chrome/app/strings/resources/ios_google_chrome_strings_lt.xtb
+++ b/ios/chrome/app/strings/resources/ios_google_chrome_strings_lt.xtb
@@ -56,7 +56,6 @@
 <translation id="2732745070297234559">„Chrome“ nepavyko patikrinti visų slaptažodžių. Rytoj bandykite dar kartą.</translation>
 <translation id="2736805085127235148">„Chrome“ pranešimai šiuo metu išjungti įrenginio nustatymuose.</translation>
 <translation id="2767464022270041271">Nėra išsaugotų slaptažodžių. „Google“ slaptažodžių tvarkyklė gali tikrinti slaptažodžius, kai juos išsaugote.</translation>
-<translation id="2840432500933227975">Atidarykite „Chrome“ nustatymus sistemoje „iOS“, tada palieskite „Default Browser APP“ ir pasirinkite „Chrome“.</translation>
 <translation id="2868822340714096138">Išvalyti naršymo duomenis naršyklėje „Chrome“</translation>
 <translation id="2869959624320573933">Prisijunkite prie „Chrome“</translation>
 <translation id="2876628302275096482">Sužinokite daugiau, <ph name="BEGIN_LINK" />kaip „Chrome“ užtikrina jūsų duomenų privatumą<ph name="END_LINK" /></translation>
diff --git a/ios/chrome/app/strings/resources/ios_google_chrome_strings_lv.xtb b/ios/chrome/app/strings/resources/ios_google_chrome_strings_lv.xtb
index 36f2719..3e910ee 100644
--- a/ios/chrome/app/strings/resources/ios_google_chrome_strings_lv.xtb
+++ b/ios/chrome/app/strings/resources/ios_google_chrome_strings_lv.xtb
@@ -56,7 +56,6 @@
 <translation id="2732745070297234559">Pārlūkprogrammā Chrome nevarēja pārbaudīt visas paroles. Mēģiniet vēlreiz rīt.</translation>
 <translation id="2736805085127235148">Chrome paziņojumi pašlaik ir izslēgti jūsu ierīces iestatījumos.</translation>
 <translation id="2767464022270041271">Nav saglabātu paroļu. Google paroļu pārvaldnieks var pārbaudīt jūsu paroles, ja jūs tās saglabājat.</translation>
-<translation id="2840432500933227975">Atveriet Chrome iestatījumus iOS ierīcē, pēc tam pieskarieties vienumam “Browser Default APP” (Noklusējuma pārlūka lietotne) un atlasiet Chrome.</translation>
 <translation id="2868822340714096138">Notīrīt pārlūkošanas datus pārlūkā Chrome</translation>
 <translation id="2869959624320573933">Pierakstīšanās pārlūkprogrammā Chrome</translation>
 <translation id="2876628302275096482">Uzziniet vairāk par to, <ph name="BEGIN_LINK" />kā pārlūkā Chrome tiek saglabāta jūsu datu konfidencialitāte<ph name="END_LINK" />.</translation>
diff --git a/ios/chrome/app/strings/resources/ios_google_chrome_strings_mk.xtb b/ios/chrome/app/strings/resources/ios_google_chrome_strings_mk.xtb
index 18ec7e19..8f52387e 100644
--- a/ios/chrome/app/strings/resources/ios_google_chrome_strings_mk.xtb
+++ b/ios/chrome/app/strings/resources/ios_google_chrome_strings_mk.xtb
@@ -56,7 +56,6 @@
 <translation id="2732745070297234559">Chrome не може да ги провери сите лозинки. Обидете се повторно утре.</translation>
 <translation id="2736805085127235148">Во моментов, известувањата за Chrome се исклучени во вашите поставки за уредот.</translation>
 <translation id="2767464022270041271">Немате зачувани лозинки. Google Password Manager може да ги проверува вашите лозинки кога ги зачувувате.</translation>
-<translation id="2840432500933227975">Отворете „Поставки за Chrome“ на iOS, па допрете на „Стандардна АПЛИКАЦИЈА за прелистување“ и изберете Chrome.</translation>
 <translation id="2868822340714096138">Избришете ги податоците од прелистување во Chrome</translation>
 <translation id="2869959624320573933">Најавете се на Chrome</translation>
 <translation id="2876628302275096482">Дознајте повеќе за тоа <ph name="BEGIN_LINK" />како Chrome ја штити приватноста на вашите податоци<ph name="END_LINK" /></translation>
diff --git a/ios/chrome/app/strings/resources/ios_google_chrome_strings_ml.xtb b/ios/chrome/app/strings/resources/ios_google_chrome_strings_ml.xtb
index 1a198ab..2cae36e 100644
--- a/ios/chrome/app/strings/resources/ios_google_chrome_strings_ml.xtb
+++ b/ios/chrome/app/strings/resources/ios_google_chrome_strings_ml.xtb
@@ -56,7 +56,6 @@
 <translation id="2732745070297234559">എല്ലാ പാസ്‌വേഡുകളും Chrome-ന് പരിശോധിക്കാനായില്ല. നാളെ വീണ്ടും ശ്രമിക്കുക.</translation>
 <translation id="2736805085127235148">നിങ്ങളുടെ ഉപകരണ ക്രമീകരണത്തിൽ നിലവിൽ Chrome അറിയിപ്പുകൾ ഓഫാക്കിയിരിക്കുന്നു.</translation>
 <translation id="2767464022270041271">സംരക്ഷിച്ച പാസ്‌വേഡുകളൊന്നുമില്ല. നിങ്ങളുടെ പാസ്‌വേഡുകൾ സംരക്ഷിക്കുകയാണെങ്കിൽ, Google Password Manager-ന് അവ പരിശോധിക്കാനാകും.</translation>
-<translation id="2840432500933227975">iOS-ൽ Chrome ക്രമീകരണം തുറക്കുക, തുടർന്ന് "ബ്രൗസർ ഡിഫോൾട്ട് ആപ്പ്" എന്നതിൽ ടാപ്പ് ചെയ്ത് Chrome തിരഞ്ഞെടുക്കുക.</translation>
 <translation id="2868822340714096138">Chrome-ലെ ബ്രൗസിംഗ് ഡാറ്റ മായ്ക്കുക</translation>
 <translation id="2869959624320573933">Chrome-ലേക്ക് സൈൻ ഇൻ ചെയ്യുക</translation>
 <translation id="2876628302275096482"><ph name="BEGIN_LINK" />Chrome നിങ്ങളുടെ ഡാറ്റ എങ്ങനെ സ്വകാര്യമായി നിലനിർത്തുന്നു<ph name="END_LINK" /> എന്നതിനെക്കുറിച്ച് കൂടുതലറിയുക</translation>
diff --git a/ios/chrome/app/strings/resources/ios_google_chrome_strings_mn.xtb b/ios/chrome/app/strings/resources/ios_google_chrome_strings_mn.xtb
index 6b79b5dd5..68ff579 100644
--- a/ios/chrome/app/strings/resources/ios_google_chrome_strings_mn.xtb
+++ b/ios/chrome/app/strings/resources/ios_google_chrome_strings_mn.xtb
@@ -56,7 +56,6 @@
 <translation id="2732745070297234559">Chrome бүх нууц үгийг шалгаж чадсангүй. Маргааш дахин оролдоно уу.</translation>
 <translation id="2736805085127235148">Chrome-н мэдэгдлийг одоогоор таны төхөөрөмжийн тохиргоонд унтраасан байна.</translation>
 <translation id="2767464022270041271">Хадгалсан ямар ч нууц үг алга. Google Password Manager таныг нууц үгнүүдээ хадгалсан үед тэдгээрийг шалгах боломжтой.</translation>
-<translation id="2840432500933227975">iOS-т Chrome-н тохиргоог нээгээд дараа нь "Хөтчийн өгөгдмөл АПП"-ыг товшоод Chrome-г сонгоно уу.</translation>
 <translation id="2868822340714096138">Chrome-н интернэтээр үзсэн өгөгдлийг арилгах</translation>
 <translation id="2869959624320573933">Chrome-д нэвтэрнэ үү</translation>
 <translation id="2876628302275096482"><ph name="BEGIN_LINK" />Chrome таны өгөгдлийг хэрхэн хувийн байлгадаг<ph name="END_LINK" /> талаар нэмэлт мэдээлэл авах</translation>
diff --git a/ios/chrome/app/strings/resources/ios_google_chrome_strings_mr.xtb b/ios/chrome/app/strings/resources/ios_google_chrome_strings_mr.xtb
index 1cddb06..330125f 100644
--- a/ios/chrome/app/strings/resources/ios_google_chrome_strings_mr.xtb
+++ b/ios/chrome/app/strings/resources/ios_google_chrome_strings_mr.xtb
@@ -56,7 +56,6 @@
 <translation id="2732745070297234559">Chrome ला सर्व पासवर्ड तपासता आले नाहीत. उद्या पुन्हा प्रयत्न करा.</translation>
 <translation id="2736805085127235148">तुमच्या डिव्हाइस सेटिंग्जमध्ये Chrome सूचना सध्या बंद केल्या आहेत.</translation>
 <translation id="2767464022270041271">सेव्ह केलेले कोणतेही पासवर्ड नाहीत. तुम्ही तुमचे पासवर्ड सेव्ह करता, तेव्हा Google Password Manager तुमचे पासवर्ड तपासू शकते.</translation>
-<translation id="2840432500933227975">iOS मध्ये Chrome सेटिंग्ज उघडा, त्यानंतर "ब्राउझर डीफॉल्ट अ‍ॅप" वर टॅप करा आणि Chrome निवडा.</translation>
 <translation id="2868822340714096138">Chrome मधील ब्राउझिंग डेटा साफ करा</translation>
 <translation id="2869959624320573933">Chrome वर साइन इन करा</translation>
 <translation id="2876628302275096482"><ph name="BEGIN_LINK" />Chrome तुमचा डेटा खाजगी कसा ठेवते<ph name="END_LINK" /> याविषयी अधिक जाणून घ्या</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 adf9e511..cfedf29 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
@@ -56,7 +56,6 @@
 <translation id="2732745070297234559">Chrome tidak dapat menyemak semua kata laluan. Cuba lagi esok.</translation>
 <translation id="2736805085127235148">Pemberitahuan Chrome dimatikan dalam tetapan peranti anda pada masa ini.</translation>
 <translation id="2767464022270041271">Tiada kata laluan yang disimpan. Google Password Manager boleh menyemak kata laluan anda yang disimpan.</translation>
-<translation id="2840432500933227975">Buka Tetapan Chromium dalam iOS, kemudian ketik pada "Penyemak Imbas Lalai APP" dan pilih Chrome.</translation>
 <translation id="2868822340714096138">Kosongkan Data Semakan Imbas dalam Chrome</translation>
 <translation id="2869959624320573933">Log Masuk ke Chrome</translation>
 <translation id="2876628302275096482">Ketahui lebih lanjut tentang <ph name="BEGIN_LINK" />cara Chrome mengekalkan data anda peribadi<ph name="END_LINK" /></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 92cf952..38156c7f 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
@@ -56,7 +56,6 @@
 <translation id="2732745070297234559">Chrome က စကားဝှက်အားလုံးကို စစ်ဆေး၍မရပါ။ မနက်ဖြန် ထပ်စမ်းကြည့်ပါ။</translation>
 <translation id="2736805085127235148">သင့်စက်ဆက်တင်များတွင် Chrome အကြောင်းကြားချက်များကို လောလောဆယ်ပိတ်ထားသည်။</translation>
 <translation id="2767464022270041271">သိမ်းထားသော စကားဝှက် မရှိပါ။ သင်စကားဝှက်များကို သိမ်းသည့်အခါ Google Password Manager က ၎င်းတို့ကို စစ်ဆေးနိုင်သည်။</translation>
-<translation id="2840432500933227975">iOS တွင် Chrome ဆက်တင်များကို ဖွင့်ပါ၊ ထို့နောက် “မူရင်း ဘရောင်ဇာအက်ပ်” ကို တို့ပြီး Chrome ကို ရွေးပါ။</translation>
 <translation id="2868822340714096138">Chrome ၌ ဖွင့်ကြည့်ထားသည့်မှတ်တမ်းဒေတာကို ရှင်းရန်</translation>
 <translation id="2869959624320573933">Chrome တွင် လက်မှတ်ထိုးဝင်ရန်</translation>
 <translation id="2876628302275096482"><ph name="BEGIN_LINK" />Chrome က သင့်ဒေတာကို သီးသန့်ထားပေးပုံ<ph name="END_LINK" /> အကြောင်း ပိုမိုလေ့လာရန်</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 e40ce81..42505fe 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
@@ -56,7 +56,6 @@
 <translation id="2732745070297234559">Chrome ले सबै पासवर्डहरू जाँच्न सकेन। भोलि फेरि प्रयास गर्नुहोस्।</translation>
 <translation id="2736805085127235148">हाल तपाईंको डिभाइसका सेटिङमा Chrome सम्बन्धी सूचना प्राप्त गर्ने सुविधा अफ गरिएको छ।</translation>
 <translation id="2767464022270041271">कुनै पनि पासवर्ड सेभ गरिएको छैन। तपाईंले आफ्ना पासवर्डहरू सेभ गर्नुभएको छ भने मात्र Google पासवर्ड म्यानेजरले ती पासवर्डहरू जाँच्न सक्छ।</translation>
-<translation id="2840432500933227975">iOS मा Chrome का सेटिङ खोल्नुहोस्, त्यसपछि "डिफल्ट ब्राउजर एप" मा ट्याप गर्नुहोस् र "Chrome" चयन गर्नुहोस्।</translation>
 <translation id="2868822340714096138">Chrome को ब्राउजिङ डेटा मेटाउनुहोस्</translation>
 <translation id="2869959624320573933">Chrome मा साइन इन गर्नुहोस्</translation>
 <translation id="2876628302275096482"><ph name="BEGIN_LINK" />Chrome ले तपाईंको डेटा कसरी गोप्य राख्छ<ph name="END_LINK" /> भन्ने बारेमा थप जान्नुहोस्</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 8b3e6496..25333a8 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
@@ -56,7 +56,6 @@
 <translation id="2732745070297234559">Chrome kan niet alle wachtwoorden checken. Probeer het morgen opnieuw.</translation>
 <translation id="2736805085127235148">Chrome-meldingen staan momenteel uit in je apparaatinstellingen.</translation>
 <translation id="2767464022270041271">Geen opgeslagen wachtwoorden. Google Wachtwoordmanager kan je wachtwoorden checken als je deze opslaat.</translation>
-<translation id="2840432500933227975">Open de Chrome-instellingen in iOS, tik op Standaard browser-app en selecteer Chrome.</translation>
 <translation id="2868822340714096138">Browsegegevens in Chrome wissen</translation>
 <translation id="2869959624320573933">Inloggen bij Chrome</translation>
 <translation id="2876628302275096482">Meer informatie over <ph name="BEGIN_LINK" />hoe Chrome je gegevens privé houdt<ph name="END_LINK" /></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 01721875..2ef42fc 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
@@ -56,7 +56,6 @@
 <translation id="2732745070297234559">Chrome kunne ikke sjekke alle passordene. Prøv på nytt i morgen.</translation>
 <translation id="2736805085127235148">Chrome-varsler er nå slått av i enhetsinnstillingene.</translation>
 <translation id="2767464022270041271">Ingen lagrede passord. Google Passordlagring kan sjekke passordene dine når du lagrer dem.</translation>
-<translation id="2840432500933227975">Åpne Chrome-innstillingene i iOS, trykk på «Standard nettleserapp», og velg Chrome.</translation>
 <translation id="2868822340714096138">Slett nettlesingsdata i Chrome</translation>
 <translation id="2869959624320573933">Logg på Chrome</translation>
 <translation id="2876628302275096482">Finn ut mer om <ph name="BEGIN_LINK" />hvordan Chrome holder dataene dine private<ph name="END_LINK" /></translation>
diff --git a/ios/chrome/app/strings/resources/ios_google_chrome_strings_or.xtb b/ios/chrome/app/strings/resources/ios_google_chrome_strings_or.xtb
index 94a5f24a..a66fdf02 100644
--- a/ios/chrome/app/strings/resources/ios_google_chrome_strings_or.xtb
+++ b/ios/chrome/app/strings/resources/ios_google_chrome_strings_or.xtb
@@ -56,7 +56,6 @@
 <translation id="2732745070297234559">Chrome ସମସ୍ତ ପାସୱାର୍ଡକୁ ଯାଞ୍ଚ କରିପାରିଲା ନାହିଁ। ଆସନ୍ତାକାଲି ପୁଣି ଚେଷ୍ଟା କରନ୍ତୁ।</translation>
 <translation id="2736805085127235148">ଆପଣଙ୍କ ଡିଭାଇସ ସେଟିଂସରେ Chrome ବିଜ୍ଞପ୍ତିଗୁଡ଼ିକ ବର୍ତ୍ତମାନ ବନ୍ଦ ଅଛି।</translation>
 <translation id="2767464022270041271">ସେଭ କରାଯାଇଥିବା କୌଣସି ପାସୱାର୍ଡ ନାହିଁ। ଆପଣ ଆପଣଙ୍କ ପାସୱାର୍ଡଗୁଡ଼ିକୁ ସେଭ କଲେ Google Password Manager ସେଗୁଡ଼ିକୁ ଯାଞ୍ଚ କରିପାରିବ।</translation>
-<translation id="2840432500933227975">iOSରେ Chrome ସେଟିଂସ ଖୋଲନ୍ତୁ, ତା'ପରେ "ବ୍ରାଉଜର ଡିଫ୍ଟଲ୍ଟ ଆପ"ରେ ଟାପ କରି Chromeକୁ ଚୟନ କରନ୍ତୁ।</translation>
 <translation id="2868822340714096138">Chromeରେ ବ୍ରାଉଜିଂ ଡାଟାକୁ ଖାଲି କରନ୍ତୁ</translation>
 <translation id="2869959624320573933">Chromeରେ ସାଇନ୍ ଇନ୍ କରନ୍ତୁ</translation>
 <translation id="2876628302275096482"><ph name="BEGIN_LINK" />Chrome ଆପଣଙ୍କ ଡାଟାକୁ କିପରି ପ୍ରାଇଭେଟ ରଖେ<ph name="END_LINK" /> ସେ ବିଷୟରେ ଅଧିକ ଜାଣନ୍ତୁ</translation>
diff --git a/ios/chrome/app/strings/resources/ios_google_chrome_strings_pa.xtb b/ios/chrome/app/strings/resources/ios_google_chrome_strings_pa.xtb
index 6e50acf9..63b1355 100644
--- a/ios/chrome/app/strings/resources/ios_google_chrome_strings_pa.xtb
+++ b/ios/chrome/app/strings/resources/ios_google_chrome_strings_pa.xtb
@@ -56,7 +56,6 @@
 <translation id="2732745070297234559">Chrome ਸਾਰੇ ਪਾਸਵਰਡਾਂ ਦੀ ਜਾਂਚ ਨਹੀਂ ਕਰ ਸਕਿਆ। ਕੱਲ੍ਹ ਨੂੰ ਦੁਬਾਰਾ ਕੋਸ਼ਿਸ਼ ਕਰੋ।</translation>
 <translation id="2736805085127235148">ਤੁਹਾਡੇ ਡੀਵਾਈਸ ਦੀਆਂ ਸੈਟਿੰਗਾਂ ਵਿੱਚ Chrome ਦੀਆਂ ਸੂਚਨਾਵਾਂ ਫ਼ਿਲਹਾਲ ਬੰਦ ਹਨ।</translation>
 <translation id="2767464022270041271">ਕੋਈ ਰੱਖਿਅਤ ਕੀਤਾ ਪਾਸਵਰਡ ਨਹੀਂ। ਤੁਹਾਡੇ ਵੱਲੋਂ ਆਪਣੇ ਪਾਸਵਰਡ ਰੱਖਿਅਤ ਕਰਨ 'ਤੇ Google Password Manager ਉਨ੍ਹਾਂ ਦੀ ਜਾਂਚ ਕਰ ਸਕਦਾ ਹੈ।</translation>
-<translation id="2840432500933227975">iOS ਵਿੱਚ Chrome ਸੈਟਿੰਗਾਂ ਖੋਲ੍ਹੋ, ਫਿਰ "ਪੂਰਵ-ਨਿਰਧਾਰਿਤ ਬ੍ਰਾਊਜ਼ਰ ਐਪ" 'ਤੇ ਟੈਪ ਕਰੋ ਅਤੇ Chrome ਚੁਣੋ।</translation>
 <translation id="2868822340714096138">Chrome ਵਿੱਚ ਬ੍ਰਾਊਜ਼ਿੰਗ ਡਾਟਾ ਕਲੀਅਰ ਕਰੋ</translation>
 <translation id="2869959624320573933">Chrome ਵਿੱਚ ਸਾਈਨ-ਇਨ ਕਰੋ</translation>
 <translation id="2876628302275096482"><ph name="BEGIN_LINK" />Chrome ਤੁਹਾਡੇ ਡਾਟੇ ਨੂੰ ਨਿੱਜੀ ਕਿਵੇਂ ਰੱਖਦਾ ਹੈ<ph name="END_LINK" /> ਇਸ ਬਾਰੇ ਹੋਰ ਜਾਣੋ</translation>
diff --git a/ios/chrome/app/strings/resources/ios_google_chrome_strings_pl.xtb b/ios/chrome/app/strings/resources/ios_google_chrome_strings_pl.xtb
index d8c3bfa4..33882a4 100644
--- a/ios/chrome/app/strings/resources/ios_google_chrome_strings_pl.xtb
+++ b/ios/chrome/app/strings/resources/ios_google_chrome_strings_pl.xtb
@@ -56,7 +56,6 @@
 <translation id="2732745070297234559">Przeglądarce Chrome nie udało się sprawdzić wszystkich haseł. Spróbuj ponownie jutro.</translation>
 <translation id="2736805085127235148">Powiadomienia Chrome są aktualnie wyłączone w ustawieniach urządzenia.</translation>
 <translation id="2767464022270041271">Brak zapisanych haseł. Menedżer haseł Google może sprawdzać Twoje hasła, gdy je zapiszesz.</translation>
-<translation id="2840432500933227975">Otwórz Ustawienia Chrome na iOS, kliknij „Domyślna przeglądarka” i wybierz Chrome.</translation>
 <translation id="2868822340714096138">Wyczyść dane przeglądania w Chrome</translation>
 <translation id="2869959624320573933">Zaloguj się w Chrome</translation>
 <translation id="2876628302275096482">Dowiedz się więcej o tym, <ph name="BEGIN_LINK" />jak Chrome dba o prywatność Twoich danych<ph name="END_LINK" />.</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 7836967..dd7d7ad1 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
@@ -56,7 +56,6 @@
 <translation id="2732745070297234559">Não foi possível verificar todas as senhas com o Chrome. Tente novamente amanhã.</translation>
 <translation id="2736805085127235148">As notificações do Chrome estão desativadas nas configurações do dispositivo no momento.</translation>
 <translation id="2767464022270041271">Nenhuma senha salva. O Gerenciador de senhas do Google pode verificar suas senhas quando você as salva.</translation>
-<translation id="2840432500933227975">Abra as configurações do Chrome no iOS, toque em "App de navegação padrão" e selecione o Chrome.</translation>
 <translation id="2868822340714096138">Limpar dados de navegação no Chrome</translation>
 <translation id="2869959624320573933">Faça login no Chrome</translation>
 <translation id="2876628302275096482">Saiba mais sobre <ph name="BEGIN_LINK" />como o Chrome mantém a privacidade dos seus dados<ph name="END_LINK" /></translation>
diff --git a/ios/chrome/app/strings/resources/ios_google_chrome_strings_pt-PT.xtb b/ios/chrome/app/strings/resources/ios_google_chrome_strings_pt-PT.xtb
index 2155b22..74ea314 100644
--- a/ios/chrome/app/strings/resources/ios_google_chrome_strings_pt-PT.xtb
+++ b/ios/chrome/app/strings/resources/ios_google_chrome_strings_pt-PT.xtb
@@ -56,7 +56,6 @@
 <translation id="2732745070297234559">O Chrome não conseguiu verificar todas as palavras-passe. Tente novamente amanhã.</translation>
 <translation id="2736805085127235148">As notificações do Chrome estão atualmente desativadas nas Definições do dispositivo.</translation>
 <translation id="2767464022270041271">Não existem palavras-passe guardadas. O Gestor de Palavras-passe da Google pode verificar as suas palavras-passe quando as guardar.</translation>
-<translation id="2840432500933227975">Abra as Definições do Chrome no iOS, toque em "APP de navegador predefinida" e selecione o Chrome.</translation>
 <translation id="2868822340714096138">Limpar dados de navegação no Chrome</translation>
 <translation id="2869959624320573933">Inicie sessão no Chrome</translation>
 <translation id="2876628302275096482">Saiba <ph name="BEGIN_LINK" />como o Chrome mantém os seus dados privados<ph name="END_LINK" /></translation>
diff --git a/ios/chrome/app/strings/resources/ios_google_chrome_strings_ro.xtb b/ios/chrome/app/strings/resources/ios_google_chrome_strings_ro.xtb
index 3ff192c..adbc1fa 100644
--- a/ios/chrome/app/strings/resources/ios_google_chrome_strings_ro.xtb
+++ b/ios/chrome/app/strings/resources/ios_google_chrome_strings_ro.xtb
@@ -56,7 +56,6 @@
 <translation id="2732745070297234559">Chrome nu a putut verifica toate parolele. Încearcă din nou mâine.</translation>
 <translation id="2736805085127235148">Notificările din Chrome sunt momentan dezactivate în setările dispozitivului.</translation>
 <translation id="2767464022270041271">Nu există parole salvate. Managerul de parole Google îți poate verifica parolele atunci când le salvezi.</translation>
-<translation id="2840432500933227975">Deschide Setările Chrome în iOS, apoi atinge Aplicația browser prestabilită și selectează Chrome.</translation>
 <translation id="2868822340714096138">Șterge datele de navigare din Chrome</translation>
 <translation id="2869959624320573933">Conectează-te la Chrome</translation>
 <translation id="2876628302275096482">Află mai multe despre <ph name="BEGIN_LINK" />cum îți păstrează Chrome datele private<ph name="END_LINK" /></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 1c3b9f54..62b10c47 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
@@ -56,7 +56,6 @@
 <translation id="2732745070297234559">Браузеру Chrome не удается проверить все пароли. Повторите попытку завтра.</translation>
 <translation id="2736805085127235148">Включите уведомления Chrome на своем устройстве.</translation>
 <translation id="2767464022270041271">Нет сохраненных паролей. Чтобы Google Менеджер паролей мог проверять пароли, сохраните их.</translation>
-<translation id="2840432500933227975">Откройте настройки Chrome в iOS, затем нажмите "Приложение браузера по умолчанию" и выберите Chrome.</translation>
 <translation id="2868822340714096138">Удалить данные о работе в Chrome</translation>
 <translation id="2869959624320573933">Вход в Chrome</translation>
 <translation id="2876628302275096482">Подробнее о том, <ph name="BEGIN_LINK" />как Chrome обеспечивает конфиденциальность ваших данных<ph name="END_LINK" />…</translation>
diff --git a/ios/chrome/app/strings/resources/ios_google_chrome_strings_si.xtb b/ios/chrome/app/strings/resources/ios_google_chrome_strings_si.xtb
index e8dab46..a9b310f0 100644
--- a/ios/chrome/app/strings/resources/ios_google_chrome_strings_si.xtb
+++ b/ios/chrome/app/strings/resources/ios_google_chrome_strings_si.xtb
@@ -56,7 +56,6 @@
 <translation id="2732745070297234559">Chrome හට සියලු මුරපද පරීක්ෂා කළ නොහැකි විය. හෙට නැවත උත්සාහ කරන්න.</translation>
 <translation id="2736805085127235148">Chrome දැනුම්දීම් දැනට ඔබේ උපාංග සැකසීම් තුළ ක්‍රියා විරහිත කර ඇත.</translation>
 <translation id="2767464022270041271">සුරැකි මුරපද නැත. ඔබ ඔබේ මුරපද සුරකින විට Google මුරපද කළමනාකරු හට ඒවා පරීක්ෂා කළ හැක.</translation>
-<translation id="2840432500933227975">iOS තුළ Chrome සැකසීම් විවෘත කරන්න, ඉන්පසු "බ්‍රවුසර පෙරනිමි යෙදුම" මත තට්ටු කර Chrome තෝරන්න.</translation>
 <translation id="2868822340714096138">Chrome තුළ බ්‍රවුස් කිරීමේ දත්ත හිස් කරන්න</translation>
 <translation id="2869959624320573933">Chrome වෙත පුරන්න</translation>
 <translation id="2876628302275096482"><ph name="BEGIN_LINK" />Chrome ඔබේ දත්ත පෞද්ගලිකව තබා ගන්නා ආකාරය<ph name="END_LINK" /> පිළිබඳව තව දැන ගන්න</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 ae95596..f331730 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
@@ -56,7 +56,6 @@
 <translation id="2732745070297234559">Chromu sa nepodarilo skontrolovať všetky heslá. Skúste to znova zajtra.</translation>
 <translation id="2736805085127235148">Upozornenia Chromu sú momentálne v nastaveniach zariadenia vypnuté.</translation>
 <translation id="2767464022270041271">Žiadne uložené heslá. Správca hesiel Google môže kontrolovať heslá, keď ich uložíte.</translation>
-<translation id="2840432500933227975">V zariadení so systémom iOS otvorte Nastavenia Chromu, klepnite na položku Predvolená aplikácia na prehliadanie a vyberte Chrome.</translation>
 <translation id="2868822340714096138">Vymazanie dát prehliadania v Chrome</translation>
 <translation id="2869959624320573933">Prihláste sa do Chromu</translation>
 <translation id="2876628302275096482"><ph name="BEGIN_LINK" />Ako Chrome uchováva vaše údaje v súkromí<ph name="END_LINK" /></translation>
diff --git a/ios/chrome/app/strings/resources/ios_google_chrome_strings_sl.xtb b/ios/chrome/app/strings/resources/ios_google_chrome_strings_sl.xtb
index 39f974b..71f2a22 100644
--- a/ios/chrome/app/strings/resources/ios_google_chrome_strings_sl.xtb
+++ b/ios/chrome/app/strings/resources/ios_google_chrome_strings_sl.xtb
@@ -56,7 +56,6 @@
 <translation id="2732745070297234559">Chromu ni uspelo preveriti vseh gesel. Poskusite znova jutri.</translation>
 <translation id="2736805085127235148">Obvestila za Chrome so trenutno izklopljena v nastavitvah naprave.</translation>
 <translation id="2767464022270041271">Ni shranjenih gesel. Googlov upravitelj gesel lahko preveri gesla, če jih shranite.</translation>
-<translation id="2840432500933227975">V sistemu iOS odprite nastavitve za Chrome, nato se dotaknite »Browser Default APP« (Privzeti brskalnik) in izberite Chrome.</translation>
 <translation id="2868822340714096138">Brisanje podatkov brskanja v Chromu</translation>
 <translation id="2869959624320573933">Prijava v Chrome</translation>
 <translation id="2876628302275096482">Preberite več o tem, <ph name="BEGIN_LINK" />kako Chrome zagotavlja zasebnost vaših podatkov<ph name="END_LINK" /></translation>
diff --git a/ios/chrome/app/strings/resources/ios_google_chrome_strings_sq.xtb b/ios/chrome/app/strings/resources/ios_google_chrome_strings_sq.xtb
index 014d91d..bbec45d 100644
--- a/ios/chrome/app/strings/resources/ios_google_chrome_strings_sq.xtb
+++ b/ios/chrome/app/strings/resources/ios_google_chrome_strings_sq.xtb
@@ -55,7 +55,6 @@
 <translation id="2732745070297234559">Chrome nuk mund t'i kontrollonte të gjitha fjalëkalimet. Provo sërish nesër.</translation>
 <translation id="2736805085127235148">Njoftimet e Chrome janë çaktivizuar aktualisht te cilësimet e pajisjes sate.</translation>
 <translation id="2767464022270041271">Nuk ka asnjë fjalëkalim të ruajtur. "Menaxheri i fjalëkalimeve i Google" mund t'i kontrollojë fjalëkalimet e tua kur ti i ruan ato.</translation>
-<translation id="2840432500933227975">Hap "Cilësimet" e Chrome në iOS dhe më pas trokit te "Browser Default APP" dhe zgjidh Chrome.</translation>
 <translation id="2868822340714096138">Pastro të dhënat e shfletimit në Chrome</translation>
 <translation id="2869959624320573933">Identifikohu në Chrome</translation>
 <translation id="2876628302275096482">Mëso më shumë se <ph name="BEGIN_LINK" />si Chrome i mban private të dhënat e tua<ph name="END_LINK" /></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 b7a72e3..e153367 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
@@ -56,7 +56,6 @@
 <translation id="2732745070297234559">Chrome nije uspeo da proveri sve lozinke. Probajte ponovo sutra.</translation>
 <translation id="2736805085127235148">Chrome obaveštenja su trenutno isključena u podešavanjima uređaja.</translation>
 <translation id="2767464022270041271">Nema sačuvanih lozinki. Google menadžer lozinki može da vam proverava lozinke kada ih sačuvate.</translation>
-<translation id="2840432500933227975">Otvorite podešavanja Chrome-a u iOS-u, pa dodirnite Podrazumevana aplikacija pregledača i izaberite Chrome.</translation>
 <translation id="2868822340714096138">Obrišite podatke pregledanja u Chrome-u</translation>
 <translation id="2869959624320573933">Prijavite se u Chrome</translation>
 <translation id="2876628302275096482">Saznajte više o tome <ph name="BEGIN_LINK" />kako Chrome štiti privatnost podataka<ph name="END_LINK" /></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 2a4574c..1dabe01 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
@@ -56,7 +56,6 @@
 <translation id="2732745070297234559">Chrome није успео да провери све лозинке. Пробајте поново сутра.</translation>
 <translation id="2736805085127235148">Chrome обавештења су тренутно искључена у подешавањима уређаја.</translation>
 <translation id="2767464022270041271">Нема сачуваних лозинки. Google менаџер лозинки може да вам проверава лозинке када их сачувате.</translation>
-<translation id="2840432500933227975">Отворите подешавања Chrome-а у iOS-у, па додирните Подразумевана апликација прегледача и изаберите Chrome.</translation>
 <translation id="2868822340714096138">Обришите податке прегледања у Chrome-у</translation>
 <translation id="2869959624320573933">Пријавите се у Chrome</translation>
 <translation id="2876628302275096482">Сазнајте више о томе <ph name="BEGIN_LINK" />како Chrome штити приватност података<ph name="END_LINK" /></translation>
diff --git a/ios/chrome/app/strings/resources/ios_google_chrome_strings_sv.xtb b/ios/chrome/app/strings/resources/ios_google_chrome_strings_sv.xtb
index 6ea8a21f..e265a48 100644
--- a/ios/chrome/app/strings/resources/ios_google_chrome_strings_sv.xtb
+++ b/ios/chrome/app/strings/resources/ios_google_chrome_strings_sv.xtb
@@ -56,7 +56,6 @@
 <translation id="2732745070297234559">Chrome kunde inte kontrollera alla lösenord. Försök igen i morgon.</translation>
 <translation id="2736805085127235148">Chrome-aviseringar är i nuläget inaktiverade i enhetsinställningarna.</translation>
 <translation id="2767464022270041271">Inga sparade lösenord. Google Lösenordshantering kan bara kontrollera dina lösenord om du sparar dem.</translation>
-<translation id="2840432500933227975">Öppna Chrome-inställningarna i iOS, tryck på Standardwebbläsarapp och välj Chrome.</translation>
 <translation id="2868822340714096138">Rensa webbinformation i Chrome</translation>
 <translation id="2869959624320573933">Logga in i Chrome</translation>
 <translation id="2876628302275096482">Läs mer om <ph name="BEGIN_LINK" />hur Chrome skyddar din data<ph name="END_LINK" /></translation>
diff --git a/ios/chrome/app/strings/resources/ios_google_chrome_strings_sw.xtb b/ios/chrome/app/strings/resources/ios_google_chrome_strings_sw.xtb
index 05e913bc..9874a36 100644
--- a/ios/chrome/app/strings/resources/ios_google_chrome_strings_sw.xtb
+++ b/ios/chrome/app/strings/resources/ios_google_chrome_strings_sw.xtb
@@ -56,7 +56,6 @@
 <translation id="2732745070297234559">Chrome imeshindwa kukagua manenosiri yote. Jaribu tena kesho.</translation>
 <translation id="2736805085127235148">Kwa sasa arifa za Chrome zimezimwa kwenye mipangilio ya kifaa chako.</translation>
 <translation id="2767464022270041271">Hakuna manenosiri yaliyohifadhiwa. Kidhibiti cha Manenosiri cha Google kinaweza kukagua manenosiri yako unapoyahifadhi.</translation>
-<translation id="2840432500933227975">Fungua Mipangilio ya Chrome kwenye iOS, kisha uguse "PROGRAMU Chaguomsingi ya Kivinjari" na uchague Chrome.</translation>
 <translation id="2868822340714096138">Futa Data ya Kuvinjari kwenye Chrome</translation>
 <translation id="2869959624320573933">Ingia Katika Akaunti kwenye Chrome</translation>
 <translation id="2876628302275096482">Pata maelezo zaidi kuhusu <ph name="BEGIN_LINK" />jinsi Chrome inavyoweka data yako kuwa ya faragha<ph name="END_LINK" /></translation>
diff --git a/ios/chrome/app/strings/resources/ios_google_chrome_strings_ta.xtb b/ios/chrome/app/strings/resources/ios_google_chrome_strings_ta.xtb
index ef3665e..e6f1ea3 100644
--- a/ios/chrome/app/strings/resources/ios_google_chrome_strings_ta.xtb
+++ b/ios/chrome/app/strings/resources/ios_google_chrome_strings_ta.xtb
@@ -56,7 +56,6 @@
 <translation id="2732745070297234559">Chrome உலாவியால் கடவுச்சொற்கள் அனைத்தையும் சரிபார்க்க முடியவில்லை. நாளை முயலவும்.</translation>
 <translation id="2736805085127235148">உங்கள் சாதன அமைப்புகளில் Chrome அறிவிப்புகள் தற்போது முடக்கப்பட்டுள்ளன.</translation>
 <translation id="2767464022270041271">சேமித்த கடவுச்சொற்கள் எதுவுமில்லை. நீங்கள் கடவுச்சொற்களைச் சேமிக்கும்போது Google Password Managerரால் அவற்றைச் சரிபார்க்க முடியும்.</translation>
-<translation id="2840432500933227975">iOSஸில் Chrome அமைப்புகளைத் திறந்து "உலாவியின் இயல்பான ஆப்ஸ்" என்பதைத் தட்டி Chrome என்பதைத் தேர்ந்தெடுக்கவும்.</translation>
 <translation id="2868822340714096138">Chromeமில் உலாவிய தரவை அழி</translation>
 <translation id="2869959624320573933">Chromeமில் உள்நுழைக</translation>
 <translation id="2876628302275096482"><ph name="BEGIN_LINK" />Chrome உங்கள் தரவை எப்படித் தனிப்பட்டதாக வைத்திருக்கிறது<ph name="END_LINK" /> என்பது குறித்து மேலும் தெரிந்துகொள்ளுங்கள்</translation>
diff --git a/ios/chrome/app/strings/resources/ios_google_chrome_strings_te.xtb b/ios/chrome/app/strings/resources/ios_google_chrome_strings_te.xtb
index a65a3d64b..49c9028d 100644
--- a/ios/chrome/app/strings/resources/ios_google_chrome_strings_te.xtb
+++ b/ios/chrome/app/strings/resources/ios_google_chrome_strings_te.xtb
@@ -56,7 +56,6 @@
 <translation id="2732745070297234559">Chromeకు అన్ని పాస్‌వర్డ్‌లను చెక్ చేయడం సాధ్యపడలేదు. రేపు మళ్లీ ట్రై చేయండి.</translation>
 <translation id="2736805085127235148">మీ పరికర సెట్టింగ్‌లలో ప్రస్తుతం Chrome నోటిఫికేషన్‌లు ఆఫ్ చేయబడ్డాయి.</translation>
 <translation id="2767464022270041271">సేవ్ చేసిన పాస్‌వర్డ్‌లు ఏవీ లేవు. మీరు వాటిని సేవ్ చేసినప్పుడు Google Password Manager మీ పాస్‌వర్డ్‌లను చెక్ చేయవచ్చు.</translation>
-<translation id="2840432500933227975">iOSలో Chrome సెట్టింగ్‌లను తెరిచి, ఆపై "ఆటోమేటిక్ బ్రౌజర్ APP"ని ట్యాప్ చేసి, Chromeను ఎంచుకోండి.</translation>
 <translation id="2868822340714096138">Chromeలో బ్రౌజింగ్ డేటాను క్లియర్ చేయండి</translation>
 <translation id="2869959624320573933">Chromeకు సైన్ ఇన్ చేయండి</translation>
 <translation id="2876628302275096482"><ph name="BEGIN_LINK" />Chrome మీ డేటాను ఎలా ప్రైవేట్‌గా ఉంచుతుంది<ph name="END_LINK" /> అనే దాని గురించి మరింత తెలుసుకోండి</translation>
diff --git a/ios/chrome/app/strings/resources/ios_google_chrome_strings_th.xtb b/ios/chrome/app/strings/resources/ios_google_chrome_strings_th.xtb
index a8dfcf01..c1036f6 100644
--- a/ios/chrome/app/strings/resources/ios_google_chrome_strings_th.xtb
+++ b/ios/chrome/app/strings/resources/ios_google_chrome_strings_th.xtb
@@ -56,7 +56,6 @@
 <translation id="2732745070297234559">Chrome ตรวจสอบรหัสผ่านได้ไม่ครบทั้งหมด โปรดลองอีกครั้งในวันพรุ่งนี้</translation>
 <translation id="2736805085127235148">ตอนนี้การแจ้งเตือนของ Chrome ปิดอยู่ในการตั้งค่าอุปกรณ์</translation>
 <translation id="2767464022270041271">ไม่มีรหัสผ่านที่บันทึกไว้ เครื่องมือจัดการรหัสผ่านบน Google จะตรวจสอบรหัสผ่านได้เมื่อคุณบันทึกไว้</translation>
-<translation id="2840432500933227975">เปิดการตั้งค่า Chrome ใน iOS จากนั้นแตะ "แอปเบราว์เซอร์เริ่มต้น" แล้วเลือก Chrome</translation>
 <translation id="2868822340714096138">ล้างข้อมูลการท่องเว็บใน Chrome</translation>
 <translation id="2869959624320573933">ลงชื่อเข้าใช้ Chrome</translation>
 <translation id="2876628302275096482">ดูข้อมูลเพิ่มเติมเกี่ยวกับ<ph name="BEGIN_LINK" />วิธีที่ Chrome ช่วยรักษาข้อมูลของคุณให้เป็นส่วนตัว<ph name="END_LINK" /></translation>
diff --git a/ios/chrome/app/strings/resources/ios_google_chrome_strings_tr.xtb b/ios/chrome/app/strings/resources/ios_google_chrome_strings_tr.xtb
index 482d0c0f..0d2a7568 100644
--- a/ios/chrome/app/strings/resources/ios_google_chrome_strings_tr.xtb
+++ b/ios/chrome/app/strings/resources/ios_google_chrome_strings_tr.xtb
@@ -56,7 +56,6 @@
 <translation id="2732745070297234559">Chrome, şifrelerin tümünü kontrol edemedi. Yarın tekrar deneyin.</translation>
 <translation id="2736805085127235148">Chrome bildirimleri cihaz ayarlarınızda devre dışı bırakılmış.</translation>
 <translation id="2767464022270041271">Kaydedilen şifre yok. Google Şifre Yöneticisi, kaydetmeniz halinde şifrelerinizi kontrol edebilir.</translation>
-<translation id="2840432500933227975">iOS'te Chrome Ayarları'nı açtıktan sonra "Varsayılan Tarayıcı Uygulaması"na dokunup Chrome'u seçin.</translation>
 <translation id="2868822340714096138">Chrome'da Tarama Verilerini Temizle</translation>
 <translation id="2869959624320573933">Chrome'da Oturum Açın</translation>
 <translation id="2876628302275096482"><ph name="BEGIN_LINK" />Chrome'un verilerinizi nasıl gizli tuttuğu<ph name="END_LINK" /> hakkında daha fazla bilg edinin</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 b961471..4314dce3 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
@@ -56,7 +56,6 @@
 <translation id="2732745070297234559">Chrome не вдалося перевірити всі паролі. Повторіть спробу завтра.</translation>
 <translation id="2736805085127235148">Сповіщення Chrome зараз вимкнено в налаштуваннях пристрою.</translation>
 <translation id="2767464022270041271">Немає збережених паролів. Google Менеджер паролів зможе перевірити ваші паролі, коли ви їх збережете.</translation>
-<translation id="2840432500933227975">На пристрої iOS відкрийте налаштування Chrome, натисніть "Веб-переглядач за умовчанням" і виберіть Chrome.</translation>
 <translation id="2868822340714096138">Очистити дані веб-перегляду в Chrome</translation>
 <translation id="2869959624320573933">Увійдіть у Chrome</translation>
 <translation id="2876628302275096482">Докладніше про те, <ph name="BEGIN_LINK" />як Chrome захищає ваші дані<ph name="END_LINK" /></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 b79b13cc..88c4e28 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
@@ -56,7 +56,6 @@
 <translation id="2732745070297234559">‏Chrome سبھی پاس ورڈز چیک نہیں کر سکا۔ کل دوبارہ کوشش کریں۔</translation>
 <translation id="2736805085127235148">‏Chrome کی اطلاعات فی الحال آپ کے آلے کی ترتیبات میں آف ہیں۔</translation>
 <translation id="2767464022270041271">‏کوئی محفوظ کردہ پاس ورڈز نہیں۔ جب آپ اپنے پاس ورڈز کو محفوظ کرتے ہیں تو Google پاس ورڈ مینیجر انہیں چیک کر سکتا ہے۔</translation>
-<translation id="2840432500933227975">‏iOS میں Chrome کی ترتیبات کھولیں، پھر "ڈیفالٹ براؤزر ایپ" پر تھپتھپائیں اور Chrome منتخب کریں۔</translation>
 <translation id="2868822340714096138">‏Chrome میں براؤزنگ ڈیٹا صاف کریں</translation>
 <translation id="2869959624320573933">‏Chrome میں سائن ان کریں</translation>
 <translation id="2876628302275096482">‏اس بارے میں مزید جانیں کہ <ph name="BEGIN_LINK" />Chrome آپ کے ڈیٹا کو کس طرح نجی رکھتا ہے<ph name="END_LINK" /></translation>
diff --git a/ios/chrome/app/strings/resources/ios_google_chrome_strings_uz.xtb b/ios/chrome/app/strings/resources/ios_google_chrome_strings_uz.xtb
index 8b317bf..3348205c 100644
--- a/ios/chrome/app/strings/resources/ios_google_chrome_strings_uz.xtb
+++ b/ios/chrome/app/strings/resources/ios_google_chrome_strings_uz.xtb
@@ -57,7 +57,6 @@
 <translation id="2732745070297234559">Chrome barcha parollarni tekshira olmadi. Ertaga qayta urining.</translation>
 <translation id="2736805085127235148">Chrome bildirishnomalari ayni vaqtda qurilma sozlamalarida yoniq emas</translation>
 <translation id="2767464022270041271">Hech qanday parol saqlanmagan. Google Parollar menejeri parollarni saqlanishidan oldin tekshirishi mumkin.</translation>
-<translation id="2840432500933227975">iOSda Chrome sozlamalarini ochib, keyin “Birlamchi brauzer ILOVASI” ustiga bosib, Chromeni tanlang.</translation>
 <translation id="2868822340714096138">Chrome brauzer maʼlumotlarini tozalash</translation>
 <translation id="2869959624320573933">Chrome hisobiga kirish</translation>
 <translation id="2876628302275096482"><ph name="BEGIN_LINK" />Chrome maʼlumotlaringizni qanday xavfsiz saqlashi<ph name="END_LINK" /> haqida batafsil</translation>
diff --git a/ios/chrome/app/strings/resources/ios_google_chrome_strings_vi.xtb b/ios/chrome/app/strings/resources/ios_google_chrome_strings_vi.xtb
index 841f7a916..97d20f4f 100644
--- a/ios/chrome/app/strings/resources/ios_google_chrome_strings_vi.xtb
+++ b/ios/chrome/app/strings/resources/ios_google_chrome_strings_vi.xtb
@@ -56,7 +56,6 @@
 <translation id="2732745070297234559">Chrome không thể kiểm tra một số mật khẩu. Hãy thử lại vào ngày mai.</translation>
 <translation id="2736805085127235148">Thông báo của Chrome hiện đang tắt trong phần cài đặt của thiết bị.</translation>
 <translation id="2767464022270041271">Bạn chưa lưu mật khẩu nào. Trình quản lý mật khẩu của Google có thể kiểm tra mật khẩu của bạn khi bạn lưu các mật khẩu đó.</translation>
-<translation id="2840432500933227975">Mở phần Cài đặt Chrome trong iOS, sau đó nhấn vào "Ứng dụng trình duyệt mặc định" và chọn Chrome.</translation>
 <translation id="2868822340714096138">Xoá dữ liệu duyệt web trong Chrome</translation>
 <translation id="2869959624320573933">Đăng nhập vào Chrome</translation>
 <translation id="2876628302275096482">Tìm hiểu thêm về <ph name="BEGIN_LINK" />cách Chrome bảo mật dữ liệu của bạn<ph name="END_LINK" /></translation>
diff --git a/ios/chrome/app/strings/resources/ios_google_chrome_strings_zh-CN.xtb b/ios/chrome/app/strings/resources/ios_google_chrome_strings_zh-CN.xtb
index ce3b163..5d8e450 100644
--- a/ios/chrome/app/strings/resources/ios_google_chrome_strings_zh-CN.xtb
+++ b/ios/chrome/app/strings/resources/ios_google_chrome_strings_zh-CN.xtb
@@ -55,7 +55,6 @@
 <translation id="2732745070297234559">Chrome 无法检查所有密码。请明天再试。</translation>
 <translation id="2736805085127235148">目前,在您的设备设置中,Chrome 通知功能处于关闭状态。</translation>
 <translation id="2767464022270041271">尚未保存任何密码。您需要先保存密码,然后才能使用 Google 密码管理工具的密码检查功能。</translation>
-<translation id="2840432500933227975">在 iOS 中打开 Chrome 设置,然后点按“浏览器默认应用”并选择“Chrome”。</translation>
 <translation id="2868822340714096138">清除 Chrome 中的浏览数据</translation>
 <translation id="2869959624320573933">登录 Chrome</translation>
 <translation id="2876628302275096482">详细了解 <ph name="BEGIN_LINK" />Chrome 如何确保您数据的私密性<ph name="END_LINK" /></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 9ac7c07..42a7dc9 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
@@ -56,7 +56,6 @@
 <translation id="2732745070297234559">Chrome 無法檢查所有密碼。請明天再試。</translation>
 <translation id="2736805085127235148">目前未在裝置設定中開啟 Chrome 通知。</translation>
 <translation id="2767464022270041271">沒有已儲存的密碼。當您儲存密碼時,「Google 密碼管理工具」可檢查您的密碼。</translation>
-<translation id="2840432500933227975">在 iOS 中開啟 Chromium 設定,輕按 [瀏覽器預設應用程式],然後選取 [Chrome]。</translation>
 <translation id="2868822340714096138">清除 Chrome 中的瀏覽資料</translation>
 <translation id="2869959624320573933">登入 Chrome</translation>
 <translation id="2876628302275096482">進一步瞭解 <ph name="BEGIN_LINK" />Chrome 如何確保你的資料保密<ph name="END_LINK" /></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 8ea6ed2..812f4fd 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
@@ -56,7 +56,6 @@
 <translation id="2732745070297234559">Chrome 無法檢查所有密碼,請明天再試。</translation>
 <translation id="2736805085127235148">目前未在裝置設定中開啟 Chrome 通知。</translation>
 <translation id="2767464022270041271">尚未儲存任何密碼。你必須先儲存密碼,才能使用 Google 密碼管理工具的檢查功能。</translation>
-<translation id="2840432500933227975">在 iOS 中開啟 Chrome 設定,輕觸「瀏覽器預設應用程式」,然後選取「Chrome」。</translation>
 <translation id="2868822340714096138">清除 Chrome 中的瀏覽資料</translation>
 <translation id="2869959624320573933">登入 Chrome</translation>
 <translation id="2876628302275096482">進一步瞭解 <ph name="BEGIN_LINK" />Chrome 如何保護你的資料隱私<ph name="END_LINK" /></translation>
diff --git a/ios/chrome/app/strings/resources/ios_google_chrome_strings_zu.xtb b/ios/chrome/app/strings/resources/ios_google_chrome_strings_zu.xtb
index 275267c..e9be6d6 100644
--- a/ios/chrome/app/strings/resources/ios_google_chrome_strings_zu.xtb
+++ b/ios/chrome/app/strings/resources/ios_google_chrome_strings_zu.xtb
@@ -56,7 +56,6 @@
 <translation id="2732745070297234559">I-Chrome ayikwazanga ukuhlola wonke amaphasiwedi. Zama futhi kusasa.</translation>
 <translation id="2736805085127235148">Izaziso ze-Chrome okwamanje zivaliwe kumasethingi edivayisi yakho.</translation>
 <translation id="2767464022270041271">Awekho amaphasiwedi alondoloziwe. Isiphathi Sephasiwedi ye-Google singahlola amaphasiwedi akho uma uwalondoloza.</translation>
-<translation id="2840432500933227975">Vula Amasethingi we-Chrome ku-iOS, bese uthepha kokuthi "I-APP Ezenzakalelayo Yebhrawuza" bese ukhetha i-Chrome.</translation>
 <translation id="2868822340714096138">Sula Idatha Yokubhrawuza ku-Chrome</translation>
 <translation id="2869959624320573933">Ngena ngemvume ku-Chrome</translation>
 <translation id="2876628302275096482">Funda kabanzi mayelana <ph name="BEGIN_LINK" />nokuthi i-Chrome igcina kanjani idatha yakho iyimfihlo<ph name="END_LINK" /></translation>
diff --git a/ios/chrome/app/strings/resources/ios_strings_af.xtb b/ios/chrome/app/strings/resources/ios_strings_af.xtb
index 12a1b5f..903f121 100644
--- a/ios/chrome/app/strings/resources/ios_strings_af.xtb
+++ b/ios/chrome/app/strings/resources/ios_strings_af.xtb
@@ -210,6 +210,7 @@
 <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="2148716181193084225">Vandag</translation>
 <translation id="2149973817440762519">Wysig boekmerk</translation>
 <translation id="2155145621546387786">Deel Chrome</translation>
 <translation id="2175927920773552910">QR-kode</translation>
diff --git a/ios/chrome/app/strings/resources/ios_strings_am.xtb b/ios/chrome/app/strings/resources/ios_strings_am.xtb
index 615c330..d72111f1 100644
--- a/ios/chrome/app/strings/resources/ios_strings_am.xtb
+++ b/ios/chrome/app/strings/resources/ios_strings_am.xtb
@@ -210,6 +210,7 @@
 <translation id="2139502497535990641">የዋጋ ማንቂያዎች ይብሩ?</translation>
 <translation id="2139867232736819575">የቀዱትን ጽሁፍ ይፈልጉ</translation>
 <translation id="214201757571129614">ግባ…</translation>
+<translation id="2148716181193084225">ዛሬ</translation>
 <translation id="2149973817440762519">እልባት አርትዕ</translation>
 <translation id="2155145621546387786">Chromeን አጋራ</translation>
 <translation id="2175927920773552910">የQR ኮድ</translation>
diff --git a/ios/chrome/app/strings/resources/ios_strings_ar.xtb b/ios/chrome/app/strings/resources/ios_strings_ar.xtb
index 6a406e9d..a8a4a2b 100644
--- a/ios/chrome/app/strings/resources/ios_strings_ar.xtb
+++ b/ios/chrome/app/strings/resources/ios_strings_ar.xtb
@@ -212,6 +212,7 @@
 <translation id="2139502497535990641">هل تريد تلقِّي تنبيهات عن تغيير الأسعار؟</translation>
 <translation id="2139867232736819575">البحث عن النص الذي نسخته</translation>
 <translation id="214201757571129614">تسجيل الدخول…</translation>
+<translation id="2148716181193084225">اليوم</translation>
 <translation id="2149973817440762519">تعديل الإشارة</translation>
 <translation id="2155145621546387786">‏مشاركة رابط تطبيق Chrome</translation>
 <translation id="2175927920773552910">رمز الاستجابة السريعة</translation>
diff --git a/ios/chrome/app/strings/resources/ios_strings_as.xtb b/ios/chrome/app/strings/resources/ios_strings_as.xtb
index 76b47b4..4c0153cf 100644
--- a/ios/chrome/app/strings/resources/ios_strings_as.xtb
+++ b/ios/chrome/app/strings/resources/ios_strings_as.xtb
@@ -210,6 +210,7 @@
 <translation id="2139502497535990641">মূল্য সম্পৰ্কীয় সতৰ্কবাৰ্তাৰ সুবিধাটো অন কৰিবনে?</translation>
 <translation id="2139867232736819575">আপুনি প্ৰতিলিপি কৰা পাঠৰ সন্ধান কৰক</translation>
 <translation id="214201757571129614">ছাইন ইন কৰক…</translation>
+<translation id="2148716181193084225">আজি</translation>
 <translation id="2149973817440762519">বুকমার্ক সম্পাদনা কৰক</translation>
 <translation id="2155145621546387786">Chrome শ্বেয়াৰ কৰক</translation>
 <translation id="2175927920773552910">কিউআৰ ক’ড</translation>
diff --git a/ios/chrome/app/strings/resources/ios_strings_az.xtb b/ios/chrome/app/strings/resources/ios_strings_az.xtb
index c3e7dcc..a04fffa9 100644
--- a/ios/chrome/app/strings/resources/ios_strings_az.xtb
+++ b/ios/chrome/app/strings/resources/ios_strings_az.xtb
@@ -210,6 +210,7 @@
 <translation id="2139502497535990641">Qiymət xəbərdarlıqları aktiv edilsin?</translation>
 <translation id="2139867232736819575">Kopyalanmış Mətni Axtarın</translation>
 <translation id="214201757571129614">Giriş…</translation>
+<translation id="2148716181193084225">Bu gün</translation>
 <translation id="2149973817440762519">Əlfəcinə düzəliş edin</translation>
 <translation id="2155145621546387786">Chrome'u paylaşın</translation>
 <translation id="2175927920773552910">QR Kod</translation>
diff --git a/ios/chrome/app/strings/resources/ios_strings_be.xtb b/ios/chrome/app/strings/resources/ios_strings_be.xtb
index 32d29ef..e0d08d1 100644
--- a/ios/chrome/app/strings/resources/ios_strings_be.xtb
+++ b/ios/chrome/app/strings/resources/ios_strings_be.xtb
@@ -210,6 +210,7 @@
 <translation id="2139502497535990641">Уключыць абвесткі аб зніжэнні цэн?</translation>
 <translation id="2139867232736819575">Пошук скапіраванага тэксту</translation>
 <translation id="214201757571129614">Увайсці…</translation>
+<translation id="2148716181193084225">Сёння</translation>
 <translation id="2149973817440762519">Рэдагаваць закладку</translation>
 <translation id="2155145621546387786">Абагуліць Chrome</translation>
 <translation id="2175927920773552910">QR-код</translation>
diff --git a/ios/chrome/app/strings/resources/ios_strings_bg.xtb b/ios/chrome/app/strings/resources/ios_strings_bg.xtb
index a3dffe0f..25c13b4c 100644
--- a/ios/chrome/app/strings/resources/ios_strings_bg.xtb
+++ b/ios/chrome/app/strings/resources/ios_strings_bg.xtb
@@ -210,6 +210,7 @@
 <translation id="2139502497535990641">Да се включат ли известията за цени?</translation>
 <translation id="2139867232736819575">Търсене на копирания текст</translation>
 <translation id="214201757571129614">Вход…</translation>
+<translation id="2148716181193084225">днес</translation>
 <translation id="2149973817440762519">Редактиране на отметката</translation>
 <translation id="2155145621546387786">Споделяне на Chrome</translation>
 <translation id="2175927920773552910">Код за бърза реакция</translation>
diff --git a/ios/chrome/app/strings/resources/ios_strings_bn.xtb b/ios/chrome/app/strings/resources/ios_strings_bn.xtb
index 39e2ae6..a685b91 100644
--- a/ios/chrome/app/strings/resources/ios_strings_bn.xtb
+++ b/ios/chrome/app/strings/resources/ios_strings_bn.xtb
@@ -210,6 +210,7 @@
 <translation id="2139502497535990641">ভাড়া বিষয়ক সতর্কতা চালু করবেন?</translation>
 <translation id="2139867232736819575">আপনার কপি করা টেক্সট সার্চ করুন</translation>
 <translation id="214201757571129614">সাইন-ইন করুন…</translation>
+<translation id="2148716181193084225">আজ</translation>
 <translation id="2149973817440762519">বুকমার্ক সম্পাদনা করুন</translation>
 <translation id="2155145621546387786">Chrome শেয়ার করুন</translation>
 <translation id="2175927920773552910">QR কোড</translation>
diff --git a/ios/chrome/app/strings/resources/ios_strings_bs.xtb b/ios/chrome/app/strings/resources/ios_strings_bs.xtb
index 6bb18be..4f17a17 100644
--- a/ios/chrome/app/strings/resources/ios_strings_bs.xtb
+++ b/ios/chrome/app/strings/resources/ios_strings_bs.xtb
@@ -210,6 +210,7 @@
 <translation id="2139502497535990641">Uključiti obavještenja o cijenama?</translation>
 <translation id="2139867232736819575">Pretraži kopirani tekst</translation>
 <translation id="214201757571129614">Prijava…</translation>
+<translation id="2148716181193084225">Danas</translation>
 <translation id="2149973817440762519">Uredi oznaku</translation>
 <translation id="2155145621546387786">Dijelite Chrome</translation>
 <translation id="2175927920773552910">QR kôd</translation>
diff --git a/ios/chrome/app/strings/resources/ios_strings_ca.xtb b/ios/chrome/app/strings/resources/ios_strings_ca.xtb
index f1c61e8..5892372 100644
--- a/ios/chrome/app/strings/resources/ios_strings_ca.xtb
+++ b/ios/chrome/app/strings/resources/ios_strings_ca.xtb
@@ -210,6 +210,7 @@
 <translation id="2139502497535990641">Vols activar les alertes de preus?</translation>
 <translation id="2139867232736819575">Cerca el text que has copiat</translation>
 <translation id="214201757571129614">Inicia la sessió…</translation>
+<translation id="2148716181193084225">Avui</translation>
 <translation id="2149973817440762519">Edita l'adreça d'interès</translation>
 <translation id="2155145621546387786">Comparteix Chrome</translation>
 <translation id="2175927920773552910">Codi QR</translation>
diff --git a/ios/chrome/app/strings/resources/ios_strings_cs.xtb b/ios/chrome/app/strings/resources/ios_strings_cs.xtb
index 9de708d..a77e11bc9 100644
--- a/ios/chrome/app/strings/resources/ios_strings_cs.xtb
+++ b/ios/chrome/app/strings/resources/ios_strings_cs.xtb
@@ -210,6 +210,7 @@
 <translation id="2139502497535990641">Zapnout upozornění na ceny?</translation>
 <translation id="2139867232736819575">Vyhledat zkopírovaný text</translation>
 <translation id="214201757571129614">Přihlásit se…</translation>
+<translation id="2148716181193084225">Dnes</translation>
 <translation id="2149973817440762519">Upravit záložku</translation>
 <translation id="2155145621546387786">Sdílet Chrome</translation>
 <translation id="2175927920773552910">QR kód</translation>
diff --git a/ios/chrome/app/strings/resources/ios_strings_cy.xtb b/ios/chrome/app/strings/resources/ios_strings_cy.xtb
index 8d985b60..d90af6b 100644
--- a/ios/chrome/app/strings/resources/ios_strings_cy.xtb
+++ b/ios/chrome/app/strings/resources/ios_strings_cy.xtb
@@ -210,6 +210,7 @@
 <translation id="2139502497535990641">Troi Rhybuddion Prisiau ymlaen?</translation>
 <translation id="2139867232736819575">Chwilio am Destun y Gwnaethoch ei Gopïo</translation>
 <translation id="214201757571129614">Mewngofnodi…</translation>
+<translation id="2148716181193084225">Heddiw</translation>
 <translation id="2149973817440762519">Golygu Nod Tudalen</translation>
 <translation id="2155145621546387786">Rhannu Chrome</translation>
 <translation id="2175927920773552910">Cod QR</translation>
diff --git a/ios/chrome/app/strings/resources/ios_strings_da.xtb b/ios/chrome/app/strings/resources/ios_strings_da.xtb
index cdb8180..b50d58e 100644
--- a/ios/chrome/app/strings/resources/ios_strings_da.xtb
+++ b/ios/chrome/app/strings/resources/ios_strings_da.xtb
@@ -210,6 +210,7 @@
 <translation id="2139502497535990641">Vil du aktivere prisunderretninger?</translation>
 <translation id="2139867232736819575">Søg efter tekst, du har kopieret</translation>
 <translation id="214201757571129614">Log ind…</translation>
+<translation id="2148716181193084225">I dag</translation>
 <translation id="2149973817440762519">Rediger bogmærke</translation>
 <translation id="2155145621546387786">Del Chrome</translation>
 <translation id="2175927920773552910">QR-kode</translation>
diff --git a/ios/chrome/app/strings/resources/ios_strings_de.xtb b/ios/chrome/app/strings/resources/ios_strings_de.xtb
index 21026440..b86ace5e 100644
--- a/ios/chrome/app/strings/resources/ios_strings_de.xtb
+++ b/ios/chrome/app/strings/resources/ios_strings_de.xtb
@@ -209,6 +209,7 @@
 <translation id="2139502497535990641">Benachrichtigungen zu Preisnachlässen aktivieren?</translation>
 <translation id="2139867232736819575">Nach von dir kopiertem Text suchen</translation>
 <translation id="214201757571129614">Anmelden…</translation>
+<translation id="2148716181193084225">Heute</translation>
 <translation id="2149973817440762519">Lesezeichen bearbeiten</translation>
 <translation id="2155145621546387786">Chrome teilen</translation>
 <translation id="2175927920773552910">QR-Code</translation>
diff --git a/ios/chrome/app/strings/resources/ios_strings_el.xtb b/ios/chrome/app/strings/resources/ios_strings_el.xtb
index 725b1f4..a4f44b4e 100644
--- a/ios/chrome/app/strings/resources/ios_strings_el.xtb
+++ b/ios/chrome/app/strings/resources/ios_strings_el.xtb
@@ -210,6 +210,7 @@
 <translation id="2139502497535990641">Ενεργοποίηση των ειδοποιήσεων τιμών;</translation>
 <translation id="2139867232736819575">Αναζήτηση του κειμένου που αντιγράψατε</translation>
 <translation id="214201757571129614">Σύνδεση…</translation>
+<translation id="2148716181193084225">Σήμερα</translation>
 <translation id="2149973817440762519">Επεξεργασία σελιδοδείκτη</translation>
 <translation id="2155145621546387786">Κοινοποίηση του Chrome</translation>
 <translation id="2175927920773552910">Κωδικός QR</translation>
diff --git a/ios/chrome/app/strings/resources/ios_strings_en-GB.xtb b/ios/chrome/app/strings/resources/ios_strings_en-GB.xtb
index 993913ab..73b12a7 100644
--- a/ios/chrome/app/strings/resources/ios_strings_en-GB.xtb
+++ b/ios/chrome/app/strings/resources/ios_strings_en-GB.xtb
@@ -210,6 +210,7 @@
 <translation id="2139502497535990641">Turn on price alerts?</translation>
 <translation id="2139867232736819575">Search for text that you copied</translation>
 <translation id="214201757571129614">Sign in…</translation>
+<translation id="2148716181193084225">Today</translation>
 <translation id="2149973817440762519">Edit Bookmark</translation>
 <translation id="2155145621546387786">Share Chrome</translation>
 <translation id="2175927920773552910">QR code</translation>
diff --git a/ios/chrome/app/strings/resources/ios_strings_es-419.xtb b/ios/chrome/app/strings/resources/ios_strings_es-419.xtb
index b0293233..246dc935 100644
--- a/ios/chrome/app/strings/resources/ios_strings_es-419.xtb
+++ b/ios/chrome/app/strings/resources/ios_strings_es-419.xtb
@@ -210,6 +210,7 @@
 <translation id="2139502497535990641">¿Quieres activar las alertas de precios?</translation>
 <translation id="2139867232736819575">Buscar el texto copiado</translation>
 <translation id="214201757571129614">Acceder…</translation>
+<translation id="2148716181193084225">Hoy</translation>
 <translation id="2149973817440762519">Editar marcador</translation>
 <translation id="2155145621546387786">Compartir Chrome</translation>
 <translation id="2175927920773552910">Código QR</translation>
diff --git a/ios/chrome/app/strings/resources/ios_strings_es.xtb b/ios/chrome/app/strings/resources/ios_strings_es.xtb
index d55e522b..151065a 100644
--- a/ios/chrome/app/strings/resources/ios_strings_es.xtb
+++ b/ios/chrome/app/strings/resources/ios_strings_es.xtb
@@ -210,6 +210,7 @@
 <translation id="2139502497535990641">¿Activar las alertas de precios?</translation>
 <translation id="2139867232736819575">Buscar el texto que has copiado</translation>
 <translation id="214201757571129614">Iniciar sesión…</translation>
+<translation id="2148716181193084225">Hoy</translation>
 <translation id="2149973817440762519">Editar marcador</translation>
 <translation id="2155145621546387786">Compartir Chrome</translation>
 <translation id="2175927920773552910">Código QR</translation>
diff --git a/ios/chrome/app/strings/resources/ios_strings_et.xtb b/ios/chrome/app/strings/resources/ios_strings_et.xtb
index 06a649cd..132ab4b 100644
--- a/ios/chrome/app/strings/resources/ios_strings_et.xtb
+++ b/ios/chrome/app/strings/resources/ios_strings_et.xtb
@@ -210,6 +210,7 @@
 <translation id="2139502497535990641">Kas lülitada hinnamärguanded sisse?</translation>
 <translation id="2139867232736819575">Otsi kopeeritud teksti</translation>
 <translation id="214201757571129614">Logige sisse …</translation>
+<translation id="2148716181193084225">Täna</translation>
 <translation id="2149973817440762519">Muuda järjehoidjat</translation>
 <translation id="2155145621546387786">Chrome'i jagamine</translation>
 <translation id="2175927920773552910">QR-kood</translation>
diff --git a/ios/chrome/app/strings/resources/ios_strings_eu.xtb b/ios/chrome/app/strings/resources/ios_strings_eu.xtb
index 7c1c31f..b3d0119f 100644
--- a/ios/chrome/app/strings/resources/ios_strings_eu.xtb
+++ b/ios/chrome/app/strings/resources/ios_strings_eu.xtb
@@ -210,6 +210,7 @@
 <translation id="2139502497535990641">Prezioen alertak aktibatu nahi dituzu?</translation>
 <translation id="2139867232736819575">Bilatu kopiatu duzun testua</translation>
 <translation id="214201757571129614">Hasi saioa…</translation>
+<translation id="2148716181193084225">Gaur</translation>
 <translation id="2149973817440762519">Editatu laster-marka</translation>
 <translation id="2155145621546387786">Partekatu Chrome</translation>
 <translation id="2175927920773552910">QR kodea</translation>
diff --git a/ios/chrome/app/strings/resources/ios_strings_fa.xtb b/ios/chrome/app/strings/resources/ios_strings_fa.xtb
index adc226d..5067edeb 100644
--- a/ios/chrome/app/strings/resources/ios_strings_fa.xtb
+++ b/ios/chrome/app/strings/resources/ios_strings_fa.xtb
@@ -210,6 +210,7 @@
 <translation id="2139502497535990641">هشدار قیمت روشن شود؟</translation>
 <translation id="2139867232736819575">جستجوی نوشتاری که کپی کرده‌اید</translation>
 <translation id="214201757571129614">ورود به سیستم…</translation>
+<translation id="2148716181193084225">امروز</translation>
 <translation id="2149973817440762519">ویرایش نشانک</translation>
 <translation id="2155145621546387786">‏هم‌رسانی Chrome</translation>
 <translation id="2175927920773552910">رمزینه پاسخ‌سریع</translation>
diff --git a/ios/chrome/app/strings/resources/ios_strings_fi.xtb b/ios/chrome/app/strings/resources/ios_strings_fi.xtb
index fd5fee1..0b88261 100644
--- a/ios/chrome/app/strings/resources/ios_strings_fi.xtb
+++ b/ios/chrome/app/strings/resources/ios_strings_fi.xtb
@@ -210,6 +210,7 @@
 <translation id="2139502497535990641">Laitetaanko hintahälytykset päälle?</translation>
 <translation id="2139867232736819575">Hae kopioitua tekstiä</translation>
 <translation id="214201757571129614">Kirjaudu sisään…</translation>
+<translation id="2148716181193084225">Tänään</translation>
 <translation id="2149973817440762519">Muokkaa kirjanmerkkiä</translation>
 <translation id="2155145621546387786">Jaa Chrome</translation>
 <translation id="2175927920773552910">QR-koodi</translation>
diff --git a/ios/chrome/app/strings/resources/ios_strings_fil.xtb b/ios/chrome/app/strings/resources/ios_strings_fil.xtb
index 276d225a..b8d7de2 100644
--- a/ios/chrome/app/strings/resources/ios_strings_fil.xtb
+++ b/ios/chrome/app/strings/resources/ios_strings_fil.xtb
@@ -210,6 +210,7 @@
 <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="2148716181193084225">Ngayong Araw</translation>
 <translation id="2149973817440762519">I-edit ang Bookmark</translation>
 <translation id="2155145621546387786">Ibahagi ang Chrome</translation>
 <translation id="2175927920773552910">QR Code</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 bf93565..b5afb60 100644
--- a/ios/chrome/app/strings/resources/ios_strings_fr-CA.xtb
+++ b/ios/chrome/app/strings/resources/ios_strings_fr-CA.xtb
@@ -210,6 +210,7 @@
 <translation id="2139502497535990641">Activer les alertes de prix?</translation>
 <translation id="2139867232736819575">Rechercher le texte que vous avez copié</translation>
 <translation id="214201757571129614">Connexion…</translation>
+<translation id="2148716181193084225">Aujourd'hui</translation>
 <translation id="2149973817440762519">Modifier le favori</translation>
 <translation id="2155145621546387786">Partager Chrome</translation>
 <translation id="2175927920773552910">Code QR</translation>
diff --git a/ios/chrome/app/strings/resources/ios_strings_fr.xtb b/ios/chrome/app/strings/resources/ios_strings_fr.xtb
index 7696abd9..9cd2665d 100644
--- a/ios/chrome/app/strings/resources/ios_strings_fr.xtb
+++ b/ios/chrome/app/strings/resources/ios_strings_fr.xtb
@@ -210,6 +210,7 @@
 <translation id="2139502497535990641">Activer les alertes de prix ?</translation>
 <translation id="2139867232736819575">Rechercher le texte copié</translation>
 <translation id="214201757571129614">Connectez-vous…</translation>
+<translation id="2148716181193084225">Aujourd'hui</translation>
 <translation id="2149973817440762519">Modifier le favori</translation>
 <translation id="2155145621546387786">Partager Chrome</translation>
 <translation id="2175927920773552910">Code QR</translation>
diff --git a/ios/chrome/app/strings/resources/ios_strings_gl.xtb b/ios/chrome/app/strings/resources/ios_strings_gl.xtb
index 0f1d634a..f35715b 100644
--- a/ios/chrome/app/strings/resources/ios_strings_gl.xtb
+++ b/ios/chrome/app/strings/resources/ios_strings_gl.xtb
@@ -210,6 +210,7 @@
 <translation id="2139502497535990641">Queres activar as alertas de prezos?</translation>
 <translation id="2139867232736819575">Buscar texto que copiaches</translation>
 <translation id="214201757571129614">Iniciar sesión…</translation>
+<translation id="2148716181193084225">Hoxe</translation>
 <translation id="2149973817440762519">Editar marcador</translation>
 <translation id="2155145621546387786">Compartir Chrome</translation>
 <translation id="2175927920773552910">Código QR</translation>
diff --git a/ios/chrome/app/strings/resources/ios_strings_gu.xtb b/ios/chrome/app/strings/resources/ios_strings_gu.xtb
index d0f90d04..bae2f80b 100644
--- a/ios/chrome/app/strings/resources/ios_strings_gu.xtb
+++ b/ios/chrome/app/strings/resources/ios_strings_gu.xtb
@@ -210,6 +210,7 @@
 <translation id="2139502497535990641">'કિંમતમાં ફેરફાર'ની સુવિધા ચાલુ કરીએ?</translation>
 <translation id="2139867232736819575">તમે કૉપિ કરેલી ટેક્સ્ટ માટે શોધ કરો</translation>
 <translation id="214201757571129614">સાઇન ઇન કરો…</translation>
+<translation id="2148716181193084225">આજે</translation>
 <translation id="2149973817440762519">બુકમાર્કમાં ફેરફાર કરો</translation>
 <translation id="2155145621546387786">Chrome શેર કરો</translation>
 <translation id="2175927920773552910">QR કોડ</translation>
diff --git a/ios/chrome/app/strings/resources/ios_strings_hi.xtb b/ios/chrome/app/strings/resources/ios_strings_hi.xtb
index 25204d5..7bc1085 100644
--- a/ios/chrome/app/strings/resources/ios_strings_hi.xtb
+++ b/ios/chrome/app/strings/resources/ios_strings_hi.xtb
@@ -210,6 +210,7 @@
 <translation id="2139502497535990641">कीमत में बदलाव के अलर्ट पाने की सुविधा चालू करनी है?</translation>
 <translation id="2139867232736819575">आपका कॉपी किया गया टेक्स्ट</translation>
 <translation id="214201757571129614">साइन इन करें…</translation>
+<translation id="2148716181193084225">आज</translation>
 <translation id="2149973817440762519">बुकमार्क में बदलाव करें</translation>
 <translation id="2155145621546387786">Share Chrome</translation>
 <translation id="2175927920773552910">क्यूआर कोड</translation>
diff --git a/ios/chrome/app/strings/resources/ios_strings_hr.xtb b/ios/chrome/app/strings/resources/ios_strings_hr.xtb
index 1b30fb3..a9f8189 100644
--- a/ios/chrome/app/strings/resources/ios_strings_hr.xtb
+++ b/ios/chrome/app/strings/resources/ios_strings_hr.xtb
@@ -210,6 +210,7 @@
 <translation id="2139502497535990641">Uključiti upozorenja o cijeni?</translation>
 <translation id="2139867232736819575">Pretraživanje teksta koji ste kopirali</translation>
 <translation id="214201757571129614">Prijavite se…</translation>
+<translation id="2148716181193084225">Danas</translation>
 <translation id="2149973817440762519">Uredi oznaku</translation>
 <translation id="2155145621546387786">Dijeli Chrome</translation>
 <translation id="2175927920773552910">QR kôd</translation>
diff --git a/ios/chrome/app/strings/resources/ios_strings_hu.xtb b/ios/chrome/app/strings/resources/ios_strings_hu.xtb
index 499e8b7..8d9dba9 100644
--- a/ios/chrome/app/strings/resources/ios_strings_hu.xtb
+++ b/ios/chrome/app/strings/resources/ios_strings_hu.xtb
@@ -210,6 +210,7 @@
 <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="2148716181193084225">Ma</translation>
 <translation id="2149973817440762519">Könyvjelző szerkesztése</translation>
 <translation id="2155145621546387786">A Chrome megosztása</translation>
 <translation id="2175927920773552910">QR-kód</translation>
diff --git a/ios/chrome/app/strings/resources/ios_strings_hy.xtb b/ios/chrome/app/strings/resources/ios_strings_hy.xtb
index 5618d55..fe13793 100644
--- a/ios/chrome/app/strings/resources/ios_strings_hy.xtb
+++ b/ios/chrome/app/strings/resources/ios_strings_hy.xtb
@@ -210,6 +210,7 @@
 <translation id="2139502497535990641">Միացնե՞լ գների փոփոխության մասին ծանուցումները</translation>
 <translation id="2139867232736819575">Որոնեք ձեր պատճենած տեքստը</translation>
 <translation id="214201757571129614">Մտնել…</translation>
+<translation id="2148716181193084225">Այսօր</translation>
 <translation id="2149973817440762519">Փոփոխել էջանիշը</translation>
 <translation id="2155145621546387786">Կիսվել Chrome-ով</translation>
 <translation id="2175927920773552910">QR կոդ</translation>
diff --git a/ios/chrome/app/strings/resources/ios_strings_id.xtb b/ios/chrome/app/strings/resources/ios_strings_id.xtb
index b738ac96..3179e9b 100644
--- a/ios/chrome/app/strings/resources/ios_strings_id.xtb
+++ b/ios/chrome/app/strings/resources/ios_strings_id.xtb
@@ -210,6 +210,7 @@
 <translation id="2139502497535990641">Aktifkan Notifikasi Diskon?</translation>
 <translation id="2139867232736819575">Telusuri Teks yang Anda Salin</translation>
 <translation id="214201757571129614">Login …</translation>
+<translation id="2148716181193084225">Hari ini</translation>
 <translation id="2149973817440762519">Edit Bookmark</translation>
 <translation id="2155145621546387786">Bagikan Chrome</translation>
 <translation id="2175927920773552910">Kode QR</translation>
diff --git a/ios/chrome/app/strings/resources/ios_strings_is.xtb b/ios/chrome/app/strings/resources/ios_strings_is.xtb
index ef3fcd1a..4eba384 100644
--- a/ios/chrome/app/strings/resources/ios_strings_is.xtb
+++ b/ios/chrome/app/strings/resources/ios_strings_is.xtb
@@ -210,6 +210,7 @@
 <translation id="2139502497535990641">Kveikja á verðtilkynningum?</translation>
 <translation id="2139867232736819575">Leita að texta sem þú afritaðir</translation>
 <translation id="214201757571129614">Skrá inn…</translation>
+<translation id="2148716181193084225">Í dag</translation>
 <translation id="2149973817440762519">Breyta bókamerki</translation>
 <translation id="2155145621546387786">Deila Chrome</translation>
 <translation id="2175927920773552910">QR-kóði</translation>
diff --git a/ios/chrome/app/strings/resources/ios_strings_it.xtb b/ios/chrome/app/strings/resources/ios_strings_it.xtb
index 1c05cc4..d500fb6 100644
--- a/ios/chrome/app/strings/resources/ios_strings_it.xtb
+++ b/ios/chrome/app/strings/resources/ios_strings_it.xtb
@@ -210,6 +210,7 @@
 <translation id="2139502497535990641">Vuoi attivare gli avvisi sui prezzi?</translation>
 <translation id="2139867232736819575">Cerca il testo copiato</translation>
 <translation id="214201757571129614">Accedi…</translation>
+<translation id="2148716181193084225">Oggi</translation>
 <translation id="2149973817440762519">Modifica Preferito</translation>
 <translation id="2155145621546387786">Condividi Chrome</translation>
 <translation id="2175927920773552910">Codice QR</translation>
diff --git a/ios/chrome/app/strings/resources/ios_strings_iw.xtb b/ios/chrome/app/strings/resources/ios_strings_iw.xtb
index 0b765dc..26527b94e 100644
--- a/ios/chrome/app/strings/resources/ios_strings_iw.xtb
+++ b/ios/chrome/app/strings/resources/ios_strings_iw.xtb
@@ -210,6 +210,7 @@
 <translation id="2139502497535990641">להפעיל התראות על שינוי במחיר?</translation>
 <translation id="2139867232736819575">חיפוש טקסט שהעתקת</translation>
 <translation id="214201757571129614">כניסה…</translation>
+<translation id="2148716181193084225">היום</translation>
 <translation id="2149973817440762519">עריכת סימניות</translation>
 <translation id="2155145621546387786">‏שיתוף Chrome</translation>
 <translation id="2175927920773552910">‏קוד QR</translation>
diff --git a/ios/chrome/app/strings/resources/ios_strings_ja.xtb b/ios/chrome/app/strings/resources/ios_strings_ja.xtb
index 75a0a7e..c9fa4098 100644
--- a/ios/chrome/app/strings/resources/ios_strings_ja.xtb
+++ b/ios/chrome/app/strings/resources/ios_strings_ja.xtb
@@ -210,6 +210,7 @@
 <translation id="2139502497535990641">値下げアラートをオンにしますか?</translation>
 <translation id="2139867232736819575">コピーしたテキストを検索</translation>
 <translation id="214201757571129614">ログイン…</translation>
+<translation id="2148716181193084225">今日</translation>
 <translation id="2149973817440762519">ブックマークを編集</translation>
 <translation id="2155145621546387786">Chrome を共有</translation>
 <translation id="2175927920773552910">QR コード</translation>
diff --git a/ios/chrome/app/strings/resources/ios_strings_ka.xtb b/ios/chrome/app/strings/resources/ios_strings_ka.xtb
index 2bbb6ee8..7dc2f9623 100644
--- a/ios/chrome/app/strings/resources/ios_strings_ka.xtb
+++ b/ios/chrome/app/strings/resources/ios_strings_ka.xtb
@@ -210,6 +210,7 @@
 <translation id="2139502497535990641">გსურთ, ჩართოთ გაფრთხილება ფასის შესახებ?</translation>
 <translation id="2139867232736819575">თქვენ მიერ კოპირებული ტექსტის მოძიება</translation>
 <translation id="214201757571129614">შესვლა…</translation>
+<translation id="2148716181193084225">დღეს</translation>
 <translation id="2149973817440762519">სანიშნის რედაქტირება</translation>
 <translation id="2155145621546387786">Chrome-ის გაზიარება</translation>
 <translation id="2175927920773552910">QR კოდი</translation>
diff --git a/ios/chrome/app/strings/resources/ios_strings_kk.xtb b/ios/chrome/app/strings/resources/ios_strings_kk.xtb
index a8b7ee8c..cd7705a 100644
--- a/ios/chrome/app/strings/resources/ios_strings_kk.xtb
+++ b/ios/chrome/app/strings/resources/ios_strings_kk.xtb
@@ -210,6 +210,7 @@
 <translation id="2139502497535990641">Баға туралы хабарландыруларды қосу керек пе?</translation>
 <translation id="2139867232736819575">Көшірілген мәтінді іздеу</translation>
 <translation id="214201757571129614">Кіру…</translation>
+<translation id="2148716181193084225">Бүгін</translation>
 <translation id="2149973817440762519">Бетбелгіні өзгерту</translation>
 <translation id="2155145621546387786">Chrome-ды бөлісу</translation>
 <translation id="2175927920773552910">QR коды</translation>
diff --git a/ios/chrome/app/strings/resources/ios_strings_km.xtb b/ios/chrome/app/strings/resources/ios_strings_km.xtb
index e8a2dd2..d7b07da 100644
--- a/ios/chrome/app/strings/resources/ios_strings_km.xtb
+++ b/ios/chrome/app/strings/resources/ios_strings_km.xtb
@@ -210,6 +210,7 @@
 <translation id="2139502497535990641">បើកការជូន​ដំណឹងអំពី​តម្លៃឬ?</translation>
 <translation id="2139867232736819575">ស្វែងរក​អត្ថបទ​ដែលអ្នក​បានចម្លង</translation>
 <translation id="214201757571129614">ចូលគណនី…</translation>
+<translation id="2148716181193084225">ថ្ងៃនេះ</translation>
 <translation id="2149973817440762519">កែប្រែចំណាំ</translation>
 <translation id="2155145621546387786">ចែករំលែក Chrome</translation>
 <translation id="2175927920773552910">កូដ QR</translation>
diff --git a/ios/chrome/app/strings/resources/ios_strings_kn.xtb b/ios/chrome/app/strings/resources/ios_strings_kn.xtb
index bad9dea..77a78e8 100644
--- a/ios/chrome/app/strings/resources/ios_strings_kn.xtb
+++ b/ios/chrome/app/strings/resources/ios_strings_kn.xtb
@@ -210,6 +210,7 @@
 <translation id="2139502497535990641">ದರಗಳ ಕುರಿತಾದ ಎಚ್ಚರಿಕೆಗಳನ್ನು ಆನ್ ಮಾಡಬೇಕೆ?</translation>
 <translation id="2139867232736819575">ನೀವು ನಕಲಿಸಿದ ಪಠ್ಯವನ್ನು ಹುಡುಕಿ</translation>
 <translation id="214201757571129614">ಸೈನ್ ಇನ್…</translation>
+<translation id="2148716181193084225">ಇಂದು</translation>
 <translation id="2149973817440762519">ಬುಕ್‌ಮಾರ್ಕ್ ಎಡಿಟ್ ಮಾಡಿ</translation>
 <translation id="2155145621546387786">Chrome ಅನ್ನು ಹಂಚಿಕೊಳ್ಳಿ</translation>
 <translation id="2175927920773552910">QR ಕೋಡ್</translation>
diff --git a/ios/chrome/app/strings/resources/ios_strings_ko.xtb b/ios/chrome/app/strings/resources/ios_strings_ko.xtb
index 0f4909e..553d3c8d 100644
--- a/ios/chrome/app/strings/resources/ios_strings_ko.xtb
+++ b/ios/chrome/app/strings/resources/ios_strings_ko.xtb
@@ -210,6 +210,7 @@
 <translation id="2139502497535990641">가격 알림을 사용하시겠습니까?</translation>
 <translation id="2139867232736819575">복사한 텍스트 검색</translation>
 <translation id="214201757571129614">로그인…</translation>
+<translation id="2148716181193084225">오늘</translation>
 <translation id="2149973817440762519">북마크 수정</translation>
 <translation id="2155145621546387786">Chrome 공유</translation>
 <translation id="2175927920773552910">QR 코드</translation>
diff --git a/ios/chrome/app/strings/resources/ios_strings_ky.xtb b/ios/chrome/app/strings/resources/ios_strings_ky.xtb
index ebf860d..a37f84d3 100644
--- a/ios/chrome/app/strings/resources/ios_strings_ky.xtb
+++ b/ios/chrome/app/strings/resources/ios_strings_ky.xtb
@@ -210,6 +210,7 @@
 <translation id="2139502497535990641">Баалардын өзгөрүшү тууралуу кабарлоону күйгүзөсүзбү?</translation>
 <translation id="2139867232736819575">Көчүрүп алган текстти издеңиз</translation>
 <translation id="214201757571129614">Кирүү…</translation>
+<translation id="2148716181193084225">Бүгүн</translation>
 <translation id="2149973817440762519">Кыстарманы түзөтүү</translation>
 <translation id="2155145621546387786">Chrome'ду бөлүшүү</translation>
 <translation id="2175927920773552910">QR код</translation>
diff --git a/ios/chrome/app/strings/resources/ios_strings_lo.xtb b/ios/chrome/app/strings/resources/ios_strings_lo.xtb
index 0339008..cbfb83b 100644
--- a/ios/chrome/app/strings/resources/ios_strings_lo.xtb
+++ b/ios/chrome/app/strings/resources/ios_strings_lo.xtb
@@ -210,6 +210,7 @@
 <translation id="2139502497535990641">ເປີດການແຈ້ງເຕືອນລາຄາບໍ?</translation>
 <translation id="2139867232736819575">ຊອກຫາຂໍ້ຄວາມທີ່ທ່ານສຳເນົາ</translation>
 <translation id="214201757571129614">ເຂົ້າສູ່ລະບົບ…</translation>
+<translation id="2148716181193084225">ມື້​ນີ້</translation>
 <translation id="2149973817440762519">ແກ້​ໄຂບຸກມາກສ໌</translation>
 <translation id="2155145621546387786">ແບ່ງປັນ Chrome</translation>
 <translation id="2175927920773552910">ລະຫັດ QR</translation>
diff --git a/ios/chrome/app/strings/resources/ios_strings_lt.xtb b/ios/chrome/app/strings/resources/ios_strings_lt.xtb
index 68adcd5..f6a5724 100644
--- a/ios/chrome/app/strings/resources/ios_strings_lt.xtb
+++ b/ios/chrome/app/strings/resources/ios_strings_lt.xtb
@@ -210,6 +210,7 @@
 <translation id="2139502497535990641">Įjungti įspėjimus apie kainą?</translation>
 <translation id="2139867232736819575">Ieškoti nukopijuoto teksto</translation>
 <translation id="214201757571129614">Prisijungti…</translation>
+<translation id="2148716181193084225">Šiandien</translation>
 <translation id="2149973817440762519">Redaguoti žymes</translation>
 <translation id="2155145621546387786">Bendrinti „Chrome“</translation>
 <translation id="2175927920773552910">QR kodas</translation>
diff --git a/ios/chrome/app/strings/resources/ios_strings_lv.xtb b/ios/chrome/app/strings/resources/ios_strings_lv.xtb
index 99a6d252..3c94a85f 100644
--- a/ios/chrome/app/strings/resources/ios_strings_lv.xtb
+++ b/ios/chrome/app/strings/resources/ios_strings_lv.xtb
@@ -210,6 +210,7 @@
 <translation id="2139502497535990641">Vai ieslēgt brīdinājumus par cenu?</translation>
 <translation id="2139867232736819575">Meklēt kopēto tekstu</translation>
 <translation id="214201757571129614">Pierakstīties…</translation>
+<translation id="2148716181193084225">Šodien</translation>
 <translation id="2149973817440762519">Rediģēt grāmatzīmes</translation>
 <translation id="2155145621546387786">Koplietot Chrome</translation>
 <translation id="2175927920773552910">kvadrātkods</translation>
diff --git a/ios/chrome/app/strings/resources/ios_strings_mk.xtb b/ios/chrome/app/strings/resources/ios_strings_mk.xtb
index e2a8a3c..d1464ae 100644
--- a/ios/chrome/app/strings/resources/ios_strings_mk.xtb
+++ b/ios/chrome/app/strings/resources/ios_strings_mk.xtb
@@ -210,6 +210,7 @@
 <translation id="2139502497535990641">Дали да се вклучат известувања за цени?</translation>
 <translation id="2139867232736819575">Пребарувајте го текстот што го копиравте</translation>
 <translation id="214201757571129614">Најавете се…</translation>
+<translation id="2148716181193084225">Денес</translation>
 <translation id="2149973817440762519">Измени Обележувач</translation>
 <translation id="2155145621546387786">Споделете ја Chrome</translation>
 <translation id="2175927920773552910">QR-код</translation>
diff --git a/ios/chrome/app/strings/resources/ios_strings_ml.xtb b/ios/chrome/app/strings/resources/ios_strings_ml.xtb
index 11dbbe2..2bd516ff 100644
--- a/ios/chrome/app/strings/resources/ios_strings_ml.xtb
+++ b/ios/chrome/app/strings/resources/ios_strings_ml.xtb
@@ -210,6 +210,7 @@
 <translation id="2139502497535990641">നിരക്കുമാറ്റ അറിയിപ്പുകൾ ഓണാക്കണോ?</translation>
 <translation id="2139867232736819575">നിങ്ങൾ പകർത്തിയ ടെക്‌സ്‌റ്റ് തിരയുക</translation>
 <translation id="214201757571129614">സൈൻ ഇൻ ചെയ്യുക…</translation>
+<translation id="2148716181193084225">ഇന്ന്</translation>
 <translation id="2149973817440762519">ബുക്മാര്‍ക്ക് എഡിറ്റ് ചെയ്യുക</translation>
 <translation id="2155145621546387786">Chrome പങ്കിടുക</translation>
 <translation id="2175927920773552910">QR കോഡ്</translation>
diff --git a/ios/chrome/app/strings/resources/ios_strings_mn.xtb b/ios/chrome/app/strings/resources/ios_strings_mn.xtb
index 8c972ed..9380593 100644
--- a/ios/chrome/app/strings/resources/ios_strings_mn.xtb
+++ b/ios/chrome/app/strings/resources/ios_strings_mn.xtb
@@ -210,6 +210,7 @@
 <translation id="2139502497535990641">Үнийн дохиог асаах уу?</translation>
 <translation id="2139867232736819575">Хуулсан текстээ хайх</translation>
 <translation id="214201757571129614">Нэвтрэх…</translation>
+<translation id="2148716181193084225">Өнөөдөр</translation>
 <translation id="2149973817440762519">Хадгалагдсан хуудсыг засах</translation>
 <translation id="2155145621546387786">Chrome-г хуваалцах</translation>
 <translation id="2175927920773552910">QR код</translation>
diff --git a/ios/chrome/app/strings/resources/ios_strings_mr.xtb b/ios/chrome/app/strings/resources/ios_strings_mr.xtb
index 17ac3948..33362b6e 100644
--- a/ios/chrome/app/strings/resources/ios_strings_mr.xtb
+++ b/ios/chrome/app/strings/resources/ios_strings_mr.xtb
@@ -210,6 +210,7 @@
 <translation id="2139502497535990641">किमतीविषयी सूचना सुरू करायच्या आहेत का?</translation>
 <translation id="2139867232736819575">तुम्ही कॉपी केलेला मजकूर शोधा</translation>
 <translation id="214201757571129614">साइन इन करा…</translation>
+<translation id="2148716181193084225">आज</translation>
 <translation id="2149973817440762519">बुकमार्क संपादित करा</translation>
 <translation id="2155145621546387786">Chrome शेअर करा</translation>
 <translation id="2175927920773552910">QR कोड</translation>
diff --git a/ios/chrome/app/strings/resources/ios_strings_ms.xtb b/ios/chrome/app/strings/resources/ios_strings_ms.xtb
index fbd1d0e..52ddc78 100644
--- a/ios/chrome/app/strings/resources/ios_strings_ms.xtb
+++ b/ios/chrome/app/strings/resources/ios_strings_ms.xtb
@@ -210,6 +210,7 @@
 <translation id="2139502497535990641">Hidupkan Makluman Harga?</translation>
 <translation id="2139867232736819575">Cari Teks yang Anda Salin</translation>
 <translation id="214201757571129614">Log Masuk…</translation>
+<translation id="2148716181193084225">Hari ini</translation>
 <translation id="2149973817440762519">Edit Penanda Halaman</translation>
 <translation id="2155145621546387786">Kongsi Chrome</translation>
 <translation id="2175927920773552910">Kod QR</translation>
diff --git a/ios/chrome/app/strings/resources/ios_strings_my.xtb b/ios/chrome/app/strings/resources/ios_strings_my.xtb
index 31d55cf..925a9ae 100644
--- a/ios/chrome/app/strings/resources/ios_strings_my.xtb
+++ b/ios/chrome/app/strings/resources/ios_strings_my.xtb
@@ -210,6 +210,7 @@
 <translation id="2139502497535990641">ဈေးနှုန်းသတိပေးချက်များ ဖွင့်မလား။</translation>
 <translation id="2139867232736819575">သင်မိတ္တူကူးထားသည့် စာသားကို ရှာဖွေပါ</translation>
 <translation id="214201757571129614">လက်မှတ်ထိုးဝင်ရန်…</translation>
+<translation id="2148716181193084225">ယနေ့</translation>
 <translation id="2149973817440762519">စာညှပ် တည်းဖြတ်ရန်</translation>
 <translation id="2155145621546387786">Chrome ကို မျှဝေရန်</translation>
 <translation id="2175927920773552910">QR ကုဒ်</translation>
diff --git a/ios/chrome/app/strings/resources/ios_strings_ne.xtb b/ios/chrome/app/strings/resources/ios_strings_ne.xtb
index 5d4e876..8e25bc28 100644
--- a/ios/chrome/app/strings/resources/ios_strings_ne.xtb
+++ b/ios/chrome/app/strings/resources/ios_strings_ne.xtb
@@ -210,6 +210,7 @@
 <translation id="2139502497535990641">भाडादरसम्बन्धी अलर्ट पठाउने सुविधा अन गर्ने हो?</translation>
 <translation id="2139867232736819575">तपाईंले प्रतिलिपि गरेको पाठको खोजी गर्नुहोस्</translation>
 <translation id="214201757571129614">साइन इन गर्नुहोस्…</translation>
+<translation id="2148716181193084225">आज</translation>
 <translation id="2149973817440762519">बुकमार्क सम्पादन गर्नुहोस्</translation>
 <translation id="2155145621546387786">Chrome सेयर गर्नुहोस्</translation>
 <translation id="2175927920773552910">QR कोड</translation>
diff --git a/ios/chrome/app/strings/resources/ios_strings_nl.xtb b/ios/chrome/app/strings/resources/ios_strings_nl.xtb
index 56d63b8d..5568960 100644
--- a/ios/chrome/app/strings/resources/ios_strings_nl.xtb
+++ b/ios/chrome/app/strings/resources/ios_strings_nl.xtb
@@ -210,6 +210,7 @@
 <translation id="2139502497535990641">Prijsmeldingen aanzetten?</translation>
 <translation id="2139867232736819575">Zoeken naar gekopieerde tekst</translation>
 <translation id="214201757571129614">Inloggen…</translation>
+<translation id="2148716181193084225">Vandaag</translation>
 <translation id="2149973817440762519">Bookmark bewerken</translation>
 <translation id="2155145621546387786">Chrome delen</translation>
 <translation id="2175927920773552910">QR-code</translation>
diff --git a/ios/chrome/app/strings/resources/ios_strings_no.xtb b/ios/chrome/app/strings/resources/ios_strings_no.xtb
index 1f5c7d7..dab8a5d 100644
--- a/ios/chrome/app/strings/resources/ios_strings_no.xtb
+++ b/ios/chrome/app/strings/resources/ios_strings_no.xtb
@@ -210,6 +210,7 @@
 <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="2148716181193084225">I dag</translation>
 <translation id="2149973817440762519">Rediger bokmerke</translation>
 <translation id="2155145621546387786">Del Chrome</translation>
 <translation id="2175927920773552910">QR-kode</translation>
diff --git a/ios/chrome/app/strings/resources/ios_strings_or.xtb b/ios/chrome/app/strings/resources/ios_strings_or.xtb
index 157dd57d..0068a9c5 100644
--- a/ios/chrome/app/strings/resources/ios_strings_or.xtb
+++ b/ios/chrome/app/strings/resources/ios_strings_or.xtb
@@ -210,6 +210,7 @@
 <translation id="2139502497535990641">ମୂଲ୍ୟ ହ୍ରାସ ଆଲର୍ଟଗୁଡ଼ିକୁ ଚାଲୁ କରିବେ?</translation>
 <translation id="2139867232736819575">ଆପଣ କପି କରିଥିବା ଟେକ୍ସଟ୍ ଖୋଜନ୍ତୁ</translation>
 <translation id="214201757571129614">ସାଇନ୍ ଇନ୍ କରନ୍ତୁ…</translation>
+<translation id="2148716181193084225">ଆଜି</translation>
 <translation id="2149973817440762519">ବୁକମାର୍କ୍ ସମ୍ପାଦନ କରନ୍ତୁ</translation>
 <translation id="2155145621546387786">Chromeରେ ସେୟାର କରନ୍ତୁ</translation>
 <translation id="2175927920773552910">QR କୋଡ୍</translation>
diff --git a/ios/chrome/app/strings/resources/ios_strings_pa.xtb b/ios/chrome/app/strings/resources/ios_strings_pa.xtb
index 702532d..8031ca4 100644
--- a/ios/chrome/app/strings/resources/ios_strings_pa.xtb
+++ b/ios/chrome/app/strings/resources/ios_strings_pa.xtb
@@ -210,6 +210,7 @@
 <translation id="2139502497535990641">ਕੀ ਕੀਮਤ ਬਾਰੇ ਸੁਚੇਤਨਾਵਾਂ ਨੂੰ ਚਾਲੂ ਕਰਨਾ ਹੈ?</translation>
 <translation id="2139867232736819575">ਤੁਹਾਡੀ ਕਾਪੀ ਕੀਤੀ ਲਿਖਤ ਖੋਜੋ</translation>
 <translation id="214201757571129614">ਸਾਈਨ-ਇਨ ਕਰੋ…</translation>
+<translation id="2148716181193084225">ਅੱਜ</translation>
 <translation id="2149973817440762519">ਬੁੱਕਮਾਰਕ ਸੰਪਾਦਿਤ ਕਰੋ</translation>
 <translation id="2155145621546387786">Chrome ਸਾਂਝਾ ਕਰੋ</translation>
 <translation id="2175927920773552910">QR ਕੋਡ</translation>
diff --git a/ios/chrome/app/strings/resources/ios_strings_pl.xtb b/ios/chrome/app/strings/resources/ios_strings_pl.xtb
index 48899eb..972d321 100644
--- a/ios/chrome/app/strings/resources/ios_strings_pl.xtb
+++ b/ios/chrome/app/strings/resources/ios_strings_pl.xtb
@@ -210,6 +210,7 @@
 <translation id="2139502497535990641">Włączyć powiadomienia o cenie?</translation>
 <translation id="2139867232736819575">Wyszukaj skopiowany tekst</translation>
 <translation id="214201757571129614">Zaloguj się…</translation>
+<translation id="2148716181193084225">Dzisiaj</translation>
 <translation id="2149973817440762519">Edytuj zakładkę</translation>
 <translation id="2155145621546387786">Udostępnij Chrome</translation>
 <translation id="2175927920773552910">Kod QR</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 cf00a582..ce164a0a 100644
--- a/ios/chrome/app/strings/resources/ios_strings_pt-BR.xtb
+++ b/ios/chrome/app/strings/resources/ios_strings_pt-BR.xtb
@@ -210,6 +210,7 @@
 <translation id="2139502497535990641">Ativar os alertas de preço?</translation>
 <translation id="2139867232736819575">Pesquisar o texto que você copiou</translation>
 <translation id="214201757571129614">Login…</translation>
+<translation id="2148716181193084225">Hoje</translation>
 <translation id="2149973817440762519">Editar favoritos</translation>
 <translation id="2155145621546387786">Compartilhar o Chrome</translation>
 <translation id="2175927920773552910">Código QR</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 08460f3..ebe85fc 100644
--- a/ios/chrome/app/strings/resources/ios_strings_pt-PT.xtb
+++ b/ios/chrome/app/strings/resources/ios_strings_pt-PT.xtb
@@ -210,6 +210,7 @@
 <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="2148716181193084225">Hoje</translation>
 <translation id="2149973817440762519">Editar marcador</translation>
 <translation id="2155145621546387786">Partilhar o Chrome</translation>
 <translation id="2175927920773552910">Código QR</translation>
diff --git a/ios/chrome/app/strings/resources/ios_strings_ro.xtb b/ios/chrome/app/strings/resources/ios_strings_ro.xtb
index 6fd7eb38..a987f71 100644
--- a/ios/chrome/app/strings/resources/ios_strings_ro.xtb
+++ b/ios/chrome/app/strings/resources/ios_strings_ro.xtb
@@ -210,6 +210,7 @@
 <translation id="2139502497535990641">Activezi alertele de prețuri?</translation>
 <translation id="2139867232736819575">Caută textul pe care l-ai copiat</translation>
 <translation id="214201757571129614">Conectează-te…</translation>
+<translation id="2148716181193084225">Astăzi</translation>
 <translation id="2149973817440762519">Editați marcajul</translation>
 <translation id="2155145621546387786">Permite accesul la Chrome</translation>
 <translation id="2175927920773552910">Cod QR</translation>
diff --git a/ios/chrome/app/strings/resources/ios_strings_ru.xtb b/ios/chrome/app/strings/resources/ios_strings_ru.xtb
index c0583f63..80a5d3c 100644
--- a/ios/chrome/app/strings/resources/ios_strings_ru.xtb
+++ b/ios/chrome/app/strings/resources/ios_strings_ru.xtb
@@ -210,6 +210,7 @@
 <translation id="2139502497535990641">Включить оповещения об изменении цен?</translation>
 <translation id="2139867232736819575">Поиск скопированного текста</translation>
 <translation id="214201757571129614">Войти</translation>
+<translation id="2148716181193084225">Сегодня</translation>
 <translation id="2149973817440762519">Закладка</translation>
 <translation id="2155145621546387786">Поделиться Chrome</translation>
 <translation id="2175927920773552910">QR-код</translation>
diff --git a/ios/chrome/app/strings/resources/ios_strings_si.xtb b/ios/chrome/app/strings/resources/ios_strings_si.xtb
index 0d1ffd9..10081f8 100644
--- a/ios/chrome/app/strings/resources/ios_strings_si.xtb
+++ b/ios/chrome/app/strings/resources/ios_strings_si.xtb
@@ -210,6 +210,7 @@
 <translation id="2139502497535990641">මිල ඇඟවීම් ක්‍රියාත්මක කරන්න ද?</translation>
 <translation id="2139867232736819575">ඔබ පිටපත් කළ පාඨය සොයන්න</translation>
 <translation id="214201757571129614">පුරන්න…</translation>
+<translation id="2148716181193084225">අද</translation>
 <translation id="2149973817440762519">පිටු සලකුණු සංස්කරණය කරන්න</translation>
 <translation id="2155145621546387786">Chrome බෙදා ගන්න</translation>
 <translation id="2175927920773552910">QR කේතය</translation>
diff --git a/ios/chrome/app/strings/resources/ios_strings_sk.xtb b/ios/chrome/app/strings/resources/ios_strings_sk.xtb
index eb98ddf0..9115dc3a 100644
--- a/ios/chrome/app/strings/resources/ios_strings_sk.xtb
+++ b/ios/chrome/app/strings/resources/ios_strings_sk.xtb
@@ -210,6 +210,7 @@
 <translation id="2139502497535990641">Chcete zapnúť upozornenia na cenu?</translation>
 <translation id="2139867232736819575">Vyhľadať skopírovaný text</translation>
 <translation id="214201757571129614">Prihlásiť sa…</translation>
+<translation id="2148716181193084225">Dnes</translation>
 <translation id="2149973817440762519">Upraviť záložku</translation>
 <translation id="2155145621546387786">Zdieľať Chrome</translation>
 <translation id="2175927920773552910">QR kód</translation>
diff --git a/ios/chrome/app/strings/resources/ios_strings_sl.xtb b/ios/chrome/app/strings/resources/ios_strings_sl.xtb
index be6e37f..695c504 100644
--- a/ios/chrome/app/strings/resources/ios_strings_sl.xtb
+++ b/ios/chrome/app/strings/resources/ios_strings_sl.xtb
@@ -210,6 +210,7 @@
 <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="2148716181193084225">Danes</translation>
 <translation id="2149973817440762519">Uredi zaznamek</translation>
 <translation id="2155145621546387786">Delite Chrome z drugimi</translation>
 <translation id="2175927920773552910">Koda QR</translation>
diff --git a/ios/chrome/app/strings/resources/ios_strings_sq.xtb b/ios/chrome/app/strings/resources/ios_strings_sq.xtb
index 02d23e8a..2805a12 100644
--- a/ios/chrome/app/strings/resources/ios_strings_sq.xtb
+++ b/ios/chrome/app/strings/resources/ios_strings_sq.xtb
@@ -210,6 +210,7 @@
 <translation id="2139502497535990641">Të aktivizohen sinjalizimet për çmimet?</translation>
 <translation id="2139867232736819575">Kërko për tekstin që kopjove</translation>
 <translation id="214201757571129614">Identifikohu…</translation>
+<translation id="2148716181193084225">Sot</translation>
 <translation id="2149973817440762519">Redakto faqeshënuesin</translation>
 <translation id="2155145621546387786">Ndaje Chrome</translation>
 <translation id="2175927920773552910">Kodi QR</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 48521f18..f506fc3 100644
--- a/ios/chrome/app/strings/resources/ios_strings_sr-Latn.xtb
+++ b/ios/chrome/app/strings/resources/ios_strings_sr-Latn.xtb
@@ -210,6 +210,7 @@
 <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="2148716181193084225">Danas</translation>
 <translation id="2149973817440762519">Izmenite obeleživač</translation>
 <translation id="2155145621546387786">Deli Chrome</translation>
 <translation id="2175927920773552910">QR kôd</translation>
diff --git a/ios/chrome/app/strings/resources/ios_strings_sr.xtb b/ios/chrome/app/strings/resources/ios_strings_sr.xtb
index 03657908..d605760 100644
--- a/ios/chrome/app/strings/resources/ios_strings_sr.xtb
+++ b/ios/chrome/app/strings/resources/ios_strings_sr.xtb
@@ -210,6 +210,7 @@
 <translation id="2139502497535990641">Желите да укључите обавештења о цени?</translation>
 <translation id="2139867232736819575">Потражите текст који сте копирали</translation>
 <translation id="214201757571129614">Пријавите се…</translation>
+<translation id="2148716181193084225">Данас</translation>
 <translation id="2149973817440762519">Измените обележивач</translation>
 <translation id="2155145621546387786">Дели Chrome</translation>
 <translation id="2175927920773552910">QR кôд</translation>
diff --git a/ios/chrome/app/strings/resources/ios_strings_sv.xtb b/ios/chrome/app/strings/resources/ios_strings_sv.xtb
index 1ce3455..be33527 100644
--- a/ios/chrome/app/strings/resources/ios_strings_sv.xtb
+++ b/ios/chrome/app/strings/resources/ios_strings_sv.xtb
@@ -210,6 +210,7 @@
 <translation id="2139502497535990641">Vill du aktivera prisaviseringar?</translation>
 <translation id="2139867232736819575">Sök efter kopierad text</translation>
 <translation id="214201757571129614">Logga in …</translation>
+<translation id="2148716181193084225">Idag</translation>
 <translation id="2149973817440762519">Redigera bokmärke</translation>
 <translation id="2155145621546387786">Dela Chrome</translation>
 <translation id="2175927920773552910">QR-kod</translation>
diff --git a/ios/chrome/app/strings/resources/ios_strings_sw.xtb b/ios/chrome/app/strings/resources/ios_strings_sw.xtb
index 989f5cd..ea6ae56 100644
--- a/ios/chrome/app/strings/resources/ios_strings_sw.xtb
+++ b/ios/chrome/app/strings/resources/ios_strings_sw.xtb
@@ -210,6 +210,7 @@
 <translation id="2139502497535990641">Je, ungependa Kuwasha Arifa kuhusu Bei?</translation>
 <translation id="2139867232736819575">Tafuta Maandishi Uliyonakili</translation>
 <translation id="214201757571129614">Ingia Katika Akaunti…</translation>
+<translation id="2148716181193084225">Leo</translation>
 <translation id="2149973817440762519">Badilisha Alamisho</translation>
 <translation id="2155145621546387786">Shiriki Chrome</translation>
 <translation id="2175927920773552910">Msimbo wa QR</translation>
diff --git a/ios/chrome/app/strings/resources/ios_strings_ta.xtb b/ios/chrome/app/strings/resources/ios_strings_ta.xtb
index fc72a4bb4..a69f58d6 100644
--- a/ios/chrome/app/strings/resources/ios_strings_ta.xtb
+++ b/ios/chrome/app/strings/resources/ios_strings_ta.xtb
@@ -210,6 +210,7 @@
 <translation id="2139502497535990641">விலை குறித்த அறிவிப்புகளை இயக்கவா?</translation>
 <translation id="2139867232736819575">நீங்கள் நகலெடுத்த உரையைத் தேடவும்</translation>
 <translation id="214201757571129614">உள்நுழைக…</translation>
+<translation id="2148716181193084225">இன்று</translation>
 <translation id="2149973817440762519">புக்மார்க்கை மாற்றுக</translation>
 <translation id="2155145621546387786">Chromeமைப் பகிர்</translation>
 <translation id="2175927920773552910">QR குறியீடு</translation>
diff --git a/ios/chrome/app/strings/resources/ios_strings_te.xtb b/ios/chrome/app/strings/resources/ios_strings_te.xtb
index faf7f2e..47200c0d 100644
--- a/ios/chrome/app/strings/resources/ios_strings_te.xtb
+++ b/ios/chrome/app/strings/resources/ios_strings_te.xtb
@@ -210,6 +210,7 @@
 <translation id="2139502497535990641">ప్రైస్ అలర్ట్‌లను ఆన్ చేయాలా?</translation>
 <translation id="2139867232736819575">మీరు కాపీ చేసిన వచనం కోసం వెతకండి</translation>
 <translation id="214201757571129614">సైన్ ఇన్ చేయండి…</translation>
+<translation id="2148716181193084225">ఈ రోజు</translation>
 <translation id="2149973817440762519">బుక్‌మార్క్‌ను ఎడిట్ చేయండి</translation>
 <translation id="2155145621546387786">Chromeను షేర్ చేయండి</translation>
 <translation id="2175927920773552910">QR కోడ్</translation>
diff --git a/ios/chrome/app/strings/resources/ios_strings_th.xtb b/ios/chrome/app/strings/resources/ios_strings_th.xtb
index b0006d1..8aabb00 100644
--- a/ios/chrome/app/strings/resources/ios_strings_th.xtb
+++ b/ios/chrome/app/strings/resources/ios_strings_th.xtb
@@ -210,6 +210,7 @@
 <translation id="2139502497535990641">เปิดการแจ้งเตือนราคาไหม</translation>
 <translation id="2139867232736819575">ค้นหาข้อความที่คุณคัดลอก</translation>
 <translation id="214201757571129614">กำลังลงชื่อเข้าใช้…</translation>
+<translation id="2148716181193084225">วันนี้</translation>
 <translation id="2149973817440762519">แก้ไขบุ๊กมาร์ก</translation>
 <translation id="2155145621546387786">ใช้ Chrome ร่วมกัน</translation>
 <translation id="2175927920773552910">คิวอาร์โค้ด</translation>
diff --git a/ios/chrome/app/strings/resources/ios_strings_tr.xtb b/ios/chrome/app/strings/resources/ios_strings_tr.xtb
index 042dc33..4ac229b 100644
--- a/ios/chrome/app/strings/resources/ios_strings_tr.xtb
+++ b/ios/chrome/app/strings/resources/ios_strings_tr.xtb
@@ -210,6 +210,7 @@
 <translation id="2139502497535990641">Fiyat uyarıları açılsın mı?</translation>
 <translation id="2139867232736819575">Kopyalanan Metni Ara</translation>
 <translation id="214201757571129614">Oturum aç…</translation>
+<translation id="2148716181193084225">Bugün</translation>
 <translation id="2149973817440762519">Yer İşaretini Düzenle</translation>
 <translation id="2155145621546387786">Chrome'u paylaşın</translation>
 <translation id="2175927920773552910">QR Kodu</translation>
diff --git a/ios/chrome/app/strings/resources/ios_strings_uk.xtb b/ios/chrome/app/strings/resources/ios_strings_uk.xtb
index 8b559c14..ac5f02e4 100644
--- a/ios/chrome/app/strings/resources/ios_strings_uk.xtb
+++ b/ios/chrome/app/strings/resources/ios_strings_uk.xtb
@@ -210,6 +210,7 @@
 <translation id="2139502497535990641">Увімкнути сповіщення про змінення цін?</translation>
 <translation id="2139867232736819575">Шукати скопійований текст</translation>
 <translation id="214201757571129614">Увійти…</translation>
+<translation id="2148716181193084225">Сьогодні</translation>
 <translation id="2149973817440762519">Редагувати закладку</translation>
 <translation id="2155145621546387786">Посилання на додаток Chrome</translation>
 <translation id="2175927920773552910">QR-код</translation>
diff --git a/ios/chrome/app/strings/resources/ios_strings_ur.xtb b/ios/chrome/app/strings/resources/ios_strings_ur.xtb
index 1e52631b..29b63467 100644
--- a/ios/chrome/app/strings/resources/ios_strings_ur.xtb
+++ b/ios/chrome/app/strings/resources/ios_strings_ur.xtb
@@ -210,6 +210,7 @@
 <translation id="2139502497535990641">قیمت کے الرٹس کو آن کریں؟</translation>
 <translation id="2139867232736819575">وہ متن تلاش کریں جسے آپ نے کاپی کیا ہے</translation>
 <translation id="214201757571129614">سائن ان کریں…</translation>
+<translation id="2148716181193084225">آج</translation>
 <translation id="2149973817440762519">بک مارک میں ترمیم کریں</translation>
 <translation id="2155145621546387786">‏Chrome کا اشتراک کریں</translation>
 <translation id="2175927920773552910">‏QR کوڈ</translation>
diff --git a/ios/chrome/app/strings/resources/ios_strings_uz.xtb b/ios/chrome/app/strings/resources/ios_strings_uz.xtb
index f22d352..378a64ca2 100644
--- a/ios/chrome/app/strings/resources/ios_strings_uz.xtb
+++ b/ios/chrome/app/strings/resources/ios_strings_uz.xtb
@@ -210,6 +210,7 @@
 <translation id="2139502497535990641">Narxga oid bildirishnomalar yoqilsinmi?</translation>
 <translation id="2139867232736819575">Nusxalangan matnni qidirish</translation>
 <translation id="214201757571129614">Kirish...</translation>
+<translation id="2148716181193084225">Bugun</translation>
 <translation id="2149973817440762519">Xatcho‘p tahriri</translation>
 <translation id="2155145621546387786">Chromeni ulashish</translation>
 <translation id="2175927920773552910">QR kod</translation>
diff --git a/ios/chrome/app/strings/resources/ios_strings_vi.xtb b/ios/chrome/app/strings/resources/ios_strings_vi.xtb
index d7b61b2..c2989f4 100644
--- a/ios/chrome/app/strings/resources/ios_strings_vi.xtb
+++ b/ios/chrome/app/strings/resources/ios_strings_vi.xtb
@@ -210,6 +210,7 @@
 <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="2148716181193084225">Hôm nay</translation>
 <translation id="2149973817440762519">Chỉnh sửa dấu trang</translation>
 <translation id="2155145621546387786">Chia sẻ Chrome</translation>
 <translation id="2175927920773552910">Mã QR</translation>
diff --git a/ios/chrome/app/strings/resources/ios_strings_zh-CN.xtb b/ios/chrome/app/strings/resources/ios_strings_zh-CN.xtb
index 532cef04..bc27b7e 100644
--- a/ios/chrome/app/strings/resources/ios_strings_zh-CN.xtb
+++ b/ios/chrome/app/strings/resources/ios_strings_zh-CN.xtb
@@ -208,6 +208,7 @@
 <translation id="2139502497535990641">开启价格变更提醒?</translation>
 <translation id="2139867232736819575">搜索您复制的文字</translation>
 <translation id="214201757571129614">登录…</translation>
+<translation id="2148716181193084225">今天</translation>
 <translation id="2149973817440762519">修改书签</translation>
 <translation id="2155145621546387786">共享 Chrome</translation>
 <translation id="2175927920773552910">二维码</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 696dc59..003192c6 100644
--- a/ios/chrome/app/strings/resources/ios_strings_zh-HK.xtb
+++ b/ios/chrome/app/strings/resources/ios_strings_zh-HK.xtb
@@ -210,6 +210,7 @@
 <translation id="2139502497535990641">要開啟價格變更提示嗎?</translation>
 <translation id="2139867232736819575">搜尋您複製的文字</translation>
 <translation id="214201757571129614">登入…</translation>
+<translation id="2148716181193084225">今天</translation>
 <translation id="2149973817440762519">編輯書籤</translation>
 <translation id="2155145621546387786">分享 Chrome</translation>
 <translation id="2175927920773552910">二維條碼</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 c97492a..0ba37b4 100644
--- a/ios/chrome/app/strings/resources/ios_strings_zh-TW.xtb
+++ b/ios/chrome/app/strings/resources/ios_strings_zh-TW.xtb
@@ -208,6 +208,7 @@
 <translation id="2139502497535990641">要開啟價格通知嗎?</translation>
 <translation id="2139867232736819575">搜尋你複製的文字</translation>
 <translation id="214201757571129614">登入…</translation>
+<translation id="2148716181193084225">今天</translation>
 <translation id="2149973817440762519">編輯書籤</translation>
 <translation id="2155145621546387786">分享 Chrome</translation>
 <translation id="2175927920773552910">QR 圖碼</translation>
diff --git a/ios/chrome/app/strings/resources/ios_strings_zu.xtb b/ios/chrome/app/strings/resources/ios_strings_zu.xtb
index 705b301..101bc83 100644
--- a/ios/chrome/app/strings/resources/ios_strings_zu.xtb
+++ b/ios/chrome/app/strings/resources/ios_strings_zu.xtb
@@ -210,6 +210,7 @@
 <translation id="2139502497535990641">Vula Izixwayiso Zezintengo?</translation>
 <translation id="2139867232736819575">Sesha umbhalo owukopishile</translation>
 <translation id="214201757571129614">Ukungena ngemvume…</translation>
+<translation id="2148716181193084225">Namhlanje</translation>
 <translation id="2149973817440762519">Hlela ibhukhimakhi</translation>
 <translation id="2155145621546387786">Yabelana nge-Chrome</translation>
 <translation id="2175927920773552910">Ikhodi ye-QR</translation>
diff --git a/ios/chrome/browser/flags/about_flags.mm b/ios/chrome/browser/flags/about_flags.mm
index 0c950d06..f0895ae 100644
--- a/ios/chrome/browser/flags/about_flags.mm
+++ b/ios/chrome/browser/flags/about_flags.mm
@@ -975,10 +975,6 @@
      flag_descriptions::kNTPViewHierarchyRepairName,
      flag_descriptions::kNTPViewHierarchyRepairDescription, flags_ui::kOsIos,
      FEATURE_VALUE_TYPE(kEnableNTPViewHierarchyRepair)},
-    {"synthesized-restore-session",
-     flag_descriptions::kSynthesizedRestoreSessionName,
-     flag_descriptions::kSynthesizedRestoreSessionDescription, flags_ui::kOsIos,
-     FEATURE_VALUE_TYPE(web::features::kSynthesizedRestoreSession)},
     {"enable-tailored-security-integration",
      flag_descriptions::kTailoredSecurityIntegrationName,
      flag_descriptions::kTailoredSecurityIntegrationDescription,
diff --git a/ios/chrome/browser/flags/ios_chrome_flag_descriptions.cc b/ios/chrome/browser/flags/ios_chrome_flag_descriptions.cc
index b6486b25..e095b59 100644
--- a/ios/chrome/browser/flags/ios_chrome_flag_descriptions.cc
+++ b/ios/chrome/browser/flags/ios_chrome_flag_descriptions.cc
@@ -1040,12 +1040,6 @@
     "Enables history's segments to include foreign visits from syncing "
     "devices.";
 
-const char kSynthesizedRestoreSessionName[] =
-    "Use a synthesized native WKWebView sesion restoration (iOS15 only).";
-const char kSynthesizedRestoreSessionDescription[] =
-    "Enable instant session restoration by synthesizing WKWebView session "
-    "restoration data (iOS15 only).";
-
 const char kStartSurfaceName[] = "Start Surface";
 const char kStartSurfaceDescription[] =
     "Enable showing the Start Surface when launching Chrome via clicking the "
diff --git a/ios/chrome/browser/flags/ios_chrome_flag_descriptions.h b/ios/chrome/browser/flags/ios_chrome_flag_descriptions.h
index 168a13b..35147d46 100644
--- a/ios/chrome/browser/flags/ios_chrome_flag_descriptions.h
+++ b/ios/chrome/browser/flags/ios_chrome_flag_descriptions.h
@@ -914,10 +914,6 @@
 extern const char kSyncSegmentsDataName[];
 extern const char kSyncSegmentsDataDescription[];
 
-// Title and description for the flag to synthesize native restore web states.
-extern const char kSynthesizedRestoreSessionName[];
-extern const char kSynthesizedRestoreSessionDescription[];
-
 // Title and description for the flag to enable TFLite for language detection.
 extern const char kTFLiteLanguageDetectionName[];
 extern const char kTFLiteLanguageDetectionDescription[];
diff --git a/ios/chrome/browser/shared/coordinator/scene/scene_controller.mm b/ios/chrome/browser/shared/coordinator/scene/scene_controller.mm
index 6ba6c88..eca2a608 100644
--- a/ios/chrome/browser/shared/coordinator/scene/scene_controller.mm
+++ b/ios/chrome/browser/shared/coordinator/scene/scene_controller.mm
@@ -2637,11 +2637,20 @@
 }
 
 - (void)startPasswordSearch {
-  if (!self.currentInterface.browser) {
+  Browser* browser = self.currentInterface.browser;
+  if (!browser) {
     return;
   }
+  feature_engagement::Tracker* tracker =
+      feature_engagement::TrackerFactory::GetForBrowserState(
+          browser->GetBrowserState());
+  if (tracker) {
+    tracker->NotifyEvent(
+        feature_engagement::events::kPasswordManagerWidgetPromoUsed);
+  }
+
   id<ApplicationSettingsCommands> applicationSettingsCommandsHandler =
-      HandlerForProtocol(self.currentInterface.browser->GetCommandDispatcher(),
+      HandlerForProtocol(browser->GetCommandDispatcher(),
                          ApplicationSettingsCommands);
   [applicationSettingsCommandsHandler showPasswordSearchPage];
 }
diff --git a/ios/chrome/browser/shared/model/prefs/browser_prefs.mm b/ios/chrome/browser/shared/model/prefs/browser_prefs.mm
index 5adaddc..36148d7d 100644
--- a/ios/chrome/browser/shared/model/prefs/browser_prefs.mm
+++ b/ios/chrome/browser/shared/model/prefs/browser_prefs.mm
@@ -532,6 +532,9 @@
   registry->RegisterBooleanPref(kPrivacySandboxManuallyControlled, false);
   // Register prefs used to skip too frequent History Sync Opt-In prompt.
   history_sync::RegisterBrowserStatePrefs(registry);
+
+  registry->RegisterBooleanPref(prefs::kPasswordSharingFlowHasBeenEntered,
+                                false);
 }
 
 // This method should be periodically pruned of year+ old migrations.
diff --git a/ios/chrome/browser/shared/model/prefs/pref_names.cc b/ios/chrome/browser/shared/model/prefs/pref_names.cc
index b290340..2649cb96 100644
--- a/ios/chrome/browser/shared/model/prefs/pref_names.cc
+++ b/ios/chrome/browser/shared/model/prefs/pref_names.cc
@@ -448,4 +448,9 @@
 const char kPriceNotificationsHasBeenShown[] =
     "ios.price_notifications.has_been_shown";
 
+// A boolean used to determine if the user has entered the password sharing flow
+// from the first run experience screen.
+const char kPasswordSharingFlowHasBeenEntered[] =
+    "ios.password_sharing.flow_entered";
+
 }  // namespace prefs
diff --git a/ios/chrome/browser/shared/model/prefs/pref_names.h b/ios/chrome/browser/shared/model/prefs/pref_names.h
index f701fb08..3d73f73a 100644
--- a/ios/chrome/browser/shared/model/prefs/pref_names.h
+++ b/ios/chrome/browser/shared/model/prefs/pref_names.h
@@ -125,6 +125,8 @@
 
 extern const char kPriceNotificationsHasBeenShown[];
 
+extern const char kPasswordSharingFlowHasBeenEntered[];
+
 }  // namespace prefs
 
 #endif  // IOS_CHROME_BROWSER_PREFS_PREF_NAMES_H_
diff --git a/ios/chrome/browser/shared/ui/bottom_sheet/table_view_bottom_sheet_view_controller.mm b/ios/chrome/browser/shared/ui/bottom_sheet/table_view_bottom_sheet_view_controller.mm
index b6ccfec..3b99890 100644
--- a/ios/chrome/browser/shared/ui/bottom_sheet/table_view_bottom_sheet_view_controller.mm
+++ b/ios/chrome/browser/shared/ui/bottom_sheet/table_view_bottom_sheet_view_controller.mm
@@ -158,22 +158,25 @@
   [super traitCollectionDidChange:previousTraitCollection];
   // Update the custom detent with the correct initial height when trait
   // collection changed (for example when the user uses large font).
-  UISheetPresentationController* presentationController =
-      self.sheetPresentationController;
-  if (@available(iOS 16, *)) {
-    CGFloat bottomSheetHeight = [self preferredHeightForContent];
-    auto resolver = ^CGFloat(
-        id<UISheetPresentationControllerDetentResolutionContext> context) {
-      return bottomSheetHeight;
-    };
+  if (self.traitCollection.preferredContentSizeCategory !=
+      previousTraitCollection.preferredContentSizeCategory) {
+    UISheetPresentationController* presentationController =
+        self.sheetPresentationController;
+    if (@available(iOS 16, *)) {
+      CGFloat bottomSheetHeight = [self preferredHeightForContent];
+      auto resolver = ^CGFloat(
+          id<UISheetPresentationControllerDetentResolutionContext> context) {
+        return bottomSheetHeight;
+      };
 
-    UISheetPresentationControllerDetent* customDetent =
-        [UISheetPresentationControllerDetent
-            customDetentWithIdentifier:kCustomMinimizedDetentIdentifier
-                              resolver:resolver];
-    presentationController.detents = @[ customDetent ];
-    presentationController.selectedDetentIdentifier =
-        kCustomMinimizedDetentIdentifier;
+      UISheetPresentationControllerDetent* customDetent =
+          [UISheetPresentationControllerDetent
+              customDetentWithIdentifier:kCustomMinimizedDetentIdentifier
+                                resolver:resolver];
+      presentationController.detents = @[ customDetent ];
+      presentationController.selectedDetentIdentifier =
+          kCustomMinimizedDetentIdentifier;
+    }
   }
 }
 
diff --git a/ios/chrome/browser/signin/authentication_service.mm b/ios/chrome/browser/signin/authentication_service.mm
index ff7df907..c37fb107 100644
--- a/ios/chrome/browser/signin/authentication_service.mm
+++ b/ios/chrome/browser/signin/authentication_service.mm
@@ -58,7 +58,8 @@
     signin::IdentityManager* identity_manager,
     id<SystemIdentity> identity) {
   std::string gaia_id = base::SysNSStringToUTF8([identity gaiaID]);
-  return identity_manager->FindExtendedAccountInfoByGaiaId(gaia_id).account_id;
+  std::string email = base::SysNSStringToUTF8([identity userEmail]);
+  return identity_manager->PickAccountIdForAccount(gaia_id, email);
 }
 
 }  // namespace
@@ -239,7 +240,10 @@
     signin::DeviceAccountsSynchronizer* device_accounts_synchronizer =
         identity_manager_->GetDeviceAccountsSynchronizer();
     for (const auto& pair : cached_mdm_errors) {
-      device_accounts_synchronizer->ReloadAccountFromSystem(pair.first);
+      const CoreAccountId& account_id = pair.first;
+      if (identity_manager_->HasAccountWithRefreshToken(account_id)) {
+        device_accounts_synchronizer->ReloadAccountFromSystem(account_id);
+      }
     }
   }
 }
@@ -459,15 +463,15 @@
 
 id<RefreshAccessTokenError> AuthenticationService::GetCachedMDMError(
     id<SystemIdentity> identity) {
-  auto it = cached_mdm_errors_.find(
-      SystemIdentityToAccountID(identity_manager_, identity));
-
+  CoreAccountId account_id =
+      SystemIdentityToAccountID(identity_manager_, identity);
+  auto it = cached_mdm_errors_.find(account_id);
   if (it == cached_mdm_errors_.end()) {
     return nil;
   }
 
   if (!identity_manager_->HasAccountWithRefreshTokenInPersistentErrorState(
-          it->first)) {
+          account_id)) {
     // Account has no error, invalidate the cache.
     cached_mdm_errors_.erase(it);
     return nil;
@@ -556,9 +560,12 @@
           identity, error,
           base::BindOnce(&AuthenticationService::MDMErrorHandled,
                          weak_pointer_factory_.GetWeakPtr(), identity))) {
-    const CoreAccountId key =
+    CoreAccountId account_id =
         SystemIdentityToAccountID(identity_manager_, identity);
-    cached_mdm_errors_[key] = error;
+    DUMP_WILL_BE_CHECK(!account_id.empty())
+        << "Unexpected identity with empty account id: [gaiaID = "
+        << identity.gaiaID << "; userEmail = " << identity.userEmail << "]";
+    cached_mdm_errors_[account_id] = error;
     return true;
   }
 
@@ -584,6 +591,12 @@
 void AuthenticationService::OnAccessTokenRefreshFailed(
     id<SystemIdentity> identity,
     id<RefreshAccessTokenError> error) {
+  if (!identity) {
+    DLOG(ERROR)
+        << "Unexpected call of OnAccessTokenRefreshFailed with null identity";
+    return;
+  }
+
   if (HandleMDMError(identity, error)) {
     return;
   }
diff --git a/ios/chrome/browser/signin/authentication_service_unittest.mm b/ios/chrome/browser/signin/authentication_service_unittest.mm
index 6af6439..c86fbea2 100644
--- a/ios/chrome/browser/signin/authentication_service_unittest.mm
+++ b/ios/chrome/browser/signin/authentication_service_unittest.mm
@@ -575,6 +575,34 @@
   EXPECT_EQ(ClearBrowsingDataCount(), 0);
 }
 
+// Tests that MDM errors do not lead to seeding empty account ids.
+//
+// Regression test for root cause of crbug/1482236
+TEST_F(AuthenticationServiceTest, MDMErrorsDontSeedEmptyAccountIds) {
+  SetExpectationsForSignIn();
+  authentication_service()->SignIn(
+      identity(0), signin_metrics::AccessPoint::ACCESS_POINT_UNKNOWN);
+  EXPECT_EQ(identity_manager()->GetAccountsWithRefreshTokens().size(), 2UL);
+
+  SetCachedMDMInfo(identity(0), CreateRefreshAccessTokenError(identity(0)));
+
+  // Fake an mdm error for an identity that is not loaded in IdentityManager.
+  fake_system_identity_manager()->AddIdentities(@[ @"foo3" ]);
+  SetCachedMDMInfo(identity(2), CreateRefreshAccessTokenError(identity(2)));
+
+  GoogleServiceAuthError error(
+      GoogleServiceAuthError::INVALID_GAIA_CREDENTIALS);
+  signin::UpdatePersistentErrorOfRefreshTokenForAccount(
+      identity_manager(), GetAccountId(identity(0)), error);
+  FireApplicationWillEnterForeground();
+
+  ASSERT_EQ(identity_manager()->GetAccountsWithRefreshTokens().size(), 2u);
+  EXPECT_FALSE(
+      identity_manager()->GetAccountsWithRefreshTokens()[0].account_id.empty());
+  EXPECT_FALSE(
+      identity_manager()->GetAccountsWithRefreshTokens()[1].account_id.empty());
+}
+
 // Tests that MDM errors are correctly cleared when signing out of a managed
 // account.
 TEST_F(AuthenticationServiceTest, ManagedAccountSignOut) {
diff --git a/ios/chrome/browser/ui/authentication/signin/consistency_promo_signin/BUILD.gn b/ios/chrome/browser/ui/authentication/signin/consistency_promo_signin/BUILD.gn
index 543e6f5..5715a03 100644
--- a/ios/chrome/browser/ui/authentication/signin/consistency_promo_signin/BUILD.gn
+++ b/ios/chrome/browser/ui/authentication/signin/consistency_promo_signin/BUILD.gn
@@ -6,6 +6,8 @@
 
 source_set("consistency_promo_signin") {
   sources = [
+    "account_cookie_waiter.h",
+    "account_cookie_waiter.mm",
     "consistency_promo_signin_coordinator.h",
     "consistency_promo_signin_coordinator.mm",
     "consistency_promo_signin_mediator.h",
diff --git a/ios/chrome/browser/ui/authentication/signin/consistency_promo_signin/account_cookie_waiter.h b/ios/chrome/browser/ui/authentication/signin/consistency_promo_signin/account_cookie_waiter.h
new file mode 100644
index 0000000..9dc36c6
--- /dev/null
+++ b/ios/chrome/browser/ui/authentication/signin/consistency_promo_signin/account_cookie_waiter.h
@@ -0,0 +1,55 @@
+// Copyright 2023 The Chromium Authors
+// Use of this source code is governed by a BSD-style license that can be
+// found in the LICENSE file.
+
+#ifndef IOS_CHROME_BROWSER_UI_AUTHENTICATION_SIGNIN_CONSISTENCY_PROMO_SIGNIN_ACCOUNT_COOKIE_WAITER_H_
+#define IOS_CHROME_BROWSER_UI_AUTHENTICATION_SIGNIN_CONSISTENCY_PROMO_SIGNIN_ACCOUNT_COOKIE_WAITER_H_
+
+#import "base/functional/callback_forward.h"
+#import "base/memory/raw_ptr.h"
+#import "base/timer/timer.h"
+#import "components/signin/public/identity_manager/identity_manager.h"
+#import "google_apis/gaia/core_account_id.h"
+
+// Helper to wait for a Gaia cookie to be populated.
+class AccountCookieWaiter : public signin::IdentityManager::Observer {
+ public:
+  enum class Result {
+    kSuccess,
+    kAuthError,
+    kTimeout,
+  };
+
+  explicit AccountCookieWaiter(signin::IdentityManager* identity_manager);
+
+  AccountCookieWaiter(const AccountCookieWaiter&) = delete;
+  AccountCookieWaiter& operator=(const AccountCookieWaiter&) = delete;
+
+  // If `Wait()` is ongoing, aborts without invoking the callback.
+  ~AccountCookieWaiter() override;
+
+  // Waits for `account_id` to be present in the cookie jar and invokes
+  // `callback` with the outcome. Must not be called again before the previous
+  // wait finishes, i.e. before `callback` is invoked.
+  void Wait(CoreAccountId account_id,
+            base::OnceCallback<void(Result)> callback);
+
+  // signin::IdentityManager::Observer implementation.
+  void OnAccountsInCookieUpdated(
+      const signin::AccountsInCookieJarInfo& accounts_in_cookie_jar_info,
+      const GoogleServiceAuthError& error) override;
+
+ private:
+  // Called once the timer runs out.
+  void OnTimeout();
+
+  const raw_ptr<signin::IdentityManager> identity_manager_;
+  // Timer to wait for the cookies.
+  base::OneShotTimer timer_;
+  // Set on every Wait().
+  CoreAccountId account_id_;
+  // Set on every Wait().
+  base::OnceCallback<void(Result)> callback_;
+};
+
+#endif  // IOS_CHROME_BROWSER_UI_AUTHENTICATION_SIGNIN_CONSISTENCY_PROMO_SIGNIN_ACCOUNT_COOKIE_WAITER_H_
diff --git a/ios/chrome/browser/ui/authentication/signin/consistency_promo_signin/account_cookie_waiter.mm b/ios/chrome/browser/ui/authentication/signin/consistency_promo_signin/account_cookie_waiter.mm
new file mode 100644
index 0000000..96e3b88
--- /dev/null
+++ b/ios/chrome/browser/ui/authentication/signin/consistency_promo_signin/account_cookie_waiter.mm
@@ -0,0 +1,70 @@
+// 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/authentication/signin/consistency_promo_signin/account_cookie_waiter.h"
+
+#import "base/check.h"
+#import "base/containers/contains.h"
+#import "base/functional/callback.h"
+#import "base/location.h"
+#import "base/time/time.h"
+#import "base/timer/timer.h"
+#import "components/signin/public/identity_manager/accounts_in_cookie_jar_info.h"
+#import "google_apis/gaia/gaia_auth_util.h"
+#import "google_apis/gaia/google_service_auth_error.h"
+
+namespace {
+
+// Sign-in time out duration.
+constexpr base::TimeDelta kSigninTimeout = base::Seconds(10);
+
+}  // namespace
+
+AccountCookieWaiter::AccountCookieWaiter(
+    signin::IdentityManager* identity_manager)
+    : identity_manager_(identity_manager) {
+  identity_manager_->AddObserver(this);
+}
+
+AccountCookieWaiter::~AccountCookieWaiter() {
+  identity_manager_->RemoveObserver(this);
+}
+
+void AccountCookieWaiter::Wait(CoreAccountId account_id,
+                               base::OnceCallback<void(Result)> callback) {
+  CHECK(!timer_.IsRunning())
+      << "Wait() musn't be called before previous call finished";
+
+  account_id_ = account_id;
+  callback_ = std::move(callback);
+
+  // Unretained() is safe because `this` outlives `timer_`.
+  timer_.Start(
+      FROM_HERE, kSigninTimeout,
+      base::BindOnce(&AccountCookieWaiter::OnTimeout, base::Unretained(this)));
+}
+
+void AccountCookieWaiter::OnAccountsInCookieUpdated(
+    const signin::AccountsInCookieJarInfo& accounts_in_cookie_jar_info,
+    const GoogleServiceAuthError& error) {
+  if (!timer_.IsRunning()) {
+    // No waiting ongoing.
+    return;
+  }
+
+  if (error.state() != GoogleServiceAuthError::State::NONE) {
+    timer_.Stop();
+    std::move(callback_).Run(Result::kAuthError);
+  } else if (base::Contains(accounts_in_cookie_jar_info.signed_in_accounts,
+                            account_id_, &gaia::ListedAccount::id)) {
+    timer_.Stop();
+    std::move(callback_).Run(Result::kSuccess);
+  } else {
+    // Keep waiting.
+  }
+}
+
+void AccountCookieWaiter::OnTimeout() {
+  std::move(callback_).Run(Result::kTimeout);
+}
diff --git a/ios/chrome/browser/ui/authentication/signin/consistency_promo_signin/consistency_promo_signin_coordinator.mm b/ios/chrome/browser/ui/authentication/signin/consistency_promo_signin/consistency_promo_signin_coordinator.mm
index 4d97a4c..89ecfdf2 100644
--- a/ios/chrome/browser/ui/authentication/signin/consistency_promo_signin/consistency_promo_signin_coordinator.mm
+++ b/ios/chrome/browser/ui/authentication/signin/consistency_promo_signin/consistency_promo_signin_coordinator.mm
@@ -4,6 +4,8 @@
 
 #import "ios/chrome/browser/ui/authentication/signin/consistency_promo_signin/consistency_promo_signin_coordinator.h"
 
+#import <memory>
+
 #import "base/metrics/user_metrics.h"
 #import "components/prefs/pref_service.h"
 #import "components/signin/public/base/signin_metrics.h"
@@ -21,6 +23,7 @@
 #import "ios/chrome/browser/signin/identity_manager_factory.h"
 #import "ios/chrome/browser/signin/system_identity.h"
 #import "ios/chrome/browser/ui/authentication/authentication_flow.h"
+#import "ios/chrome/browser/ui/authentication/signin/consistency_promo_signin/account_cookie_waiter.h"
 #import "ios/chrome/browser/ui/authentication/signin/consistency_promo_signin/consistency_account_chooser/consistency_account_chooser_coordinator.h"
 #import "ios/chrome/browser/ui/authentication/signin/consistency_promo_signin/consistency_default_account/consistency_default_account_coordinator.h"
 #import "ios/chrome/browser/ui/authentication/signin/consistency_promo_signin/consistency_layout_delegate.h"
@@ -134,7 +137,8 @@
   self.consistencyPromoSigninMediator = [[ConsistencyPromoSigninMediator alloc]
       initWithAccountManagerService:accountManagerService
               authenticationService:authenticationService
-                    identityManager:identityManager
+                accountCookieWaiter:std::make_unique<AccountCookieWaiter>(
+                                        identityManager)
                     userPrefService:browserState->GetPrefs()
                         accessPoint:self.accessPoint];
   self.consistencyPromoSigninMediator.delegate = self;
@@ -488,6 +492,7 @@
                             (ConsistencyPromoSigninMediatorError)error {
   NSString* errorTitle = l10n_util::GetNSString(IDS_IOS_WEBSIGN_ERROR_TITLE);
   NSString* errorMessage = nil;
+  NSLog(@"create error %@", errorTitle);
   switch (error) {
     case ConsistencyPromoSigninMediatorErrorGeneric:
     case ConsistencyPromoSigninMediatorErrorFailedToSignin:
diff --git a/ios/chrome/browser/ui/authentication/signin/consistency_promo_signin/consistency_promo_signin_mediator.h b/ios/chrome/browser/ui/authentication/signin/consistency_promo_signin/consistency_promo_signin_mediator.h
index 4fb9d5d..f6851b6 100644
--- a/ios/chrome/browser/ui/authentication/signin/consistency_promo_signin/consistency_promo_signin_mediator.h
+++ b/ios/chrome/browser/ui/authentication/signin/consistency_promo_signin/consistency_promo_signin_mediator.h
@@ -6,10 +6,12 @@
 #define IOS_CHROME_BROWSER_UI_AUTHENTICATION_SIGNIN_CONSISTENCY_PROMO_SIGNIN_CONSISTENCY_PROMO_SIGNIN_MEDIATOR_H_
 
 #import <Foundation/Foundation.h>
+#import <memory>
 
 #import "base/ios/block_types.h"
 #import "ios/chrome/browser/ui/authentication/signin/signin_constants.h"
 
+class AccountCookieWaiter;
 @class AuthenticationFlow;
 class AuthenticationService;
 class ChromeAccountManagerService;
@@ -18,10 +20,6 @@
 @class SigninCompletionInfo;
 @protocol SystemIdentity;
 
-namespace signin {
-class IdentityManager;
-}  // signin
-
 namespace signin_metrics {
 enum class AccessPoint : int;
 }
@@ -69,7 +67,8 @@
     initWithAccountManagerService:
         (ChromeAccountManagerService*)accountManagerService
             authenticationService:(AuthenticationService*)authenticationService
-                  identityManager:(signin::IdentityManager*)identityManager
+              accountCookieWaiter:
+                  (std::unique_ptr<AccountCookieWaiter>)accountCookieWaiter
                   userPrefService:(PrefService*)userPrefService
                       accessPoint:(signin_metrics::AccessPoint)accessPoint;
 
diff --git a/ios/chrome/browser/ui/authentication/signin/consistency_promo_signin/consistency_promo_signin_mediator.mm b/ios/chrome/browser/ui/authentication/signin/consistency_promo_signin/consistency_promo_signin_mediator.mm
index 6d28e4c..7e00177 100644
--- a/ios/chrome/browser/ui/authentication/signin/consistency_promo_signin/consistency_promo_signin_mediator.mm
+++ b/ios/chrome/browser/ui/authentication/signin/consistency_promo_signin/consistency_promo_signin_mediator.mm
@@ -4,36 +4,21 @@
 
 #import "ios/chrome/browser/ui/authentication/signin/consistency_promo_signin/consistency_promo_signin_mediator.h"
 
-#import "base/cancelable_callback.h"
-#import "base/task/single_thread_task_runner.h"
+#import "base/strings/sys_string_conversions.h"
 #import "components/prefs/pref_service.h"
 #import "components/signin/public/base/signin_metrics.h"
 #import "components/signin/public/identity_manager/accounts_in_cookie_jar_info.h"
-#import "components/signin/public/identity_manager/objc/identity_manager_observer_bridge.h"
 #import "ios/chrome/browser/shared/model/prefs/pref_names.h"
 #import "ios/chrome/browser/signin/authentication_service.h"
 #import "ios/chrome/browser/signin/chrome_account_manager_service.h"
 #import "ios/chrome/browser/signin/system_identity.h"
 #import "ios/chrome/browser/ui/authentication/authentication_flow.h"
+#import "ios/chrome/browser/ui/authentication/signin/consistency_promo_signin/account_cookie_waiter.h"
 #import "ios/chrome/browser/ui/authentication/signin/signin_completion_info.h"
 
-namespace {
-
-// Sign-in time out duration.
-constexpr base::TimeDelta kSigninTimeout = base::Seconds(10);
-
-}  // namespace
-
-@interface ConsistencyPromoSigninMediator () <
-    IdentityManagerObserverBridgeDelegate> {
-  // Observer for changes to the user's Google identities.
-  std::unique_ptr<signin::IdentityManagerObserverBridge>
-      _identityManagerObserverBridge;
-  // Closure to trigger the sign-in time out error. This closure exists to make
-  // sure the user doesn't wait too long before to get the cookies available
-  // on the web. This is used only when `_accessPoint` is equal to
-  // `ACCESS_POINT_WEB_SIGNIN`.
-  base::CancelableOnceClosure _cookieTimeoutClosure;
+@interface ConsistencyPromoSigninMediator () {
+  // See waiter docs. Only used if the access point is web sign-in.
+  std::unique_ptr<AccountCookieWaiter> _accountCookieWaiter;
   AuthenticationFlow* _authenticationFlow;
   // True if the mediator was initialized with no existing account on device.
   // Kept for metrics reasons.
@@ -46,7 +31,6 @@
 // Manager for user's Google identities.
 @property(nonatomic, assign) ChromeAccountManagerService* accountManagerService;
 @property(nonatomic, assign) AuthenticationService* authenticationService;
-@property(nonatomic, assign) signin::IdentityManager* identityManager;
 @property(nonatomic, assign) PrefService* userPrefService;
 @property(nonatomic, assign, readonly) signin_metrics::AccessPoint accessPoint;
 // Identity for the sign-in in progress.
@@ -60,19 +44,18 @@
     initWithAccountManagerService:
         (ChromeAccountManagerService*)accountManagerService
             authenticationService:(AuthenticationService*)authenticationService
-                  identityManager:(signin::IdentityManager*)identityManager
+              accountCookieWaiter:
+                  (std::unique_ptr<AccountCookieWaiter>)accountCookieWaiter
                   userPrefService:(PrefService*)userPrefService
                       accessPoint:(signin_metrics::AccessPoint)accessPoint {
   self = [super init];
   if (self) {
     _accountManagerService = accountManagerService;
     _authenticationService = authenticationService;
-    _identityManager = identityManager;
+    _accountCookieWaiter = std::move(accountCookieWaiter);
     _userPrefService = userPrefService;
     _accessPoint = accessPoint;
     _addedGaiaIDs = [[NSMutableSet alloc] init];
-    _identityManagerObserverBridge.reset(
-        new signin::IdentityManagerObserverBridge(self.identityManager, self));
 
     _initializedWithDefaultAccount =
         self.accountManagerService->HasIdentities();
@@ -91,14 +74,11 @@
 
 - (void)dealloc {
   DCHECK(!self.accountManagerService && !self.authenticationService &&
-         !self.identityManager && !self.userPrefService &&
-         !_identityManagerObserverBridge.get())
+         !_accountCookieWaiter && !self.userPrefService)
       << "self.accountManagerService: " << self.accountManagerService
       << ", self.authenticationService: " << self.authenticationService
-      << ", self.identityManager: " << self.identityManager
       << ", self.userPrefService: " << self.userPrefService
-      << ", _identityManagerObserverBridge: "
-      << _identityManagerObserverBridge.get();
+      << ", _accountCookieWaiter: " << _accountCookieWaiter;
 }
 
 - (void)disconnectWithResult:(SigninCoordinatorResult)signinResult {
@@ -150,12 +130,11 @@
       break;
     }
   }
-  _cookieTimeoutClosure.Cancel();
+  // Abort any ongoing wait.
+  _accountCookieWaiter.reset();
   self.accountManagerService = nullptr;
   self.authenticationService = nullptr;
-  self.identityManager = nullptr;
   self.userPrefService = nullptr;
-  _identityManagerObserverBridge.reset();
 }
 
 - (void)systemIdentityAdded:(id<SystemIdentity>)identity {
@@ -187,21 +166,25 @@
               ConsistencyPromoSigninMediatorErrorFailedToSignin];
     return;
   }
-  if (_accessPoint == signin_metrics::AccessPoint::ACCESS_POINT_WEB_SIGNIN) {
-    // `-[ConsistencyPromoSigninMediator onAccountsInCookieUpdated:error:]` will
-    // be called when the cookies will be ready, and then the sign-in can be
-    // finished. Or `_cookieTimeoutClosure` will be called if it takes too long.
-    __weak __typeof(self) weakSelf = self;
-    _cookieTimeoutClosure.Reset(base::BindOnce(^{
-      [weakSelf
-          cancelSigninWithError:ConsistencyPromoSigninMediatorErrorTimeout];
-    }));
-    base::SingleThreadTaskRunner::GetCurrentDefault()->PostDelayedTask(
-        FROM_HERE, _cookieTimeoutClosure.callback(), kSigninTimeout);
+
+  if (_accessPoint != signin_metrics::AccessPoint::ACCESS_POINT_WEB_SIGNIN) {
+    // Other entry points don't need to wait for the account cookie, done.
+    [self.delegate
+        consistencyPromoSigninMediatorSignInDone:self
+                                    withIdentity:self.signingIdentity];
     return;
   }
-  [self.delegate consistencyPromoSigninMediatorSignInDone:self
-                                             withIdentity:self.signingIdentity];
+
+  // Wait for the account cookie to arrive, or an error, or timeout.
+  __weak __typeof(self) weakSelf = self;
+  auto callback = base::BindOnce(
+      [](__typeof(self) strongSelf, AccountCookieWaiter::Result result) {
+        [strongSelf onCookieWaitDoneWithResult:result];
+      },
+      weakSelf);
+  _accountCookieWaiter->Wait(CoreAccountId::FromGaiaId(base::SysNSStringToUTF8(
+                                 self.signingIdentity.gaiaID)),
+                             std::move(callback));
 }
 
 // Cancels sign-in and calls the delegate to display the error.
@@ -235,67 +218,25 @@
       });
 }
 
-#pragma mark - IdentityManagerObserverBridgeDelegate
-
-- (void)onPrimaryAccountChanged:
-    (const signin::PrimaryAccountChangeEvent&)event {
-  switch (event.GetEventTypeFor(signin::ConsentLevel::kSignin)) {
-    case signin::PrimaryAccountChangeEvent::Type::kSet: {
-      // Since sign-in UI blocks all other Chrome screens until it is dismissed
-      // an account change event must come from the consistency sheet.
-      // TODO(crbug.com/1081764): Update if sign-in UI becomes non-blocking.
-      DCHECK(self.signingIdentity);
-      id<SystemIdentity> signedInIdentity =
-          self.authenticationService->GetPrimaryIdentity(
-              signin::ConsentLevel::kSignin);
-      DCHECK([signedInIdentity isEqual:self.signingIdentity]);
+- (void)onCookieWaitDoneWithResult:(AccountCookieWaiter::Result)result {
+  switch (result) {
+    case AccountCookieWaiter::Result::kAuthError:
+      [self cancelSigninWithError:ConsistencyPromoSigninMediatorErrorGeneric];
       break;
-    }
-    case signin::PrimaryAccountChangeEvent::Type::kCleared:
-      // Sign out can be triggered from `onAccountsInCookieUpdated:error:`,
-      // if there is cookie fetch error.
-      return;
-    case signin::PrimaryAccountChangeEvent::Type::kNone:
-      return;
+    case AccountCookieWaiter::Result::kTimeout:
+      [self cancelSigninWithError:ConsistencyPromoSigninMediatorErrorTimeout];
+      break;
+    case AccountCookieWaiter::Result::kSuccess:
+      if (self.accessPoint ==
+          signin_metrics::AccessPoint::ACCESS_POINT_WEB_SIGNIN) {
+        self.userPrefService->SetInteger(prefs::kSigninWebSignDismissalCount,
+                                         0);
+      }
+      [self.delegate
+          consistencyPromoSigninMediatorSignInDone:self
+                                      withIdentity:self.signingIdentity];
+      break;
   }
 }
 
-- (void)onAccountsInCookieUpdated:
-            (const signin::AccountsInCookieJarInfo&)accountsInCookieJarInfo
-                            error:(const GoogleServiceAuthError&)error {
-  if (_authenticationFlow ||
-      _accessPoint != signin_metrics::AccessPoint::ACCESS_POINT_WEB_SIGNIN) {
-    // Ignore if `_authenticationFlow` is in progress since
-    // `onAccountsInCookieUpdated` may be called when data is cleared on
-    // sign-in.
-    // Ignore if the access point is different than WebSignin. Only the web
-    // sign-in needs to wait for the cookies.
-    return;
-  }
-  id<SystemIdentity> signingIdentity = self.signingIdentity;
-  if (!signingIdentity) {
-    // TODO(crbug.com/1204528): This case should not happen, but
-    // `onAccountsInCookieUpdated:error:` can be called twice when there is an
-    // error. Once this bug is fixed, this `if` should be replaced with
-    // `DCHECK(!self.alertCoordinator)`.
-    return;
-  }
-  DCHECK(!_authenticationFlow);
-  _cookieTimeoutClosure.Cancel();
-  if (error.state() == GoogleServiceAuthError::State::NONE &&
-      self.authenticationService->GetPrimaryIdentity(
-          signin::ConsentLevel::kSignin) &&
-      accountsInCookieJarInfo.signed_in_accounts.size() > 0) {
-    // Reset dismissal count.
-    if (self.accessPoint ==
-        signin_metrics::AccessPoint::ACCESS_POINT_WEB_SIGNIN) {
-      self.userPrefService->SetInteger(prefs::kSigninWebSignDismissalCount, 0);
-    }
-    [self.delegate consistencyPromoSigninMediatorSignInDone:self
-                                               withIdentity:signingIdentity];
-    return;
-  }
-  [self cancelSigninWithError:ConsistencyPromoSigninMediatorErrorGeneric];
-}
-
 @end
diff --git a/ios/chrome/browser/ui/authentication/signin/consistency_promo_signin/consistency_promo_signin_mediator_unittest.mm b/ios/chrome/browser/ui/authentication/signin/consistency_promo_signin/consistency_promo_signin_mediator_unittest.mm
index b9dd49a..f56e2261 100644
--- a/ios/chrome/browser/ui/authentication/signin/consistency_promo_signin/consistency_promo_signin_mediator_unittest.mm
+++ b/ios/chrome/browser/ui/authentication/signin/consistency_promo_signin/consistency_promo_signin_mediator_unittest.mm
@@ -23,6 +23,7 @@
 #import "ios/chrome/browser/signin/fake_system_identity_manager.h"
 #import "ios/chrome/browser/signin/identity_manager_factory.h"
 #import "ios/chrome/browser/ui/authentication/authentication_flow.h"
+#import "ios/chrome/browser/ui/authentication/signin/consistency_promo_signin/account_cookie_waiter.h"
 #import "ios/chrome/browser/ui/authentication/signin/signin_completion_info.h"
 #import "ios/chrome/test/ios_chrome_scoped_testing_local_state.h"
 #import "ios/web/public/test/web_task_environment.h"
@@ -78,13 +79,14 @@
             browser_state_.get());
     AuthenticationService* auth_service =
         AuthenticationServiceFactory::GetForBrowserState(browser_state_.get());
-    signin::IdentityManager* identity_manager =
-        IdentityManagerFactory::GetForBrowserState(browser_state_.get());
+    auto cookie_waiter = std::make_unique<AccountCookieWaiter>(
+        IdentityManagerFactory::GetForBrowserState(browser_state_.get()));
+    cookie_waiter_ = cookie_waiter.get();
     ConsistencyPromoSigninMediator* mediator =
         [[ConsistencyPromoSigninMediator alloc]
             initWithAccountManagerService:chrome_account_manager_service
                     authenticationService:auth_service
-                          identityManager:identity_manager
+                      accountCookieWaiter:std::move(cookie_waiter)
                           userPrefService:GetPrefService()
                               accessPoint:access_point];
     mediator.delegate = mediator_delegate_mock_;
@@ -96,26 +98,22 @@
     gaia::ListedAccount account;
     account.id =
         CoreAccountId::FromGaiaId(base::SysNSStringToUTF8(identity.gaiaID));
-    signin::AccountsInCookieJarInfo cookie_jar_info(
-        /*accounts_are_fresh_param=*/true,
-        /*signed_in_accounts_param=*/{account},
-        /*signed_out_accounts_param=*/{});
-    [(id<IdentityManagerObserverBridgeDelegate>)mediator
-        onAccountsInCookieUpdated:cookie_jar_info
-                            error:GoogleServiceAuthError(
-                                      GoogleServiceAuthError::State::NONE)];
+    cookie_waiter_->OnAccountsInCookieUpdated(
+        signin::AccountsInCookieJarInfo(
+            /*accounts_are_fresh_param=*/true,
+            /*signed_in_accounts_param=*/{account},
+            /*signed_out_accounts_param=*/{}),
+        GoogleServiceAuthError(GoogleServiceAuthError::State::NONE));
   }
 
   void SimulateCookieFetchError(ConsistencyPromoSigninMediator* mediator) {
-    signin::AccountsInCookieJarInfo cookie_jar_info(
-        /*accounts_are_fresh_param=*/false,
-        /*signed_in_accounts_param=*/{},
-        /*signed_out_accounts_param=*/{});
-    [(id<IdentityManagerObserverBridgeDelegate>)mediator
-        onAccountsInCookieUpdated:cookie_jar_info
-                            error:GoogleServiceAuthError(
-                                      GoogleServiceAuthError::State::
-                                          INVALID_GAIA_CREDENTIALS)];
+    cookie_waiter_->OnAccountsInCookieUpdated(
+        signin::AccountsInCookieJarInfo(
+            /*accounts_are_fresh_param=*/false,
+            /*signed_in_accounts_param=*/{},
+            /*signed_out_accounts_param=*/{}),
+        GoogleServiceAuthError(
+            GoogleServiceAuthError::State::INVALID_GAIA_CREDENTIALS));
   }
 
   void SimulateCookieFetchTimeout() {
@@ -148,6 +146,9 @@
       OCMStrictClassMock([AuthenticationFlow class]);
   id<ConsistencyPromoSigninMediatorDelegate> mediator_delegate_mock_ =
       OCMStrictProtocolMock(@protocol(ConsistencyPromoSigninMediatorDelegate));
+  // Owned by the mediator. This pointer must be reset before the mediator is
+  // disconnected, otherwise it will be dangling.
+  raw_ptr<AccountCookieWaiter> cookie_waiter_ = nullptr;
 
  private:
   // Needed for test browser state.
@@ -165,6 +166,7 @@
   ConsistencyPromoSigninMediator* mediator =
       BuildConsistencyPromoSigninMediator(
           signin_metrics::AccessPoint::ACCESS_POINT_WEB_SIGNIN);
+  cookie_waiter_ = nullptr;
   [mediator disconnectWithResult:SigninCoordinatorResultCanceledByUser];
 
   histogram_tester.ExpectTotalCount(
@@ -186,6 +188,7 @@
   ConsistencyPromoSigninMediator* mediator =
       BuildConsistencyPromoSigninMediator(
           signin_metrics::AccessPoint::ACCESS_POINT_WEB_SIGNIN);
+  cookie_waiter_ = nullptr;
   [mediator disconnectWithResult:SigninCoordinatorResultInterrupted];
 
   histogram_tester.ExpectTotalCount(
@@ -221,6 +224,7 @@
 
   SimulateCookieFetchSuccess(mediator, kDefaultIdentity);
 
+  cookie_waiter_ = nullptr;
   [mediator disconnectWithResult:SigninCoordinatorResultSuccess];
 
   EXPECT_EQ(0,
@@ -258,6 +262,7 @@
 
   SimulateCookieFetchSuccess(mediator, kNonDefaultIdentity);
 
+  cookie_waiter_ = nullptr;
   [mediator disconnectWithResult:SigninCoordinatorResultSuccess];
 
   histogram_tester.ExpectTotalCount(
@@ -298,6 +303,7 @@
 
   SimulateCookieFetchSuccess(mediator, new_identity);
 
+  cookie_waiter_ = nullptr;
   [mediator disconnectWithResult:SigninCoordinatorResultSuccess];
 
   histogram_tester.ExpectTotalCount(
@@ -343,6 +349,7 @@
 
   error_wait_loop->Run();
 
+  cookie_waiter_ = nullptr;
   [mediator disconnectWithResult:SigninCoordinatorResultCanceledByUser];
 
   histogram_tester.ExpectTotalCount(
@@ -392,6 +399,7 @@
 
   error_wait_loop->Run();
 
+  cookie_waiter_ = nullptr;
   [mediator disconnectWithResult:SigninCoordinatorResultCanceledByUser];
 
   histogram_tester.ExpectTotalCount(
@@ -440,6 +448,7 @@
 
   error_wait_loop->Run();
 
+  cookie_waiter_ = nullptr;
   [mediator disconnectWithResult:SigninCoordinatorResultCanceledByUser];
 
   histogram_tester.ExpectTotalCount(
@@ -477,6 +486,7 @@
                                   withIdentity:kDefaultIdentity]);
 
   [mediator signinWithAuthenticationFlow:authentication_flow_];
+  cookie_waiter_ = nullptr;
   [mediator disconnectWithResult:SigninCoordinatorResultSuccess];
 
   EXPECT_EQ(1,
diff --git a/ios/chrome/browser/ui/browser_view/browser_coordinator.mm b/ios/chrome/browser/ui/browser_view/browser_coordinator.mm
index 101be21..b5a0473 100644
--- a/ios/chrome/browser/ui/browser_view/browser_coordinator.mm
+++ b/ios/chrome/browser/ui/browser_view/browser_coordinator.mm
@@ -2061,6 +2061,7 @@
       initWithBaseViewController:self.viewController
                          browser:self.browser];
   pageInfoCoordinator.presentationProvider = self;
+  [self.pageInfoCoordinator stop];
   self.pageInfoCoordinator = pageInfoCoordinator;
   [self.pageInfoCoordinator start];
 }
diff --git a/ios/chrome/browser/ui/fullscreen/fullscreen_web_state_list_observer.mm b/ios/chrome/browser/ui/fullscreen/fullscreen_web_state_list_observer.mm
index 27797c3..fbc79dde 100644
--- a/ios/chrome/browser/ui/fullscreen/fullscreen_web_state_list_observer.mm
+++ b/ios/chrome/browser/ui/fullscreen/fullscreen_web_state_list_observer.mm
@@ -61,6 +61,7 @@
     WebStateList* web_state_list,
     const WebStateListChangeDetach& detach_change,
     const WebStateListStatus& status) {
+  DCHECK_EQ(web_state_list_, web_state_list);
   if (!detach_change.is_closing()) {
     return;
   }
@@ -72,6 +73,7 @@
     WebStateList* web_state_list,
     const WebStateListChange& change,
     const WebStateListStatus& status) {
+  DCHECK_EQ(web_state_list_, web_state_list);
   switch (change.type()) {
     case WebStateListChange::Type::kStatusOnly:
       // The activation is handled after this switch statement.
@@ -90,7 +92,7 @@
           change.As<WebStateListChangeReplace>();
       WebStateWasRemoved(replace_change.replaced_web_state());
       web::WebState* inserted_web_state = replace_change.inserted_web_state();
-      if (inserted_web_state == web_state_list->GetActiveWebState()) {
+      if (inserted_web_state == web_state_list_->GetActiveWebState()) {
         // Reset the model if the active WebState is replaced.
         model_->ResetForNavigation();
         WebStateWasActivated(inserted_web_state);
@@ -98,9 +100,15 @@
       break;
     }
     case WebStateListChange::Type::kInsert: {
-      DCHECK_EQ(web_state_list_, web_state_list);
       if (status.active_web_state_change()) {
-        controller_->ExitFullscreen();
+        // Exit the fullscreen. Disable the animation if a session restoration
+        // is in progress (see https://crbug.com/1485930 for details on the UI
+        // glitch that animation can cause).
+        if (web_state_list_->IsBatchInProgress()) {
+          controller_->ExitFullscreenWithoutAnimation();
+        } else {
+          controller_->ExitFullscreen();
+        }
       }
       break;
     }
diff --git a/ios/chrome/browser/ui/mini_map/mini_map_coordinator.mm b/ios/chrome/browser/ui/mini_map/mini_map_coordinator.mm
index d038bee4a..80a0dcc3 100644
--- a/ios/chrome/browser/ui/mini_map/mini_map_coordinator.mm
+++ b/ios/chrome/browser/ui/mini_map/mini_map_coordinator.mm
@@ -163,15 +163,17 @@
         [weakSelf mapDismissedRequestingURL:url];
       });
   [self.miniMapController
-      configureFooterWithText:l10n_util::GetNSString(
-                                  IDS_IOS_MINI_MAP_FOOTER_STRING)
-      leadingButtonText:l10n_util::GetNSString(IDS_IOS_CONTENT_SETTINGS_TITLE)
-      trailingButtonText:l10n_util::GetNSString(IDS_IOS_OPTIONS_REPORT_AN_ISSUE)
-      leadingButtonAction:^{
-        [weakSelf showContentSettingsFromMiniMap];
+      configureFooterWithTitle:l10n_util::GetNSString(
+                                   IDS_IOS_MINI_MAP_FOOTER_STRING)
+      leadingButtonTitle:l10n_util::GetNSString(IDS_IOS_CONTENT_SETTINGS_TITLE)
+      trailingButtonTitle:l10n_util::GetNSString(
+                              IDS_IOS_OPTIONS_REPORT_AN_ISSUE)
+      leadingButtonAction:^(UIViewController* viewController) {
+        [weakSelf
+            showContentSettingsFromMiniMapInViewController:viewController];
       }
-      trailingButtonAction:^{
-        [weakSelf reportAnIssueFromMiniMap];
+      trailingButtonAction:^(UIViewController* viewController) {
+        [weakSelf reportAnIssueFromMiniMapInViewController:viewController];
       }];
 
   if (showIPH) {
@@ -186,12 +188,16 @@
     NSAttributedString* attrSubtitle =
         AttributedStringFromStringWithLink(iphSubtitle, nil, linkAttributes);
 
-    [self.miniMapController configureIPHWithTitle:[[NSAttributedString alloc]
-                                                      initWithString:iphTitle]
-                                         subtitle:attrSubtitle
-                                    actionHandler:^(NSURL*) {
-                                      [weakSelf showContentSettingsFromMiniMap];
-                                    }];
+    [self.miniMapController
+        configureDisclaimerWithTitle:[[NSAttributedString alloc]
+                                         initWithString:iphTitle]
+                            subtitle:attrSubtitle
+                       actionHandler:^(NSURL*,
+                                       UIViewController* viewController) {
+                         [weakSelf
+                             showContentSettingsFromMiniMapInViewController:
+                                 viewController];
+                       }];
   }
   if (self.mode == MiniMapMode::kDirections) {
     [self.miniMapController
@@ -211,32 +217,22 @@
   }
 }
 
-- (void)showContentSettingsFromMiniMap {
+- (void)showContentSettingsFromMiniMapInViewController:
+    (UIViewController*)viewController {
   [self.mediator userOpenedSettingsFromMiniMap];
-  // The command is comming from the minimap which is currently presented.
-  // The contents settings screen must be presented on top of it.
-  UIViewController* presentingViewController = self.baseViewController;
-  while (presentingViewController.presentedViewController) {
-    presentingViewController = presentingViewController.presentedViewController;
-  }
   id<ApplicationSettingsCommands> settingsCommandHandler = HandlerForProtocol(
       self.browser->GetCommandDispatcher(), ApplicationSettingsCommands);
   [settingsCommandHandler
-      showContentsSettingsFromViewController:presentingViewController];
+      showContentsSettingsFromViewController:viewController];
 }
 
-- (void)reportAnIssueFromMiniMap {
+- (void)reportAnIssueFromMiniMapInViewController:
+    (UIViewController*)viewController {
   [self.mediator userReportedAnIssueFromMiniMap];
-  // The command is comming from the minimap which is currently presented.
-  // The contents settings screen must be presented on top of it.
-  UIViewController* presentingViewController = self.baseViewController;
-  while (presentingViewController.presentedViewController) {
-    presentingViewController = presentingViewController.presentedViewController;
-  }
   id<ApplicationCommands> applicationCommandHandler = HandlerForProtocol(
       self.browser->GetCommandDispatcher(), ApplicationCommands);
   [applicationCommandHandler
-      showReportAnIssueFromViewController:presentingViewController
+      showReportAnIssueFromViewController:viewController
                                    sender:UserFeedbackSender::MiniMap];
 }
 
diff --git a/ios/chrome/browser/ui/mini_map/mini_map_coordinator_unittest.mm b/ios/chrome/browser/ui/mini_map/mini_map_coordinator_unittest.mm
index a28681f..504adf8 100644
--- a/ios/chrome/browser/ui/mini_map/mini_map_coordinator_unittest.mm
+++ b/ios/chrome/browser/ui/mini_map/mini_map_coordinator_unittest.mm
@@ -138,11 +138,11 @@
   id mini_map_controller = OCMStrictProtocolMock(@protocol(MiniMapController));
   factory_.controller = mini_map_controller;
 
-  OCMExpect([mini_map_controller configureFooterWithText:[OCMArg any]
-                                       leadingButtonText:[OCMArg any]
-                                      trailingButtonText:[OCMArg any]
-                                     leadingButtonAction:[OCMArg any]
-                                    trailingButtonAction:[OCMArg any]]);
+  OCMExpect([mini_map_controller configureFooterWithTitle:[OCMArg any]
+                                       leadingButtonTitle:[OCMArg any]
+                                      trailingButtonTitle:[OCMArg any]
+                                      leadingButtonAction:[OCMArg any]
+                                     trailingButtonAction:[OCMArg any]]);
 
   OCMExpect([mini_map_controller
       presentMapsWithPresentingViewController:[OCMArg any]]);
@@ -155,11 +155,11 @@
   id mini_map_controller = OCMStrictProtocolMock(@protocol(MiniMapController));
   factory_.controller = mini_map_controller;
 
-  OCMExpect([mini_map_controller configureFooterWithText:[OCMArg any]
-                                       leadingButtonText:[OCMArg any]
-                                      trailingButtonText:[OCMArg any]
-                                     leadingButtonAction:[OCMArg any]
-                                    trailingButtonAction:[OCMArg any]]);
+  OCMExpect([mini_map_controller configureFooterWithTitle:[OCMArg any]
+                                       leadingButtonTitle:[OCMArg any]
+                                      trailingButtonTitle:[OCMArg any]
+                                      leadingButtonAction:[OCMArg any]
+                                     trailingButtonAction:[OCMArg any]]);
 
   OCMExpect([mini_map_controller
       presentDirectionsWithPresentingViewController:[OCMArg any]]);
@@ -178,11 +178,11 @@
   factory_.controller = mini_map_controller;
   SetupCoordinator(YES, MiniMapMode::kMap);
 
-  OCMExpect([mini_map_controller configureFooterWithText:[OCMArg any]
-                                       leadingButtonText:[OCMArg any]
-                                      trailingButtonText:[OCMArg any]
-                                     leadingButtonAction:[OCMArg any]
-                                    trailingButtonAction:[OCMArg any]]);
+  OCMExpect([mini_map_controller configureFooterWithTitle:[OCMArg any]
+                                       leadingButtonTitle:[OCMArg any]
+                                      trailingButtonTitle:[OCMArg any]
+                                      leadingButtonAction:[OCMArg any]
+                                     trailingButtonAction:[OCMArg any]]);
 
   __block BOOL called = NO;
   OCMExpect([mini_map_controller
@@ -210,11 +210,11 @@
   id mini_map_controller = OCMStrictProtocolMock(@protocol(MiniMapController));
   factory_.controller = mini_map_controller;
 
-  OCMExpect([mini_map_controller configureFooterWithText:[OCMArg any]
-                                       leadingButtonText:[OCMArg any]
-                                      trailingButtonText:[OCMArg any]
-                                     leadingButtonAction:[OCMArg any]
-                                    trailingButtonAction:[OCMArg any]]);
+  OCMExpect([mini_map_controller configureFooterWithTitle:[OCMArg any]
+                                       leadingButtonTitle:[OCMArg any]
+                                      trailingButtonTitle:[OCMArg any]
+                                      leadingButtonAction:[OCMArg any]
+                                     trailingButtonAction:[OCMArg any]]);
 
   OCMExpect([mini_map_controller
       presentMapsWithPresentingViewController:[OCMArg any]]);
@@ -236,15 +236,15 @@
   id mini_map_controller = OCMStrictProtocolMock(@protocol(MiniMapController));
   factory_.controller = mini_map_controller;
 
-  OCMExpect([mini_map_controller configureFooterWithText:[OCMArg any]
-                                       leadingButtonText:[OCMArg any]
-                                      trailingButtonText:[OCMArg any]
-                                     leadingButtonAction:[OCMArg any]
-                                    trailingButtonAction:[OCMArg any]]);
+  OCMExpect([mini_map_controller configureFooterWithTitle:[OCMArg any]
+                                       leadingButtonTitle:[OCMArg any]
+                                      trailingButtonTitle:[OCMArg any]
+                                      leadingButtonAction:[OCMArg any]
+                                     trailingButtonAction:[OCMArg any]]);
 
-  OCMExpect([mini_map_controller configureIPHWithTitle:[OCMArg any]
-                                              subtitle:[OCMArg any]
-                                         actionHandler:[OCMArg any]]);
+  OCMExpect([mini_map_controller configureDisclaimerWithTitle:[OCMArg any]
+                                                     subtitle:[OCMArg any]
+                                                actionHandler:[OCMArg any]]);
 
   OCMExpect([mini_map_controller
       presentMapsWithPresentingViewController:[OCMArg any]]);
@@ -268,11 +268,11 @@
   id mini_map_controller = OCMStrictProtocolMock(@protocol(MiniMapController));
   factory_.controller = mini_map_controller;
 
-  OCMExpect([mini_map_controller configureFooterWithText:[OCMArg any]
-                                       leadingButtonText:[OCMArg any]
-                                      trailingButtonText:[OCMArg any]
-                                     leadingButtonAction:[OCMArg any]
-                                    trailingButtonAction:[OCMArg any]]);
+  OCMExpect([mini_map_controller configureFooterWithTitle:[OCMArg any]
+                                       leadingButtonTitle:[OCMArg any]
+                                      trailingButtonTitle:[OCMArg any]
+                                      leadingButtonAction:[OCMArg any]
+                                     trailingButtonAction:[OCMArg any]]);
 
   OCMExpect([mini_map_controller
       presentMapsWithPresentingViewController:[OCMArg any]]);
@@ -291,11 +291,11 @@
   id mini_map_controller = OCMStrictProtocolMock(@protocol(MiniMapController));
   factory_.controller = mini_map_controller;
 
-  OCMExpect([mini_map_controller configureFooterWithText:[OCMArg any]
-                                       leadingButtonText:[OCMArg any]
-                                      trailingButtonText:[OCMArg any]
-                                     leadingButtonAction:[OCMArg any]
-                                    trailingButtonAction:[OCMArg any]]);
+  OCMExpect([mini_map_controller configureFooterWithTitle:[OCMArg any]
+                                       leadingButtonTitle:[OCMArg any]
+                                      trailingButtonTitle:[OCMArg any]
+                                      leadingButtonAction:[OCMArg any]
+                                     trailingButtonAction:[OCMArg any]]);
 
   OCMExpect([mini_map_controller
       presentMapsWithPresentingViewController:[OCMArg any]]);
@@ -319,11 +319,11 @@
   id mini_map_controller = OCMStrictProtocolMock(@protocol(MiniMapController));
   factory_.controller = mini_map_controller;
 
-  OCMExpect([mini_map_controller configureFooterWithText:[OCMArg any]
-                                       leadingButtonText:[OCMArg any]
-                                      trailingButtonText:[OCMArg any]
-                                     leadingButtonAction:[OCMArg any]
-                                    trailingButtonAction:[OCMArg any]]);
+  OCMExpect([mini_map_controller configureFooterWithTitle:[OCMArg any]
+                                       leadingButtonTitle:[OCMArg any]
+                                      trailingButtonTitle:[OCMArg any]
+                                      leadingButtonAction:[OCMArg any]
+                                     trailingButtonAction:[OCMArg any]]);
 
   OCMExpect([mini_map_controller
       presentMapsWithPresentingViewController:[OCMArg any]]);
@@ -352,19 +352,19 @@
   __block ProceduralBlock right_button_block;
 
   OCMExpect([mini_map_controller
-      configureFooterWithText:[OCMArg any]
-            leadingButtonText:[OCMArg any]
-           trailingButtonText:[OCMArg any]
-          leadingButtonAction:[OCMArg
-                                  checkWithBlock:^BOOL(ProceduralBlock block) {
-                                    left_button_block = block;
-                                    return YES;
-                                  }]
-         trailingButtonAction:[OCMArg
-                                  checkWithBlock:^BOOL(ProceduralBlock block) {
-                                    right_button_block = block;
-                                    return YES;
-                                  }]]);
+      configureFooterWithTitle:[OCMArg any]
+            leadingButtonTitle:[OCMArg any]
+           trailingButtonTitle:[OCMArg any]
+           leadingButtonAction:[OCMArg
+                                   checkWithBlock:^BOOL(ProceduralBlock block) {
+                                     left_button_block = block;
+                                     return YES;
+                                   }]
+          trailingButtonAction:[OCMArg
+                                   checkWithBlock:^BOOL(ProceduralBlock block) {
+                                     right_button_block = block;
+                                     return YES;
+                                   }]]);
 
   OCMExpect([mini_map_controller
       presentMapsWithPresentingViewController:[OCMArg any]]);
diff --git a/ios/chrome/browser/ui/passwords/bottom_sheet/BUILD.gn b/ios/chrome/browser/ui/passwords/bottom_sheet/BUILD.gn
index b9c70a4..7485253 100644
--- a/ios/chrome/browser/ui/passwords/bottom_sheet/BUILD.gn
+++ b/ios/chrome/browser/ui/passwords/bottom_sheet/BUILD.gn
@@ -106,6 +106,7 @@
     "//ios/chrome/browser/ui/settings/password:eg_test_support+eg2",
     "//ios/chrome/browser/ui/settings/password:features",
     "//ios/chrome/browser/ui/settings/password:password_constants",
+    "//ios/chrome/test:eg_test_support+eg2",
     "//ios/chrome/test/earl_grey:eg_test_support+eg2",
     "//ios/testing/earl_grey:eg_test_support+eg2",
     "//net",
diff --git a/ios/chrome/browser/ui/passwords/bottom_sheet/password_suggestion_bottom_sheet_egtest.mm b/ios/chrome/browser/ui/passwords/bottom_sheet/password_suggestion_bottom_sheet_egtest.mm
index 3a675bc..f993afc 100644
--- a/ios/chrome/browser/ui/passwords/bottom_sheet/password_suggestion_bottom_sheet_egtest.mm
+++ b/ios/chrome/browser/ui/passwords/bottom_sheet/password_suggestion_bottom_sheet_egtest.mm
@@ -22,12 +22,14 @@
 #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/scoped_eg_traits_overrider.h"
 #import "ios/testing/earl_grey/earl_grey_test.h"
 #import "ios/testing/earl_grey/matchers.h"
 #import "net/base/mac/url_conversions.h"
 #import "net/test/embedded_test_server/default_handlers.h"
 #import "ui/base/l10n/l10n_util.h"
 
+static constexpr char kFormUsername[] = "un";
 static constexpr char kFormPassword[] = "pw";
 
 namespace {
@@ -44,6 +46,19 @@
   return [waitForKeyboard waitWithTimeout:kWaitForActionTimeout.InSecondsF()];
 }
 
+// Get the top presented view controller, in this case the bottom sheet view
+// controller.
+UIViewController* TopPresentedViewController() {
+  UIViewController* topController =
+      chrome_test_util::GetAnyKeyWindow().rootViewController;
+  for (UIViewController* controller = [topController presentedViewController];
+       controller && ![controller isBeingDismissed];
+       controller = [controller presentedViewController]) {
+    topController = controller;
+  }
+  return topController;
+}
+
 id<GREYMatcher> ButtonWithAccessibilityID(NSString* id) {
   return grey_allOf(grey_accessibilityID(id),
                     grey_accessibilityTrait(UIAccessibilityTraitButton), nil);
@@ -116,6 +131,20 @@
                     grey_userInteractionEnabled(), nil);
 }
 
+- (void)verifyPasswordFieldsHaveBeenFilled:(NSString*)username {
+  // Verify that the username has been filled.
+  NSString* condition = [NSString
+      stringWithFormat:@"window.document.getElementById('%s').value === '%@'",
+                       kFormUsername, username];
+  [ChromeEarlGrey waitForJavaScriptCondition:condition];
+
+  // Verify that the password field is not empty.
+  NSString* filledFieldCondition =
+      [NSString stringWithFormat:@"document.getElementById('%s').value !== ''",
+                                 kFormPassword];
+  [ChromeEarlGrey waitForJavaScriptCondition:filledFieldCondition];
+}
+
 #pragma mark - Tests
 
 - (void)testOpenPasswordBottomSheetUsePassword {
@@ -142,6 +171,8 @@
       selectElementWithMatcher:grey_accessibilityLabel(l10n_util::GetNSString(
                                    IDS_IOS_PASSWORD_BOTTOM_SHEET_USE_PASSWORD))]
       performAction:grey_tap()];
+
+  [self verifyPasswordFieldsHaveBeenFilled:@"user"];
 }
 
 // Notes:
@@ -176,6 +207,8 @@
                    grey_accessibilityLabel(l10n_util::GetNSString(
                        IDS_IOS_PASSWORD_BOTTOM_SHEET_USE_PASSWORD))]
         performAction:grey_tap()];
+
+    [self verifyPasswordFieldsHaveBeenFilled:@"user"];
   }
 }
 
@@ -505,6 +538,8 @@
                                    IDS_IOS_PASSWORD_BOTTOM_SHEET_USE_PASSWORD))]
       performAction:grey_tap()];
 
+  [self verifyPasswordFieldsHaveBeenFilled:@"user2"];
+
   GREYWaitForAppToIdle(@"App failed to idle");
 }
 
@@ -562,6 +597,8 @@
       selectElementWithMatcher:grey_accessibilityLabel(l10n_util::GetNSString(
                                    IDS_IOS_PASSWORD_BOTTOM_SHEET_USE_PASSWORD))]
       performAction:grey_tap()];
+
+  [self verifyPasswordFieldsHaveBeenFilled:@"user9"];
 }
 
 - (void)testPasswordBottomSheetDismiss3TimesNotShownAnymore {
@@ -675,4 +712,60 @@
   WaitForKeyboardToAppear();
 }
 
+// Tests that the Password Bottom Sheet appears when tapping on a password
+// related field and that the buttons are still visible after we chang the trait
+// collection to larger content size.
+- (void)testOpenPasswordBottomSheetUsePasswordAfterTraitCollectionChange {
+  if (@available(iOS 17.0, *)) {
+    [PasswordSuggestionBottomSheetAppInterface setUpMockReauthenticationModule];
+    [PasswordSuggestionBottomSheetAppInterface
+        mockReauthenticationModuleExpectedResult:ReauthenticationResult::
+                                                     kSuccess];
+    [PasswordManagerAppInterface
+        storeCredentialWithUsername:@"user"
+                           password:@"password"
+                                URL:net::NSURLWithGURL(self.testServer->GetURL(
+                                        "/simple_login_form.html"))];
+    [SigninEarlGreyUI signinWithFakeIdentity:[FakeSystemIdentity fakeIdentity1]
+                                  enableSync:NO];
+    [self loadLoginPage];
+
+    [[EarlGrey selectElementWithMatcher:chrome_test_util::WebViewMatcher()]
+        performAction:chrome_test_util::TapWebElementWithId(kFormPassword)];
+
+    [ChromeEarlGrey
+        waitForUIElementToAppearWithMatcher:grey_accessibilityID(@"user")];
+
+    // Change trait collection to use accessibility large content size.
+    ScopedTraitOverrider overrider(TopPresentedViewController());
+    overrider.SetContentSizeCategory(UIContentSizeCategoryAccessibilityLarge);
+
+    [ChromeEarlGreyUI waitForAppToIdle];
+
+    // Verify that the "Use Password" and "No Thanks" buttons are still visible.
+    [[EarlGrey selectElementWithMatcher:
+                   grey_accessibilityLabel(l10n_util::GetNSString(
+                       IDS_IOS_PASSWORD_BOTTOM_SHEET_USE_PASSWORD))]
+        assertWithMatcher:grey_notNil()];
+
+    [[EarlGrey
+        selectElementWithMatcher:grey_accessibilityLabel(l10n_util::GetNSString(
+                                     IDS_IOS_PASSWORD_BOTTOM_SHEET_NO_THANKS))]
+        assertWithMatcher:grey_notNil()];
+
+    // Verify the credit card tablew view is still visible.
+    [[EarlGrey selectElementWithMatcher:grey_accessibilityID(@"user")]
+        assertWithMatcher:grey_notNil()];
+
+    [[EarlGrey selectElementWithMatcher:
+                   grey_accessibilityLabel(l10n_util::GetNSString(
+                       IDS_IOS_PASSWORD_BOTTOM_SHEET_USE_PASSWORD))]
+        performAction:grey_tap()];
+
+    [self verifyPasswordFieldsHaveBeenFilled:@"user"];
+  } else {
+    EARL_GREY_TEST_SKIPPED(@"Not available for under iOS 17.");
+  }
+}
+
 @end
diff --git a/ios/chrome/browser/ui/settings/BUILD.gn b/ios/chrome/browser/ui/settings/BUILD.gn
index 17e66c87..d5de066 100644
--- a/ios/chrome/browser/ui/settings/BUILD.gn
+++ b/ios/chrome/browser/ui/settings/BUILD.gn
@@ -303,12 +303,15 @@
     "//base/test:test_support",
     "//components/autofill/core/common",
     "//components/content_settings/core/browser",
+    "//components/country_codes",
     "//components/handoff",
     "//components/language/core/browser",
     "//components/password_manager/core/browser:test_support",
     "//components/password_manager/core/common",
     "//components/policy:generated",
+    "//components/policy/core/common",
     "//components/policy/core/common:common_constants",
+    "//components/policy/core/common:test_support",
     "//components/pref_registry",
     "//components/prefs:test_support",
     "//components/search_engines",
@@ -327,6 +330,7 @@
     "//ios/chrome/browser/history",
     "//ios/chrome/browser/passwords",
     "//ios/chrome/browser/policy:policy_util",
+    "//ios/chrome/browser/policy:test_support",
     "//ios/chrome/browser/prerender:prerender_pref",
     "//ios/chrome/browser/search_engines",
     "//ios/chrome/browser/shared/coordinator/scene:scene_state_browser_agent",
diff --git a/ios/chrome/browser/ui/settings/password/password_details/BUILD.gn b/ios/chrome/browser/ui/settings/password/password_details/BUILD.gn
index 13cf1d1..306fc11 100644
--- a/ios/chrome/browser/ui/settings/password/password_details/BUILD.gn
+++ b/ios/chrome/browser/ui/settings/password/password_details/BUILD.gn
@@ -23,6 +23,7 @@
     "//components/autofill/core/common",
     "//components/password_manager/core/browser/form_parsing",
     "//components/password_manager/core/common:features",
+    "//components/prefs",
     "//components/strings",
     "//components/sync/base:features",
     "//components/url_formatter",
@@ -35,6 +36,7 @@
     "//ios/chrome/browser/shared/coordinator/chrome_coordinator",
     "//ios/chrome/browser/shared/model/browser",
     "//ios/chrome/browser/shared/model/browser_state",
+    "//ios/chrome/browser/shared/model/prefs:pref_names",
     "//ios/chrome/browser/shared/model/web_state_list",
     "//ios/chrome/browser/shared/public/commands",
     "//ios/chrome/browser/shared/public/features",
diff --git a/ios/chrome/browser/ui/settings/password/password_details/password_details_coordinator.mm b/ios/chrome/browser/ui/settings/password/password_details/password_details_coordinator.mm
index 82af3b4..7ee5d296 100644
--- a/ios/chrome/browser/ui/settings/password/password_details/password_details_coordinator.mm
+++ b/ios/chrome/browser/ui/settings/password/password_details/password_details_coordinator.mm
@@ -14,6 +14,7 @@
 #import "components/password_manager/core/browser/ui/affiliated_group.h"
 #import "components/password_manager/core/browser/ui/credential_ui_entry.h"
 #import "components/password_manager/core/common/password_manager_features.h"
+#import "components/prefs/pref_service.h"
 #import "components/strings/grit/components_strings.h"
 #import "ios/chrome/browser/credential_provider_promo/features.h"
 #import "ios/chrome/browser/passwords/ios_chrome_password_check_manager.h"
@@ -25,6 +26,7 @@
 #import "ios/chrome/browser/shared/model/browser/browser_list.h"
 #import "ios/chrome/browser/shared/model/browser/browser_list_factory.h"
 #import "ios/chrome/browser/shared/model/browser_state/chrome_browser_state.h"
+#import "ios/chrome/browser/shared/model/prefs/pref_names.h"
 #import "ios/chrome/browser/shared/model/web_state_list/web_state_list.h"
 #import "ios/chrome/browser/shared/public/commands/application_commands.h"
 #import "ios/chrome/browser/shared/public/commands/command_dispatcher.h"
@@ -43,6 +45,8 @@
 #import "ios/chrome/browser/ui/settings/password/password_manager_ui_features.h"
 #import "ios/chrome/browser/ui/settings/password/password_sharing/password_sharing_coordinator.h"
 #import "ios/chrome/browser/ui/settings/password/password_sharing/password_sharing_coordinator_delegate.h"
+#import "ios/chrome/browser/ui/settings/password/password_sharing/password_sharing_first_run_coordinator.h"
+#import "ios/chrome/browser/ui/settings/password/password_sharing/password_sharing_first_run_coordinator_delegate.h"
 #import "ios/chrome/browser/ui/settings/password/reauthentication/reauthentication_coordinator.h"
 #import "ios/chrome/browser/ui/settings/utils/password_utils.h"
 #import "ios/chrome/common/ui/reauthentication/reauthentication_module.h"
@@ -52,10 +56,12 @@
 
 using password_manager::features::IsAuthOnEntryV2Enabled;
 
-@interface PasswordDetailsCoordinator () <PasswordDetailsHandler,
-                                          PasswordDetailsMediatorDelegate,
-                                          ReauthenticationCoordinatorDelegate,
-                                          PasswordSharingCoordinatorDelegate> {
+@interface PasswordDetailsCoordinator () <
+    PasswordDetailsHandler,
+    PasswordDetailsMediatorDelegate,
+    ReauthenticationCoordinatorDelegate,
+    PasswordSharingCoordinatorDelegate,
+    PasswordSharingFirstRunCoordinatorDelegate> {
   password_manager::AffiliatedGroup _affiliatedGroup;
   password_manager::CredentialUIEntry _credential;
 
@@ -84,6 +90,10 @@
 @property(nonatomic, strong)
     PasswordSharingCoordinator* passwordSharingCoordinator;
 
+// Coordinator for the password sharing first run flow.
+@property(nonatomic, strong)
+    PasswordSharingFirstRunCoordinator* passwordSharingFirstRunCoordinator;
+
 // Coordinator for blocking password details until Local Authentication is
 // successful.
 @property(nonatomic, strong) ReauthenticationCoordinator* reauthCoordinator;
@@ -351,14 +361,18 @@
 }
 
 - (void)onShareButtonPressed {
-  [self.passwordSharingCoordinator stop];
-  self.passwordSharingCoordinator = [[PasswordSharingCoordinator alloc]
-      initWithBaseViewController:self.viewController
-                         browser:self.browser
-                     credentials:self.mediator.credentials
-         savedPasswordsPresenter:self.mediator.savedPasswordsPresenter];
-  self.passwordSharingCoordinator.delegate = self;
-  [self.passwordSharingCoordinator start];
+  if (self.browser->GetBrowserState()->GetPrefs()->GetBoolean(
+          prefs::kPasswordSharingFlowHasBeenEntered)) {
+    [self startPasswordSharingCoordinator];
+  } else {
+    [self.passwordSharingFirstRunCoordinator stop];
+    self.passwordSharingFirstRunCoordinator =
+        [[PasswordSharingFirstRunCoordinator alloc]
+            initWithBaseViewController:self.baseViewController
+                               browser:self.browser];
+    self.passwordSharingFirstRunCoordinator.delegate = self;
+    [self.passwordSharingFirstRunCoordinator start];
+  }
 }
 
 #pragma mark - PasswordDetailsMediatorDelegate
@@ -437,6 +451,27 @@
   }
 }
 
+#pragma mark - PasswordSharingFirstRunCoordinatorDelegate
+
+- (void)passwordSharingFirstRunCoordinatorDidAccept:
+    (PasswordSharingFirstRunCoordinator*)coordinator {
+  self.browser->GetBrowserState()->GetPrefs()->SetBoolean(
+      prefs::kPasswordSharingFlowHasBeenEntered, true);
+
+  if (self.passwordSharingFirstRunCoordinator == coordinator) {
+    [self stopPasswordSharingFirstRunCoordinatorWithCompletion:^{
+      [self startPasswordSharingCoordinator];
+    }];
+  }
+}
+
+- (void)passwordSharingFirstRunCoordinatorWasDismissed:
+    (PasswordSharingFirstRunCoordinator*)coordinator {
+  if (self.passwordSharingFirstRunCoordinator == coordinator) {
+    [self stopPasswordSharingFirstRunCoordinatorWithCompletion:nil];
+  }
+}
+
 #pragma mark - Private
 
 - (void)dismissActionSheetCoordinator {
@@ -469,6 +504,27 @@
   [_reauthCoordinator start];
 }
 
+// Starts the main coordinator for the password sharing flow.
+- (void)startPasswordSharingCoordinator {
+  [self.passwordSharingCoordinator stop];
+  self.passwordSharingCoordinator = [[PasswordSharingCoordinator alloc]
+      initWithBaseViewController:self.viewController
+                         browser:self.browser
+                     credentials:self.mediator.credentials
+         savedPasswordsPresenter:self.mediator.savedPasswordsPresenter];
+  self.passwordSharingCoordinator.delegate = self;
+  [self.passwordSharingCoordinator start];
+}
+
+// Stops the first run coordinator for the password sharing flow and calls
+// `completion` on its vc dismissal.
+- (void)stopPasswordSharingFirstRunCoordinatorWithCompletion:
+    (ProceduralBlock)completion {
+  [self.passwordSharingFirstRunCoordinator stopWithCompletion:completion];
+  self.passwordSharingFirstRunCoordinator.delegate = nil;
+  self.passwordSharingFirstRunCoordinator = nil;
+}
+
 // Whether Local Authentication should be required before displaying the
 // contents of Password Details.
 - (BOOL)shouldRequireAuthOnStart {
diff --git a/ios/chrome/browser/ui/settings/password/password_manager_egtest.mm b/ios/chrome/browser/ui/settings/password/password_manager_egtest.mm
index 8c722cb5..83e49747 100644
--- a/ios/chrome/browser/ui/settings/password/password_manager_egtest.mm
+++ b/ios/chrome/browser/ui/settings/password/password_manager_egtest.mm
@@ -8,10 +8,12 @@
 
 #import "base/functional/callback.h"
 #import "base/ios/ios_util.h"
+#import "base/strings/stringprintf.h"
 #import "base/strings/sys_string_conversions.h"
 #import "base/test/ios/wait_util.h"
 #import "base/test/scoped_feature_list.h"
 #import "base/time/time.h"
+#import "components/feature_engagement/public/feature_constants.h"
 #import "components/password_manager/core/common/password_manager_constants.h"
 #import "components/password_manager/core/common/password_manager_features.h"
 #import "components/policy/policy_constants.h"
@@ -301,6 +303,32 @@
       l10n_util::GetNSString(IDS_IOS_SETTINGS_SET_UP_SCREENLOCK_TITLE));
 }
 
+// Returns matcher for the Password Manager widget promo.
+id<GREYMatcher> PasswordManagerWidgetPromo() {
+  return grey_accessibilityID(kWidgetPromoId);
+}
+
+// Returns matcher for the Password Manager widget promo's close button.
+id<GREYMatcher> PasswordManagerWidgetPromoCloseButton() {
+  return grey_accessibilityID(kWidgetPromoCloseButtonId);
+}
+
+// Returns matcher for the Password Manager widget promo's more info button.
+id<GREYMatcher> PasswordManagerWidgetPromoMoreInfoButton(bool enabled = YES) {
+  if (enabled) {
+    return grey_allOf(
+        ButtonWithAccessibilityLabelId(
+            IDS_IOS_PASSWORD_MANAGER_WIDGET_PROMO_BUTTON_TITLE),
+        grey_not(grey_accessibilityTrait(UIAccessibilityTraitNotEnabled)),
+        nullptr);
+  }
+
+  return grey_allOf(ButtonWithAccessibilityLabelId(
+                        IDS_IOS_PASSWORD_MANAGER_WIDGET_PROMO_BUTTON_TITLE),
+                    grey_accessibilityTrait(UIAccessibilityTraitNotEnabled),
+                    nullptr);
+}
+
 // Saves two example forms in the store.
 void SaveExamplePasswordForms() {
   SavePasswordForm(/*password=*/@"password1",
@@ -619,6 +647,17 @@
         syncer::kReplaceSyncPromosWithSignInPromos);
   }
 
+  if ([self isRunningTest:@selector(testClosingPasswordManagerWidgetPromo)] ||
+      [self isRunningTest:@selector
+            (testOpeningPasswordManagerWidgetPromoInstruction)] ||
+      [self
+          isRunningTest:@selector(testPasswordManagerWidgetPromoInEditMode)]) {
+    config.additional_args.push_back(
+        base::StringPrintf("--enable-features=%s:chosen_feature/"
+                           "IPH_iOSPromoPasswordManagerWidget",
+                           feature_engagement::kIPHDemoMode.name));
+  }
+
   return config;
 }
 
@@ -3450,6 +3489,71 @@
       assertWithMatcher:grey_userInteractionEnabled()];
 }
 
+// Tests that tapping the close button of the Password Manager widget promo
+// removes the promo from the table view.
+- (void)testClosingPasswordManagerWidgetPromo {
+  // Add a saved password to not get the Password Manager's empty state.
+  SavePasswordForm();
+
+  OpenPasswordManager();
+
+  // The Password Manager widget promo should be visible.
+  [[EarlGrey selectElementWithMatcher:PasswordManagerWidgetPromo()]
+      assertWithMatcher:grey_sufficientlyVisible()];
+
+  // Tap the promo's close button.
+  [[EarlGrey selectElementWithMatcher:PasswordManagerWidgetPromoCloseButton()]
+      performAction:grey_tap()];
+
+  // The Password Manager widget promo should now be gone.
+  [[EarlGrey selectElementWithMatcher:PasswordManagerWidgetPromo()]
+      assertWithMatcher:grey_notVisible()];
+}
+
+// Tests that tapping the more info button of the Password Manager widget
+// promo displays the instructions on how to install the widget.
+- (void)testOpeningPasswordManagerWidgetPromoInstruction {
+  // Add a saved password to not get the Password Manager's empty state.
+  SavePasswordForm();
+
+  OpenPasswordManager();
+
+  // The Password Manager widget promo should be visible.
+  [[EarlGrey selectElementWithMatcher:PasswordManagerWidgetPromo()]
+      assertWithMatcher:grey_sufficientlyVisible()];
+
+  // Tap the promo's more info button.
+  [[EarlGrey
+      selectElementWithMatcher:PasswordManagerWidgetPromoMoreInfoButton()]
+      performAction:grey_tap()];
+
+  // TODO(crbug.com/1463033): Validate that the instruction view is shown.
+}
+
+// Tests that the more info and close buttons of the Password Manager widget
+// promo are disabled when the Password Manager is in edit mode.
+- (void)testPasswordManagerWidgetPromoInEditMode {
+  // Add a saved password to not get the Password Manager's empty state.
+  SavePasswordForm();
+
+  OpenPasswordManager();
+
+  TapNavigationBarEditButton();
+
+  // The Password Manager widget promo should be visible.
+  [[EarlGrey selectElementWithMatcher:PasswordManagerWidgetPromo()]
+      assertWithMatcher:grey_sufficientlyVisible()];
+
+  // The close button should be disabled.
+  [[EarlGrey selectElementWithMatcher:PasswordManagerWidgetPromoCloseButton()]
+      assertWithMatcher:grey_not(grey_enabled())];
+
+  // The more info button should be disabled.
+  [[EarlGrey selectElementWithMatcher:PasswordManagerWidgetPromoMoreInfoButton(
+                                          /*enabled=*/false)]
+      assertWithMatcher:grey_not(grey_enabled())];
+}
+
 @end
 
 // Rerun all the tests in this file but with kIOSPasswordCheckup disabled.
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 d957adb7..45fce62 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
@@ -702,6 +702,7 @@
       l10n_util::GetNSString(IDS_IOS_PASSWORD_MANAGER_WIDGET_PROMO_TEXT);
   _widgetPromoItem.moreInfoButtonTitle = l10n_util::GetNSString(
       IDS_IOS_PASSWORD_MANAGER_WIDGET_PROMO_BUTTON_TITLE);
+  _widgetPromoItem.accessibilityIdentifier = kWidgetPromoId;
   return _widgetPromoItem;
 }
 
@@ -822,6 +823,16 @@
   [self presentViewController:errorInfoPopover animated:YES completion:nil];
 }
 
+- (void)didTapWidgetPromoCloseButton {
+  [self clearSectionWithIdentifier:SectionIdentifierWidgetPromo
+                  withRowAnimation:UITableViewRowAnimationFade];
+  [self.delegate notifyFETOfPasswordManagerWidgetPromoDismissal];
+}
+
+- (void)didTapWidgetPromoMoreInfoButton {
+  [self.presentationDelegate showPasswordManagerWidgetPromoInstructions];
+}
+
 #pragma mark - PasswordsConsumer
 
 - (void)setPasswordCheckUIState:(PasswordCheckUIState)state
@@ -956,6 +967,7 @@
 - (void)setShouldShowPasswordManagerWidgetPromo:
     (BOOL)shouldShowPasswordManagerWidgetPromo {
   _shouldShowPasswordManagerWidgetPromo = shouldShowPasswordManagerWidgetPromo;
+
   // Reload data to display the promo. No to need to reload before the view is
   // loaded, as loading the view triggers a data reload.
   if (self.viewLoaded) {
@@ -2119,11 +2131,27 @@
   [self deleteItemAtIndexPaths:@[ indexPath ]];
 }
 
+// TODO(crbug.com/1486507): Stop downcasting cells to configure them.
 - (UITableViewCell*)tableView:(UITableView*)tableView
         cellForRowAtIndexPath:(NSIndexPath*)indexPath {
   UITableViewCell* cell = [super tableView:tableView
                      cellForRowAtIndexPath:indexPath];
   switch ([self.tableViewModel itemTypeForIndexPath:indexPath]) {
+    case ItemTypeWidgetPromo: {
+      InlinePromoCell* widgetPromoCell =
+          base::apple::ObjCCastStrict<InlinePromoCell>(cell);
+      [widgetPromoCell.closeButton
+                 addTarget:self
+                    action:@selector(didTapWidgetPromoCloseButton)
+          forControlEvents:UIControlEventTouchUpInside];
+      [widgetPromoCell.moreInfoButton
+                 addTarget:self
+                    action:@selector(didTapWidgetPromoMoreInfoButton)
+          forControlEvents:UIControlEventTouchUpInside];
+      widgetPromoCell.closeButton.accessibilityIdentifier =
+          kWidgetPromoCloseButtonId;
+      break;
+    }
     case ItemTypePasswordCheckStatus: {
       SettingsCheckCell* passwordCheckCell =
           base::apple::ObjCCastStrict<SettingsCheckCell>(cell);
diff --git a/ios/chrome/browser/ui/settings/password/password_manager_view_controller_delegate.h b/ios/chrome/browser/ui/settings/password/password_manager_view_controller_delegate.h
index c4e57a62..34a9c53 100644
--- a/ios/chrome/browser/ui/settings/password/password_manager_view_controller_delegate.h
+++ b/ios/chrome/browser/ui/settings/password/password_manager_view_controller_delegate.h
@@ -68,6 +68,10 @@
 - (BOOL)shouldShowLocalOnlyIconForGroup:
     (const password_manager::AffiliatedGroup&)group;
 
+// Tells the delegate that the user has dismissed the Password Manager widget
+// promo. Used to notify the Feature Engagement Tracker of the dismissal.
+- (void)notifyFETOfPasswordManagerWidgetPromoDismissal;
+
 @end
 
 #endif  // IOS_CHROME_BROWSER_UI_SETTINGS_PASSWORD_PASSWORD_MANAGER_VIEW_CONTROLLER_DELEGATE_H_
diff --git a/ios/chrome/browser/ui/settings/password/password_manager_view_controller_presentation_delegate.h b/ios/chrome/browser/ui/settings/password/password_manager_view_controller_presentation_delegate.h
index 8ca4a20..f23af546 100644
--- a/ios/chrome/browser/ui/settings/password/password_manager_view_controller_presentation_delegate.h
+++ b/ios/chrome/browser/ui/settings/password/password_manager_view_controller_presentation_delegate.h
@@ -17,6 +17,11 @@
 // presented.
 - (void)showPasswordSettingsSubmenu;
 
+// Called when the user has tapped the "Show Me How" button of the Password
+// Manager widget promo. This method presents the instruction view associated
+// with that promo.
+- (void)showPasswordManagerWidgetPromoInstructions;
+
 @end
 
 #endif  // IOS_CHROME_BROWSER_UI_SETTINGS_PASSWORD_PASSWORD_MANAGER_VIEW_CONTROLLER_PRESENTATION_DELEGATE_H_
diff --git a/ios/chrome/browser/ui/settings/password/password_sharing/BUILD.gn b/ios/chrome/browser/ui/settings/password/password_sharing/BUILD.gn
index 1f0dd3f..41b3bb9 100644
--- a/ios/chrome/browser/ui/settings/password/password_sharing/BUILD.gn
+++ b/ios/chrome/browser/ui/settings/password/password_sharing/BUILD.gn
@@ -20,6 +20,9 @@
     "password_sharing_coordinator.h",
     "password_sharing_coordinator.mm",
     "password_sharing_coordinator_delegate.h",
+    "password_sharing_first_run_coordinator.h",
+    "password_sharing_first_run_coordinator.mm",
+    "password_sharing_first_run_coordinator_delegate.h",
     "password_sharing_mediator.h",
     "password_sharing_mediator.mm",
     "password_sharing_mediator_delegate.h",
@@ -66,6 +69,8 @@
     "password_picker_view_controller.h",
     "password_picker_view_controller.mm",
     "password_picker_view_controller_presentation_delegate.h",
+    "password_sharing_first_run_view_controller.h",
+    "password_sharing_first_run_view_controller.mm",
     "password_sharing_view_controller.h",
     "password_sharing_view_controller.mm",
     "recipient_info.h",
@@ -76,6 +81,7 @@
     "resources:password_sharing_family_promo",
     "//components/password_manager/core/browser",
     "//components/password_manager/core/browser/sharing",
+    "//components/strings",
     "//ios/chrome/app/strings",
     "//ios/chrome/browser/shared/ui/bottom_sheet",
     "//ios/chrome/browser/shared/ui/symbols",
@@ -108,11 +114,13 @@
     "//components/password_manager/core/browser/features:password_features",
     "//components/password_manager/core/common:features",
     "//ios/chrome/app/strings",
+    "//ios/chrome/browser/shared/model/prefs:pref_names",
     "//ios/chrome/browser/signin:fake_system_identity",
     "//ios/chrome/browser/ui/authentication:eg_test_support+eg2",
     "//ios/chrome/browser/ui/settings/password:eg_test_support",
     "//ios/chrome/browser/ui/settings/password:eg_test_support+eg2",
     "//ios/chrome/browser/ui/settings/password/password_details:password_details_table_view_constants",
+    "//ios/chrome/common/ui/confirmation_alert:constants",
     "//ios/chrome/test/earl_grey:eg_test_support+eg2",
     "//ios/chrome/test/earl_grey:switches",
     "//ios/testing/earl_grey:eg_test_support+eg2",
diff --git a/ios/chrome/browser/ui/settings/password/password_sharing/password_sharing_egtest.mm b/ios/chrome/browser/ui/settings/password/password_sharing/password_sharing_egtest.mm
index da2d158..72f3eab 100644
--- a/ios/chrome/browser/ui/settings/password/password_sharing/password_sharing_egtest.mm
+++ b/ios/chrome/browser/ui/settings/password/password_sharing/password_sharing_egtest.mm
@@ -4,12 +4,14 @@
 
 #import "components/password_manager/core/browser/features/password_features.h"
 #import "components/password_manager/core/common/password_manager_features.h"
+#import "ios/chrome/browser/shared/model/prefs/pref_names.h"
 #import "ios/chrome/browser/signin/fake_system_identity.h"
 #import "ios/chrome/browser/ui/authentication/signin_earl_grey_ui_test_util.h"
 #import "ios/chrome/browser/ui/settings/password/password_details/password_details_table_view_constants.h"
 #import "ios/chrome/browser/ui/settings/password/password_manager_egtest_utils.h"
 #import "ios/chrome/browser/ui/settings/password/password_settings_app_interface.h"
 #import "ios/chrome/browser/ui/settings/password/password_sharing/password_sharing_constants.h"
+#import "ios/chrome/common/ui/confirmation_alert/constants.h"
 #import "ios/chrome/grit/ios_strings.h"
 #import "ios/chrome/test/earl_grey/chrome_earl_grey.h"
 #import "ios/chrome/test/earl_grey/chrome_earl_grey_ui.h"
@@ -113,8 +115,23 @@
   return config;
 }
 
+- (void)setUp {
+  [super setUp];
+
+  // Make sure the pref is in its non-default state (which should be the case
+  // for all tests that do not test the first run experience flow).
+  [ChromeEarlGrey setBoolValue:YES
+                   forUserPref:prefs::kPasswordSharingFlowHasBeenEntered];
+}
+
 - (void)tearDown {
   [PasswordSettingsAppInterface removeMockReauthenticationModule];
+
+  // Reset preference to its non-default state (which should be the case
+  // for all tests that do not test the first run experience flow).
+  [ChromeEarlGrey setBoolValue:YES
+                   forUserPref:prefs::kPasswordSharingFlowHasBeenEntered];
+
   [super tearDown];
 }
 
@@ -360,4 +377,74 @@
                   @"Did not navigate to the help center article.");
 }
 
+- (void)testTappingCancelInFirstRunExperienceView {
+  [ChromeEarlGrey setBoolValue:NO
+                   forUserPref:prefs::kPasswordSharingFlowHasBeenEntered];
+
+  SignInAndEnableSync();
+  [self saveExamplePasswordAndOpenDetails];
+
+  [[EarlGrey
+      selectElementWithMatcher:grey_accessibilityID(kPasswordShareButtonId)]
+      performAction:grey_tap()];
+
+  // Tap the cancel button.
+  [[EarlGrey selectElementWithMatcher:
+                 grey_accessibilityID(
+                     kConfirmationAlertSecondaryActionAccessibilityIdentifier)]
+      performAction:grey_tap()];
+
+  // Check that the current view is the password details view.
+  [[EarlGrey selectElementWithMatcher:grey_accessibilityID(
+                                          kPasswordDetailsTableViewId)]
+      assertWithMatcher:grey_notNil()];
+
+  // Tap the share button again and verify that the first run view is still
+  // displayed since it was not acknowledged.
+  [[EarlGrey
+      selectElementWithMatcher:grey_accessibilityID(kPasswordShareButtonId)]
+      performAction:grey_tap()];
+  [[EarlGrey
+      selectElementWithMatcher:grey_accessibilityLabel(l10n_util::GetNSString(
+                                   IDS_IOS_PASSWORD_SHARING_FIRST_RUN_TITLE))]
+      assertWithMatcher:grey_sufficientlyVisible()];
+}
+
+- (void)testTappingShareInFirstRunExperienceView {
+  [ChromeEarlGrey setBoolValue:NO
+                   forUserPref:prefs::kPasswordSharingFlowHasBeenEntered];
+
+  SignInAndEnableSync();
+  [self saveExamplePasswordAndOpenDetails];
+
+  [[EarlGrey
+      selectElementWithMatcher:grey_accessibilityID(kPasswordShareButtonId)]
+      performAction:grey_tap()];
+
+  // Tap the share button in the first run experience view.
+  [[EarlGrey selectElementWithMatcher:
+                 grey_accessibilityID(
+                     kConfirmationAlertPrimaryActionAccessibilityIdentifier)]
+      performAction:grey_tap()];
+
+  // Check that the current view is the family picker view.
+  [[EarlGrey
+      selectElementWithMatcher:grey_accessibilityID(kFamilyPickerTableViewId)]
+      assertWithMatcher:grey_notNil()];
+
+  // Tap the cancel button.
+  [[EarlGrey selectElementWithMatcher:grey_accessibilityID(
+                                          kFamilyPickerCancelButtonId)]
+      performAction:grey_tap()];
+
+  // Tap the share button in password details view and verify that the first run
+  // view will not be displayed anymore since it was acknowledged.
+  [[EarlGrey
+      selectElementWithMatcher:grey_accessibilityID(kPasswordShareButtonId)]
+      performAction:grey_tap()];
+  [[EarlGrey
+      selectElementWithMatcher:grey_accessibilityID(kFamilyPickerTableViewId)]
+      assertWithMatcher:grey_notNil()];
+}
+
 @end
diff --git a/ios/chrome/browser/ui/settings/password/password_sharing/password_sharing_first_run_coordinator.h b/ios/chrome/browser/ui/settings/password/password_sharing/password_sharing_first_run_coordinator.h
new file mode 100644
index 0000000..6bb09d0
--- /dev/null
+++ b/ios/chrome/browser/ui/settings/password/password_sharing/password_sharing_first_run_coordinator.h
@@ -0,0 +1,30 @@
+// Copyright 2023 The Chromium Authors
+// Use of this source code is governed by a BSD-style license that can be
+// found in the LICENSE file.
+
+#ifndef IOS_CHROME_BROWSER_UI_SETTINGS_PASSWORD_PASSWORD_SHARING_PASSWORD_SHARING_FIRST_RUN_COORDINATOR_H_
+#define IOS_CHROME_BROWSER_UI_SETTINGS_PASSWORD_PASSWORD_SHARING_PASSWORD_SHARING_FIRST_RUN_COORDINATOR_H_
+
+#import "base/ios/block_types.h"
+#import "ios/chrome/browser/shared/coordinator/chrome_coordinator/chrome_coordinator.h"
+
+@protocol PasswordSharingFirstRunCoordinatorDelegate;
+
+// Presents the first run experience view for password sharing explaining
+// details of the feature and providing a learn more link.
+@interface PasswordSharingFirstRunCoordinator : ChromeCoordinator
+
+- (instancetype)initWithBaseViewController:(UIViewController*)viewController
+                                   browser:(Browser*)browser
+    NS_DESIGNATED_INITIALIZER;
+
+// Stops this coordinator and calls `completion` on view controller dismissal.
+- (void)stopWithCompletion:(ProceduralBlock)completion;
+
+// Delegate handling coordinator dismissal.
+@property(nonatomic, weak) id<PasswordSharingFirstRunCoordinatorDelegate>
+    delegate;
+
+@end
+
+#endif  // IOS_CHROME_BROWSER_UI_SETTINGS_PASSWORD_PASSWORD_SHARING_PASSWORD_SHARING_FIRST_RUN_COORDINATOR_H_
diff --git a/ios/chrome/browser/ui/settings/password/password_sharing/password_sharing_first_run_coordinator.mm b/ios/chrome/browser/ui/settings/password/password_sharing/password_sharing_first_run_coordinator.mm
new file mode 100644
index 0000000..fc52978
--- /dev/null
+++ b/ios/chrome/browser/ui/settings/password/password_sharing/password_sharing_first_run_coordinator.mm
@@ -0,0 +1,79 @@
+// Copyright 2023 The Chromium Authors
+// Use of this source code is governed by a BSD-style license that can be
+// found in the LICENSE file.
+
+#import "ios/chrome/browser/ui/settings/password/password_sharing/password_sharing_first_run_coordinator.h"
+
+#import "ios/chrome/browser/shared/model/browser/browser.h"
+#import "ios/chrome/browser/ui/settings/password/password_sharing/password_sharing_constants.h"
+#import "ios/chrome/browser/ui/settings/password/password_sharing/password_sharing_first_run_coordinator_delegate.h"
+#import "ios/chrome/browser/ui/settings/password/password_sharing/password_sharing_first_run_view_controller.h"
+#import "ios/chrome/common/ui/confirmation_alert/confirmation_alert_action_handler.h"
+
+@interface PasswordSharingFirstRunCoordinator () <
+    ConfirmationAlertActionHandler>
+
+// Main view controller for this coordinator.
+@property(nonatomic, strong)
+    PasswordSharingFirstRunViewController* viewController;
+
+@end
+
+@implementation PasswordSharingFirstRunCoordinator
+
+- (instancetype)initWithBaseViewController:(UIViewController*)viewController
+                                   browser:(Browser*)browser {
+  self = [super initWithBaseViewController:viewController browser:browser];
+  return self;
+}
+
+- (void)start {
+  [super start];
+
+  self.viewController = [[PasswordSharingFirstRunViewController alloc] init];
+  self.viewController.actionHandler = self;
+  self.viewController.modalPresentationStyle = UIModalPresentationFormSheet;
+
+  UISheetPresentationController* sheetPresentationController =
+      self.viewController.sheetPresentationController;
+  if (sheetPresentationController) {
+    if (@available(iOS 16, *)) {
+      sheetPresentationController.detents = @[
+        self.viewController.preferredHeightDetent,
+        UISheetPresentationControllerDetent.largeDetent
+      ];
+    } else {
+      sheetPresentationController.detents = @[
+        UISheetPresentationControllerDetent.mediumDetent,
+        UISheetPresentationControllerDetent.largeDetent
+      ];
+    }
+  }
+
+  [self.baseViewController presentViewController:self.viewController
+                                        animated:YES
+                                      completion:nil];
+}
+
+- (void)stop {
+  [self stopWithCompletion:nil];
+}
+
+- (void)stopWithCompletion:(ProceduralBlock)completion {
+  [self.viewController.presentingViewController
+      dismissViewControllerAnimated:YES
+                         completion:completion];
+  self.viewController = nil;
+}
+
+#pragma mark - ConfirmationAlertActionHandler
+
+- (void)confirmationAlertPrimaryAction {
+  [self.delegate passwordSharingFirstRunCoordinatorDidAccept:self];
+}
+
+- (void)confirmationAlertSecondaryAction {
+  [self.delegate passwordSharingFirstRunCoordinatorWasDismissed:self];
+}
+
+@end
diff --git a/ios/chrome/browser/ui/settings/password/password_sharing/password_sharing_first_run_coordinator_delegate.h b/ios/chrome/browser/ui/settings/password/password_sharing/password_sharing_first_run_coordinator_delegate.h
new file mode 100644
index 0000000..296fbb0c
--- /dev/null
+++ b/ios/chrome/browser/ui/settings/password/password_sharing/password_sharing_first_run_coordinator_delegate.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_SETTINGS_PASSWORD_PASSWORD_SHARING_PASSWORD_SHARING_FIRST_RUN_COORDINATOR_DELEGATE_H_
+#define IOS_CHROME_BROWSER_UI_SETTINGS_PASSWORD_PASSWORD_SHARING_PASSWORD_SHARING_FIRST_RUN_COORDINATOR_DELEGATE_H_
+
+@class PasswordSharingFirstRunCoordinator;
+
+// Delegate for PasswordSharingFirstRunCoordinator.
+@protocol PasswordSharingFirstRunCoordinatorDelegate
+
+// Called when the user enters password sharing flow from the first run view by
+// clicking the "Share" button.
+- (void)passwordSharingFirstRunCoordinatorDidAccept:
+    (PasswordSharingFirstRunCoordinator*)coordinator;
+
+// Called when the user cancels or dismisses the password sharing first run
+// view.
+- (void)passwordSharingFirstRunCoordinatorWasDismissed:
+    (PasswordSharingFirstRunCoordinator*)coordinator;
+
+@end
+
+#endif  // IOS_CHROME_BROWSER_UI_SETTINGS_PASSWORD_PASSWORD_SHARING_PASSWORD_SHARING_FIRST_RUN_COORDINATOR_DELEGATE_H_
diff --git a/ios/chrome/browser/ui/settings/password/password_sharing/password_sharing_first_run_view_controller.h b/ios/chrome/browser/ui/settings/password/password_sharing/password_sharing_first_run_view_controller.h
new file mode 100644
index 0000000..2410c5f
--- /dev/null
+++ b/ios/chrome/browser/ui/settings/password/password_sharing/password_sharing_first_run_view_controller.h
@@ -0,0 +1,18 @@
+// Copyright 2023 The Chromium Authors
+// Use of this source code is governed by a BSD-style license that can be
+// found in the LICENSE file.
+
+#ifndef IOS_CHROME_BROWSER_UI_SETTINGS_PASSWORD_PASSWORD_SHARING_PASSWORD_SHARING_FIRST_RUN_VIEW_CONTROLLER_H_
+#define IOS_CHROME_BROWSER_UI_SETTINGS_PASSWORD_PASSWORD_SHARING_PASSWORD_SHARING_FIRST_RUN_VIEW_CONTROLLER_H_
+
+#import <UIKit/UIKit.h>
+
+#import "ios/chrome/common/ui/confirmation_alert/confirmation_alert_view_controller.h"
+
+// Bottom sheet displayed when the user opens password sharing flow for the
+// first time and every consecutive time until they click "Share" button on it.
+@interface PasswordSharingFirstRunViewController
+    : ConfirmationAlertViewController
+@end
+
+#endif  // IOS_CHROME_BROWSER_UI_SETTINGS_PASSWORD_PASSWORD_SHARING_PASSWORD_SHARING_FIRST_RUN_VIEW_CONTROLLER_H_
diff --git a/ios/chrome/browser/ui/settings/password/password_sharing/password_sharing_first_run_view_controller.mm b/ios/chrome/browser/ui/settings/password/password_sharing/password_sharing_first_run_view_controller.mm
new file mode 100644
index 0000000..df75e4d5
--- /dev/null
+++ b/ios/chrome/browser/ui/settings/password/password_sharing/password_sharing_first_run_view_controller.mm
@@ -0,0 +1,57 @@
+// Copyright 2023 The Chromium Authors
+// Use of this source code is governed by a BSD-style license that can be
+// found in the LICENSE file.
+
+#import "ios/chrome/browser/ui/settings/password/password_sharing/password_sharing_first_run_view_controller.h"
+
+#import "base/check_op.h"
+#import "components/strings/grit/components_strings.h"
+#import "ios/chrome/common/string_util.h"
+#import "ios/chrome/grit/ios_strings.h"
+#import "ui/base/l10n/l10n_util_mac.h"
+
+@implementation PasswordSharingFirstRunViewController
+
+- (void)viewDidLoad {
+  self.image = [UIImage imageNamed:@"password_sharing_family_promo"];
+  self.customSpacingAfterImage = 32;
+  self.customSpacingBeforeImageIfNoNavigationBar = 24;
+  self.showDismissBarButton = NO;
+  self.titleTextStyle = UIFontTextStyleTitle2;
+  self.topAlignedLayout = YES;
+  self.titleString =
+      l10n_util::GetNSString(IDS_IOS_PASSWORD_SHARING_FIRST_RUN_TITLE);
+  self.subtitleString = [self subtitleStringWithTag].string;
+  self.primaryActionString =
+      l10n_util::GetNSString(IDS_IOS_PASSWORD_SHARING_SHARE_BUTTON);
+  self.secondaryActionString = l10n_util::GetNSString(IDS_CANCEL);
+
+  [super viewDidLoad];
+}
+
+#pragma mark - ConfirmationAlertViewController
+
+// Sets up styling of the "Learn more" link in the `subtitle`.
+- (void)customizeSubtitle:(UITextView*)subtitle {
+  subtitle.selectable = YES;
+
+  // Inherits the default styling already applied to `subtitle`.
+  NSMutableAttributedString* newSubtitle = [[NSMutableAttributedString alloc]
+      initWithAttributedString:subtitle.attributedText];
+  [newSubtitle addAttribute:NSLinkAttributeName
+                      value:@""
+                      range:[self subtitleStringWithTag].range];
+  subtitle.attributedText = newSubtitle;
+}
+
+#pragma mark - Private
+
+// Returns a subtitle string and an NSRange of its "Learn more" link.
+- (StringWithTag)subtitleStringWithTag {
+  StringWithTags stringWithTags = ParseStringWithLinks(
+      l10n_util::GetNSString(IDS_IOS_PASSWORD_SHARING_FIRST_RUN_SUBTITLE));
+  CHECK_EQ(stringWithTags.ranges.size(), 1u);
+  return {stringWithTags.string, stringWithTags.ranges[0]};
+}
+
+@end
diff --git a/ios/chrome/browser/ui/settings/password/passwords_coordinator.mm b/ios/chrome/browser/ui/settings/password/passwords_coordinator.mm
index b4ff1d8..32e3d0f 100644
--- a/ios/chrome/browser/ui/settings/password/passwords_coordinator.mm
+++ b/ios/chrome/browser/ui/settings/password/passwords_coordinator.mm
@@ -401,6 +401,10 @@
   [self.passwordSettingsCoordinator start];
 }
 
+- (void)showPasswordManagerWidgetPromoInstructions {
+  // TODO(crbug.com/1463033): Present the instruction view.
+}
+
 // TODO(crbug.com/1406871): Remove when kIOSPasswordCheckup is enabled by
 // default.
 #pragma mark - PasswordIssuesCoordinatorDelegate
diff --git a/ios/chrome/browser/ui/settings/password/passwords_mediator.mm b/ios/chrome/browser/ui/settings/password/passwords_mediator.mm
index 95818e5..dbef312 100644
--- a/ios/chrome/browser/ui/settings/password/passwords_mediator.mm
+++ b/ios/chrome/browser/ui/settings/password/passwords_mediator.mm
@@ -5,6 +5,7 @@
 #import "ios/chrome/browser/ui/settings/password/passwords_mediator.h"
 
 #import "base/memory/raw_ptr.h"
+#import "components/feature_engagement/public/event_constants.h"
 #import "components/feature_engagement/public/feature_constants.h"
 #import "components/feature_engagement/public/tracker.h"
 #import "components/password_manager/core/browser/leak_detection_dialog_utils.h"
@@ -258,6 +259,16 @@
   return password_manager::ShouldShowLocalOnlyIconForGroup(group, _syncService);
 }
 
+- (void)notifyFETOfPasswordManagerWidgetPromoDismissal {
+  if (self.tracker) {
+    self.tracker->NotifyEvent(
+        feature_engagement::events::kPasswordManagerWidgetPromoClosed);
+    self.tracker->Dismissed(
+        feature_engagement::kIPHiOSPromoPasswordManagerWidgetFeature);
+  }
+  _shouldNotifyFETToDismissPasswordManagerWidgetPromo = NO;
+}
+
 #pragma mark - PasswordCheckObserver
 
 - (void)passwordCheckStateDidChange:(PasswordCheckState)state {
diff --git a/ios/chrome/browser/ui/settings/password/passwords_mediator_unittest.mm b/ios/chrome/browser/ui/settings/password/passwords_mediator_unittest.mm
index e3590785..f604afd 100644
--- a/ios/chrome/browser/ui/settings/password/passwords_mediator_unittest.mm
+++ b/ios/chrome/browser/ui/settings/password/passwords_mediator_unittest.mm
@@ -10,6 +10,7 @@
 #import "base/strings/utf_string_conversions.h"
 #import "base/test/bind.h"
 #import "base/test/scoped_feature_list.h"
+#import "components/feature_engagement/public/event_constants.h"
 #import "components/feature_engagement/test/mock_tracker.h"
 #import "components/keyed_service/core/service_access_type.h"
 #import "components/password_manager/core/browser/affiliation/fake_affiliation_service.h"
@@ -162,7 +163,6 @@
 
     mock_tracker_ = static_cast<feature_engagement::test::MockTracker*>(
         feature_engagement::TrackerFactory::GetForBrowserState(browserState()));
-
     mediator_.tracker = mock_tracker_;
 
     mediator_.consumer = consumer_;
@@ -216,6 +216,7 @@
 TEST_F(PasswordsMediatorTest, NotifiesConsumerToShowPromoOrNot) {
   FakePasswordsConsumer* different_consumer =
       [[FakePasswordsConsumer alloc] init];
+
   // Make sure that `shouldShowPasswordManagerWidgetPromoCalled` isn't already
   // true.
   EXPECT_FALSE(different_consumer.shouldShowPasswordManagerWidgetPromoCalled);
@@ -231,8 +232,8 @@
   EXPECT_TRUE(different_consumer.shouldShowPasswordManagerWidgetPromoCalled);
 }
 
-// Tests that `Dismissed` is called on the FET on disconnect when the promo was
-// shown and was not dismissed by the user.
+// Tests that `Dismissed` is called on the FET on disconnect when the Password
+// Manager widget promo was shown and was not dismissed by the user.
 TEST_F(PasswordsMediatorTest, NotifiesFETToDismissPromoOnDisconnect) {
   mediator().shouldNotifyFETToDismissPasswordManagerWidgetPromo = YES;
 
@@ -244,3 +245,23 @@
 
   [mediator() disconnect];
 }
+
+// Tests that `NotifyEvent` and `Dismissed` is called on the FET when the user
+// taps the close button of the Password Manager widget promo.
+TEST_F(PasswordsMediatorTest, NotifiesFETToDismissPromoOnPromoClosed) {
+  mediator().shouldNotifyFETToDismissPasswordManagerWidgetPromo = YES;
+
+  EXPECT_CALL(
+      *mockTracker(),
+      NotifyEvent(
+          feature_engagement::events::kPasswordManagerWidgetPromoClosed));
+  EXPECT_CALL(
+      *mockTracker(),
+      Dismissed(testing::Ref(
+          feature_engagement::kIPHiOSPromoPasswordManagerWidgetFeature)))
+      .Times(testing::Exactly(1));
+
+  [mediator() notifyFETOfPasswordManagerWidgetPromoDismissal];
+
+  EXPECT_FALSE(mediator().shouldNotifyFETToDismissPasswordManagerWidgetPromo);
+}
diff --git a/ios/chrome/browser/ui/settings/password/passwords_table_view_constants.h b/ios/chrome/browser/ui/settings/password/passwords_table_view_constants.h
index 21df5b99..f254959d 100644
--- a/ios/chrome/browser/ui/settings/password/passwords_table_view_constants.h
+++ b/ios/chrome/browser/ui/settings/password/passwords_table_view_constants.h
@@ -8,6 +8,9 @@
 #import <Foundation/Foundation.h>
 #import "ios/chrome/browser/shared/ui/list_model/list_model.h"
 
+// TODO(crbug.com/1486512): Acronyms in Objective-C identifiers should be
+// written in all caps.
+
 // The accessibility identifier of the Password Manager table view.
 extern NSString* const kPasswordsTableViewId;
 extern NSString* const kPasswordsSearchBarId;
@@ -51,6 +54,13 @@
 // in the Password Manager when the promo cell is disabled.
 extern NSString* const kWidgetPromoDisabledImageName;
 
+// Accessibility identifier for the Password Manager widget promo.
+extern NSString* const kWidgetPromoId;
+
+// Accessibility identifier for the Password Manager widget promo's close
+// button.
+extern NSString* const kWidgetPromoCloseButtonId;
+
 // Sections of the password settings
 typedef NS_ENUM(NSInteger, PasswordSectionIdentifier) {
   SectionIdentifierSavedPasswords = kSectionIdentifierEnumZero,
diff --git a/ios/chrome/browser/ui/settings/password/passwords_table_view_constants.mm b/ios/chrome/browser/ui/settings/password/passwords_table_view_constants.mm
index 47a534e..e9210c2b1 100644
--- a/ios/chrome/browser/ui/settings/password/passwords_table_view_constants.mm
+++ b/ios/chrome/browser/ui/settings/password/passwords_table_view_constants.mm
@@ -37,3 +37,7 @@
 
 NSString* const kWidgetPromoDisabledImageName =
     @"password_manager_widget_promo_disabled";
+
+NSString* const kWidgetPromoId = @"WidgetPromoId";
+
+NSString* const kWidgetPromoCloseButtonId = @"WidgetPromoCloseButtonId";
diff --git a/ios/chrome/browser/ui/settings/search_engine_table_view_controller.mm b/ios/chrome/browser/ui/settings/search_engine_table_view_controller.mm
index 550eedb..b9e0cd9 100644
--- a/ios/chrome/browser/ui/settings/search_engine_table_view_controller.mm
+++ b/ios/chrome/browser/ui/settings/search_engine_table_view_controller.mm
@@ -13,8 +13,11 @@
 #import "base/ranges/algorithm.h"
 #import "base/strings/sys_string_conversions.h"
 #import "components/password_manager/core/common/password_manager_features.h"
+#import "components/prefs/pref_service.h"
+#import "components/search_engines/search_engine_choice_utils.h"
 #import "components/search_engines/template_url_service.h"
 #import "components/search_engines/template_url_service_observer.h"
+#import "components/strings/grit/components_strings.h"
 #import "ios/chrome/browser/favicon/favicon_loader.h"
 #import "ios/chrome/browser/favicon/ios_chrome_favicon_loader_factory.h"
 #import "ios/chrome/browser/search_engines/search_engine_observer_bridge.h"
@@ -76,6 +79,8 @@
   // FaviconLoader is a keyed service that uses LargeIconService to retrieve
   // favicon images.
   FaviconLoader* _faviconLoader;
+  // Used to retrieve the user's prefs.
+  PrefService* _prefService;
 }
 
 #pragma mark - Initialization
@@ -92,6 +97,7 @@
     _templateURLService->Load();
     _faviconLoader =
         IOSChromeFaviconLoaderFactory::GetForBrowserState(browserState);
+    _prefService = browserState->GetPrefs();
     [self setTitle:l10n_util::GetNSString(IDS_IOS_SEARCH_ENGINE_SETTING_TITLE)];
     self.shouldDisableDoneButtonOnEdit = YES;
     [self updateUIForEditState];
@@ -209,6 +215,15 @@
   if (_firstList.size() > 0) {
     [model addSectionWithIdentifier:SectionIdentifierFirstList];
 
+    if (search_engines::ShouldShowUpdatedSettings(*_prefService)) {
+      TableViewTextHeaderFooterItem* header =
+          [[TableViewTextHeaderFooterItem alloc] initWithType:ItemTypeHeader];
+      header.subtitle =
+          l10n_util::GetNSString(IDS_SEARCH_ENGINE_CHOICE_SETTINGS_SUBTITLE);
+      [model setHeader:header
+          forSectionWithIdentifier:SectionIdentifierFirstList];
+    }
+
     for (const TemplateURL* templateURL : _firstList) {
       [model addItem:[self createSearchEngineItemFromTemplateURL:templateURL]
           toSectionWithIdentifier:SectionIdentifierFirstList];
@@ -453,6 +468,8 @@
   if (_settingsAreDismissed)
     return;
 
+  // TODO(b/280753739): Fetch the list of URLs used for the search engine choice
+  // screen, when appropriate.
   std::vector<TemplateURL*> urls = _templateURLService->GetTemplateURLs();
   _firstList.clear();
   _firstList.reserve(urls.size());
diff --git a/ios/chrome/browser/ui/settings/search_engine_table_view_controller_unittest.mm b/ios/chrome/browser/ui/settings/search_engine_table_view_controller_unittest.mm
index 578d8836..2dc7e6a 100644
--- a/ios/chrome/browser/ui/settings/search_engine_table_view_controller_unittest.mm
+++ b/ios/chrome/browser/ui/settings/search_engine_table_view_controller_unittest.mm
@@ -7,20 +7,34 @@
 #import <memory>
 
 #import "base/apple/foundation_util.h"
+#import "base/command_line.h"
 #import "base/files/scoped_temp_dir.h"
 #import "base/strings/sys_string_conversions.h"
 #import "base/strings/utf_string_conversions.h"
 #import "base/test/ios/wait_util.h"
 #import "base/test/metrics/histogram_tester.h"
+#import "base/test/scoped_feature_list.h"
+#import "components/country_codes/country_codes.h"
 #import "components/password_manager/core/common/password_manager_features.h"
+#import "components/policy/core/common/mock_policy_service.h"
+#import "components/policy/core/common/policy_namespace.h"
+#import "components/policy/core/common/schema_registry.h"
+#import "components/policy/policy_constants.h"
+#import "components/prefs/pref_registry_simple.h"
+#import "components/prefs/testing_pref_service.h"
+#import "components/search_engines/search_engines_pref_names.h"
+#import "components/search_engines/search_engines_switches.h"
 #import "components/search_engines/template_url_data_util.h"
 #import "components/search_engines/template_url_prepopulate_data.h"
 #import "components/search_engines/template_url_service.h"
+#import "components/signin/public/base/signin_switches.h"
+#import "components/strings/grit/components_strings.h"
 #import "components/sync_preferences/testing_pref_service_syncable.h"
 #import "ios/chrome/browser/favicon/favicon_service_factory.h"
 #import "ios/chrome/browser/favicon/ios_chrome_favicon_loader_factory.h"
 #import "ios/chrome/browser/favicon/ios_chrome_large_icon_service_factory.h"
 #import "ios/chrome/browser/history/history_service_factory.h"
+#import "ios/chrome/browser/policy/browser_state_policy_connector_mock.h"
 #import "ios/chrome/browser/search_engines/template_url_service_factory.h"
 #import "ios/chrome/browser/shared/model/browser_state/test_chrome_browser_state.h"
 #import "ios/chrome/browser/shared/ui/table_view/chrome_table_view_controller_test.h"
@@ -28,6 +42,7 @@
 #import "ios/web/public/test/web_task_environment.h"
 #import "testing/gtest/include/gtest/gtest.h"
 #import "testing/gtest_mac.h"
+#import "ui/base/l10n/l10n_util_mac.h"
 
 using TemplateURLPrepopulateData::GetAllPrepopulatedEngines;
 using TemplateURLPrepopulateData::PrepopulatedEngine;
@@ -73,6 +88,17 @@
     ChromeTableViewControllerTest::TearDown();
   }
 
+  void SetupForChoiceScreenDisplay() {
+    feature_list_.InitAndEnableFeature(switches::kSearchEngineChoice);
+    country_codes::RegisterProfilePrefs(pref_service_.registry());
+    pref_service_.registry()->RegisterInt64Pref(
+        prefs::kDefaultSearchProviderChoiceScreenCompletionTimestamp, 0);
+
+    // Override the country checks to simulate being in Belgium.
+    base::CommandLine::ForCurrentProcess()->AppendSwitchASCII(
+        switches::kSearchEngineChoiceCountry, "BE");
+  }
+
   ChromeTableViewController* InstantiateController() override {
     return [[SearchEngineTableViewController alloc]
         initWithBrowserState:chrome_browser_state_.get()];
@@ -211,6 +237,8 @@
   std::unique_ptr<TestChromeBrowserState> chrome_browser_state_;
   base::HistogramTester histogram_tester_;
   TemplateURLService* template_url_service_;  // weak
+  TestingPrefServiceSimple pref_service_;
+  base::test::ScopedFeatureList feature_list_;
 };
 
 // Tests that no items are shown if TemplateURLService is empty.
@@ -268,6 +296,28 @@
   CheckCustomItem(kEngineC3Name, kEngineC3Url, false, 1, 2);
 }
 
+// Tests that the table's first section subtitle is correctly set when the user
+// is eligible for the search engine choice screen.
+TEST_F(SearchEngineTableViewControllerTest,
+       TestSectionSubtitleForChoiceScreenSettings) {
+  SetupForChoiceScreenDisplay();
+
+  const std::string kEngineP1Name = "prepopulated-1";
+  const GURL kEngineP1Url = GURL("https://p1.com?q={searchTerms}");
+
+  AddPriorSearchEngine(kEngineP1Name, kEngineP1Url, 1001, true);
+
+  CreateController();
+  CheckController();
+
+  TableViewHeaderFooterItem* header =
+      [[controller() tableViewModel] headerForSectionIndex:0];
+  ASSERT_TRUE([header respondsToSelector:@selector(subtitle)]);
+  EXPECT_NSEQ(
+      l10n_util::GetNSString(IDS_SEARCH_ENGINE_CHOICE_SETTINGS_SUBTITLE),
+      [(id)header subtitle]);
+}
+
 // Tests that items are displayed correctly when TemplateURLService is filled
 // and a custom search engine is selected as default.
 TEST_F(SearchEngineTableViewControllerTest,
diff --git a/ios/chrome/browser/web/visible_url_egtest.mm b/ios/chrome/browser/web/visible_url_egtest.mm
index 14b1605..68637597 100644
--- a/ios/chrome/browser/web/visible_url_egtest.mm
+++ b/ios/chrome/browser/web/visible_url_egtest.mm
@@ -274,20 +274,10 @@
     [self setServerPaused:NO];
   }
 
-  if (![ChromeEarlGrey isSynthesizedRestoreSessionEnabled] ||
-      !base::ios::IsRunningOnIOS15OrLater()) {
-    // In this case, legacy restore will commit page1 with the pushState
-    // empty page (see restore_session.html). With legacy restore check that
-    // page1 was reloaded, not page2.
-    [ChromeEarlGrey waitForWebStateContainingText:kTestPage1];
-    [[EarlGrey selectElementWithMatcher:OmniboxText(_testURL1.GetContent())]
-        assertWithMatcher:grey_notNil()];
-  } else {
-    // Verifies that page2 was reloaded.
-    [ChromeEarlGrey waitForWebStateContainingText:kTestPage2];
-    [[EarlGrey selectElementWithMatcher:OmniboxText(_testURL2.GetContent())]
-        assertWithMatcher:grey_notNil()];
-  }
+  // Verifies that page2 was reloaded.
+  [ChromeEarlGrey waitForWebStateContainingText:kTestPage2];
+  [[EarlGrey selectElementWithMatcher:OmniboxText(_testURL2.GetContent())]
+      assertWithMatcher:grey_notNil()];
 }
 
 // Tests that visible URL is always the same as last pending URL during
diff --git a/ios/chrome/search_widget_extension/BUILD.gn b/ios/chrome/search_widget_extension/BUILD.gn
index d76be6c0..91251d7 100644
--- a/ios/chrome/search_widget_extension/BUILD.gn
+++ b/ios/chrome/search_widget_extension/BUILD.gn
@@ -13,27 +13,15 @@
 
 source_set("search_widget") {
   sources = [
-    "copied_content_view.h",
-    "copied_content_view.mm",
-    "search_action_view.h",
-    "search_action_view.mm",
-    "search_widget_constants.h",
-    "search_widget_constants.mm",
-    "search_widget_view.h",
-    "search_widget_view.mm",
     "search_widget_view_controller.h",
     "search_widget_view_controller.mm",
   ]
 
   deps = [
     "//base",
-    "//components/open_from_clipboard:open_from_clipboard_impl",
-    "//ios/chrome/common/app_group",
-    "//ios/chrome/common/app_group:command",
     "//ios/chrome/common/crash_report",
     "//ios/chrome/common/ui/elements",
     "//ios/chrome/common/ui/util",
-    "//ios/chrome/common/ui/util:image_util",
   ]
 
   frameworks = [
@@ -49,15 +37,9 @@
   input_locales = platform_pak_locales
   output_locales = locales_as_apple_outputs
 
-  source_patterns = [
-    "$root_gen_dir/ios/search_widget_extension/ios_search_widget_extension_strings_",
-    "$root_gen_dir/ios/search_widget_extension/ios_search_widget_extension_${branding_path_product}_strings_",
-  ]
+  source_patterns = [ "$root_gen_dir/ios/search_widget_extension/ios_search_widget_extension_${branding_path_product}_strings_" ]
 
-  deps = [
-    "//ios/chrome/search_widget_extension/strings:ios_search_widget_extension_branded_strings",
-    "//ios/chrome/search_widget_extension/strings:ios_search_widget_extension_strings",
-  ]
+  deps = [ "//ios/chrome/search_widget_extension/strings:ios_search_widget_extension_branded_strings" ]
 }
 
 generate_localizable_strings("system_strings") {
diff --git a/ios/chrome/search_widget_extension/appex/BUILD.gn b/ios/chrome/search_widget_extension/appex/BUILD.gn
index 6479b53..a92ae996 100644
--- a/ios/chrome/search_widget_extension/appex/BUILD.gn
+++ b/ios/chrome/search_widget_extension/appex/BUILD.gn
@@ -32,7 +32,6 @@
   deps = [
     "//ios/chrome/search_widget_extension:search_widget",
     "//ios/chrome/search_widget_extension:system_strings",
-    "//ios/chrome/search_widget_extension/resources:quick_action_incognito",
   ]
 
   assert_no_deps = ios_extension_assert_no_deps
diff --git a/ios/chrome/search_widget_extension/copied_content_view.h b/ios/chrome/search_widget_extension/copied_content_view.h
deleted file mode 100644
index 640ba04..0000000
--- a/ios/chrome/search_widget_extension/copied_content_view.h
+++ /dev/null
@@ -1,37 +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 IOS_CHROME_SEARCH_WIDGET_EXTENSION_COPIED_CONTENT_VIEW_H_
-#define IOS_CHROME_SEARCH_WIDGET_EXTENSION_COPIED_CONTENT_VIEW_H_
-
-#import <UIKit/UIKit.h>
-
-#import "ios/chrome/common/ui/elements/highlight_button.h"
-
-typedef NS_ENUM(NSInteger, CopiedContentType) {
-  CopiedContentTypeNone,
-  CopiedContentTypeURL,
-  CopiedContentTypeString,
-  CopiedContentTypeImage,
-};
-
-// View to show and allow opening of the copied URL. Shows a button with the
-// `copiedURLString` if it has been set. When tapped, `actionSelector` in
-// `target` is called. If no `copiedURLString` was set, the button is replaced
-// by a hairline separation and placeholder text.
-@interface CopiedContentView : HighlightButton
-
-// Designated initializer, creates the copiedURLView with a `target` to open the
-// URL.
-- (instancetype)initWithActionTarget:(id)target
-                      actionSelector:(SEL)actionSelector
-    NS_DESIGNATED_INITIALIZER;
-- (instancetype)initWithFrame:(CGRect)frame NS_UNAVAILABLE;
-- (instancetype)initWithCoder:(NSCoder*)aDecoder NS_UNAVAILABLE;
-
-- (void)setCopiedContentType:(CopiedContentType)type;
-
-@end
-
-#endif  // IOS_CHROME_SEARCH_WIDGET_EXTENSION_COPIED_CONTENT_VIEW_H_
diff --git a/ios/chrome/search_widget_extension/copied_content_view.mm b/ios/chrome/search_widget_extension/copied_content_view.mm
deleted file mode 100644
index b9d1179..0000000
--- a/ios/chrome/search_widget_extension/copied_content_view.mm
+++ /dev/null
@@ -1,220 +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.
-
-#import "ios/chrome/search_widget_extension/copied_content_view.h"
-
-#import <NotificationCenter/NotificationCenter.h>
-
-#import "base/check.h"
-#import "ios/chrome/common/ui/util/constraints_ui_util.h"
-#import "ios/chrome/search_widget_extension/search_widget_constants.h"
-
-namespace {
-
-const CGFloat kURLButtonMargin = 10;
-
-}  // namespace
-
-@interface CopiedContentView ()
-
-// The type of the copied content
-@property(nonatomic) CopiedContentType type;
-// The copied URL label containing the URL or a placeholder text.
-@property(nonatomic, strong) UILabel* copiedContentLabel;
-// The copied URL title label containing the title of the copied URL button.
-@property(nonatomic, strong) UILabel* openCopiedContentTitleLabel;
-// The hairline view potentially shown at the top of the copied URL view.
-@property(nonatomic, strong) UIView* hairlineView;
-// The button-shaped background view shown when there is a copied URL to open.
-@property(nonatomic, strong) UIView* copiedButtonView;
-
-@property(nonatomic, strong) UIVisualEffectView* primaryEffectView;
-@property(nonatomic, strong) UIVisualEffectView* secondaryEffectView;
-
-// Updates the view to show the currently set `type`.
-- (void)updateUI;
-
-@end
-
-@implementation CopiedContentView
-
-- (instancetype)initWithActionTarget:(id)target
-                      actionSelector:(SEL)actionSelector {
-  DCHECK(target);
-  self = [super initWithFrame:CGRectZero];
-  if (self) {
-    self.translatesAutoresizingMaskIntoConstraints = NO;
-
-    [self addTarget:target
-                  action:actionSelector
-        forControlEvents:UIControlEventTouchUpInside];
-
-    UIVibrancyEffect* primaryEffect = nil;
-    UIVibrancyEffect* secondaryEffect = nil;
-    UIVibrancyEffect* backgroundEffect = nil;
-    UIVibrancyEffect* hairlineEffect = nil;
-    primaryEffect = [UIVibrancyEffect
-        widgetEffectForVibrancyStyle:UIVibrancyEffectStyleLabel];
-    secondaryEffect = [UIVibrancyEffect
-        widgetEffectForVibrancyStyle:UIVibrancyEffectStyleSecondaryLabel];
-    backgroundEffect = [UIVibrancyEffect
-        widgetEffectForVibrancyStyle:UIVibrancyEffectStyleTertiaryFill];
-    hairlineEffect = [UIVibrancyEffect
-        widgetEffectForVibrancyStyle:UIVibrancyEffectStyleSeparator];
-
-    DCHECK(primaryEffect);
-    DCHECK(secondaryEffect);
-    DCHECK(backgroundEffect);
-    DCHECK(hairlineEffect);
-
-    _primaryEffectView =
-        [[UIVisualEffectView alloc] initWithEffect:primaryEffect];
-    _secondaryEffectView =
-        [[UIVisualEffectView alloc] initWithEffect:secondaryEffect];
-    UIVisualEffectView* backgroundEffectView =
-        [[UIVisualEffectView alloc] initWithEffect:backgroundEffect];
-    UIVisualEffectView* hairlineEffectView =
-        [[UIVisualEffectView alloc] initWithEffect:hairlineEffect];
-    for (UIVisualEffectView* effectView in @[
-           _primaryEffectView, _secondaryEffectView, backgroundEffectView,
-           hairlineEffectView
-         ]) {
-      [self addSubview:effectView];
-      effectView.translatesAutoresizingMaskIntoConstraints = NO;
-      AddSameConstraints(self, effectView);
-      effectView.userInteractionEnabled = NO;
-    }
-
-    _hairlineView = [[UIView alloc] initWithFrame:CGRectZero];
-    // The new widget vibrancy style API requires new colors for the views.
-    _hairlineView.backgroundColor = UIColor.separatorColor;
-    _hairlineView.translatesAutoresizingMaskIntoConstraints = NO;
-    [hairlineEffectView.contentView addSubview:_hairlineView];
-
-    _copiedButtonView = [[UIView alloc] init];
-    // The new widget vibrancy style API requires new colors for the views.
-    _copiedButtonView.backgroundColor = UIColor.whiteColor;
-    _copiedButtonView.layer.cornerRadius = 5;
-    _copiedButtonView.translatesAutoresizingMaskIntoConstraints = NO;
-    [backgroundEffectView.contentView addSubview:_copiedButtonView];
-
-    _openCopiedContentTitleLabel = [[UILabel alloc] initWithFrame:CGRectZero];
-    _openCopiedContentTitleLabel.textAlignment = NSTextAlignmentCenter;
-    _openCopiedContentTitleLabel.translatesAutoresizingMaskIntoConstraints = NO;
-    _openCopiedContentTitleLabel.font =
-        [UIFont preferredFontForTextStyle:UIFontTextStyleHeadline];
-    [_primaryEffectView.contentView addSubview:_openCopiedContentTitleLabel];
-
-    _copiedContentLabel = [[UILabel alloc] initWithFrame:CGRectZero];
-    _copiedContentLabel.textAlignment = NSTextAlignmentCenter;
-    _copiedContentLabel.font =
-        [UIFont preferredFontForTextStyle:UIFontTextStyleFootnote];
-    _copiedContentLabel.translatesAutoresizingMaskIntoConstraints = NO;
-    [_secondaryEffectView.contentView addSubview:_copiedContentLabel];
-
-    [NSLayoutConstraint activateConstraints:@[
-      [_hairlineView.topAnchor constraintEqualToAnchor:self.topAnchor],
-      [_hairlineView.leftAnchor constraintEqualToAnchor:self.leftAnchor],
-      [_hairlineView.rightAnchor constraintEqualToAnchor:self.rightAnchor],
-      [_hairlineView.heightAnchor constraintEqualToConstant:0.5],
-
-      [_copiedButtonView.leadingAnchor
-          constraintEqualToAnchor:self.leadingAnchor
-                         constant:kContentMargin],
-      [_copiedButtonView.trailingAnchor
-          constraintEqualToAnchor:self.trailingAnchor
-                         constant:-kContentMargin],
-      [_copiedButtonView.topAnchor constraintEqualToAnchor:self.topAnchor
-                                                  constant:kContentMargin],
-      [_copiedButtonView.bottomAnchor constraintEqualToAnchor:self.bottomAnchor
-                                                     constant:-kContentMargin],
-
-      [_openCopiedContentTitleLabel.topAnchor
-          constraintEqualToAnchor:_copiedButtonView.topAnchor
-                         constant:kURLButtonMargin],
-      [_openCopiedContentTitleLabel.leadingAnchor
-          constraintEqualToAnchor:_copiedButtonView.leadingAnchor
-                         constant:kContentMargin],
-      [_openCopiedContentTitleLabel.trailingAnchor
-          constraintEqualToAnchor:_copiedButtonView.trailingAnchor
-                         constant:-kContentMargin],
-
-      [_copiedContentLabel.topAnchor
-          constraintEqualToAnchor:_openCopiedContentTitleLabel.bottomAnchor],
-      [_copiedContentLabel.bottomAnchor
-          constraintEqualToAnchor:_copiedButtonView.bottomAnchor
-                         constant:-kURLButtonMargin],
-      [_copiedContentLabel.leadingAnchor
-          constraintEqualToAnchor:_openCopiedContentTitleLabel.leadingAnchor],
-      [_copiedContentLabel.trailingAnchor
-          constraintEqualToAnchor:_openCopiedContentTitleLabel.trailingAnchor],
-    ]];
-    [self setCopiedContentType:CopiedContentTypeNone];
-    self.highlightableViews = @[
-      _hairlineView, _copiedButtonView, _openCopiedContentTitleLabel,
-      _copiedContentLabel
-    ];
-  }
-  return self;
-}
-
-- (void)setCopiedContentType:(CopiedContentType)type {
-  self.type = type;
-  [self updateUI];
-}
-
-- (void)updateUI {
-  BOOL hasContent = self.type != CopiedContentTypeNone;
-  self.userInteractionEnabled = hasContent;
-  self.copiedButtonView.hidden = !hasContent;
-  self.hairlineView.hidden = hasContent;
-  self.accessibilityTraits =
-      (hasContent) ? UIAccessibilityTraitLink : UIAccessibilityTraitNone;
-  if (hasContent) {
-    self.primaryEffectView.effect = [UIVibrancyEffect
-        widgetEffectForVibrancyStyle:UIVibrancyEffectStyleLabel];
-    self.secondaryEffectView.effect = [UIVibrancyEffect
-        widgetEffectForVibrancyStyle:UIVibrancyEffectStyleSecondaryLabel];
-  } else {
-    self.primaryEffectView.effect = [UIVibrancyEffect
-        widgetEffectForVibrancyStyle:UIVibrancyEffectStyleSecondaryLabel];
-    self.secondaryEffectView.effect = [UIVibrancyEffect
-        widgetEffectForVibrancyStyle:UIVibrancyEffectStyleTertiaryLabel];
-  }
-
-  NSString* titleText;
-  NSString* contentText;
-  switch (self.type) {
-    case CopiedContentTypeNone: {
-      titleText = NSLocalizedString(@"IDS_IOS_NO_COPIED_CONTENT_TITLE", nil);
-      contentText =
-          NSLocalizedString(@"IDS_IOS_NO_COPIED_CONTENT_MESSAGE", nil);
-      break;
-    }
-    case CopiedContentTypeURL: {
-      titleText = NSLocalizedString(@"IDS_IOS_OPEN_COPIED_LINK", nil);
-      break;
-    }
-    case CopiedContentTypeString: {
-      titleText = NSLocalizedString(@"IDS_IOS_OPEN_COPIED_TEXT", nil);
-      break;
-    }
-    case CopiedContentTypeImage: {
-      titleText = NSLocalizedString(@"IDS_IOS_OPEN_COPIED_IMAGE", nil);
-      break;
-    }
-  }
-  self.openCopiedContentTitleLabel.text = titleText;
-  self.copiedContentLabel.text = contentText;
-  NSMutableArray<NSString*>* accessibilityPieces =
-      [[NSMutableArray alloc] init];
-  [accessibilityPieces addObject:titleText];
-  if (contentText) {
-    [accessibilityPieces addObject:contentText];
-  }
-  self.accessibilityLabel =
-      [accessibilityPieces componentsJoinedByString:@" - "];
-}
-
-@end
diff --git a/ios/chrome/search_widget_extension/resources/BUILD.gn b/ios/chrome/search_widget_extension/resources/BUILD.gn
deleted file mode 100644
index 8d92fe8..0000000
--- a/ios/chrome/search_widget_extension/resources/BUILD.gn
+++ /dev/null
@@ -1,12 +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.
-
-import("//build/config/ios/asset_catalog.gni")
-
-symbolset("quick_action_incognito") {
-  sources = [
-    "quick_action_incognito.symbolset/Contents.json",
-    "quick_action_incognito.symbolset/incognito.cr.svg",
-  ]
-}
diff --git a/ios/chrome/search_widget_extension/resources/quick_action_incognito.symbolset/Contents.json b/ios/chrome/search_widget_extension/resources/quick_action_incognito.symbolset/Contents.json
deleted file mode 100644
index 364cdbd..0000000
--- a/ios/chrome/search_widget_extension/resources/quick_action_incognito.symbolset/Contents.json
+++ /dev/null
@@ -1,12 +0,0 @@
-{
-  "info": {
-    "author": "xcode",
-    "version": 1
-  },
-  "symbols": [
-    {
-      "filename": "incognito.cr.svg",
-      "idiom": "universal"
-    }
-  ]
-}
diff --git a/ios/chrome/search_widget_extension/resources/quick_action_incognito.symbolset/incognito.cr.svg b/ios/chrome/search_widget_extension/resources/quick_action_incognito.symbolset/incognito.cr.svg
deleted file mode 100644
index e0d48b6..0000000
--- a/ios/chrome/search_widget_extension/resources/quick_action_incognito.symbolset/incognito.cr.svg
+++ /dev/null
@@ -1,161 +0,0 @@
-<?xml version="1.0" encoding="UTF-8"?>
-<!--Generator: Apple Native CoreSVG 149-->
-<!DOCTYPE svg
-PUBLIC "-//W3C//DTD SVG 1.1//EN"
-       "http://www.w3.org/Graphics/SVG/1.1/DTD/svg11.dtd">
-<svg version="1.1" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" width="3300" height="2200">
- <!--glyph: "", point size: 100.0, font version: "17.0d8e1", template writer version: "58"-->
- <g id="Notes">
-  <rect height="2200" id="artboard" style="fill:white;opacity:1" width="3300" x="0" y="0"/>
-  <line style="fill:none;stroke:black;opacity:1;stroke-width:0.5;" x1="263" x2="3036" y1="292" y2="292"/>
-  <text style="stroke:none;fill:black;font-family:SF Pro,SF Pro Display,SF Pro Text,sans-serif;font-size:13;font-weight:bold;" transform="matrix(1 0 0 1 263 322)">Weight/Scale Variations</text>
-  <text style="stroke:none;fill:black;font-family:SF Pro,SF Pro Display,SF Pro Text,sans-serif;font-size:13;text-anchor:middle;" transform="matrix(1 0 0 1 559.711 322)">Ultralight</text>
-  <text style="stroke:none;fill:black;font-family:SF Pro,SF Pro Display,SF Pro Text,sans-serif;font-size:13;text-anchor:middle;" transform="matrix(1 0 0 1 856.422 322)">Thin</text>
-  <text style="stroke:none;fill:black;font-family:SF Pro,SF Pro Display,SF Pro Text,sans-serif;font-size:13;text-anchor:middle;" transform="matrix(1 0 0 1 1153.13 322)">Light</text>
-  <text style="stroke:none;fill:black;font-family:SF Pro,SF Pro Display,SF Pro Text,sans-serif;font-size:13;text-anchor:middle;" transform="matrix(1 0 0 1 1449.84 322)">Regular</text>
-  <text style="stroke:none;fill:black;font-family:SF Pro,SF Pro Display,SF Pro Text,sans-serif;font-size:13;text-anchor:middle;" transform="matrix(1 0 0 1 1746.56 322)">Medium</text>
-  <text style="stroke:none;fill:black;font-family:SF Pro,SF Pro Display,SF Pro Text,sans-serif;font-size:13;text-anchor:middle;" transform="matrix(1 0 0 1 2043.27 322)">Semibold</text>
-  <text style="stroke:none;fill:black;font-family:SF Pro,SF Pro Display,SF Pro Text,sans-serif;font-size:13;text-anchor:middle;" transform="matrix(1 0 0 1 2339.98 322)">Bold</text>
-  <text style="stroke:none;fill:black;font-family:SF Pro,SF Pro Display,SF Pro Text,sans-serif;font-size:13;text-anchor:middle;" transform="matrix(1 0 0 1 2636.69 322)">Heavy</text>
-  <text style="stroke:none;fill:black;font-family:SF Pro,SF Pro Display,SF Pro Text,sans-serif;font-size:13;text-anchor:middle;" transform="matrix(1 0 0 1 2933.4 322)">Black</text>
-  <line style="fill:none;stroke:black;opacity:1;stroke-width:0.5;" x1="263" x2="3036" y1="1903" y2="1903"/>
-  <g transform="matrix(1 0 0 1 263 1933)">
-   <path d="M9.24805 0.830078Q10.8691 0.830078 12.2949 0.214844Q13.7207-0.400391 14.8096-1.49414Q15.8984-2.58789 16.5186-4.01367Q17.1387-5.43945 17.1387-7.05078Q17.1387-8.66211 16.5186-10.0879Q15.8984-11.5137 14.8047-12.6074Q13.7109-13.7012 12.2852-14.3164Q10.8594-14.9316 9.23828-14.9316Q7.62695-14.9316 6.20117-14.3164Q4.77539-13.7012 3.69141-12.6074Q2.60742-11.5137 1.9873-10.0879Q1.36719-8.66211 1.36719-7.05078Q1.36719-5.43945 1.9873-4.01367Q2.60742-2.58789 3.69629-1.49414Q4.78516-0.400391 6.21094 0.214844Q7.63672 0.830078 9.24805 0.830078ZM9.24805-0.654297Q7.91992-0.654297 6.7627-1.14746Q5.60547-1.64062 4.73145-2.51953Q3.85742-3.39844 3.36426-4.56055Q2.87109-5.72266 2.87109-7.05078Q2.87109-8.37891 3.35938-9.54102Q3.84766-10.7031 4.72168-11.582Q5.5957-12.4609 6.75293-12.9541Q7.91016-13.4473 9.23828-13.4473Q10.5762-13.4473 11.7334-12.9541Q12.8906-12.4609 13.7695-11.582Q14.6484-10.7031 15.1465-9.54102Q15.6445-8.37891 15.6445-7.05078Q15.6445-5.72266 15.1514-4.56055Q14.6582-3.39844 13.7842-2.51953Q12.9102-1.64062 11.748-1.14746Q10.5859-0.654297 9.24805-0.654297ZM5.83984-7.04102Q5.83984-6.71875 6.04492-6.51855Q6.25-6.31836 6.5918-6.31836L8.50586-6.31836L8.50586-4.39453Q8.50586-4.0625 8.70605-3.85742Q8.90625-3.65234 9.22852-3.65234Q9.56055-3.65234 9.76562-3.85742Q9.9707-4.0625 9.9707-4.39453L9.9707-6.31836L11.8945-6.31836Q12.2266-6.31836 12.4316-6.51855Q12.6367-6.71875 12.6367-7.04102Q12.6367-7.37305 12.4316-7.57812Q12.2266-7.7832 11.8945-7.7832L9.9707-7.7832L9.9707-9.69727Q9.9707-10.0391 9.76562-10.2441Q9.56055-10.4492 9.22852-10.4492Q8.90625-10.4492 8.70605-10.2441Q8.50586-10.0391 8.50586-9.69727L8.50586-7.7832L6.5918-7.7832Q6.25-7.7832 6.04492-7.57812Q5.83984-7.37305 5.83984-7.04102Z"/>
-  </g>
-  <g transform="matrix(1 0 0 1 281.867 1933)">
-   <path d="M11.709 2.91016Q13.75 2.91016 15.5518 2.12891Q17.3535 1.34766 18.7305-0.0292969Q20.1074-1.40625 20.8887-3.20801Q21.6699-5.00977 21.6699-7.05078Q21.6699-9.0918 20.8887-10.8936Q20.1074-12.6953 18.7305-14.0723Q17.3535-15.4492 15.5469-16.2305Q13.7402-17.0117 11.6992-17.0117Q9.6582-17.0117 7.85645-16.2305Q6.05469-15.4492 4.68262-14.0723Q3.31055-12.6953 2.5293-10.8936Q1.74805-9.0918 1.74805-7.05078Q1.74805-5.00977 2.5293-3.20801Q3.31055-1.40625 4.6875-0.0292969Q6.06445 1.34766 7.86621 2.12891Q9.66797 2.91016 11.709 2.91016ZM11.709 1.25Q9.98047 1.25 8.47656 0.605469Q6.97266-0.0390625 5.83496-1.17676Q4.69727-2.31445 4.05762-3.81836Q3.41797-5.32227 3.41797-7.05078Q3.41797-8.7793 4.05762-10.2832Q4.69727-11.7871 5.83008-12.9297Q6.96289-14.0723 8.4668-14.7119Q9.9707-15.3516 11.6992-15.3516Q13.4277-15.3516 14.9316-14.7119Q16.4355-14.0723 17.5781-12.9297Q18.7207-11.7871 19.3652-10.2832Q20.0098-8.7793 20.0098-7.05078Q20.0098-5.32227 19.3701-3.81836Q18.7305-2.31445 17.5928-1.17676Q16.4551-0.0390625 14.9463 0.605469Q13.4375 1.25 11.709 1.25ZM7.39258-7.04102Q7.39258-6.68945 7.62695-6.46484Q7.86133-6.24023 8.23242-6.24023L10.8789-6.24023L10.8789-3.57422Q10.8789-3.21289 11.1035-2.9834Q11.3281-2.75391 11.6797-2.75391Q12.0508-2.75391 12.2852-2.9834Q12.5195-3.21289 12.5195-3.57422L12.5195-6.24023L15.1758-6.24023Q15.5371-6.24023 15.7715-6.46484Q16.0059-6.68945 16.0059-7.04102Q16.0059-7.41211 15.7715-7.6416Q15.5371-7.87109 15.1758-7.87109L12.5195-7.87109L12.5195-10.5176Q12.5195-10.8984 12.2852-11.1279Q12.0508-11.3574 11.6797-11.3574Q11.3281-11.3574 11.1035-11.1279Q10.8789-10.8984 10.8789-10.5176L10.8789-7.87109L8.23242-7.87109Q7.85156-7.87109 7.62207-7.6416Q7.39258-7.41211 7.39258-7.04102Z"/>
-  </g>
-  <g transform="matrix(1 0 0 1 305.646 1933)">
-   <path d="M14.9707 5.66406Q17.0605 5.66406 18.96 5.01465Q20.8594 4.36523 22.4512 3.19336Q24.043 2.02148 25.2197 0.429688Q26.3965-1.16211 27.0459-3.06641Q27.6953-4.9707 27.6953-7.05078Q27.6953-9.14062 27.0459-11.04Q26.3965-12.9395 25.2197-14.5312Q24.043-16.123 22.4512-17.2998Q20.8594-18.4766 18.9551-19.126Q17.0508-19.7754 14.9609-19.7754Q12.8711-19.7754 10.9717-19.126Q9.07227-18.4766 7.48535-17.2998Q5.89844-16.123 4.72168-14.5312Q3.54492-12.9395 2.90039-11.04Q2.25586-9.14062 2.25586-7.05078Q2.25586-4.9707 2.90527-3.06641Q3.55469-1.16211 4.72656 0.429688Q5.89844 2.02148 7.49023 3.19336Q9.08203 4.36523 10.9814 5.01465Q12.8809 5.66406 14.9707 5.66406ZM14.9707 3.84766Q13.1641 3.84766 11.5283 3.2959Q9.89258 2.74414 8.53516 1.74805Q7.17773 0.751953 6.17676-0.610352Q5.17578-1.97266 4.62891-3.6084Q4.08203-5.24414 4.08203-7.05078Q4.08203-8.86719 4.62891-10.5029Q5.17578-12.1387 6.17188-13.501Q7.16797-14.8633 8.52539-15.8594Q9.88281-16.8555 11.5186-17.4023Q13.1543-17.9492 14.9609-17.9492Q16.7773-17.9492 18.4131-17.4023Q20.0488-16.8555 21.4111-15.8594Q22.7734-14.8633 23.7695-13.501Q24.7656-12.1387 25.3174-10.5029Q25.8691-8.86719 25.8691-7.05078Q25.8789-5.24414 25.332-3.6084Q24.7852-1.97266 23.7842-0.610352Q22.7832 0.751953 21.4209 1.74805Q20.0586 2.74414 18.4229 3.2959Q16.7871 3.84766 14.9707 3.84766ZM9.45312-7.04102Q9.45312-6.66016 9.71191-6.41113Q9.9707-6.16211 10.3711-6.16211L14.0625-6.16211L14.0625-2.46094Q14.0625-2.06055 14.3115-1.80664Q14.5605-1.55273 14.9414-1.55273Q15.3516-1.55273 15.6055-1.80664Q15.8594-2.06055 15.8594-2.46094L15.8594-6.16211L19.5605-6.16211Q19.9609-6.16211 20.2148-6.41113Q20.4688-6.66016 20.4688-7.04102Q20.4688-7.45117 20.2148-7.70508Q19.9609-7.95898 19.5605-7.95898L15.8594-7.95898L15.8594-11.6504Q15.8594-12.0605 15.6055-12.3145Q15.3516-12.5684 14.9414-12.5684Q14.5605-12.5684 14.3115-12.3096Q14.0625-12.0508 14.0625-11.6504L14.0625-7.95898L10.3711-7.95898Q9.96094-7.95898 9.70703-7.70508Q9.45312-7.45117 9.45312-7.04102Z"/>
-  </g>
-  <text style="stroke:none;fill:black;font-family:SF Pro,SF Pro Display,SF Pro Text,sans-serif;font-size:13;font-weight:bold;" transform="matrix(1 0 0 1 263 1953)">Design Variations</text>
-  <text style="stroke:none;fill:black;font-family:SF Pro,SF Pro Display,SF Pro Text,sans-serif;font-size:13;" transform="matrix(1 0 0 1 263 1971)">Symbols are supported in up to nine weights and three scales.</text>
-  <text style="stroke:none;fill:black;font-family:SF Pro,SF Pro Display,SF Pro Text,sans-serif;font-size:13;" transform="matrix(1 0 0 1 263 1989)">For optimal layout with text and other symbols, vertically align</text>
-  <text style="stroke:none;fill:black;font-family:SF Pro,SF Pro Display,SF Pro Text,sans-serif;font-size:13;" transform="matrix(1 0 0 1 263 2007)">symbols with the adjacent text.</text>
-  <line style="fill:none;stroke:#00AEEF;stroke-width:0.5;opacity:1.0;" x1="776" x2="776" y1="1919" y2="1933"/>
-  <g transform="matrix(1 0 0 1 776 1933)">
-   <path d="M3.31055 0.15625Q3.70117 0.15625 3.91602-0.00976562Q4.13086-0.175781 4.26758-0.585938L5.52734-4.0332L11.2891-4.0332L12.5488-0.585938Q12.6855-0.175781 12.9004-0.00976562Q13.1152 0.15625 13.4961 0.15625Q13.8867 0.15625 14.1162-0.0585938Q14.3457-0.273438 14.3457-0.644531Q14.3457-0.869141 14.2383-1.17188L9.6582-13.3691Q9.48242-13.8184 9.17969-14.043Q8.87695-14.2676 8.4082-14.2676Q7.5-14.2676 7.17773-13.3789L2.59766-1.16211Q2.49023-0.859375 2.49023-0.634766Q2.49023-0.263672 2.70996-0.0537109Q2.92969 0.15625 3.31055 0.15625ZM6.00586-5.51758L8.37891-12.0898L8.42773-12.0898L10.8008-5.51758Z"/>
-  </g>
-  <line style="fill:none;stroke:#00AEEF;stroke-width:0.5;opacity:1.0;" x1="793.197" x2="793.197" y1="1919" y2="1933"/>
-  <text style="stroke:none;fill:black;font-family:SF Pro,SF Pro Display,SF Pro Text,sans-serif;font-size:13;font-weight:bold;" transform="matrix(1 0 0 1 776 1953)">Margins</text>
-  <text style="stroke:none;fill:black;font-family:SF Pro,SF Pro Display,SF Pro Text,sans-serif;font-size:13;" transform="matrix(1 0 0 1 776 1971)">Leading and trailing margins on the left and right side of each symbol</text>
-  <text style="stroke:none;fill:black;font-family:SF Pro,SF Pro Display,SF Pro Text,sans-serif;font-size:13;" transform="matrix(1 0 0 1 776 1989)">can be adjusted by modifying the x-location of the margin guidelines.</text>
-  <text style="stroke:none;fill:black;font-family:SF Pro,SF Pro Display,SF Pro Text,sans-serif;font-size:13;" transform="matrix(1 0 0 1 776 2007)">Modifications are automatically applied proportionally to all</text>
-  <text style="stroke:none;fill:black;font-family:SF Pro,SF Pro Display,SF Pro Text,sans-serif;font-size:13;" transform="matrix(1 0 0 1 776 2025)">scales and weights.</text>
-  <g transform="matrix(1 0 0 1 1289 1933)">
-   <path d="M2.8418 1.86523L4.54102 3.57422Q5.18555 4.22852 5.90332 4.17969Q6.62109 4.13086 7.31445 3.35938L18.0078-8.42773L17.041-9.4043L6.42578 2.27539Q6.16211 2.57812 5.89355 2.61719Q5.625 2.65625 5.27344 2.30469L4.10156 1.14258Q3.75 0.791016 3.79395 0.522461Q3.83789 0.253906 4.14062-0.0195312L15.6152-10.8203L14.6387-11.7871L3.04688-0.898438Q2.30469-0.214844 2.25098 0.498047Q2.19727 1.21094 2.8418 1.86523ZM9.25781-16.3281Q8.94531-16.0254 8.90625-15.6348Q8.86719-15.2441 9.04297-14.9512Q9.21875-14.6777 9.55566-14.541Q9.89258-14.4043 10.3809-14.5215Q11.4746-14.7754 12.5977-14.7314Q13.7207-14.6875 14.7949-13.9844L14.209-12.5293Q13.9551-11.9043 14.0674-11.4404Q14.1797-10.9766 14.5801-10.5664L16.875-8.25195Q17.2363-7.88086 17.5781-7.82227Q17.9199-7.76367 18.3398-7.8418L19.4043-8.03711L20.0684-7.36328L20.0293-6.80664Q20-6.43555 20.1221-6.12305Q20.2441-5.81055 20.6055-5.44922L21.3672-4.70703Q21.7285-4.3457 22.1533-4.33105Q22.5781-4.31641 22.9297-4.66797L25.8398-7.58789Q26.1914-7.93945 26.1816-8.35449Q26.1719-8.76953 25.8105-9.13086L25.0391-9.89258Q24.6875-10.2539 24.3799-10.3857Q24.0723-10.5176 23.7109-10.4883L23.1348-10.4395L22.4902-11.0742L22.7344-12.1973Q22.832-12.6172 22.6953-12.9834Q22.5586-13.3496 22.1191-13.7891L19.9219-15.9766Q18.6719-17.2168 17.2607-17.8369Q15.8496-18.457 14.4189-18.4814Q12.9883-18.5059 11.665-17.959Q10.3418-17.4121 9.25781-16.3281ZM10.752-15.957Q11.6602-16.6211 12.7002-16.9043Q13.7402-17.1875 14.8047-17.085Q15.8691-16.9824 16.8701-16.5137Q17.8711-16.0449 18.7012-15.2051L21.1328-12.793Q21.3086-12.6172 21.3525-12.4512Q21.3965-12.2852 21.3379-12.0312L21.0156-10.5469L22.5195-9.0625L23.5059-9.12109Q23.6914-9.13086 23.7891-9.09668Q23.8867-9.0625 24.0332-8.91602L24.6094-8.33984L22.168-5.89844L21.5918-6.47461Q21.4453-6.62109 21.4062-6.71875Q21.3672-6.81641 21.377-7.01172L21.4453-7.98828L19.9512-9.47266L18.4277-9.21875Q18.1836-9.16992 18.042-9.2041Q17.9004-9.23828 17.7148-9.41406L15.7129-11.416Q15.5176-11.5918 15.4932-11.7529Q15.4688-11.9141 15.5859-12.1875L16.4648-14.2773Q15.293-15.3711 13.8281-15.791Q12.3633-16.2109 10.8398-15.7617Q10.7227-15.7324 10.6885-15.8057Q10.6543-15.8789 10.752-15.957Z"/>
-  </g>
-  <text style="stroke:none;fill:black;font-family:SF Pro,SF Pro Display,SF Pro Text,sans-serif;font-size:13;font-weight:bold;" transform="matrix(1 0 0 1 1289 1953)">Exporting</text>
-  <text style="stroke:none;fill:black;font-family:SF Pro,SF Pro Display,SF Pro Text,sans-serif;font-size:13;" transform="matrix(1 0 0 1 1289 1971)">Symbols should be outlined when exporting to ensure the</text>
-  <text style="stroke:none;fill:black;font-family:SF Pro,SF Pro Display,SF Pro Text,sans-serif;font-size:13;" transform="matrix(1 0 0 1 1289 1989)">design is preserved when submitting to Xcode.</text>
-  <text id="template-version" style="stroke:none;fill:black;font-family:SF Pro,SF Pro Display,SF Pro Text,sans-serif;font-size:13;text-anchor:end;" transform="matrix(1 0 0 1 3036 1933)">Template v.2.0</text>
-  <text style="stroke:none;fill:black;font-family:SF Pro,SF Pro Display,SF Pro Text,sans-serif;font-size:13;text-anchor:end;" transform="matrix(1 0 0 1 3036 1951)">Requires Xcode 13 or greater</text>
-  <text id="descriptive-name" style="stroke:none;fill:black;font-family:SF Pro,SF Pro Display,SF Pro Text,sans-serif;font-size:13;text-anchor:end;" transform="matrix(1 0 0 1 3036 1969)">Generated from incognito.cr</text>
-  <text style="stroke:none;fill:black;font-family:SF Pro,SF Pro Display,SF Pro Text,sans-serif;font-size:13;text-anchor:end;" transform="matrix(1 0 0 1 3036 1987)">Typeset at 100 points</text>
-  <text style="stroke:none;fill:black;font-family:SF Pro,SF Pro Display,SF Pro Text,sans-serif;font-size:13;" transform="matrix(1 0 0 1 263 726)">Small</text>
-  <text style="stroke:none;fill:black;font-family:SF Pro,SF Pro Display,SF Pro Text,sans-serif;font-size:13;" transform="matrix(1 0 0 1 263 1156)">Medium</text>
-  <text style="stroke:none;fill:black;font-family:SF Pro,SF Pro Display,SF Pro Text,sans-serif;font-size:13;" transform="matrix(1 0 0 1 263 1586)">Large</text>
- </g>
- <g id="Guides">
-  <g id="H-reference" style="fill:#27AAE1;stroke:none;" transform="matrix(1 0 0 1 339 696)">
-   <path d="M0.993347 0L3.6377 0L29.3282-67.1326L30.0301-67.1326L30.0301-70.459L28.1227-70.459ZM11.6882-24.4797L46.9818-24.4797L46.2311-26.7288L12.4382-26.7288ZM55.1193 0L57.7637 0L30.6381-70.459L29.4327-70.459L29.4327-67.1326Z"/>
-  </g>
-  <line id="Baseline-S" style="fill:none;stroke:#27AAE1;opacity:1;stroke-width:0.5;" x1="263" x2="3036" y1="696" y2="696"/>
-  <line id="Capline-S" style="fill:none;stroke:#27AAE1;opacity:1;stroke-width:0.5;" x1="263" x2="3036" y1="625.541" y2="625.541"/>
-  <g id="H-reference" style="fill:#27AAE1;stroke:none;" transform="matrix(1 0 0 1 339 1126)">
-   <path d="M0.993347 0L3.6377 0L29.3282-67.1326L30.0301-67.1326L30.0301-70.459L28.1227-70.459ZM11.6882-24.4797L46.9818-24.4797L46.2311-26.7288L12.4382-26.7288ZM55.1193 0L57.7637 0L30.6381-70.459L29.4327-70.459L29.4327-67.1326Z"/>
-  </g>
-  <line id="Baseline-M" style="fill:none;stroke:#27AAE1;opacity:1;stroke-width:0.5;" x1="263" x2="3036" y1="1126" y2="1126"/>
-  <line id="Capline-M" style="fill:none;stroke:#27AAE1;opacity:1;stroke-width:0.5;" x1="263" x2="3036" y1="1055.54" y2="1055.54"/>
-  <g id="H-reference" style="fill:#27AAE1;stroke:none;" transform="matrix(1 0 0 1 339 1556)">
-   <path d="M0.993347 0L3.6377 0L29.3282-67.1326L30.0301-67.1326L30.0301-70.459L28.1227-70.459ZM11.6882-24.4797L46.9818-24.4797L46.2311-26.7288L12.4382-26.7288ZM55.1193 0L57.7637 0L30.6381-70.459L29.4327-70.459L29.4327-67.1326Z"/>
-  </g>
-  <line id="Baseline-L" style="fill:none;stroke:#27AAE1;opacity:1;stroke-width:0.5;" x1="263" x2="3036" y1="1556" y2="1556"/>
-  <line id="Capline-L" style="fill:none;stroke:#27AAE1;opacity:1;stroke-width:0.5;" x1="263" x2="3036" y1="1485.54" y2="1485.54"/>
-  <line id="left-margin" style="fill:none;stroke:#00AEEF;stroke-width:0.5;opacity:1.0;" x1="1392.2" x2="1392.2" y1="1030.78" y2="1150.12"/>
-  <line id="right-margin" style="fill:none;stroke:#00AEEF;stroke-width:0.5;opacity:1.0;" x1="1507.49" x2="1507.49" y1="1030.78" y2="1150.12"/>
- </g>
- <g id="Symbols">
-  <g id="Black-L" transform="matrix(1 0 0 1 2854.26 1556)">
-   <path d="M104.61-103.582L124.54-54.2316L145.17-54.2316C150.01-54.2316 153.92-50.3116 153.92-45.4816C153.92-40.6416 150.01-36.7316 145.17-36.7316L13.12-36.7316C8.29-36.7316 4.37-40.6416 4.37-45.4816C4.37-50.3116 8.29-54.2316 13.12-54.2316L31.41-54.2316L51.15-103.552C53.34-109.262 59.56-112.332 65.43-110.602L77.88-106.942L90.34-110.612C96.19-112.332 102.4-109.282 104.61-103.582ZM90.2-92.3316L80.51-89.4716C79.63-89.2216 78.74-89.1016 77.87-89.1216L77.4997-89.1216C76.7561-89.1385 75.9957-89.2573 75.25-89.4716L75.25-89.4716L65.58-92.3216L50.16-54.2316L105.77-54.2316L90.2-92.3316ZM114.7-31.0816C130.12-31.0816 142.63-18.5816 142.63-3.15161C142.63 12.2784 130.12 24.7784 114.7 24.7784C102.85 24.7784 92.73 17.4084 88.67 6.99839C88.48 6.89839 88.29 6.79839 88.1 6.67839C83.18 3.64839 80.39 2.89839 78.3 2.89839C76.21 2.89839 73.42 3.64839 68.49 6.67839C68.31 6.78839 68.12 6.89839 67.93 6.99839C63.87 17.4084 53.75 24.7784 41.9 24.7784C26.47 24.7784 13.97 12.2784 13.97-3.15161C13.97-18.5816 26.47-31.0816 41.9-31.0816C53.98-31.0816 64.27-23.4116 68.17-12.6816C71.42-13.8916 74.76-14.6016 78.3-14.6016C81.83-14.6016 85.18-13.8916 88.43-12.6816C92.33-23.4116 102.62-31.0816 114.7-31.0816ZM41.9-13.5816C36.14-13.5816 31.47-8.91161 31.47-3.15161C31.47 2.60839 36.14 7.27839 41.9 7.27839C47.66 7.27839 52.33 2.60839 52.33-3.15161C52.33-8.91161 47.66-13.5816 41.9-13.5816ZM104.26-3.15161C104.26 2.60839 108.94 7.27839 114.7 7.27839C120.46 7.27839 125.13 2.60839 125.13-3.15161C125.13-8.91161 120.46-13.5816 114.7-13.5816C108.94-13.5816 104.26-8.91161 104.26-3.15161Z"/>
-  </g>
-  <g id="Heavy-L" transform="matrix(1 0 0 1 2558.54 1556)">
-   <path d="M102.67-103.114L122.85-53.1139L144.17-53.1139C148.45-53.1139 151.92-49.6539 151.92-45.3639C151.92-41.0839 148.45-37.6139 144.17-37.6139L12.12-37.6139C7.84-37.6139 4.37-41.0839 4.37-45.3639C4.37-49.6539 7.84-53.1139 12.12-53.1139L31.1-53.1139L31.11-53.1439L51.08-103.084C53.09-108.314 58.77-111.114 64.15-109.534L76.88-105.794L89.62-109.544C94.98-111.114 100.65-108.324 102.67-103.114ZM89.8-93.4339L79.23-90.3239C78.44-90.0939 77.65-89.9939 76.87-90.0139C76.1-89.9939 75.31-90.0939 74.53-90.3239L74.53-90.3239L63.97-93.4339L47.7-53.1139L106.23-53.1139L89.8-93.4339ZM113.7-30.9739C129.12-30.9739 141.63-18.4739 141.63-3.04393C141.63 12.3861 129.12 24.8861 113.7 24.8861C101.78 24.8861 91.6 17.4261 87.59 6.91607C82.62 3.85607 79.65 3.00607 77.3 3.00607C74.95 3.00607 71.98 3.85607 67.01 6.91607C63 17.4261 52.82 24.8861 40.9 24.8861C25.47 24.8861 12.97 12.3861 12.97-3.04393C12.97-18.4739 25.47-30.9739 40.9-30.9739C53.66-30.9739 64.43-22.4139 67.77-10.7239C70.85-11.8439 73.99-12.4939 77.3-12.4939C80.6-12.4939 83.75-11.8439 86.83-10.7239C90.17-22.4139 100.93-30.9739 113.7-30.9739ZM40.9-15.4739C34.03-15.4739 28.47-9.91393 28.47-3.04393C28.47 3.82607 34.03 9.38607 40.9 9.38607C47.77 9.38607 53.33 3.82607 53.33-3.04393C53.33-9.91393 47.77-15.4739 40.9-15.4739ZM101.26-3.04393C101.26 3.82607 106.83 9.38607 113.7 9.38607C120.56 9.38607 126.13 3.82607 126.13-3.04393C126.13-9.91393 120.56-15.4739 113.7-15.4739C106.83-15.4739 101.26-9.91393 101.26-3.04393Z"/>
-  </g>
-  <g id="Bold-L" transform="matrix(1 0 0 1 2263.33 1556)">
-   <path d="M62.22-107.952L75.38-104.082L88.54-107.952C93.15-109.302 98.04-106.902 99.78-102.422L119.98-52.3625C120.09-52.0625 120.18-51.7625 120.25-51.4725L142.67-51.4725C146.12-51.4725 148.92-48.6725 148.92-45.2225C148.92-41.7625 146.12-38.9725 142.67-38.9725L10.62-38.9725C7.17-38.9725 4.37-41.7625 4.37-45.2225C4.37-48.6725 7.17-51.4725 10.62-51.4725L30.72-51.4725C30.79-51.8025 30.88-52.1325 31.01-52.4625L50.98-102.392C52.71-106.892 57.6-109.312 62.22-107.952ZM89.2-95.1125L77.3-91.6125C76.66-91.4225 76.01-91.3425 75.38-91.3625C74.74-91.3425 74.09-91.4225 73.45-91.6125L73.45-91.6125L61.57-95.1125L44.02-51.4725L106.92-51.4725L89.2-95.1125ZM112.2-30.8225C127.62-30.8225 140.13-18.3225 140.13-2.89246C140.13 12.5375 127.62 25.0375 112.2 25.0375C99.47 25.0375 88.73 16.5275 85.36 4.88754C81.14 2.47754 78.27 1.65754 75.8 1.65754C73.33 1.65754 70.46 2.47754 66.24 4.88754C62.87 16.5275 52.13 25.0375 39.4 25.0375C23.97 25.0375 11.47 12.5375 11.47-2.89246C11.47-18.3225 23.97-30.8225 39.4-30.8225C52.69-30.8225 63.81-21.5425 66.64-9.11246C69.63-10.2125 72.65-10.8425 75.8-10.8425C78.95-10.8425 81.97-10.2125 84.96-9.11246C87.79-21.5425 98.91-30.8225 112.2-30.8225ZM39.4-18.3225C30.88-18.3225 23.97-11.4125 23.97-2.89246C23.97 5.62754 30.88 12.5375 39.4 12.5375C47.93 12.5375 54.83 5.62754 54.83-2.89246C54.83-11.4125 47.93-18.3225 39.4-18.3225ZM96.76-2.89246C96.76 5.62754 103.67 12.5375 112.2 12.5375C120.72 12.5375 127.63 5.62754 127.63-2.89246C127.63-11.4125 120.72-18.3225 112.2-18.3225C103.67-18.3225 96.76-11.4125 96.76-2.89246Z"/>
-  </g>
-  <g id="Semibold-L" transform="matrix(1 0 0 1 1967.37 1556)">
-   <path d="M98.33-102.085L119.16-50.6452L141.92-50.6452C144.96-50.6452 147.42-48.1752 147.42-45.1452C147.42-42.1052 144.96-39.6452 141.92-39.6452L115.53-39.6452C115.44-39.6352 115.36-39.6352 115.27-39.6452L34.53-39.6452C34.44-39.6352 34.36-39.6352 34.27-39.6452L9.87-39.6452C6.84-39.6452 4.37-42.1052 4.37-45.1452C4.37-48.1752 6.84-50.6452 9.87-50.6452L30.61-50.6452L50.93-102.015C52.51-106.165 57.01-108.405 61.27-107.145L74.63-103.215L88.01-107.155C92.24-108.395 96.72-106.195 98.33-102.085ZM88.91-95.9552L76.34-92.2552C75.77-92.0852 75.19-92.0152 74.63-92.0352C74.06-92.0152 73.49-92.0852 72.92-92.2552L72.92-92.2552L60.39-95.9452L42.38-50.6452L107.35-50.6452L88.91-95.9552ZM111.45-30.7452C126.87-30.7452 139.38-18.2452 139.38-2.81522C139.38 12.6148 126.87 25.1148 111.45 25.1148C98.35 25.1148 87.36 16.1048 84.34 3.95478C80.4 1.77478 77.56 0.984776 75.05 0.984776C72.53 0.984776 69.7 1.77478 65.76 3.95478C62.74 16.1048 51.75 25.1148 38.65 25.1148C23.22 25.1148 10.72 12.6148 10.72-2.81522C10.72-18.2452 23.22-30.7452 38.65-30.7452C52.2-30.7452 63.5-21.0952 66.05-8.29522C69.01-9.39522 71.97-10.0152 75.05-10.0152C78.13-10.0152 81.09-9.39522 84.05-8.29522C86.6-21.0952 97.9-30.7452 111.45-30.7452ZM38.65-19.7452C29.3-19.7452 21.72-12.1652 21.72-2.81522C21.72 6.53478 29.3 14.1148 38.65 14.1148C48 14.1148 55.58 6.53478 55.58-2.81522C55.58-12.1652 48-19.7452 38.65-19.7452ZM94.51-2.81522C94.51 6.53478 102.1 14.1148 111.45 14.1148C120.8 14.1148 128.38 6.53478 128.38-2.81522C128.38-12.1652 120.8-19.7452 111.45-19.7452C102.1-19.7452 94.51-12.1652 94.51-2.81522Z"/>
-  </g>
-  <g id="Medium-L" transform="matrix(1 0 0 1 1671.16 1556)">
-   <path d="M97.36-101.844L118.32-50.0841L141.42-50.0841C144.18-50.0841 146.42-47.8441 146.42-45.0841C146.42-42.3141 144.18-40.0841 141.42-40.0841L115.02-40.0841C114.94-40.0741 114.86-40.0741 114.79-40.0841L34.01-40.0841C33.94-40.0741 33.86-40.0741 33.78-40.0841L9.37-40.0841C6.61-40.0841 4.37-42.3141 4.37-45.0841C4.37-47.8441 6.61-50.0841 9.37-50.0841L30.45-50.0841L50.9-101.784C52.38-105.684 56.62-107.784 60.63-106.604L74.13-102.634L87.65-106.614C91.63-107.784 95.85-105.714 97.36-101.844ZM88.71-96.5041L75.7-92.6741C75.18-92.5241 74.64-92.4541 74.13-92.4741C73.61-92.4541 73.08-92.5241 72.56-92.6741L72.56-92.6741L59.58-96.4941L41.15-50.0841L107.58-50.0841L88.71-96.5041ZM110.95-30.6941C126.37-30.6941 138.88-18.1841 138.88-2.75409C138.88 12.6659 126.37 25.1759 110.95 25.1759C97.62 25.1759 86.48 15.8459 83.69 3.36591C79.9 1.32591 77.09 0.545906 74.55 0.545906C72.01 0.545906 69.2 1.32591 65.41 3.36591C62.62 15.8459 51.48 25.1759 38.15 25.1759C22.72 25.1759 10.22 12.6659 10.22-2.75409C10.22-18.1841 22.72-30.6941 38.15-30.6941C51.88-30.6941 63.3-20.7841 65.64-7.73409C68.58-8.83409 71.51-9.45409 74.55-9.45409C77.59-9.45409 80.52-8.83409 83.46-7.73409C85.8-20.7841 97.22-30.6941 110.95-30.6941ZM38.15-20.6941C28.25-20.6941 20.22-12.6641 20.22-2.75409C20.22 7.14591 28.25 15.1759 38.15 15.1759C48.06 15.1759 56.08 7.14591 56.08-2.75409C56.08-12.6641 48.06-20.6941 38.15-20.6941ZM93.01-2.75409C93.01 7.14591 101.04 15.1759 110.95 15.1759C120.85 15.1759 128.88 7.14591 128.88-2.75409C128.88-12.6641 120.85-20.6941 110.95-20.6941C101.04-20.6941 93.01-12.6641 93.01-2.75409Z"/>
-  </g>
-  <g id="Regular-L" transform="matrix(1 0 0 1 1375.45 1556)">
-   <path d="M95.43-100.383L116.63-47.9827L140.42-47.9827C142.63-47.9827 144.42-46.1827 144.42-43.9827C144.42-41.7727 142.63-39.9827 140.42-39.9827L113.99-39.9827C113.93-39.9727 113.87-39.9727 113.81-39.9827L32.99-39.9827C32.93-39.9727 32.87-39.9727 32.81-39.9827L8.37-39.9827C6.16-39.9827 4.37-41.7727 4.37-43.9827C4.37-46.1827 6.16-47.9827 8.37-47.9827L30.14-47.9827L50.83-100.323C52.13-103.743 55.84-105.583 59.35-104.543L73.13-100.493L86.93-104.553C90.42-105.583 94.11-103.763 95.43-100.383ZM88.31-96.6227L74.42-92.5327C73.99-92.4027 73.55-92.3527 73.13-92.3727C72.7-92.3527 72.27-92.4127 71.84-92.5327L71.84-92.5327L57.98-96.6127L38.7-47.9827L108.05-47.9827L88.31-96.6227ZM109.95-29.5927C125.37-29.5927 137.88-17.0827 137.88-1.65269C137.88 13.7673 125.37 26.2773 109.95 26.2773C96.18 26.2773 84.74 16.3173 82.44 3.20731C78.91 1.39731 76.14 0.647305 73.55 0.647305C70.96 0.647305 68.19 1.39731 64.66 3.19731C62.36 16.3173 50.92 26.2773 37.15 26.2773C21.72 26.2773 9.22 13.7673 9.22-1.65269C9.22-17.0827 21.72-29.5927 37.15-29.5927C51.23-29.5927 62.88-19.1727 64.81-5.62269C67.72-6.74269 70.59-7.35269 73.55-7.35269C76.51-7.35269 79.38-6.74269 82.29-5.62269C84.22-19.1727 95.87-29.5927 109.95-29.5927ZM37.15-21.5927C26.14-21.5927 17.22-12.6627 17.22-1.65269C17.22 9.34731 26.14 18.2773 37.15 18.2773C48.15 18.2773 57.08 9.35731 57.08-1.64269L57.08-1.64269L57.06-1.67269C57.07-1.68269 57.08-1.68269 57.08-1.69269C57.07-12.6827 48.15-21.5927 37.15-21.5927ZM90.01-1.64269C90.02 9.35731 98.94 18.2773 109.95 18.2773C120.96 18.2773 129.88 9.34731 129.88-1.65269C129.88-12.6627 120.96-21.5927 109.95-21.5927C98.95-21.5927 90.03-12.6827 90.01-1.69269C90.02-1.68269 90.03-1.68269 90.04-1.67269L90.01-1.64269Z"/>
-  </g>
-  <g id="Light-L" transform="matrix(1 0 0 1 1079.24 1556)">
-   <path d="M94.46-100.145L115.79-47.4253L139.92-47.4253C141.86-47.4253 143.42-45.8553 143.42-43.9253C143.42-41.9853 141.86-40.4253 139.92-40.4253L113.48-40.4253C113.43-40.4153 113.37-40.4153 113.32-40.4253L32.48-40.4253C32.43-40.4153 32.37-40.4153 32.32-40.4253L7.87-40.4253C5.94-40.4253 4.37-41.9853 4.37-43.9253C4.37-45.8553 5.94-47.4253 7.87-47.4253L29.99-47.4253L50.8-100.085C52.01-103.255 55.45-104.965 58.71-104.005L72.63-99.9153L86.57-104.015C89.81-104.965 93.24-103.285 94.46-100.145ZM88.11-97.1753L73.78-92.9553C73.39-92.8453 73.01-92.7953 72.63-92.8153C72.25-92.7953 71.86-92.8453 71.48-92.9553L71.48-92.9553L57.17-97.1653L37.48-47.4253L108.28-47.4253L88.11-97.1753ZM109.45-29.5353C124.87-29.5353 137.38-17.0253 137.38-1.59529C137.38 13.8247 124.87 26.3347 109.45 26.3347C95.46 26.3347 83.88 16.0547 81.83 2.64471C78.7 1.07471 76.12 0.334712 73.71 0.224712C70.9 0.094712 67.96 0.794712 64.26 2.64471C62.22 16.0547 50.63 26.3347 36.65 26.3347C21.22 26.3347 8.72 13.8247 8.72-1.59529C8.72-17.0253 21.22-29.5353 36.65-29.5353C50.91-29.5353 62.67-18.8553 64.37-5.05529C67.61-6.30529 70.76-6.92529 74.04-6.76529C76.62-6.64529 79.15-6.05529 81.73-5.05529C83.43-18.8553 95.19-29.5353 109.45-29.5353ZM36.65-22.5353C25.09-22.5353 15.72-13.1653 15.72-1.59529C15.72 9.96471 25.09 19.3347 36.65 19.3347C48.21 19.3347 57.58 9.96471 57.58-1.59529C57.58-13.1653 48.21-22.5353 36.65-22.5353ZM88.51-1.59529C88.51 9.96471 97.89 19.3347 109.45 19.3347C121.01 19.3347 130.38 9.96471 130.38-1.59529C130.38-13.1653 121.01-22.5353 109.45-22.5353C97.89-22.5353 88.51-13.1653 88.51-1.59529Z"/>
-  </g>
-  <g id="Thin-L" transform="matrix(1 0 0 1 783.527 1556)">
-   <path d="M92.527-99.674L114.106-46.324L138.92-46.324C140.301-46.324 141.42-45.204 141.42-43.824C141.42-42.434 140.301-41.324 138.92-41.324L112.455-41.324C112.417-41.314 112.378-41.314 112.34-41.324L31.454-41.324C31.416-41.314 31.377-41.314 31.339-41.324L6.87-41.324C5.489-41.324 4.37-42.434 4.37-43.824C4.37-45.204 5.489-46.324 6.87-46.324L29.674-46.324L50.729-99.634C51.751-102.314 54.666-103.764 57.421-102.954L71.626-98.774L85.851-102.954C88.59-103.764 91.49-102.334 92.527-99.674ZM87.869-97.864C87.774-98.104 87.511-98.234 87.262-98.154L87.262-98.154L72.492-93.814C72.202-93.734 71.909-93.704 71.624-93.714C71.34-93.704 71.048-93.734 70.759-93.814L70.759-93.814L56.01-98.154C55.76-98.224 55.495-98.094 55.402-97.854L55.402-97.854L35.024-46.324L108.739-46.324ZM108.444-29.434C123.872-29.434 136.378-16.924 136.378-1.49396C136.378 13.926 123.872 26.436 108.444 26.436C94.051 26.436 82.2 15.546 80.676 1.55604C77.716 0.146044 75.176-0.563956 72.752-0.673956C69.883-0.813956 66.943-0.123956 63.416 1.55604C61.893 15.546 50.042 26.436 35.648 26.436C20.221 26.436 7.714 13.926 7.714-1.49396C7.714-16.924 20.221-29.434 35.648-29.434C50.258-29.434 62.248-18.214 63.478-3.92396C66.702-5.20396 69.796-5.82396 72.987-5.67396C75.528-5.55396 78.032-4.94396 80.615-3.92396C81.844-18.214 93.834-29.434 108.444-29.434ZM35.648-24.434C22.982-24.434 12.714-14.164 12.714-1.49396C12.714 11.166 22.982 21.436 35.648 21.436C48.314 21.436 58.582 11.166 58.582-1.49396C58.582-14.164 48.314-24.434 35.648-24.434ZM85.512-1.29396C85.621 11.276 95.847 21.436 108.444 21.436C121.11 21.436 131.378 11.166 131.378-1.49396C131.378-14.164 121.11-24.434 108.444-24.434C95.798-24.434 85.542-14.194 85.511-1.55396C85.548-1.53396 85.586-1.51396 85.624-1.49396L85.512-1.29396Z"/>
-  </g>
-  <g id="Ultralight-L" transform="matrix(1 0 0 1 487.316 1556)">
-   <path d="M91.561-99.4365L113.264-45.7565L138.42-45.7565C139.525-45.7565 140.42-44.8665 140.42-43.7565C140.42-42.6565 139.525-41.7565 138.42-41.7565L6.37-41.7565C5.266-41.7565 4.37-42.6565 4.37-43.7565C4.37-44.8665 5.266-45.7565 6.37-45.7565L29.518-45.7565L50.696-99.3965C51.625-101.837 54.275-103.147 56.78-102.417L71.126-98.1965L85.492-102.417C87.982-103.147 90.619-101.857 91.561-99.4365ZM87.835-97.9865C87.646-98.4665 87.119-98.7265 86.621-98.5765L86.621-98.5765L71.851-94.2365C71.608-94.1665 71.363-94.1465 71.124-94.1565C70.887-94.1465 70.642-94.1665 70.4-94.2365L70.4-94.2365L55.651-98.5765C55.15-98.7265 54.62-98.4565 54.435-97.9665L54.435-97.9665L33.798-45.7565L108.971-45.7565ZM107.944-29.3765C123.372-29.3765 135.878-16.8665 135.878-1.43655C135.878 13.9835 123.372 26.4935 107.944 26.4935C93.352 26.4935 81.373 15.3035 80.119 1.03345C76.929-0.456549 74.182-1.13655 71.509-1.13655C68.86-1.12655 66.134-0.436549 62.973 1.03345C61.719 15.3035 49.74 26.4935 35.148 26.4935C19.721 26.4935 7.214 13.9835 7.214-1.43655C7.214-16.8665 19.721-29.3765 35.148-29.3765C49.936-29.3765 62.039-17.8865 63.018-3.34655C65.911-4.50655 68.679-5.12655 71.499-5.13655C74.352-5.13655 77.149-4.51655 80.075-3.34655C81.053-17.8865 93.157-29.3765 107.944-29.3765ZM35.148-25.3765C21.93-25.3765 11.214-14.6565 11.214-1.43655C11.214 11.7735 21.93 22.4935 35.148 22.4935C48.366 22.4935 59.082 11.7735 59.082-1.43655C59.082-14.6565 48.366-25.3765 35.148-25.3765ZM84.011-1.43655C84.011 11.7735 94.726 22.4935 107.944 22.4935C121.163 22.4935 131.878 11.7735 131.878-1.43655C131.878-14.6565 121.163-25.3765 107.944-25.3765C94.726-25.3765 84.011-14.6565 84.011-1.43655Z"/>
-  </g>
-  <g id="Black-M" transform="matrix(1 0 0 1 2872 1126)">
-   <path d="M68.87-91.2815L60.45-88.8015L52.04-91.2715C46.79-92.8215 41.24-90.0715 39.27-84.9715L24.95-47.7215L11.87-47.7215C7.73-47.7215 4.37-44.3615 4.37-40.2215C4.37-36.0715 7.73-32.7215 11.87-32.7215L110.93-32.7215C115.07-32.7215 118.43-36.0715 118.43-40.2215C118.43-44.3615 115.07-47.7215 110.93-47.7215L96.09-47.7215L81.62-85.0015C79.64-90.0915 74.1-92.8215 68.87-91.2815ZM41.02-47.7215L51.78-75.7115L58.21-73.8215C58.95-73.6015 59.71-73.5115 60.44-73.5215C61.18-73.5115 61.94-73.6015 62.68-73.8215L69.13-75.7215L80-47.7215L41.02-47.7215ZM88.07-29.4215C99.64-29.4215 109.02-20.0415 109.02-8.47151C109.02 3.09849 99.64 12.4885 88.07 12.4885C79.55 12.4885 72.22 7.39849 68.94 0.0984948C68.49-0.0715052 68.05-0.281505 67.63-0.541505C63.99-2.78151 62.08-3.24151 60.76-3.24151C59.45-3.24151 57.53-2.78151 53.9-0.541505C53.48-0.281505 53.04-0.0715052 52.59 0.0984948C49.31 7.39849 41.98 12.4885 33.46 12.4885C21.89 12.4885 12.51 3.09849 12.51-8.47151C12.51-20.0415 21.89-29.4215 33.46-29.4215C42.11-29.4215 49.54-24.1815 52.74-16.7015C55.29-17.6615 57.94-18.2415 60.76-18.2415C63.59-18.2415 66.24-17.6615 68.79-16.7015C71.99-24.1815 79.42-29.4215 88.07-29.4215ZM33.46-14.4215C30.17-14.4215 27.51-11.7615 27.51-8.47151C27.51-5.18151 30.17-2.51151 33.46-2.51151C36.75-2.51151 39.42-5.18151 39.42-8.47151C39.42-11.7615 36.75-14.4215 33.46-14.4215ZM82.11-8.47151C82.11-5.18151 84.78-2.51151 88.07-2.51151C91.36-2.51151 94.02-5.18151 94.02-8.47151C94.02-11.7615 91.36-14.4215 88.07-14.4215C84.78-14.4215 82.11-11.7615 82.11-8.47151Z"/>
-  </g>
-  <g id="Heavy-M" transform="matrix(1 0 0 1 2576.29 1126)">
-   <path d="M79.69-87.5338L94.4-49.6138L109.93-49.6138C113.52-49.6138 116.43-46.7038 116.43-43.1138C116.43-39.5238 113.52-36.6138 109.93-36.6138L10.87-36.6138C7.28-36.6138 4.37-39.5238 4.37-43.1138C4.37-46.7038 7.28-49.6138 10.87-49.6138L24.63-49.6138L39.21-87.5038C40.98-92.1238 46.01-94.6038 50.75-93.2138L59.45-90.6538L68.15-93.2138C72.89-94.6038 77.9-92.1338 79.69-87.5338ZM68.73-79.8338L61.4-77.6738C60.75-77.4838 60.09-77.4038 59.44-77.4138C58.8-77.4038 58.14-77.4838 57.49-77.6738L57.49-77.6738L50.18-79.8238L38.56-49.6138L80.46-49.6138L68.73-79.8338ZM87.07-32.3138C98.64-32.3138 108.02-22.9338 108.02-11.3638C108.02 0.206172 98.64 9.59617 87.07 9.59617C78.03 9.59617 70.33 3.86617 67.39-4.14383L67.15-4.28383L67.15-4.28383C63.45-6.56383 61.35-7.13383 59.76-7.13383C58.18-7.13383 56.08-6.56383 52.38-4.28383L52.14-4.14383L52.14-4.14383C49.2 3.86617 41.5 9.59617 32.46 9.59617C20.89 9.59617 11.51 0.206172 11.51-11.3638C11.51-22.9338 20.89-32.3138 32.46-32.3138C41.47-32.3138 49.14-26.6338 52.11-18.6638C54.57-19.5838 57.09-20.1338 59.76-20.1338C62.44-20.1338 64.96-19.5838 67.42-18.6638C70.39-26.6338 78.06-32.3138 87.07-32.3138ZM32.46-19.3138C28.07-19.3138 24.51-15.7538 24.51-11.3638C24.51-6.97383 28.07-3.40383 32.46-3.40383C36.85-3.40383 40.42-6.97383 40.42-11.3638C40.42-15.7538 36.85-19.3138 32.46-19.3138ZM79.11-11.3638C79.11-6.97383 82.68-3.40383 87.07-3.40383C91.46-3.40383 95.02-6.97383 95.02-11.3638C95.02-15.7538 91.46-19.3138 87.07-19.3138C82.68-19.3138 79.11-15.7538 79.11-11.3638Z"/>
-  </g>
-  <g id="Bold-M" transform="matrix(1 0 0 1 2280.58 1126)">
-   <path d="M77.75-84.0716L92.66-45.6616L92.72-45.5116L92.72-45.5116L108.93-45.5116C111.96-45.5116 114.43-43.0416 114.43-40.0116C114.43-36.9716 111.96-34.5116 108.93-34.5116L9.87-34.5116C6.84-34.5116 4.37-36.9716 4.37-40.0116C4.37-43.0416 6.84-45.5116 9.87-45.5116L24.33-45.5116C24.35-45.5816 24.38-45.6616 24.41-45.7316L39.14-84.0416C40.73-88.1816 45.22-90.4016 49.47-89.1516L58.45-86.5116L67.43-89.1516C71.67-90.4016 76.16-88.1916 77.75-84.0716ZM68.33-77.9516L60.12-75.5316C59.56-75.3716 59-75.3016 58.44-75.3116C57.89-75.3016 57.33-75.3716 56.77-75.5316L56.77-75.5316L48.58-77.9416L36.11-45.5116L80.92-45.5116L68.33-77.9516ZM86.07-29.2116C97.64-29.2116 107.02-19.8316 107.02-8.26157C107.02 3.30843 97.64 12.6884 86.07 12.6884C76.95 12.6884 69.19 6.86843 66.31-1.26157C62.76-3.40157 60.56-4.03157 58.77-4.03157C56.97-4.03157 54.77-3.40157 51.22-1.26157C48.34 6.86843 40.58 12.6884 31.46 12.6884C19.89 12.6884 10.51 3.30843 10.51-8.26157C10.51-19.8316 19.89-29.2116 31.46-29.2116C41.15-29.2116 49.3-22.6416 51.7-13.7116C53.99-14.5516 56.32-15.0316 58.77-15.0316C61.21-15.0316 63.54-14.5516 65.83-13.7116C68.23-22.6416 76.38-29.2116 86.07-29.2116ZM31.46-18.2116C25.96-18.2116 21.51-13.7616 21.51-8.26157C21.51-2.76157 25.96 1.68843 31.46 1.68843C36.96 1.68843 41.42-2.76157 41.42-8.26157C41.42-13.7616 36.96-18.2116 31.46-18.2116ZM76.11-8.26157C76.11-2.76157 80.57 1.68843 86.07 1.68843C91.57 1.68843 96.02-2.76157 96.02-8.26157C96.02-13.7616 91.57-18.2116 86.07-18.2116C80.57-18.2116 76.11-13.7616 76.11-8.26157Z"/>
-  </g>
-  <g id="Semibold-M" transform="matrix(1 0 0 1 1984.62 1126)">
-   <path d="M76.31-83.7226L91.21-45.3026C91.29-45.1026 91.36-44.8926 91.41-44.6826L108.18-44.6826C110.8-44.6826 112.93-42.5526 112.93-39.9326C112.93-37.3026 110.8-35.1826 108.18-35.1826L9.12-35.1826C6.5-35.1826 4.37-37.3026 4.37-39.9326C4.37-42.5526 6.5-44.6826 9.12-44.6826L24.15-44.6826C24.2-44.9126 24.27-45.1526 24.36-45.3826L39.09-83.6926C40.54-87.4626 44.64-89.4926 48.51-88.3526L57.7-85.6426L66.89-88.3526C70.76-89.4926 74.85-87.4726 76.31-83.7226ZM68.03-78.7826L59.16-76.1726C58.67-76.0326 58.18-75.9726 57.7-75.9826C57.21-75.9726 56.72-76.0326 56.24-76.1726L56.24-76.1726L47.38-78.7826L34.26-44.6826L81.27-44.6826L68.03-78.7826ZM85.32-29.1326C96.89-29.1326 106.27-19.7526 106.27-8.1826C106.27 3.3874 96.89 12.7774 85.32 12.7774C75.8 12.7774 67.77 6.4274 65.21-2.2526C62.02-4.0826 59.86-4.7026 58.02-4.7026C56.17-4.7026 54.01-4.0826 50.82-2.2526C48.26 6.4274 40.23 12.7774 30.71 12.7774C19.14 12.7774 9.76 3.3874 9.76-8.1826C9.76-19.7526 19.14-29.1326 30.71-29.1326C40.66-29.1326 48.99-22.2026 51.13-12.9026C53.38-13.7326 55.65-14.2026 58.02-14.2026C60.38-14.2026 62.65-13.7326 64.9-12.9026C67.04-22.2026 75.37-29.1326 85.32-29.1326ZM30.71-19.6326C24.39-19.6326 19.26-14.5026 19.26-8.1826C19.26-1.8526 24.39 3.2774 30.71 3.2774C37.04 3.2774 42.17-1.8526 42.17-8.1826C42.17-14.5026 37.04-19.6326 30.71-19.6326ZM73.86-8.1826C73.86-1.8526 78.99 3.2774 85.32 3.2774C91.64 3.2774 96.77-1.8526 96.77-8.1826C96.77-14.5026 91.64-19.6326 85.32-19.6326C78.99-19.6326 73.86-14.5026 73.86-8.1826Z"/>
-  </g>
-  <g id="Medium-M" transform="matrix(1 0 0 1 1688.41 1126)">
-   <path d="M75.34-83.4852L90.25-45.0652C90.37-44.7552 90.45-44.4352 90.49-44.1252L107.68-44.1252C110.02-44.1252 111.93-42.2152 111.93-39.8752C111.93-37.5252 110.02-35.6252 107.68-35.6252L8.62-35.6252C6.28-35.6252 4.37-37.5252 4.37-39.8752C4.37-42.2152 6.28-44.1252 8.62-44.1252L24.07-44.1252C24.11-44.4652 24.19-44.8052 24.32-45.1452L39.06-83.4552C40.41-86.9852 44.25-88.8752 47.87-87.8152L57.2-85.0652L66.53-87.8152C70.15-88.8752 73.98-86.9952 75.34-83.4852ZM67.83-79.3352L58.52-76.5952C58.08-76.4652 57.63-76.4152 57.2-76.4252C56.76-76.4152 56.32-76.4652 55.88-76.5952L55.88-76.5952L46.58-79.3352L33.04-44.1252L81.5-44.1252L67.83-79.3352ZM84.82-29.0752C96.39-29.0752 105.77-19.6952 105.77-8.12519C105.77 3.44481 96.39 12.8348 84.82 12.8348C75.06 12.8348 66.86 6.15481 64.53-2.87519C61.53-4.54519 59.39-5.14519 57.52-5.14519C55.64-5.14519 53.5-4.54519 50.5-2.87519C48.17 6.15481 39.97 12.8348 30.21 12.8348C18.64 12.8348 9.26 3.44481 9.26-8.12519C9.26-19.6952 18.64-29.0752 30.21-29.0752C40.34-29.0752 48.78-21.8952 50.74-12.3552C52.96-13.1752 55.19-13.6452 57.52-13.6452C59.84-13.6452 62.07-13.1752 64.29-12.3552C66.25-21.8952 74.69-29.0752 84.82-29.0752ZM30.21-20.5752C23.33-20.5752 17.76-15.0052 17.76-8.12519C17.76-1.24519 23.33 4.33481 30.21 4.33481C37.09 4.33481 42.67-1.24519 42.67-8.12519C42.67-15.0052 37.09-20.5752 30.21-20.5752ZM72.36-8.12519C72.36-1.24519 77.94 4.33481 84.82 4.33481C91.7 4.33481 97.27-1.24519 97.27-8.12519C97.27-15.0052 91.7-20.5752 84.82-20.5752C77.94-20.5752 72.36-15.0052 72.36-8.12519Z"/>
-  </g>
-  <g id="Regular-M" transform="matrix(1 0 0 1 1392.2 1126)">
-   <path d="M74.37-83.245L89.72-43.575L107.17-43.575C109.24-43.575 110.92-41.895 110.92-39.825C110.92-37.755 109.24-36.075 107.17-36.075L8.12-36.075C6.05-36.075 4.37-37.755 4.37-39.825C4.37-41.895 6.05-43.575 8.12-43.575L24.05-43.575L39.02-83.185C40.27-86.495 43.85-88.275 47.24-87.275L56.69-84.495L66.17-87.285C69.54-88.275 73.1-86.515 74.37-83.245ZM67.62-79.895L57.87-77.025C57.48-76.915 57.08-76.865 56.69-76.875C56.3-76.865 55.91-76.915 55.52-77.025L55.52-77.025L45.79-79.885L32.07-43.575L81.68-43.575L67.62-79.895ZM84.32-29.025C95.89-29.025 105.27-19.645 105.27-8.07499C105.27 3.49501 95.89 12.885 84.32 12.885C74.32 12.885 65.96 5.88501 63.87-3.48499C61.03-5.01499 58.92-5.59499 57.01-5.59499C55.11-5.59499 53-5.01499 50.16-3.48499C48.06 5.88501 39.7 12.885 29.71 12.885C18.14 12.885 8.75 3.49501 8.75-8.07499C8.75-19.645 18.14-29.025 29.71-29.025C40.01-29.025 48.57-21.595 50.33-11.805C52.54-12.635 54.73-13.095 57.01-13.095C59.29-13.095 61.49-12.635 63.69-11.805C65.45-21.595 74.02-29.025 84.32-29.025ZM29.71-21.525C22.28-21.525 16.25-15.505 16.25-8.07499C16.25-0.644988 22.28 5.38501 29.71 5.38501C37.14 5.38501 43.16-0.644988 43.16-8.07499C43.16-15.505 37.14-21.525 29.71-21.525ZM70.86-8.07499C70.86-0.644988 76.88 5.38501 84.32 5.38501C91.75 5.38501 97.77-0.644988 97.77-8.07499C97.77-15.505 91.75-21.525 84.32-21.525C76.88-21.525 70.86-15.505 70.86-8.07499Z"/>
-  </g>
-  <g id="Light-M" transform="matrix(1 0 0 1 1096.23 1126)">
-   <path d="M72.92-82.8952C71.8-85.8052 68.63-87.3652 65.64-86.4852L55.95-83.6352L46.27-86.4852C43.27-87.3652 40.09-85.7952 38.97-82.8752L23.59-42.7452L7.37-42.7452C5.72-42.7452 4.37-41.3952 4.37-39.7452C4.37-38.0852 5.72-36.7452 7.37-36.7452L106.43-36.7452C108.08-36.7452 109.43-38.0852 109.43-39.7452C109.43-41.3952 108.08-42.7452 106.43-42.7452L88.51-42.7452L72.92-82.8952ZM54.98-77.6652C55.3-77.5752 55.63-77.5352 55.95-77.5452C56.27-77.5352 56.59-77.5752 56.92-77.6652L67.33-80.7252L82.07-42.7452L30.02-42.7452L44.58-80.7252L54.98-77.6652ZM83.57-28.9452C95.14-28.9452 104.52-19.5652 104.52-7.99515C104.52 3.57485 95.14 12.9548 83.57 12.9548C73.24 12.9548 64.66 5.48485 62.93-4.34515C60.29-5.70515 58.21-6.26515 56.27-6.26515C54.32-6.26515 52.24-5.70515 49.6-4.34515C47.87 5.48485 39.29 12.9548 28.96 12.9548C17.39 12.9548 8.01 3.57485 8.01-7.99515C8.01-19.5652 17.39-28.9452 28.96-28.9452C39.52-28.9452 48.26-21.1352 49.71-10.9652C51.89-11.8052 54.04-12.2652 56.27-12.2652C58.49-12.2652 60.64-11.8052 62.82-10.9652C64.27-21.1352 73.01-28.9452 83.57-28.9452ZM28.96-22.9452C20.7-22.9452 14.01-16.2552 14.01-7.99515C14.01 0.264845 20.7 6.95485 28.96 6.95485C37.22 6.95485 43.91 0.274845 43.92-7.98515L43.92-7.98515L43.9-8.00515C43.9-8.01515 43.91-8.01515 43.92-8.01515C43.9-16.2652 37.21-22.9452 28.96-22.9452ZM68.61-7.98515C68.62 0.274845 75.31 6.95485 83.57 6.95485C91.83 6.95485 98.52 0.264845 98.52-7.99515C98.52-16.2552 91.83-22.9452 83.57-22.9452C75.32-22.9452 68.63-16.2652 68.61-8.01515C68.62-8.01515 68.63-8.01515 68.63-8.00515L68.61-7.98515Z"/>
-  </g>
-  <g id="Thin-M" transform="matrix(1 0 0 1 800.525 1126)">
-   <path d="M70.988-83.4266L86.822-42.6366L105.424-42.6366C106.529-42.6366 107.424-41.7366 107.424-40.6366C107.424-39.5266 106.529-38.6366 105.424-38.6366L6.37-38.6366C5.266-38.6366 4.37-39.5266 4.37-40.6366C4.37-41.7366 5.266-42.6366 6.37-42.6366L23.275-42.6366L38.904-83.4066C39.837-85.8366 42.483-87.1466 44.984-86.4166L54.945-83.4866L64.916-86.4166C67.409-87.1466 70.048-85.8566 70.988-83.4266ZM43.855-82.5766C43.355-82.7266 42.826-82.4666 42.639-81.9766L42.639-81.9766L27.559-42.6366L82.531-42.6366L67.259-81.9866C67.071-82.4666 66.544-82.7266 66.045-82.5766L66.045-82.5766L55.63-79.5166C55.401-79.4466 55.169-79.4266 54.944-79.4366C54.719-79.4266 54.488-79.4466 54.259-79.5166L54.259-79.5166ZM82.566-29.8366C94.138-29.8366 103.519-20.4566 103.519-8.88662C103.519 2.68338 94.138 12.0734 82.566 12.0734C71.818 12.0734 62.961 3.97338 61.752-6.44662C59.298-7.62662 57.239-8.15662 55.262-8.15662C53.285-8.15662 51.226-7.62662 48.772-6.44662C47.563 3.97338 38.706 12.0734 27.959 12.0734C16.386 12.0734 7.005 2.68338 7.005-8.88662C7.005-20.4566 16.386-29.8366 27.959-29.8366C38.874-29.8366 47.84-21.4966 48.823-10.8366C50.999-11.6966 53.105-12.1566 55.262-12.1566C57.419-12.1566 59.525-11.6966 61.701-10.8366C62.685-21.4966 71.65-29.8366 82.566-29.8366ZM27.959-25.8366C18.595-25.8366 11.005-18.2466 11.005-8.88662C11.005 0.473383 18.595 8.07338 27.959 8.07338C37.322 8.07338 44.912 0.473383 44.912-8.88662C44.912-18.2466 37.322-25.8366 27.959-25.8366ZM65.612-8.88662C65.612 0.473383 73.202 8.07338 82.566 8.07338C91.929 8.07338 99.519 0.473383 99.519-8.88662C99.519-18.2466 91.929-25.8366 82.566-25.8366C73.202-25.8366 65.612-18.2466 65.612-8.88662Z"/>
-  </g>
-  <g id="Ultralight-M" transform="matrix(1 0 0 1 504.565 1126)">
-   <path d="M69.539-86.0776L85.558-44.8076L104.673-44.8076C105.364-44.8076 105.923-44.2476 105.923-43.5576C105.923-42.8676 105.364-42.3076 104.673-42.3076L5.62-42.3076C4.929-42.3076 4.37-42.8676 4.37-43.5576C4.37-44.2476 4.929-44.8076 5.62-44.8076L23.04-44.8076L38.854-86.0576C39.647-88.1276 41.896-89.2376 44.022-88.6176L54.194-85.6276L64.377-88.6176C66.496-89.2376 68.74-88.1376 69.539-86.0776ZM67.208-85.1776C66.879-86.0176 65.955-86.4776 65.083-86.2176L65.083-86.2176L54.668-83.1576C54.509-83.1076 54.349-83.0976 54.193-83.1076C54.039-83.0976 53.879-83.1076 53.72-83.1576L53.72-83.1576L43.316-86.2176C42.441-86.4776 41.515-86.0176 41.189-85.1676L41.189-85.1676L25.718-44.8076L82.876-44.8076ZM81.815-32.7576C93.387-32.7576 102.769-23.3776 102.769-11.8076C102.769-0.237645 93.387 9.15235 81.815 9.15235C70.771 9.15235 61.723 0.602355 60.919-10.2376C58.594-11.3076 56.563-11.8176 54.579-11.8276C52.551-11.8376 50.48-11.3276 48.104-10.2376C47.3 0.602355 38.252 9.15235 27.208 9.15235C15.636 9.15235 6.254-0.237645 6.254-11.8076C6.254-23.3776 15.636-32.7576 27.208-32.7576C38.39-32.7576 47.526-23.9976 48.13-12.9676C50.346-13.8676 52.451-14.3376 54.593-14.3276C56.679-14.3176 58.734-13.8476 60.893-12.9676C61.497-23.9976 70.633-32.7576 81.815-32.7576ZM27.208-30.2576C17.016-30.2576 8.754-21.9976 8.754-11.8076C8.754-1.61765 17.016 6.65235 27.208 6.65235C37.4 6.65235 45.662-1.61765 45.662-11.8076C45.662-21.9976 37.4-30.2576 27.208-30.2576ZM63.361-11.8076C63.361-1.61765 71.623 6.65235 81.815 6.65235C92.007 6.65235 100.269-1.61765 100.269-11.8076C100.269-21.9976 92.007-30.2576 81.815-30.2576C71.623-30.2576 63.361-21.9976 63.361-11.8076Z"/>
-  </g>
-  <g id="Black-S" transform="matrix(1 0 0 1 2884.03 696)">
-   <path d="M65.59-73.9535L76.75-45.1985L88.37-45.1985C91.68-45.1985 94.37-42.5125 94.37-39.1985C94.37-35.8855 91.68-33.1985 88.37-33.1985L10.37-33.1985C7.06-33.1985 4.37-35.8855 4.37-39.1985C4.37-42.5125 7.06-45.1985 10.37-45.1985L20.6-45.1985L31.65-73.9255C33.33-78.3005 38.09-80.6525 42.59-79.3295L48.62-77.5545L54.66-79.3315C59.15-80.6515 63.9-78.3135 65.59-73.9535ZM55.4-67.0415L50.41-65.5725C49.81-65.3965 49.21-65.3185 48.62-65.3275C48.03-65.3195 47.43-65.3975 46.83-65.5725L46.83-65.5725L41.85-67.0365L33.46-45.1985L63.88-45.1985L55.4-67.0415ZM70.37-30.6985C79.48-30.6985 86.87-23.3115 86.87-14.1985C86.87-5.08651 79.48 2.30149 70.37 2.30149C63.61 2.30149 57.8-1.76551 55.25-7.58551C54.9-7.71751 54.56-7.88551 54.23-8.08951C51.37-9.84551 49.88-10.1985 48.87-10.1985C47.86-10.1985 46.37-9.84551 43.51-8.08851C43.18-7.88551 42.84-7.71751 42.49-7.58551C39.94-1.76551 34.13 2.30149 27.37 2.30149C18.26 2.30149 10.87-5.08651 10.87-14.1985C10.87-23.3115 18.26-30.6985 27.37-30.6985C34.08-30.6985 39.85-26.6965 42.43-20.9495C44.48-21.7295 46.6-22.1985 48.87-22.1985C51.14-22.1985 53.26-21.7295 55.31-20.9495C57.89-26.6965 63.66-30.6985 70.37-30.6985ZM27.37-18.6985C24.88-18.6985 22.87-16.6845 22.87-14.1985C22.87-11.7135 24.88-9.69851 27.37-9.69851C29.86-9.69851 31.87-11.7135 31.87-14.1985C31.87-16.6845 29.86-18.6985 27.37-18.6985ZM65.87-14.1985C65.87-11.7135 67.88-9.69851 70.37-9.69851C72.86-9.69851 74.87-11.7135 74.87-14.1985C74.87-16.6845 72.86-18.6985 70.37-18.6985C67.88-18.6985 65.87-16.6845 65.87-14.1985Z"/>
-  </g>
-  <g id="Heavy-S" transform="matrix(1 0 0 1 2588.32 696)">
-   <path d="M63.66-73.4845L75.06-44.0925L87.37-44.0925C90.13-44.0925 92.37-41.8535 92.37-39.0925C92.37-36.3305 90.13-34.0925 87.37-34.0925L9.37-34.0925C6.61-34.0925 4.37-36.3305 4.37-39.0925C4.37-41.8535 6.61-44.0925 9.37-44.0925L20.29-44.0925L31.58-73.4595C33.08-77.3495 37.31-79.4385 41.3-78.2635L47.62-76.4055L53.94-78.2655C57.93-79.4385 62.15-77.3605 63.66-73.4845ZM55-68.1535L49.13-66.4255C48.62-66.2775 48.12-66.2115 47.62-66.2215C47.12-66.2125 46.61-66.2775 46.11-66.4255L46.11-66.4255L40.25-68.1495L31-44.0925L64.34-44.0925L55-68.1535ZM69.37-30.5925C78.48-30.5925 85.87-23.2045 85.87-14.0925C85.87-4.97948 78.48 2.40752 69.37 2.40752C62.09 2.40752 55.91-2.30848 53.72-8.85248C50.82-10.6345 49.14-11.0925 47.87-11.0925C46.6-11.0925 44.92-10.6345 42.02-8.85248C39.83-2.30848 33.65 2.40752 26.37 2.40752C17.26 2.40752 9.87-4.97948 9.87-14.0925C9.87-23.2045 17.26-30.5925 26.37-30.5925C33.43-30.5925 39.46-26.1555 41.81-19.9175C43.76-20.6565 45.76-21.0925 47.87-21.0925C49.98-21.0925 51.98-20.6565 53.93-19.9175C56.28-26.1555 62.31-30.5925 69.37-30.5925ZM26.37-20.5925C22.78-20.5925 19.87-17.6825 19.87-14.0925C19.87-10.5025 22.78-7.59248 26.37-7.59248C29.96-7.59248 32.87-10.5025 32.87-14.0925C32.87-17.6825 29.96-20.5925 26.37-20.5925ZM62.87-14.0925C62.87-10.5025 65.78-7.59248 69.37-7.59248C72.96-7.59248 75.87-10.5025 75.87-14.0925C75.87-17.6825 72.96-20.5925 69.37-20.5925C65.78-20.5925 62.87-17.6825 62.87-14.0925Z"/>
-  </g>
-  <g id="Bold-S" transform="matrix(1 0 0 1 2292.11 696)">
-   <path d="M62.69-73.2507L74.22-43.5487L74.22-43.5387L86.87-43.5387C89.36-43.5387 91.37-41.5247 91.37-39.0387C91.37-36.5537 89.36-34.5387 86.87-34.5387L8.87-34.5387C6.38-34.5387 4.37-36.5537 4.37-39.0387C4.37-41.5247 6.38-43.5387 8.87-43.5387L20.13-43.5387L20.14-43.5667L20.16-43.6057L31.55-73.2267C32.95-76.8737 36.92-78.8327 40.66-77.7307L47.12-75.8317L53.58-77.7327C57.32-78.8327 61.28-76.8847 62.69-73.2507ZM54.8-68.7097L48.49-66.8517C48.03-66.7177 47.57-66.6587 47.12-66.6687C46.67-66.6597 46.21-66.7177 45.75-66.8517L45.75-66.8517L39.45-68.7057L29.77-43.5387L64.57-43.5387L54.8-68.7097ZM68.87-30.5387C77.98-30.5387 85.37-23.1517 85.37-14.0387C85.37-4.92673 77.98 2.46127 68.87 2.46127C61.79 2.46127 55.75-2.00273 53.41-8.27073C50.52-10.0367 48.77-10.5387 47.37-10.5387C45.97-10.5387 44.22-10.0367 41.33-8.27073C38.99-2.00273 32.95 2.46127 25.87 2.46127C16.76 2.46127 9.37-4.92673 9.37-14.0387C9.37-23.1517 16.76-30.5387 25.87-30.5387C33.44-30.5387 39.82-25.4447 41.76-18.4977C43.58-19.1577 45.43-19.5387 47.37-19.5387C49.31-19.5387 51.16-19.1577 52.98-18.4977C54.92-25.4447 61.3-30.5387 68.87-30.5387ZM25.87-21.5387C21.73-21.5387 18.37-18.1807 18.37-14.0387C18.37-9.89673 21.73-6.53873 25.87-6.53873C30.01-6.53873 33.37-9.89673 33.37-14.0387C33.37-18.1807 30.01-21.5387 25.87-21.5387ZM61.37-14.0387C61.37-9.89673 64.73-6.53873 68.87-6.53873C73.01-6.53873 76.37-9.89673 76.37-14.0387C76.37-18.1807 73.01-21.5387 68.87-21.5387C64.73-21.5387 61.37-18.1807 61.37-14.0387Z"/>
-  </g>
-  <g id="Semibold-S" transform="matrix(1 0 0 1 1995.65 696)">
-   <path d="M62.21-73.1391L73.74-43.4371L73.8-43.2671L73.8-43.2671L86.62-43.2671C88.97-43.2671 90.87-41.3641 90.87-39.0171C90.87-36.6701 88.97-34.7671 86.62-34.7671L8.62-34.7671C6.27-34.7671 4.37-36.6701 4.37-39.0171C4.37-41.3641 6.27-43.2671 8.62-43.2671L20.06-43.2671C20.08-43.3431 20.11-43.4191 20.14-43.4951L31.53-73.1151C32.89-76.6401 36.72-78.5341 40.34-77.4691L46.87-75.5491L53.4-77.4711C57.02-78.5341 60.85-76.6511 62.21-73.1391ZM54.7-68.9921L48.16-67.0701C47.73-66.9421 47.3-66.8871 46.87-66.8971C46.44-66.8881 46.01-66.9431 45.58-67.0701L45.58-67.0701L39.05-68.9891L29.16-43.2671L64.68-43.2671L54.7-68.9921ZM68.62-30.5171C77.73-30.5171 85.12-23.1301 85.12-14.0171C85.12-4.90509 77.73 2.48291 68.62 2.48291C61.4 2.48291 55.26-2.15909 53.02-8.62309C50.27-10.2701 48.54-10.7671 47.12-10.7671C45.7-10.7671 43.97-10.2701 41.22-8.62309C38.98-2.15909 32.84 2.48291 25.62 2.48291C16.51 2.48291 9.12-4.90509 9.12-14.0171C9.12-23.1301 16.51-30.5171 25.62-30.5171C33.28-30.5171 39.71-25.3041 41.58-18.2341C43.37-18.8901 45.2-19.2671 47.12-19.2671C49.04-19.2671 50.87-18.8901 52.66-18.2341C54.53-25.3041 60.96-30.5171 68.62-30.5171ZM25.62-22.0171C21.2-22.0171 17.62-18.4351 17.62-14.0171C17.62-9.59909 21.2-6.01709 25.62-6.01709C30.04-6.01709 33.62-9.59909 33.62-14.0171C33.62-18.4351 30.04-22.0171 25.62-22.0171ZM60.62-14.0171C60.62-9.59909 64.2-6.01709 68.62-6.01709C73.04-6.01709 76.62-9.59909 76.62-14.0171C76.62-18.4351 73.04-22.0171 68.62-22.0171C64.2-22.0171 60.62-18.4351 60.62-14.0171Z"/>
-  </g>
-  <g id="Medium-S" transform="matrix(1 0 0 1 1699.19 696)">
-   <path d="M61.39-73.7739L73.25-43.2149C73.3-43.1059 73.33-42.9959 73.36-42.8859L86.37-42.8859C88.58-42.8859 90.37-41.0949 90.37-38.8859C90.37-36.6769 88.58-34.8859 86.37-34.8859L8.37-34.8859C6.16-34.8859 4.37-36.6769 4.37-38.8859C4.37-41.0949 6.16-42.8859 8.37-42.8859L20-42.8859C20.03-43.0159 20.07-43.1449 20.12-43.2739L31.84-73.7549C32.97-76.6719 36.14-78.2399 39.14-77.3579L46.62-75.1569L54.11-77.3589C57.1-78.2389 60.27-76.6809 61.39-73.7739ZM54.6-69.1659L47.84-67.1779C47.44-67.0579 47.02-67.0059 46.62-67.0159C46.21-67.0069 45.8-67.0579 45.4-67.1779L45.4-67.1779L38.65-69.1619L28.55-42.8859L64.8-42.8859L54.6-69.1659ZM68.37-30.3859C77.48-30.3859 84.87-22.9989 84.87-13.8859C84.87-4.77295 77.48 2.61405 68.37 2.61405C61.01 2.61405 54.78-2.20195 52.65-8.85295C50.02-10.3949 48.31-10.8859 46.87-10.8859C45.43-10.8859 43.72-10.3949 41.09-8.85295C38.96-2.20195 32.73 2.61405 25.37 2.61405C16.26 2.61405 8.87-4.77295 8.87-13.8859C8.87-22.9989 16.26-30.3859 25.37-30.3859C33.11-30.3859 39.61-25.0529 41.39-17.8589C43.17-18.5129 44.98-18.8859 46.87-18.8859C48.76-18.8859 50.57-18.5129 52.35-17.8589C54.13-25.0529 60.63-30.3859 68.37-30.3859ZM25.37-22.3859C20.68-22.3859 16.87-18.5799 16.87-13.8859C16.87-9.19195 20.68-5.38595 25.37-5.38595C30.06-5.38595 33.87-9.19195 33.87-13.8859C33.87-18.5799 30.06-22.3859 25.37-22.3859ZM59.87-13.8859C59.87-9.19195 63.68-5.38595 68.37-5.38595C73.06-5.38595 76.87-9.19195 76.87-13.8859C76.87-18.5799 73.06-22.3859 68.37-22.3859C63.68-22.3859 59.87-18.5799 59.87-13.8859Z"/>
-  </g>
-  <g id="Regular-S" transform="matrix(1 0 0 1 1402.97 696)">
-   <path d="M60.76-70.7877L72.29-41.0857C72.37-40.8717 72.43-40.6547 72.47-40.4377L85.87-40.4377C87.8-40.4377 89.37-38.8707 89.37-36.9377C89.37-35.0047 87.8-33.4377 85.87-33.4377L7.87-33.4377C5.94-33.4377 4.37-35.0047 4.37-36.9377C4.37-38.8707 5.94-40.4377 7.87-40.4377L19.9-40.4377C19.94-40.6747 20-40.9127 20.09-41.1457L31.48-70.7667C32.7-73.9267 36.13-75.6247 39.38-74.6697L46.12-72.6877L52.87-74.6717C56.11-75.6247 59.54-73.9367 60.76-70.7877ZM54.4-67.8267L47.2-65.7097C46.84-65.6027 46.48-65.5577 46.12-65.5677C45.76-65.5587 45.4-65.6037 45.04-65.7097L45.04-65.7097L37.85-67.8237L27.32-40.4377L65.03-40.4377L54.4-67.8267ZM67.87-28.4377C76.98-28.4377 84.37-21.0507 84.37-11.9377C84.37-2.8247 76.98 4.5623 67.87 4.5623C60.26 4.5623 53.85-0.591697 51.95-7.5997C49.53-8.9617 47.84-9.4377 46.37-9.4377C44.9-9.4377 43.21-8.9617 40.79-7.5997C38.89-0.591697 32.48 4.5623 24.87 4.5623C15.76 4.5623 8.37-2.8247 8.37-11.9377C8.37-21.0507 15.76-28.4377 24.87-28.4377C32.79-28.4377 39.4-22.8597 41-15.4197C42.76-16.0697 44.53-16.4377 46.37-16.4377C48.21-16.4377 49.98-16.0697 51.74-15.4197C53.34-22.8597 59.95-28.4377 67.87-28.4377ZM24.87-21.4377C19.62-21.4377 15.37-17.1847 15.37-11.9377C15.37-6.6907 19.62-2.4377 24.87-2.4377C30.12-2.4377 34.37-6.6907 34.37-11.9377C34.37-17.1847 30.12-21.4377 24.87-21.4377ZM58.37-11.9377C58.37-6.6907 62.62-2.4377 67.87-2.4377C73.12-2.4377 77.37-6.6907 77.37-11.9377C77.37-17.1847 73.12-21.4377 67.87-21.4377C62.62-21.4377 58.37-17.1847 58.37-11.9377Z"/>
-  </g>
-  <g id="Light-S" transform="matrix(1 0 0 1 1107.26 696)">
-   <path d="M58.82-70.2837L70.59-39.3357L84.87-39.3357C86.25-39.3357 87.37-38.2167 87.37-36.8357C87.37-35.4547 86.25-34.3357 84.87-34.3357L6.87-34.3357C5.49-34.3357 4.37-35.4547 4.37-36.8357C4.37-38.2167 5.49-39.3357 6.87-39.3357L19.65-39.3357L31.42-70.2837C32.44-72.9687 35.35-74.4157 38.11-73.6057L45.12-71.5437L52.13-73.6057C54.89-74.4157 57.8-72.9687 58.82-70.2837ZM54.15-68.5067C54.06-68.7507 53.79-68.8817 53.54-68.8087L53.54-68.8087L45.92-66.5667C45.65-66.4877 45.38-66.4567 45.12-66.4667C44.86-66.4567 44.59-66.4887 44.32-66.5667L44.32-66.5667L36.7-68.8087C36.45-68.8817 36.18-68.7507 36.09-68.5067L36.09-68.5067L25-39.3357L65.24-39.3357ZM66.87-28.3357C75.98-28.3357 83.37-20.9487 83.37-11.8357C83.37-2.7227 75.98 4.6643 66.87 4.6643C58.8 4.6643 52.08-1.1347 50.65-8.7957C48.54-9.8917 46.89-10.3357 45.37-10.3357C43.85-10.3357 42.2-9.8917 40.09-8.7957C38.66-1.1347 31.94 4.6643 23.87 4.6643C14.76 4.6643 7.37-2.7227 7.37-11.8357C7.37-20.9487 14.76-28.3357 23.87-28.3357C32.14-28.3357 38.99-22.2527 40.18-14.3187C41.91-14.9747 43.61-15.3357 45.37-15.3357C47.13-15.3357 48.83-14.9747 50.56-14.3187C51.75-22.2527 58.6-28.3357 66.87-28.3357ZM23.87-23.3357C17.52-23.3357 12.37-18.1867 12.37-11.8357C12.37-5.4847 17.52-0.335701 23.87-0.335701C30.22-0.335701 35.37-5.4847 35.37-11.8357C35.37-18.1867 30.22-23.3357 23.87-23.3357ZM55.37-11.8357C55.37-5.4847 60.52-0.335701 66.87-0.335701C73.22-0.335701 78.37-5.4847 78.37-11.8357C78.37-18.1867 73.22-23.3357 66.87-23.3357C60.52-23.3357 55.37-18.1867 55.37-11.8357Z"/>
-  </g>
-  <g id="Thin-S" transform="matrix(1 0 0 1 811.427 696)">
-   <path d="M57.131-70.88L69.116-39.368L83.995-39.368C84.892-39.368 85.62-38.641 85.62-37.743C85.62-36.846 84.892-36.118 83.995-36.118L5.995-36.118C5.098-36.118 4.37-36.846 4.37-37.743C4.37-38.641 5.098-39.368 5.995-39.368L19.374-39.368L31.359-70.88C32.218-73.138 34.67-74.355 36.987-73.673L44.245-71.539L51.503-73.673C53.82-74.355 56.272-73.138 57.131-70.88ZM54.093-69.725C53.838-70.396 53.109-70.758 52.42-70.555L52.42-70.555L44.799-68.314C44.614-68.259 44.426-68.239 44.244-68.25C44.062-68.24 43.876-68.26 43.691-68.314L43.691-68.314L36.07-70.555C35.381-70.758 34.652-70.396 34.397-69.725L34.397-69.725L22.852-39.368L65.638-39.368ZM65.995-29.243C75.108-29.243 82.495-21.856 82.495-12.743C82.495-3.63 75.108 3.757 65.995 3.757C57.552 3.757 50.591-2.584 49.613-10.763C47.748-11.665 46.178-12.084 44.68-12.116C43.066-12.15 41.392-11.737 39.377-10.763C38.399-2.584 31.438 3.757 22.995 3.757C13.882 3.757 6.495-3.63 6.495-12.743C6.495-21.856 13.882-29.243 22.995-29.243C31.572-29.243 38.621-22.698 39.42-14.33C41.22-15.04 42.96-15.403 44.749-15.365C46.363-15.331 47.943-14.971 49.57-14.33C50.369-22.698 57.418-29.243 65.995-29.243ZM22.995-25.993C15.677-25.993 9.745-20.061 9.745-12.743C9.745-5.425 15.677 0.506995 22.995 0.506995C30.313 0.506995 36.245-5.425 36.245-12.743C36.245-20.061 30.313-25.993 22.995-25.993ZM52.745-12.743C52.745-5.425 58.677 0.506995 65.995 0.506995C73.313 0.506995 79.245-5.425 79.245-12.743C79.245-20.061 73.313-25.993 65.995-25.993C58.677-25.993 52.745-20.061 52.745-12.743Z"/>
-  </g>
-  <g id="Ultralight-S" transform="matrix(1 0 0 1 515.216 696)">
-   <path d="M56.163-70.6485L68.271-38.8145L83.495-38.8145C84.116-38.8145 84.62-38.3105 84.62-37.6895C84.62-37.0675 84.116-36.5645 83.495-36.5645L5.495-36.5645C4.874-36.5645 4.37-37.0675 4.37-37.6895C4.37-38.3105 4.874-38.8145 5.495-38.8145L19.219-38.8145L31.327-70.6485C32.093-72.6625 34.279-73.7475 36.346-73.1395L43.745-70.9635L51.144-73.1395C53.211-73.7475 55.397-72.6625 56.163-70.6485ZM35.711-70.9815C34.772-71.2575 33.778-70.7645 33.43-69.8485L33.43-69.8485L21.626-38.8145L65.864-38.8145L54.06-69.8485C53.712-70.7645 52.718-71.2575 51.779-70.9815L51.779-70.9815L44.158-68.7395C44.02-68.6985 43.88-68.6865 43.744-68.6975C43.609-68.6865 43.47-68.6995 43.332-68.7395L43.332-68.7395ZM65.495-29.1895C74.608-29.1895 81.995-21.8015 81.995-12.6895C81.995-3.57652 74.608 3.81048 65.495 3.81048C56.853 3.81048 49.763-2.83252 49.053-11.2905C47.261-12.1245 45.702-12.5295 44.191-12.5625C42.554-12.5965 40.881-12.1955 38.937-11.2905C38.227-2.83252 31.137 3.81048 22.495 3.81048C13.382 3.81048 5.995-3.57652 5.995-12.6895C5.995-21.8015 13.382-29.1895 22.495-29.1895C31.25-29.1895 38.412-22.3705 38.961-13.7545C40.765-14.4825 42.483-14.8485 44.239-14.8115C45.828-14.7775 47.394-14.4145 49.029-13.7545C49.578-22.3705 56.74-29.1895 65.495-29.1895ZM22.495-26.9395C14.625-26.9395 8.245-20.5595 8.245-12.6895C8.245-4.81952 14.625 1.56048 22.495 1.56048C30.365 1.56048 36.745-4.81952 36.745-12.6895C36.745-20.5595 30.365-26.9395 22.495-26.9395ZM51.245-12.6895C51.245-4.81952 57.625 1.56048 65.495 1.56048C73.365 1.56048 79.745-4.81952 79.745-12.6895C79.745-20.5595 73.365-26.9395 65.495-26.9395C57.625-26.9395 51.245-20.5595 51.245-12.6895Z"/>
-  </g>
- </g>
-</svg>
diff --git a/ios/chrome/search_widget_extension/search_action_view.h b/ios/chrome/search_widget_extension/search_action_view.h
deleted file mode 100644
index 4201a099..0000000
--- a/ios/chrome/search_widget_extension/search_action_view.h
+++ /dev/null
@@ -1,28 +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 IOS_CHROME_SEARCH_WIDGET_EXTENSION_SEARCH_ACTION_VIEW_H_
-#define IOS_CHROME_SEARCH_WIDGET_EXTENSION_SEARCH_ACTION_VIEW_H_
-
-#import <UIKit/UIKit.h>
-
-#import "ios/chrome/common/ui/elements/highlight_button.h"
-
-// View for an action to launch the app from the widget. Represented as a
-// circular icon and a label. When tapped it calls `actionSelector` in `target`.
-@interface SearchActionView : HighlightButton
-
-// Designated initializer, creates the action view with a `target` and
-// `selector` to act on. The image with name `imageName` is shown in the
-// circular icon. The `title` is shown beneath the icon.
-- (instancetype)initWithActionTarget:(id)target
-                      actionSelector:(SEL)actionSelector
-                               title:(NSString*)title
-                              symbol:(UIImage*)symbol NS_DESIGNATED_INITIALIZER;
-- (instancetype)initWithFrame:(CGRect)frame NS_UNAVAILABLE;
-- (instancetype)initWithCoder:(NSCoder*)aDecoder NS_UNAVAILABLE;
-
-@end
-
-#endif  // IOS_CHROME_SEARCH_WIDGET_EXTENSION_SEARCH_ACTION_VIEW_H_
diff --git a/ios/chrome/search_widget_extension/search_action_view.mm b/ios/chrome/search_widget_extension/search_action_view.mm
deleted file mode 100644
index 3eb86b5e..0000000
--- a/ios/chrome/search_widget_extension/search_action_view.mm
+++ /dev/null
@@ -1,117 +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.
-
-#import "ios/chrome/search_widget_extension/search_action_view.h"
-
-#import <NotificationCenter/NotificationCenter.h>
-
-#import "base/check.h"
-#import "ios/chrome/common/ui/util/constraints_ui_util.h"
-#import "ios/chrome/search_widget_extension/search_widget_constants.h"
-
-namespace {
-
-const CGFloat kActionButtonSize = 55;
-const CGFloat kIconSize = 35;
-
-}  // namespace
-
-@implementation SearchActionView
-
-- (instancetype)initWithActionTarget:(id)target
-                      actionSelector:(SEL)actionSelector
-                               title:(NSString*)title
-                              symbol:(UIImage*)symbol {
-  DCHECK(target);
-  self = [super initWithFrame:CGRectZero];
-  if (self) {
-    self.translatesAutoresizingMaskIntoConstraints = NO;
-
-    UIVibrancyEffect* primaryEffect = nil;
-    UIVibrancyEffect* secondaryEffect = nil;
-    UIVibrancyEffect* iconBackgroundEffect = nil;
-    primaryEffect = [UIVibrancyEffect
-        widgetEffectForVibrancyStyle:UIVibrancyEffectStyleLabel];
-    secondaryEffect = [UIVibrancyEffect
-        widgetEffectForVibrancyStyle:UIVibrancyEffectStyleSecondaryLabel];
-    iconBackgroundEffect = [UIVibrancyEffect
-        widgetEffectForVibrancyStyle:UIVibrancyEffectStyleTertiaryFill];
-
-    DCHECK(primaryEffect);
-    DCHECK(secondaryEffect);
-    DCHECK(iconBackgroundEffect);
-
-    UIVisualEffectView* primaryEffectView =
-        [[UIVisualEffectView alloc] initWithEffect:primaryEffect];
-    UIVisualEffectView* secondaryEffectView =
-        [[UIVisualEffectView alloc] initWithEffect:secondaryEffect];
-    UIVisualEffectView* iconBackgroundEffectView =
-        [[UIVisualEffectView alloc] initWithEffect:iconBackgroundEffect];
-    for (UIVisualEffectView* effectView in @[
-           primaryEffectView, secondaryEffectView, iconBackgroundEffectView
-         ]) {
-      effectView.translatesAutoresizingMaskIntoConstraints = NO;
-      effectView.userInteractionEnabled = NO;
-    }
-
-    UIView* circleView = [[UIView alloc] initWithFrame:CGRectZero];
-    circleView.translatesAutoresizingMaskIntoConstraints = NO;
-    circleView.backgroundColor = UIColor.whiteColor;
-    circleView.layer.cornerRadius = kActionButtonSize / 2;
-    [iconBackgroundEffectView.contentView addSubview:circleView];
-    AddSameConstraints(iconBackgroundEffectView.contentView, circleView);
-
-    UILabel* labelView = [[UILabel alloc] initWithFrame:CGRectZero];
-    labelView.translatesAutoresizingMaskIntoConstraints = NO;
-    labelView.text = title;
-    labelView.numberOfLines = 0;
-    labelView.textAlignment = NSTextAlignmentCenter;
-    labelView.font = [UIFont preferredFontForTextStyle:UIFontTextStyleCaption2];
-    labelView.isAccessibilityElement = NO;
-    [labelView
-        setContentCompressionResistancePriority:UILayoutPriorityRequired
-                                        forAxis:UILayoutConstraintAxisVertical];
-    [secondaryEffectView.contentView addSubview:labelView];
-    AddSameConstraints(secondaryEffectView.contentView, labelView);
-
-    UIStackView* stack = [[UIStackView alloc] initWithArrangedSubviews:@[
-      iconBackgroundEffectView, secondaryEffectView
-    ]];
-    stack.axis = UILayoutConstraintAxisVertical;
-    stack.spacing = kIconSpacing;
-    stack.alignment = UIStackViewAlignmentCenter;
-    stack.translatesAutoresizingMaskIntoConstraints = NO;
-    stack.userInteractionEnabled = NO;
-    [self addSubview:stack];
-    AddSameConstraints(self, stack);
-
-    symbol = [symbol imageWithRenderingMode:UIImageRenderingModeAlwaysTemplate];
-    UIImageView* icon = [[UIImageView alloc] initWithImage:symbol];
-    icon.contentMode = UIViewContentModeCenter;
-    icon.translatesAutoresizingMaskIntoConstraints = NO;
-    [primaryEffectView.contentView addSubview:icon];
-    AddSameConstraints(primaryEffectView.contentView, icon);
-    [self addSubview:primaryEffectView];
-
-    [NSLayoutConstraint activateConstraints:@[
-      [circleView.widthAnchor constraintEqualToConstant:kActionButtonSize],
-      [circleView.heightAnchor constraintEqualToConstant:kActionButtonSize],
-      [icon.widthAnchor constraintEqualToConstant:kIconSize],
-      [icon.heightAnchor constraintEqualToConstant:kIconSize],
-      [icon.centerXAnchor constraintEqualToAnchor:circleView.centerXAnchor],
-      [icon.centerYAnchor constraintEqualToAnchor:circleView.centerYAnchor],
-    ]];
-
-    self.userInteractionEnabled = YES;
-    [self addTarget:target
-                  action:actionSelector
-        forControlEvents:UIControlEventTouchUpInside];
-    self.accessibilityLabel = title;
-
-    self.highlightableViews = @[ circleView, labelView, icon ];
-  }
-  return self;
-}
-
-@end
diff --git a/ios/chrome/search_widget_extension/search_widget_constants.h b/ios/chrome/search_widget_extension/search_widget_constants.h
deleted file mode 100644
index e70111e..0000000
--- a/ios/chrome/search_widget_extension/search_widget_constants.h
+++ /dev/null
@@ -1,14 +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.
-
-#ifndef IOS_CHROME_SEARCH_WIDGET_EXTENSION_SEARCH_WIDGET_CONSTANTS_H_
-#define IOS_CHROME_SEARCH_WIDGET_EXTENSION_SEARCH_WIDGET_CONSTANTS_H_
-
-// The spacing to use between action icons.
-extern CGFloat const kIconSpacing;
-
-// The spacing between content and edges.
-extern CGFloat const kContentMargin;
-
-#endif  // IOS_CHROME_SEARCH_WIDGET_EXTENSION_SEARCH_WIDGET_CONSTANTS_H_
diff --git a/ios/chrome/search_widget_extension/search_widget_constants.mm b/ios/chrome/search_widget_extension/search_widget_constants.mm
deleted file mode 100644
index 4f65657..0000000
--- a/ios/chrome/search_widget_extension/search_widget_constants.mm
+++ /dev/null
@@ -1,10 +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.
-
-#import <UIKit/UIKit.h>
-
-#import "ios/chrome/search_widget_extension/search_widget_constants.h"
-
-CGFloat const kIconSpacing = 5;
-CGFloat const kContentMargin = 12;
diff --git a/ios/chrome/search_widget_extension/search_widget_extension_localize_strings_config.plist b/ios/chrome/search_widget_extension/search_widget_extension_localize_strings_config.plist
index 4770b04..4f56bd1 100644
--- a/ios/chrome/search_widget_extension/search_widget_extension_localize_strings_config.plist
+++ b/ios/chrome/search_widget_extension/search_widget_extension_localize_strings_config.plist
@@ -4,29 +4,12 @@
 <dict>
 	<key>headers</key>
 	<array>
-		<string>ios/search_widget_extension/grit/ios_search_widget_extension_strings.h</string>
 		<string>ios/search_widget_extension/grit/ios_search_widget_extension_branded_strings.h</string>
 	</array>
 	<key>outputs</key>
 	<array>
 		<dict>
 			<key>name</key>
-			<string>Localizable.strings</string>
-			<key>strings</key>
-			<array>
-				<string>IDS_IOS_NEW_SEARCH</string>
-				<string>IDS_IOS_INCOGNITO_SEARCH</string>
-				<string>IDS_IOS_VOICE_SEARCH</string>
-				<string>IDS_IOS_SCAN_QR_CODE</string>
-				<string>IDS_IOS_NO_COPIED_CONTENT_TITLE</string>
-				<string>IDS_IOS_NO_COPIED_CONTENT_MESSAGE</string>
-				<string>IDS_IOS_OPEN_COPIED_LINK</string>
-				<string>IDS_IOS_OPEN_COPIED_TEXT</string>
-				<string>IDS_IOS_OPEN_COPIED_IMAGE</string>
-			</array>
-		</dict>
-		<dict>
-			<key>name</key>
 			<string>InfoPlist.strings</string>
 			<key>strings</key>
 			<array>
@@ -38,6 +21,14 @@
 				</dict>
 			</array>
 		</dict>
+		<dict>
+			<key>name</key>
+			<string>Localizable.strings</string>
+			<key>strings</key>
+			<array>
+				<string>IDS_IOS_SEARCH_WIDGET_LABEL</string>
+			</array>
+		</dict>
 	</array>
 </dict>
 </plist>
diff --git a/ios/chrome/search_widget_extension/search_widget_view.h b/ios/chrome/search_widget_extension/search_widget_view.h
deleted file mode 100644
index b5d89ca..0000000
--- a/ios/chrome/search_widget_extension/search_widget_view.h
+++ /dev/null
@@ -1,52 +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 IOS_CHROME_SEARCH_WIDGET_EXTENSION_SEARCH_WIDGET_VIEW_H_
-#define IOS_CHROME_SEARCH_WIDGET_EXTENSION_SEARCH_WIDGET_VIEW_H_
-
-#import <UIKit/UIKit.h>
-
-typedef NS_ENUM(NSInteger, CopiedContentType);
-
-// Protocol to be implemented by targets for user actions coming from the search
-// widget view.
-@protocol SearchWidgetViewActionTarget
-
-// Called when the user taps the Search button.
-- (void)openSearch:(id)sender;
-// Called when the user taps the Incognito Search button.
-- (void)openIncognito:(id)sender;
-// Called when the user taps the Voice Search button.
-- (void)openVoice:(id)sender;
-// Called when the user taps the QR Code button.
-- (void)openQRCode:(id)sender;
-// Called when the user taps the Open Copied URL section.
-- (void)openCopiedContent:(id)sender;
-
-@end
-
-// View for the search widget, shows two sections. The first section is a row of
-// ways to launch the app. The second section displays the current copied URL.
-@interface SearchWidgetView : UIView
-
-// Designated initializer, creates the widget view with a `target` for user
-// actions. `compactHeight` indicates the size to use in compact display.
-- (instancetype)initWithActionTarget:(id<SearchWidgetViewActionTarget>)target
-                       compactHeight:(CGFloat)compactHeight
-    NS_DESIGNATED_INITIALIZER;
-- (instancetype)initWithFrame:(CGRect)frame NS_UNAVAILABLE;
-- (instancetype)initWithCoder:(NSCoder*)aDecoder NS_UNAVAILABLE;
-
-// Changes the display mode of the view to compact of expanded.
-- (void)showMode:(BOOL)compact;
-
-// Gets the height of the widget.
-- (CGFloat)widgetHeight;
-
-// Sets the copied content type.
-- (void)setCopiedContentType:(CopiedContentType)type;
-
-@end
-
-#endif  // IOS_CHROME_SEARCH_WIDGET_EXTENSION_SEARCH_WIDGET_VIEW_H_
diff --git a/ios/chrome/search_widget_extension/search_widget_view.mm b/ios/chrome/search_widget_extension/search_widget_view.mm
deleted file mode 100644
index ea45e1d..0000000
--- a/ios/chrome/search_widget_extension/search_widget_view.mm
+++ /dev/null
@@ -1,227 +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.
-
-#import "ios/chrome/search_widget_extension/search_widget_view.h"
-#import "base/check.h"
-#import "ios/chrome/search_widget_extension/copied_content_view.h"
-#import "ios/chrome/search_widget_extension/search_action_view.h"
-#import "ios/chrome/search_widget_extension/search_widget_constants.h"
-
-namespace {
-
-const CGFloat kMaxContentSize = 421;
-
-UIImage* CreateSymbol(NSString* symbol_name, bool system_symbol) {
-  UIImageConfiguration* configuration = [UIImageSymbolConfiguration
-      configurationWithPointSize:24
-                          weight:UIImageSymbolWeightMedium
-                           scale:UIImageSymbolScaleMedium];
-  if (system_symbol) {
-    return [UIImage systemImageNamed:symbol_name
-                   withConfiguration:configuration];
-  }
-  return [UIImage imageNamed:symbol_name
-                    inBundle:nil
-           withConfiguration:configuration];
-}
-
-}  // namespace
-
-@interface SearchWidgetView ()
-// The content displayed in the actions section.
-@property(nonatomic, strong) UIView* actionsContent;
-// The actions section. Can be bigger than the content within.
-@property(nonatomic, strong) UIView* actionsSection;
-// The copied URL section. Fits its contents.
-@property(nonatomic, strong) CopiedContentView* copiedURLSection;
-// The height used in the compact display mode.
-@property(nonatomic) CGFloat compactHeight;
-// The target for actions in the view.
-@property(nonatomic, weak) id<SearchWidgetViewActionTarget> target;
-// The actions section height constraint. Set its constant to modify the action
-// section's height.
-@property(nonatomic, strong) NSLayoutConstraint* actionsSectionHeightConstraint;
-
-// Sets up the widget UI in compact mode.
-- (void)createUI;
-
-// Creates the views for the action buttons.
-- (void)createActionsView;
-
-// Returns the height of the action content.
-- (CGFloat)actionContentHeight;
-
-// Returns the height of the copied URL section.
-- (CGFloat)copiedURLSectionHeight;
-
-// Returns the height to use for the action section, depending on the display
-// mode.
-- (CGFloat)actionSectionHeight:(BOOL)compact;
-
-@end
-
-@implementation SearchWidgetView
-
-- (instancetype)initWithActionTarget:(id<SearchWidgetViewActionTarget>)target
-                       compactHeight:(CGFloat)compactHeight {
-  self = [super initWithFrame:CGRectZero];
-  if (self) {
-    DCHECK(target);
-    _target = target;
-    _compactHeight = compactHeight;
-    [self createUI];
-  }
-  return self;
-}
-
-#pragma mark - UI creation
-
-- (void)createUI {
-  [self createActionsView];
-  _actionsSection.translatesAutoresizingMaskIntoConstraints = NO;
-  [self addSubview:_actionsSection];
-
-  _copiedURLSection = [[CopiedContentView alloc]
-      initWithActionTarget:self.target
-            actionSelector:@selector(openCopiedContent:)];
-  [self addSubview:_copiedURLSection];
-
-  _actionsSectionHeightConstraint = [self.actionsSection.heightAnchor
-      constraintEqualToConstant:[self actionSectionHeight:YES]];
-
-  [NSLayoutConstraint activateConstraints:@[
-    [_actionsSection.topAnchor constraintEqualToAnchor:self.topAnchor],
-    [_actionsSection.bottomAnchor
-        constraintEqualToAnchor:_copiedURLSection.topAnchor],
-
-    [self.leadingAnchor
-        constraintEqualToAnchor:self.actionsSection.leadingAnchor],
-    [self.leadingAnchor
-        constraintEqualToAnchor:self.copiedURLSection.leadingAnchor],
-    [self.trailingAnchor
-        constraintEqualToAnchor:self.actionsSection.trailingAnchor],
-    [self.trailingAnchor
-        constraintEqualToAnchor:self.copiedURLSection.trailingAnchor],
-    _actionsSectionHeightConstraint,
-  ]];
-}
-
-- (CGFloat)actionSectionHeight:(BOOL)compact {
-  if (compact) {
-    return self.compactHeight;
-  }
-  CGFloat contentHeight = [self actionContentHeight];
-  CGFloat copiedURLHeight = [self copiedURLSectionHeight];
-  CGFloat height = contentHeight + copiedURLHeight;
-  if (height >= self.compactHeight) {
-    return contentHeight;
-  }
-  return self.compactHeight - copiedURLHeight;
-}
-
-- (CGFloat)actionContentHeight {
-  [self.actionsContent setNeedsLayout];
-  [self.actionsContent layoutIfNeeded];
-  CGFloat height =
-      [self.actionsContent
-          systemLayoutSizeFittingSize:UILayoutFittingCompressedSize]
-          .height;
-  return height + 2 * kContentMargin;
-}
-
-- (CGFloat)copiedURLSectionHeight {
-  [self.copiedURLSection setNeedsLayout];
-  [self.copiedURLSection layoutIfNeeded];
-  CGFloat height =
-      [self.copiedURLSection
-          systemLayoutSizeFittingSize:UILayoutFittingCompressedSize]
-          .height;
-  return height;
-}
-
-- (void)createActionsView {
-  UIStackView* actionsContentStack =
-      [[UIStackView alloc] initWithArrangedSubviews:@[
-        [[SearchActionView alloc]
-            initWithActionTarget:self.target
-                  actionSelector:@selector(openSearch:)
-                           title:NSLocalizedString(@"IDS_IOS_NEW_SEARCH",
-                                                   @"New Search")
-                          symbol:CreateSymbol(@"magnifyingglass", YES)],
-        [[SearchActionView alloc]
-            initWithActionTarget:self.target
-                  actionSelector:@selector(openIncognito:)
-                           title:NSLocalizedString(@"IDS_IOS_INCOGNITO_SEARCH",
-                                                   @"Incognito Search")
-                          symbol:CreateSymbol(@"quick_action_incognito", NO)],
-        [[SearchActionView alloc]
-            initWithActionTarget:self.target
-                  actionSelector:@selector(openVoice:)
-                           title:NSLocalizedString(@"IDS_IOS_VOICE_SEARCH",
-                                                   @"Voice Search")
-                          symbol:CreateSymbol(@"mic", YES)],
-        [[SearchActionView alloc]
-            initWithActionTarget:self.target
-                  actionSelector:@selector(openQRCode:)
-                           title:NSLocalizedString(@"IDS_IOS_SCAN_QR_CODE",
-                                                   @"Scan QR Code")
-                          symbol:CreateSymbol(@"qrcode", YES)],
-      ]];
-
-  actionsContentStack.axis = UILayoutConstraintAxisHorizontal;
-  actionsContentStack.alignment = UIStackViewAlignmentTop;
-  actionsContentStack.distribution = UIStackViewDistributionFillEqually;
-  actionsContentStack.spacing = kIconSpacing;
-  actionsContentStack.layoutMargins = UIEdgeInsetsZero;
-  actionsContentStack.layoutMarginsRelativeArrangement = YES;
-  actionsContentStack.translatesAutoresizingMaskIntoConstraints = NO;
-
-  self.actionsContent = actionsContentStack;
-
-  self.actionsSection = [[UIView alloc] initWithFrame:CGRectZero];
-  self.actionsSection.translatesAutoresizingMaskIntoConstraints = NO;
-  [self.actionsSection addSubview:self.actionsContent];
-
-  // These constraints stretch the action row to the full width of the widget.
-  // Their priority is < UILayoutPriorityRequired so that they can break when
-  // the view is larger than kMaxContentSize.
-  NSLayoutConstraint* actionsLeadingConstraint =
-      [self.actionsContent.leadingAnchor
-          constraintEqualToAnchor:self.actionsSection.leadingAnchor
-                         constant:kContentMargin];
-  actionsLeadingConstraint.priority = UILayoutPriorityDefaultHigh;
-  NSLayoutConstraint* actionsTrailingConstraint =
-      [self.actionsContent.trailingAnchor
-          constraintEqualToAnchor:self.actionsSection.trailingAnchor
-                         constant:-kContentMargin];
-  actionsTrailingConstraint.priority = UILayoutPriorityDefaultHigh;
-
-  [NSLayoutConstraint activateConstraints:@[
-    [self.actionsSection.centerYAnchor
-        constraintEqualToAnchor:self.actionsContent.centerYAnchor],
-    [self.actionsContent.centerXAnchor
-        constraintEqualToAnchor:self.actionsSection.centerXAnchor],
-    [self.actionsContent.widthAnchor
-        constraintLessThanOrEqualToConstant:kMaxContentSize],
-    actionsLeadingConstraint,
-    actionsTrailingConstraint,
-  ]];
-}
-
-#pragma mark - SearchWidgetView
-
-- (void)showMode:(BOOL)compact {
-  self.actionsSectionHeightConstraint.constant =
-      [self actionSectionHeight:compact];
-}
-
-- (CGFloat)widgetHeight {
-  return [self actionContentHeight] + [self copiedURLSectionHeight];
-}
-
-- (void)setCopiedContentType:(CopiedContentType)type {
-  [self.copiedURLSection setCopiedContentType:type];
-}
-
-@end
diff --git a/ios/chrome/search_widget_extension/search_widget_view_controller.mm b/ios/chrome/search_widget_extension/search_widget_view_controller.mm
index a3f3a06..455375d 100644
--- a/ios/chrome/search_widget_extension/search_widget_view_controller.mm
+++ b/ios/chrome/search_widget_extension/search_widget_view_controller.mm
@@ -7,274 +7,58 @@
 #import "base/apple/foundation_util.h"
 #import "base/notreached.h"
 #import "base/strings/sys_string_conversions.h"
-#import "components/open_from_clipboard/clipboard_recent_content_impl_ios.h"
-#import "ios/chrome/common/app_group/app_group_command.h"
-#import "ios/chrome/common/app_group/app_group_constants.h"
-#import "ios/chrome/common/app_group/app_group_field_trial_version.h"
-#import "ios/chrome/common/app_group/app_group_metrics.h"
 #import "ios/chrome/common/crash_report/crash_helper.h"
 #import "ios/chrome/common/ui/util/constraints_ui_util.h"
-#import "ios/chrome/common/ui/util/image_util.h"
-#import "ios/chrome/search_widget_extension/copied_content_view.h"
-#import "ios/chrome/search_widget_extension/search_widget_view.h"
 
-@interface SearchWidgetViewController ()<SearchWidgetViewActionTarget>
-@property(nonatomic, weak) SearchWidgetView* widgetView;
-@property(nonatomic) CopiedContentType copiedContentType;
-@property(nonatomic, strong)
-    ClipboardRecentContentImplIOS* clipboardRecentContent;
-@property(nonatomic, copy, nullable) NSDictionary* fieldTrialValues;
-// Whether the current default search engine supports search by image
-@property(nonatomic, assign) BOOL supportsSearchByImage;
-@property(nonatomic, strong) AppGroupCommand* command;
-
-@end
+namespace {
+// This constant indicates is horizontal margin between the current view and the
+// content.
+const CGFloat kLeadingAnchorConstant = 10;
+}  // namespace
 
 @implementation SearchWidgetViewController
 
+#pragma mark - UIViewController
+
 + (void)initialize {
   if (self == [SearchWidgetViewController self]) {
     crash_helper::common::StartCrashpad();
   }
 }
 
-- (instancetype)init {
-  self = [super init];
-  if (self) {
-    _clipboardRecentContent = [[ClipboardRecentContentImplIOS alloc]
-               initWithMaxAge:1 * 60 * 60
-            authorizedSchemes:[NSSet setWithObjects:@"http", @"https", nil]
-                 userDefaults:app_group::GetGroupUserDefaults()
-        onlyUseClipboardAsync:NO
-                     delegate:nil];
-    _copiedContentType = CopiedContentTypeNone;
-    _command = [[AppGroupCommand alloc]
-        initWithSourceApp:app_group::kOpenCommandSourceSearchExtension
-           URLOpenerBlock:^(NSURL* openURL) {
-             [self.extensionContext openURL:openURL completionHandler:nil];
-           }];
-  }
-  return self;
-}
-
-#pragma mark - UIViewController
-
 - (void)viewDidLoad {
   [super viewDidLoad];
-  DCHECK(self.extensionContext);
+  self.view.translatesAutoresizingMaskIntoConstraints = NO;
 
-  CGFloat height =
-      [self.extensionContext
-          widgetMaximumSizeForDisplayMode:NCWidgetDisplayModeCompact]
-          .height;
+  UIVibrancyEffect* labelEffect = nil;
+  labelEffect = [UIVibrancyEffect
+      widgetEffectForVibrancyStyle:UIVibrancyEffectStyleSecondaryLabel];
 
-  // A local variable is necessary here as the property is declared weak and the
-  // object would be deallocated before being retained by the addSubview call.
-  SearchWidgetView* widgetView =
-      [[SearchWidgetView alloc] initWithActionTarget:self compactHeight:height];
-  self.widgetView = widgetView;
-  [self.view addSubview:self.widgetView];
-  [self updateWidget];
+  UIVisualEffectView* titleLabelEffectView =
+      [[UIVisualEffectView alloc] initWithEffect:labelEffect];
+  titleLabelEffectView.translatesAutoresizingMaskIntoConstraints = NO;
+  [self.view addSubview:titleLabelEffectView];
+  AddSameConstraints(self.view, titleLabelEffectView);
 
-  self.extensionContext.widgetLargestAvailableDisplayMode =
-      NCWidgetDisplayModeExpanded;
+  UILabel* updateExtensionLabel = [[UILabel alloc] initWithFrame:CGRectZero];
+  updateExtensionLabel.font =
+      [UIFont preferredFontForTextStyle:UIFontTextStyleFootnote];
+  updateExtensionLabel.textAlignment = NSTextAlignmentCenter;
+  updateExtensionLabel.numberOfLines = 0;
+  updateExtensionLabel.userInteractionEnabled = NO;
+  updateExtensionLabel.text =
+      NSLocalizedString(@"IDS_IOS_SEARCH_WIDGET_LABEL", @"");
+  updateExtensionLabel.translatesAutoresizingMaskIntoConstraints = NO;
+  [titleLabelEffectView.contentView addSubview:updateExtensionLabel];
 
-  self.widgetView.translatesAutoresizingMaskIntoConstraints = NO;
-
-  AddSameConstraints(self.view, self.widgetView);
+  [NSLayoutConstraint activateConstraints:@[
+    [updateExtensionLabel.centerXAnchor
+        constraintEqualToAnchor:self.view.centerXAnchor],
+    [updateExtensionLabel.centerYAnchor
+        constraintEqualToAnchor:self.view.centerYAnchor],
+    [updateExtensionLabel.leadingAnchor
+        constraintGreaterThanOrEqualToAnchor:self.view.leadingAnchor
+                                    constant:kLeadingAnchorConstant]
+  ]];
 }
-
-- (void)viewWillAppear:(BOOL)animated {
-  [super viewWillAppear:animated];
-  [self registerWidgetDisplay];
-  [self updateWidget];
-
-  // `widgetActiveDisplayMode` does not contain a valid value in viewDidLoad. By
-  // the time viewWillAppear is called, it is correct, so set the mode here.
-  BOOL initiallyCompact = [self.extensionContext widgetActiveDisplayMode] ==
-                          NCWidgetDisplayModeCompact;
-  [self.widgetView showMode:initiallyCompact];
-}
-
-- (void)widgetPerformUpdateWithCompletionHandler:
-    (void (^)(NCUpdateResult))completionHandler {
-  [self updateWidgetWithCompletionHandler:^(BOOL updates) {
-    completionHandler(updates ? NCUpdateResultNewData : NCUpdateResultNoData);
-  }];
-}
-
-- (void)updateWidget {
-  [self updateWidgetWithCompletionHandler:^(BOOL updates) {
-    if (updates && self.extensionContext.widgetActiveDisplayMode ==
-                       NCWidgetDisplayModeExpanded) {
-      CGSize maxSize = [self.extensionContext
-          widgetMaximumSizeForDisplayMode:NCWidgetDisplayModeExpanded];
-      self.preferredContentSize =
-          CGSizeMake(maxSize.width, [self.widgetView widgetHeight]);
-    }
-  }];
-}
-
-// Updates the widget with latest data from the clipboard. Calls completion
-// handler with whether any updates occured..
-- (void)updateWidgetWithCompletionHandler:(void (^)(BOOL))completionHandler {
-  NSUserDefaults* sharedDefaults = app_group::GetGroupUserDefaults();
-  NSString* fieldTrialKey = app_group::kChromeExtensionFieldTrialPreference;
-  self.fieldTrialValues = [sharedDefaults dictionaryForKey:fieldTrialKey];
-
-  NSString* supportsSearchByImageKey =
-      base::SysUTF8ToNSString(app_group::kChromeAppGroupSupportsSearchByImage);
-  self.supportsSearchByImage =
-      [sharedDefaults boolForKey:supportsSearchByImageKey];
-
-  NSSet* wantedTypes = [NSSet
-      setWithArray:@[ ContentTypeURL, ContentTypeText, ContentTypeImage ]];
-
-  [self.clipboardRecentContent
-      hasContentMatchingTypes:wantedTypes
-            completionHandler:^(NSSet<ContentType>* matchedTypes) {
-              CopiedContentType newType = CopiedContentTypeNone;
-              if (self.supportsSearchByImage &&
-                  [matchedTypes containsObject:ContentTypeImage]) {
-                newType = CopiedContentTypeImage;
-              } else if ([matchedTypes containsObject:ContentTypeURL]) {
-                newType = CopiedContentTypeURL;
-              } else if ([matchedTypes containsObject:ContentTypeText]) {
-                newType = CopiedContentTypeString;
-              }
-              dispatch_async(dispatch_get_main_queue(), ^{
-                completionHandler([self updateCopiedContentType:newType]);
-              });
-            }];
-}
-
-- (void)viewWillTransitionToSize:(CGSize)size
-       withTransitionCoordinator:
-           (id<UIViewControllerTransitionCoordinator>)coordinator {
-  [super viewWillTransitionToSize:size withTransitionCoordinator:coordinator];
-
-  BOOL isCompact = [self.extensionContext widgetActiveDisplayMode] ==
-                   NCWidgetDisplayModeCompact;
-
-  [coordinator
-      animateAlongsideTransition:^(
-          id<UIViewControllerTransitionCoordinatorContext> _Nonnull context) {
-        [self.widgetView showMode:isCompact];
-        [self.widgetView layoutIfNeeded];
-      }
-                      completion:nil];
-}
-
-#pragma mark - NCWidgetProviding
-
-- (void)widgetActiveDisplayModeDidChange:(NCWidgetDisplayMode)activeDisplayMode
-                         withMaximumSize:(CGSize)maxSize {
-  switch (activeDisplayMode) {
-    case NCWidgetDisplayModeCompact:
-      self.preferredContentSize = maxSize;
-      break;
-    case NCWidgetDisplayModeExpanded:
-      self.preferredContentSize =
-          CGSizeMake(maxSize.width, [self.widgetView widgetHeight]);
-      break;
-  }
-}
-
-#pragma mark - SearchWidgetViewActionTarget
-
-- (void)openSearch:(id)sender {
-  [self openAppWithCommand:base::SysUTF8ToNSString(
-                               app_group::kChromeAppGroupFocusOmniboxCommand)];
-}
-
-- (void)openIncognito:(id)sender {
-  [self
-      openAppWithCommand:base::SysUTF8ToNSString(
-                             app_group::kChromeAppGroupIncognitoSearchCommand)];
-}
-
-- (void)openVoice:(id)sender {
-  [self openAppWithCommand:base::SysUTF8ToNSString(
-                               app_group::kChromeAppGroupVoiceSearchCommand)];
-}
-
-- (void)openQRCode:(id)sender {
-  [self openAppWithCommand:base::SysUTF8ToNSString(
-                               app_group::kChromeAppGroupQRScannerCommand)];
-}
-
-- (void)openCopiedContent:(id)sender {
-  switch (self.copiedContentType) {
-    case CopiedContentTypeURL: {
-      [self.clipboardRecentContent
-          recentURLFromClipboardAsync:^(NSURL* copiedURL) {
-            if (!copiedURL) {
-              return;
-            }
-            [self.command prepareToOpenURL:copiedURL];
-            [self.command executeInApp];
-          }];
-      break;
-    }
-    case CopiedContentTypeString: {
-      [self.clipboardRecentContent
-          recentTextFromClipboardAsync:^(NSString* copiedText) {
-            if (!copiedText) {
-              return;
-            }
-            [self.command prepareToSearchText:copiedText];
-            [self.command executeInApp];
-          }];
-      break;
-    }
-    case CopiedContentTypeImage: {
-      [self.clipboardRecentContent
-          recentImageFromClipboardAsync:^(UIImage* copiedImage) {
-            if (!copiedImage) {
-              return;
-            }
-            // Resize image before converting to NSData so we can store less
-            // data.
-            UIImage* resizedImage = ResizeImageForSearchByImage(copiedImage);
-            [self.command prepareToSearchImage:resizedImage];
-            [self.command executeInApp];
-          }];
-      break;
-    }
-    case CopiedContentTypeNone:
-      NOTREACHED();
-      return;
-  }
-}
-
-#pragma mark - internal
-
-// Opens the main application with the given `command`.
-- (void)openAppWithCommand:(NSString*)command {
-  [self.command prepareWithCommandID:command];
-  [self.command executeInApp];
-}
-
-// Register a display of the widget in the app_group NSUserDefaults.
-// Metrics on the widget usage will be sent (if enabled) on the next Chrome
-// startup.
-- (void)registerWidgetDisplay {
-  NSUserDefaults* sharedDefaults = app_group::GetGroupUserDefaults();
-  NSInteger numberOfDisplay =
-      [sharedDefaults integerForKey:app_group::kSearchExtensionDisplayCount];
-  [sharedDefaults setInteger:numberOfDisplay + 1
-                      forKey:app_group::kSearchExtensionDisplayCount];
-}
-
-// Sets the copied content type returns YES if the screen needs updating and NO
-// otherwise. This must only be called on the main thread.
-- (BOOL)updateCopiedContentType:(CopiedContentType)type {
-  if (self.copiedContentType == type) {
-    return NO;
-  }
-  self.copiedContentType = type;
-  [self.widgetView setCopiedContentType:self.copiedContentType];
-  return YES;
-}
-
 @end
diff --git a/ios/chrome/search_widget_extension/strings/BUILD.gn b/ios/chrome/search_widget_extension/strings/BUILD.gn
index 2b795f9..8c89c1ef 100644
--- a/ios/chrome/search_widget_extension/strings/BUILD.gn
+++ b/ios/chrome/search_widget_extension/strings/BUILD.gn
@@ -7,19 +7,7 @@
 import("//tools/grit/grit_rule.gni")
 
 group("strings") {
-  public_deps = [
-    ":ios_search_widget_extension_branded_strings",
-    ":ios_search_widget_extension_strings",
-  ]
-}
-
-grit("ios_search_widget_extension_strings") {
-  source = "ios_search_widget_extension_strings.grd"
-  output_dir = "$root_gen_dir/ios/search_widget_extension"
-  outputs = [ "grit/ios_search_widget_extension_strings.h" ]
-  foreach(locale, all_chrome_locales) {
-    outputs += [ "ios_search_widget_extension_strings_$locale.pak" ]
-  }
+  public_deps = [ ":ios_search_widget_extension_branded_strings" ]
 }
 
 grit("ios_search_widget_extension_branded_strings") {
diff --git a/ios/chrome/search_widget_extension/strings/ios_search_widget_extension_chromium_strings.grd b/ios/chrome/search_widget_extension/strings/ios_search_widget_extension_chromium_strings.grd
index 8b46d25..83d79e0f 100644
--- a/ios/chrome/search_widget_extension/strings/ios_search_widget_extension_chromium_strings.grd
+++ b/ios/chrome/search_widget_extension/strings/ios_search_widget_extension_chromium_strings.grd
@@ -193,6 +193,9 @@
       <message name="IDS_IOS_SEARCH_WIDGET_TITLE" desc="Title of the widget.">
         Chromium - Quick Actions
       </message>
+      <message name="IDS_IOS_SEARCH_WIDGET_LABEL" desc="Label of the widget. This is a message to indicate the deprecation of the extension.">
+                To keep using this widget, at the bottom of the screen, tap Edit, then tap +. Go to Chromium and select Quick Actions.
+      </message>
     </messages>
   </release>
 </grit>
diff --git a/ios/chrome/search_widget_extension/strings/ios_search_widget_extension_chromium_strings_grd/IDS_IOS_SEARCH_WIDGET_LABEL.png.sha1 b/ios/chrome/search_widget_extension/strings/ios_search_widget_extension_chromium_strings_grd/IDS_IOS_SEARCH_WIDGET_LABEL.png.sha1
new file mode 100644
index 0000000..00c1c46
--- /dev/null
+++ b/ios/chrome/search_widget_extension/strings/ios_search_widget_extension_chromium_strings_grd/IDS_IOS_SEARCH_WIDGET_LABEL.png.sha1
@@ -0,0 +1 @@
+7b7494c92104e38713b389d56b5a0b3031d322e6
\ No newline at end of file
diff --git a/ios/chrome/search_widget_extension/strings/ios_search_widget_extension_google_chrome_strings.grd b/ios/chrome/search_widget_extension/strings/ios_search_widget_extension_google_chrome_strings.grd
index 20aa56fb..f19af98d 100644
--- a/ios/chrome/search_widget_extension/strings/ios_search_widget_extension_google_chrome_strings.grd
+++ b/ios/chrome/search_widget_extension/strings/ios_search_widget_extension_google_chrome_strings.grd
@@ -193,6 +193,9 @@
       <message name="IDS_IOS_SEARCH_WIDGET_TITLE" desc="Title of the widget.">
         Chrome - Quick Actions
       </message>
+      <message name="IDS_IOS_SEARCH_WIDGET_LABEL" desc="Label of the widget. This is a message to indicate the deprecation of the extension.">
+                To keep using this widget, at the bottom of the screen, tap Edit, then tap +. Go to Chrome and select Quick Actions.
+      </message>
     </messages>
   </release>
 </grit>
diff --git a/ios/chrome/search_widget_extension/strings/ios_search_widget_extension_google_chrome_strings_grd/IDS_IOS_SEARCH_WIDGET_LABEL.png.sha1 b/ios/chrome/search_widget_extension/strings/ios_search_widget_extension_google_chrome_strings_grd/IDS_IOS_SEARCH_WIDGET_LABEL.png.sha1
new file mode 100644
index 0000000..796c1dc9
--- /dev/null
+++ b/ios/chrome/search_widget_extension/strings/ios_search_widget_extension_google_chrome_strings_grd/IDS_IOS_SEARCH_WIDGET_LABEL.png.sha1
@@ -0,0 +1 @@
+0037c71652981cf2fa623913d7702b4c71333636
\ No newline at end of file
diff --git a/ios/chrome/search_widget_extension/strings/ios_search_widget_extension_strings.grd b/ios/chrome/search_widget_extension/strings/ios_search_widget_extension_strings.grd
deleted file mode 100644
index a3cd5d2..0000000
--- a/ios/chrome/search_widget_extension/strings/ios_search_widget_extension_strings.grd
+++ /dev/null
@@ -1,222 +0,0 @@
-<?xml version="1.0" encoding="UTF-8"?>
-
-<!--
-This file contains definition of resources that will be translated for each
-locale.  The variables is_win, is_macosx, is_linux, is_ios and is_posix are
-available for making strings OS specific.  Other platform defines such as
-use_titlecase are declared in build/common.gypi.
-
-The strings in this file are specific to iOS, thus is_ios will be true and
-all other OS specific variables will be false.
--->
-
-<grit base_dir="." latest_public_release="0" current_release="1"
-      output_all_resource_defines="false" source_lang_id="en" enc_check="möl">
-  <outputs>
-    <output filename="grit/ios_search_widget_extension_strings.h" type="rc_header">
-      <emit emit_type="prepend"></emit>
-    </output>
-    <output filename="ios_search_widget_extension_strings_af.pak" type="data_package" lang="af" />
-    <output filename="ios_search_widget_extension_strings_am.pak" type="data_package" lang="am" />
-    <output filename="ios_search_widget_extension_strings_ar.pak" type="data_package" lang="ar" />
-    <output filename="ios_search_widget_extension_strings_as.pak" type="data_package" lang="as" />
-    <output filename="ios_search_widget_extension_strings_az.pak" type="data_package" lang="az" />
-    <output filename="ios_search_widget_extension_strings_be.pak" type="data_package" lang="be" />
-    <output filename="ios_search_widget_extension_strings_bg.pak" type="data_package" lang="bg" />
-    <output filename="ios_search_widget_extension_strings_bn.pak" type="data_package" lang="bn" />
-    <output filename="ios_search_widget_extension_strings_bs.pak" type="data_package" lang="bs" />
-    <output filename="ios_search_widget_extension_strings_ca.pak" type="data_package" lang="ca" />
-    <output filename="ios_search_widget_extension_strings_cs.pak" type="data_package" lang="cs" />
-    <output filename="ios_search_widget_extension_strings_cy.pak" type="data_package" lang="cy" />
-    <output filename="ios_search_widget_extension_strings_da.pak" type="data_package" lang="da" />
-    <output filename="ios_search_widget_extension_strings_de.pak" type="data_package" lang="de" />
-    <output filename="ios_search_widget_extension_strings_el.pak" type="data_package" lang="el" />
-    <output filename="ios_search_widget_extension_strings_en-GB.pak" type="data_package" lang="en-GB" />
-    <output filename="ios_search_widget_extension_strings_en-US.pak" type="data_package" lang="en" />
-    <output filename="ios_search_widget_extension_strings_es.pak" type="data_package" lang="es" />
-    <output filename="ios_search_widget_extension_strings_es-MX.pak" type="data_package" lang="es-419" />
-    <output filename="ios_search_widget_extension_strings_et.pak" type="data_package" lang="et" />
-    <output filename="ios_search_widget_extension_strings_eu.pak" type="data_package" lang="eu" />
-    <output filename="ios_search_widget_extension_strings_fa.pak" type="data_package" lang="fa" />
-    <output filename="ios_search_widget_extension_strings_fi.pak" type="data_package" lang="fi" />
-    <output filename="ios_search_widget_extension_strings_fil.pak" type="data_package" lang="fil" />
-    <output filename="ios_search_widget_extension_strings_fr-CA.pak" type="data_package" lang="fr-CA" />
-    <output filename="ios_search_widget_extension_strings_fr.pak" type="data_package" lang="fr" />
-    <output filename="ios_search_widget_extension_strings_gl.pak" type="data_package" lang="gl" />
-    <output filename="ios_search_widget_extension_strings_gu.pak" type="data_package" lang="gu" />
-    <output filename="ios_search_widget_extension_strings_he.pak" type="data_package" lang="he" />
-    <output filename="ios_search_widget_extension_strings_hi.pak" type="data_package" lang="hi" />
-    <output filename="ios_search_widget_extension_strings_hr.pak" type="data_package" lang="hr" />
-    <output filename="ios_search_widget_extension_strings_hu.pak" type="data_package" lang="hu" />
-    <output filename="ios_search_widget_extension_strings_hy.pak" type="data_package" lang="hy" />
-    <output filename="ios_search_widget_extension_strings_id.pak" type="data_package" lang="id" />
-    <output filename="ios_search_widget_extension_strings_is.pak" type="data_package" lang="is" />
-    <output filename="ios_search_widget_extension_strings_it.pak" type="data_package" lang="it" />
-    <output filename="ios_search_widget_extension_strings_ja.pak" type="data_package" lang="ja" />
-    <output filename="ios_search_widget_extension_strings_ka.pak" type="data_package" lang="ka" />
-    <output filename="ios_search_widget_extension_strings_kk.pak" type="data_package" lang="kk" />
-    <output filename="ios_search_widget_extension_strings_km.pak" type="data_package" lang="km" />
-    <output filename="ios_search_widget_extension_strings_kn.pak" type="data_package" lang="kn" />
-    <output filename="ios_search_widget_extension_strings_ko.pak" type="data_package" lang="ko" />
-    <output filename="ios_search_widget_extension_strings_ky.pak" type="data_package" lang="ky" />
-    <output filename="ios_search_widget_extension_strings_lo.pak" type="data_package" lang="lo" />
-    <output filename="ios_search_widget_extension_strings_lt.pak" type="data_package" lang="lt" />
-    <output filename="ios_search_widget_extension_strings_lv.pak" type="data_package" lang="lv" />
-    <output filename="ios_search_widget_extension_strings_mk.pak" type="data_package" lang="mk" />
-    <output filename="ios_search_widget_extension_strings_ml.pak" type="data_package" lang="ml" />
-    <output filename="ios_search_widget_extension_strings_mn.pak" type="data_package" lang="mn" />
-    <output filename="ios_search_widget_extension_strings_mr.pak" type="data_package" lang="mr" />
-    <output filename="ios_search_widget_extension_strings_ms.pak" type="data_package" lang="ms" />
-    <output filename="ios_search_widget_extension_strings_my.pak" type="data_package" lang="my" />
-    <output filename="ios_search_widget_extension_strings_ne.pak" type="data_package" lang="ne" />
-    <output filename="ios_search_widget_extension_strings_nl.pak" type="data_package" lang="nl" />
-    <!-- The translation console uses 'no' for Norwegian Bokmål. It should
-         be 'nb'. -->
-    <output filename="ios_search_widget_extension_strings_nb.pak" type="data_package" lang="no" />
-    <output filename="ios_search_widget_extension_strings_pa.pak" type="data_package" lang="pa" />
-    <output filename="ios_search_widget_extension_strings_pl.pak" type="data_package" lang="pl" />
-    <output filename="ios_search_widget_extension_strings_pt.pak" type="data_package" lang="pt-BR" />
-    <output filename="ios_search_widget_extension_strings_pt-PT.pak" type="data_package" lang="pt-PT" />
-    <output filename="ios_search_widget_extension_strings_or.pak" type="data_package" lang="or" />
-    <output filename="ios_search_widget_extension_strings_ro.pak" type="data_package" lang="ro" />
-    <output filename="ios_search_widget_extension_strings_ru.pak" type="data_package" lang="ru" />
-    <output filename="ios_search_widget_extension_strings_si.pak" type="data_package" lang="si" />
-    <output filename="ios_search_widget_extension_strings_sk.pak" type="data_package" lang="sk" />
-    <output filename="ios_search_widget_extension_strings_sl.pak" type="data_package" lang="sl" />
-    <output filename="ios_search_widget_extension_strings_sq.pak" type="data_package" lang="sq" />
-    <output filename="ios_search_widget_extension_strings_sr-Latn.pak" type="data_package" lang="sr-Latn" />
-    <output filename="ios_search_widget_extension_strings_sr.pak" type="data_package" lang="sr" />
-    <output filename="ios_search_widget_extension_strings_sv.pak" type="data_package" lang="sv" />
-    <output filename="ios_search_widget_extension_strings_sw.pak" type="data_package" lang="sw" />
-    <output filename="ios_search_widget_extension_strings_ta.pak" type="data_package" lang="ta" />
-    <output filename="ios_search_widget_extension_strings_te.pak" type="data_package" lang="te" />
-    <output filename="ios_search_widget_extension_strings_th.pak" type="data_package" lang="th" />
-    <output filename="ios_search_widget_extension_strings_tr.pak" type="data_package" lang="tr" />
-    <output filename="ios_search_widget_extension_strings_uk.pak" type="data_package" lang="uk" />
-    <output filename="ios_search_widget_extension_strings_ur.pak" type="data_package" lang="ur" />
-    <output filename="ios_search_widget_extension_strings_uz.pak" type="data_package" lang="uz" />
-    <output filename="ios_search_widget_extension_strings_vi.pak" type="data_package" lang="vi" />
-    <output filename="ios_search_widget_extension_strings_zh-CN.pak" type="data_package" lang="zh-CN" />
-    <output filename="ios_search_widget_extension_strings_zh-HK.pak" type="data_package" lang="zh-HK" />
-    <output filename="ios_search_widget_extension_strings_zh-TW.pak" type="data_package" lang="zh-TW" />
-    <output filename="ios_search_widget_extension_strings_zu.pak" type="data_package" lang="zu" />
-    <!-- Pseudolocales -->
-    <output filename="ios_search_widget_extension_strings_ar-XB.pak" type="data_package" lang="ar-XB" />
-    <output filename="ios_search_widget_extension_strings_en-XA.pak" type="data_package" lang="en-XA" />
-  </outputs>
-  <translations>
-    <file path="resources/ios_search_widget_extension_strings_af.xtb" lang="af" />
-    <file path="resources/ios_search_widget_extension_strings_am.xtb" lang="am" />
-    <file path="resources/ios_search_widget_extension_strings_ar.xtb" lang="ar" />
-    <file path="resources/ios_search_widget_extension_strings_as.xtb" lang="as" />
-    <file path="resources/ios_search_widget_extension_strings_az.xtb" lang="az" />
-    <file path="resources/ios_search_widget_extension_strings_be.xtb" lang="be" />
-    <file path="resources/ios_search_widget_extension_strings_bg.xtb" lang="bg" />
-    <file path="resources/ios_search_widget_extension_strings_bn.xtb" lang="bn" />
-    <file path="resources/ios_search_widget_extension_strings_bs.xtb" lang="bs" />
-    <file path="resources/ios_search_widget_extension_strings_ca.xtb" lang="ca" />
-    <file path="resources/ios_search_widget_extension_strings_cs.xtb" lang="cs" />
-    <file path="resources/ios_search_widget_extension_strings_cy.xtb" lang="cy" />
-    <file path="resources/ios_search_widget_extension_strings_da.xtb" lang="da" />
-    <file path="resources/ios_search_widget_extension_strings_de.xtb" lang="de" />
-    <file path="resources/ios_search_widget_extension_strings_el.xtb" lang="el" />
-    <file path="resources/ios_search_widget_extension_strings_en-GB.xtb" lang="en-GB" />
-    <file path="resources/ios_search_widget_extension_strings_es.xtb" lang="es" />
-    <file path="resources/ios_search_widget_extension_strings_es-419.xtb" lang="es-419" />
-    <file path="resources/ios_search_widget_extension_strings_et.xtb" lang="et" />
-    <file path="resources/ios_search_widget_extension_strings_eu.xtb" lang="eu" />
-    <file path="resources/ios_search_widget_extension_strings_fa.xtb" lang="fa" />
-    <file path="resources/ios_search_widget_extension_strings_fi.xtb" lang="fi" />
-    <file path="resources/ios_search_widget_extension_strings_fil.xtb" lang="fil" />
-    <file path="resources/ios_search_widget_extension_strings_fr.xtb" lang="fr" />
-    <file path="resources/ios_search_widget_extension_strings_fr-CA.xtb" lang="fr-CA" />
-    <file path="resources/ios_search_widget_extension_strings_gl.xtb" lang="gl" />
-    <file path="resources/ios_search_widget_extension_strings_gu.xtb" lang="gu" />
-    <file path="resources/ios_search_widget_extension_strings_hi.xtb" lang="hi" />
-    <file path="resources/ios_search_widget_extension_strings_hr.xtb" lang="hr" />
-    <file path="resources/ios_search_widget_extension_strings_hu.xtb" lang="hu" />
-    <file path="resources/ios_search_widget_extension_strings_hy.xtb" lang="hy" />
-    <file path="resources/ios_search_widget_extension_strings_id.xtb" lang="id" />
-    <file path="resources/ios_search_widget_extension_strings_is.xtb" lang="is" />
-    <file path="resources/ios_search_widget_extension_strings_it.xtb" lang="it" />
-    <!-- The translation console uses 'iw' for Hebrew, but we use 'he'. -->
-    <file path="resources/ios_search_widget_extension_strings_iw.xtb" lang="he" />
-    <file path="resources/ios_search_widget_extension_strings_ja.xtb" lang="ja" />
-    <file path="resources/ios_search_widget_extension_strings_ka.xtb" lang="ka" />
-    <file path="resources/ios_search_widget_extension_strings_kk.xtb" lang="kk" />
-    <file path="resources/ios_search_widget_extension_strings_km.xtb" lang="km" />
-    <file path="resources/ios_search_widget_extension_strings_kn.xtb" lang="kn" />
-    <file path="resources/ios_search_widget_extension_strings_ko.xtb" lang="ko" />
-    <file path="resources/ios_search_widget_extension_strings_ky.xtb" lang="ky" />
-    <file path="resources/ios_search_widget_extension_strings_lo.xtb" lang="lo" />
-    <file path="resources/ios_search_widget_extension_strings_lt.xtb" lang="lt" />
-    <file path="resources/ios_search_widget_extension_strings_lv.xtb" lang="lv" />
-    <file path="resources/ios_search_widget_extension_strings_mk.xtb" lang="mk" />
-    <file path="resources/ios_search_widget_extension_strings_ml.xtb" lang="ml" />
-    <file path="resources/ios_search_widget_extension_strings_mn.xtb" lang="mn" />
-    <file path="resources/ios_search_widget_extension_strings_mr.xtb" lang="mr" />
-    <file path="resources/ios_search_widget_extension_strings_ms.xtb" lang="ms" />
-    <file path="resources/ios_search_widget_extension_strings_my.xtb" lang="my" />
-    <file path="resources/ios_search_widget_extension_strings_ne.xtb" lang="ne" />
-    <file path="resources/ios_search_widget_extension_strings_nl.xtb" lang="nl" />
-    <file path="resources/ios_search_widget_extension_strings_no.xtb" lang="no" />
-    <file path="resources/ios_search_widget_extension_strings_or.xtb" lang="or" />
-    <file path="resources/ios_search_widget_extension_strings_pa.xtb" lang="pa" />
-    <file path="resources/ios_search_widget_extension_strings_pl.xtb" lang="pl" />
-    <file path="resources/ios_search_widget_extension_strings_pt-BR.xtb" lang="pt-BR" />
-    <file path="resources/ios_search_widget_extension_strings_pt-PT.xtb" lang="pt-PT" />
-    <file path="resources/ios_search_widget_extension_strings_ro.xtb" lang="ro" />
-    <file path="resources/ios_search_widget_extension_strings_ru.xtb" lang="ru" />
-    <file path="resources/ios_search_widget_extension_strings_si.xtb" lang="si" />
-    <file path="resources/ios_search_widget_extension_strings_sk.xtb" lang="sk" />
-    <file path="resources/ios_search_widget_extension_strings_sl.xtb" lang="sl" />
-    <file path="resources/ios_search_widget_extension_strings_sq.xtb" lang="sq" />
-    <file path="resources/ios_search_widget_extension_strings_sr.xtb" lang="sr" />
-    <file path="resources/ios_search_widget_extension_strings_sr-Latn.xtb" lang="sr-Latn" />
-    <file path="resources/ios_search_widget_extension_strings_sv.xtb" lang="sv" />
-    <file path="resources/ios_search_widget_extension_strings_sw.xtb" lang="sw" />
-    <file path="resources/ios_search_widget_extension_strings_ta.xtb" lang="ta" />
-    <file path="resources/ios_search_widget_extension_strings_te.xtb" lang="te" />
-    <file path="resources/ios_search_widget_extension_strings_th.xtb" lang="th" />
-    <file path="resources/ios_search_widget_extension_strings_tr.xtb" lang="tr" />
-    <file path="resources/ios_search_widget_extension_strings_uk.xtb" lang="uk" />
-    <file path="resources/ios_search_widget_extension_strings_ur.xtb" lang="ur" />
-    <file path="resources/ios_search_widget_extension_strings_uz.xtb" lang="uz" />
-    <file path="resources/ios_search_widget_extension_strings_vi.xtb" lang="vi" />
-    <file path="resources/ios_search_widget_extension_strings_zh-CN.xtb" lang="zh-CN" />
-    <file path="resources/ios_search_widget_extension_strings_zh-HK.xtb" lang="zh-HK" />
-    <file path="resources/ios_search_widget_extension_strings_zh-TW.xtb" lang="zh-TW" />
-    <file path="resources/ios_search_widget_extension_strings_zu.xtb" lang="zu" />
-  </translations>
-  <release seq="1">
-    <messages fallback_to_english="true">
-      <message name="IDS_IOS_NEW_SEARCH" desc="Label in the widget extension for the action to launch the app and open a new search. [Length: 30em]">
-        New Search
-      </message>
-      <message name="IDS_IOS_INCOGNITO_SEARCH" desc="Label in the widget extension for the action to launch the app and open a new Incognito search. [Length: 30em]">
-        Incognito Search
-      </message>
-      <message name="IDS_IOS_VOICE_SEARCH" desc="Label in the widget extension for the action to launch the app and open a new voice search. [Length: 30em]">
-        Voice Search
-      </message>
-      <message name="IDS_IOS_SCAN_QR_CODE" desc="Label in the widget extension for the action to launch the app and open the qr code scanner. [Length: 30em]">
-        Scan QR Code
-      </message>
-      <message name="IDS_IOS_NO_COPIED_CONTENT_TITLE" desc="Label in the widget extension for the title of the copied content section when there is no copied content.">
-        Nothing in clipboard
-      </message>
-      <message name="IDS_IOS_NO_COPIED_CONTENT_MESSAGE" desc="Label in the widget extension for the message shown in the copied link section when there is no copied content.">
-        Content you copy will appear here.
-      </message>
-      <message name="IDS_IOS_OPEN_COPIED_LINK" desc="If a user has a URL on their clipboard, this string will appear as an option on the Chrome iOS widget. The user can select this option to visit the URL. This string is a complete sentence. If necessary for your language, you can translate as 'Visit Link That You Copied.'" meaning="Maximum characters: 27">
-        Visit Link You Copied
-      </message>
-      <message name="IDS_IOS_OPEN_COPIED_TEXT" desc="If a user has some text on their clipboard, this string will appear as an option on the Chrome iOS widget. The user can select this option to search Google for the text. This string is a complete sentence. If necessary for your language, you can translate as 'Search for Text That You Copied.'" meaning="Maximum characters: 27">
-        Search for Text You Copied
-      </message>
-      <message name="IDS_IOS_OPEN_COPIED_IMAGE" desc="If a user has some text on their clipboard, this string will appear as an option on the Chrome iOS widget. The user can select this option to search Google for the text. This string is a complete sentence. If necessary for your language, you can translate as 'Search for Text That You Copied.'" meaning="Maximum characters: 27">
-        Search for Image You Copied
-      </message>
-    </messages>
-  </release>
-</grit>
diff --git a/ios/chrome/search_widget_extension/strings/ios_search_widget_extension_strings_grd/IDS_IOS_NO_COPIED_CONTENT_MESSAGE.png.sha1 b/ios/chrome/search_widget_extension/strings/ios_search_widget_extension_strings_grd/IDS_IOS_NO_COPIED_CONTENT_MESSAGE.png.sha1
deleted file mode 100644
index 6b597d60..0000000
--- a/ios/chrome/search_widget_extension/strings/ios_search_widget_extension_strings_grd/IDS_IOS_NO_COPIED_CONTENT_MESSAGE.png.sha1
+++ /dev/null
@@ -1 +0,0 @@
-d186de0c73a9f82b4394f353c1c88238d8510f2b
\ No newline at end of file
diff --git a/ios/chrome/search_widget_extension/strings/ios_search_widget_extension_strings_grd/IDS_IOS_NO_COPIED_CONTENT_TITLE.png.sha1 b/ios/chrome/search_widget_extension/strings/ios_search_widget_extension_strings_grd/IDS_IOS_NO_COPIED_CONTENT_TITLE.png.sha1
deleted file mode 100644
index 6b597d60..0000000
--- a/ios/chrome/search_widget_extension/strings/ios_search_widget_extension_strings_grd/IDS_IOS_NO_COPIED_CONTENT_TITLE.png.sha1
+++ /dev/null
@@ -1 +0,0 @@
-d186de0c73a9f82b4394f353c1c88238d8510f2b
\ No newline at end of file
diff --git a/ios/chrome/search_widget_extension/strings/ios_search_widget_extension_strings_grd/IDS_IOS_OPEN_COPIED_IMAGE.png.sha1 b/ios/chrome/search_widget_extension/strings/ios_search_widget_extension_strings_grd/IDS_IOS_OPEN_COPIED_IMAGE.png.sha1
deleted file mode 100644
index d622ab8..0000000
--- a/ios/chrome/search_widget_extension/strings/ios_search_widget_extension_strings_grd/IDS_IOS_OPEN_COPIED_IMAGE.png.sha1
+++ /dev/null
@@ -1 +0,0 @@
-6f8176ab162d480fddad05e5daca81355fdf41a0
\ No newline at end of file
diff --git a/ios/chrome/search_widget_extension/strings/ios_search_widget_extension_strings_grd/IDS_IOS_OPEN_COPIED_LINK.png.sha1 b/ios/chrome/search_widget_extension/strings/ios_search_widget_extension_strings_grd/IDS_IOS_OPEN_COPIED_LINK.png.sha1
deleted file mode 100644
index c99268f..0000000
--- a/ios/chrome/search_widget_extension/strings/ios_search_widget_extension_strings_grd/IDS_IOS_OPEN_COPIED_LINK.png.sha1
+++ /dev/null
@@ -1 +0,0 @@
-9d22924eaaa7c279f2f914469997c5d9354f381f
\ No newline at end of file
diff --git a/ios/chrome/search_widget_extension/strings/ios_search_widget_extension_strings_grd/IDS_IOS_OPEN_COPIED_TEXT.png.sha1 b/ios/chrome/search_widget_extension/strings/ios_search_widget_extension_strings_grd/IDS_IOS_OPEN_COPIED_TEXT.png.sha1
deleted file mode 100644
index f27d8ca..0000000
--- a/ios/chrome/search_widget_extension/strings/ios_search_widget_extension_strings_grd/IDS_IOS_OPEN_COPIED_TEXT.png.sha1
+++ /dev/null
@@ -1 +0,0 @@
-82cb8be5eac23f717639c4bad7de956f9aa4050a
\ No newline at end of file
diff --git a/ios/chrome/search_widget_extension/strings/resources/ios_search_widget_extension_strings_af.xtb b/ios/chrome/search_widget_extension/strings/resources/ios_search_widget_extension_strings_af.xtb
deleted file mode 100644
index 55bc55a..0000000
--- a/ios/chrome/search_widget_extension/strings/resources/ios_search_widget_extension_strings_af.xtb
+++ /dev/null
@@ -1,13 +0,0 @@
-<?xml version="1.0" ?>
-<!DOCTYPE translationbundle>
-<translationbundle lang="af">
-<translation id="1545749641540134597">Skandeer QR-kode</translation>
-<translation id="2204254829203467991">Nuwe soektog</translation>
-<translation id="3060070342265818827">Inhoud wat jy kopieer sal hier verskyn.</translation>
-<translation id="4056327302245368220">Soek na prent wat jy gekopieer het</translation>
-<translation id="562989964911369186">Niks in knipbord nie</translation>
-<translation id="6120021866613542190">Incognito-soektog</translation>
-<translation id="6196207969502475924">Stemsoektog</translation>
-<translation id="8383052013774505331">Besoek skakel wat jy gekopieer het</translation>
-<translation id="8504982932030734536">Soek na teks wat jy gekopieer het</translation>
-</translationbundle>
\ No newline at end of file
diff --git a/ios/chrome/search_widget_extension/strings/resources/ios_search_widget_extension_strings_am.xtb b/ios/chrome/search_widget_extension/strings/resources/ios_search_widget_extension_strings_am.xtb
deleted file mode 100644
index 18e02260..0000000
--- a/ios/chrome/search_widget_extension/strings/resources/ios_search_widget_extension_strings_am.xtb
+++ /dev/null
@@ -1,13 +0,0 @@
-<?xml version="1.0" ?>
-<!DOCTYPE translationbundle>
-<translationbundle lang="am">
-<translation id="1545749641540134597">የኪውአር ኮድ ይቃኙ</translation>
-<translation id="2204254829203467991">አዲስ ፍለጋ</translation>
-<translation id="3060070342265818827">እርስዎ የሚቀዱት ይዘት እዚህ ይመጣል።</translation>
-<translation id="4056327302245368220">የቀዱትን ምስል ይፈልጉ</translation>
-<translation id="562989964911369186">ቅንጥብ ሰሌዳው ላይ ምንም ነገር የለም</translation>
-<translation id="6120021866613542190">ማንነት የማያሳውቅ ፍለጋ</translation>
-<translation id="6196207969502475924">የድምጽ ፍለጋ</translation>
-<translation id="8383052013774505331">የቀዱትን አገናኝ ይጎብኙ</translation>
-<translation id="8504982932030734536">የቀዱትን ጽሁፍ ይፈልጉ</translation>
-</translationbundle>
\ No newline at end of file
diff --git a/ios/chrome/search_widget_extension/strings/resources/ios_search_widget_extension_strings_ar.xtb b/ios/chrome/search_widget_extension/strings/resources/ios_search_widget_extension_strings_ar.xtb
deleted file mode 100644
index 25c6f0415..0000000
--- a/ios/chrome/search_widget_extension/strings/resources/ios_search_widget_extension_strings_ar.xtb
+++ /dev/null
@@ -1,13 +0,0 @@
-<?xml version="1.0" ?>
-<!DOCTYPE translationbundle>
-<translationbundle lang="ar">
-<translation id="1545749641540134597">فحص رمز الاستجابة السريعة</translation>
-<translation id="2204254829203467991">بحث جديد</translation>
-<translation id="3060070342265818827">سيظهر المحتوى الذي تنسخه هنا.</translation>
-<translation id="4056327302245368220">البحث عن الصورة التي نسختها</translation>
-<translation id="562989964911369186">ما من محتوى في الحافظة</translation>
-<translation id="6120021866613542190">البحث المتخفي</translation>
-<translation id="6196207969502475924">البحث الصوتي</translation>
-<translation id="8383052013774505331">الانتقال إلى الرابط الذي نسخته</translation>
-<translation id="8504982932030734536">البحث عن النص الذي نسخته</translation>
-</translationbundle>
\ No newline at end of file
diff --git a/ios/chrome/search_widget_extension/strings/resources/ios_search_widget_extension_strings_as.xtb b/ios/chrome/search_widget_extension/strings/resources/ios_search_widget_extension_strings_as.xtb
deleted file mode 100644
index 5be196a..0000000
--- a/ios/chrome/search_widget_extension/strings/resources/ios_search_widget_extension_strings_as.xtb
+++ /dev/null
@@ -1,13 +0,0 @@
-<?xml version="1.0" ?>
-<!DOCTYPE translationbundle>
-<translationbundle lang="as">
-<translation id="1545749641540134597">কিউআৰ ক’ড স্কেন কৰক</translation>
-<translation id="2204254829203467991">নতুন সন্ধান</translation>
-<translation id="3060070342265818827">আপুনি প্ৰতিলিপি কৰা সমল ইয়াত ওলাব।</translation>
-<translation id="4056327302245368220">আপুনি প্রতিলিপি কৰা প্ৰতিচ্ছবি সন্ধান কৰক</translation>
-<translation id="562989964911369186">ক্লিপব'ৰ্ডত একো নাই</translation>
-<translation id="6120021866613542190">ইনক’গনিট’ ম’ডত সন্ধান কৰক</translation>
-<translation id="6196207969502475924">কণ্ঠধ্বনিৰদ্বাৰা সন্ধান</translation>
-<translation id="8383052013774505331">আপুনি প্ৰতিলিপি কৰা লিংকটো খোলক</translation>
-<translation id="8504982932030734536">আপুনি প্ৰতিলিপি কৰা পাঠৰ সন্ধান কৰক</translation>
-</translationbundle>
\ No newline at end of file
diff --git a/ios/chrome/search_widget_extension/strings/resources/ios_search_widget_extension_strings_az.xtb b/ios/chrome/search_widget_extension/strings/resources/ios_search_widget_extension_strings_az.xtb
deleted file mode 100644
index 27a3199..0000000
--- a/ios/chrome/search_widget_extension/strings/resources/ios_search_widget_extension_strings_az.xtb
+++ /dev/null
@@ -1,13 +0,0 @@
-<?xml version="1.0" ?>
-<!DOCTYPE translationbundle>
-<translationbundle lang="az">
-<translation id="1545749641540134597">QR Kodunu skan edin</translation>
-<translation id="2204254829203467991">Yeni Axtarış</translation>
-<translation id="3060070342265818827">Kopyalanan kontent burada görünəcək.</translation>
-<translation id="4056327302245368220">Kopyaladığınız Şəkli Axtarın</translation>
-<translation id="562989964911369186">Mübadilə buferində heç nə yoxdur</translation>
-<translation id="6120021866613542190">Gizli Axtarış</translation>
-<translation id="6196207969502475924">Səsli Axtarış</translation>
-<translation id="8383052013774505331">Kopyaladığınız Linkə Daxil Olun</translation>
-<translation id="8504982932030734536">Kopyaladığınız Mətni Axtarın</translation>
-</translationbundle>
\ No newline at end of file
diff --git a/ios/chrome/search_widget_extension/strings/resources/ios_search_widget_extension_strings_be.xtb b/ios/chrome/search_widget_extension/strings/resources/ios_search_widget_extension_strings_be.xtb
deleted file mode 100644
index 7bbf8e3..0000000
--- a/ios/chrome/search_widget_extension/strings/resources/ios_search_widget_extension_strings_be.xtb
+++ /dev/null
@@ -1,13 +0,0 @@
-<?xml version="1.0" ?>
-<!DOCTYPE translationbundle>
-<translationbundle lang="be">
-<translation id="1545749641540134597">Сканіраваць QR-код</translation>
-<translation id="2204254829203467991">Новы пошук</translation>
-<translation id="3060070342265818827">Тут з'явіцца скапіраванае вамі змесціва.</translation>
-<translation id="4056327302245368220">Пошук скапіраванага відарыса</translation>
-<translation id="562989964911369186">У буферы абмену нічога няма</translation>
-<translation id="6120021866613542190">Пошук у рэжыме інкогніта</translation>
-<translation id="6196207969502475924">Галасавы пошук</translation>
-<translation id="8383052013774505331">Перайсці па скапіраванай спасылцы</translation>
-<translation id="8504982932030734536">Пошук скапіраванага тэксту</translation>
-</translationbundle>
\ No newline at end of file
diff --git a/ios/chrome/search_widget_extension/strings/resources/ios_search_widget_extension_strings_bg.xtb b/ios/chrome/search_widget_extension/strings/resources/ios_search_widget_extension_strings_bg.xtb
deleted file mode 100644
index f5b00e9..0000000
--- a/ios/chrome/search_widget_extension/strings/resources/ios_search_widget_extension_strings_bg.xtb
+++ /dev/null
@@ -1,13 +0,0 @@
-<?xml version="1.0" ?>
-<!DOCTYPE translationbundle>
-<translationbundle lang="bg">
-<translation id="1545749641540134597">Сканирайте код за бърза реакция</translation>
-<translation id="2204254829203467991">Ново търсене</translation>
-<translation id="3060070342265818827">Копираното от вас съдържание ще се показва тук.</translation>
-<translation id="4056327302245368220">Търсене на копираното изображение</translation>
-<translation id="562989964911369186">Буферната памет е празна</translation>
-<translation id="6120021866613542190">Търсене в режим „инкогнито“</translation>
-<translation id="6196207969502475924">Гласово търсене</translation>
-<translation id="8383052013774505331">Посещаване на копираната връзка</translation>
-<translation id="8504982932030734536">Търсене на копирания текст</translation>
-</translationbundle>
\ No newline at end of file
diff --git a/ios/chrome/search_widget_extension/strings/resources/ios_search_widget_extension_strings_bn.xtb b/ios/chrome/search_widget_extension/strings/resources/ios_search_widget_extension_strings_bn.xtb
deleted file mode 100644
index bac7bb0..0000000
--- a/ios/chrome/search_widget_extension/strings/resources/ios_search_widget_extension_strings_bn.xtb
+++ /dev/null
@@ -1,13 +0,0 @@
-<?xml version="1.0" ?>
-<!DOCTYPE translationbundle>
-<translationbundle lang="bn">
-<translation id="1545749641540134597">QR কোড স্ক্যান করুন</translation>
-<translation id="2204254829203467991">নতুন সার্চ</translation>
-<translation id="3060070342265818827">আপনার কপি করা কন্টেন্ট এখানে দেখানো হবে।</translation>
-<translation id="4056327302245368220">আপনার কপি করা ছবি সার্চ করুন</translation>
-<translation id="562989964911369186">ক্লিপবোর্ডে কিছু নেই</translation>
-<translation id="6120021866613542190">ছদ্মবেশী সার্চ</translation>
-<translation id="6196207969502475924">ভয়েস সার্চ</translation>
-<translation id="8383052013774505331">আপনার কপি করা লিঙ্কে যান</translation>
-<translation id="8504982932030734536">আপনার কপি করা টেক্সট সার্চ করুন</translation>
-</translationbundle>
\ No newline at end of file
diff --git a/ios/chrome/search_widget_extension/strings/resources/ios_search_widget_extension_strings_bs.xtb b/ios/chrome/search_widget_extension/strings/resources/ios_search_widget_extension_strings_bs.xtb
deleted file mode 100644
index a2d189c..0000000
--- a/ios/chrome/search_widget_extension/strings/resources/ios_search_widget_extension_strings_bs.xtb
+++ /dev/null
@@ -1,13 +0,0 @@
-<?xml version="1.0" ?>
-<!DOCTYPE translationbundle>
-<translationbundle lang="bs">
-<translation id="1545749641540134597">Skeniraj QR kôd</translation>
-<translation id="2204254829203467991">Novo pretraživanje</translation>
-<translation id="3060070342265818827">Kopirani sadržaj će se pojaviti ovdje.</translation>
-<translation id="4056327302245368220">Pretraži kopiranu sliku</translation>
-<translation id="562989964911369186">Međumemorija je prazna</translation>
-<translation id="6120021866613542190">Pretraživanje u anonimnom načinu rada</translation>
-<translation id="6196207969502475924">Glasovno pretraživanje</translation>
-<translation id="8383052013774505331">Posjetite link koji ste kopirali</translation>
-<translation id="8504982932030734536">Pretraži kopirani tekst</translation>
-</translationbundle>
\ No newline at end of file
diff --git a/ios/chrome/search_widget_extension/strings/resources/ios_search_widget_extension_strings_ca.xtb b/ios/chrome/search_widget_extension/strings/resources/ios_search_widget_extension_strings_ca.xtb
deleted file mode 100644
index ff260f3e..0000000
--- a/ios/chrome/search_widget_extension/strings/resources/ios_search_widget_extension_strings_ca.xtb
+++ /dev/null
@@ -1,13 +0,0 @@
-<?xml version="1.0" ?>
-<!DOCTYPE translationbundle>
-<translationbundle lang="ca">
-<translation id="1545749641540134597">Escaneja el codi QR</translation>
-<translation id="2204254829203467991">Cerca nova</translation>
-<translation id="3060070342265818827">El contingut que copiïs es mostrarà aquí.</translation>
-<translation id="4056327302245368220">Cerca la imatge que has copiat</translation>
-<translation id="562989964911369186">No hi ha res al porta-retalls</translation>
-<translation id="6120021866613542190">Cerca d'incògnit</translation>
-<translation id="6196207969502475924">Cerca per veu</translation>
-<translation id="8383052013774505331">Ves a l'enllaç que has copiat</translation>
-<translation id="8504982932030734536">Cerca el text que has copiat</translation>
-</translationbundle>
\ No newline at end of file
diff --git a/ios/chrome/search_widget_extension/strings/resources/ios_search_widget_extension_strings_cs.xtb b/ios/chrome/search_widget_extension/strings/resources/ios_search_widget_extension_strings_cs.xtb
deleted file mode 100644
index c57b103..0000000
--- a/ios/chrome/search_widget_extension/strings/resources/ios_search_widget_extension_strings_cs.xtb
+++ /dev/null
@@ -1,13 +0,0 @@
-<?xml version="1.0" ?>
-<!DOCTYPE translationbundle>
-<translationbundle lang="cs">
-<translation id="1545749641540134597">Naskenovat QR kód</translation>
-<translation id="2204254829203467991">Nové vyhledávání</translation>
-<translation id="3060070342265818827">Zde se zobrazí zkopírovaný obsah.</translation>
-<translation id="4056327302245368220">Vyhledat zkopírovaný obrázek</translation>
-<translation id="562989964911369186">Schránka je prázdná</translation>
-<translation id="6120021866613542190">Anonymní vyhledávání</translation>
-<translation id="6196207969502475924">Hlasové vyhledávání</translation>
-<translation id="8383052013774505331">Navštívit zkopírovaný odkaz</translation>
-<translation id="8504982932030734536">Vyhledat zkopírovaný text</translation>
-</translationbundle>
\ No newline at end of file
diff --git a/ios/chrome/search_widget_extension/strings/resources/ios_search_widget_extension_strings_cy.xtb b/ios/chrome/search_widget_extension/strings/resources/ios_search_widget_extension_strings_cy.xtb
deleted file mode 100644
index 9391c39..0000000
--- a/ios/chrome/search_widget_extension/strings/resources/ios_search_widget_extension_strings_cy.xtb
+++ /dev/null
@@ -1,13 +0,0 @@
-<?xml version="1.0" ?>
-<!DOCTYPE translationbundle>
-<translationbundle lang="cy">
-<translation id="1545749641540134597">Sganio Cod QR</translation>
-<translation id="2204254829203467991">Chwiliad newydd</translation>
-<translation id="3060070342265818827">Bydd y cynnwys rydych yn ei gopïo yn ymddangos yma.</translation>
-<translation id="4056327302245368220">Chwilio am y Llun y Gwnaethoch ei Gopïo</translation>
-<translation id="562989964911369186">Dim byd ar y clipfwrdd</translation>
-<translation id="6120021866613542190">Chwiliad Anhysbys</translation>
-<translation id="6196207969502475924">Chwilio â Llais</translation>
-<translation id="8383052013774505331">Mynd i Ddolen y Gwnaethoch ei Chopïo</translation>
-<translation id="8504982932030734536">Chwilio am Destun y Gwnaethoch ei Gopïo</translation>
-</translationbundle>
\ No newline at end of file
diff --git a/ios/chrome/search_widget_extension/strings/resources/ios_search_widget_extension_strings_da.xtb b/ios/chrome/search_widget_extension/strings/resources/ios_search_widget_extension_strings_da.xtb
deleted file mode 100644
index 7e869fa47..0000000
--- a/ios/chrome/search_widget_extension/strings/resources/ios_search_widget_extension_strings_da.xtb
+++ /dev/null
@@ -1,13 +0,0 @@
-<?xml version="1.0" ?>
-<!DOCTYPE translationbundle>
-<translationbundle lang="da">
-<translation id="1545749641540134597">Scan QR-kode</translation>
-<translation id="2204254829203467991">Ny søgning</translation>
-<translation id="3060070342265818827">Indhold, du kopierer, vises her.</translation>
-<translation id="4056327302245368220">Søg efter billede, du har kopieret</translation>
-<translation id="562989964911369186">Udklipsholderen er tom</translation>
-<translation id="6120021866613542190">Søgning i inkognitotilstand</translation>
-<translation id="6196207969502475924">Talesøgning</translation>
-<translation id="8383052013774505331">Gå til link, du har kopieret</translation>
-<translation id="8504982932030734536">Søg efter tekst, du har kopieret</translation>
-</translationbundle>
\ No newline at end of file
diff --git a/ios/chrome/search_widget_extension/strings/resources/ios_search_widget_extension_strings_de.xtb b/ios/chrome/search_widget_extension/strings/resources/ios_search_widget_extension_strings_de.xtb
deleted file mode 100644
index e52c492..0000000
--- a/ios/chrome/search_widget_extension/strings/resources/ios_search_widget_extension_strings_de.xtb
+++ /dev/null
@@ -1,13 +0,0 @@
-<?xml version="1.0" ?>
-<!DOCTYPE translationbundle>
-<translationbundle lang="de">
-<translation id="1545749641540134597">QR-Code scannen</translation>
-<translation id="2204254829203467991">Neue Suche</translation>
-<translation id="3060070342265818827">Inhalte, die du kopierst, werden hier angezeigt.</translation>
-<translation id="4056327302245368220">Nach dem kopierten Bild suchen</translation>
-<translation id="562989964911369186">Die Zwischenablage ist leer</translation>
-<translation id="6120021866613542190">Inkognitosuche</translation>
-<translation id="6196207969502475924">Sprachsuche</translation>
-<translation id="8383052013774505331">Kopierten Link aufrufen</translation>
-<translation id="8504982932030734536">Nach dem kopierten Text suchen</translation>
-</translationbundle>
\ No newline at end of file
diff --git a/ios/chrome/search_widget_extension/strings/resources/ios_search_widget_extension_strings_el.xtb b/ios/chrome/search_widget_extension/strings/resources/ios_search_widget_extension_strings_el.xtb
deleted file mode 100644
index 4e32f51..0000000
--- a/ios/chrome/search_widget_extension/strings/resources/ios_search_widget_extension_strings_el.xtb
+++ /dev/null
@@ -1,13 +0,0 @@
-<?xml version="1.0" ?>
-<!DOCTYPE translationbundle>
-<translationbundle lang="el">
-<translation id="1545749641540134597">Σάρωση κωδικού QR</translation>
-<translation id="2204254829203467991">Νέα αναζήτηση</translation>
-<translation id="3060070342265818827">Το περιεχόμενο που έχετε αντιγράψει θα εμφανίζεται εδώ.</translation>
-<translation id="4056327302245368220">Αναζήτηση της εικόνας που αντιγράψατε</translation>
-<translation id="562989964911369186">Δεν υπάρχει κάτι στο πρόχειρο</translation>
-<translation id="6120021866613542190">Ανώνυμη αναζήτηση</translation>
-<translation id="6196207969502475924">Φωνητική αναζήτηση</translation>
-<translation id="8383052013774505331">Μετάβαση στον σύνδεσμο που αντιγράψατε</translation>
-<translation id="8504982932030734536">Αναζητήστε το κείμενο που αντιγράψατε</translation>
-</translationbundle>
\ No newline at end of file
diff --git a/ios/chrome/search_widget_extension/strings/resources/ios_search_widget_extension_strings_en-GB.xtb b/ios/chrome/search_widget_extension/strings/resources/ios_search_widget_extension_strings_en-GB.xtb
deleted file mode 100644
index fe30d78..0000000
--- a/ios/chrome/search_widget_extension/strings/resources/ios_search_widget_extension_strings_en-GB.xtb
+++ /dev/null
@@ -1,13 +0,0 @@
-<?xml version="1.0" ?>
-<!DOCTYPE translationbundle>
-<translationbundle lang="en-GB">
-<translation id="1545749641540134597">Scan QR Code</translation>
-<translation id="2204254829203467991">New search</translation>
-<translation id="3060070342265818827">Content that you copy will appear here.</translation>
-<translation id="4056327302245368220">Search for image that you copied</translation>
-<translation id="562989964911369186">Nothing in clipboard</translation>
-<translation id="6120021866613542190">Incognito Search</translation>
-<translation id="6196207969502475924">Voice Search</translation>
-<translation id="8383052013774505331">Visit link that you copied</translation>
-<translation id="8504982932030734536">Search for text that you copied</translation>
-</translationbundle>
\ No newline at end of file
diff --git a/ios/chrome/search_widget_extension/strings/resources/ios_search_widget_extension_strings_en.xtb b/ios/chrome/search_widget_extension/strings/resources/ios_search_widget_extension_strings_en.xtb
deleted file mode 100644
index 4c6d0ea1..0000000
--- a/ios/chrome/search_widget_extension/strings/resources/ios_search_widget_extension_strings_en.xtb
+++ /dev/null
@@ -1,4 +0,0 @@
-<?xml version="1.0" ?>
-<!DOCTYPE translationbundle>
-<translationbundle lang="en">
-</translationbundle>
diff --git a/ios/chrome/search_widget_extension/strings/resources/ios_search_widget_extension_strings_es-419.xtb b/ios/chrome/search_widget_extension/strings/resources/ios_search_widget_extension_strings_es-419.xtb
deleted file mode 100644
index 09d055e9..0000000
--- a/ios/chrome/search_widget_extension/strings/resources/ios_search_widget_extension_strings_es-419.xtb
+++ /dev/null
@@ -1,13 +0,0 @@
-<?xml version="1.0" ?>
-<!DOCTYPE translationbundle>
-<translationbundle lang="es-419">
-<translation id="1545749641540134597">Escanear código QR</translation>
-<translation id="2204254829203467991">Nueva búsqueda</translation>
-<translation id="3060070342265818827">Aquí aparecerá el contenido que copies.</translation>
-<translation id="4056327302245368220">Busca la imagen que copiaste</translation>
-<translation id="562989964911369186">El portapapeles está vacío</translation>
-<translation id="6120021866613542190">Búsqueda en el modo incógnito</translation>
-<translation id="6196207969502475924">Búsqueda por voz</translation>
-<translation id="8383052013774505331">Visita el vínculo que copiaste</translation>
-<translation id="8504982932030734536">Buscar el texto copiado</translation>
-</translationbundle>
\ No newline at end of file
diff --git a/ios/chrome/search_widget_extension/strings/resources/ios_search_widget_extension_strings_es.xtb b/ios/chrome/search_widget_extension/strings/resources/ios_search_widget_extension_strings_es.xtb
deleted file mode 100644
index f542a3e9..0000000
--- a/ios/chrome/search_widget_extension/strings/resources/ios_search_widget_extension_strings_es.xtb
+++ /dev/null
@@ -1,13 +0,0 @@
-<?xml version="1.0" ?>
-<!DOCTYPE translationbundle>
-<translationbundle lang="es">
-<translation id="1545749641540134597">Escanea el código QR</translation>
-<translation id="2204254829203467991">Nueva búsqueda</translation>
-<translation id="3060070342265818827">El contenido que copies aparecerá aquí.</translation>
-<translation id="4056327302245368220">Buscar la imagen que has copiado</translation>
-<translation id="562989964911369186">No hay nada en el portapapeles</translation>
-<translation id="6120021866613542190">Búsqueda en modo Incógnito</translation>
-<translation id="6196207969502475924">Búsqueda por voz</translation>
-<translation id="8383052013774505331">Visitar el enlace que has copiado</translation>
-<translation id="8504982932030734536">Buscar el texto que has copiado</translation>
-</translationbundle>
\ No newline at end of file
diff --git a/ios/chrome/search_widget_extension/strings/resources/ios_search_widget_extension_strings_et.xtb b/ios/chrome/search_widget_extension/strings/resources/ios_search_widget_extension_strings_et.xtb
deleted file mode 100644
index 22e70d2..0000000
--- a/ios/chrome/search_widget_extension/strings/resources/ios_search_widget_extension_strings_et.xtb
+++ /dev/null
@@ -1,13 +0,0 @@
-<?xml version="1.0" ?>
-<!DOCTYPE translationbundle>
-<translationbundle lang="et">
-<translation id="1545749641540134597">QR-koodi skannimine</translation>
-<translation id="2204254829203467991">Uus otsing</translation>
-<translation id="3060070342265818827">Teie kopeeritud sisu ilmub siin.</translation>
-<translation id="4056327302245368220">Otsige kopeeritud pilti</translation>
-<translation id="562989964911369186">Lõikelaual pole midagi</translation>
-<translation id="6120021866613542190">Inkognito režiimis otsing</translation>
-<translation id="6196207969502475924">Häälotsing</translation>
-<translation id="8383052013774505331">Külasta kopeeritud linki</translation>
-<translation id="8504982932030734536">Otsige kopeeritud teksti</translation>
-</translationbundle>
\ No newline at end of file
diff --git a/ios/chrome/search_widget_extension/strings/resources/ios_search_widget_extension_strings_eu.xtb b/ios/chrome/search_widget_extension/strings/resources/ios_search_widget_extension_strings_eu.xtb
deleted file mode 100644
index 7f02733..0000000
--- a/ios/chrome/search_widget_extension/strings/resources/ios_search_widget_extension_strings_eu.xtb
+++ /dev/null
@@ -1,13 +0,0 @@
-<?xml version="1.0" ?>
-<!DOCTYPE translationbundle>
-<translationbundle lang="eu">
-<translation id="1545749641540134597">Eskaneatu QR kodea</translation>
-<translation id="2204254829203467991">Bilaketa berria</translation>
-<translation id="3060070342265818827">Hemen agertuko da kopiatzen duzun edukia.</translation>
-<translation id="4056327302245368220">Bilatu kopiatu duzun irudia</translation>
-<translation id="562989964911369186">Arbela hutsik dago</translation>
-<translation id="6120021866613542190">Ezkutuko moduko bilaketa</translation>
-<translation id="6196207969502475924">Ahozko bilaketa</translation>
-<translation id="8383052013774505331">Joan kopiatu duzun estekara</translation>
-<translation id="8504982932030734536">Bilatu kopiatu duzun testua</translation>
-</translationbundle>
\ No newline at end of file
diff --git a/ios/chrome/search_widget_extension/strings/resources/ios_search_widget_extension_strings_fa.xtb b/ios/chrome/search_widget_extension/strings/resources/ios_search_widget_extension_strings_fa.xtb
deleted file mode 100644
index a87f32a..0000000
--- a/ios/chrome/search_widget_extension/strings/resources/ios_search_widget_extension_strings_fa.xtb
+++ /dev/null
@@ -1,13 +0,0 @@
-<?xml version="1.0" ?>
-<!DOCTYPE translationbundle>
-<translationbundle lang="fa">
-<translation id="1545749641540134597">اسکن رمزینه پاسخ‌سریع</translation>
-<translation id="2204254829203467991">جستجوی جدید</translation>
-<translation id="3060070342265818827">محتوایی که کپی می‌کنید، اینجا نشان داده می‌شود.</translation>
-<translation id="4056327302245368220">جستجوی تصویری که کپی کرده‌اید</translation>
-<translation id="562989964911369186">موردی در بریده‌دان موجود نیست</translation>
-<translation id="6120021866613542190">جستجوی ناشناس</translation>
-<translation id="6196207969502475924">جستجوی گفتاری</translation>
-<translation id="8383052013774505331">رفتن به پیوندی که کپی کردید</translation>
-<translation id="8504982932030734536">جستجوی نوشتاری که کپی کردید</translation>
-</translationbundle>
\ No newline at end of file
diff --git a/ios/chrome/search_widget_extension/strings/resources/ios_search_widget_extension_strings_fi.xtb b/ios/chrome/search_widget_extension/strings/resources/ios_search_widget_extension_strings_fi.xtb
deleted file mode 100644
index b5f02a9..0000000
--- a/ios/chrome/search_widget_extension/strings/resources/ios_search_widget_extension_strings_fi.xtb
+++ /dev/null
@@ -1,13 +0,0 @@
-<?xml version="1.0" ?>
-<!DOCTYPE translationbundle>
-<translationbundle lang="fi">
-<translation id="1545749641540134597">Skannaa QR-koodi</translation>
-<translation id="2204254829203467991">Uusi haku</translation>
-<translation id="3060070342265818827">Kopioimasi sisältö tulee näkyviin tähän.</translation>
-<translation id="4056327302245368220">Hae kopioitua kuvaa</translation>
-<translation id="562989964911369186">Leikepöytä on tyhjä</translation>
-<translation id="6120021866613542190">Incognito-haku</translation>
-<translation id="6196207969502475924">Puhehaku</translation>
-<translation id="8383052013774505331">Avaa kopioitu linkki</translation>
-<translation id="8504982932030734536">Hae kopioitua tekstiä</translation>
-</translationbundle>
\ No newline at end of file
diff --git a/ios/chrome/search_widget_extension/strings/resources/ios_search_widget_extension_strings_fil.xtb b/ios/chrome/search_widget_extension/strings/resources/ios_search_widget_extension_strings_fil.xtb
deleted file mode 100644
index 02b6b33..0000000
--- a/ios/chrome/search_widget_extension/strings/resources/ios_search_widget_extension_strings_fil.xtb
+++ /dev/null
@@ -1,13 +0,0 @@
-<?xml version="1.0" ?>
-<!DOCTYPE translationbundle>
-<translationbundle lang="fil">
-<translation id="1545749641540134597">I-scan ang QR Code</translation>
-<translation id="2204254829203467991">Bagong Paghahanap</translation>
-<translation id="3060070342265818827">Lalabas dito ang content na kokopyahin mo.</translation>
-<translation id="4056327302245368220">Hanapin ang Larawang Kinopya Mo</translation>
-<translation id="562989964911369186">Walang laman ang clipboard</translation>
-<translation id="6120021866613542190">Paghahanap sa Incognito</translation>
-<translation id="6196207969502475924">Paghahanap gamit ang boses</translation>
-<translation id="8383052013774505331">Bisitahin ang Link na Kinopya Mo</translation>
-<translation id="8504982932030734536">Hanapin ang Text na Kinopya Mo</translation>
-</translationbundle>
\ No newline at end of file
diff --git a/ios/chrome/search_widget_extension/strings/resources/ios_search_widget_extension_strings_fr-CA.xtb b/ios/chrome/search_widget_extension/strings/resources/ios_search_widget_extension_strings_fr-CA.xtb
deleted file mode 100644
index 78251220..0000000
--- a/ios/chrome/search_widget_extension/strings/resources/ios_search_widget_extension_strings_fr-CA.xtb
+++ /dev/null
@@ -1,13 +0,0 @@
-<?xml version="1.0" ?>
-<!DOCTYPE translationbundle>
-<translationbundle lang="fr-CA">
-<translation id="1545749641540134597">Numérisez le code QR</translation>
-<translation id="2204254829203467991">Nouvelle recherche</translation>
-<translation id="3060070342265818827">Le contenu que vous copiez s'affichera ici.</translation>
-<translation id="4056327302245368220">Rechercher l'image que vous avez copiée</translation>
-<translation id="562989964911369186">Le presse-papiers est vide</translation>
-<translation id="6120021866613542190">Recherche en mode de navigation privée</translation>
-<translation id="6196207969502475924">Recherche vocale</translation>
-<translation id="8383052013774505331">Accéder au lien que vous avez copié</translation>
-<translation id="8504982932030734536">Rechercher le texte que vous avez copié</translation>
-</translationbundle>
\ No newline at end of file
diff --git a/ios/chrome/search_widget_extension/strings/resources/ios_search_widget_extension_strings_fr.xtb b/ios/chrome/search_widget_extension/strings/resources/ios_search_widget_extension_strings_fr.xtb
deleted file mode 100644
index ba9c207..0000000
--- a/ios/chrome/search_widget_extension/strings/resources/ios_search_widget_extension_strings_fr.xtb
+++ /dev/null
@@ -1,13 +0,0 @@
-<?xml version="1.0" ?>
-<!DOCTYPE translationbundle>
-<translationbundle lang="fr">
-<translation id="1545749641540134597">Scanner le code QR</translation>
-<translation id="2204254829203467991">Nouvelle recherche</translation>
-<translation id="3060070342265818827">Le contenu que vous copiez s'affiche ici.</translation>
-<translation id="4056327302245368220">Recherchez l'image que vous avez copiée</translation>
-<translation id="562989964911369186">Presse-papier vide</translation>
-<translation id="6120021866613542190">Recherche en mode navigation privée</translation>
-<translation id="6196207969502475924">Recherche vocale</translation>
-<translation id="8383052013774505331">Consultez la page du lien que vous avez copié</translation>
-<translation id="8504982932030734536">Recherchez le texte que vous avez copié</translation>
-</translationbundle>
\ No newline at end of file
diff --git a/ios/chrome/search_widget_extension/strings/resources/ios_search_widget_extension_strings_gl.xtb b/ios/chrome/search_widget_extension/strings/resources/ios_search_widget_extension_strings_gl.xtb
deleted file mode 100644
index 4f207e7..0000000
--- a/ios/chrome/search_widget_extension/strings/resources/ios_search_widget_extension_strings_gl.xtb
+++ /dev/null
@@ -1,13 +0,0 @@
-<?xml version="1.0" ?>
-<!DOCTYPE translationbundle>
-<translationbundle lang="gl">
-<translation id="1545749641540134597">Escanear código QR</translation>
-<translation id="2204254829203467991">Nova busca</translation>
-<translation id="3060070342265818827">O contido que copies aparecerá aquí.</translation>
-<translation id="4056327302245368220">Buscar a imaxe que copiaches</translation>
-<translation id="562989964911369186">O portapapeis está baleiro</translation>
-<translation id="6120021866613542190">Busca do modo de incógnito</translation>
-<translation id="6196207969502475924">Busca por voz</translation>
-<translation id="8383052013774505331">Visitar a ligazón que copiaches</translation>
-<translation id="8504982932030734536">Buscar o texto que copiaches</translation>
-</translationbundle>
\ No newline at end of file
diff --git a/ios/chrome/search_widget_extension/strings/resources/ios_search_widget_extension_strings_gu.xtb b/ios/chrome/search_widget_extension/strings/resources/ios_search_widget_extension_strings_gu.xtb
deleted file mode 100644
index 61feba5..0000000
--- a/ios/chrome/search_widget_extension/strings/resources/ios_search_widget_extension_strings_gu.xtb
+++ /dev/null
@@ -1,13 +0,0 @@
-<?xml version="1.0" ?>
-<!DOCTYPE translationbundle>
-<translationbundle lang="gu">
-<translation id="1545749641540134597">QR કોડ સ્કેન કરો</translation>
-<translation id="2204254829203467991">નવી શોધ</translation>
-<translation id="3060070342265818827">તમે કૉપિ કરશો તે કન્ટેન્ટ અહીં દેખાશે.</translation>
-<translation id="4056327302245368220">તમે કૉપિ કરેલી છબી માટે શોધ કરો</translation>
-<translation id="562989964911369186">ક્લિપબોર્ડમાં કંઈ નથી</translation>
-<translation id="6120021866613542190">છુપી શોધ</translation>
-<translation id="6196207969502475924">વૉઇસ શોધ</translation>
-<translation id="8383052013774505331">તમે કૉપિ કરેલી લિંકની મુલાકાત લો</translation>
-<translation id="8504982932030734536">તમે કૉપિ કરેલી ટેક્સ્ટ માટે શોધ કરો</translation>
-</translationbundle>
\ No newline at end of file
diff --git a/ios/chrome/search_widget_extension/strings/resources/ios_search_widget_extension_strings_hi.xtb b/ios/chrome/search_widget_extension/strings/resources/ios_search_widget_extension_strings_hi.xtb
deleted file mode 100644
index fd3dd3aa..0000000
--- a/ios/chrome/search_widget_extension/strings/resources/ios_search_widget_extension_strings_hi.xtb
+++ /dev/null
@@ -1,13 +0,0 @@
-<?xml version="1.0" ?>
-<!DOCTYPE translationbundle>
-<translationbundle lang="hi">
-<translation id="1545749641540134597">QR कोड स्कैन करें</translation>
-<translation id="2204254829203467991">नई खोज</translation>
-<translation id="3060070342265818827">आपकी कॉपी की गई सामग्री यहां दिखाई देगी.</translation>
-<translation id="4056327302245368220">जो इमेज आपने कॉपी की थी वह खोजें</translation>
-<translation id="562989964911369186">क्लिपबोर्ड में कुछ नहीं है</translation>
-<translation id="6120021866613542190">गुप्त खोज</translation>
-<translation id="6196207969502475924">बोलकर खोजें</translation>
-<translation id="8383052013774505331">जो लिंक आपने कॉपी किया है उस पर जाएं</translation>
-<translation id="8504982932030734536">जो टेक्स्ट आपने कॉपी किया था वह खोजें</translation>
-</translationbundle>
\ No newline at end of file
diff --git a/ios/chrome/search_widget_extension/strings/resources/ios_search_widget_extension_strings_hr.xtb b/ios/chrome/search_widget_extension/strings/resources/ios_search_widget_extension_strings_hr.xtb
deleted file mode 100644
index 44e28eb..0000000
--- a/ios/chrome/search_widget_extension/strings/resources/ios_search_widget_extension_strings_hr.xtb
+++ /dev/null
@@ -1,13 +0,0 @@
-<?xml version="1.0" ?>
-<!DOCTYPE translationbundle>
-<translationbundle lang="hr">
-<translation id="1545749641540134597">Skeniranje QR koda</translation>
-<translation id="2204254829203467991">Novo pretraživanje</translation>
-<translation id="3060070342265818827">Sadržaj koji kopirate pojavit će se ovdje.</translation>
-<translation id="4056327302245368220">Traženje slike koju ste kopirali</translation>
-<translation id="562989964911369186">U međuspremniku nema ničega</translation>
-<translation id="6120021866613542190">Anonimno pretraživanje</translation>
-<translation id="6196207969502475924">Glasovno pretraživanje</translation>
-<translation id="8383052013774505331">Otvaranje veze koju ste kopirali</translation>
-<translation id="8504982932030734536">Traženje teksta koji ste kopirali</translation>
-</translationbundle>
\ No newline at end of file
diff --git a/ios/chrome/search_widget_extension/strings/resources/ios_search_widget_extension_strings_hu.xtb b/ios/chrome/search_widget_extension/strings/resources/ios_search_widget_extension_strings_hu.xtb
deleted file mode 100644
index c912c3b5..0000000
--- a/ios/chrome/search_widget_extension/strings/resources/ios_search_widget_extension_strings_hu.xtb
+++ /dev/null
@@ -1,13 +0,0 @@
-<?xml version="1.0" ?>
-<!DOCTYPE translationbundle>
-<translationbundle lang="hu">
-<translation id="1545749641540134597">QR-kód beolvasása</translation>
-<translation id="2204254829203467991">Új keresés</translation>
-<translation id="3060070342265818827">A vágólapra másolt tartalmak itt jelennek meg.</translation>
-<translation id="4056327302245368220">A vágólapra másolt kép keresése</translation>
-<translation id="562989964911369186">Semmi sincs a vágólapon</translation>
-<translation id="6120021866613542190">Keresés inkognitó módban</translation>
-<translation id="6196207969502475924">Hangalapú keresés</translation>
-<translation id="8383052013774505331">A vágólapra másolt link megnyitása</translation>
-<translation id="8504982932030734536">A vágólapra másolt szöveg keresése</translation>
-</translationbundle>
\ No newline at end of file
diff --git a/ios/chrome/search_widget_extension/strings/resources/ios_search_widget_extension_strings_hy.xtb b/ios/chrome/search_widget_extension/strings/resources/ios_search_widget_extension_strings_hy.xtb
deleted file mode 100644
index a8c1afc3c..0000000
--- a/ios/chrome/search_widget_extension/strings/resources/ios_search_widget_extension_strings_hy.xtb
+++ /dev/null
@@ -1,13 +0,0 @@
-<?xml version="1.0" ?>
-<!DOCTYPE translationbundle>
-<translationbundle lang="hy">
-<translation id="1545749641540134597">Սկանավորեք QR-կոդը</translation>
-<translation id="2204254829203467991">Նոր որոնում</translation>
-<translation id="3060070342265818827">Ձեր պատճենած բովանդակությունը կցուցադրվի այստեղ:</translation>
-<translation id="4056327302245368220">Որոնեք ձեր պատճենած պատկերը</translation>
-<translation id="562989964911369186">Սեղմատախտակը դատարկ է</translation>
-<translation id="6120021866613542190">Որոնել ինկոգնիտո ռեժիմում</translation>
-<translation id="6196207969502475924">Ձայնային որոնում</translation>
-<translation id="8383052013774505331">Բացել պատճենված հղումը</translation>
-<translation id="8504982932030734536">Որոնեք ձեր պատճենած տեքստը</translation>
-</translationbundle>
\ No newline at end of file
diff --git a/ios/chrome/search_widget_extension/strings/resources/ios_search_widget_extension_strings_id.xtb b/ios/chrome/search_widget_extension/strings/resources/ios_search_widget_extension_strings_id.xtb
deleted file mode 100644
index eaa8e5e2..0000000
--- a/ios/chrome/search_widget_extension/strings/resources/ios_search_widget_extension_strings_id.xtb
+++ /dev/null
@@ -1,13 +0,0 @@
-<?xml version="1.0" ?>
-<!DOCTYPE translationbundle>
-<translationbundle lang="id">
-<translation id="1545749641540134597">Pindai Kode QR</translation>
-<translation id="2204254829203467991">Penelusuran Baru</translation>
-<translation id="3060070342265818827">Konten yang Anda salin akan muncul di sini.</translation>
-<translation id="4056327302245368220">Telusuri Gambar yang Anda Salin</translation>
-<translation id="562989964911369186">Tidak ada konten di papan klip</translation>
-<translation id="6120021866613542190">Penelusuran Rahasia</translation>
-<translation id="6196207969502475924">Penelusuran Suara</translation>
-<translation id="8383052013774505331">Buka Link yang Anda Salin</translation>
-<translation id="8504982932030734536">Telusuri Teks yang Anda Salin</translation>
-</translationbundle>
\ No newline at end of file
diff --git a/ios/chrome/search_widget_extension/strings/resources/ios_search_widget_extension_strings_is.xtb b/ios/chrome/search_widget_extension/strings/resources/ios_search_widget_extension_strings_is.xtb
deleted file mode 100644
index 5d8ba52..0000000
--- a/ios/chrome/search_widget_extension/strings/resources/ios_search_widget_extension_strings_is.xtb
+++ /dev/null
@@ -1,13 +0,0 @@
-<?xml version="1.0" ?>
-<!DOCTYPE translationbundle>
-<translationbundle lang="is">
-<translation id="1545749641540134597">Skanna QR-kóða</translation>
-<translation id="2204254829203467991">Ný leit</translation>
-<translation id="3060070342265818827">Efni sem þú afritar birtist hér.</translation>
-<translation id="4056327302245368220">Leita að mynd sem þú afritaðir</translation>
-<translation id="562989964911369186">Ekkert á klippiborði</translation>
-<translation id="6120021866613542190">Leit í huliðsstillingu</translation>
-<translation id="6196207969502475924">Raddleit</translation>
-<translation id="8383052013774505331">Opna tengil sem þú afritaðir</translation>
-<translation id="8504982932030734536">Leita að texta sem þú afritaðir</translation>
-</translationbundle>
\ No newline at end of file
diff --git a/ios/chrome/search_widget_extension/strings/resources/ios_search_widget_extension_strings_it.xtb b/ios/chrome/search_widget_extension/strings/resources/ios_search_widget_extension_strings_it.xtb
deleted file mode 100644
index 47d1b5f..0000000
--- a/ios/chrome/search_widget_extension/strings/resources/ios_search_widget_extension_strings_it.xtb
+++ /dev/null
@@ -1,13 +0,0 @@
-<?xml version="1.0" ?>
-<!DOCTYPE translationbundle>
-<translationbundle lang="it">
-<translation id="1545749641540134597">Scansiona codice QR</translation>
-<translation id="2204254829203467991">Nuova ricerca</translation>
-<translation id="3060070342265818827">Qui verranno visualizzati i contenuti copiati.</translation>
-<translation id="4056327302245368220">Cerca l'immagine copiata</translation>
-<translation id="562989964911369186">Nessun dato negli appunti</translation>
-<translation id="6120021866613542190">Ricerca in incognito</translation>
-<translation id="6196207969502475924">Ricerca vocale</translation>
-<translation id="8383052013774505331">Visita il link copiato</translation>
-<translation id="8504982932030734536">Cerca il testo copiato</translation>
-</translationbundle>
\ No newline at end of file
diff --git a/ios/chrome/search_widget_extension/strings/resources/ios_search_widget_extension_strings_iw.xtb b/ios/chrome/search_widget_extension/strings/resources/ios_search_widget_extension_strings_iw.xtb
deleted file mode 100644
index 3759392a..0000000
--- a/ios/chrome/search_widget_extension/strings/resources/ios_search_widget_extension_strings_iw.xtb
+++ /dev/null
@@ -1,13 +0,0 @@
-<?xml version="1.0" ?>
-<!DOCTYPE translationbundle>
-<translationbundle lang="iw">
-<translation id="1545749641540134597">‏סריקת קוד QR</translation>
-<translation id="2204254829203467991">חיפוש חדש</translation>
-<translation id="3060070342265818827">תוכן שהעתקת יופיע כאן.</translation>
-<translation id="4056327302245368220">חיפוש תמונה שהעתקת</translation>
-<translation id="562989964911369186">הלוח ריק</translation>
-<translation id="6120021866613542190">חיפוש במצב אנונימי</translation>
-<translation id="6196207969502475924">חיפוש קולי</translation>
-<translation id="8383052013774505331">מעבר לקישור שהעתקת</translation>
-<translation id="8504982932030734536">חיפוש טקסט שהעתקת</translation>
-</translationbundle>
\ No newline at end of file
diff --git a/ios/chrome/search_widget_extension/strings/resources/ios_search_widget_extension_strings_ja.xtb b/ios/chrome/search_widget_extension/strings/resources/ios_search_widget_extension_strings_ja.xtb
deleted file mode 100644
index 43e8480..0000000
--- a/ios/chrome/search_widget_extension/strings/resources/ios_search_widget_extension_strings_ja.xtb
+++ /dev/null
@@ -1,13 +0,0 @@
-<?xml version="1.0" ?>
-<!DOCTYPE translationbundle>
-<translationbundle lang="ja">
-<translation id="1545749641540134597">QR コードをスキャンします</translation>
-<translation id="2204254829203467991">新しく検索</translation>
-<translation id="3060070342265818827">コピーしたコンテンツがここに表示されます。</translation>
-<translation id="4056327302245368220">コピーした画像を検索</translation>
-<translation id="562989964911369186">クリップボードに何もありません</translation>
-<translation id="6120021866613542190">シークレット検索</translation>
-<translation id="6196207969502475924">音声検索</translation>
-<translation id="8383052013774505331">コピーしたリンクに移動</translation>
-<translation id="8504982932030734536">コピーしたテキストを検索</translation>
-</translationbundle>
\ No newline at end of file
diff --git a/ios/chrome/search_widget_extension/strings/resources/ios_search_widget_extension_strings_ka.xtb b/ios/chrome/search_widget_extension/strings/resources/ios_search_widget_extension_strings_ka.xtb
deleted file mode 100644
index 35280289..0000000
--- a/ios/chrome/search_widget_extension/strings/resources/ios_search_widget_extension_strings_ka.xtb
+++ /dev/null
@@ -1,13 +0,0 @@
-<?xml version="1.0" ?>
-<!DOCTYPE translationbundle>
-<translationbundle lang="ka">
-<translation id="1545749641540134597">QR კოდის სკანირება</translation>
-<translation id="2204254829203467991">ახალი ძიება</translation>
-<translation id="3060070342265818827">აქ გამოჩნდება თქვენ მიერ კოპირებული კონტენტი.</translation>
-<translation id="4056327302245368220">თქვენ მიერ კოპირებული სურათის ძიება</translation>
-<translation id="562989964911369186">გაცვლის ბუფერი ცარიელია</translation>
-<translation id="6120021866613542190">ინკოგნიტო ძიება</translation>
-<translation id="6196207969502475924">ხმოვანი ძიება</translation>
-<translation id="8383052013774505331">თქვენ მიერ კოპირებულ ბმულზე გადასვლა</translation>
-<translation id="8504982932030734536">თქვენ მიერ კოპირებული ტექსტის მოძიება</translation>
-</translationbundle>
\ No newline at end of file
diff --git a/ios/chrome/search_widget_extension/strings/resources/ios_search_widget_extension_strings_kk.xtb b/ios/chrome/search_widget_extension/strings/resources/ios_search_widget_extension_strings_kk.xtb
deleted file mode 100644
index 6e6920f..0000000
--- a/ios/chrome/search_widget_extension/strings/resources/ios_search_widget_extension_strings_kk.xtb
+++ /dev/null
@@ -1,13 +0,0 @@
-<?xml version="1.0" ?>
-<!DOCTYPE translationbundle>
-<translationbundle lang="kk">
-<translation id="1545749641540134597">QR кодын сканерлеу</translation>
-<translation id="2204254829203467991">Жаңа іздеу</translation>
-<translation id="3060070342265818827">Көшірілген контент осы жерге шығады.</translation>
-<translation id="4056327302245368220">Көшірілген суретті іздеу</translation>
-<translation id="562989964911369186">Буферде ештеңе жоқ</translation>
-<translation id="6120021866613542190">Инкогнито іздеу</translation>
-<translation id="6196207969502475924">Дауыспен іздеу</translation>
-<translation id="8383052013774505331">Көшірілген сілтеме бойынша өту</translation>
-<translation id="8504982932030734536">Көшірілген мәтінді іздеу</translation>
-</translationbundle>
\ No newline at end of file
diff --git a/ios/chrome/search_widget_extension/strings/resources/ios_search_widget_extension_strings_km.xtb b/ios/chrome/search_widget_extension/strings/resources/ios_search_widget_extension_strings_km.xtb
deleted file mode 100644
index 7a8e2e7..0000000
--- a/ios/chrome/search_widget_extension/strings/resources/ios_search_widget_extension_strings_km.xtb
+++ /dev/null
@@ -1,13 +0,0 @@
-<?xml version="1.0" ?>
-<!DOCTYPE translationbundle>
-<translationbundle lang="km">
-<translation id="1545749641540134597">ស្កេនកូដ QR</translation>
-<translation id="2204254829203467991">ការស្វែងរក​ថ្មី</translation>
-<translation id="3060070342265818827">ខ្លឹមសារ​ដែលអ្នក​ចម្លងនឹង​បង្ហាញ​នៅទីនេះ។</translation>
-<translation id="4056327302245368220">ស្វែងរករូបភាព​ដែលអ្នកបានចម្លង</translation>
-<translation id="562989964911369186">គ្មានអ្វី​នៅក្នុង​ឃ្លីបបត​ទេ</translation>
-<translation id="6120021866613542190">ការ​ស្វែងរក​លក្ខណៈអនាមិក</translation>
-<translation id="6196207969502475924">ស្វែងរកដោយសម្លេង</translation>
-<translation id="8383052013774505331">ចូល​ទៅកាន់​តំណ​ដែលអ្នក​បានចម្លង</translation>
-<translation id="8504982932030734536">ស្វែងរក​អត្ថបទ​ដែលអ្នក​បានចម្លង</translation>
-</translationbundle>
\ No newline at end of file
diff --git a/ios/chrome/search_widget_extension/strings/resources/ios_search_widget_extension_strings_kn.xtb b/ios/chrome/search_widget_extension/strings/resources/ios_search_widget_extension_strings_kn.xtb
deleted file mode 100644
index d134a45..0000000
--- a/ios/chrome/search_widget_extension/strings/resources/ios_search_widget_extension_strings_kn.xtb
+++ /dev/null
@@ -1,13 +0,0 @@
-<?xml version="1.0" ?>
-<!DOCTYPE translationbundle>
-<translationbundle lang="kn">
-<translation id="1545749641540134597">QR ಕೋಡ್ ಸ್ಕ್ಯಾನ್ ಮಾಡಿ</translation>
-<translation id="2204254829203467991">ಹೊಸ ಹುಡುಕಾಟ</translation>
-<translation id="3060070342265818827">ನೀವು ನಕಲಿಸುವ ವಿಷಯವು ಇಲ್ಲಿ ಗೋಚರಿಸುತ್ತದೆ.</translation>
-<translation id="4056327302245368220">ನೀವು ನಕಲಿಸಿದ ಚಿತ್ರವನ್ನು ಹುಡುಕಿ</translation>
-<translation id="562989964911369186">ಕ್ಲಿಪ್‌ಬೋರ್ಡ್‌ನಲ್ಲಿ ಏನೂ ಇಲ್ಲ</translation>
-<translation id="6120021866613542190">ಅಜ್ಞಾತ ಹುಡುಕಾಟ</translation>
-<translation id="6196207969502475924">ಧ್ವನಿ ಹುಡುಕಾಟ</translation>
-<translation id="8383052013774505331">ನೀವು ನಕಲಿಸಿದ ಲಿಂಕ್‌ಗೆ ಭೇಟಿ ನೀಡಿ</translation>
-<translation id="8504982932030734536">ನೀವು ನಕಲಿಸಿದ ಪಠ್ಯವನ್ನು ಹುಡುಕಿ</translation>
-</translationbundle>
\ No newline at end of file
diff --git a/ios/chrome/search_widget_extension/strings/resources/ios_search_widget_extension_strings_ko.xtb b/ios/chrome/search_widget_extension/strings/resources/ios_search_widget_extension_strings_ko.xtb
deleted file mode 100644
index 58746710..0000000
--- a/ios/chrome/search_widget_extension/strings/resources/ios_search_widget_extension_strings_ko.xtb
+++ /dev/null
@@ -1,13 +0,0 @@
-<?xml version="1.0" ?>
-<!DOCTYPE translationbundle>
-<translationbundle lang="ko">
-<translation id="1545749641540134597">QR 코드 스캔</translation>
-<translation id="2204254829203467991">새 검색</translation>
-<translation id="3060070342265818827">복사한 콘텐츠가 여기에 표시됩니다.</translation>
-<translation id="4056327302245368220">복사한 이미지 검색</translation>
-<translation id="562989964911369186">클립보드 항목 없음</translation>
-<translation id="6120021866613542190">시크릿 검색</translation>
-<translation id="6196207969502475924">음성 검색</translation>
-<translation id="8383052013774505331">복사한 링크 방문</translation>
-<translation id="8504982932030734536">복사한 텍스트 검색</translation>
-</translationbundle>
\ No newline at end of file
diff --git a/ios/chrome/search_widget_extension/strings/resources/ios_search_widget_extension_strings_ky.xtb b/ios/chrome/search_widget_extension/strings/resources/ios_search_widget_extension_strings_ky.xtb
deleted file mode 100644
index 124074e9..0000000
--- a/ios/chrome/search_widget_extension/strings/resources/ios_search_widget_extension_strings_ky.xtb
+++ /dev/null
@@ -1,13 +0,0 @@
-<?xml version="1.0" ?>
-<!DOCTYPE translationbundle>
-<translationbundle lang="ky">
-<translation id="1545749641540134597">QR кодду скандоо</translation>
-<translation id="2204254829203467991">Жаңы издөө</translation>
-<translation id="3060070342265818827">Сиз көчүрүп алган мазмун ушул жерде көрүнөт.</translation>
-<translation id="4056327302245368220">Көчүрүп алган сүрөттү издеңиз</translation>
-<translation id="562989964911369186">Алмашуу буферинде эч нерсе жок</translation>
-<translation id="6120021866613542190">Жашыруун издөө</translation>
-<translation id="6196207969502475924">Айтып издөө</translation>
-<translation id="8383052013774505331">Көчүрүп алган шилтеме менен өтүңүз</translation>
-<translation id="8504982932030734536">Көчүрүп алган текстти издеңиз</translation>
-</translationbundle>
\ No newline at end of file
diff --git a/ios/chrome/search_widget_extension/strings/resources/ios_search_widget_extension_strings_lo.xtb b/ios/chrome/search_widget_extension/strings/resources/ios_search_widget_extension_strings_lo.xtb
deleted file mode 100644
index 9cb656a..0000000
--- a/ios/chrome/search_widget_extension/strings/resources/ios_search_widget_extension_strings_lo.xtb
+++ /dev/null
@@ -1,13 +0,0 @@
-<?xml version="1.0" ?>
-<!DOCTYPE translationbundle>
-<translationbundle lang="lo">
-<translation id="1545749641540134597">ສະແກນລະຫັດ QR</translation>
-<translation id="2204254829203467991">ຊອກຫາໃໝ່</translation>
-<translation id="3060070342265818827">ເນື້ອຫາທີ່ທ່ານສຳເນົາຈະປາກົດຢູ່ບ່ອນນີ້.</translation>
-<translation id="4056327302245368220">ຊອກຫາຮູບພາບທີ່ທ່ານສຳເນົາ</translation>
-<translation id="562989964911369186">ບໍ່ມີຫຍັງໃນຄລິບບອດ</translation>
-<translation id="6120021866613542190">ການຊອກຫາແບບບໍ່ເຜີຍຕົວຕົນ</translation>
-<translation id="6196207969502475924">​ການຄົ້ນຫາ​ສຽງ</translation>
-<translation id="8383052013774505331">ເຂົ້າເບິ່ງລິ້ງທີ່ທ່ານສຳເນົາ</translation>
-<translation id="8504982932030734536">ຊອກຫາຂໍ້ຄວາມທີ່ທ່ານສຳເນົາໄວ້</translation>
-</translationbundle>
\ No newline at end of file
diff --git a/ios/chrome/search_widget_extension/strings/resources/ios_search_widget_extension_strings_lt.xtb b/ios/chrome/search_widget_extension/strings/resources/ios_search_widget_extension_strings_lt.xtb
deleted file mode 100644
index cca715d..0000000
--- a/ios/chrome/search_widget_extension/strings/resources/ios_search_widget_extension_strings_lt.xtb
+++ /dev/null
@@ -1,13 +0,0 @@
-<?xml version="1.0" ?>
-<!DOCTYPE translationbundle>
-<translationbundle lang="lt">
-<translation id="1545749641540134597">Nuskaitykite QR kodą</translation>
-<translation id="2204254829203467991">Nauja paieška</translation>
-<translation id="3060070342265818827">Čia bus rodomas nukopijuotas turinys.</translation>
-<translation id="4056327302245368220">Ieškoti nukopijuoto vaizdo</translation>
-<translation id="562989964911369186">Iškarpinėje nieko nėra</translation>
-<translation id="6120021866613542190">Paieška inkognito režimu</translation>
-<translation id="6196207969502475924">Paieška balsu</translation>
-<translation id="8383052013774505331">Atidaryti nukopijuotą nuorodą</translation>
-<translation id="8504982932030734536">Ieškoti jūsų nukopijuoto teksto</translation>
-</translationbundle>
\ No newline at end of file
diff --git a/ios/chrome/search_widget_extension/strings/resources/ios_search_widget_extension_strings_lv.xtb b/ios/chrome/search_widget_extension/strings/resources/ios_search_widget_extension_strings_lv.xtb
deleted file mode 100644
index 757c70e..0000000
--- a/ios/chrome/search_widget_extension/strings/resources/ios_search_widget_extension_strings_lv.xtb
+++ /dev/null
@@ -1,13 +0,0 @@
-<?xml version="1.0" ?>
-<!DOCTYPE translationbundle>
-<translationbundle lang="lv">
-<translation id="1545749641540134597">Skenējiet kvadrātkodu</translation>
-<translation id="2204254829203467991">Jauna meklēšana</translation>
-<translation id="3060070342265818827">Šeit tiks parādīts jūsu kopētais saturs.</translation>
-<translation id="4056327302245368220">Meklēt jūsu kopēto attēlu</translation>
-<translation id="562989964911369186">Starpliktuvē nekā nav</translation>
-<translation id="6120021866613542190">Meklēt inkognito režīmā</translation>
-<translation id="6196207969502475924">Meklēšana ar balsi</translation>
-<translation id="8383052013774505331">Apmeklējiet jūsu kopēto saiti</translation>
-<translation id="8504982932030734536">Meklēt jūsu nokopēto tekstu</translation>
-</translationbundle>
\ No newline at end of file
diff --git a/ios/chrome/search_widget_extension/strings/resources/ios_search_widget_extension_strings_mk.xtb b/ios/chrome/search_widget_extension/strings/resources/ios_search_widget_extension_strings_mk.xtb
deleted file mode 100644
index 9f56ac6..0000000
--- a/ios/chrome/search_widget_extension/strings/resources/ios_search_widget_extension_strings_mk.xtb
+++ /dev/null
@@ -1,13 +0,0 @@
-<?xml version="1.0" ?>
-<!DOCTYPE translationbundle>
-<translationbundle lang="mk">
-<translation id="1545749641540134597">Скенирајте QR код</translation>
-<translation id="2204254829203467991">Ново пребарување</translation>
-<translation id="3060070342265818827">Содржините што ги копирате ќе се појавуваат тука.</translation>
-<translation id="4056327302245368220">Пребарајте ја сликата што ја копиравте</translation>
-<translation id="562989964911369186">Нема ништо во привремената меморија</translation>
-<translation id="6120021866613542190">Инкогнито пребарување</translation>
-<translation id="6196207969502475924">Гласовно пребарување</translation>
-<translation id="8383052013774505331">Посетете го линкот што го копиравте</translation>
-<translation id="8504982932030734536">Пребарајте го текстот што го копиравте</translation>
-</translationbundle>
\ No newline at end of file
diff --git a/ios/chrome/search_widget_extension/strings/resources/ios_search_widget_extension_strings_ml.xtb b/ios/chrome/search_widget_extension/strings/resources/ios_search_widget_extension_strings_ml.xtb
deleted file mode 100644
index 767c006..0000000
--- a/ios/chrome/search_widget_extension/strings/resources/ios_search_widget_extension_strings_ml.xtb
+++ /dev/null
@@ -1,13 +0,0 @@
-<?xml version="1.0" ?>
-<!DOCTYPE translationbundle>
-<translationbundle lang="ml">
-<translation id="1545749641540134597">QR കോഡ് സ്‌കാൻ ചെയ്യുക</translation>
-<translation id="2204254829203467991">പുതിയ തിരയൽ</translation>
-<translation id="3060070342265818827">നിങ്ങൾ പകർത്തുന്ന ഉള്ളടക്കം ഇവിടെ ദൃശ്യമാകും.</translation>
-<translation id="4056327302245368220">നിങ്ങൾ പകർത്തിയ ചിത്രം തിരയുക</translation>
-<translation id="562989964911369186">ക്ലിപ്പ്‌ബോർഡിൽ ഒന്നുമില്ല</translation>
-<translation id="6120021866613542190">അദൃശ്യ തിരയൽ</translation>
-<translation id="6196207969502475924">ശബ്ദ തിരയൽ</translation>
-<translation id="8383052013774505331">നിങ്ങൾ പകർത്തിയ ലിങ്ക് സന്ദർശിക്കുക</translation>
-<translation id="8504982932030734536">നിങ്ങൾ പകർത്തിയ ടെക്‌സ്‌റ്റ് തിരയുക</translation>
-</translationbundle>
\ No newline at end of file
diff --git a/ios/chrome/search_widget_extension/strings/resources/ios_search_widget_extension_strings_mn.xtb b/ios/chrome/search_widget_extension/strings/resources/ios_search_widget_extension_strings_mn.xtb
deleted file mode 100644
index dfa249f..0000000
--- a/ios/chrome/search_widget_extension/strings/resources/ios_search_widget_extension_strings_mn.xtb
+++ /dev/null
@@ -1,13 +0,0 @@
-<?xml version="1.0" ?>
-<!DOCTYPE translationbundle>
-<translationbundle lang="mn">
-<translation id="1545749641540134597">QR кодыг скан хийх</translation>
-<translation id="2204254829203467991">Шинэ хайлт</translation>
-<translation id="3060070342265818827">Таны хуулсан контент энд харагдана.</translation>
-<translation id="4056327302245368220">Хуулсан зургаа хайх</translation>
-<translation id="562989964911369186">Түр санах ойд хуулсан контент алга</translation>
-<translation id="6120021866613542190">Нууцлалтай хайлт</translation>
-<translation id="6196207969502475924">Дуугаар хайх</translation>
-<translation id="8383052013774505331">Хуулсан холбоосондоо зочлох</translation>
-<translation id="8504982932030734536">Хуулсан текстээ хайх</translation>
-</translationbundle>
\ No newline at end of file
diff --git a/ios/chrome/search_widget_extension/strings/resources/ios_search_widget_extension_strings_mr.xtb b/ios/chrome/search_widget_extension/strings/resources/ios_search_widget_extension_strings_mr.xtb
deleted file mode 100644
index bc49d10d..0000000
--- a/ios/chrome/search_widget_extension/strings/resources/ios_search_widget_extension_strings_mr.xtb
+++ /dev/null
@@ -1,13 +0,0 @@
-<?xml version="1.0" ?>
-<!DOCTYPE translationbundle>
-<translationbundle lang="mr">
-<translation id="1545749641540134597">QR कोड स्कॅन करा</translation>
-<translation id="2204254829203467991">नवीन शोध</translation>
-<translation id="3060070342265818827">तुम्ही कॉपी केलेला आशय येथे दिसेल.</translation>
-<translation id="4056327302245368220">तुम्ही कॉपी केलेली इमेज शोधा</translation>
-<translation id="562989964911369186">क्लिपबोर्डमध्ये काहीही नाही</translation>
-<translation id="6120021866613542190">गुप्त शोध</translation>
-<translation id="6196207969502475924">व्हॉइस शोध</translation>
-<translation id="8383052013774505331">तुम्ही कॉपी केलेल्या लिंकला भेट द्या</translation>
-<translation id="8504982932030734536">तुम्ही कॉपी केलेला मजकूर शोधा</translation>
-</translationbundle>
\ No newline at end of file
diff --git a/ios/chrome/search_widget_extension/strings/resources/ios_search_widget_extension_strings_ms.xtb b/ios/chrome/search_widget_extension/strings/resources/ios_search_widget_extension_strings_ms.xtb
deleted file mode 100644
index b1c5b88..0000000
--- a/ios/chrome/search_widget_extension/strings/resources/ios_search_widget_extension_strings_ms.xtb
+++ /dev/null
@@ -1,13 +0,0 @@
-<?xml version="1.0" ?>
-<!DOCTYPE translationbundle>
-<translationbundle lang="ms">
-<translation id="1545749641540134597">Imbas Kod QR</translation>
-<translation id="2204254829203467991">Carian Baharu</translation>
-<translation id="3060070342265818827">Kandungan yang anda salin akan dipaparkan di sini.</translation>
-<translation id="4056327302245368220">Cari Imej yang Anda Salin</translation>
-<translation id="562989964911369186">Tiada apa-apa dalam papan keratan</translation>
-<translation id="6120021866613542190">Carian Inkognito</translation>
-<translation id="6196207969502475924">Carian Suara</translation>
-<translation id="8383052013774505331">Lawati Pautan yang Disalin</translation>
-<translation id="8504982932030734536">Cari Teks yang Anda Salin</translation>
-</translationbundle>
\ No newline at end of file
diff --git a/ios/chrome/search_widget_extension/strings/resources/ios_search_widget_extension_strings_my.xtb b/ios/chrome/search_widget_extension/strings/resources/ios_search_widget_extension_strings_my.xtb
deleted file mode 100644
index 1ace921..0000000
--- a/ios/chrome/search_widget_extension/strings/resources/ios_search_widget_extension_strings_my.xtb
+++ /dev/null
@@ -1,13 +0,0 @@
-<?xml version="1.0" ?>
-<!DOCTYPE translationbundle>
-<translationbundle lang="my">
-<translation id="1545749641540134597">QR ကုဒ်ကို ဖတ်ပါ</translation>
-<translation id="2204254829203467991">ရှာဖွေမှု အသစ်</translation>
-<translation id="3060070342265818827">သင်မိတ္တူကူးထားသော အကြောင်းအရာကို ဤနေရာတွင် မြင်ရပါမည်</translation>
-<translation id="4056327302245368220">သင်မိတ္တူကူးထားသော ပုံကို ရှာဖွေပါ</translation>
-<translation id="562989964911369186">ကလစ်ဘုတ်တွင် ဘာမျှ မရှိပါ</translation>
-<translation id="6120021866613542190">ရုပ်ဖျက်မုဒ်ဖြင့် ရှာရန်</translation>
-<translation id="6196207969502475924">အသံဖြင့် ရှာဖွေမှု</translation>
-<translation id="8383052013774505331">သင်မိတ္တူကူးထားသော လင့်ခ်ကို ဝင်ကြည့်ပါ</translation>
-<translation id="8504982932030734536">သင်မိတ္တူကူးထားသည့် စာသားကို ရှာဖွေပါ</translation>
-</translationbundle>
\ No newline at end of file
diff --git a/ios/chrome/search_widget_extension/strings/resources/ios_search_widget_extension_strings_ne.xtb b/ios/chrome/search_widget_extension/strings/resources/ios_search_widget_extension_strings_ne.xtb
deleted file mode 100644
index 89bb3c92..0000000
--- a/ios/chrome/search_widget_extension/strings/resources/ios_search_widget_extension_strings_ne.xtb
+++ /dev/null
@@ -1,13 +0,0 @@
-<?xml version="1.0" ?>
-<!DOCTYPE translationbundle>
-<translationbundle lang="ne">
-<translation id="1545749641540134597">QR कोड स्क्यान गर्नुहोस्</translation>
-<translation id="2204254829203467991">नयाँ खोज</translation>
-<translation id="3060070342265818827">तपाईंले कपी गर्ने सामग्री यहाँ देखिने छ।</translation>
-<translation id="4056327302245368220">आफूले प्रतिलिपि गरेको छवि खोज्नुहोस्</translation>
-<translation id="562989964911369186">क्लिपबोर्डमा केही पनि छैन</translation>
-<translation id="6120021866613542190">इन्कोग्निटो खोज</translation>
-<translation id="6196207969502475924">आवाज खोज</translation>
-<translation id="8383052013774505331">आफूले प्रतिलिपि गरेको लिंकमा जानुहोस्</translation>
-<translation id="8504982932030734536">तपाईंले प्रतिलिपि गरेको पाठको खोजी गर्नुहोस्</translation>
-</translationbundle>
\ No newline at end of file
diff --git a/ios/chrome/search_widget_extension/strings/resources/ios_search_widget_extension_strings_nl.xtb b/ios/chrome/search_widget_extension/strings/resources/ios_search_widget_extension_strings_nl.xtb
deleted file mode 100644
index cf9e32e7..0000000
--- a/ios/chrome/search_widget_extension/strings/resources/ios_search_widget_extension_strings_nl.xtb
+++ /dev/null
@@ -1,13 +0,0 @@
-<?xml version="1.0" ?>
-<!DOCTYPE translationbundle>
-<translationbundle lang="nl">
-<translation id="1545749641540134597">QR-code scannen</translation>
-<translation id="2204254829203467991">Nieuwe zoekopdracht</translation>
-<translation id="3060070342265818827">Gekopieerde content zie je hier.</translation>
-<translation id="4056327302245368220">Gekopieerde afbeelding zoeken</translation>
-<translation id="562989964911369186">Niets op klembord</translation>
-<translation id="6120021866613542190">Incognito zoeken</translation>
-<translation id="6196207969502475924">Gesproken zoekopdrachten</translation>
-<translation id="8383052013774505331">Gekopieerde link zoeken</translation>
-<translation id="8504982932030734536">Tekst zoeken die je hebt gekopieerd</translation>
-</translationbundle>
\ No newline at end of file
diff --git a/ios/chrome/search_widget_extension/strings/resources/ios_search_widget_extension_strings_no.xtb b/ios/chrome/search_widget_extension/strings/resources/ios_search_widget_extension_strings_no.xtb
deleted file mode 100644
index 7d14f8f2..0000000
--- a/ios/chrome/search_widget_extension/strings/resources/ios_search_widget_extension_strings_no.xtb
+++ /dev/null
@@ -1,13 +0,0 @@
-<?xml version="1.0" ?>
-<!DOCTYPE translationbundle>
-<translationbundle lang="no">
-<translation id="1545749641540134597">Skann en QR-kode</translation>
-<translation id="2204254829203467991">Nytt søk</translation>
-<translation id="3060070342265818827">Innhold du kopierer, vises her.</translation>
-<translation id="4056327302245368220">Søk etter bildet du kopierte</translation>
-<translation id="562989964911369186">Ingenting på utklippstavlen</translation>
-<translation id="6120021866613542190">Inkognitosøk</translation>
-<translation id="6196207969502475924">Google Talesøk</translation>
-<translation id="8383052013774505331">Besøk linken du kopierte</translation>
-<translation id="8504982932030734536">Søk etter teksten du kopierte</translation>
-</translationbundle>
\ No newline at end of file
diff --git a/ios/chrome/search_widget_extension/strings/resources/ios_search_widget_extension_strings_or.xtb b/ios/chrome/search_widget_extension/strings/resources/ios_search_widget_extension_strings_or.xtb
deleted file mode 100644
index e94f0f6..0000000
--- a/ios/chrome/search_widget_extension/strings/resources/ios_search_widget_extension_strings_or.xtb
+++ /dev/null
@@ -1,13 +0,0 @@
-<?xml version="1.0" ?>
-<!DOCTYPE translationbundle>
-<translationbundle lang="or">
-<translation id="1545749641540134597">QR କୋଡ୍ ସ୍କାନ୍ କରନ୍ତୁ</translation>
-<translation id="2204254829203467991">ନୂଆ ସନ୍ଧାନ</translation>
-<translation id="3060070342265818827">ଆପଣ କପି କରୁଥିବା ବିଷୟବସ୍ତୁ ଏଠାରେ ଦେଖାଯିବ।</translation>
-<translation id="4056327302245368220">ଆପଣ କପି କରିଥିବା ଛବି ଖୋଜନ୍ତୁ</translation>
-<translation id="562989964911369186">କ୍ଲିପ୍‌ବୋର୍ଡରେ କିଛି ନାହିଁ</translation>
-<translation id="6120021866613542190">ଇନ୍‌କଗ୍ନିଟୋ ସର୍ଚ୍ଚ</translation>
-<translation id="6196207969502475924">ଭଏସ୍‌ ସନ୍ଧାନ କରନ୍ତୁ</translation>
-<translation id="8383052013774505331">ଆପଣ କପି କରିଥିବା ଲିଙ୍କ୍‌କୁ ଯାଆନ୍ତୁ</translation>
-<translation id="8504982932030734536">ଆପଣ କପି କରିଥିବା ଟେକ୍ସଟ୍ ଖୋଜନ୍ତୁ</translation>
-</translationbundle>
\ No newline at end of file
diff --git a/ios/chrome/search_widget_extension/strings/resources/ios_search_widget_extension_strings_pa.xtb b/ios/chrome/search_widget_extension/strings/resources/ios_search_widget_extension_strings_pa.xtb
deleted file mode 100644
index db5313d..0000000
--- a/ios/chrome/search_widget_extension/strings/resources/ios_search_widget_extension_strings_pa.xtb
+++ /dev/null
@@ -1,13 +0,0 @@
-<?xml version="1.0" ?>
-<!DOCTYPE translationbundle>
-<translationbundle lang="pa">
-<translation id="1545749641540134597">QR ਕੋਡ ਸਕੈਨ ਕਰੋ</translation>
-<translation id="2204254829203467991">ਨਵੀਂ ਖੋਜ</translation>
-<translation id="3060070342265818827">ਤੁਹਾਡੇ ਵੱਲੋਂ ਕਾਪੀ ਕੀਤੀ ਜਾਂਦੀ ਸਮੱਗਰੀ ਇੱਥੇ ਦਿਸੇਗੀ।</translation>
-<translation id="4056327302245368220">ਤੁਹਾਡੇ ਵੱਲੋਂ ਕਾਪੀ ਕੀਤਾ ਚਿੱਤਰ ਖੋਜੋ</translation>
-<translation id="562989964911369186">ਕਲਿੱਪਬੋਰਡ ਵਿੱਚ ਕੁਝ ਨਹੀਂ</translation>
-<translation id="6120021866613542190">ਇਨਕੋਗਨਿਟੋ ਖੋਜ</translation>
-<translation id="6196207969502475924">ਅਵਾਜ਼ੀ ਖੋਜ</translation>
-<translation id="8383052013774505331">ਆਪਣੇ ਕਾਪੀ ਕੀਤੇ ਲਿੰਕ 'ਤੇ ਜਾਓ</translation>
-<translation id="8504982932030734536">ਤੁਹਾਡੀ ਕਾਪੀ ਕੀਤੀ ਲਿਖਤ ਖੋਜੋ</translation>
-</translationbundle>
\ No newline at end of file
diff --git a/ios/chrome/search_widget_extension/strings/resources/ios_search_widget_extension_strings_pl.xtb b/ios/chrome/search_widget_extension/strings/resources/ios_search_widget_extension_strings_pl.xtb
deleted file mode 100644
index bbcadc9..0000000
--- a/ios/chrome/search_widget_extension/strings/resources/ios_search_widget_extension_strings_pl.xtb
+++ /dev/null
@@ -1,13 +0,0 @@
-<?xml version="1.0" ?>
-<!DOCTYPE translationbundle>
-<translationbundle lang="pl">
-<translation id="1545749641540134597">Zeskanuj kod QR</translation>
-<translation id="2204254829203467991">Nowe wyszukiwanie</translation>
-<translation id="3060070342265818827">Tutaj pojawi się skopiowana przez Ciebie treść.</translation>
-<translation id="4056327302245368220">Wyszukaj skopiowany obraz</translation>
-<translation id="562989964911369186">W schowku nic nie ma</translation>
-<translation id="6120021866613542190">Wyszukiwanie incognito</translation>
-<translation id="6196207969502475924">Wyszukiwanie głosowe</translation>
-<translation id="8383052013774505331">Otwórz skopiowany link</translation>
-<translation id="8504982932030734536">Wyszukaj skopiowany tekst</translation>
-</translationbundle>
\ No newline at end of file
diff --git a/ios/chrome/search_widget_extension/strings/resources/ios_search_widget_extension_strings_pt-BR.xtb b/ios/chrome/search_widget_extension/strings/resources/ios_search_widget_extension_strings_pt-BR.xtb
deleted file mode 100644
index fc943a9e..0000000
--- a/ios/chrome/search_widget_extension/strings/resources/ios_search_widget_extension_strings_pt-BR.xtb
+++ /dev/null
@@ -1,13 +0,0 @@
-<?xml version="1.0" ?>
-<!DOCTYPE translationbundle>
-<translationbundle lang="pt-BR">
-<translation id="1545749641540134597">Ler código QR</translation>
-<translation id="2204254829203467991">Nova pesquisa</translation>
-<translation id="3060070342265818827">O conteúdo que você copiar aparecerá aqui.</translation>
-<translation id="4056327302245368220">Pesquisar a imagem que você copiou</translation>
-<translation id="562989964911369186">Nada na área de transferência</translation>
-<translation id="6120021866613542190">Pesquisa anônima</translation>
-<translation id="6196207969502475924">Pesquisa por voz</translation>
-<translation id="8383052013774505331">Acessar o link que você copiou</translation>
-<translation id="8504982932030734536">Pesquisar o texto que você copiou</translation>
-</translationbundle>
\ No newline at end of file
diff --git a/ios/chrome/search_widget_extension/strings/resources/ios_search_widget_extension_strings_pt-PT.xtb b/ios/chrome/search_widget_extension/strings/resources/ios_search_widget_extension_strings_pt-PT.xtb
deleted file mode 100644
index f9415b4..0000000
--- a/ios/chrome/search_widget_extension/strings/resources/ios_search_widget_extension_strings_pt-PT.xtb
+++ /dev/null
@@ -1,13 +0,0 @@
-<?xml version="1.0" ?>
-<!DOCTYPE translationbundle>
-<translationbundle lang="pt-PT">
-<translation id="1545749641540134597">Ler código QR</translation>
-<translation id="2204254829203467991">Nova pesquisa</translation>
-<translation id="3060070342265818827">O conteúdo que copiar é apresentado aqui.</translation>
-<translation id="4056327302245368220">Pesquisar imagem que copiou</translation>
-<translation id="562989964911369186">Nada na área de transferência</translation>
-<translation id="6120021866613542190">Pesquisa anónima</translation>
-<translation id="6196207969502475924">Pesquisa por Voz</translation>
-<translation id="8383052013774505331">Aceder ao link que copiou</translation>
-<translation id="8504982932030734536">Pesquisar o texto que copiou</translation>
-</translationbundle>
\ No newline at end of file
diff --git a/ios/chrome/search_widget_extension/strings/resources/ios_search_widget_extension_strings_ro.xtb b/ios/chrome/search_widget_extension/strings/resources/ios_search_widget_extension_strings_ro.xtb
deleted file mode 100644
index a559d2b..0000000
--- a/ios/chrome/search_widget_extension/strings/resources/ios_search_widget_extension_strings_ro.xtb
+++ /dev/null
@@ -1,13 +0,0 @@
-<?xml version="1.0" ?>
-<!DOCTYPE translationbundle>
-<translationbundle lang="ro">
-<translation id="1545749641540134597">Scanează codul QR</translation>
-<translation id="2204254829203467991">Căutare nouă</translation>
-<translation id="3060070342265818827">Conținutul pe care îl copiezi va apărea aici.</translation>
-<translation id="4056327302245368220">Caută imaginea pe care ai copiat-o</translation>
-<translation id="562989964911369186">Nu se află nimic în clipboard</translation>
-<translation id="6120021866613542190">Căutare incognito</translation>
-<translation id="6196207969502475924">Căutare vocală</translation>
-<translation id="8383052013774505331">Accesează linkul pe care l-ai copiat</translation>
-<translation id="8504982932030734536">Caută textul pe care l-ai copiat</translation>
-</translationbundle>
\ No newline at end of file
diff --git a/ios/chrome/search_widget_extension/strings/resources/ios_search_widget_extension_strings_ru.xtb b/ios/chrome/search_widget_extension/strings/resources/ios_search_widget_extension_strings_ru.xtb
deleted file mode 100644
index 4f6e519..0000000
--- a/ios/chrome/search_widget_extension/strings/resources/ios_search_widget_extension_strings_ru.xtb
+++ /dev/null
@@ -1,13 +0,0 @@
-<?xml version="1.0" ?>
-<!DOCTYPE translationbundle>
-<translationbundle lang="ru">
-<translation id="1545749641540134597">Сканирование QR-кода</translation>
-<translation id="2204254829203467991">Новый поиск</translation>
-<translation id="3060070342265818827">Здесь будет появляться скопированный вами контент.</translation>
-<translation id="4056327302245368220">Искать скопированное изображение</translation>
-<translation id="562989964911369186">В буфере обмена ничего нет</translation>
-<translation id="6120021866613542190">Поиск в режиме инкогнито</translation>
-<translation id="6196207969502475924">Голосовой поиск</translation>
-<translation id="8383052013774505331">Открыть скопированную ссылку</translation>
-<translation id="8504982932030734536">Искать скопированный текст</translation>
-</translationbundle>
\ No newline at end of file
diff --git a/ios/chrome/search_widget_extension/strings/resources/ios_search_widget_extension_strings_si.xtb b/ios/chrome/search_widget_extension/strings/resources/ios_search_widget_extension_strings_si.xtb
deleted file mode 100644
index 99a7a45..0000000
--- a/ios/chrome/search_widget_extension/strings/resources/ios_search_widget_extension_strings_si.xtb
+++ /dev/null
@@ -1,13 +0,0 @@
-<?xml version="1.0" ?>
-<!DOCTYPE translationbundle>
-<translationbundle lang="si">
-<translation id="1545749641540134597">QR කේතය ස්කෑන් කරන්න</translation>
-<translation id="2204254829203467991">අලුත් සෙවීම</translation>
-<translation id="3060070342265818827">ඔබ පිටපත් කරන අන්තර්ගතය මෙහි දිස් වෙයි.</translation>
-<translation id="4056327302245368220">ඔබ පිටපත් කළ රූපය සොයන්න</translation>
-<translation id="562989964911369186">පසුරු පුවරුවේ කිසිවක් නැත</translation>
-<translation id="6120021866613542190">අප්‍රසිද්ධ සෙවීම</translation>
-<translation id="6196207969502475924">හඬ සෙවීම</translation>
-<translation id="8383052013774505331">ඔබ පිටපත් කළ සබැඳියට පැමිණෙන්න</translation>
-<translation id="8504982932030734536">ඔබ පිටපත් කළ පාඨය සොයන්න</translation>
-</translationbundle>
\ No newline at end of file
diff --git a/ios/chrome/search_widget_extension/strings/resources/ios_search_widget_extension_strings_sk.xtb b/ios/chrome/search_widget_extension/strings/resources/ios_search_widget_extension_strings_sk.xtb
deleted file mode 100644
index 80d3277..0000000
--- a/ios/chrome/search_widget_extension/strings/resources/ios_search_widget_extension_strings_sk.xtb
+++ /dev/null
@@ -1,13 +0,0 @@
-<?xml version="1.0" ?>
-<!DOCTYPE translationbundle>
-<translationbundle lang="sk">
-<translation id="1545749641540134597">Naskenovať kód QR</translation>
-<translation id="2204254829203467991">Nové vyhľadávanie</translation>
-<translation id="3060070342265818827">Tu sa zobrazí skopírovaný obsah.</translation>
-<translation id="4056327302245368220">Vyhľadať skopírovaný obrázok</translation>
-<translation id="562989964911369186">Schránka je prázdna</translation>
-<translation id="6120021866613542190">Anonymné vyhľadávanie</translation>
-<translation id="6196207969502475924">Hlasové vyhľadávanie</translation>
-<translation id="8383052013774505331">Navštíviť skopírovaný odkaz</translation>
-<translation id="8504982932030734536">Vyhľadať skopírovaný text</translation>
-</translationbundle>
\ No newline at end of file
diff --git a/ios/chrome/search_widget_extension/strings/resources/ios_search_widget_extension_strings_sl.xtb b/ios/chrome/search_widget_extension/strings/resources/ios_search_widget_extension_strings_sl.xtb
deleted file mode 100644
index 82f4b62..0000000
--- a/ios/chrome/search_widget_extension/strings/resources/ios_search_widget_extension_strings_sl.xtb
+++ /dev/null
@@ -1,13 +0,0 @@
-<?xml version="1.0" ?>
-<!DOCTYPE translationbundle>
-<translationbundle lang="sl">
-<translation id="1545749641540134597">Scan QR Code</translation>
-<translation id="2204254829203467991">Novo iskanje</translation>
-<translation id="3060070342265818827">Vsebina, ki jo kopirate, bo prikazana tukaj.</translation>
-<translation id="4056327302245368220">Iskanje slike, ki ste jo kopirali</translation>
-<translation id="562989964911369186">V odložišču ni ničesar</translation>
-<translation id="6120021866613542190">Anonimno iskanje</translation>
-<translation id="6196207969502475924">Glasovno iskanje</translation>
-<translation id="8383052013774505331">Obisk povezave, ki ste jo kopirali</translation>
-<translation id="8504982932030734536">Iskanje besedila, ki ste ga kopirali</translation>
-</translationbundle>
\ No newline at end of file
diff --git a/ios/chrome/search_widget_extension/strings/resources/ios_search_widget_extension_strings_sq.xtb b/ios/chrome/search_widget_extension/strings/resources/ios_search_widget_extension_strings_sq.xtb
deleted file mode 100644
index 54f9789..0000000
--- a/ios/chrome/search_widget_extension/strings/resources/ios_search_widget_extension_strings_sq.xtb
+++ /dev/null
@@ -1,13 +0,0 @@
-<?xml version="1.0" ?>
-<!DOCTYPE translationbundle>
-<translationbundle lang="sq">
-<translation id="1545749641540134597">Skano kodin QR</translation>
-<translation id="2204254829203467991">Kërkim i ri</translation>
-<translation id="3060070342265818827">Përmbajtja që kopjon do të shfaqet këtu.</translation>
-<translation id="4056327302245368220">Kërko për imazhin që kopjove</translation>
-<translation id="562989964911369186">Asgjë në kujtesën e fragmenteve</translation>
-<translation id="6120021866613542190">Kërkim "i fshehtë"</translation>
-<translation id="6196207969502475924">Kërkimi me zë</translation>
-<translation id="8383052013774505331">Vizito lidhjen që kopjove</translation>
-<translation id="8504982932030734536">Kërko për tekstin që kopjove</translation>
-</translationbundle>
\ No newline at end of file
diff --git a/ios/chrome/search_widget_extension/strings/resources/ios_search_widget_extension_strings_sr-Latn.xtb b/ios/chrome/search_widget_extension/strings/resources/ios_search_widget_extension_strings_sr-Latn.xtb
deleted file mode 100644
index 1722248a..0000000
--- a/ios/chrome/search_widget_extension/strings/resources/ios_search_widget_extension_strings_sr-Latn.xtb
+++ /dev/null
@@ -1,13 +0,0 @@
-<?xml version="1.0" ?>
-<!DOCTYPE translationbundle>
-<translationbundle lang="sr-Latn">
-<translation id="1545749641540134597">Skenirajte QR kôd</translation>
-<translation id="2204254829203467991">Nova pretraga</translation>
-<translation id="3060070342265818827">Ovde se prikazuje sadržaj koji kopirate.</translation>
-<translation id="4056327302245368220">Potražite sliku koju ste kopirali</translation>
-<translation id="562989964911369186">Privremena memorija je prazna</translation>
-<translation id="6120021866613542190">Pretraga bez arhiviranja</translation>
-<translation id="6196207969502475924">Glasovna pretraga</translation>
-<translation id="8383052013774505331">Posetite link koji ste kopirali</translation>
-<translation id="8504982932030734536">Potražite tekst koji ste kopirali</translation>
-</translationbundle>
\ No newline at end of file
diff --git a/ios/chrome/search_widget_extension/strings/resources/ios_search_widget_extension_strings_sr.xtb b/ios/chrome/search_widget_extension/strings/resources/ios_search_widget_extension_strings_sr.xtb
deleted file mode 100644
index b1da601..0000000
--- a/ios/chrome/search_widget_extension/strings/resources/ios_search_widget_extension_strings_sr.xtb
+++ /dev/null
@@ -1,13 +0,0 @@
-<?xml version="1.0" ?>
-<!DOCTYPE translationbundle>
-<translationbundle lang="sr">
-<translation id="1545749641540134597">Скенирајте QR кôд</translation>
-<translation id="2204254829203467991">Нова претрага</translation>
-<translation id="3060070342265818827">Овде се приказује садржај који копирате.</translation>
-<translation id="4056327302245368220">Потражите слику коју сте копирали</translation>
-<translation id="562989964911369186">Привремена меморија је празна</translation>
-<translation id="6120021866613542190">Претрага без архивирања</translation>
-<translation id="6196207969502475924">Гласовна претрага</translation>
-<translation id="8383052013774505331">Посетите линк који сте копирали</translation>
-<translation id="8504982932030734536">Потражите текст који сте копирали</translation>
-</translationbundle>
\ No newline at end of file
diff --git a/ios/chrome/search_widget_extension/strings/resources/ios_search_widget_extension_strings_sv.xtb b/ios/chrome/search_widget_extension/strings/resources/ios_search_widget_extension_strings_sv.xtb
deleted file mode 100644
index d87b81b..0000000
--- a/ios/chrome/search_widget_extension/strings/resources/ios_search_widget_extension_strings_sv.xtb
+++ /dev/null
@@ -1,13 +0,0 @@
-<?xml version="1.0" ?>
-<!DOCTYPE translationbundle>
-<translationbundle lang="sv">
-<translation id="1545749641540134597">Skanna QR-kod</translation>
-<translation id="2204254829203467991">Ny sökning</translation>
-<translation id="3060070342265818827">Innehåll du kopierar visas här.</translation>
-<translation id="4056327302245368220">Sök efter bilden som du kopierade</translation>
-<translation id="562989964911369186">Det finns ingenting i Urklipp</translation>
-<translation id="6120021866613542190">Inkognitosökning</translation>
-<translation id="6196207969502475924">Röstsökning</translation>
-<translation id="8383052013774505331">Besök den kopierade länken</translation>
-<translation id="8504982932030734536">Sök efter kopierad text</translation>
-</translationbundle>
\ No newline at end of file
diff --git a/ios/chrome/search_widget_extension/strings/resources/ios_search_widget_extension_strings_sw.xtb b/ios/chrome/search_widget_extension/strings/resources/ios_search_widget_extension_strings_sw.xtb
deleted file mode 100644
index 14c04eb..0000000
--- a/ios/chrome/search_widget_extension/strings/resources/ios_search_widget_extension_strings_sw.xtb
+++ /dev/null
@@ -1,13 +0,0 @@
-<?xml version="1.0" ?>
-<!DOCTYPE translationbundle>
-<translationbundle lang="sw">
-<translation id="1545749641540134597">Changanua Msimbo wa QR</translation>
-<translation id="2204254829203467991">Utafutaji Mpya</translation>
-<translation id="3060070342265818827">Maudhui utakayonakili yataonekana hapa.</translation>
-<translation id="4056327302245368220">Tafuta Maandishi Uliyonakili</translation>
-<translation id="562989964911369186">Hakuna kitu katika ubao wa kunakili</translation>
-<translation id="6120021866613542190">Utafutaji Fiche</translation>
-<translation id="6196207969502475924">Utafutaji wa Sauti</translation>
-<translation id="8383052013774505331">Fungua Kiungo Ulichonakili</translation>
-<translation id="8504982932030734536">Tafuta Maandishi Uliyonakili</translation>
-</translationbundle>
\ No newline at end of file
diff --git a/ios/chrome/search_widget_extension/strings/resources/ios_search_widget_extension_strings_ta.xtb b/ios/chrome/search_widget_extension/strings/resources/ios_search_widget_extension_strings_ta.xtb
deleted file mode 100644
index f98d69a..0000000
--- a/ios/chrome/search_widget_extension/strings/resources/ios_search_widget_extension_strings_ta.xtb
+++ /dev/null
@@ -1,13 +0,0 @@
-<?xml version="1.0" ?>
-<!DOCTYPE translationbundle>
-<translationbundle lang="ta">
-<translation id="1545749641540134597">QR குறியீட்டை ஸ்கேன் செய்க</translation>
-<translation id="2204254829203467991">புதிய தேடல்</translation>
-<translation id="3060070342265818827">நீங்கள் நகலெடுக்கும் உள்ளடக்கம் இங்கே காட்டப்படும்.</translation>
-<translation id="4056327302245368220">நீங்கள் நகலெடுத்த படத்தைத் தேடவும்</translation>
-<translation id="562989964911369186">கிளிப்-போர்டில் எதுவுமில்லை</translation>
-<translation id="6120021866613542190">மறைநிலை தேடல்</translation>
-<translation id="6196207969502475924">குரல் தேடல்</translation>
-<translation id="8383052013774505331">நீங்கள் நகலெடுத்த இணைப்பிற்குச் செல்லவும்</translation>
-<translation id="8504982932030734536">நீங்கள் நகலெடுத்த உரையைத் தேடவும்</translation>
-</translationbundle>
\ No newline at end of file
diff --git a/ios/chrome/search_widget_extension/strings/resources/ios_search_widget_extension_strings_te.xtb b/ios/chrome/search_widget_extension/strings/resources/ios_search_widget_extension_strings_te.xtb
deleted file mode 100644
index bbde613..0000000
--- a/ios/chrome/search_widget_extension/strings/resources/ios_search_widget_extension_strings_te.xtb
+++ /dev/null
@@ -1,13 +0,0 @@
-<?xml version="1.0" ?>
-<!DOCTYPE translationbundle>
-<translationbundle lang="te">
-<translation id="1545749641540134597">QR కోడ్‌ను స్కాన్ చేయండి</translation>
-<translation id="2204254829203467991">కొత్త శోధన</translation>
-<translation id="3060070342265818827">మీరు కాపీ చేసిన కంటెంట్ ఇక్కడ కనబడుతుంది.</translation>
-<translation id="4056327302245368220">మీరు కాపీ చేసిన చిత్రాన్ని వెతకండి</translation>
-<translation id="562989964911369186">క్లిప్‌బోర్డ్‌లో ఏమీ లేదు</translation>
-<translation id="6120021866613542190">అజ్ఞాత శోధన</translation>
-<translation id="6196207969502475924">వాయిస్ శోధన</translation>
-<translation id="8383052013774505331">మీరు కాపీ చేసిన లింక్‌కి వెళ్లండి</translation>
-<translation id="8504982932030734536">మీరు కాపీ చేసిన వచనాన్ని వెతకండి</translation>
-</translationbundle>
\ No newline at end of file
diff --git a/ios/chrome/search_widget_extension/strings/resources/ios_search_widget_extension_strings_th.xtb b/ios/chrome/search_widget_extension/strings/resources/ios_search_widget_extension_strings_th.xtb
deleted file mode 100644
index 4adcb2960..0000000
--- a/ios/chrome/search_widget_extension/strings/resources/ios_search_widget_extension_strings_th.xtb
+++ /dev/null
@@ -1,13 +0,0 @@
-<?xml version="1.0" ?>
-<!DOCTYPE translationbundle>
-<translationbundle lang="th">
-<translation id="1545749641540134597">สแกนโค้ด QR</translation>
-<translation id="2204254829203467991">ค้นหาใหม่</translation>
-<translation id="3060070342265818827">เนื้อหาที่คุณคัดลอกจะปรากฏที่นี่</translation>
-<translation id="4056327302245368220">ค้นหารูปภาพที่คุณคัดลอก</translation>
-<translation id="562989964911369186">ไม่มีเนื้อหาในคลิปบอร์ด</translation>
-<translation id="6120021866613542190">ค้นหาในโหมดไม่ระบุตัวตน</translation>
-<translation id="6196207969502475924">การค้นหาด้วยเสียง</translation>
-<translation id="8383052013774505331">เข้าชมลิงก์ที่คุณคัดลอก</translation>
-<translation id="8504982932030734536">ค้นหาข้อความที่คุณคัดลอก</translation>
-</translationbundle>
\ No newline at end of file
diff --git a/ios/chrome/search_widget_extension/strings/resources/ios_search_widget_extension_strings_tr.xtb b/ios/chrome/search_widget_extension/strings/resources/ios_search_widget_extension_strings_tr.xtb
deleted file mode 100644
index bb4f7fb4..0000000
--- a/ios/chrome/search_widget_extension/strings/resources/ios_search_widget_extension_strings_tr.xtb
+++ /dev/null
@@ -1,13 +0,0 @@
-<?xml version="1.0" ?>
-<!DOCTYPE translationbundle>
-<translationbundle lang="tr">
-<translation id="1545749641540134597">QR Kodunu Tara</translation>
-<translation id="2204254829203467991">Yeni Arama</translation>
-<translation id="3060070342265818827">Kopyaladığınız içerikler burada görünür.</translation>
-<translation id="4056327302245368220">Kopyalanan Resmi Ara</translation>
-<translation id="562989964911369186">Panoda hiçbir şey yok</translation>
-<translation id="6120021866613542190">Gizli Arama</translation>
-<translation id="6196207969502475924">Sesli Arama</translation>
-<translation id="8383052013774505331">Kopyalanan Bağlantıyı Ziyaret Et</translation>
-<translation id="8504982932030734536">Kopyalanan Metni Ara</translation>
-</translationbundle>
\ No newline at end of file
diff --git a/ios/chrome/search_widget_extension/strings/resources/ios_search_widget_extension_strings_uk.xtb b/ios/chrome/search_widget_extension/strings/resources/ios_search_widget_extension_strings_uk.xtb
deleted file mode 100644
index 7cbe1ea5..0000000
--- a/ios/chrome/search_widget_extension/strings/resources/ios_search_widget_extension_strings_uk.xtb
+++ /dev/null
@@ -1,13 +0,0 @@
-<?xml version="1.0" ?>
-<!DOCTYPE translationbundle>
-<translationbundle lang="uk">
-<translation id="1545749641540134597">Сканувати QR-код</translation>
-<translation id="2204254829203467991">Новий пошук</translation>
-<translation id="3060070342265818827">Тут відображатиметься скопійований вміст.</translation>
-<translation id="4056327302245368220">Шукати скопійоване зображення</translation>
-<translation id="562989964911369186">Буфер обміну порожній</translation>
-<translation id="6120021866613542190">Пошук у режимі інкогніто</translation>
-<translation id="6196207969502475924">Голосовий пошук</translation>
-<translation id="8383052013774505331">Перейти за скопійованим посиланням</translation>
-<translation id="8504982932030734536">Шукати скопійований текст</translation>
-</translationbundle>
\ No newline at end of file
diff --git a/ios/chrome/search_widget_extension/strings/resources/ios_search_widget_extension_strings_ur.xtb b/ios/chrome/search_widget_extension/strings/resources/ios_search_widget_extension_strings_ur.xtb
deleted file mode 100644
index fb9acb5..0000000
--- a/ios/chrome/search_widget_extension/strings/resources/ios_search_widget_extension_strings_ur.xtb
+++ /dev/null
@@ -1,13 +0,0 @@
-<?xml version="1.0" ?>
-<!DOCTYPE translationbundle>
-<translationbundle lang="ur">
-<translation id="1545749641540134597">‏QR کوڈ اسکین کریں</translation>
-<translation id="2204254829203467991">نئی تلاش</translation>
-<translation id="3060070342265818827">آپ کا کاپی کیا ہوا مواد یہاں دکھائی دے گا۔</translation>
-<translation id="4056327302245368220">وہ تصویر تلاش کریں جسے آپ نے کاپی کیا ہے</translation>
-<translation id="562989964911369186">کلپ بورڈ میں کچھ نہیں ہے</translation>
-<translation id="6120021866613542190">پوشیدگي تلاش</translation>
-<translation id="6196207969502475924">صوتی تلاش</translation>
-<translation id="8383052013774505331">وہ لنک ملاحظہ کریں جسے آپ نے کاپی کیا ہے</translation>
-<translation id="8504982932030734536">وہ متن تلاش کریں جسے آپ نے کاپی کیا ہے</translation>
-</translationbundle>
\ No newline at end of file
diff --git a/ios/chrome/search_widget_extension/strings/resources/ios_search_widget_extension_strings_uz.xtb b/ios/chrome/search_widget_extension/strings/resources/ios_search_widget_extension_strings_uz.xtb
deleted file mode 100644
index 8f71a5a..0000000
--- a/ios/chrome/search_widget_extension/strings/resources/ios_search_widget_extension_strings_uz.xtb
+++ /dev/null
@@ -1,13 +0,0 @@
-<?xml version="1.0" ?>
-<!DOCTYPE translationbundle>
-<translationbundle lang="uz">
-<translation id="1545749641540134597">QR kodni skanerlash</translation>
-<translation id="2204254829203467991">Yangi qidiruv</translation>
-<translation id="3060070342265818827">Nusxalangan kontent shu yerda chiqadi.</translation>
-<translation id="4056327302245368220">Nusxalangan rasmni qidirish</translation>
-<translation id="562989964911369186">Klipbordda hech narsa topilmadi</translation>
-<translation id="6120021866613542190">Inkognito qidiruvi</translation>
-<translation id="6196207969502475924">Ovozli qidiruv</translation>
-<translation id="8383052013774505331">Nusxalangan havolani ochish</translation>
-<translation id="8504982932030734536">Nusxalangan matnni qidirish</translation>
-</translationbundle>
\ No newline at end of file
diff --git a/ios/chrome/search_widget_extension/strings/resources/ios_search_widget_extension_strings_vi.xtb b/ios/chrome/search_widget_extension/strings/resources/ios_search_widget_extension_strings_vi.xtb
deleted file mode 100644
index e9e4a6c..0000000
--- a/ios/chrome/search_widget_extension/strings/resources/ios_search_widget_extension_strings_vi.xtb
+++ /dev/null
@@ -1,13 +0,0 @@
-<?xml version="1.0" ?>
-<!DOCTYPE translationbundle>
-<translationbundle lang="vi">
-<translation id="1545749641540134597">Quét mã QR</translation>
-<translation id="2204254829203467991">Tìm kiếm mới</translation>
-<translation id="3060070342265818827">Nội dung bạn sao chép sẽ xuất hiện ở đây.</translation>
-<translation id="4056327302245368220">Tìm kiếm hình ảnh bạn đã sao chép</translation>
-<translation id="562989964911369186">Không có nội dung nào trong bảng nhớ tạm</translation>
-<translation id="6120021866613542190">Tìm kiếm ẩn danh</translation>
-<translation id="6196207969502475924">Tìm kiếm bằng giọng nói</translation>
-<translation id="8383052013774505331">Truy cập liên kết bạn đã sao chép</translation>
-<translation id="8504982932030734536">Tìm kiếm văn bản bạn đã sao chép</translation>
-</translationbundle>
\ No newline at end of file
diff --git a/ios/chrome/search_widget_extension/strings/resources/ios_search_widget_extension_strings_zh-CN.xtb b/ios/chrome/search_widget_extension/strings/resources/ios_search_widget_extension_strings_zh-CN.xtb
deleted file mode 100644
index 83c4da8..0000000
--- a/ios/chrome/search_widget_extension/strings/resources/ios_search_widget_extension_strings_zh-CN.xtb
+++ /dev/null
@@ -1,13 +0,0 @@
-<?xml version="1.0" ?>
-<!DOCTYPE translationbundle>
-<translationbundle lang="zh-CN">
-<translation id="1545749641540134597">扫描二维码</translation>
-<translation id="2204254829203467991">新搜索</translation>
-<translation id="3060070342265818827">您复制的内容将显示在此处。</translation>
-<translation id="4056327302245368220">搜索您复制的图片</translation>
-<translation id="562989964911369186">剪贴板上无任何内容</translation>
-<translation id="6120021866613542190">无痕搜索</translation>
-<translation id="6196207969502475924">语音搜索</translation>
-<translation id="8383052013774505331">访问您复制的链接</translation>
-<translation id="8504982932030734536">搜索您复制的文字</translation>
-</translationbundle>
\ No newline at end of file
diff --git a/ios/chrome/search_widget_extension/strings/resources/ios_search_widget_extension_strings_zh-HK.xtb b/ios/chrome/search_widget_extension/strings/resources/ios_search_widget_extension_strings_zh-HK.xtb
deleted file mode 100644
index c3ac2ec..0000000
--- a/ios/chrome/search_widget_extension/strings/resources/ios_search_widget_extension_strings_zh-HK.xtb
+++ /dev/null
@@ -1,13 +0,0 @@
-<?xml version="1.0" ?>
-<!DOCTYPE translationbundle>
-<translationbundle lang="zh-HK">
-<translation id="1545749641540134597">掃描二維條碼</translation>
-<translation id="2204254829203467991">執行新搜尋</translation>
-<translation id="3060070342265818827">您複製的內容會在這裡顯示。</translation>
-<translation id="4056327302245368220">搜尋您複製的圖片</translation>
-<translation id="562989964911369186">剪貼簿中沒有任何內容</translation>
-<translation id="6120021866613542190">無痕搜尋</translation>
-<translation id="6196207969502475924">語音搜尋</translation>
-<translation id="8383052013774505331">前往您複製的連結</translation>
-<translation id="8504982932030734536">搜尋您複製的文字</translation>
-</translationbundle>
\ No newline at end of file
diff --git a/ios/chrome/search_widget_extension/strings/resources/ios_search_widget_extension_strings_zh-TW.xtb b/ios/chrome/search_widget_extension/strings/resources/ios_search_widget_extension_strings_zh-TW.xtb
deleted file mode 100644
index b3772927..0000000
--- a/ios/chrome/search_widget_extension/strings/resources/ios_search_widget_extension_strings_zh-TW.xtb
+++ /dev/null
@@ -1,13 +0,0 @@
-<?xml version="1.0" ?>
-<!DOCTYPE translationbundle>
-<translationbundle lang="zh-TW">
-<translation id="1545749641540134597">掃描 QR code</translation>
-<translation id="2204254829203467991">執行新搜尋</translation>
-<translation id="3060070342265818827">你複製的內容會顯示在這裡。</translation>
-<translation id="4056327302245368220">搜尋你複製的圖片</translation>
-<translation id="562989964911369186">剪貼簿中沒有任何內容</translation>
-<translation id="6120021866613542190">無痕搜尋</translation>
-<translation id="6196207969502475924">語音搜尋</translation>
-<translation id="8383052013774505331">前往你複製的連結</translation>
-<translation id="8504982932030734536">搜尋你複製的文字</translation>
-</translationbundle>
\ No newline at end of file
diff --git a/ios/chrome/search_widget_extension/strings/resources/ios_search_widget_extension_strings_zu.xtb b/ios/chrome/search_widget_extension/strings/resources/ios_search_widget_extension_strings_zu.xtb
deleted file mode 100644
index 2430782..0000000
--- a/ios/chrome/search_widget_extension/strings/resources/ios_search_widget_extension_strings_zu.xtb
+++ /dev/null
@@ -1,13 +0,0 @@
-<?xml version="1.0" ?>
-<!DOCTYPE translationbundle>
-<translationbundle lang="zu">
-<translation id="1545749641540134597">Skena ikhodi ye-QR</translation>
-<translation id="2204254829203467991">Ukusesha okusha</translation>
-<translation id="3060070342265818827">Okuqukethwe okukopishayo kulapha.</translation>
-<translation id="4056327302245368220">Seshela isithombe osikopishile</translation>
-<translation id="562989964911369186">Akunalutho ebhodili lokunamathisela</translation>
-<translation id="6120021866613542190">Usesho i-Incognito</translation>
-<translation id="6196207969502475924">Usesho lwezwi</translation>
-<translation id="8383052013774505331">Vakashela isixhumanisi osikopishile</translation>
-<translation id="8504982932030734536">Sesha umbhalo owukopishile</translation>
-</translationbundle>
\ No newline at end of file
diff --git a/ios/chrome/test/BUILD.gn b/ios/chrome/test/BUILD.gn
index 79f9a3db..530c5b4 100644
--- a/ios/chrome/test/BUILD.gn
+++ b/ios/chrome/test/BUILD.gn
@@ -100,6 +100,8 @@
   sources = [
     "scoped_eg_synchronization_disabler.h",
     "scoped_eg_synchronization_disabler.mm",
+    "scoped_eg_traits_overrider.h",
+    "scoped_eg_traits_overrider.mm",
   ]
   deps = [
     "//base",
diff --git a/ios/chrome/test/earl_grey/chrome_earl_grey.h b/ios/chrome/test/earl_grey/chrome_earl_grey.h
index 90dbc8f..f20f0b5 100644
--- a/ios/chrome/test/earl_grey/chrome_earl_grey.h
+++ b/ios/chrome/test/earl_grey/chrome_earl_grey.h
@@ -683,9 +683,6 @@
 // Returns YES if UKM feature is enabled.
 - (BOOL)isUKMEnabled [[nodiscard]];
 
-// Returns YES if kSynthesizedRestoreSessionEnabled feature is enabled.
-- (BOOL)isSynthesizedRestoreSessionEnabled [[nodiscard]];
-
 // Returns YES if kTestFeature is enabled.
 - (BOOL)isTestFeatureEnabled;
 
diff --git a/ios/chrome/test/earl_grey/chrome_earl_grey.mm b/ios/chrome/test/earl_grey/chrome_earl_grey.mm
index f51aae0fb..c6fae54 100644
--- a/ios/chrome/test/earl_grey/chrome_earl_grey.mm
+++ b/ios/chrome/test/earl_grey/chrome_earl_grey.mm
@@ -1333,10 +1333,6 @@
   return [ChromeEarlGreyAppInterface isUKMEnabled];
 }
 
-- (BOOL)isSynthesizedRestoreSessionEnabled {
-  return [ChromeEarlGreyAppInterface isSynthesizedRestoreSessionEnabled];
-}
-
 - (BOOL)isTestFeatureEnabled {
   return [ChromeEarlGreyAppInterface isTestFeatureEnabled];
 }
diff --git a/ios/chrome/test/earl_grey/chrome_earl_grey_app_interface.h b/ios/chrome/test/earl_grey/chrome_earl_grey_app_interface.h
index 2eae5e7e5..12c371a 100644
--- a/ios/chrome/test/earl_grey/chrome_earl_grey_app_interface.h
+++ b/ios/chrome/test/earl_grey/chrome_earl_grey_app_interface.h
@@ -501,9 +501,6 @@
 // Returns YES if UKM feature is enabled.
 + (BOOL)isUKMEnabled [[nodiscard]];
 
-// Returns YES if kSynthesizedRestoreSessionEnabled feature is enabled.
-+ (BOOL)isSynthesizedRestoreSessionEnabled [[nodiscard]];
-
 // Returns YES if kTestFeature is enabled.
 + (BOOL)isTestFeatureEnabled;
 
diff --git a/ios/chrome/test/earl_grey/chrome_earl_grey_app_interface.mm b/ios/chrome/test/earl_grey/chrome_earl_grey_app_interface.mm
index a67ab07..30ec2193 100644
--- a/ios/chrome/test/earl_grey/chrome_earl_grey_app_interface.mm
+++ b/ios/chrome/test/earl_grey/chrome_earl_grey_app_interface.mm
@@ -1125,11 +1125,6 @@
   return base::FeatureList::IsEnabled(ukm::kUkmFeature);
 }
 
-+ (BOOL)isSynthesizedRestoreSessionEnabled {
-  return base::FeatureList::IsEnabled(
-      web::features::kSynthesizedRestoreSession);
-}
-
 + (BOOL)isTestFeatureEnabled {
   return base::FeatureList::IsEnabled(kTestFeature);
 }
diff --git a/ios/chrome/test/scoped_eg_traits_overrider.h b/ios/chrome/test/scoped_eg_traits_overrider.h
new file mode 100644
index 0000000..3546e520
--- /dev/null
+++ b/ios/chrome/test/scoped_eg_traits_overrider.h
@@ -0,0 +1,31 @@
+// Copyright 2023 The Chromium Authors
+// Use of this source code is governed by a BSD-style license that can be
+// found in the LICENSE file.
+
+#ifndef IOS_CHROME_TEST_SCOPED_EG_TRAITS_OVERRIDER_H_
+#define IOS_CHROME_TEST_SCOPED_EG_TRAITS_OVERRIDER_H_
+
+#import <Foundation/Foundation.h>
+#import <UIKit/UIKit.h>
+
+// Change view controller trait overrides for EarlGrey tests and returns back to
+// the original values in destructor.
+class ScopedTraitOverrider {
+ public:
+  ScopedTraitOverrider(UIViewController* top_view_controller);
+
+  ScopedTraitOverrider(const ScopedTraitOverrider&) = delete;
+  ScopedTraitOverrider& operator=(const ScopedTraitOverrider&) = delete;
+
+  ~ScopedTraitOverrider();
+
+  // For other trait overrides, add other methods here. The `traitOverrides` is
+  // read only.
+  void SetContentSizeCategory(UIContentSizeCategory new_content_size_category);
+
+ private:
+  UIContentSizeCategory original_content_size_category_;
+  UIViewController* top_view_controller_;
+};
+
+#endif  // IOS_CHROME_TEST_SCOPED_EG_TRAITS_OVERRIDER_H_
diff --git a/ios/chrome/test/scoped_eg_traits_overrider.mm b/ios/chrome/test/scoped_eg_traits_overrider.mm
new file mode 100644
index 0000000..ae3612b
--- /dev/null
+++ b/ios/chrome/test/scoped_eg_traits_overrider.mm
@@ -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.
+
+#import "ios/chrome/test/scoped_eg_traits_overrider.h"
+
+ScopedTraitOverrider::ScopedTraitOverrider(
+    UIViewController* top_view_controller) {
+  // Store the top presented view controller.
+  top_view_controller_ = top_view_controller;
+
+#if defined(__IPHONE_17_0) && __IPHONE_OS_VERSION_MAX_ALLOWED >= __IPHONE_17_0
+  // Keep original content size category.
+  // For other trait overrides, don't forget to add it here. The
+  // `traitOverrides` is read only.
+  original_content_size_category_ =
+      top_view_controller_.traitCollection.preferredContentSizeCategory;
+#endif
+}
+
+ScopedTraitOverrider::~ScopedTraitOverrider() {
+#if defined(__IPHONE_17_0) && __IPHONE_OS_VERSION_MAX_ALLOWED >= __IPHONE_17_0
+  // For other trait overrides, don't forget to remove it here. The
+  // `traitOverrides` is read only.
+  if (top_view_controller_) {
+    top_view_controller_.traitOverrides.preferredContentSizeCategory =
+        original_content_size_category_;
+  }
+#endif
+}
+
+void ScopedTraitOverrider::SetContentSizeCategory(
+    UIContentSizeCategory new_content_size_category) {
+#if defined(__IPHONE_17_0) && __IPHONE_OS_VERSION_MAX_ALLOWED >= __IPHONE_17_0
+  if (top_view_controller_) {
+    top_view_controller_.traitOverrides.preferredContentSizeCategory =
+        new_content_size_category;
+  }
+#endif
+}
diff --git a/ios/public/provider/chrome/browser/mini_map/mini_map_api.h b/ios/public/provider/chrome/browser/mini_map/mini_map_api.h
index 1eae02e2..a9ed09f 100644
--- a/ios/public/provider/chrome/browser/mini_map/mini_map_api.h
+++ b/ios/public/provider/chrome/browser/mini_map/mini_map_api.h
@@ -25,18 +25,20 @@
 // Configure the footer view of the minimap controller.
 // All the fields are required.
 // If this is not called before the presentation, no footer view is presented.
-- (void)configureFooterWithText:(NSString*)text
-              leadingButtonText:(NSString*)leadingButtonText
-             trailingButtonText:(NSString*)trailingButtonText
-            leadingButtonAction:(void (^)())leadingButtonAction
-           trailingButtonAction:(void (^)())trailingButtonAction;
+- (void)
+    configureFooterWithTitle:(NSString*)title
+          leadingButtonTitle:(NSString*)leadingButtonTitle
+         trailingButtonTitle:(NSString*)trailingButtonTitle
+         leadingButtonAction:(void (^)(UIViewController*))leadingButtonAction
+        trailingButtonAction:(void (^)(UIViewController*))trailingButtonAction;
 
 // Configure the IPH view of the minimap controller.
 // All the fields are required.
 // If this is not called before the presentation, no IPH view is presented.
-- (void)configureIPHWithTitle:(NSAttributedString*)title
-                     subtitle:(NSAttributedString*)subtitle
-                actionHandler:(void (^)(NSURL*))actionHandler;
+- (void)configureDisclaimerWithTitle:(NSAttributedString*)title
+                            subtitle:(NSAttributedString*)subtitle
+                       actionHandler:
+                           (void (^)(NSURL*, UIViewController*))actionHandler;
 
 @end
 
diff --git a/ios/web/common/features.h b/ios/web/common/features.h
index 67b8a28..83813f6 100644
--- a/ios/web/common/features.h
+++ b/ios/web/common/features.h
@@ -41,10 +41,6 @@
 // Feature flag that enable Shared Highlighting color change in iOS.
 BASE_DECLARE_FEATURE(kIOSSharedHighlightingColorChange);
 
-// Feature flag that enables native session restoration with a synthesized
-// interaction state.
-BASE_DECLARE_FEATURE(kSynthesizedRestoreSession);
-
 // Feature flag enabling use of new iOS 15
 // loadSimulatedRequest:responseHTMLString: API to display error pages in
 // CRWWKNavigationHandler. The helper method IsLoadSimulatedRequestAPIEnabled()
diff --git a/ios/web/common/features.mm b/ios/web/common/features.mm
index 2011349..0e472dbe 100644
--- a/ios/web/common/features.mm
+++ b/ios/web/common/features.mm
@@ -42,10 +42,6 @@
              "IOSSharedHighlightingColorChange",
              base::FEATURE_ENABLED_BY_DEFAULT);
 
-BASE_FEATURE(kSynthesizedRestoreSession,
-             "SynthesizedRestoreSession",
-             base::FEATURE_ENABLED_BY_DEFAULT);
-
 BASE_FEATURE(kUseLoadSimulatedRequestForOfflinePage,
              "UseLoadSimulatedRequestForErrorPageNavigation",
              base::FEATURE_DISABLED_BY_DEFAULT);
diff --git a/ios/web/navigation/synthesized_session_restore.mm b/ios/web/navigation/synthesized_session_restore.mm
index 6bf6780..e453617 100644
--- a/ios/web/navigation/synthesized_session_restore.mm
+++ b/ios/web/navigation/synthesized_session_restore.mm
@@ -42,10 +42,6 @@
     int last_committed_item_index,
     const std::vector<std::unique_ptr<NavigationItem>>& items,
     bool off_the_record) {
-  if (!base::FeatureList::IsEnabled(
-          web::features::kSynthesizedRestoreSession)) {
-    return nil;
-  }
 
   DCHECK(last_committed_item_index >= 0 &&
          last_committed_item_index < static_cast<int>(items.size()));
diff --git a/ios/web/navigation/synthesized_session_restore_unittest.mm b/ios/web/navigation/synthesized_session_restore_unittest.mm
index 68ca284..b462c4e 100644
--- a/ios/web/navigation/synthesized_session_restore_unittest.mm
+++ b/ios/web/navigation/synthesized_session_restore_unittest.mm
@@ -7,8 +7,6 @@
 #import "base/ios/ios_util.h"
 #import "base/strings/stringprintf.h"
 #import "base/strings/utf_string_conversions.h"
-#import "base/test/scoped_feature_list.h"
-#import "ios/web/common/features.h"
 #import "ios/web/public/test/web_test.h"
 #import "ios/web/web_state/web_state_impl.h"
 #import "testing/gtest/include/gtest/gtest.h"
@@ -40,13 +38,7 @@
 
 class SynthesizedSessionRestoreTest : public web::WebTest {
  protected:
-  SynthesizedSessionRestoreTest() {
-    std::vector<base::test::FeatureRef> enabled;
-    enabled.push_back(features::kSynthesizedRestoreSession);
-
-    std::vector<base::test::FeatureRef> disabled;
-    scoped_feature_list_.InitWithFeatures(enabled, disabled);
-  }
+  SynthesizedSessionRestoreTest() {}
 
   void SetUp() override {
     web::WebTest::SetUp();
@@ -54,7 +46,6 @@
     web_state_ = std::make_unique<web::WebStateImpl>(params);
   }
 
-  base::test::ScopedFeatureList scoped_feature_list_;
   std::unique_ptr<WebStateImpl> web_state_;
 };
 
diff --git a/ios_internal b/ios_internal
index 6a1c166..b4ee1c0 160000
--- a/ios_internal
+++ b/ios_internal
@@ -1 +1 @@
-Subproject commit 6a1c166da12cd7f4d3677c9dc05022ac97da2c52
+Subproject commit b4ee1c0e0af715ddf8c0bf37925f6271c4b9a288
diff --git a/media/capture/mojom/video_capture.mojom b/media/capture/mojom/video_capture.mojom
index bcd403b..3d92374 100644
--- a/media/capture/mojom/video_capture.mojom
+++ b/media/capture/mojom/video_capture.mojom
@@ -81,6 +81,10 @@
   // is no longer going to be used by the Browser/Host.
   OnBufferDestroyed(int32 buffer_id);
 
+  // A frame was dropped early such as by the capture process, i.e.
+  // OnBufferReady() was never called for this frame.
+  OnFrameDroppedEarly(media.mojom.VideoCaptureFrameDropReason reason);
+
   // All subsequent buffers are guaranteed to have this crop-version or higher.
   OnNewCropVersion(uint32 crop_version);
 };
diff --git a/net/cookies/cookie_util.cc b/net/cookies/cookie_util.cc
index 9974c8a..3701d9f 100644
--- a/net/cookies/cookie_util.cc
+++ b/net/cookies/cookie_util.cc
@@ -898,7 +898,7 @@
     const IsolationInfo& isolation_info,
     const CookieAccessDelegate* cookie_access_delegate,
     base::OnceCallback<void(FirstPartySetMetadata)> callback) {
-  if (!isolation_info.is_internal() && cookie_access_delegate) {
+  if (cookie_access_delegate) {
     return cookie_access_delegate->ComputeFirstPartySetMetadataMaybeAsync(
         request_site,
         base::OptionalToPtr(
diff --git a/net/http/transport_security_state_static.pins b/net/http/transport_security_state_static.pins
index 2ea6b6d6..32adb5d 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-09-24 12:54 UTC
+# Last updated: 2023-09-25 12:54 UTC
 PinsListTimestamp
-1695560060
+1695646459
 
 TestSPKI
 sha256/AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA=
diff --git a/net/http/transport_security_state_static_pins.json b/net/http/transport_security_state_static_pins.json
index 301f931..ce5e552 100644
--- a/net/http/transport_security_state_static_pins.json
+++ b/net/http/transport_security_state_static_pins.json
@@ -31,7 +31,7 @@
 // the 'static_spki_hashes' and 'bad_static_spki_hashes' fields in 'pinsets'
 // refer to, and the timestamp at which the pins list was last updated.
 //
-// Last updated: 2023-09-24 12:54 UTC
+// Last updated: 2023-09-25 12:54 UTC
 //
 {
   "pinsets": [
diff --git a/net/socket/tcp_client_socket.h b/net/socket/tcp_client_socket.h
index 20024617..2f61b41 100644
--- a/net/socket/tcp_client_socket.h
+++ b/net/socket/tcp_client_socket.h
@@ -70,7 +70,7 @@
                   const IPEndPoint& peer_address);
 
   // Adopts an unconnected TCPSocket. TCPSocket may be bound or unbound. This
-  // function is used by TCPClientSocketBrokered.
+  // function is used by BrokeredTcpClientSocket.
   TCPClientSocket(std::unique_ptr<TCPSocket> unconnected_socket,
                   const AddressList& addresses,
                   std::unique_ptr<IPEndPoint> bound_address,
diff --git a/remoting/android/lint-baseline.xml b/remoting/android/lint-baseline.xml
index c2d12611..d73238c7 100644
--- a/remoting/android/lint-baseline.xml
+++ b/remoting/android/lint-baseline.xml
@@ -1,5 +1,5 @@
 <?xml version="1.0" encoding="UTF-8"?>
-<issues format="6" by="lint 8.3.0-alpha04" type="baseline" client="" dependencies="true" name="" variant="all" version="8.3.0-alpha04">
+<issues format="6" by="lint 8.3.0-alpha05" type="baseline" client="" dependencies="true" name="" variant="all" version="8.3.0-alpha05">
 
     <issue
         id="WrongConstant"
diff --git a/services/cert_verifier/public/mojom/cert_verifier_service_factory.mojom b/services/cert_verifier/public/mojom/cert_verifier_service_factory.mojom
index 1472419..6cd79e3d 100644
--- a/services/cert_verifier/public/mojom/cert_verifier_service_factory.mojom
+++ b/services/cert_verifier/public/mojom/cert_verifier_service_factory.mojom
@@ -9,9 +9,6 @@
 import "mojo/public/mojom/base/read_only_buffer.mojom";
 import "services/network/public/mojom/cert_verifier_service.mojom";
 
-[EnableIf=is_trial_comparison_cert_verifier_supported]
-import "services/cert_verifier/public/mojom/trial_comparison_cert_verifier.mojom";
-
 // Parameters to specify how the net::CertVerifier and net::CertVerifyProc
 // objects should be instantiated.
 struct CertVerifierCreationParams {
@@ -29,12 +26,6 @@
   // isn't opened multiple times for NetworkContexts in the same profie.
   [EnableIf=is_chromeos_ash]
   string username_hash;
-
-  // Parameters for the cert verifier comparison trial. This is a temporary
-  // interface and embedders should not use it.
-  // See https://crbug.com/649026
-  [EnableIf=is_trial_comparison_cert_verifier_supported]
-  TrialComparisonCertVerifierParams? trial_comparison_cert_verifier_params;
 };
 
 // Serialized copy of the Chrome Root store.
diff --git a/services/network/BUILD.gn b/services/network/BUILD.gn
index 037ec04..90f79b4 100644
--- a/services/network/BUILD.gn
+++ b/services/network/BUILD.gn
@@ -13,6 +13,8 @@
   sources = [
     "brokered_client_socket_factory.cc",
     "brokered_client_socket_factory.h",
+    "brokered_tcp_client_socket.cc",
+    "brokered_tcp_client_socket.h",
     "brokered_udp_client_socket.cc",
     "brokered_udp_client_socket.h",
     "chunked_data_pipe_upload_data_stream.cc",
@@ -183,8 +185,6 @@
     "ssl_config_type_converter.h",
     "tcp_bound_socket.cc",
     "tcp_bound_socket.h",
-    "tcp_client_socket_brokered.cc",
-    "tcp_client_socket_brokered.h",
     "tcp_connected_socket.cc",
     "tcp_connected_socket.h",
     "tcp_server_socket.cc",
@@ -402,6 +402,7 @@
   testonly = true
 
   sources = [
+    "brokered_tcp_client_socket_unittest.cc",
     "brokered_udp_client_socket_unittest.cc",
     "chunked_data_pipe_upload_data_stream_unittest.cc",
     "cookie_access_delegate_impl_unittest.cc",
@@ -463,7 +464,6 @@
     "socket_data_pump_unittest.cc",
     "ssl_config_service_mojo_unittest.cc",
     "tcp_bound_socket_unittest.cc",
-    "tcp_client_socket_brokered_unittest.cc",
     "tcp_socket_unittest.cc",
     "test/test_url_loader_factory_unittest.cc",
     "test_chunked_data_pipe_getter.cc",
diff --git a/services/network/brokered_client_socket_factory.cc b/services/network/brokered_client_socket_factory.cc
index 822ad43..6bbeebb 100644
--- a/services/network/brokered_client_socket_factory.cc
+++ b/services/network/brokered_client_socket_factory.cc
@@ -8,8 +8,8 @@
 #include "net/socket/datagram_client_socket.h"
 #include "net/socket/tcp_client_socket.h"
 #include "net/socket/udp_client_socket.h"
+#include "services/network/brokered_tcp_client_socket.h"
 #include "services/network/brokered_udp_client_socket.h"
-#include "services/network/tcp_client_socket_brokered.h"
 
 #if BUILDFLAG(IS_WIN)
 #include "services/network/broker_helper_win.h"
@@ -52,7 +52,7 @@
     net::NetLog* net_log,
     const net::NetLogSource& source) {
   if (ShouldBroker(addresses)) {
-    return std::make_unique<TCPClientSocketBrokered>(
+    return std::make_unique<BrokeredTcpClientSocket>(
         addresses, std::move(socket_performance_watcher),
         network_quality_estimator, net_log, source, this);
   }
diff --git a/services/network/tcp_client_socket_brokered.cc b/services/network/brokered_tcp_client_socket.cc
similarity index 82%
rename from services/network/tcp_client_socket_brokered.cc
rename to services/network/brokered_tcp_client_socket.cc
index a2a6cea..224a108 100644
--- a/services/network/tcp_client_socket_brokered.cc
+++ b/services/network/brokered_tcp_client_socket.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 "services/network/tcp_client_socket_brokered.h"
+#include "services/network/brokered_tcp_client_socket.h"
 
 #include "base/functional/bind.h"
 #include "base/functional/callback_helpers.h"
@@ -17,7 +17,7 @@
 
 namespace network {
 
-TCPClientSocketBrokered::TCPClientSocketBrokered(
+BrokeredTcpClientSocket::BrokeredTcpClientSocket(
     const net::AddressList& addresses,
     std::unique_ptr<net::SocketPerformanceWatcher> socket_performance_watcher,
     net::NetworkQualityEstimator* network_quality_estimator,
@@ -34,12 +34,12 @@
       net::NetLogEventType::BROKERED_SOCKET_ALIVE, source);
 }
 
-TCPClientSocketBrokered::~TCPClientSocketBrokered() {
+BrokeredTcpClientSocket::~BrokeredTcpClientSocket() {
   net_log_source_.EndEvent(net::NetLogEventType::BROKERED_SOCKET_ALIVE);
   Disconnect();
 }
 
-int TCPClientSocketBrokered::Bind(const net::IPEndPoint& address) {
+int BrokeredTcpClientSocket::Bind(const net::IPEndPoint& address) {
   DCHECK_CALLED_ON_VALID_SEQUENCE(sequence_checker_);
   if (IsConnected() || is_connect_in_progress_) {
     // Cannot bind the socket if we are already connected or connecting.
@@ -53,7 +53,7 @@
   return net::OK;
 }
 
-bool TCPClientSocketBrokered::SetKeepAlive(bool enable, int delay) {
+bool BrokeredTcpClientSocket::SetKeepAlive(bool enable, int delay) {
   DCHECK_CALLED_ON_VALID_SEQUENCE(sequence_checker_);
   if (!brokered_socket_) {
     return false;
@@ -61,7 +61,7 @@
   return brokered_socket_->SetKeepAlive(enable, delay);
 }
 
-bool TCPClientSocketBrokered::SetNoDelay(bool no_delay) {
+bool BrokeredTcpClientSocket::SetNoDelay(bool no_delay) {
   DCHECK_CALLED_ON_VALID_SEQUENCE(sequence_checker_);
   if (!brokered_socket_) {
     return false;
@@ -69,7 +69,7 @@
   return brokered_socket_->SetNoDelay(no_delay);
 }
 
-void TCPClientSocketBrokered::SetBeforeConnectCallback(
+void BrokeredTcpClientSocket::SetBeforeConnectCallback(
     const BeforeConnectCallback& before_connect_callback) {
   DCHECK_CALLED_ON_VALID_SEQUENCE(sequence_checker_);
   DCHECK(!before_connect_callback_);
@@ -79,14 +79,15 @@
   before_connect_callback_ = before_connect_callback;
 }
 
-int TCPClientSocketBrokered::Connect(net::CompletionOnceCallback callback) {
+int BrokeredTcpClientSocket::Connect(net::CompletionOnceCallback callback) {
   DCHECK_CALLED_ON_VALID_SEQUENCE(sequence_checker_);
   // TODO(liza): add support for reconnecting disconnected socket, or look into
   // removing support for reconnection from TCPClientSocket if it's not needed.
   DCHECK(!callback.is_null());
   // If connecting or already connected, then just return OK.
-  if (IsConnected() || is_connect_in_progress_)
+  if (IsConnected() || is_connect_in_progress_) {
     return net::OK;
+  }
 
   is_connect_in_progress_ = true;
 
@@ -95,14 +96,14 @@
   // TODO(https://crbug.com/1321274): Pass in AddressFamily of single IPEndPoint
   client_socket_factory_->BrokerCreateTcpSocket(
       addresses_.begin()->GetFamily(),
-      base::BindOnce(&TCPClientSocketBrokered::DidCompleteCreate,
+      base::BindOnce(&BrokeredTcpClientSocket::DidCompleteCreate,
                      brokered_weak_ptr_factory_.GetWeakPtr(),
                      std::move(callback)));
 
   return net::ERR_IO_PENDING;
 }
 
-void TCPClientSocketBrokered::DidCompleteConnect(
+void BrokeredTcpClientSocket::DidCompleteConnect(
     net::CompletionOnceCallback callback,
     int result) {
   DCHECK_CALLED_ON_VALID_SEQUENCE(sequence_checker_);
@@ -113,7 +114,7 @@
   std::move(callback).Run(result);
 }
 
-void TCPClientSocketBrokered ::DidCompleteCreate(
+void BrokeredTcpClientSocket ::DidCompleteCreate(
     net::CompletionOnceCallback callback,
     network::TransferableSocket socket,
     int result) {
@@ -160,7 +161,7 @@
 
   auto split_connect_callback = base::SplitOnceCallback(std::move(callback));
   int connect_result = brokered_socket_->Connect(
-      base::BindOnce(&TCPClientSocketBrokered::DidCompleteConnect,
+      base::BindOnce(&BrokeredTcpClientSocket::DidCompleteConnect,
                      brokered_weak_ptr_factory_.GetWeakPtr(),
                      std::move(split_connect_callback.first)));
   if (connect_result != net::ERR_IO_PENDING) {
@@ -169,7 +170,7 @@
   }
 }
 
-void TCPClientSocketBrokered::Disconnect() {
+void BrokeredTcpClientSocket::Disconnect() {
   DCHECK_CALLED_ON_VALID_SEQUENCE(sequence_checker_);
   if (brokered_socket_) {
     brokered_socket_->Disconnect();
@@ -178,7 +179,7 @@
   is_connect_in_progress_ = false;
 }
 
-bool TCPClientSocketBrokered::IsConnected() const {
+bool BrokeredTcpClientSocket::IsConnected() const {
   DCHECK_CALLED_ON_VALID_SEQUENCE(sequence_checker_);
   if (!brokered_socket_) {
     return false;
@@ -187,7 +188,7 @@
   return brokered_socket_->IsConnected();
 }
 
-bool TCPClientSocketBrokered::IsConnectedAndIdle() const {
+bool BrokeredTcpClientSocket::IsConnectedAndIdle() const {
   DCHECK_CALLED_ON_VALID_SEQUENCE(sequence_checker_);
   if (!brokered_socket_) {
     return false;
@@ -195,7 +196,7 @@
   return brokered_socket_->IsConnectedAndIdle();
 }
 
-int TCPClientSocketBrokered::GetPeerAddress(net::IPEndPoint* address) const {
+int BrokeredTcpClientSocket::GetPeerAddress(net::IPEndPoint* address) const {
   DCHECK_CALLED_ON_VALID_SEQUENCE(sequence_checker_);
   if (!brokered_socket_) {
     return net::ERR_SOCKET_NOT_CONNECTED;
@@ -203,7 +204,7 @@
   return brokered_socket_->GetPeerAddress(std::move(address));
 }
 
-int TCPClientSocketBrokered::GetLocalAddress(net::IPEndPoint* address) const {
+int BrokeredTcpClientSocket::GetLocalAddress(net::IPEndPoint* address) const {
   DCHECK_CALLED_ON_VALID_SEQUENCE(sequence_checker_);
   if (!brokered_socket_) {
     return net::ERR_SOCKET_NOT_CONNECTED;
@@ -211,12 +212,12 @@
   return brokered_socket_->GetLocalAddress(std::move(address));
 }
 
-const net::NetLogWithSource& TCPClientSocketBrokered::NetLog() const {
+const net::NetLogWithSource& BrokeredTcpClientSocket::NetLog() const {
   DCHECK_CALLED_ON_VALID_SEQUENCE(sequence_checker_);
   return net_log_source_;
 }
 
-bool TCPClientSocketBrokered::WasEverUsed() const {
+bool BrokeredTcpClientSocket::WasEverUsed() const {
   DCHECK_CALLED_ON_VALID_SEQUENCE(sequence_checker_);
   if (!brokered_socket_) {
     return false;
@@ -224,19 +225,19 @@
   return brokered_socket_->WasEverUsed();
 }
 
-bool TCPClientSocketBrokered::WasAlpnNegotiated() const {
+bool BrokeredTcpClientSocket::WasAlpnNegotiated() const {
   return false;
 }
 
-net::NextProto TCPClientSocketBrokered::GetNegotiatedProtocol() const {
+net::NextProto BrokeredTcpClientSocket::GetNegotiatedProtocol() const {
   return net::kProtoUnknown;
 }
 
-bool TCPClientSocketBrokered::GetSSLInfo(net::SSLInfo* ssl_info) {
+bool BrokeredTcpClientSocket::GetSSLInfo(net::SSLInfo* ssl_info) {
   return false;
 }
 
-int64_t TCPClientSocketBrokered::GetTotalReceivedBytes() const {
+int64_t BrokeredTcpClientSocket::GetTotalReceivedBytes() const {
   DCHECK_CALLED_ON_VALID_SEQUENCE(sequence_checker_);
   if (!brokered_socket_) {
     return 0;
@@ -244,7 +245,7 @@
   return brokered_socket_->GetTotalReceivedBytes();
 }
 
-void TCPClientSocketBrokered::ApplySocketTag(const net::SocketTag& tag) {
+void BrokeredTcpClientSocket::ApplySocketTag(const net::SocketTag& tag) {
   DCHECK_CALLED_ON_VALID_SEQUENCE(sequence_checker_);
   if (!brokered_socket_) {
     tag_ = tag;
@@ -253,7 +254,7 @@
   }
 }
 
-int TCPClientSocketBrokered::Read(net::IOBuffer* buf,
+int BrokeredTcpClientSocket::Read(net::IOBuffer* buf,
                                   int buf_len,
                                   net::CompletionOnceCallback callback) {
   DCHECK_CALLED_ON_VALID_SEQUENCE(sequence_checker_);
@@ -263,7 +264,7 @@
   return brokered_socket_->Read(buf, buf_len, std::move(callback));
 }
 
-int TCPClientSocketBrokered::ReadIfReady(net::IOBuffer* buf,
+int BrokeredTcpClientSocket::ReadIfReady(net::IOBuffer* buf,
                                          int buf_len,
                                          net::CompletionOnceCallback callback) {
   DCHECK_CALLED_ON_VALID_SEQUENCE(sequence_checker_);
@@ -273,7 +274,7 @@
   return brokered_socket_->ReadIfReady(buf, buf_len, std::move(callback));
 }
 
-int TCPClientSocketBrokered::CancelReadIfReady() {
+int BrokeredTcpClientSocket::CancelReadIfReady() {
   DCHECK_CALLED_ON_VALID_SEQUENCE(sequence_checker_);
   if (!brokered_socket_) {
     return net::ERR_SOCKET_NOT_CONNECTED;
@@ -281,7 +282,7 @@
   return brokered_socket_->CancelReadIfReady();
 }
 
-int TCPClientSocketBrokered::Write(
+int BrokeredTcpClientSocket::Write(
     net::IOBuffer* buf,
     int buf_len,
     net::CompletionOnceCallback callback,
@@ -294,7 +295,7 @@
                                  traffic_annotation);
 }
 
-int TCPClientSocketBrokered::SetReceiveBufferSize(int32_t size) {
+int BrokeredTcpClientSocket::SetReceiveBufferSize(int32_t size) {
   DCHECK_CALLED_ON_VALID_SEQUENCE(sequence_checker_);
   if (!brokered_socket_) {
     return net::ERR_SOCKET_NOT_CONNECTED;
@@ -302,7 +303,7 @@
   return brokered_socket_->SetReceiveBufferSize(size);
 }
 
-int TCPClientSocketBrokered::SetSendBufferSize(int32_t size) {
+int BrokeredTcpClientSocket::SetSendBufferSize(int32_t size) {
   DCHECK_CALLED_ON_VALID_SEQUENCE(sequence_checker_);
   if (!brokered_socket_) {
     return net::ERR_SOCKET_NOT_CONNECTED;
diff --git a/services/network/tcp_client_socket_brokered.h b/services/network/brokered_tcp_client_socket.h
similarity index 91%
rename from services/network/tcp_client_socket_brokered.h
rename to services/network/brokered_tcp_client_socket.h
index 491d34a6..2562abf 100644
--- a/services/network/tcp_client_socket_brokered.h
+++ b/services/network/brokered_tcp_client_socket.h
@@ -2,8 +2,8 @@
 // Use of this source code is governed by a BSD-style license that can be
 // found in the LICENSE file.
 
-#ifndef SERVICES_NETWORK_TCP_CLIENT_SOCKET_BROKERED_H_
-#define SERVICES_NETWORK_TCP_CLIENT_SOCKET_BROKERED_H_
+#ifndef SERVICES_NETWORK_BROKERED_TCP_CLIENT_SOCKET_H_
+#define SERVICES_NETWORK_BROKERED_TCP_CLIENT_SOCKET_H_
 
 #include "base/component_export.h"
 #include "base/memory/raw_ptr.h"
@@ -40,10 +40,10 @@
 // process using the net:SocketBroker interface. This is because socket creation
 // needs to be brokered, and TCPClientSocket only creates and opens a socket
 // within Bind and Connect.
-class COMPONENT_EXPORT(NETWORK_SERVICE) TCPClientSocketBrokered
+class COMPONENT_EXPORT(NETWORK_SERVICE) BrokeredTcpClientSocket
     : public net::TransportClientSocket {
  public:
-  TCPClientSocketBrokered(
+  BrokeredTcpClientSocket(
       const net::AddressList& addresses,
       std::unique_ptr<net::SocketPerformanceWatcher>
           brokered_socket_performance_watcher,
@@ -52,10 +52,10 @@
       const net::NetLogSource& source,
       BrokeredClientSocketFactory* client_socket_factory);
 
-  ~TCPClientSocketBrokered() override;
+  ~BrokeredTcpClientSocket() override;
 
-  TCPClientSocketBrokered(const TCPClientSocketBrokered&) = delete;
-  TCPClientSocketBrokered& operator=(const TCPClientSocketBrokered&) = delete;
+  BrokeredTcpClientSocket(const BrokeredTcpClientSocket&) = delete;
+  BrokeredTcpClientSocket& operator=(const BrokeredTcpClientSocket&) = delete;
 
   // TransportClientSocket implementation.
   int Bind(const net::IPEndPoint& address) override;
@@ -146,10 +146,10 @@
 
   SEQUENCE_CHECKER(sequence_checker_);
 
-  base::WeakPtrFactory<TCPClientSocketBrokered> brokered_weak_ptr_factory_{
+  base::WeakPtrFactory<BrokeredTcpClientSocket> brokered_weak_ptr_factory_{
       this};
 };
 
 }  // namespace network
 
-#endif  // SERVICES_NETWORK_TCP_CLIENT_SOCKET_BROKERED_H_
+#endif  // SERVICES_NETWORK_BROKERED_TCP_CLIENT_SOCKET_H_
diff --git a/services/network/tcp_client_socket_brokered_unittest.cc b/services/network/brokered_tcp_client_socket_unittest.cc
similarity index 94%
rename from services/network/tcp_client_socket_brokered_unittest.cc
rename to services/network/brokered_tcp_client_socket_unittest.cc
index 93e69a9d..c4408bae 100644
--- a/services/network/tcp_client_socket_brokered_unittest.cc
+++ b/services/network/brokered_tcp_client_socket_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 "services/network/tcp_client_socket_brokered.h"
+#include "services/network/brokered_tcp_client_socket.h"
 
 #include "base/test/bind.h"
 #include "base/test/scoped_run_loop_timeout.h"
@@ -35,16 +35,16 @@
 
 namespace network {
 
-class TCPClientSocketBrokeredTest : public testing::Test,
+class BrokeredTcpClientSocketTest : public testing::Test,
                                     public net::WithTaskEnvironment {
  public:
-  TCPClientSocketBrokeredTest()
+  BrokeredTcpClientSocketTest()
       : receiver_(&socket_broker_impl_),
         client_socket_factory_(
             BrokeredClientSocketFactory(receiver_.BindNewPipeAndPassRemote())) {
   }
 
-  ~TCPClientSocketBrokeredTest() override = default;
+  ~BrokeredTcpClientSocketTest() override = default;
 
   void SetUp() override {
     // Open a server socket on an ephemeral port.
@@ -110,7 +110,7 @@
   bool close_server_socket_on_next_send_;
 };
 
-TEST_F(TCPClientSocketBrokeredTest, FailedConnect) {
+TEST_F(BrokeredTcpClientSocketTest, FailedConnect) {
   net::TestCompletionCallback callback;
   base::test::ScopedDisableRunLoopTimeout disable_timeout;
 
@@ -123,7 +123,7 @@
   EXPECT_EQ(result, net::ERR_CONNECTION_FAILED);
 }
 
-TEST_F(TCPClientSocketBrokeredTest, Bind) {
+TEST_F(BrokeredTcpClientSocketTest, Bind) {
   net::TestCompletionCallback callback;
 
   EXPECT_THAT(
@@ -145,7 +145,7 @@
 #else
 #define MAYBE_FailedBind FailedBind
 #endif
-TEST_F(TCPClientSocketBrokeredTest, MAYBE_FailedBind) {
+TEST_F(BrokeredTcpClientSocketTest, MAYBE_FailedBind) {
   net::TestCompletionCallback callback;
 
   net::TCPServerSocket ipv6_server_socket(nullptr, net::NetLogSource());
@@ -178,7 +178,7 @@
   EXPECT_THAT(callback.GetResult(result), Not(IsOk()));
 }
 
-TEST_F(TCPClientSocketBrokeredTest, WasEverUsed) {
+TEST_F(BrokeredTcpClientSocketTest, WasEverUsed) {
   net::TestCompletionCallback callback;
   EXPECT_FALSE(socket_->WasEverUsed());
 
@@ -209,7 +209,7 @@
   socket_->Disconnect();
 }
 
-TEST_F(TCPClientSocketBrokeredTest, SetKeepAlive) {
+TEST_F(BrokeredTcpClientSocketTest, SetKeepAlive) {
   net::TestCompletionCallback callback;
 
   // Non-connected sockets should not be able to set KeepAlive.
@@ -226,7 +226,7 @@
   socket_->Disconnect();
 }
 
-TEST_F(TCPClientSocketBrokeredTest, SetNoDelay) {
+TEST_F(BrokeredTcpClientSocketTest, SetNoDelay) {
   net::TestCompletionCallback callback;
 
   // Non-connected sockets should not be able to set NoDelay.
@@ -243,7 +243,7 @@
   socket_->Disconnect();
 }
 
-TEST_F(TCPClientSocketBrokeredTest, CancelReadIfReady) {
+TEST_F(BrokeredTcpClientSocketTest, CancelReadIfReady) {
   net::TestCompletionCallback callback;
   ASSERT_FALSE(socket_->IsConnected());
 
@@ -300,7 +300,7 @@
 // IsConnected, FullDuplex_ReadFirst, and FullDuplex_WriteFirst are duplicated
 // from transport_client_socket_unittest.cc since tests in //net can't depend on
 // anything outside of //net.
-TEST_F(TCPClientSocketBrokeredTest, IsConnected) {
+TEST_F(BrokeredTcpClientSocketTest, IsConnected) {
   scoped_refptr<net::IOBuffer> buf = base::MakeRefCounted<net::IOBuffer>(4096);
   net::TestCompletionCallback callback;
   uint32_t bytes_read;
@@ -364,7 +364,7 @@
   EXPECT_FALSE(socket_->IsConnectedAndIdle());
 }
 
-TEST_F(TCPClientSocketBrokeredTest, FullDuplex_ReadFirst) {
+TEST_F(BrokeredTcpClientSocketTest, FullDuplex_ReadFirst) {
   net::TestCompletionCallback callback;
   ConnectClientSocket(&callback);
 
@@ -405,7 +405,7 @@
   EXPECT_GE(rv, 0);
 }
 
-TEST_F(TCPClientSocketBrokeredTest, FullDuplex_WriteFirst) {
+TEST_F(BrokeredTcpClientSocketTest, FullDuplex_WriteFirst) {
   net::TestCompletionCallback callback;
   ConnectClientSocket(&callback);
 
@@ -423,8 +423,9 @@
                        write_callback.callback(), TRAFFIC_ANNOTATION_FOR_TESTS);
     ASSERT_TRUE(rv >= 0 || rv == net::ERR_IO_PENDING);
 
-    if (rv == net::ERR_IO_PENDING)
+    if (rv == net::ERR_IO_PENDING) {
       break;
+    }
     bytes_written += rv;
   }
 
@@ -437,8 +438,9 @@
   while (true) {
     int rv = socket_->Read(buf.get(), kBufLen, callback.callback());
     ASSERT_TRUE(rv >= 0 || rv == net::ERR_IO_PENDING);
-    if (rv == net::ERR_IO_PENDING)
+    if (rv == net::ERR_IO_PENDING) {
       break;
+    }
   }
 
   // At this point, both read and write have returned ERR_IO_PENDING.  Now we
@@ -458,7 +460,7 @@
 // real sockets, socket options often have to be set before the connect() call,
 // and the BeforeConnectCallback is the only way to do that, with a
 // TCPClientSocket.
-TEST_F(TCPClientSocketBrokeredTest, BeforeConnectCallback) {
+TEST_F(BrokeredTcpClientSocketTest, BeforeConnectCallback) {
   net::TestCompletionCallback callback;
 
   EXPECT_FALSE(socket_->IsConnected());
@@ -480,9 +482,9 @@
 // depend on anything outside of //net.
 //
 // On Android, where socket tagging is
-// supported, verify that TCPClientSocketBrokered::Tag works as expected.
+// supported, verify that BrokeredTcpClientSocket::Tag works as expected.
 #if BUILDFLAG(IS_ANDROID)
-TEST_F(TCPClientSocketBrokeredTest, Tag) {
+TEST_F(BrokeredTcpClientSocketTest, Tag) {
   if (!net::CanGetTaggedBytes()) {
     DVLOG(0) << "Skipping test - GetTaggedBytes unsupported.";
     return;
@@ -496,7 +498,7 @@
   net::AddressList addr_list;
   ASSERT_TRUE(test_server.GetAddressList(&addr_list));
 
-  TCPClientSocketBrokered client_socket(addr_list, nullptr, nullptr, nullptr,
+  BrokeredTcpClientSocket client_socket(addr_list, nullptr, nullptr, nullptr,
                                         net::NetLogSource(),
                                         &client_socket_factory_);
 
diff --git a/services/network/ip_protection_config_cache_impl.cc b/services/network/ip_protection_config_cache_impl.cc
index 5197f928..c62cdcf 100644
--- a/services/network/ip_protection_config_cache_impl.cc
+++ b/services/network/ip_protection_config_cache_impl.cc
@@ -215,7 +215,7 @@
   if (!disable_proxy_refreshing_for_testing_) {
     base::TimeDelta delay =
         net::features::kIpPrivacyProxyListFetchInterval.Get();
-    next_maybe_refill_cache_.Start(
+    next_refresh_proxy_list_.Start(
         FROM_HERE, delay,
         base::BindOnce(&IpProtectionConfigCacheImpl::RefreshProxyList,
                        weak_ptr_factory_.GetWeakPtr()));
diff --git a/services/network/public/mojom/web_transport.mojom b/services/network/public/mojom/web_transport.mojom
index 280beaa..fe4eb1a 100644
--- a/services/network/public/mojom/web_transport.mojom
+++ b/services/network/public/mojom/web_transport.mojom
@@ -44,6 +44,21 @@
   string reason;
 };
 
+// Stats for a WebTransport session.
+// https://w3c.github.io/webtransport/#web-transport-stats
+struct WebTransportStats {
+  mojo_base.mojom.Time timestamp;
+  mojo_base.mojom.TimeDelta min_rtt;
+  mojo_base.mojom.TimeDelta smoothed_rtt;
+  mojo_base.mojom.TimeDelta rtt_variation;
+  uint64 estimated_send_rate_bps;
+
+  // We only ever return WebTransportDatagramStats as a part of
+  // WebTransportStats; thus those two structs are merged here.
+  uint64 datagrams_expired_outgoing;
+  uint64 datagrams_lost_outgoing;
+};
+
 // A mojo interface for https://w3c.github.io/web-transport/#web-transport.
 // This is typically implemented in the network service, and used by renderer.
 // WebTransport represents a WebTransport over HTTP/3 session, which has
@@ -112,6 +127,9 @@
   // use an implementation-defined default.
   SetOutgoingDatagramExpirationDuration(mojo_base.mojom.TimeDelta duration);
 
+  // Provides the latest stats for the session.
+  GetStats() => (WebTransportStats? stats);
+
   // https://w3c.github.io/webtransport/#session-terminate
   // This is the last message and it is not allowed to call methods after
   // calling this.
diff --git a/services/network/web_transport.cc b/services/network/web_transport.cc
index b530bf6f..44dc480 100644
--- a/services/network/web_transport.cc
+++ b/services/network/web_transport.cc
@@ -37,6 +37,10 @@
   return params;
 }
 
+base::TimeDelta ToTimeDelta(absl::Duration duration) {
+  return base::Microseconds(absl::ToInt64Microseconds(duration));
+}
+
 }  // namespace
 
 class WebTransport::Stream final {
@@ -729,6 +733,26 @@
   datagram_callbacks_.pop();
 }
 
+void WebTransport::GetStats(GetStatsCallback callback) {
+  webtransport::Session* const session = transport_->session();
+
+  if (torn_down_ || session == nullptr) {
+    std::move(callback).Run(nullptr);
+    return;
+  }
+
+  webtransport::SessionStats stats = session->GetSessionStats();
+  mojom::WebTransportStatsPtr result = mojom::WebTransportStats::New();
+  result->timestamp = base::Time::Now();
+  result->min_rtt = ToTimeDelta(stats.min_rtt);
+  result->smoothed_rtt = ToTimeDelta(stats.smoothed_rtt);
+  result->rtt_variation = ToTimeDelta(stats.rtt_variation);
+  result->estimated_send_rate_bps = stats.estimated_send_rate_bps;
+  result->datagrams_expired_outgoing = stats.datagram_stats.expired_outgoing;
+  result->datagrams_lost_outgoing = stats.datagram_stats.lost_outgoing;
+  std::move(callback).Run(std::move(result));
+}
+
 void WebTransport::TearDown() {
   torn_down_ = true;
   receiver_.reset();
diff --git a/services/network/web_transport.h b/services/network/web_transport.h
index 8f62b027..88da530 100644
--- a/services/network/web_transport.h
+++ b/services/network/web_transport.h
@@ -67,6 +67,7 @@
   void AbortStream(uint32_t stream_id, uint8_t code) override;
   void StopSending(uint32_t stream_id, uint8_t code) override;
   void SetOutgoingDatagramExpirationDuration(base::TimeDelta duration) override;
+  void GetStats(GetStatsCallback callback) override;
   void Close(mojom::WebTransportCloseInfoPtr close_info) override;
 
   // WebTransportClientVisitor implementation:
diff --git a/services/network/web_transport_unittest.cc b/services/network/web_transport_unittest.cc
index bd50a01..af184b18 100644
--- a/services/network/web_transport_unittest.cc
+++ b/services/network/web_transport_unittest.cc
@@ -14,6 +14,7 @@
 #include "base/task/sequenced_task_runner.h"
 #include "base/test/bind.h"
 #include "base/test/task_environment.h"
+#include "base/test/test_future.h"
 #include "net/cert/mock_cert_verifier.h"
 #include "net/cert/pem.h"
 #include "net/dns/mock_host_resolver.h"
@@ -717,6 +718,30 @@
   EXPECT_TRUE(client.stream_is_closed_as_incoming_stream(stream_id));
 }
 
+TEST_F(WebTransportTest, Stats) {
+  base::RunLoop run_loop_for_handshake;
+  mojo::PendingRemote<mojom::WebTransportHandshakeClient> handshake_client;
+  TestHandshakeClient test_handshake_client(
+      handshake_client.InitWithNewPipeAndPassReceiver(),
+      run_loop_for_handshake.QuitClosure());
+
+  CreateWebTransport(GetURL("/echo"), origin(), std::move(handshake_client));
+
+  run_loop_for_handshake.Run();
+  ASSERT_TRUE(test_handshake_client.has_seen_connection_establishment());
+
+  TestClient client(test_handshake_client.PassClientReceiver());
+  mojo::Remote<mojom::WebTransport> transport_remote(
+      test_handshake_client.PassTransport());
+
+  base::test::TestFuture<mojom::WebTransportStatsPtr> future;
+  transport_remote->GetStats(future.GetCallback());
+  mojom::WebTransportStatsPtr stats = future.Take();
+  ASSERT_FALSE(stats.is_null());
+  EXPECT_GT(stats->min_rtt, base::Microseconds(0));
+  EXPECT_LT(stats->min_rtt, base::Seconds(5));
+}
+
 class WebTransportWithCustomCertificateTest : public WebTransportTest {
  public:
   WebTransportWithCustomCertificateTest()
diff --git a/styleguide/python/python.md b/styleguide/python/python.md
index a4ce6ff..fcc6d10f 100644
--- a/styleguide/python/python.md
+++ b/styleguide/python/python.md
@@ -62,7 +62,7 @@
 ## Making Style Guide Changes
 
 You can propose changes to this style guide by sending an email to
-`python@chromium.org`. Ideally, the list will arrive at some consensus and you
+[`python@chromium.org`]. Ideally, the list will arrive at some consensus and you
 can request review for a change to this file. If there's no consensus,
 [`//styleguide/python/OWNERS`](https://chromium.googlesource.com/chromium/src/+/main/styleguide/python/OWNERS)
 get to decide.
@@ -123,9 +123,10 @@
 
 #### Bugs
 * Are tracked here: https://github.com/google/yapf/issues.
-* For Chromium-specific bugs, please discuss on `python@chromium.org`.
+* For Chromium-specific bugs, please discuss on [`python@chromium.org`].
 
 #### Editor Integration
 See: https://github.com/google/yapf/tree/main/plugins
 
 [vpython]: https://chromium.googlesource.com/infra/infra/+/refs/heads/main/doc/users/vpython.md
+[`python@chromium.org`]: https://groups.google.com/a/chromium.org/g/python
diff --git a/testing/variations/fieldtrial_testing_config.json b/testing/variations/fieldtrial_testing_config.json
index ee4c4d5..9aaa458 100644
--- a/testing/variations/fieldtrial_testing_config.json
+++ b/testing/variations/fieldtrial_testing_config.json
@@ -186,6 +186,21 @@
             ]
         }
     ],
+    "AndroidAutofillSupportVisibilityChanges": [
+        {
+            "platforms": [
+                "android_webview"
+            ],
+            "experiments": [
+                {
+                    "name": "Enabled",
+                    "enable_features": [
+                        "AndroidAutofillSupportVisibilityChanges"
+                    ]
+                }
+            ]
+        }
+    ],
     "AndroidBackPressRefactor": [
         {
             "platforms": [
@@ -5604,6 +5619,21 @@
             ]
         }
     ],
+    "DownloadsMigrateToJobsAPI": [
+        {
+            "platforms": [
+                "android"
+            ],
+            "experiments": [
+                {
+                    "name": "Enabled",
+                    "enable_features": [
+                        "DownloadsMigrateToJobsAPI"
+                    ]
+                }
+            ]
+        }
+    ],
     "En840AndFstDecoderParamsUpdate": [
         {
             "platforms": [
@@ -6648,15 +6678,6 @@
             ],
             "experiments": [
                 {
-                    "name": "EnabledWithWait_20230705",
-                    "enable_features": [
-                        "FirstPartySets",
-                        "PrivacySandboxFirstPartySetsUI",
-                        "StorageAccessAPI",
-                        "StorageAccessAPIForOriginExtension"
-                    ]
-                },
-                {
                     "name": "EnabledWithoutWait_20230705",
                     "params": {
                         "FirstPartySetsNavigationThrottleTimeout": "0s"
@@ -11175,26 +11196,6 @@
             ]
         }
     ],
-    "OpenLinkAsProfileStudy": [
-        {
-            "platforms": [
-                "chromeos",
-                "chromeos_lacros",
-                "fuchsia",
-                "linux",
-                "mac",
-                "windows"
-            ],
-            "experiments": [
-                {
-                    "name": "Enabled",
-                    "enable_features": [
-                        "DisplayOpenLinkAsProfile"
-                    ]
-                }
-            ]
-        }
-    ],
     "OpenscreenCastStreamingSession": [
         {
             "platforms": [
diff --git a/third_party/android_build_tools/lint/rebuild_baselines.py b/third_party/android_build_tools/lint/rebuild_baselines.py
index 8b0ed86..cf33777 100755
--- a/third_party/android_build_tools/lint/rebuild_baselines.py
+++ b/third_party/android_build_tools/lint/rebuild_baselines.py
@@ -66,7 +66,12 @@
         logging.info(f'Re-building lint targets: {target_names}')
         cmd = gn_helpers.CreateBuildCommand(str(out_dir)) + target_names
         # Do not show output by default since all lint warnings are printed.
-        subprocess.run(cmd, check=True, capture_output=not verbose)
+        result = subprocess.run(cmd, check=False, capture_output=not verbose)
+        if result.returncode:
+            print('Build failed.')
+            print(result.stdout)
+            print(result.stderr)
+            sys.exit(1)
 
     return built_targets + target_names
 
@@ -151,7 +156,7 @@
 
     out_dir = _OUTPUT_DIR_ROOT / 'Lint-Default'
     gn_args = [
-        'use_goma=true',
+        'use_remoteexec=true',
         'target_os="android"',
         'treat_warnings_as_errors=false',
         'is_component_build=false',
@@ -164,7 +169,7 @@
     if include_clank:
         out_dir = _OUTPUT_DIR_ROOT / 'Lint-Clank'
         gn_args = [
-            'use_goma=true',
+            'use_remoteexec=true',
             'target_os="android"',
             'treat_warnings_as_errors=false',
             'is_component_build=false',
@@ -176,7 +181,7 @@
 
     out_dir = _OUTPUT_DIR_ROOT / 'Lint-Cast'
     gn_args = [
-        'use_goma=true',
+        'use_remoteexec=true',
         'target_os="android"',
         'treat_warnings_as_errors=false',
         'is_component_build=false',
@@ -191,7 +196,7 @@
 
     out_dir = _OUTPUT_DIR_ROOT / 'Lint-Cronet'
     gn_args = [
-        'use_goma=true',
+        'use_remoteexec=true',
         'target_os="android"',
         'treat_warnings_as_errors=false',
         'is_component_build=false',
diff --git a/third_party/android_deps/BUILD.gn b/third_party/android_deps/BUILD.gn
index a3c3f30..d92df05 100644
--- a/third_party/android_deps/BUILD.gn
+++ b/third_party/android_deps/BUILD.gn
@@ -167,6 +167,7 @@
 java_prebuilt("com_google_auto_service_auto_service_annotations_java") {
   jar_path = "libs/com_google_auto_service_auto_service_annotations/auto-service-annotations-1.0-rc6.jar"
   output_name = "com_google_auto_service_auto_service_annotations"
+  supports_android = true
   enable_bytecode_checks = false
 }
 
diff --git a/third_party/android_deps/libs/com_google_auto_service_auto_service_annotations/README.chromium b/third_party/android_deps/libs/com_google_auto_service_auto_service_annotations/README.chromium
index f6b5d619..1446873 100644
--- a/third_party/android_deps/libs/com_google_auto_service_auto_service_annotations/README.chromium
+++ b/third_party/android_deps/libs/com_google_auto_service_auto_service_annotations/README.chromium
@@ -5,8 +5,8 @@
 License: Apache 2.0
 License File: LICENSE
 CPEPrefix: unknown
-Security Critical: no
-Shipped: no
+Security Critical: yes
+Shipped: yes
 
 Description:
 Provider-configuration files for ServiceLoader.
diff --git a/third_party/android_deps/libs/com_google_errorprone_error_prone_check_api/README.chromium b/third_party/android_deps/libs/com_google_errorprone_error_prone_check_api/README.chromium
index 4c7f7e5..5618cd2 100644
--- a/third_party/android_deps/libs/com_google_errorprone_error_prone_check_api/README.chromium
+++ b/third_party/android_deps/libs/com_google_errorprone_error_prone_check_api/README.chromium
@@ -1,6 +1,6 @@
 Name: error-prone check api
 Short Name: error_prone_check_api
-URL: https://errorprone.info/
+URL: 
 Version: 2.11.0
 License: Apache 2.0
 License File: LICENSE
diff --git a/third_party/android_deps/libs/com_google_errorprone_error_prone_core/README.chromium b/third_party/android_deps/libs/com_google_errorprone_error_prone_core/README.chromium
index 0879b8d..8957672 100644
--- a/third_party/android_deps/libs/com_google_errorprone_error_prone_core/README.chromium
+++ b/third_party/android_deps/libs/com_google_errorprone_error_prone_core/README.chromium
@@ -1,6 +1,6 @@
 Name: error-prone library
 Short Name: error_prone_core
-URL: https://errorprone.info/
+URL: 
 Version: 2.11.0
 License: Apache 2.0
 License File: LICENSE
diff --git a/third_party/android_deps/libs/com_google_errorprone_error_prone_type_annotations/README.chromium b/third_party/android_deps/libs/com_google_errorprone_error_prone_type_annotations/README.chromium
index d2327cd..3158d76 100644
--- a/third_party/android_deps/libs/com_google_errorprone_error_prone_type_annotations/README.chromium
+++ b/third_party/android_deps/libs/com_google_errorprone_error_prone_type_annotations/README.chromium
@@ -1,6 +1,6 @@
 Name: error-prone type annotations
 Short Name: error_prone_type_annotations
-URL: https://errorprone.info/
+URL: 
 Version: 2.11.0
 License: Apache 2.0
 License File: LICENSE
diff --git a/third_party/blink/common/page/content_to_visible_time_reporter.cc b/third_party/blink/common/page/content_to_visible_time_reporter.cc
index ec5c041..8e003ee7 100644
--- a/third_party/blink/common/page/content_to_visible_time_reporter.cc
+++ b/third_party/blink/common/page/content_to_visible_time_reporter.cc
@@ -114,7 +114,7 @@
   }
 
   // Record the latency histogram.
-  base::UmaHistogramTimes("Android.UnfoldToTablet.Latency",
+  base::UmaHistogramTimes("Android.UnfoldToTablet.Latency2",
                           (presentation_timestamp - begin_timestamp));
 }
 
diff --git a/third_party/blink/public/platform/modules/video_capture/web_video_capture_impl_manager.h b/third_party/blink/public/platform/modules/video_capture/web_video_capture_impl_manager.h
index f6e0e4409..1a877d4 100644
--- a/third_party/blink/public/platform/modules/video_capture/web_video_capture_impl_manager.h
+++ b/third_party/blink/public/platform/modules/video_capture/web_video_capture_impl_manager.h
@@ -75,6 +75,9 @@
   // subsequent frames delivered to |deliver_frame_cb|, will have this
   // crop version or later.
   //
+  // |frame_dropped_cb| will be called when a frame was dropped prior to
+  // delivery (i.e. |deliver_frame_cb| was not called for this frame).
+  //
   // Returns a callback that is used to stop capturing. Note that stopping
   // video capture is not synchronous. Client should handle the case where
   // callbacks are called after capturing is instructed to stop, typically
@@ -84,7 +87,8 @@
       const media::VideoCaptureParams& params,
       const VideoCaptureStateUpdateCB& state_update_cb,
       const VideoCaptureDeliverFrameCB& deliver_frame_cb,
-      const VideoCaptureCropVersionCB& crop_version_cb);
+      const VideoCaptureCropVersionCB& crop_version_cb,
+      const VideoCaptureNotifyFrameDroppedCB& frame_dropped_cb);
 
   // Requests that the video capturer send a frame "soon" (e.g., to resolve
   // picture loss or quality issues).
diff --git a/third_party/blink/public/web/modules/mediastream/media_stream_video_source.h b/third_party/blink/public/web/modules/mediastream/media_stream_video_source.h
index ac597e4f6..79df5b11 100644
--- a/third_party/blink/public/web/modules/mediastream/media_stream_video_source.h
+++ b/third_party/blink/public/web/modules/mediastream/media_stream_video_source.h
@@ -266,10 +266,13 @@
   // * |crop_version_callback| whenever it is guaranteed that all subsequent
   //   frames that |frame_callback| will be called for, will have either
   //   the given crop version or higher.
+  // * |frame_dropped_callback| will be called when a frame was dropped prior to
+  //   delivery (i.e. |frame_callback| was not called for this frame).
   virtual void StartSourceImpl(
       VideoCaptureDeliverFrameCB frame_callback,
       EncodedVideoFrameCB encoded_frame_callback,
-      VideoCaptureCropVersionCB crop_version_callback) = 0;
+      VideoCaptureCropVersionCB crop_version_callback,
+      VideoCaptureNotifyFrameDroppedCB frame_dropped_callback) = 0;
   void OnStartDone(mojom::MediaStreamRequestResult result);
 
   // A subclass that supports restart must override this method such that it
diff --git a/third_party/blink/renderer/bindings/generated_in_modules.gni b/third_party/blink/renderer/bindings/generated_in_modules.gni
index 1199581..8778ce5 100644
--- a/third_party/blink/renderer/bindings/generated_in_modules.gni
+++ b/third_party/blink/renderer/bindings/generated_in_modules.gni
@@ -1420,6 +1420,8 @@
   "$root_gen_dir/third_party/blink/renderer/bindings/modules/v8/v8_local_coordinate_system.h",
   "$root_gen_dir/third_party/blink/renderer/bindings/modules/v8/v8_lock_mode.cc",
   "$root_gen_dir/third_party/blink/renderer/bindings/modules/v8/v8_lock_mode.h",
+  "$root_gen_dir/third_party/blink/renderer/bindings/modules/v8/v8_login_status.cc",
+  "$root_gen_dir/third_party/blink/renderer/bindings/modules/v8/v8_login_status.h",
   "$root_gen_dir/third_party/blink/renderer/bindings/modules/v8/v8_media_decoding_type.cc",
   "$root_gen_dir/third_party/blink/renderer/bindings/modules/v8/v8_media_decoding_type.h",
   "$root_gen_dir/third_party/blink/renderer/bindings/modules/v8/v8_media_device_kind.cc",
@@ -2295,6 +2297,8 @@
   "$root_gen_dir/third_party/blink/renderer/bindings/modules/v8/v8_navigation_preload_manager.h",
   "$root_gen_dir/third_party/blink/renderer/bindings/modules/v8/v8_navigator.cc",
   "$root_gen_dir/third_party/blink/renderer/bindings/modules/v8/v8_navigator.h",
+  "$root_gen_dir/third_party/blink/renderer/bindings/modules/v8/v8_navigator_login.cc",
+  "$root_gen_dir/third_party/blink/renderer/bindings/modules/v8/v8_navigator_login.h",
   "$root_gen_dir/third_party/blink/renderer/bindings/modules/v8/v8_navigator_managed_data.cc",
   "$root_gen_dir/third_party/blink/renderer/bindings/modules/v8/v8_navigator_managed_data.h",
   "$root_gen_dir/third_party/blink/renderer/bindings/modules/v8/v8_ndef_message.cc",
@@ -3122,6 +3126,10 @@
     "$root_gen_dir/third_party/blink/renderer/bindings/modules/v8/v8_smart_card_get_status_change_options.h",
     "$root_gen_dir/third_party/blink/renderer/bindings/modules/v8/v8_smart_card_reader_state_flags.cc",
     "$root_gen_dir/third_party/blink/renderer/bindings/modules/v8/v8_smart_card_reader_state_flags.h",
+    "$root_gen_dir/third_party/blink/renderer/bindings/modules/v8/v8_smart_card_reader_state_flags_in.cc",
+    "$root_gen_dir/third_party/blink/renderer/bindings/modules/v8/v8_smart_card_reader_state_flags_in.h",
+    "$root_gen_dir/third_party/blink/renderer/bindings/modules/v8/v8_smart_card_reader_state_flags_out.cc",
+    "$root_gen_dir/third_party/blink/renderer/bindings/modules/v8/v8_smart_card_reader_state_flags_out.h",
     "$root_gen_dir/third_party/blink/renderer/bindings/modules/v8/v8_smart_card_reader_state_in.cc",
     "$root_gen_dir/third_party/blink/renderer/bindings/modules/v8/v8_smart_card_reader_state_in.h",
     "$root_gen_dir/third_party/blink/renderer/bindings/modules/v8/v8_smart_card_reader_state_out.cc",
diff --git a/third_party/blink/renderer/bindings/idl_in_modules.gni b/third_party/blink/renderer/bindings/idl_in_modules.gni
index 9388e0e..e050637 100644
--- a/third_party/blink/renderer/bindings/idl_in_modules.gni
+++ b/third_party/blink/renderer/bindings/idl_in_modules.gni
@@ -176,6 +176,7 @@
   "//third_party/blink/renderer/modules/credentialmanagement/identity_provider_config.idl",
   "//third_party/blink/renderer/modules/credentialmanagement/identity_standard_claims.idl",
   "//third_party/blink/renderer/modules/credentialmanagement/navigator_credentials.idl",
+  "//third_party/blink/renderer/modules/credentialmanagement/navigator_login.idl",
   "//third_party/blink/renderer/modules/credentialmanagement/otp_credential.idl",
   "//third_party/blink/renderer/modules/credentialmanagement/otp_credential_request_options.idl",
   "//third_party/blink/renderer/modules/credentialmanagement/password_credential.idl",
diff --git a/third_party/blink/renderer/core/css/css_properties.json5 b/third_party/blink/renderer/core/css/css_properties.json5
index 49635bae..8cfa9c8 100644
--- a/third_party/blink/renderer/core/css/css_properties.json5
+++ b/third_party/blink/renderer/core/css/css_properties.json5
@@ -3620,7 +3620,7 @@
       field_group: "*",
       field_template: "external",
       include_paths: ["third_party/blink/renderer/platform/geometry/length_point.h"],
-      default_value: "LengthPoint(Length::Auto(), Length::Auto())",
+      default_value: "LengthPoint(Length::None(), Length::None())",
       type_name: "LengthPoint",
       converter: "ConvertOffsetPosition",
       keywords: ["auto", "normal"],
diff --git a/third_party/blink/renderer/core/css/css_property_value_set_test.cc b/third_party/blink/renderer/core/css/css_property_value_set_test.cc
index 96f4c26b..4de4148 100644
--- a/third_party/blink/renderer/core/css/css_property_value_set_test.cc
+++ b/third_party/blink/renderer/core/css/css_property_value_set_test.cc
@@ -84,7 +84,7 @@
   StyleRule* rule = RuleAt(style_sheet, 0);
 
   EXPECT_EQ(
-      "offset-position: auto; offset-distance: 0px; "
+      "offset-position: normal; offset-distance: 0px; "
       "offset-rotate: reverse 2turn; offset-anchor: auto; "
       "offset-path: initial;",
       rule->Properties().AsText());
diff --git a/third_party/blink/renderer/core/css/properties/computed_style_utils.cc b/third_party/blink/renderer/core/css/properties/computed_style_utils.cc
index 082f278..5ca7d69 100644
--- a/third_party/blink/renderer/core/css/properties/computed_style_utils.cc
+++ b/third_party/blink/renderer/core/css/properties/computed_style_utils.cc
@@ -203,10 +203,11 @@
   if (RuntimeEnabledFeatures::CSSOffsetPositionAnchorEnabled()) {
     CSSValue* position = ValueForPosition(style.OffsetPosition(), style);
     auto* position_identifier_value = DynamicTo<CSSIdentifierValue>(position);
-    if (!position_identifier_value) {
+    if (!position_identifier_value ||
+        position_identifier_value->GetValueID() == CSSValueID::kAuto) {
       list->Append(*position);
     } else {
-      DCHECK(position_identifier_value->GetValueID() == CSSValueID::kAuto);
+      DCHECK(position_identifier_value->GetValueID() == CSSValueID::kNormal);
     }
   }
 
diff --git a/third_party/blink/renderer/core/css/properties/shorthands/shorthands_custom.cc b/third_party/blink/renderer/core/css/properties/shorthands/shorthands_custom.cc
index 8ab9310..9e1a789 100644
--- a/third_party/blink/renderer/core/css/properties/shorthands/shorthands_custom.cc
+++ b/third_party/blink/renderer/core/css/properties/shorthands/shorthands_custom.cc
@@ -2670,7 +2670,7 @@
   } else if (RuntimeEnabledFeatures::CSSOffsetPositionAnchorEnabled()) {
     css_parsing_utils::AddProperty(
         CSSPropertyID::kOffsetPosition, CSSPropertyID::kOffset,
-        *CSSIdentifierValue::Create(CSSValueID::kAuto), important,
+        *CSSIdentifierValue::Create(CSSValueID::kNormal), important,
         css_parsing_utils::IsImplicitProperty::kNotImplicit, properties);
   }
 
diff --git a/third_party/blink/renderer/core/css/robin_hood_map-inl.h b/third_party/blink/renderer/core/css/robin_hood_map-inl.h
new file mode 100644
index 0000000..6d8f9d30
--- /dev/null
+++ b/third_party/blink/renderer/core/css/robin_hood_map-inl.h
@@ -0,0 +1,146 @@
+// 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.
+
+// Inline definitions for robin_hood_map.h.
+
+#ifndef THIRD_PARTY_BLINK_RENDERER_CORE_CSS_ROBIN_HOOD_MAP_INL_H_
+#define THIRD_PARTY_BLINK_RENDERER_CORE_CSS_ROBIN_HOOD_MAP_INL_H_
+
+#include "third_party/blink/renderer/core/css/robin_hood_map.h"
+
+#include <algorithm>
+
+#include "base/notreached.h"
+
+namespace blink {
+
+template <class Key, class Value>
+typename RobinHoodMap<Key, Value>::Bucket*
+RobinHoodMap<Key, Value>::InsertInternal(
+    RobinHoodMap<Key, Value>::Bucket to_insert) {
+  Bucket* bucket = FindBucket(to_insert.key);
+  Bucket* ret = nullptr;
+  ptrdiff_t distance = 0;
+  while (!bucket->key.IsNull()) {
+    // Robin Hood hashing: A technique for reducing the maximum distances
+    // from the home bucket (which, in our case, means we need to rehash
+    // less often). When we want to insert an element A into a bucket
+    // that is already occupied by element B, we check whether A or B
+    // is furthest away from their respective home buckets. If it's B,
+    // we just keep on moving down, but if it's A, it's better to insert A
+    // in that bucket, and then rather continue the insertion process with B
+    // (i.e., we swap A and B).
+    ptrdiff_t other_distance = bucket - FindBucket(bucket->key);
+    if (distance > other_distance) {
+      using std::swap;
+      if (ret == nullptr) {
+        ret = bucket;
+      }
+      swap(to_insert, *bucket);
+      distance = other_distance;
+    }
+    ++bucket;
+    ++distance;
+    if (static_cast<unsigned>(distance) >= kPossibleBucketsPerKey) {
+      // Insertion failed. Stick it in the spare bucket at the very bottom,
+      // so that we don't lose it, but the caller will need to rehash.
+      DCHECK(buckets_[num_buckets_ + kPossibleBucketsPerKey - 1].key.IsNull());
+      buckets_[num_buckets_ + kPossibleBucketsPerKey - 1] = to_insert;
+      return nullptr;
+    }
+  }
+  *bucket = std::move(to_insert);
+  if (ret == nullptr) {
+    ret = bucket;
+  }
+  return ret;
+}
+
+template <class Key, class Value>
+typename RobinHoodMap<Key, Value>::Bucket* RobinHoodMap<Key, Value>::Insert(
+    const Key& key) {
+  Bucket* bucket = InsertInternal({key, {}});
+  if (bucket != nullptr) {
+    // Normal, happy path.
+    return bucket;
+  }
+
+  return InsertWithRehashing(key);
+}
+
+template <class Key, class Value>
+RobinHoodMap<Key, Value> RobinHoodMap<Key, Value>::Grow() {
+  double new_size = num_buckets_ * kGrowthFactor;
+  CHECK_LE(new_size + kPossibleBucketsPerKey,
+           std::numeric_limits<unsigned>::max())
+      << "This should never happen with 24-bit hashes";
+
+  RobinHoodMap new_ht(new_size);
+  for (RobinHoodMap::Bucket& bucket : *this) {
+    if (bucket.key.IsNull()) {
+      continue;
+    }
+    if (new_ht.InsertInternal(std::move(bucket)) == nullptr) {
+      // Insertion failed, so try increasing recursively.
+      new_ht = new_ht.Grow();
+    }
+  }
+  return new_ht;
+}
+
+template <class Key, class Value>
+typename RobinHoodMap<Key, Value>::Bucket*
+RobinHoodMap<Key, Value>::InsertWithRehashing(const Key& key) {
+  // There was no room for the element in the regular hash table.
+  // It's still there, just in a special bucket that Find() won't see,
+  // so we don't need to re-insert it; but we do need to rehash.
+  // Before that, though, we'll check if rehashing would actually help;
+  // it would not if we already have kPossibleBucketsPerKey elements
+  // with the exact same hash value (i.e., someone is mounting an
+  // attack on the hash table). Due to our existing bounded-probe-length
+  // invariant, we know exactly what buckets they must be in,
+  // so we can check that very quickly.
+  {
+    Bucket* bucket = FindBucket(key);
+    bool rehashing_would_help = false;
+    for (unsigned i = 0; i < kPossibleBucketsPerKey; ++i, ++bucket) {
+      if (bucket->key.Hash() != key.Hash()) {
+        rehashing_would_help = true;
+        break;
+      }
+    }
+    if (!rehashing_would_help) {
+      // Remove the element from the sentinel bucket (we know it must
+      // be the one we tried to insert, since we already checked that
+      // the ones we skipped over have the same hash and thus
+      // the same distance).
+      // This leaves the hash table back into a consistent state.
+      Bucket* sentinel = &buckets_[num_buckets_ + kPossibleBucketsPerKey - 1];
+      DCHECK_EQ(sentinel->key, key);
+      sentinel->key = AtomicString();
+      return nullptr;
+    }
+  }
+
+  // No room, so try to increase the size of the hash table.
+  // Note that the element is there, just in a special bucket that
+  // Find() won't see, so we don't need to re-insert it;
+  // but we do need to rehash.
+  *this = Grow();
+
+  // Find out where the element ended up (it's hard to keep track of where
+  // everything moved during the rehashing).
+  Bucket* bucket = FindBucket(key);
+  for (unsigned i = 0; i < kPossibleBucketsPerKey; ++i, ++bucket) {
+    if (bucket->key == key) {
+      return bucket;
+    }
+  }
+  NOTREACHED();
+  return nullptr;
+}
+
+}  // namespace blink
+
+#endif  // THIRD_PARTY_BLINK_RENDERER_CORE_CSS_ROBIN_HOOD_MAP_INL_H_
diff --git a/third_party/blink/renderer/core/css/robin_hood_map.h b/third_party/blink/renderer/core/css/robin_hood_map.h
new file mode 100644
index 0000000..e21cb72
--- /dev/null
+++ b/third_party/blink/renderer/core/css/robin_hood_map.h
@@ -0,0 +1,256 @@
+// 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 THIRD_PARTY_BLINK_RENDERER_CORE_CSS_ROBIN_HOOD_MAP_H_
+#define THIRD_PARTY_BLINK_RENDERER_CORE_CSS_ROBIN_HOOD_MAP_H_
+
+#include <memory>
+#include <type_traits>
+
+#include "base/compiler_specific.h"
+#include "third_party/blink/renderer/platform/wtf/text/atomic_string.h"
+
+namespace blink {
+
+// Since RuleMap is so performance-critical for us (a large part of style
+// is looking up rules in RuleMaps, especially since we have one RuleSet per
+// stylesheet and one RuleSet has many RuleMaps), we have implemented our own
+// hash table, which gives better lookup performance than WTF::HashMap,
+// especially on cache-starved CPUs. We pay for this with some extra code
+// and slightly more expensive inserts (and we also don't support deletes,
+// although that could be added). The key features of our implementation are:
+//
+//  - Partition bucketing: No divide/modulo required, only a single 32x32
+//    multiplication and shift to map the hash value to a bucket.
+//    (This technique was popularized by Daniel Lemire.)
+//
+//  - Supports any table size (not restricted to power-of-two or prime),
+//    due to the above.
+//
+//  - Open addressing with Robin Hood hashing and a bounded number of probes
+//    (based on an idea by Malte Skarupte); makes lookup always O(1),
+//    accessing at most three (neighboring) cache lines (assuming 16-byte
+//    buckets), typically inlined and unrolled by the compiler.
+//
+//  - Inline data (not node-based); few allocations, no extra cache misses
+//    after finding the element.
+//
+//  - High density due to Robin Hood hashing; small maps have almost 100%
+//    load factor, whereas larger ones tend to go towards 60% or so.
+//    No rehashing based solely on load factor; only violating the maximum
+//    probe length will cause one.
+//
+//  - Not robust towards adversary cache collisions; if someone deliberately
+//    introduces lots of AtomicStrings with the exact same hash value,
+//    the insert will fail. (This of course isn't ideal, but it's a direct
+//    consequence of the O(1) lookup bound, and is extremely unlikely
+//    to happen on non-adversary data. Based on simulations with random
+//    strings and 256k inserts, which is the maximum RuleData supports,
+//    we estimate the odds of a 9-collision are very roughly 1 in 2e14.
+//    Of course, if you lower kPossibleBucketsPerKey to e.g. 4, you'll
+//    only need a 5-collision, which is _much_ more likely.)
+//
+// Possible future extensions:
+//
+//  - Arbitrary keys (currently supports only AtomicString as key).
+//
+//  - Using a HeapVector instead of a regular array, allowing to store Oilpan
+//    objects as values without using Persistent<> (note that WTF::HashMap
+//    only supports Oilpan objects using Member<>, not directly).
+//
+//  - Full STL-like or WTF-like interface: Better iterators, removals, etc.
+//
+//  - Packed buckets, to avoid extraneous padding and save yet more cache/RAM
+//    (depending, of course, on Value).
+template <class Key, class Value>
+struct RobinHoodMap {
+  static_assert(std::is_same_v<Key, AtomicString>,
+                "We currently only support AtomicString as key.");
+
+ public:
+  // Number of possible different places a key can be put in.
+  // In the extreme case, 1 means that each element can only be
+  // in one bucket (its home bucket) and any collision would cause
+  // an immediate rehash. 8 means that the element can be in its
+  // home bucket or any of the following seven ones.
+  //
+  // Higher values mean higher load factors (less rehashing,
+  // less RAM usage) but slower lookups (more comparisons),
+  // potentially to the point of no longer having inlined/unrolled finds.
+  static constexpr unsigned kPossibleBucketsPerKey = 8;
+
+  // When rehashing due to excessive collisions, how much to attempt
+  // growing by in each step (1.3 means 30% increase). Smaller values
+  // (closer to 1.0) mean higher load factors (less RAM used) but also
+  // more frequent rehashing, reducing (amortized) insertion speed.
+  //
+  // There probably is some sort of relationship between this variable,
+  // kPossibleBucketsPerKey and the load factor, but this is just set
+  // empirically.
+  static constexpr double kGrowthFactor = 1.3;
+
+  struct Bucket {
+    Key key;
+    Value value;
+  };
+
+  // Constructs a map that can hold no elements; the only thing
+  // you can do with it is check IsNull() (which will be true).
+  RobinHoodMap() = default;
+  explicit RobinHoodMap(unsigned size)
+      : buckets_(new Bucket[size + kPossibleBucketsPerKey]),
+        num_buckets_(size) {}
+
+  bool IsNull() const { return buckets_ == nullptr; }
+
+  Bucket* Find(const Key& key) {
+    Bucket* bucket = FindBucket(key);
+    for (unsigned i = 0; i < kPossibleBucketsPerKey; ++i, ++bucket) {
+      if (bucket->key == key) {
+        return bucket;
+      }
+    }
+    return nullptr;
+  }
+  const Bucket* Find(const Key& key) const {
+    return const_cast<RobinHoodMap*>(this)->Find(key);
+  }
+
+  // Inserts the given key, with a default-constructed value.
+  // Returns the bucket it was put in, so that you can change
+  // the value yourself.
+  //
+  // This function may cause rehashing; if rehashing cannot fix
+  // the collisions, it will return nullptr.
+  //
+  // If you use this function, you will need to include robin_hood_map-inl.h.
+  ALWAYS_INLINE Bucket* Insert(const Key& key);
+
+  // STL-like iterators.
+  class iterator {
+   public:
+    iterator(Bucket* pos, const Bucket* end) : pos_(pos), end_(end) {
+      while (pos_ != end_ && pos_->key.IsNull()) {
+        ++pos_;
+      }
+    }
+    Bucket& operator*() const { return *pos_; }
+    Bucket* operator->() const { return pos_; }
+    iterator& operator++() {
+      ++pos_;
+      while (pos_ != end_ && pos_->key.IsNull()) {
+        ++pos_;
+      }
+      return *this;
+    }
+    bool operator==(const iterator& other) const { return pos_ == other.pos_; }
+    bool operator!=(const iterator& other) const { return pos_ != other.pos_; }
+
+   private:
+    Bucket* pos_;
+    const Bucket* end_;
+  };
+  class const_iterator {
+   public:
+    const_iterator(const Bucket* pos, const Bucket* end)
+        : pos_(pos), end_(end) {
+      while (pos_ != end_ && pos_->key.IsNull()) {
+        ++pos_;
+      }
+    }
+    const Bucket& operator*() const { return *pos_; }
+    const Bucket* operator->() const { return pos_; }
+    const_iterator& operator++() {
+      ++pos_;
+      while (pos_ != end_ && pos_->key.IsNull()) {
+        ++pos_;
+      }
+      return *this;
+    }
+    bool operator==(const const_iterator& other) const {
+      return pos_ == other.pos_;
+    }
+    bool operator!=(const const_iterator& other) const {
+      return pos_ != other.pos_;
+    }
+
+   private:
+    const Bucket* pos_;
+    const Bucket* end_;
+  };
+
+  iterator begin() { return {buckets_.get(), EndBucket()}; }
+  const_iterator begin() const { return {buckets_.get(), EndBucket()}; }
+
+  iterator end() { return {EndBucket(), EndBucket()}; }
+  const_iterator end() const { return {EndBucket(), EndBucket()}; }
+
+ private:
+  Bucket* EndBucket() {
+    return buckets_.get()
+               ? buckets_.get() + num_buckets_ + kPossibleBucketsPerKey
+               : nullptr;
+  }
+  const Bucket* EndBucket() const {
+    return buckets_.get()
+               ? buckets_.get() + num_buckets_ + kPossibleBucketsPerKey
+               : nullptr;
+  }
+  unsigned FindBucketIndex(const Key& key) const {
+    // AtomicString has a 24-bit hash, so we treat it as a number in
+    // 0.24 fixed-point, multiply it by the number of buckets and truncate.
+    // This gives a fair map to [0,N) based on (mostly) the high bits
+    // of the hash, with only a multiplication and shift.
+    unsigned bucket =
+        static_cast<unsigned>(((uint64_t)key.Hash() * num_buckets_) >> 24);
+    DCHECK_LT(bucket, num_buckets_);
+    return bucket;
+  }
+
+  // Lookup. Finds the home bucket of the given key; you will need to
+  // check both this and the next (kPossibleBucketsPerKey - 1) buckets
+  // to find the element. This can never overflow; see the definition
+  // of buckets_ below.
+  Bucket* FindBucket(const Key& key) {
+    return buckets_.get() + FindBucketIndex(key);
+  }
+  const Bucket* FindBucket(const Key& key) const {
+    return buckets_.get() + FindBucketIndex(key);
+  }
+
+  // Inserts the given key/value, possibly displacing other buckets in the
+  // process, returning where the element was inserted. If it fails
+  // (i.e., some element needed to have a distance larger than
+  // kPossibleBucketsPerKey would allow), it inserts the element into the
+  // special last bucket and returns nullptr. If so, you need to call
+  // Grow() immediately.
+  ALWAYS_INLINE Bucket* InsertInternal(Bucket to_insert);
+
+  // Returns a new map that is kGrowthFactor times as large as the existing one,
+  // moves everything in the current map into that one (including
+  // anything that may be in the wrong bucket; in particular the special
+  // last bucket used by InsertInternal() on failure) and then returns
+  // the new map. Note that if rehashing fails, it may call itself recursively,
+  // so that the map may end up yet larger. CHECK-fails if the new map would
+  // become so large as to overflow num_buckets_.
+  RobinHoodMap Grow();
+
+  // Non-inlined helper function for Insert(); calls Grow(), then tracks
+  // where the given key ended up and returns its bucket.
+  Bucket* InsertWithRehashing(const Key& key);
+
+  // The buckets, allocated in the usual way. Note that in addition to the
+  // requested number of buckets (num_buckets_), we allocate first
+  // (kPossibleBucketsPerKey - 1) extra buckets, so that we can overflow even
+  // something that has a home bucket of the last regular one, without having to
+  // worry about wrapping. Then, we add yet another one, as an emergency spot
+  // for InsertInternal() to write an element in if it fails regular insertion.
+  // So in all, this contains (num_buckets_ + kPossibleBucketsPerKey) buckets.
+  std::unique_ptr<Bucket[]> buckets_;
+  unsigned num_buckets_ = 0;
+};
+
+}  // namespace blink
+
+#endif  // THIRD_PARTY_BLINK_RENDERER_CORE_CSS_ROBIN_HOOD_MAP_H_
diff --git a/third_party/blink/renderer/core/css/rule_set.cc b/third_party/blink/renderer/core/css/rule_set.cc
index 296c946..4493e168 100644
--- a/third_party/blink/renderer/core/css/rule_set.cc
+++ b/third_party/blink/renderer/core/css/rule_set.cc
@@ -40,6 +40,7 @@
 #include "third_party/blink/renderer/core/css/css_font_selector.h"
 #include "third_party/blink/renderer/core/css/css_selector.h"
 #include "third_party/blink/renderer/core/css/css_selector_list.h"
+#include "third_party/blink/renderer/core/css/robin_hood_map-inl.h"
 #include "third_party/blink/renderer/core/css/selector_checker-inl.h"
 #include "third_party/blink/renderer/core/css/selector_checker.h"
 #include "third_party/blink/renderer/core/css/selector_filter.h"
@@ -62,6 +63,8 @@
                                unsigned position,
                                HeapVector<RuleSet::Interval<T>>& intervals);
 
+static void UnmarkAsCoveredByBucketing(CSSSelector& selector);
+
 static inline ValidPropertyFilter DetermineValidPropertyFilter(
     const AddRuleFlags add_rule_flags,
     const CSSSelector& selector) {
@@ -183,7 +186,15 @@
     // see class comment on RuleMap.
     map.Uncompact();
   }
-  map.Add(key, rule_data);
+  if (!map.Add(key, rule_data)) {
+    // This should really only happen in case of an attack;
+    // we stick it in the universal bucket so that correctness
+    // is preserved, even though the performance will be suboptimal.
+    RuleData rule_data_copy = rule_data;
+    UnmarkAsCoveredByBucketing(rule_data_copy.MutableSelector());
+    AddToRuleSet(universal_rules_, rule_data_copy);
+    return;
+  }
   // Don't call ComputeBloomFilterHashes() here; RuleMap needs that space for
   // group information, and will call ComputeBloomFilterHashes() itself on
   // compaction.
@@ -341,6 +352,17 @@
   }
 }
 
+static void UnmarkAsCoveredByBucketing(CSSSelector& selector) {
+  for (CSSSelector* s = &selector;;
+       ++s) {  // Termination condition within loop.
+    s->SetCoveredByBucketing(false);
+    if (s->IsLastInComplexSelector() ||
+        s->Relation() != CSSSelector::kSubSelector) {
+      break;
+    }
+  }
+}
+
 template <RuleSet::BucketCoverage bucket_coverage>
 void RuleSet::FindBestRuleSetAndAdd(CSSSelector& component,
                                     const RuleData& rule_data) {
@@ -913,17 +935,33 @@
   return cascade_layer->GetOrAddSubLayer(name);
 }
 
-void RuleMap::Add(const AtomicString& key, const RuleData& rule_data) {
-  RuleMap::Extent& rules =
-      buckets.insert(key, RuleMap::Extent()).stored_value->value;
-  if (rules.length == 0) {
-    rules.bucket_number = num_buckets++;
+bool RuleMap::Add(const AtomicString& key, const RuleData& rule_data) {
+  RuleMap::Extent* rules = nullptr;
+  if (buckets.IsNull()) {
+    // First insert.
+    buckets = RobinHoodMap<AtomicString, Extent>(8);
+  } else {
+    // See if we can find an existing entry for this key.
+    RobinHoodMap<AtomicString, Extent>::Bucket* bucket = buckets.Find(key);
+    if (bucket != nullptr) {
+      rules = &bucket->value;
+    }
   }
+  if (rules == nullptr) {
+    RobinHoodMap<AtomicString, Extent>::Bucket* bucket = buckets.Insert(key);
+    if (bucket == nullptr) {
+      return false;
+    }
+    rules = &bucket->value;
+    rules->bucket_number = num_buckets++;
+  }
+
   RuleData rule_data_copy = rule_data;
   rule_data_copy.ComputeEntirelyCoveredByBucketing();
-  bucket_number_.push_back(rules.bucket_number);
-  ++rules.length;
+  bucket_number_.push_back(rules->bucket_number);
+  ++rules->length;
   backing.push_back(std::move(rule_data_copy));
+  return true;
 }
 
 void RuleMap::Compact() {
diff --git a/third_party/blink/renderer/core/css/rule_set.h b/third_party/blink/renderer/core/css/rule_set.h
index 0fb7164..07ccf35 100644
--- a/third_party/blink/renderer/core/css/rule_set.h
+++ b/third_party/blink/renderer/core/css/rule_set.h
@@ -32,6 +32,7 @@
 #include "third_party/blink/renderer/core/css/css_position_fallback_rule.h"
 #include "third_party/blink/renderer/core/css/media_query_evaluator.h"
 #include "third_party/blink/renderer/core/css/resolver/media_query_result.h"
+#include "third_party/blink/renderer/core/css/robin_hood_map.h"
 #include "third_party/blink/renderer/core/css/rule_feature_set.h"
 #include "third_party/blink/renderer/core/css/style_rule.h"
 #include "third_party/blink/renderer/core/css/style_rule_counter_style.h"
@@ -232,17 +233,28 @@
   };
 
  public:
-  void Add(const AtomicString& key, const RuleData& rule_data);
+  // Returns false on failure (which should be very rare).
+  bool Add(const AtomicString& key, const RuleData& rule_data);
   void AddFilteredRulesFromOtherSet(
       const RuleMap& other,
       const HeapHashSet<Member<StyleRule>>& only_include);
   base::span<const RuleData> Find(const AtomicString& key) const {
-    DCHECK(buckets.empty() || compacted);
-    auto it = buckets.find(key);
-    if (it == buckets.end()) {
+    if (buckets.IsNull()) {
+      return {};
+    }
+
+    // Go through all the buckets and check for equality, brute force.
+    // Note that we don't check for IsNull() to get an early abort
+    // on empty buckets; the comparison of AtomicString is so cheap
+    // that it actually benchmarks negatively. This loop typically
+    // gets unrolled and inlined, resulting in a very tight lookup.
+    const RobinHoodMap<AtomicString, Extent>::Bucket* bucket =
+        buckets.Find(key);
+    if (bucket == nullptr) {
       return {};
     } else {
-      return GetRulesFromExtent(it->value);
+      return {backing.begin() + bucket->value.start_index,
+              bucket->value.length};
     }
   }
   bool IsEmpty() const { return backing.empty(); }
@@ -254,7 +266,7 @@
   void Trace(Visitor* visitor) const { visitor->Trace(backing); }
 
   struct ConstIterator {
-    HashMap<AtomicString, Extent>::const_iterator sub_it;
+    RobinHoodMap<AtomicString, Extent>::const_iterator sub_it;
     const RuleMap* rule_map;
 
     WTF::KeyValuePair<AtomicString, base::span<const RuleData>> operator*()
@@ -291,7 +303,7 @@
     return {bucket_number_.begin() + extent.start_index, extent.length};
   }
 
-  HashMap<AtomicString, Extent> buckets;
+  RobinHoodMap<AtomicString, Extent> buckets;
 
   // Contains all the rules from all the buckets; after compaction,
   // they will be contiguous in memory and you can do easily lookups
diff --git a/third_party/blink/renderer/core/css/style_property_serializer.cc b/third_party/blink/renderer/core/css/style_property_serializer.cc
index b385d13..d26c217 100644
--- a/third_party/blink/renderer/core/css/style_property_serializer.cc
+++ b/third_party/blink/renderer/core/css/style_property_serializer.cc
@@ -1402,8 +1402,8 @@
       path && (use_rotate || use_distance ||
                !is_initial_identifier_value(path, CSSValueID::kNone));
   bool use_position =
-      position &&
-      (!use_path || !is_initial_identifier_value(position, CSSValueID::kAuto));
+      position && (!use_path ||
+                   !is_initial_identifier_value(position, CSSValueID::kNormal));
   bool use_anchor =
       anchor && (!is_initial_identifier_value(anchor, CSSValueID::kAuto));
 
diff --git a/third_party/blink/renderer/core/frame/frame_view.cc b/third_party/blink/renderer/core/frame/frame_view.cc
index a0add1f6..beccb7dd 100644
--- a/third_party/blink/renderer/core/frame/frame_view.cc
+++ b/third_party/blink/renderer/core/frame/frame_view.cc
@@ -107,9 +107,15 @@
     if (should_compute_occlusion)
       geometry_flags |= IntersectionGeometry::kShouldComputeVisibility;
 
-    IntersectionGeometry geometry(nullptr, *owner_element, {} /* root_margin */,
-                                  {IntersectionObserver::kMinimumThreshold},
-                                  {} /* target_margin */, geometry_flags);
+    IntersectionGeometry geometry(
+        /* root */ nullptr,
+        /* target */ *owner_element,
+        /* root_margin */ {},
+        /* thresholds */ {IntersectionObserver::kMinimumThreshold},
+        /* target_margin */ {},
+        /* scroll_margin */ {},
+        /* flags */ geometry_flags);
+
     PhysicalRect new_rect_in_parent = geometry.IntersectionRect();
     min_scroll_delta_to_update_viewport_intersection_ =
         geometry.MinScrollDeltaToUpdate();
diff --git a/third_party/blink/renderer/core/html/canvas/html_canvas_element.cc b/third_party/blink/renderer/core/html/canvas/html_canvas_element.cc
index 62149dda..3abbd1e 100644
--- a/third_party/blink/renderer/core/html/canvas/html_canvas_element.cc
+++ b/third_party/blink/renderer/core/html/canvas/html_canvas_element.cc
@@ -531,6 +531,9 @@
   if (!IsRenderingContext2D())
     SetNeedsCompositingUpdate();
 
+  SetOpacityMode(GetRenderingContextSkColorInfo().isOpaque() ? kOpaque
+                                                             : kNonOpaque);
+
   return context_.Get();
 }
 
@@ -549,8 +552,6 @@
   CanvasResourceHost::SetHdrMetadata(hdr_metadata);
   if (context_ && (IsWebGL() || IsWebGPU())) {
     context_->SetHdrMetadata(hdr_metadata);
-  } else if (canvas2d_bridge_) {
-    canvas2d_bridge_->SetHdrMetadata(hdr_metadata);
   }
 }
 
@@ -735,10 +736,7 @@
     if (dirty_rect_.IsEmpty())
       return;
 
-    if (canvas2d_bridge_) {
-      canvas2d_bridge_->DoPaintInvalidation(
-          gfx::ToEnclosingRect(invalidation_rect));
-    }
+    DoPaintInvalidation(gfx::ToEnclosingRect(invalidation_rect));
   }
 
   if (context_ && HasImageBitmapContext() && context_->CcLayer())
@@ -927,8 +925,6 @@
 
   if (context_ && (IsWebGL() || IsWebGPU()))
     context_->SetFilterQuality(filter_quality);
-  else if (canvas2d_bridge_)
-    canvas2d_bridge_->SetFilterQuality(filter_quality);
 }
 
 // In some instances we don't actually want to paint to the parent layer
@@ -1393,12 +1389,7 @@
 }
 
 std::unique_ptr<Canvas2DLayerBridge> HTMLCanvasElement::Create2DLayerBridge() {
-  auto surface = std::make_unique<Canvas2DLayerBridge>(
-      GetRenderingContextSkColorInfo().isOpaque() ? kOpaque : kNonOpaque);
-  if (!surface->IsValid())
-    return nullptr;
-
-  return surface;
+  return std::make_unique<Canvas2DLayerBridge>();
 }
 
 void HTMLCanvasElement::SetCanvas2DLayerBridgeInternal(
@@ -1410,8 +1401,7 @@
     return;
 
   if (external_canvas2d_bridge) {
-    if (external_canvas2d_bridge->IsValid())
-      canvas2d_bridge_ = std::move(external_canvas2d_bridge);
+    canvas2d_bridge_ = std::move(external_canvas2d_bridge);
   } else {
     // If the canvas meets the criteria to use accelerated-GPU rendering, and
     // the user signals that the canvas will not be read frequently through
@@ -1929,6 +1919,7 @@
   return LayoutObject::ShouldRespectImageOrientation(GetLayoutObject());
 }
 
+// Temporary plumbing
 bool HTMLCanvasElement::IsHibernating() const {
   return canvas2d_bridge_ && canvas2d_bridge_->IsHibernating();
 }
@@ -1937,4 +1928,13 @@
   return GetRasterMode() == RasterMode::kGPU;
 }
 
+// Temporary plumbing
+void HTMLCanvasElement::FlushRecording(FlushReason reason) {
+  if (canvas2d_bridge_) {
+    canvas2d_bridge_->FlushRecording(reason);
+  } else {
+    CanvasResourceHost::FlushRecording(reason);
+  }
+}
+
 }  // namespace blink
diff --git a/third_party/blink/renderer/core/html/canvas/html_canvas_element.h b/third_party/blink/renderer/core/html/canvas/html_canvas_element.h
index 492ddbdf..2b6490f 100644
--- a/third_party/blink/renderer/core/html/canvas/html_canvas_element.h
+++ b/third_party/blink/renderer/core/html/canvas/html_canvas_element.h
@@ -224,6 +224,7 @@
   bool IsPrinting() const override;
   void SetFilterQuality(cc::PaintFlags::FilterQuality filter_quality) override;
   bool IsHibernating() const override;
+  void FlushRecording(FlushReason reason) override;
 
   // CanvasRenderingContextHost implementation.
   UkmParameters GetUkmParameters() override;
diff --git a/third_party/blink/renderer/core/intersection_observer/intersection_geometry.cc b/third_party/blink/renderer/core/intersection_observer/intersection_geometry.cc
index dd9ef2a..0ad721d9 100644
--- a/third_party/blink/renderer/core/intersection_observer/intersection_geometry.cc
+++ b/third_party/blink/renderer/core/intersection_observer/intersection_geometry.cc
@@ -18,6 +18,7 @@
 #include "third_party/blink/renderer/core/layout/layout_text.h"
 #include "third_party/blink/renderer/core/layout/layout_view.h"
 #include "third_party/blink/renderer/core/page/page.h"
+#include "third_party/blink/renderer/core/paint/clip_path_clipper.h"
 #include "third_party/blink/renderer/core/paint/paint_layer.h"
 #include "third_party/blink/renderer/platform/graphics/paint/geometry_mapper.h"
 
@@ -198,6 +199,7 @@
                                            const Vector<Length>& root_margin,
                                            const Vector<float>& thresholds,
                                            const Vector<Length>& target_margin,
+                                           const Vector<Length>& scroll_margin,
                                            unsigned flags,
                                            CachedRects* cached_rects)
     : flags_(flags & kConstructorFlagsMask) {
@@ -212,8 +214,9 @@
     return;
   }
   RootGeometry root_geometry(root_and_target.root, root_margin);
+
   ComputeGeometry(root_geometry, root_and_target, thresholds, target_margin,
-                  cached_rects);
+                  scroll_margin, cached_rects);
 }
 
 IntersectionGeometry::IntersectionGeometry(const RootGeometry& root_geometry,
@@ -221,6 +224,7 @@
                                            const Element& target_element,
                                            const Vector<float>& thresholds,
                                            const Vector<Length>& target_margin,
+                                           const Vector<Length>& scroll_margin,
                                            unsigned flags,
                                            CachedRects* cached_rects)
     : flags_(flags & kConstructorFlagsMask),
@@ -231,8 +235,9 @@
   if (root_and_target.relationship == RootAndTarget::kInvalid) {
     return;
   }
+
   ComputeGeometry(root_geometry, root_and_target, thresholds, target_margin,
-                  cached_rects);
+                  scroll_margin, cached_rects);
 }
 
 IntersectionGeometry::RootAndTarget::RootAndTarget(
@@ -387,6 +392,7 @@
                                            const RootAndTarget& root_and_target,
                                            const Vector<float>& thresholds,
                                            const Vector<Length>& target_margin,
+                                           const Vector<Length>& scroll_margin,
                                            CachedRects* cached_rects) {
   UMA_HISTOGRAM_BOOLEAN("Blink.IntersectionObservation.UsesCachedRects",
                         ShouldUseCachedRects());
@@ -433,7 +439,7 @@
 
   bool does_intersect =
       ClipToRoot(root, target, root_rect_, unclipped_intersection_rect_,
-                 intersection_rect_, cached_rects);
+                 intersection_rect_, scroll_margin, cached_rects);
 
   // Map target_rect_ to absolute coordinates for target's document.
   // GeometryMapper is faster, so we use it when possible; otherwise, fall back
@@ -565,7 +571,7 @@
 
   min_scroll_delta_to_update_ = ComputeMinScrollDeltaToUpdate(
       root_and_target, target_to_document_transform,
-      root_geometry.root_to_document_transform, thresholds);
+      root_geometry.root_to_document_transform, thresholds, scroll_margin);
   UMA_HISTOGRAM_COUNTS_1000(
       "Blink.IntersectionObservation.MinScrollDeltaToUpdateX",
       min_scroll_delta_to_update_.x());
@@ -584,6 +590,7 @@
                                       const PhysicalRect& root_rect,
                                       PhysicalRect& unclipped_intersection_rect,
                                       PhysicalRect& intersection_rect,
+                                      const Vector<Length>& scroll_margin,
                                       CachedRects* cached_rects) {
   if (!root->IsBox()) {
     return false;
@@ -600,8 +607,47 @@
   if (CanUseGeometryMapper(target))
     flags |= kUseGeometryMapper;
 
-  bool does_intersect;
-  if (ShouldUseCachedRects()) {
+  bool does_intersect = false;
+
+  if (!scroll_margin.empty()) {
+    flags |= kIgnoreLocalClipPath;
+
+    // TODO(tcaptan - http://crbug/1485750):
+    // Use IntersectionGeometry::RootAndTarget::ComputeRelationship() here
+    // to avoid potential problem of IsDescendantOf(), when being a descendant
+    // may not be equivalent to being contained (i.e. as a descendant in the
+    // containing block chain), and to lower cost.
+    const auto* scroller = target->ContainingScrollContainer();
+    // TODO(tcaptan): investigate iframe scenarios
+
+    if (scroller && scroller->IsDescendantOf(root) &&
+        !scroller->IsEffectiveRootScroller() && scroller != local_ancestor) {
+      absl::optional<gfx::RectF> scroller_bounding_box =
+          ClipPathClipper::LocalClipPathBoundingBox(*scroller);
+      PhysicalRect scroller_rect =
+          scroller_bounding_box.has_value()
+              ? PhysicalRect::EnclosingRect(scroller_bounding_box.value())
+              : scroller->LocalVisualRect();
+
+      // First clip the intersection_rect to it's containing scroller to inflate
+      // the scroller's clipping rect when doing it.
+      does_intersect = ClipToRoot(scroller, target, scroller_rect,
+                                  unclipped_intersection_rect,
+                                  intersection_rect, scroll_margin, nullptr);
+      if (does_intersect) {
+        // If intersection_rect intersects with the scroller, continue clipping
+        // it up to root.
+        unclipped_intersection_rect = intersection_rect;
+        return ClipToRoot(root, scroller, root_rect,
+                          unclipped_intersection_rect, intersection_rect,
+                          scroll_margin, nullptr);
+      }
+
+      return false;
+    }
+  }
+
+  if (ShouldUseCachedRects() && cached_rects) {
     does_intersect = cached_rects->does_intersect;
   } else {
     does_intersect = target->MapToVisualRectInAncestorSpace(
@@ -633,8 +679,18 @@
       // TODO(szager): This flipping seems incorrect because root_rect is
       // already physical.
       local_ancestor->DeprecatedFlipForWritingMode(root_clip_rect);
-      does_intersect &=
-          intersection_rect.InclusiveIntersect(PhysicalRect(root_clip_rect));
+
+      PhysicalRect root_clip_physical_rect{root_clip_rect};
+
+      if (!scroll_margin.empty() && root->IsScrollContainer()) {
+        // If the root is scrollable, apply the scroll margin to inflate the
+        // root_clip_physical_rect.
+        ApplyMargin(root_clip_physical_rect, scroll_margin,
+                    root->StyleRef().EffectiveZoom());
+      }
+
+      does_intersect &= intersection_rect.InclusiveIntersect(
+          PhysicalRect(root_clip_physical_rect));
     } else {
       // Note that we don't clip to root_rect here. That's ok because
       // (!local_ancestor) implies that the root is implicit and the
@@ -678,10 +734,16 @@
     const RootAndTarget& root_and_target,
     const gfx::Transform& target_to_document_transform,
     const gfx::Transform& root_to_document_transform,
-    const Vector<float>& thresholds) const {
+    const Vector<float>& thresholds,
+    const Vector<Length>& scroll_margin) const {
   if (!RuntimeEnabledFeatures::IntersectionOptimizationEnabled()) {
     return gfx::Vector2dF();
   }
+
+  if (!scroll_margin.empty()) {
+    return gfx::Vector2dF();
+  }
+
   if (ShouldComputeVisibility()) {
     // We don't have enough data (e.g. the occluded area of target and the
     // occluding areas of the covering elements) to calculate the minimum
diff --git a/third_party/blink/renderer/core/intersection_observer/intersection_geometry.h b/third_party/blink/renderer/core/intersection_observer/intersection_geometry.h
index 37dc6da..8839a3097 100644
--- a/third_party/blink/renderer/core/intersection_observer/intersection_geometry.h
+++ b/third_party/blink/renderer/core/intersection_observer/intersection_geometry.h
@@ -89,6 +89,7 @@
                        const Vector<Length>& root_margin,
                        const Vector<float>& thresholds,
                        const Vector<Length>& target_margin,
+                       const Vector<Length>& scroll_margin,
                        unsigned flags,
                        CachedRects* cached_rects = nullptr);
 
@@ -97,6 +98,7 @@
                        const Element& target,
                        const Vector<float>& thresholds,
                        const Vector<Length>& target_margin,
+                       const Vector<Length>& scroll_margin,
                        unsigned flags,
                        CachedRects* cached_rects = nullptr);
 
@@ -181,11 +183,14 @@
   RootAndTarget PrepareComputeGeometry(const Node* root_node,
                                        const Element& target_element,
                                        CachedRects* cached_rects);
+
   void ComputeGeometry(const RootGeometry& root_geometry,
                        const RootAndTarget& root_and_target,
                        const Vector<float>& thresholds,
                        const Vector<Length>& target_margin,
+                       const Vector<Length>& scroll_margin,
                        CachedRects* cached_rects);
+
   // Map intersection_rect from the coordinate system of the target to the
   // coordinate system of the root, applying intervening clips.
   bool ClipToRoot(const LayoutObject* root,
@@ -193,14 +198,17 @@
                   const PhysicalRect& root_rect,
                   PhysicalRect& unclipped_intersection_rect,
                   PhysicalRect& intersection_rect,
+                  const Vector<Length>& scroll_margin,
                   CachedRects* cached_rects = nullptr);
   unsigned FirstThresholdGreaterThan(float ratio,
                                      const Vector<float>& thresholds) const;
+
   gfx::Vector2dF ComputeMinScrollDeltaToUpdate(
       const RootAndTarget& root_and_target,
       const gfx::Transform& target_to_document_transform,
       const gfx::Transform& root_to_document_transform,
-      const Vector<float>& thresholds) const;
+      const Vector<float>& thresholds,
+      const Vector<Length>& scroll_margin) const;
 
   PhysicalRect target_rect_;
   PhysicalRect intersection_rect_;
diff --git a/third_party/blink/renderer/core/intersection_observer/intersection_observation.cc b/third_party/blink/renderer/core/intersection_observer/intersection_observation.cc
index f9a6b476..d4f4f1d1 100644
--- a/third_party/blink/renderer/core/intersection_observer/intersection_observation.cc
+++ b/third_party/blink/renderer/core/intersection_observer/intersection_observation.cc
@@ -52,10 +52,10 @@
     absl::optional<base::TimeTicks>& monotonic_time) {
   return ComputeIntersectionInternal(
       [this, &root_geometry](unsigned geometry_flags) {
-        return IntersectionGeometry(root_geometry, *observer_->root(),
-                                    *Target(), observer_->thresholds(),
-                                    observer_->TargetMargin(), geometry_flags,
-                                    cached_rects_.get());
+        return IntersectionGeometry(
+            root_geometry, *observer_->root(), *Target(),
+            observer_->thresholds(), observer_->TargetMargin(),
+            observer_->ScrollMargin(), geometry_flags, cached_rects_.get());
       },
       compute_flags, monotonic_time);
 }
@@ -67,8 +67,8 @@
       [this](unsigned geometry_flags) {
         return IntersectionGeometry(
             observer_->root(), *Target(), observer_->RootMargin(),
-            observer_->thresholds(), observer_->TargetMargin(), geometry_flags,
-            cached_rects_.get());
+            observer_->thresholds(), observer_->TargetMargin(),
+            observer_->ScrollMargin(), geometry_flags, cached_rects_.get());
       },
       compute_flags, monotonic_time);
 }
@@ -147,8 +147,17 @@
   if (cached_rects_) {
     cached_rects_copy = *cached_rects_;
   }
-  IntersectionGeometry geometry(observer_->root(), *target_, {}, {0}, {}, 0,
-                                cached_rects_ ? &cached_rects_copy : nullptr);
+
+  IntersectionGeometry geometry(
+      /* root */ observer_->root(),
+      /* target */ *target_,
+      /* root_margin */ {},
+      /* thresholds */ {0},
+      /* target_margin */ {},
+      /* scroll_margin */ {},
+      /* flags */ 0,
+      /* cached_rects */ cached_rects_ ? &cached_rects_copy : nullptr);
+
   return geometry.CanUseCachedRectsForTesting();
 }
 
diff --git a/third_party/blink/renderer/core/intersection_observer/intersection_observer.cc b/third_party/blink/renderer/core/intersection_observer/intersection_observer.cc
index 8364cbb..a604191 100644
--- a/third_party/blink/renderer/core/intersection_observer/intersection_observer.cc
+++ b/third_party/blink/renderer/core/intersection_observer/intersection_observer.cc
@@ -92,9 +92,10 @@
   bool needs_initial_observation_with_detached_target_;
 };
 
-void ParseMargin(String margin_parameter,
+void ParseMargin(const String& margin_parameter,
                  Vector<Length>& margin,
-                 ExceptionState& exception_state) {
+                 ExceptionState& exception_state,
+                 const String& marginName) {
   // TODO(szager): Make sure this exact syntax and behavior is spec-ed
   // somewhere.
 
@@ -104,6 +105,7 @@
   // "1px 2px" = top/bottom left/right
   // "1px 2px 3px" = top left/right bottom
   // "1px 2px 3px 4px" = top left right bottom
+
   CSSTokenizer tokenizer(margin_parameter);
   const auto tokens = tokenizer.TokenizeToEOF();
   CSSParserTokenRange token_range(tokens);
@@ -113,7 +115,7 @@
     if (margin.size() == 4) {
       exception_state.ThrowDOMException(
           DOMExceptionCode::kSyntaxError,
-          "Extra text found at the end of rootMargin.");
+          "Extra text found at the end of " + marginName + "Margin.");
       break;
     }
     const CSSParserToken& token = token_range.ConsumeIncludingWhitespace();
@@ -133,13 +135,13 @@
           default:
             exception_state.ThrowDOMException(
                 DOMExceptionCode::kSyntaxError,
-                "rootMargin must be specified in pixels or percent.");
+                marginName + "Margin must be specified in pixels or percent.");
         }
         break;
       default:
         exception_state.ThrowDOMException(
             DOMExceptionCode::kSyntaxError,
-            "rootMargin must be specified in pixels or percent.");
+            marginName + "Margin must be specified in pixels or percent.");
     }
   }
 }
@@ -174,6 +176,69 @@
   std::sort(thresholds.begin(), thresholds.end());
 }
 
+// Returns a Vector of 4 margins (top, right, bottom, left) following
+// https://drafts.csswg.org/css-box-4/#margin-shorthand
+Vector<Length> NormalizeMargins(const Vector<Length>& margins) {
+  Vector<Length> normalized_margins(4, Length::Fixed(0));
+
+  switch (margins.size()) {
+    case 0:
+      break;
+    case 1:
+      normalized_margins[0] = normalized_margins[1] = normalized_margins[2] =
+          normalized_margins[3] = margins[0];
+      break;
+    case 2:
+      normalized_margins[0] = normalized_margins[2] = margins[0];
+      normalized_margins[1] = normalized_margins[3] = margins[1];
+      break;
+    case 3:
+      normalized_margins[0] = margins[0];
+      normalized_margins[1] = normalized_margins[3] = margins[1];
+      normalized_margins[2] = margins[2];
+      break;
+    case 4:
+      normalized_margins[0] = margins[0];
+      normalized_margins[1] = margins[1];
+      normalized_margins[2] = margins[2];
+      normalized_margins[3] = margins[3];
+      break;
+    default:
+      NOTREACHED();
+      break;
+  }
+
+  return normalized_margins;
+}
+
+String StringifyMargin(const Vector<Length>& margin) {
+  StringBuilder string_builder;
+
+  const auto append_length = [&](const Length& length) {
+    string_builder.AppendNumber(length.IntValue());
+    if (length.IsPercent()) {
+      string_builder.Append('%');
+    } else {
+      string_builder.Append("px", 2);
+    }
+  };
+
+  if (margin.empty()) {
+    string_builder.Append("0px 0px 0px 0px");
+  } else {
+    DCHECK_EQ(margin.size(), 4u);
+    append_length(margin[0]);
+    string_builder.Append(' ');
+    append_length(margin[1]);
+    string_builder.Append(' ');
+    append_length(margin[2]);
+    string_builder.Append(' ');
+    append_length(margin[3]);
+  }
+
+  return string_builder.ToString();
+}
+
 }  // anonymous namespace
 
 static bool throttle_delay_enabled = true;
@@ -215,18 +280,29 @@
   }
 
   Vector<Length> margin;
-  ParseMargin(observer_init->rootMargin(), margin, exception_state);
-  if (exception_state.HadException())
+  ParseMargin(observer_init->rootMargin(), margin, exception_state, "root");
+  if (exception_state.HadException()) {
     return nullptr;
+  }
+
+  Vector<Length> scroll_margin;
+  if (RuntimeEnabledFeatures::IntersectionObserverScrollMarginEnabled()) {
+    ParseMargin(observer_init->scrollMargin(), scroll_margin, exception_state,
+                "scroll");
+    if (exception_state.HadException()) {
+      return nullptr;
+    }
+  }
 
   Vector<float> thresholds;
   ParseThresholds(observer_init->threshold(), thresholds, exception_state);
-  if (exception_state.HadException())
+  if (exception_state.HadException()) {
     return nullptr;
+  }
 
   return MakeGarbageCollected<IntersectionObserver>(
-      delegate, root, margin, thresholds, kFractionOfTarget, delay,
-      track_visibility, false, kApplyMarginToRoot, false);
+      delegate, root, margin, scroll_margin, thresholds, kFractionOfTarget,
+      delay, track_visibility, false, kApplyMarginToRoot, false);
 }
 
 IntersectionObserver* IntersectionObserver::Create(
@@ -264,8 +340,9 @@
           document->GetExecutionContext(), std::move(callback), ukm_metric_id,
           behavior, needs_initial_observation_with_detached_target);
   return MakeGarbageCollected<IntersectionObserver>(
-      *intersection_observer_delegate, nullptr, margin, thresholds, semantics,
-      delay, track_visibility, always_report_root_bounds, margin_target,
+      *intersection_observer_delegate, nullptr, margin,
+      /* scroll_margin */ Vector<Length>(), thresholds, semantics, delay,
+      track_visibility, always_report_root_bounds, margin_target,
       use_overflow_clip_edge);
 }
 
@@ -273,6 +350,7 @@
     IntersectionObserverDelegate& delegate,
     Node* root,
     const Vector<Length>& margin,
+    const Vector<Length>& scroll_margin,
     const Vector<float>& thresholds,
     ThresholdInterpretation semantics,
     DOMHighResTimeStamp delay,
@@ -286,38 +364,20 @@
       root_(root),
       thresholds_(thresholds),
       delay_(delay),
-      margin_(4, Length::Fixed(0)),
       margin_target_(margin_target),
       root_is_implicit_(root ? 0 : 1),
       track_visibility_(track_visibility),
       track_fraction_of_root_(semantics == kFractionOfRoot),
       always_report_root_bounds_(always_report_root_bounds),
       use_overflow_clip_edge_(use_overflow_clip_edge) {
-  switch (margin.size()) {
-    case 0:
-      break;
-    case 1:
-      margin_[0] = margin_[1] = margin_[2] = margin_[3] = margin[0];
-      break;
-    case 2:
-      margin_[0] = margin_[2] = margin[0];
-      margin_[1] = margin_[3] = margin[1];
-      break;
-    case 3:
-      margin_[0] = margin[0];
-      margin_[1] = margin_[3] = margin[1];
-      margin_[2] = margin[2];
-      break;
-    case 4:
-      margin_[0] = margin[0];
-      margin_[1] = margin[1];
-      margin_[2] = margin[2];
-      margin_[3] = margin[3];
-      break;
-    default:
-      NOTREACHED();
-      break;
+  margin_ = NormalizeMargins(margin);
+
+  scroll_margin_ = NormalizeMargins(scroll_margin);
+  if (std::all_of(scroll_margin_.begin(), scroll_margin_.end(),
+                  [](const auto& m) { return m.IsZero(); })) {
+    scroll_margin_.clear();
   }
+
   if (root) {
     if (root->IsDocumentNode()) {
       To<Document>(root)
@@ -433,30 +493,12 @@
   return entries;
 }
 
-static void AppendLength(StringBuilder& string_builder, const Length& length) {
-  string_builder.AppendNumber(length.IntValue());
-  if (length.IsPercent())
-    string_builder.Append('%');
-  else
-    string_builder.Append("px", 2);
+String IntersectionObserver::rootMargin() const {
+  return StringifyMargin(RootMargin());
 }
 
-String IntersectionObserver::rootMargin() const {
-  StringBuilder string_builder;
-  const auto& margin = RootMargin();
-  if (margin.empty()) {
-    string_builder.Append("0px 0px 0px 0px");
-  } else {
-    DCHECK_EQ(margin.size(), 4u);
-    AppendLength(string_builder, margin[0]);
-    string_builder.Append(' ');
-    AppendLength(string_builder, margin[1]);
-    string_builder.Append(' ');
-    AppendLength(string_builder, margin[2]);
-    string_builder.Append(' ');
-    AppendLength(string_builder, margin[3]);
-  }
-  return string_builder.ToString();
+String IntersectionObserver::scrollMargin() const {
+  return StringifyMargin(ScrollMargin());
 }
 
 DOMHighResTimeStamp IntersectionObserver::GetEffectiveDelay() const {
diff --git a/third_party/blink/renderer/core/intersection_observer/intersection_observer.h b/third_party/blink/renderer/core/intersection_observer/intersection_observer.h
index 7870eb0..6dc21a5 100644
--- a/third_party/blink/renderer/core/intersection_observer/intersection_observer.h
+++ b/third_party/blink/renderer/core/intersection_observer/intersection_observer.h
@@ -121,9 +121,10 @@
       bool needs_initial_observation_with_detached_target = true,
       ExceptionState& = ASSERT_NO_EXCEPTION);
 
-  explicit IntersectionObserver(IntersectionObserverDelegate&,
-                                Node*,
+  explicit IntersectionObserver(IntersectionObserverDelegate& delegate,
+                                Node* root,
                                 const Vector<Length>& margin,
+                                const Vector<Length>& scroll_margin,
                                 const Vector<float>& thresholds,
                                 ThresholdInterpretation semantics,
                                 DOMHighResTimeStamp delay,
@@ -142,6 +143,7 @@
   // API attributes.
   Node* root() const { return root_.Get(); }
   String rootMargin() const;
+  String scrollMargin() const;
   const Vector<float>& thresholds() const { return thresholds_; }
   DOMHighResTimeStamp delay() const { return delay_; }
   bool trackVisibility() const { return track_visibility_; }
@@ -162,14 +164,18 @@
 
   DOMHighResTimeStamp GetTimeStamp(base::TimeTicks monotonic_time) const;
   DOMHighResTimeStamp GetEffectiveDelay() const;
+
   Vector<Length> RootMargin() const {
     return margin_target_ == kApplyMarginToRoot ? margin_ : Vector<Length>();
   }
+
   Vector<Length> TargetMargin() const {
     return margin_target_ == kApplyMarginToTarget ? margin_ : Vector<Length>();
   }
   bool HasRootMargin() const;
 
+  Vector<Length> ScrollMargin() const { return scroll_margin_; }
+
   // Returns the number of IntersectionObservations that recomputed geometry.
   int64_t ComputeIntersections(unsigned flags,
                                absl::optional<base::TimeTicks>& monotonic_time);
@@ -217,6 +223,7 @@
   Vector<float> thresholds_;
   DOMHighResTimeStamp delay_;
   Vector<Length> margin_;
+  Vector<Length> scroll_margin_;
   MarginTarget margin_target_;
   unsigned root_is_implicit_ : 1;
   unsigned track_visibility_ : 1;
diff --git a/third_party/blink/renderer/core/intersection_observer/intersection_observer.idl b/third_party/blink/renderer/core/intersection_observer/intersection_observer.idl
index c263fcc..94ec4566 100644
--- a/third_party/blink/renderer/core/intersection_observer/intersection_observer.idl
+++ b/third_party/blink/renderer/core/intersection_observer/intersection_observer.idl
@@ -13,6 +13,8 @@
     [CallWith=ScriptState, RaisesException, MeasureAs=IntersectionObserver_Constructor] constructor(IntersectionObserverCallback callback, optional IntersectionObserverInit options = {});
     readonly attribute Node? root;
     readonly attribute DOMString rootMargin;
+    [RuntimeEnabled=IntersectionObserverScrollMargin]
+    readonly attribute DOMString scrollMargin;
     // https://github.com/WICG/IntersectionObserver/issues/114
     readonly attribute FrozenArray<double> thresholds;
     readonly attribute DOMHighResTimeStamp delay;
diff --git a/third_party/blink/renderer/core/intersection_observer/intersection_observer_init.idl b/third_party/blink/renderer/core/intersection_observer/intersection_observer_init.idl
index 9321162..6b25f202 100644
--- a/third_party/blink/renderer/core/intersection_observer/intersection_observer_init.idl
+++ b/third_party/blink/renderer/core/intersection_observer/intersection_observer_init.idl
@@ -7,6 +7,7 @@
 dictionary IntersectionObserverInit {
     (Element or Document)? root = null;
     DOMString rootMargin = "0px";
+    DOMString scrollMargin = "0px";
     (double or sequence<double>) threshold = 0;
     DOMHighResTimeStamp delay = 0;
     boolean trackVisibility = false;
diff --git a/third_party/blink/renderer/core/intersection_observer/intersection_observer_test.cc b/third_party/blink/renderer/core/intersection_observer/intersection_observer_test.cc
index ea0b57c..2e9b81c4 100644
--- a/third_party/blink/renderer/core/intersection_observer/intersection_observer_test.cc
+++ b/third_party/blink/renderer/core/intersection_observer/intersection_observer_test.cc
@@ -39,6 +39,128 @@
  public:
   IntersectionObserverTest()
       : ScopedIntersectionOptimizationForTest(GetParam()) {}
+
+ protected:
+  void TestScrollMargin(int scroll_margin,
+                        bool is_intersecting,
+                        double intersectionRatio) {
+    WebView().MainFrameViewWidget()->Resize(gfx::Size(200, 200));
+
+    SimRequest main_resource("https://example.com/", "text/html");
+    LoadURL("https://example.com/");
+    main_resource.Complete(R"HTML(
+    <style>
+    #scroller { width: 100px; height: 100px; overflow: scroll; }
+    #spacer { width: 50px; height: 110px; }
+    #target { width: 50px; height: 50px; }
+    </style>
+
+    <div id=scroller>
+      <div id=spacer></div>
+      <div id=target></div>
+    </div>
+  )HTML");
+
+    Compositor().BeginFrame();
+
+    Element* target = GetDocument().getElementById(AtomicString("target"));
+    ASSERT_TRUE(target);
+
+    TestIntersectionObserverDelegate* scroll_margin_delegate =
+        MakeGarbageCollected<TestIntersectionObserverDelegate>(GetDocument());
+
+    IntersectionObserver* scroll_margin_observer =
+        MakeGarbageCollected<IntersectionObserver>(
+            /* delegate */ *scroll_margin_delegate,
+            /* root */ nullptr,
+            /* margin */ Vector<Length>{Length::Fixed(10)},
+            /* scroll_margin */ Vector<Length>{Length::Fixed(scroll_margin)},
+            /* thresholds */ Vector<float>{std::numeric_limits<float>::min()},
+            /* semantics */ IntersectionObserver::kFractionOfTarget,
+            /* delay */ 0,
+            /* track_visibility */ false,
+            /* always_report_root_bounds */ false,
+            /* margin_target */ IntersectionObserver::kApplyMarginToRoot,
+            /* use_overflow_clip_edge */ false);
+
+    DummyExceptionStateForTesting exception_state;
+    scroll_margin_observer->observe(target, exception_state);
+    ASSERT_FALSE(exception_state.HadException());
+
+    Compositor().BeginFrame();
+    test::RunPendingTasks();
+    ASSERT_FALSE(Compositor().NeedsBeginFrame());
+
+    EXPECT_EQ(scroll_margin_delegate->CallCount(), 1);
+    EXPECT_EQ(scroll_margin_delegate->EntryCount(), 1);
+    EXPECT_EQ(is_intersecting,
+              scroll_margin_delegate->LastEntry()->isIntersecting());
+    EXPECT_NEAR(intersectionRatio,
+                scroll_margin_delegate->LastEntry()->intersectionRatio(),
+                0.001);
+  }
+
+  void TestScrollMarginNested(int scroll_margin,
+                              bool is_intersecting,
+                              double intersectionRatio) {
+    WebView().MainFrameViewWidget()->Resize(gfx::Size(200, 200));
+
+    SimRequest main_resource("https://example.com/", "text/html");
+    LoadURL("https://example.com/");
+    main_resource.Complete(R"HTML(
+    <style>
+    #scroller { width: 100px; height: 100px; overflow: scroll; }
+    #scroller2 { width: 130px; height: 130px; overflow: scroll; }
+    #spacer { width: 10px; height: 110px; }
+    #target { width: 50px; height: 50px; }
+    </style>
+
+    <div id=scroller2>
+      <div id=scroller>
+        <div id=spacer></div>
+        <div id=target></div>
+      </div>
+    </div>
+  )HTML");
+
+    Compositor().BeginFrame();
+
+    Element* target = GetDocument().getElementById(AtomicString("target"));
+    ASSERT_TRUE(target);
+
+    TestIntersectionObserverDelegate* scroll_margin_delegate =
+        MakeGarbageCollected<TestIntersectionObserverDelegate>(GetDocument());
+
+    IntersectionObserver* scroll_margin_observer =
+        MakeGarbageCollected<IntersectionObserver>(
+            /* delegate */ *scroll_margin_delegate,
+            /* root */ nullptr,
+            /* margin */ Vector<Length>{Length::Fixed(10)},
+            /* scroll_margin */ Vector<Length>{Length::Fixed(scroll_margin)},
+            /* thresholds */ Vector<float>{std::numeric_limits<float>::min()},
+            /* semantics */ IntersectionObserver::kFractionOfTarget,
+            /* delay */ 0,
+            /* track_visibility */ false,
+            /* always_report_root_bounds */ false,
+            /* margin_target */ IntersectionObserver::kApplyMarginToRoot,
+            /* use_overflow_clip_edge */ false);
+
+    DummyExceptionStateForTesting exception_state;
+    scroll_margin_observer->observe(target, exception_state);
+    ASSERT_FALSE(exception_state.HadException());
+
+    Compositor().BeginFrame();
+    test::RunPendingTasks();
+    ASSERT_FALSE(Compositor().NeedsBeginFrame());
+
+    EXPECT_EQ(scroll_margin_delegate->CallCount(), 1);
+    EXPECT_EQ(scroll_margin_delegate->EntryCount(), 1);
+    EXPECT_EQ(is_intersecting,
+              scroll_margin_delegate->LastEntry()->isIntersecting());
+    EXPECT_NEAR(intersectionRatio,
+                scroll_margin_delegate->LastEntry()->intersectionRatio(),
+                0.001);
+  }
 };
 
 class IntersectionObserverV2Test : public IntersectionObserverTest {
@@ -198,26 +320,42 @@
 
   TestIntersectionObserverDelegate* target_observer_delegate =
       MakeGarbageCollected<TestIntersectionObserverDelegate>(GetDocument());
+
   IntersectionObserver* target_observer =
       MakeGarbageCollected<IntersectionObserver>(
-          *target_observer_delegate, nullptr, Vector<Length>(),
-          Vector<float>{kExpectedFractionOfTarget / 2},
-          IntersectionObserver::kFractionOfTarget, 0, false, false,
-          IntersectionObserver::kApplyMarginToRoot,
+          /* delegate */ *target_observer_delegate,
+          /* root */ nullptr,
+          /* margin */ Vector<Length>(),
+          /* scroll_margin */ Vector<Length>{},
+          /* thresholds */ Vector<float>{kExpectedFractionOfTarget / 2},
+          /* semantics */ IntersectionObserver::kFractionOfTarget,
+          /* delay */ 0,
+          /* track_visibility */ false,
+          /* always_report_root_bounds */ false,
+          /* margin_target */ IntersectionObserver::kApplyMarginToRoot,
           /* use_overflow_clip_edge */ false);
+
   DummyExceptionStateForTesting exception_state;
   target_observer->observe(target, exception_state);
   ASSERT_FALSE(exception_state.HadException());
 
   TestIntersectionObserverDelegate* root_observer_delegate =
       MakeGarbageCollected<TestIntersectionObserverDelegate>(GetDocument());
+
   IntersectionObserver* root_observer =
       MakeGarbageCollected<IntersectionObserver>(
-          *root_observer_delegate, nullptr, Vector<Length>(),
-          Vector<float>{kExpectedFractionOfRoot / 2},
-          IntersectionObserver::kFractionOfRoot, 0, false, false,
-          IntersectionObserver::kApplyMarginToRoot,
+          /* delegate */ *root_observer_delegate,
+          /* root */ nullptr,
+          /* margin */ Vector<Length>(),
+          /* scroll_margin */ Vector<Length>{},
+          /* thresholds */ Vector<float>{kExpectedFractionOfRoot / 2},
+          /* semantics */ IntersectionObserver::kFractionOfRoot,
+          /* delay */ 0,
+          /* track_visibility */ false,
+          /* always_report_root_bounds */ false,
+          /* margin_target */ IntersectionObserver::kApplyMarginToRoot,
           /* use_overflow_clip_edge */ false);
+
   root_observer->observe(target, exception_state);
   ASSERT_FALSE(exception_state.HadException());
 
@@ -269,13 +407,21 @@
 
   TestIntersectionObserverDelegate* target_observer_delegate =
       MakeGarbageCollected<TestIntersectionObserverDelegate>(GetDocument());
+
   IntersectionObserver* target_observer =
       MakeGarbageCollected<IntersectionObserver>(
-          *target_observer_delegate, nullptr, Vector<Length>(),
-          Vector<float>{std::numeric_limits<float>::min()},
-          IntersectionObserver::kFractionOfTarget, 0, false, false,
-          IntersectionObserver::kApplyMarginToRoot,
+          /* delegate */ *target_observer_delegate,
+          /* root */ nullptr,
+          /* margin */ Vector<Length>(),
+          /* scroll_margin */ Vector<Length>{},
+          /* thresholds */ Vector<float>{std::numeric_limits<float>::min()},
+          /* semantics */ IntersectionObserver::kFractionOfTarget,
+          /* delay */ 0,
+          /* track_visibility */ false,
+          /* always_report_root_bounds */ false,
+          /* margin_target */ IntersectionObserver::kApplyMarginToRoot,
           /* use_overflow_clip_edge */ false);
+
   DummyExceptionStateForTesting exception_state;
   target_observer->observe(target, exception_state);
   ASSERT_FALSE(exception_state.HadException());
@@ -1838,10 +1984,20 @@
 
   TestIntersectionObserverDelegate* observer_delegate =
       MakeGarbageCollected<TestIntersectionObserverDelegate>(GetDocument());
+
   IntersectionObserver* observer = MakeGarbageCollected<IntersectionObserver>(
-      *observer_delegate, root, Vector<Length>{}, Vector<float>{1},
-      IntersectionObserver::kFractionOfRoot, 0, false, false,
-      IntersectionObserver::kApplyMarginToRoot, false);
+      /* delegate */ *observer_delegate,
+      /* root */ root,
+      /* margin */ Vector<Length>(),
+      /* scroll_margin */ Vector<Length>{},
+      /* thresholds */ Vector<float>{1},
+      /* semantics */ IntersectionObserver::kFractionOfRoot,
+      /* delay */ 0,
+      /* track_visibility */ false,
+      /* always_report_root_bounds */ false,
+      /* margin_target */ IntersectionObserver::kApplyMarginToRoot,
+      /* use_overflow_clip_edge */ false);
+
   DummyExceptionStateForTesting exception_state;
   observer->observe(target, exception_state);
   ASSERT_FALSE(exception_state.HadException());
@@ -2306,10 +2462,16 @@
       MakeGarbageCollected<TestIntersectionObserverDelegate>(GetDocument());
   IntersectionObserver* root_margin_observer =
       MakeGarbageCollected<IntersectionObserver>(
-          *root_margin_delegate, nullptr, Vector<Length>{Length::Fixed(10)},
-          Vector<float>{std::numeric_limits<float>::min()},
-          IntersectionObserver::kFractionOfTarget, 0, false, false,
-          IntersectionObserver::kApplyMarginToRoot,
+          /* delegate */ *root_margin_delegate,
+          /* root */ nullptr,
+          /* margin */ Vector<Length>{Length::Fixed(10)},
+          /* scroll_margin */ Vector<Length>{},
+          /* thresholds */ Vector<float>{std::numeric_limits<float>::min()},
+          /* semantics */ IntersectionObserver::kFractionOfTarget,
+          /* delay */ 0,
+          /* track_visibility */ false,
+          /* always_report_root_bounds */ false,
+          /* margin_target */ IntersectionObserver::kApplyMarginToRoot,
           /* use_overflow_clip_edge */ false);
 
   DummyExceptionStateForTesting exception_state;
@@ -2321,10 +2483,16 @@
   // Same parameters as above except that margin is applied to target.
   IntersectionObserver* target_margin_observer =
       MakeGarbageCollected<IntersectionObserver>(
-          *target_margin_delegate, nullptr, Vector<Length>{Length::Fixed(10)},
-          Vector<float>{std::numeric_limits<float>::min()},
-          IntersectionObserver::kFractionOfTarget, 0, false, false,
-          IntersectionObserver::kApplyMarginToTarget,
+          /* delegate */ *target_margin_delegate,
+          /* root */ nullptr,
+          /* margin */ Vector<Length>{Length::Fixed(10)},
+          /* scroll_margin */ Vector<Length>{},
+          /* thresholds */ Vector<float>{std::numeric_limits<float>::min()},
+          /* semantics */ IntersectionObserver::kFractionOfTarget,
+          /* delay */ 0,
+          /* track_visibility */ false,
+          /* always_report_root_bounds */ false,
+          /* margin_target */ IntersectionObserver::kApplyMarginToTarget,
           /* use_overflow_clip_edge */ false);
 
   target_margin_observer->observe(target, exception_state);
@@ -2376,10 +2544,16 @@
   // resolved against root, which would make it intersecting.
   IntersectionObserver* target_margin_observer =
       MakeGarbageCollected<IntersectionObserver>(
-          *target_margin_delegate, nullptr, Vector<Length>{Length::Percent(10)},
-          Vector<float>{std::numeric_limits<float>::min()},
-          IntersectionObserver::kFractionOfTarget, 0, false, false,
-          IntersectionObserver::kApplyMarginToTarget,
+          /* delegate */ *target_margin_delegate,
+          /* root */ nullptr,
+          /* margin */ Vector<Length>{Length::Percent(10)},
+          /* scroll_margin */ Vector<Length>{},
+          /* thresholds */ Vector<float>{std::numeric_limits<float>::min()},
+          /* semantics */ IntersectionObserver::kFractionOfTarget,
+          /* delay */ 0,
+          /* track_visibility */ false,
+          /* always_report_root_bounds */ false,
+          /* margin_target */ IntersectionObserver::kApplyMarginToTarget,
           /* use_overflow_clip_edge */ false);
 
   DummyExceptionStateForTesting exception_state;
@@ -2395,6 +2569,111 @@
   EXPECT_TRUE(target_margin_delegate->LastEntry()->isIntersecting());
 }
 
+TEST_P(IntersectionObserverTest, ScrollMarginIntersecting) {
+  // The scroller should not clip the content because the scroll margin is
+  // larger than the spacer and target should intersect.
+  TestScrollMargin(/* scroll_margin */ 20, /* is_intersecting */ true,
+                   /* intersectionRatio */ 0.2);
+}
+
+TEST_P(IntersectionObserverTest, ScrollMarginNotIntersecting) {
+  // The scroller should clip the content because the scroll margin is smaller
+  // than the spacer and target should not intersect.
+  TestScrollMargin(/* scroll_margin */ 9, /* is_intersecting */ false,
+                   /* intersectionRatio */ 0.0);
+}
+
+TEST_P(IntersectionObserverTest, NoScrollMargin) {
+  // The scroller should clip the content because the scroll margin is zero
+  // and target should not intersect.
+  TestScrollMargin(/* scroll_margin */ 0, /* is_intersecting */ false,
+                   /* intersectionRatio */ 0.0);
+}
+
+TEST_P(IntersectionObserverTest, ScrollMarginNestedIntersecting) {
+  // The scroller should not clip the content because the scroll margin is
+  // larger than the spacer and target should intersect.
+  TestScrollMarginNested(/* scroll_margin */ 20, /* is_intersecting */ true,
+                         /* intersectionRatio */ 0.2);
+}
+
+TEST_P(IntersectionObserverTest, ScrollMarginNestedNotIntersecting) {
+  // The scroller should clip the content because the scroll margin is smaller
+  // than the spacer and target should not intersect.
+  TestScrollMarginNested(/* scroll_margin */ 9, /* is_intersecting */ false,
+                         /* intersectionRatio */ 0.0);
+}
+
+TEST_P(IntersectionObserverTest, NoScrollMarginNested) {
+  // The scroller should clip the content because the scroll margin is zero
+  // and target should not intersect.
+  TestScrollMarginNested(/* scroll_margin */ 0, /* is_intersecting */ false,
+                         /* intersectionRatio */ 0.0);
+}
+
+TEST_P(IntersectionObserverTest, ScrollMarginIntersectingNonScrollingRoot) {
+  WebView().MainFrameViewWidget()->Resize(gfx::Size(200, 200));
+
+  SimRequest main_resource("https://example.com/", "text/html");
+  LoadURL("https://example.com/");
+  main_resource.Complete(R"HTML(
+    <style>
+    #scroller { width: 100px; height: 100px; overflow: scroll; }
+    #spacer { width: 50px; height: 110px; }
+    #root { height: 75; width: 75; }
+    #target { width: 50px; height: 50px; }
+    #spacer2 { width: 10px; height: 10px; }
+    </style>
+
+    <div id=scroller>
+      <div id=spacer></div>
+      <div id="root">
+        <div class=spacer2></div>
+        <div id=target></div>
+      </div>
+    </div>
+  )HTML");
+
+  Compositor().BeginFrame();
+
+  Element* target = GetDocument().getElementById(AtomicString("target"));
+  ASSERT_TRUE(target);
+
+  Element* root = GetDocument().getElementById(AtomicString("root"));
+  ASSERT_TRUE(root);
+
+  TestIntersectionObserverDelegate* scroll_margin_delegate =
+      MakeGarbageCollected<TestIntersectionObserverDelegate>(GetDocument());
+
+  IntersectionObserver* scroll_margin_observer =
+      MakeGarbageCollected<IntersectionObserver>(
+          /* delegate */ *scroll_margin_delegate,
+          /* root */ root,
+          /* margin */ Vector<Length>{Length::Fixed(10)},
+          /* scroll_margin */ Vector<Length>{Length::Fixed(10)},
+          /* thresholds */ Vector<float>{std::numeric_limits<float>::min()},
+          /* semantics */ IntersectionObserver::kFractionOfTarget,
+          /* delay */ 0,
+          /* track_visibility */ false,
+          /* always_report_root_bounds */ false,
+          /* margin_target */ IntersectionObserver::kApplyMarginToRoot,
+          /* use_overflow_clip_edge */ false);
+
+  DummyExceptionStateForTesting exception_state;
+  scroll_margin_observer->observe(target, exception_state);
+  ASSERT_FALSE(exception_state.HadException());
+
+  Compositor().BeginFrame();
+  test::RunPendingTasks();
+  ASSERT_FALSE(Compositor().NeedsBeginFrame());
+
+  EXPECT_EQ(scroll_margin_delegate->CallCount(), 1);
+  EXPECT_EQ(scroll_margin_delegate->EntryCount(), 1);
+  EXPECT_TRUE(scroll_margin_delegate->LastEntry()->isIntersecting());
+  EXPECT_NEAR(1.0, scroll_margin_delegate->LastEntry()->intersectionRatio(),
+              0.001);
+}
+
 TEST_P(IntersectionObserverTest, InlineRoot) {
   SimRequest main_resource("https://example.com/", "text/html");
   LoadURL("https://example.com/");
@@ -2427,4 +2706,97 @@
   EXPECT_FALSE(observer_delegate->LastEntry()->isIntersecting());
 }
 
+TEST_P(IntersectionObserverTest, ParseMarginExtraText) {
+  IntersectionObserverInit* observer_init = IntersectionObserverInit::Create();
+  observer_init->setRootMargin("1px 2px 3px 4px ExtraText");
+
+  DummyExceptionStateForTesting exception_state;
+
+  TestIntersectionObserverDelegate* observer_delegate =
+      MakeGarbageCollected<TestIntersectionObserverDelegate>(GetDocument());
+
+  IntersectionObserver::Create(observer_init, *observer_delegate,
+                               exception_state);
+  ASSERT_TRUE(exception_state.HadException());
+  EXPECT_EQ(exception_state.Message(),
+            "Extra text found at the end of rootMargin.");
+}
+
+TEST_P(IntersectionObserverTest, ParseMarginUnsupportedUnitType) {
+  IntersectionObserverInit* observer_init = IntersectionObserverInit::Create();
+  observer_init->setRootMargin("7x");
+
+  DummyExceptionStateForTesting exception_state;
+
+  TestIntersectionObserverDelegate* observer_delegate =
+      MakeGarbageCollected<TestIntersectionObserverDelegate>(GetDocument());
+
+  IntersectionObserver::Create(observer_init, *observer_delegate,
+                               exception_state);
+  ASSERT_TRUE(exception_state.HadException());
+  EXPECT_EQ(exception_state.Message(),
+            "rootMargin must be specified in pixels or percent.");
+}
+
+TEST_P(IntersectionObserverTest, ParseMarginUnsupportedUnit) {
+  IntersectionObserverInit* observer_init = IntersectionObserverInit::Create();
+  observer_init->setRootMargin("7");
+
+  DummyExceptionStateForTesting exception_state;
+
+  TestIntersectionObserverDelegate* observer_delegate =
+      MakeGarbageCollected<TestIntersectionObserverDelegate>(GetDocument());
+
+  IntersectionObserver::Create(observer_init, *observer_delegate,
+                               exception_state);
+  ASSERT_TRUE(exception_state.HadException());
+  EXPECT_EQ(exception_state.Message(),
+            "rootMargin must be specified in pixels or percent.");
+}
+
+TEST_P(IntersectionObserverTest, RootMarginString) {
+  IntersectionObserverInit* observer_init = IntersectionObserverInit::Create();
+  observer_init->setRootMargin("7px");
+
+  DummyExceptionStateForTesting exception_state;
+
+  TestIntersectionObserverDelegate* observer_delegate =
+      MakeGarbageCollected<TestIntersectionObserverDelegate>(GetDocument());
+
+  IntersectionObserver* observer = IntersectionObserver::Create(
+      observer_init, *observer_delegate, exception_state);
+  ASSERT_FALSE(exception_state.HadException());
+  EXPECT_EQ(observer->rootMargin(), "7px 7px 7px 7px");
+}
+
+TEST_P(IntersectionObserverTest, RootMarginPercentString) {
+  IntersectionObserverInit* observer_init = IntersectionObserverInit::Create();
+  observer_init->setRootMargin("7%");
+
+  DummyExceptionStateForTesting exception_state;
+
+  TestIntersectionObserverDelegate* observer_delegate =
+      MakeGarbageCollected<TestIntersectionObserverDelegate>(GetDocument());
+
+  IntersectionObserver* observer = IntersectionObserver::Create(
+      observer_init, *observer_delegate, exception_state);
+  ASSERT_FALSE(exception_state.HadException());
+  EXPECT_EQ(observer->rootMargin(), "7% 7% 7% 7%");
+}
+
+TEST_P(IntersectionObserverTest, ScrollMarginEmptyString) {
+  IntersectionObserverInit* observer_init = IntersectionObserverInit::Create();
+  observer_init->setScrollMargin("");
+
+  DummyExceptionStateForTesting exception_state;
+
+  TestIntersectionObserverDelegate* observer_delegate =
+      MakeGarbageCollected<TestIntersectionObserverDelegate>(GetDocument());
+
+  IntersectionObserver* observer = IntersectionObserver::Create(
+      observer_init, *observer_delegate, exception_state);
+  ASSERT_FALSE(exception_state.HadException());
+  EXPECT_EQ(observer->scrollMargin(), "0px 0px 0px 0px");
+}
+
 }  // namespace blink
diff --git a/third_party/blink/renderer/core/layout/layout_object.cc b/third_party/blink/renderer/core/layout/layout_object.cc
index 5fe8adf..280a466 100644
--- a/third_party/blink/renderer/core/layout/layout_object.cc
+++ b/third_party/blink/renderer/core/layout/layout_object.cc
@@ -2150,8 +2150,8 @@
 
   AncestorSkipInfo skip_info(ancestor);
   PropertyTreeState container_properties = PropertyTreeState::Uninitialized();
-  const LayoutObject* property_container =
-      GetPropertyContainer(&skip_info, &container_properties);
+  const LayoutObject* property_container = GetPropertyContainer(
+      &skip_info, &container_properties, visual_rect_flags);
   if (!property_container)
     return false;
 
@@ -2227,7 +2227,8 @@
 
 const LayoutObject* LayoutObject::GetPropertyContainer(
     AncestorSkipInfo* skip_info,
-    PropertyTreeStateOrAlias* container_properties) const {
+    PropertyTreeStateOrAlias* container_properties,
+    VisualRectFlags visual_rect_flags) const {
   NOT_DESTROYED();
   const LayoutObject* property_container = this;
   while (!property_container->FirstFragment().HasLocalBorderBoxProperties()) {
@@ -2240,11 +2241,21 @@
   if (container_properties) {
     if (property_container == this) {
       *container_properties = FirstFragment().LocalBorderBoxProperties();
+
+      if (visual_rect_flags & kIgnoreLocalClipPath) {
+        if (auto* properties =
+                property_container->FirstFragment().PaintProperties()) {
+          if (auto* clip_path_clip = properties->ClipPathClip()) {
+            container_properties->SetClip(*clip_path_clip->Parent());
+          }
+        }
+      }
     } else {
       *container_properties =
           property_container->FirstFragment().ContentsProperties();
     }
   }
+
   return property_container;
 }
 
diff --git a/third_party/blink/renderer/core/layout/layout_object.h b/third_party/blink/renderer/core/layout/layout_object.h
index c1545d4..8c25ddb8 100644
--- a/third_party/blink/renderer/core/layout/layout_object.h
+++ b/third_party/blink/renderer/core/layout/layout_object.h
@@ -98,6 +98,7 @@
   // When mapping to absolute coordinates and the main frame is remote, don't
   // apply the main frame root scroller's overflow clip.
   kDontApplyMainFrameOverflowClip = 1 << 2,
+  kIgnoreLocalClipPath = 1 << 3,
 };
 
 enum CursorDirective { kSetCursorBasedOnStyle, kSetCursor, kDoNotSetCursor };
@@ -2652,7 +2653,8 @@
   // from the coordinate system of the property container.
   const LayoutObject* GetPropertyContainer(
       AncestorSkipInfo*,
-      PropertyTreeStateOrAlias* = nullptr) const;
+      PropertyTreeStateOrAlias* = nullptr,
+      VisualRectFlags = kDefaultVisualRectFlags) const;
 
   // Do a rect-based hit test with this object as the stop node.
   HitTestResult HitTestForOcclusion(const PhysicalRect&) const;
diff --git a/third_party/blink/renderer/core/paint/html_canvas_painter_test.cc b/third_party/blink/renderer/core/paint/html_canvas_painter_test.cc
index 0856c933..5fc9216 100644
--- a/third_party/blink/renderer/core/paint/html_canvas_painter_test.cc
+++ b/third_party/blink/renderer/core/paint/html_canvas_painter_test.cc
@@ -67,7 +67,7 @@
       element->GetCanvasRenderingContext("2d", attributes);
   gfx::Size size(300, 200);
   std::unique_ptr<Canvas2DLayerBridge> bridge =
-      std::make_unique<Canvas2DLayerBridge>(kNonOpaque);
+      std::make_unique<Canvas2DLayerBridge>();
   element->SetPreferred2DRasterMode(RasterModeHint::kPreferGPU);
   element->SetResourceProviderForTesting(nullptr, std::move(bridge), size);
   ASSERT_EQ(context, element->RenderingContext());
diff --git a/third_party/blink/renderer/core/style/computed_style.h b/third_party/blink/renderer/core/style/computed_style.h
index 8af82f72..47a19997 100644
--- a/third_party/blink/renderer/core/style/computed_style.h
+++ b/third_party/blink/renderer/core/style/computed_style.h
@@ -1519,7 +1519,8 @@
 
   // Motion utility functions.
   bool HasOffset() const {
-    return !OffsetPosition().X().IsAuto() || OffsetPath();
+    return (!OffsetPosition().X().IsAuto() && !OffsetPosition().X().IsNone()) ||
+           OffsetPath();
   }
 
   // Direction utility functions.
diff --git a/third_party/blink/renderer/modules/breakout_box/pushable_media_stream_video_source.cc b/third_party/blink/renderer/modules/breakout_box/pushable_media_stream_video_source.cc
index 663323a..8397d43 100644
--- a/third_party/blink/renderer/modules/breakout_box/pushable_media_stream_video_source.cc
+++ b/third_party/blink/renderer/modules/breakout_box/pushable_media_stream_video_source.cc
@@ -162,7 +162,9 @@
 void PushableMediaStreamVideoSource::StartSourceImpl(
     VideoCaptureDeliverFrameCB frame_callback,
     EncodedVideoFrameCB encoded_frame_callback,
-    VideoCaptureCropVersionCB crop_version_callback) {
+    VideoCaptureCropVersionCB crop_version_callback,
+    // The pushable media stream does not report frame drops.
+    VideoCaptureNotifyFrameDroppedCB) {
   DCHECK(GetTaskRunner()->BelongsToCurrentThread());
   DCHECK(frame_callback);
   broker_->OnSourceStarted(std::move(frame_callback));
diff --git a/third_party/blink/renderer/modules/breakout_box/pushable_media_stream_video_source.h b/third_party/blink/renderer/modules/breakout_box/pushable_media_stream_video_source.h
index c8999ca..91db13e 100644
--- a/third_party/blink/renderer/modules/breakout_box/pushable_media_stream_video_source.h
+++ b/third_party/blink/renderer/modules/breakout_box/pushable_media_stream_video_source.h
@@ -100,7 +100,8 @@
   void StartSourceImpl(
       VideoCaptureDeliverFrameCB frame_callback,
       EncodedVideoFrameCB encoded_frame_callback,
-      VideoCaptureCropVersionCB crop_version_callback) override;
+      VideoCaptureCropVersionCB crop_version_callback,
+      VideoCaptureNotifyFrameDroppedCB frame_dropped_callback) override;
   void StopSourceImpl() override;
   base::WeakPtr<MediaStreamVideoSource> GetWeakPtr() override;
   void OnSourceCanDiscardAlpha(bool can_discard_alpha) override;
diff --git a/third_party/blink/renderer/modules/canvas/canvas2d/canvas_rendering_context_2d.cc b/third_party/blink/renderer/modules/canvas/canvas2d/canvas_rendering_context_2d.cc
index 13040c73..738e9d44 100644
--- a/third_party/blink/renderer/modules/canvas/canvas2d/canvas_rendering_context_2d.cc
+++ b/third_party/blink/renderer/modules/canvas/canvas2d/canvas_rendering_context_2d.cc
@@ -653,7 +653,10 @@
 }
 
 cc::Layer* CanvasRenderingContext2D::CcLayer() const {
-  return IsPaintable() ? canvas()->GetCanvas2DLayerBridge()->Layer() : nullptr;
+  if (!IsPaintable()) {
+    return nullptr;
+  }
+  return canvas()->GetOrCreateCcLayerIfNeeded();
 }
 
 CanvasRenderingContext2DSettings*
@@ -796,7 +799,7 @@
 
 bool CanvasRenderingContext2D::IsCanvas2DBufferValid() const {
   if (IsPaintable()) {
-    return canvas()->GetCanvas2DLayerBridge()->IsValid();
+    return canvas()->IsResourceValid();
   }
   return false;
 }
diff --git a/third_party/blink/renderer/modules/canvas/canvas2d/canvas_rendering_context_2d_test.cc b/third_party/blink/renderer/modules/canvas/canvas2d/canvas_rendering_context_2d_test.cc
index e35445e..32e19ef 100644
--- a/third_party/blink/renderer/modules/canvas/canvas2d/canvas_rendering_context_2d_test.cc
+++ b/third_party/blink/renderer/modules/canvas/canvas2d/canvas_rendering_context_2d_test.cc
@@ -330,9 +330,7 @@
 
 class FakeCanvas2DLayerBridge : public Canvas2DLayerBridge {
  public:
-  FakeCanvas2DLayerBridge(OpacityMode opacity_mode)
-      : Canvas2DLayerBridge(opacity_mode) {}
-  ~FakeCanvas2DLayerBridge() override = default;
+  FakeCanvas2DLayerBridge() {}
 
   MOCK_METHOD1(DrawFullImage, void(const PaintImage& image));
   MOCK_METHOD1(DidRestoreCanvasMatrixClipStack, void(cc::PaintCanvas*));
@@ -376,9 +374,7 @@
 
 class MockImageBufferSurfaceForOverwriteTesting : public Canvas2DLayerBridge {
  public:
-  MockImageBufferSurfaceForOverwriteTesting(OpacityMode opacity_mode)
-      : Canvas2DLayerBridge(opacity_mode) {}
-  ~MockImageBufferSurfaceForOverwriteTesting() override = default;
+  MockImageBufferSurfaceForOverwriteTesting() {}
   MOCK_METHOD0(WillOverwriteCanvas, void());
 };
 
@@ -411,7 +407,7 @@
   CreateContext(kNonOpaque);
   gfx::Size size(10, 10);
   std::unique_ptr<MockImageBufferSurfaceForOverwriteTesting> mock_surface =
-      std::make_unique<MockImageBufferSurfaceForOverwriteTesting>(kNonOpaque);
+      std::make_unique<MockImageBufferSurfaceForOverwriteTesting>();
   surface_ptr_ = mock_surface.get();
   CanvasElement().SetResourceProviderForTesting(nullptr,
                                                 std::move(mock_surface), size);
@@ -802,7 +798,7 @@
           SkImageInfo::MakeN32Premul(size.width(), size.height()),
           RasterModeHint::kPreferGPU);
   std::unique_ptr<FakeCanvas2DLayerBridge> fake_2d_layer_bridge =
-      std::make_unique<FakeCanvas2DLayerBridge>(kNonOpaque);
+      std::make_unique<FakeCanvas2DLayerBridge>();
   FakeCanvas2DLayerBridge* fake_2d_layer_bridge_ptr =
       fake_2d_layer_bridge.get();
   CanvasElement().SetPreferred2DRasterMode(RasterModeHint::kPreferGPU);
@@ -827,7 +823,7 @@
   anotherCanvas->GetCanvasRenderingContext("2d", attributes);
   gfx::Size size2(10, 5);
   std::unique_ptr<FakeCanvas2DLayerBridge> fake_2d_layer_bridge2 =
-      std::make_unique<FakeCanvas2DLayerBridge>(kNonOpaque);
+      std::make_unique<FakeCanvas2DLayerBridge>();
   std::unique_ptr<FakeCanvasResourceProvider> fake_resource_provider2 =
       std::make_unique<FakeCanvasResourceProvider>(
           SkImageInfo::MakeN32Premul(size2.width(), size2.height()),
@@ -876,8 +872,7 @@
   // CanvasResourceProvider) will be changed too, causing bad regressions.
   CreateContext(kNonOpaque);
   gfx::Size size(10, 10);
-  auto fake_accelerate_surface =
-      std::make_unique<FakeCanvas2DLayerBridge>(kNonOpaque);
+  auto fake_accelerate_surface = std::make_unique<FakeCanvas2DLayerBridge>();
   CanvasElement().SetPreferred2DRasterMode(RasterModeHint::kPreferGPU);
   CanvasElement().SetResourceProviderForTesting(
       nullptr, std::move(fake_accelerate_surface), size);
@@ -891,8 +886,7 @@
   CreateContext(kNonOpaque);
 
   gfx::Size size(10, 10);
-  auto fake_accelerate_surface =
-      std::make_unique<FakeCanvas2DLayerBridge>(kNonOpaque);
+  auto fake_accelerate_surface = std::make_unique<FakeCanvas2DLayerBridge>();
   CanvasElement().SetPreferred2DRasterMode(RasterModeHint::kPreferGPU);
   CanvasElement().SetResourceProviderForTesting(
       nullptr, std::move(fake_accelerate_surface), size);
@@ -918,15 +912,13 @@
 
   CreateContext(kNonOpaque);
   gfx::Size size(10, 10);
-  auto fake_accelerate_surface =
-      std::make_unique<FakeCanvas2DLayerBridge>(kNonOpaque);
+  auto fake_accelerate_surface = std::make_unique<FakeCanvas2DLayerBridge>();
   CanvasElement().SetPreferred2DRasterMode(RasterModeHint::kPreferGPU);
   CanvasElement().SetResourceProviderForTesting(
       nullptr, std::move(fake_accelerate_surface), size);
 
   FakeCanvasResourceHost host(size);
-  auto fake_deaccelerate_surface =
-      std::make_unique<FakeCanvas2DLayerBridge>(kNonOpaque);
+  auto fake_deaccelerate_surface = std::make_unique<FakeCanvas2DLayerBridge>();
   host.SetPreferred2DRasterMode(RasterModeHint::kPreferCPU);
   fake_deaccelerate_surface->SetCanvasResourceHost(&host);
 
@@ -1273,8 +1265,7 @@
   base::test::ScopedFeatureList feature_list_;
   CreateContext(kNonOpaque, kNormalLatency);
   gfx::Size size(10, 10);
-  auto fake_accelerate_surface =
-      std::make_unique<FakeCanvas2DLayerBridge>(kNonOpaque);
+  auto fake_accelerate_surface = std::make_unique<FakeCanvas2DLayerBridge>();
   CanvasElement().SetPreferred2DRasterMode(RasterModeHint::kPreferGPU);
   CanvasElement().SetResourceProviderForTesting(
       nullptr, std::move(fake_accelerate_surface), size);
@@ -1292,8 +1283,7 @@
 TEST_P(CanvasRenderingContext2DTest, AutoFlush) {
   CreateContext(kNonOpaque);
   gfx::Size size(10, 10);
-  auto fake_accelerate_surface =
-      std::make_unique<FakeCanvas2DLayerBridge>(kNonOpaque);
+  auto fake_accelerate_surface = std::make_unique<FakeCanvas2DLayerBridge>();
   CanvasElement().SetPreferred2DRasterMode(RasterModeHint::kPreferGPU);
   CanvasElement().SetResourceProviderForTesting(
       nullptr, std::move(fake_accelerate_surface), size);
@@ -1317,8 +1307,7 @@
 TEST_P(CanvasRenderingContext2DTest, AutoFlushPinnedImages) {
   CreateContext(kNonOpaque);
   gfx::Size size(10, 10);
-  auto fake_accelerate_surface =
-      std::make_unique<FakeCanvas2DLayerBridge>(kNonOpaque);
+  auto fake_accelerate_surface = std::make_unique<FakeCanvas2DLayerBridge>();
   CanvasElement().SetPreferred2DRasterMode(RasterModeHint::kPreferGPU);
   CanvasElement().SetResourceProviderForTesting(
       nullptr, std::move(fake_accelerate_surface), size);
@@ -1356,8 +1345,7 @@
 TEST_P(CanvasRenderingContext2DTest, OverdrawResetsPinnedImageBytes) {
   CreateContext(kNonOpaque);
   gfx::Size size(10, 10);
-  auto fake_accelerate_surface =
-      std::make_unique<FakeCanvas2DLayerBridge>(kNonOpaque);
+  auto fake_accelerate_surface = std::make_unique<FakeCanvas2DLayerBridge>();
   CanvasElement().SetPreferred2DRasterMode(RasterModeHint::kPreferGPU);
   CanvasElement().SetResourceProviderForTesting(
       nullptr, std::move(fake_accelerate_surface), size);
@@ -1383,8 +1371,7 @@
 TEST_P(CanvasRenderingContext2DTest, AutoFlushSameImage) {
   CreateContext(kNonOpaque);
   gfx::Size size(10, 10);
-  auto fake_accelerate_surface =
-      std::make_unique<FakeCanvas2DLayerBridge>(kNonOpaque);
+  auto fake_accelerate_surface = std::make_unique<FakeCanvas2DLayerBridge>();
   CanvasElement().SetPreferred2DRasterMode(RasterModeHint::kPreferGPU);
   CanvasElement().SetResourceProviderForTesting(
       nullptr, std::move(fake_accelerate_surface), size);
@@ -1412,8 +1399,7 @@
   ScopedCanvas2dLayersForTest layer_feature(/*enabled=*/true);
   CreateContext(kNonOpaque);
   gfx::Size size(10, 10);
-  auto fake_accelerate_surface =
-      std::make_unique<FakeCanvas2DLayerBridge>(kNonOpaque);
+  auto fake_accelerate_surface = std::make_unique<FakeCanvas2DLayerBridge>();
   CanvasElement().SetPreferred2DRasterMode(RasterModeHint::kPreferGPU);
   CanvasElement().SetResourceProviderForTesting(
       nullptr, std::move(fake_accelerate_surface), size);
@@ -1467,8 +1453,7 @@
       kNonOpaque, kNormalLatency,
       CanvasContextCreationAttributesCore::WillReadFrequently::kFalse);
   gfx::Size size(10, 10);
-  auto fake_accelerate_surface =
-      std::make_unique<FakeCanvas2DLayerBridge>(kNonOpaque);
+  auto fake_accelerate_surface = std::make_unique<FakeCanvas2DLayerBridge>();
   CanvasElement().SetPreferred2DRasterMode(RasterModeHint::kPreferGPU);
   CanvasElement().SetResourceProviderForTesting(
       nullptr, std::move(fake_accelerate_surface), size);
@@ -1489,7 +1474,7 @@
   CreateContext(kNonOpaque);
   gfx::Size size(300, 300);
   std::unique_ptr<Canvas2DLayerBridge> bridge =
-      std::make_unique<Canvas2DLayerBridge>(kNonOpaque);
+      std::make_unique<Canvas2DLayerBridge>();
   CanvasElement().SetPreferred2DRasterMode(RasterModeHint::kPreferGPU);
   CanvasElement().SetResourceProviderForTesting(nullptr, std::move(bridge),
                                                 size);
@@ -1543,7 +1528,7 @@
   CreateContext(kNonOpaque);
   gfx::Size size(300, 300);
   std::unique_ptr<Canvas2DLayerBridge> bridge =
-      std::make_unique<Canvas2DLayerBridge>(kNonOpaque);
+      std::make_unique<Canvas2DLayerBridge>();
   CanvasElement().SetPreferred2DRasterMode(RasterModeHint::kPreferGPU);
   CanvasElement().SetResourceProviderForTesting(nullptr, std::move(bridge),
                                                 size);
diff --git a/third_party/blink/renderer/modules/credentialmanagement/BUILD.gn b/third_party/blink/renderer/modules/credentialmanagement/BUILD.gn
index c96c2d4..32e65e14a 100644
--- a/third_party/blink/renderer/modules/credentialmanagement/BUILD.gn
+++ b/third_party/blink/renderer/modules/credentialmanagement/BUILD.gn
@@ -28,6 +28,8 @@
     "identity_provider.h",
     "json.cc",
     "json.h",
+    "navigator_login.cc",
+    "navigator_login.h",
     "otp_credential.cc",
     "otp_credential.h",
     "password_credential.cc",
diff --git a/third_party/blink/renderer/modules/credentialmanagement/identity_provider.cc b/third_party/blink/renderer/modules/credentialmanagement/identity_provider.cc
index 3260cb25..05cab6eb 100644
--- a/third_party/blink/renderer/modules/credentialmanagement/identity_provider.cc
+++ b/third_party/blink/renderer/modules/credentialmanagement/identity_provider.cc
@@ -120,26 +120,6 @@
   return promise;
 }
 
-void IdentityProvider::login(ScriptState* script_state) {
-  // TODO(https://crbug.com/1382193): Determine if we should add an origin
-  // parameter.
-  auto* context = ExecutionContext::From(script_state);
-  auto* request =
-      CredentialManagerProxy::From(script_state)->FederatedAuthRequest();
-  request->SetIdpSigninStatus(context->GetSecurityOrigin(),
-                              mojom::blink::IdpSigninStatus::kSignedIn);
-}
-
-void IdentityProvider::logout(ScriptState* script_state) {
-  // TODO(https://crbug.com/1382193): Determine if we should add an origin
-  // parameter.
-  auto* context = ExecutionContext::From(script_state);
-  auto* request =
-      CredentialManagerProxy::From(script_state)->FederatedAuthRequest();
-  request->SetIdpSigninStatus(context->GetSecurityOrigin(),
-                              mojom::blink::IdpSigninStatus::kSignedOut);
-}
-
 void IdentityProvider::close(ScriptState* script_state) {
   auto* request =
       CredentialManagerProxy::From(script_state)->FederatedAuthRequest();
diff --git a/third_party/blink/renderer/modules/credentialmanagement/identity_provider.h b/third_party/blink/renderer/modules/credentialmanagement/identity_provider.h
index 80cfe5c..4e05088 100644
--- a/third_party/blink/renderer/modules/credentialmanagement/identity_provider.h
+++ b/third_party/blink/renderer/modules/credentialmanagement/identity_provider.h
@@ -22,8 +22,6 @@
                                    const blink::IdentityProviderConfig*,
                                    ExceptionState&);
 
-  static void login(ScriptState*);
-  static void logout(ScriptState*);
   static void close(ScriptState*);
   static ScriptPromise registerIdentityProvider(ScriptState*, const String&);
   static ScriptPromise unregisterIdentityProvider(ScriptState*, const String&);
diff --git a/third_party/blink/renderer/modules/credentialmanagement/identity_provider.idl b/third_party/blink/renderer/modules/credentialmanagement/identity_provider.idl
index 4bb03a3..d46be38 100644
--- a/third_party/blink/renderer/modules/credentialmanagement/identity_provider.idl
+++ b/third_party/blink/renderer/modules/credentialmanagement/identity_provider.idl
@@ -19,10 +19,6 @@
     [CallWith=ScriptState, RaisesException, MeasureAs=FedCmUserInfo]
     static Promise<sequence<IdentityUserInfo>> getUserInfo(IdentityProviderConfig config);
 
-    [RuntimeEnabled=FedCmIdpSigninStatus, CallWith=ScriptState, MeasureAs=FedCmIdpSigninStatusJsApi]
-    static void login();
-    [RuntimeEnabled=FedCmIdpSigninStatus, CallWith=ScriptState, MeasureAs=FedCmIdpSigninStatusJsApi]
-    static void logout();
     [RuntimeEnabled=FedCmIdpSigninStatus, CallWith=ScriptState]
     static void close();
 
diff --git a/third_party/blink/renderer/modules/credentialmanagement/navigator_login.cc b/third_party/blink/renderer/modules/credentialmanagement/navigator_login.cc
new file mode 100644
index 0000000..ee484f3
--- /dev/null
+++ b/third_party/blink/renderer/modules/credentialmanagement/navigator_login.cc
@@ -0,0 +1,59 @@
+// 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 "third_party/blink/renderer/modules/credentialmanagement/navigator_login.h"
+
+#include "third_party/blink/public/mojom/webid/federated_auth_request.mojom-blink.h"
+#include "third_party/blink/public/platform/platform.h"
+#include "third_party/blink/renderer/bindings/modules/v8/v8_login_status.h"
+#include "third_party/blink/renderer/core/execution_context/execution_context.h"
+#include "third_party/blink/renderer/core/frame/navigator.h"
+#include "third_party/blink/renderer/modules/credentialmanagement/credential_manager_proxy.h"
+#include "third_party/blink/renderer/modules/credentialmanagement/credential_manager_type_converters.h"
+#include "third_party/blink/renderer/platform/bindings/script_state.h"
+
+namespace blink {
+
+const char NavigatorLogin::kSupplementName[] = "NavigatorLogin";
+
+NavigatorLogin* NavigatorLogin::login(Navigator& navigator) {
+  NavigatorLogin* supplement =
+      Supplement<Navigator>::From<NavigatorLogin>(navigator);
+  if (!supplement) {
+    supplement = MakeGarbageCollected<NavigatorLogin>(navigator);
+    ProvideTo(navigator, supplement);
+  }
+  return supplement;
+}
+
+NavigatorLogin::NavigatorLogin(Navigator& navigator)
+    : Supplement<Navigator>(navigator) {}
+
+ScriptPromise NavigatorLogin::setStatus(ScriptState* script_state,
+                                        const V8LoginStatus& v8_status) {
+  // TODO(https://crbug.com/1382193): Determine if we should add an origin
+  // parameter.
+  auto* context = ExecutionContext::From(script_state);
+  auto* request =
+      CredentialManagerProxy::From(script_state)->FederatedAuthRequest();
+
+  mojom::blink::IdpSigninStatus status;
+  switch (v8_status.AsEnum()) {
+    case V8LoginStatus::Enum::kLoggedIn:
+      status = mojom::blink::IdpSigninStatus::kSignedIn;
+      break;
+    case V8LoginStatus::Enum::kLoggedOut:
+      status = mojom::blink::IdpSigninStatus::kSignedOut;
+      break;
+  }
+  request->SetIdpSigninStatus(context->GetSecurityOrigin(), status);
+  return ScriptPromise();
+}
+
+void NavigatorLogin::Trace(Visitor* visitor) const {
+  ScriptWrappable::Trace(visitor);
+  Supplement<Navigator>::Trace(visitor);
+}
+
+}  // namespace blink
diff --git a/third_party/blink/renderer/modules/credentialmanagement/navigator_login.h b/third_party/blink/renderer/modules/credentialmanagement/navigator_login.h
new file mode 100644
index 0000000..4629e5dc
--- /dev/null
+++ b/third_party/blink/renderer/modules/credentialmanagement/navigator_login.h
@@ -0,0 +1,36 @@
+// Copyright 2023 The Chromium Authors
+// Use of this source code is governed by a BSD-style license that can be
+// found in the LICENSE file.
+
+#ifndef THIRD_PARTY_BLINK_RENDERER_MODULES_CREDENTIALMANAGEMENT_NAVIGATOR_LOGIN_H_
+#define THIRD_PARTY_BLINK_RENDERER_MODULES_CREDENTIALMANAGEMENT_NAVIGATOR_LOGIN_H_
+
+#include "third_party/blink/renderer/bindings/core/v8/script_promise.h"
+#include "third_party/blink/renderer/modules/modules_export.h"
+#include "third_party/blink/renderer/platform/bindings/script_wrappable.h"
+#include "third_party/blink/renderer/platform/supplementable.h"
+
+namespace blink {
+
+class Navigator;
+class V8LoginStatus;
+
+// Methods to let websites tell the browser about their login status.
+class MODULES_EXPORT NavigatorLogin : public ScriptWrappable,
+                                      public Supplement<Navigator> {
+  DEFINE_WRAPPERTYPEINFO();
+
+ public:
+  static const char kSupplementName[];
+  static NavigatorLogin* login(Navigator&);
+  explicit NavigatorLogin(Navigator&);
+
+  ScriptPromise setStatus(ScriptState* script_state,
+                          const V8LoginStatus& status);
+
+  void Trace(Visitor*) const override;
+};
+
+}  // namespace blink
+
+#endif  // THIRD_PARTY_BLINK_RENDERER_MODULES_CREDENTIALMANAGEMENT_NAVIGATOR_LOGIN_H_
diff --git a/third_party/blink/renderer/modules/credentialmanagement/navigator_login.idl b/third_party/blink/renderer/modules/credentialmanagement/navigator_login.idl
new file mode 100644
index 0000000..04a05ab
--- /dev/null
+++ b/third_party/blink/renderer/modules/credentialmanagement/navigator_login.idl
@@ -0,0 +1,28 @@
+// Copyright 2023 The Chromium Authors
+// Use of this source code is governed by a BSD-style license that can be
+// found in the LICENSE file.
+
+// https://github.com/fedidcg/login-status
+
+
+enum LoginStatus {
+  "logged-in",
+  "logged-out",
+};
+
+[
+    ImplementedAs=NavigatorLogin
+]
+partial interface Navigator {
+  [SecureContext, RuntimeEnabled=FedCmIdpSigninStatus] readonly attribute NavigatorLogin login;
+};
+
+[
+    Exposed=Window,
+    SecureContext,
+    RuntimeEnabled=FedCmIdpSigninStatus
+]
+interface NavigatorLogin {
+    [CallWith=ScriptState, MeasureAs=FedCmIdpSigninStatusJsApi]
+    Promise<void> setStatus(LoginStatus status);
+};
diff --git a/third_party/blink/renderer/modules/mediacapturefromelement/canvas_capture_handler.cc b/third_party/blink/renderer/modules/mediacapturefromelement/canvas_capture_handler.cc
index dc4f2743..b62d2183 100644
--- a/third_party/blink/renderer/modules/mediacapturefromelement/canvas_capture_handler.cc
+++ b/third_party/blink/renderer/modules/mediacapturefromelement/canvas_capture_handler.cc
@@ -64,6 +64,8 @@
   void StartCapture(const media::VideoCaptureParams& params,
                     const blink::VideoCaptureDeliverFrameCB& frame_callback,
                     const VideoCaptureCropVersionCB& crop_version_callback,
+                    // Canvas capture does not report frame drops.
+                    const VideoCaptureNotifyFrameDroppedCB&,
                     const RunningCallback& running_callback) override {
     DCHECK_CALLED_ON_VALID_THREAD(main_render_thread_checker_);
     if (canvas_handler_.get()) {
diff --git a/third_party/blink/renderer/modules/mediacapturefromelement/canvas_capture_handler_unittest.cc b/third_party/blink/renderer/modules/mediacapturefromelement/canvas_capture_handler_unittest.cc
index 1891b628..4940523 100644
--- a/third_party/blink/renderer/modules/mediacapturefromelement/canvas_capture_handler_unittest.cc
+++ b/third_party/blink/renderer/modules/mediacapturefromelement/canvas_capture_handler_unittest.cc
@@ -219,6 +219,7 @@
       base::BindRepeating(&CanvasCaptureHandlerTest::OnDeliverFrame,
                           base::Unretained(this)),
       /*crop_version_callback=*/base::DoNothing(),
+      /*frame_dropped_callback=*/base::DoNothing(),
       base::BindRepeating(&CanvasCaptureHandlerTest::OnRunning,
                           base::Unretained(this)));
   copier_->Convert(GenerateTestImage(testing::get<0>(GetParam()),
@@ -251,6 +252,7 @@
       base::BindRepeating(&CanvasCaptureHandlerTest::OnVerifyDeliveredFrame,
                           base::Unretained(this), opaque_frame, width, height),
       /*crop_version_callback=*/base::DoNothing(),
+      /*frame_dropped_callback=*/base::DoNothing(),
       base::BindRepeating(&CanvasCaptureHandlerTest::OnRunning,
                           base::Unretained(this)));
   copier_->Convert(GenerateTestImage(opaque_frame, width, height),
@@ -280,6 +282,7 @@
                           base::Unretained(this), /*opaque_frame=*/true, width,
                           height),
       /*crop_version_callback=*/base::DoNothing(),
+      /*frame_dropped_callback=*/base::DoNothing(),
       base::BindRepeating(&CanvasCaptureHandlerTest::OnRunning,
                           base::Unretained(this)));
   copier_->Convert(GenerateTestImage(/*opaque=*/false, width, height),
diff --git a/third_party/blink/renderer/modules/mediacapturefromelement/html_video_element_capturer_source.cc b/third_party/blink/renderer/modules/mediacapturefromelement/html_video_element_capturer_source.cc
index 3c671492..ed5410ab 100644
--- a/third_party/blink/renderer/modules/mediacapturefromelement/html_video_element_capturer_source.cc
+++ b/third_party/blink/renderer/modules/mediacapturefromelement/html_video_element_capturer_source.cc
@@ -74,6 +74,8 @@
     const media::VideoCaptureParams& params,
     const VideoCaptureDeliverFrameCB& new_frame_callback,
     const VideoCaptureCropVersionCB& crop_version_callback,
+    // The HTML element does not report frame drops.
+    const VideoCaptureNotifyFrameDroppedCB&,
     const RunningCallback& running_callback) {
   DVLOG(2) << __func__ << " requested "
            << media::VideoCaptureFormat::ToString(params.requested_format);
diff --git a/third_party/blink/renderer/modules/mediacapturefromelement/html_video_element_capturer_source.h b/third_party/blink/renderer/modules/mediacapturefromelement/html_video_element_capturer_source.h
index fa0f81c8..f55c3f4e 100644
--- a/third_party/blink/renderer/modules/mediacapturefromelement/html_video_element_capturer_source.h
+++ b/third_party/blink/renderer/modules/mediacapturefromelement/html_video_element_capturer_source.h
@@ -47,10 +47,12 @@
 
   // VideoCapturerSource Implementation.
   media::VideoCaptureFormats GetPreferredFormats() override;
-  void StartCapture(const media::VideoCaptureParams& params,
-                    const VideoCaptureDeliverFrameCB& new_frame_callback,
-                    const VideoCaptureCropVersionCB& crop_version_callback,
-                    const RunningCallback& running_callback) override;
+  void StartCapture(
+      const media::VideoCaptureParams& params,
+      const VideoCaptureDeliverFrameCB& new_frame_callback,
+      const VideoCaptureCropVersionCB& crop_version_callback,
+      const VideoCaptureNotifyFrameDroppedCB& frame_dropped_callback,
+      const RunningCallback& running_callback) override;
   void StopCapture() override;
 
  private:
diff --git a/third_party/blink/renderer/modules/mediacapturefromelement/html_video_element_capturer_source_unittest.cc b/third_party/blink/renderer/modules/mediacapturefromelement/html_video_element_capturer_source_unittest.cc
index 23d64be..8e0ec9d 100644
--- a/third_party/blink/renderer/modules/mediacapturefromelement/html_video_element_capturer_source_unittest.cc
+++ b/third_party/blink/renderer/modules/mediacapturefromelement/html_video_element_capturer_source_unittest.cc
@@ -174,7 +174,7 @@
       media::VideoCaptureParams(),
       WTF::BindRepeating(&HTMLVideoElementCapturerSourceTest::OnDeliverFrame,
                          base::Unretained(this)),
-      base::DoNothing(),
+      base::DoNothing(), base::DoNothing(),
       WTF::BindRepeating(&HTMLVideoElementCapturerSourceTest::OnRunning,
                          base::Unretained(this)));
 }
@@ -211,7 +211,7 @@
       params,
       WTF::BindRepeating(&HTMLVideoElementCapturerSourceTest::OnDeliverFrame,
                          base::Unretained(this)),
-      base::DoNothing(),
+      base::DoNothing(), base::DoNothing(),
       WTF::BindRepeating(&HTMLVideoElementCapturerSourceTest::OnRunning,
                          base::Unretained(this)));
 
@@ -253,7 +253,7 @@
       params,
       WTF::BindRepeating(&HTMLVideoElementCapturerSourceTest::OnDeliverFrame,
                          base::Unretained(this)),
-      base::DoNothing(),
+      base::DoNothing(), base::DoNothing(),
       WTF::BindRepeating(&HTMLVideoElementCapturerSourceTest::OnRunning,
                          base::Unretained(this)));
   html_video_capturer_->StopCapture();
@@ -285,7 +285,7 @@
         params,
         WTF::BindRepeating(&HTMLVideoElementCapturerSourceTest::OnDeliverFrame,
                            base::Unretained(this)),
-        base::DoNothing(),
+        base::DoNothing(), base::DoNothing(),
         WTF::BindRepeating(&HTMLVideoElementCapturerSourceTest::OnRunning,
                            base::Unretained(this)));
     run_loop.Run();
@@ -347,7 +347,7 @@
         params,
         WTF::BindRepeating(&HTMLVideoElementCapturerSourceTest::OnDeliverFrame,
                            base::Unretained(this)),
-        base::DoNothing(),
+        base::DoNothing(), base::DoNothing(),
         WTF::BindRepeating(&HTMLVideoElementCapturerSourceTest::OnRunning,
                            base::Unretained(this)));
     run_loop.Run();
@@ -390,7 +390,7 @@
       params,
       WTF::BindRepeating(&HTMLVideoElementCapturerSourceTest::OnDeliverFrame,
                          base::Unretained(this)),
-      base::DoNothing(),
+      base::DoNothing(), base::DoNothing(),
       WTF::BindRepeating(&HTMLVideoElementCapturerSourceTest::OnRunning,
                          base::Unretained(this)));
 
diff --git a/third_party/blink/renderer/modules/mediastream/local_video_capturer_source.cc b/third_party/blink/renderer/modules/mediastream/local_video_capturer_source.cc
index 662614ba..ecbeef8 100644
--- a/third_party/blink/renderer/modules/mediastream/local_video_capturer_source.cc
+++ b/third_party/blink/renderer/modules/mediastream/local_video_capturer_source.cc
@@ -47,6 +47,7 @@
     const media::VideoCaptureParams& params,
     const VideoCaptureDeliverFrameCB& new_frame_callback,
     const VideoCaptureCropVersionCB& crop_version_callback,
+    const VideoCaptureNotifyFrameDroppedCB& frame_dropped_callback,
     const RunningCallback& running_callback) {
   DCHECK(params.requested_format.IsValid());
   DCHECK_CALLED_ON_VALID_THREAD(thread_checker_);
@@ -58,7 +59,7 @@
           task_runner_, ConvertToBaseRepeatingCallback(CrossThreadBindRepeating(
                             &LocalVideoCapturerSource::OnStateUpdate,
                             weak_factory_.GetWeakPtr()))),
-      new_frame_callback, crop_version_callback);
+      new_frame_callback, crop_version_callback, frame_dropped_callback);
 }
 
 media::VideoCaptureFeedbackCB LocalVideoCapturerSource::GetFeedbackCallback()
diff --git a/third_party/blink/renderer/modules/mediastream/local_video_capturer_source.h b/third_party/blink/renderer/modules/mediastream/local_video_capturer_source.h
index 3e9f291d..c06ffee 100644
--- a/third_party/blink/renderer/modules/mediastream/local_video_capturer_source.h
+++ b/third_party/blink/renderer/modules/mediastream/local_video_capturer_source.h
@@ -52,10 +52,12 @@
 
   // VideoCaptureSource Implementation.
   media::VideoCaptureFormats GetPreferredFormats() override;
-  void StartCapture(const media::VideoCaptureParams& params,
-                    const VideoCaptureDeliverFrameCB& new_frame_callback,
-                    const VideoCaptureCropVersionCB& crop_version_callback,
-                    const RunningCallback& running_callback) override;
+  void StartCapture(
+      const media::VideoCaptureParams& params,
+      const VideoCaptureDeliverFrameCB& new_frame_callback,
+      const VideoCaptureCropVersionCB& crop_version_callback,
+      const VideoCaptureNotifyFrameDroppedCB& frame_dropped_callback,
+      const RunningCallback& running_callback) override;
   void RequestRefreshFrame() override;
   void MaybeSuspend() override;
   void Resume() override;
diff --git a/third_party/blink/renderer/modules/mediastream/media_stream_set_test.cc b/third_party/blink/renderer/modules/mediastream/media_stream_set_test.cc
index ac30b095..ef5d854 100644
--- a/third_party/blink/renderer/modules/mediastream/media_stream_set_test.cc
+++ b/third_party/blink/renderer/modules/mediastream/media_stream_set_test.cc
@@ -41,7 +41,8 @@
   void StartSourceImpl(
       VideoCaptureDeliverFrameCB frame_callback,
       EncodedVideoFrameCB encoded_frame_callback,
-      VideoCaptureCropVersionCB crop_version_callback) override {}
+      VideoCaptureCropVersionCB crop_version_callback,
+      VideoCaptureNotifyFrameDroppedCB frame_dropped_callback) override {}
 
   void StopSourceImpl() override {}
 
diff --git a/third_party/blink/renderer/modules/mediastream/media_stream_video_capturer_source.cc b/third_party/blink/renderer/modules/mediastream/media_stream_video_capturer_source.cc
index 959d606c..f27192a 100644
--- a/third_party/blink/renderer/modules/mediastream/media_stream_video_capturer_source.cc
+++ b/third_party/blink/renderer/modules/mediastream/media_stream_video_capturer_source.cc
@@ -119,15 +119,18 @@
 void MediaStreamVideoCapturerSource::StartSourceImpl(
     VideoCaptureDeliverFrameCB frame_callback,
     EncodedVideoFrameCB encoded_frame_callback,
-    VideoCaptureCropVersionCB crop_version_callback) {
+    VideoCaptureCropVersionCB crop_version_callback,
+    VideoCaptureNotifyFrameDroppedCB frame_dropped_callback) {
   DCHECK_CALLED_ON_VALID_THREAD(thread_checker_);
 
   state_ = kStarting;
   frame_callback_ = std::move(frame_callback);
   crop_version_callback_ = std::move(crop_version_callback);
+  frame_dropped_callback_ = std::move(frame_dropped_callback);
 
   source_->StartCapture(
       capture_params_, frame_callback_, crop_version_callback_,
+      frame_dropped_callback_,
       WTF::BindRepeating(&MediaStreamVideoCapturerSource::OnRunStateChanged,
                          weak_factory_.GetWeakPtr(), capture_params_));
 }
@@ -165,6 +168,7 @@
   state_ = kRestarting;
   source_->StartCapture(
       new_capture_params, frame_callback_, crop_version_callback_,
+      frame_dropped_callback_,
       WTF::BindRepeating(&MediaStreamVideoCapturerSource::OnRunStateChanged,
                          weak_factory_.GetWeakPtr(), new_capture_params));
 }
@@ -201,6 +205,7 @@
   source_ = device_capturer_factory_callback_.Run(new_device.session_id());
   source_->StartCapture(
       capture_params_, frame_callback_, crop_version_callback_,
+      frame_dropped_callback_,
       WTF::BindRepeating(&MediaStreamVideoCapturerSource::OnRunStateChanged,
                          weak_factory_.GetWeakPtr(), capture_params_));
 }
diff --git a/third_party/blink/renderer/modules/mediastream/media_stream_video_capturer_source.h b/third_party/blink/renderer/modules/mediastream/media_stream_video_capturer_source.h
index e1601ec..3416440 100644
--- a/third_party/blink/renderer/modules/mediastream/media_stream_video_capturer_source.h
+++ b/third_party/blink/renderer/modules/mediastream/media_stream_video_capturer_source.h
@@ -86,7 +86,8 @@
   void StartSourceImpl(
       VideoCaptureDeliverFrameCB frame_callback,
       EncodedVideoFrameCB encoded_frame_callback,
-      VideoCaptureCropVersionCB crop_version_callback) override;
+      VideoCaptureCropVersionCB crop_version_callback,
+      VideoCaptureNotifyFrameDroppedCB frame_dropped_callback) override;
   media::VideoCaptureFeedbackCB GetFeedbackCallback() const override;
   void StopSourceImpl() override;
   void StopSourceForRestartImpl() override;
@@ -130,6 +131,7 @@
   media::VideoCaptureParams capture_params_;
   VideoCaptureDeliverFrameCB frame_callback_;
   VideoCaptureCropVersionCB crop_version_callback_;
+  VideoCaptureNotifyFrameDroppedCB frame_dropped_callback_;
   DeviceCapturerFactoryCallback device_capturer_factory_callback_;
 
   // Each time Crop() is called, the source crop version increments.
diff --git a/third_party/blink/renderer/modules/mediastream/media_stream_video_source.cc b/third_party/blink/renderer/modules/mediastream/media_stream_video_source.cc
index 5fbb918..d651c20 100644
--- a/third_party/blink/renderer/modules/mediastream/media_stream_video_source.cc
+++ b/third_party/blink/renderer/modules/mediastream/media_stream_video_source.cc
@@ -93,6 +93,10 @@
           ConvertToBaseRepeatingCallback(CrossThreadBindRepeating(
               &VideoTrackAdapter::NewCropVersionOnVideoTaskRunner,
               GetTrackAdapter()));
+      VideoCaptureNotifyFrameDroppedCB frame_dropped_callback =
+          ConvertToBaseRepeatingCallback(CrossThreadBindRepeating(
+              &VideoTrackAdapter::OnFrameDroppedOnVideoTaskRunner,
+              GetTrackAdapter()));
       // Callbacks are invoked from the IO thread. With
       // UseThreadPoolForMediaStreamVideoTaskRunner disabled, the video task
       // runner is the same as the IO thread and there is no need to post frames
@@ -106,11 +110,14 @@
                 video_task_runner(),
                 std::move(deliver_encoded_frame_on_video_callback)),
             base::BindPostTask(video_task_runner(),
-                               std::move(new_crop_version_on_video_callback)));
+                               std::move(new_crop_version_on_video_callback)),
+            base::BindPostTask(video_task_runner(),
+                               std::move(frame_dropped_callback)));
       } else {
         StartSourceImpl(std::move(deliver_frame_on_video_callback),
                         std::move(deliver_encoded_frame_on_video_callback),
-                        std::move(new_crop_version_on_video_callback));
+                        std::move(new_crop_version_on_video_callback),
+                        std::move(frame_dropped_callback));
       }
       break;
     }
diff --git a/third_party/blink/renderer/modules/mediastream/media_stream_video_track.cc b/third_party/blink/renderer/modules/mediastream/media_stream_video_track.cc
index 8c46a8f8..5baeb27 100644
--- a/third_party/blink/renderer/modules/mediastream/media_stream_video_track.cc
+++ b/third_party/blink/renderer/modules/mediastream/media_stream_video_track.cc
@@ -837,14 +837,6 @@
          only_sinks_with_alpha_depending_on_other_sinks;
 }
 
-base::RepeatingCallback<void(media::VideoCaptureFrameDropReason)>
-MediaStreamVideoTrack::NotifyFrameDroppedOnVideoTaskRunnerCallbackForTesting() {
-  return ConvertToBaseRepeatingCallback(
-      CrossThreadBindRepeating(&MediaStreamVideoTrack::FrameDeliverer::
-                                   NotifyFrameDroppedOnVideoTaskRunner,
-                               frame_deliverer_));
-}
-
 void MediaStreamVideoTrack::SetSinkNotifyFrameDroppedCallback(
     WebMediaStreamSink* sink,
     const VideoCaptureNotifyFrameDroppedCB& callback) {
diff --git a/third_party/blink/renderer/modules/mediastream/media_stream_video_track.h b/third_party/blink/renderer/modules/mediastream/media_stream_video_track.h
index 83aa4c8..3cf6bdf 100644
--- a/third_party/blink/renderer/modules/mediastream/media_stream_video_track.h
+++ b/third_party/blink/renderer/modules/mediastream/media_stream_video_track.h
@@ -200,14 +200,6 @@
 
   bool UsingAlpha();
 
-  // Today the source does not tell the track of frame drops, only the other way
-  // around. For this reason we need a test-only method to test frame stats.
-  // TODO(https://crbug.com/1472978): When source frame drops are forwarded to
-  // the track (instead of the other way around), delete this test-only method
-  // in favor of testing drops via a fake source instead.
-  base::RepeatingCallback<void(media::VideoCaptureFrameDropReason)>
-  NotifyFrameDroppedOnVideoTaskRunnerCallbackForTesting();
-
  private:
   FRIEND_TEST_ALL_PREFIXES(MediaStreamRemoteVideoSourceTest, StartTrack);
   FRIEND_TEST_ALL_PREFIXES(MediaStreamRemoteVideoSourceTest, RemoteTrackStop);
diff --git a/third_party/blink/renderer/modules/mediastream/media_stream_video_track_test.cc b/third_party/blink/renderer/modules/mediastream/media_stream_video_track_test.cc
index bc68099..5b44969 100644
--- a/third_party/blink/renderer/modules/mediastream/media_stream_video_track_test.cc
+++ b/third_party/blink/renderer/modules/mediastream/media_stream_video_track_test.cc
@@ -423,28 +423,6 @@
       MediaStreamVideoTrack::From(track);
   EXPECT_FALSE(native_track->max_frame_rate().has_value());
 
-  const auto kOnFrameDropped = base::BindRepeating(
-      [](base::SequencedTaskRunner* video_task_runner,
-         MediaStreamVideoTrack* const native_track,
-         media::VideoCaptureFrameDropReason reason) {
-        base::RunLoop run_loop;
-        video_task_runner->PostTask(
-            FROM_HERE,
-            base::BindOnce(
-                [](MediaStreamVideoTrack* const native_track,
-                   media::VideoCaptureFrameDropReason reason,
-                   base::RunLoop* run_loop) {
-                  native_track
-                      ->NotifyFrameDroppedOnVideoTaskRunnerCallbackForTesting()
-                      .Run(reason);
-                  run_loop->Quit();
-                },
-                base::Unretained(native_track), reason,
-                base::Unretained(&run_loop)));
-        run_loop.Run();
-      },
-      base::Unretained(mock_source()->video_task_runner()));
-
   // Initially, no fames have been delivered.
   MediaStreamTrackPlatform::VideoFrameStats stats =
       native_track->GetVideoFrameStats();
@@ -462,15 +440,14 @@
 
   // Discard one frame (due to frame rate decimation) and drop two frames (other
   // reasons);
-  kOnFrameDropped.Run(native_track,
-                      media::VideoCaptureFrameDropReason::
-                          kResolutionAdapterFrameRateIsHigherThanRequested);
-  kOnFrameDropped.Run(
-      native_track,
+  mock_source()->DropFrame(
+      media::VideoCaptureFrameDropReason::
+          kResolutionAdapterFrameRateIsHigherThanRequested);
+  mock_source()->DropFrame(
       media::VideoCaptureFrameDropReason::kGpuMemoryBufferMapFailed);
-  kOnFrameDropped.Run(
-      native_track,
+  mock_source()->DropFrame(
       media::VideoCaptureFrameDropReason::kGpuMemoryBufferMapFailed);
+  DepleteIOCallbacks();
   stats = native_track->GetVideoFrameStats();
   EXPECT_EQ(stats.deliverable_frames, 1u);
   EXPECT_EQ(stats.discarded_frames, 1u);
@@ -479,12 +456,13 @@
   // And some more...
   DeliverVideoFrameAndWaitForRenderer(
       media::VideoFrame::CreateBlackFrame(gfx::Size(600, 400)), &sink);
-  kOnFrameDropped.Run(native_track,
-                      media::VideoCaptureFrameDropReason::
-                          kResolutionAdapterFrameRateIsHigherThanRequested);
-  kOnFrameDropped.Run(native_track,
-                      media::VideoCaptureFrameDropReason::
-                          kResolutionAdapterFrameRateIsHigherThanRequested);
+  mock_source()->DropFrame(
+      media::VideoCaptureFrameDropReason::
+          kResolutionAdapterFrameRateIsHigherThanRequested);
+  mock_source()->DropFrame(
+      media::VideoCaptureFrameDropReason::
+          kResolutionAdapterFrameRateIsHigherThanRequested);
+  DepleteIOCallbacks();
   stats = native_track->GetVideoFrameStats();
   EXPECT_EQ(stats.deliverable_frames, 2u);
   EXPECT_EQ(stats.discarded_frames, 3u);
@@ -495,12 +473,12 @@
   native_track->SetEnabled(false);
   DeliverVideoFrameAndWaitForRenderer(
       media::VideoFrame::CreateBlackFrame(gfx::Size(600, 400)), &sink);
-  kOnFrameDropped.Run(native_track,
-                      media::VideoCaptureFrameDropReason::
-                          kResolutionAdapterFrameRateIsHigherThanRequested);
-  kOnFrameDropped.Run(
-      native_track,
+  mock_source()->DropFrame(
+      media::VideoCaptureFrameDropReason::
+          kResolutionAdapterFrameRateIsHigherThanRequested);
+  mock_source()->DropFrame(
       media::VideoCaptureFrameDropReason::kGpuMemoryBufferMapFailed);
+  DepleteIOCallbacks();
   stats = native_track->GetVideoFrameStats();
   EXPECT_EQ(stats.deliverable_frames, 2u);
   EXPECT_EQ(stats.discarded_frames, 3u);
@@ -510,12 +488,12 @@
   native_track->SetEnabled(true);
   DeliverVideoFrameAndWaitForRenderer(
       media::VideoFrame::CreateBlackFrame(gfx::Size(600, 400)), &sink);
-  kOnFrameDropped.Run(native_track,
-                      media::VideoCaptureFrameDropReason::
-                          kResolutionAdapterFrameRateIsHigherThanRequested);
-  kOnFrameDropped.Run(
-      native_track,
+  mock_source()->DropFrame(
+      media::VideoCaptureFrameDropReason::
+          kResolutionAdapterFrameRateIsHigherThanRequested);
+  mock_source()->DropFrame(
       media::VideoCaptureFrameDropReason::kGpuMemoryBufferMapFailed);
+  DepleteIOCallbacks();
   stats = native_track->GetVideoFrameStats();
   EXPECT_EQ(stats.deliverable_frames, 3u);
   EXPECT_EQ(stats.discarded_frames, 4u);
diff --git a/third_party/blink/renderer/modules/mediastream/mock_media_stream_video_source.cc b/third_party/blink/renderer/modules/mediastream/mock_media_stream_video_source.cc
index 6248616..92a0104 100644
--- a/third_party/blink/renderer/modules/mediastream/mock_media_stream_video_source.cc
+++ b/third_party/blink/renderer/modules/mediastream/mock_media_stream_video_source.cc
@@ -82,7 +82,8 @@
 void MockMediaStreamVideoSource::StartSourceImpl(
     VideoCaptureDeliverFrameCB frame_callback,
     EncodedVideoFrameCB encoded_frame_callback,
-    VideoCaptureCropVersionCB crop_version_callback) {
+    VideoCaptureCropVersionCB crop_version_callback,
+    VideoCaptureNotifyFrameDroppedCB frame_dropped_callback) {
   DCHECK(frame_callback_.is_null());
   DCHECK(encoded_frame_callback_.is_null());
   DCHECK(crop_version_callback_.is_null());
@@ -90,6 +91,7 @@
   frame_callback_ = std::move(frame_callback);
   encoded_frame_callback_ = std::move(encoded_frame_callback);
   crop_version_callback_ = std::move(crop_version_callback);
+  frame_dropped_callback_ = std::move(frame_dropped_callback);
 }
 
 void MockMediaStreamVideoSource::StopSourceImpl() {}
@@ -120,6 +122,14 @@
                                           std::move(frame), base::TimeTicks()));
 }
 
+void MockMediaStreamVideoSource::DropFrame(
+    media::VideoCaptureFrameDropReason reason) {
+  DCHECK(!is_stopped_for_restart_);
+  DCHECK(!frame_dropped_callback_.is_null());
+  PostCrossThreadTask(*video_task_runner(), FROM_HERE,
+                      CrossThreadBindOnce(frame_dropped_callback_, reason));
+}
+
 void MockMediaStreamVideoSource::DeliverNewCropVersion(uint32_t crop_version) {
   DCHECK(!crop_version_callback_.is_null());
   PostCrossThreadTask(
diff --git a/third_party/blink/renderer/modules/mediastream/mock_media_stream_video_source.h b/third_party/blink/renderer/modules/mediastream/mock_media_stream_video_source.h
index 0d13e3b..9f93bf7 100644
--- a/third_party/blink/renderer/modules/mediastream/mock_media_stream_video_source.h
+++ b/third_party/blink/renderer/modules/mediastream/mock_media_stream_video_source.h
@@ -61,6 +61,11 @@
   // destroyed before the frame has been delivered.
   void DeliverEncodedVideoFrame(scoped_refptr<EncodedVideoFrame> frame);
 
+  // Signal that a frame was dropped. It's up to the caller to make sure
+  // MockMediaStreamVideoSource is not destroyed before the frame drop has
+  // happened on the video task runner.
+  void DropFrame(media::VideoCaptureFrameDropReason reason);
+
   // Send |crop_version| to all registered tracks on the video task runner. It's
   // up to the caller to keep MockMediaStreamVideoSource alive until the
   // crop_version_callback (registered with MediaStreamVideoSource::AddTrack)
@@ -100,7 +105,8 @@
   void StartSourceImpl(
       VideoCaptureDeliverFrameCB frame_callback,
       EncodedVideoFrameCB encoded_frame_callback,
-      VideoCaptureCropVersionCB crop_version_callback) override;
+      VideoCaptureCropVersionCB crop_version_callback,
+      VideoCaptureNotifyFrameDroppedCB frame_dropped_callback) override;
   void StopSourceImpl() override;
   absl::optional<media::VideoCaptureFormat> GetCurrentFormat() const override;
   void StopSourceForRestartImpl() override;
@@ -118,6 +124,7 @@
   blink::VideoCaptureDeliverFrameCB frame_callback_;
   EncodedVideoFrameCB encoded_frame_callback_;
   VideoCaptureCropVersionCB crop_version_callback_;
+  VideoCaptureNotifyFrameDroppedCB frame_dropped_callback_;
 
   base::WeakPtrFactory<MediaStreamVideoSource> weak_factory_{this};
 };
diff --git a/third_party/blink/renderer/modules/mediastream/mock_video_capturer_source.h b/third_party/blink/renderer/modules/mediastream/mock_video_capturer_source.h
index ead7d08..9694eff 100644
--- a/third_party/blink/renderer/modules/mediastream/mock_video_capturer_source.h
+++ b/third_party/blink/renderer/modules/mediastream/mock_video_capturer_source.h
@@ -25,10 +25,12 @@
                         const VideoCaptureDeliverFrameCB& new_frame_callback,
                         const RunningCallback& running_callback));
   MOCK_METHOD0(MockStopCapture, void());
-  void StartCapture(const media::VideoCaptureParams& params,
-                    const VideoCaptureDeliverFrameCB& new_frame_callback,
-                    const VideoCaptureCropVersionCB& crop_version_callback,
-                    const RunningCallback& running_callback) override {
+  void StartCapture(
+      const media::VideoCaptureParams& params,
+      const VideoCaptureDeliverFrameCB& new_frame_callback,
+      const VideoCaptureCropVersionCB& crop_version_callback,
+      const VideoCaptureNotifyFrameDroppedCB& frame_dropped_callback,
+      const RunningCallback& running_callback) override {
     running_cb_ = running_callback;
     capture_params_ = params;
 
diff --git a/third_party/blink/renderer/modules/mediastream/video_track_adapter.cc b/third_party/blink/renderer/modules/mediastream/video_track_adapter.cc
index 57dcad17..7134751 100644
--- a/third_party/blink/renderer/modules/mediastream/video_track_adapter.cc
+++ b/third_party/blink/renderer/modules/mediastream/video_track_adapter.cc
@@ -198,14 +198,18 @@
   // callbacks if |track| was not present in the adapter.
   VideoTrackCallbacks RemoveAndGetCallbacks(const MediaStreamVideoTrack* track);
 
+  // The source has provided us with a frame.
   void DeliverFrame(
       scoped_refptr<media::VideoFrame> frame,
       std::vector<scoped_refptr<media::VideoFrame>> scaled_video_frames,
       const base::TimeTicks& estimated_capture_time,
       bool is_device_rotated);
-
-  // Deliver an indication that a frame was dropped.
-  void DoNotifyFrameDropped(media::VideoCaptureFrameDropReason reason);
+  // The source has dropped a frame that will not be delivered.
+  void OnFrameDropped(media::VideoCaptureFrameDropReason reason);
+  // This method is called when a frame is dropped, whether dropped by the
+  // source (OnFrameDropped) or dropped internally by us (in DeliverFrame).
+  void DoNotifyFrameDropped(media::VideoCaptureFrameDropReason reason,
+                            bool dropped_by_source = false);
 
   void DeliverEncodedVideoFrame(scoped_refptr<EncodedVideoFrame> frame,
                                 base::TimeTicks estimated_capture_time);
@@ -459,6 +463,13 @@
                  std::move(scaled_video_frames), estimated_capture_time);
 }
 
+void VideoTrackAdapter::VideoFrameResolutionAdapter::OnFrameDropped(
+    media::VideoCaptureFrameDropReason reason) {
+  DCHECK_CALLED_ON_VALID_SEQUENCE(video_sequence_checker_);
+  // This frame was dropped by the source.
+  DoNotifyFrameDropped(reason, /*dropped_by_source=*/true);
+}
+
 void VideoTrackAdapter::VideoFrameResolutionAdapter::DeliverEncodedVideoFrame(
     scoped_refptr<EncodedVideoFrame> frame,
     base::TimeTicks estimated_capture_time) {
@@ -504,15 +515,21 @@
 }
 
 void VideoTrackAdapter::VideoFrameResolutionAdapter::DoNotifyFrameDropped(
-    media::VideoCaptureFrameDropReason reason) {
+    media::VideoCaptureFrameDropReason reason,
+    bool dropped_by_source) {
   DCHECK_CALLED_ON_VALID_SEQUENCE(video_sequence_checker_);
-  // Notify the MediaStreamVideoSource, mostly for UMA purposes. In the case
-  // that a source has multiple track adapters it's possible that the same frame
-  // is reported as dropped multiple times (at most once per adapter).
-  PostCrossThreadTask(
-      *renderer_task_runner_, FROM_HERE,
-      CrossThreadBindOnce(&MediaStreamVideoSource::OnFrameDroppedInRenderer,
-                          media_stream_video_source_, reason));
+  // Notify the MediaStreamVideoSource for UMA purposes. No need to do this if
+  // the frame drop signal originated from the source because in that case the
+  // frame drop has already been counted (we don't want to count it twice).
+  // TODO(https://crbug.com/1481448): Move the UMA reporting from
+  // VideoCaptureController to MediaStreamVideoTrack and delete this callback,
+  // along with all the other callbacks.
+  if (!dropped_by_source) {
+    PostCrossThreadTask(
+        *renderer_task_runner_, FROM_HERE,
+        CrossThreadBindOnce(&MediaStreamVideoSource::OnFrameDroppedInRenderer,
+                            media_stream_video_source_, reason));
+  }
   // Notify callbacks, such as
   // MediaStreamVideoTrack::FrameDeliverer::NotifyFrameDroppedOnVideoTaskRunner.
   for (const auto& callback : callbacks_) {
@@ -913,6 +930,15 @@
     adapter->DeliverEncodedVideoFrame(frame, estimated_capture_time);
 }
 
+void VideoTrackAdapter::OnFrameDroppedOnVideoTaskRunner(
+    media::VideoCaptureFrameDropReason reason) {
+  DCHECK(video_task_runner_->RunsTasksInCurrentSequence());
+  TRACE_EVENT0("media", "VideoTrackAdapter::OnFrameDroppedOnVideoTaskRunner");
+  for (const auto& adapter : adapters_) {
+    adapter->OnFrameDropped(reason);
+  }
+}
+
 void VideoTrackAdapter::NewCropVersionOnVideoTaskRunner(uint32_t crop_version) {
   DCHECK(video_task_runner_->RunsTasksInCurrentSequence());
   TRACE_EVENT0("media", "VideoTrackAdapter::NewCropVersionOnVideoTaskRunner");
diff --git a/third_party/blink/renderer/modules/mediastream/video_track_adapter.h b/third_party/blink/renderer/modules/mediastream/video_track_adapter.h
index c348e3b..2accc11 100644
--- a/third_party/blink/renderer/modules/mediastream/video_track_adapter.h
+++ b/third_party/blink/renderer/modules/mediastream/video_track_adapter.h
@@ -81,6 +81,11 @@
       scoped_refptr<EncodedVideoFrame> frame,
       base::TimeTicks estimated_capture_time);
 
+  // Called if a frame was dropped prior to delivery, i.e.
+  // DeliverFrameOnVideoTaskRunner() will not be called for this frame.
+  void OnFrameDroppedOnVideoTaskRunner(
+      media::VideoCaptureFrameDropReason reason);
+
   // Called when it is guaranteed that all subsequent frames delivered
   // over DeliverFrameOnVideoTaskRunner() will have a crop version that is
   // equal-to-or-greater-than the given crop version.
diff --git a/third_party/blink/renderer/modules/peerconnection/media_stream_remote_video_source.cc b/third_party/blink/renderer/modules/peerconnection/media_stream_remote_video_source.cc
index 49a7eadc..423e101 100644
--- a/third_party/blink/renderer/modules/peerconnection/media_stream_remote_video_source.cc
+++ b/third_party/blink/renderer/modules/peerconnection/media_stream_remote_video_source.cc
@@ -322,7 +322,9 @@
 void MediaStreamRemoteVideoSource::StartSourceImpl(
     VideoCaptureDeliverFrameCB frame_callback,
     EncodedVideoFrameCB encoded_frame_callback,
-    VideoCaptureCropVersionCB crop_version_callback) {
+    VideoCaptureCropVersionCB crop_version_callback,
+    // The remote track does not not report frame drops.
+    VideoCaptureNotifyFrameDroppedCB) {
   DCHECK_CALLED_ON_VALID_THREAD(thread_checker_);
   DCHECK(!delegate_.get());
   delegate_ = base::MakeRefCounted<RemoteVideoSourceDelegate>(
diff --git a/third_party/blink/renderer/modules/peerconnection/media_stream_remote_video_source.h b/third_party/blink/renderer/modules/peerconnection/media_stream_remote_video_source.h
index f1ca517..489ede9 100644
--- a/third_party/blink/renderer/modules/peerconnection/media_stream_remote_video_source.h
+++ b/third_party/blink/renderer/modules/peerconnection/media_stream_remote_video_source.h
@@ -50,7 +50,8 @@
   void StartSourceImpl(
       VideoCaptureDeliverFrameCB frame_callback,
       EncodedVideoFrameCB encoded_frame_callback,
-      VideoCaptureCropVersionCB crop_version_callback) override;
+      VideoCaptureCropVersionCB crop_version_callback,
+      VideoCaptureNotifyFrameDroppedCB frame_dropped_callback) override;
   void StopSourceImpl() override;
   void OnEncodedSinkEnabled() override;
   void OnEncodedSinkDisabled() override;
diff --git a/third_party/blink/renderer/modules/smart_card/smart_card_context.cc b/third_party/blink/renderer/modules/smart_card/smart_card_context.cc
index f13b170..78b7a70 100644
--- a/third_party/blink/renderer/modules/smart_card/smart_card_context.cc
+++ b/third_party/blink/renderer/modules/smart_card/smart_card_context.cc
@@ -7,7 +7,8 @@
 #include "third_party/blink/renderer/bindings/modules/v8/v8_smart_card_connect_options.h"
 #include "third_party/blink/renderer/bindings/modules/v8/v8_smart_card_connect_result.h"
 #include "third_party/blink/renderer/bindings/modules/v8/v8_smart_card_get_status_change_options.h"
-#include "third_party/blink/renderer/bindings/modules/v8/v8_smart_card_reader_state_flags.h"
+#include "third_party/blink/renderer/bindings/modules/v8/v8_smart_card_reader_state_flags_in.h"
+#include "third_party/blink/renderer/bindings/modules/v8/v8_smart_card_reader_state_flags_out.h"
 #include "third_party/blink/renderer/bindings/modules/v8/v8_smart_card_reader_state_in.h"
 #include "third_party/blink/renderer/bindings/modules/v8/v8_smart_card_reader_state_out.h"
 #include "third_party/blink/renderer/modules/smart_card/smart_card_cancel_algorithm.h"
@@ -23,12 +24,10 @@
     "An operation is already in progress in this smart card context.";
 
 device::mojom::blink::SmartCardReaderStateFlagsPtr ToMojomStateFlags(
-    const SmartCardReaderStateFlags& flags) {
+    const SmartCardReaderStateFlagsIn& flags) {
   auto mojom_flags = device::mojom::blink::SmartCardReaderStateFlags::New();
   mojom_flags->unaware = flags.unaware();
   mojom_flags->ignore = flags.ignore();
-  mojom_flags->changed = flags.changed();
-  mojom_flags->unknown = flags.unknown();
   mojom_flags->unavailable = flags.unavailable();
   mojom_flags->empty = flags.empty();
   mojom_flags->present = flags.present();
@@ -55,10 +54,9 @@
   return mojom_reader_states;
 }
 
-SmartCardReaderStateFlags* ToV8ReaderStateFlags(
+SmartCardReaderStateFlagsOut* ToV8ReaderStateFlagsOut(
     const device::mojom::blink::SmartCardReaderStateFlags& mojom_state_flags) {
-  auto* state_flags = SmartCardReaderStateFlags::Create();
-  state_flags->setUnaware(mojom_state_flags.unaware);
+  auto* state_flags = SmartCardReaderStateFlagsOut::Create();
   state_flags->setIgnore(mojom_state_flags.ignore);
   state_flags->setChanged(mojom_state_flags.changed);
   state_flags->setUnknown(mojom_state_flags.unknown);
@@ -82,7 +80,7 @@
     auto* state_out = SmartCardReaderStateOut::Create();
     state_out->setReaderName(mojom_state_out->reader);
     state_out->setEventState(
-        ToV8ReaderStateFlags(*mojom_state_out->event_state));
+        ToV8ReaderStateFlagsOut(*mojom_state_out->event_state));
     state_out->setEventCount(mojom_state_out->event_count);
     state_out->setAnswerToReset(
         DOMArrayBuffer::Create(mojom_state_out->answer_to_reset.data(),
diff --git a/third_party/blink/renderer/modules/smart_card/smart_card_context.idl b/third_party/blink/renderer/modules/smart_card/smart_card_context.idl
index 34c7d18..8c27586 100644
--- a/third_party/blink/renderer/modules/smart_card/smart_card_context.idl
+++ b/third_party/blink/renderer/modules/smart_card/smart_card_context.idl
@@ -2,26 +2,24 @@
 // Use of this source code is governed by a BSD-style license that can be
 // found in the LICENSE file.
 
-// https://wicg.github.io/web-smart-card/#smartcardcontext-interface
 
+// https://wicg.github.io/web-smart-card/#dom-smartcardreaderstatein
 dictionary SmartCardReaderStateIn {
   required DOMString readerName;
-  required SmartCardReaderStateFlags currentState;
+  required SmartCardReaderStateFlagsIn currentState;
   unsigned long currentCount;
 };
 
+// https://wicg.github.io/web-smart-card/#dom-smartcardreaderstateout
 dictionary SmartCardReaderStateOut {
   required DOMString readerName;
-  required SmartCardReaderStateFlags eventState;
+  required SmartCardReaderStateFlagsOut eventState;
   required unsigned long eventCount;
   required ArrayBuffer answerToReset;
 };
 
 dictionary SmartCardReaderStateFlags {
-  boolean unaware = false;
   boolean ignore = false;
-  boolean changed = false;
-  boolean unknown = false;
   boolean unavailable = false;
   boolean empty = false;
   boolean present = false;
@@ -31,32 +29,49 @@
   boolean unpowered = false;
 };
 
+// https://wicg.github.io/web-smart-card/#smartcardreaderstateflagsin-dictionary
+dictionary SmartCardReaderStateFlagsIn : SmartCardReaderStateFlags {
+  boolean unaware = false;
+};
+
+// https://wicg.github.io/web-smart-card/#smartcardreaderstateflagsout-dictionary
+dictionary SmartCardReaderStateFlagsOut : SmartCardReaderStateFlags {
+  boolean changed = false;
+  boolean unknown = false;
+};
+
+// https://wicg.github.io/web-smart-card/#smartcardprotocol-enum
 enum SmartCardProtocol {
   "raw",
   "t0",
   "t1"
 };
 
+// https://wicg.github.io/web-smart-card/#dom-smartcardconnectresult
 dictionary SmartCardConnectResult {
   required SmartCardConnection connection;
   SmartCardProtocol activeProtocol;
 };
 
+// https://wicg.github.io/web-smart-card/#smartcardaccessmode-enum
 enum SmartCardAccessMode {
   "shared",
   "exclusive",
   "direct"
 };
 
+// https://wicg.github.io/web-smart-card/#smartcardgetstatuschangeoptions-dictionary
 dictionary SmartCardGetStatusChangeOptions {
   DOMHighResTimeStamp timeout;
   AbortSignal signal;
 };
 
+// https://wicg.github.io/web-smart-card/#smartcardconnectoptions-dictionary
 dictionary SmartCardConnectOptions {
   sequence<SmartCardProtocol> preferredProtocols;
 };
 
+// https://wicg.github.io/web-smart-card/#smartcardcontext-interface
 [
   Exposed=Window,
   RuntimeEnabled=SmartCard,
diff --git a/third_party/blink/renderer/modules/webtransport/bidirectional_stream_test.cc b/third_party/blink/renderer/modules/webtransport/bidirectional_stream_test.cc
index a192cb3..3062593 100644
--- a/third_party/blink/renderer/modules/webtransport/bidirectional_stream_test.cc
+++ b/third_party/blink/renderer/modules/webtransport/bidirectional_stream_test.cc
@@ -160,6 +160,10 @@
 
   void SetOutgoingDatagramExpirationDuration(base::TimeDelta) override {}
 
+  void GetStats(GetStatsCallback callback) override {
+    std::move(callback).Run(nullptr);
+  }
+
   void Close(network::mojom::blink::WebTransportCloseInfoPtr) override {}
 
  private:
diff --git a/third_party/blink/renderer/modules/webtransport/datagram_duplex_stream_test.cc b/third_party/blink/renderer/modules/webtransport/datagram_duplex_stream_test.cc
index 96226ad..8246f15 100644
--- a/third_party/blink/renderer/modules/webtransport/datagram_duplex_stream_test.cc
+++ b/third_party/blink/renderer/modules/webtransport/datagram_duplex_stream_test.cc
@@ -82,6 +82,10 @@
     outgoing_datagram_expiration_duration_value_ = value;
   }
 
+  void GetStats(GetStatsCallback callback) override {
+    std::move(callback).Run(nullptr);
+  }
+
   void Close(network::mojom::blink::WebTransportCloseInfoPtr) override {}
 
  private:
diff --git a/third_party/blink/renderer/modules/webtransport/web_transport_test.cc b/third_party/blink/renderer/modules/webtransport/web_transport_test.cc
index 1457948..a6a6719 100644
--- a/third_party/blink/renderer/modules/webtransport/web_transport_test.cc
+++ b/third_party/blink/renderer/modules/webtransport/web_transport_test.cc
@@ -137,6 +137,7 @@
                     void(uint32_t, mojo::ScopedDataPipeConsumerHandle)>));
 
   MOCK_METHOD1(SetOutgoingDatagramExpirationDuration, void(base::TimeDelta));
+  MOCK_METHOD1(GetStats, void(GetStatsCallback));
   MOCK_METHOD0(Close, void());
   MOCK_METHOD2(Close, void(uint32_t, String));
 
diff --git a/third_party/blink/renderer/platform/blink_platform_unittests_bundle_data.filelist b/third_party/blink/renderer/platform/blink_platform_unittests_bundle_data.filelist
index ff91993..9a2c7a2e 100644
--- a/third_party/blink/renderer/platform/blink_platform_unittests_bundle_data.filelist
+++ b/third_party/blink/renderer/platform/blink_platform_unittests_bundle_data.filelist
@@ -106,6 +106,13 @@
 ../../web_tests/external/wpt/fonts/math/underover-accentbaseheight4000-underbarverticalgap7000.woff
 ../../web_tests/external/wpt/fonts/math/xheight500.woff
 ../../web_tests/external/wpt/fonts/mplus-1p-regular.woff
+../../web_tests/external/wpt/fonts/noto/NotoSansAdlam-hinted/NotoSansAdlam-Regular.ttf
+../../web_tests/external/wpt/fonts/noto/NotoSansCypriot-hinted/NotoSansCypriot-Regular.ttf
+../../web_tests/external/wpt/fonts/noto/NotoSansDeseret-Regular.ttf
+../../web_tests/external/wpt/fonts/noto/NotoSansDevanagari-Regular.ttf
+../../web_tests/external/wpt/fonts/noto/cjk/NotoSansCJKjp-Regular-subset-chws.otf
+../../web_tests/external/wpt/fonts/noto/cjk/NotoSansCJKjp-Regular-subset-halt.otf
+../../web_tests/external/wpt/fonts/noto/noto-sans-v8-latin-regular.woff
 ../../web_tests/external/wpt/fonts/pass.woff
 ../../web_tests/external/wpt/fonts/sileot-webfont.woff
 ../../web_tests/external/wpt/fonts/tcu-font.woff
diff --git a/third_party/blink/renderer/platform/blink_platform_unittests_bundle_data.globlist b/third_party/blink/renderer/platform/blink_platform_unittests_bundle_data.globlist
index 8bd2b7c..77e147cf 100644
--- a/third_party/blink/renderer/platform/blink_platform_unittests_bundle_data.globlist
+++ b/third_party/blink/renderer/platform/blink_platform_unittests_bundle_data.globlist
@@ -16,7 +16,6 @@
 ../../web_tests/external/wpt/fonts/**/*.TTF
 ../../web_tests/external/wpt/fonts/**/*.woff
 -../../web_tests/external/wpt/fonts/CSSTest/**
--../../web_tests/external/wpt/fonts/noto/**
 ../../web_tests/images/resources/**
 ../../web_tests/third_party/**/*.ttf
 ../../web_tests/third_party/**/*.otf
diff --git a/third_party/blink/renderer/platform/exported/video_capture/web_video_capture_impl_manager.cc b/third_party/blink/renderer/platform/exported/video_capture/web_video_capture_impl_manager.cc
index 5c29bd8..9138f60 100644
--- a/third_party/blink/renderer/platform/exported/video_capture/web_video_capture_impl_manager.cc
+++ b/third_party/blink/renderer/platform/exported/video_capture/web_video_capture_impl_manager.cc
@@ -122,7 +122,8 @@
     const media::VideoCaptureParams& params,
     const VideoCaptureStateUpdateCB& state_update_cb,
     const VideoCaptureDeliverFrameCB& deliver_frame_cb,
-    const VideoCaptureCropVersionCB& crop_version_cb) {
+    const VideoCaptureCropVersionCB& crop_version_cb,
+    const VideoCaptureNotifyFrameDroppedCB& frame_dropped_cb) {
   DCHECK(render_main_task_runner_->BelongsToCurrentThread());
   const auto it = base::ranges::find(devices_, id, &DeviceEntry::session_id);
   if (it == devices_.end())
@@ -135,7 +136,7 @@
       FROM_HERE,
       base::BindOnce(&VideoCaptureImpl::StartCapture, it->impl->GetWeakPtr(),
                      client_id, params, state_update_cb, deliver_frame_cb,
-                     crop_version_cb));
+                     crop_version_cb, frame_dropped_cb));
   return base::BindOnce(&WebVideoCaptureImplManager::StopCapture,
                         weak_factory_.GetWeakPtr(), client_id, id);
 }
diff --git a/third_party/blink/renderer/platform/exported/video_capture/web_video_capture_impl_manager_test.cc b/third_party/blink/renderer/platform/exported/video_capture/web_video_capture_impl_manager_test.cc
index 448db78..f74e8a5 100644
--- a/third_party/blink/renderer/platform/exported/video_capture/web_video_capture_impl_manager_test.cc
+++ b/third_party/blink/renderer/platform/exported/video_capture/web_video_capture_impl_manager_test.cc
@@ -238,7 +238,7 @@
         ConvertToBaseRepeatingCallback(
             CrossThreadBindRepeating(&VideoCaptureImplManagerTest::OnFrameReady,
                                      CrossThreadUnretained(this))),
-        base::DoNothing());
+        base::DoNothing(), base::DoNothing());
   }
 
   base::test::TaskEnvironment task_environment_;
diff --git a/third_party/blink/renderer/platform/graphics/canvas_2d_layer_bridge.cc b/third_party/blink/renderer/platform/graphics/canvas_2d_layer_bridge.cc
index 53617a6..e267d95 100644
--- a/third_party/blink/renderer/platform/graphics/canvas_2d_layer_bridge.cc
+++ b/third_party/blink/renderer/platform/graphics/canvas_2d_layer_bridge.cc
@@ -48,9 +48,8 @@
   return base::FeatureList::IsEnabled(features::kCanvas2DHibernation);
 }
 
-Canvas2DLayerBridge::Canvas2DLayerBridge(OpacityMode opacity_mode)
+Canvas2DLayerBridge::Canvas2DLayerBridge()
     : logger_(std::make_unique<Logger>()),
-      opacity_mode_(opacity_mode),
       snapshot_state_(kInitialSnapshotState),
       resource_host_(nullptr) {
   // Used by browser tests to detect the use of a Canvas2DLayerBridge.
@@ -62,19 +61,13 @@
   if (IsHibernating())
     logger_->ReportHibernationEvent(kHibernationEndedWithTeardown);
   ResetResourceProvider();
-
-  if (!layer_)
-    return;
-
-  if (resource_host_ && resource_host_->GetRasterMode() == RasterMode::kGPU) {
-    layer_->ClearTexture();
-    // Orphaning the layer is required to trigger the recreation of a new layer
+  if (resource_host_) {
+    // Resetting the layer is required to trigger the recreation of a new layer
     // in the case where destruction is caused by a canvas resize. Test:
     // virtual/gpu/fast/canvas/canvas-resize-after-paint-without-layout.html
-    layer_->RemoveFromParent();
+    // TODO(junov): Resize without destroying Canvas2DLayerBridge.
+    resource_host_->ResetLayer();
   }
-  layer_->ClearClient();
-  layer_ = nullptr;
 }
 
 void Canvas2DLayerBridge::SetCanvasResourceHost(CanvasResourceHost* host) {
@@ -125,7 +118,7 @@
     return;
   }
 
-  if (!IsValid()) {
+  if (!resource_host_->IsResourceValid()) {
     logger_->ReportHibernationEvent(kHibernationAbortedDueGpuContextLoss);
     return;
   }
@@ -158,14 +151,10 @@
       snapshot->PaintImageForCurrentFrame().GetSwSkImage());
 
   ResetResourceProvider();
-  if (layer_) {
-    layer_->ClearTexture();
-  }
+  resource_host_->ClearLayerTexture();
 
   // shouldBeDirectComposited() may have changed.
-  if (resource_host_) {
-    resource_host_->SetNeedsCompositingUpdate();
-  }
+  resource_host_->SetNeedsCompositingUpdate();
   logger_->DidStartHibernating();
 }
 
@@ -178,7 +167,8 @@
   // If canvas becomes visible again or canvas already lost its resource,
   // return here.
   if (!resource_host_ || !resource_host_->ResourceProvider() ||
-      resource_host_->IsPageVisible() || !IsValid() || context_lost_) {
+      resource_host_->IsPageVisible() || !resource_host_->IsResourceValid() ||
+      resource_host_->context_lost()) {
     return;
   }
 
@@ -189,11 +179,8 @@
   lose_context_in_background_ = true;
   ResetResourceProvider();
 
-  if (layer_)
-    layer_->ClearTexture();
-
-  if (resource_host_)
-    resource_host_->SetNeedsCompositingUpdate();
+  resource_host_->ClearLayerTexture();
+  resource_host_->SetNeedsCompositingUpdate();
 }
 
 CanvasResourceProvider* Canvas2DLayerBridge::ResourceProvider() const {
@@ -204,22 +191,12 @@
   CHECK(resource_host_);
   CanvasResourceProvider* resource_provider = ResourceProvider();
 
-  if (context_lost_) {
+  if (resource_host_->context_lost()) {
     DCHECK(!resource_provider);
     return nullptr;
   }
 
   if (resource_provider && resource_provider->IsValid()) {
-#if DCHECK_IS_ON()
-    // If resource provider is composited, a layer should already exist.
-    // unless this is a canvas in low latency mode.
-    // If this DCHECK fails, it probably means that
-    // CanvasRenderingContextHost::GetOrCreateCanvasResourceProvider() was
-    // called on a 2D context before this function.
-    if (resource_host_->IsComposited()) {
-      DCHECK(!!layer_);
-    }
-#endif
     return resource_provider;
   }
 
@@ -235,7 +212,8 @@
   // If the Canvas2DLayerBridge has just been created, possibly due to failed
   // attempts of Restore(), the layer would not exist, therefore, it will not
   // fall through this clause to try Restore() again
-  if (layer_ && adjusted_hint == RasterModeHint::kPreferGPU &&
+  if (resource_host_->CcLayer() &&
+      adjusted_hint == RasterModeHint::kPreferGPU &&
       !lose_context_in_background_ && !IsHibernating()) {
     return nullptr;
   }
@@ -247,17 +225,6 @@
   if (!resource_provider || !resource_provider->IsValid())
     return nullptr;
 
-  if (resource_host_->IsComposited() && !layer_) {
-    layer_ = cc::TextureLayer::CreateForMailbox(this);
-    layer_->SetIsDrawable(true);
-    layer_->SetHitTestable(true);
-    layer_->SetContentsOpaque(opacity_mode_ == kOpaque);
-    layer_->SetBlendBackgroundColor(opacity_mode_ != kOpaque);
-    layer_->SetNearestNeighbor(resource_host_->FilterQuality() ==
-                               cc::PaintFlags::FilterQuality::kNone);
-    layer_->SetHdrMetadata(resource_host_->GetHDRMetadata());
-    layer_->SetFlipped(!resource_provider->IsOriginTopLeft());
-  }
   // After the page becomes visible and successfully restored the canvas
   // resource provider, set |lose_context_in_background_| to false.
   if (lose_context_in_background_)
@@ -303,20 +270,6 @@
   return ResourceProvider()->Canvas();
 }
 
-void Canvas2DLayerBridge::SetFilterQuality(
-    cc::PaintFlags::FilterQuality filter_quality) {
-  if (CanvasResourceProvider* resource_provider = ResourceProvider())
-    resource_provider->SetFilterQuality(filter_quality);
-  if (layer_)
-    layer_->SetNearestNeighbor(filter_quality ==
-                               cc::PaintFlags::FilterQuality::kNone);
-}
-
-void Canvas2DLayerBridge::SetHdrMetadata(const gfx::HDRMetadata& hdr_metadata) {
-  if (layer_)
-    layer_->SetHdrMetadata(hdr_metadata);
-}
-
 void Canvas2DLayerBridge::PageVisibilityChanged() {
   bool page_is_visible = resource_host_->IsPageVisible();
   if (ResourceProvider())
@@ -335,7 +288,8 @@
   }
 
   if (!lose_context_in_background_ && !lose_context_in_background_scheduled_ &&
-      ResourceProvider() && !context_lost_ && !page_is_visible &&
+      ResourceProvider() && !resource_host_->context_lost() &&
+      !page_is_visible &&
       base::FeatureList::IsEnabled(
           ::features::kCanvasContextLostInBackground)) {
     lose_context_in_background_scheduled_ = true;
@@ -347,8 +301,7 @@
              !page_is_visible && !hibernation_scheduled_ &&
              !base::FeatureList::IsEnabled(
                  ::features::kCanvasContextLostInBackground)) {
-    if (layer_)
-      layer_->ClearTexture();
+    resource_host_->ClearLayerTexture();
     logger_->ReportHibernationEvent(kHibernationScheduled);
     hibernation_scheduled_ = true;
     ThreadScheduler::Current()->PostIdleTask(
@@ -415,40 +368,15 @@
     ResourceProvider()->ReleaseLockedImages();
 }
 
-bool Canvas2DLayerBridge::IsValid() {
-  if (IsHibernating()) {
-    return true;
-  }
-  if (!layer_ ||
-      (resource_host_ && resource_host_->preferred_2d_raster_mode() ==
-                             RasterModeHint::kPreferCPU)) {
-    return true;
-  }
-  if (context_lost_) {
-    return false;
-  }
-  if (ResourceProvider() &&
-      resource_host_->GetRasterMode() == RasterMode::kGPU &&
-      ResourceProvider()->IsGpuContextLost()) {
-    context_lost_ = true;
-    ResetResourceProvider();
-    if (resource_host_) {
-      resource_host_->NotifyGpuContextLost();
-    }
-    return false;
-  }
-  return !!GetOrCreateResourceProvider();
-}
-
 bool Canvas2DLayerBridge::Restore() {
-  DCHECK(context_lost_);
+  CHECK(resource_host_);
+  CHECK(resource_host_->context_lost());
   if (resource_host_ && resource_host_->GetRasterMode() == RasterMode::kCPU) {
     return false;
   }
   DCHECK(!ResourceProvider());
 
-  if (layer_)
-    layer_->ClearTexture();
+  resource_host_->ClearLayerTexture();
 
   base::WeakPtr<WebGraphicsContext3DProviderWrapper> context_provider_wrapper =
       SharedGpuContext::ContextProviderWrapper();
@@ -467,7 +395,7 @@
       resource_host_->ReplaceResourceProvider(nullptr);
       // FIXME: draw sad canvas picture into new buffer crbug.com/243842
     } else {
-      context_lost_ = false;
+      resource_host_->set_context_lost(false);
     }
   }
 
@@ -477,86 +405,6 @@
   return ResourceProvider();
 }
 
-namespace {
-
-// Adapter for wrapping a CanvasResourceReleaseCallback into a
-// viz::ReleaseCallback
-void ReleaseCanvasResource(CanvasResource::ReleaseCallback callback,
-                           scoped_refptr<CanvasResource> canvas_resource,
-                           const gpu::SyncToken& sync_token,
-                           bool is_lost) {
-  std::move(callback).Run(std::move(canvas_resource), sync_token, is_lost);
-}
-
-}  // unnamed namespace
-
-bool Canvas2DLayerBridge::PrepareTransferableResource(
-    cc::SharedBitmapIdRegistrar* bitmap_registrar,
-    viz::TransferableResource* out_resource,
-    viz::ReleaseCallback* out_release_callback) {
-  CHECK(resource_host_);
-  DCHECK(layer_);  // This explodes if FinalizeFrame() was not called.
-
-  resource_host_->ResetFramesSinceLastCommit();
-
-  if (resource_host_->RateLimiter()) {
-    resource_host_->RateLimiter()->Reset();
-  }
-
-  // If hibernating but not hidden, we want to wake up from hibernation.
-  if (IsHibernating() && !resource_host_->IsPageVisible()) {
-    return false;
-  }
-
-  if (!IsValid())
-    return false;
-
-  // The beforeprint event listener is sometimes scheduled in the same task
-  // as BeginFrame, which means that this code may sometimes be called between
-  // the event listener and its associated FinalizeFrame call. So in order to
-  // preserve the display list for printing, FlushRecording needs to know
-  // whether any printing occurred in the current task.
-  FlushReason reason = FlushReason::kCanvasPushFrame;
-  if (resource_host_->PrintedInCurrentTask() || resource_host_->IsPrinting()) {
-    reason = FlushReason::kCanvasPushFrameWhilePrinting;
-  }
-  FlushRecording(reason);
-
-  // If the context is lost, we don't know if we should be producing GPU or
-  // software frames, until we get a new context, since the compositor will
-  // be trying to get a new context and may change modes.
-  if (!GetOrCreateResourceProvider())
-    return false;
-
-  scoped_refptr<CanvasResource> frame =
-      ResourceProvider()->ProduceCanvasResource(reason);
-  if (!frame || !frame->IsValid())
-    return false;
-
-  CanvasResource::ReleaseCallback release_callback;
-  if (!frame->PrepareTransferableResource(out_resource, &release_callback,
-                                          kUnverifiedSyncToken) ||
-      *out_resource == layer_->current_transferable_resource()) {
-    // If the resource did not change, the release will be handled correctly
-    // when the callback from the previous frame is dispatched. But run the
-    // |release_callback| to release the ref acquired above.
-    std::move(release_callback)
-        .Run(std::move(frame), gpu::SyncToken(), false /* is_lost */);
-    return false;
-  }
-  // Note: frame is kept alive via a reference kept in out_release_callback.
-  *out_release_callback = base::BindOnce(
-      ReleaseCanvasResource, std::move(release_callback), std::move(frame));
-
-  return true;
-}
-
-cc::Layer* Canvas2DLayerBridge::Layer() {
-  // Trigger lazy layer creation
-  GetOrCreateResourceProvider();
-  return layer_.get();
-}
-
 void Canvas2DLayerBridge::FinalizeFrame(FlushReason reason) {
   TRACE_EVENT0("blink", "Canvas2DLayerBridge::FinalizeFrame");
   CHECK(resource_host_);
@@ -585,22 +433,18 @@
   }
 }
 
-void Canvas2DLayerBridge::DoPaintInvalidation(const gfx::Rect& dirty_rect) {
-  if (layer_ && resource_host_ && resource_host_->IsComposited()) {
-    layer_->SetNeedsDisplayRect(dirty_rect);
-  }
-}
-
 scoped_refptr<StaticBitmapImage> Canvas2DLayerBridge::NewImageSnapshot(
     FlushReason reason) {
+  CHECK(resource_host_);
   if (snapshot_state_ == kInitialSnapshotState)
     snapshot_state_ = kDidAcquireSnapshot;
   if (IsHibernating()) {
     return UnacceleratedStaticBitmapImage::Create(
         hibernation_handler_.GetImage());
   }
-  if (!IsValid())
+  if (!resource_host_->IsResourceValid()) {
     return nullptr;
+  }
   // GetOrCreateResourceProvider needs to be called before FlushRecording, to
   // make sure "hint" is properly taken into account, as well as after
   // FlushRecording, in case the playback crashed the GPU context.
diff --git a/third_party/blink/renderer/platform/graphics/canvas_2d_layer_bridge.h b/third_party/blink/renderer/platform/graphics/canvas_2d_layer_bridge.h
index 4d390156..af0288f 100644
--- a/third_party/blink/renderer/platform/graphics/canvas_2d_layer_bridge.h
+++ b/third_party/blink/renderer/platform/graphics/canvas_2d_layer_bridge.h
@@ -32,7 +32,6 @@
 #include "base/memory/scoped_refptr.h"
 #include "base/rand_util.h"
 #include "build/build_config.h"
-#include "cc/layers/texture_layer_client.h"
 #include "components/viz/common/resources/transferable_resource.h"
 #include "third_party/blink/renderer/platform/graphics/canvas_hibernation_handler.h"
 #include "third_party/blink/renderer/platform/graphics/canvas_resource_host.h"
@@ -43,36 +42,21 @@
 
 struct SkImageInfo;
 
-namespace cc {
-class Layer;
-class TextureLayer;
-}  // namespace cc
-
 namespace blink {
 
 class Canvas2DLayerBridgeTest;
 class StaticBitmapImage;
 
-class PLATFORM_EXPORT Canvas2DLayerBridge : public cc::TextureLayerClient {
+class PLATFORM_EXPORT Canvas2DLayerBridge {
  public:
-  explicit Canvas2DLayerBridge(OpacityMode opacity_mode);
+  explicit Canvas2DLayerBridge();
   Canvas2DLayerBridge(const Canvas2DLayerBridge&) = delete;
   Canvas2DLayerBridge& operator=(const Canvas2DLayerBridge&) = delete;
 
-  ~Canvas2DLayerBridge() override;
-
-  // cc::TextureLayerClient implementation.
-  bool PrepareTransferableResource(
-      cc::SharedBitmapIdRegistrar* bitmap_registrar,
-      viz::TransferableResource* out_resource,
-      viz::ReleaseCallback* out_release_callback) override;
+  virtual ~Canvas2DLayerBridge();
 
   void FinalizeFrame(FlushReason);
   void PageVisibilityChanged();
-  void SetFilterQuality(cc::PaintFlags::FilterQuality filter_quality);
-  void SetHdrMetadata(const gfx::HDRMetadata& hdr_metadata);
-  void DoPaintInvalidation(const gfx::Rect& dirty_rect);
-  cc::Layer* Layer();
   bool Restore();
 
   // virtual for unit testing
@@ -82,7 +66,6 @@
 
   // This may recreate CanvasResourceProvider
   cc::PaintCanvas* GetPaintCanvas();
-  bool IsValid();
   bool WritePixels(const SkImageInfo&,
                    const void* pixels,
                    size_t row_bytes,
@@ -98,8 +81,6 @@
 
   scoped_refptr<StaticBitmapImage> NewImageSnapshot(FlushReason);
 
-  cc::TextureLayer* layer_for_testing() { return layer_.get(); }
-
   // The values of the enum entries must not change because they are used for
   // usage metrics histograms. New values can be added to the end.
   enum HibernationEvent {
@@ -159,7 +140,6 @@
 
   CanvasHibernationHandler hibernation_handler_;
 
-  scoped_refptr<cc::TextureLayer> layer_;
   std::unique_ptr<Logger> logger_;
   bool hibernation_scheduled_ = false;
   bool context_lost_ = false;
@@ -170,8 +150,6 @@
   // WritePixels, the recording is now missing that information.
   bool last_record_tainted_by_write_pixels_ = false;
 
-  const OpacityMode opacity_mode_;
-
   enum SnapshotState {
     kInitialSnapshotState,
     kDidAcquireSnapshot,
diff --git a/third_party/blink/renderer/platform/graphics/canvas_2d_layer_bridge_test.cc b/third_party/blink/renderer/platform/graphics/canvas_2d_layer_bridge_test.cc
index 2b2aa963..0d9ad25 100644
--- a/third_party/blink/renderer/platform/graphics/canvas_2d_layer_bridge_test.cc
+++ b/third_party/blink/renderer/platform/graphics/canvas_2d_layer_bridge_test.cc
@@ -117,14 +117,17 @@
       OpacityMode opacity_mode,
       std::unique_ptr<FakeCanvasResourceHost> custom_host = nullptr) {
     std::unique_ptr<Canvas2DLayerBridge> bridge =
-        std::make_unique<Canvas2DLayerBridge>(opacity_mode);
+        std::make_unique<Canvas2DLayerBridge>();
     if (custom_host)
       host_ = std::move(custom_host);
     if (!host_)
       host_ = std::make_unique<FakeCanvasResourceHost>(size);
     host_->SetPreferred2DRasterMode(raster_mode);
     host_->AlwaysEnableRasterTimersForTesting();
+    host_->SetOpacityMode(opacity_mode);
     bridge->SetCanvasResourceHost(host_.get());
+    host_->GetOrCreateCanvasResourceProvider(raster_mode);
+    host_->GetOrCreateCcLayerIfNeeded();
     return bridge;
   }
 
@@ -147,6 +150,7 @@
   }
 
   RasterMode GetRasterMode(Canvas2DLayerBridge* bridge) {
+    // TODO(crbug.com/1476964): Remove this when done refactoring.
     // Temporary bootstrap. In non-test code HTMLCanvasElement overrides
     // IsHibernating to propagate the value from Canvas2DLayerBridge, but
     // FakeCanvasResourceHost does not do this. This can be removed once
@@ -176,7 +180,7 @@
 TEST_F(Canvas2DLayerBridgeTest, NoDrawOnContextLost) {
   std::unique_ptr<Canvas2DLayerBridge> bridge =
       MakeBridge(gfx::Size(300, 150), RasterModeHint::kPreferGPU, kNonOpaque);
-  EXPECT_TRUE(bridge->IsValid());
+  EXPECT_TRUE(Host()->IsResourceValid());
   cc::PaintFlags flags;
   uint32_t gen_id = bridge->GetOrCreateResourceProvider()->ContentUniqueID();
   bridge->GetPaintCanvas()->drawRect(SkRect::MakeXYWH(0, 0, 1, 1), flags);
@@ -200,7 +204,7 @@
 
   viz::TransferableResource resource;
   viz::ReleaseCallback release_callback;
-  EXPECT_FALSE(bridge->PrepareTransferableResource(nullptr, &resource,
+  EXPECT_FALSE(Host()->PrepareTransferableResource(nullptr, &resource,
                                                    &release_callback));
 }
 
@@ -210,11 +214,11 @@
       MakeBridge(gfx::Size(300, 150), RasterModeHint::kPreferGPU, kNonOpaque);
 
   bridge->GetOrCreateResourceProvider();
-  EXPECT_TRUE(bridge->IsValid());
+  EXPECT_TRUE(Host()->IsResourceValid());
   // When the context is lost we are not sure if we should still be producing
   // GL frames for the compositor or not, so fail to generate frames.
   test_context_provider_->TestContextGL()->set_context_lost(true);
-  EXPECT_FALSE(bridge->IsValid());
+  EXPECT_FALSE(Host()->IsResourceValid());
 
   // Restoration will fail because
   // Platform::createSharedOffscreenGraphicsContext3DProvider() is stubbed
@@ -224,7 +228,7 @@
 
   viz::TransferableResource resource;
   viz::ReleaseCallback release_callback;
-  EXPECT_FALSE(bridge->PrepareTransferableResource(nullptr, &resource,
+  EXPECT_FALSE(Host()->PrepareTransferableResource(nullptr, &resource,
                                                    &release_callback));
 }
 
@@ -237,7 +241,7 @@
     bridge->FinalizeFrame(FlushReason::kTesting);
     viz::TransferableResource resource;
     viz::ReleaseCallback release_callback;
-    EXPECT_TRUE(bridge->PrepareTransferableResource(nullptr, &resource,
+    EXPECT_TRUE(Host()->PrepareTransferableResource(nullptr, &resource,
                                                     &release_callback));
 
     bool lost_resource = true;
@@ -253,7 +257,7 @@
       std::unique_ptr<Canvas2DLayerBridge> bridge = MakeBridge(
           gfx::Size(300, 150), RasterModeHint::kPreferGPU, kNonOpaque);
       bridge->FinalizeFrame(FlushReason::kTesting);
-      bridge->PrepareTransferableResource(nullptr, &resource,
+      Host()->PrepareTransferableResource(nullptr, &resource,
                                           &release_callback);
       // |bridge| goes out of scope and would normally be destroyed, but
       // object is kept alive by self references.
@@ -276,7 +280,7 @@
     std::unique_ptr<Canvas2DLayerBridge> bridge =
         MakeBridge(gfx::Size(300, 150), RasterModeHint::kPreferGPU, kNonOpaque);
     bridge->FinalizeFrame(FlushReason::kTesting);
-    EXPECT_TRUE(bridge->PrepareTransferableResource(nullptr, &resource,
+    EXPECT_TRUE(Host()->PrepareTransferableResource(nullptr, &resource,
                                                     &release_callback));
   }
 
@@ -297,8 +301,8 @@
     bridge->GetPaintCanvas()->drawRect(SkRect::MakeXYWH(0, 0, 1, 1), flags);
     scoped_refptr<StaticBitmapImage> image =
         bridge->NewImageSnapshot(FlushReason::kTesting);
-    EXPECT_TRUE(bridge->IsValid());
     EXPECT_EQ(GetRasterMode(bridge.get()), RasterMode::kGPU);
+    EXPECT_TRUE(Host()->IsResourceValid());
   }
 
   {
@@ -308,8 +312,8 @@
     bridge->GetPaintCanvas()->drawRect(SkRect::MakeXYWH(0, 0, 1, 1), flags);
     scoped_refptr<StaticBitmapImage> image =
         bridge->NewImageSnapshot(FlushReason::kTesting);
-    EXPECT_TRUE(bridge->IsValid());
     EXPECT_EQ(GetRasterMode(bridge.get()), RasterMode::kGPU);
+    EXPECT_TRUE(Host()->IsResourceValid());
   }
 
   {
@@ -319,8 +323,8 @@
     bridge->GetPaintCanvas()->drawRect(SkRect::MakeXYWH(0, 0, 1, 1), flags);
     scoped_refptr<StaticBitmapImage> image =
         bridge->NewImageSnapshot(FlushReason::kTesting);
-    EXPECT_TRUE(bridge->IsValid());
     EXPECT_EQ(GetRasterMode(bridge.get()), RasterMode::kCPU);
+    EXPECT_TRUE(Host()->IsResourceValid());
   }
 
   {
@@ -330,8 +334,8 @@
     bridge->GetPaintCanvas()->drawRect(SkRect::MakeXYWH(0, 0, 1, 1), flags);
     scoped_refptr<StaticBitmapImage> image =
         bridge->NewImageSnapshot(FlushReason::kTesting);
-    EXPECT_TRUE(bridge->IsValid());
     EXPECT_EQ(GetRasterMode(bridge.get()), RasterMode::kCPU);
+    EXPECT_TRUE(Host()->IsResourceValid());
   }
 }
 
@@ -339,8 +343,8 @@
   test_context_provider_->TestContextGL()->set_context_lost(true);
   std::unique_ptr<Canvas2DLayerBridge> bridge =
       MakeBridge(gfx::Size(300, 150), RasterModeHint::kPreferGPU, kNonOpaque);
-  EXPECT_TRUE(bridge->IsValid());
   EXPECT_EQ(GetRasterMode(bridge.get()), RasterMode::kCPU);
+  EXPECT_TRUE(Host()->IsResourceValid());
 }
 
 void DrawSomething(Canvas2DLayerBridge* bridge) {
@@ -355,8 +359,8 @@
     // No fallback case.
     std::unique_ptr<Canvas2DLayerBridge> bridge =
         MakeBridge(gfx::Size(300, 150), RasterModeHint::kPreferGPU, kNonOpaque);
-    EXPECT_TRUE(bridge->IsValid());
     EXPECT_EQ(GetRasterMode(bridge.get()), RasterMode::kGPU);
+    EXPECT_TRUE(Host()->IsResourceValid());
     scoped_refptr<StaticBitmapImage> snapshot =
         bridge->NewImageSnapshot(FlushReason::kTesting);
     EXPECT_EQ(GetRasterMode(bridge.get()), RasterMode::kGPU);
@@ -369,15 +373,15 @@
                               ->ContextProvider()
                               ->GetGrContext();
     std::unique_ptr<Canvas2DLayerBridge> bridge =
-        std::make_unique<Canvas2DLayerBridge>(kNonOpaque);
+        std::make_unique<Canvas2DLayerBridge>();
     host_ = std::make_unique<FakeCanvasResourceHost>(gfx::Size(300, 150));
     host_->SetPreferred2DRasterMode(RasterModeHint::kPreferGPU);
     bridge->SetCanvasResourceHost(host_.get());
     host_->AlwaysEnableRasterTimersForTesting();
-    EXPECT_TRUE(bridge->IsValid());
     EXPECT_EQ(GetRasterMode(bridge.get()),
               RasterMode::kGPU);  // We don't yet know that
                                   // allocation will fail.
+    EXPECT_TRUE(Host()->IsResourceValid());
     // This will cause SkSurface_Gpu creation to fail without
     // Canvas2DLayerBridge otherwise detecting that anything was disabled.
     gr->abandonContext();
@@ -419,7 +423,10 @@
   EXPECT_CALL(*mock_logger_ptr, DidStartHibernating()).Times(1);
 
   Host()->SetPageVisible(false);
-  bridge->PageVisibilityChanged();  // Temporary plumbing
+
+  // TODO(crbug.com/1476964): Remove this when done refactoring.
+  bridge->PageVisibilityChanged();
+
   ThreadScheduler::Current()
       ->ToMainThreadScheduler()
       ->StartIdlePeriodForTesting();
@@ -428,7 +435,7 @@
   testing::Mock::VerifyAndClearExpectations(mock_logger_ptr);
   EXPECT_EQ(GetRasterMode(bridge.get()), RasterMode::kCPU);
   EXPECT_TRUE(bridge->IsHibernating());
-  EXPECT_TRUE(bridge->IsValid());
+  EXPECT_TRUE(Host()->IsResourceValid());
 
   // Test exiting hibernation
   EXPECT_CALL(
@@ -436,12 +443,14 @@
       ReportHibernationEvent(Canvas2DLayerBridge::kHibernationEndedNormally));
 
   Host()->SetPageVisible(true);
-  bridge->PageVisibilityChanged();  // Temporary plumbing
+
+  // TODO(crbug.com/1476964): Remove this when done refactoring.
+  bridge->PageVisibilityChanged();
 
   testing::Mock::VerifyAndClearExpectations(mock_logger_ptr);
   EXPECT_EQ(GetRasterMode(bridge.get()), RasterMode::kGPU);
   EXPECT_FALSE(bridge->IsHibernating());
-  EXPECT_TRUE(bridge->IsValid());
+  EXPECT_TRUE(Host()->IsResourceValid());
 }
 
 TEST_F(Canvas2DLayerBridgeTest, HibernationReEntry) {
@@ -464,13 +473,22 @@
       ReportHibernationEvent(Canvas2DLayerBridge::kHibernationScheduled));
   EXPECT_CALL(*mock_logger_ptr, DidStartHibernating()).Times(1);
   Host()->SetPageVisible(false);
-  bridge->PageVisibilityChanged();  // Temporary plumbing
+
+  // TODO(crbug.com/1476964): Remove this when done refactoring.
+  bridge->PageVisibilityChanged();
+
   // Toggle visibility before the task that enters hibernation gets a
   // chance to run.
   Host()->SetPageVisible(true);
-  bridge->PageVisibilityChanged();  // Temporary plumbing
+
+  // TODO(crbug.com/1476964): Remove this when done refactoring.
+  bridge->PageVisibilityChanged();
+
   Host()->SetPageVisible(false);
-  bridge->PageVisibilityChanged();  // Temporary plumbing
+
+  // TODO(crbug.com/1476964): Remove this when done refactoring.
+  bridge->PageVisibilityChanged();
+
   ThreadScheduler::Current()
       ->ToMainThreadScheduler()
       ->StartIdlePeriodForTesting();
@@ -479,7 +497,7 @@
   testing::Mock::VerifyAndClearExpectations(mock_logger_ptr);
   EXPECT_EQ(GetRasterMode(bridge.get()), RasterMode::kCPU);
   EXPECT_TRUE(bridge->IsHibernating());
-  EXPECT_TRUE(bridge->IsValid());
+  EXPECT_TRUE(Host()->IsResourceValid());
 
   // Test exiting hibernation
   EXPECT_CALL(
@@ -487,12 +505,14 @@
       ReportHibernationEvent(Canvas2DLayerBridge::kHibernationEndedNormally));
 
   Host()->SetPageVisible(true);
-  bridge->PageVisibilityChanged();  // Temporary plumbing
+
+  // TODO(crbug.com/1476964): Remove this when done refactoring.
+  bridge->PageVisibilityChanged();
 
   testing::Mock::VerifyAndClearExpectations(mock_logger_ptr);
   EXPECT_EQ(GetRasterMode(bridge.get()), RasterMode::kGPU);
   EXPECT_FALSE(bridge->IsHibernating());
-  EXPECT_TRUE(bridge->IsValid());
+  EXPECT_TRUE(Host()->IsResourceValid());
 }
 
 TEST_F(Canvas2DLayerBridgeTest, TeardownWhileHibernating) {
@@ -515,7 +535,10 @@
       ReportHibernationEvent(Canvas2DLayerBridge::kHibernationScheduled));
   EXPECT_CALL(*mock_logger_ptr, DidStartHibernating()).Times(1);
   Host()->SetPageVisible(false);
-  bridge->PageVisibilityChanged();  // Temporary plumbing
+
+  // TODO(crbug.com/1476964): Remove this when done refactoring.
+  bridge->PageVisibilityChanged();
+
   ThreadScheduler::Current()
       ->ToMainThreadScheduler()
       ->StartIdlePeriodForTesting();
@@ -523,7 +546,7 @@
   testing::Mock::VerifyAndClearExpectations(mock_logger_ptr);
   EXPECT_EQ(GetRasterMode(bridge.get()), RasterMode::kCPU);
   EXPECT_TRUE(bridge->IsHibernating());
-  EXPECT_TRUE(bridge->IsValid());
+  EXPECT_TRUE(Host()->IsResourceValid());
 
   // Tear down the bridge while hibernating
   EXPECT_CALL(*mock_logger_ptr,
@@ -553,7 +576,10 @@
       ReportHibernationEvent(Canvas2DLayerBridge::kHibernationScheduled));
   EXPECT_CALL(*mock_logger_ptr, DidStartHibernating()).Times(1);
   Host()->SetPageVisible(false);
-  bridge->PageVisibilityChanged();  // Temporary plumbing
+
+  // TODO(crbug.com/1476964): Remove this when done refactoring.
+  bridge->PageVisibilityChanged();
+
   ThreadScheduler::Current()
       ->ToMainThreadScheduler()
       ->StartIdlePeriodForTesting();
@@ -561,7 +587,7 @@
   testing::Mock::VerifyAndClearExpectations(mock_logger_ptr);
   EXPECT_EQ(GetRasterMode(bridge.get()), RasterMode::kCPU);
   EXPECT_TRUE(bridge->IsHibernating());
-  EXPECT_TRUE(bridge->IsValid());
+  EXPECT_TRUE(Host()->IsResourceValid());
 
   // Take a snapshot and verify that it is not accelerated due to hibernation
   scoped_refptr<StaticBitmapImage> image =
@@ -572,7 +598,7 @@
   // Verify that taking a snapshot did not affect the state of bridge
   EXPECT_EQ(GetRasterMode(bridge.get()), RasterMode::kCPU);
   EXPECT_TRUE(bridge->IsHibernating());
-  EXPECT_TRUE(bridge->IsValid());
+  EXPECT_TRUE(Host()->IsResourceValid());
 
   // End hibernation normally
   EXPECT_CALL(
@@ -580,7 +606,9 @@
       ReportHibernationEvent(Canvas2DLayerBridge::kHibernationEndedNormally))
       .Times(1);
   Host()->SetPageVisible(true);
-  bridge->PageVisibilityChanged();  // Temporary plumbing
+
+  // TODO(crbug.com/1476964): Remove this when done refactoring.
+  bridge->PageVisibilityChanged();
 }
 
 TEST_F(Canvas2DLayerBridgeTest, TeardownWhileHibernationIsPending) {
@@ -602,7 +630,10 @@
       *mock_logger_ptr,
       ReportHibernationEvent(Canvas2DLayerBridge::kHibernationScheduled));
   Host()->SetPageVisible(false);
-  bridge->PageVisibilityChanged();  // Temporary plumbing
+
+  // TODO(crbug.com/1476964): Remove this when done refactoring.
+  bridge->PageVisibilityChanged();
+
   bridge.reset();
   // In production, we would expect a
   // HibernationAbortedDueToDestructionWhileHibernatePending event to be
@@ -640,9 +671,15 @@
           Canvas2DLayerBridge::kHibernationAbortedDueToVisibilityChange))
       .Times(1);
   Host()->SetPageVisible(false);
-  bridge->PageVisibilityChanged();  // Temporary plumbing
+
+  // TODO(crbug.com/1476964): Remove this when done refactoring.
+  bridge->PageVisibilityChanged();
+
   Host()->SetPageVisible(true);
-  bridge->PageVisibilityChanged();  // Temporary plumbing
+
+  // TODO(crbug.com/1476964): Remove this when done refactoring.
+  bridge->PageVisibilityChanged();
+
   ThreadScheduler::Current()
       ->ToMainThreadScheduler()
       ->StartIdlePeriodForTesting();
@@ -650,7 +687,7 @@
   testing::Mock::VerifyAndClearExpectations(mock_logger_ptr);
   EXPECT_EQ(GetRasterMode(bridge.get()), RasterMode::kGPU);
   EXPECT_FALSE(bridge->IsHibernating());
-  EXPECT_TRUE(bridge->IsValid());
+  EXPECT_TRUE(Host()->IsResourceValid());
 }
 
 TEST_F(Canvas2DLayerBridgeTest, HibernationAbortedDueToLostContext) {
@@ -679,7 +716,10 @@
       .Times(1);
 
   Host()->SetPageVisible(false);
-  bridge->PageVisibilityChanged();  // Temporary plumbing
+
+  // TODO(crbug.com/1476964): Remove this when done refactoring.
+  bridge->PageVisibilityChanged();
+
   ThreadScheduler::Current()
       ->ToMainThreadScheduler()
       ->StartIdlePeriodForTesting();
@@ -708,19 +748,29 @@
       ReportHibernationEvent(Canvas2DLayerBridge::kHibernationScheduled));
   EXPECT_CALL(*mock_logger_ptr, DidStartHibernating()).Times(1);
   Host()->SetPageVisible(false);
-  bridge->PageVisibilityChanged();  // Temporary plumbing
+
+  // TODO(crbug.com/1476964): Remove this when done refactoring.
+  bridge->PageVisibilityChanged();
+
   ThreadScheduler::Current()
       ->ToMainThreadScheduler()
       ->StartIdlePeriodForTesting();
   platform->RunUntilIdle();
   testing::Mock::VerifyAndClearExpectations(mock_logger_ptr);
 
+  // TODO(crbug.com/1476964): Remove this when done refactoring.
+  // Temporary plumbing. In non-test code, HTMLCanvasElement overrides
+  // CanvasResourceHost::IsHibernating to propagate to Canvas2DLayerBridge.
+  // FakeCanvasResourceHost does not do this.  We will be able to remove this
+  // one hibernation management is moved out of Canvas2DLayerBridge.
+  Host()->SetIsHibernating(bridge->IsHibernating());
+
   // Test PrepareTransferableResource() while hibernating
   viz::TransferableResource resource;
   viz::ReleaseCallback release_callback;
-  EXPECT_FALSE(bridge->PrepareTransferableResource(nullptr, &resource,
+  EXPECT_FALSE(Host()->PrepareTransferableResource(nullptr, &resource,
                                                    &release_callback));
-  EXPECT_TRUE(bridge->IsValid());
+  EXPECT_TRUE(Host()->IsResourceValid());
 
   // Tear down the bridge on the thread so that 'bridge' can go out of scope
   // without crashing due to thread checks
@@ -746,12 +796,12 @@
       MakeBridge(gfx::Size(300, 150), RasterModeHint::kPreferGPU, kNonOpaque);
   bridge->GetPaintCanvas()->drawLine(0, 0, 2, 2, flags);
   DrawSomething(bridge.get());
-  ASSERT_TRUE(bridge->PrepareTransferableResource(nullptr, &resources[0],
+  ASSERT_TRUE(Host()->PrepareTransferableResource(nullptr, &resources[0],
                                                   &callbacks[0]));
 
   bridge->GetPaintCanvas()->drawLine(0, 0, 2, 2, flags);
   DrawSomething(bridge.get());
-  ASSERT_TRUE(bridge->PrepareTransferableResource(nullptr, &resources[1],
+  ASSERT_TRUE(Host()->PrepareTransferableResource(nullptr, &resources[1],
                                                   &callbacks[1]));
   EXPECT_NE(resources[0].mailbox_holder.mailbox,
             resources[1].mailbox_holder.mailbox);
@@ -761,7 +811,7 @@
   std::move(callbacks[0]).Run(gpu::SyncToken(), false);
   bridge->GetPaintCanvas()->drawLine(0, 0, 2, 2, flags);
   DrawSomething(bridge.get());
-  ASSERT_TRUE(bridge->PrepareTransferableResource(nullptr, &resources[2],
+  ASSERT_TRUE(Host()->PrepareTransferableResource(nullptr, &resources[2],
                                                   &callbacks[2]));
   EXPECT_EQ(resources[0].mailbox_holder.mailbox,
             resources[2].mailbox_holder.mailbox);
@@ -785,11 +835,11 @@
       MakeBridge(gfx::Size(300, 150), RasterModeHint::kPreferGPU, kNonOpaque);
   bridge->GetPaintCanvas()->drawLine(0, 0, 2, 2, flags);
   DrawSomething(bridge.get());
-  ASSERT_TRUE(bridge->PrepareTransferableResource(nullptr, &resources[0],
+  ASSERT_TRUE(Host()->PrepareTransferableResource(nullptr, &resources[0],
                                                   &callbacks[0]));
   bridge->GetPaintCanvas()->drawLine(0, 0, 2, 2, flags);
   DrawSomething(bridge.get());
-  ASSERT_TRUE(bridge->PrepareTransferableResource(nullptr, &resources[1],
+  ASSERT_TRUE(Host()->PrepareTransferableResource(nullptr, &resources[1],
                                                   &callbacks[1]));
   EXPECT_NE(resources[0].mailbox_holder.mailbox,
             resources[1].mailbox_holder.mailbox);
@@ -799,7 +849,10 @@
   std::move(callbacks[0]).Run(gpu::SyncToken(), false);
   EXPECT_EQ(test_context_provider_->TestContextGL()->NumTextures(), 2u);
   Host()->SetPageVisible(false);
-  bridge->PageVisibilityChanged();  // Temporary plumbing
+
+  // TODO(crbug.com/1476964): Remove this when done refactoring.
+  bridge->PageVisibilityChanged();
+
   EXPECT_EQ(test_context_provider_->TestContextGL()->NumTextures(), 1u);
 
   // Release second frame, this resource is not released because its the current
@@ -822,7 +875,7 @@
   std::unique_ptr<Canvas2DLayerBridge> bridge =
       MakeBridge(gfx::Size(300, 150), RasterModeHint::kPreferGPU, kNonOpaque);
   DrawSomething(bridge.get());
-  bridge->PrepareTransferableResource(nullptr, &resource, &release_callback);
+  Host()->PrepareTransferableResource(nullptr, &resource, &release_callback);
 
   // Tearing down the bridge does not destroy unreleased resources.
   bridge.reset();
@@ -960,17 +1013,17 @@
 
   bridge->GetPaintCanvas()->clear(SkColors::kRed);
   DrawSomething(bridge.get());
-  ASSERT_TRUE(bridge->layer_for_testing());
+  ASSERT_TRUE(!!Host()->CcLayer());
 
   viz::TransferableResource resource;
   viz::ReleaseCallback release_callback;
-  EXPECT_TRUE(bridge->PrepareTransferableResource(nullptr, &resource,
+  EXPECT_TRUE(Host()->PrepareTransferableResource(nullptr, &resource,
                                                   &release_callback));
-  bridge->layer_for_testing()->SetTransferableResource(
-      resource, std::move(release_callback));
+  Host()->CcLayer()->SetTransferableResource(resource,
+                                             std::move(release_callback));
 
   viz::ReleaseCallback release_callback2;
-  EXPECT_FALSE(bridge->PrepareTransferableResource(nullptr, &resource,
+  EXPECT_FALSE(Host()->PrepareTransferableResource(nullptr, &resource,
                                                    &release_callback2));
   EXPECT_FALSE(release_callback2);
 }
@@ -1014,7 +1067,7 @@
 TEST_F(Canvas2DLayerBridgeTest, DisplayedCanvasIsRateLimited) {
   std::unique_ptr<Canvas2DLayerBridge> bridge =
       MakeBridge(gfx::Size(300, 150), RasterModeHint::kPreferGPU, kNonOpaque);
-  EXPECT_TRUE(bridge->IsValid());
+  EXPECT_TRUE(Host()->IsResourceValid());
   Host()->SetIsDisplayed(true);
   EXPECT_FALSE(!!Host()->RateLimiter());
   bridge->FinalizeFrame(FlushReason::kCanvasPushFrame);
@@ -1025,7 +1078,7 @@
 TEST_F(Canvas2DLayerBridgeTest, NonDisplayedCanvasIsNotRateLimited) {
   std::unique_ptr<Canvas2DLayerBridge> bridge =
       MakeBridge(gfx::Size(300, 150), RasterModeHint::kPreferGPU, kNonOpaque);
-  EXPECT_TRUE(bridge->IsValid());
+  EXPECT_TRUE(Host()->IsResourceValid());
   Host()->SetIsDisplayed(true);
   bridge->FinalizeFrame(FlushReason::kCanvasPushFrame);
   bridge->FinalizeFrame(FlushReason::kCanvasPushFrame);
@@ -1046,7 +1099,7 @@
       .gpu_memory_buffer_formats.Put(gfx::BufferFormat::BGRA_8888);
   std::unique_ptr<Canvas2DLayerBridge> bridge =
       MakeBridge(gfx::Size(300, 150), RasterModeHint::kPreferCPU, kNonOpaque);
-  EXPECT_TRUE(bridge->IsValid());
+  EXPECT_TRUE(Host()->IsResourceValid());
   DrawSomething(bridge.get());
   EXPECT_TRUE(Host()->IsComposited());
   EXPECT_EQ(GetRasterMode(bridge.get()), RasterMode::kCPU);
@@ -1056,7 +1109,7 @@
   ScopedCanvas2dImageChromiumForTest canvas_2d_image_chromium(false);
   std::unique_ptr<Canvas2DLayerBridge> bridge =
       MakeBridge(gfx::Size(300, 150), RasterModeHint::kPreferCPU, kNonOpaque);
-  EXPECT_TRUE(bridge->IsValid());
+  EXPECT_TRUE(Host()->IsResourceValid());
   DrawSomething(bridge.get());
   EXPECT_FALSE(Host()->IsComposited());
   EXPECT_EQ(GetRasterMode(bridge.get()), RasterMode::kCPU);
diff --git a/third_party/blink/renderer/platform/graphics/canvas_hibernation_handler_test.cc b/third_party/blink/renderer/platform/graphics/canvas_hibernation_handler_test.cc
index 72574da..f6d12a5 100644
--- a/third_party/blink/renderer/platform/graphics/canvas_hibernation_handler_test.cc
+++ b/third_party/blink/renderer/platform/graphics/canvas_hibernation_handler_test.cc
@@ -32,7 +32,7 @@
       OpacityMode opacity_mode,
       std::unique_ptr<FakeCanvasResourceHost> custom_host = nullptr) {
     std::unique_ptr<Canvas2DLayerBridge> bridge =
-        std::make_unique<Canvas2DLayerBridge>(opacity_mode);
+        std::make_unique<Canvas2DLayerBridge>();
     if (custom_host) {
       host_ = std::move(custom_host);
     }
@@ -40,6 +40,7 @@
       host_ = std::make_unique<FakeCanvasResourceHost>(size);
     }
     host_->SetPreferred2DRasterMode(raster_mode);
+    host_->SetOpacityMode(opacity_mode);
     bridge->SetCanvasResourceHost(host_.get());
     return bridge;
   }
@@ -206,7 +207,7 @@
 
   EXPECT_TRUE(Host()->GetRasterMode() == RasterMode::kGPU);
   EXPECT_FALSE(bridge->IsHibernating());
-  EXPECT_TRUE(bridge->IsValid());
+  EXPECT_TRUE(Host()->IsResourceValid());
 }
 
 TEST_F(CanvasHibernationHandlerTest, ForegroundTooEarly) {
diff --git a/third_party/blink/renderer/platform/graphics/canvas_resource_host.cc b/third_party/blink/renderer/platform/graphics/canvas_resource_host.cc
index e4f86cf..815915a 100644
--- a/third_party/blink/renderer/platform/graphics/canvas_resource_host.cc
+++ b/third_party/blink/renderer/platform/graphics/canvas_resource_host.cc
@@ -25,7 +25,9 @@
 
 CanvasResourceHost::CanvasResourceHost(gfx::Size size) : size_(size) {}
 
-CanvasResourceHost::~CanvasResourceHost() = default;
+CanvasResourceHost::~CanvasResourceHost() {
+  ResetLayer();
+}
 
 CanvasResourceProvider* CanvasResourceHost::ResourceProvider() const {
   return resource_provider_.get();
@@ -69,6 +71,13 @@
 void CanvasResourceHost::SetFilterQuality(
     cc::PaintFlags::FilterQuality filter_quality) {
   filter_quality_ = filter_quality;
+  if (resource_provider_) {
+    resource_provider_->SetFilterQuality(filter_quality);
+  }
+  if (cc_layer_) {
+    cc_layer_->SetNearestNeighbor(filter_quality ==
+                                  cc::PaintFlags::FilterQuality::kNone);
+  }
 }
 
 void CanvasResourceHost::SetPreferred2DRasterMode(RasterModeHint hint) {
@@ -133,4 +142,166 @@
   return ShouldTryToUseGpuRaster() ? RasterMode::kGPU : RasterMode::kCPU;
 }
 
+void CanvasResourceHost::ResetLayer() {
+  if (cc_layer_) {
+    if (GetRasterMode() == RasterMode::kGPU) {
+      cc_layer_->ClearTexture();
+      // Orphaning the layer is required to trigger the recreation of a new
+      // layer in the case where destruction is caused by a canvas resize. Test:
+      // virtual/gpu/fast/canvas/canvas-resize-after-paint-without-layout.html
+      cc_layer_->RemoveFromParent();
+    }
+    cc_layer_->ClearClient();
+    cc_layer_ = nullptr;
+  }
+}
+
+void CanvasResourceHost::ClearLayerTexture() {
+  if (cc_layer_) {
+    cc_layer_->ClearTexture();
+  }
+}
+
+void CanvasResourceHost::SetHdrMetadata(const gfx::HDRMetadata& hdr_metadata) {
+  hdr_metadata_ = hdr_metadata;
+  if (cc_layer_) {
+    cc_layer_->SetHdrMetadata(hdr_metadata_);
+  }
+}
+
+cc::TextureLayer* CanvasResourceHost::GetOrCreateCcLayerIfNeeded() {
+  if (!IsComposited()) {
+    return nullptr;
+  }
+  if (UNLIKELY(!cc_layer_)) {
+    cc_layer_ = cc::TextureLayer::CreateForMailbox(this);
+    cc_layer_->SetIsDrawable(true);
+    cc_layer_->SetHitTestable(true);
+    cc_layer_->SetContentsOpaque(opacity_mode_ == kOpaque);
+    cc_layer_->SetBlendBackgroundColor(opacity_mode_ != kOpaque);
+    cc_layer_->SetNearestNeighbor(FilterQuality() ==
+                                  cc::PaintFlags::FilterQuality::kNone);
+    cc_layer_->SetHdrMetadata(hdr_metadata_);
+    cc_layer_->SetFlipped(!resource_provider_->IsOriginTopLeft());
+  }
+  return cc_layer_.get();
+}
+
+namespace {
+
+// Adapter for wrapping a CanvasResourceReleaseCallback into a
+// viz::ReleaseCallback
+void ReleaseCanvasResource(CanvasResource::ReleaseCallback callback,
+                           scoped_refptr<CanvasResource> canvas_resource,
+                           const gpu::SyncToken& sync_token,
+                           bool is_lost) {
+  std::move(callback).Run(std::move(canvas_resource), sync_token, is_lost);
+}
+
+}  // unnamed namespace
+
+bool CanvasResourceHost::PrepareTransferableResource(
+    cc::SharedBitmapIdRegistrar* bitmap_registrar,
+    viz::TransferableResource* out_resource,
+    viz::ReleaseCallback* out_release_callback) {
+  CHECK(cc_layer_);  // This explodes if FinalizeFrame() was not called.
+
+  frames_since_last_commit_ = 0;
+  if (rate_limiter_) {
+    rate_limiter_->Reset();
+  }
+
+  // If hibernating but not hidden, we want to wake up from hibernation.
+  if (IsHibernating() && !IsPageVisible()) {
+    return false;
+  }
+
+  if (!IsResourceValid()) {
+    return false;
+  }
+
+  // The beforeprint event listener is sometimes scheduled in the same task
+  // as BeginFrame, which means that this code may sometimes be called between
+  // the event listener and its associated FinalizeFrame call. So in order to
+  // preserve the display list for printing, FlushRecording needs to know
+  // whether any printing occurred in the current task.
+  FlushReason reason = FlushReason::kCanvasPushFrame;
+  if (PrintedInCurrentTask() || IsPrinting()) {
+    reason = FlushReason::kCanvasPushFrameWhilePrinting;
+  }
+  FlushRecording(reason);
+
+  // If the context is lost, we don't know if we should be producing GPU or
+  // software frames, until we get a new context, since the compositor will
+  // be trying to get a new context and may change modes.
+  if (!GetOrCreateCanvasResourceProvider(preferred_2d_raster_mode_)) {
+    return false;
+  }
+
+  scoped_refptr<CanvasResource> frame =
+      resource_provider_->ProduceCanvasResource(reason);
+  if (!frame || !frame->IsValid()) {
+    return false;
+  }
+
+  CanvasResource::ReleaseCallback release_callback;
+  if (!frame->PrepareTransferableResource(out_resource, &release_callback,
+                                          kUnverifiedSyncToken) ||
+      *out_resource == cc_layer_->current_transferable_resource()) {
+    // If the resource did not change, the release will be handled correctly
+    // when the callback from the previous frame is dispatched. But run the
+    // |release_callback| to release the ref acquired above.
+    std::move(release_callback)
+        .Run(std::move(frame), gpu::SyncToken(), false /* is_lost */);
+    return false;
+  }
+  // Note: frame is kept alive via a reference kept in out_release_callback.
+  *out_release_callback = base::BindOnce(
+      ReleaseCanvasResource, std::move(release_callback), std::move(frame));
+
+  return true;
+}
+
+void CanvasResourceHost::DoPaintInvalidation(const gfx::Rect& dirty_rect) {
+  if (cc_layer_ && IsComposited()) {
+    cc_layer_->SetNeedsDisplayRect(dirty_rect);
+  }
+}
+
+void CanvasResourceHost::SetOpacityMode(OpacityMode opacity_mode) {
+  opacity_mode_ = opacity_mode;
+  if (cc_layer_) {
+    cc_layer_->SetContentsOpaque(opacity_mode_ == kOpaque);
+    cc_layer_->SetBlendBackgroundColor(opacity_mode_ != kOpaque);
+  }
+}
+
+void CanvasResourceHost::FlushRecording(FlushReason reason) {
+  if (resource_provider_) {
+    resource_provider_->FlushCanvas(reason);
+    // Flushing consumed locked images.
+    resource_provider_->ReleaseLockedImages();
+  }
+}
+
+bool CanvasResourceHost::IsResourceValid() {
+  if (IsHibernating()) {
+    return true;
+  }
+  if (!cc_layer_ || (preferred_2d_raster_mode_ == RasterModeHint::kPreferCPU)) {
+    return true;
+  }
+  if (context_lost_) {
+    return false;
+  }
+  if (resource_provider_ && resource_provider_->IsAccelerated() &&
+      resource_provider_->IsGpuContextLost()) {
+    context_lost_ = true;
+    ReplaceResourceProvider(nullptr);
+    NotifyGpuContextLost();
+    return false;
+  }
+  return !!GetOrCreateCanvasResourceProvider(preferred_2d_raster_mode_);
+}
+
 }  // namespace blink
diff --git a/third_party/blink/renderer/platform/graphics/canvas_resource_host.h b/third_party/blink/renderer/platform/graphics/canvas_resource_host.h
index 317002b..7e0484a 100644
--- a/third_party/blink/renderer/platform/graphics/canvas_resource_host.h
+++ b/third_party/blink/renderer/platform/graphics/canvas_resource_host.h
@@ -7,6 +7,8 @@
 
 #include <memory>
 
+#include "cc/layers/texture_layer.h"
+#include "cc/layers/texture_layer_client.h"
 #include "third_party/blink/renderer/platform/graphics/graphics_types.h"
 #include "third_party/blink/renderer/platform/graphics/paint/paint_canvas.h"
 #include "third_party/blink/renderer/platform/platform_export.h"
@@ -15,16 +17,23 @@
 
 namespace cc {
 class PaintCanvas;
-}
+}  // namespace cc
 
 namespace blink {
+
 class CanvasResourceProvider;
 class SharedContextRateLimiter;
 
-class PLATFORM_EXPORT CanvasResourceHost {
+class PLATFORM_EXPORT CanvasResourceHost : public cc::TextureLayerClient {
  public:
   explicit CanvasResourceHost(gfx::Size size);
-  virtual ~CanvasResourceHost();
+  ~CanvasResourceHost() override;
+
+  // cc::TextureLayerClient implementation.
+  bool PrepareTransferableResource(
+      cc::SharedBitmapIdRegistrar* bitmap_registrar,
+      viz::TransferableResource* out_resource,
+      viz::ReleaseCallback* out_release_callback) override;
 
   virtual void NotifyGpuContextLost() = 0;
   virtual void SetNeedsCompositingUpdate() = 0;
@@ -37,6 +46,7 @@
   virtual CanvasResourceProvider* GetOrCreateCanvasResourceProviderImpl(
       RasterModeHint hint) = 0;
   bool IsComposited() const;
+  bool IsResourceValid();
   gfx::Size Size() const { return size_; }
   virtual void SetSize(gfx::Size size) { size_ = size; }
 
@@ -44,15 +54,16 @@
   cc::PaintFlags::FilterQuality FilterQuality() const {
     return filter_quality_;
   }
-  void SetHdrMetadata(const gfx::HDRMetadata& hdr_metadata) {
-    hdr_metadata_ = hdr_metadata;
-  }
+  void SetHdrMetadata(const gfx::HDRMetadata& hdr_metadata);
   const gfx::HDRMetadata& GetHDRMetadata() const { return hdr_metadata_; }
 
   virtual bool LowLatencyEnabled() const { return false; }
 
   CanvasResourceProvider* ResourceProvider() const;
 
+  // TODO(junov): remove "virtual" when refactoring is complete.
+  virtual void FlushRecording(FlushReason reason);
+
   std::unique_ptr<CanvasResourceProvider> ReplaceResourceProvider(
       std::unique_ptr<CanvasResourceProvider>);
 
@@ -80,18 +91,28 @@
   unsigned IncrementFramesSinceLastCommit() {
     return ++frames_since_last_commit_;
   }
-  void ResetFramesSinceLastCommit() { frames_since_last_commit_ = 0; }
   void AlwaysEnableRasterTimersForTesting() {
     always_enable_raster_timers_for_testing_ = true;
   }
 
   // Actual RasterMode used for rendering 2d primitives.
   RasterMode GetRasterMode() const;
+  void ResetLayer();
+  void ClearLayerTexture();
+  cc::TextureLayer* GetOrCreateCcLayerIfNeeded();
+  cc::TextureLayer* CcLayer() { return cc_layer_.get(); }
+  void DoPaintInvalidation(const gfx::Rect& dirty_rect);
+  void SetOpacityMode(OpacityMode opacity_mode);
+
+  // Temporary, for canvas_2d_layer_bridge use.
+  bool context_lost() { return context_lost_; }
+  void set_context_lost(bool value) { context_lost_ = value; }
 
  private:
   void InitializeForRecording(cc::PaintCanvas* canvas);
 
   bool is_displayed_ = false;
+  bool context_lost_ = false;
   unsigned frames_since_last_commit_ = 0;
   std::unique_ptr<SharedContextRateLimiter> rate_limiter_;
   std::unique_ptr<CanvasResourceProvider> resource_provider_;
@@ -101,6 +122,8 @@
   RasterModeHint preferred_2d_raster_mode_ = RasterModeHint::kPreferCPU;
   gfx::Size size_;
   bool always_enable_raster_timers_for_testing_ = false;
+  scoped_refptr<cc::TextureLayer> cc_layer_;
+  OpacityMode opacity_mode_ = kNonOpaque;
 };
 
 }  // namespace blink
diff --git a/third_party/blink/renderer/platform/graphics/gpu/shared_gpu_context_test.cc b/third_party/blink/renderer/platform/graphics/gpu/shared_gpu_context_test.cc
index 7dafce6..5f7d855 100644
--- a/third_party/blink/renderer/platform/graphics/gpu/shared_gpu_context_test.cc
+++ b/third_party/blink/renderer/platform/graphics/gpu/shared_gpu_context_test.cc
@@ -178,7 +178,7 @@
       std::make_unique<FakeCanvasResourceHost>(size);
   host->SetPreferred2DRasterMode(RasterModeHint::kPreferGPU);
   std::unique_ptr<Canvas2DLayerBridge> bridge =
-      std::make_unique<Canvas2DLayerBridge>(kNonOpaque);
+      std::make_unique<Canvas2DLayerBridge>();
   bridge->SetCanvasResourceHost(host.get());
   EXPECT_EQ(host->GetRasterMode(), RasterMode::kGPU);
   EXPECT_TRUE(SharedGpuContext::IsValidWithoutRestoring());
diff --git a/third_party/blink/renderer/platform/graphics/test/fake_canvas_resource_host.h b/third_party/blink/renderer/platform/graphics/test/fake_canvas_resource_host.h
index 7f90894..95edec3 100644
--- a/third_party/blink/renderer/platform/graphics/test/fake_canvas_resource_host.h
+++ b/third_party/blink/renderer/platform/graphics/test/fake_canvas_resource_host.h
@@ -20,6 +20,7 @@
 class FakeCanvasResourceHost : public CanvasResourceHost {
  public:
   explicit FakeCanvasResourceHost(gfx::Size size) : CanvasResourceHost(size) {}
+  ~FakeCanvasResourceHost() override = default;
   void NotifyGpuContextLost() override {}
   void SetNeedsCompositingUpdate() override {}
   void RestoreCanvasMatrixClipStack(cc::PaintCanvas*) const override {}
diff --git a/third_party/blink/renderer/platform/loader/fetch/DEPS b/third_party/blink/renderer/platform/loader/fetch/DEPS
index e7530d1..118eb3f0 100644
--- a/third_party/blink/renderer/platform/loader/fetch/DEPS
+++ b/third_party/blink/renderer/platform/loader/fetch/DEPS
@@ -14,5 +14,8 @@
 specific_include_rules = {
   "resource_request.cc": [
     "+net/base/request_priority.h",
+  ],
+  "fetch_utils.h": [
+    "+net/traffic_annotation/network_traffic_annotation.h",
   ]
 }
diff --git a/third_party/blink/renderer/platform/loader/fetch/fetch_utils.cc b/third_party/blink/renderer/platform/loader/fetch/fetch_utils.cc
index b70ff9c..b4a1ea1 100644
--- a/third_party/blink/renderer/platform/loader/fetch/fetch_utils.cc
+++ b/third_party/blink/renderer/platform/loader/fetch/fetch_utils.cc
@@ -5,6 +5,7 @@
 #include "third_party/blink/renderer/platform/loader/fetch/fetch_utils.h"
 
 #include "services/network/public/cpp/cors/cors.h"
+#include "services/network/public/cpp/resource_request.h"
 #include "third_party/blink/renderer/platform/network/http_header_map.h"
 #include "third_party/blink/renderer/platform/network/http_names.h"
 #include "third_party/blink/renderer/platform/network/http_parsers.h"
@@ -65,4 +66,112 @@
   return value.StripWhiteSpace(IsHTTPWhitespace);
 }
 
+// static
+// We have this function at the bottom of this file because it confuses
+// syntax highliting.
+// TODO(kinuko): Deprecate this, we basically need to know the destination
+// and if it's for favicon or not.
+net::NetworkTrafficAnnotationTag FetchUtils::GetTrafficAnnotationTag(
+    const network::ResourceRequest& request) {
+  if (request.is_favicon) {
+    return net::DefineNetworkTrafficAnnotation("favicon_loader", R"(
+      semantics {
+        sender: "Blink Resource Loader"
+        description:
+          "Chrome sends a request to download favicon for a URL."
+        trigger:
+          "Navigating to a URL."
+        data: "None."
+        destination: WEBSITE
+      }
+      policy {
+        cookies_allowed: YES
+        cookies_store: "user"
+        setting: "These requests cannot be disabled in settings."
+        policy_exception_justification:
+          "Not implemented."
+      })");
+  }
+  switch (request.destination) {
+    case network::mojom::RequestDestination::kDocument:
+    case network::mojom::RequestDestination::kIframe:
+    case network::mojom::RequestDestination::kFrame:
+    case network::mojom::RequestDestination::kFencedframe:
+    case network::mojom::RequestDestination::kWebIdentity:
+      NOTREACHED();
+      [[fallthrough]];
+
+    case network::mojom::RequestDestination::kEmpty:
+    case network::mojom::RequestDestination::kAudio:
+    case network::mojom::RequestDestination::kAudioWorklet:
+    case network::mojom::RequestDestination::kFont:
+    case network::mojom::RequestDestination::kImage:
+    case network::mojom::RequestDestination::kManifest:
+    case network::mojom::RequestDestination::kPaintWorklet:
+    case network::mojom::RequestDestination::kReport:
+    case network::mojom::RequestDestination::kScript:
+    case network::mojom::RequestDestination::kServiceWorker:
+    case network::mojom::RequestDestination::kSharedWorker:
+    case network::mojom::RequestDestination::kStyle:
+    case network::mojom::RequestDestination::kTrack:
+    case network::mojom::RequestDestination::kVideo:
+    case network::mojom::RequestDestination::kWebBundle:
+    case network::mojom::RequestDestination::kWorker:
+    case network::mojom::RequestDestination::kXslt:
+    case network::mojom::RequestDestination::kDictionary:
+      return net::DefineNetworkTrafficAnnotation("blink_resource_loader", R"(
+      semantics {
+        sender: "Blink Resource Loader"
+        description:
+          "Blink-initiated request, which includes all resources for "
+          "normal page loads, chrome URLs, and downloads."
+        trigger:
+          "The user navigates to a URL or downloads a file. Also when a "
+          "webpage, ServiceWorker, or chrome:// uses any network communication."
+        data: "Anything the initiator wants to send."
+        destination: OTHER
+      }
+      policy {
+        cookies_allowed: YES
+        cookies_store: "user"
+        setting: "These requests cannot be disabled in settings."
+        policy_exception_justification:
+          "Not implemented. Without these requests, Chrome will be unable "
+          "to load any webpage."
+      })");
+
+    case network::mojom::RequestDestination::kEmbed:
+    case network::mojom::RequestDestination::kObject:
+      return net::DefineNetworkTrafficAnnotation(
+          "blink_extension_resource_loader", R"(
+        semantics {
+          sender: "Blink Resource Loader"
+          description:
+            "Blink-initiated request for resources required for NaCl instances "
+            "tagged with <embed> or <object>, or installed extensions."
+          trigger:
+            "An extension or NaCl instance may initiate a request at any time, "
+            "even in the background."
+          data: "Anything the initiator wants to send."
+          destination: OTHER
+        }
+        policy {
+          cookies_allowed: YES
+          cookies_store: "user"
+          setting:
+            "These requests cannot be disabled in settings, but they are "
+            "sent only if user installs extensions."
+          chrome_policy {
+            ExtensionInstallBlocklist {
+              ExtensionInstallBlocklist: {
+                entries: '*'
+              }
+            }
+          }
+        })");
+  }
+
+  return net::NetworkTrafficAnnotationTag::NotReached();
+}
+
 }  // namespace blink
diff --git a/third_party/blink/renderer/platform/loader/fetch/fetch_utils.h b/third_party/blink/renderer/platform/loader/fetch/fetch_utils.h
index 16349bd1..0494bdd 100644
--- a/third_party/blink/renderer/platform/loader/fetch/fetch_utils.h
+++ b/third_party/blink/renderer/platform/loader/fetch/fetch_utils.h
@@ -5,11 +5,15 @@
 #ifndef THIRD_PARTY_BLINK_RENDERER_PLATFORM_LOADER_FETCH_FETCH_UTILS_H_
 #define THIRD_PARTY_BLINK_RENDERER_PLATFORM_LOADER_FETCH_FETCH_UTILS_H_
 
-#include "third_party/blink/public/platform/web_url_request.h"
+#include "net/traffic_annotation/network_traffic_annotation.h"
 #include "third_party/blink/renderer/platform/platform_export.h"
 #include "third_party/blink/renderer/platform/wtf/allocator/allocator.h"
 #include "third_party/blink/renderer/platform/wtf/forward.h"
 
+namespace network {
+struct ResourceRequest;
+}  // namespace network
+
 namespace blink {
 
 class PLATFORM_EXPORT FetchUtils {
@@ -20,6 +24,9 @@
   static bool IsForbiddenResponseHeaderName(const String& name);
   static AtomicString NormalizeMethod(const AtomicString& method);
   static String NormalizeHeaderValue(const String& value);
+
+  static net::NetworkTrafficAnnotationTag GetTrafficAnnotationTag(
+      const network::ResourceRequest& request);
 };
 
 }  // namespace blink
diff --git a/third_party/blink/renderer/platform/loader/fetch/url_loader/url_loader.cc b/third_party/blink/renderer/platform/loader/fetch/url_loader/url_loader.cc
index 63a7a6e..d59a1c13 100644
--- a/third_party/blink/renderer/platform/loader/fetch/url_loader/url_loader.cc
+++ b/third_party/blink/renderer/platform/loader/fetch/url_loader/url_loader.cc
@@ -78,6 +78,7 @@
 #include "third_party/blink/public/web/web_security_policy.h"
 #include "third_party/blink/renderer/platform/blob/blob_data.h"
 #include "third_party/blink/renderer/platform/loader/fetch/back_forward_cache_loader_helper.h"
+#include "third_party/blink/renderer/platform/loader/fetch/fetch_utils.h"
 #include "third_party/blink/renderer/platform/loader/fetch/url_loader/resource_request_client.h"
 #include "third_party/blink/renderer/platform/loader/fetch/url_loader/resource_request_sender.h"
 #include "third_party/blink/renderer/platform/loader/fetch/url_loader/sync_load_response.h"
@@ -154,9 +155,6 @@
  private:
   ~Context() override;
 
-  static net::NetworkTrafficAnnotationTag GetTrafficAnnotationTag(
-      network::ResourceRequest* request);
-
   URLLoader* loader_;
 
   KURL url_;
@@ -317,7 +315,7 @@
           download_to_blob_registry.InitWithNewPipeAndPassReceiver());
     }
     net::NetworkTrafficAnnotationTag tag =
-        GetTrafficAnnotationTag(request.get());
+        FetchUtils::GetTrafficAnnotationTag(*request);
     resource_request_sender_->SendSync(
         std::move(request), tag, loader_options, sync_load_response,
         url_loader_factory_, std::move(throttles), timeout_interval,
@@ -329,7 +327,8 @@
 
   TRACE_EVENT_WITH_FLOW0("loading", "URLLoader::Context::Start", this,
                          TRACE_EVENT_FLAG_FLOW_OUT);
-  net::NetworkTrafficAnnotationTag tag = GetTrafficAnnotationTag(request.get());
+  net::NetworkTrafficAnnotationTag tag =
+      FetchUtils::GetTrafficAnnotationTag(*request);
   request_id_ = resource_request_sender_->SendAsync(
       std::move(request), GetMaybeUnfreezableTaskRunner(), tag, loader_options,
       cors_exempt_header_list_, base::WrapRefCounted(this), url_loader_factory_,
@@ -618,114 +617,6 @@
       std::move(resource_request_sender));
 }
 
-// static
-// We have this function at the bottom of this file because it confuses
-// syntax highliting.
-// TODO(kinuko): Deprecate this, we basically need to know the destination
-// and if it's for favicon or not.
-net::NetworkTrafficAnnotationTag URLLoader::Context::GetTrafficAnnotationTag(
-    network::ResourceRequest* request) {
-  if (request->is_favicon) {
-    return net::DefineNetworkTrafficAnnotation("favicon_loader", R"(
-      semantics {
-        sender: "Blink Resource Loader"
-        description:
-          "Chrome sends a request to download favicon for a URL."
-        trigger:
-          "Navigating to a URL."
-        data: "None."
-        destination: WEBSITE
-      }
-      policy {
-        cookies_allowed: YES
-        cookies_store: "user"
-        setting: "These requests cannot be disabled in settings."
-        policy_exception_justification:
-          "Not implemented."
-      })");
-  }
-  switch (request->destination) {
-    case network::mojom::RequestDestination::kDocument:
-    case network::mojom::RequestDestination::kIframe:
-    case network::mojom::RequestDestination::kFrame:
-    case network::mojom::RequestDestination::kFencedframe:
-    case network::mojom::RequestDestination::kWebIdentity:
-      NOTREACHED();
-      [[fallthrough]];
-
-    case network::mojom::RequestDestination::kEmpty:
-    case network::mojom::RequestDestination::kAudio:
-    case network::mojom::RequestDestination::kAudioWorklet:
-    case network::mojom::RequestDestination::kFont:
-    case network::mojom::RequestDestination::kImage:
-    case network::mojom::RequestDestination::kManifest:
-    case network::mojom::RequestDestination::kPaintWorklet:
-    case network::mojom::RequestDestination::kReport:
-    case network::mojom::RequestDestination::kScript:
-    case network::mojom::RequestDestination::kServiceWorker:
-    case network::mojom::RequestDestination::kSharedWorker:
-    case network::mojom::RequestDestination::kStyle:
-    case network::mojom::RequestDestination::kTrack:
-    case network::mojom::RequestDestination::kVideo:
-    case network::mojom::RequestDestination::kWebBundle:
-    case network::mojom::RequestDestination::kWorker:
-    case network::mojom::RequestDestination::kXslt:
-    case network::mojom::RequestDestination::kDictionary:
-      return net::DefineNetworkTrafficAnnotation("blink_resource_loader", R"(
-      semantics {
-        sender: "Blink Resource Loader"
-        description:
-          "Blink-initiated request, which includes all resources for "
-          "normal page loads, chrome URLs, and downloads."
-        trigger:
-          "The user navigates to a URL or downloads a file. Also when a "
-          "webpage, ServiceWorker, or chrome:// uses any network communication."
-        data: "Anything the initiator wants to send."
-        destination: OTHER
-      }
-      policy {
-        cookies_allowed: YES
-        cookies_store: "user"
-        setting: "These requests cannot be disabled in settings."
-        policy_exception_justification:
-          "Not implemented. Without these requests, Chrome will be unable "
-          "to load any webpage."
-      })");
-
-    case network::mojom::RequestDestination::kEmbed:
-    case network::mojom::RequestDestination::kObject:
-      return net::DefineNetworkTrafficAnnotation(
-          "blink_extension_resource_loader", R"(
-        semantics {
-          sender: "Blink Resource Loader"
-          description:
-            "Blink-initiated request for resources required for NaCl instances "
-            "tagged with <embed> or <object>, or installed extensions."
-          trigger:
-            "An extension or NaCl instance may initiate a request at any time, "
-            "even in the background."
-          data: "Anything the initiator wants to send."
-          destination: OTHER
-        }
-        policy {
-          cookies_allowed: YES
-          cookies_store: "user"
-          setting:
-            "These requests cannot be disabled in settings, but they are "
-            "sent only if user installs extensions."
-          chrome_policy {
-            ExtensionInstallBlocklist {
-              ExtensionInstallBlocklist: {
-                entries: '*'
-              }
-            }
-          }
-        })");
-  }
-
-  return net::NetworkTrafficAnnotationTag::NotReached();
-}
-
 void URLLoader::Context::SetResourceRequestSenderForTesting(
     std::unique_ptr<blink::ResourceRequestSender> resource_request_sender) {
   resource_request_sender_ = std::move(resource_request_sender);
diff --git a/third_party/blink/renderer/platform/runtime_enabled_features.json5 b/third_party/blink/renderer/platform/runtime_enabled_features.json5
index f1e22fe2..bd5fd5e 100644
--- a/third_party/blink/renderer/platform/runtime_enabled_features.json5
+++ b/third_party/blink/renderer/platform/runtime_enabled_features.json5
@@ -2107,6 +2107,11 @@
       status: "experimental",
     },
     {
+      // If enabled, IntersectionObserverScrollMargin will be parsed.
+      name: "IntersectionObserverScrollMargin",
+      status: "experimental",
+    },
+    {
       name: "IntersectionOptimization",
       status: "experimental",
     },
diff --git a/third_party/blink/renderer/platform/video_capture/video_capture_impl.cc b/third_party/blink/renderer/platform/video_capture/video_capture_impl.cc
index df9f950..a77b6cf 100644
--- a/third_party/blink/renderer/platform/video_capture/video_capture_impl.cc
+++ b/third_party/blink/renderer/platform/video_capture/video_capture_impl.cc
@@ -689,18 +689,14 @@
 // Information about a video capture client of ours.
 struct VideoCaptureImpl::ClientInfo {
   ClientInfo() = default;
-
   ClientInfo(const ClientInfo& other) = default;
-
   ~ClientInfo() = default;
 
   media::VideoCaptureParams params;
-
   VideoCaptureStateUpdateCB state_update_cb;
-
   VideoCaptureDeliverFrameCB deliver_frame_cb;
-
   VideoCaptureCropVersionCB crop_version_cb;
+  VideoCaptureNotifyFrameDroppedCB frame_dropped_cb;
 };
 
 VideoCaptureImpl::VideoCaptureImpl(
@@ -768,7 +764,8 @@
     const media::VideoCaptureParams& params,
     const VideoCaptureStateUpdateCB& state_update_cb,
     const VideoCaptureDeliverFrameCB& deliver_frame_cb,
-    const VideoCaptureCropVersionCB& crop_version_cb) {
+    const VideoCaptureCropVersionCB& crop_version_cb,
+    const VideoCaptureNotifyFrameDroppedCB& frame_dropped_cb) {
   DVLOG(1) << __func__ << " |device_id_| = " << device_id_;
   DCHECK_CALLED_ON_VALID_THREAD(io_thread_checker_);
   OnLog("VideoCaptureImpl got request to start capture.");
@@ -778,6 +775,7 @@
   client_info.state_update_cb = state_update_cb;
   client_info.deliver_frame_cb = deliver_frame_cb;
   client_info.crop_version_cb = crop_version_cb;
+  client_info.frame_dropped_cb = frame_dropped_cb;
 
   switch (state_) {
     case VIDEO_CAPTURE_STATE_STARTING:
@@ -1167,6 +1165,14 @@
   }
 }
 
+void VideoCaptureImpl::OnFrameDroppedEarly(
+    media::VideoCaptureFrameDropReason reason) {
+  DCHECK_CALLED_ON_VALID_THREAD(io_thread_checker_);
+  for (const auto& client : clients_) {
+    client.second.frame_dropped_cb.Run(reason);
+  }
+}
+
 void VideoCaptureImpl::OnNewCropVersion(uint32_t crop_version) {
   DCHECK_CALLED_ON_VALID_THREAD(io_thread_checker_);
 
diff --git a/third_party/blink/renderer/platform/video_capture/video_capture_impl.h b/third_party/blink/renderer/platform/video_capture/video_capture_impl.h
index 9443e922..0687407 100644
--- a/third_party/blink/renderer/platform/video_capture/video_capture_impl.h
+++ b/third_party/blink/renderer/platform/video_capture/video_capture_impl.h
@@ -80,11 +80,14 @@
   // |crop_version_cb| will be called when it is guaranteed that all
   // subsequent frames |deliver_frame_cb| is called for, have a crop version
   // that is equal-to-or-greater-than the given crop version.
+  // |frame_dropped_cb| will be called when a frame was dropped prior to
+  // delivery (i.e. |deliver_frame_cb| was not called for this frame).
   void StartCapture(int client_id,
                     const media::VideoCaptureParams& params,
                     const VideoCaptureStateUpdateCB& state_update_cb,
                     const VideoCaptureDeliverFrameCB& deliver_frame_cb,
-                    const VideoCaptureCropVersionCB& crop_version_cb);
+                    const VideoCaptureCropVersionCB& crop_version_cb,
+                    const VideoCaptureNotifyFrameDroppedCB& frame_dropped_cb);
 
   // Stop capturing. |client_id| is the identifier used to call StartCapture.
   void StopCapture(int client_id);
@@ -126,6 +129,7 @@
       media::mojom::blink::ReadyBufferPtr buffer,
       Vector<media::mojom::blink::ReadyBufferPtr> scaled_buffers) override;
   void OnBufferDestroyed(int32_t buffer_id) override;
+  void OnFrameDroppedEarly(media::VideoCaptureFrameDropReason reason) override;
   void OnNewCropVersion(uint32_t crop_version) override;
 
   void ProcessFeedback(const media::VideoCaptureFeedback& feedback);
diff --git a/third_party/blink/renderer/platform/video_capture/video_capture_impl_test.cc b/third_party/blink/renderer/platform/video_capture/video_capture_impl_test.cc
index 28eed0a..92cb8c8 100644
--- a/third_party/blink/renderer/platform/video_capture/video_capture_impl_test.cc
+++ b/third_party/blink/renderer/platform/video_capture/video_capture_impl_test.cc
@@ -191,6 +191,7 @@
                void(scoped_refptr<media::VideoFrame>,
                     std::vector<scoped_refptr<media::VideoFrame>>,
                     base::TimeTicks));
+  MOCK_METHOD1(OnFrameDroppedEarly, void(media::VideoCaptureFrameDropReason));
   MOCK_METHOD1(OnStateUpdate, void(VideoCaptureState));
   MOCK_METHOD1(OnDeviceFormatsInUse,
                void(const Vector<media::VideoCaptureFormat>&));
@@ -202,10 +203,12 @@
         &VideoCaptureImplTest::OnStateUpdate, base::Unretained(this));
     const auto frame_ready_callback = WTF::BindRepeating(
         &VideoCaptureImplTest::OnFrameReady, base::Unretained(this));
+    const auto frame_dropped_callback = WTF::BindRepeating(
+        &VideoCaptureImplTest::OnFrameDroppedEarly, base::Unretained(this));
 
-    video_capture_impl_->StartCapture(client_id, params, state_update_callback,
-                                      frame_ready_callback,
-                                      /*crop_version_cb=*/base::DoNothing());
+    video_capture_impl_->StartCapture(
+        client_id, params, state_update_callback, frame_ready_callback,
+        /*crop_version_cb=*/base::DoNothing(), frame_dropped_callback);
   }
 
   void StopCapture(int client_id) {
@@ -625,6 +628,17 @@
   testing_io_thread.Stop();
 }
 
+TEST_F(VideoCaptureImplTest, OnFrameDroppedEarly) {
+  EXPECT_CALL(mock_video_capture_host_, DoStart(_, session_id_, params_small_));
+  EXPECT_CALL(*this, OnFrameDroppedEarly(_));
+  EXPECT_CALL(mock_video_capture_host_, Stop(_));
+
+  StartCapture(0, params_small_);
+  video_capture_impl_->OnFrameDroppedEarly(
+      media::VideoCaptureFrameDropReason::kBufferPoolMaxBufferCountExceeded);
+  StopCapture(0);
+}
+
 TEST_F(VideoCaptureImplTest, BufferReceivedAfterStop) {
   const int kArbitraryBufferId = 12;
 
diff --git a/third_party/blink/renderer/platform/video_capture/video_capturer_source.h b/third_party/blink/renderer/platform/video_capture/video_capturer_source.h
index 1c05690..db5965d 100644
--- a/third_party/blink/renderer/platform/video_capture/video_capturer_source.h
+++ b/third_party/blink/renderer/platform/video_capture/video_capturer_source.h
@@ -54,10 +54,14 @@
   // |crop_version_callback| will be called when it is guaranteed that all
   // subsequent frames |new_frame_callback| is called for, have a crop version
   // that is equal-to-or-greater-than the given crop version.
+  //
+  // |frame_dropped_callback| will be called when a frame was dropped prior to
+  // delivery (i.e. |new_frame_callback| was not called for this frame).
   virtual void StartCapture(
       const media::VideoCaptureParams& params,
       const VideoCaptureDeliverFrameCB& new_frame_callback,
       const VideoCaptureCropVersionCB& crop_version_callback,
+      const VideoCaptureNotifyFrameDroppedCB& frame_dropped_callback,
       const RunningCallback& running_callback) = 0;
 
   // Returns a callback for providing the feedback from the consumer.
diff --git a/third_party/blink/tools/blinkpy/common/system/filesystem_unittest.py b/third_party/blink/tools/blinkpy/common/system/filesystem_unittest.py
index 7f6959f..271c882 100644
--- a/third_party/blink/tools/blinkpy/common/system/filesystem_unittest.py
+++ b/third_party/blink/tools/blinkpy/common/system/filesystem_unittest.py
@@ -57,10 +57,9 @@
         fs.chdir(self.orig_cwd)
 
     def teardown_generic_test_dir(self):
-        success = self.fs.remove_contents(self.generic_test_dir)
+        self.fs.rmtree(self.generic_test_dir)
         self.fs.chdir(self.orig_cwd)
         self.generic_test_dir = None
-        self.assertTrue(success)
 
     def test_glob__trailing_asterisk(self):
         self.fs.chdir(self.generic_test_dir)
diff --git a/third_party/blink/web_tests/TestExpectations b/third_party/blink/web_tests/TestExpectations
index 296378b8..956be09f 100644
--- a/third_party/blink/web_tests/TestExpectations
+++ b/third_party/blink/web_tests/TestExpectations
@@ -582,18 +582,6 @@
 
 crbug.com/1481244 external/wpt/css/css-masking/animations/clip-path-interpolation-xywh-rect.html [ Crash ]
 
-# Add Scroll Margin Support to Intersection Observer
-crbug.com/1469500 external/wpt/intersection-observer/scroll-margin.html [ Failure ]
-crbug.com/1469500 external/wpt/intersection-observer/scroll-margin-4-val.html [ Failure ]
-crbug.com/1469500 external/wpt/intersection-observer/scroll-margin-horizontal.html [ Failure ]
-crbug.com/1469500 external/wpt/intersection-observer/scroll-margin-percent.html [ Failure ]
-crbug.com/1469500 external/wpt/intersection-observer/scroll-margin-clip-path.html [ Failure ]
-crbug.com/1469500 external/wpt/intersection-observer/scroll-and-root-margin.html [ Failure ]
-crbug.com/1469500 external/wpt/intersection-observer/scroll-margin-dynamic.html [ Failure ]
-crbug.com/1469500 external/wpt/intersection-observer/scroll-margin-nested.html [ Failure ]
-crbug.com/1469500 external/wpt/intersection-observer/scroll-margin-nested-2.html [ Failure ]
-crbug.com/1469500 external/wpt/intersection-observer/scroll-margin-nested-3.html [ Failure ]
-
 # Fails, at a minimum, due to lack of support for CSS mask property in html elements
 crbug.com/432153 external/wpt/svg/painting/reftests/display-none-mask.html [ Crash Failure Pass Timeout ]
 
@@ -2515,6 +2503,7 @@
 crbug.com/1350027 [ Mac ] external/wpt/css/css-values/ic-unit-003.html [ Failure ]
 crbug.com/1350027 [ Mac ] external/wpt/css/css-values/ic-unit-009.html [ Failure ]
 crbug.com/1350027 [ Mac ] external/wpt/css/css-values/ic-unit-010.html [ Failure ]
+crbug.com/246571 external/wpt/css/css-values/attr-notype-fallback.html [ Failure ]
 
 crbug.com/1069300 external/wpt/css/css-pseudo/active-selection-063.html [ Failure ]
 crbug.com/1108711 external/wpt/css/css-pseudo/active-selection-057.html [ Failure ]
@@ -2720,7 +2709,6 @@
 crbug.com/626703 [ Mac13 ] virtual/threaded-prefer-compositing/external/wpt/scroll-animations/css/view-timeline-range-animation.html [ Timeout ]
 crbug.com/626703 [ Mac13 ] virtual/threaded/external/wpt/scroll-animations/css/view-timeline-range-animation.html [ Timeout ]
 crbug.com/626703 [ Win10.20h2 ] virtual/threaded/external/wpt/css/css-backgrounds/background-attachment-margin-root-001.html [ Failure ]
-crbug.com/626703 external/wpt/css/css-values/attr-notype-fallback.html [ Failure ]
 crbug.com/626703 external/wpt/css/css-align/blocks/align-content-block-001.html [ Failure ]
 crbug.com/626703 external/wpt/css/css-align/blocks/align-content-block-002.html [ Failure ]
 crbug.com/626703 external/wpt/css/css-align/blocks/align-content-block-003.html [ Failure ]
@@ -4317,9 +4305,6 @@
 crbug.com/1008483 virtual/backface-visibility-interop/external/wpt/css/css-transforms/backface-visibility-hidden-005.tentative.html [ Pass ]
 crbug.com/1008483 virtual/backface-visibility-interop/external/wpt/css/css-transforms/backface-visibility-hidden-animated-002.html [ Pass ]
 
-# Temporarily disabled to land DevTools heap snapshot CL
-crbug.com/1442410 http/tests/devtools/profiler/heap-snapshot.js [ Failure Pass Timeout ]
-
 # Tests that expect the DetailsStyling feature to be disabled:
 crbug.com/1469418 external/wpt/html/rendering/the-details-element/details-display-property-is-ignored.html [ Failure ]
 crbug.com/1469418 virtual/details-styling-disabled/external/wpt/html/rendering/the-details-element/details-display-property-is-ignored.html [ Pass ]
diff --git a/third_party/blink/web_tests/css3/motion-path/offset-position.html b/third_party/blink/web_tests/css3/motion-path/offset-position.html
index 90b43a8..b9d0fbc 100644
--- a/third_party/blink/web_tests/css3/motion-path/offset-position.html
+++ b/third_party/blink/web_tests/css3/motion-path/offset-position.html
@@ -30,8 +30,8 @@
 test(function() {
     var element = document.createElement('div');
     document.body.appendChild(element);
-    assert_equals(getComputedStyle(element, null).offsetPosition, 'auto');
-}, 'offset-position default is auto');
+    assert_equals(getComputedStyle(element, null).offsetPosition, 'normal');
+}, 'offset-position default is normal');
 
 test(function() {
     assert_equals(getComputedStyle(container, null).offsetPosition, '30% 40%');
@@ -42,11 +42,11 @@
 }, 'offset-position can explicitly inherited');
 
 test(function() {
-    assert_equals(getComputedStyle(child2, null).offsetPosition, 'auto');
+    assert_equals(getComputedStyle(child2, null).offsetPosition, 'normal');
 }, 'offset-position is not inherited by default');
 
 test(function() {
-    assert_equals(getComputedStyle(child3, null).offsetPosition, 'auto');
+    assert_equals(getComputedStyle(child3, null).offsetPosition, 'normal');
 }, 'offset-position may not use three values');
 
 test(function() {
diff --git a/third_party/blink/web_tests/external/wpt/css/motion/inheritance-expected.txt b/third_party/blink/web_tests/external/wpt/css/motion/inheritance-expected.txt
deleted file mode 100644
index 3cf3159..0000000
--- a/third_party/blink/web_tests/external/wpt/css/motion/inheritance-expected.txt
+++ /dev/null
@@ -1,13 +0,0 @@
-This is a testharness.js-based test.
-PASS Property offset-anchor has initial value auto
-PASS Property offset-anchor does not inherit
-PASS Property offset-distance has initial value 0px
-PASS Property offset-distance does not inherit
-PASS Property offset-path has initial value none
-PASS Property offset-path does not inherit
-FAIL Property offset-position has initial value normal assert_equals: expected "normal" but got "auto"
-PASS Property offset-position does not inherit
-PASS Property offset-rotate has initial value ['auto 0deg' or 'auto']
-PASS Property offset-rotate does not inherit
-Harness: the test ran to completion.
-
diff --git a/third_party/blink/web_tests/external/wpt/css/motion/parsing/offset-parsing-valid-expected.txt b/third_party/blink/web_tests/external/wpt/css/motion/parsing/offset-parsing-valid-expected.txt
deleted file mode 100644
index 37e86f3..0000000
--- a/third_party/blink/web_tests/external/wpt/css/motion/parsing/offset-parsing-valid-expected.txt
+++ /dev/null
@@ -1,32 +0,0 @@
-This is a testharness.js-based test.
-PASS e.style['offset'] = "100px none auto 90deg" should set the property value
-PASS e.style['offset'] = "100px" should set the property value
-FAIL e.style['offset'] = "normal none reverse" should set the property value assert_equals: serialization should be canonical expected "none reverse" but got "normal none reverse"
-PASS e.style['offset'] = "auto" should set the property value
-PASS e.style['offset'] = "center bottom path(\"M 1 2 V 3 Z\")" should set the property value
-PASS e.style['offset'] = "center center path(\"M 0 0 L 100 100 M 100 200 L 200 200 Z L 300 300 Z\") 100% 90deg / left bottom" should set the property value
-PASS e.style['offset'] = "left bottom ray(0rad closest-corner) 10px auto 30deg / right bottom" should set the property value
-PASS e.style['offset'] = "left top" should set the property value
-PASS e.style['offset'] = "none 30deg reverse" should set the property value
-PASS e.style['offset'] = "none 50px reverse 30deg" should set the property value
-PASS e.style['offset'] = "none calc(20% + 10px) auto" should set the property value
-PASS e.style['offset'] = "none reverse" should set the property value
-PASS e.style['offset'] = "path(\"M 0 0 H 1\") -200% auto" should set the property value
-PASS e.style['offset'] = "path(\"M 0 0 H 1\") -200%" should set the property value
-PASS e.style['offset'] = "path('M 0 0 H 1') 50px" should set the property value
-PASS e.style['offset'] = "path(\"M 0 0 H 1\") auto" should set the property value
-PASS e.style['offset'] = "path(\"M 0 0 H 1\") auto 0deg" should set the property value
-PASS e.style['offset'] = "path(\"M 0 0 H 1\") auto 0rad" should set the property value
-PASS e.style['offset'] = "path(\"M 0 0 H 1\") auto 0.5turn" should set the property value
-PASS e.style['offset'] = "path('M 0 0 H 1') reverse 30deg 50px" should set the property value
-PASS e.style['offset'] = "path(\"M 0 0 H 1\")" should set the property value
-PASS e.style['offset'] = "path('m 20 0 h 100') -7rad 8px / auto" should set the property value
-PASS e.style['offset'] = "path('m 0 30 v 100') -7rad 8px / left top" should set the property value
-PASS e.style['offset'] = "path('m 0 0 h 100') -7rad 8px" should set the property value
-PASS e.style['offset'] = "path(\"M 0 0 H 100\") 100px 0deg" should set the property value
-PASS e.style['offset'] = "path(  'm 1 2   v 3.00 z')" should set the property value
-PASS e.style['offset'] = "ray(farthest-corner 90deg) 1%" should set the property value
-PASS e.style['offset'] = "ray(sides 0deg) 50% 90deg auto" should set the property value
-PASS e.style['offset'] = "right bottom / left top" should set the property value
-Harness: the test ran to completion.
-
diff --git a/third_party/blink/web_tests/external/wpt/css/motion/parsing/offset-shorthand-expected.txt b/third_party/blink/web_tests/external/wpt/css/motion/parsing/offset-shorthand-expected.txt
deleted file mode 100644
index 66026ccc..0000000
--- a/third_party/blink/web_tests/external/wpt/css/motion/parsing/offset-shorthand-expected.txt
+++ /dev/null
@@ -1,21 +0,0 @@
-This is a testharness.js-based test.
-PASS e.style['offset'] = "left bottom ray(0rad closest-corner) 10px auto 30deg / right bottom" should set offset-anchor
-PASS e.style['offset'] = "left bottom ray(0rad closest-corner) 10px auto 30deg / right bottom" should set offset-distance
-PASS e.style['offset'] = "left bottom ray(0rad closest-corner) 10px auto 30deg / right bottom" should set offset-path
-PASS e.style['offset'] = "left bottom ray(0rad closest-corner) 10px auto 30deg / right bottom" should set offset-position
-PASS e.style['offset'] = "left bottom ray(0rad closest-corner) 10px auto 30deg / right bottom" should set offset-rotate
-PASS e.style['offset'] = "left bottom ray(0rad closest-corner) 10px auto 30deg / right bottom" should not set unrelated longhands
-PASS e.style['offset'] = "top right / top left" should set offset-anchor
-PASS e.style['offset'] = "top right / top left" should set offset-distance
-PASS e.style['offset'] = "top right / top left" should set offset-path
-PASS e.style['offset'] = "top right / top left" should set offset-position
-PASS e.style['offset'] = "top right / top left" should set offset-rotate
-PASS e.style['offset'] = "top right / top left" should not set unrelated longhands
-PASS e.style['offset'] = "path(\"M 0 0 H 2\") reverse 50%" should set offset-anchor
-PASS e.style['offset'] = "path(\"M 0 0 H 2\") reverse 50%" should set offset-distance
-PASS e.style['offset'] = "path(\"M 0 0 H 2\") reverse 50%" should set offset-path
-FAIL e.style['offset'] = "path(\"M 0 0 H 2\") reverse 50%" should set offset-position assert_equals: offset-position should be canonical expected "normal" but got "auto"
-PASS e.style['offset'] = "path(\"M 0 0 H 2\") reverse 50%" should set offset-rotate
-PASS e.style['offset'] = "path(\"M 0 0 H 2\") reverse 50%" should not set unrelated longhands
-Harness: the test ran to completion.
-
diff --git a/third_party/blink/web_tests/external/wpt/css/selectors/hash-collision.html b/third_party/blink/web_tests/external/wpt/css/selectors/hash-collision.html
new file mode 100644
index 0000000..04f15e7
--- /dev/null
+++ b/third_party/blink/web_tests/external/wpt/css/selectors/hash-collision.html
@@ -0,0 +1,45 @@
+<!DOCTYPE html>
+<html>
+  <head>
+    <title>Test string hash collision in bucketing</title>
+    <meta rel="author" href="mailto:sesse@chromium.org" title="Steinar H. Gunderson">
+    <link rel="help" href="https://www.w3.org/TR/css3-selectors/#selectors"/>
+    <script src="/resources/testharness.js"></script>
+    <script src="/resources/testharnessreport.js"></script>
+    <style>
+      /* These strings all collide in Blink's AtomicString hash function. */
+      .abetfx { --a: a; }
+      .adqcne { --b: b; }
+      .anztgy { --c: c; }
+      .jkeyea { --d: d; }
+      .ltjjvc { --e: e; }
+      .osniry { --f: f; }
+      .otgvil { --g: g; }
+      .ppvdzg { --h: h; }
+      .pwkbxn { --i: i; }
+      .rkefup { --j: j; }
+      .wsqwrf { --k: k; }
+      .zzpnvg { --l: l; }
+    </style>
+  </head>
+  <body>
+    <div id="d" class="abetfx adqcne anztgy jkeyea ltjjvc osniry otgvil ppvdzg pwkbxn rkefup wsqwrf zzpnvg">Some text</div>
+    <script>
+test(() => {
+  const cs = getComputedStyle(d);
+  assert_equals('a', cs.getPropertyValue('--a'));
+  assert_equals('b', cs.getPropertyValue('--b'));
+  assert_equals('c', cs.getPropertyValue('--c'));
+  assert_equals('d', cs.getPropertyValue('--d'));
+  assert_equals('e', cs.getPropertyValue('--e'));
+  assert_equals('f', cs.getPropertyValue('--f'));
+  assert_equals('g', cs.getPropertyValue('--g'));
+  assert_equals('h', cs.getPropertyValue('--h'));
+  assert_equals('i', cs.getPropertyValue('--i'));
+  assert_equals('j', cs.getPropertyValue('--j'));
+  assert_equals('k', cs.getPropertyValue('--k'));
+  assert_equals('l', cs.getPropertyValue('--l'));
+});
+    </script>
+  </body>
+</html>
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 1dd17793..30823938 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
@@ -256,7 +256,7 @@
 offset-anchor: auto
 offset-distance: 0px
 offset-path: none
-offset-position: auto
+offset-position: normal
 offset-rotate: auto 0deg
 opacity: 1
 order: 0
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 4389996..c46edb5 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
@@ -256,7 +256,7 @@
 offset-anchor: auto
 offset-distance: 0px
 offset-path: none
-offset-position: auto
+offset-position: normal
 offset-rotate: auto 0deg
 opacity: 1
 order: 0
diff --git a/third_party/blink/web_tests/fast/hidpi/offset-path-ray.html b/third_party/blink/web_tests/fast/hidpi/offset-path-ray.html
index 7cdb6a2..d267941 100644
--- a/third_party/blink/web_tests/fast/hidpi/offset-path-ray.html
+++ b/third_party/blink/web_tests/fast/hidpi/offset-path-ray.html
@@ -12,6 +12,7 @@
     transform-origin: 0px 0px;
     offset-path: ray(90deg closest-side);
     offset-distance: 30px;
+    offset-position: auto;
   }
 </style>
 
diff --git a/third_party/blink/web_tests/http/tests/devtools/profiler/heap-snapshot.js b/third_party/blink/web_tests/http/tests/devtools/profiler/heap-snapshot.js
index 892c28a..e10f6016 100644
--- a/third_party/blink/web_tests/http/tests/devtools/profiler/heap-snapshot.js
+++ b/third_party/blink/web_tests/http/tests/devtools/profiler/heap-snapshot.js
@@ -64,7 +64,7 @@
       function heapSnapshotNodeIteratorTest() {
         var snapshot = HeapProfilerTestRunner.createJSHeapSnapshotMockObject();
         var nodeRoot = snapshot.createNode(snapshot.rootNodeIndex);
-        var iterator = new HeapSnapshotWorker.HeapSnapshotNodeIterator(nodeRoot);
+        var iterator = new HeapSnapshotWorker.HeapSnapshot.HeapSnapshotNodeIterator(nodeRoot);
         var names = [];
         for (; iterator.hasNext(); iterator.next())
           names.push(iterator.item().name());
@@ -74,7 +74,7 @@
       function heapSnapshotEdgeSimpleTest() {
         var snapshot = HeapProfilerTestRunner.createJSHeapSnapshotMockObject();
         var nodeRoot = snapshot.createNode(snapshot.rootNodeIndex);
-        var edgeIterator = new HeapSnapshotWorker.HeapSnapshotEdgeIterator(nodeRoot);
+        var edgeIterator = new HeapSnapshotWorker.HeapSnapshot.HeapSnapshotEdgeIterator(nodeRoot);
         TestRunner.assertEquals(true, edgeIterator.hasNext(), 'has edges');
         var edge = edgeIterator.item();
         TestRunner.assertEquals('shortcut', edge.type(), 'edge type');
@@ -117,22 +117,22 @@
 
         // Now check against a real HeapSnapshot instance.
         names = [];
-        var snapshot = new HeapSnapshotWorker.JSHeapSnapshot(
-            HeapProfilerTestRunner.createHeapSnapshotMock(), new HeapSnapshotWorker.HeapSnapshotProgress());
+        var snapshot = new HeapSnapshotWorker.HeapSnapshot.JSHeapSnapshot(
+            HeapProfilerTestRunner.createHeapSnapshotMock(), new HeapSnapshotWorker.HeapSnapshot.HeapSnapshotProgress());
         depthFirstTraversal(snapshot.rootNode());
         TestRunner.assertEquals(reference, names.join(','), 'snapshot traversal');
       },
 
       function heapSnapshotSimpleTest() {
-        var snapshot = new HeapSnapshotWorker.JSHeapSnapshot(
-            HeapProfilerTestRunner.createHeapSnapshotMock(), new HeapSnapshotWorker.HeapSnapshotProgress());
+        var snapshot = new HeapSnapshotWorker.HeapSnapshot.JSHeapSnapshot(
+            HeapProfilerTestRunner.createHeapSnapshotMock(), new HeapSnapshotWorker.HeapSnapshot.HeapSnapshotProgress());
         TestRunner.assertEquals(6, snapshot.nodeCount, 'node count');
         TestRunner.assertEquals(20, snapshot.totalSize, 'total size');
       },
 
       function heapSnapshotContainmentEdgeIndexesTest() {
-        var snapshot = new HeapSnapshotWorker.JSHeapSnapshot(
-            HeapProfilerTestRunner.createHeapSnapshotMock(), new HeapSnapshotWorker.HeapSnapshotProgress());
+        var snapshot = new HeapSnapshotWorker.HeapSnapshot.JSHeapSnapshot(
+            HeapProfilerTestRunner.createHeapSnapshotMock(), new HeapSnapshotWorker.HeapSnapshot.HeapSnapshotProgress());
         var actual = snapshot.firstEdgeIndexes;
         var expected = [0, 6, 12, 18, 21, 21, 21];
         TestRunner.assertEquals(expected.length, actual.length, 'Edge indexes size');
@@ -141,8 +141,8 @@
       },
 
       function heapSnapshotPostOrderIndexTest() {
-        var snapshot = new HeapSnapshotWorker.JSHeapSnapshot(
-            HeapProfilerTestRunner.createHeapSnapshotMock(), new HeapSnapshotWorker.HeapSnapshotProgress());
+        var snapshot = new HeapSnapshotWorker.HeapSnapshot.JSHeapSnapshot(
+            HeapProfilerTestRunner.createHeapSnapshotMock(), new HeapSnapshotWorker.HeapSnapshot.HeapSnapshotProgress());
         var postOrderIndex2NodeOrdinal = snapshot.buildPostOrderIndex().postOrderIndex2NodeOrdinal;
         var expected = [5, 3, 4, 2, 1, 0];
         for (var i = 0; i < expected.length; ++i)
@@ -150,8 +150,8 @@
       },
 
       function heapSnapshotDominatorsTreeTest() {
-        var snapshot = new HeapSnapshotWorker.JSHeapSnapshot(
-            HeapProfilerTestRunner.createHeapSnapshotMock(), new HeapSnapshotWorker.HeapSnapshotProgress());
+        var snapshot = new HeapSnapshotWorker.HeapSnapshot.JSHeapSnapshot(
+            HeapProfilerTestRunner.createHeapSnapshotMock(), new HeapSnapshotWorker.HeapSnapshot.HeapSnapshotProgress());
         var result = snapshot.buildPostOrderIndex();
         var dominatorsTree =
             snapshot.buildDominatorTree(result.postOrderIndex2NodeOrdinal, result.nodeOrdinal2PostOrderIndex);
@@ -161,11 +161,11 @@
       },
 
       function heapSnapshotLocations() {
-        var snapshot = new HeapSnapshotWorker.JSHeapSnapshot(
-            HeapProfilerTestRunner.createHeapSnapshotMock(), new HeapSnapshotWorker.HeapSnapshotProgress());
+        var snapshot = new HeapSnapshotWorker.HeapSnapshot.JSHeapSnapshot(
+            HeapProfilerTestRunner.createHeapSnapshotMock(), new HeapSnapshotWorker.HeapSnapshot.HeapSnapshotProgress());
         const expected = new Map([
-          [0, new HeapSnapshotModel.Location(1, 2, 3)],
-          [18, new HeapSnapshotModel.Location(2, 3, 4)],
+          [0, new HeapSnapshotModel.HeapSnapshotModel.Location(1, 2, 3)],
+          [18, new HeapSnapshotModel.HeapSnapshotModel.Location(2, 3, 4)],
         ]);
 
         expected.forEach((expected_location, index) => {
@@ -177,8 +177,8 @@
       },
 
       function heapSnapshotRetainedSizeTest() {
-        var snapshot = new HeapSnapshotWorker.JSHeapSnapshot(
-            HeapProfilerTestRunner.createHeapSnapshotMock(), new HeapSnapshotWorker.HeapSnapshotProgress());
+        var snapshot = new HeapSnapshotWorker.HeapSnapshot.JSHeapSnapshot(
+            HeapProfilerTestRunner.createHeapSnapshotMock(), new HeapSnapshotWorker.HeapSnapshot.HeapSnapshotProgress());
         var actualRetainedSizes = new Array(snapshot.nodeCount);
         for (var nodeOrdinal = 0; nodeOrdinal < snapshot.nodeCount; ++nodeOrdinal)
           actualRetainedSizes[nodeOrdinal] = snapshot.retainedSizes[nodeOrdinal];
@@ -206,8 +206,8 @@
       },
 
       function heapSnapshotDominatedNodesTest() {
-        var snapshot = new HeapSnapshotWorker.JSHeapSnapshot(
-            HeapProfilerTestRunner.createHeapSnapshotMock(), new HeapSnapshotWorker.HeapSnapshotProgress());
+        var snapshot = new HeapSnapshotWorker.HeapSnapshot.JSHeapSnapshot(
+            HeapProfilerTestRunner.createHeapSnapshotMock(), new HeapSnapshotWorker.HeapSnapshot.HeapSnapshotProgress());
 
         var expectedDominatedNodes = [21, 14, 7, 28, 35];
         var actualDominatedNodes = snapshot.dominatedNodes;
@@ -253,8 +253,8 @@
       },
 
       function heapSnapshotRetainersTest() {
-        var snapshot = new HeapSnapshotWorker.JSHeapSnapshot(
-            HeapProfilerTestRunner.createHeapSnapshotMock(), new HeapSnapshotWorker.HeapSnapshotProgress());
+        var snapshot = new HeapSnapshotWorker.HeapSnapshot.JSHeapSnapshot(
+            HeapProfilerTestRunner.createHeapSnapshotMock(), new HeapSnapshotWorker.HeapSnapshot.HeapSnapshotProgress());
         var expectedRetainers = {'': [], 'A': [''], 'B': ['', 'A'], 'C': ['A', 'B'], 'D': ['B'], 'E': ['C']};
         for (var nodes = snapshot.allNodes(); nodes.hasNext(); nodes.next()) {
           var names = [];
@@ -268,8 +268,8 @@
       },
 
       function heapSnapshotAggregatesTest() {
-        var snapshot = new HeapSnapshotWorker.JSHeapSnapshot(
-            HeapProfilerTestRunner.createHeapSnapshotMock(), new HeapSnapshotWorker.HeapSnapshotProgress());
+        var snapshot = new HeapSnapshotWorker.HeapSnapshot.JSHeapSnapshot(
+            HeapProfilerTestRunner.createHeapSnapshotMock(), new HeapSnapshotWorker.HeapSnapshot.HeapSnapshotProgress());
         var expectedAggregates = {
           'A': {count: 1, self: 2, maxRet: 2, type: 'object', name: 'A'},
           'B': {count: 1, self: 3, maxRet: 8, type: 'object', name: 'B'},
@@ -302,8 +302,8 @@
       },
 
       function heapSnapshotFlagsTest() {
-        var snapshot = new HeapSnapshotWorker.JSHeapSnapshot(
-            HeapProfilerTestRunner.createHeapSnapshotMockWithDOM(), new HeapSnapshotWorker.HeapSnapshotProgress());
+        var snapshot = new HeapSnapshotWorker.HeapSnapshot.JSHeapSnapshot(
+            HeapProfilerTestRunner.createHeapSnapshotMockWithDOM(), new HeapSnapshotWorker.HeapSnapshot.HeapSnapshotProgress());
         var expectedCanBeQueried = {
           '': false,
           'A': true,
@@ -326,13 +326,13 @@
       },
 
       function heapSnapshotNodesProviderTest() {
-        var snapshot = new HeapSnapshotWorker.JSHeapSnapshot(
-            HeapProfilerTestRunner.createHeapSnapshotMock(), new HeapSnapshotWorker.HeapSnapshotProgress());
+        var snapshot = new HeapSnapshotWorker.HeapSnapshot.JSHeapSnapshot(
+            HeapProfilerTestRunner.createHeapSnapshotMock(), new HeapSnapshotWorker.HeapSnapshot.HeapSnapshotProgress());
 
         var allNodeIndexes = [];
         for (var i = 0; i < snapshot.nodes.length; i += snapshot.nodeFieldCount)
           allNodeIndexes.push(i);
-        var provider = new HeapSnapshotWorker.HeapSnapshotNodesProvider(snapshot, allNodeIndexes);
+        var provider = new HeapSnapshotWorker.HeapSnapshot.HeapSnapshotNodesProvider(snapshot, allNodeIndexes);
         // Sort by names in reverse order.
         provider.sortAndRewind({fieldName1: 'name', ascending1: false, fieldName2: 'id', ascending2: false});
         var range = provider.serializeItemsRange(0, 6);
@@ -344,8 +344,8 @@
       },
 
       function heapSnapshotEdgesProviderTest() {
-        var snapshot = new HeapSnapshotWorker.JSHeapSnapshot(
-            HeapProfilerTestRunner.createHeapSnapshotMock(), new HeapSnapshotWorker.HeapSnapshotProgress());
+        var snapshot = new HeapSnapshotWorker.HeapSnapshot.JSHeapSnapshot(
+            HeapProfilerTestRunner.createHeapSnapshotMock(), new HeapSnapshotWorker.HeapSnapshot.HeapSnapshotProgress());
 
         function edgeFilter(edge) {
           return edge.name() === 'b';
@@ -368,7 +368,7 @@
         var sourceStringified = JSON.stringify(source);
         var partSize = sourceStringified.length >> 3;
 
-        var loader = new HeapSnapshotWorker.HeapSnapshotLoader();
+        var loader = new HeapSnapshotWorker.HeapSnapshotLoader.HeapSnapshotLoader();
         for (var i = 0, l = sourceStringified.length; i < l; i += partSize)
           loader.write(sourceStringified.slice(i, i + partSize));
         loader.close();
@@ -380,8 +380,8 @@
           TestRunner.assertEquals(JSON.stringify(reference), JSON.stringify(actual));
         }
         assertSnapshotEquals(
-            new HeapSnapshotWorker.JSHeapSnapshot(
-                HeapProfilerTestRunner.createHeapSnapshotMock(), new HeapSnapshotWorker.HeapSnapshotProgress(), false),
+            new HeapSnapshotWorker.HeapSnapshot.JSHeapSnapshot(
+                HeapProfilerTestRunner.createHeapSnapshotMock(), new HeapSnapshotWorker.HeapSnapshot.HeapSnapshotProgress(), false),
             result);
       },
     ];
diff --git a/third_party/blink/web_tests/http/tests/resources/fedcm/signin.html b/third_party/blink/web_tests/http/tests/resources/fedcm/signin.html
index 150c004c..5d178e7 100644
--- a/third_party/blink/web_tests/http/tests/resources/fedcm/signin.html
+++ b/third_party/blink/web_tests/http/tests/resources/fedcm/signin.html
@@ -1,6 +1,6 @@
 <!DOCTYPE html>
 <!--
-The OT token is needed so we can call IdentityProvider.login.
+The OT token is needed so we can call navigator.login.setStatus.
 
 generated with:
 generate_token.py https://devtools.test:8443/ FedCmIdpSigninStatus  --expire-timestamp=2000000000
@@ -11,7 +11,7 @@
 
 async function doLogin() {
   await fetch("set-accounts.php?default");
-  IdentityProvider.login();
+  navigator.login.setStatus("logged-in");
   IdentityProvider.close();
 }
 onload = doLogin;
diff --git a/third_party/blink/web_tests/platform/linux/virtual/css-text-autospace/fast/css/getComputedStyle/computed-style-listing-expected.txt b/third_party/blink/web_tests/platform/linux/virtual/css-text-autospace/fast/css/getComputedStyle/computed-style-listing-expected.txt
index e8942eb1..f797e48 100644
--- a/third_party/blink/web_tests/platform/linux/virtual/css-text-autospace/fast/css/getComputedStyle/computed-style-listing-expected.txt
+++ b/third_party/blink/web_tests/platform/linux/virtual/css-text-autospace/fast/css/getComputedStyle/computed-style-listing-expected.txt
@@ -256,7 +256,7 @@
 offset-anchor: auto
 offset-distance: 0px
 offset-path: none
-offset-position: auto
+offset-position: normal
 offset-rotate: auto 0deg
 opacity: 1
 order: 0
diff --git a/third_party/blink/web_tests/platform/linux/virtual/css-text-autospace/fast/css/getComputedStyle/computed-style-without-renderer-listing-expected.txt b/third_party/blink/web_tests/platform/linux/virtual/css-text-autospace/fast/css/getComputedStyle/computed-style-without-renderer-listing-expected.txt
index 61d56e8ed..e65bd5e 100644
--- a/third_party/blink/web_tests/platform/linux/virtual/css-text-autospace/fast/css/getComputedStyle/computed-style-without-renderer-listing-expected.txt
+++ b/third_party/blink/web_tests/platform/linux/virtual/css-text-autospace/fast/css/getComputedStyle/computed-style-without-renderer-listing-expected.txt
@@ -256,7 +256,7 @@
 offset-anchor: auto
 offset-distance: 0px
 offset-path: none
-offset-position: auto
+offset-position: normal
 offset-rotate: auto 0deg
 opacity: 1
 order: 0
diff --git a/third_party/blink/web_tests/platform/linux/virtual/css-text-autospace/svg/css/getComputedStyle-listing-expected.txt b/third_party/blink/web_tests/platform/linux/virtual/css-text-autospace/svg/css/getComputedStyle-listing-expected.txt
index 99ccbb2c..91f1880 100644
--- a/third_party/blink/web_tests/platform/linux/virtual/css-text-autospace/svg/css/getComputedStyle-listing-expected.txt
+++ b/third_party/blink/web_tests/platform/linux/virtual/css-text-autospace/svg/css/getComputedStyle-listing-expected.txt
@@ -256,7 +256,7 @@
 offset-anchor: auto
 offset-distance: 0px
 offset-path: none
-offset-position: auto
+offset-position: normal
 offset-rotate: auto 0deg
 opacity: 1
 order: 0
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 28ed9dc8..401c149 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
@@ -256,7 +256,7 @@
 offset-anchor: auto
 offset-distance: 0px
 offset-path: none
-offset-position: auto
+offset-position: normal
 offset-rotate: auto 0deg
 opacity: 1
 order: 0
diff --git a/third_party/blink/web_tests/webexposed/global-interface-listing-expected.txt b/third_party/blink/web_tests/webexposed/global-interface-listing-expected.txt
index 0dce70c7..bf3bb67 100644
--- a/third_party/blink/web_tests/webexposed/global-interface-listing-expected.txt
+++ b/third_party/blink/web_tests/webexposed/global-interface-listing-expected.txt
@@ -5241,8 +5241,6 @@
 interface IdentityProvider
     static method close
     static method getUserInfo
-    static method login
-    static method logout
     static method register
     static method resolve
     static method unregister
@@ -5393,6 +5391,7 @@
     getter delay
     getter root
     getter rootMargin
+    getter scrollMargin
     getter thresholds
     getter trackVisibility
     method constructor
@@ -6422,6 +6421,7 @@
     getter language
     getter languages
     getter locks
+    getter login
     getter managed
     getter maxTouchPoints
     getter mediaCapabilities
@@ -6484,6 +6484,10 @@
     method updateAdInterestGroups
     method vibrate
     method webkitGetUserMedia
+interface NavigatorLogin
+    attribute @@toStringTag
+    method constructor
+    method setStatus
 interface NavigatorManagedData : EventTarget
     attribute @@toStringTag
     getter onmanagedconfigurationchange
diff --git a/third_party/breakpad/BUILD.gn b/third_party/breakpad/BUILD.gn
index 6545048..10000c6 100644
--- a/third_party/breakpad/BUILD.gn
+++ b/third_party/breakpad/BUILD.gn
@@ -77,6 +77,11 @@
   default_breakpad_configs += [ ":default_logging_severity_config" ]
 }
 
+config("no_fortify_source") {
+  # TODO(crbug.com/1476401): Fix libdisasm/x86_format.c
+  cflags = [ "-Wno-fortify-source" ]
+}
+
 # {micro,mini}dump_stackwalk and minidump_dump are tool-type executables
 # that do not build on Windows.
 if (!is_win) {
@@ -173,12 +178,10 @@
         ]
       }
 
-      # TODO(crbug.com/1476401): Fix libdisasm/x86_format.c
-      cflags = [ "-Wno-fortify-source" ]
-
       configs -= [ "//build/config/compiler:chromium_code" ]
       configs += [ "//build/config/compiler:no_chromium_code" ]
       configs += default_breakpad_configs
+      configs += [ ":no_fortify_source" ]
     }
 
     fuzzer_test("minidump_fuzzer") {
diff --git a/third_party/dawn b/third_party/dawn
index 8bf090f..dc5ac88 160000
--- a/third_party/dawn
+++ b/third_party/dawn
@@ -1 +1 @@
-Subproject commit 8bf090f5ff0db6275d26b4216e7fdcd3128b17d3
+Subproject commit dc5ac88f77bb62fe15111f355751055fd16e0c62
diff --git a/third_party/devtools-frontend-internal b/third_party/devtools-frontend-internal
index cbf4670..c3526d6 160000
--- a/third_party/devtools-frontend-internal
+++ b/third_party/devtools-frontend-internal
@@ -1 +1 @@
-Subproject commit cbf4670103207f1c95702aa364057cd9d5a7631b
+Subproject commit c3526d66491c1c30fbb2b257ce94fbbb91474323
diff --git a/third_party/devtools-frontend/src b/third_party/devtools-frontend/src
index 5f5101f..087d06b9 160000
--- a/third_party/devtools-frontend/src
+++ b/third_party/devtools-frontend/src
@@ -1 +1 @@
-Subproject commit 5f5101f3e0978b3e5ed60a5eb7732bbd8591e2c4
+Subproject commit 087d06b98e6fdd264fde7d16895a1c3cec4d0766
diff --git a/third_party/libavif/src b/third_party/libavif/src
index 3669d47..0d4747a 160000
--- a/third_party/libavif/src
+++ b/third_party/libavif/src
@@ -1 +1 @@
-Subproject commit 3669d47e1f9f3ea5ab0e3a923b15fad185ac2209
+Subproject commit 0d4747af5b3f7b150c3838e6148c49a0bf0e0064
diff --git a/third_party/libc++/src b/third_party/libc++/src
index 6454700..26cbb86 160000
--- a/third_party/libc++/src
+++ b/third_party/libc++/src
@@ -1 +1 @@
-Subproject commit 645470002f05eb47f5ec978559b1270e46ce3c72
+Subproject commit 26cbb86c20fea9562e31742a25f5577b724ab664
diff --git a/third_party/libunwind/src b/third_party/libunwind/src
index 1f88fff..f2ca661 160000
--- a/third_party/libunwind/src
+++ b/third_party/libunwind/src
@@ -1 +1 @@
-Subproject commit 1f88fff745d19c33a35647987bfb5d0f070839a8
+Subproject commit f2ca661b1da2215022b46d6e3f54c6c0aa09e457
diff --git a/third_party/perfetto b/third_party/perfetto
index d0a7b97..43ee4b9 160000
--- a/third_party/perfetto
+++ b/third_party/perfetto
@@ -1 +1 @@
-Subproject commit d0a7b97ca3f762396fcbcb419a0dcd20aaf687f7
+Subproject commit 43ee4b90e33bcc0c9191d569b74e6f76585d314a
diff --git a/third_party/vulkan-deps b/third_party/vulkan-deps
index 1a25722..523a171 160000
--- a/third_party/vulkan-deps
+++ b/third_party/vulkan-deps
@@ -1 +1 @@
-Subproject commit 1a25722cff7e75641990d71e5a067e73f96a7289
+Subproject commit 523a171d83b16ce440c21eb163149e5a10503ab8
diff --git a/third_party/webgpu-cts/src b/third_party/webgpu-cts/src
index c295665..0447990 160000
--- a/third_party/webgpu-cts/src
+++ b/third_party/webgpu-cts/src
@@ -1 +1 @@
-Subproject commit c2956655378dc2f27ba8e5b5f84cac1f73df3c45
+Subproject commit 0447990a43973392ca18aec8a0422f67e5b6776e
diff --git a/third_party/webrtc b/third_party/webrtc
index d2f4cf9..29d4a01 160000
--- a/third_party/webrtc
+++ b/third_party/webrtc
@@ -1 +1 @@
-Subproject commit d2f4cf9fd1f6dccb1fcce3b5973bc282987a2a0d
+Subproject commit 29d4a013bc90abdd78cffbe0a671d81a08010539
diff --git a/tools/gritsettings/resource_ids.spec b/tools/gritsettings/resource_ids.spec
index 34aeda7e..5d71ef5 100644
--- a/tools/gritsettings/resource_ids.spec
+++ b/tools/gritsettings/resource_ids.spec
@@ -971,9 +971,6 @@
   "ios/chrome/share_extension/strings/ios_share_extension_strings.grd": {
     "messages": [1120],
   },
-  "ios/chrome/search_widget_extension/strings/ios_search_widget_extension_strings.grd": {
-    "messages": [1140],
-  },
   "ios/chrome/search_widget_extension/strings/ios_search_widget_extension_chromium_strings.grd": {
     "messages": [1160],
   },
diff --git a/tools/gritsettings/translation_expectations.pyl b/tools/gritsettings/translation_expectations.pyl
index 2c9f108..57ebab5 100644
--- a/tools/gritsettings/translation_expectations.pyl
+++ b/tools/gritsettings/translation_expectations.pyl
@@ -63,7 +63,6 @@
       "ios/chrome/credential_provider_extension/strings/ios_credential_provider_extension_strings.grd",
       "ios/chrome/content_widget_extension/strings/ios_content_widget_extension_chromium_strings.grd",
       "ios/chrome/content_widget_extension/strings/ios_content_widget_extension_google_chrome_strings.grd",
-      "ios/chrome/search_widget_extension/strings/ios_search_widget_extension_strings.grd",
       "ios/chrome/search_widget_extension/strings/ios_search_widget_extension_chromium_strings.grd",
       "ios/chrome/search_widget_extension/strings/ios_search_widget_extension_google_chrome_strings.grd",
       "ios/chrome/share_extension/strings/ios_share_extension_strings.grd",
diff --git a/tools/metrics/histograms/enums.xml b/tools/metrics/histograms/enums.xml
index 5d22b45..cecaf66d 100644
--- a/tools/metrics/histograms/enums.xml
+++ b/tools/metrics/histograms/enums.xml
@@ -27030,6 +27030,7 @@
   <int value="0" label="Password Manager"/>
   <int value="1" label="Autofill"/>
   <int value="2" label="Icognito"/>
+  <int value="3" label="Device Lock Page"/>
 </enum>
 
 <enum name="DeviceEnumerationResult">
@@ -62988,6 +62989,7 @@
   <int value="-943304570" label="PaintHolding:enabled"/>
   <int value="-943223021"
       label="FeatureNotificationGuideSkipCheckForLowEngagedUsers:disabled"/>
+  <int value="-941056354" label="CdmStorageDatabase:enabled"/>
   <int value="-940931658" label="UseDMSAAForTilesAndroidGL:disabled"/>
   <int value="-940915510" label="IgnoreCSPInWebPaymentAPI:disabled"/>
   <int value="-940390151" label="RoundedDisplay:disabled"/>
@@ -65199,6 +65201,8 @@
   <int value="161409456" label="AutofillUseMobileLabelDisambiguation:disabled"/>
   <int value="161694478" label="OmniboxNewAnswerLayout:enabled"/>
   <int value="161706692" label="ContextualPageActionPriceTracking:disabled"/>
+  <int value="164236433"
+      label="TrackingProtectionOnboardingForceEligibility:enabled"/>
   <int value="165962668" label="EnablePreferencesAccountStorage:enabled"/>
   <int value="168025622" label="EnableInputEventLogging:enabled"/>
   <int value="168429629" label="ContentIndexingNTP:enabled"/>
@@ -65361,6 +65365,8 @@
   <int value="251262596" label="CCTMinimized:disabled"/>
   <int value="251367892" label="PersistentQuotaIsTemporaryQuota:disabled"/>
   <int value="251764234" label="AccessibilityPerformanceFiltering:disabled"/>
+  <int value="253473409"
+      label="TrackingProtectionOnboardingForceEligibility:disabled"/>
   <int value="254497185" label="VideoPlayerJsModules:enabled"/>
   <int value="255027960" label="AdaptiveButtonInTopToolbarTranslate:disabled"/>
   <int value="255274700" label="Canvas2dStaysGPUOnReadback:enabled"/>
@@ -65782,6 +65788,7 @@
   <int value="442561299" label="FeatureNotificationGuide:disabled"/>
   <int value="444411390" label="enable-incognito-shortcut-on-desktop"/>
   <int value="444754854" label="LegacyTLSWarnings:disabled"/>
+  <int value="445240121" label="CdmStorageDatabase:disabled"/>
   <int value="445851683" label="LauncherFuzzyMatchAcrossProviders:disabled"/>
   <int value="446316019" label="enable-threaded-compositing"/>
   <int value="447286624"
@@ -66938,6 +66945,7 @@
   <int value="1033597574" label="disable-layer-squashing"/>
   <int value="1034347979"
       label="OmniboxFocusTriggersContextualWebZeroSuggest:disabled"/>
+  <int value="1035517284" label="DownloadsMigrateToJobsAPI:disabled"/>
   <int value="1036007454"
       label="CmdDecoderAlwaysGetSizeFromSourceTexture:enabled"/>
   <int value="1036068554" label="enable-android-pay-integration-v2"/>
@@ -67281,6 +67289,7 @@
   <int value="1203633646" label="AutofillEnableVirtualCardMetadata:disabled"/>
   <int value="1203795051" label="PassiveMixedContentWarning:enabled"/>
   <int value="1203821857" label="Vulkan:disabled"/>
+  <int value="1204035326" label="DownloadsMigrateToJobsAPI:enabled"/>
   <int value="1204828623" label="DelayTempStripRemoval:disabled"/>
   <int value="1205596770"
       label="ExperimentalAccessibilityDictationWithPumpkin:disabled"/>
diff --git a/tools/metrics/histograms/metadata/account_manager/histograms.xml b/tools/metrics/histograms/metadata/account_manager/histograms.xml
index a6e65af..cb1e0e1 100644
--- a/tools/metrics/histograms/metadata/account_manager/histograms.xml
+++ b/tools/metrics/histograms/metadata/account_manager/histograms.xml
@@ -25,7 +25,7 @@
 
 <histogram name="AccountManager.AccountAdditionResultStatus"
     enum="AccountManagerAccountUpsertionResultStatus"
-    expires_after="2023-10-31">
+    expires_after="2024-03-03">
   <owner>sinhak@chromium.org</owner>
   <owner>anastasiian@chromium.org</owner>
   <summary>
@@ -50,7 +50,7 @@
 </histogram>
 
 <histogram name="AccountManager.EduCoexistence.FetchAccessTokenResult"
-    enum="GoogleServiceAuthError" expires_after="2023-10-31">
+    enum="GoogleServiceAuthError" expires_after="2024-03-03">
   <owner>agawronska@chromium.org</owner>
   <owner>cros-families-eng@google.com</owner>
   <summary>
@@ -61,7 +61,7 @@
 </histogram>
 
 <histogram name="AccountManager.EduCoexistenceV2.InSessionFlowResult"
-    enum="EduCoexistenceFlowV2Result" expires_after="2023-10-31">
+    enum="EduCoexistenceFlowV2Result" expires_after="2024-03-03">
   <owner>agawronska@chromium.org</owner>
   <owner>danan@chromium.org</owner>
   <owner>yilkal@chromium.org</owner>
@@ -73,7 +73,7 @@
 </histogram>
 
 <histogram name="AccountManager.EduCoexistenceV2.OnboardingFlowResult"
-    enum="EduCoexistenceFlowV2Result" expires_after="2023-10-31">
+    enum="EduCoexistenceFlowV2Result" expires_after="2024-03-03">
   <owner>agawronska@chromium.org</owner>
   <owner>danan@chromium.org</owner>
   <owner>yilkal@chromium.org</owner>
@@ -109,7 +109,7 @@
 </histogram>
 
 <histogram name="AccountManager.ManageAccountsServiceType"
-    enum="GaiaServiceType" expires_after="2023-10-31">
+    enum="GaiaServiceType" expires_after="2024-03-03">
   <owner>sinhak@chromium.org</owner>
   <owner>anastasiian@chromium.org</owner>
   <summary>
@@ -118,7 +118,7 @@
 </histogram>
 
 <histogram name="AccountManager.MojoDisconnections.AccessTokenFetcherRemote"
-    units="count" expires_after="2023-10-31">
+    units="count" expires_after="2024-03-03">
   <owner>sinhak@chromium.org</owner>
   <owner>anastasiian@chromium.org</owner>
   <summary>
@@ -132,7 +132,7 @@
 
 <histogram
     name="AccountManager.MojoDisconnections.AccountManagerObserverReceiver"
-    units="count" expires_after="2023-10-31">
+    units="count" expires_after="2024-03-03">
   <owner>sinhak@chromium.org</owner>
   <owner>anastasiian@chromium.org</owner>
   <summary>
@@ -146,7 +146,7 @@
 </histogram>
 
 <histogram name="AccountManager.MojoDisconnections.AccountManagerRemote"
-    units="count" expires_after="2023-10-31">
+    units="count" expires_after="2024-03-03">
   <owner>sinhak@chromium.org</owner>
   <owner>anastasiian@chromium.org</owner>
   <summary>
@@ -185,7 +185,7 @@
 </histogram>
 
 <histogram name="AccountManager.TokenLoadStatus"
-    enum="AccountManagerTokenLoadStatus" expires_after="2023-10-31">
+    enum="AccountManagerTokenLoadStatus" expires_after="2024-03-03">
   <owner>sinhak@chromium.org</owner>
   <owner>anastasiian@chromium.org</owner>
   <summary>
diff --git a/tools/metrics/histograms/metadata/android/histograms.xml b/tools/metrics/histograms/metadata/android/histograms.xml
index d03ad56..840adaf 100644
--- a/tools/metrics/histograms/metadata/android/histograms.xml
+++ b/tools/metrics/histograms/metadata/android/histograms.xml
@@ -580,18 +580,6 @@
   </summary>
 </histogram>
 
-<histogram name="Android.BiometricAuth.AuthSource" enum="DeviceAuthSource"
-    expires_after="2024-02-04">
-  <owner>ioanap@chromium.org</owner>
-  <owner>fhorschig@chromium.org</owner>
-  <owner>theocristea@google.com</owner>
-  <summary>
-    Recorded when a UI surface/flow in Chrome on Android chooses to re-auth the
-    user via biometrics. It records where the request comes from (Password
-    Manager, Autofill or Incognito).
-  </summary>
-</histogram>
-
 <histogram name="Android.ChildMismatch.AppInfoError" enum="ChildAppInfoError"
     expires_after="2022-11-01">
   <obsolete>
@@ -867,6 +855,19 @@
   </summary>
 </histogram>
 
+<histogram name="Android.DeviceAuthenticator.AuthSource"
+    enum="DeviceAuthSource" expires_after="2024-02-04">
+  <owner>ioanap@chromium.org</owner>
+  <owner>fhorschig@chromium.org</owner>
+  <owner>theocristea@google.com</owner>
+  <owner>clhager@google.com</owner>
+  <summary>
+    Recorded when a UI surface/flow in Chrome on Android chooses to re-auth the
+    user. It records where the request comes from (Password Manager, Autofill,
+    Incognito or Device Lock Page).
+  </summary>
+</histogram>
+
 <histogram name="Android.DeviceSize.LargestDisplaySize" units="dp"
     expires_after="2022-05-14">
   <obsolete>
@@ -4469,18 +4470,18 @@
   </summary>
 </histogram>
 
-<histogram name="Android.UnfoldToTablet.Latency" units="ms"
+<histogram name="Android.UnfoldToTablet.Latency2" units="ms"
     expires_after="2024-07-31">
   <owner>amanvr@google.com</owner>
   <owner>woa-performance@google.com</owner>
   <summary>
     Records the time taken by chrome to display the first frame presented after
-    unfolding a foldable device. This histogram aims to capture the unfold
-    latency in devices which switch to tablet mode when unfolded, and is
-    recorded every time the device is unfolded. The begin timestamp of the
-    metric is the timestamp from the start of the first OnPause activity
-    lifecycle callback before the activity recreates. The end timestamp is the
-    timestamp when Chrome displays the first frame on the new screen.
+    unfolding a foldable device when Chrome is on top. This histogram aims to
+    capture the unfold latency in devices which switch to tablet mode when
+    unfolded, and is recorded every time the device is unfolded. The begin
+    timestamp of the metric is the timestamp from the start of the first OnPause
+    activity lifecycle callback before the activity recreates. The end timestamp
+    is the timestamp when Chrome displays the first frame on the new screen.
   </summary>
 </histogram>
 
diff --git a/tools/metrics/histograms/metadata/gpu/histograms.xml b/tools/metrics/histograms/metadata/gpu/histograms.xml
index d38895c..992461f 100644
--- a/tools/metrics/histograms/metadata/gpu/histograms.xml
+++ b/tools/metrics/histograms/metadata/gpu/histograms.xml
@@ -1023,27 +1023,6 @@
   </summary>
 </histogram>
 
-<histogram name="Gpu.MetalProxy.NewLibraryTime" units="ms" expires_after="M82">
-  <owner>ccameron@chromium.org</owner>
-  <owner>graphics-dev@chromium.org</owner>
-  <summary>
-    The time that it takes to create a new MTLLibrary, including all retries.
-    Recorded after every call to -[MTLDeviceProxy newLibraryWithSource:]
-    completes.
-  </summary>
-</histogram>
-
-<histogram name="Gpu.MetalProxy.NewRenderPipelineStateTime" units="ms"
-    expires_after="M82">
-  <owner>ccameron@chromium.org</owner>
-  <owner>graphics-dev@chromium.org</owner>
-  <summary>
-    The time that it takes to create a new MTLRenderPipelineState, including all
-    retries. Recorded after every call to -[MTLDeviceProxy
-    newRenderPipelineStateWithDescriptor:] completes.
-  </summary>
-</histogram>
-
 <histogram name="Gpu.MetalShaderCache.LoadTime" units="microseconds"
     expires_after="2023-12-17">
   <owner>sky@chromium.org</owner>
diff --git a/tools/metrics/histograms/metadata/histogram_suffixes_list.xml b/tools/metrics/histograms/metadata/histogram_suffixes_list.xml
index 687d127..7b2f1d876 100644
--- a/tools/metrics/histograms/metadata/histogram_suffixes_list.xml
+++ b/tools/metrics/histograms/metadata/histogram_suffixes_list.xml
@@ -1493,7 +1493,6 @@
   <suffix base="true" name="WebP"
       label="This metric is for only WebP image types."/>
   <affected-histogram name="Renderer4.ImageDecodeTaskDurationUs"/>
-  <affected-histogram name="Renderer4.ImageUploadTaskDurationUs"/>
 </histogram_suffixes>
 
 <histogram_suffixes name="DetachedResourceRequestSource" separator=".">
diff --git a/tools/metrics/histograms/metadata/others/histograms.xml b/tools/metrics/histograms/metadata/others/histograms.xml
index f597f576..183ebb7 100644
--- a/tools/metrics/histograms/metadata/others/histograms.xml
+++ b/tools/metrics/histograms/metadata/others/histograms.xml
@@ -5082,7 +5082,7 @@
 </histogram>
 
 <histogram name="DisplayManager.UnifiedDesktopDisplayCountRange"
-    enum="MultiDisplayModeDisplayCountRanges" expires_after="2023-12-17">
+    enum="MultiDisplayModeDisplayCountRanges" expires_after="2024-06-17">
   <owner>zentaro@chromium.org</owner>
   <owner>cros-peripherals@google.com</owner>
   <summary>
@@ -8608,21 +8608,21 @@
 </histogram>
 
 <histogram name="OAuth2Login.SessionRestore" enum="GaiaSessionRestoreOutcome"
-    expires_after="2023-10-31">
+    expires_after="2024-03-03">
   <owner>anastasiian@chromium.org</owner>
   <owner>sinhak@chromium.org</owner>
   <summary>Outcome of Chrome OS GAIA cookie session restore process.</summary>
 </histogram>
 
 <histogram name="OAuth2Login.SessionRestoreTimeToFailure" units="ms"
-    expires_after="2023-10-31">
+    expires_after="2024-03-03">
   <owner>anastasiian@chromium.org</owner>
   <owner>sinhak@chromium.org</owner>
   <summary>How long it takes for the session restore to fail.</summary>
 </histogram>
 
 <histogram name="OAuth2Login.SessionRestoreTimeToSuccess" units="ms"
-    expires_after="2023-10-31">
+    expires_after="2024-03-03">
   <owner>anastasiian@chromium.org</owner>
   <owner>sinhak@chromium.org</owner>
   <summary>
diff --git a/tools/metrics/histograms/metadata/privacy/histograms.xml b/tools/metrics/histograms/metadata/privacy/histograms.xml
index 20511667..9f8411b 100644
--- a/tools/metrics/histograms/metadata/privacy/histograms.xml
+++ b/tools/metrics/histograms/metadata/privacy/histograms.xml
@@ -214,7 +214,7 @@
 </histogram>
 
 <histogram name="Privacy.DIPS.BounceCategory{DIPSRedirectType}{DIPSCookieMode}"
-    enum="DIPSRedirectCategory" expires_after="2023-11-01">
+    enum="DIPSRedirectCategory" expires_after="2024-05-01">
   <owner>rtarpine@chromium.org</owner>
   <owner>src/chrome/browser/dips/OWNERS</owner>
   <summary>
@@ -381,7 +381,7 @@
 </histogram>
 
 <histogram name="Privacy.DIPS.TimeFromNavigationCommitToClientBounce"
-    units="ms" expires_after="2023-10-22">
+    units="ms" expires_after="2024-04-22">
   <owner>jdh@chromium.org</owner>
   <owner>rtarpine@chromium.org</owner>
   <owner>src/chrome/browser/dips/OWNERS</owner>
@@ -689,6 +689,45 @@
   </summary>
 </histogram>
 
+<histogram
+    name="PrivacySandbox.Attestations.InitializationDuration.ComponentReadyFromApplicationStart"
+    units="ms" expires_after="M122">
+  <owner>shivanisha@chromium.org</owner>
+  <owner>xiaochenzh@chromium.org</owner>
+  <summary>
+    Records the amount of time taken for the downloaded attestations file to be
+    detected from application starts. The measurement ends when `ComponentReady`
+    is invoked with valid inputs.
+  </summary>
+</histogram>
+
+<histogram
+    name="PrivacySandbox.Attestations.InitializationDuration.ComponentReadyFromApplicationStartWithInterruption"
+    units="ms" expires_after="M122">
+  <owner>shivanisha@chromium.org</owner>
+  <owner>xiaochenzh@chromium.org</owner>
+  <summary>
+    Records the amount of time taken for the downloaded attestations file to be
+    detected from application starts with interruption during startup. For
+    example, if the user has multiple profiles, a profile picker will appear
+    during the startup. This is a non-browser UI that interrupts the startup
+    process. The measurement ends when `ComponentReady` is invoked with valid
+    inputs.
+  </summary>
+</histogram>
+
+<histogram
+    name="PrivacySandbox.Attestations.InitializationDuration.ComponentReadyFromBrowserWindowFirstPaint"
+    units="ms" expires_after="M122">
+  <owner>shivanisha@chromium.org</owner>
+  <owner>xiaochenzh@chromium.org</owner>
+  <summary>
+    Records the amount of time taken for the downloaded attestations file to be
+    detected from first browser window paint. The measurement ends when
+    `ComponentReady` is invoked with valid inputs.
+  </summary>
+</histogram>
+
 <histogram name="PrivacySandbox.Attestations.InitializationDuration.Parsing"
     units="ms" expires_after="M122">
   <owner>shivanisha@chromium.org</owner>
diff --git a/tools/metrics/histograms/metadata/renderer4/histograms.xml b/tools/metrics/histograms/metadata/renderer4/histograms.xml
index 660e14c..208e9887 100644
--- a/tools/metrics/histograms/metadata/renderer4/histograms.xml
+++ b/tools/metrics/histograms/metadata/renderer4/histograms.xml
@@ -149,19 +149,6 @@
   </summary>
 </histogram>
 
-<histogram base="true" name="Renderer4.ImageUploadTaskDurationUs"
-    units="microseconds" expires_after="2021-08-09">
-<!-- Name completed by histogram_suffixes name="DecodedImageType" -->
-
-  <owner>sashamcintosh@chromium.org</owner>
-  <owner>chromeos-gfx@google.com</owner>
-  <summary>
-    This metric records the duration of an image upload for the raster path in
-    the compositor. It is recorded every time we upload an image. The metric is
-    optionally suffixed by the image type (WebP, Jpeg, etc.) or OutOfRaster.
-  </summary>
-</histogram>
-
 <histogram name="Renderer4.InvalidationRegionApproximateRectCount"
     units="rects" expires_after="M85">
   <owner>wiltzius@chromium.org</owner>
diff --git a/tools/traffic_annotation/safe_list.txt b/tools/traffic_annotation/safe_list.txt
index 4f096c1..e4548b5 100644
--- a/tools/traffic_annotation/safe_list.txt
+++ b/tools/traffic_annotation/safe_list.txt
@@ -327,7 +327,7 @@
 missing_new_fields,services/network/network_context.cc
 missing_new_fields,services/network/public/cpp/server/http_server.cc
 missing_new_fields,third_party/blink/renderer/modules/peerconnection/peer_connection_dependency_factory.cc
-missing_new_fields,third_party/blink/renderer/platform/loader/fetch/url_loader/url_loader.cc
+missing_new_fields,third_party/blink/renderer/platform/loader/fetch/fetch_utils.cc
 missing_new_fields,third_party/libaddressinput/chromium/chrome_metadata_source.cc
 missing_new_fields,ash/quick_pair/repository/fast_pair/footprints_fetcher_impl.cc
 missing_new_fields,chrome/browser/ash/printing/oauth2/authorization_server_data.cc
diff --git a/tools/traffic_annotation/summary/annotations.xml b/tools/traffic_annotation/summary/annotations.xml
index 29203c0..9653233 100644
--- a/tools/traffic_annotation/summary/annotations.xml
+++ b/tools/traffic_annotation/summary/annotations.xml
@@ -25,8 +25,8 @@
  <item id="backdrop_next_image_download" added_in_milestone="77" content_hash_code="003626bf" os_list="linux,windows,chromeos" file_path="chrome/browser/search/background/ntp_background_service.cc" />
  <item id="background_fetch_context" added_in_milestone="62" content_hash_code="031d0caa" os_list="linux,windows,chromeos,android" file_path="content/browser/background_fetch/background_fetch_delegate_proxy.cc" />
  <item id="bidirectional_stream" added_in_milestone="67" content_hash_code="07c03a44" os_list="linux,windows,chromeos,android" file_path="net/http/bidirectional_stream.cc" />
- <item id="blink_extension_resource_loader" added_in_milestone="63" content_hash_code="03c97c39" os_list="linux,windows,chromeos,android" file_path="third_party/blink/renderer/platform/loader/fetch/url_loader/url_loader.cc" />
- <item id="blink_resource_loader" added_in_milestone="62" content_hash_code="047d7664" os_list="linux,windows,chromeos,android" file_path="third_party/blink/renderer/platform/loader/fetch/url_loader/url_loader.cc" />
+ <item id="blink_extension_resource_loader" added_in_milestone="63" content_hash_code="03c97c39" os_list="linux,windows,chromeos,android" file_path="third_party/blink/renderer/platform/loader/fetch/fetch_utils.cc" />
+ <item id="blink_resource_loader" added_in_milestone="62" content_hash_code="047d7664" os_list="linux,windows,chromeos,android" file_path="third_party/blink/renderer/platform/loader/fetch/fetch_utils.cc" />
  <item id="bluetooth_socket" added_in_milestone="65" content_hash_code="01d7fd7d" os_list="linux,windows,chromeos,android" file_path="device/bluetooth/bluetooth_socket_net.cc" />
  <item id="brandcode_config" added_in_milestone="62" content_hash_code="07ae0010" os_list="linux,windows,chromeos" file_path="chrome/browser/profile_resetter/brandcode_config_fetcher.cc" />
  <item id="browser_switcher_ieem_sitelist" added_in_milestone="72" content_hash_code="07b15836" os_list="linux,windows" file_path="chrome/browser/browser_switcher/browser_switcher_service.cc" />
@@ -79,7 +79,7 @@
  <item id="extension_install_signer" added_in_milestone="62" content_hash_code="065c4bce" os_list="linux,windows,chromeos" file_path="chrome/browser/extensions/install_signer.cc" />
  <item id="extension_manifest_fetcher" added_in_milestone="62" content_hash_code="05983aa9" os_list="linux,windows,chromeos" file_path="extensions/browser/updater/extension_downloader.cc" />
  <item id="external_policy_fetcher" added_in_milestone="62" content_hash_code="03d48984" os_list="linux,windows,chromeos" file_path="components/policy/core/common/cloud/external_policy_data_fetcher.cc" />
- <item id="favicon_loader" added_in_milestone="63" content_hash_code="0437e97c" os_list="linux,windows,chromeos,android" file_path="third_party/blink/renderer/platform/loader/fetch/url_loader/url_loader.cc" />
+ <item id="favicon_loader" added_in_milestone="63" content_hash_code="0437e97c" os_list="linux,windows,chromeos,android" file_path="third_party/blink/renderer/platform/loader/fetch/fetch_utils.cc" />
  <item id="ftl_messaging_client_ack_messages" added_in_milestone="86" content_hash_code="0567243e" os_list="linux,windows,chromeos,android" file_path="remoting/signaling/ftl_messaging_client.cc" />
  <item id="ftl_messaging_client_receive_messages" added_in_milestone="86" content_hash_code="079dbc7d" os_list="linux,windows,chromeos,android" file_path="remoting/signaling/ftl_messaging_client.cc" />
  <item id="ftl_messaging_client_send_messages" added_in_milestone="86" content_hash_code="05bff395" os_list="linux,windows,chromeos,android" file_path="remoting/signaling/ftl_messaging_client.cc" />
diff --git a/ui/gl/init/gl_factory_ios.mm b/ui/gl/init/gl_factory_ios.mm
index 7ed8da0..32ad11d 100644
--- a/ui/gl/init/gl_factory_ios.mm
+++ b/ui/gl/init/gl_factory_ios.mm
@@ -16,7 +16,7 @@
 
 std::vector<GLImplementationParts> GetAllowedGLImplementations() {
   std::vector<GLImplementationParts> impls;
-  impls.emplace_back(kGLImplementationEGLANGLE);
+  impls.emplace_back(gl::ANGLEImplementation::kMetal);
   return impls;
 }
 
diff --git a/v8 b/v8
index b2e96bd..8a2d9bd 160000
--- a/v8
+++ b/v8
@@ -1 +1 @@
-Subproject commit b2e96bd1a968ea6555610e6a6d725fa62fdc9527
+Subproject commit 8a2d9bdb0c70c9b48113840278310a102c2f12ff