diff --git a/.cursorignore b/.cursorignore
new file mode 100644
index 0000000..3922074
--- /dev/null
+++ b/.cursorignore
@@ -0,0 +1,3 @@
+# TODO(crbug.com/423945285): figure out less restricted blockage for
+# Chromium third_party/
+third_party/
diff --git a/DEPS b/DEPS
index ae79a0a..d5d8665 100644
--- a/DEPS
+++ b/DEPS
@@ -303,11 +303,11 @@
   # 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': '41aacdda71ed37cbaf84d7c138a0be8297d2fb85',
+  'v8_revision': 'e75523e79fa33acd0fbba0efea735ef20b4baebf',
   # Three lines of non-changing comments so that
   # the commit queue can handle CLs rolling ANGLE
   # and whatever else without interference from each other.
-  'angle_revision': 'ce156f3bc3547d7467a4b9db047b13c54e47cffd',
+  'angle_revision': '10b7414fb5862014f6db047133fcdec0307eaa2c',
   # Three lines of non-changing comments so that
   # the commit queue can handle CLs rolling SwiftShader
   # and whatever else without interference from each other.
@@ -391,7 +391,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': '3a4bfd655bb875cee25ff21160dce79479f9f4fb',
+  'devtools_frontend_revision': 'a33be4fe83a7d21f1ddf94937c49a3f1f6b24d18',
   # 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.
@@ -523,7 +523,7 @@
   # Three lines of non-changing comments so that
   # the commit queue can handle CLs rolling llvm-libc
   # and whatever else without interference from each other.
-  'compiler_rt_revision': '629e5d165d4fd74cae28f3e3a590f97b6721c1fc',
+  'compiler_rt_revision': 'c42b47bdaf0d795cbd636e758a0d0080eb07c3d2',
 
   # If you change this, also update the libc++ revision in
   # //buildtools/deps_revisions.gni.
@@ -850,143 +850,143 @@
     'objects': [
       {
         # The Android libclang_rt.builtins libraries are currently only included in the Linux clang package.
-        'object_name': 'Linux_x64/clang-llvmorg-21-init-11777-gfd3fecfc-1.tar.xz',
-        'sha256sum': '5f69279b3697166facfc354634157e0a8a32fa6e36864200ad8a8f85add3f3f6',
-        'size_bytes': 55654416,
-        'generation': 1747138963230938,
+        'object_name': 'Linux_x64/clang-llvmorg-21-init-15009-g841a7f08-1.tar.xz',
+        'sha256sum': '9f86993ed0ce45d14ea53c43928a1d7ec352f1c1f7fa8a54c55d93ca78d48bed',
+        'size_bytes': 55784776,
+        'generation': 1749626956578778,
         'condition': '(host_os == "linux" or checkout_android) and non_git_source',
       },
       {
-        'object_name': 'Linux_x64/clang-tidy-llvmorg-21-init-11777-gfd3fecfc-1.tar.xz',
-        'sha256sum': '9c9cd089b46f36232d7553d03a0b30cf509f5e42b2113fe8172ba14f905b91df',
-        'size_bytes': 13597708,
-        'generation': 1747138963497696,
+        'object_name': 'Linux_x64/clang-tidy-llvmorg-21-init-15009-g841a7f08-1.tar.xz',
+        'sha256sum': '7783998e7e2d9010783e1080bbbd1bc1892977a6e6ba81464d6268869db3b6f9',
+        'size_bytes': 13662996,
+        'generation': 1749626956847038,
         'condition': 'host_os == "linux" and checkout_clang_tidy and non_git_source',
       },
       {
-        'object_name': 'Linux_x64/clangd-llvmorg-21-init-11777-gfd3fecfc-1.tar.xz',
-        'sha256sum': 'cf580450a46e262d899c2d48fff2b6ea8f6691a6bcfc0c280f87d8b6da088e5f',
-        'size_bytes': 13854788,
-        'generation': 1747138963598582,
+        'object_name': 'Linux_x64/clangd-llvmorg-21-init-15009-g841a7f08-1.tar.xz',
+        'sha256sum': '7c04a0d24acce8bb0250c6b212771e99c077851029e9e87389e5aa1ed800d0d9',
+        'size_bytes': 13920240,
+        'generation': 1749626957024098,
         'condition': 'host_os == "linux" and checkout_clangd and non_git_source',
       },
       {
-        'object_name': 'Linux_x64/llvm-code-coverage-llvmorg-21-init-11777-gfd3fecfc-1.tar.xz',
-        'sha256sum': '1a3488e55d62bda48d09b69fb4e5267ac64247258dc51fd9dabdb7fe5d66da4c',
-        'size_bytes': 2297996,
-        'generation': 1747138964068040,
+        'object_name': 'Linux_x64/llvm-code-coverage-llvmorg-21-init-15009-g841a7f08-1.tar.xz',
+        'sha256sum': 'b7d6be309a728091cb8e609e745e854ab683142d78f7de630a85f55a798ce815',
+        'size_bytes': 2311844,
+        'generation': 1749626957514658,
         'condition': 'host_os == "linux" and checkout_clang_coverage_tools and non_git_source',
       },
       {
-        'object_name': 'Linux_x64/llvmobjdump-llvmorg-21-init-11777-gfd3fecfc-1.tar.xz',
-        'sha256sum': 'efb127c69ac198284ff3622cd173e9dc4839d0bed33dbcaa96501db169607a2e',
-        'size_bytes': 5701128,
-        'generation': 1747138963789285,
+        'object_name': 'Linux_x64/llvmobjdump-llvmorg-21-init-15009-g841a7f08-1.tar.xz',
+        'sha256sum': '585d78b18b902e6042a90f51065717906d1ea600f2f93fea95eb4c06fd3bf3ce',
+        'size_bytes': 5680112,
+        'generation': 1749626957464808,
         'condition': '((checkout_linux or checkout_mac or checkout_android) and host_os == "linux") and non_git_source',
       },
       {
-        'object_name': 'Mac/clang-llvmorg-21-init-11777-gfd3fecfc-1.tar.xz',
-        'sha256sum': '3d83bd33ae0a0331ba8e23340023ae05174128503d94116cd8a855913fca88c7',
-        'size_bytes': 52212572,
-        'generation': 1747138966013176,
+        'object_name': 'Mac/clang-llvmorg-21-init-15009-g841a7f08-1.tar.xz',
+        'sha256sum': 'f8cac57592d9f34b6d43581c690cf1a561b1d984723ef846acb4763bdcb29348',
+        'size_bytes': 52450752,
+        'generation': 1749626959234300,
         'condition': 'host_os == "mac" and host_cpu == "x64"',
       },
       {
-        'object_name': 'Mac/clang-mac-runtime-library-llvmorg-21-init-11777-gfd3fecfc-1.tar.xz',
-        'sha256sum': '809b6f72718d9bcbf25ad6ab80517f215ed2526435a095ee9bceb5ed40f989a2',
-        'size_bytes': 993800,
-        'generation': 1747138984414942,
+        'object_name': 'Mac/clang-mac-runtime-library-llvmorg-21-init-15009-g841a7f08-1.tar.xz',
+        'sha256sum': '4bb68cabb11f36872a2c373595fa6bb93e3c5c2cb2775451917f2aa70b63755c',
+        'size_bytes': 996764,
+        'generation': 1749626980736930,
         'condition': 'checkout_mac and not host_os == "mac"',
       },
       {
-        'object_name': 'Mac/clang-tidy-llvmorg-21-init-11777-gfd3fecfc-1.tar.xz',
-        'sha256sum': 'c1fd7930eadede03470cbc8d38697669c6254069da2f6bd58328a8654d68f70d',
-        'size_bytes': 13699584,
-        'generation': 1747138966324770,
+        'object_name': 'Mac/clang-tidy-llvmorg-21-init-15009-g841a7f08-1.tar.xz',
+        'sha256sum': '62a707e60fdb521ec20d93f430cf6fbfafaba1513e297c1d437aa40fc497090a',
+        'size_bytes': 13779328,
+        'generation': 1749626959542852,
         'condition': 'host_os == "mac" and host_cpu == "x64" and checkout_clang_tidy',
       },
       {
-        'object_name': 'Mac/clangd-llvmorg-21-init-11777-gfd3fecfc-1.tar.xz',
-        'sha256sum': '3aa82177f6e03da693d93aa9f8052fa669af1bd897359a20eaf01379db0924b8',
-        'size_bytes': 15136432,
-        'generation': 1747138966446697,
+        'object_name': 'Mac/clangd-llvmorg-21-init-15009-g841a7f08-1.tar.xz',
+        'sha256sum': '476b22ed20947dbc2036439eac1f007a5b5be09f53fe4960e6c82b3ffd0241cc',
+        'size_bytes': 15213968,
+        'generation': 1749626959730099,
         'condition': 'host_os == "mac" and host_cpu == "x64" and checkout_clangd',
       },
       {
-        'object_name': 'Mac/llvm-code-coverage-llvmorg-21-init-11777-gfd3fecfc-1.tar.xz',
-        'sha256sum': '1f8d0d65f9d027707890c28433b0bfe29e32551008e9f3c1b9803318ede2bfc6',
-        'size_bytes': 2272500,
-        'generation': 1747138966854415,
+        'object_name': 'Mac/llvm-code-coverage-llvmorg-21-init-15009-g841a7f08-1.tar.xz',
+        'sha256sum': '74c7aac36f182a6662ef6f7f66d13ceac783692f75347495d6dd7277da02af23',
+        'size_bytes': 2283840,
+        'generation': 1749626960228506,
         'condition': 'host_os == "mac" and host_cpu == "x64" and checkout_clang_coverage_tools',
       },
       {
-        'object_name': 'Mac_arm64/clang-llvmorg-21-init-11777-gfd3fecfc-1.tar.xz',
-        'sha256sum': '2d5660c50637a7ee6e5501525e7588bb255cdfd48e792b12b86ae7113c31b8ae',
-        'size_bytes': 44214476,
-        'generation': 1747138986010150,
+        'object_name': 'Mac_arm64/clang-llvmorg-21-init-15009-g841a7f08-1.tar.xz',
+        'sha256sum': 'c4d0f7d816ffe49e8db16c27a85dc692b4bbf404d75fe0e5711e116dae9d19ef',
+        'size_bytes': 44410088,
+        'generation': 1749626982459682,
         'condition': 'host_os == "mac" and host_cpu == "arm64"',
       },
       {
-        'object_name': 'Mac_arm64/clang-tidy-llvmorg-21-init-11777-gfd3fecfc-1.tar.xz',
-        'sha256sum': 'c17b6d7d112ff54699477d5fc7f5009e7b650d263d127cad4f8406f8df914996',
-        'size_bytes': 11838956,
-        'generation': 1747138986259606,
+        'object_name': 'Mac_arm64/clang-tidy-llvmorg-21-init-15009-g841a7f08-1.tar.xz',
+        'sha256sum': 'f2346895f4e3fac52330171313f39241b28cab40a9923608280eb679f36362bd',
+        'size_bytes': 11928836,
+        'generation': 1749626982775711,
         'condition': 'host_os == "mac" and host_cpu == "arm64" and checkout_clang_tidy',
       },
       {
-        'object_name': 'Mac_arm64/clangd-llvmorg-21-init-11777-gfd3fecfc-1.tar.xz',
-        'sha256sum': 'd6c134df8273fe9c4c2b5ff5786f2ceeb9ed5f251e223e55edbc0cd7aa772e83',
-        'size_bytes': 12115024,
-        'generation': 1747138986359326,
+        'object_name': 'Mac_arm64/clangd-llvmorg-21-init-15009-g841a7f08-1.tar.xz',
+        'sha256sum': 'a3f645efa6dbdb806c8133be391f09823bf955c5402ab49269ceda31cb3dccf2',
+        'size_bytes': 12184988,
+        'generation': 1749626982968083,
         'condition': 'host_os == "mac" and host_cpu == "arm64" and checkout_clangd',
       },
       {
-        'object_name': 'Mac_arm64/llvm-code-coverage-llvmorg-21-init-11777-gfd3fecfc-1.tar.xz',
-        'sha256sum': '82ca9187d1fd5ed14266612339b921d560b1008f92e1719255b755ff882d23e3',
-        'size_bytes': 1982036,
-        'generation': 1747138986831545,
+        'object_name': 'Mac_arm64/llvm-code-coverage-llvmorg-21-init-15009-g841a7f08-1.tar.xz',
+        'sha256sum': '17a011d7bb395741ef12e4631151ad5f0d62ce7cff263aaebb15b2978b2a48c1',
+        'size_bytes': 1990792,
+        'generation': 1749626983445673,
         'condition': 'host_os == "mac" and host_cpu == "arm64" and checkout_clang_coverage_tools',
       },
       {
-        'object_name': 'Win/clang-llvmorg-21-init-11777-gfd3fecfc-1.tar.xz',
-        'sha256sum': '39e17b8282b9f1e3cbc6b22d3144696728c867f3ae66694b0125c3ed60755401',
-        'size_bytes': 47250032,
-        'generation': 1747139012194774,
+        'object_name': 'Win/clang-llvmorg-21-init-15009-g841a7f08-1.tar.xz',
+        'sha256sum': '121690620f369ed32e633941b0eba1334c5e6db9faebd16301e642b798966e7d',
+        'size_bytes': 47358588,
+        'generation': 1749627006959319,
         'condition': 'host_os == "win"',
       },
       {
-        'object_name': 'Win/clang-tidy-llvmorg-21-init-11777-gfd3fecfc-1.tar.xz',
-        'sha256sum': '9dec82a917bd55947e39891137ba5c13663ca94d2c102d56eb52b9b176365910',
-        'size_bytes': 13492960,
-        'generation': 1747139012510054,
+        'object_name': 'Win/clang-tidy-llvmorg-21-init-15009-g841a7f08-1.tar.xz',
+        'sha256sum': '349fa971f1d6d00b051ab19810cbd1a762a41544b959b580665d780022f6e438',
+        'size_bytes': 13542676,
+        'generation': 1749627007293307,
         'condition': 'host_os == "win" and checkout_clang_tidy',
       },
       {
-        'object_name': 'Win/clang-win-runtime-library-llvmorg-21-init-11777-gfd3fecfc-1.tar.xz',
-        'sha256sum': '220abd9ce9a85446a2e7879aab3c1f2f5393665f6b13b067f8cec565ae7d36eb',
-        'size_bytes': 2486856,
-        'generation': 1747139033547001,
+        'object_name': 'Win/clang-win-runtime-library-llvmorg-21-init-15009-g841a7f08-1.tar.xz',
+        'sha256sum': 'c3504ea2196becfca54f00e0c71f2d5ffd77e37a48fd172931dbc7cc31e47040',
+        'size_bytes': 2505740,
+        'generation': 1749627029752519,
         'condition': 'checkout_win and not host_os == "win"',
       },
       {
-        'object_name': 'Win/clangd-llvmorg-21-init-11777-gfd3fecfc-1.tar.xz',
-        'sha256sum': '81fa230b6311e3e50147cae3acd6d2c83c1bef13ff46df3df3d580ca911e9d15',
-        'size_bytes': 13918432,
-        'generation': 1747139013351355,
+        'object_name': 'Win/clangd-llvmorg-21-init-15009-g841a7f08-1.tar.xz',
+        'sha256sum': 'ae06186314646ffe1ed0497d13006ca79100a3fc60b2faf07a83e409d652deaf',
+        'size_bytes': 13980236,
+        'generation': 1749627007458183,
        'condition': 'host_os == "win" and checkout_clangd',
       },
       {
-        'object_name': 'Win/llvm-code-coverage-llvmorg-21-init-11777-gfd3fecfc-1.tar.xz',
-        'sha256sum': '611b9689c3d3e80ab7485e698f6b67e0df328b5407f30f177c29fe394b81a13e',
-        'size_bytes': 2378584,
-        'generation': 1747139013764369,
+        'object_name': 'Win/llvm-code-coverage-llvmorg-21-init-15009-g841a7f08-1.tar.xz',
+        'sha256sum': '239f3b933fa531c70b66fd80a8c900d080ed4d8153aa05781287e0a63ec407d2',
+        'size_bytes': 2388288,
+        'generation': 1749627008214902,
         'condition': 'host_os == "win" and checkout_clang_coverage_tools',
       },
       {
-        'object_name': 'Win/llvmobjdump-llvmorg-21-init-11777-gfd3fecfc-1.tar.xz',
-        'sha256sum': '67a05210ee38b2f575df3cc1feb04ed36b4186748c2d769e2201572b413305fe',
-        'size_bytes': 5698204,
-        'generation': 1747139013159526,
+        'object_name': 'Win/llvmobjdump-llvmorg-21-init-15009-g841a7f08-1.tar.xz',
+        'sha256sum': 'fce654527aad54b01d6d19b2cd5d79264cf1f7195cd17a1eeef2626dad09cd26',
+        'size_bytes': 5665536,
+        'generation': 1749627007640649,
         'condition': '(checkout_linux or checkout_mac or checkout_android) and host_os == "win"',
       },
     ]
@@ -997,31 +997,31 @@
     'bucket': 'chromium-browser-clang',
     'objects': [
       {
-        'object_name': 'Linux_x64/rust-toolchain-4a0969e06dbeaaa43914d2d00b2e843d49aa3886-1-llvmorg-21-init-11777-gfd3fecfc.tar.xz',
-        'sha256sum': 'df1573701599cb7d00c1050b71636a436320b8ad47bb09cb46d6e96b3f8ac585',
-        'size_bytes': 118529212,
-        'generation': 1747160498430964,
+        'object_name': 'Linux_x64/rust-toolchain-0b65d0db5f77c44bf37b4a25489562d68c14aecf-1-llvmorg-21-init-15009-g841a7f08.tar.xz',
+        'sha256sum': 'e2292abfbbebe5d5cf50c144cd2987a386af4018cfc2b5d221b3732801d0f890',
+        'size_bytes': 119462048,
+        'generation': 1749732327927434,
         'condition': 'host_os == "linux" and non_git_source',
       },
       {
-        'object_name': 'Mac/rust-toolchain-4a0969e06dbeaaa43914d2d00b2e843d49aa3886-1-llvmorg-21-init-11777-gfd3fecfc.tar.xz',
-        'sha256sum': '83836493c8a81b212c20e16666c6b918bff28748f4d6685c5107eb7e9d16f6fe',
-        'size_bytes': 111691772,
-        'generation': 1747160500088595,
+        'object_name': 'Mac/rust-toolchain-0b65d0db5f77c44bf37b4a25489562d68c14aecf-1-llvmorg-21-init-15009-g841a7f08.tar.xz',
+        'sha256sum': '333819bfe3e903294240aa523f910f6914ef480bda0bfc671b271ae7ec4a902c',
+        'size_bytes': 112578376,
+        'generation': 1749732329993214,
         'condition': 'host_os == "mac" and host_cpu == "x64"',
       },
       {
-        'object_name': 'Mac_arm64/rust-toolchain-4a0969e06dbeaaa43914d2d00b2e843d49aa3886-1-llvmorg-21-init-11777-gfd3fecfc.tar.xz',
-        'sha256sum': 'd975e322a2e5c680b54f27a6545c63c0de2c5367ca6ffefda04de491d6b76553',
-        'size_bytes': 102206348,
-        'generation': 1747160501743827,
+        'object_name': 'Mac_arm64/rust-toolchain-0b65d0db5f77c44bf37b4a25489562d68c14aecf-1-llvmorg-21-init-15009-g841a7f08.tar.xz',
+        'sha256sum': '39d95b5a58c74fc15be52ebd1bd83c36e0b312397c15ce1871b175ace5e5944e',
+        'size_bytes': 102896060,
+        'generation': 1749732331745908,
         'condition': 'host_os == "mac" and host_cpu == "arm64"',
       },
       {
-        'object_name': 'Win/rust-toolchain-4a0969e06dbeaaa43914d2d00b2e843d49aa3886-1-llvmorg-21-init-11777-gfd3fecfc.tar.xz',
-        'sha256sum': '25c51b4c2e0e8b4e974973f0357b12ecb645a0a7a136f9e0a6604e87c21acc7a',
-        'size_bytes': 193582440,
-        'generation': 1747160503376785,
+        'object_name': 'Win/rust-toolchain-0b65d0db5f77c44bf37b4a25489562d68c14aecf-1-llvmorg-21-init-15009-g841a7f08.tar.xz',
+        'sha256sum': '4745c67218ddcea9502bd6bc7944f3b726ca8014ad0d4300c6c630c0f011cd78',
+        'size_bytes': 194910004,
+        'generation': 1749732333543007,
         'condition': 'host_os == "win"',
       },
     ],
@@ -1521,12 +1521,12 @@
 
   'src/clank': {
     'url': Var('chrome_git') + '/clank/internal/apps.git' + '@' +
-    '495257e25198d1739ddaddd2f1c63e98e0d107e5',
+    '165e1245942c2ba6c05b06533aad7e66d94d1209',
     'condition': 'checkout_android and checkout_src_internal',
   },
 
   'src/docs/website': {
-    'url': Var('chromium_git') + '/website.git' + '@' + 'cca89b4e2f007c21ff502adffd4339b01bf8730a',
+    'url': Var('chromium_git') + '/website.git' + '@' + 'bc9e8a007a9145c1511f0e7ede2e9d6b57e0c4c9',
   },
 
   'src/ios/third_party/earl_grey2/src': {
@@ -2007,7 +2007,7 @@
 
   # For Linux and Chromium OS.
   'src/third_party/cros_system_api': {
-      'url': Var('chromium_git') + '/chromiumos/platform2/system_api.git' + '@' + 'bf8111c8d68156e9df5f63e4213d0222a127062b',
+      'url': Var('chromium_git') + '/chromiumos/platform2/system_api.git' + '@' + '349c5cb547162b967df40a336fc08bb18819a5e1',
       'condition': 'checkout_linux or checkout_chromeos',
   },
 
@@ -2564,7 +2564,7 @@
     Var('pdfium_git') + '/pdfium.git' + '@' +  Var('pdfium_revision'),
 
   'src/third_party/perfetto':
-    Var('chromium_git') + '/external/github.com/google/perfetto.git' + '@' + 'e93a2c7998dee72ddcacff7cf54d001051205ce4',
+    Var('chromium_git') + '/external/github.com/google/perfetto.git' + '@' + '8c8de4407f78895894119066404a2deaa92fd866',
 
   'src/base/tracing/test/data': {
     'bucket': 'perfetto',
@@ -2741,7 +2741,7 @@
       'packages': [
           {
               'package': 'chromium/third_party/r8',
-              'version': 'F0pTWc6uG70kZPngypnQxCgD3CgY5D8O-pDqj_qeoQMC',
+              'version': 'vyND5ed7BNCedbc49JaNOodeA7NrhM08caDYzWEh4PoC',
           },
       ],
       'condition': 'checkout_android and non_git_source',
@@ -2937,7 +2937,7 @@
     Var('chromium_git') + '/webpagereplay.git' + '@' + Var('webpagereplay_revision'),
 
   'src/third_party/webrtc':
-    Var('webrtc_git') + '/src.git' + '@' + '47b9d928a9e4c0f2dbe48909a37ec4d9c71ac1f6',
+    Var('webrtc_git') + '/src.git' + '@' + 'cf714279e2a0d54e03b4065f14748dea1dc24606',
 
   # 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.
@@ -4634,7 +4634,7 @@
 
   'src/components/autofill/core/browser/form_parsing/internal_resources': {
       'url': Var('chrome_git') + '/chrome/components/autofill_regex_patterns.git' + '@' +
-        'f7b8bc92167cb6a44875b51cdee3df2e664ba21f',
+        'b0d7376c49e618262acef6723c9dbdc7c41d31e8',
       'condition': 'checkout_src_internal',
   },
 
@@ -4723,7 +4723,7 @@
 
   'src/ios_internal':  {
       'url': Var('chrome_git') + '/chrome/ios_internal.git' + '@' +
-        '9359be07f1fa746ee3d0332c9292639e6c5effcf',
+        'e8a715242397f0240c9fbf1a0e3724167a78d435',
       'condition': 'checkout_ios and checkout_src_internal',
   },
 
diff --git a/android_webview/javatests/src/org/chromium/android_webview/test/ProfileExtraHeadersTest.java b/android_webview/javatests/src/org/chromium/android_webview/test/ProfileExtraHeadersTest.java
index 254aab4c..8ce33e8 100644
--- a/android_webview/javatests/src/org/chromium/android_webview/test/ProfileExtraHeadersTest.java
+++ b/android_webview/javatests/src/org/chromium/android_webview/test/ProfileExtraHeadersTest.java
@@ -31,6 +31,7 @@
 import org.chromium.base.ThreadUtils;
 import org.chromium.base.test.util.Batch;
 import org.chromium.base.test.util.CommandLineFlags;
+import org.chromium.base.test.util.DisabledTest;
 import org.chromium.base.test.util.Feature;
 import org.chromium.base.test.util.HistogramWatcher;
 import org.chromium.components.embedder_support.util.WebResourceResponseInfo;
@@ -569,6 +570,7 @@
     @MediumTest
     @Feature({"AndroidWebView"})
     @Test
+    @DisabledTest(message = "https://crbug.com/424621656")
     public void willAttachHeaderOnCrossOriginResourceRequests() throws Exception {
         ThreadUtils.runOnUiThreadBlocking(
                 () -> mAwContents.getSettings().setCacheMode(WebSettings.LOAD_NO_CACHE));
diff --git a/android_webview/renderer/aw_content_renderer_client.cc b/android_webview/renderer/aw_content_renderer_client.cc
index 341edc4..20fbad1 100644
--- a/android_webview/renderer/aw_content_renderer_client.cc
+++ b/android_webview/renderer/aw_content_renderer_client.cc
@@ -78,11 +78,10 @@
 #if BUILDFLAG(SUPPORTS_CODE_ORDERING)
   if (base::FeatureList::IsEnabled(features::kWebViewPrefetchNativeLibrary) &&
       features::kWebViewPrefetchFromRenderer.Get()) {
-    base::ThreadPool::PostTask(
-        FROM_HERE, base::BindOnce([] {
-          base::android::NativeLibraryPrefetcher::ForkAndPrefetchNativeLibrary(
-              false);
-        }));
+    base::ThreadPool::PostTask(FROM_HERE, base::BindOnce([] {
+                                 base::android::NativeLibraryPrefetcher::
+                                     ForkAndPrefetchNativeLibrary();
+                               }));
   }
 #endif
 
diff --git a/ash/strings/ash_strings_ja.xtb b/ash/strings/ash_strings_ja.xtb
index 6ce04850..2181f6d 100644
--- a/ash/strings/ash_strings_ja.xtb
+++ b/ash/strings/ash_strings_ja.xtb
@@ -434,7 +434,7 @@
 <translation id="2455994958736234930">アドレスバーに「www.」と「.com」を追加してからウェブサイトを開く</translation>
 <translation id="2456008742792828469">カレンダー、<ph name="CURRENT_MONTH_YEAR" /></translation>
 <translation id="246052086404491029">ドリルダウン</translation>
-<translation id="2465145153332031561">バッテリーの状態 <ph name="BATTERY_HEALTH_PERCENTAGE" />%、サイクル数 <ph name="CYCLE_COUNT" /></translation>
+<translation id="2465145153332031561">バッテリー ヘルス <ph name="BATTERY_HEALTH_PERCENTAGE" />%、サイクル数 <ph name="CYCLE_COUNT" /></translation>
 <translation id="2473177541599297363">解像度の確定</translation>
 <translation id="2475783092753560388"><ph name="SEARCH_RESULT_TEXT" /> を挿入</translation>
 <translation id="2475982808118771221">エラーが発生しました</translation>
@@ -1283,7 +1283,7 @@
 <translation id="5147567197700016471">ロック解除済み</translation>
 <translation id="5150070631291639005">プライバシー設定</translation>
 <translation id="5155897006997040331">読み上げ速度</translation>
-<translation id="5163434717504750796">バッテリーの状態 <ph name="BATTERY_HEALTH_PERCENTAGE" />% | サイクル数 <ph name="CYCLE_COUNT" /></translation>
+<translation id="5163434717504750796">バッテリー ヘルス <ph name="BATTERY_HEALTH_PERCENTAGE" />% | サイクル数 <ph name="CYCLE_COUNT" /></translation>
 <translation id="5166007464919321363">デスクをテンプレートとして保存</translation>
 <translation id="5168181903108465623">キャスト デバイスを利用できます</translation>
 <translation id="5168753792967365150">Google ToDo リストで編集</translation>
diff --git a/ash/strings/ash_strings_pt-BR.xtb b/ash/strings/ash_strings_pt-BR.xtb
index 58c41b9a..e694d4e 100644
--- a/ash/strings/ash_strings_pt-BR.xtb
+++ b/ash/strings/ash_strings_pt-BR.xtb
@@ -1504,7 +1504,7 @@
 <translation id="5842553299352339114">O ponto de acesso do <ph name="DEVICE_NAME" /> está ativado. Nenhum dispositivo conectado</translation>
 <translation id="584525477304726060">Para maximizar a janela, mantenha-a pressionada</translation>
 <translation id="5856638668464565213">A rede <ph name="NETWORK_NAME" /> não está ativada.</translation>
-<translation id="5860033963881614850">Desativada</translation>
+<translation id="5860033963881614850">Desativado</translation>
 <translation id="5860491529813859533">Ativar</translation>
 <translation id="5864691701242730005">Mostrar configurações do Quick Share. Visibilidade <ph name="VISIBILITY" /> selecionada</translation>
 <translation id="5864748620896638071">Bateria em <ph name="BATTERY_PERCENTAGE" />%</translation>
diff --git a/ash/webui/camera_app_ui/resources/strings/camera_strings_kn.xtb b/ash/webui/camera_app_ui/resources/strings/camera_strings_kn.xtb
index a4a9c1f..1007aa1 100644
--- a/ash/webui/camera_app_ui/resources/strings/camera_strings_kn.xtb
+++ b/ash/webui/camera_app_ui/resources/strings/camera_strings_kn.xtb
@@ -73,7 +73,7 @@
 <translation id="4121305183798804752">ಡಾಕ್ಯುಮೆಂಟ್ ಅನ್ನು ಪತ್ತೆಹಚ್ಚಲಾಗಿದೆ</translation>
 <translation id="414641094616694804">ಈ ಕ್ಯಾಮರಾ ರೆಸಲ್ಯೂಷನ್ ಅನ್ನು ಬದಲಾಯಿಸಲು ಸಾಧ್ಯವಿಲ್ಲ</translation>
 <translation id="428234092390943511">ಪುಟದ ಥಂಬ್‌ನೇಲ್</translation>
-<translation id="4383571725254449280">ಕಾರ್ಯಕ್ಷಮತೆ ಲಾಗ್‌ಗಳನ್ನು ಪ್ರಿಂಟ್ ಮಾಡಿ</translation>
+<translation id="4383571725254449280">ಪರ್ಫಾರ್ಮೆನ್ಸ್ ಲಾಗ್‌ಗಳನ್ನು ಪ್ರಿಂಟ್ ಮಾಡಿ</translation>
 <translation id="4445542136948522167">ಫೋಟೋ ತೆಗೆಯುವುದನ್ನು ನಿಲ್ಲಿಸಿ</translation>
 <translation id="4570032796877367747">ಮುಂಬದಿ ಕ್ಯಾಮರಾ</translation>
 <translation id="4598556348158889687">ಸಂಗ್ರಹಣೆ ನಿರ್ವಹಣೆ</translation>
diff --git a/ash/webui/camera_app_ui/resources/strings/camera_strings_pt-BR.xtb b/ash/webui/camera_app_ui/resources/strings/camera_strings_pt-BR.xtb
index 50f88a2..5a2b0b7 100644
--- a/ash/webui/camera_app_ui/resources/strings/camera_strings_pt-BR.xtb
+++ b/ash/webui/camera_app_ui/resources/strings/camera_strings_pt-BR.xtb
@@ -105,7 +105,7 @@
 <translation id="5753488212459587150">Ativar o modo Especialista</translation>
 <translation id="5759254179196327752">Digitalizar documento</translation>
 <translation id="5775960006311140197">Modo Especialista</translation>
-<translation id="5860033963881614850">Desativada</translation>
+<translation id="5860033963881614850">Desativado</translation>
 <translation id="5869546221129391014">Grade</translation>
 <translation id="5916664084637901428">Ativado</translation>
 <translation id="5975083100439434680">Diminuir zoom</translation>
diff --git a/base/BUILD.gn b/base/BUILD.gn
index 236713f9..8a71f4e 100644
--- a/base/BUILD.gn
+++ b/base/BUILD.gn
@@ -322,7 +322,6 @@
     "functional/concurrent_closures.h",
     "functional/disallow_unretained.h",
     "functional/function_ref.h",
-    "functional/overloaded.h",
     "functional/unretained_traits.h",
     "gtest_prod_util.h",
     "hash/hash.cc",
@@ -3426,7 +3425,6 @@
     "functional/concurrent_callbacks_unittest.cc",
     "functional/concurrent_closures_unittest.cc",
     "functional/function_ref_unittest.cc",
-    "functional/overloaded_unittest.cc",
     "gmock_unittest.cc",
     "hash/hash_unittest.cc",
     "hash/legacy_hash_unittest.cc",
@@ -4032,7 +4030,6 @@
       "android/jni_array_unittest.cc",
       "android/jni_bytebuffer_unittest.cc",
       "android/jni_string_unittest.cc",
-      "android/library_loader/library_prefetcher_unittest.cc",
       "android/linker/linker_jni.cc",
       "android/linker/linker_jni.h",
       "android/linker/linker_unittest.cc",
@@ -4397,7 +4394,6 @@
       "functional/bind_nocompile.nc",
       "functional/callback_nocompile.nc",
       "functional/function_ref_nocompile.nc",
-      "functional/overloaded_nocompile.nc",
       "logging_nocompile.nc",
       "memory/protected_memory_nocompile.nc",
       "memory/ref_counted_nocompile.nc",
diff --git a/base/android/java/src/org/chromium/base/library_loader/LibraryPrefetcher.java b/base/android/java/src/org/chromium/base/library_loader/LibraryPrefetcher.java
index 00f2d0b..03218a5e 100644
--- a/base/android/java/src/org/chromium/base/library_loader/LibraryPrefetcher.java
+++ b/base/android/java/src/org/chromium/base/library_loader/LibraryPrefetcher.java
@@ -7,77 +7,18 @@
 import org.jni_zero.JNINamespace;
 import org.jni_zero.NativeMethods;
 
-import org.chromium.base.CommandLine;
-import org.chromium.base.ContextUtils;
-import org.chromium.base.SysUtils;
-import org.chromium.base.TraceEvent;
-import org.chromium.base.task.PostTask;
-import org.chromium.base.task.TaskTraits;
 import org.chromium.build.annotations.NullMarked;
 
-import java.util.concurrent.atomic.AtomicBoolean;
-
 /**
  * Handles native library prefetch.
  *
- * See also base/android/library_loader/library_prefetcher_hooks.cc, which contains
- * the native counterpart to this class.
+ * <p>See also base/android/library_loader/library_prefetcher_hooks.cc, which contains the native
+ * counterpart to this class.
  */
 @NullMarked
 @JNINamespace("base::android")
 public class LibraryPrefetcher {
 
-    private static final String TAG = "LibraryPrefetcher";
-    // One-way switch that becomes true once {@link asyncPrefetchLibrariesToMemory} has been called.
-    private static final AtomicBoolean sPrefetchLibraryHasBeenCalled = new AtomicBoolean();
-
-    /**
-     * Prefetches the native libraries in a background thread.
-     *
-     * Launches a task that, through a short-lived forked process, reads a
-     * part of each page of the native library.  This is done to warm up the
-     * page cache, turning hard page faults into soft ones.
-     *
-     * This is done this way, as testing shows that fadvise(FADV_WILLNEED) is
-     * detrimental to the startup time.
-     */
-    public static void asyncPrefetchLibrariesToMemory() {
-        SysUtils.logPageFaultCountToTracing();
-
-        final boolean coldStart = sPrefetchLibraryHasBeenCalled.compareAndSet(false, true);
-        // Collection should start close to the native library load, but doesn't have
-        // to be simultaneous with it. Also, don't prefetch in this case, as this would
-        // skew the results.
-        if (coldStart && CommandLine.getInstance().hasSwitch("log-native-library-residency")) {
-            // LibraryPrefetcherJni.get().periodicallyCollectResidency() sleeps, run it on another
-            // thread, and not on the thread pool.
-            new Thread(() -> LibraryPrefetcherJni.get().periodicallyCollectResidency()).start();
-            return;
-        }
-
-        PostTask.postTask(
-                TaskTraits.USER_BLOCKING,
-                () -> {
-                    int percentage =
-                            LibraryPrefetcherJni.get().percentageOfResidentNativeLibraryCode();
-                    try (TraceEvent e =
-                            TraceEvent.scoped(
-                                    "LibraryPrefetcher.asyncPrefetchLibrariesToMemory",
-                                    Integer.toString(percentage))) {
-                        // Arbitrary percentage threshold. If most of the native library is already
-                        // resident (likely with monochrome), don't bother creating a prefetch
-                        // process.
-                        boolean prefetch = coldStart && percentage < 90;
-                        if (prefetch) LibraryPrefetcherJni.get().forkAndPrefetchNativeLibrary();
-                    }
-                    // Removes a dead flag, don't remove the removal code before M77 at least.
-                    ContextUtils.getAppSharedPreferences()
-                            .edit()
-                            .remove("dont_prefetch_libraries")
-                            .apply();
-                });
-    }
-
     public static void prefetchNativeLibraryForWebView() {
         LibraryPrefetcherJni.get().prefetchNativeLibraryForWebView();
     }
@@ -87,17 +28,6 @@
         // Finds the ranges corresponding to the native library pages, forks a new
         // process to prefetch these pages and waits for it. The new process then
         // terminates. This is blocking.
-        // On some devices, this prefetches only the ordered part of the library.
-        void forkAndPrefetchNativeLibrary();
-
-        // Similar to the above function, but always prefetches the whole library.
         void prefetchNativeLibraryForWebView();
-
-        // Returns the percentage of the native library code page that are currently reseident in
-        // memory.
-        int percentageOfResidentNativeLibraryCode();
-
-        // Periodically logs native library residency from this thread.
-        void periodicallyCollectResidency();
     }
 }
diff --git a/base/android/library_loader/library_loader_hooks.cc b/base/android/library_loader/library_loader_hooks.cc
index fa9f5949..cc20604b 100644
--- a/base/android/library_loader/library_loader_hooks.cc
+++ b/base/android/library_loader/library_loader_hooks.cc
@@ -11,11 +11,6 @@
 #include "base/android/library_loader/library_prefetcher.h"
 #include "base/android/orderfile/orderfile_buildflags.h"
 #include "base/at_exit.h"
-#include "base/base_switches.h"
-#include "base/metrics/histogram.h"
-#include "base/metrics/histogram_functions.h"
-#include "base/metrics/histogram_macros.h"
-#include "base/system/sys_info.h"
 
 // Must come after all headers that specialize FromJniType() / ToJniType().
 #include "base/library_loader_jni/LibraryLoader_jni.h"
@@ -40,14 +35,6 @@
   return g_library_process_type;
 }
 
-bool IsUsingOrderfileOptimization() {
-#if BUILDFLAG(SUPPORTS_CODE_ORDERING)
-  return SysInfo::IsLowEndDevice();
-#else  //  !SUPPORTS_CODE_ORDERING
-  return false;
-#endif
-}
-
 void SetNativeInitializationHook(
     NativeInitializationHook native_initialization_hook) {
   g_native_initialization_hook = native_initialization_hook;
@@ -67,15 +54,6 @@
   orderfile::StartDelayedDump();
 #endif
 
-#if BUILDFLAG(SUPPORTS_CODE_ORDERING)
-  if (CommandLine::ForCurrentProcess()->HasSwitch(
-          "log-native-library-residency")) {
-    NativeLibraryPrefetcher::MadviseForResidencyCollection();
-  } else if (IsUsingOrderfileOptimization()) {
-    NativeLibraryPrefetcher::MadviseForOrderfile();
-  }
-#endif
-
   if (g_native_initialization_hook &&
       !g_native_initialization_hook(
           static_cast<LibraryProcessType>(library_process_type))) {
diff --git a/base/android/library_loader/library_loader_hooks.h b/base/android/library_loader/library_loader_hooks.h
index ccae29006..8213d1a2 100644
--- a/base/android/library_loader/library_loader_hooks.h
+++ b/base/android/library_loader/library_loader_hooks.h
@@ -8,9 +8,6 @@
 #include <jni.h>
 
 #include "base/base_export.h"
-#include "base/command_line.h"
-#include "base/functional/callback.h"
-#include "base/metrics/field_trial.h"
 
 namespace base {
 
@@ -36,12 +33,6 @@
 // Returns the library process type this library was loaded for.
 BASE_EXPORT LibraryProcessType GetLibraryProcessType();
 
-// Whether fewer code should be prefetched, and no-readahead should be set.
-// Returns true on low-end devices, where this speeds up startup, and false
-// elsewhere, where it slows it down. See
-// https://bugs.chromium.org/p/chromium/issues/detail?id=758566#c71 for details.
-BASE_EXPORT bool IsUsingOrderfileOptimization();
-
 typedef bool NativeInitializationHook(LibraryProcessType library_process_type);
 
 BASE_EXPORT void SetNativeInitializationHook(
diff --git a/base/android/library_loader/library_prefetcher.cc b/base/android/library_loader/library_prefetcher.cc
index 6233ad45..b055666d 100644
--- a/base/android/library_loader/library_prefetcher.cc
+++ b/base/android/library_loader/library_prefetcher.cc
@@ -9,31 +9,19 @@
 
 #include "base/android/library_loader/library_prefetcher.h"
 
-#include <stddef.h>
-#include <sys/mman.h>
-#include <sys/resource.h>
+#include <sys/types.h>
 #include <sys/wait.h>
-#include <unistd.h>
 
-#include <algorithm>
-#include <atomic>
-#include <cstdlib>
-#include <memory>
-#include <utility>
-#include <vector>
+#include <csignal>
+#include <cstddef>
 
 #include "base/android/library_loader/anchor_functions.h"
 #include "base/android/orderfile/orderfile_buildflags.h"
 #include "base/bits.h"
-#include "base/containers/span.h"
-#include "base/files/file.h"
-#include "base/format_macros.h"
 #include "base/logging.h"
 #include "base/metrics/histogram_functions.h"
 #include "base/posix/eintr_wrapper.h"
-#include "base/process/process_metrics.h"
-#include "base/strings/string_util.h"
-#include "base/strings/stringprintf.h"
+#include "base/time/time.h"
 #include "build/build_config.h"
 
 #if BUILDFLAG(ORDERFILE_INSTRUMENTATION)
@@ -47,128 +35,12 @@
 
 namespace {
 
-// Valid for all Android architectures.
+// The binary is aligned to a minimum 16K page size on AArch64 Android, else 4K.
+#if defined(ARCH_CPU_ARM64)
+constexpr size_t kPageSize = 16384;
+#else
 constexpr size_t kPageSize = 4096;
-
-// Populates the per-page residency between |start| and |end| in |residency|. If
-// successful, |residency| has the size of |end| - |start| in pages.
-// Returns true for success.
-bool Mincore(size_t start, size_t end, std::vector<unsigned char>* residency) {
-  if (start % kPageSize || end % kPageSize) {
-    return false;
-  }
-  size_t size = end - start;
-  size_t size_in_pages = size / kPageSize;
-  if (residency->size() != size_in_pages) {
-    residency->resize(size_in_pages);
-  }
-  int err = HANDLE_EINTR(
-      mincore(reinterpret_cast<void*>(start), size, &(*residency)[0]));
-  PLOG_IF(ERROR, err) << "mincore() failed";
-  return !err;
-}
-
-// Returns the start and end of .text, aligned to the lower and upper page
-// boundaries, respectively.
-std::pair<size_t, size_t> GetTextRange() {
-  // |kStartOfText| may not be at the beginning of a page, since .plt can be
-  // before it, yet in the same mapping for instance.
-  size_t start_page = kStartOfText - kStartOfText % kPageSize;
-  // Set the end to the page on which the beginning of the last symbol is. The
-  // actual symbol may spill into the next page by a few bytes, but this is
-  // outside of the executable code range anyway.
-  size_t end_page = bits::AlignUp(kEndOfText, kPageSize);
-  return {start_page, end_page};
-}
-
-// Returns the start and end pages of the unordered section of .text, aligned to
-// lower and upper page boundaries, respectively.
-std::pair<size_t, size_t> GetOrderedTextRange() {
-  size_t start_page = kStartOfOrderedText - kStartOfOrderedText % kPageSize;
-  // kEndOfUnorderedText is not considered ordered, but the byte immediately
-  // before is considered ordered and so can not be contained in the start page.
-  size_t end_page = bits::AlignUp(kEndOfOrderedText, kPageSize);
-  return {start_page, end_page};
-}
-
-// Calls madvise(advice) on the specified range. Does nothing if the range is
-// empty.
-void MadviseOnRange(const std::pair<size_t, size_t>& range, int advice) {
-  if (range.first >= range.second) {
-    return;
-  }
-  size_t size = range.second - range.first;
-  int err = madvise(reinterpret_cast<void*>(range.first), size, advice);
-  if (err) {
-    PLOG(ERROR) << "madvise() failed";
-  }
-}
-
-// Timestamp in ns since Unix Epoch, and residency, as returned by mincore().
-struct TimestampAndResidency {
-  uint64_t timestamp_nanos;
-  std::vector<unsigned char> residency;
-
-  TimestampAndResidency(uint64_t timestamp_nanos,
-                        std::vector<unsigned char>&& residency)
-      : timestamp_nanos(timestamp_nanos), residency(residency) {}
-};
-
-// Returns true for success.
-bool CollectResidency(size_t start,
-                      size_t end,
-                      std::vector<TimestampAndResidency>* data) {
-  // Not using TimeTicks() to not call too many base:: symbol that would pollute
-  // the reached symbols dumps.
-  struct timespec ts;
-  if (HANDLE_EINTR(clock_gettime(CLOCK_MONOTONIC, &ts))) {
-    PLOG(ERROR) << "Cannot get the time.";
-    return false;
-  }
-  uint64_t now = static_cast<uint64_t>(ts.tv_sec) * 1000 * 1000 * 1000 +
-                 static_cast<uint64_t>(ts.tv_nsec);
-  std::vector<unsigned char> residency;
-  if (!Mincore(start, end, &residency)) {
-    return false;
-  }
-
-  data->emplace_back(now, std::move(residency));
-  return true;
-}
-
-void DumpResidency(size_t start,
-                   size_t end,
-                   std::unique_ptr<std::vector<TimestampAndResidency>> data) {
-  LOG(WARNING) << "Dumping native library residency";
-  auto path = FilePath(
-      StringPrintf("/data/local/tmp/chrome/residency-%d.txt", getpid()));
-  auto file = File(path, File::FLAG_CREATE_ALWAYS | File::FLAG_WRITE);
-  if (!file.IsValid()) {
-    PLOG(ERROR) << "Cannot open file to dump the residency data "
-                << path.value();
-    return;
-  }
-
-  // First line: start-end of text range.
-  CHECK(AreAnchorsSane());
-  CHECK_LE(start, kStartOfText);
-  CHECK_LE(kEndOfText, end);
-  auto start_end = StringPrintf("%" PRIuS " %" PRIuS "\n", kStartOfText - start,
-                                kEndOfText - start);
-  file.WriteAtCurrentPos(base::as_byte_span(start_end));
-
-  for (const auto& data_point : *data) {
-    auto timestamp = StringPrintf("%" PRIu64 " ", data_point.timestamp_nanos);
-    file.WriteAtCurrentPos(base::as_byte_span(timestamp));
-
-    std::vector<char> dump;
-    dump.reserve(data_point.residency.size());
-    for (auto c : data_point.residency) {
-      dump.push_back(c ? '1' : '0');
-    }
-    file.WriteAtCurrentPos(base::as_byte_span(dump));
-  }
-}
+#endif
 
 #if !BUILDFLAG(ORDERFILE_INSTRUMENTATION)
 // Reads a byte per page between |start| and |end| to force it into the page
@@ -207,35 +79,39 @@
   kMaxValue = kChildProcessKilled
 };
 
-PrefetchStatus ForkAndPrefetch(bool ordered_only) {
+PrefetchStatus ForkAndPrefetch() {
   if (!IsOrderingSane()) {
     LOG(WARNING) << "Incorrect code ordering";
     return PrefetchStatus::kWrongOrdering;
   }
 
-  // Looking for ranges is done before the fork, to avoid syscalls and/or memory
-  // allocations in the forked process. The child process inherits the lock
-  // state of its parent thread. It cannot rely on being able to acquire any
-  // lock (unless special care is taken in a pre-fork handler), including being
-  // able to call malloc().
-  //
-  // Always prefetch the ordered section first, as it's reached early during
-  // startup, and not necessarily located at the beginning of .text.
-  std::vector<std::pair<size_t, size_t>> ranges = {GetOrderedTextRange()};
-  if (!ordered_only) {
-    ranges.push_back(GetTextRange());
-  }
-
   pid_t pid = fork();
   if (pid == 0) {
     // Android defines the background priority to this value since at least 2009
     // (see Process.java).
     constexpr int kBackgroundPriority = 10;
     setpriority(PRIO_PROCESS, 0, kBackgroundPriority);
+
+    // |kStartOfText| may not be at the beginning of a page, since .plt can be
+    // before it, yet in the same mapping for instance.
+    size_t text_start_page = kStartOfText - kStartOfText % kPageSize;
+    // Set the end to the page on which the beginning of the last symbol is. The
+    // actual symbol may spill into the next page by a few bytes, but this is
+    // outside of the executable code range anyway.
+    size_t text_end_page = bits::AlignUp(kEndOfText, kPageSize);
+
+    size_t ordered_start_page =
+        kStartOfOrderedText - kStartOfOrderedText % kPageSize;
+    // kEndOfUnorderedText is not considered ordered, but the byte immediately
+    // before is considered ordered and so can not be contained in the start
+    // page.
+    size_t ordered_end_page = bits::AlignUp(kEndOfOrderedText, kPageSize);
+
+    // Fetch the ordered section first.
+    Prefetch(ordered_start_page, ordered_end_page);
+    Prefetch(text_start_page, text_end_page);
+
     // _exit() doesn't call the atexit() handlers.
-    for (const auto& range : ranges) {
-      Prefetch(range.first, range.second);
-    }
     _exit(EXIT_SUCCESS);
   } else {
     if (pid < 0) {
@@ -272,14 +148,14 @@
 }  // namespace
 
 // static
-void NativeLibraryPrefetcher::ForkAndPrefetchNativeLibrary(bool ordered_only) {
+void NativeLibraryPrefetcher::ForkAndPrefetchNativeLibrary() {
 #if BUILDFLAG(ORDERFILE_INSTRUMENTATION)
   // Avoid forking with orderfile instrumentation because the child process
   // would create a dump as well.
   return;
 #else
   base::TimeTicks start_time = base::TimeTicks::Now();
-  PrefetchStatus status = ForkAndPrefetch(ordered_only);
+  PrefetchStatus status = ForkAndPrefetch();
   base::UmaHistogramMediumTimes("Android.LibraryLoader.Prefetch.Duration",
                                 base::TimeTicks::Now() - start_time);
   base::UmaHistogramEnumeration("Android.LibraryLoader.Prefetch.Status",
@@ -291,76 +167,6 @@
 #endif  // BUILDFLAG(ORDERFILE_INSTRUMENTATION)
 }
 
-// static
-int NativeLibraryPrefetcher::PercentageOfResidentCode(size_t start,
-                                                      size_t end) {
-  size_t total_pages = 0;
-  size_t resident_pages = 0;
-
-  std::vector<unsigned char> residency;
-  bool ok = Mincore(start, end, &residency);
-  if (!ok) {
-    return -1;
-  }
-  total_pages += residency.size();
-  resident_pages += static_cast<size_t>(
-      std::ranges::count_if(residency, [](unsigned char x) { return x & 1; }));
-  if (total_pages == 0) {
-    return -1;
-  }
-  return static_cast<int>((100 * resident_pages) / total_pages);
-}
-
-// static
-int NativeLibraryPrefetcher::PercentageOfResidentNativeLibraryCode() {
-  if (!AreAnchorsSane()) {
-    LOG(WARNING) << "Incorrect code ordering";
-    return -1;
-  }
-  const auto& range = GetTextRange();
-  return PercentageOfResidentCode(range.first, range.second);
-}
-
-// static
-void NativeLibraryPrefetcher::PeriodicallyCollectResidency() {
-  CHECK_EQ(static_cast<long>(kPageSize), sysconf(_SC_PAGESIZE));
-
-  LOG(WARNING) << "Spawning thread to periodically collect residency";
-  const auto& range = GetTextRange();
-  auto data = std::make_unique<std::vector<TimestampAndResidency>>();
-  // Collect residency for about minute (the actual time spent collecting
-  // residency can vary, so this is only approximate).
-  for (int i = 0; i < 120; ++i) {
-    if (!CollectResidency(range.first, range.second, data.get())) {
-      return;
-    }
-    usleep(5e5);
-  }
-  DumpResidency(range.first, range.second, std::move(data));
-}
-
-// static
-void NativeLibraryPrefetcher::MadviseForOrderfile() {
-  if (!IsOrderingSane()) {
-    LOG(WARNING) << "Code not ordered, madvise optimization skipped";
-    return;
-  }
-  // First MADV_RANDOM on all of text, then turn the ordered text range back to
-  // normal. The ordered range may be placed anywhere within .text.
-  MadviseOnRange(GetTextRange(), MADV_RANDOM);
-  MadviseOnRange(GetOrderedTextRange(), MADV_NORMAL);
-}
-
-// static
-void NativeLibraryPrefetcher::MadviseForResidencyCollection() {
-  if (!AreAnchorsSane()) {
-    LOG(WARNING) << "Code not ordered, cannot madvise";
-    return;
-  }
-  LOG(WARNING) << "Performing madvise for residency collection";
-  MadviseOnRange(GetTextRange(), MADV_RANDOM);
-}
-
 }  // namespace android
 }  // namespace base
 #endif  // BUILDFLAG(SUPPORTS_CODE_ORDERING)
diff --git a/base/android/library_loader/library_prefetcher.h b/base/android/library_loader/library_prefetcher.h
index d9f8b2a..4839a09 100644
--- a/base/android/library_loader/library_prefetcher.h
+++ b/base/android/library_loader/library_prefetcher.h
@@ -10,7 +10,6 @@
 
 #include "base/android/library_loader/anchor_functions_buildflags.h"
 #include "base/base_export.h"
-#include "base/gtest_prod_util.h"
 
 #if BUILDFLAG(SUPPORTS_CODE_ORDERING)
 
@@ -32,34 +31,9 @@
   NativeLibraryPrefetcher& operator=(const NativeLibraryPrefetcher&) = delete;
 
   // Finds the executable code range, forks a low priority process pre-fetching
-  // it wait()s for the process to exit or die. If ordered_only is true, only
-  // the ordered section is prefetched. See GetOrdrderedTextRange() in
-  // library_prefetcher.cc.
-  static void ForkAndPrefetchNativeLibrary(bool ordered_only);
-
-  // Returns the percentage of the native library code currently resident in
-  // memory, or -1 in case of error.
-  static int PercentageOfResidentNativeLibraryCode();
-
-  // Collects residency for the native library executable multiple times, then
-  // dumps it to disk.
-  static void PeriodicallyCollectResidency();
-
-  // Calls madvise() on the native library executable, using orderfile
-  // information to decide how to advise each part of the library.
-  static void MadviseForOrderfile();
-
-  // Calls madvise() on the native library executable so that residency
-  // collection is accurate.
-  static void MadviseForResidencyCollection();
-
- private:
-  // Returns the percentage of [start, end] currently resident in
-  // memory, or -1 in case of error.
-  static int PercentageOfResidentCode(size_t start, size_t end);
-
-  FRIEND_TEST_ALL_PREFIXES(NativeLibraryPrefetcherTest,
-                           TestPercentageOfResidentCode);
+  // it wait()s for the process to exit or die. It fetches any ordered section
+  // first.
+  static void ForkAndPrefetchNativeLibrary();
 };
 
 }  // namespace android
diff --git a/base/android/library_loader/library_prefetcher_hooks.cc b/base/android/library_loader/library_prefetcher_hooks.cc
index 172428e..382e0ad4 100644
--- a/base/android/library_loader/library_prefetcher_hooks.cc
+++ b/base/android/library_loader/library_prefetcher_hooks.cc
@@ -5,12 +5,8 @@
 #include <string>
 
 #include "base/android/jni_android.h"
-#include "base/android/jni_string.h"
 #include "base/android/library_loader/anchor_functions_buildflags.h"
-#include "base/android/library_loader/library_loader_hooks.h"
 #include "base/android/library_loader/library_prefetcher.h"
-#include "base/android/scoped_java_ref.h"
-#include "base/logging.h"
 
 // Must come after all headers that specialize FromJniType() / ToJniType().
 #include "base/library_loader_jni/LibraryPrefetcher_jni.h"
@@ -18,35 +14,12 @@
 namespace base {
 namespace android {
 
-static void JNI_LibraryPrefetcher_ForkAndPrefetchNativeLibrary(JNIEnv* env) {
-#if BUILDFLAG(SUPPORTS_CODE_ORDERING)
-  return NativeLibraryPrefetcher::ForkAndPrefetchNativeLibrary(
-      IsUsingOrderfileOptimization());
-#endif
-}
-
 static void JNI_LibraryPrefetcher_PrefetchNativeLibraryForWebView(JNIEnv* env) {
 #if BUILDFLAG(SUPPORTS_CODE_ORDERING)
-  return NativeLibraryPrefetcher::ForkAndPrefetchNativeLibrary(false);
+  return NativeLibraryPrefetcher::ForkAndPrefetchNativeLibrary();
 #endif
 }
 
-static jint JNI_LibraryPrefetcher_PercentageOfResidentNativeLibraryCode(
-    JNIEnv* env) {
-#if BUILDFLAG(SUPPORTS_CODE_ORDERING)
-  return NativeLibraryPrefetcher::PercentageOfResidentNativeLibraryCode();
-#else
-  return -1;
-#endif
-}
-
-static void JNI_LibraryPrefetcher_PeriodicallyCollectResidency(JNIEnv* env) {
-#if BUILDFLAG(SUPPORTS_CODE_ORDERING)
-  NativeLibraryPrefetcher::PeriodicallyCollectResidency();
-#else
-  LOG(WARNING) << "Collecting residency is not supported.";
-#endif
-}
 
 }  // namespace android
 }  // namespace base
diff --git a/base/android/library_loader/library_prefetcher_unittest.cc b/base/android/library_loader/library_prefetcher_unittest.cc
deleted file mode 100644
index 27d4eb24..0000000
--- a/base/android/library_loader/library_prefetcher_unittest.cc
+++ /dev/null
@@ -1,54 +0,0 @@
-// Copyright 2015 The Chromium Authors
-// Use of this source code is governed by a BSD-style license that can be
-// found in the LICENSE file.
-
-#include "base/android/library_loader/library_prefetcher.h"
-
-#include <stddef.h>
-#include <stdint.h>
-#include <sys/mman.h>
-
-#include "base/android/library_loader/anchor_functions_buildflags.h"
-#include "base/memory/writable_shared_memory_region.h"
-#include "build/build_config.h"
-#include "testing/gtest/include/gtest/gtest.h"
-
-#if BUILDFLAG(SUPPORTS_CODE_ORDERING)
-namespace base {
-namespace android {
-
-// Fails with ASAN, crbug.com/570423.
-#if !defined(ADDRESS_SANITIZER)
-namespace {
-const size_t kPageSize = 4096;
-}  // namespace
-
-// https://crbug.com/1056021 - flaky on Nexus 5.
-TEST(NativeLibraryPrefetcherTest, DISABLED_TestPercentageOfResidentCode) {
-  size_t length = 4 * kPageSize;
-  auto shared_region = base::WritableSharedMemoryRegion::Create(length);
-  ASSERT_TRUE(shared_region.IsValid());
-  auto mapping = shared_region.Map();
-  ASSERT_TRUE(mapping.IsValid());
-  // SAFETY: There's no public way to get a span of the full mapped memory size.
-  // The `mapped_size()` is larger then `size()` but is the actual size of the
-  // shared memory backing.
-  span<uint8_t> memory =
-      UNSAFE_BUFFERS(base::span(mapping.data(), mapping.mapped_size()));
-  auto start = reinterpret_cast<uintptr_t>(&*memory.begin());
-  auto end = reinterpret_cast<uintptr_t>(&*memory.end());
-
-  // Remove everything.
-  ASSERT_EQ(0, madvise(memory.data(), memory.size(), MADV_DONTNEED));
-  EXPECT_EQ(0, NativeLibraryPrefetcher::PercentageOfResidentCode(start, end));
-
-  // Get everything back.
-  ASSERT_EQ(0, mlock(memory.data(), memory.size()));
-  EXPECT_EQ(100, NativeLibraryPrefetcher::PercentageOfResidentCode(start, end));
-  munlock(memory.data(), memory.size());
-}
-#endif  // !defined(ADDRESS_SANITIZER)
-
-}  // namespace android
-}  // namespace base
-#endif  // BUILDFLAG(SUPPORTS_CODE_ORDERING)
diff --git a/base/containers/span_or_size.h b/base/containers/span_or_size.h
index 47de2f86..898b56d 100644
--- a/base/containers/span_or_size.h
+++ b/base/containers/span_or_size.h
@@ -10,8 +10,8 @@
 #include <variant>
 
 #include "base/containers/span.h"
-#include "base/functional/overloaded.h"
 #include "base/types/optional_ref.h"
+#include "third_party/abseil-cpp/absl/functional/overload.h"
 
 namespace base {
 
@@ -33,7 +33,7 @@
   SpanOrSize& operator=(SpanOrSize&&) = default;
 
   constexpr T* ptr_or_null_if_no_data() const {
-    return std::visit(Overloaded{
+    return std::visit(absl::Overload{
                           [](const base::span<T>& span) { return span.data(); },
                           [](size_t size) -> T* { return nullptr; },
                       },
@@ -41,7 +41,7 @@
   }
 
   constexpr size_t size() const {
-    return std::visit(Overloaded{
+    return std::visit(absl::Overload{
                           [](const base::span<T>& span) { return span.size(); },
                           [](size_t size) { return size; },
                       },
@@ -50,7 +50,7 @@
 
   constexpr optional_ref<const base::span<T>> span() const {
     return std::visit(
-        Overloaded{
+        absl::Overload{
             [](const base::span<T>& span) {
               return optional_ref<const base::span<T>>(span);
             },
diff --git a/base/functional/overloaded.h b/base/functional/overloaded.h
deleted file mode 100644
index 20168d41..0000000
--- a/base/functional/overloaded.h
+++ /dev/null
@@ -1,51 +0,0 @@
-// Copyright 2022 The Chromium Authors
-// Use of this source code is governed by a BSD-style license that can be
-// found in the LICENSE file.
-
-#ifndef BASE_FUNCTIONAL_OVERLOADED_H_
-#define BASE_FUNCTIONAL_OVERLOADED_H_
-
-namespace base {
-
-// std::visit() needs to be called with a functor object, such as
-//
-//  struct Visitor {
-//    std::string operator()(const PackageA& source) {
-//      return "PackageA";
-//    }
-//
-//    std::string operator()(const PackageB& source) {
-//      return "PackageB";
-//    }
-//  };
-//
-//  std::variant<PackageA, PackageB> var = PackageA();
-//  return std::visit(Visitor(), var);
-//
-// `Overloaded` enables the above code to be written as:
-//
-//  std::visit(
-//     Overloaded{
-//         [](const PackageA& pack) { return "PackageA"; },
-//         [](const PackageB& pack) { return "PackageB"; },
-//     }, var);
-//
-// Note: Overloads must be implemented for all the variant options. Otherwise,
-// there will be a compilation error.
-//
-// This struct inherits operator() method from all its base classes.
-// Introduces operator() method from all its base classes into its definition.
-template <typename... Callables>
-struct Overloaded : Callables... {
-  using Callables::operator()...;
-};
-
-// Uses template argument deduction so that the `Overloaded` struct can be used
-// without specifying its template argument. This allows anonymous lambdas
-// passed into the `Overloaded` constructor.
-template <typename... Callables>
-Overloaded(Callables...) -> Overloaded<Callables...>;
-
-}  // namespace base
-
-#endif  // BASE_FUNCTIONAL_OVERLOADED_H_
diff --git a/base/functional/overloaded_nocompile.nc b/base/functional/overloaded_nocompile.nc
deleted file mode 100644
index 5d82863..0000000
--- a/base/functional/overloaded_nocompile.nc
+++ /dev/null
@@ -1,26 +0,0 @@
-// Copyright 2022 The Chromium Authors
-// Use of this source code is governed by a BSD-style license that can be
-// found in the LICENSE file.
-
-// This is a "No Compile Test" suite.
-// http://dev.chromium.org/developers/testing/no-compile-tests
-
-#include "base/functional/overloaded.h"
-
-#include <variant>
-
-namespace base {
-
-void LambdaMissingForVariantElement() {
-  // `std::visit()` may only be called on an `Overloaded` that can actually
-  // handle all potential input variant types.
-  struct A {};
-  struct B {};
-  std::variant<A, B> var = A{};
-  std::visit(Overloaded{[](A& pack) { return "A"; }}, var);  // expected-error-re@*:* {{static assertion failed due to requirement {{.*}} `std::visit` requires the visitor to be exhaustive}}
-  // expected-error@*:* {{attempt to use a deleted function}}
-  // expected-error@*:* {{attempt to use a deleted function}}
-  // expected-error@*:* {{cannot deduce return type 'auto' from returned value of type '<overloaded function type>'}}
-}
-
-}  // namespace base
diff --git a/base/functional/overloaded_unittest.cc b/base/functional/overloaded_unittest.cc
deleted file mode 100644
index e01afe7..0000000
--- a/base/functional/overloaded_unittest.cc
+++ /dev/null
@@ -1,27 +0,0 @@
-// Copyright 2022 The Chromium Authors
-// Use of this source code is governed by a BSD-style license that can be
-// found in the LICENSE file.
-
-#include "base/functional/overloaded.h"
-
-#include <string>
-#include <variant>
-
-#include "testing/gtest/include/gtest/gtest.h"
-
-namespace base {
-
-TEST(FunctionalTest, Overloaded) {
-  struct PackageA {};
-  struct PackageB {};
-
-  std::variant<PackageA, PackageB> var = PackageA();
-
-  const std::string output =
-      std::visit(Overloaded{[](const PackageA& pack) { return "PackageA"; },
-                            [](const PackageB& pack) { return "PackageB"; }},
-                 var);
-  EXPECT_EQ(output, "PackageA");
-}
-
-}  // namespace base
diff --git a/base/task/thread_pool/test_utils.cc b/base/task/thread_pool/test_utils.cc
index 997e554..62d32dd 100644
--- a/base/task/thread_pool/test_utils.cc
+++ b/base/task/thread_pool/test_utils.cc
@@ -10,7 +10,6 @@
 #include "base/check.h"
 #include "base/debug/leak_annotations.h"
 #include "base/functional/bind.h"
-#include "base/functional/overloaded.h"
 #include "base/memory/raw_ptr.h"
 #include "base/synchronization/condition_variable.h"
 #include "base/task/thread_pool/pooled_parallel_task_runner.h"
@@ -19,6 +18,7 @@
 #include "base/threading/scoped_blocking_call_internal.h"
 #include "base/threading/thread_restrictions.h"
 #include "testing/gtest/include/gtest/gtest.h"
+#include "third_party/abseil-cpp/absl/functional/overload.h"
 
 namespace base::internal::test {
 
@@ -302,7 +302,7 @@
 
 void MockJobTask::Run(JobDelegate* delegate) {
   std::visit(
-      base::Overloaded{
+      absl::Overload{
           [](OnceClosure& closure) { std::move(closure).Run(); },
           [delegate](const RepeatingCallback<void(JobDelegate*)>& callback) {
             callback.Run(delegate);
diff --git a/build/config/compiler/BUILD.gn b/build/config/compiler/BUILD.gn
index 24cbbfe..932fff6 100644
--- a/build/config/compiler/BUILD.gn
+++ b/build/config/compiler/BUILD.gn
@@ -550,6 +550,17 @@
     cflags += [ "-Werror=poison-system-directories" ]
   }
 
+  if (is_chromeos_device && current_toolchain == default_toolchain) {
+    # Flags added automatically by ChromeOS's custom toolchain that are
+    # not already added elsewhere in the configuration. Add these here,
+    # so that we also get them when not building with ChromeOS's toolchain.
+    ldflags += [
+      "-Wl,--pack-dyn-relocs=relr",
+      "-Wl,--no-rosegment",
+      "-Wl,-z,nostart-stop-gc",
+    ]
+  }
+
   # Clang-specific compiler flags setup.
   # ------------------------------------
   if (is_clang) {
@@ -1952,6 +1963,9 @@
   # Note we apply the actual lint flags in config("compiler"). All warnings
   # are suppressed in third-party crates.
   rustflags = [ "-Dwarnings" ]
+
+  # TODO(crbug.com/424424323): Clean up and enable.
+  rustflags += [ "-Amismatched_lifetime_syntaxes" ]
 }
 
 # tot_warnings ----------------------------------------------------------------
@@ -1972,14 +1986,6 @@
   # Entries should generally require both is_clang and llvm_force_head_revision,
   # but may have additional constraints as well (e.g. only some OSes)
   if (is_clang && llvm_force_head_revision && !is_nacl) {
-    cflags_cc += [
-      # TODO(crbug.com/417996267): Fix and re-enable
-      "-Wno-character-conversion",
-    ]
-    cflags_objcc += [
-      # TODO(crbug.com/417996267): Fix and re-enable
-      "-Wno-character-conversion",
-    ]
   }
 }
 
@@ -2148,6 +2154,12 @@
 
         # New clang warnings usually go here during a roll
       ]
+
+      if (default_toolchain != "//build/toolchain/cros:target" &&
+          !llvm_android_mainline && !is_nacl_saigo) {
+        # TODO(crbug.com/417996267): Fix and re-enable
+        cflags += [ "-Wno-character-conversion" ]
+      }
     }
 
     if (is_component_build && use_clang_warning_suppression_file) {
diff --git a/build/rust/cargo_crate.gni b/build/rust/cargo_crate.gni
index 0e73b54..0e002ef 100644
--- a/build/rust/cargo_crate.gni
+++ b/build/rust/cargo_crate.gni
@@ -310,6 +310,9 @@
       rustflags +=
           [ "-Awarnings" ]  # Suppress other warnings in 3rd-party crates.
 
+      # TODO(crbug.com/424424323): Clean up and enable.
+      rustflags += [ "-Amismatched_lifetime_syntaxes" ]
+
       if (!defined(build_native_rust_unit_tests)) {
         build_native_rust_unit_tests = _crate_type != "proc-macro"
       }
diff --git a/build/rust/std/rules/BUILD.gn b/build/rust/std/rules/BUILD.gn
index 8806893..f59b367 100644
--- a/build/rust/std/rules/BUILD.gn
+++ b/build/rust/std/rules/BUILD.gn
@@ -298,233 +298,203 @@
 }
 cargo_crate("compiler_builtins") {
   crate_type = "rlib"
-  crate_root = "//third_party/rust-toolchain/lib/rustlib/src/rust/library/vendor/compiler_builtins-0.1.157/src/lib.rs"
+  crate_root = "//third_party/rust-toolchain/lib/rustlib/src/rust/library/vendor/compiler_builtins-0.1.160/src/lib.rs"
   sources = [
-    "//third_party/rust-toolchain/lib/rustlib/src/rust/library/vendor/compiler_builtins-0.1.157/src/aarch64.rs",
-    "//third_party/rust-toolchain/lib/rustlib/src/rust/library/vendor/compiler_builtins-0.1.157/src/aarch64_linux.rs",
-    "//third_party/rust-toolchain/lib/rustlib/src/rust/library/vendor/compiler_builtins-0.1.157/src/arm.rs",
-    "//third_party/rust-toolchain/lib/rustlib/src/rust/library/vendor/compiler_builtins-0.1.157/src/arm_linux.rs",
-    "//third_party/rust-toolchain/lib/rustlib/src/rust/library/vendor/compiler_builtins-0.1.157/src/avr.rs",
-    "//third_party/rust-toolchain/lib/rustlib/src/rust/library/vendor/compiler_builtins-0.1.157/src/float/add.rs",
-    "//third_party/rust-toolchain/lib/rustlib/src/rust/library/vendor/compiler_builtins-0.1.157/src/float/cmp.rs",
-    "//third_party/rust-toolchain/lib/rustlib/src/rust/library/vendor/compiler_builtins-0.1.157/src/float/conv.rs",
-    "//third_party/rust-toolchain/lib/rustlib/src/rust/library/vendor/compiler_builtins-0.1.157/src/float/div.rs",
-    "//third_party/rust-toolchain/lib/rustlib/src/rust/library/vendor/compiler_builtins-0.1.157/src/float/extend.rs",
-    "//third_party/rust-toolchain/lib/rustlib/src/rust/library/vendor/compiler_builtins-0.1.157/src/float/mod.rs",
-    "//third_party/rust-toolchain/lib/rustlib/src/rust/library/vendor/compiler_builtins-0.1.157/src/float/mul.rs",
-    "//third_party/rust-toolchain/lib/rustlib/src/rust/library/vendor/compiler_builtins-0.1.157/src/float/pow.rs",
-    "//third_party/rust-toolchain/lib/rustlib/src/rust/library/vendor/compiler_builtins-0.1.157/src/float/sub.rs",
-    "//third_party/rust-toolchain/lib/rustlib/src/rust/library/vendor/compiler_builtins-0.1.157/src/float/traits.rs",
-    "//third_party/rust-toolchain/lib/rustlib/src/rust/library/vendor/compiler_builtins-0.1.157/src/float/trunc.rs",
-    "//third_party/rust-toolchain/lib/rustlib/src/rust/library/vendor/compiler_builtins-0.1.157/src/hexagon.rs",
-    "//third_party/rust-toolchain/lib/rustlib/src/rust/library/vendor/compiler_builtins-0.1.157/src/int/addsub.rs",
-    "//third_party/rust-toolchain/lib/rustlib/src/rust/library/vendor/compiler_builtins-0.1.157/src/int/big.rs",
-    "//third_party/rust-toolchain/lib/rustlib/src/rust/library/vendor/compiler_builtins-0.1.157/src/int/bswap.rs",
-    "//third_party/rust-toolchain/lib/rustlib/src/rust/library/vendor/compiler_builtins-0.1.157/src/int/leading_zeros.rs",
-    "//third_party/rust-toolchain/lib/rustlib/src/rust/library/vendor/compiler_builtins-0.1.157/src/int/mod.rs",
-    "//third_party/rust-toolchain/lib/rustlib/src/rust/library/vendor/compiler_builtins-0.1.157/src/int/mul.rs",
-    "//third_party/rust-toolchain/lib/rustlib/src/rust/library/vendor/compiler_builtins-0.1.157/src/int/sdiv.rs",
-    "//third_party/rust-toolchain/lib/rustlib/src/rust/library/vendor/compiler_builtins-0.1.157/src/int/shift.rs",
-    "//third_party/rust-toolchain/lib/rustlib/src/rust/library/vendor/compiler_builtins-0.1.157/src/int/specialized_div_rem/asymmetric.rs",
-    "//third_party/rust-toolchain/lib/rustlib/src/rust/library/vendor/compiler_builtins-0.1.157/src/int/specialized_div_rem/binary_long.rs",
-    "//third_party/rust-toolchain/lib/rustlib/src/rust/library/vendor/compiler_builtins-0.1.157/src/int/specialized_div_rem/delegate.rs",
-    "//third_party/rust-toolchain/lib/rustlib/src/rust/library/vendor/compiler_builtins-0.1.157/src/int/specialized_div_rem/mod.rs",
-    "//third_party/rust-toolchain/lib/rustlib/src/rust/library/vendor/compiler_builtins-0.1.157/src/int/specialized_div_rem/norm_shift.rs",
-    "//third_party/rust-toolchain/lib/rustlib/src/rust/library/vendor/compiler_builtins-0.1.157/src/int/specialized_div_rem/trifecta.rs",
-    "//third_party/rust-toolchain/lib/rustlib/src/rust/library/vendor/compiler_builtins-0.1.157/src/int/trailing_zeros.rs",
-    "//third_party/rust-toolchain/lib/rustlib/src/rust/library/vendor/compiler_builtins-0.1.157/src/int/traits.rs",
-    "//third_party/rust-toolchain/lib/rustlib/src/rust/library/vendor/compiler_builtins-0.1.157/src/int/udiv.rs",
-    "//third_party/rust-toolchain/lib/rustlib/src/rust/library/vendor/compiler_builtins-0.1.157/src/lib.miri.rs",
-    "//third_party/rust-toolchain/lib/rustlib/src/rust/library/vendor/compiler_builtins-0.1.157/src/lib.rs",
-    "//third_party/rust-toolchain/lib/rustlib/src/rust/library/vendor/compiler_builtins-0.1.157/src/macros.rs",
-    "//third_party/rust-toolchain/lib/rustlib/src/rust/library/vendor/compiler_builtins-0.1.157/src/math/libm_math/acos.rs",
-    "//third_party/rust-toolchain/lib/rustlib/src/rust/library/vendor/compiler_builtins-0.1.157/src/math/libm_math/acosf.rs",
-    "//third_party/rust-toolchain/lib/rustlib/src/rust/library/vendor/compiler_builtins-0.1.157/src/math/libm_math/acosh.rs",
-    "//third_party/rust-toolchain/lib/rustlib/src/rust/library/vendor/compiler_builtins-0.1.157/src/math/libm_math/acoshf.rs",
-    "//third_party/rust-toolchain/lib/rustlib/src/rust/library/vendor/compiler_builtins-0.1.157/src/math/libm_math/arch/aarch64.rs",
-    "//third_party/rust-toolchain/lib/rustlib/src/rust/library/vendor/compiler_builtins-0.1.157/src/math/libm_math/arch/i586.rs",
-    "//third_party/rust-toolchain/lib/rustlib/src/rust/library/vendor/compiler_builtins-0.1.157/src/math/libm_math/arch/mod.rs",
-    "//third_party/rust-toolchain/lib/rustlib/src/rust/library/vendor/compiler_builtins-0.1.157/src/math/libm_math/arch/wasm32.rs",
-    "//third_party/rust-toolchain/lib/rustlib/src/rust/library/vendor/compiler_builtins-0.1.157/src/math/libm_math/arch/x86.rs",
-    "//third_party/rust-toolchain/lib/rustlib/src/rust/library/vendor/compiler_builtins-0.1.157/src/math/libm_math/arch/x86/detect.rs",
-    "//third_party/rust-toolchain/lib/rustlib/src/rust/library/vendor/compiler_builtins-0.1.157/src/math/libm_math/arch/x86/fma.rs",
-    "//third_party/rust-toolchain/lib/rustlib/src/rust/library/vendor/compiler_builtins-0.1.157/src/math/libm_math/asin.rs",
-    "//third_party/rust-toolchain/lib/rustlib/src/rust/library/vendor/compiler_builtins-0.1.157/src/math/libm_math/asinf.rs",
-    "//third_party/rust-toolchain/lib/rustlib/src/rust/library/vendor/compiler_builtins-0.1.157/src/math/libm_math/asinh.rs",
-    "//third_party/rust-toolchain/lib/rustlib/src/rust/library/vendor/compiler_builtins-0.1.157/src/math/libm_math/asinhf.rs",
-    "//third_party/rust-toolchain/lib/rustlib/src/rust/library/vendor/compiler_builtins-0.1.157/src/math/libm_math/atan.rs",
-    "//third_party/rust-toolchain/lib/rustlib/src/rust/library/vendor/compiler_builtins-0.1.157/src/math/libm_math/atan2.rs",
-    "//third_party/rust-toolchain/lib/rustlib/src/rust/library/vendor/compiler_builtins-0.1.157/src/math/libm_math/atan2f.rs",
-    "//third_party/rust-toolchain/lib/rustlib/src/rust/library/vendor/compiler_builtins-0.1.157/src/math/libm_math/atanf.rs",
-    "//third_party/rust-toolchain/lib/rustlib/src/rust/library/vendor/compiler_builtins-0.1.157/src/math/libm_math/atanh.rs",
-    "//third_party/rust-toolchain/lib/rustlib/src/rust/library/vendor/compiler_builtins-0.1.157/src/math/libm_math/atanhf.rs",
-    "//third_party/rust-toolchain/lib/rustlib/src/rust/library/vendor/compiler_builtins-0.1.157/src/math/libm_math/cbrt.rs",
-    "//third_party/rust-toolchain/lib/rustlib/src/rust/library/vendor/compiler_builtins-0.1.157/src/math/libm_math/cbrtf.rs",
-    "//third_party/rust-toolchain/lib/rustlib/src/rust/library/vendor/compiler_builtins-0.1.157/src/math/libm_math/ceil.rs",
-    "//third_party/rust-toolchain/lib/rustlib/src/rust/library/vendor/compiler_builtins-0.1.157/src/math/libm_math/copysign.rs",
-    "//third_party/rust-toolchain/lib/rustlib/src/rust/library/vendor/compiler_builtins-0.1.157/src/math/libm_math/copysignf.rs",
-    "//third_party/rust-toolchain/lib/rustlib/src/rust/library/vendor/compiler_builtins-0.1.157/src/math/libm_math/copysignf128.rs",
-    "//third_party/rust-toolchain/lib/rustlib/src/rust/library/vendor/compiler_builtins-0.1.157/src/math/libm_math/copysignf16.rs",
-    "//third_party/rust-toolchain/lib/rustlib/src/rust/library/vendor/compiler_builtins-0.1.157/src/math/libm_math/cos.rs",
-    "//third_party/rust-toolchain/lib/rustlib/src/rust/library/vendor/compiler_builtins-0.1.157/src/math/libm_math/cosf.rs",
-    "//third_party/rust-toolchain/lib/rustlib/src/rust/library/vendor/compiler_builtins-0.1.157/src/math/libm_math/cosh.rs",
-    "//third_party/rust-toolchain/lib/rustlib/src/rust/library/vendor/compiler_builtins-0.1.157/src/math/libm_math/coshf.rs",
-    "//third_party/rust-toolchain/lib/rustlib/src/rust/library/vendor/compiler_builtins-0.1.157/src/math/libm_math/erf.rs",
-    "//third_party/rust-toolchain/lib/rustlib/src/rust/library/vendor/compiler_builtins-0.1.157/src/math/libm_math/erff.rs",
-    "//third_party/rust-toolchain/lib/rustlib/src/rust/library/vendor/compiler_builtins-0.1.157/src/math/libm_math/exp.rs",
-    "//third_party/rust-toolchain/lib/rustlib/src/rust/library/vendor/compiler_builtins-0.1.157/src/math/libm_math/exp10.rs",
-    "//third_party/rust-toolchain/lib/rustlib/src/rust/library/vendor/compiler_builtins-0.1.157/src/math/libm_math/exp10f.rs",
-    "//third_party/rust-toolchain/lib/rustlib/src/rust/library/vendor/compiler_builtins-0.1.157/src/math/libm_math/exp2.rs",
-    "//third_party/rust-toolchain/lib/rustlib/src/rust/library/vendor/compiler_builtins-0.1.157/src/math/libm_math/exp2f.rs",
-    "//third_party/rust-toolchain/lib/rustlib/src/rust/library/vendor/compiler_builtins-0.1.157/src/math/libm_math/expf.rs",
-    "//third_party/rust-toolchain/lib/rustlib/src/rust/library/vendor/compiler_builtins-0.1.157/src/math/libm_math/expm1.rs",
-    "//third_party/rust-toolchain/lib/rustlib/src/rust/library/vendor/compiler_builtins-0.1.157/src/math/libm_math/expm1f.rs",
-    "//third_party/rust-toolchain/lib/rustlib/src/rust/library/vendor/compiler_builtins-0.1.157/src/math/libm_math/expo2.rs",
-    "//third_party/rust-toolchain/lib/rustlib/src/rust/library/vendor/compiler_builtins-0.1.157/src/math/libm_math/fabs.rs",
-    "//third_party/rust-toolchain/lib/rustlib/src/rust/library/vendor/compiler_builtins-0.1.157/src/math/libm_math/fabsf.rs",
-    "//third_party/rust-toolchain/lib/rustlib/src/rust/library/vendor/compiler_builtins-0.1.157/src/math/libm_math/fabsf128.rs",
-    "//third_party/rust-toolchain/lib/rustlib/src/rust/library/vendor/compiler_builtins-0.1.157/src/math/libm_math/fabsf16.rs",
-    "//third_party/rust-toolchain/lib/rustlib/src/rust/library/vendor/compiler_builtins-0.1.157/src/math/libm_math/fdim.rs",
-    "//third_party/rust-toolchain/lib/rustlib/src/rust/library/vendor/compiler_builtins-0.1.157/src/math/libm_math/fdimf.rs",
-    "//third_party/rust-toolchain/lib/rustlib/src/rust/library/vendor/compiler_builtins-0.1.157/src/math/libm_math/fdimf128.rs",
-    "//third_party/rust-toolchain/lib/rustlib/src/rust/library/vendor/compiler_builtins-0.1.157/src/math/libm_math/fdimf16.rs",
-    "//third_party/rust-toolchain/lib/rustlib/src/rust/library/vendor/compiler_builtins-0.1.157/src/math/libm_math/floor.rs",
-    "//third_party/rust-toolchain/lib/rustlib/src/rust/library/vendor/compiler_builtins-0.1.157/src/math/libm_math/floorf.rs",
-    "//third_party/rust-toolchain/lib/rustlib/src/rust/library/vendor/compiler_builtins-0.1.157/src/math/libm_math/floorf128.rs",
-    "//third_party/rust-toolchain/lib/rustlib/src/rust/library/vendor/compiler_builtins-0.1.157/src/math/libm_math/floorf16.rs",
-    "//third_party/rust-toolchain/lib/rustlib/src/rust/library/vendor/compiler_builtins-0.1.157/src/math/libm_math/fma.rs",
-    "//third_party/rust-toolchain/lib/rustlib/src/rust/library/vendor/compiler_builtins-0.1.157/src/math/libm_math/fmin_fmax.rs",
-    "//third_party/rust-toolchain/lib/rustlib/src/rust/library/vendor/compiler_builtins-0.1.157/src/math/libm_math/fminimum_fmaximum.rs",
-    "//third_party/rust-toolchain/lib/rustlib/src/rust/library/vendor/compiler_builtins-0.1.157/src/math/libm_math/fminimum_fmaximum_num.rs",
-    "//third_party/rust-toolchain/lib/rustlib/src/rust/library/vendor/compiler_builtins-0.1.157/src/math/libm_math/fmod.rs",
-    "//third_party/rust-toolchain/lib/rustlib/src/rust/library/vendor/compiler_builtins-0.1.157/src/math/libm_math/fmodf.rs",
-    "//third_party/rust-toolchain/lib/rustlib/src/rust/library/vendor/compiler_builtins-0.1.157/src/math/libm_math/fmodf128.rs",
-    "//third_party/rust-toolchain/lib/rustlib/src/rust/library/vendor/compiler_builtins-0.1.157/src/math/libm_math/fmodf16.rs",
-    "//third_party/rust-toolchain/lib/rustlib/src/rust/library/vendor/compiler_builtins-0.1.157/src/math/libm_math/frexp.rs",
-    "//third_party/rust-toolchain/lib/rustlib/src/rust/library/vendor/compiler_builtins-0.1.157/src/math/libm_math/frexpf.rs",
-    "//third_party/rust-toolchain/lib/rustlib/src/rust/library/vendor/compiler_builtins-0.1.157/src/math/libm_math/generic/ceil.rs",
-    "//third_party/rust-toolchain/lib/rustlib/src/rust/library/vendor/compiler_builtins-0.1.157/src/math/libm_math/generic/copysign.rs",
-    "//third_party/rust-toolchain/lib/rustlib/src/rust/library/vendor/compiler_builtins-0.1.157/src/math/libm_math/generic/fabs.rs",
-    "//third_party/rust-toolchain/lib/rustlib/src/rust/library/vendor/compiler_builtins-0.1.157/src/math/libm_math/generic/fdim.rs",
-    "//third_party/rust-toolchain/lib/rustlib/src/rust/library/vendor/compiler_builtins-0.1.157/src/math/libm_math/generic/floor.rs",
-    "//third_party/rust-toolchain/lib/rustlib/src/rust/library/vendor/compiler_builtins-0.1.157/src/math/libm_math/generic/fma.rs",
-    "//third_party/rust-toolchain/lib/rustlib/src/rust/library/vendor/compiler_builtins-0.1.157/src/math/libm_math/generic/fma_wide.rs",
-    "//third_party/rust-toolchain/lib/rustlib/src/rust/library/vendor/compiler_builtins-0.1.157/src/math/libm_math/generic/fmax.rs",
-    "//third_party/rust-toolchain/lib/rustlib/src/rust/library/vendor/compiler_builtins-0.1.157/src/math/libm_math/generic/fmaximum.rs",
-    "//third_party/rust-toolchain/lib/rustlib/src/rust/library/vendor/compiler_builtins-0.1.157/src/math/libm_math/generic/fmaximum_num.rs",
-    "//third_party/rust-toolchain/lib/rustlib/src/rust/library/vendor/compiler_builtins-0.1.157/src/math/libm_math/generic/fmin.rs",
-    "//third_party/rust-toolchain/lib/rustlib/src/rust/library/vendor/compiler_builtins-0.1.157/src/math/libm_math/generic/fminimum.rs",
-    "//third_party/rust-toolchain/lib/rustlib/src/rust/library/vendor/compiler_builtins-0.1.157/src/math/libm_math/generic/fminimum_num.rs",
-    "//third_party/rust-toolchain/lib/rustlib/src/rust/library/vendor/compiler_builtins-0.1.157/src/math/libm_math/generic/fmod.rs",
-    "//third_party/rust-toolchain/lib/rustlib/src/rust/library/vendor/compiler_builtins-0.1.157/src/math/libm_math/generic/mod.rs",
-    "//third_party/rust-toolchain/lib/rustlib/src/rust/library/vendor/compiler_builtins-0.1.157/src/math/libm_math/generic/rint.rs",
-    "//third_party/rust-toolchain/lib/rustlib/src/rust/library/vendor/compiler_builtins-0.1.157/src/math/libm_math/generic/round.rs",
-    "//third_party/rust-toolchain/lib/rustlib/src/rust/library/vendor/compiler_builtins-0.1.157/src/math/libm_math/generic/scalbn.rs",
-    "//third_party/rust-toolchain/lib/rustlib/src/rust/library/vendor/compiler_builtins-0.1.157/src/math/libm_math/generic/sqrt.rs",
-    "//third_party/rust-toolchain/lib/rustlib/src/rust/library/vendor/compiler_builtins-0.1.157/src/math/libm_math/generic/trunc.rs",
-    "//third_party/rust-toolchain/lib/rustlib/src/rust/library/vendor/compiler_builtins-0.1.157/src/math/libm_math/hypot.rs",
-    "//third_party/rust-toolchain/lib/rustlib/src/rust/library/vendor/compiler_builtins-0.1.157/src/math/libm_math/hypotf.rs",
-    "//third_party/rust-toolchain/lib/rustlib/src/rust/library/vendor/compiler_builtins-0.1.157/src/math/libm_math/ilogb.rs",
-    "//third_party/rust-toolchain/lib/rustlib/src/rust/library/vendor/compiler_builtins-0.1.157/src/math/libm_math/ilogbf.rs",
-    "//third_party/rust-toolchain/lib/rustlib/src/rust/library/vendor/compiler_builtins-0.1.157/src/math/libm_math/j0.rs",
-    "//third_party/rust-toolchain/lib/rustlib/src/rust/library/vendor/compiler_builtins-0.1.157/src/math/libm_math/j0f.rs",
-    "//third_party/rust-toolchain/lib/rustlib/src/rust/library/vendor/compiler_builtins-0.1.157/src/math/libm_math/j1.rs",
-    "//third_party/rust-toolchain/lib/rustlib/src/rust/library/vendor/compiler_builtins-0.1.157/src/math/libm_math/j1f.rs",
-    "//third_party/rust-toolchain/lib/rustlib/src/rust/library/vendor/compiler_builtins-0.1.157/src/math/libm_math/jn.rs",
-    "//third_party/rust-toolchain/lib/rustlib/src/rust/library/vendor/compiler_builtins-0.1.157/src/math/libm_math/jnf.rs",
-    "//third_party/rust-toolchain/lib/rustlib/src/rust/library/vendor/compiler_builtins-0.1.157/src/math/libm_math/k_cos.rs",
-    "//third_party/rust-toolchain/lib/rustlib/src/rust/library/vendor/compiler_builtins-0.1.157/src/math/libm_math/k_cosf.rs",
-    "//third_party/rust-toolchain/lib/rustlib/src/rust/library/vendor/compiler_builtins-0.1.157/src/math/libm_math/k_expo2.rs",
-    "//third_party/rust-toolchain/lib/rustlib/src/rust/library/vendor/compiler_builtins-0.1.157/src/math/libm_math/k_expo2f.rs",
-    "//third_party/rust-toolchain/lib/rustlib/src/rust/library/vendor/compiler_builtins-0.1.157/src/math/libm_math/k_sin.rs",
-    "//third_party/rust-toolchain/lib/rustlib/src/rust/library/vendor/compiler_builtins-0.1.157/src/math/libm_math/k_sinf.rs",
-    "//third_party/rust-toolchain/lib/rustlib/src/rust/library/vendor/compiler_builtins-0.1.157/src/math/libm_math/k_tan.rs",
-    "//third_party/rust-toolchain/lib/rustlib/src/rust/library/vendor/compiler_builtins-0.1.157/src/math/libm_math/k_tanf.rs",
-    "//third_party/rust-toolchain/lib/rustlib/src/rust/library/vendor/compiler_builtins-0.1.157/src/math/libm_math/ldexp.rs",
-    "//third_party/rust-toolchain/lib/rustlib/src/rust/library/vendor/compiler_builtins-0.1.157/src/math/libm_math/ldexpf.rs",
-    "//third_party/rust-toolchain/lib/rustlib/src/rust/library/vendor/compiler_builtins-0.1.157/src/math/libm_math/ldexpf128.rs",
-    "//third_party/rust-toolchain/lib/rustlib/src/rust/library/vendor/compiler_builtins-0.1.157/src/math/libm_math/ldexpf16.rs",
-    "//third_party/rust-toolchain/lib/rustlib/src/rust/library/vendor/compiler_builtins-0.1.157/src/math/libm_math/lgamma.rs",
-    "//third_party/rust-toolchain/lib/rustlib/src/rust/library/vendor/compiler_builtins-0.1.157/src/math/libm_math/lgamma_r.rs",
-    "//third_party/rust-toolchain/lib/rustlib/src/rust/library/vendor/compiler_builtins-0.1.157/src/math/libm_math/lgammaf.rs",
-    "//third_party/rust-toolchain/lib/rustlib/src/rust/library/vendor/compiler_builtins-0.1.157/src/math/libm_math/lgammaf_r.rs",
-    "//third_party/rust-toolchain/lib/rustlib/src/rust/library/vendor/compiler_builtins-0.1.157/src/math/libm_math/log.rs",
-    "//third_party/rust-toolchain/lib/rustlib/src/rust/library/vendor/compiler_builtins-0.1.157/src/math/libm_math/log10.rs",
-    "//third_party/rust-toolchain/lib/rustlib/src/rust/library/vendor/compiler_builtins-0.1.157/src/math/libm_math/log10f.rs",
-    "//third_party/rust-toolchain/lib/rustlib/src/rust/library/vendor/compiler_builtins-0.1.157/src/math/libm_math/log1p.rs",
-    "//third_party/rust-toolchain/lib/rustlib/src/rust/library/vendor/compiler_builtins-0.1.157/src/math/libm_math/log1pf.rs",
-    "//third_party/rust-toolchain/lib/rustlib/src/rust/library/vendor/compiler_builtins-0.1.157/src/math/libm_math/log2.rs",
-    "//third_party/rust-toolchain/lib/rustlib/src/rust/library/vendor/compiler_builtins-0.1.157/src/math/libm_math/log2f.rs",
-    "//third_party/rust-toolchain/lib/rustlib/src/rust/library/vendor/compiler_builtins-0.1.157/src/math/libm_math/logf.rs",
-    "//third_party/rust-toolchain/lib/rustlib/src/rust/library/vendor/compiler_builtins-0.1.157/src/math/libm_math/mod.rs",
-    "//third_party/rust-toolchain/lib/rustlib/src/rust/library/vendor/compiler_builtins-0.1.157/src/math/libm_math/modf.rs",
-    "//third_party/rust-toolchain/lib/rustlib/src/rust/library/vendor/compiler_builtins-0.1.157/src/math/libm_math/modff.rs",
-    "//third_party/rust-toolchain/lib/rustlib/src/rust/library/vendor/compiler_builtins-0.1.157/src/math/libm_math/nextafter.rs",
-    "//third_party/rust-toolchain/lib/rustlib/src/rust/library/vendor/compiler_builtins-0.1.157/src/math/libm_math/nextafterf.rs",
-    "//third_party/rust-toolchain/lib/rustlib/src/rust/library/vendor/compiler_builtins-0.1.157/src/math/libm_math/pow.rs",
-    "//third_party/rust-toolchain/lib/rustlib/src/rust/library/vendor/compiler_builtins-0.1.157/src/math/libm_math/powf.rs",
-    "//third_party/rust-toolchain/lib/rustlib/src/rust/library/vendor/compiler_builtins-0.1.157/src/math/libm_math/rem_pio2.rs",
-    "//third_party/rust-toolchain/lib/rustlib/src/rust/library/vendor/compiler_builtins-0.1.157/src/math/libm_math/rem_pio2_large.rs",
-    "//third_party/rust-toolchain/lib/rustlib/src/rust/library/vendor/compiler_builtins-0.1.157/src/math/libm_math/rem_pio2f.rs",
-    "//third_party/rust-toolchain/lib/rustlib/src/rust/library/vendor/compiler_builtins-0.1.157/src/math/libm_math/remainder.rs",
-    "//third_party/rust-toolchain/lib/rustlib/src/rust/library/vendor/compiler_builtins-0.1.157/src/math/libm_math/remainderf.rs",
-    "//third_party/rust-toolchain/lib/rustlib/src/rust/library/vendor/compiler_builtins-0.1.157/src/math/libm_math/remquo.rs",
-    "//third_party/rust-toolchain/lib/rustlib/src/rust/library/vendor/compiler_builtins-0.1.157/src/math/libm_math/remquof.rs",
-    "//third_party/rust-toolchain/lib/rustlib/src/rust/library/vendor/compiler_builtins-0.1.157/src/math/libm_math/rint.rs",
-    "//third_party/rust-toolchain/lib/rustlib/src/rust/library/vendor/compiler_builtins-0.1.157/src/math/libm_math/round.rs",
-    "//third_party/rust-toolchain/lib/rustlib/src/rust/library/vendor/compiler_builtins-0.1.157/src/math/libm_math/roundeven.rs",
-    "//third_party/rust-toolchain/lib/rustlib/src/rust/library/vendor/compiler_builtins-0.1.157/src/math/libm_math/roundf.rs",
-    "//third_party/rust-toolchain/lib/rustlib/src/rust/library/vendor/compiler_builtins-0.1.157/src/math/libm_math/roundf128.rs",
-    "//third_party/rust-toolchain/lib/rustlib/src/rust/library/vendor/compiler_builtins-0.1.157/src/math/libm_math/roundf16.rs",
-    "//third_party/rust-toolchain/lib/rustlib/src/rust/library/vendor/compiler_builtins-0.1.157/src/math/libm_math/scalbn.rs",
-    "//third_party/rust-toolchain/lib/rustlib/src/rust/library/vendor/compiler_builtins-0.1.157/src/math/libm_math/scalbnf.rs",
-    "//third_party/rust-toolchain/lib/rustlib/src/rust/library/vendor/compiler_builtins-0.1.157/src/math/libm_math/scalbnf128.rs",
-    "//third_party/rust-toolchain/lib/rustlib/src/rust/library/vendor/compiler_builtins-0.1.157/src/math/libm_math/scalbnf16.rs",
-    "//third_party/rust-toolchain/lib/rustlib/src/rust/library/vendor/compiler_builtins-0.1.157/src/math/libm_math/sin.rs",
-    "//third_party/rust-toolchain/lib/rustlib/src/rust/library/vendor/compiler_builtins-0.1.157/src/math/libm_math/sincos.rs",
-    "//third_party/rust-toolchain/lib/rustlib/src/rust/library/vendor/compiler_builtins-0.1.157/src/math/libm_math/sincosf.rs",
-    "//third_party/rust-toolchain/lib/rustlib/src/rust/library/vendor/compiler_builtins-0.1.157/src/math/libm_math/sinf.rs",
-    "//third_party/rust-toolchain/lib/rustlib/src/rust/library/vendor/compiler_builtins-0.1.157/src/math/libm_math/sinh.rs",
-    "//third_party/rust-toolchain/lib/rustlib/src/rust/library/vendor/compiler_builtins-0.1.157/src/math/libm_math/sinhf.rs",
-    "//third_party/rust-toolchain/lib/rustlib/src/rust/library/vendor/compiler_builtins-0.1.157/src/math/libm_math/sqrt.rs",
-    "//third_party/rust-toolchain/lib/rustlib/src/rust/library/vendor/compiler_builtins-0.1.157/src/math/libm_math/sqrtf.rs",
-    "//third_party/rust-toolchain/lib/rustlib/src/rust/library/vendor/compiler_builtins-0.1.157/src/math/libm_math/sqrtf128.rs",
-    "//third_party/rust-toolchain/lib/rustlib/src/rust/library/vendor/compiler_builtins-0.1.157/src/math/libm_math/sqrtf16.rs",
-    "//third_party/rust-toolchain/lib/rustlib/src/rust/library/vendor/compiler_builtins-0.1.157/src/math/libm_math/support/big.rs",
-    "//third_party/rust-toolchain/lib/rustlib/src/rust/library/vendor/compiler_builtins-0.1.157/src/math/libm_math/support/big/tests.rs",
-    "//third_party/rust-toolchain/lib/rustlib/src/rust/library/vendor/compiler_builtins-0.1.157/src/math/libm_math/support/env.rs",
-    "//third_party/rust-toolchain/lib/rustlib/src/rust/library/vendor/compiler_builtins-0.1.157/src/math/libm_math/support/feature_detect.rs",
-    "//third_party/rust-toolchain/lib/rustlib/src/rust/library/vendor/compiler_builtins-0.1.157/src/math/libm_math/support/float_traits.rs",
-    "//third_party/rust-toolchain/lib/rustlib/src/rust/library/vendor/compiler_builtins-0.1.157/src/math/libm_math/support/hex_float.rs",
-    "//third_party/rust-toolchain/lib/rustlib/src/rust/library/vendor/compiler_builtins-0.1.157/src/math/libm_math/support/int_traits.rs",
-    "//third_party/rust-toolchain/lib/rustlib/src/rust/library/vendor/compiler_builtins-0.1.157/src/math/libm_math/support/macros.rs",
-    "//third_party/rust-toolchain/lib/rustlib/src/rust/library/vendor/compiler_builtins-0.1.157/src/math/libm_math/support/mod.rs",
-    "//third_party/rust-toolchain/lib/rustlib/src/rust/library/vendor/compiler_builtins-0.1.157/src/math/libm_math/tan.rs",
-    "//third_party/rust-toolchain/lib/rustlib/src/rust/library/vendor/compiler_builtins-0.1.157/src/math/libm_math/tanf.rs",
-    "//third_party/rust-toolchain/lib/rustlib/src/rust/library/vendor/compiler_builtins-0.1.157/src/math/libm_math/tanh.rs",
-    "//third_party/rust-toolchain/lib/rustlib/src/rust/library/vendor/compiler_builtins-0.1.157/src/math/libm_math/tanhf.rs",
-    "//third_party/rust-toolchain/lib/rustlib/src/rust/library/vendor/compiler_builtins-0.1.157/src/math/libm_math/tgamma.rs",
-    "//third_party/rust-toolchain/lib/rustlib/src/rust/library/vendor/compiler_builtins-0.1.157/src/math/libm_math/tgammaf.rs",
-    "//third_party/rust-toolchain/lib/rustlib/src/rust/library/vendor/compiler_builtins-0.1.157/src/math/libm_math/trunc.rs",
-    "//third_party/rust-toolchain/lib/rustlib/src/rust/library/vendor/compiler_builtins-0.1.157/src/math/libm_math/truncf.rs",
-    "//third_party/rust-toolchain/lib/rustlib/src/rust/library/vendor/compiler_builtins-0.1.157/src/math/libm_math/truncf128.rs",
-    "//third_party/rust-toolchain/lib/rustlib/src/rust/library/vendor/compiler_builtins-0.1.157/src/math/libm_math/truncf16.rs",
-    "//third_party/rust-toolchain/lib/rustlib/src/rust/library/vendor/compiler_builtins-0.1.157/src/math/mod.rs",
-    "//third_party/rust-toolchain/lib/rustlib/src/rust/library/vendor/compiler_builtins-0.1.157/src/mem/impls.rs",
-    "//third_party/rust-toolchain/lib/rustlib/src/rust/library/vendor/compiler_builtins-0.1.157/src/mem/mod.rs",
-    "//third_party/rust-toolchain/lib/rustlib/src/rust/library/vendor/compiler_builtins-0.1.157/src/mem/x86_64.rs",
-    "//third_party/rust-toolchain/lib/rustlib/src/rust/library/vendor/compiler_builtins-0.1.157/src/probestack.rs",
-    "//third_party/rust-toolchain/lib/rustlib/src/rust/library/vendor/compiler_builtins-0.1.157/src/riscv.rs",
-    "//third_party/rust-toolchain/lib/rustlib/src/rust/library/vendor/compiler_builtins-0.1.157/src/x86.rs",
-    "//third_party/rust-toolchain/lib/rustlib/src/rust/library/vendor/compiler_builtins-0.1.157/src/x86_64.rs",
+    "//third_party/rust-toolchain/lib/rustlib/src/rust/library/vendor/compiler_builtins-0.1.160/src/aarch64.rs",
+    "//third_party/rust-toolchain/lib/rustlib/src/rust/library/vendor/compiler_builtins-0.1.160/src/aarch64_linux.rs",
+    "//third_party/rust-toolchain/lib/rustlib/src/rust/library/vendor/compiler_builtins-0.1.160/src/arm.rs",
+    "//third_party/rust-toolchain/lib/rustlib/src/rust/library/vendor/compiler_builtins-0.1.160/src/arm_linux.rs",
+    "//third_party/rust-toolchain/lib/rustlib/src/rust/library/vendor/compiler_builtins-0.1.160/src/avr.rs",
+    "//third_party/rust-toolchain/lib/rustlib/src/rust/library/vendor/compiler_builtins-0.1.160/src/float/add.rs",
+    "//third_party/rust-toolchain/lib/rustlib/src/rust/library/vendor/compiler_builtins-0.1.160/src/float/cmp.rs",
+    "//third_party/rust-toolchain/lib/rustlib/src/rust/library/vendor/compiler_builtins-0.1.160/src/float/conv.rs",
+    "//third_party/rust-toolchain/lib/rustlib/src/rust/library/vendor/compiler_builtins-0.1.160/src/float/div.rs",
+    "//third_party/rust-toolchain/lib/rustlib/src/rust/library/vendor/compiler_builtins-0.1.160/src/float/extend.rs",
+    "//third_party/rust-toolchain/lib/rustlib/src/rust/library/vendor/compiler_builtins-0.1.160/src/float/mod.rs",
+    "//third_party/rust-toolchain/lib/rustlib/src/rust/library/vendor/compiler_builtins-0.1.160/src/float/mul.rs",
+    "//third_party/rust-toolchain/lib/rustlib/src/rust/library/vendor/compiler_builtins-0.1.160/src/float/pow.rs",
+    "//third_party/rust-toolchain/lib/rustlib/src/rust/library/vendor/compiler_builtins-0.1.160/src/float/sub.rs",
+    "//third_party/rust-toolchain/lib/rustlib/src/rust/library/vendor/compiler_builtins-0.1.160/src/float/traits.rs",
+    "//third_party/rust-toolchain/lib/rustlib/src/rust/library/vendor/compiler_builtins-0.1.160/src/float/trunc.rs",
+    "//third_party/rust-toolchain/lib/rustlib/src/rust/library/vendor/compiler_builtins-0.1.160/src/hexagon.rs",
+    "//third_party/rust-toolchain/lib/rustlib/src/rust/library/vendor/compiler_builtins-0.1.160/src/int/addsub.rs",
+    "//third_party/rust-toolchain/lib/rustlib/src/rust/library/vendor/compiler_builtins-0.1.160/src/int/big.rs",
+    "//third_party/rust-toolchain/lib/rustlib/src/rust/library/vendor/compiler_builtins-0.1.160/src/int/bswap.rs",
+    "//third_party/rust-toolchain/lib/rustlib/src/rust/library/vendor/compiler_builtins-0.1.160/src/int/leading_zeros.rs",
+    "//third_party/rust-toolchain/lib/rustlib/src/rust/library/vendor/compiler_builtins-0.1.160/src/int/mod.rs",
+    "//third_party/rust-toolchain/lib/rustlib/src/rust/library/vendor/compiler_builtins-0.1.160/src/int/mul.rs",
+    "//third_party/rust-toolchain/lib/rustlib/src/rust/library/vendor/compiler_builtins-0.1.160/src/int/sdiv.rs",
+    "//third_party/rust-toolchain/lib/rustlib/src/rust/library/vendor/compiler_builtins-0.1.160/src/int/shift.rs",
+    "//third_party/rust-toolchain/lib/rustlib/src/rust/library/vendor/compiler_builtins-0.1.160/src/int/specialized_div_rem/asymmetric.rs",
+    "//third_party/rust-toolchain/lib/rustlib/src/rust/library/vendor/compiler_builtins-0.1.160/src/int/specialized_div_rem/binary_long.rs",
+    "//third_party/rust-toolchain/lib/rustlib/src/rust/library/vendor/compiler_builtins-0.1.160/src/int/specialized_div_rem/delegate.rs",
+    "//third_party/rust-toolchain/lib/rustlib/src/rust/library/vendor/compiler_builtins-0.1.160/src/int/specialized_div_rem/mod.rs",
+    "//third_party/rust-toolchain/lib/rustlib/src/rust/library/vendor/compiler_builtins-0.1.160/src/int/specialized_div_rem/norm_shift.rs",
+    "//third_party/rust-toolchain/lib/rustlib/src/rust/library/vendor/compiler_builtins-0.1.160/src/int/specialized_div_rem/trifecta.rs",
+    "//third_party/rust-toolchain/lib/rustlib/src/rust/library/vendor/compiler_builtins-0.1.160/src/int/trailing_zeros.rs",
+    "//third_party/rust-toolchain/lib/rustlib/src/rust/library/vendor/compiler_builtins-0.1.160/src/int/traits.rs",
+    "//third_party/rust-toolchain/lib/rustlib/src/rust/library/vendor/compiler_builtins-0.1.160/src/int/udiv.rs",
+    "//third_party/rust-toolchain/lib/rustlib/src/rust/library/vendor/compiler_builtins-0.1.160/src/lib.miri.rs",
+    "//third_party/rust-toolchain/lib/rustlib/src/rust/library/vendor/compiler_builtins-0.1.160/src/lib.rs",
+    "//third_party/rust-toolchain/lib/rustlib/src/rust/library/vendor/compiler_builtins-0.1.160/src/macros.rs",
+    "//third_party/rust-toolchain/lib/rustlib/src/rust/library/vendor/compiler_builtins-0.1.160/src/math/libm_math/acos.rs",
+    "//third_party/rust-toolchain/lib/rustlib/src/rust/library/vendor/compiler_builtins-0.1.160/src/math/libm_math/acosf.rs",
+    "//third_party/rust-toolchain/lib/rustlib/src/rust/library/vendor/compiler_builtins-0.1.160/src/math/libm_math/acosh.rs",
+    "//third_party/rust-toolchain/lib/rustlib/src/rust/library/vendor/compiler_builtins-0.1.160/src/math/libm_math/acoshf.rs",
+    "//third_party/rust-toolchain/lib/rustlib/src/rust/library/vendor/compiler_builtins-0.1.160/src/math/libm_math/arch/aarch64.rs",
+    "//third_party/rust-toolchain/lib/rustlib/src/rust/library/vendor/compiler_builtins-0.1.160/src/math/libm_math/arch/i586.rs",
+    "//third_party/rust-toolchain/lib/rustlib/src/rust/library/vendor/compiler_builtins-0.1.160/src/math/libm_math/arch/mod.rs",
+    "//third_party/rust-toolchain/lib/rustlib/src/rust/library/vendor/compiler_builtins-0.1.160/src/math/libm_math/arch/wasm32.rs",
+    "//third_party/rust-toolchain/lib/rustlib/src/rust/library/vendor/compiler_builtins-0.1.160/src/math/libm_math/arch/x86.rs",
+    "//third_party/rust-toolchain/lib/rustlib/src/rust/library/vendor/compiler_builtins-0.1.160/src/math/libm_math/arch/x86/detect.rs",
+    "//third_party/rust-toolchain/lib/rustlib/src/rust/library/vendor/compiler_builtins-0.1.160/src/math/libm_math/arch/x86/fma.rs",
+    "//third_party/rust-toolchain/lib/rustlib/src/rust/library/vendor/compiler_builtins-0.1.160/src/math/libm_math/asin.rs",
+    "//third_party/rust-toolchain/lib/rustlib/src/rust/library/vendor/compiler_builtins-0.1.160/src/math/libm_math/asinf.rs",
+    "//third_party/rust-toolchain/lib/rustlib/src/rust/library/vendor/compiler_builtins-0.1.160/src/math/libm_math/asinh.rs",
+    "//third_party/rust-toolchain/lib/rustlib/src/rust/library/vendor/compiler_builtins-0.1.160/src/math/libm_math/asinhf.rs",
+    "//third_party/rust-toolchain/lib/rustlib/src/rust/library/vendor/compiler_builtins-0.1.160/src/math/libm_math/atan.rs",
+    "//third_party/rust-toolchain/lib/rustlib/src/rust/library/vendor/compiler_builtins-0.1.160/src/math/libm_math/atan2.rs",
+    "//third_party/rust-toolchain/lib/rustlib/src/rust/library/vendor/compiler_builtins-0.1.160/src/math/libm_math/atan2f.rs",
+    "//third_party/rust-toolchain/lib/rustlib/src/rust/library/vendor/compiler_builtins-0.1.160/src/math/libm_math/atanf.rs",
+    "//third_party/rust-toolchain/lib/rustlib/src/rust/library/vendor/compiler_builtins-0.1.160/src/math/libm_math/atanh.rs",
+    "//third_party/rust-toolchain/lib/rustlib/src/rust/library/vendor/compiler_builtins-0.1.160/src/math/libm_math/atanhf.rs",
+    "//third_party/rust-toolchain/lib/rustlib/src/rust/library/vendor/compiler_builtins-0.1.160/src/math/libm_math/cbrt.rs",
+    "//third_party/rust-toolchain/lib/rustlib/src/rust/library/vendor/compiler_builtins-0.1.160/src/math/libm_math/cbrtf.rs",
+    "//third_party/rust-toolchain/lib/rustlib/src/rust/library/vendor/compiler_builtins-0.1.160/src/math/libm_math/ceil.rs",
+    "//third_party/rust-toolchain/lib/rustlib/src/rust/library/vendor/compiler_builtins-0.1.160/src/math/libm_math/copysign.rs",
+    "//third_party/rust-toolchain/lib/rustlib/src/rust/library/vendor/compiler_builtins-0.1.160/src/math/libm_math/cos.rs",
+    "//third_party/rust-toolchain/lib/rustlib/src/rust/library/vendor/compiler_builtins-0.1.160/src/math/libm_math/cosf.rs",
+    "//third_party/rust-toolchain/lib/rustlib/src/rust/library/vendor/compiler_builtins-0.1.160/src/math/libm_math/cosh.rs",
+    "//third_party/rust-toolchain/lib/rustlib/src/rust/library/vendor/compiler_builtins-0.1.160/src/math/libm_math/coshf.rs",
+    "//third_party/rust-toolchain/lib/rustlib/src/rust/library/vendor/compiler_builtins-0.1.160/src/math/libm_math/erf.rs",
+    "//third_party/rust-toolchain/lib/rustlib/src/rust/library/vendor/compiler_builtins-0.1.160/src/math/libm_math/erff.rs",
+    "//third_party/rust-toolchain/lib/rustlib/src/rust/library/vendor/compiler_builtins-0.1.160/src/math/libm_math/exp.rs",
+    "//third_party/rust-toolchain/lib/rustlib/src/rust/library/vendor/compiler_builtins-0.1.160/src/math/libm_math/exp10.rs",
+    "//third_party/rust-toolchain/lib/rustlib/src/rust/library/vendor/compiler_builtins-0.1.160/src/math/libm_math/exp10f.rs",
+    "//third_party/rust-toolchain/lib/rustlib/src/rust/library/vendor/compiler_builtins-0.1.160/src/math/libm_math/exp2.rs",
+    "//third_party/rust-toolchain/lib/rustlib/src/rust/library/vendor/compiler_builtins-0.1.160/src/math/libm_math/exp2f.rs",
+    "//third_party/rust-toolchain/lib/rustlib/src/rust/library/vendor/compiler_builtins-0.1.160/src/math/libm_math/expf.rs",
+    "//third_party/rust-toolchain/lib/rustlib/src/rust/library/vendor/compiler_builtins-0.1.160/src/math/libm_math/expm1.rs",
+    "//third_party/rust-toolchain/lib/rustlib/src/rust/library/vendor/compiler_builtins-0.1.160/src/math/libm_math/expm1f.rs",
+    "//third_party/rust-toolchain/lib/rustlib/src/rust/library/vendor/compiler_builtins-0.1.160/src/math/libm_math/expo2.rs",
+    "//third_party/rust-toolchain/lib/rustlib/src/rust/library/vendor/compiler_builtins-0.1.160/src/math/libm_math/fabs.rs",
+    "//third_party/rust-toolchain/lib/rustlib/src/rust/library/vendor/compiler_builtins-0.1.160/src/math/libm_math/fdim.rs",
+    "//third_party/rust-toolchain/lib/rustlib/src/rust/library/vendor/compiler_builtins-0.1.160/src/math/libm_math/floor.rs",
+    "//third_party/rust-toolchain/lib/rustlib/src/rust/library/vendor/compiler_builtins-0.1.160/src/math/libm_math/fma.rs",
+    "//third_party/rust-toolchain/lib/rustlib/src/rust/library/vendor/compiler_builtins-0.1.160/src/math/libm_math/fmin_fmax.rs",
+    "//third_party/rust-toolchain/lib/rustlib/src/rust/library/vendor/compiler_builtins-0.1.160/src/math/libm_math/fminimum_fmaximum.rs",
+    "//third_party/rust-toolchain/lib/rustlib/src/rust/library/vendor/compiler_builtins-0.1.160/src/math/libm_math/fminimum_fmaximum_num.rs",
+    "//third_party/rust-toolchain/lib/rustlib/src/rust/library/vendor/compiler_builtins-0.1.160/src/math/libm_math/fmod.rs",
+    "//third_party/rust-toolchain/lib/rustlib/src/rust/library/vendor/compiler_builtins-0.1.160/src/math/libm_math/frexp.rs",
+    "//third_party/rust-toolchain/lib/rustlib/src/rust/library/vendor/compiler_builtins-0.1.160/src/math/libm_math/frexpf.rs",
+    "//third_party/rust-toolchain/lib/rustlib/src/rust/library/vendor/compiler_builtins-0.1.160/src/math/libm_math/generic/ceil.rs",
+    "//third_party/rust-toolchain/lib/rustlib/src/rust/library/vendor/compiler_builtins-0.1.160/src/math/libm_math/generic/copysign.rs",
+    "//third_party/rust-toolchain/lib/rustlib/src/rust/library/vendor/compiler_builtins-0.1.160/src/math/libm_math/generic/fabs.rs",
+    "//third_party/rust-toolchain/lib/rustlib/src/rust/library/vendor/compiler_builtins-0.1.160/src/math/libm_math/generic/fdim.rs",
+    "//third_party/rust-toolchain/lib/rustlib/src/rust/library/vendor/compiler_builtins-0.1.160/src/math/libm_math/generic/floor.rs",
+    "//third_party/rust-toolchain/lib/rustlib/src/rust/library/vendor/compiler_builtins-0.1.160/src/math/libm_math/generic/fma.rs",
+    "//third_party/rust-toolchain/lib/rustlib/src/rust/library/vendor/compiler_builtins-0.1.160/src/math/libm_math/generic/fma_wide.rs",
+    "//third_party/rust-toolchain/lib/rustlib/src/rust/library/vendor/compiler_builtins-0.1.160/src/math/libm_math/generic/fmax.rs",
+    "//third_party/rust-toolchain/lib/rustlib/src/rust/library/vendor/compiler_builtins-0.1.160/src/math/libm_math/generic/fmaximum.rs",
+    "//third_party/rust-toolchain/lib/rustlib/src/rust/library/vendor/compiler_builtins-0.1.160/src/math/libm_math/generic/fmaximum_num.rs",
+    "//third_party/rust-toolchain/lib/rustlib/src/rust/library/vendor/compiler_builtins-0.1.160/src/math/libm_math/generic/fmin.rs",
+    "//third_party/rust-toolchain/lib/rustlib/src/rust/library/vendor/compiler_builtins-0.1.160/src/math/libm_math/generic/fminimum.rs",
+    "//third_party/rust-toolchain/lib/rustlib/src/rust/library/vendor/compiler_builtins-0.1.160/src/math/libm_math/generic/fminimum_num.rs",
+    "//third_party/rust-toolchain/lib/rustlib/src/rust/library/vendor/compiler_builtins-0.1.160/src/math/libm_math/generic/fmod.rs",
+    "//third_party/rust-toolchain/lib/rustlib/src/rust/library/vendor/compiler_builtins-0.1.160/src/math/libm_math/generic/mod.rs",
+    "//third_party/rust-toolchain/lib/rustlib/src/rust/library/vendor/compiler_builtins-0.1.160/src/math/libm_math/generic/rint.rs",
+    "//third_party/rust-toolchain/lib/rustlib/src/rust/library/vendor/compiler_builtins-0.1.160/src/math/libm_math/generic/round.rs",
+    "//third_party/rust-toolchain/lib/rustlib/src/rust/library/vendor/compiler_builtins-0.1.160/src/math/libm_math/generic/scalbn.rs",
+    "//third_party/rust-toolchain/lib/rustlib/src/rust/library/vendor/compiler_builtins-0.1.160/src/math/libm_math/generic/sqrt.rs",
+    "//third_party/rust-toolchain/lib/rustlib/src/rust/library/vendor/compiler_builtins-0.1.160/src/math/libm_math/generic/trunc.rs",
+    "//third_party/rust-toolchain/lib/rustlib/src/rust/library/vendor/compiler_builtins-0.1.160/src/math/libm_math/hypot.rs",
+    "//third_party/rust-toolchain/lib/rustlib/src/rust/library/vendor/compiler_builtins-0.1.160/src/math/libm_math/hypotf.rs",
+    "//third_party/rust-toolchain/lib/rustlib/src/rust/library/vendor/compiler_builtins-0.1.160/src/math/libm_math/ilogb.rs",
+    "//third_party/rust-toolchain/lib/rustlib/src/rust/library/vendor/compiler_builtins-0.1.160/src/math/libm_math/ilogbf.rs",
+    "//third_party/rust-toolchain/lib/rustlib/src/rust/library/vendor/compiler_builtins-0.1.160/src/math/libm_math/j0.rs",
+    "//third_party/rust-toolchain/lib/rustlib/src/rust/library/vendor/compiler_builtins-0.1.160/src/math/libm_math/j0f.rs",
+    "//third_party/rust-toolchain/lib/rustlib/src/rust/library/vendor/compiler_builtins-0.1.160/src/math/libm_math/j1.rs",
+    "//third_party/rust-toolchain/lib/rustlib/src/rust/library/vendor/compiler_builtins-0.1.160/src/math/libm_math/j1f.rs",
+    "//third_party/rust-toolchain/lib/rustlib/src/rust/library/vendor/compiler_builtins-0.1.160/src/math/libm_math/jn.rs",
+    "//third_party/rust-toolchain/lib/rustlib/src/rust/library/vendor/compiler_builtins-0.1.160/src/math/libm_math/jnf.rs",
+    "//third_party/rust-toolchain/lib/rustlib/src/rust/library/vendor/compiler_builtins-0.1.160/src/math/libm_math/k_cos.rs",
+    "//third_party/rust-toolchain/lib/rustlib/src/rust/library/vendor/compiler_builtins-0.1.160/src/math/libm_math/k_cosf.rs",
+    "//third_party/rust-toolchain/lib/rustlib/src/rust/library/vendor/compiler_builtins-0.1.160/src/math/libm_math/k_expo2.rs",
+    "//third_party/rust-toolchain/lib/rustlib/src/rust/library/vendor/compiler_builtins-0.1.160/src/math/libm_math/k_expo2f.rs",
+    "//third_party/rust-toolchain/lib/rustlib/src/rust/library/vendor/compiler_builtins-0.1.160/src/math/libm_math/k_sin.rs",
+    "//third_party/rust-toolchain/lib/rustlib/src/rust/library/vendor/compiler_builtins-0.1.160/src/math/libm_math/k_sinf.rs",
+    "//third_party/rust-toolchain/lib/rustlib/src/rust/library/vendor/compiler_builtins-0.1.160/src/math/libm_math/k_tan.rs",
+    "//third_party/rust-toolchain/lib/rustlib/src/rust/library/vendor/compiler_builtins-0.1.160/src/math/libm_math/k_tanf.rs",
+    "//third_party/rust-toolchain/lib/rustlib/src/rust/library/vendor/compiler_builtins-0.1.160/src/math/libm_math/ldexp.rs",
+    "//third_party/rust-toolchain/lib/rustlib/src/rust/library/vendor/compiler_builtins-0.1.160/src/math/libm_math/lgamma.rs",
+    "//third_party/rust-toolchain/lib/rustlib/src/rust/library/vendor/compiler_builtins-0.1.160/src/math/libm_math/lgamma_r.rs",
+    "//third_party/rust-toolchain/lib/rustlib/src/rust/library/vendor/compiler_builtins-0.1.160/src/math/libm_math/lgammaf.rs",
+    "//third_party/rust-toolchain/lib/rustlib/src/rust/library/vendor/compiler_builtins-0.1.160/src/math/libm_math/lgammaf_r.rs",
+    "//third_party/rust-toolchain/lib/rustlib/src/rust/library/vendor/compiler_builtins-0.1.160/src/math/libm_math/log.rs",
+    "//third_party/rust-toolchain/lib/rustlib/src/rust/library/vendor/compiler_builtins-0.1.160/src/math/libm_math/log10.rs",
+    "//third_party/rust-toolchain/lib/rustlib/src/rust/library/vendor/compiler_builtins-0.1.160/src/math/libm_math/log10f.rs",
+    "//third_party/rust-toolchain/lib/rustlib/src/rust/library/vendor/compiler_builtins-0.1.160/src/math/libm_math/log1p.rs",
+    "//third_party/rust-toolchain/lib/rustlib/src/rust/library/vendor/compiler_builtins-0.1.160/src/math/libm_math/log1pf.rs",
+    "//third_party/rust-toolchain/lib/rustlib/src/rust/library/vendor/compiler_builtins-0.1.160/src/math/libm_math/log2.rs",
+    "//third_party/rust-toolchain/lib/rustlib/src/rust/library/vendor/compiler_builtins-0.1.160/src/math/libm_math/log2f.rs",
+    "//third_party/rust-toolchain/lib/rustlib/src/rust/library/vendor/compiler_builtins-0.1.160/src/math/libm_math/logf.rs",
+    "//third_party/rust-toolchain/lib/rustlib/src/rust/library/vendor/compiler_builtins-0.1.160/src/math/libm_math/mod.rs",
+    "//third_party/rust-toolchain/lib/rustlib/src/rust/library/vendor/compiler_builtins-0.1.160/src/math/libm_math/modf.rs",
+    "//third_party/rust-toolchain/lib/rustlib/src/rust/library/vendor/compiler_builtins-0.1.160/src/math/libm_math/modff.rs",
+    "//third_party/rust-toolchain/lib/rustlib/src/rust/library/vendor/compiler_builtins-0.1.160/src/math/libm_math/nextafter.rs",
+    "//third_party/rust-toolchain/lib/rustlib/src/rust/library/vendor/compiler_builtins-0.1.160/src/math/libm_math/nextafterf.rs",
+    "//third_party/rust-toolchain/lib/rustlib/src/rust/library/vendor/compiler_builtins-0.1.160/src/math/libm_math/pow.rs",
+    "//third_party/rust-toolchain/lib/rustlib/src/rust/library/vendor/compiler_builtins-0.1.160/src/math/libm_math/powf.rs",
+    "//third_party/rust-toolchain/lib/rustlib/src/rust/library/vendor/compiler_builtins-0.1.160/src/math/libm_math/rem_pio2.rs",
+    "//third_party/rust-toolchain/lib/rustlib/src/rust/library/vendor/compiler_builtins-0.1.160/src/math/libm_math/rem_pio2_large.rs",
+    "//third_party/rust-toolchain/lib/rustlib/src/rust/library/vendor/compiler_builtins-0.1.160/src/math/libm_math/rem_pio2f.rs",
+    "//third_party/rust-toolchain/lib/rustlib/src/rust/library/vendor/compiler_builtins-0.1.160/src/math/libm_math/remainder.rs",
+    "//third_party/rust-toolchain/lib/rustlib/src/rust/library/vendor/compiler_builtins-0.1.160/src/math/libm_math/remainderf.rs",
+    "//third_party/rust-toolchain/lib/rustlib/src/rust/library/vendor/compiler_builtins-0.1.160/src/math/libm_math/remquo.rs",
+    "//third_party/rust-toolchain/lib/rustlib/src/rust/library/vendor/compiler_builtins-0.1.160/src/math/libm_math/remquof.rs",
+    "//third_party/rust-toolchain/lib/rustlib/src/rust/library/vendor/compiler_builtins-0.1.160/src/math/libm_math/rint.rs",
+    "//third_party/rust-toolchain/lib/rustlib/src/rust/library/vendor/compiler_builtins-0.1.160/src/math/libm_math/round.rs",
+    "//third_party/rust-toolchain/lib/rustlib/src/rust/library/vendor/compiler_builtins-0.1.160/src/math/libm_math/roundeven.rs",
+    "//third_party/rust-toolchain/lib/rustlib/src/rust/library/vendor/compiler_builtins-0.1.160/src/math/libm_math/scalbn.rs",
+    "//third_party/rust-toolchain/lib/rustlib/src/rust/library/vendor/compiler_builtins-0.1.160/src/math/libm_math/sin.rs",
+    "//third_party/rust-toolchain/lib/rustlib/src/rust/library/vendor/compiler_builtins-0.1.160/src/math/libm_math/sincos.rs",
+    "//third_party/rust-toolchain/lib/rustlib/src/rust/library/vendor/compiler_builtins-0.1.160/src/math/libm_math/sincosf.rs",
+    "//third_party/rust-toolchain/lib/rustlib/src/rust/library/vendor/compiler_builtins-0.1.160/src/math/libm_math/sinf.rs",
+    "//third_party/rust-toolchain/lib/rustlib/src/rust/library/vendor/compiler_builtins-0.1.160/src/math/libm_math/sinh.rs",
+    "//third_party/rust-toolchain/lib/rustlib/src/rust/library/vendor/compiler_builtins-0.1.160/src/math/libm_math/sinhf.rs",
+    "//third_party/rust-toolchain/lib/rustlib/src/rust/library/vendor/compiler_builtins-0.1.160/src/math/libm_math/sqrt.rs",
+    "//third_party/rust-toolchain/lib/rustlib/src/rust/library/vendor/compiler_builtins-0.1.160/src/math/libm_math/support/big.rs",
+    "//third_party/rust-toolchain/lib/rustlib/src/rust/library/vendor/compiler_builtins-0.1.160/src/math/libm_math/support/big/tests.rs",
+    "//third_party/rust-toolchain/lib/rustlib/src/rust/library/vendor/compiler_builtins-0.1.160/src/math/libm_math/support/env.rs",
+    "//third_party/rust-toolchain/lib/rustlib/src/rust/library/vendor/compiler_builtins-0.1.160/src/math/libm_math/support/feature_detect.rs",
+    "//third_party/rust-toolchain/lib/rustlib/src/rust/library/vendor/compiler_builtins-0.1.160/src/math/libm_math/support/float_traits.rs",
+    "//third_party/rust-toolchain/lib/rustlib/src/rust/library/vendor/compiler_builtins-0.1.160/src/math/libm_math/support/hex_float.rs",
+    "//third_party/rust-toolchain/lib/rustlib/src/rust/library/vendor/compiler_builtins-0.1.160/src/math/libm_math/support/int_traits.rs",
+    "//third_party/rust-toolchain/lib/rustlib/src/rust/library/vendor/compiler_builtins-0.1.160/src/math/libm_math/support/macros.rs",
+    "//third_party/rust-toolchain/lib/rustlib/src/rust/library/vendor/compiler_builtins-0.1.160/src/math/libm_math/support/mod.rs",
+    "//third_party/rust-toolchain/lib/rustlib/src/rust/library/vendor/compiler_builtins-0.1.160/src/math/libm_math/tan.rs",
+    "//third_party/rust-toolchain/lib/rustlib/src/rust/library/vendor/compiler_builtins-0.1.160/src/math/libm_math/tanf.rs",
+    "//third_party/rust-toolchain/lib/rustlib/src/rust/library/vendor/compiler_builtins-0.1.160/src/math/libm_math/tanh.rs",
+    "//third_party/rust-toolchain/lib/rustlib/src/rust/library/vendor/compiler_builtins-0.1.160/src/math/libm_math/tanhf.rs",
+    "//third_party/rust-toolchain/lib/rustlib/src/rust/library/vendor/compiler_builtins-0.1.160/src/math/libm_math/tgamma.rs",
+    "//third_party/rust-toolchain/lib/rustlib/src/rust/library/vendor/compiler_builtins-0.1.160/src/math/libm_math/tgammaf.rs",
+    "//third_party/rust-toolchain/lib/rustlib/src/rust/library/vendor/compiler_builtins-0.1.160/src/math/libm_math/trunc.rs",
+    "//third_party/rust-toolchain/lib/rustlib/src/rust/library/vendor/compiler_builtins-0.1.160/src/math/mod.rs",
+    "//third_party/rust-toolchain/lib/rustlib/src/rust/library/vendor/compiler_builtins-0.1.160/src/mem/impls.rs",
+    "//third_party/rust-toolchain/lib/rustlib/src/rust/library/vendor/compiler_builtins-0.1.160/src/mem/mod.rs",
+    "//third_party/rust-toolchain/lib/rustlib/src/rust/library/vendor/compiler_builtins-0.1.160/src/mem/x86_64.rs",
+    "//third_party/rust-toolchain/lib/rustlib/src/rust/library/vendor/compiler_builtins-0.1.160/src/probestack.rs",
+    "//third_party/rust-toolchain/lib/rustlib/src/rust/library/vendor/compiler_builtins-0.1.160/src/riscv.rs",
+    "//third_party/rust-toolchain/lib/rustlib/src/rust/library/vendor/compiler_builtins-0.1.160/src/x86.rs",
+    "//third_party/rust-toolchain/lib/rustlib/src/rust/library/vendor/compiler_builtins-0.1.160/src/x86_64.rs",
   ]
   inputs = []
   no_std = true
 
   # Unit tests skipped. Generate with --with-tests to include them.
   build_native_rust_unit_tests = false
-  edition = "2021"
-  cargo_pkg_version = "0.1.157"
+  edition = "2024"
+  cargo_pkg_version = "0.1.160"
   cargo_pkg_authors = "Jorge Aparicio <japaricious@gmail.com>"
   cargo_pkg_name = "compiler_builtins"
   cargo_pkg_description = "Compiler intrinsics used by the Rust compiler."
@@ -551,9 +521,9 @@
     "default",
     "rustc-dep-of-std",
   ]
-  build_root = "//third_party/rust-toolchain/lib/rustlib/src/rust/library/vendor/compiler_builtins-0.1.157/build.rs"
-  build_sources = [ "//third_party/rust-toolchain/lib/rustlib/src/rust/library/vendor/compiler_builtins-0.1.157/build.rs" ]
-  build_script_inputs = [ "//third_party/rust-toolchain/lib/rustlib/src/rust/library/vendor/compiler_builtins-0.1.157/src/../configure.rs" ]
+  build_root = "//third_party/rust-toolchain/lib/rustlib/src/rust/library/vendor/compiler_builtins-0.1.160/build.rs"
+  build_sources = [ "//third_party/rust-toolchain/lib/rustlib/src/rust/library/vendor/compiler_builtins-0.1.160/build.rs" ]
+  build_script_inputs = [ "//third_party/rust-toolchain/lib/rustlib/src/rust/library/vendor/compiler_builtins-0.1.160/src/../configure.rs" ]
   rustenv = [
     "CFG_DISABLE_UNSTABLE_FEATURES=0",
     "STD_ENV_ARCH=$rust_target_arch",
@@ -634,6 +604,7 @@
     "//third_party/rust-toolchain/lib/rustlib/src/rust/library/core/src/hash/sip.rs",
     "//third_party/rust-toolchain/lib/rustlib/src/rust/library/core/src/hint.rs",
     "//third_party/rust-toolchain/lib/rustlib/src/rust/library/core/src/internal_macros.rs",
+    "//third_party/rust-toolchain/lib/rustlib/src/rust/library/core/src/intrinsics/bounds.rs",
     "//third_party/rust-toolchain/lib/rustlib/src/rust/library/core/src/intrinsics/fallback.rs",
     "//third_party/rust-toolchain/lib/rustlib/src/rust/library/core/src/intrinsics/mir.rs",
     "//third_party/rust-toolchain/lib/rustlib/src/rust/library/core/src/intrinsics/mod.rs",
@@ -672,6 +643,7 @@
     "//third_party/rust-toolchain/lib/rustlib/src/rust/library/core/src/iter/sources/empty.rs",
     "//third_party/rust-toolchain/lib/rustlib/src/rust/library/core/src/iter/sources/from_coroutine.rs",
     "//third_party/rust-toolchain/lib/rustlib/src/rust/library/core/src/iter/sources/from_fn.rs",
+    "//third_party/rust-toolchain/lib/rustlib/src/rust/library/core/src/iter/sources/generator.rs",
     "//third_party/rust-toolchain/lib/rustlib/src/rust/library/core/src/iter/sources/once.rs",
     "//third_party/rust-toolchain/lib/rustlib/src/rust/library/core/src/iter/sources/once_with.rs",
     "//third_party/rust-toolchain/lib/rustlib/src/rust/library/core/src/iter/sources/repeat.rs",
@@ -726,6 +698,7 @@
     "//third_party/rust-toolchain/lib/rustlib/src/rust/library/core/src/num/int_log10.rs",
     "//third_party/rust-toolchain/lib/rustlib/src/rust/library/core/src/num/int_macros.rs",
     "//third_party/rust-toolchain/lib/rustlib/src/rust/library/core/src/num/int_sqrt.rs",
+    "//third_party/rust-toolchain/lib/rustlib/src/rust/library/core/src/num/libm.rs",
     "//third_party/rust-toolchain/lib/rustlib/src/rust/library/core/src/num/mod.rs",
     "//third_party/rust-toolchain/lib/rustlib/src/rust/library/core/src/num/niche_types.rs",
     "//third_party/rust-toolchain/lib/rustlib/src/rust/library/core/src/num/nonzero.rs",
@@ -1066,6 +1039,8 @@
     "//third_party/rust-toolchain/lib/rustlib/src/rust/library/core/src/ffi/c_void.md",
     "//third_party/rust-toolchain/lib/rustlib/src/rust/library/core/src/fmt/fmt_trait_method_doc.md",
     "//third_party/rust-toolchain/lib/rustlib/src/rust/library/core/src/macros/panic.md",
+    "//third_party/rust-toolchain/lib/rustlib/src/rust/library/core/src/ptr/docs/add.md",
+    "//third_party/rust-toolchain/lib/rustlib/src/rust/library/core/src/ptr/docs/offset.md",
   ]
   no_std = true
 
@@ -1925,15 +1900,16 @@
   ]
   executable_configs += [ "//build/config/compiler:no_chromium_code" ]
   deps = [
-    ":alloc",
-    ":cfg_if",
     ":compiler_builtins",
     ":core",
     "//build/rust/std:profiler_builtins_group",
     "//build/rust/std:std_build_deps",
   ]
-  if (!is_win) {
-    deps += [ ":libc" ]
+  if (is_android) {
+    deps += [
+      ":alloc",
+      ":libc",
+    ]
   }
   rustenv = [
     "CFG_DISABLE_UNSTABLE_FEATURES=0",
@@ -2048,6 +2024,10 @@
     "//build/rust/std:profiler_builtins_group",
     "//build/rust/std:std_build_deps",
   ]
+  features = [
+    "default",
+    "rustc-dep-of-std",
+  ]
   rustenv = [
     "CFG_DISABLE_UNSTABLE_FEATURES=0",
     "STD_ENV_ARCH=$rust_target_arch",
@@ -2335,10 +2315,6 @@
     "//third_party/rust-toolchain/lib/rustlib/src/rust/library/std/src/collections/mod.rs",
     "//third_party/rust-toolchain/lib/rustlib/src/rust/library/std/src/env.rs",
     "//third_party/rust-toolchain/lib/rustlib/src/rust/library/std/src/error.rs",
-    "//third_party/rust-toolchain/lib/rustlib/src/rust/library/std/src/f128.rs",
-    "//third_party/rust-toolchain/lib/rustlib/src/rust/library/std/src/f16.rs",
-    "//third_party/rust-toolchain/lib/rustlib/src/rust/library/std/src/f32.rs",
-    "//third_party/rust-toolchain/lib/rustlib/src/rust/library/std/src/f64.rs",
     "//third_party/rust-toolchain/lib/rustlib/src/rust/library/std/src/ffi/c_str.rs",
     "//third_party/rust-toolchain/lib/rustlib/src/rust/library/std/src/ffi/mod.rs",
     "//third_party/rust-toolchain/lib/rustlib/src/rust/library/std/src/ffi/os_str.rs",
@@ -2387,7 +2363,11 @@
     "//third_party/rust-toolchain/lib/rustlib/src/rust/library/std/src/net/test.rs",
     "//third_party/rust-toolchain/lib/rustlib/src/rust/library/std/src/net/udp.rs",
     "//third_party/rust-toolchain/lib/rustlib/src/rust/library/std/src/net/udp/tests.rs",
-    "//third_party/rust-toolchain/lib/rustlib/src/rust/library/std/src/num.rs",
+    "//third_party/rust-toolchain/lib/rustlib/src/rust/library/std/src/num/f128.rs",
+    "//third_party/rust-toolchain/lib/rustlib/src/rust/library/std/src/num/f16.rs",
+    "//third_party/rust-toolchain/lib/rustlib/src/rust/library/std/src/num/f32.rs",
+    "//third_party/rust-toolchain/lib/rustlib/src/rust/library/std/src/num/f64.rs",
+    "//third_party/rust-toolchain/lib/rustlib/src/rust/library/std/src/num/mod.rs",
     "//third_party/rust-toolchain/lib/rustlib/src/rust/library/std/src/os/aix/fs.rs",
     "//third_party/rust-toolchain/lib/rustlib/src/rust/library/std/src/os/aix/mod.rs",
     "//third_party/rust-toolchain/lib/rustlib/src/rust/library/std/src/os/aix/raw.rs",
@@ -2653,6 +2633,8 @@
     "//third_party/rust-toolchain/lib/rustlib/src/rust/library/std/src/sys/net/connection/socket/wasip2.rs",
     "//third_party/rust-toolchain/lib/rustlib/src/rust/library/std/src/sys/net/connection/socket/windows.rs",
     "//third_party/rust-toolchain/lib/rustlib/src/rust/library/std/src/sys/net/connection/uefi/mod.rs",
+    "//third_party/rust-toolchain/lib/rustlib/src/rust/library/std/src/sys/net/connection/uefi/tcp.rs",
+    "//third_party/rust-toolchain/lib/rustlib/src/rust/library/std/src/sys/net/connection/uefi/tcp4.rs",
     "//third_party/rust-toolchain/lib/rustlib/src/rust/library/std/src/sys/net/connection/unsupported.rs",
     "//third_party/rust-toolchain/lib/rustlib/src/rust/library/std/src/sys/net/connection/wasip1.rs",
     "//third_party/rust-toolchain/lib/rustlib/src/rust/library/std/src/sys/net/connection/xous/dns.rs",
@@ -2735,6 +2717,7 @@
     "//third_party/rust-toolchain/lib/rustlib/src/rust/library/std/src/sys/pal/unix/os/tests.rs",
     "//third_party/rust-toolchain/lib/rustlib/src/rust/library/std/src/sys/pal/unix/pipe.rs",
     "//third_party/rust-toolchain/lib/rustlib/src/rust/library/std/src/sys/pal/unix/stack_overflow.rs",
+    "//third_party/rust-toolchain/lib/rustlib/src/rust/library/std/src/sys/pal/unix/stack_overflow/thread_info.rs",
     "//third_party/rust-toolchain/lib/rustlib/src/rust/library/std/src/sys/pal/unix/sync/condvar.rs",
     "//third_party/rust-toolchain/lib/rustlib/src/rust/library/std/src/sys/pal/unix/sync/mod.rs",
     "//third_party/rust-toolchain/lib/rustlib/src/rust/library/std/src/sys/pal/unix/sync/mutex.rs",
@@ -2796,9 +2779,11 @@
     "//third_party/rust-toolchain/lib/rustlib/src/rust/library/std/src/sys/personality/emcc.rs",
     "//third_party/rust-toolchain/lib/rustlib/src/rust/library/std/src/sys/personality/gcc.rs",
     "//third_party/rust-toolchain/lib/rustlib/src/rust/library/std/src/sys/personality/mod.rs",
+    "//third_party/rust-toolchain/lib/rustlib/src/rust/library/std/src/sys/process/env.rs",
     "//third_party/rust-toolchain/lib/rustlib/src/rust/library/std/src/sys/process/mod.rs",
     "//third_party/rust-toolchain/lib/rustlib/src/rust/library/std/src/sys/process/uefi.rs",
     "//third_party/rust-toolchain/lib/rustlib/src/rust/library/std/src/sys/process/unix/common.rs",
+    "//third_party/rust-toolchain/lib/rustlib/src/rust/library/std/src/sys/process/unix/common/cstring_array.rs",
     "//third_party/rust-toolchain/lib/rustlib/src/rust/library/std/src/sys/process/unix/common/tests.rs",
     "//third_party/rust-toolchain/lib/rustlib/src/rust/library/std/src/sys/process/unix/fuchsia.rs",
     "//third_party/rust-toolchain/lib/rustlib/src/rust/library/std/src/sys/process/unix/mod.rs",
@@ -2901,7 +2886,6 @@
     "//third_party/rust-toolchain/lib/rustlib/src/rust/library/std/src/sys/thread_local/no_threads.rs",
     "//third_party/rust-toolchain/lib/rustlib/src/rust/library/std/src/sys/thread_local/os.rs",
     "//third_party/rust-toolchain/lib/rustlib/src/rust/library/std/src/sys_common/mod.rs",
-    "//third_party/rust-toolchain/lib/rustlib/src/rust/library/std/src/sys_common/process.rs",
     "//third_party/rust-toolchain/lib/rustlib/src/rust/library/std/src/sys_common/tests.rs",
     "//third_party/rust-toolchain/lib/rustlib/src/rust/library/std/src/sys_common/wstr.rs",
     "//third_party/rust-toolchain/lib/rustlib/src/rust/library/std/src/sys_common/wtf8.rs",
@@ -2970,6 +2954,8 @@
     "//third_party/rust-toolchain/lib/rustlib/src/rust/library/std/src/../../core/src/fmt/fmt_trait_method_doc.md",
     "//third_party/rust-toolchain/lib/rustlib/src/rust/library/std/src/../../core/src/macros/panic.md",
     "//third_party/rust-toolchain/lib/rustlib/src/rust/library/std/src/../../core/src/primitive_docs.rs",
+    "//third_party/rust-toolchain/lib/rustlib/src/rust/library/std/src/../../core/src/ptr/docs/add.md",
+    "//third_party/rust-toolchain/lib/rustlib/src/rust/library/std/src/../../core/src/ptr/docs/offset.md",
     "//third_party/rust-toolchain/lib/rustlib/src/rust/library/std/src/../../portable-simd/crates/core_simd/src/core_simd_docs.md",
     "//third_party/rust-toolchain/lib/rustlib/src/rust/library/std/src/../../portable-simd/crates/std_float/src/lib.rs",
     "//third_party/rust-toolchain/lib/rustlib/src/rust/library/std/src/../../stdarch/crates/core_arch/src/core_arch_docs.md",
diff --git a/cc/mojo_embedder/async_layer_tree_frame_sink_unittest.cc b/cc/mojo_embedder/async_layer_tree_frame_sink_unittest.cc
index da922b8..e8c4ccd 100644
--- a/cc/mojo_embedder/async_layer_tree_frame_sink_unittest.cc
+++ b/cc/mojo_embedder/async_layer_tree_frame_sink_unittest.cc
@@ -8,6 +8,7 @@
 #include <memory>
 #include <utility>
 
+#include "base/feature_list.h"
 #include "base/functional/bind.h"
 #include "base/memory/raw_ptr.h"
 #include "base/memory/scoped_refptr.h"
@@ -18,6 +19,7 @@
 #include "base/threading/thread.h"
 #include "cc/base/features.h"
 #include "cc/test/fake_layer_tree_frame_sink_client.h"
+#include "components/viz/common/features.h"
 #include "components/viz/common/frame_timing_details.h"
 #include "components/viz/common/frame_timing_details_map.h"
 #include "components/viz/common/performance_hint_utils.h"
@@ -606,7 +608,10 @@
   task_runner_->RunUntilIdle();
   EXPECT_TRUE(
       layer_tree_frame_sink_->use_internal_begin_frame_source_for_testing());
-  EXPECT_EQ(internal_sequence, last_received_begin_frame_sequence_number());
+  if (!base::FeatureList::IsEnabled(features::kNoLateBeginFrames)) {
+    EXPECT_EQ(internal_sequence, last_received_begin_frame_sequence_number());
+  }
+
   SendCompositorFrame();
   task_runner_->FastForwardBy(viz::BeginFrameArgs::DefaultInterval());
   internal_sequence++;
@@ -671,7 +676,9 @@
   EXPECT_EQ(args4.frame_id.sequence_number,
             last_received_begin_frame_sequence_number());
   // Receive 2 from internal and 2 from viz.
-  EXPECT_EQ(4u, frame_tracking_client_.begin_frame_count());
+  EXPECT_EQ(
+      base::FeatureList::IsEnabled(features::kNoLateBeginFrames) ? 3u : 4u,
+      frame_tracking_client_.begin_frame_count());
   layer_tree_frame_sink_->DetachFromClient();
 }
 
diff --git a/chrome/VERSION b/chrome/VERSION
index 8a864ae..a57d8975 100644
--- a/chrome/VERSION
+++ b/chrome/VERSION
@@ -1,4 +1,4 @@
 MAJOR=139
 MINOR=0
-BUILD=7237
+BUILD=7238
 PATCH=0
diff --git a/chrome/android/BUILD.gn b/chrome/android/BUILD.gn
index 2c4cb922..7889ccf 100644
--- a/chrome/android/BUILD.gn
+++ b/chrome/android/BUILD.gn
@@ -1202,6 +1202,7 @@
       "//chrome/browser/download/android:file_provider_java",
       "//chrome/browser/preferences:java",
       "//chrome/browser/profiles/android:java",
+      "//components/download/public/common:public_java",
       "//components/offline_items_collection/core:core_java",
       "//content/public/android:content_main_dex_java",
       "//content/public/test/android:content_java_test_support",
diff --git a/chrome/android/chrome_java_sources.gni b/chrome/android/chrome_java_sources.gni
index c8c6fba..677f210 100644
--- a/chrome/android/chrome_java_sources.gni
+++ b/chrome/android/chrome_java_sources.gni
@@ -1093,6 +1093,7 @@
   "java/src/org/chromium/chrome/browser/tabmodel/PendingTabClosureManager.java",
   "java/src/org/chromium/chrome/browser/tabmodel/TabCollectionTabModelImpl.java",
   "java/src/org/chromium/chrome/browser/tabmodel/TabModelDelegate.java",
+  "java/src/org/chromium/chrome/browser/tabmodel/TabModelHolderFactory.java",
   "java/src/org/chromium/chrome/browser/tabmodel/TabModelImpl.java",
   "java/src/org/chromium/chrome/browser/tabmodel/TabModelJniBridge.java",
   "java/src/org/chromium/chrome/browser/tabmodel/TabModelObserverJniBridge.java",
diff --git a/chrome/android/features/tab_ui/java/src/org/chromium/chrome/browser/tasks/tab_management/ArchivedTabsDialogCoordinator.java b/chrome/android/features/tab_ui/java/src/org/chromium/chrome/browser/tasks/tab_management/ArchivedTabsDialogCoordinator.java
index ce27bd8..da61484 100644
--- a/chrome/android/features/tab_ui/java/src/org/chromium/chrome/browser/tasks/tab_management/ArchivedTabsDialogCoordinator.java
+++ b/chrome/android/features/tab_ui/java/src/org/chromium/chrome/browser/tasks/tab_management/ArchivedTabsDialogCoordinator.java
@@ -126,19 +126,11 @@
                 public void restoreAllArchivedTabs() {
                     List<Tab> tabs = TabModelUtils.convertTabListToListOfTabs(mArchivedTabModel);
                     int tabCount = tabs.size();
-                    List<String> archivedTabGroupSyncIds = getArchivedTabGroupSyncIds();
-                    int tabGroupTabCount = getSyncedTabGroupTabsCount(archivedTabGroupSyncIds);
                     ArchivedTabsDialogCoordinator.this.restoreArchivedTabs(
-                            tabs, archivedTabGroupSyncIds);
+                            tabs, getArchivedTabGroupSyncIds());
                     RecordHistogram.recordCount1000Histogram(
                             "Tabs.RestoreAllArchivedTabsMenuItem.TabCount", tabCount);
                     RecordUserAction.record("Tabs.RestoreAllArchivedTabsMenuItem");
-                    RecordHistogram.recordCount1000Histogram(
-                            "TabGroups.RestoreAllArchivedTabsMenuItem.TabGroupCount",
-                            archivedTabGroupSyncIds.size());
-                    RecordHistogram.recordCount1000Histogram(
-                            "TabGroups.RestoreAllArchivedTabsMenuItem.TabGroupTabCount",
-                            tabGroupTabCount);
                 }
 
                 @Override
@@ -162,12 +154,6 @@
                     RecordHistogram.recordCount1000Histogram(
                             "Tabs.RestoreArchivedTabsMenuItem.TabCount", tabCount);
                     RecordUserAction.record("Tabs.RestoreArchivedTabsMenuItem");
-                    RecordHistogram.recordCount1000Histogram(
-                            "TabGroups.RestoreArchivedTabsMenuItem.TabGroupCount",
-                            tabGroupSyncIds.size());
-                    RecordHistogram.recordCount1000Histogram(
-                            "TabGroups.RestoreArchivedTabsMenuItem.TabGroupTabCount",
-                            getSyncedTabGroupTabsCount(tabGroupSyncIds));
                 }
 
                 @Override
@@ -181,12 +167,6 @@
                     RecordHistogram.recordCount1000Histogram(
                             "Tabs.CloseArchivedTabsMenuItem.TabCount", tabs.size());
                     RecordUserAction.record("Tabs.CloseArchivedTabsMenuItem");
-                    RecordHistogram.recordCount1000Histogram(
-                            "TabGroups.CloseArchivedTabsMenuItem.TabGroupCount",
-                            tabGroupSyncIds.size());
-                    RecordHistogram.recordCount1000Histogram(
-                            "TabGroups.CloseArchivedTabsMenuItem.TabGroupTabCount",
-                            getSyncedTabGroupTabsCount(tabGroupSyncIds));
                 }
             };
 
@@ -270,10 +250,6 @@
                                     mTabGroupUiActionHandlerSupplier.get(),
                                     mCurrentTabGroupModelFilterSupplier.get(),
                                     requestOpenTabGroupDialog);
-                            RecordUserAction.record("TabGroups.RestoreSingleTabGroup");
-                            RecordHistogram.recordCount1000Histogram(
-                                    "TabGroups.RestoreSingleTabGroup.TabGroupTabCount",
-                                    savedTabGroup.savedTabs.size());
                         }
                     };
                 }
@@ -787,12 +763,6 @@
                     RecordHistogram.recordCount1000Histogram(
                             "Tabs.CloseAllArchivedTabs.TabCount", tabCount);
                     RecordUserAction.record("Tabs.CloseAllArchivedTabsMenuItem");
-                    RecordHistogram.recordCount1000Histogram(
-                            "TabGroups.CloseAllArchivedTabGroups.TabGroupCount",
-                            archivedTabGroupSyncIds.size());
-                    RecordHistogram.recordCount1000Histogram(
-                            "TabGroups.CloseAllArchivedTabGroups.TabGroupTabCount",
-                            tabGroupTabsCount);
                 });
     }
 
diff --git a/chrome/android/features/tab_ui/java/src/org/chromium/chrome/browser/tasks/tab_management/TabGridDialogView.java b/chrome/android/features/tab_ui/java/src/org/chromium/chrome/browser/tasks/tab_management/TabGridDialogView.java
index 5de43af9..64035db 100644
--- a/chrome/android/features/tab_ui/java/src/org/chromium/chrome/browser/tasks/tab_management/TabGridDialogView.java
+++ b/chrome/android/features/tab_ui/java/src/org/chromium/chrome/browser/tasks/tab_management/TabGridDialogView.java
@@ -380,19 +380,28 @@
 
     private void restoreBackgroundViewAccessibilityImportance() {
         ViewGroup parent = (ViewGroup) getParent();
-        ViewGroup grandparent = (ViewGroup) parent.getParent();
-        for (int i = 0; i < grandparent.getChildCount(); i++) {
-            View view = grandparent.getChildAt(i);
-            if (view == parent) {
-                break;
+        ViewGroup grandparent = parent == null ? null : (ViewGroup) parent.getParent();
+        // Fix for crbug.com/424749240, it is not clear why this would be null.
+        if (parent == null || grandparent == null) {
+            for (View view : mAccessibilityImportanceMap.keySet()) {
+                view.setImportantForAccessibility(mAccessibilityImportanceMap.get(view));
             }
-            Integer importance = mAccessibilityImportanceMap.get(view);
-            view.setImportantForAccessibility(
-                    importance == null ? IMPORTANT_FOR_ACCESSIBILITY_AUTO : importance);
+        } else {
+            for (int i = 0; i < grandparent.getChildCount(); i++) {
+                View view = grandparent.getChildAt(i);
+                if (view == parent) break;
+
+                setImportance(view, mAccessibilityImportanceMap.get(view));
+            }
         }
         mAccessibilityImportanceMap.clear();
     }
 
+    private static void setImportance(View view, @Nullable Integer importance) {
+        view.setImportantForAccessibility(
+                importance == null ? IMPORTANT_FOR_ACCESSIBILITY_AUTO : importance);
+    }
+
     void setVisibilityListener(VisibilityListener visibilityListener) {
         // Treat the old visibility listener as if it is hiding as it no longer controls the View so
         // it is effectively hidden.
diff --git a/chrome/android/features/tab_ui/java/src/org/chromium/chrome/browser/tasks/tab_management/TabGroupRowMediator.java b/chrome/android/features/tab_ui/java/src/org/chromium/chrome/browser/tasks/tab_management/TabGroupRowMediator.java
index ef4ee25..0a5b9274 100644
--- a/chrome/android/features/tab_ui/java/src/org/chromium/chrome/browser/tasks/tab_management/TabGroupRowMediator.java
+++ b/chrome/android/features/tab_ui/java/src/org/chromium/chrome/browser/tasks/tab_management/TabGroupRowMediator.java
@@ -230,14 +230,7 @@
             }
         } else if (state == GroupWindowState.HIDDEN) {
             String syncId = savedTabGroup.syncId;
-            boolean isTabGroupArchived = savedTabGroup.archivalTimeMs != null;
             mTabGroupUiActionHandler.openTabGroup(syncId);
-            if (isTabGroupArchived) {
-                RecordUserAction.record("TabGroups.RestoreFromTabGroupPane");
-                RecordHistogram.recordCount1000Histogram(
-                        "TabGroups.RestoreFromTabGroupPane.TabCount",
-                        savedTabGroup.savedTabs.size());
-            }
             savedTabGroup = mTabGroupSyncService.getGroup(syncId);
         }
 
diff --git a/chrome/android/features/tab_ui/java/src/org/chromium/chrome/browser/tasks/tab_management/TabGroupRowMediatorUnitTest.java b/chrome/android/features/tab_ui/java/src/org/chromium/chrome/browser/tasks/tab_management/TabGroupRowMediatorUnitTest.java
index b047883..457592b 100644
--- a/chrome/android/features/tab_ui/java/src/org/chromium/chrome/browser/tasks/tab_management/TabGroupRowMediatorUnitTest.java
+++ b/chrome/android/features/tab_ui/java/src/org/chromium/chrome/browser/tasks/tab_management/TabGroupRowMediatorUnitTest.java
@@ -51,8 +51,6 @@
 import org.chromium.base.Token;
 import org.chromium.base.test.BaseRobolectricTestRunner;
 import org.chromium.base.test.util.Features.EnableFeatures;
-import org.chromium.base.test.util.HistogramWatcher;
-import org.chromium.base.test.util.UserActionTester;
 import org.chromium.chrome.browser.data_sharing.DataSharingTabManager;
 import org.chromium.chrome.browser.flags.ChromeFeatureList;
 import org.chromium.chrome.browser.hub.PaneId;
@@ -328,24 +326,12 @@
                 .openTabGroup(SYNC_GROUP_ID1);
         when(mFetchGroupState.get()).thenReturn(GroupWindowState.HIDDEN);
         PropertyModel propertyModel = buildTestModel(/* isShared= */ true, mUrl1);
-        UserActionTester userActionTester = new UserActionTester();
-        HistogramWatcher histograms =
-                HistogramWatcher.newBuilder()
-                        .expectIntRecord(
-                                "TabGroups.RestoreFromTabGroupPane.TabCount",
-                                mSyncGroup.savedTabs.size())
-                        .build();
-
         mSyncGroup.localId = null;
-        mSyncGroup.archivalTimeMs = 1L;
 
         propertyModel.get(OPEN_RUNNABLE).run();
         verify(mTabGroupUiActionHandler).openTabGroup(SYNC_GROUP_ID1);
         verify(mPaneManager).focusPane(PaneId.TAB_SWITCHER);
         verify(mTabSwitcherPaneBase).requestOpenTabGroupDialog(mRootId);
-        assertEquals(1, userActionTester.getActionCount("TabGroups.RestoreFromTabGroupPane"));
-        histograms.assertExpected();
-        userActionTester.tearDown();
     }
 
     @Test
@@ -353,21 +339,12 @@
         when(mFetchGroupState.get()).thenReturn(GroupWindowState.HIDDEN);
         when(mTabGroupSyncService.getGroup(SYNC_GROUP_ID1)).thenReturn(null);
         PropertyModel propertyModel = buildTestModel(/* isShared= */ true, mUrl1);
-        UserActionTester userActionTester = new UserActionTester();
-        HistogramWatcher histograms =
-                HistogramWatcher.newBuilder()
-                        .expectNoRecords("TabGroups.RestoreFromTabGroupPane.TabCount")
-                        .build();
-
         mSyncGroup.localId = null;
 
         propertyModel.get(OPEN_RUNNABLE).run();
         verify(mTabGroupUiActionHandler).openTabGroup(SYNC_GROUP_ID1);
         verifyNoInteractions(mPaneManager);
         verifyNoInteractions(mTabSwitcherPaneBase);
-        assertEquals(0, userActionTester.getActionCount("TabGroups.RestoreFromTabGroupPane"));
-        histograms.assertExpected();
-        userActionTester.tearDown();
     }
 
     @Test
diff --git a/chrome/android/features/tab_ui/java/src/org/chromium/chrome/browser/tasks/tab_management/TabListMediator.java b/chrome/android/features/tab_ui/java/src/org/chromium/chrome/browser/tasks/tab_management/TabListMediator.java
index d979636..d792e54 100644
--- a/chrome/android/features/tab_ui/java/src/org/chromium/chrome/browser/tasks/tab_management/TabListMediator.java
+++ b/chrome/android/features/tab_ui/java/src/org/chromium/chrome/browser/tasks/tab_management/TabListMediator.java
@@ -1227,8 +1227,8 @@
 
                         @Nullable PropertyModel model = mModelList.getModelFromSyncId(syncId);
                         if (model != null) {
-                            SavedTabGroup tabGroup = mTabGroupSyncService.getGroup(syncId);
-                            Long archivalTimeMs = tabGroup.archivalTimeMs;
+                            Long archivalTimeMs =
+                                    mTabGroupSyncService.getGroup(syncId).archivalTimeMs;
 
                             // If the tab group is archived, run archival reset logic and remove the
                             // tab group from the model list.
@@ -1236,11 +1236,6 @@
                                 model.set(TabProperties.USE_SHRINK_CLOSE_ANIMATION, true);
                                 mModelList.removeAt(index);
                                 mTabGroupSyncService.updateArchivalStatus(syncId, false);
-                                RecordUserAction.record(
-                                        "TabGroups.ArchivedTabGroupManualCloseOnInactiveSurface");
-                                RecordHistogram.recordCount1000Histogram(
-                                        "TabGroups.ArchivedTabGroupManualCloseOnInactiveSurface.TabGroupTabCount",
-                                        tabGroup.savedTabs.size());
                             }
                         }
                     }
diff --git a/chrome/android/features/tab_ui/java/strings/translations/android_chrome_tab_ui_strings_ta.xtb b/chrome/android/features/tab_ui/java/strings/translations/android_chrome_tab_ui_strings_ta.xtb
index 4700c94..ba77b19 100644
--- a/chrome/android/features/tab_ui/java/strings/translations/android_chrome_tab_ui_strings_ta.xtb
+++ b/chrome/android/features/tab_ui/java/strings/translations/android_chrome_tab_ui_strings_ta.xtb
@@ -70,7 +70,7 @@
 <translation id="3652027618765638838"><ph name="CURRENT_RATING" />/<ph name="RATING_BASELINE" /></translation>
 <translation id="374923079891132274">ஷேர் ஷீட் மாதிரிக்காட்சியின் சிறுபடம்.</translation>
 <translation id="3810973564298564668">நிர்வகி</translation>
-<translation id="3940195383040445971">தாவல்களில் விலையைக் கண்காணித்தல்</translation>
+<translation id="3940195383040445971">பக்கங்களில் விலையைக் கண்காணித்தல்</translation>
 <translation id="3940717704786481856">{NUMBER_OF_TABS_ADDED,plural, =1{<ph name="ONE_ADDED" /> புதிய பக்கம், <ph name="ANY_CLOSED" /> மூடப்பட்டது}other{<ph name="MANY_ADDED" /> புதிய பக்கங்கள், <ph name="ANY_CLOSED" /> மூடப்பட்டது}}</translation>
 <translation id="3954615705217314756">{TABS_COUNT,plural, =1{பக்கத்தைக் குழுவாக்கு}other{பக்கங்களைக் குழுவாக்கு}}</translation>
 <translation id="395587619114760247">{TABS_COUNT,plural, =1{செயலில் இல்லாத <ph name="TABS_COUNT_ONE" /> பக்கம்}other{செயலில் இல்லாத <ph name="TABS_COUNT_MANY" /> பக்கங்கள்}}</translation>
diff --git a/chrome/android/features/tab_ui/javatests/src/org/chromium/chrome/browser/tasks/tab_management/ArchivedTabsDialogCoordinatorTest.java b/chrome/android/features/tab_ui/javatests/src/org/chromium/chrome/browser/tasks/tab_management/ArchivedTabsDialogCoordinatorTest.java
index 2eb42f0..f5e44d9c9 100644
--- a/chrome/android/features/tab_ui/javatests/src/org/chromium/chrome/browser/tasks/tab_management/ArchivedTabsDialogCoordinatorTest.java
+++ b/chrome/android/features/tab_ui/javatests/src/org/chromium/chrome/browser/tasks/tab_management/ArchivedTabsDialogCoordinatorTest.java
@@ -86,7 +86,6 @@
 import org.chromium.chrome.test.transit.page.WebPageStation;
 import org.chromium.chrome.test.util.ActivityTestUtils;
 import org.chromium.chrome.test.util.ChromeRenderTestRule;
-import org.chromium.components.tab_group_sync.LocalTabGroupId;
 import org.chromium.components.tab_group_sync.SavedTabGroup;
 import org.chromium.components.tab_group_sync.SavedTabGroupTab;
 import org.chromium.components.tab_group_sync.TabGroupSyncService;
@@ -410,13 +409,8 @@
         mRobot.resultRobot.verifyTabListEditorIsHidden();
         assertEquals(1, mUserActionTester.getActionCount("Tabs.OpenArchivedTabsSettingsMenuItem"));
 
-        HistogramWatcher histogramExpectation =
-                HistogramWatcher.newSingleRecordWatcher(
-                        "Tabs.ArchiveSettings.TimeDeltaPreference", 0);
-
         mArchivedTabModelOrchestrator.resetRescueArchivedTabsForTesting();
         onView(withText("Never")).perform(click());
-        histogramExpectation.assertExpected();
 
         CriteriaHelper.pollUiThread(() -> mRegularTabModel.getCount() == 3);
         assertEquals(0, mArchivedTabModel.getCount());
@@ -858,11 +852,7 @@
         tabSwitcherStation.expectArchiveMessageCard().openArchivedTabsDialog();
 
         HistogramWatcher histogramExpectation =
-                HistogramWatcher.newBuilder()
-                        .expectIntRecords("Tabs.CloseAllArchivedTabs.TabCount", 1)
-                        .expectIntRecords("TabGroups.CloseAllArchivedTabGroups.TabGroupCount", 1)
-                        .expectIntRecords("TabGroups.CloseAllArchivedTabGroups.TabGroupTabCount", 1)
-                        .build();
+                HistogramWatcher.newSingleRecordWatcher("Tabs.CloseAllArchivedTabs.TabCount", 1);
 
         onView(withText("2 inactive tabs")).check(matches(isDisplayed()));
         onView(withText("Close all inactive tabs")).perform(click());
@@ -901,11 +891,8 @@
         mRobot.actionRobot.clickToolbarMenuButton().clickToolbarMenuItem("Select tabs");
 
         HistogramWatcher histogramExpectation =
-                HistogramWatcher.newBuilder()
-                        .expectIntRecords("Tabs.CloseArchivedTabsMenuItem.TabCount", 2)
-                        .expectIntRecords("TabGroups.CloseArchivedTabsMenuItem.TabGroupCount", 1)
-                        .expectIntRecords("TabGroups.CloseArchivedTabsMenuItem.TabGroupTabCount", 1)
-                        .build();
+                HistogramWatcher.newSingleRecordWatcher(
+                        "Tabs.CloseArchivedTabsMenuItem.TabCount", 2);
         mRobot.actionRobot.clickItemAtAdapterPosition(0);
         mRobot.actionRobot.clickItemAtAdapterPosition(1);
         mRobot.actionRobot.clickItemAtAdapterPosition(2);
@@ -946,11 +933,8 @@
         mRobot.actionRobot.clickToolbarMenuButton().clickToolbarMenuItem("Select tabs");
 
         HistogramWatcher histogramExpectation =
-                HistogramWatcher.newBuilder()
-                        .expectIntRecords("Tabs.CloseArchivedTabsMenuItem.TabCount", 2)
-                        .expectIntRecords("TabGroups.CloseArchivedTabsMenuItem.TabGroupCount", 1)
-                        .expectIntRecords("TabGroups.CloseArchivedTabsMenuItem.TabGroupTabCount", 1)
-                        .build();
+                HistogramWatcher.newSingleRecordWatcher(
+                        "Tabs.CloseArchivedTabsMenuItem.TabCount", 2);
         mRobot.actionRobot.clickItemAtAdapterPosition(0);
         mRobot.actionRobot.clickItemAtAdapterPosition(1);
         mRobot.actionRobot.clickItemAtAdapterPosition(2);
@@ -986,13 +970,8 @@
         onView(withText("2 inactive tabs")).check(matches(isDisplayed()));
 
         HistogramWatcher histogramExpectation =
-                HistogramWatcher.newBuilder()
-                        .expectIntRecords("Tabs.RestoreAllArchivedTabsMenuItem.TabCount", 1)
-                        .expectIntRecords(
-                                "TabGroups.RestoreAllArchivedTabsMenuItem.TabGroupCount", 1)
-                        .expectIntRecords(
-                                "TabGroups.RestoreAllArchivedTabsMenuItem.TabGroupTabCount", 1)
-                        .build();
+                HistogramWatcher.newSingleRecordWatcher(
+                        "Tabs.RestoreAllArchivedTabsMenuItem.TabCount", 1);
         assertEquals(1, mRegularTabModel.getCount());
 
         // Mock the sync backend being initialized so the tab group is restored via
@@ -1034,12 +1013,8 @@
         mRobot.actionRobot.clickToolbarMenuButton().clickToolbarMenuItem("Select tabs");
 
         HistogramWatcher histogramExpectation =
-                HistogramWatcher.newBuilder()
-                        .expectIntRecords("Tabs.RestoreArchivedTabsMenuItem.TabCount", 1)
-                        .expectIntRecords("TabGroups.RestoreArchivedTabsMenuItem.TabGroupCount", 1)
-                        .expectIntRecords(
-                                "TabGroups.RestoreArchivedTabsMenuItem.TabGroupTabCount", 1)
-                        .build();
+                HistogramWatcher.newSingleRecordWatcher(
+                        "Tabs.RestoreArchivedTabsMenuItem.TabCount", 1);
         mRobot.actionRobot.clickItemAtAdapterPosition(0);
         mRobot.actionRobot.clickItemAtAdapterPosition(1);
         mRobot.resultRobot.verifyToolbarSelectionText("2 tabs");
@@ -1064,89 +1039,6 @@
         assertEquals(1, mUserActionTester.getActionCount("Tabs.RestoreArchivedTabsMenuItem"));
     }
 
-    @Test
-    @MediumTest
-    public void testCloseArchivedTabGroup_PressCloseButton() throws Exception {
-        when(mTabGroupSyncService.getAllGroupIds()).thenReturn(new String[] {SYNC_GROUP_ID1});
-        SavedTabGroup savedTabGroup =
-                createSavedTabGroup(SYNC_GROUP_ID1, GROUP_TITLE1, SYNC_GROUP_COLOR1, 1, true);
-        addArchivedTab(new GURL("https://google.com"), "test 1");
-        addArchivedTab(new GURL("https://google.com"), "test 2");
-
-        RegularTabSwitcherStation tabSwitcherStation = mInitialPage.openRegularTabSwitcher();
-        tabSwitcherStation.expectArchiveMessageCard().openArchivedTabsDialog();
-
-        assertEquals(1, mRegularTabModel.getCount());
-        assertEquals(2, mArchivedTabModel.getCount());
-
-        HistogramWatcher histogramExpectation =
-                HistogramWatcher.newSingleRecordWatcher(
-                        "TabGroups.ArchivedTabGroupManualCloseOnInactiveSurface.TabGroupTabCount",
-                        1);
-
-        mRobot.actionRobot.clickViewIdAtAdapterPosition(0, R.id.action_button);
-
-        verify(mTabGroupSyncService).updateArchivalStatus(SYNC_GROUP_ID1, false);
-        savedTabGroup.archivalTimeMs = null;
-        ThreadUtils.runOnUiThreadBlocking(
-                () -> notifyTabGroupSyncObserversWithChangedGroup(savedTabGroup));
-        mRobot.resultRobot.verifyAdapterHasItemCount(2);
-
-        assertEquals(1, mRegularTabModel.getCount());
-        assertEquals(2, mArchivedTabModel.getCount());
-        histogramExpectation.assertExpected();
-        assertEquals(
-                1,
-                mUserActionTester.getActionCount(
-                        "TabGroups.ArchivedTabGroupManualCloseOnInactiveSurface"));
-    }
-
-    @Test
-    @MediumTest
-    @EnableFeatures({ChromeFeatureList.ANDROID_TAB_DECLUTTER_ARCHIVE_TAB_GROUPS})
-    public void testRestoreArchivedTabGroup_ClickIntoTabGroup() {
-        when(mTabGroupSyncService.getAllGroupIds()).thenReturn(new String[] {SYNC_GROUP_ID1});
-        SavedTabGroup savedTabGroupInitial =
-                createSavedTabGroup(SYNC_GROUP_ID1, GROUP_TITLE1, SYNC_GROUP_COLOR1, 1, true);
-        SavedTabGroup savedTabGroupLocalIdSet =
-                createSavedTabGroup(SYNC_GROUP_ID1, GROUP_TITLE1, SYNC_GROUP_COLOR1, 1, true);
-        savedTabGroupLocalIdSet.localId = new LocalTabGroupId(new Token(123L, 123L));
-
-        addArchivedTab(new GURL("https://google.com"), "test 1");
-        addArchivedTab(new GURL("https://google.com"), "test 2");
-
-        RegularTabSwitcherStation tabSwitcherStation = mInitialPage.openRegularTabSwitcher();
-        tabSwitcherStation.expectArchiveMessageCard().openArchivedTabsDialog();
-        ThreadUtils.runOnUiThreadBlocking(() -> notifyTabGroupSyncObserversWithInitialization());
-        // Override getGroup mock defined in createSavedTabGroup to support changing state.
-        when(mTabGroupSyncService.getGroup(SYNC_GROUP_ID1))
-                .thenReturn(
-                        savedTabGroupInitial,
-                        savedTabGroupInitial,
-                        savedTabGroupInitial,
-                        savedTabGroupLocalIdSet,
-                        savedTabGroupLocalIdSet);
-
-        assertEquals(1, mRegularTabModel.getCount());
-        assertEquals(2, mArchivedTabModel.getCount());
-
-        HistogramWatcher histogramExpectation =
-                HistogramWatcher.newSingleRecordWatcher(
-                        "TabGroups.RestoreSingleTabGroup.TabGroupTabCount", 1);
-
-        mRobot.actionRobot.clickItemAtAdapterPosition(0);
-
-        verify(mTabGroupSyncService).updateArchivalStatus(SYNC_GROUP_ID1, false);
-        savedTabGroupLocalIdSet.archivalTimeMs = null;
-        ThreadUtils.runOnUiThreadBlocking(
-                () -> notifyTabGroupSyncObserversWithChangedGroup(savedTabGroupLocalIdSet));
-
-        assertEquals(2, mRegularTabModel.getCount());
-        assertEquals(2, mArchivedTabModel.getCount());
-        histogramExpectation.assertExpected();
-        assertEquals(1, mUserActionTester.getActionCount("TabGroups.RestoreSingleTabGroup"));
-    }
-
     private Tab addArchivedTab(GURL url, String title) {
         return ThreadUtils.runOnUiThreadBlocking(
                 () ->
diff --git a/chrome/android/java/src/org/chromium/chrome/browser/app/tabmodel/ArchivedTabModelOrchestrator.java b/chrome/android/java/src/org/chromium/chrome/browser/app/tabmodel/ArchivedTabModelOrchestrator.java
index 21db046b..d05c11ed 100644
--- a/chrome/android/java/src/org/chromium/chrome/browser/app/tabmodel/ArchivedTabModelOrchestrator.java
+++ b/chrome/android/java/src/org/chromium/chrome/browser/app/tabmodel/ArchivedTabModelOrchestrator.java
@@ -499,7 +499,7 @@
     private void rescueArchivedTabGroups() {
         if (mTabGroupSyncService == null) return;
 
-        if (mRescueTabGroupsCalled) return; // prevents calling when already called once
+        if (mRescueTabGroupsCalled) return;
         mRescueTabGroupsCalled = true;
 
         // Clear all {@link SavedTabGroup}s of possible archived status as the rescue operation.
diff --git a/chrome/android/java/src/org/chromium/chrome/browser/browsing_data/ClearBrowsingDataFetcher.java b/chrome/android/java/src/org/chromium/chrome/browser/browsing_data/ClearBrowsingDataFetcher.java
index 7c60005..568dc87c 100644
--- a/chrome/android/java/src/org/chromium/chrome/browser/browsing_data/ClearBrowsingDataFetcher.java
+++ b/chrome/android/java/src/org/chromium/chrome/browser/browsing_data/ClearBrowsingDataFetcher.java
@@ -8,9 +8,12 @@
 import android.os.Parcelable;
 
 import org.chromium.base.metrics.RecordHistogram;
+import org.chromium.build.annotations.NullMarked;
+import org.chromium.build.annotations.Nullable;
 import org.chromium.chrome.browser.profiles.Profile;
 
 /** Requests information about important sites and other forms of browsing data. */
+@NullMarked
 public class ClearBrowsingDataFetcher
         implements BrowsingDataBridge.ImportantSitesCallback,
                 BrowsingDataBridge.OtherFormsOfBrowsingHistoryListener,
@@ -19,11 +22,11 @@
     private final int mMaxImportantSites;
     // This is the sorted list of important registerable domains. If null, then we haven't finished
     // fetching them yet.
-    private String[] mSortedImportantDomains;
+    private String @Nullable [] mSortedImportantDomains;
     // These are the reasons the above domains were chosen as important.
-    private int[] mSortedImportantDomainReasons;
+    private int @Nullable [] mSortedImportantDomainReasons;
     // These are full url examples of the domains above. We use them for favicons.
-    private String[] mSortedExampleOrigins;
+    private String @Nullable [] mSortedExampleOrigins;
 
     // Whether the dialog about other forms of browsing history should be shown.
     private boolean mIsDialogAboutOtherFormsOfBrowsingHistoryEnabled;
@@ -94,21 +97,21 @@
      * @return Get a sorted list of important registerable domains. If null, then we haven't
      * finished fetching them yet.
      */
-    public String[] getSortedImportantDomains() {
+    public String @Nullable [] getSortedImportantDomains() {
         return mSortedImportantDomains;
     }
 
     /**
      * @return The reasons the above domains were chosen as important.
      */
-    public int[] getSortedImportantDomainReasons() {
+    public int @Nullable [] getSortedImportantDomainReasons() {
         return mSortedImportantDomainReasons;
     }
 
     /**
      * @return Full url examples of the domains above. We use them for favicons.
      */
-    public String[] getSortedExampleOrigins() {
+    public String @Nullable [] getSortedExampleOrigins() {
         return mSortedExampleOrigins;
     }
 
diff --git a/chrome/android/java/src/org/chromium/chrome/browser/compositor/layouts/phone/SimpleAnimationLayout.java b/chrome/android/java/src/org/chromium/chrome/browser/compositor/layouts/phone/SimpleAnimationLayout.java
index 3f9021d..32e80d28 100644
--- a/chrome/android/java/src/org/chromium/chrome/browser/compositor/layouts/phone/SimpleAnimationLayout.java
+++ b/chrome/android/java/src/org/chromium/chrome/browser/compositor/layouts/phone/SimpleAnimationLayout.java
@@ -4,6 +4,9 @@
 
 package org.chromium.chrome.browser.compositor.layouts.phone;
 
+import static org.chromium.build.NullUtil.assertNonNull;
+import static org.chromium.build.NullUtil.assumeNonNull;
+
 import android.animation.Animator;
 import android.animation.AnimatorListenerAdapter;
 import android.animation.AnimatorSet;
@@ -14,6 +17,8 @@
 import android.view.ViewGroup;
 
 import org.chromium.base.metrics.RecordHistogram;
+import org.chromium.build.annotations.NullMarked;
+import org.chromium.build.annotations.Nullable;
 import org.chromium.chrome.browser.browser_controls.BrowserControlsStateProvider;
 import org.chromium.chrome.browser.compositor.layouts.Layout;
 import org.chromium.chrome.browser.compositor.layouts.LayoutRenderHost;
@@ -44,12 +49,13 @@
 import java.util.LinkedList;
 
 /** This class handles animating the opening of new tabs. */
+@NullMarked
 public class SimpleAnimationLayout extends Layout {
     /** The animation for a tab being created in the foreground. */
-    private AnimatorSet mTabCreatedForegroundAnimation;
+    private @Nullable AnimatorSet mTabCreatedForegroundAnimation;
 
     /** The animation for a tab being created in the background. */
-    private AnimatorSet mTabCreatedBackgroundAnimation;
+    private @Nullable AnimatorSet mTabCreatedBackgroundAnimation;
 
     /** Fraction to scale tabs by during animation. */
     public static final float SCALE_FRACTION = 0.90f;
@@ -103,7 +109,8 @@
 
     @Override
     public void doneHiding() {
-        TabModelUtils.selectTabById(mTabModelSelector, mNextTabId, TabSelectionType.FROM_USER);
+        TabModelUtils.selectTabById(
+                assertNonNull(mTabModelSelector), mNextTabId, TabSelectionType.FROM_USER);
         super.doneHiding();
         updateContentContainerSensitivity(TabModel.INVALID_TAB_INDEX);
     }
@@ -162,7 +169,7 @@
             return;
         }
         // Just draw the source tab on the screen.
-        TabModel sourceModel = mTabModelSelector.getModelForTabId(sourceTabId);
+        TabModel sourceModel = assumeNonNull(mTabModelSelector).getModelForTabId(sourceTabId);
         if (sourceModel == null) return;
         LayoutTab sourceLayoutTab = createLayoutTab(sourceTabId, sourceModel.isIncognito());
         sourceLayoutTab.setBorderAlpha(0.0f);
@@ -269,7 +276,7 @@
                 scaleAnimation, alphaAnimation, xAnimation, yAnimation);
         mTabCreatedForegroundAnimation.start();
 
-        mTabModelSelector.selectModel(newIsIncognito);
+        assumeNonNull(mTabModelSelector).selectModel(newIsIncognito);
         mNextTabId = id;
         startHiding();
     }
@@ -289,7 +296,7 @@
             int id, int sourceId, boolean newIsIncognito, float originX, float originY) {
         LayoutTab newLayoutTab = createLayoutTab(id, newIsIncognito);
         // mLayoutTabs should already have the source tab from tabCreating().
-        assert mLayoutTabs.length == 1;
+        assert mLayoutTabs != null && mLayoutTabs.length == 1;
         LayoutTab sourceLayoutTab = mLayoutTabs[0];
         mLayoutTabs = new LayoutTab[] {sourceLayoutTab, newLayoutTab};
         updateCacheVisibleIds(new LinkedList<>(Arrays.asList(id, sourceId)));
@@ -493,7 +500,7 @@
         mTabCreatedBackgroundAnimation.playSequentially(step1, step3);
         mTabCreatedBackgroundAnimation.start();
 
-        mTabModelSelector.selectModel(newIsIncognito);
+        assumeNonNull(mTabModelSelector).selectModel(newIsIncognito);
     }
 
     /**
@@ -517,7 +524,8 @@
                         == View.CONTENT_SENSITIVITY_SENSITIVE) {
                     return;
                 }
-                TabModel sourceModel = mTabModelSelector.getModelForTabId(sourceTabId);
+                TabModel sourceModel =
+                        assumeNonNull(mTabModelSelector).getModelForTabId(sourceTabId);
                 if (sourceModel == null) {
                     return;
                 }
diff --git a/chrome/android/java/src/org/chromium/chrome/browser/download/DownloadBroadcastManagerImpl.java b/chrome/android/java/src/org/chromium/chrome/browser/download/DownloadBroadcastManagerImpl.java
index 968de63..8fd5916 100644
--- a/chrome/android/java/src/org/chromium/chrome/browser/download/DownloadBroadcastManagerImpl.java
+++ b/chrome/android/java/src/org/chromium/chrome/browser/download/DownloadBroadcastManagerImpl.java
@@ -12,6 +12,7 @@
 import static org.chromium.chrome.browser.download.DownloadNotificationService.ACTION_DOWNLOAD_RESUME;
 import static org.chromium.chrome.browser.download.DownloadNotificationService.EXTRA_DOWNLOAD_CONTENTID_ID;
 import static org.chromium.chrome.browser.download.DownloadNotificationService.EXTRA_DOWNLOAD_CONTENTID_NAMESPACE;
+import static org.chromium.chrome.browser.download.DownloadNotificationService.EXTRA_DOWNLOAD_DANGER_TYPE;
 import static org.chromium.chrome.browser.download.DownloadNotificationService.EXTRA_IS_OFF_THE_RECORD;
 import static org.chromium.chrome.browser.notifications.NotificationConstants.EXTRA_NOTIFICATION_ID;
 
@@ -36,9 +37,11 @@
 import org.chromium.chrome.browser.init.EmptyBrowserParts;
 import org.chromium.chrome.browser.notifications.TrampolineActivityTracker;
 import org.chromium.chrome.browser.profiles.OtrProfileId;
+import org.chromium.components.download.DownloadDangerType;
 import org.chromium.components.offline_items_collection.ContentId;
 import org.chromium.components.offline_items_collection.LaunchLocation;
 import org.chromium.components.offline_items_collection.LegacyHelpers;
+import org.chromium.components.offline_items_collection.OfflineItemState;
 import org.chromium.components.offline_items_collection.OpenParams;
 import org.chromium.components.offline_items_collection.PendingState;
 import org.chromium.content_public.browser.BrowserStartupController;
@@ -245,6 +248,12 @@
         final DownloadSharedPreferenceEntry entry = getDownloadEntryFromIntent(intent);
         boolean isOffTheRecord =
                 IntentUtils.safeGetBooleanExtra(intent, EXTRA_IS_OFF_THE_RECORD, false);
+        int dangerType =
+                IntentUtils.safeGetIntExtra(
+                        intent, EXTRA_DOWNLOAD_DANGER_TYPE, DownloadDangerType.NOT_DANGEROUS);
+        if (dangerType < 0 || dangerType >= DownloadDangerType.MAX) {
+            dangerType = DownloadDangerType.NOT_DANGEROUS;
+        }
 
         OtrProfileId otrProfileId;
         if (entry != null) {
@@ -259,7 +268,14 @@
         // Handle actions that do not require a specific entry or service delegate.
         switch (action) {
             case ACTION_NOTIFICATION_CLICKED:
-                openDownload(ContextUtils.getApplicationContext(), intent, otrProfileId, id);
+                if (org.chromium.components.browser_ui.util.DownloadUtils
+                        .shouldDisplayDownloadAsDangerous(
+                                dangerType, OfflineItemState.IN_PROGRESS)) {
+                    DownloadManagerService.openDownloadsPage(
+                            otrProfileId, DownloadOpenSource.NOTIFICATION);
+                } else {
+                    openDownload(ContextUtils.getApplicationContext(), intent, otrProfileId, id);
+                }
                 return;
 
             case ACTION_DOWNLOAD_OPEN:
diff --git a/chrome/android/java/src/org/chromium/chrome/browser/download/DownloadNotificationFactory.java b/chrome/android/java/src/org/chromium/chrome/browser/download/DownloadNotificationFactory.java
index 3798519..0f9caaa 100644
--- a/chrome/android/java/src/org/chromium/chrome/browser/download/DownloadNotificationFactory.java
+++ b/chrome/android/java/src/org/chromium/chrome/browser/download/DownloadNotificationFactory.java
@@ -12,6 +12,7 @@
 import static org.chromium.chrome.browser.download.DownloadNotificationService.ACTION_DOWNLOAD_RESUME;
 import static org.chromium.chrome.browser.download.DownloadNotificationService.EXTRA_DOWNLOAD_CONTENTID_ID;
 import static org.chromium.chrome.browser.download.DownloadNotificationService.EXTRA_DOWNLOAD_CONTENTID_NAMESPACE;
+import static org.chromium.chrome.browser.download.DownloadNotificationService.EXTRA_DOWNLOAD_DANGER_TYPE;
 import static org.chromium.chrome.browser.download.DownloadNotificationService.EXTRA_IS_OFF_THE_RECORD;
 import static org.chromium.chrome.browser.download.DownloadNotificationService.EXTRA_NOTIFICATION_BUNDLE_ICON_ID;
 import static org.chromium.chrome.browser.download.DownloadNotificationService.EXTRA_OTR_PROFILE_ID;
@@ -51,6 +52,9 @@
     // Time out duration for success and failed download notification.
     private static final long TIME_OUT_DURATION_IN_MILLIS = 60 * 60 * 1000;
 
+    // Time out duration for dangerous download notification.
+    private static final long DANGEROUS_DOWNLOAD_TIME_OUT_DURATION_IN_MILLIS = 5 * 60 * 1000;
+
     private static <T> void checkNotNull(T reference) {
         if (reference == null) {
             throw new NullPointerException();
@@ -67,12 +71,14 @@
      * Builds a downloads notification based on the status of the download and its information. All
      * changes to this function should consider the difference between normal profile and off the
      * record profile.
+     *
      * @param context of the download.
-     * @param downloadStatus (in progress, paused, successful, failed, deleted, or summary).
+     * @param downloadStatus (in progress, paused, successful, failed, deleted, summary, or
+     *     dangerous).
      * @param downloadUpdate information about the download (ie. contentId, fileName, icon,
-     * isOffTheRecord, etc).
+     *     isOffTheRecord, etc).
      * @param notificationId The notification id passed to {@link
-     *         android.app.NotificationManager#notify(String, int, Notification)}.
+     *     android.app.NotificationManager#notify(String, int, Notification)}.
      * @return Notification that is built based on these parameters.
      */
     public static Notification buildNotification(
@@ -114,6 +120,9 @@
             pauseActionType = NotificationUmaTracker.ActionType.DOWNLOAD_PAGE_PAUSE;
             resumeActionType = NotificationUmaTracker.ActionType.DOWNLOAD_PAGE_RESUME;
         }
+        // Delete from history is only offered as an option on legacy downloads.
+        @NotificationUmaTracker.ActionType
+        int removeActionType = NotificationUmaTracker.ActionType.DOWNLOAD_DELETE_FROM_HISTORY;
 
         var resources = context.getResources();
         switch (downloadStatus) {
@@ -300,6 +309,32 @@
                 contentText = StringUtils.getFailStatusForUi(downloadUpdate.getFailState());
                 builder.setTimeoutAfter(TIME_OUT_DURATION_IN_MILLIS);
                 break;
+            case DownloadNotificationService.DownloadStatus.DANGEROUS:
+                checkNotNull(downloadUpdate.getContentId());
+                checkArgument(downloadUpdate.getNotificationId() != -1);
+                iconId = R.drawable.dangerous_filled_24dp;
+                contentText = resources.getString(R.string.download_notification_dangerous_blocked);
+                // For dangerous downloads, the action is the same as above (cancel download), but
+                // we use a different string to reflect the user-facing concept of removing a
+                // dangerous download from history, as if the download has not yet been downloaded.
+                Intent removeIntent =
+                        buildActionIntent(
+                                context,
+                                ACTION_DOWNLOAD_CANCEL,
+                                downloadUpdate.getContentId(),
+                                downloadUpdate.getOtrProfileId());
+                removeIntent.putExtra(
+                        NotificationConstants.EXTRA_NOTIFICATION_ID,
+                        downloadUpdate.getNotificationId());
+                builder.addAction(
+                        R.drawable.ic_delete_white_24dp,
+                        resources.getString(
+                                R.string.download_notification_delete_from_history_button),
+                        buildPendingIntentProvider(
+                                context, removeIntent, downloadUpdate.getNotificationId()),
+                        removeActionType);
+                builder.setTimeoutAfter(DANGEROUS_DOWNLOAD_TIME_OUT_DURATION_IN_MILLIS);
+                break;
             default:
                 iconId = -1;
                 contentText = "";
@@ -334,6 +369,9 @@
                             ACTION_NOTIFICATION_CLICKED,
                             null,
                             downloadUpdate.getOtrProfileId());
+            // This is used to decide whether ACTION_NOTIFICATION_CLICKED should open the download
+            // (if download is safe) or open the Download Home list (if download is dangerous).
+            downloadHomeIntent.putExtra(EXTRA_DOWNLOAD_DANGER_TYPE, downloadUpdate.getDangerType());
             builder.setContentIntent(
                     PendingIntentProvider.getService(
                             context,
diff --git a/chrome/android/java/src/org/chromium/chrome/browser/download/DownloadNotificationService.java b/chrome/android/java/src/org/chromium/chrome/browser/download/DownloadNotificationService.java
index 1d3e197..91907896 100644
--- a/chrome/android/java/src/org/chromium/chrome/browser/download/DownloadNotificationService.java
+++ b/chrome/android/java/src/org/chromium/chrome/browser/download/DownloadNotificationService.java
@@ -37,6 +37,7 @@
 import org.chromium.components.browser_ui.notifications.NotificationManagerProxyImpl;
 import org.chromium.components.browser_ui.notifications.NotificationMetadata;
 import org.chromium.components.browser_ui.notifications.NotificationWrapper;
+import org.chromium.components.download.DownloadDangerType;
 import org.chromium.components.offline_items_collection.ContentId;
 import org.chromium.components.offline_items_collection.FailState;
 import org.chromium.components.offline_items_collection.LegacyHelpers;
@@ -62,7 +63,8 @@
         DownloadStatus.PAUSED,
         DownloadStatus.COMPLETED,
         DownloadStatus.CANCELLED,
-        DownloadStatus.FAILED
+        DownloadStatus.FAILED,
+        DownloadStatus.DANGEROUS
     })
     @Retention(RetentionPolicy.SOURCE)
     public @interface DownloadStatus {
@@ -71,6 +73,10 @@
         int COMPLETED = 2;
         int CANCELLED = 3;
         int FAILED = 4;
+        // Download should be displayed as Dangerous from Safe Browsing (has one of several specific
+        // danger types), and the download is not cancelled. Note that this is a more specific
+        // condition than the download's {@link DownloadDangerType} being considered dangerous.
+        int DANGEROUS = 5;
     }
 
     public static final String ACTION_DOWNLOAD_CANCEL =
@@ -91,6 +97,8 @@
             "org.chromium.chrome.browser.download.IS_OFF_THE_RECORD";
     static final String EXTRA_OTR_PROFILE_ID =
             "org.chromium.chrome.browser.download.OTR_PROFILE_ID";
+    static final String EXTRA_DOWNLOAD_DANGER_TYPE =
+            "org.chromium.chrome.browser.download.DOWNLOAD_DANGER_TYPE";
 
     static final String EXTRA_NOTIFICATION_BUNDLE_ICON_ID = "Chrome.NotificationBundleIconIdExtra";
 
@@ -151,7 +159,7 @@
     }
 
     /**
-     * Adds or updates an in-progress download notification.
+     * Adds or updates an in-progress download notification. The download must not be dangerous.
      *
      * @param id The {@link ContentId} of the download.
      * @param fileName File name of the download.
@@ -577,6 +585,67 @@
                 context, DownloadStatus.FAILED, notificationId, notification);
     }
 
+    /**
+     * Add a dangerous download notification.
+     *
+     * @param id The {@link ContentId} of the download.
+     * @param fileName Filename of the download.
+     * @param originalUrl The original url of the downloaded file.
+     * @param shouldPromoteOrigin Whether the origin should be displayed in the notification.
+     * @param otrProfileId The {@link OtrProfileId} of the download. Null if in regular mode.
+     * @param canDownloadWhileMetered Whether the download can happen in metered network.
+     * @param isTransient Whether or not clicking on the download should launch downloads home.
+     * @param dangerType The {@link DownloadDangerType} of the download.
+     */
+    @VisibleForTesting
+    public void notifyDownloadDangerous(
+            ContentId id,
+            String fileName,
+            GURL originalUrl,
+            boolean shouldPromoteOrigin,
+            OtrProfileId otrProfileId,
+            boolean canDownloadWhileMetered,
+            boolean isTransient,
+            @DownloadDangerType int dangerType) {
+        int notificationId = getNotificationId(id);
+        Context context = ContextUtils.getApplicationContext();
+
+        DownloadUpdate downloadUpdate =
+                new DownloadUpdate.Builder()
+                        .setNotificationId(notificationId)
+                        .setContentId(id)
+                        .setFileName(fileName)
+                        .setIsOpenable(false)
+                        .setOtrProfileId(otrProfileId)
+                        .setOriginalUrl(originalUrl)
+                        .setShouldPromoteOrigin(shouldPromoteOrigin)
+                        .setDangerType(dangerType)
+                        .build();
+        Notification notification =
+                DownloadNotificationFactory.buildNotification(
+                        context, DownloadStatus.DANGEROUS, downloadUpdate, notificationId);
+
+        // We must update the shared preference entry to maintain continuity, because the DANGEROUS
+        // state is not a terminal state (the user can validate the download and continue with
+        // download progress).
+        updateNotification(
+                notificationId,
+                notification,
+                id,
+                new DownloadSharedPreferenceEntry(
+                        id,
+                        notificationId,
+                        otrProfileId,
+                        canDownloadWhileMetered,
+                        fileName,
+                        /* isAutoResumable= */ true,
+                        isTransient));
+        mDownloadForegroundServiceManager.updateDownloadStatus(
+                context, DownloadStatus.DANGEROUS, notificationId, notification);
+        mDownloadUserInitiatedTaskManager.updateDownloadStatus(
+                context, DownloadStatus.DANGEROUS, notificationId, notification);
+    }
+
     private Bitmap getLargeNotificationIcon(Bitmap bitmap) {
         Resources resources = ContextUtils.getApplicationContext().getResources();
         int height = (int) resources.getDimension(android.R.dimen.notification_large_icon_height);
diff --git a/chrome/android/java/src/org/chromium/chrome/browser/download/DownloadNotifier.java b/chrome/android/java/src/org/chromium/chrome/browser/download/DownloadNotifier.java
index 7fdc6e7..5ffebab 100644
--- a/chrome/android/java/src/org/chromium/chrome/browser/download/DownloadNotifier.java
+++ b/chrome/android/java/src/org/chromium/chrome/browser/download/DownloadNotifier.java
@@ -29,7 +29,8 @@
     void notifyDownloadFailed(DownloadInfo downloadInfo);
 
     /**
-     * Update the download progress notification.
+     * Update the download progress notification. Depending on the download's danger type, this can
+     * cause the download notification to reflect a Dangerous verdict from Safe Browsing.
      *
      * @param downloadInfo info about in progress download.
      * @param startTimeInMillis the startTime of the download, measured in milliseconds, between the
@@ -48,7 +49,8 @@
     void notifyDownloadPaused(DownloadInfo downloadInfo);
 
     /**
-     * Update the download notification to paused.
+     * Update the download notification to interrupted.
+     *
      * @param downloadInfo info about in progress download.
      * @param isAutoResumable Whether the download can be auto resumed when network is available.
      * @param pendingState Reason download is pending
diff --git a/chrome/android/java/src/org/chromium/chrome/browser/download/DownloadUpdate.java b/chrome/android/java/src/org/chromium/chrome/browser/download/DownloadUpdate.java
index 33572eb5..47a2647 100644
--- a/chrome/android/java/src/org/chromium/chrome/browser/download/DownloadUpdate.java
+++ b/chrome/android/java/src/org/chromium/chrome/browser/download/DownloadUpdate.java
@@ -10,6 +10,7 @@
 import androidx.annotation.Nullable;
 
 import org.chromium.chrome.browser.profiles.OtrProfileId;
+import org.chromium.components.download.DownloadDangerType;
 import org.chromium.components.offline_items_collection.ContentId;
 import org.chromium.components.offline_items_collection.FailState;
 import org.chromium.components.offline_items_collection.OfflineItem.Progress;
@@ -42,6 +43,7 @@
     private final long mTotalBytes;
     private final @FailState int mFailState;
     private final @PendingState int mPendingState;
+    private final @DownloadDangerType int mDangerType;
 
     private DownloadUpdate(Builder builder) {
         this.mContentId = builder.mContentId;
@@ -65,6 +67,7 @@
         this.mTotalBytes = builder.mTotalBytes;
         this.mFailState = builder.mFailState;
         this.mPendingState = builder.mPendingState;
+        this.mDangerType = builder.mDangerType;
     }
 
     public ContentId getContentId() {
@@ -155,6 +158,10 @@
         return mPendingState;
     }
 
+    public @DownloadDangerType int getDangerType() {
+        return mDangerType;
+    }
+
     /** Helper class for building the DownloadUpdate object. */
     public static class Builder {
         private ContentId mContentId;
@@ -178,6 +185,7 @@
         private long mTotalBytes;
         private @FailState int mFailState;
         private @PendingState int mPendingState;
+        private @DownloadDangerType int mDangerType = DownloadDangerType.NOT_DANGEROUS;
 
         public Builder setContentId(ContentId contentId) {
             this.mContentId = contentId;
@@ -282,6 +290,11 @@
             return this;
         }
 
+        public Builder setDangerType(@DownloadDangerType int dangerType) {
+            this.mDangerType = dangerType;
+            return this;
+        }
+
         public DownloadUpdate build() {
             return new DownloadUpdate(this);
         }
diff --git a/chrome/android/java/src/org/chromium/chrome/browser/download/SystemDownloadNotifier.java b/chrome/android/java/src/org/chromium/chrome/browser/download/SystemDownloadNotifier.java
index c9c55ab6..ba42e641 100644
--- a/chrome/android/java/src/org/chromium/chrome/browser/download/SystemDownloadNotifier.java
+++ b/chrome/android/java/src/org/chromium/chrome/browser/download/SystemDownloadNotifier.java
@@ -9,7 +9,9 @@
 
 import org.chromium.components.browser_ui.notifications.PendingNotificationTask;
 import org.chromium.components.browser_ui.notifications.ThrottlingNotificationScheduler;
+import org.chromium.components.browser_ui.util.DownloadUtils;
 import org.chromium.components.offline_items_collection.ContentId;
+import org.chromium.components.offline_items_collection.OfflineItemState;
 import org.chromium.components.offline_items_collection.PendingState;
 
 import java.lang.annotation.Retention;
@@ -24,17 +26,18 @@
     private DownloadNotificationService mDownloadNotificationService;
 
     /**
-     * Notification type for constructing the notification later on.
-     * TODO(qinmin): this is very ugly and it doesn't scale if we want a more general notification
-     * frame work. A better solution is to pass a notification builder or a notification into the
-     * queue, so we don't need the switch statement in updateNotification().
+     * Notification type for constructing the notification later on. TODO(qinmin): this is very ugly
+     * and it doesn't scale if we want a more general notification frame work. A better solution is
+     * to pass a notification builder or a notification into the queue, so we don't need the switch
+     * statement in updateNotification().
      */
     @IntDef({
         NotificationType.PROGRESS,
         NotificationType.PAUSED,
         NotificationType.SUCCEEDED,
         NotificationType.FAILED,
-        NotificationType.INTERRUPTED
+        NotificationType.INTERRUPTED,
+        NotificationType.DANGEROUS,
     })
     @Retention(RetentionPolicy.SOURCE)
     public @interface NotificationType {
@@ -43,6 +46,7 @@
         int SUCCEEDED = 2;
         int FAILED = 3;
         int INTERRUPTED = 4;
+        int DANGEROUS = 5;
     }
 
     /** Information related to a notification. */
@@ -115,9 +119,16 @@
     @Override
     public void notifyDownloadProgress(
             DownloadInfo info, long startTime, boolean canDownloadWhileMetered) {
+        boolean isDangerous =
+                DownloadUtils.shouldDisplayDownloadAsDangerous(
+                        info.getDangerType(), OfflineItemState.IN_PROGRESS);
         NotificationInfo notificationInfo =
                 new NotificationInfo(
-                        NotificationType.PROGRESS, info, PendingNotificationTask.Priority.LOW);
+                        isDangerous ? NotificationType.DANGEROUS : NotificationType.PROGRESS,
+                        info,
+                        isDangerous
+                                ? PendingNotificationTask.Priority.HIGH
+                                : PendingNotificationTask.Priority.LOW);
         notificationInfo.mStartTime = startTime;
         notificationInfo.mCanDownloadWhileMetered = canDownloadWhileMetered;
         addPendingNotification(notificationInfo);
@@ -258,6 +269,18 @@
                                 false,
                                 notificationInfo.mPendingState);
                 break;
+            case NotificationType.DANGEROUS:
+                getDownloadNotificationService()
+                        .notifyDownloadDangerous(
+                                info.getContentId(),
+                                info.getFileName(),
+                                info.getOriginalUrl(),
+                                info.getShouldPromoteOrigin(),
+                                info.getOtrProfileId(),
+                                notificationInfo.mCanDownloadWhileMetered,
+                                info.getIsTransient(),
+                                info.getDangerType());
+                break;
         }
     }
 }
diff --git a/chrome/android/java/src/org/chromium/chrome/browser/download/items/OfflineContentAggregatorNotificationBridgeUi.java b/chrome/android/java/src/org/chromium/chrome/browser/download/items/OfflineContentAggregatorNotificationBridgeUi.java
index 7510e61..2d5811e9 100644
--- a/chrome/android/java/src/org/chromium/chrome/browser/download/items/OfflineContentAggregatorNotificationBridgeUi.java
+++ b/chrome/android/java/src/org/chromium/chrome/browser/download/items/OfflineContentAggregatorNotificationBridgeUi.java
@@ -9,6 +9,7 @@
 import org.chromium.chrome.browser.download.DownloadNotifier;
 import org.chromium.chrome.browser.download.DownloadServiceDelegate;
 import org.chromium.chrome.browser.profiles.OtrProfileId;
+import org.chromium.components.browser_ui.util.DownloadUtils;
 import org.chromium.components.offline_items_collection.ContentId;
 import org.chromium.components.offline_items_collection.LegacyHelpers;
 import org.chromium.components.offline_items_collection.OfflineContentProvider;
@@ -193,6 +194,11 @@
 
     private boolean needsVisualsForUi(OfflineItem item) {
         if (item.ignoreVisuals) return false;
+        // A dangerous download doesn't need special visuals. They will always show the same
+        // "dangerous" iconography.
+        if (DownloadUtils.shouldDisplayDownloadAsDangerous(item.dangerType, item.state)) {
+            return false;
+        }
         switch (item.state) {
             case OfflineItemState.IN_PROGRESS:
             case OfflineItemState.PENDING:
@@ -209,6 +215,9 @@
 
     private boolean shouldCacheVisuals(OfflineItem item) {
         if (item.ignoreVisuals) return false;
+        if (DownloadUtils.shouldDisplayDownloadAsDangerous(item.dangerType, item.state)) {
+            return false;
+        }
         switch (item.state) {
             case OfflineItemState.IN_PROGRESS:
             case OfflineItemState.PENDING:
diff --git a/chrome/android/java/src/org/chromium/chrome/browser/init/AsyncInitTaskRunner.java b/chrome/android/java/src/org/chromium/chrome/browser/init/AsyncInitTaskRunner.java
index f527664b..f703bbb 100644
--- a/chrome/android/java/src/org/chromium/chrome/browser/init/AsyncInitTaskRunner.java
+++ b/chrome/android/java/src/org/chromium/chrome/browser/init/AsyncInitTaskRunner.java
@@ -11,7 +11,6 @@
 import org.chromium.base.ContextUtils;
 import org.chromium.base.ThreadUtils;
 import org.chromium.base.library_loader.LibraryLoader;
-import org.chromium.base.library_loader.LibraryPrefetcher;
 import org.chromium.base.library_loader.ProcessInitException;
 import org.chromium.base.task.PostTask;
 import org.chromium.base.task.TaskTraits;
@@ -42,11 +41,6 @@
         return VersionInfo.isOfficialBuild();
     }
 
-    @VisibleForTesting
-    void prefetchLibrary() {
-        LibraryPrefetcher.asyncPrefetchLibrariesToMemory();
-    }
-
     private class FetchSeedTask implements Runnable {
         private final String mRestrictMode;
         private final String mMilestone;
@@ -149,17 +143,6 @@
         try {
             LibraryLoader.getInstance().getMediator().ensureInitializedInMainProcess();
             LibraryLoader.getInstance().ensureInitialized();
-            // The prefetch is done after the library load for two reasons:
-            // - It is easier to know the library location after it has
-            // been loaded.
-            // - Testing has shown that this gives the best compromise,
-            // by avoiding performance regression on any tested
-            // device, and providing performance improvement on
-            // some. Doing it earlier delays UI inflation and more
-            // generally startup on some devices, most likely by
-            // competing for IO.
-            // For experimental results, see http://crbug.com/460438.
-            prefetchLibrary();
         } catch (ProcessInitException e) {
             return e;
         }
diff --git a/chrome/android/java/src/org/chromium/chrome/browser/init/ChromeBrowserInitializer.java b/chrome/android/java/src/org/chromium/chrome/browser/init/ChromeBrowserInitializer.java
index 3f0ee893..5407dbe 100644
--- a/chrome/android/java/src/org/chromium/chrome/browser/init/ChromeBrowserInitializer.java
+++ b/chrome/android/java/src/org/chromium/chrome/browser/init/ChromeBrowserInitializer.java
@@ -12,7 +12,6 @@
 import org.chromium.base.ThreadUtils;
 import org.chromium.base.TraceEvent;
 import org.chromium.base.library_loader.LibraryLoader;
-import org.chromium.base.library_loader.LibraryPrefetcher;
 import org.chromium.base.library_loader.LibraryProcessType;
 import org.chromium.base.task.ChainedTasks;
 import org.chromium.base.task.TaskTraits;
@@ -273,7 +272,6 @@
             StrictMode.ThreadPolicy oldPolicy = StrictMode.allowThreadDiskReads();
             LibraryLoader.getInstance().ensureInitialized();
             StrictMode.setThreadPolicy(oldPolicy);
-            LibraryPrefetcher.asyncPrefetchLibrariesToMemory();
             getBrowserStartupController()
                     .startBrowserProcessesSync(
                             LibraryProcessType.PROCESS_BROWSER,
diff --git a/chrome/android/java/src/org/chromium/chrome/browser/ntp/IncognitoNewTabPageView.java b/chrome/android/java/src/org/chromium/chrome/browser/ntp/IncognitoNewTabPageView.java
index c349e6f..49374a6 100644
--- a/chrome/android/java/src/org/chromium/chrome/browser/ntp/IncognitoNewTabPageView.java
+++ b/chrome/android/java/src/org/chromium/chrome/browser/ntp/IncognitoNewTabPageView.java
@@ -15,6 +15,8 @@
 
 import androidx.annotation.ColorInt;
 
+import org.chromium.build.annotations.Initializer;
+import org.chromium.build.annotations.NullMarked;
 import org.chromium.chrome.R;
 import org.chromium.components.browser_ui.widget.FadingShadow;
 import org.chromium.components.browser_ui.widget.FadingShadowView;
@@ -22,6 +24,7 @@
 import org.chromium.ui.base.ViewUtils;
 
 /** The New Tab Page for use in the incognito profile. */
+@NullMarked
 public class IncognitoNewTabPageView extends FrameLayout {
     private IncognitoNewTabPageManager mManager;
     private boolean mFirstShow = true;
@@ -90,6 +93,17 @@
                 });
     }
 
+    /**
+     * Initialize the incognito New Tab Page.
+     * @param manager The manager that handles external dependencies of the view.
+     */
+    @Initializer
+    void initialize(IncognitoNewTabPageManager manager) {
+        mManager = manager;
+        inflateConditionalLayouts();
+        mManager.initCookieControlsManager();
+    }
+
     private void inflateConditionalLayouts() {
         ViewStub viewStub = findViewById(R.id.incognito_description_layout_stub);
         viewStub.setLayoutResource(R.layout.incognito_description_layout);
@@ -124,16 +138,6 @@
         }
     }
 
-    /**
-     * Initialize the incognito New Tab Page.
-     * @param manager The manager that handles external dependencies of the view.
-     */
-    void initialize(IncognitoNewTabPageManager manager) {
-        mManager = manager;
-        inflateConditionalLayouts();
-        mManager.initCookieControlsManager();
-    }
-
     /** @return The IncognitoNewTabPageManager associated with this IncognitoNewTabPageView. */
     protected IncognitoNewTabPageManager getManager() {
         return mManager;
diff --git a/chrome/android/java/src/org/chromium/chrome/browser/ntp/TitleUtil.java b/chrome/android/java/src/org/chromium/chrome/browser/ntp/TitleUtil.java
index e880d937..62a0aa51 100644
--- a/chrome/android/java/src/org/chromium/chrome/browser/ntp/TitleUtil.java
+++ b/chrome/android/java/src/org/chromium/chrome/browser/ntp/TitleUtil.java
@@ -4,9 +4,9 @@
 
 package org.chromium.chrome.browser.ntp;
 
-
 import android.text.TextUtils;
 
+import org.chromium.build.annotations.Contract;
 import org.chromium.build.annotations.NullMarked;
 import org.chromium.build.annotations.Nullable;
 import org.chromium.url.GURL;
@@ -20,6 +20,7 @@
      * Returns a title suitable for display for a link. If |title| is non-empty, this simply returns
      * it. Otherwise, returns a shortened form of the URL.
      */
+    @Contract("!null, _ -> !null")
     public static @Nullable String getTitleForDisplay(@Nullable String title, @Nullable GURL url) {
         if (!TextUtils.isEmpty(title) || url == null || GURL.isEmptyOrInvalid(url)) {
             return title;
diff --git a/chrome/android/java/src/org/chromium/chrome/browser/privacy_sandbox/ChromeTrackingProtectionDelegate.java b/chrome/android/java/src/org/chromium/chrome/browser/privacy_sandbox/ChromeTrackingProtectionDelegate.java
index 8825232..2ceb212 100644
--- a/chrome/android/java/src/org/chromium/chrome/browser/privacy_sandbox/ChromeTrackingProtectionDelegate.java
+++ b/chrome/android/java/src/org/chromium/chrome/browser/privacy_sandbox/ChromeTrackingProtectionDelegate.java
@@ -90,6 +90,11 @@
     }
 
     @Override
+    public boolean isDisplayWildcardInContentSettingsEnabled() {
+        return ChromeFeatureList.isEnabled(ChromeFeatureList.DISPLAY_WILDCARD_CONTENT_SETTINGS);
+    }
+
+    @Override
     public BrowserContextHandle getBrowserContext() {
         return mProfile;
     }
diff --git a/chrome/android/java/src/org/chromium/chrome/browser/site_settings/ChromeSiteSettingsDelegate.java b/chrome/android/java/src/org/chromium/chrome/browser/site_settings/ChromeSiteSettingsDelegate.java
index e99ec0e..0387351 100644
--- a/chrome/android/java/src/org/chromium/chrome/browser/site_settings/ChromeSiteSettingsDelegate.java
+++ b/chrome/android/java/src/org/chromium/chrome/browser/site_settings/ChromeSiteSettingsDelegate.java
@@ -199,6 +199,11 @@
     }
 
     @Override
+    public boolean isDisplayWildcardInContentSettingsEnabled() {
+        return ChromeFeatureList.isEnabled(ChromeFeatureList.DISPLAY_WILDCARD_CONTENT_SETTINGS);
+    }
+
+    @Override
     public void getChannelIdForOrigin(String origin, Callback<String> callback) {
         SiteChannelsManager.getInstance().getChannelIdForOriginAsync(origin, callback);
     }
diff --git a/chrome/android/java/src/org/chromium/chrome/browser/suggestions/mostvisited/MostVisitedSites.java b/chrome/android/java/src/org/chromium/chrome/browser/suggestions/mostvisited/MostVisitedSites.java
index 0f03c44f..d8e752a 100644
--- a/chrome/android/java/src/org/chromium/chrome/browser/suggestions/mostvisited/MostVisitedSites.java
+++ b/chrome/android/java/src/org/chromium/chrome/browser/suggestions/mostvisited/MostVisitedSites.java
@@ -4,10 +4,10 @@
 
 package org.chromium.chrome.browser.suggestions.mostvisited;
 
-import androidx.annotation.Nullable;
-
 import org.jni_zero.CalledByNative;
 
+import org.chromium.build.annotations.NullMarked;
+import org.chromium.build.annotations.Nullable;
 import org.chromium.chrome.browser.suggestions.SiteSuggestion;
 import org.chromium.chrome.browser.suggestions.tile.Tile;
 import org.chromium.url.GURL;
@@ -15,6 +15,7 @@
 import java.util.List;
 
 /** Methods to provide most recent urls, titles and thumbnails. */
+@NullMarked
 public interface MostVisitedSites extends CustomLinkOperations {
     /** An interface for handling events in {@link MostVisitedSites}. */
     interface Observer {
@@ -49,8 +50,7 @@
          * @return The raw URL of the currently set home page.
          */
         @CalledByNative("HomepageClient")
-        @Nullable
-        String getHomepageUrl();
+        @Nullable String getHomepageUrl();
     }
 
     /** This instance must not be used after calling destroy(). */
diff --git a/chrome/android/java/src/org/chromium/chrome/browser/suggestions/mostvisited/MostVisitedSitesMetadataUtils.java b/chrome/android/java/src/org/chromium/chrome/browser/suggestions/mostvisited/MostVisitedSitesMetadataUtils.java
index 34a4a89..6347207 100644
--- a/chrome/android/java/src/org/chromium/chrome/browser/suggestions/mostvisited/MostVisitedSitesMetadataUtils.java
+++ b/chrome/android/java/src/org/chromium/chrome/browser/suggestions/mostvisited/MostVisitedSitesMetadataUtils.java
@@ -14,6 +14,8 @@
 import org.chromium.base.ResettersForTesting;
 import org.chromium.base.StreamUtil;
 import org.chromium.base.task.AsyncTask;
+import org.chromium.build.annotations.NullMarked;
+import org.chromium.build.annotations.Nullable;
 import org.chromium.chrome.browser.suggestions.SiteSuggestion;
 import org.chromium.chrome.browser.suggestions.tile.Tile;
 import org.chromium.url.GURL;
@@ -30,6 +32,7 @@
 import java.util.List;
 
 /** This class provides methods to write/read most visited sites related info to devices. */
+@NullMarked
 public class MostVisitedSitesMetadataUtils {
     private static final String TAG = "TopSites";
 
@@ -48,12 +51,12 @@
     /** Current version of the cache, to be updated when the cache structure or meaning changes. */
     private static final int CACHE_VERSION = 1;
 
-    private static File sStateDirectory;
+    private static @Nullable File sStateDirectory;
     private static final String STATE_DIR_NAME = "top_sites";
     private static final String STATE_FILENAME = "top_sites";
 
-    private Runnable mCurrentTask;
-    private Runnable mPendingTask;
+    private @Nullable Runnable mCurrentTask;
+    private @Nullable Runnable mPendingTask;
 
     private int mPendingTaskTilesNumForTesting;
 
@@ -95,7 +98,7 @@
      * stale files and throw an exception, then the UI thread will know there is no cache file and
      * show something else.
      */
-    public static List<Tile> restoreFileToSuggestionLists() throws IOException {
+    public static @Nullable List<Tile> restoreFileToSuggestionLists() throws IOException {
         List<Tile> tiles;
         try {
             byte[] listData = restoreFileToBytes(getOrCreateTopSitesDirectory(), STATE_FILENAME);
@@ -114,7 +117,7 @@
      *     deserialize data, remove the stale files and throw an exception, then the UI thread will
      *     know there is no cache file and show something else.
      */
-    public static List<Tile> restoreFileToSuggestionListsOnUiThread() throws IOException {
+    public static @Nullable List<Tile> restoreFileToSuggestionListsOnUiThread() throws IOException {
         return restoreFileToSuggestionLists();
     }
 
@@ -126,9 +129,9 @@
      */
     @VisibleForTesting(otherwise = VisibleForTesting.PRIVATE)
     public static void saveSuggestionListsToFile(List<Tile> suggestionTiles, Runnable callback) {
-        new AsyncTask<Void>() {
+        new AsyncTask<@Nullable Void>() {
             @Override
-            protected Void doInBackground() {
+            protected @Nullable Void doInBackground() {
                 try {
                     byte[] listData = serializeTopSitesData(suggestionTiles);
                     saveSuggestionListsToFile(
@@ -140,7 +143,7 @@
             }
 
             @Override
-            protected void onPostExecute(Void aVoid) {
+            protected void onPostExecute(@Nullable Void aVoid) {
                 if (callback != null) {
                     callback.run();
                 }
@@ -175,7 +178,8 @@
         return output.toByteArray();
     }
 
-    private static List<Tile> deserializeTopSitesData(byte[] listData) throws IOException {
+    private static @Nullable List<Tile> deserializeTopSitesData(byte[] listData)
+            throws IOException {
         if (listData == null || listData.length == 0) {
             return null;
         }
@@ -280,7 +284,7 @@
         }
     }
 
-    public Runnable getCurrentTaskForTesting() {
+    public @Nullable Runnable getCurrentTaskForTesting() {
         return mCurrentTask;
     }
 
diff --git a/chrome/android/java/src/org/chromium/chrome/browser/suggestions/tile/SuggestionsTileView.java b/chrome/android/java/src/org/chromium/chrome/browser/suggestions/tile/SuggestionsTileView.java
index beecef35..f6110ec 100644
--- a/chrome/android/java/src/org/chromium/chrome/browser/suggestions/tile/SuggestionsTileView.java
+++ b/chrome/android/java/src/org/chromium/chrome/browser/suggestions/tile/SuggestionsTileView.java
@@ -8,6 +8,8 @@
 import android.content.res.Resources;
 import android.util.AttributeSet;
 
+import org.chromium.build.annotations.Initializer;
+import org.chromium.build.annotations.NullMarked;
 import org.chromium.chrome.R;
 import org.chromium.chrome.browser.ntp.TitleUtil;
 import org.chromium.chrome.browser.suggestions.SiteSuggestion;
@@ -18,6 +20,7 @@
  * The view for a site suggestion tile. Displays the title of the site beneath a large icon. If a
  * large icon isn't available, displays a rounded rectangle with a single letter in its place.
  */
+@NullMarked
 public class SuggestionsTileView extends TileView {
     /** The data currently associated to this tile. */
     private SiteSuggestion mData;
@@ -40,6 +43,7 @@
      * @param tile The tile that holds the data to populate this view.
      * @param titleLines The number of text lines to use for the tile title.
      */
+    @Initializer
     public void initialize(Tile tile, int titleLines) {
         super.initialize(
                 TitleUtil.getTitleForDisplay(tile.getTitle(), tile.getUrl()),
diff --git a/chrome/android/java/src/org/chromium/chrome/browser/suggestions/tile/TileUtils.java b/chrome/android/java/src/org/chromium/chrome/browser/suggestions/tile/TileUtils.java
index a1425a7..f23a8fa9 100644
--- a/chrome/android/java/src/org/chromium/chrome/browser/suggestions/tile/TileUtils.java
+++ b/chrome/android/java/src/org/chromium/chrome/browser/suggestions/tile/TileUtils.java
@@ -6,6 +6,7 @@
 
 import android.text.TextUtils;
 
+import org.chromium.build.annotations.NullMarked;
 import org.chromium.chrome.browser.profiles.Profile;
 import org.chromium.chrome.browser.search_engines.TemplateUrlServiceFactory;
 import org.chromium.chrome.browser.suggestions.SuggestionsConfig;
@@ -19,6 +20,7 @@
 import java.util.Set;
 
 /** Utility class for {@link Tile}s related queries or operations. */
+@NullMarked
 public class TileUtils {
     private static final Set<String> CUSTOM_TILE_SCHEMES =
             new HashSet<>(
diff --git a/chrome/android/java/src/org/chromium/chrome/browser/tab/TabArchiverImpl.java b/chrome/android/java/src/org/chromium/chrome/browser/tab/TabArchiverImpl.java
index a1646b8b..f3e4730 100644
--- a/chrome/android/java/src/org/chromium/chrome/browser/tab/TabArchiverImpl.java
+++ b/chrome/android/java/src/org/chromium/chrome/browser/tab/TabArchiverImpl.java
@@ -253,21 +253,14 @@
 
         if (ChromeFeatureList.sAndroidTabDeclutterArchiveTabGroups.isEnabled()
                 && mTabGroupSyncService != null) {
-            int archivedTabGroups = 0;
             for (Token tabGroupId : archivedTabGroupIds) {
                 LocalTabGroupId localTabGroupId = new LocalTabGroupId(tabGroupId);
                 SavedTabGroup savedTabGroup = mTabGroupSyncService.getGroup(localTabGroupId);
                 if (savedTabGroup != null && savedTabGroup.syncId != null) {
                     mTabGroupSyncService.updateArchivalStatus(
                             savedTabGroup.syncId, /* archivalStatus= */ true);
-                    archivedTabGroups++;
-                    RecordHistogram.recordCount1000Histogram(
-                            "TabGroups.TabGroupDeclutter.ArchivedTabGroupTabCount",
-                            savedTabGroup.savedTabs.size());
                 }
             }
-            RecordHistogram.recordCount1000Histogram(
-                    "TabGroups.TabGroupDeclutter.ArchivedTabGroups", archivedTabGroups);
         }
 
         int tabCount = tabs.size();
diff --git a/chrome/android/java/src/org/chromium/chrome/browser/tabmodel/ArchivedTabModelSelectorImpl.java b/chrome/android/java/src/org/chromium/chrome/browser/tabmodel/ArchivedTabModelSelectorImpl.java
index 9109900..a6e4331 100644
--- a/chrome/android/java/src/org/chromium/chrome/browser/tabmodel/ArchivedTabModelSelectorImpl.java
+++ b/chrome/android/java/src/org/chromium/chrome/browser/tabmodel/ArchivedTabModelSelectorImpl.java
@@ -82,9 +82,9 @@
                             assumeNonNull(regularFilter);
                             return regularFilter;
                         });
-        // TODO(crbug.com/331688951): Consider using a custom TabModel.
-        TabModelImpl normalModel =
-                new TabModelImpl(
+
+        TabModelHolder normalModelHolder =
+                TabModelHolderFactory.createTabModelHolder(
                         mProfile,
                         ActivityType.TABBED,
                         tabCreator,
@@ -97,41 +97,26 @@
                         this,
                         tabRemover,
                         /* supportUndo= */ true,
-                        /* isArchivedTabModel= */ true) {
-                    @Override
-                    public int index() {
-                        // Intentional noop.
-                        return INVALID_TAB_INDEX;
-                    }
-
-                    @Override
-                    public void setIndex(int i, final @TabSelectionType int type) {
-                        // Intentional noop.
-                    }
-
-                    @Override
-                    public @Nullable Tab getNextTabIfClosed(int id, boolean uponExit) {
-                        return null;
-                    }
-                };
+                        /* isArchivedTabModel= */ true,
+                        ArchivedTabModelSelectorImpl::createTabUngrouper);
         if (tabCreator instanceof NeedsTabModel needsTabModel) {
-            needsTabModel.setTabModel(normalModel);
+            needsTabModel.setTabModel(normalModelHolder.tabModel);
         }
 
-        onNativeLibraryReadyInternal(
-                tabContentProvider,
-                normalModel,
-                EmptyTabModel.getInstance(/* isIncognito= */ true));
+        IncognitoTabModelHolder incognitoModelHolder =
+                TabModelHolderFactory.createEmptyIncognitoTabModelHolder();
+
+        onNativeLibraryReadyInternal(tabContentProvider, normalModelHolder, incognitoModelHolder);
     }
 
     @EnsuresNonNull("mTabContentManager")
     @VisibleForTesting
     void onNativeLibraryReadyInternal(
             TabContentManager tabContentProvider,
-            TabModelInternal normalModel,
-            IncognitoTabModelInternal incognitoModel) {
+            TabModelHolder normalModelHolder,
+            IncognitoTabModelHolder incognitoModelHolder) {
         mTabContentManager = tabContentProvider;
-        initialize(normalModel, incognitoModel, ArchivedTabModelSelectorImpl::createTabUngrouper);
+        initialize(normalModelHolder, incognitoModelHolder);
 
         new TabModelSelectorTabObserver(this) {
             @Override
@@ -158,12 +143,12 @@
     /**
      * Exposed to allow tests to initialize the selector with different tab models.
      *
-     * @param normalModel The normal tab model.
-     * @param incognitoModel The incognito tab model.
+     * @param normalModelHolder The normal tab model.
+     * @param incognitoModelHolder The incognito tab model.
      */
     public void initializeForTesting(
-            TabModelInternal normalModel, IncognitoTabModelInternal incognitoModel) {
-        initialize(normalModel, incognitoModel, ArchivedTabModelSelectorImpl::createTabUngrouper);
+            TabModelHolder normalModelHolder, IncognitoTabModelHolder incognitoModelHolder) {
+        initialize(normalModelHolder, incognitoModelHolder);
     }
 
     @Override
diff --git a/chrome/android/java/src/org/chromium/chrome/browser/tabmodel/IncognitoTabModelImplCreator.java b/chrome/android/java/src/org/chromium/chrome/browser/tabmodel/IncognitoTabModelImplCreator.java
index 2c5d61ed..3accc7e 100644
--- a/chrome/android/java/src/org/chromium/chrome/browser/tabmodel/IncognitoTabModelImplCreator.java
+++ b/chrome/android/java/src/org/chromium/chrome/browser/tabmodel/IncognitoTabModelImplCreator.java
@@ -8,6 +8,7 @@
 
 import org.chromium.build.annotations.NullMarked;
 import org.chromium.chrome.browser.flags.ActivityType;
+import org.chromium.chrome.browser.flags.ChromeFeatureList;
 import org.chromium.chrome.browser.profiles.ProfileProvider;
 import org.chromium.chrome.browser.tab_ui.TabContentManager;
 import org.chromium.chrome.browser.tabmodel.IncognitoTabModelImpl.IncognitoTabModelDelegate;
@@ -71,6 +72,14 @@
 
     @Override
     public TabModelInternal createTabModel() {
+        if (ChromeFeatureList.sTabCollectionAndroid.isEnabled()) {
+            return new TabCollectionTabModelImpl(
+                    assumeNonNull(mProfileProvider.getOffTheRecordProfile(true)),
+                    mActivityType,
+                    /* isArchivedTabModel= */ false,
+                    mRegularTabCreator,
+                    mIncognitoTabCreator);
+        }
         return new TabModelImpl(
                 assumeNonNull(mProfileProvider.getOffTheRecordProfile(true)),
                 mActivityType,
diff --git a/chrome/android/java/src/org/chromium/chrome/browser/tabmodel/TabCollectionTabModelImpl.java b/chrome/android/java/src/org/chromium/chrome/browser/tabmodel/TabCollectionTabModelImpl.java
index 5d07121..371ffcb 100644
--- a/chrome/android/java/src/org/chromium/chrome/browser/tabmodel/TabCollectionTabModelImpl.java
+++ b/chrome/android/java/src/org/chromium/chrome/browser/tabmodel/TabCollectionTabModelImpl.java
@@ -77,11 +77,11 @@
             boolean isArchivedTabModel,
             TabCreator regularTabCreator,
             TabCreator incognitoTabCreator) {
-        super(profile, activityType, isArchivedTabModel);
+        super(profile);
         mRegularTabCreator = regularTabCreator;
         mIncognitoTabCreator = incognitoTabCreator;
 
-        initializeNative(profile);
+        initializeNative(activityType, isArchivedTabModel);
     }
 
     @Override
@@ -254,11 +254,11 @@
     // TabModelJniBridge overrides.
 
     @Override
-    public void initializeNative(Profile profile) {
-        super.initializeNative(profile);
+    public void initializeNative(@ActivityType int activityType, boolean isArchivedTabModel) {
+        super.initializeNative(activityType, isArchivedTabModel);
         assert mNativeTabCollectionTabModelImplPtr == 0;
         mNativeTabCollectionTabModelImplPtr =
-                TabCollectionTabModelImplJni.get().init(this, profile);
+                TabCollectionTabModelImplJni.get().init(this, getProfile());
     }
 
     @Override
diff --git a/chrome/android/java/src/org/chromium/chrome/browser/tabmodel/TabModelHolderFactory.java b/chrome/android/java/src/org/chromium/chrome/browser/tabmodel/TabModelHolderFactory.java
new file mode 100644
index 0000000..7994355
--- /dev/null
+++ b/chrome/android/java/src/org/chromium/chrome/browser/tabmodel/TabModelHolderFactory.java
@@ -0,0 +1,256 @@
+// Copyright 2025 The Chromium Authors
+// Use of this source code is governed by a BSD-style license that can be
+// found in the LICENSE file.
+
+package org.chromium.chrome.browser.tabmodel;
+
+import org.chromium.build.annotations.NullMarked;
+import org.chromium.chrome.browser.flags.ActivityType;
+import org.chromium.chrome.browser.flags.ChromeFeatureList;
+import org.chromium.chrome.browser.profiles.Profile;
+import org.chromium.chrome.browser.profiles.ProfileProvider;
+import org.chromium.chrome.browser.tab_ui.TabContentManager;
+import org.chromium.chrome.browser.tabmodel.NextTabPolicy.NextTabPolicySupplier;
+
+/**
+ * Helper to create {@link TabModelHolder} and {@link IncognitoTabModelHolder}. This is a shim class
+ * to allow seamlessly swapping the implementation between legacy {@link TabModelImpl} and {@link
+ * TabGroupModelImpl} and the new {@link TabCollectionTabModelImpl}.
+ */
+@NullMarked
+public class TabModelHolderFactory {
+    private TabModelHolderFactory() {}
+
+    /** Creates a regular mode {@link TabModelHolder}, {@see TabModelImpl}'s constructor. */
+    public static TabModelHolder createTabModelHolder(
+            Profile profile,
+            @ActivityType int activityType,
+            TabCreator regularTabCreator,
+            TabCreator incognitoTabCreator,
+            TabModelOrderController orderController,
+            TabContentManager tabContentManager,
+            NextTabPolicySupplier nextTabPolicySupplier,
+            AsyncTabParamsManager asyncTabParamsManager,
+            TabModelDelegate modelDelegate,
+            TabRemover tabRemover,
+            boolean supportUndo,
+            boolean isArchivedTabModel,
+            TabUngrouperFactory tabUngrouperFactory) {
+        if (ChromeFeatureList.sTabCollectionAndroid.isEnabled()) {
+            return createCollectionTabModelHolder(
+                    profile,
+                    activityType,
+                    isArchivedTabModel,
+                    regularTabCreator,
+                    incognitoTabCreator);
+        }
+        return createLegacyTabModelHolder(
+                profile,
+                activityType,
+                regularTabCreator,
+                incognitoTabCreator,
+                orderController,
+                tabContentManager,
+                nextTabPolicySupplier,
+                asyncTabParamsManager,
+                modelDelegate,
+                tabRemover,
+                supportUndo,
+                isArchivedTabModel,
+                tabUngrouperFactory);
+    }
+
+    /**
+     * Creates an incognito mode {@link IncognitoTabModelHolder}, {@see
+     * IncognitoTabModelImplCreator}'s constructor.
+     */
+    public static IncognitoTabModelHolder createIncognitoTabModelHolder(
+            ProfileProvider profileProvider,
+            TabCreator regularTabCreator,
+            TabCreator incognitoTabCreator,
+            TabModelOrderController orderController,
+            TabContentManager tabContentManager,
+            NextTabPolicySupplier nextTabPolicySupplier,
+            AsyncTabParamsManager asyncTabParamsManager,
+            @ActivityType int activityType,
+            TabModelDelegate modelDelegate,
+            TabRemover tabRemover,
+            TabUngrouperFactory tabUngrouperFactory) {
+        if (ChromeFeatureList.sTabCollectionAndroid.isEnabled()) {
+            return createCollectionIncognitoTabModelHolder(
+                    profileProvider,
+                    regularTabCreator,
+                    incognitoTabCreator,
+                    orderController,
+                    tabContentManager,
+                    nextTabPolicySupplier,
+                    asyncTabParamsManager,
+                    activityType,
+                    modelDelegate,
+                    tabRemover);
+        }
+        return createLegacyIncognitoTabModelHolder(
+                profileProvider,
+                regularTabCreator,
+                incognitoTabCreator,
+                orderController,
+                tabContentManager,
+                nextTabPolicySupplier,
+                asyncTabParamsManager,
+                activityType,
+                modelDelegate,
+                tabRemover,
+                tabUngrouperFactory);
+    }
+
+    /** Creates an empty {@link IncognitoTabModelHolder}. */
+    public static IncognitoTabModelHolder createEmptyIncognitoTabModelHolder() {
+        EmptyTabModel model = EmptyTabModel.getInstance(/* isIncognito= */ true);
+        return new IncognitoTabModelHolder(model, new IncognitoTabGroupModelFilterImpl(model));
+    }
+
+    private static TabModelHolder createCollectionTabModelHolder(
+            Profile profile,
+            @ActivityType int activityType,
+            boolean isArchivedTabModel,
+            TabCreator regularTabCreator,
+            TabCreator incognitoTabCreator) {
+        TabCollectionTabModelImpl regularTabModel =
+                new TabCollectionTabModelImpl(
+                        profile,
+                        activityType,
+                        isArchivedTabModel,
+                        regularTabCreator,
+                        incognitoTabCreator);
+
+        return new TabModelHolder(regularTabModel, regularTabModel);
+    }
+
+    private static IncognitoTabModelHolder createCollectionIncognitoTabModelHolder(
+            ProfileProvider profileProvider,
+            TabCreator regularTabCreator,
+            TabCreator incognitoTabCreator,
+            TabModelOrderController orderController,
+            TabContentManager tabContentManager,
+            NextTabPolicySupplier nextTabPolicySupplier,
+            AsyncTabParamsManager asyncTabParamsManager,
+            @ActivityType int activityType,
+            TabModelDelegate modelDelegate,
+            TabRemover tabRemover) {
+        IncognitoTabModelImplCreator incognitoCreator =
+                new IncognitoTabModelImplCreator(
+                        profileProvider,
+                        regularTabCreator,
+                        incognitoTabCreator,
+                        orderController,
+                        tabContentManager,
+                        nextTabPolicySupplier,
+                        asyncTabParamsManager,
+                        activityType,
+                        modelDelegate,
+                        tabRemover);
+        IncognitoTabModelImpl incognitoTabModel = new IncognitoTabModelImpl(incognitoCreator);
+
+        return new IncognitoTabModelHolder(
+                incognitoTabModel, new IncognitoTabGroupModelFilterImpl(incognitoTabModel));
+    }
+
+    private static TabModelHolder createLegacyTabModelHolder(
+            Profile profile,
+            @ActivityType int activityType,
+            TabCreator regularTabCreator,
+            TabCreator incognitoTabCreator,
+            TabModelOrderController orderController,
+            TabContentManager tabContentManager,
+            NextTabPolicySupplier nextTabPolicySupplier,
+            AsyncTabParamsManager asyncTabParamsManager,
+            TabModelDelegate modelDelegate,
+            TabRemover tabRemover,
+            boolean supportUndo,
+            boolean isArchivedTabModel,
+            TabUngrouperFactory tabUngrouperFactory) {
+        TabModelImpl regularTabModel =
+                new TabModelImpl(
+                        profile,
+                        activityType,
+                        regularTabCreator,
+                        incognitoTabCreator,
+                        orderController,
+                        tabContentManager,
+                        nextTabPolicySupplier,
+                        asyncTabParamsManager,
+                        modelDelegate,
+                        tabRemover,
+                        supportUndo,
+                        isArchivedTabModel);
+
+        return new TabModelHolder(
+                regularTabModel,
+                createLegacyTabGroupModelFilterInternal(regularTabModel, tabUngrouperFactory));
+    }
+
+    private static IncognitoTabModelHolder createLegacyIncognitoTabModelHolder(
+            ProfileProvider profileProvider,
+            TabCreator regularTabCreator,
+            TabCreator incognitoTabCreator,
+            TabModelOrderController orderController,
+            TabContentManager tabContentManager,
+            NextTabPolicySupplier nextTabPolicySupplier,
+            AsyncTabParamsManager asyncTabParamsManager,
+            @ActivityType int activityType,
+            TabModelDelegate modelDelegate,
+            TabRemover tabRemover,
+            TabUngrouperFactory tabUngrouperFactory) {
+        IncognitoTabModelImplCreator incognitoCreator =
+                new IncognitoTabModelImplCreator(
+                        profileProvider,
+                        regularTabCreator,
+                        incognitoTabCreator,
+                        orderController,
+                        tabContentManager,
+                        nextTabPolicySupplier,
+                        asyncTabParamsManager,
+                        activityType,
+                        modelDelegate,
+                        tabRemover);
+        IncognitoTabModelImpl incognitoTabModel = new IncognitoTabModelImpl(incognitoCreator);
+
+        return new IncognitoTabModelHolder(
+                incognitoTabModel,
+                createLegacyTabGroupModelFilterInternal(incognitoTabModel, tabUngrouperFactory));
+    }
+
+    private static TabGroupModelFilterInternal createLegacyTabGroupModelFilterInternal(
+            TabModelInternal tabModel, TabUngrouperFactory tabUngrouperFactory) {
+        boolean isIncognitoBranded = tabModel.isIncognitoBranded();
+        TabGroupModelFilter[] filterHolder = new TabGroupModelFilter[1];
+        TabUngrouper tabUngrouper =
+                tabUngrouperFactory.create(isIncognitoBranded, () -> filterHolder[0]);
+        TabGroupModelFilterInternal filter = new TabGroupModelFilterImpl(tabModel, tabUngrouper);
+        filterHolder[0] = filter;
+        return filter;
+    }
+
+    /** Creates a legacy {@link TabModelHolder} for testing. */
+    public static TabModelHolder createTabModelHolderForTesting(TabModelInternal tabModelInternal) {
+        return new TabModelHolder(
+                tabModelInternal,
+                createLegacyTabGroupModelFilterInternalForTesting(tabModelInternal));
+    }
+
+    /** Creates a legacy {@link IncognitoTabModelHolder} for testing. */
+    public static IncognitoTabModelHolder createIncognitoTabModelHolderForTesting(
+            IncognitoTabModelInternal incognitoTabModelInternal) {
+        return new IncognitoTabModelHolder(
+                incognitoTabModelInternal,
+                createLegacyTabGroupModelFilterInternalForTesting(incognitoTabModelInternal));
+    }
+
+    private static TabGroupModelFilterInternal createLegacyTabGroupModelFilterInternalForTesting(
+            TabModelInternal tabModel) {
+        return createLegacyTabGroupModelFilterInternal(
+                tabModel,
+                (isIncognitoBranded, tabModelInternalSupplier) ->
+                        new PassthroughTabUngrouper(tabModelInternalSupplier));
+    }
+}
diff --git a/chrome/android/java/src/org/chromium/chrome/browser/tabmodel/TabModelImpl.java b/chrome/android/java/src/org/chromium/chrome/browser/tabmodel/TabModelImpl.java
index 94c48c68..2b38dec 100644
--- a/chrome/android/java/src/org/chromium/chrome/browser/tabmodel/TabModelImpl.java
+++ b/chrome/android/java/src/org/chromium/chrome/browser/tabmodel/TabModelImpl.java
@@ -83,13 +83,14 @@
     private final TabContentManager mTabContentManager;
     private final TabModelDelegate mModelDelegate;
     private final TabRemover mTabRemover;
-    private final ObserverList<TabModelObserver> mObservers;
+    private final ObserverList<TabModelObserver> mObservers = new ObserverList<>();
     private final NextTabPolicySupplier mNextTabPolicySupplier;
     private final AsyncTabParamsManager mAsyncTabParamsManager;
     private final ObservableSupplierImpl<@Nullable Tab> mCurrentTabSupplier =
             new ObservableSupplierImpl<>();
     private final ObservableSupplierImpl<Integer> mTabCountSupplier =
             new ObservableSupplierImpl<>();
+    private final boolean mIsArchivedTabModel;
 
     /** This specifies the current {@link Tab} in {@link #mTabs}. */
     private int mIndex = INVALID_TAB_INDEX;
@@ -181,7 +182,7 @@
             TabRemover tabRemover,
             boolean supportUndo,
             boolean isArchivedTabModel) {
-        super(profile, activityType, isArchivedTabModel);
+        super(profile);
         mRegularTabCreator = regularTabCreator;
         mIncognitoTabCreator = incognitoTabCreator;
         mOrderController = orderController;
@@ -196,10 +197,10 @@
             mPendingTabClosureManager =
                     new PendingTabClosureManager(this, new PendingTabClosureDelegateImpl());
         }
-        mObservers = new ObserverList<>();
+        mIsArchivedTabModel = isArchivedTabModel;
         // The call to initializeNative() should be as late as possible, as it results in calling
         // observers on the native side, which may in turn call |addObserver()| on this object.
-        initializeNative(profile);
+        initializeNative(activityType, isArchivedTabModel);
     }
 
     @Override
@@ -413,6 +414,7 @@
 
     @Override
     public @Nullable Tab getNextTabIfClosed(int id, boolean uponExit) {
+        if (mIsArchivedTabModel) return null;
         return getNextTabIfClosed(id, uponExit, TabCloseType.SINGLE);
     }
 
@@ -781,6 +783,7 @@
     // This function is complex and its behavior depends on persisted state, including mIndex.
     @Override
     public void setIndex(int i, final @TabSelectionType int type) {
+        if (mIsArchivedTabModel) return;
         try {
             TraceEvent.begin("TabModelImpl.setIndex");
             int lastId = getLastId(type);
@@ -1096,6 +1099,7 @@
 
     @Override
     public int index() {
+        if (mIsArchivedTabModel) return INVALID_TAB_INDEX;
         return mIndex;
     }
 
diff --git a/chrome/android/java/src/org/chromium/chrome/browser/tabmodel/TabModelJniBridge.java b/chrome/android/java/src/org/chromium/chrome/browser/tabmodel/TabModelJniBridge.java
index 4c252d1..c799c84 100644
--- a/chrome/android/java/src/org/chromium/chrome/browser/tabmodel/TabModelJniBridge.java
+++ b/chrome/android/java/src/org/chromium/chrome/browser/tabmodel/TabModelJniBridge.java
@@ -26,35 +26,29 @@
 public abstract class TabModelJniBridge implements TabModelInternal {
     private final Profile mProfile;
 
-    /** The type of the Activity for which this tab model works. */
-    private final @ActivityType int mActivityType;
-
-    /** Whether the model is for archvied tabs. */
-    private final boolean mIsArchivedTabModel;
-
     /** Native TabModelJniBridge pointer, which will be set by {@link #initializeNative()}. */
     private long mNativeTabModelJniBridge;
 
     /**
      * @param profile The profile this TabModel belongs to.
+     */
+    public TabModelJniBridge(Profile profile) {
+        mProfile = profile;
+    }
+
+    /**
+     * Initializes the native-side counterpart to this class.
+     *
      * @param activityType The type of activity this TabModel was created in.
      * @param isArchivedTabModel Whether this tab model is for archived tabs. When true, excludes
      *     the model from broadcasting sync updates.
      */
-    public TabModelJniBridge(
-            Profile profile, @ActivityType int activityType, boolean isArchivedTabModel) {
-        mProfile = profile;
-        mActivityType = activityType;
-        mIsArchivedTabModel = isArchivedTabModel;
-    }
-
-    /** Initializes the native-side counterpart to this class. */
     @CallSuper
-    protected void initializeNative(Profile profile) {
+    protected void initializeNative(@ActivityType int activityType, boolean isArchivedTabModel) {
         assert mNativeTabModelJniBridge == 0;
         mNativeTabModelJniBridge =
                 TabModelJniBridgeJni.get()
-                        .init(TabModelJniBridge.this, profile, mActivityType, mIsArchivedTabModel);
+                        .init(TabModelJniBridge.this, mProfile, activityType, isArchivedTabModel);
     }
 
     /** Returns whether the native-side pointer has been initialized. */
diff --git a/chrome/android/java/src/org/chromium/chrome/browser/tabmodel/TabModelSelectorBase.java b/chrome/android/java/src/org/chromium/chrome/browser/tabmodel/TabModelSelectorBase.java
index 4b058c26..4928de4 100644
--- a/chrome/android/java/src/org/chromium/chrome/browser/tabmodel/TabModelSelectorBase.java
+++ b/chrome/android/java/src/org/chromium/chrome/browser/tabmodel/TabModelSelectorBase.java
@@ -86,37 +86,23 @@
                         mTabModelSupplier, tabModel -> tabModel.getTabCountSupplier());
     }
 
-    private static List<TabGroupModelFilterInternal> createTabGroupModelFilters(
-            List<TabModelInternal> tabModels, TabUngrouperFactory tabUngrouperFactory) {
-        List<TabGroupModelFilterInternal> filters = new ArrayList<>(tabModels.size());
-        for (TabModelInternal tabModel : tabModels) {
-            boolean isIncognitoBranded = tabModel.isIncognitoBranded();
-            TabGroupModelFilter[] filterHolder = new TabGroupModelFilter[1];
-            TabUngrouper tabUngrouper =
-                    tabUngrouperFactory.create(isIncognitoBranded, () -> filterHolder[0]);
-            TabGroupModelFilterInternal filter = new TabGroupModelFilterImpl(tabModel, tabUngrouper);
-            filterHolder[0] = filter;
-            filters.add(filter);
-        }
-        return filters;
-    }
-
     @Initializer
     protected final void initialize(
-            TabModelInternal normalModel,
-            IncognitoTabModelInternal incognitoModel,
-            TabUngrouperFactory tabUngrouperFactory) {
+            TabModelHolder normalModelHolder, IncognitoTabModelHolder incognitoModelHolder) {
         // Only normal and incognito supported for now.
         assert mTabModelInternals.isEmpty();
 
-        mTabModelInternals.add(normalModel);
-        mTabModelInternals.add(incognitoModel);
+        mTabModelInternals.add(normalModelHolder.tabModel);
+        mTabModelInternals.add(incognitoModelHolder.tabModel);
         mTabModels.addAll(mTabModelInternals);
-        mIncognitoTabModel = incognitoModel;
+        mIncognitoTabModel = incognitoModelHolder.tabModel;
         int activeModelIndex = getModelIndex(mStartIncognito);
         assert activeModelIndex != MODEL_NOT_FOUND;
         mTabGroupModelFilterProvider.init(
-                this, createTabGroupModelFilters(mTabModelInternals, tabUngrouperFactory));
+                this,
+                List.of(
+                        normalModelHolder.tabGroupModelFilter,
+                        incognitoModelHolder.tabGroupModelFilter));
 
         TabModelObserver tabModelObserver =
                 new TabModelObserver() {
@@ -148,8 +134,8 @@
         }
         mIncognitoTabModel.addIncognitoObserver(this);
 
-        incognitoModel.setActive(mStartIncognito);
-        normalModel.setActive(!mStartIncognito);
+        incognitoModelHolder.tabModel.setActive(mStartIncognito);
+        normalModelHolder.tabModel.setActive(!mStartIncognito);
         mTabModelSupplier.set(mTabModelInternals.get(activeModelIndex));
 
         notifyChanged();
diff --git a/chrome/android/java/src/org/chromium/chrome/browser/tabmodel/TabModelSelectorImpl.java b/chrome/android/java/src/org/chromium/chrome/browser/tabmodel/TabModelSelectorImpl.java
index 576865d..b61dbe8 100644
--- a/chrome/android/java/src/org/chromium/chrome/browser/tabmodel/TabModelSelectorImpl.java
+++ b/chrome/android/java/src/org/chromium/chrome/browser/tabmodel/TabModelSelectorImpl.java
@@ -141,8 +141,15 @@
                         ? new TabRemoverImpl(
                                 mContext, mModalDialogManager, regularTabGroupModelFilterSupplier)
                         : new PassthroughTabRemover(regularTabGroupModelFilterSupplier);
-        TabModelImpl normalModel =
-                new TabModelImpl(
+        TabUngrouperFactory tabUngrouperFactory =
+                (isIncognitoBranded, tabGroupModelFilterSupplier) -> {
+                    return (isIncognitoBranded || mModalDialogManager == null)
+                            ? new PassthroughTabUngrouper(tabGroupModelFilterSupplier)
+                            : new TabUngrouperImpl(
+                                    mContext, mModalDialogManager, tabGroupModelFilterSupplier);
+                };
+        TabModelHolder normalModelHolder =
+                TabModelHolderFactory.createTabModelHolder(
                         profileProvider.getOriginalProfile(),
                         mActivityType,
                         regularTabCreator,
@@ -154,9 +161,10 @@
                         this,
                         regularTabRemover,
                         mIsUndoSupported,
-                        /* isArchivedTabModel= */ false);
+                        /* isArchivedTabModel= */ false,
+                        tabUngrouperFactory);
         if (regularTabCreator instanceof NeedsTabModel needsTabModel) {
-            needsTabModel.setTabModel(normalModel);
+            needsTabModel.setTabModel(normalModelHolder.tabModel);
         }
         if (regularTabCreator
                 instanceof NeedsTabModelOrderController needsTabModelOrderController) {
@@ -169,44 +177,37 @@
                                 assumeNonNull(
                                         getTabGroupModelFilterProvider()
                                                 .getTabGroupModelFilter(/* isIncognito= */ true)));
-        IncognitoTabModelImpl incognitoModel =
-                new IncognitoTabModelImpl(
-                        new IncognitoTabModelImplCreator(
-                                profileProvider,
-                                regularTabCreator,
-                                incognitoTabCreator,
-                                mOrderController,
-                                tabContentProvider,
-                                mNextTabPolicySupplier,
-                                mAsyncTabParamsManager,
-                                mActivityType,
-                                this,
-                                incognitoTabRemover));
+        IncognitoTabModelHolder incognitoModelHolder =
+                TabModelHolderFactory.createIncognitoTabModelHolder(
+                        profileProvider,
+                        regularTabCreator,
+                        incognitoTabCreator,
+                        mOrderController,
+                        tabContentProvider,
+                        mNextTabPolicySupplier,
+                        mAsyncTabParamsManager,
+                        mActivityType,
+                        this,
+                        incognitoTabRemover,
+                        tabUngrouperFactory);
         if (incognitoTabCreator instanceof NeedsTabModel needsTabModel) {
-            needsTabModel.setTabModel(incognitoModel);
+            needsTabModel.setTabModel(incognitoModelHolder.tabModel);
         }
         if (incognitoTabCreator
                 instanceof NeedsTabModelOrderController needsTabModelOrderController) {
             needsTabModelOrderController.setTabModelOrderController(mOrderController);
         }
-        onNativeLibraryReadyInternal(tabContentProvider, normalModel, incognitoModel);
+        onNativeLibraryReadyInternal(tabContentProvider, normalModelHolder, incognitoModelHolder);
     }
 
     @EnsuresNonNull("mTabContentManager")
     @VisibleForTesting
     void onNativeLibraryReadyInternal(
             TabContentManager tabContentProvider,
-            TabModelInternal normalModel,
-            IncognitoTabModelInternal incognitoModel) {
+            TabModelHolder normalModelHolder,
+            IncognitoTabModelHolder incognitoModelHolder) {
         mTabContentManager = tabContentProvider;
-        TabUngrouperFactory factory =
-                (isIncognitoBranded, tabGroupModelFilterSupplier) -> {
-                    return (isIncognitoBranded || mModalDialogManager == null)
-                            ? new PassthroughTabUngrouper(tabGroupModelFilterSupplier)
-                            : new TabUngrouperImpl(
-                                    mContext, mModalDialogManager, tabGroupModelFilterSupplier);
-                };
-        initialize(normalModel, incognitoModel, factory);
+        initialize(normalModelHolder, incognitoModelHolder);
 
         addObserver(
                 new TabModelSelectorObserver() {
@@ -291,15 +292,12 @@
     /**
      * Exposed to allow tests to initialize the selector with different tab models.
      *
-     * @param normalModel The normal tab model.
-     * @param incognitoModel The incognito tab model.
-     * @param tabUngrouperFactory The factory for building {@link TabUngrouper};
+     * @param normalModelHolder The normal tab model.
+     * @param incognitoModelHolder The incognito tab model.
      */
     public void initializeForTesting(
-            TabModelInternal normalModel,
-            IncognitoTabModelInternal incognitoModel,
-            TabUngrouperFactory tabUngrouperFactory) {
-        initialize(normalModel, incognitoModel, tabUngrouperFactory);
+            TabModelHolder normalModelHolder, IncognitoTabModelHolder incognitoModelHolder) {
+        initialize(normalModelHolder, incognitoModelHolder);
     }
 
     @Override
diff --git a/chrome/android/javatests/BUILD.gn b/chrome/android/javatests/BUILD.gn
index 740c7da..47c9c51 100644
--- a/chrome/android/javatests/BUILD.gn
+++ b/chrome/android/javatests/BUILD.gn
@@ -1721,7 +1721,10 @@
     "src/org/chromium/chrome/browser/download/dialogs/DownloadLocationDialogTest.java",
   ]
 
-  deps = [ ":common_unit_test_deps_java" ]
+  deps = [
+    ":common_unit_test_deps_java",
+    "//components/download/public/common:public_java",
+  ]
 }
 
 android_library("chrome_unit_test_java_org.chromium.chrome.browser.share") {
diff --git a/chrome/android/javatests/src/org/chromium/chrome/browser/customtabs/CustomTabTabPersistencePolicyTest.java b/chrome/android/javatests/src/org/chromium/chrome/browser/customtabs/CustomTabTabPersistencePolicyTest.java
index 31776580..f0d58477 100644
--- a/chrome/android/javatests/src/org/chromium/chrome/browser/customtabs/CustomTabTabPersistencePolicyTest.java
+++ b/chrome/android/javatests/src/org/chromium/chrome/browser/customtabs/CustomTabTabPersistencePolicyTest.java
@@ -52,7 +52,7 @@
 import org.chromium.chrome.browser.profiles.ProfileProvider;
 import org.chromium.chrome.browser.tab.MockTab;
 import org.chromium.chrome.browser.tab_ui.TabContentManager;
-import org.chromium.chrome.browser.tabmodel.PassthroughTabUngrouper;
+import org.chromium.chrome.browser.tabmodel.TabModelHolderFactory;
 import org.chromium.chrome.browser.tabmodel.TabModelSelector;
 import org.chromium.chrome.browser.tabmodel.TabModelSelectorImpl;
 import org.chromium.chrome.browser.tabmodel.TabPersistenceFileInfo;
@@ -60,7 +60,6 @@
 import org.chromium.chrome.browser.tabmodel.TabPersistencePolicy;
 import org.chromium.chrome.browser.tabmodel.TabPersistentStore;
 import org.chromium.chrome.browser.tabmodel.TabPersistentStore.TabModelSelectorMetadata;
-import org.chromium.chrome.browser.tabmodel.TabUngrouperFactory;
 import org.chromium.chrome.browser.tabmodel.TestTabModelDirectory;
 import org.chromium.chrome.browser.tabpersistence.TabStateDirectory;
 import org.chromium.chrome.browser.tabpersistence.TabStateFileManager;
@@ -447,10 +446,9 @@
                 AsyncTabParamsManagerSingleton.getInstance(),
                 new CipherFactory());
         TabModelSelectorImpl selector = (TabModelSelectorImpl) orchestrator.getTabModelSelector();
-        TabUngrouperFactory factory =
-                (isIncognitoBranded, tabGroupModelFilterSupplier) ->
-                        new PassthroughTabUngrouper(tabGroupModelFilterSupplier);
-        selector.initializeForTesting(normalTabModel, incognitoTabModel, factory);
+        selector.initializeForTesting(
+                TabModelHolderFactory.createTabModelHolderForTesting(normalTabModel),
+                TabModelHolderFactory.createIncognitoTabModelHolderForTesting(incognitoTabModel));
         ApplicationStatus.onStateChangeForTesting(customTabActivity, ActivityState.DESTROYED);
         ApplicationStatus.unregisterActivityStateListener(stateListener);
         return selector;
diff --git a/chrome/android/javatests/src/org/chromium/chrome/browser/download/DownloadNotificationServiceTest.java b/chrome/android/javatests/src/org/chromium/chrome/browser/download/DownloadNotificationServiceTest.java
index e68cc9b..34c7a25 100644
--- a/chrome/android/javatests/src/org/chromium/chrome/browser/download/DownloadNotificationServiceTest.java
+++ b/chrome/android/javatests/src/org/chromium/chrome/browser/download/DownloadNotificationServiceTest.java
@@ -24,6 +24,7 @@
 import org.chromium.chrome.browser.profiles.OtrProfileId;
 import org.chromium.chrome.test.ChromeJUnit4ClassRunner;
 import org.chromium.components.browser_ui.notifications.NotificationProxyUtils;
+import org.chromium.components.download.DownloadDangerType;
 import org.chromium.components.offline_items_collection.ContentId;
 import org.chromium.components.offline_items_collection.LegacyHelpers;
 import org.chromium.components.offline_items_collection.OfflineItem.Progress;
@@ -255,4 +256,121 @@
                 mDownloadForegroundServiceManager.mDownloadUpdateQueue.containsKey(
                         notificationId1));
     }
+
+    @Test
+    @SmallTest
+    @UiThreadTest
+    @Feature({"Download"})
+    public void testDownloadDangerousAndValidated() {
+        // Download is in-progress.
+        mDownloadNotificationService.notifyDownloadProgress(
+                ID1,
+                "dangerous.apk",
+                new Progress(1, 100L, OfflineItemProgressUnit.PERCENTAGE),
+                100L,
+                1L,
+                1L,
+                mPrimaryOtrProfileId,
+                true,
+                false,
+                null,
+                null,
+                false);
+        mDownloadForegroundServiceManager.onServiceConnected();
+
+        assertEquals(1, mDownloadNotificationService.getNotificationIds().size());
+        int notificationId1 = mDownloadNotificationService.getLastNotificationId();
+        assertTrue(
+                mDownloadForegroundServiceManager.mDownloadUpdateQueue.containsKey(
+                        notificationId1));
+
+        // Download receives an update that it is dangerous.
+        mDownloadNotificationService.notifyDownloadDangerous(
+                ID1,
+                "dangerous.apk",
+                null,
+                false,
+                mPrimaryOtrProfileId,
+                true,
+                false,
+                DownloadDangerType.DANGEROUS_CONTENT);
+
+        assertEquals(1, mDownloadNotificationService.getNotificationIds().size());
+        // The dangerous notification is not in the queue because it is not active.
+        assertFalse(
+                mDownloadForegroundServiceManager.mDownloadUpdateQueue.containsKey(
+                        notificationId1));
+
+        // Download is validated and gets a progress update.
+        mDownloadNotificationService.notifyDownloadProgress(
+                ID1,
+                "dangerous.apk",
+                new Progress(1, 100L, OfflineItemProgressUnit.PERCENTAGE),
+                100L,
+                1L,
+                1L,
+                mPrimaryOtrProfileId,
+                true,
+                false,
+                null,
+                null,
+                false);
+        assertEquals(1, mDownloadNotificationService.getNotificationIds().size());
+        assertTrue(
+                mDownloadForegroundServiceManager.mDownloadUpdateQueue.containsKey(
+                        notificationId1));
+    }
+
+    @Test
+    @SmallTest
+    @UiThreadTest
+    @Feature({"Download"})
+    public void testDownloadDangerousAndRemoved() {
+        // Download is in-progress.
+        mDownloadNotificationService.notifyDownloadProgress(
+                ID1,
+                "dangerous.apk",
+                new Progress(1, 100L, OfflineItemProgressUnit.PERCENTAGE),
+                100L,
+                1L,
+                1L,
+                mPrimaryOtrProfileId,
+                true,
+                false,
+                null,
+                null,
+                false);
+        mDownloadForegroundServiceManager.onServiceConnected();
+
+        assertEquals(1, mDownloadNotificationService.getNotificationIds().size());
+        int notificationId1 = mDownloadNotificationService.getLastNotificationId();
+        assertTrue(
+                mDownloadForegroundServiceManager.mDownloadUpdateQueue.containsKey(
+                        notificationId1));
+
+        // Download receives an update that it is dangerous.
+        mDownloadNotificationService.notifyDownloadDangerous(
+                ID1,
+                "dangerous.apk",
+                null,
+                false,
+                mPrimaryOtrProfileId,
+                true,
+                false,
+                DownloadDangerType.DANGEROUS_CONTENT);
+
+        assertEquals(1, mDownloadNotificationService.getNotificationIds().size());
+        // The dangerous notification is not in the queue because it is not active.
+        assertFalse(
+                mDownloadForegroundServiceManager.mDownloadUpdateQueue.containsKey(
+                        notificationId1));
+
+        // Download is cancelled.
+        mDownloadNotificationService.notifyDownloadCanceled(ID1, false);
+
+        assertEquals(0, mDownloadNotificationService.getNotificationIds().size());
+        assertFalse(
+                mDownloadForegroundServiceManager.mDownloadUpdateQueue.containsKey(
+                        notificationId1));
+    }
 }
diff --git a/chrome/android/javatests/src/org/chromium/chrome/browser/download/MockDownloadNotificationService.java b/chrome/android/javatests/src/org/chromium/chrome/browser/download/MockDownloadNotificationService.java
index 3cf8a8e..e58bcef 100644
--- a/chrome/android/javatests/src/org/chromium/chrome/browser/download/MockDownloadNotificationService.java
+++ b/chrome/android/javatests/src/org/chromium/chrome/browser/download/MockDownloadNotificationService.java
@@ -13,6 +13,7 @@
 import org.chromium.base.IntentUtils;
 import org.chromium.base.ThreadUtils;
 import org.chromium.chrome.browser.profiles.OtrProfileId;
+import org.chromium.components.download.DownloadDangerType;
 import org.chromium.components.offline_items_collection.ContentId;
 import org.chromium.components.offline_items_collection.FailState;
 import org.chromium.components.offline_items_collection.OfflineItem.Progress;
@@ -175,6 +176,29 @@
     }
 
     @Override
+    public void notifyDownloadDangerous(
+            ContentId id,
+            String fileName,
+            GURL originalUrl,
+            boolean shouldPromoteOrigin,
+            OtrProfileId otrProfileId,
+            boolean canDownloadWhileMetered,
+            boolean isTransient,
+            @DownloadDangerType int dangerType) {
+        ThreadUtils.runOnUiThreadBlocking(
+                () ->
+                        MockDownloadNotificationService.super.notifyDownloadDangerous(
+                                id,
+                                fileName,
+                                originalUrl,
+                                shouldPromoteOrigin,
+                                otrProfileId,
+                                canDownloadWhileMetered,
+                                isTransient,
+                                dangerType));
+    }
+
+    @Override
     public void notifyDownloadCanceled(final ContentId id, boolean hasUserGesture) {
         ThreadUtils.runOnUiThreadBlocking(
                 () ->
diff --git a/chrome/android/javatests/src/org/chromium/chrome/browser/privacy_sandbox/ChromeTrackingProtectionDelegateTest.java b/chrome/android/javatests/src/org/chromium/chrome/browser/privacy_sandbox/ChromeTrackingProtectionDelegateTest.java
index 14aafff..e1f9d49 100644
--- a/chrome/android/javatests/src/org/chromium/chrome/browser/privacy_sandbox/ChromeTrackingProtectionDelegateTest.java
+++ b/chrome/android/javatests/src/org/chromium/chrome/browser/privacy_sandbox/ChromeTrackingProtectionDelegateTest.java
@@ -20,6 +20,9 @@
 import org.chromium.base.ThreadUtils;
 import org.chromium.base.test.util.Batch;
 import org.chromium.base.test.util.CommandLineFlags;
+import org.chromium.base.test.util.Features.DisableFeatures;
+import org.chromium.base.test.util.Features.EnableFeatures;
+import org.chromium.chrome.browser.flags.ChromeFeatureList;
 import org.chromium.chrome.browser.flags.ChromeSwitches;
 import org.chromium.chrome.browser.preferences.Pref;
 import org.chromium.chrome.browser.profiles.ProfileManager;
@@ -108,6 +111,22 @@
     @Test
     @UiThreadTest
     @MediumTest
+    @EnableFeatures({ChromeFeatureList.DISPLAY_WILDCARD_CONTENT_SETTINGS})
+    public void displayWildcardInContentSettingsEnabled() {
+        assertTrue(mDelegate.isDisplayWildcardInContentSettingsEnabled());
+    }
+
+    @Test
+    @UiThreadTest
+    @MediumTest
+    @DisableFeatures({ChromeFeatureList.DISPLAY_WILDCARD_CONTENT_SETTINGS})
+    public void displayWildcardInContentSettingsDisabled() {
+        assertFalse(mDelegate.isDisplayWildcardInContentSettingsEnabled());
+    }
+
+    @Test
+    @UiThreadTest
+    @MediumTest
     public void contextGetter() {
         var context = mDelegate.getBrowserContext();
         assertEquals(ProfileManager.getLastUsedRegularProfile(), context);
diff --git a/chrome/android/javatests/src/org/chromium/chrome/browser/site_settings/SiteSettingsTest.java b/chrome/android/javatests/src/org/chromium/chrome/browser/site_settings/SiteSettingsTest.java
index 31bc19e..94626aab 100644
--- a/chrome/android/javatests/src/org/chromium/chrome/browser/site_settings/SiteSettingsTest.java
+++ b/chrome/android/javatests/src/org/chromium/chrome/browser/site_settings/SiteSettingsTest.java
@@ -176,7 +176,8 @@
 })
 @EnableFeatures({
     ChromeFeatureList.PRIVACY_SANDBOX_RELATED_WEBSITE_SETS_UI,
-    DeviceFeatureList.BLUETOOTH_RFCOMM_ANDROID
+    DeviceFeatureList.BLUETOOTH_RFCOMM_ANDROID,
+    ChromeFeatureList.DISPLAY_WILDCARD_CONTENT_SETTINGS
 })
 // TODO(crbug.com/370008370): Update individual tests after launch.
 @DisableFeatures({
@@ -253,6 +254,9 @@
         "anti_abuse_things_to_consider_section_one"
     };
 
+    private static final String PRIMARY_PATTERN_WITH_WILDCARD = "http://[*.]primary.com";
+    private static final String SECONDARY_PATTERN_WITH_WILDCARD = "http://[*.]secondary.com";
+
     @Before
     public void setUp() throws TimeoutException {
         // Clean up cookies and permissions to ensure tests run in a clean environment.
@@ -381,6 +385,24 @@
                 });
     }
 
+    private void createCookieExceptionsWithWildcards() {
+        ThreadUtils.runOnUiThreadBlocking(
+                () -> {
+                    WebsitePreferenceBridge.setContentSettingCustomScope(
+                            getBrowserContextHandle(),
+                            ContentSettingsType.COOKIES,
+                            "*",
+                            SECONDARY_PATTERN_WITH_WILDCARD,
+                            ContentSettingValues.ALLOW);
+                    WebsitePreferenceBridge.setContentSettingCustomScope(
+                            getBrowserContextHandle(),
+                            ContentSettingsType.COOKIES,
+                            PRIMARY_PATTERN_WITH_WILDCARD,
+                            "*",
+                            ContentSettingValues.ALLOW);
+                });
+    }
+
     private void createStorageAccessExceptions() {
         ThreadUtils.runOnUiThreadBlocking(
                 () -> {
@@ -1849,6 +1871,29 @@
     @Test
     @SmallTest
     @Feature({"Preferences"})
+    public void shouldShowWildcardsInExceptionsOnThirdPartyCookiesPage() {
+        createCookieExceptionsWithWildcards();
+        SiteSettingsTestUtils.startSiteSettingsCategory(
+                SiteSettingsCategory.Type.THIRD_PARTY_COOKIES);
+
+        onView(withText(PRIMARY_PATTERN_WITH_WILDCARD)).check(doesNotExist());
+        onView(withText(SECONDARY_PATTERN_WITH_WILDCARD)).check(matches(isDisplayed()));
+    }
+
+    @Test
+    @SmallTest
+    @Feature({"Preferences"})
+    public void shouldShowWildcardsInExceptionsOnSiteDataPage() {
+        createCookieExceptionsWithWildcards();
+        SiteSettingsTestUtils.startSiteSettingsCategory(SiteSettingsCategory.Type.SITE_DATA);
+
+        onView(withText(PRIMARY_PATTERN_WITH_WILDCARD)).check(matches(isDisplayed()));
+        onView(withText(SECONDARY_PATTERN_WITH_WILDCARD)).check(doesNotExist());
+    }
+
+    @Test
+    @SmallTest
+    @Feature({"Preferences"})
     @DisableFeatures(ChromeFeatureList.PERMISSION_SITE_SETTING_RADIO_BUTTON)
     public void testOnlyExpectedPreferencesStorageAccessWithToggle() {
         testExpectedPreferences(
diff --git a/chrome/android/javatests/src/org/chromium/chrome/browser/site_settings/WebsitePermissionsFetcherTest.java b/chrome/android/javatests/src/org/chromium/chrome/browser/site_settings/WebsitePermissionsFetcherTest.java
index 5b9c31a..413c8a1 100644
--- a/chrome/android/javatests/src/org/chromium/chrome/browser/site_settings/WebsitePermissionsFetcherTest.java
+++ b/chrome/android/javatests/src/org/chromium/chrome/browser/site_settings/WebsitePermissionsFetcherTest.java
@@ -7,6 +7,7 @@
 import static org.junit.Assert.assertEquals;
 import static org.mockito.ArgumentMatchers.any;
 import static org.mockito.Mockito.doAnswer;
+import static org.mockito.Mockito.when;
 
 import static org.chromium.components.browser_ui.site_settings.WebsitePreferenceBridge.SITE_WILDCARD;
 
@@ -1604,6 +1605,8 @@
     @Test
     @SmallTest
     public void testFetchAllSites() {
+        when(mSiteSettingsDelegate.isDisplayWildcardInContentSettingsEnabled()).thenReturn(true);
+
         WebsitePermissionsFetcher fetcher = new WebsitePermissionsFetcher(mSiteSettingsDelegate);
         FakeWebsitePreferenceBridge websitePreferenceBridge = new FakeWebsitePreferenceBridge();
         fetcher.setWebsitePreferenceBridgeForTesting(websitePreferenceBridge);
diff --git a/chrome/android/javatests/src/org/chromium/chrome/browser/tab/TabArchiverTest.java b/chrome/android/javatests/src/org/chromium/chrome/browser/tab/TabArchiverTest.java
index c5c245f4..26e1c0fe 100644
--- a/chrome/android/javatests/src/org/chromium/chrome/browser/tab/TabArchiverTest.java
+++ b/chrome/android/javatests/src/org/chromium/chrome/browser/tab/TabArchiverTest.java
@@ -65,7 +65,6 @@
 import org.chromium.chrome.test.batch.BlankCTATabInitialStateRule;
 import org.chromium.components.tab_group_sync.LocalTabGroupId;
 import org.chromium.components.tab_group_sync.SavedTabGroup;
-import org.chromium.components.tab_group_sync.SavedTabGroupTab;
 import org.chromium.components.tab_group_sync.TabGroupSyncService;
 
 import java.util.Arrays;
@@ -313,9 +312,6 @@
         String syncId = "sync_id";
         SavedTabGroup savedTabGroup = new SavedTabGroup();
         savedTabGroup.syncId = syncId;
-        SavedTabGroupTab savedTabGroupTab1 = new SavedTabGroupTab();
-        SavedTabGroupTab savedTabGroupTab2 = new SavedTabGroupTab();
-        savedTabGroup.savedTabs = Arrays.asList(savedTabGroupTab1, savedTabGroupTab2);
         when(mTabGroupSyncService.getGroup(any(LocalTabGroupId.class))).thenReturn(savedTabGroup);
 
         Tab tab =
@@ -339,8 +335,6 @@
         HistogramWatcher watcher =
                 HistogramWatcher.newBuilder()
                         .expectIntRecords("Tabs.TabArchived.TabCount", 1)
-                        .expectIntRecords("TabGroups.TabGroupDeclutter.ArchivedTabGroups", 1)
-                        .expectIntRecords("TabGroups.TabGroupDeclutter.ArchivedTabGroupTabCount", 2)
                         .build();
         runOnUiThreadBlocking(
                 () ->
@@ -395,8 +389,6 @@
         HistogramWatcher watcher =
                 HistogramWatcher.newBuilder()
                         .expectIntRecords("Tabs.TabArchived.TabCount", 1)
-                        .expectNoRecords("TabGroups.TabGroupDeclutter.ArchivedTabGroups")
-                        .expectNoRecords("TabGroups.TabGroupDeclutter.ArchivedTabGroupTabCount")
                         .build();
         // The grouped tab should be skipped.
         runOnUiThreadBlocking(
@@ -415,14 +407,6 @@
     @MediumTest
     @EnableFeatures(ChromeFeatureList.ANDROID_TAB_DECLUTTER_ARCHIVE_TAB_GROUPS)
     public void testGroupedTabsAreArchived() {
-        String syncId = "sync_id";
-        SavedTabGroup savedTabGroup = new SavedTabGroup();
-        savedTabGroup.syncId = syncId;
-        SavedTabGroupTab savedTabGroupTab1 = new SavedTabGroupTab();
-        SavedTabGroupTab savedTabGroupTab2 = new SavedTabGroupTab();
-        savedTabGroup.savedTabs = Arrays.asList(savedTabGroupTab1, savedTabGroupTab2);
-        when(mTabGroupSyncService.getGroup(any(LocalTabGroupId.class))).thenReturn(savedTabGroup);
-
         sActivityTestRule.loadUrlInNewTab(
                 sActivityTestRule.getTestServer().getURL(TEST_PATH), /* incognito= */ false);
 
@@ -456,8 +440,6 @@
         HistogramWatcher watcher =
                 HistogramWatcher.newBuilder()
                         .expectIntRecords("Tabs.TabArchived.TabCount", 1)
-                        .expectIntRecords("TabGroups.TabGroupDeclutter.ArchivedTabGroups", 1)
-                        .expectIntRecords("TabGroups.TabGroupDeclutter.ArchivedTabGroupTabCount", 2)
                         .build();
         // The grouped tab should not be added to the archived tab model and have been closed from
         // the regular tab model.
diff --git a/chrome/android/javatests/src/org/chromium/chrome/browser/tabmodel/TabModelSelectorObserverTestRule.java b/chrome/android/javatests/src/org/chromium/chrome/browser/tabmodel/TabModelSelectorObserverTestRule.java
index 7110f2dcf..e49c2c1 100644
--- a/chrome/android/javatests/src/org/chromium/chrome/browser/tabmodel/TabModelSelectorObserverTestRule.java
+++ b/chrome/android/javatests/src/org/chromium/chrome/browser/tabmodel/TabModelSelectorObserverTestRule.java
@@ -175,10 +175,9 @@
                         delegate,
                         incognitoTabRemover);
 
-        TabUngrouperFactory factory =
-                (isIncognitoBranded, tabGroupModelFilterSupplier) ->
-                        new PassthroughTabUngrouper(tabGroupModelFilterSupplier);
-        mSelector.initialize(mNormalTabModel, mIncognitoTabModel, factory);
+        mSelector.initialize(
+                TabModelHolderFactory.createTabModelHolderForTesting(mNormalTabModel),
+                TabModelHolderFactory.createIncognitoTabModelHolderForTesting(mIncognitoTabModel));
     }
 
     /** Test TabModel that exposes the needed capabilities for testing. */
@@ -207,7 +206,15 @@
                     modelDelegate,
                     tabRemover,
                     /* supportUndo= */ false,
-                    /* isArchivedTabModel= */ true);
+                    /* isArchivedTabModel= */ false);
+        }
+
+        @Override
+        public void initializeNative(int activityType, boolean isArchivedTabModel) {
+            // Skip setting up the TabModelObserverJniBridge by using isArchivedTabModel = true.
+            // Initializing this leads to unexpected observers being added and crashes due to
+            // mObserverSet not being initialized. This test should be refactored.
+            super.initializeNative(activityType, /* isArchivedTabModel= */ true);
         }
 
         @Override
diff --git a/chrome/android/javatests/src/org/chromium/chrome/browser/tabmodel/TabModelSelectorTabModelObserverTest.java b/chrome/android/javatests/src/org/chromium/chrome/browser/tabmodel/TabModelSelectorTabModelObserverTest.java
index 52a40f88..0981f36 100644
--- a/chrome/android/javatests/src/org/chromium/chrome/browser/tabmodel/TabModelSelectorTabModelObserverTest.java
+++ b/chrome/android/javatests/src/org/chromium/chrome/browser/tabmodel/TabModelSelectorTabModelObserverTest.java
@@ -92,11 +92,10 @@
                         registrationCompleteCallback.notifyCalled();
                     }
                 };
-        TabUngrouperFactory factory =
-                (isIncognitoBranded, tabGroupModelFilterSupplier) ->
-                        new PassthroughTabUngrouper(tabGroupModelFilterSupplier);
         mSelector.initialize(
-                sTestRule.getNormalTabModel(), sTestRule.getIncognitoTabModel(), factory);
+                TabModelHolderFactory.createTabModelHolderForTesting(sTestRule.getNormalTabModel()),
+                TabModelHolderFactory.createIncognitoTabModelHolderForTesting(
+                        sTestRule.getIncognitoTabModel()));
         registrationCompleteCallback.waitForCallback(0);
         assertAllModelsHaveObserver(mSelector, observer);
     }
diff --git a/chrome/android/javatests/src/org/chromium/chrome/browser/tabmodel/TabModelSelectorTabObserverTest.java b/chrome/android/javatests/src/org/chromium/chrome/browser/tabmodel/TabModelSelectorTabObserverTest.java
index 0883a29..dfa8c90 100644
--- a/chrome/android/javatests/src/org/chromium/chrome/browser/tabmodel/TabModelSelectorTabObserverTest.java
+++ b/chrome/android/javatests/src/org/chromium/chrome/browser/tabmodel/TabModelSelectorTabObserverTest.java
@@ -157,13 +157,11 @@
         TestTabModelSelectorTabObserver observer = createTabModelSelectorTabObserver();
         ThreadUtils.runOnUiThreadBlocking(
                 () -> {
-                    TabUngrouperFactory factory =
-                            (isIncognitoBranded, tabGroupModelFilterSupplier) ->
-                                    new PassthroughTabUngrouper(tabGroupModelFilterSupplier);
                     selector.initialize(
-                            sTestRule.getNormalTabModel(),
-                            sTestRule.getIncognitoTabModel(),
-                            factory);
+                            TabModelHolderFactory.createTabModelHolderForTesting(
+                                    sTestRule.getNormalTabModel()),
+                            TabModelHolderFactory.createIncognitoTabModelHolderForTesting(
+                                    sTestRule.getIncognitoTabModel()));
                 });
 
         Tab normalTab1 = createTestTab(false);
diff --git a/chrome/android/javatests/src/org/chromium/chrome/browser/tabmodel/TabPersistentStoreTest.java b/chrome/android/javatests/src/org/chromium/chrome/browser/tabmodel/TabPersistentStoreTest.java
index 8763e95..5bbd625 100644
--- a/chrome/android/javatests/src/org/chromium/chrome/browser/tabmodel/TabPersistentStoreTest.java
+++ b/chrome/android/javatests/src/org/chromium/chrome/browser/tabmodel/TabPersistentStoreTest.java
@@ -214,7 +214,19 @@
                                     TestTabModelSelector.this,
                                     tabRemover,
                                     /* supportUndo= */ true,
-                                    /* isArchivedTabModel= */ true);
+                                    /* isArchivedTabModel= */ false) {
+                                @Override
+                                public void initializeNative(
+                                        int activityType, boolean isArchivedTabModel) {
+                                    // Skip setting up the TabModelObserverJniBridge by using
+                                    // isArchivedTabModel = true. This test uses MockTab which has
+                                    // no native pointer while still initializing the native half of
+                                    // the TabModel leading to crashes from the
+                                    // TabModelObserverJniBridge. It needs to be refactored.
+                                    super.initializeNative(
+                                            activityType, /* isArchivedTabModel= */ true);
+                                }
+                            };
                         }
                     };
             TabModelImpl regularTabModel = ThreadUtils.runOnUiThreadBlocking(callable);
@@ -236,10 +248,10 @@
                                     NO_RESTORE_TYPE,
                                     this,
                                     incognitoTabRemover));
-            TabUngrouperFactory factory =
-                    (isIncognitoBranded, tabGroupModelFilterSupplier) ->
-                            new PassthroughTabUngrouper(tabGroupModelFilterSupplier);
-            initialize(regularTabModel, incognitoTabModel, factory);
+            initialize(
+                    TabModelHolderFactory.createTabModelHolderForTesting(regularTabModel),
+                    TabModelHolderFactory.createIncognitoTabModelHolderForTesting(
+                            incognitoTabModel));
         }
 
         @Override
diff --git a/chrome/android/junit/src/org/chromium/chrome/browser/init/AsyncInitTaskRunnerTest.java b/chrome/android/junit/src/org/chromium/chrome/browser/init/AsyncInitTaskRunnerTest.java
index 0b2b86a..f445e2e4 100644
--- a/chrome/android/junit/src/org/chromium/chrome/browser/init/AsyncInitTaskRunnerTest.java
+++ b/chrome/android/junit/src/org/chromium/chrome/browser/init/AsyncInitTaskRunnerTest.java
@@ -77,7 +77,6 @@
                         });
         // Allow test to run on all builds
         when(mRunner.shouldFetchVariationsSeedDuringFirstRun()).thenReturn(true);
-        doNothing().when(mRunner).prefetchLibrary();
     }
 
     @Test
diff --git a/chrome/android/junit/src/org/chromium/chrome/browser/tabmodel/ArchivedTabModelSelectorImplTest.java b/chrome/android/junit/src/org/chromium/chrome/browser/tabmodel/ArchivedTabModelSelectorImplTest.java
index da4444fde..ab0d82a3 100644
--- a/chrome/android/junit/src/org/chromium/chrome/browser/tabmodel/ArchivedTabModelSelectorImplTest.java
+++ b/chrome/android/junit/src/org/chromium/chrome/browser/tabmodel/ArchivedTabModelSelectorImplTest.java
@@ -115,7 +115,9 @@
         MockTabModel incognitoTabModel = new MockTabModel(mIncognitoProfile, null);
         incognitoTabModel.setTabRemoverForTesting(incognitoTabRemover);
         mTabModelSelector.onNativeLibraryReadyInternal(
-                mMockTabContentManager, regularTabModel, incognitoTabModel);
+                mMockTabContentManager,
+                TabModelHolderFactory.createTabModelHolderForTesting(regularTabModel),
+                TabModelHolderFactory.createIncognitoTabModelHolderForTesting(incognitoTabModel));
 
         assertEquals(
                 mTabModelSelector.getModel(/* incognito= */ false),
diff --git a/chrome/android/junit/src/org/chromium/chrome/browser/tabmodel/TabModelImplUnitTest.java b/chrome/android/junit/src/org/chromium/chrome/browser/tabmodel/TabModelImplUnitTest.java
index bc8f8bb..ba0f47d7 100644
--- a/chrome/android/junit/src/org/chromium/chrome/browser/tabmodel/TabModelImplUnitTest.java
+++ b/chrome/android/junit/src/org/chromium/chrome/browser/tabmodel/TabModelImplUnitTest.java
@@ -196,7 +196,7 @@
                         mTabModelDelegate,
                         tabRemover,
                         /* supportUndo= */ true,
-                        /* isArchivedTabModel= */ true);
+                        /* isArchivedTabModel= */ false);
         when(mTabModelSelector.getModel(isIncognito)).thenReturn(tabModel);
         tabModel.setActive(isActive);
         if (isActive) {
diff --git a/chrome/android/junit/src/org/chromium/chrome/browser/tabmodel/TabModelSelectorImplTest.java b/chrome/android/junit/src/org/chromium/chrome/browser/tabmodel/TabModelSelectorImplTest.java
index 36c7430..ab99dac8e 100644
--- a/chrome/android/junit/src/org/chromium/chrome/browser/tabmodel/TabModelSelectorImplTest.java
+++ b/chrome/android/junit/src/org/chromium/chrome/browser/tabmodel/TabModelSelectorImplTest.java
@@ -145,7 +145,9 @@
 
         mTabCreatorManager.initialize(mTabModelSelector);
         mTabModelSelector.onNativeLibraryReadyInternal(
-                mMockTabContentManager, mRegularTabModel, mIncognitoTabModel);
+                mMockTabContentManager,
+                TabModelHolderFactory.createTabModelHolderForTesting(mRegularTabModel),
+                TabModelHolderFactory.createIncognitoTabModelHolderForTesting(mIncognitoTabModel));
 
         assertEquals(
                 mTabModelSelector.getModel(/* incognito= */ false),
@@ -472,10 +474,9 @@
                         NO_RESTORE_TYPE,
                         /* startIncognito= */ false);
         when(regularModel.isActiveModel()).thenReturn(true);
-        TabUngrouperFactory factory =
-                (isIncognitoBranded, tabGroupModelFilterSupplier) ->
-                        new PassthroughTabUngrouper(tabGroupModelFilterSupplier);
-        mTabModelSelector.initializeForTesting(regularModel, mIncognitoTabModel, factory);
+        mTabModelSelector.initializeForTesting(
+                TabModelHolderFactory.createTabModelHolderForTesting(regularModel),
+                TabModelHolderFactory.createIncognitoTabModelHolderForTesting(mIncognitoTabModel));
         TabModelSelectorObserver observer =
                 new TabModelSelectorObserver() {
                     @Override
@@ -518,10 +519,9 @@
                         NO_RESTORE_TYPE,
                         /* startIncognito= */ false);
         when(regularModel.isActiveModel()).thenReturn(true);
-        TabUngrouperFactory factory =
-                (isIncognitoBranded, tabGroupModelFilterSupplier) ->
-                        new PassthroughTabUngrouper(tabGroupModelFilterSupplier);
-        mTabModelSelector.initializeForTesting(regularModel, mIncognitoTabModel, factory);
+        mTabModelSelector.initializeForTesting(
+                TabModelHolderFactory.createTabModelHolderForTesting(regularModel),
+                TabModelHolderFactory.createIncognitoTabModelHolderForTesting(mIncognitoTabModel));
         mTabModelSelector.markTabStateInitialized();
         verify(regularModel, never()).broadcastSessionRestoreComplete();
     }
diff --git a/chrome/android/junit/src/org/chromium/chrome/browser/tabmodel/UndoTabModelUnitTest.java b/chrome/android/junit/src/org/chromium/chrome/browser/tabmodel/UndoTabModelUnitTest.java
index 5a0fca9..34b7034 100644
--- a/chrome/android/junit/src/org/chromium/chrome/browser/tabmodel/UndoTabModelUnitTest.java
+++ b/chrome/android/junit/src/org/chromium/chrome/browser/tabmodel/UndoTabModelUnitTest.java
@@ -179,7 +179,7 @@
                             mTabModelDelegate,
                             tabRemover,
                             supportUndo,
-                            /* isArchivedTabModel= */ true);
+                            /* isArchivedTabModel= */ false);
             when(mTabModelSelector.getModel(true)).thenReturn(tabModel);
         } else {
             tabModel =
@@ -195,7 +195,7 @@
                             mTabModelDelegate,
                             tabRemover,
                             supportUndo,
-                            /* isArchivedTabModel= */ true);
+                            /* isArchivedTabModel= */ false);
             when(mTabModelSelector.getModel(false)).thenReturn(tabModel);
         }
         // Assume the model is the current and active model.
diff --git a/chrome/app/resources/chromium_strings_ar.xtb b/chrome/app/resources/chromium_strings_ar.xtb
index 177e3c9..d24e33c 100644
--- a/chrome/app/resources/chromium_strings_ar.xtb
+++ b/chrome/app/resources/chromium_strings_ar.xtb
@@ -342,6 +342,7 @@
 <translation id="5775198138441669627">‏في حال نسيت عبارة المرور أو أردت تغيير هذه الإعدادات، يمكنك <ph name="SETTINGS_LINK" /> بيانات Chromium في حسابك</translation>
 <translation id="5800158606660203929">‏يمكنك تخصيص Chromium والتحكّم فيه وضبطه كمتصفِّح تلقائي.</translation>
 <translation id="5809516625706423866">‏تعذر الاتصال بالإنترنت. بروتوكول HTTP 401 محظور. يُرجى التحقق من إعدادات الخادم الوكيل.</translation>
+<translation id="5817952762723416573">‏يعمل هذا الإعداد على زيادة سرعة المواقع الإلكترونية باستخدام محرّك V8 في Chromium، مع تقليل قدرة Chromium على مقاومة الهجمات قليلاً. هذا الإعداد غير مفعَّل.</translation>
 <translation id="5821520528363214608">‏عليك تحديث متصفِّح Chromium لاستخدام بياناته وحفظها في حسابك على Google</translation>
 <translation id="5824893331272123205">تعذّر تحميل هذه اللوحة. يُرجى إعادة المحاولة</translation>
 <translation id="5862307444128926510">‏مرحبًا بك في Chromium</translation>
@@ -431,6 +432,7 @@
 <translation id="6729124504294600478">‏للحصول على خيارات مخصَّصة والاستفادة من ميزات أخرى، يمكنك تضمين متصفّح Chromium في "النشاط على الويب وفي التطبيقات" وخدمات Google المرتبطة</translation>
 <translation id="6734291798041940871">‏يتم تثبيت Chromium بالفعل لجميع المستخدمين على جهاز الكمبيوتر.</translation>
 <translation id="674245979920622322">‏لم تزر هذا الموقع الإلكتروني مؤخرًا، لذلك أزال Chromium إذنَي <ph name="PERMISSION_1" /> و<ph name="PERMISSION_2" /> و<ph name="COUNT" /> إذن آخر</translation>
+<translation id="6751374565094704799">‏يعمل هذا الإعداد على زيادة سرعة المواقع الإلكترونية باستخدام محرّك V8 في Chromium، مع تقليل قدرة Chromium على مقاومة الهجمات قليلاً. هذا الإعداد مفعَّل.</translation>
 <translation id="67706546131546258">‏ينصح متصفِّح Chromium بفحص هذا الملف لأنّه قد يكون خطيرًا.</translation>
 <translation id="6779406956731413166">‏أصبح نظام التشغيل Chromium متاحًا من خلال <ph name="BEGIN_LINK_CROS_OSS" />برنامج إضافي مفتوح المصدر<ph name="END_LINK_CROS_OSS" />.</translation>
 <translation id="6831043979455480757">ترجمة</translation>
diff --git a/chrome/app/resources/chromium_strings_hu.xtb b/chrome/app/resources/chromium_strings_hu.xtb
index e55061e..fb52df65 100644
--- a/chrome/app/resources/chromium_strings_hu.xtb
+++ b/chrome/app/resources/chromium_strings_hu.xtb
@@ -342,6 +342,7 @@
 <translation id="5775198138441669627">Ha elfelejtette az összetett jelszavát, vagy módosítani szeretné ezt a beállítást, <ph name="SETTINGS_LINK" /> törölje a fiókjában lévő Chromium-adatokat.</translation>
 <translation id="5800158606660203929">Személyre szabhatja a Chromium működését. Beállíthatja a Chromiumot alapértelmezettként.</translation>
 <translation id="5809516625706423866">Nem lehet csatlakozni az internethez. „HTTP 401 Unauthorized” hiba. Ellenőrizze a proxybeállításokat.</translation>
+<translation id="5817952762723416573">A Chromium V8 motorjával felgyorsítja a webhelyeket, de kissé kevésbé ellenállóvá teszi a Chromiumot a támadásokkal szemben. Ez a beállítás ki van kapcsolva.</translation>
 <translation id="5821520528363214608">Ha Chromium-adatokat szeretne használni és tárolni Google-fiókjában, frissítse a Chromiumot</translation>
 <translation id="5824893331272123205">Nem sikerült betölteni ezt a panelt. Próbálja újra.</translation>
 <translation id="5862307444128926510">Üdvözli a Chromium!</translation>
@@ -429,6 +430,7 @@
 <translation id="6729124504294600478">A személyre szabás és az egyéb funkciók használatához vegye fel a Chromiumot az Internetes és alkalmazástevékenységek közé, valamint az összekapcsolt Google-szolgáltatásokba</translation>
 <translation id="6734291798041940871">A Chromium már telepítve van az összes felhasználó számára a számítógépen.</translation>
 <translation id="674245979920622322">Nem látogatta meg mostanában. A Chromium eltávolította a következőket: <ph name="PERMISSION_1" />, <ph name="PERMISSION_2" /> és további <ph name="COUNT" />.</translation>
+<translation id="6751374565094704799">A Chromium V8 motorjával felgyorsítja a webhelyeket, de kissé kevésbé ellenállóvá teszi a Chromiumot a támadásokkal szemben. Ez a beállítás be van kapcsolva.</translation>
 <translation id="67706546131546258">A Chromium a fájl ellenőrzését javasolja, mert veszélyes lehet.</translation>
 <translation id="6779406956731413166">A ChromiumOS létrejöttéhez további <ph name="BEGIN_LINK_CROS_OSS" />nyílt forráskódú szoftverek<ph name="END_LINK_CROS_OSS" /> is hozzájárultak.</translation>
 <translation id="6831043979455480757">Fordítás</translation>
diff --git a/chrome/app/resources/chromium_strings_ja.xtb b/chrome/app/resources/chromium_strings_ja.xtb
index 8f321ad5..47ae5fa4 100644
--- a/chrome/app/resources/chromium_strings_ja.xtb
+++ b/chrome/app/resources/chromium_strings_ja.xtb
@@ -341,6 +341,7 @@
 <translation id="5775198138441669627">パスフレーズを忘れた場合や、この設定を変更する場合は、アカウントの Chromium データを<ph name="SETTINGS_LINK" />してください</translation>
 <translation id="5800158606660203929">Chromium をカスタマイズ、管理します。Chromium をデフォルトに設定します。</translation>
 <translation id="5809516625706423866">インターネットに接続できません。HTTP 401 認証エラーが発生しました。プロキシ設定をご確認ください。</translation>
+<translation id="5817952762723416573">Chromium の V8 エンジンでサイトを高速化する(攻撃に対する Chromium の耐性は若干低下します)。この設定はオフになっています。</translation>
 <translation id="5821520528363214608">Google アカウントで Chromium のデータを使用、保存するには、Chromium を更新してください</translation>
 <translation id="5824893331272123205">このパネルを読み込めませんでした。もう一度お試しください</translation>
 <translation id="5862307444128926510">Chromium へようこそ</translation>
@@ -430,6 +431,7 @@
 <translation id="6729124504294600478">パーソナライズなどの機能を利用するには、Chromium をウェブとアプリのアクティビティと、リンクされた Google サービスに追加します</translation>
 <translation id="6734291798041940871">Chromium は既にパソコンのすべてのユーザーに対してインストールされています。</translation>
 <translation id="674245979920622322">最近アクセスしていないため、Chromium で <ph name="PERMISSION_1" />、<ph name="PERMISSION_2" />、他 <ph name="COUNT" /> 件の権限を削除しました</translation>
+<translation id="6751374565094704799">Chromium の V8 エンジンでサイトを高速化する(攻撃に対する Chromium の耐性は若干低下します)。この設定はオンになっています。</translation>
 <translation id="67706546131546258">このファイルは危害を及ぼす可能性があるため、スキャンすることをおすすめします。</translation>
 <translation id="6779406956731413166">Chromium OS は、追加の<ph name="BEGIN_LINK_CROS_OSS" />オープンソース ソフトウェア<ph name="END_LINK_CROS_OSS" />によって実現しました。</translation>
 <translation id="6831043979455480757">翻訳</translation>
diff --git a/chrome/app/resources/chromium_strings_ka.xtb b/chrome/app/resources/chromium_strings_ka.xtb
index 795de3f9..81d460e 100644
--- a/chrome/app/resources/chromium_strings_ka.xtb
+++ b/chrome/app/resources/chromium_strings_ka.xtb
@@ -344,6 +344,7 @@
 <translation id="5775198138441669627">საიდუმლო ფრაზის დავიწყების ან ამ პარამეტრის შეცვლის სურვილის შემთხვევაში, ცადეთ Chromium მონაცემების <ph name="SETTINGS_LINK" /> თქვენს ანგარიშში</translation>
 <translation id="5800158606660203929">მოირგეთ და მართეთ Chromium. დააყენეთ Chromium ნაგულისხმევად.</translation>
 <translation id="5809516625706423866">ინტერნეტთან დაკავშირება ვერ ხერხდება. HTTP 401 — არ არის ავტორიზაცია. შეამოწმეთ პროქსი-სერვერის კონფიგურაცია.</translation>
+<translation id="5817952762723416573">აჩქარებს Chromium-ის V8 მექანიზმის მქონე საიტების მუშაობას, მაგრამ Chromium ოდნავ ნაკლებად უძლებს შეტევებს. ეს პარამეტრი გამორთულია.</translation>
 <translation id="5821520528363214608">Chromium-ის მონაცემების თქვენს Google ანგარიშში გამოყენებისა და შენახვისთვის განაახლეთ Chromium</translation>
 <translation id="5824893331272123205">ეს პანელი ვერ ჩაიტვირთა, ხელახლა ცადეთ</translation>
 <translation id="5862307444128926510">მოგესალმებათ Chromium!</translation>
@@ -433,6 +434,7 @@
 <translation id="6729124504294600478">პერსონალიზაციის და სხვა ფუნქციებით რომ ისარგებლოთ, დაურთეთ Chromium როგორც ვებსა და აპებში აქტივობას, ისე მიბმულ Google სერვისებს</translation>
 <translation id="6734291798041940871">Chromium უკვე დაინსტალირებულია თქვენი კომპიუტერის ყველა მომხმარებლისთვის.</translation>
 <translation id="674245979920622322">ბოლო დროს არ ყოფილხართ. Chromium-მა ამოშალა <ph name="PERMISSION_1" />, <ph name="PERMISSION_2" /> და კიდევ <ph name="COUNT" /></translation>
+<translation id="6751374565094704799">აჩქარებს Chromium-ის V8 მექანიზმის მქონე საიტების მუშაობას, მაგრამ Chromium ოდნავ ნაკლებად უძლებს შეტევებს. ეს პარამეტრი ჩართულია.</translation>
 <translation id="67706546131546258">Chromium გირჩევთ, დაასკანიროთ ეს ფაილი, რადგან ის შეიძლება სახიფათო იყოს.</translation>
 <translation id="6779406956731413166">ChromiumOS-ს უზრუნველყოფს დამატებითი <ph name="BEGIN_LINK_CROS_OSS" />ღია წყაროს პროგრამული უზრუნველყოფა<ph name="END_LINK_CROS_OSS" />.</translation>
 <translation id="6831043979455480757">თარგმნა</translation>
diff --git a/chrome/app/resources/chromium_strings_km.xtb b/chrome/app/resources/chromium_strings_km.xtb
index 5f57910..1e746c7 100644
--- a/chrome/app/resources/chromium_strings_km.xtb
+++ b/chrome/app/resources/chromium_strings_km.xtb
@@ -344,6 +344,7 @@
 <translation id="5775198138441669627">ប្រសិនបើអ្នក​ភ្លេចឃ្លាសម្ងាត់​របស់អ្នក ឬ​ចង់ប្ដូរ​ការកំណត់​នេះ សូម<ph name="SETTINGS_LINK" />ទិន្នន័យ Chromium នៅក្នុង​គណនី​របស់អ្នក</translation>
 <translation id="5800158606660203929">គ្រប់គ្រង និង​ប្ដូរ Chromium តាមបំណង។ កំណត់ Chromium ជា​កម្មវិធីរុករកតាមអ៊ីនធឺណិតលំនាំដើម​របស់អ្នក។</translation>
 <translation id="5809516625706423866">មិនអាចភ្ជាប់ទៅអ៊ីនធឺណិតបានទេ។ មិន​អនុញ្ញាត HTTP 401 ទេ។ សូម​ពិនិត្យមើល​ការកំណត់​រចនាសម្ព័ន្ធ​ប្រូកស៊ី​របស់អ្នក។</translation>
+<translation id="5817952762723416573">បង្កើន​ល្បឿន​គេហទំព័រ​ដោយប្រើ​ម៉ាស៊ីន V8 របស់ Chromium ប៉ុន្តែ​ធ្វើឱ្យ Chromium មិនសូវធន់នឹង​ការវាយប្រហារ​បន្តិច។ ការកំណត់​នេះត្រូវបាន​បិទ។</translation>
 <translation id="5821520528363214608">ដើម្បីប្រើប្រាស់ និងរក្សាទុកទិន្នន័យ Chromium នៅក្នុងគណនី Google របស់អ្នក សូមដំឡើងកំណែ Chromium</translation>
 <translation id="5824893331272123205">មិនអាច​ផ្ទុក​ផ្ទាំងនេះ​បានទេ សូម​ព្យាយាម​ម្ដងទៀត</translation>
 <translation id="5862307444128926510">ស្វាគមន៍មកកាន់ Chromium</translation>
@@ -433,6 +434,7 @@
 <translation id="6729124504294600478">ដើម្បីទទួលបានការកំណត់​ឱ្យមានលក្ខណៈផ្ទាល់ខ្លួន និងមុខងារផ្សេងទៀត សូមរួមបញ្ចូល Chromium នៅក្នុងសកម្មភាពកម្មវិធី និងគេហទំព័រ និងសេវាកម្ម Google ដែលបានភ្ជាប់</translation>
 <translation id="6734291798041940871">Chromium ត្រូវបានដំឡើងរួចហើយសម្រាប់អ្នកប្រើទាំងអស់នៅលើកុំព្យូទ័ររបស់អ្នក។</translation>
 <translation id="674245979920622322">អ្នក​មិនបាន​ចូលមើល​នាពេល​ថ្មីៗនេះទេ។ Chromium បានដក​ការអនុញ្ញាត​ឱ្យប្រើ<ph name="PERMISSION_1" /> <ph name="PERMISSION_2" /> និង​ការអនុញ្ញាត <ph name="COUNT" /> ទៀតចេញ</translation>
+<translation id="6751374565094704799">បង្កើន​ល្បឿន​គេហទំព័រ​ដោយប្រើ​ម៉ាស៊ីន V8 របស់ Chromium ប៉ុន្តែ​ធ្វើឱ្យ Chromium មិនសូវធន់នឹង​ការវាយប្រហារ​បន្តិច។ ការកំណត់​នេះ​ត្រូវ​បានបើក។</translation>
 <translation id="67706546131546258">Chromium ណែនាំឱ្យស្កេនឯកសារនេះ ដោយសារវាអាចបង្កគ្រោះថ្នាក់។</translation>
 <translation id="6779406956731413166">ChromiumOS អាចបង្កើតឡើងដោយ<ph name="BEGIN_LINK_CROS_OSS" />កម្មវិធីកូដ​ចំហ<ph name="END_LINK_CROS_OSS" />បន្ថែម។</translation>
 <translation id="6831043979455480757">បកប្រែ</translation>
diff --git a/chrome/app/resources/chromium_strings_mn.xtb b/chrome/app/resources/chromium_strings_mn.xtb
index c4568b5a..77c8cef4 100644
--- a/chrome/app/resources/chromium_strings_mn.xtb
+++ b/chrome/app/resources/chromium_strings_mn.xtb
@@ -342,6 +342,7 @@
 <translation id="5775198138441669627">Хэрэв та нэвтрэх үгээ мартсан эсвэл энэ тохиргоог өөрчлөхийг хүсвэл бүртгэлийнхээ Chromium-н өгөгдлийг <ph name="SETTINGS_LINK" /></translation>
 <translation id="5800158606660203929">Chromium-г өөрчилж, хянана уу. Chromium-г өгөгдмөлөөрөө тохируулна уу.</translation>
 <translation id="5809516625706423866">Интернэтэд холбогдох боломжгүй байна. HTTP 401 зөвшөөрөлгүй. Прокси тохируулгаа шалгана уу.</translation>
+<translation id="5817952762723416573">Chromium-н V8 системээр сайтыг хурдасгах ч Chromium-г халдлагад арай тэсвэр багатай болгоно. Энэ тохиргоо унтраалттай байна.</translation>
 <translation id="5821520528363214608">Google Бүртгэлдээ Chromium-н өгөгдлийг ашиглах болон хадгалахын тулд Chromium-г шинэчилнэ үү</translation>
 <translation id="5824893331272123205">Энэ түр зуурын самбарыг ачаалж чадсангүй. Дахин оролдоно уу</translation>
 <translation id="5862307444128926510">Chromium-д тавтай морил</translation>
@@ -431,6 +432,7 @@
 <translation id="6729124504294600478">Хувийн болгох болон бусад онцлогийг авахын тулд Chromium-г Веб, аппын үйл ажиллагаа болон Google-н холбосон үйлчилгээнүүдэд оруулна уу</translation>
 <translation id="6734291798041940871">Chromium-г таны компьютерийн бүх хэрэглэгчид суулгасан байна.</translation>
 <translation id="674245979920622322">Та ойрын үед зочлоогүй байна. Chromium <ph name="PERMISSION_1" />, <ph name="PERMISSION_2" /> болон өөр <ph name="COUNT" /> зөвшөөрлийг хассан</translation>
+<translation id="6751374565094704799">Chromium-н V8 системээр сайтыг хурдасгах ч Chromium-г халдлагад арай тэсвэр багатай болгоно. Энэ тохиргоо асаалттай байна.</translation>
 <translation id="67706546131546258">Энэ файл аюултай байж магадгүй тул Chromium үүнийг скан хийхийг зөвлөж байна.</translation>
 <translation id="6779406956731413166">ChromiumOS-г нэмэлт <ph name="BEGIN_LINK_CROS_OSS" />нээлттэй эх кодын программ хангамжаар<ph name="END_LINK_CROS_OSS" /> боломжтой болгосон.</translation>
 <translation id="6831043979455480757">Хөрвүүлэх</translation>
diff --git a/chrome/app/resources/chromium_strings_ms.xtb b/chrome/app/resources/chromium_strings_ms.xtb
index 2fe9fa04..f40cebd 100644
--- a/chrome/app/resources/chromium_strings_ms.xtb
+++ b/chrome/app/resources/chromium_strings_ms.xtb
@@ -342,6 +342,7 @@
 <translation id="5775198138441669627">Jika anda terlupa ungkapan laluan anda atau mahu menukar tetapan ini, <ph name="SETTINGS_LINK" /> data Chromium dalam akaun anda</translation>
 <translation id="5800158606660203929">Sesuaikan dan kawal Chromium. Tetapkan Chromium sebagai lalai anda.</translation>
 <translation id="5809516625706423866">Tidak dapat disambungkan kepada Internet. HTTP 401 Tidak Dibenarkan. Sila semak konfigurasi proksi anda.</translation>
+<translation id="5817952762723416573">Mempercepat laman dengan enjin V8 Chromium tetapi Chromium menjadi kurang tahan sedikit terhadap serangan. Tetapan ini dimatikan.</translation>
 <translation id="5821520528363214608">Untuk menggunakan dan menyimpan data Chromium dalam Google Account anda, kemas kinikan Chromium</translation>
 <translation id="5824893331272123205">Tidak dapat memuatkan panel ini, cuba lagi</translation>
 <translation id="5862307444128926510">Selamat datang ke Chromium</translation>
@@ -431,6 +432,7 @@
 <translation id="6729124504294600478">Untuk mendapatkan pemeribadian dan ciri lain, sertakan Chromium dalam Aktiviti Web &amp; Apl dan perkhidmatan Google terpaut</translation>
 <translation id="6734291798041940871">Chromium telah dipasang untuk semua pengguna pada komputer anda.</translation>
 <translation id="674245979920622322">Anda belum melawati laman web ini baru-baru ini. Chromium mengalih keluar <ph name="PERMISSION_1" />, <ph name="PERMISSION_2" /> dan <ph name="COUNT" /> lagi</translation>
+<translation id="6751374565094704799">Mempercepat laman dengan enjin V8 Chromium tetapi Chromium menjadi kurang tahan sedikit terhadap serangan. Tetapan ini dihidupkan.</translation>
 <translation id="67706546131546258">Chromium mengesyorkan pengimbasan fail ini kerana fail ini mungkin berbahaya.</translation>
 <translation id="6779406956731413166">Chromium OS berjaya dilaksanakan dengan adanya <ph name="BEGIN_LINK_CROS_OSS" />perisian sumber terbuka<ph name="END_LINK_CROS_OSS" /> tambahan.</translation>
 <translation id="6831043979455480757">Terjemah</translation>
diff --git a/chrome/app/resources/chromium_strings_nl.xtb b/chrome/app/resources/chromium_strings_nl.xtb
index 127fb6b..bf99637 100644
--- a/chrome/app/resources/chromium_strings_nl.xtb
+++ b/chrome/app/resources/chromium_strings_nl.xtb
@@ -343,6 +343,7 @@
 <translation id="5775198138441669627">Als je je wachtwoordzin bent vergeten of deze instelling wilt wijzigen, moet je de Chromium-gegevens in je account <ph name="SETTINGS_LINK" /></translation>
 <translation id="5800158606660203929">Pas Chromium aan en beheer de instellingen. Stel Chromium in als je standaardbrowser.</translation>
 <translation id="5809516625706423866">Kan geen verbinding maken met internet. HTTP 401 Niet geautoriseerd. Check je proxyconfiguratie.</translation>
+<translation id="5817952762723416573">Versnelt sites met de V8-engine van Chromium, maar maakt Chromium iets minder goed bestand tegen aanvallen. Deze instelling staat uit.</translation>
 <translation id="5821520528363214608">Update Chromium om Chromium-gegevens te gebruiken en op te slaan in je Google-account</translation>
 <translation id="5824893331272123205">Kan dit deelvenster niet laden. Probeer het opnieuw.</translation>
 <translation id="5862307444128926510">Welkom bij Chromium</translation>
@@ -432,6 +433,7 @@
 <translation id="6729124504294600478">Als je personalisatie en andere functies wilt krijgen, neem je Chromium op in Web- en app-activiteit en gekoppelde Google-services</translation>
 <translation id="6734291798041940871">Chromium is al geïnstalleerd voor alle gebruikers op je computer.</translation>
 <translation id="674245979920622322">Je bent hier niet recent geweest. Chromium heeft <ph name="PERMISSION_1" />, <ph name="PERMISSION_2" /> en nog <ph name="COUNT" /> verwijderd</translation>
+<translation id="6751374565094704799">Versnelt sites met de V8-engine van Chromium, maar maakt Chromium iets minder goed bestand tegen aanvallen. Deze instelling staat aan.</translation>
 <translation id="67706546131546258">Chromium raadt aan dit bestand te scannen omdat het misschien gevaarlijk is.</translation>
 <translation id="6779406956731413166">Chromium OS wordt mogelijk gemaakt door aanvullende <ph name="BEGIN_LINK_CROS_OSS" />opensource-software<ph name="END_LINK_CROS_OSS" />.</translation>
 <translation id="6831043979455480757">Vertalen</translation>
diff --git a/chrome/app/resources/chromium_strings_pa.xtb b/chrome/app/resources/chromium_strings_pa.xtb
index 236d3c6..a9a25c7 100644
--- a/chrome/app/resources/chromium_strings_pa.xtb
+++ b/chrome/app/resources/chromium_strings_pa.xtb
@@ -344,6 +344,7 @@
 <translation id="5775198138441669627">ਜੇ ਤੁਸੀਂ ਆਪਣਾ ਪਾਸਫਰੇਜ਼ ਭੁੱਲ ਗਏ ਹੋ ਜਾਂ ਇਸ ਸੈਟਿੰਗ ਨੂੰ ਬਦਲਣਾ ਚਾਹੁੰਦੇ ਹੋ, ਤਾਂ ਆਪਣੇ ਖਾਤੇ ਵਿੱਚ Chromium ਡਾਟਾ <ph name="SETTINGS_LINK" /></translation>
 <translation id="5800158606660203929">Chromium ਨੂੰ ਵਿਉਂਤਬੱਧ ਕਰਕੇ ਕੰਟਰੋਲ ਕਰੋ। Chromium ਨੂੰ ਆਪਣੇ ਪੂਰਵ-ਨਿਰਧਾਰਿਤ ਬ੍ਰਾਊਜ਼ਰ ਵਜੋਂ ਸੈੱਟ ਕਰੋ।</translation>
 <translation id="5809516625706423866">ਇੰਟਰਨੈੱਟ ਨਾਲ ਕਨੈਕਟ ਨਹੀਂ ਕੀਤਾ ਜਾ ਸਕਿਆ। HTTP 401 ਅਣਅਧਿਕਾਰਿਤ। ਕਿਰਪਾ ਕਰਕੇ ਆਪਣੇ ਪ੍ਰੌਕਸੀ ਸੰਰੂਪਣ ਦੀ ਜਾਂਚ ਕਰੋ।</translation>
+<translation id="5817952762723416573">ਇਸ ਨਾਲ Chromium ਦੇ V8 ਇੰਜਣ ਨਾਲ ਸਾਈਟਾਂ ਦੀ ਗਤੀ ਵਧ ਜਾਂਦੀ ਹੈ, ਪਰ Chromium 'ਤੇ ਹਮਲਿਆਂ ਤੋਂ ਸੁਰੱਖਿਆ ਘਟ ਜਾਂਦੀ ਹੈ। ਇਹ ਸੈਟਿੰਗ ਬੰਦ ਹੈ।</translation>
 <translation id="5821520528363214608">ਆਪਣੇ Google ਖਾਤੇ ਵਿੱਚ Chromium ਡਾਟੇ ਨੂੰ ਵਰਤਣ ਅਤੇ ਰੱਖਿਅਤ ਕਰਨ ਲਈ, Chromium ਨੂੰ ਅੱਪਡੇਟ ਕਰੋ</translation>
 <translation id="5824893331272123205">ਇਸ ਪੈਨਲ ਨੂੰ ਲੋਡ ਨਹੀਂ ਕੀਤਾ ਜਾ ਸਕਿਆ, ਦੁਬਾਰਾ ਕੋਸ਼ਿਸ਼ ਕਰੋ</translation>
 <translation id="5862307444128926510">Chromium ਵਿੱਚ ਸੁਆਗਤ ਹੈ</translation>
@@ -433,6 +434,7 @@
 <translation id="6729124504294600478">ਵਿਅਕਤੀਗਤਕਰਨ ਅਤੇ ਹੋਰ ਵਿਸ਼ੇਸ਼ਤਾਵਾਂ ਲਈ, 'ਵੈੱਬ ਅਤੇ ਐਪ ਸਰਗਰਮੀ' ਅਤੇ ਲਿੰਕ ਕੀਤੀਆਂ Google ਸੇਵਾਵਾਂ ਵਿੱਚ Chromium ਸ਼ਾਮਲ ਕਰੋ</translation>
 <translation id="6734291798041940871">Chromium ਤੁਹਾਡੇ ਕੰਪਿਊਟਰ 'ਤੇ ਪਹਿਲਾਂ ਹੀ ਸਾਰੇ ਵਰਤੋਂਕਾਰਾਂ ਲਈ ਸਥਾਪਤ ਕੀਤਾ ਗਿਆ ਹੈ।</translation>
 <translation id="674245979920622322">ਜਿਨ੍ਹਾਂ 'ਤੇ ਤੁਸੀਂ ਹਾਲ ਹੀ ਵਿੱਚ ਨਹੀਂ ਗਏ ਹੋ। Chromium ਨੇ <ph name="PERMISSION_1" />, <ph name="PERMISSION_2" />, ਅਤੇ <ph name="COUNT" /> ਹੋਰ ਨੂੰ ਹਟਾ ਦਿੱਤਾ ਹੈ</translation>
+<translation id="6751374565094704799">ਇਸ ਨਾਲ Chromium ਦੇ V8 ਇੰਜਣ ਨਾਲ ਸਾਈਟਾਂ ਦੀ ਗਤੀ ਵਧ ਜਾਂਦੀ ਹੈ, ਪਰ Chromium 'ਤੇ ਹਮਲਿਆਂ ਤੋਂ ਸੁਰੱਖਿਆ ਘਟ ਜਾਂਦੀ ਹੈ। ਇਹ ਸੈਟਿੰਗ ਚਾਲੂ ਹੈ।</translation>
 <translation id="67706546131546258">Chromium ਵੱਲੋਂ ਇਸ ਫ਼ਾਈਲ ਨੂੰ ਸਕੈਨ ਕਰਨ ਦੀ ਸਿਫ਼ਾਰਸ਼ ਕੀਤੀ ਜਾਂਦੀ ਹੈ ਕਿਉਂਕਿ ਇਹ ਹਾਨੀਕਾਰਕ ਹੋ ਸਕਦੀ ਹੈ।</translation>
 <translation id="6779406956731413166">ChromiumOS ਨੂੰ ਵਧੀਕ <ph name="BEGIN_LINK_CROS_OSS" />ਖੁੱਲ੍ਹੇ ਸਰੋਤ ਸਾਫ਼ਟਵੇਅਰ<ph name="END_LINK_CROS_OSS" /> ਕਰਕੇ ਸੰਭਵ ਬਣਾਇਆ ਗਿਆ ਹੈ।</translation>
 <translation id="6831043979455480757">ਅਨੁਵਾਦ ਕਰੋ</translation>
diff --git a/chrome/app/resources/chromium_strings_pl.xtb b/chrome/app/resources/chromium_strings_pl.xtb
index cfa7746..0b0d75b 100644
--- a/chrome/app/resources/chromium_strings_pl.xtb
+++ b/chrome/app/resources/chromium_strings_pl.xtb
@@ -339,6 +339,7 @@
 <translation id="5775198138441669627">Jeśli zapomnisz hasło lub zechcesz zmienić to ustawienie, <ph name="SETTINGS_LINK" /> dane Chromium na swoim koncie</translation>
 <translation id="5800158606660203929">Dostosuj i kontroluj Chromium. Ustaw Chromium jako przeglądarkę domyślną.</translation>
 <translation id="5809516625706423866">Nie można połączyć się z internetem. Kod HTTP 401 (Brak autoryzacji). Sprawdź konfigurację proxy.</translation>
+<translation id="5817952762723416573">Witryny będą działać szybciej dzięki mechanizmowi V8 w przeglądarce Chromium, ale będzie ona trochę mniej odporna na ataki. To ustawienie jest wyłączone.</translation>
 <translation id="5821520528363214608">Zaktualizuj Chromium, aby móc zapisywać dane z niego na koncie Google i ich używać</translation>
 <translation id="5824893331272123205">Nie udało się załadować tego panelu. Spróbuj ponownie</translation>
 <translation id="5862307444128926510">Chromium – witamy!</translation>
@@ -428,6 +429,7 @@
 <translation id="6729124504294600478">Aby korzystać z personalizacji i innych funkcji, uwzględnij Chromium w Aktywności w internecie i aplikacjach oraz w połączonych usługach Google</translation>
 <translation id="6734291798041940871">Chromium jest już zainstalowany dla wszystkich użytkowników tego komputera.</translation>
 <translation id="674245979920622322">Ta witryna nie była przez Ciebie ostatnio odwiedzana. Przeglądarka Chromium usunęła te uprawnienia: <ph name="PERMISSION_1" />, <ph name="PERMISSION_2" /> i jeszcze <ph name="COUNT" />.</translation>
+<translation id="6751374565094704799">Witryny będą działać szybciej dzięki mechanizmowi V8 w przeglądarce Chromium, ale będzie ona trochę mniej odporna na ataki. To ustawienie jest włączone.</translation>
 <translation id="67706546131546258">Chromium zaleca przeskanowanie tego pliku, bo może on być niebezpieczny.</translation>
 <translation id="6779406956731413166">Opracowanie systemu operacyjnego Chromium było możliwe dzięki dodatkowemu <ph name="BEGIN_LINK_CROS_OSS" />oprogramowaniu open source<ph name="END_LINK_CROS_OSS" />.</translation>
 <translation id="6831043979455480757">Tłumacz</translation>
diff --git a/chrome/app/resources/chromium_strings_pt-PT.xtb b/chrome/app/resources/chromium_strings_pt-PT.xtb
index 1984934..fdcea3d0 100644
--- a/chrome/app/resources/chromium_strings_pt-PT.xtb
+++ b/chrome/app/resources/chromium_strings_pt-PT.xtb
@@ -342,6 +342,7 @@
 <translation id="5775198138441669627">Se se esqueceu da frase de acesso ou quiser alterar esta definição, <ph name="SETTINGS_LINK" /> os dados do Chromium na sua conta</translation>
 <translation id="5800158606660203929">Personalize e controle o Chromium. Defina o Chromium como o navegador predefinido.</translation>
 <translation id="5809516625706423866">Não é possível ligar à Internet. HTTP 401 não autorizado. Verifique a sua configuração de proxy.</translation>
+<translation id="5817952762723416573">Acelera os sites com o motor V8 do Chromium, mas torna o Chromium ligeiramente menos resistente a ataques. Esta definição está desativada.</translation>
 <translation id="5821520528363214608">Para usar e guardar dados do Chromium na sua Conta Google, atualize o Chromium</translation>
 <translation id="5824893331272123205">Não foi possível carregar este painel. Tente novamente</translation>
 <translation id="5862307444128926510">Bem-vindo ao Chromium</translation>
@@ -431,6 +432,7 @@
 <translation id="6729124504294600478">Para usar a personalização e outras funcionalidades, inclua o Chromium na Atividade da Web e de apps e nos serviços Google associados</translation>
 <translation id="6734291798041940871">O Chromium já está instalado para todos os utilizadores no seu computador.</translation>
 <translation id="674245979920622322">Não visitou o site recentemente. O Chromium removeu <ph name="PERMISSION_1" />, <ph name="PERMISSION_2" /> e mais <ph name="COUNT" /></translation>
+<translation id="6751374565094704799">Acelera os sites com o motor V8 do Chromium, mas torna o Chromium ligeiramente menos resistente a ataques. Esta definição está ativada.</translation>
 <translation id="67706546131546258">O Chromium recomenda que analise este ficheiro porque pode ser perigoso.</translation>
 <translation id="6779406956731413166">A criação do ChromiumOS foi possível devido a <ph name="BEGIN_LINK_CROS_OSS" />software de código aberto<ph name="END_LINK_CROS_OSS" /> adicional.</translation>
 <translation id="6831043979455480757">Traduzir</translation>
diff --git a/chrome/app/resources/chromium_strings_ro.xtb b/chrome/app/resources/chromium_strings_ro.xtb
index ce1803e..5e2b7a1 100644
--- a/chrome/app/resources/chromium_strings_ro.xtb
+++ b/chrome/app/resources/chromium_strings_ro.xtb
@@ -342,6 +342,7 @@
 <translation id="5775198138441669627">Dacă uiți expresia de acces sau dorești să modifici această setare, <ph name="SETTINGS_LINK" /> datele Chromium din cont</translation>
 <translation id="5800158606660203929">Personalizează și controlează Chromium. Setează Chromium ca prestabilit.</translation>
 <translation id="5809516625706423866">Nu se poate realiza conexiunea la internet. HTTP Eroare 401 – Acces neautorizat. Verifică-ți configurația de proxy.</translation>
+<translation id="5817952762723416573">Accelerează site-urile cu motorul V8 din Chromium, dar reduce ușor rezistența Chromium la atacuri. Setarea este dezactivată.</translation>
 <translation id="5821520528363214608">Pentru a folosi și a salva datele Chromium în Contul Google, actualizează Chromium</translation>
 <translation id="5824893331272123205">Nu s-a putut încărca panoul. Încearcă din nou.</translation>
 <translation id="5862307444128926510">Bun venit la Chromium</translation>
@@ -431,6 +432,7 @@
 <translation id="6729124504294600478">Pentru a beneficia de personalizare și alte funcții, include Chromium în Activitatea de pe web și din aplicații și în serviciile Google conectate</translation>
 <translation id="6734291798041940871">Chromium este instalat deja pentru toți utilizatorii de pe computerul tău.</translation>
 <translation id="674245979920622322">Nu ai accesat recent site-ul. Chromium a eliminat <ph name="PERMISSION_1" />, <ph name="PERMISSION_2" /> și încă <ph name="COUNT" />.</translation>
+<translation id="6751374565094704799">Accelerează site-urile cu motorul V8 din Chromium, dar reduce ușor rezistența Chromium la atacuri. Setarea este activată.</translation>
 <translation id="67706546131546258">Chromium îți recomandă să scanezi acest fișier, deoarece ar putea fi periculos.</translation>
 <translation id="6779406956731413166">Sistemul de operare Chromium este posibil datorită unui <ph name="BEGIN_LINK_CROS_OSS" />software open source<ph name="END_LINK_CROS_OSS" /> suplimentar.</translation>
 <translation id="6831043979455480757">Tradu</translation>
diff --git a/chrome/app/resources/chromium_strings_sr-Latn.xtb b/chrome/app/resources/chromium_strings_sr-Latn.xtb
index 8944c4e0..c71e3ce 100644
--- a/chrome/app/resources/chromium_strings_sr-Latn.xtb
+++ b/chrome/app/resources/chromium_strings_sr-Latn.xtb
@@ -344,6 +344,7 @@
 <translation id="5775198138441669627">Ako ste zaboravili pristupnu frazu ili želite da promenite ovo podešavanje, <ph name="SETTINGS_LINK" /> Chromium podatke na nalogu</translation>
 <translation id="5800158606660203929">Prilagodite i kontrolišite Chromium. Podesite Chromium kao podrazumevani pregledač.</translation>
 <translation id="5809516625706423866">Povezivanje sa internetom nije uspelo. Nije ovlašćen pristup (HTTP 401). Proverite konfiguraciju proksija.</translation>
+<translation id="5817952762723416573">Ubrzava sajtove uz Chromium mehanizam V8, ali čini Chromium malo manje otpornim na napade. Ovo podešavanje je isključeno.</translation>
 <translation id="5821520528363214608">Da biste koristili i čuvali Chromium podatke na Google nalogu, ažurirajte Chromium</translation>
 <translation id="5824893331272123205">Učitavanje ovog okna nije uspelo. Probajte ponovo</translation>
 <translation id="5862307444128926510">Dobro došli u Chromium</translation>
@@ -433,6 +434,7 @@
 <translation id="6729124504294600478">Da biste dobili personalizaciju i druge funkcije, uvrstite Chromium u aktivnosti na vebu i u aplikacijama i povezane Google usluge</translation>
 <translation id="6734291798041940871">Chromium je već instaliran za sve korisnike na računaru.</translation>
 <translation id="674245979920622322">Niste skoro posećivali sajt. Chromium je uklonio dozvole <ph name="PERMISSION_1" /> i <ph name="PERMISSION_2" /> i još <ph name="COUNT" /></translation>
+<translation id="6751374565094704799">Ubrzava sajtove uz Chromium mehanizam V8, ali čini Chromium malo manje otpornim na napade. Ovo podešavanje je uključeno.</translation>
 <translation id="67706546131546258">Chromium preporučuje skeniranje ovog fajla jer može da bude opasan.</translation>
 <translation id="6779406956731413166">Chromium OS omogućava dodatni <ph name="BEGIN_LINK_CROS_OSS" />softver otvorenog koda<ph name="END_LINK_CROS_OSS" />.</translation>
 <translation id="6831043979455480757">Prevedi</translation>
diff --git a/chrome/app/resources/chromium_strings_sr.xtb b/chrome/app/resources/chromium_strings_sr.xtb
index 5ae7c57a..0499229 100644
--- a/chrome/app/resources/chromium_strings_sr.xtb
+++ b/chrome/app/resources/chromium_strings_sr.xtb
@@ -344,6 +344,7 @@
 <translation id="5775198138441669627">Ако сте заборавили приступну фразу или желите да промените ово подешавање, <ph name="SETTINGS_LINK" /> Chromium податке на налогу</translation>
 <translation id="5800158606660203929">Прилагодите и контролишите Chromium. Подесите Chromium као подразумевани прегледач.</translation>
 <translation id="5809516625706423866">Повезивање са интернетом није успело. Није овлашћен приступ (HTTP 401). Проверите конфигурацију проксија.</translation>
+<translation id="5817952762723416573">Убрзава сајтове уз Chromium механизам V8, али чини Chromium мало мање отпорним на нападе. Ово подешавање је искључено.</translation>
 <translation id="5821520528363214608">Да бисте користили и чували Chromium податке на Google налогу, ажурирајте Chromium</translation>
 <translation id="5824893331272123205">Учитавање овог окна није успело. Пробајте поново</translation>
 <translation id="5862307444128926510">Добро дошли у Chromium</translation>
@@ -433,6 +434,7 @@
 <translation id="6729124504294600478">Да бисте добили персонализацију и друге функције, уврстите Chromium у активности на вебу и у апликацијама и повезане Google услуге</translation>
 <translation id="6734291798041940871">Chromium је већ инсталиран за све кориснике на рачунару.</translation>
 <translation id="674245979920622322">Нисте скоро посећивали сајт. Chromium је уклонио дозволе <ph name="PERMISSION_1" /> и <ph name="PERMISSION_2" /> и још <ph name="COUNT" /></translation>
+<translation id="6751374565094704799">Убрзава сајтове уз Chromium механизам V8, али чини Chromium мало мање отпорним на нападе. Ово подешавање је укључено.</translation>
 <translation id="67706546131546258">Chromium препоручује скенирање овог фајла јер може да буде опасан.</translation>
 <translation id="6779406956731413166">Chromium ОС омогућава додатни <ph name="BEGIN_LINK_CROS_OSS" />софтвер отвореног кода<ph name="END_LINK_CROS_OSS" />.</translation>
 <translation id="6831043979455480757">Преведи</translation>
diff --git a/chrome/app/resources/chromium_strings_th.xtb b/chrome/app/resources/chromium_strings_th.xtb
index c09b400..76de25c 100644
--- a/chrome/app/resources/chromium_strings_th.xtb
+++ b/chrome/app/resources/chromium_strings_th.xtb
@@ -341,6 +341,7 @@
 <translation id="5775198138441669627">หากลืมรหัสผ่านหรือต้องการเปลี่ยนการตั้งค่านี้ ให้<ph name="SETTINGS_LINK" />ข้อมูล Chromium ในบัญชี</translation>
 <translation id="5800158606660203929">ปรับแต่งและควบคุม Chromium ตั้ง Chromium เป็นเบราว์เซอร์เริ่มต้น</translation>
 <translation id="5809516625706423866">เชื่อมต่อกับอินเทอร์เน็ตไม่ได้ HTTP 401 Unauthorized โปรดตรวจสอบการกำหนดค่าพร็อกซีของคุณ</translation>
+<translation id="5817952762723416573">เพิ่มความเร็วให้เว็บไซต์ด้วยเครื่องมือ V8 ของ Chromium แต่ทำให้ Chromium ต้านทานการโจมตีได้น้อยลงเล็กน้อย การตั้งค่านี้ปิดอยู่</translation>
 <translation id="5821520528363214608">โปรดอัปเดต Chromium เพื่อใช้และบันทึกข้อมูล Chromium ลงในบัญชี Google</translation>
 <translation id="5824893331272123205">โหลดแผงนี้ไม่ได้ โปรดลองอีกครั้ง</translation>
 <translation id="5862307444128926510">ยินดีต้อนรับสู่ Chromium</translation>
@@ -430,6 +431,7 @@
 <translation id="6729124504294600478">รวม Chromium ไว้ในกิจกรรมบนเว็บและแอป ตลอดจนบริการของ Google ที่ลิงก์ไว้เพื่อรับการปรับเปลี่ยนในแบบของคุณและฟีเจอร์อื่นๆ</translation>
 <translation id="6734291798041940871">มีการติดตั้ง Chromium สำหรับผู้ใช้ทุกคนบนคอมพิวเตอร์ของคุณแล้ว</translation>
 <translation id="674245979920622322">คุณไม่ได้เข้าชมเมื่อเร็วๆ นี้ Chromium นำสิทธิ์เข้าถึง<ph name="PERMISSION_1" /> <ph name="PERMISSION_2" /> และอีก <ph name="COUNT" /> รายการออกแล้ว</translation>
+<translation id="6751374565094704799">เพิ่มความเร็วให้เว็บไซต์ด้วยเครื่องมือ V8 ของ Chromium แต่ทำให้ Chromium ต้านทานการโจมตีได้น้อยลงเล็กน้อย การตั้งค่านี้เปิดอยู่</translation>
 <translation id="67706546131546258">Chromium แนะนำให้สแกนไฟล์นี้เนื่องจากอาจเป็นอันตราย</translation>
 <translation id="6779406956731413166">Chromium OS เกิดขึ้นได้ด้วยการสนับสนุนจาก<ph name="BEGIN_LINK_CROS_OSS" />ซอฟต์แวร์โอเพนซอร์ส<ph name="END_LINK_CROS_OSS" />อื่นเพิ่มเติม</translation>
 <translation id="6831043979455480757">แปลภาษา</translation>
diff --git a/chrome/app/resources/chromium_strings_vi.xtb b/chrome/app/resources/chromium_strings_vi.xtb
index 2e17f1e..e830398 100644
--- a/chrome/app/resources/chromium_strings_vi.xtb
+++ b/chrome/app/resources/chromium_strings_vi.xtb
@@ -342,6 +342,7 @@
 <translation id="5775198138441669627">Nếu bạn quên cụm mật khẩu hoặc muốn thay đổi chế độ cài đặt này, hãy <ph name="SETTINGS_LINK" /> dữ liệu Chromium trong tài khoản của bạn</translation>
 <translation id="5800158606660203929">Tuỳ chỉnh và kiểm soát Chromium. Đặt Chromium làm trình duyệt mặc định.</translation>
 <translation id="5809516625706423866">Không thể kết nối với Internet. HTTP 401 không được phép. Vui lòng kiểm tra cấu hình proxy.</translation>
+<translation id="5817952762723416573">Tăng tốc độ tải trang web bằng công cụ V8 của Chromium nhưng làm giảm khả năng chống lại các cuộc tấn công của Chromium. Chế độ cài đặt này đang tắt.</translation>
 <translation id="5821520528363214608">Để sử dụng và lưu dữ liệu Chromium trong Tài khoản Google, hãy cập nhật Chromium</translation>
 <translation id="5824893331272123205">Không tải được bảng điều khiển này, hãy thử lại</translation>
 <translation id="5862307444128926510">Chào mừng bạn đến với Chromium</translation>
@@ -431,6 +432,7 @@
 <translation id="6729124504294600478">Để sử dụng chế độ cá nhân hoá và các tính năng khác, hãy thêm Chromium vào mục Hoạt động trên web và ứng dụng cũng như các dịch vụ của Google được liên kết</translation>
 <translation id="6734291798041940871">Chromium đã được cài đặt cho tất cả người dùng trên máy tính của bạn.</translation>
 <translation id="674245979920622322">Gần đây bạn không truy cập trang web này. Chromium đã xoá <ph name="PERMISSION_1" />, <ph name="PERMISSION_2" /> và <ph name="COUNT" /> quyền khác</translation>
+<translation id="6751374565094704799">Tăng tốc độ tải trang web bằng công cụ V8 của Chromium nhưng làm giảm khả năng chống lại các cuộc tấn công của Chromium. Chế độ cài đặt này đang bật.</translation>
 <translation id="67706546131546258">Chromium đề xuất quét tệp này vì tệp này có thể nguy hiểm.</translation>
 <translation id="6779406956731413166">ChromiumOS có thể hoạt động được là nhờ <ph name="BEGIN_LINK_CROS_OSS" />phần mềm nguồn mở<ph name="END_LINK_CROS_OSS" /> bổ sung.</translation>
 <translation id="6831043979455480757">Dịch</translation>
diff --git a/chrome/app/resources/chromium_strings_zh-HK.xtb b/chrome/app/resources/chromium_strings_zh-HK.xtb
index 1ee2dce..c83a1c46 100644
--- a/chrome/app/resources/chromium_strings_zh-HK.xtb
+++ b/chrome/app/resources/chromium_strings_zh-HK.xtb
@@ -343,6 +343,7 @@
 <translation id="5775198138441669627">如果忘記密碼短語或想變更此設定,請<ph name="SETTINGS_LINK" />帳戶中的 Chromium 資料</translation>
 <translation id="5800158606660203929">自訂及控制 Chromium。將 Chromium 設定為預設瀏覽器。</translation>
 <translation id="5809516625706423866">無法連線至互聯網。發生 HTTP 401 未授權錯誤,請檢查 Proxy 設定。</translation>
+<translation id="5817952762723416573">使用 Chromium 的 V8 引擎加快網站速度,但 Chromium 防攻擊的能力會略為下降。此設定已關閉。</translation>
 <translation id="5821520528363214608">如要將 Chromium 的資料儲存至 Google 帳戶及使用這類資料,請更新 Chromium</translation>
 <translation id="5824893331272123205">無法載入此面板,請再試一次</translation>
 <translation id="5862307444128926510">歡迎使用 Chromium</translation>
@@ -432,6 +433,7 @@
 <translation id="6729124504294600478">如要取得個人化和其他功能,請將 Chromium 加入「網絡和應用程式活動記錄」以及連結的 Google 服務</translation>
 <translation id="6734291798041940871">已為您電腦上的所有使用者安裝 Chromium。</translation>
 <translation id="674245979920622322">由於最近沒有瀏覽記錄,Chromium 已移除<ph name="PERMISSION_1" />、<ph name="PERMISSION_2" />和另外 <ph name="COUNT" /> 項權限</translation>
+<translation id="6751374565094704799">使用 Chromium 的 V8 引擎加快網站速度,但 Chromium 防攻擊的能力會略為下降。此設定已開啟。</translation>
 <translation id="67706546131546258">此檔案可能不安全,因此 Chromium 建議掃瞄檔案。</translation>
 <translation id="6779406956731413166">Chromium 作業系統得以面世,有賴其他<ph name="BEGIN_LINK_CROS_OSS" />開放原始碼軟件<ph name="END_LINK_CROS_OSS" />。</translation>
 <translation id="6831043979455480757">翻譯</translation>
diff --git a/chrome/app/resources/chromium_strings_zh-TW.xtb b/chrome/app/resources/chromium_strings_zh-TW.xtb
index 5102c74..5ad4775 100644
--- a/chrome/app/resources/chromium_strings_zh-TW.xtb
+++ b/chrome/app/resources/chromium_strings_zh-TW.xtb
@@ -341,6 +341,7 @@
 <translation id="5775198138441669627">如果忘記通關密語或想變更這項設定,請<ph name="SETTINGS_LINK" />帳戶中的 Chromium 資料</translation>
 <translation id="5800158606660203929">自訂及管理 Chromium。將 Chromium 設為預設瀏覽器。</translation>
 <translation id="5809516625706423866">無法連線至網際網路。發生 HTTP 401 未授權錯誤,請檢查 Proxy 設定。</translation>
+<translation id="5817952762723416573">使用 Chromium 的 V8 引擎加快網站速度,但 Chromium 防範攻擊的能力會稍微降低。這項設定已關閉。</translation>
 <translation id="5821520528363214608">如要將 Chromium 資料儲存到 Google 帳戶,或使用帳戶中的 Chromium 資料,請更新 Chromium</translation>
 <translation id="5824893331272123205">無法載入這個面板,請再試一次</translation>
 <translation id="5862307444128926510">歡迎使用 Chromium</translation>
@@ -430,6 +431,7 @@
 <translation id="6729124504294600478">如要享有個人化服務和其他功能,請在「網路和應用程式活動」與「已連結的 Google 服務」中納入 Chromium</translation>
 <translation id="6734291798041940871">電腦上的所有使用者都已經安裝 Chromium 了。</translation>
 <translation id="674245979920622322">由於近期沒有造訪記錄,Chromium 已移除「<ph name="PERMISSION_1" />」、「<ph name="PERMISSION_2" />」和另外 <ph name="COUNT" /> 項權限</translation>
+<translation id="6751374565094704799">使用 Chromium 的 V8 引擎加快網站速度,但 Chromium 防範攻擊的能力會稍微降低。這項設定已開啟。</translation>
 <translation id="67706546131546258">這個檔案可能有危險內容,因此 Chromium 建議掃描檔案。</translation>
 <translation id="6779406956731413166">Chromium OS 受惠於其他<ph name="BEGIN_LINK_CROS_OSS" />開放原始碼軟體<ph name="END_LINK_CROS_OSS" />技術才能成功發布。</translation>
 <translation id="6831043979455480757">翻譯</translation>
diff --git a/chrome/app/resources/chromium_strings_zu.xtb b/chrome/app/resources/chromium_strings_zu.xtb
index bb4f71f..3150a0a 100644
--- a/chrome/app/resources/chromium_strings_zu.xtb
+++ b/chrome/app/resources/chromium_strings_zu.xtb
@@ -343,6 +343,7 @@
 <translation id="5775198138441669627">Uma ukhohlwa umushwana wakho wokungena noma ufuna ukushintsha le sethingi, <ph name="SETTINGS_LINK" /> idatha yeChromium ku-akhawunti yakho</translation>
 <translation id="5800158606660203929">Yenza ngokwezifiso uphinde ulawule i-Chromium. Setha i-Chromium njengokwakho okuzenzakalelayo.</translation>
 <translation id="5809516625706423866">Ayikwazi ukuxhuma ku-inthanethi I-HTTP 401 Ayigunyaziwe. Sicela uchekhe ukulungiselelwa kommeleli wakho.</translation>
+<translation id="5817952762723416573">Isheshisa amasayithi ngenjini yeChromium V8 kodwa yenza iChromium imelane kancane nokuhlaselwa. Le sethingi livaliwe.</translation>
 <translation id="5821520528363214608">Ukuze usebenzise futhi ulondoloze idatha yeChromium kuGoogle Account yakho, buyekeza iChromium</translation>
 <translation id="5824893331272123205">Ayikwazanga ukulayisha leli phaneli, zama futhi</translation>
 <translation id="5862307444128926510">Siyakwamukela ku-Chromium</translation>
@@ -432,6 +433,7 @@
 <translation id="6729124504294600478">Ukuze uthole ukwenza ngokomuntu ngamunye nezinye izakhi, ezifaka i-Chromium Kumsebenzi wewebhu nowe-app nakumasevisi alinkiwe e-Google</translation>
 <translation id="6734291798041940871">I-Chromium isivele ifakiwe kubo bonke abasebenzisi kukhompuyutha yakho.</translation>
 <translation id="674245979920622322">Awukavakashi kamuva nje. I-Chromium isuse i-<ph name="PERMISSION_1" />, <ph name="PERMISSION_2" />, nokungu-<ph name="COUNT" /> ngaphezulu</translation>
+<translation id="6751374565094704799">Isheshisa amasayithi ngenjini yeChromium V8 kodwa yenza iChromium imelane kancane nokuhlaselwa. Le sethingi livuliwe.</translation>
 <translation id="67706546131546258">I-Chromium incoma ukuthi uskene leli fayela ngenxa yokuthi kungenzeka ukuthi liyingozi.</translation>
 <translation id="6779406956731413166">I-ChromiumOS yenziwa yenzeke yi-<ph name="BEGIN_LINK_CROS_OSS" />isofthiwe yomthombo ovulekile<ph name="END_LINK_CROS_OSS" /> engeziwe.</translation>
 <translation id="6831043979455480757">Humusha</translation>
diff --git a/chrome/app/resources/generated_resources_af.xtb b/chrome/app/resources/generated_resources_af.xtb
index 8d33033..68fda2d 100644
--- a/chrome/app/resources/generated_resources_af.xtb
+++ b/chrome/app/resources/generated_resources_af.xtb
@@ -5996,7 +5996,6 @@
 <translation id="5186381005592669696">Pasmaak vertoontaal vir gesteunde apps</translation>
 <translation id="5186788525428341874">Jy kan hierdie toegangsleutel gebruik om vinniger oor al jou toestelle aan te meld. Dit sal vir <ph name="ACCOUNT_NAME" /> in Google Wagwoordbestuurder gestoor word.</translation>
 <translation id="5187641678926990264">&amp;Installeer bladsy as app …</translation>
-<translation id="5187671830619031922">Voeg oortjie by om aansig te verdeel</translation>
 <translation id="5187826826541650604"><ph name="KEY_NAME" /> (<ph name="DEVICE" />)</translation>
 <translation id="5188242000716462162">Gedeel deur <ph name="USER_NAME" /></translation>
 <translation id="5188648870018555788">Gebruik ligging. Laat ChromeOS en Android-apps, webwerwe en dienste met liggingtoestemming toe om jou toestel se ligging te gebruik. Liggingakkuraatheid verskaf ’n akkurater ligging vir Android-apps en -dienste. Om dit te doen, verwerk Google van tyd tot tyd inligting oor toestelsensors en draadlose seine vanaf jou toestel om draadloseseinliggings met skareverkryging te kry. Dit word gebruik, sonder om jou te identifiseer, om liggingakkuraatheid en ligginggegronde dienste te verbeter en om Google se dienste te verbeter, te verskaf en te handhaaf op grond van Google en derde partye se wettige belange om in gebruikers se behoeftes te voorsien. <ph name="BEGIN_LINK1" />Kry meer inligting oor die gebruik van ligging<ph name="END_LINK1" /></translation>
@@ -9021,6 +9020,7 @@
 <translation id="7387951778417998929">Om 'n ander soekenjin as die verstek te gebruik, moet jy sy kortpad by die adresbalk intik gevolg deur jou voorkeurkortpadsleutel. Jy kan ook jou versteksoekenjin hier verander.</translation>
 <translation id="7388615499319468910">Werwe en adverteerders kan verstaan hoe advertensies vaar. Hierdie instelling is af.</translation>
 <translation id="738903649531469042">Voeg oortjie by Leeslys</translation>
+<translation id="7389615853658756494">Verander dit op die werf</translation>
 <translation id="7392118418926456391">Virusskandering het misluk</translation>
 <translation id="7392915005464253525">Maak geslote venster weer oop</translation>
 <translation id="7393073300870882456">{COUNT,plural, =1{1 item is gekopieer}other{{COUNT} items is gekopieer}}</translation>
@@ -9150,6 +9150,7 @@
 <translation id="7474043404939621342">Pasmaak jou nutsbalk</translation>
 <translation id="747459581954555080">Stel alles terug</translation>
 <translation id="747507174130726364">{NUM_DAYS,plural, =1{Onmiddellike terugsending word vereis}other{Stuur <ph name="DEVICE_TYPE" /> binne {NUM_DAYS} dae terug}}</translation>
+<translation id="747557463733380256">Kry meer inligting oor hoe jou blaaier bestuur word</translation>
 <translation id="7475671414023905704">Netscape se verlorewagwoord-URL</translation>
 <translation id="7475742997309661417">Die skermleser op ChromeOS, ChromeVox, word hoofsaaklik deur mense met blindheid of swak sig gebruik om teks wat op die skerm vertoon word met ’n spraaksintetiseerder of brailleskerm te lees. Druk en hou albei volumesleutels vyf sekondes lank om ChromeVox aan te skakel. Jy sal deur ’n vinnige toer gaan wanneer ChromeVox geaktiveer is.</translation>
 <translation id="7476454130948140105">Die battery is te pap om op te dateer (<ph name="BATTERY_PERCENT" />%)</translation>
@@ -10298,6 +10299,7 @@
 <translation id="8265018477030547118">Net op hierdie toestel</translation>
 <translation id="826511437356419340">Het in vensteroorsigmodus ingegaan. Swiep om te navigeer of druk Tab as jy 'n sleutelbord gebruik.</translation>
 <translation id="8265671588726449108">{COUNT,plural, =1{Jou Incognito-venster sal nie oopmaak nadat jy herbegin het nie}other{Jou {COUNT} Incognito-vensters sal nie oopmaak nadat jy herbegin het nie}}</translation>
+<translation id="8266430295499893285">Jy moet verifieer dat dit jy is voordat jy toegang tot jou wagwoorde kan kry</translation>
 <translation id="8266947622852630193">Alle invoermetodes</translation>
 <translation id="8267539814046467575">Voeg drukker by</translation>
 <translation id="8267961145111171918"><ph name="BEGIN_PARAGRAPH1" />Dit is algemene inligting oor hierdie toestel en hoe dit gebruik word (soos batteryvlak, stelsel- en programaktiwiteit, en foute). Die data sal gebruik word om Android te verbeter, en van die saamgestelde inligting sal ook Google-programme en -vennote, soos Android-ontwikkelaars, help om hul programme en produkte beter te maak.<ph name="END_PARAGRAPH1" />
@@ -11107,7 +11109,6 @@
 <translation id="8827125715368568315">Het <ph name="PERMISSION" /> en nog <ph name="COUNT" /> geblokkeer</translation>
 <translation id="8827289157496676362">Speld uitbreiding vas</translation>
 <translation id="8828933418460119530">DNS-naam</translation>
-<translation id="8829979393064090868">Voeg oortjie by om aansig te verdeel</translation>
 <translation id="8830479210602243906">Gee produktiwiteit ’n hupstoot</translation>
 <translation id="883062543841130884">Plaasvervangers</translation>
 <translation id="8830779999439981481">Herbegin tans om opdaterings toe te pas</translation>
diff --git a/chrome/app/resources/generated_resources_am.xtb b/chrome/app/resources/generated_resources_am.xtb
index bad1698..9e0d123 100644
--- a/chrome/app/resources/generated_resources_am.xtb
+++ b/chrome/app/resources/generated_resources_am.xtb
@@ -5990,7 +5990,6 @@
 <translation id="5186381005592669696">ለሚደገፉ መተግበሪያዎች የማሳያ ቋንቋ ያብጁ</translation>
 <translation id="5186788525428341874">በመሣሪያዎችዎ ላይ በፍጥነት ለመግባት ይህን የይለፍ ቁልፍ መጠቀም ይችላሉ። ለ<ph name="ACCOUNT_NAME" /> በGoogle የይለፍ ቃል አስተዳዳሪ ላይ ይቀመጣል።</translation>
 <translation id="5187641678926990264">ገጽን እንደ መተግበሪያ &amp;ጫን...</translation>
-<translation id="5187671830619031922">ትርን ወደ የተከፋፈለ ዕይታ ማከል</translation>
 <translation id="5187826826541650604"><ph name="KEY_NAME" /> (<ph name="DEVICE" />)</translation>
 <translation id="5188242000716462162">በ<ph name="USER_NAME" /> የተጋራ</translation>
 <translation id="5188648870018555788">አካባቢን ይጠቀሙ። የአካባቢ ፈቃድ ያላቸው የChromeOS እና የAndroid መተግበሪያዎች፣ ድር ጣቢያዎች እና አገልግሎቶች የእርስዎን የመሣሪያ አካባቢ እንዲጠቀሙ ይፍቀዱ። የአካባቢ ትክክለኛነት ለAndroid መተግበሪያዎች እና አገልግሎቶች ይበልጥ ትክክለኛ አካባቢን ያቀርባል። ይህን ለማድረግ Google የገመድ-አልባ ምልክት አካባቢዎችን ከብዙ ሰዎች ምንጭ ለማውጣጣት በየጊዜው የመሣሪያ ዳሳሾች እና የገመድ-አልባ ምልክቶች መረጃን ከመሣሪያዎ ያሰናዳል። እነዚህ እርስዎን ሳይለዩ ጥቅም ላይ የሚውሉት የአካባቢ ትክክለኛነትን እና አካባቢን መሠረት ያደረጉ አገልግሎቶችን ለማሻሻል እና የተጠቃሚዎችን ፍላጎቶች ለማገልገል በGoogle እና በሦስተኛ ወገኖች ሕጋዊ ፍላጎቶች ላይ በመመሥረት የGoogle አገልግሎቶችን ለማሻሻል፣ ለማቅረብ እና ለማቆየት ነው። <ph name="BEGIN_LINK1" />አካባቢን ስለመጠቀም የበለጠ ይወቁ<ph name="END_LINK1" /></translation>
@@ -9017,6 +9016,7 @@
 <translation id="7387951778417998929">ከነባሪው በተለየ የፍለጋ ፕሮግራም ለመጠቀም የእርስዎን ተመራጭ የቁልፍ ሰሌዳ አቋራጭን በማስከተል በአድራሻ አሞሌው ውስጥ አቋራጩን ይተይቡ። እንዲሁም ነባሪ የፍለጋ ፕሮግራምዎን እዚህ መለወጥ ይችላሉ።</translation>
 <translation id="7388615499319468910">ጣቢያዎች እና አስተዋዋቂዎች የማስታወቂያዎች አፈጻጸም እንዴት እንደሆነ መረዳት ይችላሉ። ይህ ቅንብር ጠፍቷል።</translation>
 <translation id="738903649531469042">ትርን ወደ የንባብ ዝርዝር ያክሉ</translation>
+<translation id="7389615853658756494">ጣቢያው ላይ ይለውጡት</translation>
 <translation id="7392118418926456391">የቫይረስ ቅኝት አልተሳካም</translation>
 <translation id="7392915005464253525">የተ&amp;ዘጋውን መስኮት ዳግም ክፈት</translation>
 <translation id="7393073300870882456">{COUNT,plural, =1{1 ንጥል ተቀድቷል}one{{COUNT} ንጥሎች ተቀድተዋል}other{{COUNT} ንጥሎች ተቀድተዋል}}</translation>
@@ -9146,6 +9146,7 @@
 <translation id="7474043404939621342">የመሣሪያ አሞሌዎን አብጅ</translation>
 <translation id="747459581954555080">ሁሉንም ወደነበረበት መልስ</translation>
 <translation id="747507174130726364">{NUM_DAYS,plural, =1{ወዲያውኑ መመለስ ያስፈልጋል}one{<ph name="DEVICE_TYPE" />ን በ{NUM_DAYS} ቀኖች ውስጥ ይመልሱ}other{<ph name="DEVICE_TYPE" />ን በ{NUM_DAYS} ቀኖች ውስጥ ይመልሱ}}</translation>
+<translation id="747557463733380256">አሳሽዎ እንዴት እንደሚተዳደር ይወቁ</translation>
 <translation id="7475671414023905704">የNetscape የጠፋ የይለፍ ቃል URL</translation>
 <translation id="7475742997309661417">በChromeOS፣ ChromeVox ላይ ያለው ማያ ገፅ አንባቢ በቀዳሚነት ማያ ገፁ ላይ የሚታይ ጽሁፍ ለማንበብ ዓይነ ስውር በሆኑ ወይም ዝቅተኛ-ዕይታ ባላቸው ሰዎች በንግግር አዋሃጅ ወይም በብሬይል ማሳያ ጥቅም ላይ ይውላል። ChromeVox ለማብራት ሁለቱንም የድምፅ መጠን ቁልፎች ለአምስት ሰከንዶች ተጭነው ይያዙ። ChromeVox ገቢር ሲሆን ፈጣን ጉብኝት ያደርጋሉ።</translation>
 <translation id="7476454130948140105">ባትሪ ለዝማኔ በጣም ዝቅተኛ ነው (<ph name="BATTERY_PERCENT" />)</translation>
@@ -10300,6 +10301,7 @@
 <translation id="8265018477030547118">በዚህ መሣሪያ ላይ ብቻ</translation>
 <translation id="826511437356419340">የአጠቃላይ ዕይታ ሁኔታ መስኮት ገብቷል። ለመዳሰስ በጣት ይጥረጉ፣ ወይም ቁልፍ ሰሌዳ የሚጠቀሙ ከሆነ tab ይጫኑ።</translation>
 <translation id="8265671588726449108">{COUNT,plural, =1{ዳግም ካስጀመሩ በኋላ የእርስዎ ማንነት የማያሳውቅ መስኮት አይከፈትም።}one{ዳግም ካስጀመሩ በኋላ የእርስዎ {COUNT} ማንነት የማያሳውቁ መስኮቶች ዳግም አይከፈቱም}other{ዳግም ካስጀመሩ በኋላ የእርስዎ {COUNT} ማንነት የማያሳውቁ መስኮቶች ዳግም አይከፈቱም}}</translation>
+<translation id="8266430295499893285">የይለፍ ቃሎችዎን መድረስ ከመቻልዎ በፊት እርስዎ መሆንዎን ማረጋገጥ አለብዎት</translation>
 <translation id="8266947622852630193">ሁሉም የግብዓት ዘዴዎች</translation>
 <translation id="8267539814046467575">አታሚ ያክሉ</translation>
 <translation id="8267961145111171918"><ph name="BEGIN_PARAGRAPH1" />ይህ ስለዚህ መሣሪያ እና እንዴት ሥራ ላይ እንደሚውል (እንደ የባትሪ ደረጃ፣ የሥርዓት እና የመተግበሪያ እንቅስቃሴ እና ስህተቶች ያሉ) አጠቃላይ መረጃ ነው። ውሂቡ Androidን ለማሻሻል ጥቅም ላይ ይውላል፣ እና አንዳንድ የተዋሃደ መረጃ እንዲሁም የGoogle መተግበሪያዎችን እና እንደ የAndroid ገንቢዎች ያሉ አጋሮች መተግበሪያዎቻቸውን እና ምርቶቻቸውን እንዲያሻሽሉ ያግዟቸዋል።<ph name="END_PARAGRAPH1" />
@@ -11110,7 +11112,6 @@
 <translation id="8827125715368568315">የታገዱ <ph name="PERMISSION" /> እና <ph name="COUNT" /> ተጨማሪ</translation>
 <translation id="8827289157496676362">ቅጥያን አያይዝ</translation>
 <translation id="8828933418460119530">የDNS ስም</translation>
-<translation id="8829979393064090868">ትርን ወደ የተከፋፈለ ዕይታ ማከል</translation>
 <translation id="8830479210602243906">ምርታማነትን ይጨምሩ</translation>
 <translation id="883062543841130884">ምትኮች</translation>
 <translation id="8830779999439981481">ዝማኔዎችን ለመተግበር ዳግም በማስነሳት ላይ</translation>
diff --git a/chrome/app/resources/generated_resources_ar.xtb b/chrome/app/resources/generated_resources_ar.xtb
index 812e639..887f11e8 100644
--- a/chrome/app/resources/generated_resources_ar.xtb
+++ b/chrome/app/resources/generated_resources_ar.xtb
@@ -4771,6 +4771,7 @@
 <translation id="4305402730127028764">نسخ إلى <ph name="DEVICE_NAME" /></translation>
 <translation id="4305817255990598646">تبديل</translation>
 <translation id="4306119971288449206">يجب عرض التطبيقات باستخدام نوع المحتوى "<ph name="CONTENT_TYPE" />".</translation>
+<translation id="4306489587293957491">إدخال</translation>
 <translation id="4306810703452026910">‏سيتوقف Chrome عن الإبلاغ عن الإشعارات الواردة من هذا الموقع الإلكتروني على أنّها محتوى غير مرغوب فيه</translation>
 <translation id="4307992518367153382">الإعدادات الأساسية</translation>
 <translation id="4309165024397827958">‏يمكنك السماح لتطبيقات وخدمات Android الحاصلة على إذن بتحديد الموقع الجغرافي بأن تستخدم الموقع الجغرافي لجهازك، مع العلم أنّ Google قد تجمع بيانات الموقع الجغرافي بصفة دورية وقد تستخدمها بدون الكشف عن هوية المستخدم لتحسين دقة المواقع الجغرافية والخدمات المستندة إليها.</translation>
@@ -4828,6 +4829,7 @@
 <translation id="4350230709416545141">حظر النطاق <ph name="HOST" /> دائمًا من الوصول إلى موقعك الجغرافي</translation>
 <translation id="4350782034419308508">Ok Google</translation>
 <translation id="435185728237714178">الانتقال إلى تطبيق "<ph name="APP_NAME" />" لإدارة التطبيقات التي يتم تثبيتها وبثّها</translation>
+<translation id="4352913519324947509">لم يتم تغيير كلمة المرور، ولكن ما زال بإمكانك الوصول إلى الموقع الإلكتروني باستخدام كلمة المرور الحالية</translation>
 <translation id="4354073718307267720">طلب الإذن عند محاولة موقع إلكتروني إنشاء خريطة ثلاثية الأبعاد للبيئة المحيطة بك أو تتبُّع موضع الكاميرا</translation>
 <translation id="4354344420232759511">ستظهر المواقع التي تزورها هنا.</translation>
 <translation id="435527878592612277">اختيار صورتك</translation>
@@ -5986,7 +5988,6 @@
 <translation id="5186381005592669696">تخصيص لغة العرض للتطبيقات المتوافقة</translation>
 <translation id="5186788525428341874">‏يمكنك استخدام مفتاح المرور هذا لتسجيل الدخول بشكل أسرع على جميع أجهزتك. وسيتم حفظه في "مدير كلمات المرور في Google" ضمن الحساب <ph name="ACCOUNT_NAME" />.</translation>
 <translation id="5187641678926990264">&amp;تثبيت الصفحة كتطبيق...</translation>
-<translation id="5187671830619031922">إضافة علامة التبويب إلى وضع "تقسيم العرض"</translation>
 <translation id="5187826826541650604"><ph name="KEY_NAME" /> (<ph name="DEVICE" />)</translation>
 <translation id="5188242000716462162">تمت المشاركة بواسطة "<ph name="USER_NAME" />"</translation>
 <translation id="5188648870018555788">‏استخدام الموقع الجغرافي: يمكنك أن تمنح إذن استخدام الموقع الجغرافي لجهازك لكلّ من تطبيقات ChromeOS وAndroid والمواقع الإلكترونية والخدمات المسموح لها بتحديد الموقع الجغرافي. يتيح الإعداد "دقة الموقع الجغرافي" تزويد تطبيقات وخدمات Android ببيانات موقعك الجغرافي بشكل أكثر دقة. ولإجراء ذلك، تعالج Google بشكل دوري معلومات أدوات الاستشعار والإشارات اللاسلكية التي يرسلها جهازك لجمع بيانات المواقع الجغرافية للإشارات اللاسلكية. وتُستخدَم هذه المعلومات بدون الكشف عن هويتك لتحسين دقة الموقع الجغرافي والخدمات المستنِدة إليه، وتحسين خدمات Google وتقديمها وصيانتها استنادًا إلى المصالح المشروعة للجهات الخارجية وGoogle من أجل تلبية احتياجات المستخدمين. <ph name="BEGIN_LINK1" />مزيد من المعلومات حول استخدام الموقع الجغرافي<ph name="END_LINK1" /></translation>
@@ -8324,6 +8325,7 @@
 <translation id="686831807558000905">عدم تسجيل الدخول</translation>
 <translation id="686839242150793617">المواقع الإلكترونية التي يُسمح لها بفتح النوافذ في وضع "نافذة ضمن النافذة" تلقائيًا</translation>
 <translation id="6868934826811377550">عرض التفاصيل</translation>
+<translation id="6870470066213933201">‏إدارة الإعداد "تحسين محرك JavaScript وتأمينه"</translation>
 <translation id="6871644448911473373">‏مستجيب OCSP: <ph name="LOCATION" /></translation>
 <translation id="6871860225073478239">اللغات…</translation>
 <translation id="6873571253135628430">تغيير أذونات الموقع الإلكتروني</translation>
@@ -11114,7 +11116,6 @@
 <translation id="8827125715368568315">تم حظر إذن <ph name="PERMISSION" /> و<ph name="COUNT" /> إذن آخر.</translation>
 <translation id="8827289157496676362">تثبيت الإضافة</translation>
 <translation id="8828933418460119530">‏اسم نظام أسماء النطاقات (DNS)</translation>
-<translation id="8829979393064090868">إضافة علامة التبويب إلى وضع "تقسيم العرض"</translation>
 <translation id="8830479210602243906">تعزيز الإنتاجية</translation>
 <translation id="883062543841130884">الاستبدالات</translation>
 <translation id="8830779999439981481">جارٍ إعادة التشغيل لتطبيق التعديلات</translation>
diff --git a/chrome/app/resources/generated_resources_as.xtb b/chrome/app/resources/generated_resources_as.xtb
index 5a54310..88e05ed 100644
--- a/chrome/app/resources/generated_resources_as.xtb
+++ b/chrome/app/resources/generated_resources_as.xtb
@@ -5993,7 +5993,6 @@
 <translation id="5186381005592669696">সমৰ্থিত এপ্‌সমূহৰ বিষয়ে প্ৰদৰ্শিত ভাষা কাষ্টমাইজ কৰক</translation>
 <translation id="5186788525428341874">আপোনাৰ সমগ্ৰ ডিভাইচত দ্ৰুতভাৱে ছাইন ইন কৰিবলৈ আপুনি এই পাছকীটো ব্যৱহাৰ কৰিব পাৰে। এইটো <ph name="ACCOUNT_NAME" />ৰ Google Password Managerত ছেভ কৰা হ’ব।</translation>
 <translation id="5187641678926990264">পৃষ্ঠা এপ্‌ হিচাপে ইনষ্টল কৰক...</translation>
-<translation id="5187671830619031922">বিভাজিত ভিউত টেব যোগ দিয়ক</translation>
 <translation id="5187826826541650604"><ph name="KEY_NAME" /> (<ph name="DEVICE" />)</translation>
 <translation id="5188242000716462162"><ph name="USER_NAME" />এ শ্বেয়াৰ কৰিছে</translation>
 <translation id="5188648870018555788">অৱস্থান ব্যৱহাৰ কৰক। অৱস্থানৰ অনুমতি থকা ChromeOS আৰু Android এপ্‌, ৱেবছাইট আৰু সেৱাসমূহক আপোনাৰ ডিভাইচটোৰ অৱস্থান ব্যৱহাৰ কৰিবলৈ দিয়ক। অৱস্থানৰ সঠিকতাই Android এপ্‌ আৰু সেৱাৰ বাবে অধিক সঠিক অৱস্থান প্ৰদান কৰে। এনে কৰিবলৈ, Googleএ সময়ে সময়ে আপোনাৰ ডিভাইচৰ ডিভাইচ ছেন্সৰ আৰু বেতাঁৰ ছিগনেলৰ বিষয়ে তথ্য প্ৰক্ৰিয়াকৰণ কৰে যাতে বেতাঁৰ ছিগনেল অৱস্থানসমূহৰ ক্ৰাউডছ’ৰ্চ কৰিব পাৰি। এইবোৰ আপোনাক চিনাক্ত নকৰাকৈ অৱস্থানৰ সঠিকতা আৰু অৱস্থান আধাৰিত সেৱাসমূহ উন্নত কৰিবলৈ আৰু ব্যৱহাৰকাৰীৰ প্ৰয়োজন হোৱা সেৱা প্ৰদান কৰাত Google আৰু তৃতীয় পক্ষৰ বৈধ আগ্ৰহৰ ভিত্তিত Googleৰ সেৱাসমূহ উন্নত কৰিবলৈ, প্ৰদান কৰিবলৈ আৰু বজাই ৰাখিবলৈ ব্যৱহাৰ কৰা হয়। <ph name="BEGIN_LINK1" />অৱস্থান ব্যৱহাৰ কৰাৰ বিষয়ে অধিক জানক<ph name="END_LINK1" /></translation>
@@ -9019,6 +9018,7 @@
 <translation id="7387951778417998929">ডিফ’ল্টৰ বাহিৰে আন এটা সন্ধান ইঞ্জিন ব্যৱহাৰ কৰিবলৈ সেইটোৰ শ্বৰ্টকাটটো ঠিকনাৰ বাৰত টাইপ কৰক আৰু তাৰ পাছত আপোনাৰ পচন্দৰ কীব’ৰ্ডৰ শ্বৰ্টকাটটো দিয়ক। আপুনি ইয়াত আপোনাৰ ডিফ’ল্ট সন্ধান ইঞ্জিনো সলনি কৰিব পাৰে।</translation>
 <translation id="7388615499319468910">বিজ্ঞাপনে কেনেকৈ কাম কৰে সেয়া ছাইট বিজ্ঞাপনদাতাসকলে বুজি পাব পাৰে। এই ছেটিংটো অফ হৈ আছে।</translation>
 <translation id="738903649531469042">পঢ়াৰ সূচীত টেব যোগ দিয়ক</translation>
+<translation id="7389615853658756494">ছাইটটোত এইটো সলনি কৰক</translation>
 <translation id="7392118418926456391">ভাইৰাছ স্কেন কৰিব পৰা নগ’ল</translation>
 <translation id="7392915005464253525">বন্ধ হৈ থকা ৱিণ্ড’ &amp;পুনৰ খোলক</translation>
 <translation id="7393073300870882456">{COUNT,plural, =1{১ টা বস্তুৰ প্ৰতিলিপি কৰা হ'ল}one{{COUNT} টা বস্তুৰ প্ৰতিলিপি কৰা হ'ল}other{{COUNT} টা বস্তুৰ প্ৰতিলিপি কৰা হ'ল}}</translation>
@@ -9148,6 +9148,7 @@
 <translation id="7474043404939621342">আপোনাৰ টুলবাৰ কাষ্টমাইজ কৰক</translation>
 <translation id="747459581954555080">সকলো পুনঃস্থাপন কৰক</translation>
 <translation id="747507174130726364">{NUM_DAYS,plural, =1{তাৎক্ষণিকভাৱে উভতাই দিয়াৰ প্ৰয়োজন}one{{NUM_DAYS} দিনৰ ভিতৰত <ph name="DEVICE_TYPE" /> ঘূৰাই দিয়ক}other{{NUM_DAYS} দিনৰ ভিতৰত <ph name="DEVICE_TYPE" /> ঘূৰাই দিয়ক}}</translation>
+<translation id="747557463733380256">আপোনাৰ ব্ৰাউজাৰটো কেনেকৈ পৰিচালনা কৰা হয় সেই বিষয়ে অধিক জানক</translation>
 <translation id="7475671414023905704">নেটস্কেপৰ হেৰুওৱা পাছৱর্ডৰ URL</translation>
 <translation id="7475742997309661417">ChromeOS, ChromeVoxৰ স্ক্ৰীন ৰীডাৰ, মূলতঃ দৃষ্টিশক্তিহীন বা কম দৃষ্টিশক্তি থকা লোকে স্ক্ৰীনত দেখুওৱা পাঠ স্পীচ ছিন্থেচাইজাৰ বা ব্ৰেইল ডিছপ্লে'ৰ জৰিয়তে পঢ়িবলৈ ব্যৱহাৰ কৰা হয়। ChromeVox অন কৰিবলৈ দুয়োটা ভলিউম কী পাঁচ ছেকেণ্ডৰ বাবে টিপি হেঁচি ৰাখক। ChromeVox সক্ৰিয় হোৱাৰ পাছত, আপোনাক ইয়াৰ সুবিধাসমূহ দেখুৱাই দ্ৰুত আভাস দিয়া হ’ব।</translation>
 <translation id="7476454130948140105">আপডে’ট কৰিবলৈ বেটাৰীৰ চ্চার্জ অতি কম আছে (<ph name="BATTERY_PERCENT" />%)</translation>
@@ -10296,6 +10297,7 @@
 <translation id="8265018477030547118">কেৱল এই ডিভাইচটোত</translation>
 <translation id="826511437356419340">ৱিণ্ড’ ৰূপৰেখা ম‘ডত প্ৰৱেশ কৰা হৈছে। নেভিগে’ট কৰিবলৈ ছোৱাইপ কৰক অথবা কীব’ৰ্ড ব্যৱহাৰ কৰি আছে যদি টেব দবাওক।</translation>
 <translation id="8265671588726449108">{COUNT,plural, =1{আপুনি পুনৰ লঞ্চ কৰাৰ পাছত আপোনাৰ ইনক’গনিট’ ৱিণ্ড’ খোলা নাযাব}one{আপুনি পুনৰ লঞ্চ কৰাৰ পাছত আপোনাৰ {COUNT} খন ইনক’গনিট’ ৱিণ্ড’ পুনৰ খোলা নাযাব}other{আপুনি পুনৰ লঞ্চ কৰাৰ পাছত আপোনাৰ {COUNT} খন ইনক’গনিট’ ৱিণ্ড’ পুনৰ খোলা নাযাব}}</translation>
+<translation id="8266430295499893285">আপুনি আপোনাৰ পাছৱৰ্ডসমূহ এক্সেছ কৰাৰ পূৰ্বে এয়া আপুনিয়েই বুলি সত্যাপন কৰিব লাগিব</translation>
 <translation id="8266947622852630193">সকলো ইনপুট পদ্ধতি</translation>
 <translation id="8267539814046467575">প্ৰিণ্টাৰ যোগ দিয়ক</translation>
 <translation id="8267961145111171918"><ph name="BEGIN_PARAGRAPH1" />এইখিনি হৈছে এই ডিভাইচটোৰ আৰু সেইটোৰ ব্যৱহাৰৰ বিষয়ে (যেনে- বেটাৰীৰ স্তৰ, ছিষ্টেম আৰু এপৰ কাৰ্যকলাপ আৰু তাত হোৱা আসোঁৱাহৰ) সাধাৰণ তথ্য। এই ডেটাখিনি Androidক অধিক ব্যৱহাৰোপোযোগী কৰিবলৈ ব্যৱহাৰ কৰা হ’ব আৰু কিছুমান একত্ৰিত তথ্যই Google এপ্‌ আৰু Android বিকাশকৰ্তাৰ দৰে অংশীদাৰকো তেওঁলোকৰ এপ্‌ আৰু প্ৰ’ডাক্টক অধিক ফলপ্ৰসূ কৰাত সহায় কৰিব।<ph name="END_PARAGRAPH1" />
@@ -11106,7 +11108,6 @@
 <translation id="8827125715368568315"><ph name="PERMISSION" />ক আৰু <ph name="COUNT" /> টাক অৱৰোধ কৰা হৈছে</translation>
 <translation id="8827289157496676362">এক্সটেনশ্বন পিন কৰক</translation>
 <translation id="8828933418460119530">DNS নাম</translation>
-<translation id="8829979393064090868">বিভাজিত ভিউত টেব যোগ দিয়ক</translation>
 <translation id="8830479210602243906">উৎপাদনশীলতা পৰিৱৰ্ধন কৰক</translation>
 <translation id="883062543841130884">সলনা-সলনিবোৰ</translation>
 <translation id="8830779999439981481">আপডে’টসমূহ প্ৰযোজ্য হ’বলৈ ৰিষ্টাৰ্ট কৰি থকা হৈছে</translation>
diff --git a/chrome/app/resources/generated_resources_az.xtb b/chrome/app/resources/generated_resources_az.xtb
index 5f629c74..5ed5558 100644
--- a/chrome/app/resources/generated_resources_az.xtb
+++ b/chrome/app/resources/generated_resources_az.xtb
@@ -5980,7 +5980,6 @@
 <translation id="5186381005592669696">Dəstəklənən tətbiqlər üçün displey dilini fərdiləşdirin</translation>
 <translation id="5186788525428341874">Cihazlarda daha sürətlə daxil olmaq üçün bu giriş açarından istifadə edə bilərsiniz. <ph name="ACCOUNT_NAME" /> üçün Google Parol Menecerində yadda saxlanılacaq.</translation>
 <translation id="5187641678926990264">&amp;Səhifəni tətbiq kimi quraşdırın...</translation>
-<translation id="5187671830619031922">Tabı bölünmüş görünüşə əlavə edin</translation>
 <translation id="5187826826541650604"><ph name="KEY_NAME" /> (<ph name="DEVICE" />)</translation>
 <translation id="5188242000716462162"><ph name="USER_NAME" /> tərəfindən paylaşılıb</translation>
 <translation id="5188648870018555788">Məkandan istifadə. Məkan icazəsi olan ChromeOS, habelə Android tətbiq, veb-sayt və xidmətlərinə cihaz məkanından istifadə etmək icazəsi verin. Məkan Dəqiqliyi Android tətbiq və xidmətləri üçün daha dəqiq məkan təmin edir. Bunun üçün Google simsiz siqnal məkanları üzrə kütləvi qaynaq yaratmaq məqsədilə cihaz sensorları və cihazdan gələn simsiz siqnallar haqqında məlumatları vaxtaşırı emal edir. Bu məlumatlar kimliyinizi müəyyənləşdirmədən məkan dəqiqliyini və məkan əsaslı xidmətləri təkmilləşdirmək, Google xidmətlərini Google və üçüncü tərəflərin qanuni maraqlarına uyğun olmaqla istifadəçilərin ehtiyaclarına xidmət edəcək şəkildə təkmilləşdirmək, təmin etmək və davam etdirmək üçün istifadə edilir. <ph name="BEGIN_LINK1" />Məkandan istifadə haqqında ətraflı məlumat əldə edin<ph name="END_LINK1" /></translation>
@@ -11089,7 +11088,6 @@
 <translation id="8827125715368568315"><ph name="PERMISSION" /> və daha <ph name="COUNT" /> bloklanıb</translation>
 <translation id="8827289157496676362">Artırmanı taba bərkidin</translation>
 <translation id="8828933418460119530">DNS Adı</translation>
-<translation id="8829979393064090868">Tabı bölünmüş görünüşə əlavə edin</translation>
 <translation id="8830479210602243906">Məhsuldarlığı artırın</translation>
 <translation id="883062543841130884">Əvəzetmələr</translation>
 <translation id="8830779999439981481">Güncəlləmələri tətbiq etmək üçün yenidən başladılır</translation>
diff --git a/chrome/app/resources/generated_resources_be.xtb b/chrome/app/resources/generated_resources_be.xtb
index b30bbf6..fcd6da33 100644
--- a/chrome/app/resources/generated_resources_be.xtb
+++ b/chrome/app/resources/generated_resources_be.xtb
@@ -5982,7 +5982,6 @@
 <translation id="5186381005592669696">Наладзьце мову інтэрфейсу для прыдатных праграм</translation>
 <translation id="5186788525428341874">Праз гэты ключ доступу вы можаце хутчэй уваходзіць у свае прылады. Ён будзе захаваны ў Менеджары пароляў Google для ўліковага запісу <ph name="ACCOUNT_NAME" />.</translation>
 <translation id="5187641678926990264">&amp;Усталяваць старонку як праграму...</translation>
-<translation id="5187671830619031922">Дадаць укладку ў рэжыме падзеленага экрана</translation>
 <translation id="5187826826541650604"><ph name="KEY_NAME" /> (<ph name="DEVICE" />)</translation>
 <translation id="5188242000716462162">Абагулена карыстальнікам <ph name="USER_NAME" /></translation>
 <translation id="5188648870018555788">Выкарыстанне геаданых. Дайце праграмам, вэб-сайтам і сэрвісам для Android і ChromeOS дазвол на доступ да геаданых прылады. Дзякуючы наладзе "Дакладнасць вызначэння месцазнаходжання" праграмы і сэрвісы для Android атрымліваюць больш дакладныя геаданыя. Для работы гэтай функцыі Google перыядычна апрацоўвае звесткі пра датчыкі прылады і бесправадныя сігналы з вашай прылады і збірае агульную базу месцазнаходжанняў бесправадных сігналаў. Гэта ананімныя даныя, якія выкарыстоўваюцца для павышэння дакладнасці вызначэння месцазнаходжання і паляпшэння сэрвісаў на аснове геалакацыі, а таксама для забеспячэння работы, падтрымкі і паляпшэння нашых сэрвісаў у адпаведнасці з законнымі інтарэсамі Google і старонніх суб’ектаў з мэтай задавальнення патрэб карыстальнікаў. <ph name="BEGIN_LINK1" />Даведацца больш пра выкарыстанне геалакацыі<ph name="END_LINK1" /></translation>
@@ -9011,6 +9010,7 @@
 <translation id="7387951778417998929">Каб выкарыстаць іншую пошукавую сістэму, а не стандартную, увядзіце ў адрасным радку каманду для яе і націсніце выбранае спалучэнне клавіш. Тут можна таксама задаць іншую пошукавую сістэму ў якасці стандартнай.</translation>
 <translation id="7388615499319468910">Сайты і рэкламадаўцы могуць ацэньваць эфектыўнасць рэкламы. Гэта налада выключана.</translation>
 <translation id="738903649531469042">Дадаць укладку ў спіс чытання</translation>
+<translation id="7389615853658756494">Змяніць на сайце</translation>
 <translation id="7392118418926456391">Не ўдалося выканаць праверку на вірусы</translation>
 <translation id="7392915005464253525">Паў&amp;торна адкрыць закрытае акно</translation>
 <translation id="7393073300870882456">{COUNT,plural, =1{1 элемент скапіраваны}one{{COUNT} элемент скапіраваны}few{{COUNT} элементы скапіравана}many{{COUNT} элементаў скапіравана}other{{COUNT} элемента скапіравана}}</translation>
@@ -9140,6 +9140,7 @@
 <translation id="7474043404939621342">Наладзіць панэль інструментаў</translation>
 <translation id="747459581954555080">Аднавіць усе</translation>
 <translation id="747507174130726364">{NUM_DAYS,plural, =1{Прыладу трэба вярнуць неадкладна}one{Вярніце прыладу <ph name="DEVICE_TYPE" /> на працягу {NUM_DAYS} дня}few{Вярніце прыладу <ph name="DEVICE_TYPE" /> на працягу {NUM_DAYS} дзён}many{Вярніце прыладу <ph name="DEVICE_TYPE" /> на працягу {NUM_DAYS} дзён}other{Вярніце прыладу <ph name="DEVICE_TYPE" /> на працягу {NUM_DAYS} дня}}</translation>
+<translation id="747557463733380256">Даведацца больш пра тое, як ажыццяўляецца кіраванне браўзерам</translation>
 <translation id="7475671414023905704">URL-адрас для забытага пароля Netscape</translation>
 <translation id="7475742997309661417">Праграма чытання з экрана ChromeVox на ChromeOS у асноўным выкарыстоўваецца невідушчымі і людзьмі з дрэнным зрокам для чытання тэксту на экране з дапамогай сінтэзатара маўлення або брайлеўскага дысплэя. Каб уключыць ChromeVox, націсніце і ўтрымлівайце пяць секунд абедзве клавішы гучнасці. Пасля актывацыі ChromeVox вам будзе прапанавана прайсці кароткае навучанне.</translation>
 <translation id="7476454130948140105">Зарад акумулятара занадта нізкі для абнаўлення (<ph name="BATTERY_PERCENT" /> %)</translation>
@@ -10288,6 +10289,7 @@
 <translation id="8265018477030547118">Толькі на гэтай прыладзе</translation>
 <translation id="826511437356419340">Уключаны рэжым агляду вокнаў. Для перамяшчэння правядзіце пальцам па экране або націсніце Tab на клавіятуры.</translation>
 <translation id="8265671588726449108">{COUNT,plural, =1{Пасля перазапуску акно ў рэжыме інкогніта адкрыта не будзе}one{Пасля перазапуску {COUNT} акно ў рэжыме інкогніта адкрыта не будзе}few{Пасля перазапуску {COUNT} акны ў рэжыме інкогніта адкрыты не будуць}many{Пасля перазапуску {COUNT} акон у рэжыме інкогніта адкрыты не будуць}other{Пасля перазапуску {COUNT} акна ў рэжыме інкогніта адкрыты не будуць}}</translation>
+<translation id="8266430295499893285">Перш чым атрымаць доступ да пароляў, вам трэба пацвердзіць сваю асобу</translation>
 <translation id="8266947622852630193">Усе метады ўводу</translation>
 <translation id="8267539814046467575">Дадаць прынтар</translation>
 <translation id="8267961145111171918"><ph name="BEGIN_PARAGRAPH1" />Гэта агульная інфармацыя пра вашу прыладу і яе выкарыстанне (напрыклад, пра ўзровень зараду акумулятара, дзеянні ў сістэме і праграмах, памылкі). Даныя будуць выкарыстоўвацца для ўдасканалення сістэмы Android, а пэўная згрупаваная інфармацыя дапаможа ўдасканаліць праграмы Google і будзе карыснай для партнёраў кампаніі, напрыклад для распрацоўшчыкаў Android, у паляпшэнні праграм і прадуктаў.<ph name="END_PARAGRAPH1" />
@@ -11100,7 +11102,6 @@
 <translation id="8827125715368568315">Заблакіравана: <ph name="PERMISSION" /> і яшчэ <ph name="COUNT" /></translation>
 <translation id="8827289157496676362">Замацаваць пашырэнне</translation>
 <translation id="8828933418460119530">Назва DNS</translation>
-<translation id="8829979393064090868">Дадаць укладку ў рэжыме падзеленага экрана</translation>
 <translation id="8830479210602243906">Павысіць прадукцыйнасць</translation>
 <translation id="883062543841130884">Замены</translation>
 <translation id="8830779999439981481">Для прымянення абнаўленняў ажыццяўляецца перазапуск</translation>
diff --git a/chrome/app/resources/generated_resources_bg.xtb b/chrome/app/resources/generated_resources_bg.xtb
index 18a55ff..3773cbb 100644
--- a/chrome/app/resources/generated_resources_bg.xtb
+++ b/chrome/app/resources/generated_resources_bg.xtb
@@ -5993,7 +5993,6 @@
 <translation id="5186381005592669696">Персонализиране на екранния език за поддържаните приложения</translation>
 <translation id="5186788525428341874">Можете да използвате този ключ за достъп, за да влизате по-бързо в профила си на всичките си устройства. Ключът ще бъде запазен в Google Мениджър на пароли за <ph name="ACCOUNT_NAME" />.</translation>
 <translation id="5187641678926990264">Инсталиране на страницата като приложение...</translation>
-<translation id="5187671830619031922">Добавяне на раздела към разделен изглед</translation>
 <translation id="5187826826541650604"><ph name="KEY_NAME" /> (<ph name="DEVICE" />)</translation>
 <translation id="5188242000716462162">Споделено от <ph name="USER_NAME" /></translation>
 <translation id="5188648870018555788">Използване на местоположението. Позволете на ChromeOS, приложенията за Android, уебсайтовете и услугите да ползват местоположението на устройството ви, ако имат съответното разрешение. „Точност на местоположението“ предоставя на приложенията и услугите за Android по-точни данни за местоположението. За целта Google периодично обработва информацията от сензорите на устройството ви и безжичните сигнали от него, за да определя местоположенията на съответните сигнали посредством отворена ангажираност. Използваме тези данни, без да ви идентифицираме, за да подобряваме точността на местоположението и базиращите се на него услуги, както и да подобряваме, предоставяме и поддържаме услугите на Google въз основа на законните си интереси и тези на трети страни, така че да обслужваме нуждите на потребителите. <ph name="BEGIN_LINK1" />Научете повече за използването на местоположението<ph name="END_LINK1" /></translation>
@@ -9019,6 +9018,7 @@
 <translation id="7387951778417998929">За да използвате търсеща машина, различна от основната, въведете прекия ѝ път в адресната лента и натиснете предпочитаната от вас клавишна комбинация. Тук можете също да промените основната си търсеща машина.</translation>
 <translation id="7388615499319468910">Сайтовете и рекламодателите могат да разберат ефективността на рекламите. Тази настройка е изключена.</translation>
 <translation id="738903649531469042">Добавяне на раздела към списъка за четене</translation>
+<translation id="7389615853658756494">Промяна на сайта</translation>
 <translation id="7392118418926456391">Сканирането за вируси не бе успешно</translation>
 <translation id="7392915005464253525">По&amp;вторно отваряне на затворен прозорец</translation>
 <translation id="7393073300870882456">{COUNT,plural, =1{Копирахте 1 елемент}other{Копирахте {COUNT} елемента}}</translation>
@@ -9148,6 +9148,7 @@
 <translation id="7474043404939621342">Персонализиране на лентата с инструменти</translation>
 <translation id="747459581954555080">Възстановяване на всички</translation>
 <translation id="747507174130726364">{NUM_DAYS,plural, =1{Изисква се незабавно връщане}other{Върнете <ph name="DEVICE_TYPE" /> в рамките на {NUM_DAYS} дни}}</translation>
+<translation id="747557463733380256">Научете повече за това как се управлява браузърът ви</translation>
 <translation id="7475671414023905704">URL адрес за изгубена парола на Netscape</translation>
 <translation id="7475742997309661417">ChromeVox, екранният четец в ChromeOS, се използва основно от незрящи хора и лица със слабо зрение за четене на показван на екрана текст с помощта на синтезатор на говор или екран за брайлово писмо. Натиснете и двата бутона за силата на звука и ги задръжте за пет секунди, за да включите ChromeVox. Когато екранният четец е активиран, ще преминете през кратка обиколка.</translation>
 <translation id="7476454130948140105">Батерията е твърде изтощена (<ph name="BATTERY_PERCENT" />%) за стартиране на актуализацията</translation>
@@ -10297,6 +10298,7 @@
 <translation id="8265018477030547118">Само на това устройство</translation>
 <translation id="826511437356419340">Влязохте в режим на общ преглед на прозорците. Навигирайте с прекарване на пръст или натиснете клавиша Tab, ако използвате клавиатура.</translation>
 <translation id="8265671588726449108">{COUNT,plural, =1{Прозорецът ви в режим „инкогнито“ няма да бъде отворен след рестартиране}other{Вашите {COUNT} прозореца в режим „инкогнито“ няма да бъдат отворени след рестартиране}}</translation>
+<translation id="8266430295499893285">Трябва да потвърдите, че това сте вие, преди да получите достъп до паролите си</translation>
 <translation id="8266947622852630193">Всички методи на въвеждане</translation>
 <translation id="8267539814046467575">Добавяне на принтер</translation>
 <translation id="8267961145111171918"><ph name="BEGIN_PARAGRAPH1" />Това е обща информация за устройството и употребата му (например за нивото на батерията, активността на системата и приложенията, както и за грешките). Тези данни ще се използват за подобряването на Android, а част от обобщената информация ще помогне и на приложенията и партньорите ни, например програмисти под Android, да усъвършенстват приложенията и продуктите си.<ph name="END_PARAGRAPH1" />
@@ -11106,7 +11108,6 @@
 <translation id="8827125715368568315">Блокирани са „<ph name="PERMISSION" />“ и още <ph name="COUNT" /></translation>
 <translation id="8827289157496676362">Фиксиране на разширението</translation>
 <translation id="8828933418460119530">DNS име</translation>
-<translation id="8829979393064090868">Добавяне на раздела към разделен изглед</translation>
 <translation id="8830479210602243906">Повишаване на продуктивността</translation>
 <translation id="883062543841130884">Substitutions</translation>
 <translation id="8830779999439981481">Рестартира се, за да се приложат актуализациите</translation>
diff --git a/chrome/app/resources/generated_resources_bn.xtb b/chrome/app/resources/generated_resources_bn.xtb
index 423b258..b097fbe 100644
--- a/chrome/app/resources/generated_resources_bn.xtb
+++ b/chrome/app/resources/generated_resources_bn.xtb
@@ -5997,7 +5997,6 @@
 <translation id="5186381005592669696">কাজ করে এমন অ্যাপের জন্য ডিসপ্লে কাস্টমাইজ করুন</translation>
 <translation id="5186788525428341874">আপনার বিভিন্ন ডিভাইসে ঝটপট সাইন-ইন করার জন্য এই পাসকী ব্যবহার করতে পারবেন। <ph name="ACCOUNT_NAME" />-এর জন্য Google Password Manager-এ এটি সেভ করা হবে।</translation>
 <translation id="5187641678926990264">&amp;পেজ অ্যাপ হিসেবে ইনস্টল করুন...</translation>
-<translation id="5187671830619031922">'স্প্লিট ভিউ'তে ট্যাব যোগ করুন</translation>
 <translation id="5187826826541650604"><ph name="KEY_NAME" /> (<ph name="DEVICE" />)</translation>
 <translation id="5188242000716462162"><ph name="USER_NAME" /> শেয়ার করেছেন</translation>
 <translation id="5188648870018555788">লোকেশন ব্যবহার করুন। লোকেশন অ্যাক্সেস করার অনুমতি থাকা ChromeOS ও Android অ্যাপ, ওয়েবসাইট ও পরিষেবাকে আপনার ডিভাইসের লোকেশন ব্যবহার করার অনুমতি দিন। 'লোকেশন অ্যাকুরেসি' সেটিং Android অ্যাপ ও পরিষেবার জন্য আরও নিখুঁত লোকেশন প্রদান করে। এটি করতে, নির্দিষ্ট সময়ের ব্যবধানে Google আপনার ডিভাইস থেকে ওয়্যারলেস সিগন্যাল ও ডিভাইস সেন্সর বিষয়ক তথ্য নিয়ে প্রসেস করে, যাতে ওয়্যারলেস সিগন্যালের লোকেশন ক্রাউডসোর্স করা যায়। এগুলি আপনাকে শনাক্ত না করেই করা হয়, যাতে 'লোকেশন অ্যাকুরেসি' সেটিং এবং লোকেশন-ভিত্তিক পরিষেবাকে আরও উন্নত করা যায় এবং ব্যবহারকারীর প্রয়োজনীয়তা পূরণ করতে, Google ও থার্ড-পার্টির আইনগত স্বার্থের উপর ভিত্তি করে, Google-এর পরিষেবা প্রদান ও উন্নতি করা যায় এবং তা বজায় রাখা যায়। <ph name="BEGIN_LINK1" />লোকেশন ব্যবহার করা সম্পর্কে আরও জানুন<ph name="END_LINK1" /></translation>
@@ -11115,7 +11114,6 @@
 <translation id="8827125715368568315"><ph name="PERMISSION" /> এবং আরও <ph name="COUNT" />টি অনুমতি ব্লক করা হয়েছে</translation>
 <translation id="8827289157496676362">এক্সটেনশন পিন করুন</translation>
 <translation id="8828933418460119530">ডিএনএস নাম</translation>
-<translation id="8829979393064090868">স্প্লিট ভিউতে ট্যাব যোগ করুন</translation>
 <translation id="8830479210602243906">প্রোডাক্টিভিটি বুস্ট করুন</translation>
 <translation id="883062543841130884">প্রতিস্থাপন</translation>
 <translation id="8830779999439981481">আপডেট প্রয়োগ করতে রিস্টার্ট করা হচ্ছে</translation>
diff --git a/chrome/app/resources/generated_resources_bs.xtb b/chrome/app/resources/generated_resources_bs.xtb
index 95b13d6..a39cf06 100644
--- a/chrome/app/resources/generated_resources_bs.xtb
+++ b/chrome/app/resources/generated_resources_bs.xtb
@@ -5995,7 +5995,6 @@
 <translation id="5186381005592669696">Prilagodite jezik prikaza za podržane aplikacije</translation>
 <translation id="5186788525428341874">Pomoću ovog pristupnog ključa se možete brže prijaviti na uređajima. Sačuvat će se u Google upravitelju lozinki za račun <ph name="ACCOUNT_NAME" />.</translation>
 <translation id="5187641678926990264">&amp;Instaliranje stranice kao aplikacije…</translation>
-<translation id="5187671830619031922">Dodaj karticu u podijeljeni prikaz</translation>
 <translation id="5187826826541650604"><ph name="KEY_NAME" /> (<ph name="DEVICE" />)</translation>
 <translation id="5188242000716462162">Podijelio/la je <ph name="USER_NAME" /></translation>
 <translation id="5188648870018555788">Koristite lokaciju. Dozvolite ChromeOS i Android aplikacijama, web lokacijama i uslugama s odobrenjem za lokaciju da koriste lokaciju uređaja. Preciznost lokacije pruža precizniju lokaciju za Android aplikacije i usluge. Google u tu svrhu periodično obrađuje informacije o senzorima uređaja i bežičnim signalima koje uređaj šalje da prikupi lokacije bežičnih signala u vidu podrške internet javnosti. Ove informacije se koriste bez vaše identifikacije radi poboljšanja preciznosti lokacije i usluga zasnovanih na lokaciji te poboljšanja, pružanja i održavanja Googleovih usluga na osnovu legitimnih interesa Googlea i trećih strana da ispunjavaju potrebe korisnika. <ph name="BEGIN_LINK1" />Saznajte više o korištenju lokacije<ph name="END_LINK1" /></translation>
@@ -11116,7 +11115,6 @@
 <translation id="8827125715368568315">Blokirano: <ph name="PERMISSION" /> i još <ph name="COUNT" /></translation>
 <translation id="8827289157496676362">Zakačite ekstenziju</translation>
 <translation id="8828933418460119530">DNS naziv</translation>
-<translation id="8829979393064090868">Dodaj karticu u podijeljeni prikaz</translation>
 <translation id="8830479210602243906">Povećajte produktivnost</translation>
 <translation id="883062543841130884">Zamjene</translation>
 <translation id="8830779999439981481">Ponovno pokretanje radi primjene ažuriranja</translation>
diff --git a/chrome/app/resources/generated_resources_ca.xtb b/chrome/app/resources/generated_resources_ca.xtb
index 65a1d9b65..f5bd15d 100644
--- a/chrome/app/resources/generated_resources_ca.xtb
+++ b/chrome/app/resources/generated_resources_ca.xtb
@@ -5979,7 +5979,6 @@
 <translation id="5186381005592669696">Personalitza l'idioma de visualització de les aplicacions compatibles</translation>
 <translation id="5186788525428341874">Pots utilitzar aquesta clau d'accés per iniciar la sessió més ràpidament en tots els teus dispositius. Es desarà al gestor de contrasenyes de Google per a <ph name="ACCOUNT_NAME" />.</translation>
 <translation id="5187641678926990264">Instal·la la pàgina com a aplicació...</translation>
-<translation id="5187671830619031922">Afegeix la pestanya a la visualització dividida</translation>
 <translation id="5187826826541650604"><ph name="KEY_NAME" /> (<ph name="DEVICE" />)</translation>
 <translation id="5188242000716462162">Compartit per <ph name="USER_NAME" /></translation>
 <translation id="5188648870018555788">Utilitza la ubicació. Permet que les aplicacions, els llocs web i els serveis de ChromeOS i d'Android que tinguin permís d'accés a la ubicació utilitzin la ubicació del dispositiu. La precisió de la ubicació proporciona una ubicació més precisa a les aplicacions i als serveis d'Android. Per fer-ho, Google tracta periòdicament la informació sobre els sensors i els senyals sense fil del teu dispositiu a fi d'obtenir col·lectivament les ubicacions dels senyals sense fil. Aquestes dades s'utilitzen sense identificar-te per millorar la precisió de la ubicació i els serveis basats en la ubicació. També s'utilitzen per millorar, proporcionar i mantenir els serveis de Google segons els interessos legítims de Google i de tercers a fi de satisfer les necessitats dels usuaris. <ph name="BEGIN_LINK1" />Més informació sobre com s'utilitza la ubicació<ph name="END_LINK1" /></translation>
@@ -9002,6 +9001,7 @@
 <translation id="7387951778417998929">Per utilitzar un motor de cerca diferent del predeterminat, escriu la drecera corresponent a la barra d'adreces, seguida de la tecla de drecera que prefereixis. També pots canviar el motor de cerca predeterminat aquí.</translation>
 <translation id="7388615499319468910">Els llocs web i els anunciants poden entendre el rendiment dels anuncis. Aquesta opció de configuració està desactivada.</translation>
 <translation id="738903649531469042">Afegeix una pestanya a la llista de lectura</translation>
+<translation id="7389615853658756494">Canvia-la al lloc web</translation>
 <translation id="7392118418926456391">Hi ha hagut un error en l'anàlisi antivirus</translation>
 <translation id="7392915005464253525">T&amp;orna a obrir la finestra tancada</translation>
 <translation id="7393073300870882456">{COUNT,plural, =1{S'ha copiat 1 element}other{S'han copiat {COUNT} elements}}</translation>
@@ -9131,6 +9131,7 @@
 <translation id="7474043404939621342">Personalitza la barra d'eines</translation>
 <translation id="747459581954555080">Restaura'ls tots</translation>
 <translation id="747507174130726364">{NUM_DAYS,plural, =1{Cal que tornis el dispositiu immediatament}other{Torna el dispositiu <ph name="DEVICE_TYPE" /> en un termini de {NUM_DAYS} dies}}</translation>
+<translation id="747557463733380256">Informació sobre com es gestiona el navegador</translation>
 <translation id="7475671414023905704">URL de contrasenya perduda de Netscape</translation>
 <translation id="7475742997309661417">El lector de pantalla de ChromeOS, ChromeVox, l'utilitzen principalment persones invidents o amb poca visió per llegir el text que es mostra en pantalla amb un sintetitzador de veu o una pantalla braille. Mantén premudes les dues tecles de volum durant cinc segons per activar ChromeVox. Quan ChromeVox estigui activat, podràs fer una visita ràpida.</translation>
 <translation id="7476454130948140105">No hi ha prou bateria per fer l'actualització (<ph name="BATTERY_PERCENT" />%)</translation>
@@ -10280,6 +10281,7 @@
 <translation id="8265018477030547118">Només en aquest dispositiu</translation>
 <translation id="826511437356419340">S'ha entrat al mode de visió general de la finestra. Llisca per navegar o prem el tabulador si utilitzes un teclat.</translation>
 <translation id="8265671588726449108">{COUNT,plural, =1{La finestra d'incògnit no es tornarà a obrir després de reiniciar}other{{COUNT} finestres d'incògnit no es tornaran a obrir després de reiniciar}}</translation>
+<translation id="8266430295499893285">Has de verificar la teva identitat per poder accedir a les contrasenyes</translation>
 <translation id="8266947622852630193">Tots els mètodes d'introducció de text</translation>
 <translation id="8267539814046467575">Afegeix una impressora</translation>
 <translation id="8267961145111171918"><ph name="BEGIN_PARAGRAPH1" />Es tracta d'informació general sobre aquest dispositiu i sobre com es fa servir, com ara els errors, el nivell de bateria i l'activitat al sistema i en aplicacions. Les dades s'utilitzaran per millorar Android i part de la informació agregada també ajudarà les aplicacions i els partners de Google, com ara desenvolupadors d'Android, a millorar les seves aplicacions i els seus productes.<ph name="END_PARAGRAPH1" />
@@ -11090,7 +11092,6 @@
 <translation id="8827125715368568315">Permisos bloquejats: <ph name="PERMISSION" /> i <ph name="COUNT" /> més</translation>
 <translation id="8827289157496676362">Fixa l'extensió</translation>
 <translation id="8828933418460119530">Nom DNS</translation>
-<translation id="8829979393064090868">Afegeix la pestanya a la visualització dividida</translation>
 <translation id="8830479210602243906">Augmenta la productivitat</translation>
 <translation id="883062543841130884">Substitucions</translation>
 <translation id="8830779999439981481">S'està reiniciant per aplicar les actualitzacions</translation>
diff --git a/chrome/app/resources/generated_resources_cs.xtb b/chrome/app/resources/generated_resources_cs.xtb
index 47af05c..5e44ccd 100644
--- a/chrome/app/resources/generated_resources_cs.xtb
+++ b/chrome/app/resources/generated_resources_cs.xtb
@@ -5981,7 +5981,6 @@
 <translation id="5186381005592669696">Přizpůsobte si u podporovaných aplikací jazyk zobrazení</translation>
 <translation id="5186788525428341874">Tento přístupový klíč můžete použít k rychlejšímu přihlašování na svých zařízeních. Uloží se do Správce hesel Google pro účet <ph name="ACCOUNT_NAME" />.</translation>
 <translation id="5187641678926990264">&amp;Nainstalovat stránku jako aplikaci…</translation>
-<translation id="5187671830619031922">Přidat kartu do rozděleného zobrazení</translation>
 <translation id="5187826826541650604"><ph name="KEY_NAME" /> (<ph name="DEVICE" />)</translation>
 <translation id="5188242000716462162">Sdíleno uživatelem <ph name="USER_NAME" /></translation>
 <translation id="5188648870018555788">Používat polohu. Povolit aplikacím, webům a službám pro Chrome OS a Android s oprávněním pro přístup k poloze používat polohu vašeho zařízení. Přesnost určování polohy poskytuje aplikacím pro Android a službám přesnější polohu. Za tímto účelem Google pravidelně zpracovává informace o senzorech a bezdrátových signálech z vašeho zařízení, aby prostřednictvím crowdsourcingu určil umístění zdrojů bezdrátových signálů v okolí. Tento proces vás nijak neidentifikuje. Účelem je vylepšování přesnosti určování polohy, zlepšování služeb založených na poloze a vylepšování, poskytování a správa služeb Google na základě oprávněných zájmů společnosti Google a třetích stran ve snaze sloužit potřebám uživatelů. <ph name="BEGIN_LINK1" />Další informace o používání polohy<ph name="END_LINK1" /></translation>
@@ -11096,7 +11095,6 @@
 <translation id="8827125715368568315">Zablokováno oprávnění <ph name="PERMISSION" /> a další (<ph name="COUNT" />)</translation>
 <translation id="8827289157496676362">Připnout rozšíření</translation>
 <translation id="8828933418460119530">Název DNS</translation>
-<translation id="8829979393064090868">Přidat kartu do rozděleného zobrazení</translation>
 <translation id="8830479210602243906">Podpořit produktivitu</translation>
 <translation id="883062543841130884">Náhrady</translation>
 <translation id="8830779999439981481">Restartování a instalace aktualizací</translation>
diff --git a/chrome/app/resources/generated_resources_cy.xtb b/chrome/app/resources/generated_resources_cy.xtb
index e8c4b35..dc60ed5 100644
--- a/chrome/app/resources/generated_resources_cy.xtb
+++ b/chrome/app/resources/generated_resources_cy.xtb
@@ -5999,7 +5999,6 @@
 <translation id="5186381005592669696">Addasu iaith arddangos ar gyfer apiau a gefnogir</translation>
 <translation id="5186788525428341874">Gallwch ddefnyddio'r cod pas hwn i fewngofnodi'n gyflymach ar draws eich dyfeisiau. Bydd yn cael ei gadw i'r Rheolwr Cyfrineiriau Google ar gyfer <ph name="ACCOUNT_NAME" />.</translation>
 <translation id="5187641678926990264">&amp;Gosod Tudalen fel Ap...</translation>
-<translation id="5187671830619031922">Ychwanegu Tab i'r Wedd Hollt</translation>
 <translation id="5187826826541650604"><ph name="KEY_NAME" /> (<ph name="DEVICE" />)</translation>
 <translation id="5188242000716462162">Wedi'i rhannu gan <ph name="USER_NAME" /></translation>
 <translation id="5188648870018555788">Defnyddio lleoliad. Caniatáu i apiau, gwefannau a gwasanaethau Android a ChromeOS sydd â chaniatâd lleoliad ddefnyddio lleoliad eich dyfais. Mae Cywirdeb Lleoliad yn darparu lleoliad mwy cywir ar gyfer apiau a gwasanaethau Android. I wneud hyn, mae Google yn prosesu gwybodaeth o bryd i'w gilydd am synwyryddion dyfais a signalau diwifr o'ch dyfais er mwyn canfod lleoliadau signal diwifr drwy gyfrannu torfol. Defnyddir y rhain heb eich adnabod i wella cywirdeb lleoliad a gwasanaethau seiliedig ar leoliad ac i wella, darparu, a chynnal gwasanaethau Google yn seiliedig ar fuddiannau cyfreithlon Google a thrydydd parti i wasanaethu anghenion defnyddwyr. <ph name="BEGIN_LINK1" />Dysgu rhagor am ddefnyddio lleoliad<ph name="END_LINK1" /></translation>
@@ -9032,6 +9031,7 @@
 <translation id="7387951778417998929">I ddefnyddio peiriant chwilio sy'n wahanol i'r peiriant diofyn, teipiwch ei lwybr byr yn y bar cyfeiriad ac yna eich llwybr byr a ffefrir. Gallwch hefyd newid eich peiriant chwilio diofyn yma.</translation>
 <translation id="7388615499319468910">Gall gwefannau a hysbysebwyr ddeall sut mae hysbysebion yn perfformio. Mae'r gosodiad hwn wedi'i ddiffodd.</translation>
 <translation id="738903649531469042">Ychwanegu Tab at y Rhestr Ddarllen</translation>
+<translation id="7389615853658756494">Ei newid ar y wefan</translation>
 <translation id="7392118418926456391">Wedi methu â sganio am feirysau</translation>
 <translation id="7392915005464253525">Ailagor ffenestr a gaewyd</translation>
 <translation id="7393073300870882456">{COUNT,plural, =1{Copïwyd 1 eitem}zero{Copïwyd {COUNT} eitem}two{Copïwyd {COUNT} eitem}few{Copïwyd {COUNT} eitem}many{Copïwyd {COUNT} eitem}other{Copïwyd {COUNT} eitem}}</translation>
@@ -9161,6 +9161,7 @@
 <translation id="7474043404939621342">Addasu eich bar offer</translation>
 <translation id="747459581954555080">Adfer popeth</translation>
 <translation id="747507174130726364">{NUM_DAYS,plural, =1{Mae angen dychwelyd ar unwaith}zero{Dychwelwch <ph name="DEVICE_TYPE" /> o fewn {NUM_DAYS} diwrnod}two{Dychwelwch <ph name="DEVICE_TYPE" /> o fewn {NUM_DAYS} ddiwrnod}few{Dychwelwch <ph name="DEVICE_TYPE" /> o fewn {NUM_DAYS} diwrnod}many{Dychwelwch <ph name="DEVICE_TYPE" /> o fewn {NUM_DAYS} diwrnod}other{Dychwelwch <ph name="DEVICE_TYPE" /> o fewn {NUM_DAYS} diwrnod}}</translation>
+<translation id="747557463733380256">Dysgu am sut mae eich porwr yn cael ei reoli</translation>
 <translation id="7475671414023905704">URL Cyfrinair sydd wedi'i Golli Netscape</translation>
 <translation id="7475742997309661417">Mae'r darllenydd sgrîn ar ChromeOS, ChromeVox, yn cael ei ddefnyddio'n bennaf gan bobl â dallineb neu olwg gwan i ddarllen testun sy'n cael ei arddangos ar y sgrîn gyda syntheseisydd lleferydd neu ddangosydd braille. Pwyswch a daliwch y ddwy fysell lefel sain am bum eiliad i droi ChromeVox ymlaen. Pan fydd ChromeVox wedi'i weithredu, byddwch yn mynd trwy daith gyflym.</translation>
 <translation id="7476454130948140105">Mae'r batri yn rhy isel i ddiweddaru (<ph name="BATTERY_PERCENT" />%)</translation>
@@ -10309,6 +10310,7 @@
 <translation id="8265018477030547118">Ar y ddyfais hon yn unig</translation>
 <translation id="826511437356419340">Dechreuwyd y modd trosolwg ffenestr. Sweipiwch i lywio, neu pwyswch Tab os ydych yn defnyddio bysellfwrdd.</translation>
 <translation id="8265671588726449108">{COUNT,plural, =1{Ni fydd eich ffenestr Anhysbys yn agor ar ôl i chi ail-lansio}zero{Ni fydd eich {COUNT} ffenestr Anhysbys yn ailagor ar ôl i chi ail-lansio}two{Ni fydd eich {COUNT} ffenestr Anhysbys yn ailagor ar ôl i chi ail-lansio}few{Ni fydd eich {COUNT} ffenestr Anhysbys yn ailagor ar ôl i chi ail-lansio}many{Ni fydd eich {COUNT} ffenestr Anhysbys yn ailagor ar ôl i chi ail-lansio}other{Ni fydd eich {COUNT} ffenestr Anhysbys yn ailagor ar ôl i chi ail-lansio}}</translation>
+<translation id="8266430295499893285">Mae angen i chi ddilysu mai chi sydd yno cyn y gallwch gael mynediad at eich cyfrineiriau</translation>
 <translation id="8266947622852630193">Pob dull mewnbynnu</translation>
 <translation id="8267539814046467575">Ychwanegu argraffydd</translation>
 <translation id="8267961145111171918"><ph name="BEGIN_PARAGRAPH1" />Dyma wybodaeth gyffredinol am y ddyfais hon a sut mae'n cael ei defnyddio (megis lefel batri, gweithgarwch system ac apiau, a gwallau). Defnyddir y data i wella Android, a bydd rhywfaint o wybodaeth gyfun hefyd yn helpu apiau a phartneriaid Google, megis datblygwyr Android, i wella eu hapiau a'u cynhyrchion.<ph name="END_PARAGRAPH1" />
@@ -11122,7 +11124,6 @@
 <translation id="8827125715368568315">Rhwystrwyd <ph name="PERMISSION" /> a <ph name="COUNT" /> arall</translation>
 <translation id="8827289157496676362">Pinio estyniad</translation>
 <translation id="8828933418460119530">Enw DNS</translation>
-<translation id="8829979393064090868">Ychwanegu tab i'r wedd hollt</translation>
 <translation id="8830479210602243906">Hybu cynhyrchiant</translation>
 <translation id="883062543841130884">Amnewidiadau</translation>
 <translation id="8830779999439981481">Wrthi'n ailgychwyn i gymhwyso diweddariadau</translation>
diff --git a/chrome/app/resources/generated_resources_da.xtb b/chrome/app/resources/generated_resources_da.xtb
index dc661b1..e752f63 100644
--- a/chrome/app/resources/generated_resources_da.xtb
+++ b/chrome/app/resources/generated_resources_da.xtb
@@ -5998,7 +5998,6 @@
 <translation id="5186381005592669696">Tilpas visningssproget for understøttede apps</translation>
 <translation id="5186788525428341874">Du kan bruge denne adgangsnøgle til at logge hurtigere ind på dine enheder. Den gemmes i Googles Adgangskodeadministrator for <ph name="ACCOUNT_NAME" />.</translation>
 <translation id="5187641678926990264">&amp;Installer siden som en app…</translation>
-<translation id="5187671830619031922">Føj fane til opdelt visning</translation>
 <translation id="5187826826541650604"><ph name="KEY_NAME" /> (<ph name="DEVICE" />)</translation>
 <translation id="5188242000716462162">Delt af <ph name="USER_NAME" /></translation>
 <translation id="5188648870018555788">Brug lokation. Tillad, at ChromeOS- og Android-apps, -websites og -tjenester med lokationstilladelse kan bruge din enheds lokation. Lokationsnøjagtighed giver Android-apps og -tjenester mere nøjagtige lokationer. Google muliggør dette ved jævnligt at behandle oplysninger om enhedssensorer og trådløse signaler fra din enhed for at crowdsource lokationer med trådløse signaler. Disse signaler anvendes uden at identificere dig med henblik på at forbedre lokationsnøjagtighed og lokationsbaserede tjenester samt for at forbedre, levere og vedligeholde Googles tjenester baseret på Googles og tredjeparters legitime interesser i at opfylde brugernes behov. <ph name="BEGIN_LINK1" />Få flere oplysninger om lokationstilladelse<ph name="END_LINK1" /></translation>
@@ -9025,6 +9024,7 @@
 <translation id="7387951778417998929">Hvis du vil bruge en søgemaskine, der ikke er din standardsøgemaskine, skal du angive genvejen til den i adresselinjen efterfulgt af din foretrukne tastaturgenvej. Du kan også ændre din standardsøgemaskine her.</translation>
 <translation id="7388615499319468910">Websites og annoncører kan få indblik i, hvordan annoncer klarer sig. Denne indstilling er deaktiveret.</translation>
 <translation id="738903649531469042">Føj fane til Læseliste</translation>
+<translation id="7389615853658756494">Skift det på websitet</translation>
 <translation id="7392118418926456391">Virusscanningen mislykkedes</translation>
 <translation id="7392915005464253525">G&amp;enåbn lukkede faner</translation>
 <translation id="7393073300870882456">{COUNT,plural, =1{1 element blev kopieret}one{{COUNT} element blev kopieret}other{{COUNT} elementer blev kopieret}}</translation>
@@ -9154,6 +9154,7 @@
 <translation id="7474043404939621342">Tilpas din værktøjslinje</translation>
 <translation id="747459581954555080">Gendan alle</translation>
 <translation id="747507174130726364">{NUM_DAYS,plural, =1{Kræver omgående returnering}one{Returner <ph name="DEVICE_TYPE" /> inden for {NUM_DAYS} dag}other{Returner <ph name="DEVICE_TYPE" /> inden for {NUM_DAYS} dage}}</translation>
+<translation id="747557463733380256">Få flere oplysninger om, hvordan din browser administreres</translation>
 <translation id="7475671414023905704">Netscape-webadresse til mistet adgangskode</translation>
 <translation id="7475742997309661417">Skærmlæseren i ChromeOS, dvs. ChromeVox, bruges primært af personer, som er blinde eller har stærkt nedsat syn, til at læse tekst, der vises på skærmen, med en talesynthesizer eller brailleskærm. Hold begge lydstyrkeknapper nede i fem sekunder for at aktivere ChromeVox. Når ChromeVox er aktiveret, får du en hurtig gennemgang af skærmlæseren.</translation>
 <translation id="7476454130948140105">Batteriniveauet er for lavt til at opdatere (<ph name="BATTERY_PERCENT" /> %)</translation>
@@ -10302,6 +10303,7 @@
 <translation id="8265018477030547118">Kun på denne enhed</translation>
 <translation id="826511437356419340">Tilstanden for vinduesoversigt blev åbnet. Stryg for at navigere, eller tryk på Tab-tasten, hvis du bruger et tastatur.</translation>
 <translation id="8265671588726449108">{COUNT,plural, =1{Dit inkognitovindue åbnes ikke igen, når du har genstartet}one{Du har {COUNT} åbent inkognitovindue. Dette åbnes ikke igen, når du har genstartet}other{Du har {COUNT} åbne inkognitovinduer. Disse åbnes ikke igen, når du har genstartet}}</translation>
+<translation id="8266430295499893285">Du skal verificere din identitet, før du kan få adgang til dine adgangskoder</translation>
 <translation id="8266947622852630193">Alle indtastningsmetoder</translation>
 <translation id="8267539814046467575">Tilføj printer</translation>
 <translation id="8267961145111171918"><ph name="BEGIN_PARAGRAPH1" />Dette er generelle oplysninger om din enhed og brugen af den (f.eks. batteriniveau, system- og appaktivitet og fejl). Dataene bruges til at forbedre Android, og visse samlede oplysninger kan også hjælpe Google-apps og -partnere som f.eks. Android-udviklere med at forbedre deres apps og produkter.<ph name="END_PARAGRAPH1" />
@@ -11113,7 +11115,6 @@
 <translation id="8827125715368568315">Adgangen til <ph name="PERMISSION" /> og <ph name="COUNT" /> yderligere blev blokeret</translation>
 <translation id="8827289157496676362">Fastgør udvidelse</translation>
 <translation id="8828933418460119530">DNS-navn</translation>
-<translation id="8829979393064090868">Føj fane til opdelt visning</translation>
 <translation id="8830479210602243906">Øg produktiviteten</translation>
 <translation id="883062543841130884">Erstatninger</translation>
 <translation id="8830779999439981481">Genstarter for at anvende opdateringer</translation>
diff --git a/chrome/app/resources/generated_resources_de.xtb b/chrome/app/resources/generated_resources_de.xtb
index 9932fc7..cccf55ed 100644
--- a/chrome/app/resources/generated_resources_de.xtb
+++ b/chrome/app/resources/generated_resources_de.xtb
@@ -5977,7 +5977,6 @@
 <translation id="5186381005592669696">Anzeigesprache für unterstützte Apps anpassen</translation>
 <translation id="5186788525428341874">Du kannst diesen Passkey verwenden, um dich auf deinen Geräten schneller anzumelden. Er wird im Google Passwortmanager für <ph name="ACCOUNT_NAME" /> gespeichert.</translation>
 <translation id="5187641678926990264">Seite als App &amp;installieren…</translation>
-<translation id="5187671830619031922">Tab zur geteilten Ansicht hinzufügen</translation>
 <translation id="5187826826541650604"><ph name="KEY_NAME" /> (<ph name="DEVICE" />)</translation>
 <translation id="5188242000716462162">Geteilt von <ph name="USER_NAME" /></translation>
 <translation id="5188648870018555788">Standort verwenden. ChromeOS- und Android-Apps, ‑Websites und ‑Dienste mit Berechtigung zur Standortermittlung dürfen den Standort deines Geräts nutzen. Die Standortgenauigkeit ermöglicht eine genauere Standortermittlung für Android-Apps und ‑Dienste. Dafür verarbeitet Google in regelmäßigen Abständen Informationen über Gerätesensoren und Funksignale von deinem Gerät und den Geräten anderer Nutzer und kombiniert diese Informationen zur Standortbestimmung. Die so gewonnenen Daten bleiben anonym und werden verwendet, um die Standortgenauigkeit und die standortbezogenen Dienste zu verbessern und um Google-Dienste auf der Grundlage der berechtigten Interessen von Google und Dritten mit Blick auf die Anforderungen der Nutzer zu optimieren, bereitzustellen und zu verwalten. <ph name="BEGIN_LINK1" />Weitere Informationen zur Standortnutzung<ph name="END_LINK1" /></translation>
@@ -8998,6 +8997,7 @@
 <translation id="7387951778417998929">Du kannst eine andere Suchmaschine als deine Standardsuchmaschine verwenden, indem du das zugehörige Kürzel in die Adressleiste eingibst und dann das von dir bevorzugte Tastenkürzel drückst. Außerdem kannst du hier deine Standardsuchmaschine ändern.</translation>
 <translation id="7388615499319468910">Websites und Werbetreibende können die Leistung ihrer Werbung analysieren. Diese Einstellung ist deaktiviert.</translation>
 <translation id="738903649531469042">Tab zur Leseliste hinzufügen</translation>
+<translation id="7389615853658756494">Auf der Website ändern</translation>
 <translation id="7392118418926456391">Fehler beim Virenscan</translation>
 <translation id="7392915005464253525">Geschlossenes Fenster wieder öffn&amp;en</translation>
 <translation id="7393073300870882456">{COUNT,plural, =1{1 Element kopiert}other{{COUNT} Elemente kopiert}}</translation>
@@ -9127,6 +9127,7 @@
 <translation id="7474043404939621342">Symbolleiste personalisieren</translation>
 <translation id="747459581954555080">Alle wiederherstellen</translation>
 <translation id="747507174130726364">{NUM_DAYS,plural, =1{Sofortige Rückgabe erforderlich}other{<ph name="DEVICE_TYPE" /> innerhalb von {NUM_DAYS} Tagen zurückgeben}}</translation>
+<translation id="747557463733380256">Informationen zur Verwaltung deines Browsers</translation>
 <translation id="7475671414023905704">Netscape-URL für vergessene Passwörter</translation>
 <translation id="7475742997309661417">Der Screenreader unter ChromeOS, ChromeVox, wird vor allem von Menschen mit Sehbehinderung oder eingeschränktem Sehvermögen verwendet, um auf dem Bildschirm dargestellten Text mit einem Sprachsynthesizer oder einer Braillezeile zu lesen. Halte beide Lautstärketasten fünf Sekunden gedrückt, um ChromeVox zu aktivieren. Wenn ChromeVox aktiviert ist, erhältst du eine kurze Einführung.</translation>
 <translation id="7476454130948140105">Der Akku ist für ein Update zu schwach (<ph name="BATTERY_PERCENT" /> %)</translation>
@@ -10276,6 +10277,7 @@
 <translation id="8265018477030547118">Nur auf diesem Gerät</translation>
 <translation id="826511437356419340">Du befindest dich jetzt im Modus "Fensterübersicht". Um zwischen Fenstern zu wechseln, kannst du wischen oder auf der Tastatur die Tabulatortaste drücken.</translation>
 <translation id="8265671588726449108">{COUNT,plural, =1{Dein Inkognitofenster wird nach dem Neustart nicht wieder geöffnet}other{Deine {COUNT} Inkognitofenster werden nach dem Neustart nicht wieder geöffnet}}</translation>
+<translation id="8266430295499893285">Du musst deine Identität bestätigen, bevor du auf deine Passwörter zugreifen kannst</translation>
 <translation id="8266947622852630193">Alle Eingabemethoden</translation>
 <translation id="8267539814046467575">Drucker hinzufügen</translation>
 <translation id="8267961145111171918"><ph name="BEGIN_PARAGRAPH1" />Dies sind allgemeine Informationen zu diesem Gerät und dessen Nutzung, zum Beispiel zum Ladestatus des Akkus, zu System- und App-Aktivitäten und zu Fehlern. Die Daten werden zur Verbesserung von Android verwendet. Einige Informationen, die in zusammengefasster Form weitergegeben werden, helfen auch Apps und Partnern von Google, wie Android-Entwicklern, dabei, ihre Apps und Produkte zu verbessern.<ph name="END_PARAGRAPH1" />
@@ -11085,7 +11087,6 @@
 <translation id="8827125715368568315"><ph name="PERMISSION" /> und <ph name="COUNT" /> weitere blockiert</translation>
 <translation id="8827289157496676362">Erweiterung anpinnen</translation>
 <translation id="8828933418460119530">DNS-Name</translation>
-<translation id="8829979393064090868">Tab zur geteilten Ansicht hinzufügen</translation>
 <translation id="8830479210602243906">Effizienter arbeiten</translation>
 <translation id="883062543841130884">Ersetzungen</translation>
 <translation id="8830779999439981481">Neustart läuft, um Updates anzuwenden</translation>
diff --git a/chrome/app/resources/generated_resources_el.xtb b/chrome/app/resources/generated_resources_el.xtb
index 4264d68..45d902b 100644
--- a/chrome/app/resources/generated_resources_el.xtb
+++ b/chrome/app/resources/generated_resources_el.xtb
@@ -5996,7 +5996,6 @@
 <translation id="5186381005592669696">Προσαρμογή γλώσσας εμφάνισης για υποστηριζόμενες εφαρμογές</translation>
 <translation id="5186788525428341874">Μπορείτε να χρησιμοποιείτε αυτό το κλειδί πρόσβασης για να συνδέεστε πιο γρήγορα σε όλες τις συσκευές σας. Θα αποθηκευτεί στον Διαχειριστή κωδικών πρόσβασης Google για τον λογαριασμό <ph name="ACCOUNT_NAME" />.</translation>
 <translation id="5187641678926990264">&amp;Εγκατάσταση σελίδας ως εφαρμογής…</translation>
-<translation id="5187671830619031922">Προσθήκη καρτέλας σε προβολή διαχωρισμού οθόνης</translation>
 <translation id="5187826826541650604"><ph name="KEY_NAME" /> (<ph name="DEVICE" />)</translation>
 <translation id="5188242000716462162">Έγινε κοινή χρήση από <ph name="USER_NAME" /></translation>
 <translation id="5188648870018555788">Χρήση τοποθεσίας. Να επιτρέπεται στις εφαρμογές, τους ιστοτόπους και τις υπηρεσίες του ChromeOS και του Android που έχουν άδεια τοποθεσίας να χρησιμοποιούν την τοποθεσία της συσκευής σας. Η Ακρίβεια τοποθεσίας παρέχει ακριβέστερη τοποθεσία για εφαρμογές και υπηρεσίες Android. Για να γίνει αυτό, η Google επεξεργάζεται κατά περιόδους πληροφορίες σχετικά με αισθητήρες συσκευής και ασύρματα σήματα από τη συσκευή σας, ώστε να συνεισφέρει στις τοποθεσίες ασύρματων σημάτων βάσει crowdsourcing. Αυτές οι πληροφορίες χρησιμοποιούνται χωρίς να σας ταυτοποιούν για τη βελτίωση της ακρίβειας τοποθεσίας και των υπηρεσιών με βάση την τοποθεσία, καθώς και για τη βελτίωση, την παροχή και τη διατήρηση των υπηρεσιών της Google, με βάση τα έννομα συμφέροντα της Google και τρίτων μερών, προκειμένου να εξυπηρετούνται οι ανάγκες των χρηστών. <ph name="BEGIN_LINK1" />Μάθετε περισσότερα σχετικά με τη χρήση της τοποθεσίας<ph name="END_LINK1" /></translation>
@@ -9022,6 +9021,7 @@
 <translation id="7387951778417998929">Για να χρησιμοποιήσετε μια μηχανή αναζήτησης διαφορετική από την προεπιλεγμένη, πληκτρολογήστε τη συντόμευση στη γραμμή διευθύνσεων και, στη συνέχεια, τη συντόμευση πληκτρολογίου που προτιμάτε. Μπορείτε επίσης να αλλάξετε την προεπιλεγμένη μηχανή αναζήτησης εδώ.</translation>
 <translation id="7388615499319468910">Οι ιστότοποι και οι διαφημιζόμενοι μπορούν να κατανοούν την απόδοση των διαφημίσεων. Αυτή η ρύθμιση είναι απενεργοποιημένη.</translation>
 <translation id="738903649531469042">Προσθήκη καρτέλας στη Λίστα ανάγνωσης</translation>
+<translation id="7389615853658756494">Αλλάξτε τον στον ιστότοπο</translation>
 <translation id="7392118418926456391">Απέτυχε η σάρωση για ιούς</translation>
 <translation id="7392915005464253525">Ε&amp;παναφορά παραθύρου που έχει κλείσει</translation>
 <translation id="7393073300870882456">{COUNT,plural, =1{1 στοιχείο αντιγράφηκε}other{{COUNT} στοιχεία αντιγράφηκαν}}</translation>
@@ -9151,6 +9151,7 @@
 <translation id="7474043404939621342">Προσαρμογή της γραμμής εργαλείων</translation>
 <translation id="747459581954555080">Επαναφορά όλων</translation>
 <translation id="747507174130726364">{NUM_DAYS,plural, =1{Απαιτείται άμεση επιστροφή}other{Επιστροφή συσκευής (<ph name="DEVICE_TYPE" />) εντός {NUM_DAYS} ημερών}}</translation>
+<translation id="747557463733380256">Μάθετε περισσότερα σχετικά με τον τρόπο διαχείρισης του προγράμματος περιήγησής σας</translation>
 <translation id="7475671414023905704">URL χαμένου κωδικού πρόσβασης Netscape</translation>
 <translation id="7475742997309661417">Ο αναγνώστης οθόνης στο ChromeOS, το ChromeVox, χρησιμοποιείται κυρίως από τυφλά ή με χαμηλή όραση άτομα για την ανάγνωση κειμένου που εμφανίζεται στην οθόνη με πρόγραμμα σύνθεσης ομιλίας ή συσκευή μπράιγ. Πατήστε παρατεταμένα και τα δύο κουμπιά έντασης ήχου για πέντε δευτερόλεπτα, για να ενεργοποιήσετε το ChromeVox. Όταν ενεργοποιηθεί το ChromeVox, θα ξεκινήσει μια γρήγορη περιήγηση.</translation>
 <translation id="7476454130948140105">Η ισχύς της μπαταρίας είναι πολύ χαμηλή για ενημέρωση (<ph name="BATTERY_PERCENT" />%)</translation>
@@ -10300,6 +10301,7 @@
 <translation id="8265018477030547118">Μόνο σε αυτήν τη συσκευή</translation>
 <translation id="826511437356419340">Έχει ενεργοποιηθεί η λειτουργία επισκόπησης παραθύρου. Σύρετε για πλοήγηση ή πατήστε το πλήκτρο tab εάν χρησιμοποιείτε το πληκτρολόγιο.</translation>
 <translation id="8265671588726449108">{COUNT,plural, =1{Το παράθυρο για ανώνυμη περιήγηση δεν θα ανοίξει μετά την επανεκκίνηση}other{Τα {COUNT} παράθυρα για ανώνυμη περιήγηση δεν θα ανοίξουν ξανά μετά την επανεκκίνηση}}</translation>
+<translation id="8266430295499893285">Πρέπει να επαληθεύσετε την ταυτότητά σας, για να αποκτήσετε πρόσβαση στους κωδικούς πρόσβασης</translation>
 <translation id="8266947622852630193">Όλες οι μέθοδοι εισαγωγής</translation>
 <translation id="8267539814046467575">Προσθήκη εκτυπωτή</translation>
 <translation id="8267961145111171918"><ph name="BEGIN_PARAGRAPH1" />Αυτές είναι γενικές πληροφορίες σχετικά με αυτήν τη συσκευή και τον τρόπο με τον οποίο χρησιμοποιείται (όπως είναι το επίπεδο της μπαταρίας, η δραστηριότητα συστήματος και εφαρμογών και τα σφάλματα). Τα δεδομένα θα χρησιμοποιηθούν για τη βελτίωση του Android και ορισμένες συγκεντρωτικές πληροφορίες θα βοηθήσουν τις εφαρμογές και τους συνεργάτες της Google, όπως οι προγραμματιστές Android, να βελτιώσουν τις εφαρμογές και τα προϊόντα τους.<ph name="END_PARAGRAPH1" />
@@ -11107,7 +11109,6 @@
 <translation id="8827125715368568315">Αποκλείστηκε η άδεια <ph name="PERMISSION" /> και <ph name="COUNT" /> ακόμη άδειες</translation>
 <translation id="8827289157496676362">Καρφίτσωμα επέκτασης</translation>
 <translation id="8828933418460119530">Όνομα DNS</translation>
-<translation id="8829979393064090868">Προσθήκη καρτέλας σε προβολή διαχωρισμού οθόνης</translation>
 <translation id="8830479210602243906">Ενίσχυση παραγωγικότητας</translation>
 <translation id="883062543841130884">Αντικαταστάσεις</translation>
 <translation id="8830779999439981481">Επανεκκίνηση για την εφαρμογή των ενημερώσεων</translation>
diff --git a/chrome/app/resources/generated_resources_en-GB.xtb b/chrome/app/resources/generated_resources_en-GB.xtb
index 365d40a..3d8e718e 100644
--- a/chrome/app/resources/generated_resources_en-GB.xtb
+++ b/chrome/app/resources/generated_resources_en-GB.xtb
@@ -5996,7 +5996,6 @@
 <translation id="5186381005592669696">Customise display language for supported apps</translation>
 <translation id="5186788525428341874">You can use this passkey to sign in faster across your devices. It will be saved to Google Password Manager for <ph name="ACCOUNT_NAME" />.</translation>
 <translation id="5187641678926990264">&amp;Install page as app…</translation>
-<translation id="5187671830619031922">Add tab to split view</translation>
 <translation id="5187826826541650604"><ph name="KEY_NAME" /> (<ph name="DEVICE" />)</translation>
 <translation id="5188242000716462162">Shared by <ph name="USER_NAME" /></translation>
 <translation id="5188648870018555788">Use location. Allow ChromeOS and Android apps, websites and services with location permission to use your device's location. Location Accuracy provides more accurate location for Android apps and services. To do this, Google periodically processes information about device sensors and wireless signals from your device to crowdsource wireless signal locations. These are used without identifying you to improve location accuracy and location-based services and to improve, provide and maintain Google's services based on Google's and third parties' legitimate interests to serve users' needs. <ph name="BEGIN_LINK1" />Learn more about using location<ph name="END_LINK1" /></translation>
@@ -9021,6 +9020,7 @@
 <translation id="7387951778417998929">To use a search engine other than the default, type its shortcut in the address bar followed by your preferred keyboard shortcut. You can also change your default search engine here.</translation>
 <translation id="7388615499319468910">Sites and advertisers can understand how ads perform. This setting is off.</translation>
 <translation id="738903649531469042">Add tab to reading list</translation>
+<translation id="7389615853658756494">Change it on the site</translation>
 <translation id="7392118418926456391">Virus scan failed</translation>
 <translation id="7392915005464253525">R&amp;eopen closed window</translation>
 <translation id="7393073300870882456">{COUNT,plural, =1{1 item copied}other{{COUNT} items copied}}</translation>
@@ -9150,6 +9150,7 @@
 <translation id="7474043404939621342">Customise your toolbar</translation>
 <translation id="747459581954555080">Restore all</translation>
 <translation id="747507174130726364">{NUM_DAYS,plural, =1{Immediate return required}other{Return <ph name="DEVICE_TYPE" /> within {NUM_DAYS} days}}</translation>
+<translation id="747557463733380256">Learn about how your browser is managed</translation>
 <translation id="7475671414023905704">Netscape Lost Password URL</translation>
 <translation id="7475742997309661417">The screen reader on ChromeOS, ChromeVox, is primarily used by people with blindness or low vision to read text displayed on the screen with a speech synthesiser or braille display. Press and hold both volume keys for five seconds to turn on ChromeVox. When ChromeVox is activated, you’ll go through a quick tour.</translation>
 <translation id="7476454130948140105">Battery too low for update (<ph name="BATTERY_PERCENT" />%)</translation>
@@ -10299,6 +10300,7 @@
 <translation id="8265018477030547118">Only on this device</translation>
 <translation id="826511437356419340">Entered window overview mode. Swipe to navigate, or press tab if using a keyboard.</translation>
 <translation id="8265671588726449108">{COUNT,plural, =1{Your incognito window won't open after you relaunch}other{Your {COUNT} incognito windows won't reopen after you relaunch}}</translation>
+<translation id="8266430295499893285">You need to verify that it's you before you can access your passwords</translation>
 <translation id="8266947622852630193">All input methods</translation>
 <translation id="8267539814046467575">Add printer</translation>
 <translation id="8267961145111171918"><ph name="BEGIN_PARAGRAPH1" />This is general information about this device and how it's used (such as battery level, system and app activity and errors). The data will be used to improve Android, and some aggregated information will also help Google apps and partners, such as Android developers, make their apps and products better.<ph name="END_PARAGRAPH1" />
@@ -11108,7 +11110,6 @@
 <translation id="8827125715368568315">Blocked <ph name="PERMISSION" /> and <ph name="COUNT" /> more</translation>
 <translation id="8827289157496676362">Pin extension</translation>
 <translation id="8828933418460119530">DNS Name</translation>
-<translation id="8829979393064090868">Add tab to split view</translation>
 <translation id="8830479210602243906">Boost productivity</translation>
 <translation id="883062543841130884">Substitutions</translation>
 <translation id="8830779999439981481">Restarting to apply updates</translation>
diff --git a/chrome/app/resources/generated_resources_es-419.xtb b/chrome/app/resources/generated_resources_es-419.xtb
index c4b06cd..a38fd6102 100644
--- a/chrome/app/resources/generated_resources_es-419.xtb
+++ b/chrome/app/resources/generated_resources_es-419.xtb
@@ -5980,7 +5980,6 @@
 <translation id="5186381005592669696">Personaliza el idioma de visualización de las apps compatibles</translation>
 <translation id="5186788525428341874">Puedes usar esta llave de acceso para acceder más rápido en tus dispositivos. Se guardará en el Administrador de contraseñas de Google de <ph name="ACCOUNT_NAME" />.</translation>
 <translation id="5187641678926990264">&amp;Instalar página como app…</translation>
-<translation id="5187671830619031922">Agregar pestaña a la vista dividida</translation>
 <translation id="5187826826541650604"><ph name="KEY_NAME" /> (<ph name="DEVICE" />)</translation>
 <translation id="5188242000716462162">Compartido por <ph name="USER_NAME" /></translation>
 <translation id="5188648870018555788">Usar la ubicación. Permite que las apps, los sitios web y los servicios de ChromeOS y Android que tengan permiso de ubicación usen la ubicación de tu dispositivo. La Precisión de la ubicación proporciona una ubicación más precisa para las apps y los servicios de Android. Para ello, Google procesa de forma periódica información sobre los sensores del dispositivo y sus señales inalámbricas para obtener ubicaciones de las señales inalámbricas con participación colectiva. Esta información se utiliza sin identificarte para mejorar la precisión de la ubicación y los servicios basados en ella, además de mejorar, proporcionar y mantener los servicios de Google en función de sus intereses legítimos (y los de terceros) de satisfacer las necesidades de los usuarios. <ph name="BEGIN_LINK1" />Más información sobre el uso de la ubicación<ph name="END_LINK1" /></translation>
@@ -11095,7 +11094,6 @@
 <translation id="8827125715368568315">Permisos bloqueados: <ph name="PERMISSION" /> y <ph name="COUNT" /> más</translation>
 <translation id="8827289157496676362">Fijar extensión</translation>
 <translation id="8828933418460119530">Nombre de DNS</translation>
-<translation id="8829979393064090868">Agregar pestaña a la vista dividida</translation>
 <translation id="8830479210602243906">Aumentar la productividad</translation>
 <translation id="883062543841130884">Sustituciones</translation>
 <translation id="8830779999439981481">Reiniciando para aplicar actualizaciones</translation>
diff --git a/chrome/app/resources/generated_resources_es.xtb b/chrome/app/resources/generated_resources_es.xtb
index 052014e..b3ee666a 100644
--- a/chrome/app/resources/generated_resources_es.xtb
+++ b/chrome/app/resources/generated_resources_es.xtb
@@ -5982,7 +5982,6 @@
 <translation id="5186381005592669696">Personaliza el idioma de visualización de las aplicaciones compatibles</translation>
 <translation id="5186788525428341874">Puedes usar esta llave de acceso para iniciar sesión más rápido en todos tus dispositivos. Se guardará en el Gestor de contraseñas de Google de <ph name="ACCOUNT_NAME" />.</translation>
 <translation id="5187641678926990264">&amp;Instalar página como aplicación...</translation>
-<translation id="5187671830619031922">Añadir pestaña a la vista dividida</translation>
 <translation id="5187826826541650604"><ph name="KEY_NAME" /> (<ph name="DEVICE" />)</translation>
 <translation id="5188242000716462162">Compartido por <ph name="USER_NAME" /></translation>
 <translation id="5188648870018555788">Usa la ubicación. Permite que las aplicaciones, los sitios web y los servicios de ChromeOS y Android que tengan el permiso de ubicación usen la ubicación de tu dispositivo. La precisión de la ubicación proporciona una ubicación más precisa para las aplicaciones y los servicios de Android. Para ello, Google procesa periódicamente la información de los sensores y señales inalámbricas de tu dispositivo para recoger las ubicaciones de las señales inalámbricas. Estos datos se usan sin identificarte para mejorar la precisión de la ubicación y los servicios basados en ella, así como para mejorar, proporcionar y mantener los servicios de Google en función de sus propios intereses legítimos y los de terceros con el fin de satisfacer las necesidades de los usuarios. <ph name="BEGIN_LINK1" />Más información sobre cómo usar la ubicación<ph name="END_LINK1" /></translation>
@@ -9006,6 +9005,7 @@
 <translation id="7387951778417998929">Para usar un buscador distinto del predeterminado, escribe su acceso directo en la barra de direcciones seguido de tu atajo de teclado preferido. También puedes cambiar tu buscador predeterminado aquí.</translation>
 <translation id="7388615499319468910">Los sitios y los anunciantes pueden comprender el rendimiento de los anuncios. Esta opción está desactivada.</translation>
 <translation id="738903649531469042">Añadir pestaña a lista de lectura</translation>
+<translation id="7389615853658756494">Cambiarlo en el sitio</translation>
 <translation id="7392118418926456391">Error en el análisis antivirus</translation>
 <translation id="7392915005464253525">Volv&amp;er a abrir ventana cerrada</translation>
 <translation id="7393073300870882456">{COUNT,plural, =1{1 elemento copiado}other{{COUNT} elementos copiados}}</translation>
@@ -9135,6 +9135,7 @@
 <translation id="7474043404939621342">Personalizar la barra de herramientas</translation>
 <translation id="747459581954555080">Restaurar todo</translation>
 <translation id="747507174130726364">{NUM_DAYS,plural, =1{Devolución inmediata necesaria}other{Devuelve el <ph name="DEVICE_TYPE" /> en el plazo de {NUM_DAYS} días}}</translation>
+<translation id="747557463733380256">Más información sobre cómo se gestiona tu navegador</translation>
 <translation id="7475671414023905704">URL de contraseñas perdidas de Netscape</translation>
 <translation id="7475742997309661417">ChromeVox, el lector de pantalla de ChromeOS, lo usan principalmente las personas invidentes o con baja visión para leer el texto que se muestra en la pantalla con un sintetizador de voz o una pantalla braille. Mantén pulsadas las dos teclas de volumen durante cinco segundos para activar ChromeVox. Cuando ChromeVox esté activado, podrás realizar una visita guiada rápida.</translation>
 <translation id="7476454130948140105">No tienes suficiente batería para instalar la actualización (<ph name="BATTERY_PERCENT" />%)</translation>
@@ -10284,6 +10285,7 @@
 <translation id="8265018477030547118">Solo en este dispositivo</translation>
 <translation id="826511437356419340">Se ha cambiado al modo de vista general de ventanas. Desliza el dedo para desplazarte o pulsa el tabulador si estás utilizando un teclado.</translation>
 <translation id="8265671588726449108">{COUNT,plural, =1{1 ventana de Incógnito no se abrirá después de reiniciar}other{{COUNT} ventanas de Incógnito no se volverán a abrir después de reiniciar}}</translation>
+<translation id="8266430295499893285">Debes verificar que eres tú para poder acceder a tus contraseñas</translation>
 <translation id="8266947622852630193">Todos los métodos de introducción de texto</translation>
 <translation id="8267539814046467575">Añadir impresora</translation>
 <translation id="8267961145111171918"><ph name="BEGIN_PARAGRAPH1" />Estos datos incluyen información general sobre tu dispositivo y sobre cómo lo usas (como el nivel de batería, la actividad de las aplicaciones y del sistema, y los errores). Sirven para mejorar Android, y parte de los datos agregados también ayudan a las aplicaciones y partners de Google, como los desarrolladores de Android, a mejorar sus productos y aplicaciones.<ph name="END_PARAGRAPH1" />
@@ -11093,7 +11095,6 @@
 <translation id="8827125715368568315">Con bloqueo: <ph name="PERMISSION" /> y <ph name="COUNT" /> más</translation>
 <translation id="8827289157496676362">Fijar extensión</translation>
 <translation id="8828933418460119530">Nombre de DNS</translation>
-<translation id="8829979393064090868">Añadir pestaña a la vista dividida</translation>
 <translation id="8830479210602243906">Mejorar productividad</translation>
 <translation id="883062543841130884">Sustituciones</translation>
 <translation id="8830779999439981481">Reiniciando para aplicar actualizaciones</translation>
diff --git a/chrome/app/resources/generated_resources_et.xtb b/chrome/app/resources/generated_resources_et.xtb
index f53971c..6b12f1f 100644
--- a/chrome/app/resources/generated_resources_et.xtb
+++ b/chrome/app/resources/generated_resources_et.xtb
@@ -5987,7 +5987,6 @@
 <translation id="5186381005592669696">Toetatud rakenduste kuvakeele kohandamine</translation>
 <translation id="5186788525428341874">Selle pääsuvõtme abil saate eri seadmetes kiiremini sisse logida. See salvestatakse konto <ph name="ACCOUNT_NAME" /> Google’i paroolihaldurisse.</translation>
 <translation id="5187641678926990264">&amp;Installi leht rakendusena...</translation>
-<translation id="5187671830619031922">Lisa vaheleht poolitatud vaatesse</translation>
 <translation id="5187826826541650604"><ph name="KEY_NAME" /> (<ph name="DEVICE" />)</translation>
 <translation id="5188242000716462162">Jagas <ph name="USER_NAME" /></translation>
 <translation id="5188648870018555788">Asukoha kasutamine. Lubage asukohale juurdepääsu loaga ChromeOS-i ja Androidi rakendustel, veebisaitidel ning teenustel teie seadme asukohta kasutada. Asukohatäpsus pakub Androidi rakenduste ja teenuste jaoks täpsemat asukohta. Selleks töötleb Google regulaarselt teavet seadme andurite ja teie seadme juhtmeta signaalide kohta, et juhtmeta signaalide asukohti ühiselt tuvastada. Neid kasutatakse teie isikut tuvastamata asukohatäpsuse ja asukohapõhiste teenuste parandamiseks ning Google’i teenuste täiustamiseks, pakkumiseks ja haldamiseks, lähtudes Google’i ning kolmandate osapoolte õigustatud huvidest, et kasutajate vajadusi rahuldada. <ph name="BEGIN_LINK1" />Lisateave asukoha kasutamise kohta<ph name="END_LINK1" /></translation>
@@ -9012,6 +9011,7 @@
 <translation id="7387951778417998929">Kui soovite kasutada muud otsingumootorit peale vaikeotsingumootori, sisestage selle otsetee aadressiribale ja seejärel vajutage valitud klaviatuuriotseteed. Samuti saate siin oma vaikeotsingumootorit muuta.</translation>
 <translation id="7388615499319468910">Saidid ja reklaamijad saavad hankida teavet reklaamide toimivuse kohta. See seade on välja lülitatud.</translation>
 <translation id="738903649531469042">Vahelehe lisamine lugemisloendisse</translation>
+<translation id="7389615853658756494">Muuda seda saidil</translation>
 <translation id="7392118418926456391">Viiruste skannimine ebaõnnestus</translation>
 <translation id="7392915005464253525">A&amp;va suletud aken uuesti</translation>
 <translation id="7393073300870882456">{COUNT,plural, =1{1 üksus kopeeriti}other{{COUNT} üksust kopeeriti}}</translation>
@@ -9141,6 +9141,7 @@
 <translation id="7474043404939621342">Kohanda tööriistariba</translation>
 <translation id="747459581954555080">Taasta kõik</translation>
 <translation id="747507174130726364">{NUM_DAYS,plural, =1{Nõutav on kohene tagastamine}other{Tagastage seade (<ph name="DEVICE_TYPE" />) {NUM_DAYS} päeva jooksul}}</translation>
+<translation id="747557463733380256">Lugege teavet brauseri haldamise kohta</translation>
 <translation id="7475671414023905704">Netscape'i kaotatud parooli URL</translation>
 <translation id="7475742997309661417">ChromeOS-i ekraanilugejat ChromeVox kasutavad peamiselt pimedad või vaegnägemisega inimesed, et lugeda ekraanil kuvatavat teksti kõnesünteesi või Braille’i ekraani abil. ChromeVoxi sisselülitamiseks vajutage 5 sekundit pikalt mõlemat helitugevuse klahvi. Kui ChromeVox aktiveeritakse, tehakse teile kiire tutvustus.</translation>
 <translation id="7476454130948140105">Aku on värskendamiseks liiga tühi (<ph name="BATTERY_PERCENT" />%)</translation>
@@ -10290,6 +10291,7 @@
 <translation id="8265018477030547118">Ainult selles seadmes</translation>
 <translation id="826511437356419340">Akna ülevaate režiim on aktiveeritud. Pühkige navigeerimiseks või vajutage tabulaatorit, kui kasutate klaviatuuri.</translation>
 <translation id="8265671588726449108">{COUNT,plural, =1{Teie inkognito akent ei avata pärast uuesti käivitamist}other{Teie {COUNT} inkognito akent ei avata pärast uuesti käivitamist}}</translation>
+<translation id="8266430295499893285">Enne paroolidele juurdepääsu peate kinnitame, et see olete teie</translation>
 <translation id="8266947622852630193">Kõik sisestusmeetodid</translation>
 <translation id="8267539814046467575">Printeri lisamine</translation>
 <translation id="8267961145111171918"><ph name="BEGIN_PARAGRAPH1" />See on üldteave seadme ja selle kasutamise kohta (nt aku tase, süsteemi ja rakenduste tegevus ning vead). Neid andmeid kasutatakse Androidi täiustamiseks ning teatud koondteave aitab ka Google'i rakendusi ja partnerite, näiteks Androidi arendajate, tooteid ja teenuseid täiustada.<ph name="END_PARAGRAPH1" />
@@ -11099,7 +11101,6 @@
 <translation id="8827125715368568315">Blokeeritud on <ph name="PERMISSION" /> ja veel <ph name="COUNT" /></translation>
 <translation id="8827289157496676362">Kinnita laiendus</translation>
 <translation id="8828933418460119530">DNS-nimi</translation>
-<translation id="8829979393064090868">Lisa vaheleht poolitatud vaatesse</translation>
 <translation id="8830479210602243906">Suurendage produktiivsust</translation>
 <translation id="883062543841130884">Asendused</translation>
 <translation id="8830779999439981481">Taaskäivitatakse värskenduste rakendamiseks</translation>
diff --git a/chrome/app/resources/generated_resources_eu.xtb b/chrome/app/resources/generated_resources_eu.xtb
index d2d668c..2962856a 100644
--- a/chrome/app/resources/generated_resources_eu.xtb
+++ b/chrome/app/resources/generated_resources_eu.xtb
@@ -5980,7 +5980,6 @@
 <translation id="5186381005592669696">Pertsonalizatu aplikazio bateragarriak bistaratzeko hizkuntza</translation>
 <translation id="5186788525428341874">Sarbide-gako honen bidez, bizkorrago has dezakezu saioa gailuetan. Google-ren Pasahitz-kudeatzailea zerbitzuan gordeko da, <ph name="ACCOUNT_NAME" /> kontuan.</translation>
 <translation id="5187641678926990264">Instalatu orria aplikazio gisa…</translation>
-<translation id="5187671830619031922">Gehitu fitxa ikuspegi zatituan</translation>
 <translation id="5187826826541650604"><ph name="KEY_NAME" /> (<ph name="DEVICE" />)</translation>
 <translation id="5188242000716462162"><ph name="USER_NAME" /> erabiltzaileak partekatua</translation>
 <translation id="5188648870018555788">Erabili kokapena. Eman gailuaren kokapena erabiltzeko baimena kokapen-baimena aktibatuta daukaten ChromeOS-erako eta Android-erako aplikazio, webgune eta zerbitzuei. Kokapen-zehaztasuna ezarpenari esker, Android-en aplikazio eta zerbitzuek kokapen zehatzagoa lortzen dute. Horretarako, Google-k gailuaren sentsoreei eta hari gabeko seinaleei buruzko informazioa prozesatzen du aldizka, auzolanean hari gabeko seinaleen kokapenak lortzeko. Zu identifikatu gabe erabiltzen dira datu horiek, kokapen-zehaztasuna eta kokapenean oinarritutako zerbitzuak hobetzeko, baita Google-ren zerbitzuak hobetu, eman eta mantentzeko ere, Google-k eta hirugarrenek erabiltzaileen beharrei erantzuteko duten legezko interesa oinarri hartuta. <ph name="BEGIN_LINK1" />Lortu kokapena erabiltzeari buruzko informazio gehiago<ph name="END_LINK1" /></translation>
@@ -11085,7 +11084,6 @@
 <translation id="8827125715368568315">Blokeatutako <ph name="PERMISSION" /> eta beste <ph name="COUNT" /></translation>
 <translation id="8827289157496676362">Ainguratu luzapena</translation>
 <translation id="8828933418460119530">DNS izena</translation>
-<translation id="8829979393064090868">Gehitu fitxa ikuspegi zatituan</translation>
 <translation id="8830479210602243906">Indartu produktibitatea</translation>
 <translation id="883062543841130884">Ordezkapenak</translation>
 <translation id="8830779999439981481">Gailua berrabiarazten, eguneratzeak aplikatzeko</translation>
diff --git a/chrome/app/resources/generated_resources_fa.xtb b/chrome/app/resources/generated_resources_fa.xtb
index ab27e931..9e92bbc 100644
--- a/chrome/app/resources/generated_resources_fa.xtb
+++ b/chrome/app/resources/generated_resources_fa.xtb
@@ -344,7 +344,7 @@
 <translation id="1223853788495130632">سرپرست شما توصیه می‌کند که مقدار خاصی را برای این گزینه وارد کنید.</translation>
 <translation id="1225177025209879837">پردازش درخواست...</translation>
 <translation id="1227107020813934021">پیدا کردن اسکنرهای سند</translation>
-<translation id="1227113644794103810">برگه‌های غیرفعال</translation>
+<translation id="1227113644794103810">زبانه‌های غیرفعال</translation>
 <translation id="1227260640693522019">قلعه</translation>
 <translation id="1227660082540388410">ویرایش گذرکلید</translation>
 <translation id="1227993798763400520">محتوا پخش نشد. لطفاً دوباره امتحان کنید.</translation>
@@ -5993,7 +5993,6 @@
 <translation id="5186381005592669696">زبان نمایشگر را برای برنامه‌های پشتیبانی‌شده سفارشی‌سازی کنید</translation>
 <translation id="5186788525428341874">‏می‌توانید از این گذرکلید برای ورود سریع‌تر به سیستم در همه دستگاه‌هایتان استفاده کنید. این گذرواژه در «مدیر گذرواژه Google» برای <ph name="ACCOUNT_NAME" /> ذخیره خواهد شد.</translation>
 <translation id="5187641678926990264">نصب صفحه به‌عنوان برنامه…</translation>
-<translation id="5187671830619031922">افزودن «برگه» به «نمای تقسیم»</translation>
 <translation id="5187826826541650604"><ph name="KEY_NAME" /> (<ph name="DEVICE" />)</translation>
 <translation id="5188242000716462162">هم‌رسانی‌شده توسط <ph name="USER_NAME" /></translation>
 <translation id="5188648870018555788">‏استفاده از مکان. برنامه‌ها، وب‌سایت‌ها، و سرویس‌های Android و ChromeOS که اجازه مکان دارند مجاز می‌شوند از مکان دستگاهتان استفاده کنند. «دقت مکان» مکان دقیق‌تری برای برنامه‌ها و سرویس‌های Android ارائه می‌دهد. برای انجام این کار، Google به‌صورت دوره‌ای اطلاعات مربوط به حسگرهای دستگاه و سیگنال‌های بی‌سیم دستگاه شما را برای انبوه‌سپاری کردن مکان‌های سیگنال بی‌سیم پردازش می‌کند. از این اطلاعات بدون شناسایی شما برای بهبود دقت مکان و خدمات مکان‌مبنا و بهبود، ارائه، و حفظ سرویس‌های Google براساس منافع مشروع Google و اشخاص ثالث به‌منظور برآورده کردن نیازهای کاربران استفاده می‌شود. <ph name="BEGIN_LINK1" />درباره استفاده از مکان بیشتر بدانید<ph name="END_LINK1" /></translation>
@@ -11110,7 +11109,6 @@
 <translation id="8827125715368568315"><ph name="PERMISSION" /> و <ph name="COUNT" /> اجازه دیگر مسدود شده‌اند</translation>
 <translation id="8827289157496676362">سنجاق کردن افزونه</translation>
 <translation id="8828933418460119530">‏نام DNS</translation>
-<translation id="8829979393064090868">افزودن برگه به نمای تقسیم</translation>
 <translation id="8830479210602243906">تقویت بهره‌وری</translation>
 <translation id="883062543841130884">جایگزین‌ها</translation>
 <translation id="8830779999439981481">درحال بازراه‌اندازی برای اعمال به‌روزرسانی‌ها</translation>
diff --git a/chrome/app/resources/generated_resources_fi.xtb b/chrome/app/resources/generated_resources_fi.xtb
index cf07b0f0..94e94f0 100644
--- a/chrome/app/resources/generated_resources_fi.xtb
+++ b/chrome/app/resources/generated_resources_fi.xtb
@@ -5992,7 +5992,6 @@
 <translation id="5186381005592669696">Muokkaa tuettujen sovellusten näyttökieltä</translation>
 <translation id="5186788525428341874">Avainkoodin avulla voit kirjautua sisään nopeammin kaikilla laitteillasi. Se tallennetaan Google Salasanoihin sähköpostiosoitteella <ph name="ACCOUNT_NAME" />.</translation>
 <translation id="5187641678926990264">Asenna sivu sovelluksena…</translation>
-<translation id="5187671830619031922">Lisää välilehti jaettuun näkymään</translation>
 <translation id="5187826826541650604"><ph name="KEY_NAME" /> (<ph name="DEVICE" />)</translation>
 <translation id="5188242000716462162">Jakaja: <ph name="USER_NAME" /></translation>
 <translation id="5188648870018555788">Käytä sijaintia. Salli laitteen sijainnin käyttäminen ChromeOS‑ ja Android-sovelluksille, ‑verkkosivustoille ja ‑palveluille, joilla on sijaintilupa. Sijaintitietojen tarkkuus tarjoaa tarkemman sijainnin Android-sovelluksille ja ‑palveluille. Google käsittelee ajoittain laitteen anturien ja langattoman signaalin tietoja langattomien signaalien sijainnin keräämistä varten. Näitä tietoja käytetään (sinua tunnistamatta) sijaintitietojen tarkkuuden ja sijaintiin perustuvien palvelujen kehittämiseen sekä Googlen palvelujen kehittämiseen, tarjoamiseen ja ylläpitämiseen. Tämä perustuu Googlen ja kolmansien osapuolten oikeutettuun etuun palvella käyttäjien tarpeita. <ph name="BEGIN_LINK1" />Lue lisää sijainnin käytöstä<ph name="END_LINK1" /></translation>
@@ -9017,6 +9016,7 @@
 <translation id="7387951778417998929">Käytä muuta kuin oletushakukonetta kirjoittamalla sen pikakomento osoitepalkkiin ja painamalla valitsemaasi pikanäppäintä. Täällä voit myös vaihtaa oletushakukonetta.</translation>
 <translation id="7388615499319468910">Sivustot ja mainostajat saavat tietoa mainostuloksista. Tämä asetus on poissa päältä.</translation>
 <translation id="738903649531469042">Lisää välilehti lukulistalle</translation>
+<translation id="7389615853658756494">Muuta sivustolla</translation>
 <translation id="7392118418926456391">Virustarkistus epäonnistui</translation>
 <translation id="7392915005464253525">A&amp;vaa suljettu ikkuna uudelleen</translation>
 <translation id="7393073300870882456">{COUNT,plural, =1{1 kohde kopioitu}other{{COUNT} kohdetta kopioitu}}</translation>
@@ -9146,6 +9146,7 @@
 <translation id="7474043404939621342">Muokkaa työkalupalkkia</translation>
 <translation id="747459581954555080">Palauta kaikki</translation>
 <translation id="747507174130726364">{NUM_DAYS,plural, =1{Palautettava välittömästi}other{Palauta <ph name="DEVICE_TYPE" /> {NUM_DAYS} päivän sisällä}}</translation>
+<translation id="747557463733380256">Lue lisää selaimen ylläpidosta</translation>
 <translation id="7475671414023905704">Netscapen unohtunut salasana -URL</translation>
 <translation id="7475742997309661417">ChromeOS:n ja ChromeVoxin näytönlukuohjelmaa käyttävät ensisijaisesti sokeat ja heikkonäköiset. Sen avulla näytöllä näkyvää tekstiä voi lukea puhesyntetisaattorilla tai pistekirjoitusnäytöllä. Laita ChromeVox päälle painamalla molempia äänenvoimakkuuspainikkeita viiden sekunnin ajan. Kun ChromeVox on aktivoitu, näet lyhyen esittelyn.</translation>
 <translation id="7476454130948140105">Akun varaus ei riitä päivittämiseen (<ph name="BATTERY_PERCENT" /> %).</translation>
@@ -10294,6 +10295,7 @@
 <translation id="8265018477030547118">Vain tälle laitteelle</translation>
 <translation id="826511437356419340">Siirryttiin ikkunoiden yleiskatsaustilaan. Siirry pyyhkäisemällä tai paina välilehteä, jos käytät näppäimistöä.</translation>
 <translation id="8265671588726449108">{COUNT,plural, =1{Incognito-ikkunaasi ei avata uudelleenkäynnistyksen jälkeen}other{{COUNT} incognito-ikkunaasi ei avata uudelleenkäynnistyksen jälkeen}}</translation>
+<translation id="8266430295499893285">Sinun on todennettava henkilöllisyytesi, ennen kuin voit käyttää salasanojasi</translation>
 <translation id="8266947622852630193">Kaikki syöttötavat</translation>
 <translation id="8267539814046467575">Lisää tulostin</translation>
 <translation id="8267961145111171918"><ph name="BEGIN_PARAGRAPH1" />Nämä ovat yleisiä tietoja laitteesta ja sen käytöstä (esim. akun varaustasosta, järjestelmän ja sovellusten toiminnasta sekä virheistä). Dataa käytetään Androidin parantamiseen. Koottuja tietoja voidaan myös käyttää Google-sovellusten, Android-kehittäjien tai muiden kumppanien sovellusten ja tuotteiden parantamiseen.<ph name="END_PARAGRAPH1" />
@@ -11103,7 +11105,6 @@
 <translation id="8827125715368568315">Estetty: <ph name="PERMISSION" /> ja <ph name="COUNT" /> muuta</translation>
 <translation id="8827289157496676362">Kiinnitä laajennus</translation>
 <translation id="8828933418460119530">DNS-nimi</translation>
-<translation id="8829979393064090868">Lisää välilehti jaettuun näkymään</translation>
 <translation id="8830479210602243906">Tehosta tuottavuutta</translation>
 <translation id="883062543841130884">Vastikkeet</translation>
 <translation id="8830779999439981481">Käynnistetään uudelleen päivitysten käyttöönoton vuoksi</translation>
diff --git a/chrome/app/resources/generated_resources_fil.xtb b/chrome/app/resources/generated_resources_fil.xtb
index 8a2bd33..1ff5e2b 100644
--- a/chrome/app/resources/generated_resources_fil.xtb
+++ b/chrome/app/resources/generated_resources_fil.xtb
@@ -5997,7 +5997,6 @@
 <translation id="5186381005592669696">I-customize ang wika ng display para sa mga sinusuportahang app</translation>
 <translation id="5186788525428341874">Puwede mong gamitin ang passkey na ito para mas mabilis na makapag-sign sa lahat ng iyong device. Mase-save ito sa Google Password Manager para sa <ph name="ACCOUNT_NAME" />.</translation>
 <translation id="5187641678926990264">&amp;I-install ang Page bilang App...</translation>
-<translation id="5187671830619031922">Magdagdag ng Tab sa Split View</translation>
 <translation id="5187826826541650604"><ph name="KEY_NAME" /> (<ph name="DEVICE" />)</translation>
 <translation id="5188242000716462162">Na-share ni <ph name="USER_NAME" /></translation>
 <translation id="5188648870018555788">Gumamit ng lokasyon. Payagan ang mga app, website, at serbisyo ng ChromeOS at Android na may pahintulot sa lokasyon na gamitin ang lokasyon ng iyong device. Nagbibigay ang Katumpakan ng Lokasyon ng mas tumpak na lokasyon para sa mga app at serbisyo ng Android. Para magawa ito, pana-panahong pinoproseso ng Google ang impormasyon tungkol sa mga sensor ng device at wireless na signal mula sa iyong device para i-crowdsource ang mga lokasyon ng wireless na signal. Ginagamit ang mga ito nang hindi ibinibigay ang pagkakakilanlan mo para mapahusay ang katumpakan ng lokasyon at mga serbisyong batay sa lokasyon, at para mapahusay, maibigay, at mapanatili ang mga serbisyo ng Google batay sa mga lehitimong interes ng Google at mga third party para matugunan ang mga pangangailangan ng mga user. <ph name="BEGIN_LINK1" />Matuto pa tungkol sa paggamit ng lokasyon<ph name="END_LINK1" /></translation>
@@ -9024,6 +9023,7 @@
 <translation id="7387951778417998929">Para gumamit ng search engine na hindi ang default, i-type ang shortcut nito sa address bar kasunod ang iyong gustong keyboard shortcut. Puwede mo ring palitan ang iyong default na search engine dito.</translation>
 <translation id="7388615499319468910">Mauunawaan ng mga site at advertiser ang performance ng mga ad. Naka-off ang setting na ito.</translation>
 <translation id="738903649531469042">Idagdag ang Tab sa Listahan ng Babasahin</translation>
+<translation id="7389615853658756494">Palitan ito sa site</translation>
 <translation id="7392118418926456391">Nabigo ang pag-scan ng virus</translation>
 <translation id="7392915005464253525">M&amp;uling buksan ang nakasarang window</translation>
 <translation id="7393073300870882456">{COUNT,plural, =1{Nakopya ang 1 item}one{Nakopya ang {COUNT} item}other{Nakopya ang {COUNT} na item}}</translation>
@@ -9153,6 +9153,7 @@
 <translation id="7474043404939621342">I-customize ang iyong toolbar</translation>
 <translation id="747459581954555080">Ipanumbalik lahat</translation>
 <translation id="747507174130726364">{NUM_DAYS,plural, =1{Kinakailangang ibalik kaagad}one{Ibalik ang <ph name="DEVICE_TYPE" /> sa loob ng {NUM_DAYS} araw}other{Ibalik ang <ph name="DEVICE_TYPE" /> sa loob ng {NUM_DAYS} na araw}}</translation>
+<translation id="747557463733380256">Alamin kung paano pinapamahalaan ang iyong browser</translation>
 <translation id="7475671414023905704">URL ng Nawalang Password ng Netscape</translation>
 <translation id="7475742997309661417">Ang screen reader sa ChromeOS na ChromeVox ay pangunahing ginagamit ng mga taong bulag o malabo ang paningin para magbasa ng text na ipinapakita sa screen na may synthesizer ng speech o braille display. Pindutin nang matagal ang parehong volume key sa loob ng limang segundo para i-on ang ChromeVox. Kapag na-activate na ang ChromeVox, may gagawin kang mabilis na tour.</translation>
 <translation id="7476454130948140105">Masyadong kaunti ang baterya (<ph name="BATTERY_PERCENT" />%) para sa pag-update</translation>
@@ -10302,6 +10303,7 @@
 <translation id="8265018477030547118">Sa device lang na ito</translation>
 <translation id="826511437356419340">Pumasok sa overview mode ng window. Mag-swipe para mag-navigate, o pindutin ang tab kung gumagamit ng keyboard.</translation>
 <translation id="8265671588726449108">{COUNT,plural, =1{Hindi bubukas ang iyong Incognito window pagkatapos mong maglunsad ulit}one{Hindi bubukas ang iyong {COUNT} Incognito window pagkatapos mong maglunsad ulit}other{Hindi bubukas ang iyong {COUNT} na Incognito window pagkatapos mong maglunsad ulit}}</translation>
+<translation id="8266430295499893285">Kailangan mong i-verify na ikaw ito bago mo ma-access ang iyong mga password</translation>
 <translation id="8266947622852630193">Lahat ng pamamaraan ng pag-input</translation>
 <translation id="8267539814046467575">Magdagdag ng printer</translation>
 <translation id="8267961145111171918"><ph name="BEGIN_PARAGRAPH1" />Ito ay pangkalahatang impormasyon tungkol sa device na ito at kung paano ito ginagamit (gaya ng antas ng baterya, aktibidad ng system at app, at mga error). Gagamitin ang data para pahusayin ang Android, at makakatulong din ang ilang pinagsama-samang impormasyon sa mga app at partner ng Google, gaya ng mga developer ng Android, na mapahusay ang mga app at produkto ng mga ito.<ph name="END_PARAGRAPH1" />
@@ -11113,7 +11115,6 @@
 <translation id="8827125715368568315">Na-block ang <ph name="PERMISSION" /> at <ph name="COUNT" /> pa</translation>
 <translation id="8827289157496676362">I-pin ang extension</translation>
 <translation id="8828933418460119530">Pangalan ng DNS</translation>
-<translation id="8829979393064090868">Magdagdag ng tab sa split view</translation>
 <translation id="8830479210602243906">I-boost ang pagiging produktibo</translation>
 <translation id="883062543841130884">Mga Kahalili</translation>
 <translation id="8830779999439981481">Nire-restart para ilapat ang mga update</translation>
diff --git a/chrome/app/resources/generated_resources_fr-CA.xtb b/chrome/app/resources/generated_resources_fr-CA.xtb
index 7ca4a4a..9ba0408 100644
--- a/chrome/app/resources/generated_resources_fr-CA.xtb
+++ b/chrome/app/resources/generated_resources_fr-CA.xtb
@@ -5985,7 +5985,6 @@
 <translation id="5186381005592669696">Personnalisez la langue d'affichage pour les applications prises en charge</translation>
 <translation id="5186788525428341874">Vous pouvez utiliser cette clé d'accès pour vous connecter plus rapidement sur l'ensemble de vos appareils. Elle sera enregistrée dans le gestionnaire de mots de passe Google du compte <ph name="ACCOUNT_NAME" />.</translation>
 <translation id="5187641678926990264">&amp;Installer la page en tant qu'application…</translation>
-<translation id="5187671830619031922">Ajouter l'onglet à l'affichage partagé</translation>
 <translation id="5187826826541650604"><ph name="KEY_NAME" /> (<ph name="DEVICE" />)</translation>
 <translation id="5188242000716462162">Partagé par <ph name="USER_NAME" /></translation>
 <translation id="5188648870018555788">Utiliser la position. Autorisez les applis, les sites Web et les services ChromeOS et Android disposant d'une autorisation de localisation à utiliser la position de votre appareil. La précision de la localisation fournit une position plus précise pour les applis et les services Android. Pour ce faire, Google traite périodiquement des informations sur les capteurs de l'appareil et les signaux sans fil émis par votre appareil afin de recueillir de façon participative des données sur la position des signaux sans fil. Ces données sont utilisées sans vous identifier pour améliorer la précision de la localisation et les services basés sur l'emplacement. Elles le sont aussi pour améliorer, pour fournir et pour maintenir les services de Google en fonction des intérêts légitimes de Google et de tiers envers la satisfaction des besoins des utilisateurs. <ph name="BEGIN_LINK1" />En savoir plus sur l'utilisation de la position<ph name="END_LINK1" /></translation>
@@ -9010,6 +9009,7 @@
 <translation id="7387951778417998929">Pour utiliser un moteur de recherche autre que celui par défaut, entrez son raccourci dans la barre d'adresse suivi de votre raccourci-clavier favori. Vous pouvez aussi modifier votre moteur de recherche par défaut ici.</translation>
 <translation id="7388615499319468910">Les sites et les annonceurs peuvent mieux comprendre la performance des annonces. Ce paramètre est désactivé.</translation>
 <translation id="738903649531469042">Ajouter l'onglet à la liste de lecture</translation>
+<translation id="7389615853658756494">Le modifier sur le site</translation>
 <translation id="7392118418926456391">Échec de l'analyse antivirus</translation>
 <translation id="7392915005464253525">&amp;Rouvrir la fenêtre fermée</translation>
 <translation id="7393073300870882456">{COUNT,plural, =1{1 élément copié}one{{COUNT} élément copié}other{{COUNT} éléments copiés}}</translation>
@@ -9139,6 +9139,7 @@
 <translation id="7474043404939621342">Personnaliser votre barre d'outils</translation>
 <translation id="747459581954555080">Tout restaurer</translation>
 <translation id="747507174130726364">{NUM_DAYS,plural, =1{Retour immédiat exigé}one{Retournez l'appareil <ph name="DEVICE_TYPE" /> d'ici {NUM_DAYS} jour}other{Retournez l'appareil <ph name="DEVICE_TYPE" /> d'ici {NUM_DAYS} jours}}</translation>
+<translation id="747557463733380256">En savoir plus sur la gestion de votre navigateur</translation>
 <translation id="7475671414023905704">URL de mot de passe perdu Netscape</translation>
 <translation id="7475742997309661417">Le lecteur d'écran sur ChromeOS, ChromeVox, est principalement utilisé par les personnes aveugles ou ayant une basse vision pour lire le texte affiché à l'écran avec un synthétiseur vocal ou un afficheur braille. Maintenez les deux touches de volume enfoncées pendant cinq secondes pour activer ChromeVox. Lorsque ChromeVox est activé, une présentation rapide s'affiche.</translation>
 <translation id="7476454130948140105">Pile trop faible pour la mise à jour (<ph name="BATTERY_PERCENT" /> %)</translation>
@@ -10287,6 +10288,7 @@
 <translation id="8265018477030547118">Uniquement sur cet appareil</translation>
 <translation id="826511437356419340">Vous avez activé le mode de vue d'ensemble des fenêtres. Balayez l'écran pour naviguer, ou appuyez sur la touche Tabulation si vous utilisez un clavier.</translation>
 <translation id="8265671588726449108">{COUNT,plural, =1{Votre fenêtre de navigation privée ne se rouvrira pas après le redémarrage}one{Votre fenêtre de navigation privée ({COUNT}) ne se rouvrira pas après le redémarrage}other{Vos {COUNT} fenêtres de navigation privée ne se rouvriront pas après le redémarrage}}</translation>
+<translation id="8266430295499893285">Vous devez confirmer votre identité avant de pouvoir accéder à vos mots de passe</translation>
 <translation id="8266947622852630193">Toutes les méthodes d'entrée</translation>
 <translation id="8267539814046467575">Ajouter une imprimante</translation>
 <translation id="8267961145111171918"><ph name="BEGIN_PARAGRAPH1" />Il s'agit de données générales concernant votre appareil et l'usage que vous en faites (comme le niveau de la pile, l'activité système, l'activité des applications et les erreurs) qui seront utilisées pour améliorer Android. De plus, certaines données collectées contribueront également à améliorer les applications de Google et aideront nos partenaires, comme les concepteurs d'Android, à améliorer leurs applications et leurs produits.<ph name="END_PARAGRAPH1" />
@@ -11096,7 +11098,6 @@
 <translation id="8827125715368568315">Autorisations bloquées : <ph name="PERMISSION" /> et <ph name="COUNT" /> autres</translation>
 <translation id="8827289157496676362">Épingler l'extension</translation>
 <translation id="8828933418460119530">Nom DNS</translation>
-<translation id="8829979393064090868">Ajouter l'onglet à l'affichage partagé</translation>
 <translation id="8830479210602243906">Augmenter votre productivité</translation>
 <translation id="883062543841130884">Substitutions</translation>
 <translation id="8830779999439981481">L'appareil redémarre afin d'installer les mises à jour</translation>
diff --git a/chrome/app/resources/generated_resources_fr.xtb b/chrome/app/resources/generated_resources_fr.xtb
index d934d9d..e2e5771 100644
--- a/chrome/app/resources/generated_resources_fr.xtb
+++ b/chrome/app/resources/generated_resources_fr.xtb
@@ -5981,7 +5981,6 @@
 <translation id="5186381005592669696">Personnalisez la langue d'affichage pour les applis compatibles</translation>
 <translation id="5186788525428341874">Vous pouvez utiliser cette clé d'accès pour vous connecter plus rapidement sur tous vos appareils. Elle sera enregistrée dans le Gestionnaire de mots de passe de Google pour <ph name="ACCOUNT_NAME" />.</translation>
 <translation id="5187641678926990264">&amp;Installer la page en tant qu'appli...</translation>
-<translation id="5187671830619031922">Ajouter l'onglet à la vue fractionnée</translation>
 <translation id="5187826826541650604"><ph name="KEY_NAME" /> (<ph name="DEVICE" />)</translation>
 <translation id="5188242000716462162">Partagé par <ph name="USER_NAME" /></translation>
 <translation id="5188648870018555788">Utiliser la localisation. Permettez aux applis, sites et services ChromeOS et Android autorisés à accéder à la position d'utiliser celle de votre appareil. La précision de la localisation permet aux applis et services Android d'obtenir une localisation plus précise. Pour ce faire, Google traite périodiquement des informations sur les capteurs de l'appareil et les signaux sans fil émis par votre appareil afin d'obtenir la localisation des signaux sans fil à l'aide du crowdsourcing. Ces informations sont utilisées sans vous identifier pour améliorer la précision de la localisation et les services basés sur la localisation, ainsi que pour améliorer, fournir et gérer les services de Google en fonction des intérêts légitimes de Google et de tiers, afin de répondre aux besoins des utilisateurs. <ph name="BEGIN_LINK1" />En savoir plus sur l'utilisation de la localisation<ph name="END_LINK1" /></translation>
@@ -9008,6 +9007,7 @@
 <translation id="7387951778417998929">Pour utiliser un autre moteur de recherche que celui défini par défaut, saisissez son raccourci dans la barre d'adresse suivi du raccourci clavier de votre choix. Vous pouvez aussi modifier votre moteur de recherche par défaut ici.</translation>
 <translation id="7388615499319468910">Les sites et les annonceurs peuvent analyser les performances des annonces. Ce paramètre est désactivé.</translation>
 <translation id="738903649531469042">Ajouter l'onglet à la liste de lecture</translation>
+<translation id="7389615853658756494">Modifier sur le site</translation>
 <translation id="7392118418926456391">Échec de l'analyse antivirus.</translation>
 <translation id="7392915005464253525">&amp;Rouvrir la fenêtre fermée</translation>
 <translation id="7393073300870882456">{COUNT,plural, =1{1 élément copié}one{{COUNT} élément copié}other{{COUNT} éléments copiés}}</translation>
@@ -9137,6 +9137,7 @@
 <translation id="7474043404939621342">Personnaliser votre barre d'outils</translation>
 <translation id="747459581954555080">Tout restaurer</translation>
 <translation id="747507174130726364">{NUM_DAYS,plural, =1{Retour immédiat requis}one{Retourner le <ph name="DEVICE_TYPE" /> sous {NUM_DAYS} jour}other{Retourner le <ph name="DEVICE_TYPE" /> sous {NUM_DAYS} jours}}</translation>
+<translation id="747557463733380256">Découvrir comment votre navigateur est géré</translation>
 <translation id="7475671414023905704">URL de mot de passe perdu Netscape</translation>
 <translation id="7475742997309661417">ChromeVox, le lecteur d'écran sur ChromeOS, est principalement utilisé par des personnes aveugles ou malvoyantes pour lire du texte à l'écran avec un synthétiseur vocal ou une plage braille. Appuyez sur les deux boutons de volume pendant cinq secondes pour activer ChromeVox. Une fois activé, ChromeVox propose une présentation rapide.</translation>
 <translation id="7476454130948140105">Batterie trop faible pour la mise à jour (<ph name="BATTERY_PERCENT" /> %)</translation>
@@ -10286,6 +10287,7 @@
 <translation id="8265018477030547118">Uniquement sur cet appareil</translation>
 <translation id="826511437356419340">Mode de présentation de la fenêtre activé. Balayez l'écran pour naviguer, ou appuyez sur Tabulation si vous utilisez un clavier.</translation>
 <translation id="8265671588726449108">{COUNT,plural, =1{Votre fenêtre de navigation privée ne se rouvrira pas après le redémarrage}one{Vous avez {COUNT} fenêtre de navigation privée ouverte. Elle ne se rouvrira pas après le redémarrage}other{Les {COUNT} fenêtres de navigation privée ne se rouvriront pas après le redémarrage}}</translation>
+<translation id="8266430295499893285">Vous devez valider votre identité avant d'accéder à vos mots de passe</translation>
 <translation id="8266947622852630193">Tous les modes de saisie</translation>
 <translation id="8267539814046467575">Ajouter une imprimante</translation>
 <translation id="8267961145111171918"><ph name="BEGIN_PARAGRAPH1" />Ces informations d'ordre général concernent cet appareil et l'usage qui en est fait (comme le niveau de batterie, les erreurs, et l'activité du système et des applications). Elles serviront à améliorer Android, et certaines informations agrégées aideront également nos développeurs d'applications et nos partenaires, tels que les développeurs Android, à améliorer leurs applications et leurs produits.<ph name="END_PARAGRAPH1" />
@@ -11096,7 +11098,6 @@
 <translation id="8827125715368568315">Autorisations bloquées : <ph name="PERMISSION" /> (et <ph name="COUNT" /> de plus)</translation>
 <translation id="8827289157496676362">Épingler l'extension</translation>
 <translation id="8828933418460119530">Nom DNS</translation>
-<translation id="8829979393064090868">Ajouter l'onglet à la vue fractionnée</translation>
 <translation id="8830479210602243906">Booster la productivité</translation>
 <translation id="883062543841130884">Substitutions</translation>
 <translation id="8830779999439981481">Redémarrage pour appliquer les mises à jour…</translation>
diff --git a/chrome/app/resources/generated_resources_gl.xtb b/chrome/app/resources/generated_resources_gl.xtb
index de8e1b74..afccbfcf 100644
--- a/chrome/app/resources/generated_resources_gl.xtb
+++ b/chrome/app/resources/generated_resources_gl.xtb
@@ -5985,7 +5985,6 @@
 <translation id="5186381005592669696">Personaliza o idioma de visualización das aplicacións compatibles</translation>
 <translation id="5186788525428341874">Podes usar esta clave de acceso para iniciar sesión máis rápido en todos os dispositivos. Gardarase no xestor de contrasinais de Google para <ph name="ACCOUNT_NAME" />.</translation>
 <translation id="5187641678926990264">&amp;Instalar páxina como aplicación...</translation>
-<translation id="5187671830619031922">Engadir pestana á vista dividida</translation>
 <translation id="5187826826541650604"><ph name="KEY_NAME" /> (<ph name="DEVICE" />)</translation>
 <translation id="5188242000716462162">Compartiuno <ph name="USER_NAME" /></translation>
 <translation id="5188648870018555788">Usa a localización. Permite que os servizos, sitios web e aplicacións para Android e ChromeOS con permiso de localización utilicen a do teu dispositivo. A opción Precisión da localización proporciónalles unha localización máis exacta aos servizos e aplicacións para Android. Con este fin, Google procesa periodicamente a información captada polos sinais sen fíos e os sensores do teu dispositivo para obter con participación colectiva a localización deses sinais. Estes datos utilízanse sen identificarte para mellorar a precisión da localización e os servizos baseados nela, así como para perfeccionar, proporcionar e manter os servizos de Google en función dos intereses lexítimos de Google e de terceiros coa finalidade de satisfacer as necesidades dos usuarios. <ph name="BEGIN_LINK1" />Máis información sobre o uso da localización<ph name="END_LINK1" /></translation>
@@ -9006,6 +9005,7 @@
 <translation id="7387951778417998929">Para usar un motor de busca diferente do predeterminado, escribe o seu atallo na barra de enderezos, seguido do atallo de teclado que prefiras. Aquí tamén podes cambiar o teu motor de busca predeterminado.</translation>
 <translation id="7388615499319468910">Os sitios e os anunciantes poden comprender o rendemento dos anuncios. Esta opción de configuración está desactivada.</translation>
 <translation id="738903649531469042">Engadir pestana á lista de lectura</translation>
+<translation id="7389615853658756494">Cambiar no sitio</translation>
 <translation id="7392118418926456391">Erro na análise antivirus</translation>
 <translation id="7392915005464253525">R&amp;eabrir a ventá pechada</translation>
 <translation id="7393073300870882456">{COUNT,plural, =1{Copiouse 1 elemento}other{Copiáronse {COUNT} elementos}}</translation>
@@ -9135,6 +9135,7 @@
 <translation id="7474043404939621342">Personalizar barra de ferramentas</translation>
 <translation id="747459581954555080">Restablecer todo</translation>
 <translation id="747507174130726364">{NUM_DAYS,plural, =1{Requírese unha devolución de inmediato}other{Devolve o <ph name="DEVICE_TYPE" /> no prazo de {NUM_DAYS} días}}</translation>
+<translation id="747557463733380256">Máis información sobre como se xestiona o teu navegador</translation>
 <translation id="7475671414023905704">URL de contrasinal perdido de Netscape</translation>
 <translation id="7475742997309661417">Os principais usuarios de ChromeVox, o lector de pantalla de ChromeOS, son as persoas cegas ou con visión reducida, que o utilizan para ler, cun sintetizador ou cunha liña braille, o texto que se mostra en pantalla. Para activar este lector, mantén premidas as dúas teclas de volume durante cinco segundos. Unha vez activado, ofreceráseche unha guía rápida.</translation>
 <translation id="7476454130948140105">O nivel de batería é demasiado baixo para realizar a actualización (<ph name="BATTERY_PERCENT" /> %)</translation>
@@ -10283,6 +10284,7 @@
 <translation id="8265018477030547118">Almacenaríase só neste dispositivo</translation>
 <translation id="826511437356419340">Entraches no modo de vista xeral da ventá. Pasa o dedo para navegar ou preme o tabulador no teclado.</translation>
 <translation id="8265671588726449108">{COUNT,plural, =1{A ventá do modo de incógnito non se abrirá tras o reinicio}other{As {COUNT} ventás do modo de incógnito non se volverán abrir tras o reinicio}}</translation>
+<translation id="8266430295499893285">Debes verificar a túa identidade antes de poderes acceder aos teus contrasinais</translation>
 <translation id="8266947622852630193">Todos os métodos de introdución de texto</translation>
 <translation id="8267539814046467575">Engadir impresora</translation>
 <translation id="8267961145111171918"><ph name="BEGIN_PARAGRAPH1" />Trátase de información xeral acerca deste dispositivo e do seu uso, como o nivel de batería, a actividade da aplicación e do sistema, e os erros. Os datos utilizaranse coa finalidade de mellorar Android e algunha información adicional tamén axudará ás aplicacións de Google e aos socios, como os programadores de Android, a mellorar as súas aplicacións e os produtos.<ph name="END_PARAGRAPH1" />
@@ -11092,7 +11094,6 @@
 <translation id="8827125715368568315">Bloqueáronse os seguintes permisos: <ph name="PERMISSION" /> e <ph name="COUNT" /> máis</translation>
 <translation id="8827289157496676362">Fixar a extensión</translation>
 <translation id="8828933418460119530">Nome de DNS</translation>
-<translation id="8829979393064090868">Engadir pestana á vista dividida</translation>
 <translation id="8830479210602243906">Potenciar produtividade</translation>
 <translation id="883062543841130884">Substitucións</translation>
 <translation id="8830779999439981481">Reiniciando para aplicar as actualizacións</translation>
diff --git a/chrome/app/resources/generated_resources_gu.xtb b/chrome/app/resources/generated_resources_gu.xtb
index 05f1e0e..ec04bd3b 100644
--- a/chrome/app/resources/generated_resources_gu.xtb
+++ b/chrome/app/resources/generated_resources_gu.xtb
@@ -5981,7 +5981,6 @@
 <translation id="5186381005592669696">સપોર્ટેડ ઍપ માટે ડિસ્પ્લેની ભાષાને કસ્ટમાઇઝ કરો</translation>
 <translation id="5186788525428341874">તમે આ પાસકીનો ઉપયોગ તમારા સમગ્ર ડિવાઇસમાં વધુ ઝડપથી સાઇન ઇન કરવા માટે કરી શકો છો. તેને <ph name="ACCOUNT_NAME" /> માટેના Google Password Managerમાં સાચવવામાં આવશે.</translation>
 <translation id="5187641678926990264">અને પેજને ઍપ તરીકે ઇન્સ્ટૉલ કરો...</translation>
-<translation id="5187671830619031922">ટૅબને વિભાજિત વ્યૂમાં ઉમેરો</translation>
 <translation id="5187826826541650604"><ph name="KEY_NAME" /> (<ph name="DEVICE" />)</translation>
 <translation id="5188242000716462162"><ph name="USER_NAME" /> દ્વારા શેર કરેલો</translation>
 <translation id="5188648870018555788">લોકેશનનો ઉપયોગ કરો. લોકેશનની પરવાનગીઓ ધરાવતી ChromeOS અને Android ઍપ, વેબસાઇટ અને સેવાઓને તમારા ડિવાઇસના લોકેશનનો ઉપયોગ કરવાની મંજૂરી આપો. લોકેશનની સચોટતા, Android ઍપ અને સેવાઓ માટે લોકેશનની વધુ સચોટ માહિતી પ્રદાન કરે છે. આમ કરવા માટે, Google સમયાંતરે તમારા ડિવાઇસના સેન્સર અને વાયરલેસ સિગ્નલ વિશેની માહિતી પર પ્રક્રિયા કરે છે, જેથી વાયરલેસ સિગ્નલવાળા લોકેશનને ક્રાઉડસૉર્સ કરી શકાય. તમારી ઓળખાણ છતી કર્યા વિના આ માહિતીનો ઉપયોગ લોકેશનની સચોટતા અને લોકેશન આધારિત સેવાઓને બહેતર બનાવવા તેમજ વપરાશકર્તાઓની જરૂરિયાતો પૂરી કરવા માટે Google અને ત્રીજા પક્ષોના કાયદેસરના હિતસંબંધોના આધારે Googleની સેવાઓને બહેતર બનાવવા, પ્રદાન કરવા અને જાળવી રાખવા માટે કરવામાં આવે છે. <ph name="BEGIN_LINK1" />લોકેશનનો ઉપયોગ કરવા વિશે વધુ જાણો<ph name="END_LINK1" /></translation>
@@ -9010,6 +9009,7 @@
 <translation id="7387951778417998929">ડિફૉલ્ટ સિવાયના શોધ એન્જિનનો ઉપયોગ કરવા માટે, ઍડ્રેસ બારમાં તેનો શૉર્ટકટ અને તે પછી તમારી પસંદગીનો કીબોર્ડ શૉર્ટકટ ટાઇપ કરો. તમે અહીં તમારા ડિફૉલ્ટ શોધ એન્જિનને બદલી પણ શકો છો.</translation>
 <translation id="7388615499319468910">જાહેરાતોના પર્ફોર્મન્સ સંબંધી બાબતો સાઇટ અને જાહેરાતકર્તાઓ સમજી શકે છે. આ સેટિંગ બંધ છે.</translation>
 <translation id="738903649531469042">વાંચન સૂચિમાં ટૅબ ઉમેરો</translation>
+<translation id="7389615853658756494">સાઇટ પર જઈને તેને બદલો</translation>
 <translation id="7392118418926456391">વાયરસ સ્કેન નિષ્ફળ થયું</translation>
 <translation id="7392915005464253525">બંધ કરેલી વિંડો ફ&amp;રીથી ખોલો</translation>
 <translation id="7393073300870882456">{COUNT,plural, =1{1 આઇટમ કૉપિ કરી}one{{COUNT} આઇટમ કૉપિ કરી}other{{COUNT} આઇટમ કૉપિ કરી}}</translation>
@@ -9139,6 +9139,7 @@
 <translation id="7474043404939621342">તમારું ટૂલબાર કસ્ટમાઇઝ કરો</translation>
 <translation id="747459581954555080">બધુ પુનર્પ્રાપ્ત કરો</translation>
 <translation id="747507174130726364">{NUM_DAYS,plural, =1{તાત્કાલિક પરત કરવું જરૂરી છે}one{<ph name="DEVICE_TYPE" /> {NUM_DAYS} દિવસમાં પરત કરો}other{<ph name="DEVICE_TYPE" /> {NUM_DAYS} દિવસમાં પરત કરો}}</translation>
+<translation id="747557463733380256">તમારું બ્રાઉઝર કેવી રીતે મેનેજ થાય છે તે વિશે જાણો</translation>
 <translation id="7475671414023905704">નેટસ્કેપ ખોવાયેલો પાસવર્ડ URL</translation>
 <translation id="7475742997309661417">ChromeOS, ChromeVox પર સ્ક્રીન રીડરનો ઉપયોગ મુખ્યત્વે અંધત્વ કે નબળી દૃષ્ટિ ધરાવતા લોકો દ્વારા સ્પીચ સિન્થેસાઇઝર અથવા બ્રેઇલ ડિસ્પ્લે વડે સ્ક્રીન પર બતાવવામાં આવેલી ટેક્સ્ટ વાંચવા માટે કરવામાં આવે છે. ChromeVox ચાલુ કરવા માટે બન્ને વૉલ્યૂમ કીને પાંચ સેકન્ડ માટે દબાવી રાખો. જ્યારે ChromeVox સક્રિય થાય, ત્યારે તમે એક ઝડપી ટૂરમાંથી પસાર થશો.</translation>
 <translation id="7476454130948140105">અપડેટ માટે બૅટરી ખૂબ ઓછી છે (<ph name="BATTERY_PERCENT" />%)</translation>
@@ -10282,6 +10283,7 @@
 <translation id="8265018477030547118">માત્ર આ જ ડિવાઇસ પર</translation>
 <translation id="826511437356419340">વિંડો ઓવરવ્યૂ મોડમાં દાખલ થયા. નૅવિગેટ કરવા માટે સ્વાઇપ કરો અથવા જો કીબોર્ડનો ઉપયોગ કરી રહ્યાં હો, તો Tab કી દબાવો.</translation>
 <translation id="8265671588726449108">{COUNT,plural, =1{તમે ફરીથી લૉન્ચ કરો તે પછી તમારી છૂપી વિન્ડો ખુલશે નહીં}one{તમે ફરીથી લૉન્ચ કરો તે પછી તમારી {COUNT} છૂપી વિન્ડો ખુલશે નહીં}other{તમે ફરીથી લૉન્ચ કરો તે પછી તમારી {COUNT} છૂપી વિન્ડો ખુલશે નહીં}}</translation>
+<translation id="8266430295499893285">તમે તમારા પાસવર્ડને ઍક્સેસ કરો એ પહેલાં તમારે ચકાસણી કરવી જરૂરી છે કે આ તમે જ છો</translation>
 <translation id="8266947622852630193">તમામ ઇનપુટ પદ્ધતિઓ</translation>
 <translation id="8267539814046467575">પ્રિન્ટર ઉમેરો</translation>
 <translation id="8267961145111171918"><ph name="BEGIN_PARAGRAPH1" />આ ડિવાઇસ અને તે કેવી રીતે ઉપયોગમાં લેવાય છે (જેમ કે બૅટરીનું લેવલ, સિસ્ટમ અને ઍપ પ્રવૃત્તિ તેમજ ભૂલો) વિશેની આ સામાન્ય માહિતી છે. આ ડેટાનો ઉપયોગ Androidને બહેતર બનાવવા માટે કરવામાં આવશે અને અમુક એકીકૃત માહિતી, Google ઍપ અને ભાગીદારો, જેમ કે Android ડેવલપરને પણ તેઓની ઍપ અને પ્રોડક્ટને બહેતર બનાવવામાં સહાયરૂપ થશે.<ph name="END_PARAGRAPH1" />
@@ -11092,7 +11094,6 @@
 <translation id="8827125715368568315"><ph name="PERMISSION" /> અને <ph name="COUNT" /> બ્લૉક કરવામાં આવી</translation>
 <translation id="8827289157496676362">એક્સ્ટેંશન પિન કરો</translation>
 <translation id="8828933418460119530">DNS નામ</translation>
-<translation id="8829979393064090868">ટૅબને વિભાજિત વ્યૂમાં ઉમેરો</translation>
 <translation id="8830479210602243906">પ્રૉડક્ટિવિટીને બૂસ્ટ કરો</translation>
 <translation id="883062543841130884">અવેજીઓ</translation>
 <translation id="8830779999439981481">અપડેટ લાગુ કરવા માટે, ફરી શરૂ કરી રહ્યાં છીએ</translation>
diff --git a/chrome/app/resources/generated_resources_hi.xtb b/chrome/app/resources/generated_resources_hi.xtb
index a2c5b31..5a360801 100644
--- a/chrome/app/resources/generated_resources_hi.xtb
+++ b/chrome/app/resources/generated_resources_hi.xtb
@@ -5995,7 +5995,6 @@
 <translation id="5186381005592669696">इस सुविधा के साथ काम करने वाले ऐप्लिकेशन के लिए, डिसप्ले की भाषा को पसंद के मुताबिक बनाएं</translation>
 <translation id="5186788525428341874">अपने सभी डिवाइसों पर तेज़ी से साइन इन करने के लिए, इस पासकी का इस्तेमाल किया जा सकता है. यह <ph name="ACCOUNT_NAME" /> के Google Password Manager में सेव हो जाएगा.</translation>
 <translation id="5187641678926990264">पेज को ऐप्लिकेशन के तौर पर इंस्टॉल करें...</translation>
-<translation id="5187671830619031922">स्प्लिट व्यू में देखने के लिए टैब जोड़ें</translation>
 <translation id="5187826826541650604"><ph name="KEY_NAME" /> (<ph name="DEVICE" />)</translation>
 <translation id="5188242000716462162"><ph name="USER_NAME" /> ने शेयर किया</translation>
 <translation id="5188648870018555788">जगह की जानकारी इस्तेमाल करने की अनुमति दें. ChromeOS और Android ऐप्लिकेशन, वेबसाइटों, और जिन सेवाओं को जगह की जानकारी का ऐक्सेस होता है उन्हें अपने डिवाइस की जगह की जानकारी इस्तेमाल करने की अनुमति दें. जगह की सटीक जानकारी देने की सुविधा से, Android ऐप्लिकेशन और सेवाओं को, आपके डिवाइस की जगह की ज़्यादा सटीक जानकारी मिलती है. इसके लिए, Google समय-समय पर आपके डिवाइस के सेंसर और वायरलेस सिग्नल से जुड़ी जानकारी को प्रोसेस करता है, ताकि वह वायरलेस सिग्नल वाली जगहों को क्राउडसोर्स कर सके. इस जानकारी का इस्तेमाल, जगह की सटीक जानकारी देने की सुविधा और जगह के हिसाब से दी जाने वाली सेवाओं को बेहतर बनाने के लिए किया जाता है. ऐसा आपकी पहचान ज़ाहिर किए बिना किया जाता है. Google की सेवाओं को बेहतर बनाने, उपलब्ध कराने, और उनकी क्वालिटी को बनाए रखने के लिए भी इस जानकारी का इस्तेमाल किया जाता है. इससे Google और तीसरे पक्ष को, उपयोगकर्ताओं की ज़रूरतें पूरी करने में मदद मिलती है. <ph name="BEGIN_LINK1" />जगह की जानकारी इस्तेमाल करने के बारे में ज़्यादा जानें<ph name="END_LINK1" /></translation>
@@ -9021,6 +9020,7 @@
 <translation id="7387951778417998929">डिफ़ॉल्ट सर्च इंजन के अलावा, किसी दूसरे सर्च इंजन का इस्तेमाल करने के लिए, पता बार में उसका शॉर्टकट लिखें. इसके बाद, अपने हिसाब से कीबोर्ड शॉर्टकट लिखें. डिफ़ॉल्ट सर्च इंजन को यहां भी बदला जा सकता है.</translation>
 <translation id="7388615499319468910">साइटें और विज्ञापन देने वाले यह पता कर सकते हैं कि विज्ञापनों की परफ़ॉर्मेंस कैसी है. यह सेटिंग बंद है.</translation>
 <translation id="738903649531469042">रीडिंग लिस्ट में टैब जोड़ें</translation>
+<translation id="7389615853658756494">साइट पर जाकर इसे बदलें</translation>
 <translation id="7392118418926456391">वायरस स्कैन विफल रहा</translation>
 <translation id="7392915005464253525">बंद की गई विंडो पु&amp;न: खोलें</translation>
 <translation id="7393073300870882456">{COUNT,plural, =1{1 आइटम कॉपी किया गया}one{{COUNT} आइटम कॉपी किया गया}other{{COUNT} आइटम कॉपी किए गए}}</translation>
@@ -9149,6 +9149,7 @@
 <translation id="7474043404939621342">अपने टूलबार को पसंद के मुताबिक बनाएं</translation>
 <translation id="747459581954555080">सभी को पुनर्स्थापित करें</translation>
 <translation id="747507174130726364">{NUM_DAYS,plural, =1{डिवाइस को तुरंत लौटाना ज़रूरी है}one{<ph name="DEVICE_TYPE" /> को {NUM_DAYS} दिन के अंदर लौटाएं}other{<ph name="DEVICE_TYPE" /> को {NUM_DAYS} दिनों के अंदर लौटाएं}}</translation>
+<translation id="747557463733380256">इस बारे में जानें कि आपका ब्राउज़र कैसे मैनेज किया जाता है</translation>
 <translation id="7475671414023905704">Netscape खोए पासवर्ड का URL</translation>
 <translation id="7475742997309661417">ChromeOS, ChromeVox पर स्क्रीन रीडर का इस्तेमाल मुख्य रूप से दृष्टिहीन और कम दृष्टि वाले लोग करते हैं. इसमें उन्हें स्क्रीन पर दिखाए जा रहे टेक्स्ट को स्पीच सिंथेसाइज़र या ब्रेल डिसप्ले की मदद से पढ़ने की सुविधा मिलती है. ChromeVox को चालू करने के लिए, आवाज़ वाले दोनों बटन पांच सेकंड तक दबाकर रखें. ChromeVox के चालू होने पर, आपको इसके बारे में फटाफट से जानकारी दी जाएगी.</translation>
 <translation id="7476454130948140105">अपडेट करने के लिए बैटरी बहुत कम है (<ph name="BATTERY_PERCENT" />%)</translation>
@@ -10297,6 +10298,7 @@
 <translation id="8265018477030547118">सिर्फ़ इस डिवाइस पर</translation>
 <translation id="826511437356419340">विंडो की खास जानकारी वाले मोड पर पहुंच गए. एक जगह से दूसरी जगह जाने के लिए स्वाइप करें या tab बटन दबाएं (अगर कीबाेर्ड का इस्तेमाल कर रहे हैं).</translation>
 <translation id="8265671588726449108">{COUNT,plural, =1{ब्राउज़र को फिर से लॉन्च करने पर, आपकी गुप्त विंडो नहीं खुलेगी}one{ब्राउज़र को फिर से लॉन्च करने पर, आपकी {COUNT} गुप्त विंडो नहीं खुलेगी}other{ब्राउज़र को फिर से लॉन्च करने पर, आपकी {COUNT} गुप्त विंडो नहीं खुलेंगी}}</translation>
+<translation id="8266430295499893285">अपने पासवर्ड ऐक्सेस करने से पहले, आपको अपनी पहचान की पुष्टि करनी होगी</translation>
 <translation id="8266947622852630193">इनपुट के सभी तरीके</translation>
 <translation id="8267539814046467575">प्रिंटर जोड़ें</translation>
 <translation id="8267961145111171918"><ph name="BEGIN_PARAGRAPH1" />यह इस डिवाइस और इसके इस्तेमाल के तरीके के बारे में सामान्य जानकारी है (जैसे कि बैटरी लेवल, सिस्टम और ऐप्लिकेशन गतिविधि और गड़बड़ियां). इस डेटा का इस्तेमाल Android को बेहतर बनाने के लिए किया जाएगा. इकट्ठी की गई कुछ जानकारी से Google ऐप्लिकेशन और 'Android डेवलपर' जैसे पार्टनर को भी मदद मिलेगी और वे अपने ऐप्लिकेशन और उत्पादों को बेहतर बना सकेंगे.<ph name="END_PARAGRAPH1" />
@@ -11107,7 +11109,6 @@
 <translation id="8827125715368568315"><ph name="PERMISSION" /> के साथ-साथ <ph name="COUNT" /> और सेटिंग को ब्लॉक किया गया</translation>
 <translation id="8827289157496676362">एक्सटेंशन पिन करें</translation>
 <translation id="8828933418460119530">DNS नाम</translation>
-<translation id="8829979393064090868">स्प्लिट व्यू में देखने के लिए टैब जोड़ें</translation>
 <translation id="8830479210602243906">अपनी प्रॉडक्टिविटी बढ़ाएं</translation>
 <translation id="883062543841130884">विकल्प</translation>
 <translation id="8830779999439981481">बदलाव लागू करने के लिए, रीस्टार्ट हो रहा है</translation>
diff --git a/chrome/app/resources/generated_resources_hr.xtb b/chrome/app/resources/generated_resources_hr.xtb
index 63c21569..390ac0c 100644
--- a/chrome/app/resources/generated_resources_hr.xtb
+++ b/chrome/app/resources/generated_resources_hr.xtb
@@ -5984,7 +5984,6 @@
 <translation id="5186381005592669696">Prilagodite jezik prikaza za podržane aplikacije</translation>
 <translation id="5186788525428341874">Pomoću tog pristupnog ključa možete se brže prijavljivati na svim svojim uređajima. Spremit će se u Google upravitelj zaporki za <ph name="ACCOUNT_NAME" />.</translation>
 <translation id="5187641678926990264">&amp;Instaliraj stranicu kao aplikaciju...</translation>
-<translation id="5187671830619031922">Dodaj karticu u podijeljeni prikaz</translation>
 <translation id="5187826826541650604"><ph name="KEY_NAME" /> (<ph name="DEVICE" />)</translation>
 <translation id="5188242000716462162">Dijeli <ph name="USER_NAME" /></translation>
 <translation id="5188648870018555788">Upotreba lokacije. Dopustite ChromeOS i Android aplikacijama, web-lokacijama i uslugama s dopuštenjem za lokaciju da upotrebljavaju lokaciju vašeg uređaja. Postavka Preciznost lokacije pruža precizniju lokaciju za Android aplikacije i usluge. Da bi se to postiglo, Google povremeno obrađuje podatke o senzorima uređaja i bežične signale s vašeg uređaja da bi masovno prikupio lokacije bežičnih signala. Ti se podaci upotrebljavaju, bez otkrivanja vašeg identiteta, u svrhu poboljšanja preciznosti lokacije i usluga temeljenih na lokaciji te općeg poboljšanja, pružanja i održavanja Googleovih usluga na temelju legitimnih interesa Googlea i trećih strana kako bi se zadovoljile potrebe korisnika. <ph name="BEGIN_LINK1" />Saznajte više o upotrebi lokacije<ph name="END_LINK1" /></translation>
@@ -11101,7 +11100,6 @@
 <translation id="8827125715368568315">Blokirano je sljedeće: <ph name="PERMISSION" /> i još <ph name="COUNT" /></translation>
 <translation id="8827289157496676362">Prikvači proširenje</translation>
 <translation id="8828933418460119530">Naziv DNS-a</translation>
-<translation id="8829979393064090868">Dodaj karticu u podijeljeni prikaz</translation>
 <translation id="8830479210602243906">Poboljšajte produktivnost</translation>
 <translation id="883062543841130884">Zamjene</translation>
 <translation id="8830779999439981481">Ponovno pokretanje radi primjene ažuriranja</translation>
diff --git a/chrome/app/resources/generated_resources_hu.xtb b/chrome/app/resources/generated_resources_hu.xtb
index 11e25a1..8de145f9 100644
--- a/chrome/app/resources/generated_resources_hu.xtb
+++ b/chrome/app/resources/generated_resources_hu.xtb
@@ -4779,6 +4779,7 @@
 <translation id="4305402730127028764">Másolás ide: <ph name="DEVICE_NAME" /></translation>
 <translation id="4305817255990598646">Váltás</translation>
 <translation id="4306119971288449206">Az alkalmazásokat „<ph name="CONTENT_TYPE" />” tartalomtípussal kell ellátni</translation>
+<translation id="4306489587293957491">Bevitel</translation>
 <translation id="4306810703452026910">A Chrome nem fogja többé spamként megjelölni az ezen webhelyről érkező értesítéseket</translation>
 <translation id="4307992518367153382">Alapok</translation>
 <translation id="4309165024397827958">Engedélyezheti a helymeghatározási jogosultsággal rendelkező Android-alkalmazások és -szolgáltatások számára, hogy eszköze helyadatait használják. A Google a pontosság javítása és a helyalapú szolgáltatások továbbfejlesztése érdekében időszakosan gyűjthet és felhasználhat névtelenített helyadatokat.</translation>
@@ -4836,6 +4837,7 @@
 <translation id="4350230709416545141">A(z) <ph name="HOST" /> soha nem férhet hozzá az Ön tartózkodási helyéhez</translation>
 <translation id="4350782034419308508">Ok Google</translation>
 <translation id="435185728237714178">Nyissa meg a(z) „<ph name="APP_NAME" />” alkalmazást a telepített és a streamalkalmazások kezeléséhez</translation>
+<translation id="4352913519324947509">Jelszava nem lett módosítva, de a jelenlegi jelszavával továbbra is hozzáférhet a webhelyhez.</translation>
 <translation id="4354073718307267720">Kérdezzen rá, ha valamelyik webhely 3D-s térképet szeretne létrehozni az Ön környezetéről, valamint ha követni szeretné a kamera pozícióját</translation>
 <translation id="4354344420232759511">Az Ön által felkeresett webhelyek itt jelennek meg</translation>
 <translation id="435527878592612277">Válassza ki a fotóját</translation>
@@ -5994,7 +5996,6 @@
 <translation id="5186381005592669696">A támogatott alkalmazások megjelenítési nyelvének személyre szabása</translation>
 <translation id="5186788525428341874">Ezzel az azonosítókulccsal gyorsabban bejelentkezhet az eszközein. A rendszer elmenti a fiókhoz (<ph name="ACCOUNT_NAME" />) tartozó Google Jelszókezelőbe.</translation>
 <translation id="5187641678926990264">&amp;Oldal telepítése alkalmazásként…</translation>
-<translation id="5187671830619031922">Lap hozzáadása az osztott nézethez</translation>
 <translation id="5187826826541650604"><ph name="KEY_NAME" /> (<ph name="DEVICE" />)</translation>
 <translation id="5188242000716462162">Megosztotta: <ph name="USER_NAME" /></translation>
 <translation id="5188648870018555788">Helyadatok használata. Engedélyezheti a helymeghatározási jogosultsággal rendelkező ChromeOS- és Android-alkalmazások, webhelyek és szolgáltatások számára, hogy használják az eszköz helyadatait. A Helymeghatározás pontossága beállítás pontosabb helyadatokat szolgáltat az androidos alkalmazások és szolgáltatások számára. Ebből a célból a Google rendszeresen feldolgozza az eszköz érzékelőitől és a vezeték nélküli jelekből kapott információkat, hogy hozzájáruljon a vezeték nélküli jelek alapján történő közösségi helymeghatározáshoz. Ezek – az Ön azonosítása nélkül – arra szolgálnak, hogy javítsák a helymeghatározás pontosságát és a helyalapú szolgáltatásokat, valamint javítsák, biztosítsák és fenntartsák a Google szolgáltatásait a Google-nak és harmadik feleknek a felhasználói igények kiszolgálására vonatkozó jogos érdekei alapján. <ph name="BEGIN_LINK1" />További információ a helyadatok használatáról.<ph name="END_LINK1" /></translation>
@@ -8325,6 +8326,7 @@
 <translation id="686831807558000905">Bejelentkezés nélkül</translation>
 <translation id="686839242150793617">Automatikusan elindíthatják kép a képben módot</translation>
 <translation id="6868934826811377550">Részletek megtekintése</translation>
+<translation id="6870470066213933201">JavaScript-optimalizálás és -biztonság kezelése</translation>
 <translation id="6871644448911473373">OCSP válaszadó: <ph name="LOCATION" /></translation>
 <translation id="6871860225073478239">Nyelvek…</translation>
 <translation id="6873571253135628430">Webhelyengedélyek módosítása</translation>
@@ -11109,7 +11111,6 @@
 <translation id="8827125715368568315">Letiltva: <ph name="PERMISSION" /> és további <ph name="COUNT" /></translation>
 <translation id="8827289157496676362">Bővítmény rögzítése</translation>
 <translation id="8828933418460119530">DNS neve</translation>
-<translation id="8829979393064090868">Lap hozzáadása az osztott nézethez</translation>
 <translation id="8830479210602243906">Hatékonyságnövelés</translation>
 <translation id="883062543841130884">Cserék</translation>
 <translation id="8830779999439981481">Újraindítás a frissítések alkalmazásához…</translation>
diff --git a/chrome/app/resources/generated_resources_hy.xtb b/chrome/app/resources/generated_resources_hy.xtb
index f4b8423..5767ba1 100644
--- a/chrome/app/resources/generated_resources_hy.xtb
+++ b/chrome/app/resources/generated_resources_hy.xtb
@@ -5981,7 +5981,6 @@
 <translation id="5186381005592669696">Կարգավորեք ցուցադրման լեզուն աջակցվող հավելվածների համար</translation>
 <translation id="5186788525428341874">Դուք ավելի արագ մուտք կգործեք ձեր սարքերում այս մուտքի բանալու միջոցով։ Այն կպահվի <ph name="ACCOUNT_NAME" /> հաշվի Google գաղտնաբառերի կառավարչում։</translation>
 <translation id="5187641678926990264">&amp;Տեղադրել էջը որպես հավելված…</translation>
-<translation id="5187671830619031922">Ավելացնել ներդիրը տրոհված ռեժիմում դիտելու համար</translation>
 <translation id="5187826826541650604"><ph name="KEY_NAME" /> (<ph name="DEVICE" />)</translation>
 <translation id="5188242000716462162">Ով է կիսվել՝ <ph name="USER_NAME" /></translation>
 <translation id="5188648870018555788">Տեղորոշման օգտագործում։ Թույլատրել ChromeOS-ի և Android-ի՝ տեղորոշման թույլտվություն ունեցող հավելվածներին, կայքերին ու ծառայություններին օգտագործել ձեր սարքի տեղադրությունը։ Տեղորոշման ճշգրտությունը տեղադրության ավելի ճշգրիտ տվյալներ է տրամադրում Android հավելվածների և ծառայությունների համար։ Այդ նպատակով Google-ը պարբերաբար մշակում է սարքի սենսորների և սարքից ստացվող անլար ազդանշանների մասին տեղեկությունները՝ անլար ազդանշանների գտնվելու վայրերի մասին տվյալներ հավաքելու համար։ Դրանք օգտագործվում են առանց ձեզ նույնականացնելու և միտված են բարելավելու տեղադրության ճշգրտությունը և տեղադրության տվյալների հիման վրա աշխատող ծառայությունները, ինչպես նաև լավացնելու, տրամադրելու և աջակցելու Google-ի ծառայությունները՝ ելնելով Google-ի և երրորդ կողմերի օրինական շահերից՝ օգտատերերի կարիքները սպասարկելու համար։ <ph name="BEGIN_LINK1" />Իմանալ ավելին տեղադրության տվյալների օգտագործման մասին<ph name="END_LINK1" /></translation>
@@ -9003,6 +9002,7 @@
 <translation id="7387951778417998929">Կանխադրված որոնողական համակարգի փոխարեն մեկ ուրիշն օգտագործելու համար հասցեագոտում մուտքագրեք դրա դյուրանցումը, ապա՝ ձեր նախընտրած ստեղնային դյուրանցումը։ Այստեղ կարող եք նաև փոխել ձեր կանխադրված որոնողական համակարգը։</translation>
 <translation id="7388615499319468910">Կայքերն ու գովազդատուները կարող են գնահատել իրենց գովազդի արդյունավետությունը։ Այս կարգավորումն անջատված է։</translation>
 <translation id="738903649531469042">Ավելացնել ներդիր ընթերցանության ցանկում</translation>
+<translation id="7389615853658756494">Փոխել կայքում</translation>
 <translation id="7392118418926456391">Վիրուսների սկանավորումը չհաջողվեց</translation>
 <translation id="7392915005464253525">Նո&amp;րից բացել փակված պատուհանը</translation>
 <translation id="7393073300870882456">{COUNT,plural, =1{Պատճենվեց 1 տարր}one{Պատճենվեց {COUNT} տարր}other{Պատճենվեց {COUNT} տարր}}</translation>
@@ -9132,6 +9132,7 @@
 <translation id="7474043404939621342">Անհատականացնել գործիքագոտին</translation>
 <translation id="747459581954555080">Վերականգնել բոլորը</translation>
 <translation id="747507174130726364">{NUM_DAYS,plural, =1{Անհապաղ վերադարձրեք սարքը}one{Վերադարձրեք <ph name="DEVICE_TYPE" /> սարքը {NUM_DAYS} օրվա ընթացքում}other{Վերադարձրեք <ph name="DEVICE_TYPE" /> սարքը {NUM_DAYS} օրվա ընթացքում}}</translation>
+<translation id="747557463733380256">Իմանալ, թե ինչպես է ձեր դիտարկիչը կառավարվում</translation>
 <translation id="7475671414023905704">Netscape-ի կորցված գաղտնաբառերի URL</translation>
 <translation id="7475742997309661417">ChromeOS-ում ChromeVox Էկրանի ընթերցիչը հիմնականում օգտագործում են տեսողության խնդիրներ ունեցող կամ կույր մարդիկ՝ բրայլյան կամ խոսքի սինթեզատորով էկրանին ցուցադրվող տեքստը կարդալու համար։ Սեղմեք և հինգ վայրկյան պահեք ձայնի ուժգնության կարգավորման երկու կոճակները՝ ChromeVox-ը միացնելու համար։ Երբ ChromeVox-ը միանա, դուք կանցնեք արագ ուղեցույցով։</translation>
 <translation id="7476454130948140105">Մարտկոցի լիցքը բավարար չէ (<ph name="BATTERY_PERCENT" />%) թարմացումը տեղադրելու համար</translation>
@@ -10279,6 +10280,7 @@
 <translation id="8265018477030547118">Միայն այս սարքում</translation>
 <translation id="826511437356419340">Միացվել է համատեսքի ռեժիմը։ Նավարկելու համար սահեցրեք մատը կամ սեղմեք Tab (եթե օգտագործում եք ստեղնաշար)։</translation>
 <translation id="8265671588726449108">{COUNT,plural, =1{Ձեր ինկոգնիտո պատուհանը չի բացվի վերագործարկումից հետո}one{Ձեր {COUNT} ինկոգնիտո պատուհանը նորից չի բացվի վերագործարկումից հետո}other{Ձեր {COUNT} ինկոգնիտո պատուհանները նորից չեն բացվի վերագործարկումից հետո}}</translation>
+<translation id="8266430295499893285">Ձեր գաղտնաբառերից օգտվելու համար դուք պետք է հաստատեք ձեր ինքնությունը</translation>
 <translation id="8266947622852630193">Ներածման բոլոր մեթոդները</translation>
 <translation id="8267539814046467575">Ավելացնել տպիչ</translation>
 <translation id="8267961145111171918"><ph name="BEGIN_PARAGRAPH1" />Սրանք ընդհանուր տեղեկություններ են ձեր սարքի և դրա օգտագործման (օրինակ՝ մարտկոցի լիցքի, համակարգի ու հավելվածների օգտագործման և սխալների) մասին: Տեղեկություններն օգտագործվելու են Android-ի ծառայությունների աշխատանքը բարելավելու համար: Տվյալների մի մասը օգտակար կլինի մեր գործընկերների, օրինակ, Android ծրագրավորողների համար և կօգնի բարելավել նաև նրանց հավելվածներն ու արտադրանքները:<ph name="END_PARAGRAPH1" />
@@ -11089,7 +11091,6 @@
 <translation id="8827125715368568315">Արգելափակված թույլտվություններ՝ <ph name="PERMISSION" /> ու ևս <ph name="COUNT" /></translation>
 <translation id="8827289157496676362">Ամրացնել ընդլայնումը</translation>
 <translation id="8828933418460119530">DNS անուն</translation>
-<translation id="8829979393064090868">Ավելացնել ներդիրը տրոհված ռեժիմում դիտելու համար</translation>
 <translation id="8830479210602243906">Բարձրացնել արդյունավետությունը</translation>
 <translation id="883062543841130884">Փոխարինողներ</translation>
 <translation id="8830779999439981481">Սարքը վերագործարկվում է՝ թարմացումների կիրառման համար</translation>
diff --git a/chrome/app/resources/generated_resources_id.xtb b/chrome/app/resources/generated_resources_id.xtb
index cc557fba..01a2831 100644
--- a/chrome/app/resources/generated_resources_id.xtb
+++ b/chrome/app/resources/generated_resources_id.xtb
@@ -5996,7 +5996,6 @@
 <translation id="5186381005592669696">Sesuaikan bahasa tampilan untuk aplikasi yang didukung</translation>
 <translation id="5186788525428341874">Anda dapat menggunakan kunci sandi ini untuk login lebih cepat di seluruh perangkat Anda. Sandi akan disimpan ke Pengelola Sandi Google untuk <ph name="ACCOUNT_NAME" />.</translation>
 <translation id="5187641678926990264">&amp;Instal Halaman sebagai Aplikasi...</translation>
-<translation id="5187671830619031922">Tambahkan Tab ke Tampilan Terpisah</translation>
 <translation id="5187826826541650604"><ph name="KEY_NAME" /> (<ph name="DEVICE" />)</translation>
 <translation id="5188242000716462162">Dibagikan oleh <ph name="USER_NAME" /></translation>
 <translation id="5188648870018555788">Gunakan lokasi. Izinkan aplikasi, situs, dan layanan Android serta ChromeOS yang memiliki izin akses lokasi untuk menggunakan lokasi perangkat Anda. Akurasi Lokasi memberikan lokasi yang lebih akurat untuk aplikasi dan layanan Android. Agar dapat melakukannya, Google secara berkala memproses informasi tentang sensor perangkat dan sinyal nirkabel dari perangkat Anda untuk melakukan crowdsource lokasi sinyal nirkabel. Informasi ini digunakan tanpa mengidentifikasi Anda untuk meningkatkan akurasi lokasi serta layanan yang berbasis lokasi, serta untuk meningkatkan, menyediakan, dan mengelola layanan Google berdasarkan kepentingan sah Google dan pihak ketiga untuk melayani kebutuhan pengguna. <ph name="BEGIN_LINK1" />Pelajari lebih lanjut cara menggunakan lokasi<ph name="END_LINK1" /></translation>
@@ -9021,6 +9020,7 @@
 <translation id="7387951778417998929">Untuk menggunakan mesin telusur selain mesin telusur default, ketik pintasannya di kolom URL, lalu tekan pintasan keyboard yang diinginkan. Anda juga dapat mengubah mesin telusur default di sini.</translation>
 <translation id="7388615499319468910">Situs dan pengiklan dapat memahami performa iklan. Setelan ini nonaktif.</translation>
 <translation id="738903649531469042">Tambahkan Tab ke Daftar Bacaan</translation>
+<translation id="7389615853658756494">Ubah di situs</translation>
 <translation id="7392118418926456391">Pemindaian virus gagal</translation>
 <translation id="7392915005464253525">Buka kembali jendela yang tertutup</translation>
 <translation id="7393073300870882456">{COUNT,plural, =1{1 item disalin}other{{COUNT} item disalin}}</translation>
@@ -9149,6 +9149,7 @@
 <translation id="7474043404939621342">Menyesuaikan toolbar</translation>
 <translation id="747459581954555080">Pulihkan semua</translation>
 <translation id="747507174130726364">{NUM_DAYS,plural, =1{Harap kembalikan segera}other{Kembalikan <ph name="DEVICE_TYPE" /> dalam {NUM_DAYS} hari}}</translation>
+<translation id="747557463733380256">Pelajari cara browser Anda dikelola</translation>
 <translation id="7475671414023905704">Netscape Lost Password URL</translation>
 <translation id="7475742997309661417">Pembaca layar di ChromeOS, ChromeVox, terutama digunakan oleh orang yang tunanetra atau mengalami gangguan penglihatan untuk membaca teks yang ditampilkan di layar dengan penyintesis ucapan atau penampil braille. Tekan kedua tombol volume selama lima detik untuk mengaktifkan ChromeVox. Saat ChromeVox diaktifkan, Anda akan melalui tur singkat.</translation>
 <translation id="7476454130948140105">Baterai terlalu lemah untuk mengupdate (<ph name="BATTERY_PERCENT" />%)</translation>
@@ -10298,6 +10299,7 @@
 <translation id="8265018477030547118">Hanya di perangkat ini</translation>
 <translation id="826511437356419340">Masuk ke mode ringkasan jendela. Geser untuk membuka, atau tekan tab jika menggunakan keyboard.</translation>
 <translation id="8265671588726449108">{COUNT,plural, =1{Jendela Samaran Anda tidak akan dibuka setelah diluncurkan kembali}other{{COUNT} jendela Samaran Anda tidak akan dibuka lagi setelah diluncurkan kembali}}</translation>
+<translation id="8266430295499893285">Anda harus memverifikasi diri Anda sebelum dapat mengakses sandi</translation>
 <translation id="8266947622852630193">Semua metode input</translation>
 <translation id="8267539814046467575">Tambahkan printer</translation>
 <translation id="8267961145111171918"><ph name="BEGIN_PARAGRAPH1" />Data ini berisi informasi umum tentang perangkat ini dan penggunaannya (seperti tingkat daya baterai, aktivitas sistem dan aplikasi, serta error). Data ini akan digunakan untuk meningkatkan performa Android. Beberapa informasi gabungan juga akan membantu aplikasi dan partner Google, seperti developer Android, membuat aplikasi dan produk mereka menjadi lebih baik.<ph name="END_PARAGRAPH1" />
@@ -11107,7 +11109,6 @@
 <translation id="8827125715368568315">Memblokir <ph name="PERMISSION" /> dan <ph name="COUNT" /> lainnya</translation>
 <translation id="8827289157496676362">Pasang pin ekstensi</translation>
 <translation id="8828933418460119530">Nama DNS</translation>
-<translation id="8829979393064090868">Tambahkan tab ke tampilan terpisah</translation>
 <translation id="8830479210602243906">Meningkatkan produktivitas</translation>
 <translation id="883062543841130884">Substitusi</translation>
 <translation id="8830779999439981481">Memulai ulang untuk menerapkan update</translation>
diff --git a/chrome/app/resources/generated_resources_is.xtb b/chrome/app/resources/generated_resources_is.xtb
index b04df07f..aa1bf1e 100644
--- a/chrome/app/resources/generated_resources_is.xtb
+++ b/chrome/app/resources/generated_resources_is.xtb
@@ -5997,7 +5997,6 @@
 <translation id="5186381005592669696">Sérsníða birtingartungumál fyrir studd forrit</translation>
 <translation id="5186788525428341874">Þú getur notað þennan aðgangslykil til að skrá þig á fljótlegri hátt í öllum tækjunum þínum. Hann verður vistaður í Google-aðgangsorðastjórnun fyrir <ph name="ACCOUNT_NAME" />.</translation>
 <translation id="5187641678926990264">&amp;Setja upp síðu sem forrit ...</translation>
-<translation id="5187671830619031922">Bæta við flipa til að skipta skjá</translation>
 <translation id="5187826826541650604"><ph name="KEY_NAME" /> (<ph name="DEVICE" />)</translation>
 <translation id="5188242000716462162"><ph name="USER_NAME" /> deildi þessu</translation>
 <translation id="5188648870018555788">Nota staðsetningu. Leyfðu forritum, vefsvæðum og þjónustum ChromeOS og Android sem eru með staðsetningarheimild að nota staðsetningu tækisins. Staðsetningarnákvæmni veitir forritum og þjónustu frá Android aðgang að nákvæmari staðsetningum. Til að gera þetta vinnur Google af og til úr upplýsingum um skynjara tækisins og þráðlaus merki úr tækinu þínu fyrir hópvistun á staðsetningum þráðlausra merkja. Upplýsingarnar eru notaðar án þess að auðkenna þig til að bæta staðsetningarnákvæmni og staðsetningarbundnar þjónustur og til að bæta, veita og viðhalda þjónustum Google byggt á lögmætum hagsmunum Google og þriðju aðila er varða þarfir notenda. <ph name="BEGIN_LINK1" />Nánar um notkun staðsetningar<ph name="END_LINK1" /></translation>
@@ -9023,6 +9022,7 @@
 <translation id="7387951778417998929">Til að nota aðra leitarvél en þá sem er sjálfgefin skaltu slá inn flýtileið hennar í veffangastikuna og ýta því næst á valinn flýtilykil. Þú getur einnig skipt um sjálfgefna leitarvél hér.</translation>
 <translation id="7388615499319468910">Vefsvæði og auglýsendur geta greint árangur auglýsinga. Slökkt er á þessari stillingu.</translation>
 <translation id="738903649531469042">Bæta flipa við leslista</translation>
+<translation id="7389615853658756494">Breyta því á vefsvæðinu</translation>
 <translation id="7392118418926456391">Vírusleit mistókst</translation>
 <translation id="7392915005464253525">Opna lokaðan glugga aftur</translation>
 <translation id="7393073300870882456">{COUNT,plural, =1{1 atriði afritað}one{{COUNT} atriði afritað}other{{COUNT} atriði afrituð}}</translation>
@@ -9152,6 +9152,7 @@
 <translation id="7474043404939621342">Sérsníddu tækjastikuna</translation>
 <translation id="747459581954555080">Endurheimta allt</translation>
 <translation id="747507174130726364">{NUM_DAYS,plural, =1{Tafarlausra skila krafist}one{Skilaðu <ph name="DEVICE_TYPE" /> tækinu innan {NUM_DAYS} dags}other{Skilaðu <ph name="DEVICE_TYPE" /> tækinu innan {NUM_DAYS} daga}}</translation>
+<translation id="747557463733380256">Kynntu þér hvernig vafranum þínum er stjórnað</translation>
 <translation id="7475671414023905704">Slóð á týnt aðgangsorð Netscape</translation>
 <translation id="7475742997309661417">Skjálesarinn í ChromeOS, ChromeVox, er aðallega notaður af fólki sem er blint eða með lélega sjón til að lesa texta sem birtur er á skjánum með talgervli eða blindraletri. Haltu báðum hljóðstyrkstökkunum inni í fimm sekúndur til að kveikja á ChromeVox. Þegar kveikt hefur verið á ChromeVox er þér boðið upp á stutta kynningu.</translation>
 <translation id="7476454130948140105">Of lítil hleðsla á rafhlöðu til að uppfæra (<ph name="BATTERY_PERCENT" />%)</translation>
@@ -10300,6 +10301,7 @@
 <translation id="8265018477030547118">Aðeins í þessu tæki</translation>
 <translation id="826511437356419340">Gluggayfirlitsstilling opnuð. Strjúktu til að fletta eða ýttu á dálkalykilinn ef þú notar lyklaborð.</translation>
 <translation id="8265671588726449108">{COUNT,plural, =1{Huliðsgluggi opnast ekki eftir endurræsingu}one{{COUNT} huliðsgluggi opnast ekki eftir endurræsingu}other{{COUNT} huliðsgluggar opnast ekki eftir endurræsingu}}</translation>
+<translation id="8266430295499893285">Þú þarft að staðfesta auðkenni þitt til að fá aðgengi að aðgangsorðunum þínum</translation>
 <translation id="8266947622852630193">Allar innsláttaraðferðir</translation>
 <translation id="8267539814046467575">Bæta prentara við</translation>
 <translation id="8267961145111171918"><ph name="BEGIN_PARAGRAPH1" />Þetta eru almennar upplýsingar um tækið þitt og notkun þína á því (til dæmis stöðu rafhlöðunnar, virkni kerfis og forrita og villur). Gögnin verða notuð til að betrumbæta Android-stýrikerfið og sumar uppsafnaðar upplýsingar geta gagnast samstarfsaðilum okkar, svo sem þróunaraðilum fyrir Android, við að bæta forrit og vörur.<ph name="END_PARAGRAPH1" />
@@ -11110,7 +11112,6 @@
 <translation id="8827125715368568315">Lokaði á <ph name="PERMISSION" /> og <ph name="COUNT" /> í viðbót</translation>
 <translation id="8827289157496676362">Festa viðbót</translation>
 <translation id="8828933418460119530">DNS-heiti</translation>
-<translation id="8829979393064090868">Bæta við flipa til að skipta skjá</translation>
 <translation id="8830479210602243906">Auktu afköst</translation>
 <translation id="883062543841130884">Staðgenglar</translation>
 <translation id="8830779999439981481">Endurræsir til að virkja uppfærslur</translation>
diff --git a/chrome/app/resources/generated_resources_it.xtb b/chrome/app/resources/generated_resources_it.xtb
index 498f83a..b443e65 100644
--- a/chrome/app/resources/generated_resources_it.xtb
+++ b/chrome/app/resources/generated_resources_it.xtb
@@ -5982,7 +5982,6 @@
 <translation id="5186381005592669696">Personalizza la lingua di visualizzazione per le app supportate</translation>
 <translation id="5186788525428341874">Puoi usare questa passkey per accedere più velocemente su tutti i tuoi dispositivi. Verrà salvata nel Gestore delle password di Google per <ph name="ACCOUNT_NAME" />.</translation>
 <translation id="5187641678926990264">&amp;Installa pagina come app…</translation>
-<translation id="5187671830619031922">Aggiungi scheda alla visualizzazione divisa</translation>
 <translation id="5187826826541650604"><ph name="KEY_NAME" /> (<ph name="DEVICE" />)</translation>
 <translation id="5188242000716462162">Elemento condiviso da <ph name="USER_NAME" /></translation>
 <translation id="5188648870018555788">Utilizza la posizione. Consenti alle app, ai siti web e ai servizi ChromeOS e per Android che dispongono dell'autorizzazione di accesso alla posizione di usare la posizione del tuo dispositivo. La precisione della posizione fornisce una posizione più precisa per app e servizi. A questo scopo, Google tratta periodicamente informazioni relative a sensori dei dispositivi e segnali wireless provenienti dal tuo dispositivo per raccogliere le posizioni dei segnali wireless mediante crowdsourcing. Queste vengono usate senza identificarti per migliorare la precisione della posizione e i servizi basati sulla posizione geografica, nonché per migliorare, fornire e mantenere i servizi di Google basati sugli interessi legittimi di Google e di terze parti al fine di soddisfare le esigenze degli utenti. <ph name="BEGIN_LINK1" />Scopri di più sull'utilizzo della posizione<ph name="END_LINK1" /></translation>
@@ -11094,7 +11093,6 @@
 <translation id="8827125715368568315">Autorizzazioni bloccate: <ph name="PERMISSION" /> e altre <ph name="COUNT" /></translation>
 <translation id="8827289157496676362">Blocca estensione</translation>
 <translation id="8828933418460119530">Nome DNS</translation>
-<translation id="8829979393064090868">Aggiungi scheda alla visualizzazione divisa</translation>
 <translation id="8830479210602243906">Aumenta la produttività</translation>
 <translation id="883062543841130884">Sostituzioni</translation>
 <translation id="8830779999439981481">Riavvio in corso per applicare gli aggiornamenti</translation>
diff --git a/chrome/app/resources/generated_resources_iw.xtb b/chrome/app/resources/generated_resources_iw.xtb
index c9bb92b..225f7363 100644
--- a/chrome/app/resources/generated_resources_iw.xtb
+++ b/chrome/app/resources/generated_resources_iw.xtb
@@ -5996,7 +5996,6 @@
 <translation id="5186381005592669696">התאמה אישית של שפת התצוגה לאפליקציות נתמכות</translation>
 <translation id="5186788525428341874">‏אפשר להשתמש במפתח הגישה הזה כדי להיכנס לחשבון מהר יותר בכל המכשירים שלך. הוא יישמר במנהל הסיסמאות של Google בחשבון <ph name="ACCOUNT_NAME" />.</translation>
 <translation id="5187641678926990264">&amp;התקנת הדף כאפליקציה…</translation>
-<translation id="5187671830619031922">הוספת הכרטיסייה לתצוגה מפוצלת</translation>
 <translation id="5187826826541650604"><ph name="KEY_NAME" /> ‏(<ph name="DEVICE" />)</translation>
 <translation id="5188242000716462162">שותף על ידי <ph name="USER_NAME" /></translation>
 <translation id="5188648870018555788">‏שימוש בנתוני המיקום. מתן אפשרות לאפליקציות, לאתרים ולשירותים של ChromeOS ו-Android עם הרשאת מיקום להשתמש במיקום של המכשיר. ההגדרה 'קביעת מיקום יותר מדויקת' מספקת מיקום מדויק יותר לאפליקציות ולשירותים של Android. כדי לעשות את זה, Google מעבדת מדי פעם נתונים על חיישני מכשיר ואותות אלחוטיים מהמכשיר שלך כדי לתמוך במיקור המונים של מיקומי אותות אלחוטיים. השימוש בנתונים האלה נעשה בלי לזהות אותך כדי לשפר את מידת הדיוק של המיקום ואת האיכות של השירותים מבוססי-המיקום. כמו כן, הנתונים משמשים כדי לשפר, לספק ולתחזק את השירותים של Google על סמך האינטרסים הלגיטימיים של Google ושל צדדים שלישיים כדי לשרת את צורכי המשתמשים. <ph name="BEGIN_LINK1" />מידע נוסף על השימוש במיקום<ph name="END_LINK1" /></translation>
@@ -11115,7 +11114,6 @@
 <translation id="8827125715368568315">בוצעה חסימה להרשאות <ph name="PERMISSION" /> ועוד <ph name="COUNT" /></translation>
 <translation id="8827289157496676362">הצמדת התוסף</translation>
 <translation id="8828933418460119530">‏שם DNS</translation>
-<translation id="8829979393064090868">הוספת הכרטיסייה לתצוגה מפוצלת</translation>
 <translation id="8830479210602243906">שיפור הפרודוקטיביות</translation>
 <translation id="883062543841130884">תחליפים</translation>
 <translation id="8830779999439981481">מתבצעת הפעלה מחדש להחלת העדכונים</translation>
diff --git a/chrome/app/resources/generated_resources_ja.xtb b/chrome/app/resources/generated_resources_ja.xtb
index 65e6441..235dd9f2 100644
--- a/chrome/app/resources/generated_resources_ja.xtb
+++ b/chrome/app/resources/generated_resources_ja.xtb
@@ -1648,7 +1648,7 @@
 <translation id="2136476978468204130">入力したパスフレーズが正しくありません</translation>
 <translation id="2137128126782078222"><ph name="WEBSITE" /> からの通知を許可しない</translation>
 <translation id="2139919072249842737">設定ボタン</translation>
-<translation id="2140788884185208305">電池の状態</translation>
+<translation id="2140788884185208305">バッテリー ヘルス</translation>
 <translation id="2142328300403846845">別のユーザーとしてリンクを開く</translation>
 <translation id="2142484069755256151">Google パスワード マネージャーの 6 桁のリカバリ PIN を作成(PIN の <ph name="NUM_DIGIT" />/6 桁)してください</translation>
 <translation id="2142582065325732898">最近使った Chrome タブを表示するには、<ph name="LINK1_BEGIN" />Chrome 同期<ph name="LINK1_END" />を有効にします。<ph name="LINK2_BEGIN" />詳細<ph name="LINK2_END" /></translation>
@@ -4758,6 +4758,7 @@
 <translation id="4305402730127028764">「<ph name="DEVICE_NAME" />」にコピー</translation>
 <translation id="4305817255990598646">切り替え</translation>
 <translation id="4306119971288449206">アプリはコンテンツタイプ「<ph name="CONTENT_TYPE" />」で配信される必要があります</translation>
+<translation id="4306489587293957491">入力</translation>
 <translation id="4306810703452026910">今後、このサイトからの通知はスパムとして報告しません</translation>
 <translation id="4307992518367153382">基本設定</translation>
 <translation id="4309165024397827958">位置情報の利用権限が設定されている Android アプリやサービスがご利用のデバイスの位置情報を使用することを許可します。Google は位置情報を定期的に収集し、このデータを匿名の方法で活用して位置情報の精度や位置情報を利用したサービスを改善します。</translation>
@@ -4815,6 +4816,7 @@
 <translation id="4350230709416545141"><ph name="HOST" /> による位置情報へのアクセスを常にブロックする</translation>
 <translation id="4350782034419308508">OK Google</translation>
 <translation id="435185728237714178">インストール(ストリーミング)されるアプリを管理するには「<ph name="APP_NAME" />」アプリに移動してください</translation>
+<translation id="4352913519324947509">パスワードは変更されませんでしたが、現在のパスワードでサイトにアクセスできます</translation>
 <translation id="4354073718307267720">サイトから周囲の 3D マップの作成またはカメラ位置の追跡を求められたときに確認する</translation>
 <translation id="4354344420232759511">アクセスしたサイトがここに表示されます</translation>
 <translation id="435527878592612277">写真を選択</translation>
@@ -5970,7 +5972,6 @@
 <translation id="5186381005592669696">対応アプリの表示言語をカスタマイズする</translation>
 <translation id="5186788525428341874">このパスキーを使用してどのデバイスでもすばやくログインできます。パスキーは <ph name="ACCOUNT_NAME" /> の Google パスワード マネージャーに保存されます。</translation>
 <translation id="5187641678926990264">ページをアプリとしてインストール(&amp;I)...</translation>
-<translation id="5187671830619031922">タブを分割表示に追加</translation>
 <translation id="5187826826541650604"><ph name="KEY_NAME" />(<ph name="DEVICE" />)</translation>
 <translation id="5188242000716462162"><ph name="USER_NAME" /> さんが共有しました</translation>
 <translation id="5188648870018555788">位置情報を使用するとともに、位置情報へのアクセス権を持つ ChromeOS アプリ、Android アプリ、ウェブサイト、サービスに対して、デバイスの位置情報の使用を許可します。[位置情報の精度] 設定では、Android アプリやサービスで使用される位置情報の精度を高めることができます。この設定では、クラウドソースのワイヤレス シグナルを利用した位置情報の向上に役立てるため、デバイスのセンサーに関する情報やデバイスから送信されるワイヤレス シグナルが Google で定期的に処理されます。この情報は、ユーザーを特定することなく、位置情報の精度と、位置情報を利用したサービスを改善する目的で使用されます。また、ユーザーのニーズに応えるうえでの Google とサードパーティの正当な利益に基づき、Google のサービスを改善、提供、維持する目的でも使用されます。<ph name="BEGIN_LINK1" />位置情報の使用に関する詳細<ph name="END_LINK1" /></translation>
@@ -8295,6 +8296,7 @@
 <translation id="686831807558000905">ログインしない</translation>
 <translation id="686839242150793617">ピクチャー イン ピクチャーの自動開始を許可するサイト</translation>
 <translation id="6868934826811377550">詳細を表示</translation>
+<translation id="6870470066213933201">JavaScript の最適化とセキュリティを管理する</translation>
 <translation id="6871644448911473373">OCSP レスポンダ: <ph name="LOCATION" /></translation>
 <translation id="6871860225073478239">言語...</translation>
 <translation id="6873571253135628430">サイトの権限を変更する</translation>
@@ -11079,7 +11081,6 @@
 <translation id="8827125715368568315"><ph name="PERMISSION" />、他 <ph name="COUNT" /> 件をブロックしました</translation>
 <translation id="8827289157496676362">拡張機能を固定します</translation>
 <translation id="8828933418460119530">DNS 名</translation>
-<translation id="8829979393064090868">タブを分割表示に追加</translation>
 <translation id="8830479210602243906">生産性向上</translation>
 <translation id="883062543841130884">置換</translation>
 <translation id="8830779999439981481">更新を適用するため再起動しています</translation>
diff --git a/chrome/app/resources/generated_resources_ka.xtb b/chrome/app/resources/generated_resources_ka.xtb
index e2e4e02..9214945 100644
--- a/chrome/app/resources/generated_resources_ka.xtb
+++ b/chrome/app/resources/generated_resources_ka.xtb
@@ -2166,6 +2166,7 @@
 <translation id="24786041351753425">ჩართეთ მონაცემთა აღდგენის სერვისი.</translation>
 <translation id="2479541499757560845">მისაწვდომობის კლავიატურის პარამეტრები</translation>
 <translation id="2480868415629598489">თქვენ მიერ კოპირებული და ჩასმული მონაცემების შეცვლა</translation>
+<translation id="2480881140544300950">მიმდინარე საძიებო სისტემა, რომელიც მართავს თქვენი ახალი ჩანართის გვერდს</translation>
 <translation id="2482878487686419369">შეტყობინებები</translation>
 <translation id="2482895651873876648">ჩანართი გადატანილია ჯგუფში <ph name="GROUP_NAME" /> — <ph name="GROUP_CONTENTS" /></translation>
 <translation id="2483627560139625913">დააყენეთ საძიებო სისტემა Chrome ბრაუზერის პარამეტრებიდან</translation>
@@ -4768,6 +4769,7 @@
 <translation id="4305402730127028764"><ph name="DEVICE_NAME" />-ში კოპირება</translation>
 <translation id="4305817255990598646">გადართვა</translation>
 <translation id="4306119971288449206">მოწოდებული აპების კონტენტის ტიპი უნდა იყოს „<ph name="CONTENT_TYPE" />“</translation>
+<translation id="4306489587293957491">შეყვანა</translation>
 <translation id="4306810703452026910">Chrome შეწყვეტს ამ საიტისგან მიღებული შეტყობინებების სპამად მონიშვნას</translation>
 <translation id="4307992518367153382">ძირითადი</translation>
 <translation id="4309165024397827958">დაუშვით თქვენი მოწყობილობის მდებარეობის გამოყენება იმ Android აპებისა და სერვისების მიერ, რომლებსაც უკვე მიანიჭეთ მდებარეობაზე წვდომის ნებართვა. Google-მა, შესაძლოა, პერიოდულად შეაგროვოს მდებარეობის მონაცემები ანონიმურად, რათა ამ მონაცემთა გამოყენებით გააუმჯობესოს მდებარეობის სიზუსტე, ისევე როგორც მდებარეობაზე დაფუძნებული სერვისები.</translation>
@@ -4825,6 +4827,7 @@
 <translation id="4350230709416545141"><ph name="HOST" />-ისთვის თქვენს მდებარეობაზე წვდომის ყოველთვის დაბლოკვა</translation>
 <translation id="4350782034419308508">Hey Google</translation>
 <translation id="435185728237714178">დაინსტალირებული და სტრიმინგით უზრუნველყოფილი აპების სამართავად გადადით „<ph name="APP_NAME" />“ აპზე</translation>
+<translation id="4352913519324947509">თქვენი პაროლი არ შეცვლილა, მაგრამ თქვენ მაინც უნდა შეძლოთ საიტზე წვდომა ახლანდელი პაროლით</translation>
 <translation id="4354073718307267720">შეკითხვა საიტის მიერ თქვენი გარემოს 3-განზომილებიანი რუკის შექმნის ან კამერის პოზიციისთვის თვალის მიდევნების მოთხოვნისას</translation>
 <translation id="4354344420232759511">აქ გამოჩნდება თქვენ მიერ მონახულებული საიტები</translation>
 <translation id="435527878592612277">აირჩიეთ თქვენი ფოტო</translation>
@@ -5365,6 +5368,7 @@
 <translation id="4742970037960872810">გამოყოფის ამოშლა</translation>
 <translation id="4743260470722568160"><ph name="BEGIN_LINK" />შეიტყვეთ აპლიკაციების განახლების შესახებ<ph name="END_LINK" /></translation>
 <translation id="4743990041512863976">ნებადართულია — <ph name="PERMISSION_DETAILS" />. დაუშვით <ph name="LINK_BEGIN" />სისტემის მიკროფონზე წვდომა<ph name="LINK_END" />.</translation>
+<translation id="4744172369799559159">ადამიანი მიმომხილველები მიმოიხილავენ პაროლის გვერდებს და დაკავშირებულ ინფორმაციას, ამ ფუნქციის გაუმჯობესების მიზნით, მაგრამ თქვენი პაროლი დაშიფრულია და მას ვერავინ ნახავს.</translation>
 <translation id="4744260496658845719">კლავიატურის შენათების სიკაშკაშე</translation>
 <translation id="4744268813103118742">საიტზე გადასვლა</translation>
 <translation id="4744571849207727284">Excel</translation>
@@ -5983,7 +5987,6 @@
 <translation id="5186381005592669696">მოირგეთ, რომელ ენაზე გამოჩნდეს მხარდაჭერილი აპები</translation>
 <translation id="5186788525428341874">შეგიძლიათ, გამოიყენოთ ეს წვდომის გასაღები თქვენს მოწყობილობებში უფრო სწრაფად შესასვლელად. ის შეინახება Google პაროლების მმართველში <ph name="ACCOUNT_NAME" />-ისთვის.</translation>
 <translation id="5187641678926990264">გვერდის &amp;ინსტალაცია აპის სახით...</translation>
-<translation id="5187671830619031922">დაამატეთ ჩანართი გაყოფილ ხედში</translation>
 <translation id="5187826826541650604"><ph name="KEY_NAME" /> (<ph name="DEVICE" />)</translation>
 <translation id="5188242000716462162">გამზიარებელი: <ph name="USER_NAME" /></translation>
 <translation id="5188648870018555788">მდებარეობის გამოყენება. ChromeOS-ს, ასევე, Android აპებს, ვებსაიტებსა და სერვისებს, რომელთაც მდებარეობის ნებართვა აქვს, ამ მოწყობილობის მდებარეობით სარგებლობის საშუალება მიეცემა. მდებარეობის სიზუსტის რეჟიმი გთავაზობთ Android აპების და სერვისებისთვის უფრო ზუსტ მდებარეობებს. ამისთვის Google პერიოდულად დაამუშავებს ინფორმაციას მოწყობილობის სენსორებისა და უსადენო სიგნალების შესახებ თქვენი მოწყობილობიდან, რათა განსაზღვროს უსადენო სიგნალების მდებარეობა. ისინი თქვენი ვინაობის იდენტიფიცირების გარეშე გამოიყენება მდებარეობის სიზუსტის და მდებარეობაზე დაფუძნებული სერვისების გასაუმჯობესებლად და Google სერვისების გასაუმჯობესებლად, უზრუნველსაყოფად და შესანარჩუნებლად, Google-ისა და მესამე მხარის ლეგიტიმური ინტერესების საფუძველზე მომხმარებლების მოთხოვნების დასაკმაყოფილებლად. <ph name="BEGIN_LINK1" />შეიტყვეთ მეტი მდებარეობის გამოყენების შესახებ<ph name="END_LINK1" /></translation>
@@ -6325,6 +6328,7 @@
 <translation id="5434065355175441495">PKCS #1 RSA დაშიფვრა</translation>
 <translation id="5435274640623994081">ხმოვანი ეფექტების ჟურნალირების ჩართვა</translation>
 <translation id="5435779377906857208"><ph name="HOST" />-ისთვის თქვენს მდებარეობაზე წვდომის ყოველთვის დაშვება</translation>
+<translation id="5436211819997237281">მიმდინარე გაფართოება, რომელიც მართავს თქვენი ახალი ჩანართის გვერდს</translation>
 <translation id="5436492226391861498">პროქსი გვირაბის მოლოდინი…</translation>
 <translation id="5436510242972373446"><ph name="SITE_NAME" />-ის ძებნა:</translation>
 <translation id="5438014818441491616"><ph name="WINDOW_SIDE" /> ფანჯარა ახლა <ph name="WINDOW_SIZE_PERCENT" />-ით ფართოა, <ph name="PANE_SIDE" /> პანელი ახლა <ph name="PANE_SIZE_PERCENT" />-ით ფართოა.</translation>
@@ -8313,6 +8317,7 @@
 <translation id="686831807558000905">სისტემაში შესვლის გარეშე</translation>
 <translation id="686839242150793617">დაშვებულია რეჟიმში „ეკრანი ეკრანში“ ავტომატურად შესვლა</translation>
 <translation id="6868934826811377550">დეტალების ნახვა</translation>
+<translation id="6870470066213933201">მართეთ JavaScript-ის ოპტიმიზაცია და უსაფრთხოება</translation>
 <translation id="6871644448911473373">OCSP რესპონდერი: <ph name="LOCATION" /></translation>
 <translation id="6871860225073478239">ენები...</translation>
 <translation id="6873571253135628430">საიტის ნებართვების შეცვლა</translation>
@@ -9212,6 +9217,7 @@
 <translation id="7529411698175791732">შეამოწმეთ კავშირი ინტერნეტთან. თუ პრობლემა გამეორდება, ცადეთ გამოსვლა და ხელახლა შესვლა.</translation>
 <translation id="7529865045818406536">როცა ერთზე მეტი ძველი ქსელი იქნება ხელმისაწვდომი, გამოყენებული იქნება სასურველი ქსელები</translation>
 <translation id="7530016656428373557">განტვირთვის მაჩვენებელი (ვატი)</translation>
+<translation id="7530215951451994972">სურათის შექმნა</translation>
 <translation id="7531771599742723865">მოწყობილობა გამოიყენება</translation>
 <translation id="7531779363494549572">გადადით აქ: პარამეტრები &gt; აპები და შეტყობინებები &gt; შეტყობინებები.</translation>
 <translation id="7532009420053991888"><ph name="LINUX_APP_NAME" /> არ რეაგირებს. მის დასახურად აირჩიეთ „იძულებით დახურვა“.</translation>
@@ -11095,7 +11101,6 @@
 <translation id="8827125715368568315">დაბლოკილია <ph name="PERMISSION" /> და <ph name="COUNT" /> სხვა</translation>
 <translation id="8827289157496676362">გაფართოების ჩამაგრება</translation>
 <translation id="8828933418460119530">DNS სახელი</translation>
-<translation id="8829979393064090868">დაამატეთ ჩანართი გაყოფილ ხედში</translation>
 <translation id="8830479210602243906">პროდუქტიულობის გაზრდა</translation>
 <translation id="883062543841130884">ჩანაცვლებები</translation>
 <translation id="8830779999439981481">მიმდინარეობს გადატვირთვა განახლებების მისასადაგებლად</translation>
diff --git a/chrome/app/resources/generated_resources_kk.xtb b/chrome/app/resources/generated_resources_kk.xtb
index 0852629..df377bbe 100644
--- a/chrome/app/resources/generated_resources_kk.xtb
+++ b/chrome/app/resources/generated_resources_kk.xtb
@@ -5977,7 +5977,6 @@
 <translation id="5186381005592669696">Қолдау көрсетілетін қолданбалардың интерфейс тілін бейімдеу</translation>
 <translation id="5186788525428341874">Құрылғыларыңызда аккаунтқа жылдам кіру үшін осы кіру кілтін пайдалана аласыз. Ол <ph name="ACCOUNT_NAME" /> аккаунтына арналған Google Password Manager қызметіне сақталады.</translation>
 <translation id="5187641678926990264">&amp;Бетті қолданба ретінде орнату...</translation>
-<translation id="5187671830619031922">Қойындыны бөлінген көрініске қосу</translation>
 <translation id="5187826826541650604"><ph name="KEY_NAME" /> (<ph name="DEVICE" />)</translation>
 <translation id="5188242000716462162"><ph name="USER_NAME" /> бөлісті</translation>
 <translation id="5188648870018555788">Локацияны пайдалану. Локацияны анықтау рұқсаты бар ChromeOS және Android қолданбаларына, веб-сайттарға және қызметтерге құрылғыңыздың локациясын пайдалануға рұқсат беріңіз. Локация дәлдігі параметрі Android қолданбалары мен қызметтерінің локациясын дәлірек көрсетеді. Ол үшін Google сымсыз сигнал локацияларын анықтау мақсатында құрылғының датчиктері мен сымсыз сигналдары туралы ақпаратты өңдеп отырады. Оларды қолдану кезінде жеке басыңыз туралы мәлімет берілмейді. Локация дәлдігін және локацияға негізделген қызметтерді жақсарту, сондай-ақ пайдаланушылардың қажеттіліктерін қанағаттандыру мақсатында Google-дың және үшінші тараптардың заңды мүдделеріне сүйене отырып, Google қызметтерін жақсарту, ұсыну және жүргізу үшін пайдаланылады. <ph name="BEGIN_LINK1" />Локацияны пайдалану туралы толық ақпарат<ph name="END_LINK1" /></translation>
@@ -8997,6 +8996,7 @@
 <translation id="7387951778417998929">Әдепкіден басқа іздеу жүйесін пайдалану үшін, мекенжай жолағына оның жылдам пәрменін және қажетті перне тіркесімін енгізіңіз. Әдепкі іздеу жүйесін осы жерде өзгерте аласыз.</translation>
 <translation id="7388615499319468910">Сайттар мен жарнама берушілер жарнамалардың тиімділігін түсіне алады. Бұл параметр өшірулі.</translation>
 <translation id="738903649531469042">Қойындыны оқу тізіміне қосу</translation>
+<translation id="7389615853658756494">Оны сайтта өзгерту</translation>
 <translation id="7392118418926456391">Вирустарды тексеру сәтсіз аяқталды</translation>
 <translation id="7392915005464253525">Жабылған терезені қа&amp;йта ашу</translation>
 <translation id="7393073300870882456">{COUNT,plural, =1{1 элемент көшірілді.}other{{COUNT} элемент көшірілді.}}</translation>
@@ -9125,6 +9125,7 @@
 <translation id="7474043404939621342">Құралдар тақтасын бейімдеу</translation>
 <translation id="747459581954555080">Барлығын қалпына келтіру</translation>
 <translation id="747507174130726364">{NUM_DAYS,plural, =1{Дереу қайтару қажет}other{<ph name="DEVICE_TYPE" /> құрылғысын {NUM_DAYS} күн ішінде қайтару}}</translation>
+<translation id="747557463733380256">Браузеріңізді басқару жолы туралы ақпарат</translation>
 <translation id="7475671414023905704">Netscape жоғалған құпия сөз URL мекенжайы</translation>
 <translation id="7475742997309661417">ChromeOS жүйесіндегі ChromeVox экран оқу құралын негізінен көзі көрмейтін немесе нашар көретін адамдар сөз синтезаторы немесе Брайль дисплейі арқылы экранда көрсетілген мәтінді оқу үшін пайдаланады. ChromeVox-ты қосу үшін екі дыбыс деңгейі пернесін бес секунд басып тұрыңыз. ChromeVox іске қосылған кезде, сіз жылдам бейнесаяхаттан өтесіз.</translation>
 <translation id="7476454130948140105">Батарея заряды жаңарту үшін тым аз (<ph name="BATTERY_PERCENT" />%)</translation>
@@ -10273,6 +10274,7 @@
 <translation id="8265018477030547118">Тек осы құрылғыда</translation>
 <translation id="826511437356419340">Терезе шолу режимі қосылды. Өту үшін сырғытыңыз. Пернетақтаны пайдаланып жатсаңыз, Tab түймесін басыңыз.</translation>
 <translation id="8265671588726449108">{COUNT,plural, =1{Қайта іске қосылғанда инкогнито терезесі қайта ашылмайды.}other{Қайта іске қосылғанда {COUNT} инкогнито терезесі қайта ашылмайды.}}</translation>
+<translation id="8266430295499893285">Құпия сөздерді пайдаланбай тұрып, жеке басыңызды растауыңыз қажет.</translation>
 <translation id="8266947622852630193">Барлық енгізу әдістері</translation>
 <translation id="8267539814046467575">Принтерді енгізу</translation>
 <translation id="8267961145111171918"><ph name="BEGIN_PARAGRAPH1" />Бұл – құрылғыңыз бен оның қалай пайдаланылатыны туралы жалпы ақпарат (мысалы, батарея зарядының деңгейі, жүйе мен қолданбаларды пайдалану тарихы, қателер). Деректер Android жүйесін жақсарту үшін пайдаланылады және кейбір жиынтық ақпараттар Google қолданбалары мен Android әзірлеушілері сияқты серіктестерге олардың қолданбалары мен өнімдерін жетілдіруге көмектеседі.<ph name="END_PARAGRAPH1" />
@@ -11082,7 +11084,6 @@
 <translation id="8827125715368568315"><ph name="PERMISSION" /> және тағы <ph name="COUNT" /> бөгелді.</translation>
 <translation id="8827289157496676362">Кеңейтімді бекіту</translation>
 <translation id="8828933418460119530">DNS атауы</translation>
-<translation id="8829979393064090868">Қойындыны бөлінген көрініске қосу</translation>
 <translation id="8830479210602243906">Өнімділікті арттыру</translation>
 <translation id="883062543841130884">Ауыстырулар</translation>
 <translation id="8830779999439981481">Жаңа нұсқаны қолдану үшін қайта жүктеліп жатыр</translation>
diff --git a/chrome/app/resources/generated_resources_km.xtb b/chrome/app/resources/generated_resources_km.xtb
index 449f9c1..177c804f 100644
--- a/chrome/app/resources/generated_resources_km.xtb
+++ b/chrome/app/resources/generated_resources_km.xtb
@@ -4779,6 +4779,7 @@
 <translation id="4305402730127028764">ចម្លង​ទៅ <ph name="DEVICE_NAME" /></translation>
 <translation id="4305817255990598646">ប្ដូរ​</translation>
 <translation id="4306119971288449206">កម្មវិធី​ត្រូវបាន​ផ្ដល់​ជា​ប្រភេទ​ខ្លឹមសារ "<ph name="CONTENT_TYPE" />"</translation>
+<translation id="4306489587293957491">បញ្ចូល</translation>
 <translation id="4306810703452026910">Chrome នឹងឈប់​សម្គាល់​ការជូនដំណឹងពី​គេហទំព័រនេះ​ថាឥត​បានការ</translation>
 <translation id="4307992518367153382">មូលដ្ឋាន</translation>
 <translation id="4309165024397827958">អនុញ្ញាតឱ្យ​សេវាកម្ម និងកម្មវិធី Android ដែលមាន​ការអនុញ្ញាតឱ្យ​ចូលប្រើ​ទីតាំង ប្រើប្រាស់​ទីតាំង​ឧបករណ៍​របស់អ្នក។ Google អាច​ប្រមូល​ទិន្នន័យ​ទីតាំងជាប្រចាំ និងប្រើ​ទិន្នន័យនេះ​ជាលក្ខណៈ​អនាមិក ដើម្បី​កែលម្អ​ភាព​ត្រឹមត្រូវ​នៃទីតាំង និង​សេវាកម្ម​ដែល​ផ្អែកលើ​ទីតាំង។</translation>
@@ -4836,6 +4837,7 @@
 <translation id="4350230709416545141">ទប់ស្កាត់ <ph name="HOST" /> មិនឱ្យចូលប្រើទីតាំងរបស់អ្នកជានិច្ច</translation>
 <translation id="4350782034419308508">Ok Google</translation>
 <translation id="435185728237714178">ចូល​ទៅកាន់​កម្មវិធី "<ph name="APP_NAME" />" ដើម្បី​គ្រប់គ្រង​កម្មវិធី​ដែលបានដំឡើង និង​បានផ្សាយ</translation>
+<translation id="4352913519324947509">ពាក្យ​សម្ងាត់​របស់អ្នក​មិនត្រូវបាន​ប្ដូរទេ ប៉ុន្តែ​អ្នកគួរតែ​អាចចូលប្រើ​គេហទំព័រនេះ​ដោយប្រើ​ពាក្យ​សម្ងាត់​បច្ចុប្បន្ន​របស់អ្នក​បានដដែល</translation>
 <translation id="4354073718307267720">សួរ​នៅពេលគេហទំព័រចង់បង្កើតផែនទី 3D នៃមជ្ឈដ្ឋានជុំវិញរបស់អ្នក ឬតាមដានទីតាំងកាមេរ៉ា</translation>
 <translation id="4354344420232759511">គេហទំព័រ​ដែលអ្នកចូលមើលនឹង​បង្ហាញ​នៅ​ទីនេះ</translation>
 <translation id="435527878592612277">ជ្រើសរើសរូបថតរបស់អ្នក</translation>
@@ -5993,7 +5995,6 @@
 <translation id="5186381005592669696">ប្ដូរភាសាបង្ហាញតាមបំណងសម្រាប់កម្មវិធីដែលអាចប្រើបាន</translation>
 <translation id="5186788525428341874">អ្នកអាច​ប្រើកូដ​សម្ងាត់នេះ ដើម្បី​ចូលគណនី​បានកាន់តែរហ័ស​នៅលើ​ឧបករណ៍​នានា​របស់អ្នក។ កូដសម្ងាត់នេះ​នឹងត្រូវបានរក្សាទុក​ទៅក្នុង​កម្មវិធី​គ្រប់គ្រង​ពាក្យសម្ងាត់​សម្រាប់ <ph name="ACCOUNT_NAME" />។</translation>
 <translation id="5187641678926990264">&amp;ដំឡើង​ទំព័រ​ជាកម្មវិធី...</translation>
-<translation id="5187671830619031922">បញ្ចូល​ផ្ទាំង​ទៅ​ទិដ្ឋភាព​បំបែក</translation>
 <translation id="5187826826541650604"><ph name="KEY_NAME" /> (<ph name="DEVICE" />)</translation>
 <translation id="5188242000716462162">បានចែករំលែក​ដោយ <ph name="USER_NAME" /></translation>
 <translation id="5188648870018555788">ប្រើទីតាំង។ អនុញ្ញាតឱ្យ​សេវាកម្ម គេហទំព័រ និងកម្មវិធី Android និង ChromeOS ដែលមាន​ការអនុញ្ញាត​ឱ្យប្រើ​ទីតាំង ប្រើប្រាស់ទីតាំង​របស់​ឧបករណ៍អ្នក។ ភាពត្រឹមត្រូវនៃទីតាំងផ្ដល់ទីតាំងដែលមានភាពត្រឹមត្រូវជាងមុនសម្រាប់សេវាកម្ម និងកម្មវិធី Android។ ដើម្បីធ្វើបែបនេះ Google ដំណើរការព័ត៌មានអំពីសេនស័រឧបករណ៍ និងរលកសញ្ញាឥតខ្សែពីឧបករណ៍របស់អ្នកម្ដងម្កាល ដើម្បីប្រមូលផ្ដុំទីតាំងរលកសញ្ញាឥតខ្សែពីច្រើនប្រភព។ ព័ត៌មានទាំងនេះត្រូវបានប្រើដោយមិនកំណត់អត្តសញ្ញាណអ្នក ដើម្បីកែលម្អភាពត្រឹមត្រូវនៃទីតាំង និងសេវាកម្មផ្អែកតាមទីតាំង ព្រមទាំងដើម្បីកែលម្អ ផ្ដល់ និងថែទាំសេវាកម្មរបស់ Google ផ្អែកលើផលប្រយោជន៍ស្រប​ច្បាប់របស់ Google និងភាគីទីបី ក្នុងការបំពេញតម្រូវការរបស់អ្នកប្រើប្រាស់។ <ph name="BEGIN_LINK1" />ស្វែងយល់បន្ថែមអំពី​ការប្រើប្រាស់ទីតាំង<ph name="END_LINK1" /></translation>
@@ -8323,6 +8324,7 @@
 <translation id="686831807558000905">កុំ​ចូល</translation>
 <translation id="686839242150793617">អនុញ្ញាត​ឱ្យចូល​មុខងារ​រូបក្នុងរូប​ដោយស្វ័យប្រវត្តិ</translation>
 <translation id="6868934826811377550">មើល​ព័ត៌មាន​លម្អិត</translation>
+<translation id="6870470066213933201">គ្រប់គ្រង​សុវត្ថិភាព និង​ការបង្កើន​ប្រសិទ្ធភាព JavaScript</translation>
 <translation id="6871644448911473373">ឧបករណ៍ឆ្លើយតប OCSP៖ <ph name="LOCATION" /></translation>
 <translation id="6871860225073478239">ភាសា...</translation>
 <translation id="6873571253135628430">ប្ដូរ​ការអនុញ្ញាត​គេហទំព័រ</translation>
@@ -11107,7 +11109,6 @@
 <translation id="8827125715368568315">បាន​ទប់ស្កាត់ <ph name="PERMISSION" /> និង <ph name="COUNT" /> ទៀត</translation>
 <translation id="8827289157496676362">ខ្ទាស់កម្មវិធីបន្ថែម​</translation>
 <translation id="8828933418460119530">ឈ្មោះ DNS</translation>
-<translation id="8829979393064090868">បញ្ចូល​ផ្ទាំង​ទៅ​ទិដ្ឋភាព​បំបែក</translation>
 <translation id="8830479210602243906">បង្កើន​ផលិតភាព</translation>
 <translation id="883062543841130884">ការ​ជំនួស</translation>
 <translation id="8830779999439981481">កំពុងចាប់ផ្ដើម​ឡើងវិញ ដើម្បីអនុវត្ត​កំណែថ្មី</translation>
diff --git a/chrome/app/resources/generated_resources_kn.xtb b/chrome/app/resources/generated_resources_kn.xtb
index b50e6633..4972b36c 100644
--- a/chrome/app/resources/generated_resources_kn.xtb
+++ b/chrome/app/resources/generated_resources_kn.xtb
@@ -3084,7 +3084,7 @@
 <translation id="3124332159330678621">ನಿಮ್ಮ ಬ್ರೌಸರ್‌ಗೆ ಹೊಸ ನೋಟವನ್ನು ನೀಡಲು Chrome ಅನ್ನು ಕಸ್ಟಮೈಸ್ ಮಾಡಿ</translation>
 <translation id="3125816458150005808">ನೀವು ಅದನ್ನು ಅನ್‌ಪಿನ್ ಮಾಡಬಹುದು ಮತ್ತು ಮೆನುವಿನಿಂದ ತೆರೆಯಬಹುದು</translation>
 <translation id="3126026824346185272">Ctrl</translation>
-<translation id="3127860049873093642">ಚಾರ್ಜಿಂಗ್ ಮತ್ತು ಕಾರ್ಯಕ್ಷಮತೆ ಸಮಸ್ಯೆಗಳನ್ನು ತಡೆಯಲು, ಹೊಂದಿಕೆಯಾಗುವ Dell ಅಥವಾ USB ಟೈಪ್-C ಪವರ್ ಅಡಾಪ್ಟರ್ ಬಳಸಿ.</translation>
+<translation id="3127860049873093642">ಚಾರ್ಜಿಂಗ್ ಮತ್ತು ಪರ್ಫಾರ್ಮೆನ್ಸ್ ಸಮಸ್ಯೆಗಳನ್ನು ತಡೆಯಲು, ಹೊಂದಿಕೆಯಾಗುವ Dell ಅಥವಾ USB ಟೈಪ್-C ಪವರ್ ಅಡಾಪ್ಟರ್ ಬಳಸಿ.</translation>
 <translation id="3127862849166875294">Linux ಡಿಸ್ಕ್ ಮರುಗಾತ್ರಗೊಳಿಸುವಿಕೆ</translation>
 <translation id="3129150892373332590">ಇದು ಅತಿಥಿಗಳೊಂದಿಗೆ USB ಸಾಧನಗಳ ನಿರಂತರ ಹಂಚಿಕೆಯನ್ನು ನಿಷ್ಕ್ರಿಯಗೊಳಿಸುತ್ತದೆ, ಇದು ಎಲ್ಲಾ ನಿರಂತರತೆಯನ್ನು ರೀಸೆಟ್ ಮಾಡುತ್ತದೆ. ನೀವು ಖಚಿತವಾಗಿರುವಿರಾ?</translation>
 <translation id="3129173833825111527">ಎಡ ಅಂಚು</translation>
@@ -5988,7 +5988,6 @@
 <translation id="5186381005592669696">ಬೆಂಬಲಿತ ಆ್ಯಪ್‌ಗಳಿಗಾಗಿ ಡಿಸ್‌ಪ್ಲೇ ಭಾಷೆಯನ್ನು ಕಸ್ಟಮೈಸ್ ಮಾಡಿ</translation>
 <translation id="5186788525428341874">ನಿಮ್ಮ ಸಾಧನಗಳಾದ್ಯಂತ ವೇಗವಾಗಿ ಸೈನ್ ಇನ್ ಮಾಡಲು ನೀವು ಈ ಪಾಸ್‌ಕೀಯನ್ನು ಬಳಸಬಹುದು. ಅದನ್ನು <ph name="ACCOUNT_NAME" /> ನ Google Password Manager ನಲ್ಲಿ ಸೇವ್ ಮಾಡಲಾಗುತ್ತದೆ.</translation>
 <translation id="5187641678926990264">ಪುಟವನ್ನು ಆ್ಯಪ್ ಆಗಿ ಇನ್‌ಸ್ಟಾಲ್ ಮಾಡಿ...</translation>
-<translation id="5187671830619031922">ವಿಭಜಿತ ವೀಕ್ಷಣೆಗಾಗಿ ಟ್ಯಾಬ್ ಅನ್ನು ಸೇರಿಸಿ</translation>
 <translation id="5187826826541650604"><ph name="KEY_NAME" /> (<ph name="DEVICE" />)</translation>
 <translation id="5188242000716462162"><ph name="USER_NAME" /> ರವರು ಹಂಚಿಕೊಂಡಿದ್ದಾರೆ</translation>
 <translation id="5188648870018555788">ಸ್ಥಳವನ್ನು ಬಳಸಿ. ಸ್ಥಳ ಅನುಮತಿಯನ್ನು ಹೊಂದಿರುವ ChromeOS ಮತ್ತು Android ಆ್ಯಪ್‌ಗಳು, ವೆಬ್‌ಸೈಟ್‌ಗಳು ಮತ್ತು ಸೇವೆಗಳಿಗೆ ನಿಮ್ಮ ಸಾಧನದ ಸ್ಥಳವನ್ನು ಬಳಸಲು ಅನುಮತಿಸಿ. ಸ್ಥಳದ ನಿಖರತೆಯು Android ಆ್ಯಪ್‌ಗಳು ಮತ್ತು ಸೇವೆಗಳಿಗೆ ಹೆಚ್ಚು ನಿಖರವಾದ ಸ್ಥಳವನ್ನು ಒದಗಿಸುತ್ತದೆ. ಇದನ್ನು ಮಾಡಲು, ನಿಮ್ಮ ಸಾಧನದಿಂದ ಕ್ರೌಡ್‌ಸೋರ್ಸ್ ವೈರ್‌ಲೆಸ್ ಸಿಗ್ನಲ್ ಸ್ಥಳಗಳಿಗೆ ಸಾಧನದ ಸೆನ್ಸರ್‌ಗಳು ಮತ್ತು ವೈರ್‌ಲೆಸ್ ಸಿಗ್ನಲ್‌ಗಳ ಕುರಿತು ಮಾಹಿತಿಯನ್ನು Google ನಿಯತಕಾಲಿಕವಾಗಿ ಪ್ರಾಸೆಸ್ ಮಾಡುತ್ತದೆ. ಸ್ಥಳದ ನಿಖರತೆ ಮತ್ತು ಸ್ಥಳ ಆಧಾರಿತ ಸೇವೆಗಳನ್ನು ಸುಧಾರಿಸಲು ಮತ್ತು ಬಳಕೆದಾರರ ಅಗತ್ಯಗಳನ್ನು ಪೂರೈಸಲು Google ನ ಮತ್ತು ಥರ್ಡ್ ಪಾರ್ಟಿಗಳ ಕಾನೂನುಬದ್ಧ ಆಸಕ್ತಿಗಳ ಆಧಾರದ ಮೇಲೆ Google ನ ಸೇವೆಗಳನ್ನು ಸುಧಾರಿಸಲು, ಒದಗಿಸಲು ಮತ್ತು ನಿರ್ವಹಿಸಲು ನಿಮ್ಮನ್ನು ಗುರುತಿಸದೆಯೇ ಇವುಗಳನ್ನು ಬಳಸಲಾಗುತ್ತದೆ. <ph name="BEGIN_LINK1" />ಸ್ಥಳವನ್ನು ಬಳಸುವ ಕುರಿತು ಇನ್ನಷ್ಟು ತಿಳಿಯಿರಿ<ph name="END_LINK1" /></translation>
@@ -11102,7 +11101,6 @@
 <translation id="8827125715368568315"><ph name="PERMISSION" /> ಮತ್ತು <ph name="COUNT" /> ಕ್ಕೂ ಹೆಚ್ಚಿನವುಗಳನ್ನು ನಿರ್ಬಂಧಿಸಲಾಗಿದೆ</translation>
 <translation id="8827289157496676362">ವಿಸ್ತರಣೆಯನ್ನು ಪಿನ್ ಮಾಡಿ</translation>
 <translation id="8828933418460119530">DNS ಹೆಸರು</translation>
-<translation id="8829979393064090868">ವಿಭಜಿತ ವೀಕ್ಷಣೆಗಾಗಿ ಟ್ಯಾಬ್ ಅನ್ನು ಸೇರಿಸಿ</translation>
 <translation id="8830479210602243906">ಉತ್ಪಾದಕತೆಯನ್ನು ಬೂಸ್ಟ್ ಮಾಡಿ</translation>
 <translation id="883062543841130884">ಬದಲಿಗಳು</translation>
 <translation id="8830779999439981481">ಅಪ್‌ಡೇಟ್‌ಗಳನ್ನು ಅನ್ವಯಿಸಲು ಮರುಪ್ರಾರಂಭಿಸಲಾಗುತ್ತಿದೆ</translation>
diff --git a/chrome/app/resources/generated_resources_ko.xtb b/chrome/app/resources/generated_resources_ko.xtb
index abddcc4..78a2c27a 100644
--- a/chrome/app/resources/generated_resources_ko.xtb
+++ b/chrome/app/resources/generated_resources_ko.xtb
@@ -5997,7 +5997,6 @@
 <translation id="5186381005592669696">지원되는 앱의 표시 언어 맞춤설정</translation>
 <translation id="5186788525428341874">이 패스키를 사용하여 모든 기기에서 더 빠르게 로그인할 수 있습니다. 비밀번호가 <ph name="ACCOUNT_NAME" />의 Google 비밀번호 관리자에 저장됩니다.</translation>
 <translation id="5187641678926990264">&amp;페이지를 앱으로 설치(&amp;I)...</translation>
-<translation id="5187671830619031922">분할 보기에 탭 추가</translation>
 <translation id="5187826826541650604"><ph name="KEY_NAME" />(<ph name="DEVICE" />)</translation>
 <translation id="5188242000716462162"><ph name="USER_NAME" />님이 공유함</translation>
 <translation id="5188648870018555788">위치를 사용합니다. 위치 정보 액세스 권한이 있는 ChromeOS 및 Android의 앱, 웹사이트, 서비스에서 기기의 위치를 사용하도록 허용합니다. 위치 정확도는 Android 앱 및 서비스에 대해 더 정확한 위치 정보를 제공합니다. 이를 위해 Google은 기기 센서 및 기기의 무선 신호에 대한 정보를 주기적으로 처리하여 무선 신호 위치 정보를 크라우드소싱합니다. 이러한 정보는 사용자의 신원을 밝히지 않고 사용되며, 위치 정확도와 위치 기반 서비스를 개선하고, 사용자의 요구사항 충족을 목적으로 Google 및 서드 파티의 적법한 이익에 따라 Google 서비스를 개선, 제공, 유지하는 데 사용됩니다. <ph name="BEGIN_LINK1" />위치 사용 자세히 알아보기<ph name="END_LINK1" /></translation>
@@ -9022,6 +9021,7 @@
 <translation id="7387951778417998929">기본 검색엔진이 아닌 다른 검색엔진을 사용하려면 주소 표시줄에 사용할 검색엔진의 바로가기를 입력한 다음 원하는 단축키를 누르세요. 여기에서 기본 검색엔진을 변경할 수도 있습니다.</translation>
 <translation id="7388615499319468910">사이트 및 광고주가 광고 실적을 파악할 수 있습니다. 설정이 사용 중지되어 있습니다.</translation>
 <translation id="738903649531469042">읽기 목록에 탭 추가</translation>
+<translation id="7389615853658756494">사이트에서 변경</translation>
 <translation id="7392118418926456391">바이러스 검사 실패</translation>
 <translation id="7392915005464253525">닫은 탭 다시 열기(&amp;E)</translation>
 <translation id="7393073300870882456">{COUNT,plural, =1{항목 1개 복사됨}other{항목 {COUNT}개 복사됨}}</translation>
@@ -9150,6 +9150,7 @@
 <translation id="7474043404939621342">툴바 맞춤설정</translation>
 <translation id="747459581954555080">모두 복원</translation>
 <translation id="747507174130726364">{NUM_DAYS,plural, =1{즉시 반납 필요}other{{NUM_DAYS}일 이내에 <ph name="DEVICE_TYPE" /> 기기를 반납하세요}}</translation>
+<translation id="747557463733380256">브라우저 관리 방법 알아보기</translation>
 <translation id="7475671414023905704">Netscape Lost Password URL</translation>
 <translation id="7475742997309661417">ChromeOS의 스크린 리더인 ChromeVox는 주로 시각장애인과 저시력자가 음성 합성기나 점자 디스플레이를 통해 화면에 표시된 텍스트를 읽는 데 사용됩니다. ChromeVox를 사용 설정하려면 볼륨 키 2개를 5초 동안 길게 누르세요. ChromeVox가 활성화되면 빠르게 둘러볼 수 있습니다.</translation>
 <translation id="7476454130948140105">배터린 잔량이 부족하여(<ph name="BATTERY_PERCENT" />%) 업데이트할 수 없음</translation>
@@ -10300,6 +10301,7 @@
 <translation id="8265018477030547118">이 기기에서만</translation>
 <translation id="826511437356419340">창 개요 모드를 시작했습니다. 이동하려면 스와이프하거나 키보드를 사용하는 경우에는 Tab 키를 누르세요.</translation>
 <translation id="8265671588726449108">{COUNT,plural, =1{다시 실행한 후 시크릿 창이 열리지 않습니다.}other{다시 실행한 후 시크릿 창 {COUNT}개가 다시 열리지 않습니다.}}</translation>
+<translation id="8266430295499893285">비밀번호에 액세스하려면 본인 인증을 거쳐야 합니다.</translation>
 <translation id="8266947622852630193">모든 입력 방법</translation>
 <translation id="8267539814046467575">프린터 추가</translation>
 <translation id="8267961145111171918"><ph name="BEGIN_PARAGRAPH1" />기기 및 기기 사용 방식(예: 배터리 잔량, 시스템 및 앱 활동, 오류)에 관한 일반 정보입니다. 이 데이터는 Android를 개선하는 데 사용되며, 집계된 일부 정보는 Android 개발자 등의 Google 앱 및 파트너가 앱과 제품을 개선하는 데도 사용됩니다.<ph name="END_PARAGRAPH1" />
@@ -11109,7 +11111,6 @@
 <translation id="8827125715368568315"><ph name="PERMISSION" /> 외 <ph name="COUNT" />개 차단함</translation>
 <translation id="8827289157496676362">확장 프로그램 고정</translation>
 <translation id="8828933418460119530">DNS 이름</translation>
-<translation id="8829979393064090868">분할 보기에 탭 추가</translation>
 <translation id="8830479210602243906">생산성 높이기</translation>
 <translation id="883062543841130884">대체 항목</translation>
 <translation id="8830779999439981481">업데이트 적용을 위해 다시 시작하는 중</translation>
diff --git a/chrome/app/resources/generated_resources_ky.xtb b/chrome/app/resources/generated_resources_ky.xtb
index 9179c07..d8c7b8f 100644
--- a/chrome/app/resources/generated_resources_ky.xtb
+++ b/chrome/app/resources/generated_resources_ky.xtb
@@ -5996,7 +5996,6 @@
 <translation id="5186381005592669696">Колдоого алынган колдонмолор үчүн экрандын тилин ыңгайлаштырыңыз</translation>
 <translation id="5186788525428341874">Бул киргизүүчү ачкычты тезирээк кирүү үчүн бардык түзмөктөрүңүздө колдонсоңуз болот. Ал <ph name="ACCOUNT_NAME" /> аккаунту үчүн Google'дун Сырсөздөрдү башкаргычына сакталат.</translation>
 <translation id="5187641678926990264">&amp;Бетти колдонмо катары орнотуу...</translation>
-<translation id="5187671830619031922">Бөлүп көрүү режимине өтүү үчүн өтмөк кошуңуз</translation>
 <translation id="5187826826541650604"><ph name="KEY_NAME" /> (<ph name="DEVICE" />)</translation>
 <translation id="5188242000716462162"><ph name="USER_NAME" /> бөлүштү</translation>
 <translation id="5188648870018555788">Жайгашкан жер маалыматын колдонуу. Жайгашкан жер маалыматын колдоно алган ChromeOS жана Android колдонмолоруна, вебсайттарга жана кызматтарга бул түзмөктүн жайгашкан жерин колдонууга уруксат бериңиз. Жайгашкан жерди так аныктоо Android колдонмолоруна жана кызматтарына жайгашкан жерди тагыраак аныктоого жардам берет. Ал үчүн Google зымсыз сигналдардын жайгашкан жерлерин аныктоо үчүн, түзмөгүңүздөн алынган сенсорлор жана зымсыз сигналдар тууралуу маалыматты маал-маалы менен иштетет. Аларды өздүгүңүздү аныктабастан, Google'дун жана үчүнчү жактардын колдонуучулардын муктаждыктарын канааттандырууга багытталган негиздүү кызыкчылыктарынын негизинде жайгашкан жерди так аныктоону жана колдонуучунун жүргөн жерине негизделген кызматтарды жакшыртуу, ошондой эле Google'дун кызматтарын өркүндөтүү, камсыз кылуу жана тейлөө үчүн пайдаланабыз. <ph name="BEGIN_LINK1" />Жайгашкан жерди колдонуу тууралуу кеңири маалымат<ph name="END_LINK1" /></translation>
@@ -9020,6 +9019,7 @@
 <translation id="7387951778417998929">Демейкиден башка издөө куралын колдонуу үчүн дарек тилкесине анын ыкчам баскычын, андан соң артыкчылыктуу ыкчам баскычты териңиз. Мындан тышкары, бул жерден демейки издөө куралын өзгөртө аласыз.</translation>
 <translation id="7388615499319468910">Сайттар менен жарнамачылар жарнамалардын майнаптуулугун талдай алышат. Бул параметр өчүк.</translation>
 <translation id="738903649531469042">Өтмөктү окуу тизмесине кошуу</translation>
+<translation id="7389615853658756494">Муну сайтта өзгөртүңүз</translation>
 <translation id="7392118418926456391">Вирустар иликтенбей калды</translation>
 <translation id="7392915005464253525">Жабылган терезени кай&amp;ра ачуу</translation>
 <translation id="7393073300870882456">{COUNT,plural, =1{1 нерсе көчүрүлдү}other{{COUNT} нерсе көчүрүлдү}}</translation>
@@ -9149,6 +9149,7 @@
 <translation id="7474043404939621342">Куралдар тилкеңизди ыңгайлаштырыңыз</translation>
 <translation id="747459581954555080">Баарын калыбына келтирүү</translation>
 <translation id="747507174130726364">{NUM_DAYS,plural, =1{Дароо кайтаруу талап кылынат}other{<ph name="DEVICE_TYPE" /> түзмөгүн {NUM_DAYS} күндүн ичинде кайтарыңыз}}</translation>
+<translation id="747557463733380256">Серепчиңиздин тескелиши жөнүндө маалымат алыңыз</translation>
 <translation id="7475671414023905704">Netscape жоголгон сырсөз URL дареги</translation>
 <translation id="7475742997309661417">ChromeVox'ту (ChromeOS'тогу экрандагыны окугуч) экрандагы текстти кеп синтезатору же брайль дисплейи менен окуу үчүн негизинен азиз жана көзү начар көргөн адамдар колдонот. ChromeVox'ту күйгүзүү үчүн эки үн баскычын беш секунд коё бербей басып туруңуз. ChromeVox иштетилгенде, бул функция тууралуу кыскача маалымат аласыз.</translation>
 <translation id="7476454130948140105">Жаңыртуу үчүн батареянын кубаты жетишсиз (<ph name="BATTERY_PERCENT" />%)</translation>
@@ -10297,6 +10298,7 @@
 <translation id="8265018477030547118">Ушул түзмөктө гана</translation>
 <translation id="826511437356419340">Терезе үстүнөн көрүү режимине кирди. Чабыттоо үчүн экранды сүрүңүз же баскычтопту колдонуп жатсаңыз, "Tab" баскычын басыңыз.</translation>
 <translation id="8265671588726449108">{COUNT,plural, =1{Кайра иштеткенден кийин Жашыруун терезе ачылбайт}other{Кайра иштеткенден кийин {COUNT} Жашыруун терезе ачылбайт}}</translation>
+<translation id="8266430295499893285">Сырсөздөрдү колдонуу үчүн бул сиз экениңизди ырасташыңыз керек</translation>
 <translation id="8266947622852630193">Бардык киргизүү ыкмалары</translation>
 <translation id="8267539814046467575">Принтер кошуу</translation>
 <translation id="8267961145111171918"><ph name="BEGIN_PARAGRAPH1" />Түзмөгүңүздүн иштеши, тактап айтканда, батареянын кубаты, колдонмолордун пайдаланылышы жана Интернет байланышынын сапаты тууралуу маалымат алып турабыз. Маалыматтар Google'дун кызматтарын жакшыртуу үчүн колдонулат. Топтолгон маалыматтын айрымдарын Android иштеп чыгуучулары өз кызматтарын өркүндөтүү үчүн колдонушу мүмкүн.<ph name="END_PARAGRAPH1" />
@@ -11106,7 +11108,6 @@
 <translation id="8827125715368568315">Төмөнкүлөр бөгөттөлдү: <ph name="PERMISSION" /> жана дагы <ph name="COUNT" /></translation>
 <translation id="8827289157496676362">Кеңейтүүнү кадап коюу</translation>
 <translation id="8828933418460119530">DNS аталышы</translation>
-<translation id="8829979393064090868">Бөлүп көрүү режимине өтүү үчүн өтмөк кошуңуз</translation>
 <translation id="8830479210602243906">Өндүрүмдүүлүктү жогорулатуу</translation>
 <translation id="883062543841130884">Алмаштыруу варианттары</translation>
 <translation id="8830779999439981481">Жаңыртууларды колдонуу үчүн өчүрүлүп күйгүзүлүүдө</translation>
diff --git a/chrome/app/resources/generated_resources_lo.xtb b/chrome/app/resources/generated_resources_lo.xtb
index 0537ef1..b22ada9c 100644
--- a/chrome/app/resources/generated_resources_lo.xtb
+++ b/chrome/app/resources/generated_resources_lo.xtb
@@ -5995,7 +5995,6 @@
 <translation id="5186381005592669696">ປັບແຕ່ງພາສາສະແດງຜົນສຳລັບແອັບທີ່ຮອງຮັບ</translation>
 <translation id="5186788525428341874">ທ່ານສາມາດໃຊ້ກະແຈຜ່ານນີ້ເພື່ອເຂົ້າສູ່ລະບົບໃນອຸປະກອນຕ່າງໆຂອງທ່ານໄດ້ໄວຂຶ້ນ. ລະບົບຈະບັນທຶກໄວ້ໃນຕົວຈັດການລະຫັດຜ່ານ Google ສຳລັບ <ph name="ACCOUNT_NAME" />.</translation>
 <translation id="5187641678926990264">&amp;ຕິດຕັ້ງໜ້າເປັນແອັບ...</translation>
-<translation id="5187671830619031922">ເພີ່ມແຖບເພື່ອແຍກມຸມມອງ</translation>
 <translation id="5187826826541650604"><ph name="KEY_NAME" /> (<ph name="DEVICE" />)</translation>
 <translation id="5188242000716462162">ແບ່ງປັນໂດຍ <ph name="USER_NAME" /></translation>
 <translation id="5188648870018555788">ໃຊ້ສະຖານທີ່. ອະນຸຍາດໃຫ້ແອັບ, ເວັບໄຊ ແລະ ບໍລິການຂອງ ChromeOS ຮວມທັງ Android ທີ່ໄດ້ຮັບການອະນຸຍາດສະຖານທີ່ໃຊ້ສະຖານທີ່ຂອງອຸປະກອນຂອງທ່ານ. ຄວາມຖືກຕ້ອງຂອງສະຖານທີ່ລະບຸສະຖານທີ່ທີ່ຖືກຕ້ອງຍິ່ງຂຶ້ນສຳລັບແອັບ ແລະ ບໍລິການຕ່າງໆຂອງ Android. ເພື່ອດຳເນີນການນີ້, Google ຈະປະມວນຜົນຂໍ້ມູນກ່ຽວກັບເຊັນເຊີໃນອຸປະກອນ ແລະ ສັນຍານໄຮ້ສາຍຈາກອຸປະກອນຂອງທ່ານເປັນໄລຍະເພື່ອຊອກຫາສະຖານທີ່ຂອງສັນຍານໄຮ້ສາຍຈາກມວນຊົນ. ພວກເຮົາໃຊ້ສະຖານທີ່ເຫຼົ່ານີ້ໂດຍບໍ່ລະບຸຕົວຕົນຂອງທ່ານເພື່ອປັບປຸງຄວາມຖືກຕ້ອງຂອງສະຖານທີ່ ແລະ ບໍລິການທີ່ອ້າງອີງສະຖານທີ່ ຮວມທັງເພື່ອປັບປຸງ, ຈັດຫາ ແລະ ເບິ່ງແຍງຮັກສາບໍລິການຂອງ Google ໂດຍອີງຕາມຜົນປະໂຫຍດທີ່ຖືກຕ້ອງຕາມກົດໝາຍຂອງ Google ແລະ ຂອງພາກສ່ວນທີສາມໃນການຕອບສະໜອງຄວາມຕ້ອງການຂອງຜູ້ໃຊ້. <ph name="BEGIN_LINK1" />ສຶກສາເພີ່ມເຕີມກ່ຽວກັບການໃຊ້ສະຖານທີ່<ph name="END_LINK1" /></translation>
@@ -9018,6 +9017,7 @@
 <translation id="7387951778417998929">ເພື່ອໃຊ້ໂປຣແກຣມຊອກຫາໃດໜຶ່ງນອກເໜືອໄປຈາກຄ່າເລີ່ມຕົ້ນ, ໃຫ້ພິມທາງລັດຂອງມັນໃສ່ໃນ​ແຖບທີ່​ຢູ່ຕາມດ້ວຍຄີລັດທີ່ທ່ານຕ້ອງການ. ທ່ານສາມາດປ່ຽນໂປຣແກຣມຊອກຫາເລີ່ມຕົ້ນຂອງທ່ານຢູ່ບ່ອນນີ້ໄດ້ນຳ.</translation>
 <translation id="7388615499319468910">ເວັບໄຊ ແລະ ຜູ້ລົງໂຄສະນາສາມາດຮູ້ໄດ້ວ່າໂຄສະນາມີປະສິດທິພາບແນວໃດ. ການຕັ້ງຄ່ານີ້ປິດຢູ່.</translation>
 <translation id="738903649531469042">ເພີ່ມແຖບໃສ່ລາຍຊື່ການອ່ານ</translation>
+<translation id="7389615853658756494">ປ່ຽນຢູ່ເວັບໄຊ</translation>
 <translation id="7392118418926456391">ສະແກນໄວຣັສບໍ່ສໍາເລັດ</translation>
 <translation id="7392915005464253525">ເປີດໜ້າ​ຕ່າງທີ່ປິດແລ້ວຄືນໃໝ່</translation>
 <translation id="7393073300870882456">{COUNT,plural, =1{ສຳເນົາ 1 ລາການແລ້ວ}other{ສຳເນົາ {COUNT} ລາຍການແລ້ວ}}</translation>
@@ -9146,6 +9146,7 @@
 <translation id="7474043404939621342">ປັບແຕ່ງແຖບເຄື່ອງມືຂອງທ່ານ</translation>
 <translation id="747459581954555080">ກູ້ຄືນທັງໝົດ</translation>
 <translation id="747507174130726364">{NUM_DAYS,plural, =1{ຈຳເປັນຕ້ອງສົ່ງຄືນໃນທັນທີ}other{ສົ່ງ <ph name="DEVICE_TYPE" /> ຄືນພາຍໃນ {NUM_DAYS} ມື້}}</translation>
+<translation id="747557463733380256">ສຶກສາກ່ຽວກັບວິທີທີ່ລະບົບຈັດການໂປຣແກຣມທ່ອງເວັບຂອງທ່ານ</translation>
 <translation id="7475671414023905704">URL ລະຫັດຜ່ານເສຍຂອງ Netscape</translation>
 <translation id="7475742997309661417">ໂປຣແກຣມອ່ານໜ້າຈໍຢູ່ ChromeOS, ChromeVox, ແມ່ນໃຊ້ໂດຍຜູ້ພິການທາງສາຍຕາ ຫຼື ມີບັນຫາໃນການເບິ່ງເຫັນເປັນຫຼັກເພື່ອອ່ານຂໍ້ຄວາມທີ່ສະແດງຢູ່ໜ້າຈໍດ້ວຍຕົວສັງເຄາະສຽງເວົ້າ ຫຼື ຈໍສະແດງຜົນຕົວອັກສອນນູນ. ກົດປຸ່ມລະດັບສຽງທັງສອງປຸ່ມຄ້າງໄວ້ຫ້າວິນາທີເພື່ອເປີດ ChromeVox. ເມື່ອເປີດການນຳໃຊ້ ChromeVox, ລະບົບຈະແນະນຳການນຳໃຊ້ແບບສັ້ນໆໃຫ້ກັບທ່ານ.</translation>
 <translation id="7476454130948140105">ແບັດເຕີຣີຕໍ່າເກີນໄປສຳລັບການອັບເດດ (<ph name="BATTERY_PERCENT" />%)</translation>
@@ -10293,6 +10294,7 @@
 <translation id="8265018477030547118">ສະເພາະໃນອຸປະກອນນີ້</translation>
 <translation id="826511437356419340">ເຂົ້າສູ່ໂໝດພາບຮວມໜ້າຈໍແລ້ວ. ປັດເພື່ອໄປຍັງສ່ວນຕ່າງໆ ຫຼື ກົດ Tab ຖ້າກຳລັງໃຊ້ແປ້ນພິມຢູ່.</translation>
 <translation id="8265671588726449108">{COUNT,plural, =1{ລະບົບຈະບໍ່ເປີດໜ້າຈໍທີ່ບໍ່ເປີດເຜີຍຕົວຕົນຂອງທ່ານຫຼັງຈາກທີ່ທ່ານເລີ່ມເປີດໃຊ້ໃໝ່}other{ລະບົບຈະບໍ່ເປີດໜ້າຈໍທີ່ບໍ່ເປີດເຜີຍຕົວຕົນ {COUNT} ລາຍການຂອງທ່ານຫຼັງຈາກທີ່ທ່ານເລີ່ມເປີດໃຊ້ໃໝ່}}</translation>
+<translation id="8266430295499893285">ທ່ານຕ້ອງຢັ້ງຢືນວ່າແມ່ນທ່ານກ່ອນຈຶ່ງຈະສາມາດເຂົ້າເຖິງລະຫັດຜ່ານຂອງທ່ານໄດ້</translation>
 <translation id="8266947622852630193">ວິທີການປ້ອນຂໍ້ມູນທັງໝົດ</translation>
 <translation id="8267539814046467575">ເພີ່ມເຄື່ອງພິມ</translation>
 <translation id="8267961145111171918"><ph name="BEGIN_PARAGRAPH1" />ນີ້ແມ່ນຂໍ້ມູນທົ່ວໄປກ່ຽວກັບອຸປະກອນນີ້ ແລະ ມັນຖືກໃຊ້ມັນແນວໃດ (ເຊັ່ນ: ລະດັບແບັດເຕີຣີ, ການເຄື່ອນໄຫວໃນລະບົບ ແລະ ແອັບ ແລະ ຂໍ້ຜິດພາດຕ່າງໆ). ຂໍ້ມູນຈະຖືກໃຊ້ເພື່ອປັບປຸງ Android ແລະ ບາງຂໍ້ມູນແບບຮວມກັນຈະຊ່ວຍແອັບ ແລະ ບັນດາຮຸ້ນສ່ວນຂອງ Google ເຊັ່ນ ຜູ້ພັດທະນາ Android ເຮັດໃຫ້ແອັບ ແລະ ຜະລິດຕະພັນຂອງເຂົາເຈົ້າດີຂຶ້ນ.<ph name="END_PARAGRAPH1" />
@@ -11102,7 +11104,6 @@
 <translation id="8827125715368568315">ບລັອກ <ph name="PERMISSION" /> ແລະ ອີກ <ph name="COUNT" /> ລາຍການແລ້ວ</translation>
 <translation id="8827289157496676362">ປັກໝຸດສ່ວນຂະຫຍາຍ</translation>
 <translation id="8828933418460119530">ຊື່ DNS</translation>
-<translation id="8829979393064090868">ເພີ່ມແຖບເພື່ອແຍກມຸມມອງ</translation>
 <translation id="8830479210602243906">ເພີ່ມຜະລິດຕະພາບ</translation>
 <translation id="883062543841130884">ການແທນທີ່</translation>
 <translation id="8830779999439981481">ກຳລັງຣິສະຕາດເພື່ອນຳໃຊ້ການອັບເດດ</translation>
diff --git a/chrome/app/resources/generated_resources_lt.xtb b/chrome/app/resources/generated_resources_lt.xtb
index 71391cb7..f4d4baf 100644
--- a/chrome/app/resources/generated_resources_lt.xtb
+++ b/chrome/app/resources/generated_resources_lt.xtb
@@ -5999,7 +5999,6 @@
 <translation id="5186381005592669696">Tinkinkite palaikomų programų pateikties kalbą</translation>
 <translation id="5186788525428341874">Galite naudoti šį prieigos raktą, kad sparčiau prisijungtumėte skirtinguose įrenginiuose. Jis bus išsaugotas „Google“ slaptažodžių tvarkyklėje kaip priskirtas el. pašto adresui <ph name="ACCOUNT_NAME" />.</translation>
 <translation id="5187641678926990264">&amp;Įdiegti puslapį kaip programą...</translation>
-<translation id="5187671830619031922">Pridėti skirtuką prie išskaidyto rodinio</translation>
 <translation id="5187826826541650604"><ph name="KEY_NAME" /> (<ph name="DEVICE" />)</translation>
 <translation id="5188242000716462162">Bendrina <ph name="USER_NAME" /></translation>
 <translation id="5188648870018555788">Naudoti vietovės informaciją. Leiskite „ChromeOS“ ir „Android“ programoms, svetainėms bei paslaugoms, turinčioms leidimą pasiekti vietovės duomenis, naudoti jūsų įrenginio vietovės informaciją. Vietovės nustatymo tikslumo funkcija „Android“ programoms ir paslaugoms teikia tikslesnę vietovės informaciją. Kad galėtų tai daryti, „Google“ periodiškai apdoroja informaciją apie įrenginio jutiklius ir belaidžius signalus iš jūsų įrenginio, kad galėtų kaupti belaidžio signalo vietovių informaciją. Šie duomenys naudojami neidentifikuojant jūsų, kad būtų galima gerinti vietovės nustatymo tikslumą ir paslaugas pagal vietovę bei tobulinti, teikti ir prižiūrėti „Google“ paslaugas, pagrįstas „Google“ ir trečiųjų šalių teisėtu interesu tenkinti naudotojų poreikius. <ph name="BEGIN_LINK1" />Sužinokite daugiau apie vietovės informacijos naudojimą<ph name="END_LINK1" /></translation>
@@ -9031,6 +9030,7 @@
 <translation id="7387951778417998929">Jei norite naudoti kitą nei numatytąjį paieškos variklį, įveskite jo šaukinį adreso juostoje ir paspauskite norimą spartųjį klavišą. Taip pat čia galite pakeisti numatytąjį paieškos variklį.</translation>
 <translation id="7388615499319468910">Svetainės ir reklamuotojai gali geriau suprasti skelbimų našumą. Šis nustatymas išjungtas.</translation>
 <translation id="738903649531469042">Pridėti skirtuką prie skaitymo sąrašo</translation>
+<translation id="7389615853658756494">Pakeisti tai svetainėje</translation>
 <translation id="7392118418926456391">Nepavyko žvalgyti, ar yra virusų</translation>
 <translation id="7392915005464253525">I&amp;š naujo atidaryti uždarytą langą</translation>
 <translation id="7393073300870882456">{COUNT,plural, =1{Nukopijuotas 1 elementas}one{Nukopijuotas {COUNT} elementas}few{Nukopijuoti {COUNT} elementai}many{Nukopijuota {COUNT} elemento}other{Nukopijuota {COUNT} elementų}}</translation>
@@ -9160,6 +9160,7 @@
 <translation id="7474043404939621342">Tinkinti įrankių juostą</translation>
 <translation id="747459581954555080">Atkurti viską</translation>
 <translation id="747507174130726364">{NUM_DAYS,plural, =1{Būtina grąžinti nedelsiant}one{Grąžinkite „<ph name="DEVICE_TYPE" />“ įrenginį per {NUM_DAYS} dieną}few{Grąžinkite „<ph name="DEVICE_TYPE" />“ įrenginį per {NUM_DAYS} dienas}many{Grąžinkite „<ph name="DEVICE_TYPE" />“ įrenginį per {NUM_DAYS} dienos}other{Grąžinkite „<ph name="DEVICE_TYPE" />“ įrenginį per {NUM_DAYS} dienų}}</translation>
+<translation id="747557463733380256">Sužinokite apie tai, kaip tvarkoma naršyklė</translation>
 <translation id="7475671414023905704">„Netscape“ prarasto slaptažodžio URL</translation>
 <translation id="7475742997309661417">Ekrano skaitytuvą sistemoje „ChromeOS“ („ChromeVox“) daugiausia naudoja aklieji ir sutrikusio regėjimo asmenys, kad galėtų skaityti ekrane rodomą tekstą naudodami kalbos sintezatorių arba Brailio rašmenų ekraną. Jei norite įjungti „ChromeVox“, paspauskite ir penkias sekundes palaikykite abu garsumo klavišus. Kai „ChromeVox“ bus suaktyvintas, bus pateikta trumpa apžvalga.</translation>
 <translation id="7476454130948140105">Akumuliatorius per daug išsikrovęs, kad būtų galima atnaujinti (<ph name="BATTERY_PERCENT" /> proc.)</translation>
@@ -10309,6 +10310,7 @@
 <translation id="8265018477030547118">Tik šiame įrenginyje</translation>
 <translation id="826511437356419340">Įjungtas langų apžvalgos režimas. Norėdami naršyti perbraukite arba paspauskite tabuliavimo klavišą, jei naudojate klaviatūrą.</translation>
 <translation id="8265671588726449108">{COUNT,plural, =1{Paleidus iš naujo inkognito langas nebus rodomas}one{Paleidus iš naujo {COUNT} inkognito langas nebus rodomas}few{Paleidus iš naujo {COUNT} inkognito langai nebus rodomi}many{Paleidus iš naujo {COUNT} inkognito lango nebus rodoma}other{Paleidus iš naujo {COUNT} inkognito langų nebus rodoma}}</translation>
+<translation id="8266430295499893285">Kad galėtumėte pasiekti slaptažodžius, turite patvirtinti savo tapatybę</translation>
 <translation id="8266947622852630193">Visi įvesties metodai</translation>
 <translation id="8267539814046467575">Pridėti spausdintuvą</translation>
 <translation id="8267961145111171918"><ph name="BEGIN_PARAGRAPH1" />Tai yra bendroji informacija apie šį įrenginį ir jo naudojimą (pvz., akumuliatoriaus įkrovos lygis, sistemos ir programų veikla ir klaidos). Duomenys bus naudojami „Android“ sistemai tobulinti. Be to, tam tikra sukaupta informacija bus naudinga „Google“ programoms ir partneriams, pvz., „Android“ kūrėjams, tobulinant programas ir produktus.<ph name="END_PARAGRAPH1" />
@@ -11121,7 +11123,6 @@
 <translation id="8827125715368568315">Užblokuota: <ph name="PERMISSION" /> ir dar <ph name="COUNT" /></translation>
 <translation id="8827289157496676362">Prisegti plėtinį</translation>
 <translation id="8828933418460119530">DNS pavadinimas</translation>
-<translation id="8829979393064090868">Pridėti skirtuką prie išskaidyto rodinio</translation>
 <translation id="8830479210602243906">Padidinti produktyvumą</translation>
 <translation id="883062543841130884">Pakaitalai</translation>
 <translation id="8830779999439981481">Paleidžiama iš naujo, kad būtų pritaikyti naujiniai</translation>
diff --git a/chrome/app/resources/generated_resources_lv.xtb b/chrome/app/resources/generated_resources_lv.xtb
index 1bbf639..2186d48 100644
--- a/chrome/app/resources/generated_resources_lv.xtb
+++ b/chrome/app/resources/generated_resources_lv.xtb
@@ -5983,7 +5983,6 @@
 <translation id="5186381005592669696">Attēlojuma valodas pielāgošana atbalstītajām lietotnēm</translation>
 <translation id="5186788525428341874">Varat izmantot šo piekļuves atslēgu, lai ātrāk pierakstītos visās savās ierīcēs. Tā tiks saglabāta konta <ph name="ACCOUNT_NAME" /> Google paroļu pārvaldniekā.</translation>
 <translation id="5187641678926990264">&amp;Instalēt lapu kā lietotni…</translation>
-<translation id="5187671830619031922">Pievienot cilni dalītajam skatam</translation>
 <translation id="5187826826541650604"><ph name="KEY_NAME" /> (<ph name="DEVICE" />)</translation>
 <translation id="5188242000716462162">Kopīgoja <ph name="USER_NAME" /></translation>
 <translation id="5188648870018555788">Atrašanās vietas datu izmantošana. Ļauj ChromeOS un Android lietotnēm, vietnēm un pakalpojumiem ar atrašanās vietas atļauju izmantot jūsu ierīces atrašanās vietas datus. Iestatījums “Atrašanās vietas precizitāte” Android lietotnēm un pakalpojumiem nodrošina precīzāku atrašanās vietu informāciju. Šim nolūkam Google periodiski apstrādā informāciju par ierīces sensoriem un no jūsu ierīces saņemtos bezvadu signālus, lai ar kolektīvo pakalpojumu palīdzību noteiktu bezvadu signālu atrašanās vietas. Neidentificējot jūs, šie dati tiek izmantoti, lai uzlabotu atrašanās vietu precizitāti un ar atrašanās vietu saistītus pakalpojumus, kā arī uzlabotu, nodrošinātu un uzturētu Google pakalpojumus saskaņā ar Google un trešo pušu likumīgām interesēm sniegt lietotāja vajadzībām atbilstošus pakalpojumus. <ph name="BEGIN_LINK1" />Uzziniet vairāk par atrašanās vietas izmantošanu.<ph name="END_LINK1" /></translation>
@@ -9008,6 +9007,7 @@
 <translation id="7387951778417998929">Lai izmantotu meklētājprogrammu, kas nav noklusējuma meklētājprogramma, ievadiet tās saīsni adreses joslā un nospiediet izvēlēto īsinājumtaustiņu Šeit varat arī nomainīt noklusējuma meklētājprogrammu.</translation>
 <translation id="7388615499319468910">Vietnes un reklāmdevēji var izprast reklāmu veiktspēju. Šis iestatījums ir izslēgts.</translation>
 <translation id="738903649531469042">Pievienot cilni lasīšanas sarakstam</translation>
+<translation id="7389615853658756494">Mainīt to vietnē</translation>
 <translation id="7392118418926456391">Vīrusu skenēšana neizdevās.</translation>
 <translation id="7392915005464253525">A&amp;tkārtoti atvērt aizvērto logu</translation>
 <translation id="7393073300870882456">{COUNT,plural, =1{Nokopēts viens vienums}zero{Nokopēti {COUNT} vienumi}one{Nokopēts {COUNT} vienums}other{Nokopēti {COUNT} vienumi}}</translation>
@@ -9137,6 +9137,7 @@
 <translation id="7474043404939621342">Pielāgot rīkjoslu</translation>
 <translation id="747459581954555080">Atjaunot visu</translation>
 <translation id="747507174130726364">{NUM_DAYS,plural, =1{Jāatdod nekavējoties}zero{<ph name="DEVICE_TYPE" /> ierīce ir jāatdod {NUM_DAYS} dienu laikā}one{<ph name="DEVICE_TYPE" /> ierīce ir jāatdod {NUM_DAYS} dienas laikā}other{<ph name="DEVICE_TYPE" /> ierīce ir jāatdod {NUM_DAYS} dienu laikā}}</translation>
+<translation id="747557463733380256">Uzzināt par pārlūka pārvaldību</translation>
 <translation id="7475671414023905704">Netscape pazaudētās paroles URL</translation>
 <translation id="7475742997309661417">ChromeOS ekrāna lasītāju ChromeVox galvenokārt izmanto neredzīgi vai vājredzīgi lietotāji, lai ekrānā redzamo tekstu atskaņotu ar runas sintezatoru vai lasītu Braila displejā. Lai ieslēgtu ChromeVox, nospiediet un piecas sekundes turiet nospiestas abas skaļuma pogas. Kad ChromeVox būs aktivizēts, tiks parādīts īss ceļvedis.</translation>
 <translation id="7476454130948140105">Nevar veikt atjaunināšanu, jo akumulatora uzlādes līmenis ir pārāk zems (<ph name="BATTERY_PERCENT" />%)</translation>
@@ -10285,6 +10286,7 @@
 <translation id="8265018477030547118">Tikai šajā ierīcē</translation>
 <translation id="826511437356419340">Tika atvērts logu kopsavilkuma režīms. Velciet, lai pārvietotos, vai nospiediet tabulēšanas taustiņu, ja izmantojat tastatūru.</translation>
 <translation id="8265671588726449108">{COUNT,plural, =1{Jūsu inkognito režīma logs netiks atvērts pēc atkārtotas palaišanas.}zero{Jūsu {COUNT} inkognito režīma logi netiks atkārtoti atvērti pēc atkārtotas palaišanas.}one{Jūsu {COUNT} inkognito režīma logs netiks atkārtoti atvērts pēc atkārtotas palaišanas.}other{Jūsu {COUNT} inkognito režīma logi netiks atkārtoti atvērti pēc atkārtotas palaišanas.}}</translation>
+<translation id="8266430295499893285">Lai jūs varētu piekļūt savām parolēm, jums ir jāverificē sava identitāte.</translation>
 <translation id="8266947622852630193">Visas ievades metodes</translation>
 <translation id="8267539814046467575">Printera pievienošana</translation>
 <translation id="8267961145111171918"><ph name="BEGIN_PARAGRAPH1" />Šī ir vispārīga informācija par šo ierīci un tās lietošanu (piemēram, par akumulatora uzlādes līmeni, sistēmas un lietotņu darbībām un kļūdām). Dati tiks izmantoti, lai uzlabotu Android darbību. Daļa vāktās informācijas arī palīdzēs Google lietotnēm un partneriem, piemēram, Android izstrādātājiem, uzlabot lietotnes un produktus.<ph name="END_PARAGRAPH1" />
@@ -11096,7 +11098,6 @@
 <translation id="8827125715368568315">Bloķēts: <ph name="PERMISSION" /> un vēl <ph name="COUNT" /></translation>
 <translation id="8827289157496676362">Piespraust paplašinājumu</translation>
 <translation id="8828933418460119530">DNS nosaukums</translation>
-<translation id="8829979393064090868">Pievienot cilni dalītajam skatam</translation>
 <translation id="8830479210602243906">Palieliniet produktivitāti</translation>
 <translation id="883062543841130884">Aizstājēji</translation>
 <translation id="8830779999439981481">Notiek restartēšana, lai lietotu atjauninājumus</translation>
diff --git a/chrome/app/resources/generated_resources_mk.xtb b/chrome/app/resources/generated_resources_mk.xtb
index 6475dc6..601a9ed3 100644
--- a/chrome/app/resources/generated_resources_mk.xtb
+++ b/chrome/app/resources/generated_resources_mk.xtb
@@ -5997,7 +5997,6 @@
 <translation id="5186381005592669696">Приспособување на јазикот на прикажување за поддржаните апликации</translation>
 <translation id="5186788525428341874">Може да го користите овој криптографски клуч за да се најавувате побрзо на вашите уреди. Ќе се зачува во Google Password Manager за <ph name="ACCOUNT_NAME" />.</translation>
 <translation id="5187641678926990264">&amp;Инсталирај страница како апликација…</translation>
-<translation id="5187671830619031922">Додајте картичка во поделениот приказ</translation>
 <translation id="5187826826541650604"><ph name="KEY_NAME" /> (<ph name="DEVICE" />)</translation>
 <translation id="5188242000716462162">Споделено од <ph name="USER_NAME" /></translation>
 <translation id="5188648870018555788">Користење на локацијата. Дозволете апликациите, веб-сајтовите и услугите за ChromeOS и Android со дозвола за локација да ја користат локацијата на уредот. „Прецизност на локација“ обезбедува попрецизна локација за апликациите и услугите за Android. За таа цел, Google повремено обработува податоци за сензорите на уредот и безжичните сигнали од вашиот уред за да ги прибира локациите од безжичните сигнали со колективна соработка. Овие се користат без да ве идентификуваат за да се подобруваат прецизноста на локацијата и локациските услуги, а и да се подобруваат, обезбедуваат и одржуваат услугите на Google според легитимните интереси на Google и трети страни за да се задоволат потребите на корисниците. <ph name="BEGIN_LINK1" />Дознајте повеќе за користењето локација<ph name="END_LINK1" /></translation>
@@ -11113,7 +11112,6 @@
 <translation id="8827125715368568315">Блокирани: <ph name="PERMISSION" /> и уште <ph name="COUNT" /></translation>
 <translation id="8827289157496676362">Закачи екстензија</translation>
 <translation id="8828933418460119530">Име на ДНС</translation>
-<translation id="8829979393064090868">Додајте картичка во поделениот приказ</translation>
 <translation id="8830479210602243906">Зголемете ја продуктивноста</translation>
 <translation id="883062543841130884">Замени</translation>
 <translation id="8830779999439981481">Се рестартира за да се применат ажурирањата</translation>
diff --git a/chrome/app/resources/generated_resources_ml.xtb b/chrome/app/resources/generated_resources_ml.xtb
index 7143e85..a1358fe 100644
--- a/chrome/app/resources/generated_resources_ml.xtb
+++ b/chrome/app/resources/generated_resources_ml.xtb
@@ -5979,7 +5979,6 @@
 <translation id="5186381005592669696">പിന്തുണയ്ക്കുന്ന ആപ്പുകൾക്കായി പ്രദർശന ഭാഷ ഇഷ്ടാനുസൃതമാക്കുക</translation>
 <translation id="5186788525428341874">നിങ്ങളുടെ ഉപകരണങ്ങളിൽ ഉടനീളം വേഗത്തിൽ സൈൻ ഇൻ ചെയ്യാൻ ഈ പാസ്‌കീ ഉപയോഗിക്കാം. <ph name="ACCOUNT_NAME" /> എന്നതിനുള്ള Google Password Manager-ൽ ഇത് സംരക്ഷിക്കും.</translation>
 <translation id="5187641678926990264">&amp;ആപ്പ് ആയി പേജ് ഇൻസ്റ്റാൾ ചെയ്യുക...</translation>
-<translation id="5187671830619031922">സ്പ്ലിറ്റ് വ്യൂവിനായി ടാബ് ചേർക്കുക</translation>
 <translation id="5187826826541650604"><ph name="KEY_NAME" /> (<ph name="DEVICE" />)</translation>
 <translation id="5188242000716462162"><ph name="USER_NAME" /> പങ്കിട്ടത്</translation>
 <translation id="5188648870018555788">ലൊക്കേഷൻ ഉപയോഗിക്കുക. നിങ്ങളുടെ ഉപകരണത്തിന്റെ ലൊക്കേഷൻ ഉപയോഗിക്കാൻ, ലൊക്കേഷൻ അനുമതിയുള്ള ChromeOS, Android ആപ്പുകൾ, വെബ്‌സൈറ്റുകൾ, സേവനങ്ങൾ എന്നിവയെ അനുവദിക്കുക. ലൊക്കേഷൻ കൃത്യത, Android ആപ്പുകൾക്കും സേവനങ്ങൾക്കും കൂടുതൽ കൃത്യമായ ലൊക്കേഷൻ ലഭ്യമാക്കുന്നു. ഇത് ചെയ്യാൻ, വയർലെസ് സിഗ്നൽ ലൊക്കേഷനുകൾ ക്രൗഡ്സോഴ്സ് ചെയ്യാൻ നിങ്ങളുടെ ഉപകരണത്തിലെ സെൻസറുകളെയും വയർലെസ് സിഗ്നലുകളെയും കുറിച്ചുള്ള വിവരങ്ങൾ Google ഇടയ്‌ക്കിടെ പ്രോസസ് ചെയ്യുന്നു. ഉപയോക്താക്കളുടെ ആവശ്യങ്ങൾ നിറവേറ്റുന്നതിനായി Google-ന്റെയും മൂന്നാം കക്ഷികളുടെയും നിയമപരമായ താൽപ്പര്യങ്ങൾ അടിസ്ഥാനമാക്കി, ലൊക്കേഷൻ കൃത്യതയും ലൊക്കേഷൻ അധിഷ്‌ഠിത സേവനങ്ങളും മെച്ചപ്പെടുത്തുന്നതിനും Google-ന്റെ സേവനങ്ങൾ മെച്ചപ്പെടുത്തുന്നതിനും നൽകുന്നതിനും പരിപാലിക്കുന്നതിനും നിങ്ങളെ തിരിച്ചറിയാത്ത തരത്തിൽ ഇവ ഉപയോഗിക്കുന്നു. <ph name="BEGIN_LINK1" />ലൊക്കേഷൻ ഉപയോഗത്തെ കുറിച്ച് കൂടുതലറിയുക<ph name="END_LINK1" /></translation>
@@ -11092,7 +11091,6 @@
 <translation id="8827125715368568315"><ph name="PERMISSION" /> എന്നതും മറ്റ് <ph name="COUNT" /> എണ്ണവും ബ്ലോക്ക് ചെയ്‌തു</translation>
 <translation id="8827289157496676362">വിപുലീകരണം പിൻ ചെയ്യുക</translation>
 <translation id="8828933418460119530">DNS നാമം</translation>
-<translation id="8829979393064090868">സ്പ്ലിറ്റ് വ്യൂവിനായി ടാബ് ചേർക്കുക</translation>
 <translation id="8830479210602243906">ഉൽപ്പാദനക്ഷമത ബൂസ്റ്റ് ചെയ്യുക</translation>
 <translation id="883062543841130884">പകരമുള്ളവ</translation>
 <translation id="8830779999439981481">അപ്ഡേറ്റുകൾ ബാധകമാക്കാൻ റീസ്റ്റാർട്ട് ചെയ്യുന്നു</translation>
diff --git a/chrome/app/resources/generated_resources_mn.xtb b/chrome/app/resources/generated_resources_mn.xtb
index 81855a2..707f378 100644
--- a/chrome/app/resources/generated_resources_mn.xtb
+++ b/chrome/app/resources/generated_resources_mn.xtb
@@ -4776,6 +4776,7 @@
 <translation id="4305402730127028764"><ph name="DEVICE_NAME" /> руу хуулах</translation>
 <translation id="4305817255990598646">Сэлгэх</translation>
 <translation id="4306119971288449206">Аппыг заавал "<ph name="CONTENT_TYPE" />" агуулгын төрөлтэй ажиллуулах шаардлагатай</translation>
+<translation id="4306489587293957491">Оруулах</translation>
 <translation id="4306810703452026910">Chrome энэ сайтын мэдэгдлийг спам гэж дарцаглахаа болино</translation>
 <translation id="4307992518367153382">Үндэс</translation>
 <translation id="4309165024397827958">Байршлын зөвшөөрөлтэй Android аппууд болон үйлчилгээнүүдэд таны төхөөрөмжийн байршлыг ашиглахыг зөвшөөрнө үү. Google нь байршлын нарийвчлал болон байршилд тулгуурласан үйлчилгээг сайжруулахын тулд байршлын өгөгдлийг үе үе цуглуулж, энэ өгөгдлийг нэргүй байдлаар ашиглаж магадгүй.</translation>
@@ -4833,6 +4834,7 @@
 <translation id="4350230709416545141">Байршилд тань хандахыг <ph name="HOST" />-д үргэлж хориглох</translation>
 <translation id="4350782034419308508">Hey Google</translation>
 <translation id="435185728237714178">Суулгасан болон дамжуулсан аппуудыг удирдахын тулд "<ph name="APP_NAME" />" апп руу очно уу</translation>
+<translation id="4352913519324947509">Таны нууц үгийг өөрчлөөгүй ч та одоогийн нууц үгээрээ сайтад хандах боломжтой хэвээр байх ёстой</translation>
 <translation id="4354073718307267720">Сайт таны эргэн тойрны 3D газрын зургийг үүсгэх эсвэл камерын хөдөлгөөнийг хянах хүсэлтэй үед асуух</translation>
 <translation id="4354344420232759511">Таны зочилдог сайтууд энд харагдана</translation>
 <translation id="435527878592612277">Зургаа сонгох</translation>
@@ -5991,7 +5993,6 @@
 <translation id="5186381005592669696">Дэмжсэн аппуудын дэлгэцийн хэлийг өөрчилнө үү</translation>
 <translation id="5186788525428341874">Та энэ нэвтрэх түлхүүрийг төхөөрөмжүүд дээрээ илүү хурдан нэвтрэхэд ашиглах боломжтой. Үүнийг <ph name="ACCOUNT_NAME" />-д зориулж Google Нууц үгний менежерт хадгална.</translation>
 <translation id="5187641678926990264">&amp;Хуудсыг апп байдлаар суулгах...</translation>
-<translation id="5187671830619031922">Табыг хуваасан харагдах байдалд нэмэх</translation>
 <translation id="5187826826541650604"><ph name="KEY_NAME" /> ( <ph name="DEVICE" /> )</translation>
 <translation id="5188242000716462162"><ph name="USER_NAME" /> хуваалцсан</translation>
 <translation id="5188648870018555788">Байршлыг ашиглана уу. Байршлын зөвшөөрөлтэй ChromeOS, Android апп, вебсайт, үйлчилгээнүүдэд таны төхөөрөмжийн байршлыг ашиглахыг зөвшөөрнө үү. Байршлын нарийвчлал Android апп, үйлчилгээнүүдийг илүү нарийвчилсан байршлаар хангадаг. Ингэхийн тулд Google утасгүй дохионы байршлыг нийтийн оролцоотой цуглуулах зорилгоор таны төхөөрөмжөөс төхөөрөмжийн мэдрэгч, утасгүй дохионы мэдээллийг үе үе боловсруулдаг. Эдгээрийг таныг тодорхойлолгүйгээр байршлын нарийвчлал, байршилд тулгуурласан үйлчилгээнүүдийг сайжруулах, Google-н, гуравдагч талуудын хэрэглэгчдийн хэрэгцээг хангах хууль ёсны ашиг сонирхолд тулгуурлан Google-н үйлчилгээнүүдийг сайжруулах, хэвийн үргэлжлүүлэх, үйлчилгээнүүдээр хангахад ашигладаг. <ph name="BEGIN_LINK1" />Байршил ашиглах талаар нэмэлт мэдээлэл авах<ph name="END_LINK1" /></translation>
@@ -8321,6 +8322,7 @@
 <translation id="686831807558000905">Нэвтрэхгүй</translation>
 <translation id="686839242150793617">Дэлгэц доторх дэлгэцэд автоматаар орохыг зөвшөөрсөн</translation>
 <translation id="6868934826811377550">Дэлгэрэнгүйг харах</translation>
+<translation id="6870470066213933201">JavaScript-н оновчлол, аюулгүй байдлыг удирдах</translation>
 <translation id="6871644448911473373">OCSP Хариу өгөгч: <ph name="LOCATION" /></translation>
 <translation id="6871860225073478239">Хэлнүүд...</translation>
 <translation id="6873571253135628430">Сайтын зөвшөөрлийг өөрчлөх</translation>
@@ -9015,6 +9017,7 @@
 <translation id="7387951778417998929">Өгөгдмөл хайлтын системээс өөрийг ашиглахын тулд хаяг оруулах хэсэгт түүний товчлолын араас сонгосон товчлуурын шууд холбоосоо бичнэ үү. Та мөн өгөгдмөл хайлтын системээ энд өөрчлөх боломжтой.</translation>
 <translation id="7388615499319468910">Сайтууд болон сурталчлагчид зарын гүйцэтгэлийг ойлгох боломжтой. Энэ тохиргоо унтраалттай байна.</translation>
 <translation id="738903649531469042">Унших жагсаалтад Таб нэмэх</translation>
+<translation id="7389615853658756494">Үүнийг сайт дээр өөрчлөх</translation>
 <translation id="7392118418926456391">Вирус шалгалт амжилтгүй боллоо</translation>
 <translation id="7392915005464253525">Хаагдсан цонхийг дахин нээ</translation>
 <translation id="7393073300870882456">{COUNT,plural, =1{1 зүйл хуулсан}other{{COUNT} зүйл хуулсан.}}</translation>
@@ -9144,6 +9147,7 @@
 <translation id="7474043404939621342">Самбараа өөрчлөх</translation>
 <translation id="747459581954555080">Бүгдийг сэргээх</translation>
 <translation id="747507174130726364">{NUM_DAYS,plural, =1{Нэн даруй буцаах шаардлагатай}other{<ph name="DEVICE_TYPE" />-г {NUM_DAYS} хоногийн дотор буцаах}}</translation>
+<translation id="747557463733380256">Таны хөтчийг хэрхэн удирддаг талаар нэмэлт мэдээлэл авах</translation>
 <translation id="7475671414023905704">Netscape Lost Password URL</translation>
 <translation id="7475742997309661417">ChromeOS, ChromeVox-н дэлгэц уншигчийг гол төлөв хараагүй эсвэл хараа муутай хүмүүс дэлгэцэд үзүүлсэн текстийг ярианы синтезатор эсвэл брайл дэлгэцээр уншихад ашигладаг. ChromeVox-г асаахын туд хоёр дууны түвшний товчийг хоёуланг нь таван секундийн турш удаан дарна уу. ChromeVox-г идэвхжүүлэхэд та шуурхай аялал хийнэ.</translation>
 <translation id="7476454130948140105">Шинэчлэхэд батерейны түвшин хангалтгүй байна (<ph name="BATTERY_PERCENT" />%)</translation>
@@ -10290,6 +10294,7 @@
 <translation id="8265018477030547118">Зөвхөн энэ төхөөрөмжид</translation>
 <translation id="826511437356419340">Цонхны тойм горимд шилжлээ. Шилжихийн тулд шударна уу эсвэл гар ашиглаж байгаа бол Tab дээр дарна уу.</translation>
 <translation id="8265671588726449108">{COUNT,plural, =1{Таныг дахин ачаалсны дараа нууцлалтай цонх тань нээгдэхгүй}other{Таныг дахин ачаалсны дараа {COUNT} нууцлалтай цонх тань нээгдэхгүй}}</translation>
+<translation id="8266430295499893285">Та нууц үгэндээ хандах боломжтой болохоос өмнө өөрийгөө мөн болохыг баталгаажуулах шаардлагатай</translation>
 <translation id="8266947622852630193">Бүх оруулах арга</translation>
 <translation id="8267539814046467575">Хэвлэгч нэмэх</translation>
 <translation id="8267961145111171918"><ph name="BEGIN_PARAGRAPH1" />Энэ нь энэ төхөөрөмж болон үүнийг хэрхэн ашигладаг (батарейны түвшин, систем болон аппын үйл ажиллагаа, алдаа гэх мэт) талаарх ерөнхий мэдээлэл юм. Өгөгдлийг Android-г сайжруулах зорилгоор ашиглах бөгөөд зарим хуримтлуулсан мэдээллийг Android хөгжүүлэгч зэрэг Google аппууд болон түншүүдийн апп, бүтээгдэхүүнийг сайжруулахад мөн адил ашиглана.<ph name="END_PARAGRAPH1" />
@@ -11097,7 +11102,6 @@
 <translation id="8827125715368568315"><ph name="PERMISSION" /> болон бусад <ph name="COUNT" />-г блоклосон</translation>
 <translation id="8827289157496676362">Өргөтгөлийг бэхлэх</translation>
 <translation id="8828933418460119530">DNS-н нэр</translation>
-<translation id="8829979393064090868">Табыг хуваасан харагдах байдалд нэмэх</translation>
 <translation id="8830479210602243906">Бүтээмжийг нэмэгдүүлэх</translation>
 <translation id="883062543841130884">Солилцоо</translation>
 <translation id="8830779999439981481">Шинэчлэлтийг хэрэгжүүлэхийн тулд дахин эхлүүлж байна</translation>
diff --git a/chrome/app/resources/generated_resources_mr.xtb b/chrome/app/resources/generated_resources_mr.xtb
index d44810e..9006994 100644
--- a/chrome/app/resources/generated_resources_mr.xtb
+++ b/chrome/app/resources/generated_resources_mr.xtb
@@ -5993,7 +5993,6 @@
 <translation id="5186381005592669696">सपोर्ट असणाऱ्या अ‍ॅप्ससाठी प्रदर्शनाची भाषा कस्टमाइझ करा</translation>
 <translation id="5186788525428341874">तुमच्या सर्व डिव्हाइसवर आणखी वेगाने साइन इन करण्यासाठी तुम्ही ही पासकी वापरू शकता. तो <ph name="ACCOUNT_NAME" /> साठी Google Password Manager यामध्ये सेव्ह केला जाईल.</translation>
 <translation id="5187641678926990264">&amp;पेज हे अ‍ॅप म्हणून इंस्टॉल करा...</translation>
-<translation id="5187671830619031922">दृश्य विभाजित करण्यासाठी टॅब जोडा</translation>
 <translation id="5187826826541650604"><ph name="KEY_NAME" /> (<ph name="DEVICE" />)</translation>
 <translation id="5188242000716462162"><ph name="USER_NAME" /> यांनी शेअर केले आहे</translation>
 <translation id="5188648870018555788">स्थान वापरा. स्थान परवानगी असलेल्या ChromeOS आणि Android अ‍ॅप्स, वेबसाइट व सेवांना तुमच्या डिव्हाइसचे स्थान वापरण्याची अनुमती द्या. स्थान अचूकता हे Android अ‍ॅप्स आणि सेवांसाठी अधिक अचूक स्थान पुरवते. हे करण्यासाठी, वायरलेस सिग्नल स्थानांना क्राउडसोर्स करण्याकरिता Google वेळोवेळी डिव्हाइस सेन्सर आणि तुमच्या डिव्हाइसच्या वायरलेस सिग्नलबद्दलच्या माहितीवर प्रक्रिया करते. स्थान अचूकता आणि स्थान आधारित सेवांमध्ये सुधारणा करण्यासाठी व वापरकर्त्यांच्या आवश्यकता पूर्ण करण्याच्या Google व तृतीय पक्षांच्या कायदेशीर हितसंबंधांच्या आधारे Google सेवांमध्ये सुधारणा करण्यासाठी, त्या पुरवण्यासाठी आणि त्यांची देखभाल करण्यासाठी ही माहिती तुम्हाला न ओळखता वापरली जाते. <ph name="BEGIN_LINK1" />स्थान वापरण्याबद्दल अधिक जाणून घ्या<ph name="END_LINK1" /></translation>
@@ -9021,6 +9020,7 @@
 <translation id="7387951778417998929">डीफॉल्टपेक्षा वेगळे शोध इंजीन वापरण्यासाठी, त्याचा शॉर्टकट आणि त्यानंतर तुमचा प्राधान्य दिलेला कीबोर्ड शॉर्टकट अ‍ॅड्रेस बारमध्ये टाइप करा. तुम्ही येथे तुमचे डीफॉल्ट शोध इंजीनदेखील बदलू शकता.</translation>
 <translation id="7388615499319468910">जाहिराती कशा काम करतात हे साइट आणि जाहिरातदार समजू शकतात. हे सेटिंग बंद आहे.</translation>
 <translation id="738903649531469042">वाचन सूची वर टॅब जोडा</translation>
+<translation id="7389615853658756494">तो साइटवर बदला</translation>
 <translation id="7392118418926456391">व्हायरस स्कॅन अयशस्वी</translation>
 <translation id="7392915005464253525">बंद केलेली विंडो पु&amp;न्हा उघडा</translation>
 <translation id="7393073300870882456">{COUNT,plural, =1{एक आयटम कॉपी केला}other{{COUNT} आयटम कॉपी केले}}</translation>
@@ -9150,6 +9150,7 @@
 <translation id="7474043404939621342">तुमचा टूलबार कस्टमाइझ करा</translation>
 <translation id="747459581954555080">सर्व पुनर्संचयित करा</translation>
 <translation id="747507174130726364">{NUM_DAYS,plural, =1{तात्काळ परत करणे आवश्यक आहे}other{{NUM_DAYS} दिवसांच्‍या आत <ph name="DEVICE_TYPE" /> परत करा}}</translation>
+<translation id="747557463733380256">तुमचा ब्राउझर कसा व्यवस्थापित केला जातो याबद्दल जाणून घ्या</translation>
 <translation id="7475671414023905704">Netscape पासवर्ड URL गमावली</translation>
 <translation id="7475742997309661417">ChromeOS, ChromeVox वरील स्क्रीन रीडर प्रामुख्याने दृष्टिहीन किंवा दृष्टिदोष असलेल्या लोकांद्वारे स्क्रीनवर प्रदर्शित केलेला मजकूर हा स्पीच सिंथेसायझर अथवा ब्रेल डिस्प्लेसह वाचण्यासाठी वापरले जाते. ChromeVox सुरू करण्यासाठी दोन्ही व्हॉल्यूम की पाच सेकंदांसाठी प्रेस करून धरून ठेवा. ChromeVox अ‍ॅक्टिव्हेट झाल्यावर, तुम्हाला झटपट फेरफटका मिळेल.</translation>
 <translation id="7476454130948140105">अपडेटसाठी बॅटरी खूप कमी (<ph name="BATTERY_PERCENT" />%) आहे</translation>
@@ -10297,6 +10298,7 @@
 <translation id="8265018477030547118">फक्त या डिव्हाइसवर</translation>
 <translation id="826511437356419340">विंडो अवलोकन मोड एंटर केला. नेव्हिगेट करण्यासाठी स्वाइप करा किंवा कीबोर्ड वापरत असल्यास टॅब प्रेस करा.</translation>
 <translation id="8265671588726449108">{COUNT,plural, =1{तुम्ही पुन्हा लाँच केल्यानंतर तुमची गुप्त विंडो उघडणार नाही}other{तुम्ही पुन्हा लाँच केल्यानंतर तुमच्या {COUNT} गुप्त विंडो उघडणार नाहीत}}</translation>
+<translation id="8266430295499893285">तुमचे पासवर्ड अ‍ॅक्सेस करण्यापूर्वी तुम्हाला हे तुम्हीच आहात याची पडताळणी करणे आवश्यक आहे</translation>
 <translation id="8266947622852630193">सर्व इनपुट पद्धती</translation>
 <translation id="8267539814046467575">प्रिंटर जोडा</translation>
 <translation id="8267961145111171918"><ph name="BEGIN_PARAGRAPH1" />हे डिव्हाइस आणि ते कसे वापरले जाते याविषयी ही सर्वसाधारण माहिती आहे (जसे की, बॅटरी पातळी, सिस्टीम आणि ॲप ॲक्टिव्हिटी आणि एरर). डेटाचा वापर Android सुधारित करण्यासाठी केला जाईल आणि काही एकत्रित केलेली माहिती Google ॲप्स आणि Android डेव्हलपरसारख्या भागीदारांना त्यांची ॲप्स आणि उत्पादने आणखी उत्तम बनवण्यातदेखील मदत करेल<ph name="END_PARAGRAPH1" />
@@ -11106,7 +11108,6 @@
 <translation id="8827125715368568315">ब्लॉक केलेले <ph name="PERMISSION" /> आणि आणखी <ph name="COUNT" /></translation>
 <translation id="8827289157496676362">एक्स्टेंशन पिन करा</translation>
 <translation id="8828933418460119530">DNS नाव</translation>
-<translation id="8829979393064090868">दृश्य विभाजित करण्यासाठी टॅब जोडा</translation>
 <translation id="8830479210602243906">उत्पादनक्षमता बूस्ट करा</translation>
 <translation id="883062543841130884">उपघटक</translation>
 <translation id="8830779999439981481">अपडेट लागू करण्यासाठी रीस्टार्ट करत आहे</translation>
diff --git a/chrome/app/resources/generated_resources_ms.xtb b/chrome/app/resources/generated_resources_ms.xtb
index 20e3352b..14c8dd9 100644
--- a/chrome/app/resources/generated_resources_ms.xtb
+++ b/chrome/app/resources/generated_resources_ms.xtb
@@ -4781,6 +4781,7 @@
 <translation id="4305402730127028764">Salin ke <ph name="DEVICE_NAME" /></translation>
 <translation id="4305817255990598646">Tukar</translation>
 <translation id="4306119971288449206">Apl mesti disampaikan dengan jenis kandungan "<ph name="CONTENT_TYPE" />"</translation>
+<translation id="4306489587293957491">Masukkan</translation>
 <translation id="4306810703452026910">Chrome akan berhenti membenderakan pemberitahuan daripada laman ini sebagai spam</translation>
 <translation id="4307992518367153382">Asas</translation>
 <translation id="4309165024397827958">Benarkan apl Android dan perkhidmatan dengan kebenaran lokasi menggunakan lokasi peranti anda. Google boleh mengumpulkan data lokasi secara berkala dan menggunakan data ini secara awanama untuk meningkatkan ketepatan lokasi dan perkhidmatan berasaskan lokasi.</translation>
@@ -4838,6 +4839,7 @@
 <translation id="4350230709416545141">Sentiasa sekat <ph name="HOST" /> daripada mengakses lokasi anda</translation>
 <translation id="4350782034419308508">Ok Google</translation>
 <translation id="435185728237714178">Akses apl "<ph name="APP_NAME" />" untuk mengurus apl yang dipasang dan distrim</translation>
+<translation id="4352913519324947509">Kata laluan anda tidak ditukar tetapi anda masih boleh mengakses laman dengan kata laluan semasa anda</translation>
 <translation id="4354073718307267720">Tanya apabila tapak mahu membuat peta 3D bagi persekitaran anda atau menjejaki kedudukan kamera</translation>
 <translation id="4354344420232759511">Tapak yang anda lawati akan dipaparkan di sini</translation>
 <translation id="435527878592612277">Pilih foto anda</translation>
@@ -5996,7 +5998,6 @@
 <translation id="5186381005592669696">Sesuaikan bahasa paparan untuk apl yang disokong</translation>
 <translation id="5186788525428341874">Anda boleh menggunakan kunci laluan ini untuk log masuk dengan lebih pantas merentas peranti anda. Kata laluan ini akan disimpan pada Google Password Manager untuk <ph name="ACCOUNT_NAME" />.</translation>
 <translation id="5187641678926990264">&amp;Pasang Halaman sebagai Apl...</translation>
-<translation id="5187671830619031922">Tambahkan Tab pada Paparan Pisah</translation>
 <translation id="5187826826541650604"><ph name="KEY_NAME" /> (<ph name="DEVICE" />)</translation>
 <translation id="5188242000716462162">Dikongsi oleh <ph name="USER_NAME" /></translation>
 <translation id="5188648870018555788">Gunakan lokasi. Benarkan apl, laman web dan perkhidmatan ChromeOS serta Android dengan kebenaran lokasi untuk menggunakan lokasi peranti anda. Ketepatan Lokasi menyediakan lokasi yang lebih tepat untuk apl dan perkhidmatan Android. Untuk berbuat demikian, Google memproses maklumat tentang penderia peranti dan isyarat wayarles secara berkala daripada peranti anda untuk mengumpulkan lokasi isyarat wayarles. Maklumat ini digunakan tanpa mengenal pasti identiti anda untuk meningkatkan ketepatan lokasi dan perkhidmatan berasaskan lokasi serta untuk meningkatkan, menyediakan dan mengekalkan perkhidmatan Google berdasarkan kepentingan sah Google dan pihak ketiga bagi memenuhi keperluan pengguna. <ph name="BEGIN_LINK1" />Ketahui lebih lanjut tentang menggunakan lokasi<ph name="END_LINK1" /></translation>
@@ -8326,6 +8327,7 @@
 <translation id="686831807558000905">Jangan log masuk</translation>
 <translation id="686839242150793617">Dibenarkan untuk memasukkan gambar dalam gambar secara automatik</translation>
 <translation id="6868934826811377550">Lihat Butiran</translation>
+<translation id="6870470066213933201">Urus pengoptimuman &amp; keselamatan JavaScript</translation>
 <translation id="6871644448911473373">Pengulas OCSP: <ph name="LOCATION" /></translation>
 <translation id="6871860225073478239">Bahasa...</translation>
 <translation id="6873571253135628430">Tukar kebenaran laman</translation>
@@ -11112,7 +11114,6 @@
 <translation id="8827125715368568315"><ph name="PERMISSION" /> dan <ph name="COUNT" /> lagi disekat</translation>
 <translation id="8827289157496676362">Sematkan sambungan</translation>
 <translation id="8828933418460119530">Nama DNS</translation>
-<translation id="8829979393064090868">Tambahkan tab pada paparan pisah</translation>
 <translation id="8830479210602243906">Tingkatkan produktiviti</translation>
 <translation id="883062543841130884">Penggantian</translation>
 <translation id="8830779999439981481">Mulakan semula untuk menggunakan kemas kini</translation>
diff --git a/chrome/app/resources/generated_resources_my.xtb b/chrome/app/resources/generated_resources_my.xtb
index ec4e67b..36056c8 100644
--- a/chrome/app/resources/generated_resources_my.xtb
+++ b/chrome/app/resources/generated_resources_my.xtb
@@ -5994,7 +5994,6 @@
 <translation id="5186381005592669696">ပံ့ပိုးသောအက်ပ်များအတွက် ဖော်ပြမည့်ဘာသာစကား စိတ်ကြိုက်လုပ်နိုင်သည်</translation>
 <translation id="5186788525428341874">သင့်စက်များတွင် ပိုမိုမြန်ဆန်စွာ လက်မှတ်ထိုးဝင်ရန် ဤလျှို့ဝှက်ကီးကို သုံးနိုင်သည်။ ၎င်းကို <ph name="ACCOUNT_NAME" /> အတွက် Google Password Manager တွင် သိမ်းပါမည်။</translation>
 <translation id="5187641678926990264">&amp;စာမျက်နှာကို အက်ပ်အဖြစ် ထည့်သွင်းရန်…</translation>
-<translation id="5187671830619031922">မျက်နှာပြင်ခွဲ၍ ပြသရန်အတွက် တဘ်ထည့်ရန်</translation>
 <translation id="5187826826541650604"><ph name="KEY_NAME" /> (<ph name="DEVICE" />)</translation>
 <translation id="5188242000716462162"><ph name="USER_NAME" /> က မျှဝေထားသည်</translation>
 <translation id="5188648870018555788">တည်နေရာသုံးရန်။ ChromeOS၊ Android အက်ပ်များ၊ ဝဘ်ဆိုက်များ၊ တည်နေရာခွင့်ပြုချက် ပါဝင်သည့် ဝန်ဆောင်မှုများအား သင့်စက်၏တည်နေရာကို သုံးခွင့်ပြုသည်။ ‘တည်နေရာတိကျမှန်ကန်မှု’ သည် Android အက်ပ်နှင့် ဝန်ဆောင်မှုများအတွက် ပိုမိုတိကျသော တည်နေရာကို ပေးသည်။ ထိုသို့လုပ်ဆောင်ရန် Google သည် သင့်စက်မှ စက်အာရုံခံကိရိယာနှင့် ကြိုးမဲ့အချက်ပြမှုများအကြောင်း အချက်အလက်များကို လူထုအရင်းအမြစ်ကို အသုံးချထားသော ကြိုးမဲ့အချက်ပြမှု တည်နေရာများသို့ အခါအားလျော်စွာ စီမံပို့ဆောင်သည်။ တည်နေရာတိကျမှန်ကန်မှုနှင့် တည်နေရာအခြေခံ ဝန်ဆောင်မှုများ ပိုမိုကောင်းမွန်စေရန်၊ အသုံးပြုသူများ၏ လိုအပ်ချက်များကို ဖြည့်ဆည်းပေးရန်အတွက် Google နှင့် ပြင်ပအဖွဲ့အစည်းများ၏ တရားဝင် အကျိုးခံစားခွင့်များအပေါ် အခြေခံထားသော Google ဝန်ဆောင်မှုများကို ပိုကောင်းအောင်လုပ်ရန်၊ ပံ့ပိုးရန်၊ ထိန်းသိမ်းရန် သင်မည်သူမည်ဝါဖြစ်ကြောင်း မဖော်ပြဘဲ ၎င်းတို့ကို အသုံးပြုသည်။ <ph name="BEGIN_LINK1" />တည်နေရာအသုံးပြုခြင်းအကြောင်း ပိုမိုလေ့လာရန်<ph name="END_LINK1" /></translation>
@@ -9016,6 +9015,7 @@
 <translation id="7387951778417998929">မူရင်းမဟုတ်သော ရှာဖွေရေး အင်ဂျင်သုံးရန် လိပ်စာဘားတွင် ၎င်း၏ ဖြတ်လမ်းလင့်ခ် ရိုက်ထည့်ပြီးနောက် ဦးစားပေး လက်ကွက်ဖြတ်လမ်း ထည့်ပါ။ သင်၏မူရင်း ရှာဖွေရေး အင်ဂျင်ကိုလည်း ဤနေရာတွင် ပြောင်းနိုင်သည်။</translation>
 <translation id="7388615499319468910">ဝဘ်ဆိုက်နှင့် ကြော်ငြာရှင်များက ကြော်ငြာလုပ်ဆောင်ပုံကို နားလည်နိုင်သည်။ ဤဆက်တင်ကို ပိတ်ထားသည်။</translation>
 <translation id="738903649531469042">တဘ်ကို ဖတ်ရန်စာရင်းသို့ထည့်ရန်</translation>
+<translation id="7389615853658756494">ဝဘ်ဆိုက်တွင် ပြောင်းရန်</translation>
 <translation id="7392118418926456391">ဗိုင်းရပ်စ် စစ်ခြင်း မအောင်မြင်ပါ</translation>
 <translation id="7392915005464253525">ပိတ်ထားသည့် တဲဘ်များ ပြန်&amp;ဖွင့်ရန်</translation>
 <translation id="7393073300870882456">{COUNT,plural, =1{1 ခု မိတ္တူကူးလိုက်သည်}other{{COUNT} ခု မိတ္တူကူးလိုက်သည်}}</translation>
@@ -9145,6 +9145,7 @@
 <translation id="7474043404939621342">သင့်ကိရိယာဘားကို စိတ်ကြိုက်လုပ်ရန်</translation>
 <translation id="747459581954555080">အားလုံး ပြန်လည်သိုလှောင်</translation>
 <translation id="747507174130726364">{NUM_DAYS,plural, =1{ချက်ခြင်း ပြန်ပို့ရန် လိုအပ်သည်}other{<ph name="DEVICE_TYPE" /> ကို {NUM_DAYS} ရက်အတွင်း ပြန်ပို့ပါ}}</translation>
+<translation id="747557463733380256">သင့်ဘရောင်ဇာကို စီမံပုံအကြောင်း လေ့လာရန်</translation>
 <translation id="7475671414023905704">Netscape ပျောက်ဆုံး စကားဝှက် URL</translation>
 <translation id="7475742997309661417">စာသားမှ စကားသံပြောင်းစနစ် (သို့) မျက်မမြင်စာဖတ်ကိရိယာဖြင့် ဖန်သားပြင်တွင် ပြထားသော စာသားအား ဖတ်ရန် ChromeOS ရှိ ဖန်သားပြင်ဖတ် အက်ပ်ဖြစ်သည့် ChromeVox ကို မျက်မမြင် (သို့) အမြင်အာရုံအားနည်းသူများက အဓိက အသုံးပြုသည်။ ChromeVox ဖွင့်ရန် အသံထိန်းခလုတ်များကို ငါးစက္ကန့်ကြာ နှိပ်ထားပါ။ ChromeVox ဖွင့်ပြီးသွားသည့်အခါ လမ်းညွှန်အကျဥ်းချုပ်တစ်ခုကို သင်လေ့လာရပါမည်။</translation>
 <translation id="7476454130948140105">အပ်ဒိတ်လုပ်ရန် ဓာတ်ခဲအား အလွန်နည်းနေပါသည် (<ph name="BATTERY_PERCENT" />)</translation>
@@ -10293,6 +10294,7 @@
 <translation id="8265018477030547118">ဤစက်တွင်သာ</translation>
 <translation id="826511437356419340">ဝင်းဒိုးအနှစ်ချုပ်မုဒ်သို့ ဝင်ထားသည်။ ရှေ့နောက်သွားရန် ပွတ်ဆွဲပါ သို့မဟုတ် လက်ကွက်အသုံးပြုနေပါက တဘ်ကိုနှိပ်ပါ။</translation>
 <translation id="8265671588726449108">{COUNT,plural, =1{သင့်ရုပ်ဖျက် ဝင်းဒိုးသည် သင်ပြန်ဖွင့်ပြီးနောက် ပွင့်မည်မဟုတ်ပါ}other{သင့်ရုပ်ဖျက် ဝင်းဒိုး {COUNT} ခုသည် သင်ပြန်ဖွင့်ပြီးနောက် ပွင့်မည်မဟုတ်ပါ}}</translation>
+<translation id="8266430295499893285">သင့်စကားဝှက်များကို အသုံးမပြုနိုင်မီ သင်ဖြစ်ကြောင်း အတည်ပြုရမည်</translation>
 <translation id="8266947622852630193">လက်ကွက်များ အားလုံး</translation>
 <translation id="8267539814046467575">ပရင်တာ ထည့်ရန်</translation>
 <translation id="8267961145111171918"><ph name="BEGIN_PARAGRAPH1" />၎င်းက သင့်စက်နှင့် ၎င်းကို သင်မည်သို့သုံးစွဲကြောင်း (ဘက်ထရီအား၊ စနစ်နှင့် အက်ပ်လုပ်ဆောင်ချက်နှင့် အမှားများ ကဲ့သို့) အထွေထွေ အချက်အလက်ဖြစ်ပါသည်။ ဤဒေတာများကို Android ပိုမိုကောင်းမွန်လာစေရန်အတွက် အသုံးပြုသွားမည်ဖြစ်ပြီး စုစည်းထားသည့်အချက်အလက်အချို့ကလည်း Google အက်ပ်နှင့် Android ဆော့ဖ်ဝဲအင်ဂျင်နီယာများကဲ့သို့ ပါတနာများအတွက် ၎င်းတို့၏ အက်ပ်နှင့် ထုတ်ကုန်များ ပိုမိုကောင်းမွန်လာစေရန် အထောက်အကူဖြစ်စေပါသည်။<ph name="END_PARAGRAPH1" />
@@ -11102,7 +11104,6 @@
 <translation id="8827125715368568315"><ph name="PERMISSION" /> နှင့် နောက်ထပ် <ph name="COUNT" /> ခုကို ပိတ်ထားသည်</translation>
 <translation id="8827289157496676362">နောက်ဆက်တွဲကို ပင်ထိုးရန်</translation>
 <translation id="8828933418460119530">DNS အမည်</translation>
-<translation id="8829979393064090868">မျက်နှာပြင်ခွဲ၍ ပြသရန်အတွက် တဘ်ထည့်ရန်</translation>
 <translation id="8830479210602243906">အလုပ်ပြီးမြောက်မှု မြှင့်တင်ရန်</translation>
 <translation id="883062543841130884">အစားထိုးခြင်းများ</translation>
 <translation id="8830779999439981481">အပ်ဒိတ်များထည့်ရန် ပြန်စနေသည်</translation>
diff --git a/chrome/app/resources/generated_resources_ne.xtb b/chrome/app/resources/generated_resources_ne.xtb
index d7b479d..e43bddda 100644
--- a/chrome/app/resources/generated_resources_ne.xtb
+++ b/chrome/app/resources/generated_resources_ne.xtb
@@ -5978,7 +5978,6 @@
 <translation id="5186381005592669696">यो सुविधा उपलब्ध भएका एपहरूमा डिस्प्लेको टेक्स्टको भाषा कस्टमाइज गर्नुहोस्</translation>
 <translation id="5186788525428341874">तपाईं यो पासकी प्रयोग गरी आफ्ना विभिन्न डिभाइसमा सजिलैसँग साइन इन गर्न सक्नुहुन्छ। यो पासकी <ph name="ACCOUNT_NAME" /> को Google पासवर्ड म्यानेजरमा सेभ गरिने छ।</translation>
 <translation id="5187641678926990264">एपका रूपमा पेज इन्स्टल गर्नुहोस्...</translation>
-<translation id="5187671830619031922">यो ट्याब "स्प्लिट भ्यू" मा हाल्नुहोस्</translation>
 <translation id="5187826826541650604"><ph name="KEY_NAME" /> (<ph name="DEVICE" />)</translation>
 <translation id="5188242000716462162"><ph name="USER_NAME" /> ले सेयर गर्नुभएको</translation>
 <translation id="5188648870018555788">लोकेसन प्रयोग गर्नुहोस्। लोकेसन प्रयोग गर्ने अनुमति पाएका ChromeOS र Android एप, वेबसाइट तथा सेवाहरूलाई तपाईंको डिभाइसको लोकेसन प्रयोग गर्न दिनुहोस्। "लोकेसनको सटीकता" ले Android एप तथा सेवाहरूलाई अझ सटीक लोकेसन प्रदान गर्छ। यो कार्य गर्न Google ले समय समयमा तपाईंको डिभाइसका सेन्सर तथा वायरलेस सिग्नलका बारेमा जानकारी प्रोसेस गरी वायरलेस सिग्नलका लोकेसनहरू क्राउडसोर्स गर्छ। लोकेसनको सटीकता तथा लोकेसनमा आधारित सेवाहरूको गुणस्तर सुधार गर्न र प्रयोगकर्ताका आवश्यकता पूरा गर्ने Google तथा तेस्रो पक्षहरूका वैध चासोका आधारमा Google का सेवाहरू प्रदान गर्न, कायम राख्न तथा सुधार गर्न यो जानकारी तपाईंको पहिचान नखुलाइकन प्रयोग गरिन्छ। <ph name="BEGIN_LINK1" />लोकेसन प्रयोग गरिने तरिकाका बारेमा थप जान्नुहोस्<ph name="END_LINK1" /></translation>
@@ -9001,6 +9000,7 @@
 <translation id="7387951778417998929">तपाईं डिफल्ट सर्च इन्जिन नभई कुनै अर्को सर्च इन्जिन प्रयोग गर्न चाहनुहुन्छ भने एड्रेस बारमा उक्त सर्च इन्जिनको सर्टकट टाइप गर्नुहोस् अनि आफ्नो रोजाइको किबोर्ड सर्टकट थिच्नुहोस्। तपाईं यहाँबाट आफ्नो डिफल्ट सर्च इन्जिन परिवर्तन गर्न पनि सक्नुहुन्छ।</translation>
 <translation id="7388615499319468910">साइट तथा विज्ञापनदाताहरू विज्ञापनको पर्फर्मेन्स कस्तो छ भन्ने कुरा बुझ्न सक्छन्। यो सेटिङ अफ छ।</translation>
 <translation id="738903649531469042">पछि पढ्न सेभ गरिएका वेबपेजको सूचीमा यो ट्याब हाल्नुहोस्</translation>
+<translation id="7389615853658756494">साइटमा गई पासवर्ड परिवर्तन गर्नुहोस्</translation>
 <translation id="7392118418926456391">भाइरस स्क्यान असफल भयो</translation>
 <translation id="7392915005464253525">बन्द विण्डोलाई पुन: खो&amp;ल्नुहोस्</translation>
 <translation id="7393073300870882456">{COUNT,plural, =1{एउटा वस्तु कपी गरियो}other{{COUNT} वटा वस्तु कपी गरिए}}</translation>
@@ -9130,6 +9130,7 @@
 <translation id="7474043404939621342">आफ्नो टुलबार कस्टमाइज गर्नुहोस्</translation>
 <translation id="747459581954555080">सबैलाई पुनर्स्थापना गर्नुहोस्</translation>
 <translation id="747507174130726364">{NUM_DAYS,plural, =1{यन्त्र तुरुन्तै फिर्ता गर्नु पर्ने हुन्छ}other{{NUM_DAYS} दिनभित्र <ph name="DEVICE_TYPE" /> फिर्ता गर्नुहोस्}}</translation>
+<translation id="747557463733380256">तपाईंको ब्राउजर कसरी व्यवस्थापन गरिन्छ भन्ने बारेमा जान्नुहोस्</translation>
 <translation id="7475671414023905704">नेटस्केप हराएको पासवर्ड युआरएल</translation>
 <translation id="7475742997309661417">मुख्यतः दृष्टिविहीन र दृष्टि क्षमता कमजोर भएका मान्छेहरू स्पिच सिन्थेसाइजर वा ब्रेल डिस्प्लेका सहायताले स्क्रिनमा देखाइएका टेक्स्ट पढ्न ChromeOS, ChromeVox मा भएको स्क्रिन रिडर प्रयोग गर्छन्। ChromeVox अन गर्न पाँच सेकेन्डसम्म दुवै भोल्युम बटन थिचिराख्नुहोस्। ChromeVox अन भएपछि तपाईंलाई यसका सुविधाहरूका बारेमा जानकारी दिइने छ।</translation>
 <translation id="7476454130948140105">अद्यावधिक गर्न ब्याट्रीको स्तर अत्यन्तै कम छ (<ph name="BATTERY_PERCENT" />%)</translation>
@@ -10278,6 +10279,7 @@
 <translation id="8265018477030547118">यो डिभाइसमा मात्र</translation>
 <translation id="826511437356419340">विन्डोको रूपरेखा मोडमा प्रवेश गरियो। तपाईं किबोर्ड प्रयोग गर्दै हुनुहुन्छ भने नेभिगेसन गर्न स्वाइप गर्नुहोस् वा tab थिच्नुहोस्।</translation>
 <translation id="8265671588726449108">{COUNT,plural, =1{तपाईंले "पुनः सुरु गर्नुहोस्" मा क्लिक गर्नुभयो भने तपाईंको इन्कोग्निटो विन्डो फेरि खुल्ने छैन}other{तपाईंले "पुनः सुरु गर्नुहोस्" मा क्लिक गर्नुभयो भने तपाईंका {COUNT} वटा इन्कोग्निटो विन्डो फेरि खुल्ने छैनन्}}</translation>
+<translation id="8266430295499893285">तपाईंले आफ्नो पहिचान पुष्टि गरेपछि मात्र तपाईं आफ्ना पासवर्डहरू एक्सेस गर्न सक्नुहुन्छ</translation>
 <translation id="8266947622852630193">सबै इनपुट विधि</translation>
 <translation id="8267539814046467575">प्रिन्टर कनेक्ट गर्नुहोस्</translation>
 <translation id="8267961145111171918"><ph name="BEGIN_PARAGRAPH1" />यो जानकारी यस यन्त्र र यसको प्रयोग (जस्तै ब्याट्रीको स्तर, सिस्टम तथा एपका क्रियाकलाप र त्रुटिहरू) सम्बन्धी सामान्य जानकारी हो। यो डेटालाई Android मा सुधार गर्ने प्रयोजनका लागि प्रयोग गरिने छ र केही एकत्रित जानकारीले Google का एप तथा Android का विकासकर्ता जस्ता साझेदारहरूलाई तिनका एप र उत्पादनहरू अझ राम्रो बनाउन पनि मद्दत गर्ने छ।<ph name="END_PARAGRAPH1" />
@@ -11087,7 +11089,6 @@
 <translation id="8827125715368568315">तपाईंले हालसालै <ph name="PERMISSION" /> सम्बन्धी अनुमति र अन्य <ph name="COUNT" /> वटा अनुमति ब्लक गर्नुभएको छ</translation>
 <translation id="8827289157496676362">एक्स्टेन्सन पिन गर्नुहोस्</translation>
 <translation id="8828933418460119530">DNS नाम</translation>
-<translation id="8829979393064090868">यो ट्याब "स्प्लिट भ्यू" मा हाल्नुहोस्</translation>
 <translation id="8830479210602243906">उत्पादकत्व बढाउनुहोस्</translation>
 <translation id="883062543841130884">प्रतिस्थापनहरू</translation>
 <translation id="8830779999439981481">अपडेटहरू लागू गर्न रिस्टार्ट गरिँदै छ</translation>
diff --git a/chrome/app/resources/generated_resources_nl.xtb b/chrome/app/resources/generated_resources_nl.xtb
index b778d605..1dd2713 100644
--- a/chrome/app/resources/generated_resources_nl.xtb
+++ b/chrome/app/resources/generated_resources_nl.xtb
@@ -4765,6 +4765,7 @@
 <translation id="4305402730127028764">Kopiëren naar <ph name="DEVICE_NAME" /></translation>
 <translation id="4305817255990598646">Overschakelen</translation>
 <translation id="4306119971288449206">Apps moeten worden weergegeven met inhoudstype '<ph name="CONTENT_TYPE" />'</translation>
+<translation id="4306489587293957491">Invoeren</translation>
 <translation id="4306810703452026910">Chrome markeert meldingen van deze site niet meer als spam</translation>
 <translation id="4307992518367153382">Basisinstellingen</translation>
 <translation id="4309165024397827958">Geef Android-apps en -services met locatierechten toestemming de locatie van je apparaat te gebruiken. Google kan periodiek geanonimiseerde locatiegegevens verzamelen en gebruiken om de locatienauwkeurigheid en locatiegebaseerde services te verbeteren.</translation>
@@ -4822,6 +4823,7 @@
 <translation id="4350230709416545141">Toegang tot je locatie altijd blokkeren voor <ph name="HOST" /></translation>
 <translation id="4350782034419308508">Hey Google</translation>
 <translation id="435185728237714178">Ga naar de <ph name="APP_NAME" />-app om geïnstalleerde en gestreamde apps te beheren</translation>
+<translation id="4352913519324947509">Je wachtwoord is niet gewijzigd, maar je hebt nog steeds toegang tot de site met je huidige wachtwoord</translation>
 <translation id="4354073718307267720">Vragen als een site een 3D-kaart van je omgeving wil maken of de camerapositie wil volgen</translation>
 <translation id="4354344420232759511">Bezochte sites zie je hier</translation>
 <translation id="435527878592612277">Selecteer je foto</translation>
@@ -5979,7 +5981,6 @@
 <translation id="5186381005592669696">Pas de weergavetaal aan voor ondersteunde apps</translation>
 <translation id="5186788525428341874">Je kunt deze toegangssleutel gebruiken om sneller in te loggen op al je apparaten. Deze wordt opgeslagen in Google Wachtwoordmanager voor <ph name="ACCOUNT_NAME" />.</translation>
 <translation id="5187641678926990264">Pagina &amp;installeren als app...</translation>
-<translation id="5187671830619031922">Tabblad toevoegen aan gesplitste weergave</translation>
 <translation id="5187826826541650604"><ph name="KEY_NAME" /> (<ph name="DEVICE" />)</translation>
 <translation id="5188242000716462162">Gedeeld door <ph name="USER_NAME" /></translation>
 <translation id="5188648870018555788">Gebruik de locatie. Sta toe dat ChromeOS- en Android-apps, websites en services met locatierechten de locatie van je apparaat gebruiken. Locatienauwkeurigheid biedt een nauwkeurigere locatie voor Android-apps en -services. Hiervoor verwerkt Google periodiek gegevens over apparaatsensoren en draadloze signalen van je apparaat om bij te dragen aan draadloze signaallocaties op basis van crowdsourcing. Deze worden zonder je te identificeren gebruikt om de locatienauwkeurigheid en services op een fysieke locatie te verbeteren. Ze worden ook gebruikt om de services van Google te verbeteren, aan te bieden en te onderhouden op basis van de gerechtvaardigde belangen van Google en derden om aan de behoeften van gebruikers te voldoen. <ph name="BEGIN_LINK1" />Meer informatie over het gebruik van locatie<ph name="END_LINK1" /></translation>
@@ -8305,6 +8306,7 @@
 <translation id="686831807558000905">Niet inloggen</translation>
 <translation id="686839242150793617">Toestemming om automatisch scherm-in-scherm te openen</translation>
 <translation id="6868934826811377550">Details bekijken</translation>
+<translation id="6870470066213933201">JavaScript-optimalisatie en -beveiliging beheren</translation>
 <translation id="6871644448911473373">OCSP-beantwoorder: <ph name="LOCATION" /></translation>
 <translation id="6871860225073478239">Talen...</translation>
 <translation id="6873571253135628430">Siterechten wijzigen</translation>
@@ -9000,6 +9002,7 @@
 <translation id="7387951778417998929">Als je een andere zoekmachine dan de standaard zoekmachine wilt gebruiken, typ je de bijbehorende snelkoppeling in de adresbalk gevolgd door de gewenste sneltoets. Je kunt ook hier je standaard zoekmachine wijzigen.</translation>
 <translation id="7388615499319468910">Sites en adverteerders krijgen inzicht in de prestaties van advertenties. Deze instelling staat uit.</translation>
 <translation id="738903649531469042">Tabblad toevoegen aan leeslijst</translation>
+<translation id="7389615853658756494">Wijzigen op de site</translation>
 <translation id="7392118418926456391">Virusscan is mislukt</translation>
 <translation id="7392915005464253525">G&amp;esloten venster opnieuw openen</translation>
 <translation id="7393073300870882456">{COUNT,plural, =1{1 item gekopieerd}other{{COUNT} items gekopieerd}}</translation>
@@ -9128,6 +9131,7 @@
 <translation id="7474043404939621342">Je werkbalk aanpassen</translation>
 <translation id="747459581954555080">Alles herstellen</translation>
 <translation id="747507174130726364">{NUM_DAYS,plural, =1{Apparaat onmiddellijk terugsturen}other{Stuur <ph name="DEVICE_TYPE" /> binnen {NUM_DAYS} dagen terug}}</translation>
+<translation id="747557463733380256">Meer informatie over hoe je browser wordt beheerd</translation>
 <translation id="7475671414023905704">URL van verloren Netscape-wachtwoord</translation>
 <translation id="7475742997309661417">ChromeVox, de schermlezer op ChromeOS, wordt voornamelijk gebruikt door blinden en slechtzienden om tekst op het scherm te lezen met een spraaksynthesizer of brailleleesregel. Houd beide volumeknoppen 5 seconden ingedrukt om ChromeVox aan te zetten. Zodra ChromeVox is geactiveerd, krijg je een korte rondleiding.</translation>
 <translation id="7476454130948140105">Batterij niet voldoende opgeladen voor update (<ph name="BATTERY_PERCENT" />%)</translation>
@@ -10276,6 +10280,7 @@
 <translation id="8265018477030547118">Alleen op dit apparaat</translation>
 <translation id="826511437356419340">Modus voor vensteroverzicht staat aan. Swipe om te navigeren of druk op Tab op een toetsenbord.</translation>
 <translation id="8265671588726449108">{COUNT,plural, =1{Je incognitovenster wordt niet opnieuw geopend na de herstart}other{Je {COUNT} incognitovensters worden niet opnieuw geopend na de herstart}}</translation>
+<translation id="8266430295499893285">Je moet laten verifiëren dat jij het bent voordat je toegang krijgt tot je wachtwoorden</translation>
 <translation id="8266947622852630193">Alle invoermethoden</translation>
 <translation id="8267539814046467575">Printer toevoegen</translation>
 <translation id="8267961145111171918"><ph name="BEGIN_PARAGRAPH1" />Dit is algemene informatie over dit apparaat en hoe het wordt gebruikt (zoals batterijniveau, systeem- en app-activiteit en fouten). De gegevens worden gebruikt om Android te verbeteren voor iedereen. Daarnaast helpen bepaalde verzamelde gegevens Google-apps en -partners (zoals Android-ontwikkelaars) bij het verbeteren van hun apps en producten.<ph name="END_PARAGRAPH1" />
@@ -11086,7 +11091,6 @@
 <translation id="8827125715368568315">Recht voor <ph name="PERMISSION" /> en <ph name="COUNT" /> andere geblokkeerd</translation>
 <translation id="8827289157496676362">Extensie vastzetten</translation>
 <translation id="8828933418460119530">DNS-naam</translation>
-<translation id="8829979393064090868">Tabblad toevoegen aan gesplitste weergave</translation>
 <translation id="8830479210602243906">Geef je productiviteit een boost</translation>
 <translation id="883062543841130884">Vervangingen</translation>
 <translation id="8830779999439981481">Opnieuw opstarten om updates toe te passen</translation>
diff --git a/chrome/app/resources/generated_resources_no.xtb b/chrome/app/resources/generated_resources_no.xtb
index 2120c9e..9ac9dbe 100644
--- a/chrome/app/resources/generated_resources_no.xtb
+++ b/chrome/app/resources/generated_resources_no.xtb
@@ -5987,7 +5987,6 @@
 <translation id="5186381005592669696">Tilpass visningsspråket for støttede apper</translation>
 <translation id="5186788525428341874">Du kan bruke denne passnøkkelen for å logge på raskere på alle enhetene dine. Den lagres i Google Passordlagring for <ph name="ACCOUNT_NAME" />.</translation>
 <translation id="5187641678926990264">&amp;Installer siden som en app…</translation>
-<translation id="5187671830619031922">Legg til fanen i delt visning</translation>
 <translation id="5187826826541650604"><ph name="KEY_NAME" /> (<ph name="DEVICE" />)</translation>
 <translation id="5188242000716462162">Delt av <ph name="USER_NAME" /></translation>
 <translation id="5188648870018555788">Bruk posisjon. Tillat at ChromeOS- og Android-apper, -nettsteder og -tjenester med posisjonstillatelse bruker posisjonen til enheten din. Med Posisjonsnøyaktighet får Android-apper og tjenester mer nøyaktige posisjoner. For å få til dette behandler Google med jevne mellomrom informasjon om enhetssensorer og trådløse signaler fra enheten din for å bidra til crowdsourcing av posisjonene til trådløse signaler. Disse brukes uten å identifisere deg for å forbedre posisjonsnøyaktigheten og posisjonsbaserte tjenester og for å forbedre, levere og vedlikeholde Googles tjenester basert på Googles og tredjeparters berettigede interesser i å oppfylle brukernes behov. <ph name="BEGIN_LINK1" />Finn ut mer om bruk av posisjon<ph name="END_LINK1" /></translation>
@@ -11100,7 +11099,6 @@
 <translation id="8827125715368568315">Blokkerte <ph name="PERMISSION" /> og <ph name="COUNT" /> til</translation>
 <translation id="8827289157496676362">Fest utvidelsen</translation>
 <translation id="8828933418460119530">DNS-navn</translation>
-<translation id="8829979393064090868">Legg til fanen i delt visning</translation>
 <translation id="8830479210602243906">Øk produktiviteten</translation>
 <translation id="883062543841130884">Erstatninger</translation>
 <translation id="8830779999439981481">Starter på nytt for å ta i bruk oppdateringer</translation>
diff --git a/chrome/app/resources/generated_resources_or.xtb b/chrome/app/resources/generated_resources_or.xtb
index 86ac9a87..88dffd2 100644
--- a/chrome/app/resources/generated_resources_or.xtb
+++ b/chrome/app/resources/generated_resources_or.xtb
@@ -5979,7 +5979,6 @@
 <translation id="5186381005592669696">ସମର୍ଥିତ ଆପ୍ସ ପାଇଁ ଡିସପ୍ଲେ ଭାଷା କଷ୍ଟମାଇଜ କରନ୍ତୁ</translation>
 <translation id="5186788525428341874">ଆପଣଙ୍କ ସମଗ୍ର ଡିଭାଇସରେ ଶୀଘ୍ର ସାଇନ ଇନ କରିବାକୁ ଆପଣ ଏହି ପାସକୀକୁ ବ୍ୟବହାର କରିପାରିବେ। <ph name="ACCOUNT_NAME" />ର Google Password Managerରେ ଏହା ସେଭ ହୋଇଯିବ।</translation>
 <translation id="5187641678926990264">&amp;ଆପ ଭାବରେ ପୃଷ୍ଠା ଇନଷ୍ଟଲ କରନ୍ତୁ...</translation>
-<translation id="5187671830619031922">ସ୍ପ୍ଲିଟ ଭ୍ୟୁରେ ଟାବ ଯୋଗ କରନ୍ତୁ</translation>
 <translation id="5187826826541650604"><ph name="KEY_NAME" /> (<ph name="DEVICE" />)</translation>
 <translation id="5188242000716462162"><ph name="USER_NAME" /> ଦ୍ୱାରା ସେୟାର କରାଯାଇଥିଲା</translation>
 <translation id="5188648870018555788">ଲୋକେସନ ବ୍ୟବହାର କରନ୍ତୁ। ଲୋକେସନ ଅନୁମତି ଥିବା ChromeOS ଏବଂ Android ଆପ୍ସ, ୱେବସାଇଟ ଓ ସେବାଗୁଡ଼ିକୁ ଆପଣଙ୍କ ଡିଭାଇସର ଲୋକେସନକୁ ବ୍ୟବହାର କରିବା ପାଇଁ ଅନୁମତି ଦିଅନ୍ତୁ। ଲୋକେସନ ସଠିକତା Android ଆପ୍ସ ଏବଂ ସେବାଗୁଡ଼ିକ ପାଇଁ ଅଧିକ ସଠିକ ଲୋକେସନ ପ୍ରଦାନ କରିଥାଏ। ଏହା କରିବା ପାଇଁ Google ପର୍ଯ୍ୟାୟକ୍ରମେ ଡିଭାଇସ ସେନ୍ସର ଏବଂ ୱାୟାରଲେସ ସିଗନାଲଗୁଡ଼ିକ ବିଷୟରେ ଥିବା ସୂଚନାକୁ ଆପଣଙ୍କ ଡିଭାଇସରୁ Crowdsource ୱାୟାରଲେସ ସିଗନାଲ ଲୋକେସନକୁ ପ୍ରକ୍ରିୟାନ୍ୱିତ କରିଥାଏ। ଆପଣଙ୍କୁ ଚିହ୍ନଟ ନକରି ଲୋକେସନ ସଠିକତା ଏବଂ ଲୋକେସନ-ଆଧାରିତ ସେବାଗୁଡ଼ିକୁ ଉନ୍ନତ କରିବା ଏବଂ ୟୁଜରଙ୍କ ଆବଶ୍ୟକତାକୁ ପୂରଣ କରିବା ପାଇଁ Google ଏବଂ ତୃତୀୟ ପକ୍ଷର ବୈଧ ସ୍ୱାର୍ଥ ଆଧାରରେ Googleର ସେବାଗୁଡ଼ିକୁ ଉନ୍ନତ କରିବା, ପ୍ରଦାନ କରିବା ଏବଂ ବଜାୟ ରଖିବା ପାଇଁ ଏଗୁଡ଼ିକୁ ବ୍ୟବହାର କରାଯାଏ। <ph name="BEGIN_LINK1" />ଲୋକେସନକୁ ବ୍ୟବହାର କରିବା ବିଷୟରେ ଅଧିକ ଜାଣନ୍ତୁ<ph name="END_LINK1" /></translation>
@@ -9002,6 +9001,7 @@
 <translation id="7387951778417998929">ଡିଫଲ୍ଟ ସର୍ଚ୍ଚ ଇଞ୍ଜିନ ବ୍ୟତୀତ ଅନ୍ୟ କୌଣସି ସର୍ଚ୍ଚ ଇଞ୍ଜିନ ବ୍ୟବହାର କରିବାକୁ, ଠିକଣା ବାରରେ ଏହାର ସର୍ଟକଟ ଟାଇପ କରିବା ପରେ ଆପଣଙ୍କ ପସନ୍ଦର କୀବୋର୍ଡ ସର୍ଟକଟ ଟାଇପ କରନ୍ତୁ। ଆପଣ ଏଠାରେ ଆପଣଙ୍କ ଡିଫଲ୍ଟ ସର୍ଚ୍ଚ ଇଞ୍ଜିନ ମଧ୍ୟ ପରିବର୍ତ୍ତନ କରିପାରିବେ।</translation>
 <translation id="7388615499319468910">ବିଜ୍ଞାପନଗୁଡ଼ିକ କିପରି ପରଫର୍ମ କରେ ତାହା ସାଇଟଗୁଡ଼ିକ ଏବଂ ବିଜ୍ଞାପନଦାତାମାନେ ବୁଝିପାରିବେ। ଏହି ସେଟିଂ ବନ୍ଦ ଅଛି।</translation>
 <translation id="738903649531469042">ପଢ଼ିବା ତାଲିକାରେ ଟାବ୍ ଯୋଗ କରନ୍ତୁ</translation>
+<translation id="7389615853658756494">ଏହାକୁ ସାଇଟରେ ବଦଳାନ୍ତୁ</translation>
 <translation id="7392118418926456391">ଭାଇରସ୍ ସ୍କାନ୍ ବିଫଳ ହେଲା</translation>
 <translation id="7392915005464253525">ବନ୍ଦ ହୋଇଥିବା ୱିଣ୍ଡୋ ପୁନଃ ଖୋ&amp;ଲନ୍ତୁ</translation>
 <translation id="7393073300870882456">{COUNT,plural, =1{1ଟି ଆଇଟମ୍ କପି କରାଯାଇଛି}other{{COUNT}ଟି ଆଇଟମ୍ କପି କରାଯାଇଛି}}</translation>
@@ -9131,6 +9131,7 @@
 <translation id="7474043404939621342">ଆପଣଙ୍କ ଟୁଲବାରକୁ କଷ୍ଟମାଇଜ କରନ୍ତୁ</translation>
 <translation id="747459581954555080">ସବୁ ରିଷ୍ଟୋର୍ କରନ୍ତୁ</translation>
 <translation id="747507174130726364">{NUM_DAYS,plural, =1{ତୁରନ୍ତ ଫେରସ୍ତ କରିବା ଆବଶ୍ୟକ}other{{NUM_DAYS} ଦିନ ଭିତରେ <ph name="DEVICE_TYPE" />କୁ ଫେରସ୍ତ କରନ୍ତୁ}}</translation>
+<translation id="747557463733380256">ଆପଣଙ୍କ ବ୍ରାଉଜରକୁ କିପରି ପରିଚାଳନା କରାଯାଏ ସେ ବିଷୟରେ ଜାଣନ୍ତୁ</translation>
 <translation id="7475671414023905704">Netscape ପାସ୍‍ୱର୍ଡର URL ହଜାଇଦେ‍ଇଛି</translation>
 <translation id="7475742997309661417">ChromeOS, ChromeVoxରେ ସ୍କ୍ରିନ ରିଡର ମୁଖ୍ୟତଃ ଦୃଷ୍ଟିହୀନ କିମ୍ବା କମ ଦେଖାଯାଉଥିବା ଲୋକଙ୍କ ଦ୍ୱାରା ସ୍କ୍ରିନରେ ଡିସପ୍ଲେ କରାଯାଇଥିବା ଟେକ୍ସଟକୁ ସ୍ପିଚ ସିନ୍ଥେସାଇଜର ବା ବ୍ରେଲି ଡିସପ୍ଲେ ମାଧ୍ୟମରେ ପଢ଼ିବା ପାଇଁ ବ୍ୟବହାର କରାଯାଏ। ChromeVox ଚାଲୁ କରିବାକୁ ପାଞ୍ଚ ସେକେଣ୍ଡ ପାଇଁ ଉଭୟ ଭଲ୍ୟୁମ କୀ’କୁ ଦବାଇ ଧରି ରଖନ୍ତୁ। ChromeVox ସକ୍ରିୟ ହେଲେ ଏହା ବିଷୟରେ ଆପଣଙ୍କୁ ଏକ କୁଇକ ସୂଚନା ଦିଆଯିବ।</translation>
 <translation id="7476454130948140105">ଅପ୍‌ଡ଼େଟ୍ ପାଇଁ ବ୍ୟାଟେରୀ ବହୁତ କମ୍ ଅଛି (<ph name="BATTERY_PERCENT" />%)</translation>
@@ -10278,6 +10279,7 @@
 <translation id="8265018477030547118">କେବଳ ଏହି ଡିଭାଇସରେ</translation>
 <translation id="826511437356419340">ୱିଣ୍ଡୋର ସାରାଂଶ ମୋଡରେ ପ୍ରବେଶ କରିଛନ୍ତି। ନାଭିଗେଟ୍ କରିବାକୁ ସ୍ୱାଇପ୍ କରନ୍ତୁ କିମ୍ବା କୀବୋର୍ଡ ବ୍ୟବହାର କରୁଥିଲେ, ଟାବ୍ ଦବାନ୍ତୁ।</translation>
 <translation id="8265671588726449108">{COUNT,plural, =1{ଆପଣ ପୁଣି ଲଞ୍ଚ କରିବା ପରେ ଆପଣଙ୍କ ଇନକଗ୍ନିଟୋ ୱିଣ୍ଡୋ ଖୋଲିବ ନାହିଁ}other{ଆପଣ ପୁଣି ଲଞ୍ଚ କରିବା ପରେ ଆପଣଙ୍କର {COUNT}ଟି ଇନକଗ୍ନିଟୋ ୱିଣ୍ଡୋ ଖୋଲିବ ନାହିଁ}}</translation>
+<translation id="8266430295499893285">ଆପଣଙ୍କ ପାସୱାର୍ଡଗୁଡ଼ିକୁ ଆକ୍ସେସ କରିବା ପୂର୍ବରୁ ଏହା ଆପଣ ବୋଲି ଯାଞ୍ଚ କରିବାକୁ ହେବ</translation>
 <translation id="8266947622852630193">ସମସ୍ତ ଇନପୁଟ୍ ପଦ୍ଧତି</translation>
 <translation id="8267539814046467575">ପ୍ରିଣ୍ଟର୍ ଯୋଗ କରନ୍ତୁ</translation>
 <translation id="8267961145111171918"><ph name="BEGIN_PARAGRAPH1" />ଏହା ଏହି ଡିଭାଇସ୍ ଏବଂ ଏହା କିପରି ବ୍ୟବହାର ହୋଇଛି (ଯେପରି ବ୍ୟାଟେରୀ ଲେବଲ୍, ସିଷ୍ଟମ୍, ଆପ୍ ଗତିବିଧି ଓ ତ୍ରୁଟି) ତାହା ବିଷୟରେ ସାଧାରଣ ସୂଚନା ଅଟେ। Androidକୁ ଉନ୍ନତ କରିବା ପାଇଁ ଡାଟାକୁ ବ୍ୟବହାର କରାଯିବ ଏବଂ କିଛି ଏକତ୍ରିତ ସୂଚନା Google ଆପ୍ସ ଏବଂ Android ଡେଭଲପର୍ ପରି ସହଯୋଗୀଙ୍କୁ ସେମାନଙ୍କର ଆପ୍ସ ଓ ଉତ୍ପାଦକୁ ଉନ୍ନତ କରିବାରେ ସାହାଯ୍ୟ କରିବ।<ph name="END_PARAGRAPH1" />
@@ -11087,7 +11089,6 @@
 <translation id="8827125715368568315"><ph name="PERMISSION" /> ଏବଂ ଅଧିକ <ph name="COUNT" />ଟିକୁ ବ୍ଲକ୍ କରାଯାଇଛି</translation>
 <translation id="8827289157496676362">ଏକ୍ସଟେନ୍‌ସନ୍ ପିନ୍ କରନ୍ତୁ</translation>
 <translation id="8828933418460119530">DNS ନାମ</translation>
-<translation id="8829979393064090868">ସ୍ପ୍ଲିଟ ଭ୍ୟୁରେ ଟାବ ଯୋଗ କରନ୍ତୁ</translation>
 <translation id="8830479210602243906">ପ୍ରଡକ୍ଟିଭିଟିକୁ ବୁଷ୍ଟ କରନ୍ତୁ</translation>
 <translation id="883062543841130884">ପ୍ରତିସ୍ଥାପନଗୁଡ଼ିକ</translation>
 <translation id="8830779999439981481">ଅପଡେଟଗୁଡ଼ିକ ଲାଗୁ କରିବା ପାଇଁ ରିଷ୍ଟାର୍ଟ କରାଯାଉଛି</translation>
diff --git a/chrome/app/resources/generated_resources_pa.xtb b/chrome/app/resources/generated_resources_pa.xtb
index aff3f98e..29eed12 100644
--- a/chrome/app/resources/generated_resources_pa.xtb
+++ b/chrome/app/resources/generated_resources_pa.xtb
@@ -4783,6 +4783,7 @@
 <translation id="4305402730127028764"><ph name="DEVICE_NAME" /> 'ਤੇ ਕਾਪੀ ਕਰੋ</translation>
 <translation id="4305817255990598646">ਸਵਿੱਚ ਕਰੋ</translation>
 <translation id="4306119971288449206">ਐਪਾਂ ਨੂੰ ਲਾਜ਼ਮੀ ਤੌਰ 'ਤੇ ਸਮੱਗਰੀ-ਪ੍ਰਕਾਰ "<ph name="CONTENT_TYPE" />" ਵਿੱਚ ਦੇਣਾ ਚਾਹੀਦਾ ਹੈ</translation>
+<translation id="4306489587293957491">ਦਾਖਲ ਕਰੋ</translation>
 <translation id="4306810703452026910">Chrome ਇਸ ਸਾਈਟ ਤੋਂ ਪ੍ਰਾਪਤ ਸੂਚਨਾਵਾਂ ਨੂੰ ਸਪੈਮ ਵਜੋਂ ਫਲੈਗ ਕਰਨਾ ਬੰਦ ਕਰ ਦੇਵੇਗਾ</translation>
 <translation id="4307992518367153382">ਮੂਲ</translation>
 <translation id="4309165024397827958">ਟਿਕਾਣਾ ਇਜਾਜ਼ਤ ਵਾਲੀਆਂ Android ਐਪਾਂ ਅਤੇ ਸੇਵਾਵਾਂ ਨੂੰ ਤੁਹਾਡੇ ਡੀਵਾਈਸ ਦੇ ਟਿਕਾਣੇ ਦੀ ਵਰਤੋਂ ਕਰਨ ਦਿਓ। Google ਨਿਯਮਿਤ ਤੌਰ 'ਤੇ ਟਿਕਾਣੇ ਦਾ ਡਾਟਾ ਇਕੱਤਰ ਕਰ ਸਕਦਾ ਹੈ ਅਤੇ ਟਿਕਾਣਾ ਸਟੀਕਤਾ ਅਤੇ ਟਿਕਾਣਾ-ਆਧਾਰਿਤ ਸੇਵਾਵਾਂ ਨੂੰ ਬਿਹਤਰ ਬਣਾਉਣ ਲਈ ਕਿਸੇ ਗੁਮਨਾਮ ਢੰਗ ਨਾਲ ਇਸ ਡਾਟੇ ਦੀ ਵਰਤੋਂ ਕਰ ਸਕਦਾ ਹੈ।</translation>
@@ -4840,6 +4841,7 @@
 <translation id="4350230709416545141"><ph name="HOST" /> ਨੂੰ ਹਮੇਸ਼ਾਂ ਤੁਹਾਡੇ ਟਿਕਾਣੇ ਤੱਕ ਪਹੁੰਚ ਕਰਨ ਤੋਂ ਬਲਾਕ ਕਰੋ</translation>
 <translation id="4350782034419308508">Ok Google</translation>
 <translation id="435185728237714178">ਸਥਾਪਤ ਅਤੇ ਸਟ੍ਰੀਮ ਕੀਤੀਆਂ ਐਪਾਂ ਦਾ ਪ੍ਰਬੰਧਨ ਕਰਨ ਲਈ "<ph name="APP_NAME" />" ਐਪ 'ਤੇ ਜਾਓ</translation>
+<translation id="4352913519324947509">ਤੁਹਾਡਾ ਪਾਸਵਰਡ ਬਦਲਿਆ ਨਹੀਂ ਗਿਆ, ਪਰ ਤੁਸੀਂ ਹਾਲੇ ਵੀ ਆਪਣੇ ਮੌਜੂਦਾ ਪਾਸਵਰਡ ਨਾਲ ਸਾਈਟ ਤੱਕ ਪਹੁੰਚ ਕਰ ਸਕੋਗੇ</translation>
 <translation id="4354073718307267720">ਕਿਸੇ ਸਾਈਟ ਵੱਲੋਂ ਤੁਹਾਡੇ ਆਲੇ-ਦੁਆਲੇ ਦਾ 3D ਨਕਸ਼ਾ ਬਣਾਉਣ ਜਾਂ ਕੈਮਰੇ ਦੀ ਸਥਿਤੀ ਨੂੰ ਟਰੈਕ ਕਰਨ ਵੇਲੇ ਪੁੱਛੋ</translation>
 <translation id="4354344420232759511">ਤੁਹਾਡੇ ਵੱਲੋਂ ਦੇਖੀਆਂ ਜਾਣ ਵਾਲੀਆਂ ਸਾਈਟਾਂ ਇੱਥੇ ਦਿਸਣਗੀਆਂ</translation>
 <translation id="435527878592612277">ਆਪਣੀ ਫ਼ੋਟੋ ਚੁਣੋ</translation>
@@ -5997,7 +5999,6 @@
 <translation id="5186381005592669696">ਸਮਰਥਿਤ ਐਪਾਂ ਲਈ ਡਿਸਪਲੇ ਭਾਸ਼ਾ ਨੂੰ ਵਿਉਂਤਬੱਧ ਕਰੋ</translation>
 <translation id="5186788525428341874">ਤੁਸੀਂ ਆਪਣੇ ਸਾਰੇ ਡੀਵਾਈਸਾਂ 'ਤੇ ਜ਼ਿਆਦਾ ਤੇਜ਼ੀ ਨਾਲ ਸਾਈਨ-ਇਨ ਕਰਨ ਲਈ ਇਸ ਪਾਸਕੀ ਨੂੰ ਵਰਤ ਸਕਦੇ ਹੋ। ਇਸਨੂੰ <ph name="ACCOUNT_NAME" /> ਲਈ Google Password Manager ਵਿੱਚ ਰੱਖਿਅਤ ਕੀਤਾ ਜਾਵੇਗਾ।</translation>
 <translation id="5187641678926990264">ਪੰਨੇ ਨੂੰ ਐਪ ਵਜੋਂ &amp;ਸਥਾਪਤ ਕਰੋ...</translation>
-<translation id="5187671830619031922">ਸਪਲਿਟ ਦ੍ਰਿਸ਼ ਵਿੱਚ ਟੈਬ ਸ਼ਾਮਲ ਕਰੋ</translation>
 <translation id="5187826826541650604"><ph name="KEY_NAME" /> (<ph name="DEVICE" />)</translation>
 <translation id="5188242000716462162"><ph name="USER_NAME" /> ਵੱਲੋਂ ਸਾਂਝਾ ਕੀਤਾ ਗਿਆ</translation>
 <translation id="5188648870018555788">ਟਿਕਾਣੇ ਦੀ ਵਰਤੋਂ ਕਰੋ। ChromeOS ਅਤੇ Android ਐਪਾਂ, ਵੈੱਬਸਾਈਟਾਂ ਅਤੇ ਸੇਵਾਵਾਂ ਨੂੰ ਟਿਕਾਣਾ ਇਜਾਜ਼ਤ ਨਾਲ ਤੁਹਾਡੇ ਡੀਵਾਈਸ ਦੇ ਟਿਕਾਣੇ ਦੀ ਵਰਤੋਂ ਕਰਨ ਦਿਓ। ਟਿਕਾਣਾ ਸਟੀਕਤਾ Android ਐਪਾਂ ਅਤੇ ਸੇਵਾਵਾਂ ਲਈ ਵਧੇਰੇ ਸਟੀਕ ਟਿਕਾਣਾ ਮੁਹੱਈਆ ਕਰਵਾਉਂਦੀ ਹੈ। ਅਜਿਹਾ ਕਰਨ ਲਈ, Google ਸਮੇਂ-ਸਮੇਂ 'ਤੇ ਡੀਵਾਈਸ ਸੈਂਸਰਾਂ ਅਤੇ ਵਾਇਰਲੈੱਸ ਸਿਗਨਲਾਂ ਬਾਰੇ ਜਾਣਕਾਰੀ 'ਤੇ ਤੁਹਾਡੇ ਡੀਵਾਈਸ ਤੋਂ ਕਰਾਊਡਸੋਰਸ ਵਾਇਰਲੈੱਸ ਸਿਗਨਲ ਟਿਕਾਣਿਆਂ 'ਤੇ ਕਾਰਵਾਈ ਕਰਦਾ ਹੈ। ਇਨ੍ਹਾਂ ਦੀ ਵਰਤੋਂ ਤੁਹਾਡੀ ਪਛਾਣ ਕੀਤੇ ਬਿਨਾਂ ਟਿਕਾਣਾ ਸਟੀਕਤਾ ਅਤੇ ਟਿਕਾਣਾ ਆਧਾਰਿਤ ਸੇਵਾਵਾਂ ਨੂੰ ਬਿਹਤਰ ਬਣਾਉਣ ਅਤੇ ਵਰਤੋਂਕਾਰਾਂ ਦੀਆਂ ਲੋੜਾਂ ਨੂੰ ਪੂਰਾ ਕਰਨ ਲਈ Google ਅਤੇ ਤੀਜੀਆਂ ਧਿਰਾਂ ਦੇ ਕਨੂੰਨੀ ਮਕਸਦਾਂ ਦੇ ਆਧਾਰ 'ਤੇ Google ਦੀਆਂ ਸੇਵਾਵਾਂ ਨੂੰ ਬਿਹਤਰ ਬਣਾਉਣ, ਮੁਹੱਈਆ ਕਰਵਾਉਣ ਅਤੇ ਬਰਕਰਾਰ ਰੱਖਣ ਲਈ ਕੀਤੀ ਜਾਂਦੀ ਹੈ। <ph name="BEGIN_LINK1" />ਟਿਕਾਣਾ ਵਰਤਣ ਬਾਰੇ ਹੋਰ ਜਾਣੋ<ph name="END_LINK1" /></translation>
@@ -8330,6 +8331,7 @@
 <translation id="686831807558000905">ਸਾਈਨ-ਇਨ ਨਾ ਕਰੋ</translation>
 <translation id="686839242150793617">ਸਵੈਚਲਿਤ ਤੌਰ 'ਤੇ ਤਸਵੀਰ-ਵਿੱਚ-ਤਸਵੀਰ ਦਾਖਲ ਕਰਨ ਦੀ ਆਗਿਆ ਦਿੱਤੀ ਗਈ</translation>
 <translation id="6868934826811377550">ਵੇਰਵੇ ਦੇਖੋ</translation>
+<translation id="6870470066213933201">JavaScript ਸੁਯੋਗਕਰਨ ਅਤੇ ਸੁਰੱਖਿਆ ਦਾ ਪ੍ਰਬੰਧਨ ਕਰਨਾ</translation>
 <translation id="6871644448911473373">OCSP ਉੱਤਰਦਾਤਾ: <ph name="LOCATION" /></translation>
 <translation id="6871860225073478239">ਭਾਸ਼ਾਵਾਂ...</translation>
 <translation id="6873571253135628430">ਸਾਈਟ ਸੰਬੰਧੀ ਇਜਾਜ਼ਤਾਂ ਬਦਲੋ</translation>
@@ -11113,7 +11115,6 @@
 <translation id="8827125715368568315"><ph name="PERMISSION" /> ਅਤੇ <ph name="COUNT" /> ਹੋਰ ਨੂੰ ਬਲਾਕ ਕੀਤਾ ਗਿਆ</translation>
 <translation id="8827289157496676362">ਐਕਸਟੈਂਸ਼ਨ ਨੂੰ ਪਿੰਨ ਕਰੋ</translation>
 <translation id="8828933418460119530">DNS ਨਾਮ</translation>
-<translation id="8829979393064090868">ਸਪਲਿਟ ਦ੍ਰਿਸ਼ ਵਿੱਚ ਟੈਬ ਸ਼ਾਮਲ ਕਰੋ</translation>
 <translation id="8830479210602243906">ਉਤਪਾਦਕਤਾ ਵਧਾਓ</translation>
 <translation id="883062543841130884">ਅਦਲਾ-ਬਦਲੀਆਂ</translation>
 <translation id="8830779999439981481">ਅੱਪਡੇਟਾਂ ਨੂੰ ਲਾਗੂ ਕਰਨ ਲਈ ਮੁੜ-ਸ਼ੁਰੂ ਕੀਤਾ ਜਾ ਰਿਹਾ ਹੈ</translation>
diff --git a/chrome/app/resources/generated_resources_pl.xtb b/chrome/app/resources/generated_resources_pl.xtb
index 0b17095..bf17585 100644
--- a/chrome/app/resources/generated_resources_pl.xtb
+++ b/chrome/app/resources/generated_resources_pl.xtb
@@ -4750,6 +4750,7 @@
 <translation id="4305402730127028764">Skopiuj na: <ph name="DEVICE_NAME" /></translation>
 <translation id="4305817255990598646">Przełącz</translation>
 <translation id="4306119971288449206">Aplikacje muszą być udostępniane z parametrem content-type „<ph name="CONTENT_TYPE" />”</translation>
+<translation id="4306489587293957491">Wpisz</translation>
 <translation id="4306810703452026910">Chrome przestanie oznaczać powiadomienia z tej witryny jako spam</translation>
 <translation id="4307992518367153382">Podstawowe</translation>
 <translation id="4309165024397827958">Pozwól na używanie lokalizacji Twojego urządzenia przez aplikacje i usługi Androida, które mają dostęp do lokalizacji. Możemy okresowo gromadzić dane i używać ich anonimowo, aby zwiększyć dokładność lokalizacji oraz usprawnić działanie usług opartych na lokalizacji.</translation>
@@ -4807,6 +4808,7 @@
 <translation id="4350230709416545141">Nigdy nie zezwalaj stronie <ph name="HOST" /> na dostęp do Twojej lokalizacji</translation>
 <translation id="4350782034419308508">OK Google</translation>
 <translation id="435185728237714178">Otwórz aplikację „<ph name="APP_NAME" />”, aby zarządzać aplikacjami zainstalowanymi i przesyłanymi strumieniowo.</translation>
+<translation id="4352913519324947509">Twoje hasło nie zostało zaktualizowane, ale nadal powinien być możliwy dostęp do witryny za pomocą obecnego hasła</translation>
 <translation id="4354073718307267720">Pytaj, gdy strona chce tworzyć mapę 3D otoczenia lub śledzić pozycję kamery</translation>
 <translation id="4354344420232759511">Tutaj pojawią się odwiedzone przez Ciebie strony</translation>
 <translation id="435527878592612277">Wybierz swoje zdjęcie</translation>
@@ -5964,7 +5966,6 @@
 <translation id="5186381005592669696">Dostosowywanie języka wyświetlania obsługiwanych aplikacji</translation>
 <translation id="5186788525428341874">Możesz używać tego klucza dostępu, aby szybciej logować się na różnych urządzeniach. Menedżer haseł Google zapisze je na koncie <ph name="ACCOUNT_NAME" />.</translation>
 <translation id="5187641678926990264">&amp;Zainstaluj stronę jako aplikację…</translation>
-<translation id="5187671830619031922">Dodaj kartę do widoku dzielonego</translation>
 <translation id="5187826826541650604"><ph name="KEY_NAME" /> (<ph name="DEVICE" />)</translation>
 <translation id="5188242000716462162">Udostępnia <ph name="USER_NAME" /></translation>
 <translation id="5188648870018555788">Używaj lokalizacji. Zezwól aplikacjom na ChromeOS i Androida oraz witrynom i usługom, które mają dostęp do lokalizacji, na używanie lokalizacji tego urządzenia. Ustawienie Dokładność lokalizacji zapewnia dokładniejszą lokalizację aplikacjom i usługom na Androida. W tym celu Google okresowo przetwarza dane z czujników urządzenia i sygnały bezprzewodowe z Twojego urządzenia do ustalania lokalizacji sygnałów bezprzewodowych na zasadzie crowdsourcingu. Dane są wykorzystywane – bez identyfikowania Cię – do poprawiania dokładności lokalizacji i usług wykorzystujących lokalizację, a także do udoskonalania, świadczenia i utrzymywania usług Google w oparciu o uzasadniony interes Google i innych firm w spełnianiu potrzeb użytkowników. <ph name="BEGIN_LINK1" />Więcej informacji o używaniu lokalizacji<ph name="END_LINK1" /></translation>
@@ -8294,6 +8295,7 @@
 <translation id="686831807558000905">Nie loguj się</translation>
 <translation id="686839242150793617">Z zezwoleniem na automatyczne włączanie obrazu w obrazie</translation>
 <translation id="6868934826811377550">Zobacz szczegóły</translation>
+<translation id="6870470066213933201">Zarządzanie optymalizacją i zabezpieczeniami JavaScriptu</translation>
 <translation id="6871644448911473373">Obiekt odpowiadający protokołu OCSP: <ph name="LOCATION" /></translation>
 <translation id="6871860225073478239">Języki…</translation>
 <translation id="6873571253135628430">Zmień uprawnienia do witryny</translation>
@@ -11076,7 +11078,6 @@
 <translation id="8827125715368568315">Zablokowano uprawnienia: <ph name="PERMISSION" /> i jeszcze <ph name="COUNT" /></translation>
 <translation id="8827289157496676362">Przypnij rozszerzenie</translation>
 <translation id="8828933418460119530">Nazwa DNS</translation>
-<translation id="8829979393064090868">Dodaj kartę do widoku dzielonego</translation>
 <translation id="8830479210602243906">Zwiększ produktywność</translation>
 <translation id="883062543841130884">Zamienniki</translation>
 <translation id="8830779999439981481">Uruchamiam ponownie, by zastosować aktualizacje</translation>
diff --git a/chrome/app/resources/generated_resources_pt-BR.xtb b/chrome/app/resources/generated_resources_pt-BR.xtb
index 102601f..8a65f5b 100644
--- a/chrome/app/resources/generated_resources_pt-BR.xtb
+++ b/chrome/app/resources/generated_resources_pt-BR.xtb
@@ -5997,7 +5997,6 @@
 <translation id="5186381005592669696">Personalizar o idioma de exibição dos apps com suporte</translation>
 <translation id="5186788525428341874">Você pode usar essa chave de acesso para fazer login mais rapidamente nos seus dispositivos. Ela vai ficar salva no Gerenciador de senhas da conta <ph name="ACCOUNT_NAME" />.</translation>
 <translation id="5187641678926990264">&amp;Instalar página como app…</translation>
-<translation id="5187671830619031922">Adicionar guia à visualização dividida</translation>
 <translation id="5187826826541650604"><ph name="KEY_NAME" /> (<ph name="DEVICE" />)</translation>
 <translation id="5188242000716462162">Compartilhado por <ph name="USER_NAME" /></translation>
 <translation id="5188648870018555788">Usar o local. Permitir que apps, sites e serviços do ChromeOS e do Android com permissão de localização usem o local do dispositivo. A Precisão de local fornece dados mais precisos para apps e serviços Android. Para isso, o Google processa periodicamente as informações sobre sensores de dispositivos e sinais sem fio do seu dispositivo para contribuir para a localização de sinais sem fio. Essas informações são usadas sem identificar você para melhorar a precisão e os serviços com base na localização e para melhorar, fornecer e manter os Serviços do Google com base nos interesses legítimos próprios e de terceiros para atender às necessidades dos usuários. <ph name="BEGIN_LINK1" />Saiba mais sobre o uso da localização.<ph name="END_LINK1" /></translation>
@@ -6910,7 +6909,7 @@
 <translation id="5857693745746757503">Economize US$ 50 ou mais em um novo Chromebook fazendo upgrade hoje mesmo</translation>
 <translation id="5858490737742085133">Terminal</translation>
 <translation id="585979798156957858">Meta externa</translation>
-<translation id="5860033963881614850">Desativada</translation>
+<translation id="5860033963881614850">Desativado</translation>
 <translation id="5860254591544742609">Mostrar barra de título</translation>
 <translation id="5860335608673904825">Pesquisa + Ctrl + Shift + <ph name="TOP_ROW_KEY" /></translation>
 <translation id="5860491529813859533">Ativar</translation>
@@ -9025,6 +9024,7 @@
 <translation id="7387951778417998929">Para usar outro mecanismo de pesquisa diferente do padrão, digite o atalho dele na barra de endereço seguido pelo atalho de teclado da sua preferência Também é possível mudar seu mecanismo de pesquisa padrão nesta página.</translation>
 <translation id="7388615499319468910">Sites e anunciantes podem medir a performance dos anúncios. Esta configuração está desativada.</translation>
 <translation id="738903649531469042">Adicionar guia à Lista de leitura</translation>
+<translation id="7389615853658756494">Mude no site</translation>
 <translation id="7392118418926456391">Falha na verificação de vírus</translation>
 <translation id="7392915005464253525">R&amp;eabrir janela fechada</translation>
 <translation id="7393073300870882456">{COUNT,plural, =1{1 item copiado}one{{COUNT} item copiado}other{{COUNT} itens copiados}}</translation>
@@ -9154,6 +9154,7 @@
 <translation id="7474043404939621342">Personalizar sua barra de ferramentas</translation>
 <translation id="747459581954555080">Restaurar todas</translation>
 <translation id="747507174130726364">{NUM_DAYS,plural, =1{Devolução imediata necessária}one{Devolva o <ph name="DEVICE_TYPE" /> em até {NUM_DAYS} dia}other{Devolva o <ph name="DEVICE_TYPE" /> em até {NUM_DAYS} dias}}</translation>
+<translation id="747557463733380256">Saiba como seu navegador é gerenciado</translation>
 <translation id="7475671414023905704">URL da senha perdida do Netscape</translation>
 <translation id="7475742997309661417">O leitor de tela no ChromeOS, o ChromeVox, é usado principalmente por pessoas cegas ou com baixa visão para ler textos exibidos na tela com um sintetizador de voz ou linha braille. Toque e pressione as duas teclas de volume por cinco segundos para ativar o ChromeVox. Quando o ChromeVox for ativado, vamos oferecer um tour rápido.</translation>
 <translation id="7476454130948140105">Bateria muito fraca para atualizar (<ph name="BATTERY_PERCENT" />%</translation>
@@ -9478,7 +9479,7 @@
 <translation id="7698507637739331665">Alguns itens estão bloqueados</translation>
 <translation id="7700516433658473670">Impressoras e scanners</translation>
 <translation id="7700873336634517379">Não, continuar usando este perfil para a escola</translation>
-<translation id="7701040980221191251">Não há</translation>
+<translation id="7701040980221191251">Nenhum</translation>
 <translation id="7701869757853594372">Processamentos do USUÁRIO</translation>
 <translation id="7702463352133825032">Parar de transmitir para <ph name="DEVICE_NAME" /></translation>
 <translation id="7704305437604973648">Tarefa</translation>
@@ -10303,6 +10304,7 @@
 <translation id="8265018477030547118">Somente neste dispositivo</translation>
 <translation id="826511437356419340">Iniciado modo de visão geral da janela. Deslize para navegar ou pressione Tab se estiver usando um teclado.</translation>
 <translation id="8265671588726449108">{COUNT,plural, =1{Sua janela anônima não será aberta novamente após a reinicialização}one{Sua {COUNT} janela anônima não será aberta novamente após a reinicialização}other{Suas {COUNT} janelas anônimas não serão abertas novamente após a reinicialização}}</translation>
+<translation id="8266430295499893285">Você precisa confirmar sua identidade antes de acessar as senhas</translation>
 <translation id="8266947622852630193">Todos os métodos de entrada</translation>
 <translation id="8267539814046467575">Adicionar impressora</translation>
 <translation id="8267961145111171918"><ph name="BEGIN_PARAGRAPH1" />Essas são informações gerais sobre esse dispositivo e como ele é utilizado (como nível da bateria, atividade do sistema e de apps e erros). Os dados serão usados para melhorar o Android, e algumas informações agregadas também ajudarão apps e parceiros do Google, como desenvolvedores do Android, que poderão melhorar os apps e produtos deles.<ph name="END_PARAGRAPH1" />
@@ -11113,7 +11115,6 @@
 <translation id="8827125715368568315">Bloqueados: <ph name="PERMISSION" /> e mais <ph name="COUNT" /></translation>
 <translation id="8827289157496676362">Fixe a extensão</translation>
 <translation id="8828933418460119530">Nome DNS</translation>
-<translation id="8829979393064090868">Adicionar guia à visualização dividida</translation>
 <translation id="8830479210602243906">Aumente a produtividade</translation>
 <translation id="883062543841130884">Substituições</translation>
 <translation id="8830779999439981481">Reiniciando para aplicar atualizações</translation>
diff --git a/chrome/app/resources/generated_resources_pt-PT.xtb b/chrome/app/resources/generated_resources_pt-PT.xtb
index a1b3cebe..278c0cc8 100644
--- a/chrome/app/resources/generated_resources_pt-PT.xtb
+++ b/chrome/app/resources/generated_resources_pt-PT.xtb
@@ -4769,6 +4769,7 @@
 <translation id="4305402730127028764">Copiar para <ph name="DEVICE_NAME" /></translation>
 <translation id="4305817255990598646">Mudar</translation>
 <translation id="4306119971288449206">As aplicações têm de ser publicadas com o tipo de conteúdo "<ph name="CONTENT_TYPE" />".</translation>
+<translation id="4306489587293957491">Introduzir</translation>
 <translation id="4306810703452026910">O Chrome vai deixar de sinalizar as notificações deste site como spam</translation>
 <translation id="4307992518367153382">Noções básicas</translation>
 <translation id="4309165024397827958">Permita que os serviços e apps Android com a autorização de acesso à localização utilizem a localização do seu dispositivo. A Google pode recolher periodicamente dados de localização e utilizar estes dados anonimamente para melhorar a precisão da localização e os serviços baseados na localização.</translation>
@@ -4826,6 +4827,7 @@
 <translation id="4350230709416545141">Impedir sempre que <ph name="HOST" /> aceda à sua localização</translation>
 <translation id="4350782034419308508">OK Google</translation>
 <translation id="435185728237714178">Aceda à app "<ph name="APP_NAME" />" para gerir as apps instaladas e em stream</translation>
+<translation id="4352913519324947509">A sua palavra-passe não foi alterada, mas ainda deve conseguir aceder ao site com a palavra-passe atual</translation>
 <translation id="4354073718307267720">Perguntar quando um site pretender criar um mapa 3D do ambiente à sua volta ou monitorizar a posição da câmara</translation>
 <translation id="4354344420232759511">Os sites que visitar aparecem aqui</translation>
 <translation id="435527878592612277">Selecionar a sua foto</translation>
@@ -5984,7 +5986,6 @@
 <translation id="5186381005592669696">Personalize o idioma de apresentação das apps suportadas</translation>
 <translation id="5186788525428341874">Pode usar esta chave de acesso para iniciar sessão mais rapidamente nos seus dispositivos. Vai ser guardada no Gestor de Palavras-passe da Google de <ph name="ACCOUNT_NAME" />.</translation>
 <translation id="5187641678926990264">&amp;Instalar página como app…</translation>
-<translation id="5187671830619031922">Adicionar separador à vista dividida</translation>
 <translation id="5187826826541650604"><ph name="KEY_NAME" /> (<ph name="DEVICE" />)</translation>
 <translation id="5188242000716462162">Partilhado por <ph name="USER_NAME" /></translation>
 <translation id="5188648870018555788">Use a localização. Permita que os serviços, os Websites e as apps Android e ChromeOS com a autorização de acesso à localização usem a localização do seu dispositivo. A Precisão da localização oferece uma localização mais precisa para serviços e apps Android. Para isso, a Google trata periodicamente informações sobre os sensores e os sinais sem fios do dispositivo para recolher localizações de sinais sem fios. Estas são usadas sem identificar o utilizador para melhorar a Precisão da localização e os serviços baseados na localização, bem como para melhorar, oferecer e manter os serviços Google com base nos interesses legítimos da Google e de terceiros, atendendo às necessidades dos utilizadores. <ph name="BEGIN_LINK1" />Saiba mais acerca da utilização da localização<ph name="END_LINK1" /></translation>
@@ -8315,6 +8316,7 @@
 <translation id="686831807558000905">Não iniciar sessão</translation>
 <translation id="686839242150793617">Com permissão para entrar automaticamente no modo ecrã no ecrã</translation>
 <translation id="6868934826811377550">Ver detalhes</translation>
+<translation id="6870470066213933201">Faça a gestão da otimização e da segurança do JavaScript</translation>
 <translation id="6871644448911473373">Serviço de resposta de OCSP: <ph name="LOCATION" /></translation>
 <translation id="6871860225073478239">Idiomas…</translation>
 <translation id="6873571253135628430">Altere as autorizações de sites</translation>
@@ -11100,7 +11102,6 @@
 <translation id="8827125715368568315">Bloqueou <ph name="PERMISSION" /> e mais <ph name="COUNT" /></translation>
 <translation id="8827289157496676362">Afixar extensão</translation>
 <translation id="8828933418460119530">Nome de DNS</translation>
-<translation id="8829979393064090868">Adicionar separador à vista dividida</translation>
 <translation id="8830479210602243906">Aumentar produtividade</translation>
 <translation id="883062543841130884">Substituições</translation>
 <translation id="8830779999439981481">A reiniciar para aplicar as atualizações…</translation>
diff --git a/chrome/app/resources/generated_resources_ro.xtb b/chrome/app/resources/generated_resources_ro.xtb
index 493cedde..fb90394 100644
--- a/chrome/app/resources/generated_resources_ro.xtb
+++ b/chrome/app/resources/generated_resources_ro.xtb
@@ -4768,6 +4768,7 @@
 <translation id="4305402730127028764">Copiază pe <ph name="DEVICE_NAME" /></translation>
 <translation id="4305817255990598646">Comută</translation>
 <translation id="4306119971288449206">Aplicațiile trebuie să fie difuzate utilizând antetul content-type „<ph name="CONTENT_TYPE" />”</translation>
+<translation id="4306489587293957491">Introdu</translation>
 <translation id="4306810703452026910">Chrome nu va mai semnala notificările de la acest site ca spam</translation>
 <translation id="4307992518367153382">Elemente de bază</translation>
 <translation id="4309165024397827958">Permite ca serviciile și aplicațiile pentru Android cu permisiune pentru locație să folosească locația dispozitivului. Google poate să culeagă periodic date despre locație și să le folosească în mod anonim pentru a îmbunătăți precizia localizării și a serviciilor bazate pe locație.</translation>
@@ -4825,6 +4826,7 @@
 <translation id="4350230709416545141">Blochează întotdeauna accesul <ph name="HOST" /> la locație</translation>
 <translation id="4350782034419308508">Ok Google</translation>
 <translation id="435185728237714178">Accesează aplicația <ph name="APP_NAME" /> pentru a gestiona aplicațiile instalate și redate în stream</translation>
+<translation id="4352913519324947509">Parola nu s-a modificat, dar ar trebui să poți accesa în continuare site-ul cu parola actuală</translation>
 <translation id="4354073718307267720">Anunță-mă dacă un site vrea să creeze o hartă 3D a lucrurilor din jur sau să urmărească poziția camerei video</translation>
 <translation id="4354344420232759511">Site-urile pe care le accesezi apar aici</translation>
 <translation id="435527878592612277">Selectează fotografia</translation>
@@ -5982,7 +5984,6 @@
 <translation id="5186381005592669696">Personalizează limba de afișare pentru aplicațiile compatibile</translation>
 <translation id="5186788525428341874">Poți folosi această cheie de acces ca să te conectezi mai rapid pe toate dispozitivele tale. Ea se va salva în Managerul de parole Google pentru <ph name="ACCOUNT_NAME" />.</translation>
 <translation id="5187641678926990264">&amp;Instalează pagina ca aplicație...</translation>
-<translation id="5187671830619031922">Adaugă o filă la afișarea împărțită</translation>
 <translation id="5187826826541650604"><ph name="KEY_NAME" /> (<ph name="DEVICE" />)</translation>
 <translation id="5188242000716462162">Distribuită de <ph name="USER_NAME" /></translation>
 <translation id="5188648870018555788">Folosește locația. Permite aplicațiilor, site-urilor și serviciilor ChromeOS și Android cu permisiune pentru locație să folosească locația acestui dispozitiv. Precizia locației afișează locația mai precisă pentru aplicațiile și serviciile Android. În acest scop, Google prelucrează periodic informații despre senzorii și semnalele wireless de la dispozitivul tău, pentru a obține locația semnalelor wireless prin crowdsourcing. Acestea se folosesc fără a te identifica, pentru a îmbunătăți precizia locației și serviciile bazate pe locație și pentru a îmbunătăți, a oferi și a întreține serviciile Google în scopul intereselor legitime ale companiei Google și ale terților de a deservi nevoile utilizatorilor. <ph name="BEGIN_LINK1" />Află mai multe despre folosirea locației<ph name="END_LINK1" /></translation>
@@ -8313,6 +8314,7 @@
 <translation id="686831807558000905">Nu mă conectez</translation>
 <translation id="686839242150793617">Au permisiunea de a intra automat în modul picture-in-picture</translation>
 <translation id="6868934826811377550">Afișează detaliile</translation>
+<translation id="6870470066213933201">Gestionează optimizarea și securitatea JavaScript</translation>
 <translation id="6871644448911473373">Respondent OCSP: <ph name="LOCATION" /></translation>
 <translation id="6871860225073478239">Limbi...</translation>
 <translation id="6873571253135628430">Modifică permisiunile site-urilor</translation>
@@ -9008,6 +9010,7 @@
 <translation id="7387951778417998929">Pentru a folosi alt motor de căutare decât cel prestabilit, introdu comanda rapidă respectivă în bara de adrese, urmată de comanda rapidă de la tastatură preferată. Poți să schimbi motorul de căutare prestabilit și de aici.</translation>
 <translation id="7388615499319468910">Site-urile și advertiserii pot să afle despre performanța anunțurilor. Setarea este dezactivată.</translation>
 <translation id="738903649531469042">Adaugă fila în lista de lectură</translation>
+<translation id="7389615853658756494">Modifică pe site</translation>
 <translation id="7392118418926456391">Scanarea antivirus nu a reușit</translation>
 <translation id="7392915005464253525">R&amp;edeschide fereastra închisă</translation>
 <translation id="7393073300870882456">{COUNT,plural, =1{Un element copiat}few{{COUNT} elemente copiate}other{{COUNT} de elemente copiate}}</translation>
@@ -9137,6 +9140,7 @@
 <translation id="7474043404939621342">Personalizează bara de instrumente</translation>
 <translation id="747459581954555080">Restabilește-le pe toate</translation>
 <translation id="747507174130726364">{NUM_DAYS,plural, =1{Este necesară returnarea imediată}few{Returnează acest <ph name="DEVICE_TYPE" /> în cel mult {NUM_DAYS} zile}other{Returnează acest <ph name="DEVICE_TYPE" /> în cel mult {NUM_DAYS} de zile}}</translation>
+<translation id="747557463733380256">Află mai multe despre gestionarea browserului</translation>
 <translation id="7475671414023905704">Adresă URL pentru parolă pierdută Netscape</translation>
 <translation id="7475742997309661417">Cititorul de ecran din ChromeOS, ChromeVox, este folosit în principal de persoane oarbe sau cu vedere slabă pentru a citi textul afișat pe ecran cu un sintetizator vocal sau un afișaj Braille. Apasă lung ambele butoane de volum timp de cinci secunde pentru a activa ChromeVox. Când ChromeVox este activat, vei face un tur rapid.</translation>
 <translation id="7476454130948140105">Bateria este prea descărcată pentru actualizare (<ph name="BATTERY_PERCENT" />%)</translation>
@@ -10286,6 +10290,7 @@
 <translation id="8265018477030547118">Numai pe acest dispozitiv</translation>
 <translation id="826511437356419340">S-a trecut în modul de prezentare a ferestrei. Glisează pentru a naviga sau apasă tasta Tab dacă folosești tastatura.</translation>
 <translation id="8265671588726449108">{COUNT,plural, =1{Fereastra incognito nu se va deschide după relansare}few{{COUNT} ferestre incognito nu se vor deschide după relansare}other{{COUNT} de ferestre incognito nu se vor deschide după relansare}}</translation>
+<translation id="8266430295499893285">Trebuie să-ți confirmi identitatea înainte de a-ți accesa parolele</translation>
 <translation id="8266947622852630193">Toate metodele de introducere a textului</translation>
 <translation id="8267539814046467575">Adaugă o imprimantă</translation>
 <translation id="8267961145111171918"><ph name="BEGIN_PARAGRAPH1" />Acestea sunt informații generale despre dispozitiv și despre cum îl folosești (cum ar fi nivelul bateriei, cât de des folosești aplicațiile, activitatea sistemului și erorile). Datele vor fi folosite pentru îmbunătățirea Android și unele informații agregate vor ajuta aplicațiile Google și partenerii, cum ar fi dezvoltatorii Android, să își îmbunătățească aplicațiile și produsele.<ph name="END_PARAGRAPH1" />
@@ -11096,7 +11101,6 @@
 <translation id="8827125715368568315">Permisiuni blocate: <ph name="PERMISSION" /> și încă <ph name="COUNT" /></translation>
 <translation id="8827289157496676362">Fixează extensia</translation>
 <translation id="8828933418460119530">Nume DNS</translation>
-<translation id="8829979393064090868">Adaugă o filă la afișarea împărțită</translation>
 <translation id="8830479210602243906">Sporește productivitatea</translation>
 <translation id="883062543841130884">Înlocuiri</translation>
 <translation id="8830779999439981481">Se repornește pentru aplicarea actualizărilor</translation>
diff --git a/chrome/app/resources/generated_resources_ru.xtb b/chrome/app/resources/generated_resources_ru.xtb
index a89caa2..de10465d 100644
--- a/chrome/app/resources/generated_resources_ru.xtb
+++ b/chrome/app/resources/generated_resources_ru.xtb
@@ -5984,7 +5984,6 @@
 <translation id="5186381005592669696">Выбрать язык интерфейса для поддерживаемых приложений</translation>
 <translation id="5186788525428341874">Этот ключ доступа можно использовать для быстрого входа в аккаунт на ваших устройствах. Он будет сохранен в Google Менеджере паролей для аккаунта <ph name="ACCOUNT_NAME" />.</translation>
 <translation id="5187641678926990264">&amp;Установить страницу как приложение…</translation>
-<translation id="5187671830619031922">Добавить вкладку в режим Split View</translation>
 <translation id="5187826826541650604"><ph name="KEY_NAME" /> (<ph name="DEVICE" />)</translation>
 <translation id="5188242000716462162">Кто поделился: <ph name="USER_NAME" /></translation>
 <translation id="5188648870018555788">Использование геолокации. Разрешите использовать геолокацию устройства сайтам, приложениям и сервисам (в ChromeOS и Android), у которых есть доступ к данным о местоположении. Функция "Точность геолокации" позволяет приложениям и сервисам получать более корректную информацию о местоположении. Для этого Google собирает общую базу местоположений беспроводных сигналов, используя периодически получаемые с устройств данные о датчиках и беспроводной связи. Эти анонимные сведения позволяют повышать точность геолокации и совершенствовать сервисы, использующие информацию о местоположении, а также улучшать, предоставлять и поддерживать наши сервисы в соответствии с законными интересами Google и третьих лиц для удовлетворения потребностей пользователей. <ph name="BEGIN_LINK1" />Подробнее об использовании данных о местоположении…<ph name="END_LINK1" /></translation>
@@ -11107,7 +11106,6 @@
 <translation id="8827125715368568315">Отключены разрешения: <ph name="PERMISSION" /> и ещё <ph name="COUNT" /></translation>
 <translation id="8827289157496676362">Закрепить расширение</translation>
 <translation id="8828933418460119530">DNS-имя</translation>
-<translation id="8829979393064090868">Добавить вкладку в режим Split View</translation>
 <translation id="8830479210602243906">Повышение эффективности работы</translation>
 <translation id="883062543841130884">Замены</translation>
 <translation id="8830779999439981481">Перезагрузка…</translation>
diff --git a/chrome/app/resources/generated_resources_si.xtb b/chrome/app/resources/generated_resources_si.xtb
index d5b582d..2bd1074 100644
--- a/chrome/app/resources/generated_resources_si.xtb
+++ b/chrome/app/resources/generated_resources_si.xtb
@@ -5984,7 +5984,6 @@
 <translation id="5186381005592669696">සහාය දක්වන යෙදුම් සඳහා සංදර්ශක භාෂාව අභිරුචිකරණය කරන්න</translation>
 <translation id="5186788525428341874">ඔබට ඔබේ උපාංග පුරා ඉතා වේගයෙන් පුරන්නට මෙම මුරයතුර භාවිත කළ හැක. එය <ph name="ACCOUNT_NAME" /> සඳහා වන Google මුරපද කළමනාකරු වෙත සුරකිනු ලැබේ.</translation>
 <translation id="5187641678926990264">පිටුව යෙදුම ලෙස ස්ථාපන කරන්න...</translation>
-<translation id="5187671830619031922">බෙදීම් දසුනට පටිත්ත එක් කරන්න</translation>
 <translation id="5187826826541650604"><ph name="KEY_NAME" /> (<ph name="DEVICE" />)</translation>
 <translation id="5188242000716462162">බෙදා ගත්තේ <ph name="USER_NAME" /></translation>
 <translation id="5188648870018555788">ස්ථානය භාවිත කරන්න. ChromeOS සහ Android යෙදුම්වලට, වෙබ් අඩවිවලට, සහ සේවාවලට ඔබේ උපාංගයේ ස්ථානය භාවිත කිරීමට අවසර දෙන්න. ස්ථාන නිරවද්‍යතාව Android යෙදුම් සහ සේවා සඳහා ඉතා නිරවද්‍ය ස්ථානය සපයයි. මෙය කිරීමට, Google උපාංග සංවේදක සහ ඔබේ උපාංගයෙන් ලැබෙන රැහැන් රහිත සංඥා පිළිබඳ තොරතුරු රැහැන් රහිත සංඥා ස්ථානවලට ක්‍රවුඩ්සෝස් කිරීමට කලින් කල සැකසුම් කරයි. මේවා ඔබව හඳුනා නොගෙන ස්ථාන නිරවද්‍යතාව සහ ස්ථාන පාදක සේවා දියුණු කිරීමට සහ පරිශීලකයින්ගේ අවශ්‍යතා ඉටු කිරීමට Google හි සහ තෙවන පාර්ශවවල නීත්‍යානුකූල ලැදිකම්වලට අනුව Google හි සේවා දියුණු කිරීමට, සැපයීමට, සහ නඩත්තු කිරීමට භාවිත කරනු ලැබේ. <ph name="BEGIN_LINK1" />ස්ථානය භාවිත කිරීම ගැන තව දැන ගන්න<ph name="END_LINK1" /></translation>
@@ -11094,7 +11093,6 @@
 <translation id="8827125715368568315"><ph name="PERMISSION" /> සහ තවත් <ph name="COUNT" />ක් අවහිර කරන ලදි</translation>
 <translation id="8827289157496676362">දිගුව අමුණන්න</translation>
 <translation id="8828933418460119530">DNS නම</translation>
-<translation id="8829979393064090868">බෙදීම් දසුනට පටිත්ත එක් කරන්න</translation>
 <translation id="8830479210602243906">ඵලදායිතාව වැඩි කරන්න</translation>
 <translation id="883062543841130884">ආදේශන</translation>
 <translation id="8830779999439981481">යාවත්කාලීන යෙදීමට ආරම්භ කරමින්</translation>
diff --git a/chrome/app/resources/generated_resources_sk.xtb b/chrome/app/resources/generated_resources_sk.xtb
index 5c29711..b38f41a3 100644
--- a/chrome/app/resources/generated_resources_sk.xtb
+++ b/chrome/app/resources/generated_resources_sk.xtb
@@ -5984,7 +5984,6 @@
 <translation id="5186381005592669696">Prispôsobenie jazyka zobrazenia podporovaných aplikácií</translation>
 <translation id="5186788525428341874">Týmto prístupovým kľúčom sa môžete prihlasovať vo svojich zariadeniach rýchlejšie. Uloží sa do Správcu hesiel Google pre <ph name="ACCOUNT_NAME" />.</translation>
 <translation id="5187641678926990264">&amp;Inštalovať stránku ako aplikáciu…</translation>
-<translation id="5187671830619031922">Pridať kartu do rozdeleného zobrazenia</translation>
 <translation id="5187826826541650604"><ph name="KEY_NAME" /> (<ph name="DEVICE" />)</translation>
 <translation id="5188242000716462162">Zdieľané používateľom <ph name="USER_NAME" /></translation>
 <translation id="5188648870018555788">Používať polohu Povoľte aplikáciám, webom a službám pre ChromeOS a Android s povoleným prístupom k polohe používať polohu vášho zariadenia. Presnosť určovania polohy poskytuje aplikáciám aj službám pre Android presnejšiu polohu. Google na tento účel pravidelne spracúva informácie o senzoroch zariadení a bezdrôtových signáloch z vášho zariadenia, aby zaistil crowdsourcing polôh bezdrôtového signálu. Používajú sa bez toho, aby umožňovali zistenie vašej totožnosti, na účely zlepšenia presnosti určovania polohy a služieb podmienených polohou, ale aj zlepšenia, poskytovania a udržiavania služieb Googlu na základe oprávnených záujmov Googlu a tretích strán pri uspokojovaní potrieb používateľov. <ph name="BEGIN_LINK1" />Ďalšie informácie o používaní polohy<ph name="END_LINK1" /></translation>
@@ -9012,6 +9011,7 @@
 <translation id="7387951778417998929">Ak chcete použiť iný ako predvolený vyhľadávač, napíšte do panela s adresou jeho skratku a potom stlačte preferovanú klávesovú skratku. Môžete tu aj zmeniť svoj predvolený vyhľadávač.</translation>
 <translation id="7388615499319468910">Weby a inzerenti môžu porozumieť výkonnosti reklám. Toto nastavenie je vypnuté.</translation>
 <translation id="738903649531469042">Pridať kartu do čitateľského zoznamu</translation>
+<translation id="7389615853658756494">Zmeniť na webe</translation>
 <translation id="7392118418926456391">Antivírusová kontrola zlyhala</translation>
 <translation id="7392915005464253525">Znovu o&amp;tvoriť zatvorené okno</translation>
 <translation id="7393073300870882456">{COUNT,plural, =1{Bola skopírovaná 1 položka}few{Boli skopírované {COUNT} položky}many{{COUNT} items copied}other{Bolo skopírovaných {COUNT} položiek}}</translation>
@@ -9140,6 +9140,7 @@
 <translation id="7474043404939621342">Prispôsobiť panel s nástrojmi</translation>
 <translation id="747459581954555080">Obnoviť všetko</translation>
 <translation id="747507174130726364">{NUM_DAYS,plural, =1{Vyžaduje sa okamžité vrátenie}few{Vráťte <ph name="DEVICE_TYPE" /> do {NUM_DAYS} dní}many{Vráťte <ph name="DEVICE_TYPE" /> do {NUM_DAYS} dňa}other{Vráťte <ph name="DEVICE_TYPE" /> do {NUM_DAYS} dní}}</translation>
+<translation id="747557463733380256">Informácie o tom, ako je prehliadač spravovaný</translation>
 <translation id="7475671414023905704">Netscape – webová adresa pre zabudnuté heslo</translation>
 <translation id="7475742997309661417">Čítačku obrazovky ChromeVox v systéme ChromeOS používajú predovšetkým nevidiaci a slabozrakí. Umožňuje im čítať text na obrazovke pomocou rečového syntetizéra alebo Braillovho displeja. Zapnete ju pridržaním oboch tlačidiel hlasitosti na päť sekúnd. Po aktivácii vás prevedie krátkou prehliadkou.</translation>
 <translation id="7476454130948140105">Batéria je príliš slabá na aktualizáciu (<ph name="BATTERY_PERCENT" /> %)</translation>
@@ -10289,6 +10290,7 @@
 <translation id="8265018477030547118">Iba v tomto zariadení</translation>
 <translation id="826511437356419340">Vstúpili ste do režimu prehľadu okien. Prechádzajte potiahnutím alebo ak používate klávesnicu, stlačte kláves Tab.</translation>
 <translation id="8265671588726449108">{COUNT,plural, =1{Po opätovnom spustení sa okno inkognito neotvorí}few{Po opätovnom spustení sa {COUNT} okná inkognito neotvoria}many{Your {COUNT} Incognito windows won't reopen after you relaunch}other{Po opätovnom spustení sa {COUNT} okien inkognito neotvorí}}</translation>
+<translation id="8266430295499893285">Ak chcete získať prístup k svojim heslám, musíte overiť svoju totožnosť</translation>
 <translation id="8266947622852630193">Všetky metódy vstupu</translation>
 <translation id="8267539814046467575">Pridať tlačiareň</translation>
 <translation id="8267961145111171918"><ph name="BEGIN_PARAGRAPH1" />Ide o všeobecné informácie o vašom zariadení a o tom, ako ho používate (napríklad stav batérie, aktivita systému, aktivita v aplikáciách a chyby). Tieto údaje sa použijú na zlepšenie Androidu a niektoré súhrnné informácie tiež pomôžu aplikáciám Google a partnerom, ako sú vývojári systému Android, zlepšovať svoje aplikácie a produkty.<ph name="END_PARAGRAPH1" />
@@ -11100,7 +11102,6 @@
 <translation id="8827125715368568315">Je blokované povolenie <ph name="PERMISSION" /> a ďalšie (<ph name="COUNT" />)</translation>
 <translation id="8827289157496676362">Pripnúť rozšírenie</translation>
 <translation id="8828933418460119530">Názov DNS</translation>
-<translation id="8829979393064090868">Pridať kartu do rozdeleného zobrazenia</translation>
 <translation id="8830479210602243906">Zvýšiť produktivitu</translation>
 <translation id="883062543841130884">Substitúcie</translation>
 <translation id="8830779999439981481">Reštartuje sa a inštalujú sa aktualizácie</translation>
diff --git a/chrome/app/resources/generated_resources_sl.xtb b/chrome/app/resources/generated_resources_sl.xtb
index 50c6f324..85c7f2c 100644
--- a/chrome/app/resources/generated_resources_sl.xtb
+++ b/chrome/app/resources/generated_resources_sl.xtb
@@ -5999,7 +5999,6 @@
 <translation id="5186381005592669696">Prilagajanje jezika prikaza za podprte aplikacije</translation>
 <translation id="5186788525428341874">Ta ključ za dostop lahko uporabite za hitrejšo prijavo v napravah. Shranjen bo v Googlovem upravitelju gesel za račun <ph name="ACCOUNT_NAME" />.</translation>
 <translation id="5187641678926990264">&amp;Namesti stran kot aplikacijo …</translation>
-<translation id="5187671830619031922">Dodajanje zavihka v razdeljeni pogled</translation>
 <translation id="5187826826541650604"><ph name="KEY_NAME" /> (<ph name="DEVICE" />)</translation>
 <translation id="5188242000716462162">Delil(-a): <ph name="USER_NAME" /></translation>
 <translation id="5188648870018555788">Uporaba lokacije. Aplikacijam za ChromeOS in Android, spletnim mestom in storitvam z dovoljenjem za lokacijo dovolite uporabo lokacije naprave. Natančnost zaznavanja lokacije zagotavlja natančnejšo lokacijo za aplikacije in storitve. Google to naredi tako, da redno obdeluje podatke o tipalih naprav in brezžične signale iz naprave ter tako množično zbere lokacije brezžičnih signalov. Ti se uporabljajo brez vaše prepoznave zaradi izboljšanja natančnosti zaznavanja lokacije in storitev na podlagi lokacije zaradi izboljšanja, zagotavljanja in vzdrževanja Googlovih storitev glede na zakonite interese Googla in tretjih oseb za izpolnjevanje potreb uporabnikov. <ph name="BEGIN_LINK1" />Preberite več o uporabi lokacije<ph name="END_LINK1" /></translation>
@@ -9032,6 +9031,7 @@
 <translation id="7387951778417998929">Če želite uporabiti iskalnik, ki ni privzet, v naslovno vrstico vnesite ustrezno bližnjico, ki ji sledijo želene bližnjične tipke. Tu lahko spremenite tudi privzeti iskalnik.</translation>
 <translation id="7388615499319468910">Spletna mesta in oglaševalci lahko razumejo, kako delujejo oglasi. Ta nastavitev je izklopljena.</translation>
 <translation id="738903649531469042">Dodaj zavihek na bralni seznam</translation>
+<translation id="7389615853658756494">Spremenite ga na spletnem mestu</translation>
 <translation id="7392118418926456391">Protivirusni pregled ni uspel</translation>
 <translation id="7392915005464253525">&amp;Znova odpri zaprto okno</translation>
 <translation id="7393073300870882456">{COUNT,plural, =1{1 kopiran element}one{{COUNT} kopiran element}two{{COUNT} kopirana elementa}few{{COUNT} kopirani elementi}other{{COUNT} kopiranih elementov}}</translation>
@@ -9161,6 +9161,7 @@
 <translation id="7474043404939621342">Prilagodi orodno vrstico</translation>
 <translation id="747459581954555080">Obnovi vse</translation>
 <translation id="747507174130726364">{NUM_DAYS,plural, =1{Zahtevana je takojšnja vrnitev}one{Napravo <ph name="DEVICE_TYPE" /> vrnite v {NUM_DAYS} dnevu}two{Napravo <ph name="DEVICE_TYPE" /> vrnite v {NUM_DAYS} dnevih}few{Napravo <ph name="DEVICE_TYPE" /> vrnite v {NUM_DAYS} dnevih}other{Napravo <ph name="DEVICE_TYPE" /> vrnite v {NUM_DAYS} dnevih}}</translation>
+<translation id="747557463733380256">Preberite več o upravljanju brskalnika</translation>
 <translation id="7475671414023905704">Spletni naslov izgubljenega Netscapeovega gesla</translation>
 <translation id="7475742997309661417">Bralnik zaslona v sistemu ChromeOS ali ChromeVox uporabljajo predvsem slepi in slabovidni uporabniki za branje besedila, prikazanega na zaslonu, s sintetizatorjem govora ali na zaslonu braille. Če želite vklopiti ChromeVox, za pet sekund pridržite obe tipki za glasnost. Ko bo ChromeVox aktiviran, bo prikazana kratka predstavitev.</translation>
 <translation id="7476454130948140105">Akumulator ima premalo energije za posodobitev (<ph name="BATTERY_PERCENT" /> %)</translation>
@@ -10310,6 +10311,7 @@
 <translation id="8265018477030547118">Samo v tej napravi</translation>
 <translation id="826511437356419340">Izbran je način pregleda okna. Povlecite, če se želite premikati, ali pritisnite tabulatorko, če uporabljate tipkovnico.</translation>
 <translation id="8265671588726449108">{COUNT,plural, =1{Anonimno okno se ne bo odprlo po vnovičnem zagonu.}one{{COUNT} anonimno okno se ne bo znova odprlo po vnovičnem zagonu.}two{{COUNT} anonimni okni se ne bosta znova odprli po vnovičnem zagonu.}few{{COUNT} anonimna okna se ne bodo znova odprla po vnovičnem zagonu.}other{{COUNT} anonimnih oken se ne bo znova odprlo po vnovičnem zagonu.}}</translation>
+<translation id="8266430295499893285">Preden lahko dostopate do gesel, morate potrditi, da ste to vi</translation>
 <translation id="8266947622852630193">Vsi načini vnosa</translation>
 <translation id="8267539814046467575">Dodajanje tiskalnika</translation>
 <translation id="8267961145111171918"><ph name="BEGIN_PARAGRAPH1" />To so splošni podatki o napravi in tem, kako jo uporabljate (na primer raven napolnjenosti akumulatorja, dejavnost sistema in aplikacij ter napake). Podatki bodo uporabljeni za izboljšanje Androida, nekateri združeni podatki pa bodo v pomoč Googlovim aplikacijam in partnerjem, kot so razvijalci za Android, pri izboljšanju aplikacij in izdelkov.<ph name="END_PARAGRAPH1" />
@@ -11122,7 +11124,6 @@
 <translation id="8827125715368568315">Blokirano: <ph name="PERMISSION" /> in še <ph name="COUNT" /></translation>
 <translation id="8827289157496676362">Pripenjanje razširitve</translation>
 <translation id="8828933418460119530">Ime DNS</translation>
-<translation id="8829979393064090868">Dodajanje zavihka v razdeljeni pogled</translation>
 <translation id="8830479210602243906">Povečajte storilnost</translation>
 <translation id="883062543841130884">Zamenjave</translation>
 <translation id="8830779999439981481">Vnovični zagon za uporabo posodobitev</translation>
diff --git a/chrome/app/resources/generated_resources_sq.xtb b/chrome/app/resources/generated_resources_sq.xtb
index 7e0b61b2..c7b2d72 100644
--- a/chrome/app/resources/generated_resources_sq.xtb
+++ b/chrome/app/resources/generated_resources_sq.xtb
@@ -5978,7 +5978,6 @@
 <translation id="5186381005592669696">Personalizo gjuhën e ekranit për aplikacionet e mbështetura</translation>
 <translation id="5186788525428341874">Mund ta përdorësh këtë çelës kalimi për t'u identifikuar më shpejt në pajisjet e tua. Ai do të ruhet te "Menaxheri i fjalëkalimeve i Google" për <ph name="ACCOUNT_NAME" />.</translation>
 <translation id="5187641678926990264">&amp;Instalo faqen si aplikacion...</translation>
-<translation id="5187671830619031922">Shto skedën në pamjen e ndarë</translation>
 <translation id="5187826826541650604"><ph name="KEY_NAME" /> (<ph name="DEVICE" />)</translation>
 <translation id="5188242000716462162">Ndarë nga <ph name="USER_NAME" /></translation>
 <translation id="5188648870018555788">Përdor vendndodhjen. Lejo që aplikacionet, uebsajtet dhe shërbimet e ChromeOS dhe Android që kanë lejen për vendndodhjen të përdorin vendndodhjen e pajisjes sate. "Saktësia e vendndodhjes" ofron vendndodhje më të saktë për shërbimet dhe aplikacionet për Android. Për ta bërë këtë, Google përpunon në mënyrë periodike informacionet për sensorët e pajisjes dhe sinjalet wireless nga pajisja jote për të mbledhur vendndodhjet e sinjaleve wireless. Këto përdoren pa të të identifikuar ty për të përmirësuar saktësinë e vendndodhjes dhe shërbimet bazuar te vendndodhja, si dhe për të përmirësuar, ofruar dhe mirëmbajtur shërbimet e Google bazuar në interesat legjitimë të Google dhe të palëve të treta për t'u shërbyer nevojave të përdoruesve. <ph name="BEGIN_LINK1" />Mëso më shumë rreth përdorimit të vendndodhjes<ph name="END_LINK1" /></translation>
@@ -9001,6 +9000,7 @@
 <translation id="7387951778417998929">Për të përdorur një motor kërkimi të ndryshëm nga ai i parazgjedhur, shkruaj shkurtoren e tij në shiritin e adresave, të ndjekur nga shkurtorja jote e preferuar e tastierës. Mund ta ndryshosh po ashtu motorin tënd të parazgjedhur të kërkimit këtu.</translation>
 <translation id="7388615499319468910">Sajtet dhe reklamuesit mund të kuptojnë se si funksionojnë reklamat. Ky cilësim është joaktiv.</translation>
 <translation id="738903649531469042">Shtoje skedën te lista e leximit</translation>
+<translation id="7389615853658756494">Ndryshoje në sajt</translation>
 <translation id="7392118418926456391">Skanimi për viruse dështoi</translation>
 <translation id="7392915005464253525">H&amp;ape sërish dritaren e mbyllur</translation>
 <translation id="7393073300870882456">{COUNT,plural, =1{U kopjua 1 artikull}other{U kopjuan {COUNT} artikuj}}</translation>
@@ -9130,6 +9130,7 @@
 <translation id="7474043404939621342">Personalizo shiritin e veglave</translation>
 <translation id="747459581954555080">Restauroji të gjitha</translation>
 <translation id="747507174130726364">{NUM_DAYS,plural, =1{Kërkohet kthimi i menjëhershëm}other{Ktheje pajisjen <ph name="DEVICE_TYPE" /> brenda {NUM_DAYS} ditësh}}</translation>
+<translation id="747557463733380256">Mëso se si menaxhohet shfletuesi yt</translation>
 <translation id="7475671414023905704">URL-ja e Netscape për humbjen e fjalëkalimit</translation>
 <translation id="7475742997309661417">Lexuesi i ekranit në ChromeOS, ChromeVox, përdoret kryesisht nga personat e verbër ose me shikim të dobët për të lexuar tekstin e shfaqur në ekran me një sintetizues të ligjërimit ose me një ekran breil. Shtyp dhe mbaj shtypur të dyja tastet e volumit për pesë sekonda për të aktivizuar ChromeVox. Kur të aktivizohet ChromeVox, do të kryesh një udhëzues të shpejtë.</translation>
 <translation id="7476454130948140105">Niveli i baterisë është shumë i ulët për përditësimin (<ph name="BATTERY_PERCENT" />%)</translation>
@@ -10277,6 +10278,7 @@
 <translation id="8265018477030547118">Vetëm në këtë pajisje</translation>
 <translation id="826511437356419340">Hyre në modalitetin e përmbledhjes së dritares. Rrëshqit shpejt për të naviguar ose shtyp Tab nëse po përdor një tastierë.</translation>
 <translation id="8265671588726449108">{COUNT,plural, =1{Dritarja jote "e fshehtë" nuk do të hapet pasi ta nisësh sërish}other{{COUNT} dritaret e tua "të fshehta" nuk do të rihapen pasi ta nisësh sërish.}}</translation>
+<translation id="8266430295499893285">Duhet të verifikosh që je ti para se të qasesh në fjalëkalim</translation>
 <translation id="8266947622852630193">Të gjitha metodat e hyrjes</translation>
 <translation id="8267539814046467575">Shto printer</translation>
 <translation id="8267961145111171918"><ph name="BEGIN_PARAGRAPH1" />Ky është informacion i përgjithshëm për këtë pajisje dhe se si e përdor (si p.sh. niveli i baterisë, aktiviteti i sistemit dhe i aplikacioneve dhe gabimet). Të dhënat do të përdoren për të përmirësuar Android, ndërsa disa informacione të grumbulluara do të ndihmojnë gjithashtu aplikacionet dhe partnerët e Google, si p.sh. zhvilluesit e Android, për të përmirësuar aplikacionet dhe produktet e tyre.<ph name="END_PARAGRAPH1" />
@@ -11086,7 +11088,6 @@
 <translation id="8827125715368568315">Të bllokuara: <ph name="PERMISSION" /> dhe <ph name="COUNT" /> të tjera</translation>
 <translation id="8827289157496676362">Gozhdo shtesën</translation>
 <translation id="8828933418460119530">Emri i DNS-së</translation>
-<translation id="8829979393064090868">Shto skedën në pamjen e ndarë</translation>
 <translation id="8830479210602243906">Rrit produktivitetin</translation>
 <translation id="883062543841130884">Zëvendësimet</translation>
 <translation id="8830779999439981481">Po riniset për të zbatuar përditësimet</translation>
diff --git a/chrome/app/resources/generated_resources_sr-Latn.xtb b/chrome/app/resources/generated_resources_sr-Latn.xtb
index 6bb7c16..b7eeec8 100644
--- a/chrome/app/resources/generated_resources_sr-Latn.xtb
+++ b/chrome/app/resources/generated_resources_sr-Latn.xtb
@@ -4766,6 +4766,7 @@
 <translation id="4305402730127028764">Kopiraj na: <ph name="DEVICE_NAME" /></translation>
 <translation id="4305817255990598646">Pređi</translation>
 <translation id="4306119971288449206">Aplikacije moraju da se prikazuju sa tipom sadržaja „<ph name="CONTENT_TYPE" />“</translation>
+<translation id="4306489587293957491">Unesi</translation>
 <translation id="4306810703452026910">Chrome će prestati da označava obaveštenja sa ovog sajta kao nepoželjna</translation>
 <translation id="4307992518367153382">Osnovna</translation>
 <translation id="4309165024397827958">Dozvolite Android aplikacijama i uslugama sa dozvolom za lokaciju da koriste lokaciju uređaja. Google može povremeno da prikuplja podatke o lokaciji i da ih koristi na anoniman način za poboljšanje preciznosti lokacije i usluga zasnovanih na lokaciji.</translation>
@@ -4823,6 +4824,7 @@
 <translation id="4350230709416545141">Uvek blokiraj pristup lokaciji za <ph name="HOST" /></translation>
 <translation id="4350782034419308508">Hej Google</translation>
 <translation id="435185728237714178">Idite u aplikaciju <ph name="APP_NAME" /> da biste upravljali instaliranim i strimovanim aplikacijama.</translation>
+<translation id="4352913519324947509">Lozinka nije promenjena, ali i dalje treba da imate mogućnost da pristupate sajtu pomoću aktuelne lozinke.</translation>
 <translation id="4354073718307267720">Pitaj kada sajt želi da pravi 3D mapu okruženja ili da prati položaj kamere</translation>
 <translation id="4354344420232759511">Ovde se prikazuju sajtovi koje ste posetili</translation>
 <translation id="435527878592612277">Izaberite sliku</translation>
@@ -5981,7 +5983,6 @@
 <translation id="5186381005592669696">Prilagodite jezik prikaza za podržane aplikacije</translation>
 <translation id="5186788525428341874">Ovaj pristupni ključ možete da koristite da biste se brže prijavljivali na svim uređajima. Čuva se u Google menadžeru lozinki za <ph name="ACCOUNT_NAME" />.</translation>
 <translation id="5187641678926990264">&amp;Instaliraj stranicu kao aplikaciju…</translation>
-<translation id="5187671830619031922">Dodaj karticu u podeljeni prikaz</translation>
 <translation id="5187826826541650604"><ph name="KEY_NAME" /> (<ph name="DEVICE" />)</translation>
 <translation id="5188242000716462162">Deli <ph name="USER_NAME" /></translation>
 <translation id="5188648870018555788">Koristi lokaciju. Dozvolite ChromeOS i Android aplikacijama, veb-sajtovima i uslugama sa dozvolom za lokaciju da koriste lokaciju uređaja. Preciznost lokacije pruža precizniju lokaciju za Android aplikacije i usluge. U tu svrhu, Google periodično obrađuje informacije o senzorima uređaja i bežičnim signalima sa uređaja kako bi pomoću kraudsorsinga odredio lokacije bežičnih signala. Bez otkrivanja vašeg identiteta ovi podaci se koriste za poboljšavanje preciznosti lokacije i usluga zasnovanih na lokaciji, kao i za poboljšavanje, pružanje i održavanje Google usluga zasnovanih na legitimnim interesima Google-a i trećih strana da ispunjavaju potrebe korisnika. <ph name="BEGIN_LINK1" />Saznajte više o korišćenju lokacije<ph name="END_LINK1" /></translation>
@@ -8314,6 +8315,7 @@
 <translation id="686831807558000905">Ne prijavljuj me</translation>
 <translation id="686839242150793617">Dozvoljeno im je da automatski ulaze u sliku u slici</translation>
 <translation id="6868934826811377550">Prikaži detalje</translation>
+<translation id="6870470066213933201">Upravljajte optimizacijom i bezbednošću JavaScript-a</translation>
 <translation id="6871644448911473373">OCSP odzivnik: <ph name="LOCATION" /></translation>
 <translation id="6871860225073478239">Jezici…</translation>
 <translation id="6873571253135628430">Promenite dozvole za sajt</translation>
@@ -11101,7 +11103,6 @@
 <translation id="8827125715368568315">Blokirano je: <ph name="PERMISSION" /> i još <ph name="COUNT" /></translation>
 <translation id="8827289157496676362">Zakačite dodatak</translation>
 <translation id="8828933418460119530">Ime DNS-a</translation>
-<translation id="8829979393064090868">Dodaj karticu u podeljeni prikaz</translation>
 <translation id="8830479210602243906">Povećajte produktivnost</translation>
 <translation id="883062543841130884">Zamene</translation>
 <translation id="8830779999439981481">Restartuje se da biste primenili ažuriranja</translation>
diff --git a/chrome/app/resources/generated_resources_sr.xtb b/chrome/app/resources/generated_resources_sr.xtb
index f47a18c3..1c3f827be 100644
--- a/chrome/app/resources/generated_resources_sr.xtb
+++ b/chrome/app/resources/generated_resources_sr.xtb
@@ -4766,6 +4766,7 @@
 <translation id="4305402730127028764">Копирај на: <ph name="DEVICE_NAME" /></translation>
 <translation id="4305817255990598646">Пређи</translation>
 <translation id="4306119971288449206">Апликације морају да се приказују са типом садржаја „<ph name="CONTENT_TYPE" />“</translation>
+<translation id="4306489587293957491">Унеси</translation>
 <translation id="4306810703452026910">Chrome ће престати да означава обавештења са овог сајта као непожељна</translation>
 <translation id="4307992518367153382">Основна</translation>
 <translation id="4309165024397827958">Дозволите Android апликацијама и услугама са дозволом за локацију да користе локацију уређаја. Google може повремено да прикупља податке о локацији и да их користи на анониман начин за побољшање прецизности локације и услуга заснованих на локацији.</translation>
@@ -4823,6 +4824,7 @@
 <translation id="4350230709416545141">Увек блокирај приступ локацији за <ph name="HOST" /></translation>
 <translation id="4350782034419308508">Хеј Google</translation>
 <translation id="435185728237714178">Идите у апликацију <ph name="APP_NAME" /> да бисте управљали инсталираним и стримованим апликацијама.</translation>
+<translation id="4352913519324947509">Лозинка није промењена, али и даље треба да имате могућност да приступате сајту помоћу актуелне лозинке.</translation>
 <translation id="4354073718307267720">Питај када сајт жели да прави 3D мапу окружења или да прати положај камере</translation>
 <translation id="4354344420232759511">Овде се приказују сајтови које сте посетили</translation>
 <translation id="435527878592612277">Изаберите слику</translation>
@@ -5981,7 +5983,6 @@
 <translation id="5186381005592669696">Прилагодите језик приказа за подржане апликације</translation>
 <translation id="5186788525428341874">Овај приступни кључ можете да користите да бисте се брже пријављивали на свим уређајима. Чува се у Google менаџеру лозинки за <ph name="ACCOUNT_NAME" />.</translation>
 <translation id="5187641678926990264">&amp;Инсталирај страницу као апликацију…</translation>
-<translation id="5187671830619031922">Додај картицу у подељени приказ</translation>
 <translation id="5187826826541650604"><ph name="KEY_NAME" /> (<ph name="DEVICE" />)</translation>
 <translation id="5188242000716462162">Дели <ph name="USER_NAME" /></translation>
 <translation id="5188648870018555788">Користи локацију. Дозволите ChromeOS и Android апликацијама, веб-сајтовима и услугама са дозволом за локацију да користе локацију уређаја. Прецизност локације пружа прецизнију локацију за Android апликације и услуге. У ту сврху, Google периодично обрађује информације о сензорима уређаја и бежичним сигналима са уређаја како би помоћу краудсорсинга одредио локације бежичних сигнала. Без откривања вашег идентитета ови подаци се користе за побољшавање прецизности локације и услуга заснованих на локацији, као и за побољшавање, пружање и одржавање Google услуга заснованих на легитимним интересима Google-а и трећих страна да испуњавају потребе корисника. <ph name="BEGIN_LINK1" />Сазнајте више о коришћењу локације<ph name="END_LINK1" /></translation>
@@ -8314,6 +8315,7 @@
 <translation id="686831807558000905">Не пријављуј ме</translation>
 <translation id="686839242150793617">Дозвољено им је да аутоматски улазе у слику у слици</translation>
 <translation id="6868934826811377550">Прикажи детаље</translation>
+<translation id="6870470066213933201">Управљајте оптимизацијом и безбедношћу JavaScript-а</translation>
 <translation id="6871644448911473373">OCSP одзивник: <ph name="LOCATION" /></translation>
 <translation id="6871860225073478239">Језици…</translation>
 <translation id="6873571253135628430">Промените дозволе за сајт</translation>
@@ -11101,7 +11103,6 @@
 <translation id="8827125715368568315">Блокирано је: <ph name="PERMISSION" /> и још <ph name="COUNT" /></translation>
 <translation id="8827289157496676362">Закачите додатак</translation>
 <translation id="8828933418460119530">Име DNS-а</translation>
-<translation id="8829979393064090868">Додај картицу у подељени приказ</translation>
 <translation id="8830479210602243906">Повећајте продуктивност</translation>
 <translation id="883062543841130884">Замене</translation>
 <translation id="8830779999439981481">Рестартује се да бисте применили ажурирања</translation>
diff --git a/chrome/app/resources/generated_resources_sv.xtb b/chrome/app/resources/generated_resources_sv.xtb
index 8263de8..c5bd20b0 100644
--- a/chrome/app/resources/generated_resources_sv.xtb
+++ b/chrome/app/resources/generated_resources_sv.xtb
@@ -5996,7 +5996,6 @@
 <translation id="5186381005592669696">Anpassa visningsspråk för appar som stöds</translation>
 <translation id="5186788525428341874">Du kan logga in snabbare på dina enheter med den här nyckeln. Den sparas med Google Lösenordshantering för <ph name="ACCOUNT_NAME" />.</translation>
 <translation id="5187641678926990264">&amp;Installera sidan som en app …</translation>
-<translation id="5187671830619031922">Lägg till fliken i delad vy</translation>
 <translation id="5187826826541650604"><ph name="KEY_NAME" /> (<ph name="DEVICE" />)</translation>
 <translation id="5188242000716462162">Delas av <ph name="USER_NAME" /></translation>
 <translation id="5188648870018555788">Använd plats. Tillåt att de appar, webbplatser och tjänster för ChromeOS och Android som har platsbehörighet använder enhetens plats. Platsangivelsens exakthet tillhandahåller en mer exakt plats för Android-appar och Android-tjänster. För att göra detta hanterar Google med jämna mellanrum information om enhetssensorer och trådlösa signaler från din enhet i samband med massinsamling av platser för trådlösa signaler. Dessa används utan att identifiera dig för att förbättra platsangivelsens exakthet och platsbaserade tjänster och för att förbättra, tillhandahålla och underhålla Googles tjänster baserat på Googles och tredje parters berättigade intressen för att tillgodose användarnas behov. <ph name="BEGIN_LINK1" />Läs mer om hur du använder plats<ph name="END_LINK1" /></translation>
@@ -9021,6 +9020,7 @@
 <translation id="7387951778417998929">Om du vill använda en annan sökmotor än standardinställningen skriver du genvägen i adressfältet följt av önskat kortkommando. Du kan även ändra standardsökmotorn här.</translation>
 <translation id="7388615499319468910">Webbplatser och annonsörer kan mäta annonsernas resultat. Inställningen är inaktiverad.</translation>
 <translation id="738903649531469042">Lägg till fliken i läslistan</translation>
+<translation id="7389615853658756494">Ändra det på webbplatsen</translation>
 <translation id="7392118418926456391">Virussökningen misslyckades</translation>
 <translation id="7392915005464253525">Ö&amp;ppna ett stängt fönster igen</translation>
 <translation id="7393073300870882456">{COUNT,plural, =1{1 objekt har kopierats}other{{COUNT} objekt har kopierats}}</translation>
@@ -9150,6 +9150,7 @@
 <translation id="7474043404939621342">Anpassa ditt verktygsfält</translation>
 <translation id="747459581954555080">Återställ alla</translation>
 <translation id="747507174130726364">{NUM_DAYS,plural, =1{Måste returneras omedelbart}other{Returnera <ph name="DEVICE_TYPE" /> inom {NUM_DAYS} dagar}}</translation>
+<translation id="747557463733380256">Läs mer om hur webbläsaren hanteras</translation>
 <translation id="7475671414023905704">Netscapes webbadress för förlorat lösenord</translation>
 <translation id="7475742997309661417">Skärmläsaren på ChromeOS, ChromeVox, används främst av personer som är blinda eller har nedsatt syn för att läsa text som visas på skärmen med hjälp av talsyntes eller en punktskriftsskärm. Aktivera ChromeVox genom att hålla båda volymknapparna nedtryckta i fem sekunder. När ChromeVox har aktiverats får du ta en snabbtitt.</translation>
 <translation id="7476454130948140105">Batterinivån är för låg för uppdateringen (<ph name="BATTERY_PERCENT" /> %)</translation>
@@ -10299,6 +10300,7 @@
 <translation id="8265018477030547118">Bara på den här enheten</translation>
 <translation id="826511437356419340">Fönsteröversiktsläget har startats. Navigera genom att svepa, eller tryck på tabb om du använder ett tangentbord.</translation>
 <translation id="8265671588726449108">{COUNT,plural, =1{Du har ett inkognitofönster öppet. Det öppnas inte på nytt när programmet startas om}other{Du har {COUNT} inkognitofönster öppna. De öppnas inte på nytt när programmet startas om}}</translation>
+<translation id="8266430295499893285">Du måste verifiera din identitet innan du kan komma åt dina lösenord</translation>
 <translation id="8266947622852630193">Alla inmatningsmetoder</translation>
 <translation id="8267539814046467575">Lägg till skrivare</translation>
 <translation id="8267961145111171918"><ph name="BEGIN_PARAGRAPH1" />Detta är allmän information om enheten och hur den används (till exempel batterinivå, system- och appaktivitet samt fel). Med hjälp av dessa uppgifter kan vi förbättra Android. Vissa sammanställda uppgifter kan även hjälpa Googles appar och partner, till exempel Android-utvecklare, att förbättra sina appar och produkter.<ph name="END_PARAGRAPH1" />
@@ -11108,7 +11110,6 @@
 <translation id="8827125715368568315">Behörighet till <ph name="PERMISSION" /> och <ph name="COUNT" /> har blockerats</translation>
 <translation id="8827289157496676362">Fäst tillägg</translation>
 <translation id="8828933418460119530">DNS-namn</translation>
-<translation id="8829979393064090868">Lägg till fliken i delad vy</translation>
 <translation id="8830479210602243906">Öka produktiviteten</translation>
 <translation id="883062543841130884">Ersättningar</translation>
 <translation id="8830779999439981481">Starta om för att tillämpa uppdateringarna</translation>
diff --git a/chrome/app/resources/generated_resources_sw.xtb b/chrome/app/resources/generated_resources_sw.xtb
index 9ffe246..1be257d4 100644
--- a/chrome/app/resources/generated_resources_sw.xtb
+++ b/chrome/app/resources/generated_resources_sw.xtb
@@ -5991,7 +5991,6 @@
 <translation id="5186381005592669696">Kuweka mapendeleo ya lugha ya skrini kwenye programu zinazotumika</translation>
 <translation id="5186788525428341874">Unaweza kutumia ufunguo huu wa siri ili uingie katika akaunti kwa haraka kwenye vifaa vyako vyote. Utahifadhiwa kwenye Kidhibiti cha Manenosiri cha Google kwa ajili ya <ph name="ACCOUNT_NAME" />.</translation>
 <translation id="5187641678926990264">&amp;Weka Ukurasa wa wavuti kama Programu...</translation>
-<translation id="5187671830619031922">Weka Kichupo kwenye Mwonekano wa Madirisha Yaliyogawanywa</translation>
 <translation id="5187826826541650604"><ph name="KEY_NAME" /> (<ph name="DEVICE" />)</translation>
 <translation id="5188242000716462162">Imetumwa na <ph name="USER_NAME" /></translation>
 <translation id="5188648870018555788">Tumia data ya mahali. Ruhusu tovuti, huduma za ChromeOS na programu za Android zenye ruhusa ya mahali zitumie data ya mahali kifaa chako kilipo. Mipangilio ya Usahihi wa Mahali hutoa data sahihi zaidi ya mahali inayotumiwa na programu pamoja na huduma za Android. Ili kufanya hivyo, Google huchakata mara kwa mara maelezo kuhusu vitambuzi vya vifaa na mawimbi ya simu za mkononi kutoka kwenye kifaa chako ili kukusanya data ya mahali ambako mawimbi ya simu za mkononi yako. Data hii hutumika bila kukutambulisha ili kuboresha usahihi wa mahali na huduma zinazotegemea mahali na pia kuboresha, kutoa na kudumisha huduma za Google kulingana na sababu halali za Google na washirika wengine ili kutimiza mahitaji ya watumiaji. <ph name="BEGIN_LINK1" />Pata maelezo zaidi kuhusu jinsi ya kutumia data ya mahali<ph name="END_LINK1" /></translation>
@@ -11107,7 +11106,6 @@
 <translation id="8827125715368568315">Umezuia <ph name="PERMISSION" /> na zingine <ph name="COUNT" /></translation>
 <translation id="8827289157496676362">Bandika kiendelezi</translation>
 <translation id="8828933418460119530">Jina la DNS</translation>
-<translation id="8829979393064090868">Weka kichupo kwenye mwonekano wa madirisha yaliyogawanywa</translation>
 <translation id="8830479210602243906">Ongeza tija</translation>
 <translation id="883062543841130884">Chaguo mbadala</translation>
 <translation id="8830779999439981481">Inazima na kuwasha upya ili itumie masasisho</translation>
diff --git a/chrome/app/resources/generated_resources_ta.xtb b/chrome/app/resources/generated_resources_ta.xtb
index b120c6d..ec52790a 100644
--- a/chrome/app/resources/generated_resources_ta.xtb
+++ b/chrome/app/resources/generated_resources_ta.xtb
@@ -5996,7 +5996,6 @@
 <translation id="5186381005592669696">ஆதரிக்கப்படும் ஆப்ஸிற்கான ஸ்கிரீன் மொழியைப் பிரத்தியேகமாக்கலாம்</translation>
 <translation id="5186788525428341874">உங்கள் சாதனங்களில் வேகமாக உள்நுழைய இந்தக் கடவுச்சாவியைப் பயன்படுத்தலாம். <ph name="ACCOUNT_NAME" /> கணக்கின் Google Password Managerரில் இது சேமிக்கப்படும்.</translation>
 <translation id="5187641678926990264">&amp;பக்கத்தை ஆப்ஸாக நிறுவு...</translation>
-<translation id="5187671830619031922">காட்சிப் பிரிப்பில் பக்கத்தைச் சேர்</translation>
 <translation id="5187826826541650604"><ph name="KEY_NAME" /> (<ph name="DEVICE" />)</translation>
 <translation id="5188242000716462162">பகிர்ந்தவர்: <ph name="USER_NAME" /></translation>
 <translation id="5188648870018555788">இருப்பிடத்தைப் பயன்படுத்துதல். இருப்பிட அனுமதி உள்ள ChromeOS மற்றும் Android ஆப்ஸ், இணையதளங்கள், சேவைகள் ஆகியவை உங்கள் சாதனத்தின் இருப்பிடத்தைப் பயன்படுத்த அனுமதியுங்கள். 'இருப்பிடத் துல்லியம்' Android ஆப்ஸிற்கும் சேவைகளுக்கும் மிகத் துல்லியமான இருப்பிடத்தை வழங்குகிறது. இதைச் செய்ய, உங்கள் சாதனத்தில் உள்ள வயர்லெஸ் சிக்னல்கள் மற்றும் சாதன சென்சார்கள் தொடர்பான தகவல்களை Google அவ்வப்போது செயலாக்கி திரளாக்க முறையில் தொகுக்கப்படும் வயர்லெஸ் சிக்னல் இருப்பிடங்கள் தரவிற்கு வழங்கும். பயனர்களின் தேவைகளைப் பூர்த்திசெய்ய வேண்டும் என்று Google மற்றும் மூன்றாம் தரப்பினருக்குள்ள நியாயமான நலநோக்கங்களின் அடிப்படையில் Googleளின் சேவைகளை மேம்படுத்தவும் வழங்கவும் பராமரிக்கவும், இருப்பிடத் துல்லியம், இருப்பிடம் சார்ந்த சேவைகள் ஆகியவற்றை மேம்படுத்தவும், உங்களை அடையாளம் கண்டறியாத வகையில் இவை பயன்படுத்தப்படுகின்றன. <ph name="BEGIN_LINK1" />இருப்பிடத்தைப் பயன்படுத்துவது குறித்து மேலும் தெரிந்துகொள்ளுங்கள்<ph name="END_LINK1" /></translation>
@@ -9022,6 +9021,7 @@
 <translation id="7387951778417998929">இயல்புத் தேடல் இன்ஜினைத் தவிர்த்து வேறொன்றைப் பயன்படுத்த, அதன் ஷார்ட்கட்டை முகவரிப் பட்டியில் டைப் செய்தபிறகு உங்களுக்கு விருப்பமான கீபோர்டு ஷார்ட்கட்டை டைப் செய்யவும். இயல்புத் தேடல் இன்ஜினையும் இங்கே மாற்றலாம்.</translation>
 <translation id="7388615499319468910">விளம்பரங்களின் செயல்திறனைத் தளங்களும் விளம்பரதாரர்களும் தெரிந்துகொள்ளலாம். இந்த அமைப்பு முடக்கப்பட்டுள்ளது.</translation>
 <translation id="738903649531469042">வாசிப்புப் பட்டியலில் பிரிவைச் சேர்</translation>
+<translation id="7389615853658756494">இதைத் தளத்தில் மாற்று</translation>
 <translation id="7392118418926456391">வைரஸ் ஸ்கேன் தோல்வி</translation>
 <translation id="7392915005464253525">மூடப்பட்ட சாளரத்தை மீ&amp;ண்டும் திற</translation>
 <translation id="7393073300870882456">{COUNT,plural, =1{1 புக்மார்க் நகலெடுக்கப்பட்டது}other{{COUNT} புக்மார்க்குகள் நகலெடுக்கப்பட்டன}}</translation>
@@ -9151,6 +9151,7 @@
 <translation id="7474043404939621342">கருவிப்பட்டியைப் பிரத்தியேகமாக்கு</translation>
 <translation id="747459581954555080">எல்லாம் மீட்டெடு</translation>
 <translation id="747507174130726364">{NUM_DAYS,plural, =1{உடனடியாகத் திருப்பியளிக்க வேண்டும்}other{<ph name="DEVICE_TYPE" /> சாதனத்தை {NUM_DAYS} நாட்களுக்குள் திருப்பியளிக்க வேண்டும்}}</translation>
+<translation id="747557463733380256">உங்கள் உலாவி எப்படி நிர்வகிக்கப்படுகிறது என்பது குறித்துத் தெரிந்துகொள்ளலாம்</translation>
 <translation id="7475671414023905704">Netscape தொலைந்த கடவுச்சொல் URL</translation>
 <translation id="7475742997309661417">ஸ்கிரீனில் உள்ள வார்த்தைகளைப் படிக்க ஸ்பீச் சின்தசைசர் அல்லது பிரெய்ல் காட்சி மூலம் பார்வையற்றவர்களும் பார்வைக் குறைபாடு உள்ளவர்களும் ChromeOS, ChromeVox ஆகியவற்றில் உள்ள ஸ்கிரீன் ரீடரைப் பெரும்பாலும் பயன்படுத்துகின்றனர். ChromeVoxஸை இயக்க, ஒலியளவு பட்டன்கள் இரண்டையும் ஐந்து வினாடிகளுக்கு அழுத்திப் பிடித்திருக்கவும். ChromeVox இயக்கப்பட்டதும் அதன் அம்சங்கள் குறித்துக் காட்டப்படும்.</translation>
 <translation id="7476454130948140105">பேட்டரி மிகவும் குறைவாக இருப்பதால், புதுப்பிக்க முடியவில்லை (<ph name="BATTERY_PERCENT" />%)</translation>
@@ -10300,6 +10301,7 @@
 <translation id="8265018477030547118">இந்தச் சாதனத்தில் மட்டும்</translation>
 <translation id="826511437356419340">சாளர மேலோட்டப் பயன்முறையில் உள்ளீர்கள். பகுதிகளுக்கிடையே செல்ல ஸ்வைப் செய்யவும். கீபோர்டைப் பயன்படுத்தினால் டேப் விசையை அழுத்தவும்.</translation>
 <translation id="8265671588726449108">{COUNT,plural, =1{உலாவியை மீண்டும் தொடங்கினால் மறைநிலைச் சாளரம் திறக்கப்படாது}other{உலாவியை மீண்டும் தொடங்கினால் {COUNT} மறைநிலைச் சாளரங்கள் திறக்கப்படாது}}</translation>
+<translation id="8266430295499893285">உங்கள் கடவுச்சொற்களை அணுகும் முன் இது நீங்கள்தான் என்பதை உறுதிப்படுத்த வேண்டும்</translation>
 <translation id="8266947622852630193">அனைத்து உள்ளீட்டு முறைகள்</translation>
 <translation id="8267539814046467575">பிரிண்டரைச் சேர்</translation>
 <translation id="8267961145111171918"><ph name="BEGIN_PARAGRAPH1" />இது இந்தச் சாதனம் மற்றும் அது எவ்வாறு பயன்படுத்தப்படுகிறது (பேட்டரி அளவு, சிஸ்டம் மற்றும் ஆப்ஸ் செயல்பாடு, பிழைகள் போன்றவை) என்பது பற்றிய பொதுவான தகவலாகும். Androidஐ மேம்படுத்துவதற்காக இந்தத் தரவு பயன்படுத்தப்படும், ஒருங்கிணைக்கப்பட்ட சில தகவல்களும் கூட Google ஆப்ஸுக்கும் Android டெவெலப்பர்களைப் போன்ற கூட்டாளர்களுக்கும் தங்கள் ஆப்ஸையும் தயாரிப்புகளையும் மேலும் சிறப்பாக்க உதவும்.<ph name="END_PARAGRAPH1" />
@@ -11109,7 +11111,6 @@
 <translation id="8827125715368568315"><ph name="PERMISSION" />, மேலும் <ph name="COUNT" /> அனுமதிகள் தடுக்கப்பட்டுள்ளன</translation>
 <translation id="8827289157496676362">நீட்டிப்பைப் பின் செய்யும்</translation>
 <translation id="8828933418460119530">DNS பெயர்</translation>
-<translation id="8829979393064090868">காட்சிப் பிரிப்பில் பக்கத்தைச் சேர்</translation>
 <translation id="8830479210602243906">பணிச் செயல்திறனை மேம்படுத்து</translation>
 <translation id="883062543841130884">மாற்றுகள்</translation>
 <translation id="8830779999439981481">புதுப்பிப்புகளைச் செயல்படுத்துவதற்காக மீண்டும் தொடங்குகிறது</translation>
diff --git a/chrome/app/resources/generated_resources_te.xtb b/chrome/app/resources/generated_resources_te.xtb
index f29abc4..9005cda4 100644
--- a/chrome/app/resources/generated_resources_te.xtb
+++ b/chrome/app/resources/generated_resources_te.xtb
@@ -5994,7 +5994,6 @@
 <translation id="5186381005592669696">సపోర్ట్ చేసే యాప్‌ల కోసం డిస్‌ప్లే భాషలను అనుకూలంగా మార్చండి</translation>
 <translation id="5186788525428341874">మీ పరికరాలన్నింటిలోకి మరింత వేగంగా సైన్ ఇన్ చేయడానికి, మీరు ఈ పాస్-కీని ఉపయోగించవచ్చు. Google Password Managerలో ఇది <ph name="ACCOUNT_NAME" /> ఖాతాకు లింక్ అయి సేవ్ అవుతుంది.</translation>
 <translation id="5187641678926990264">&amp;పేజీని యాప్‌గా ఇన్‌స్టాల్ చేయండి...</translation>
-<translation id="5187671830619031922">స్ప్లిట్ వీక్షణకు ట్యాబ్‌ను జోడించండి</translation>
 <translation id="5187826826541650604"><ph name="KEY_NAME" /> (<ph name="DEVICE" />)</translation>
 <translation id="5188242000716462162"><ph name="USER_NAME" /> షేర్ చేశారు</translation>
 <translation id="5188648870018555788">లొకేషన్‌ను ఉపయోగించండి. లొకేషన్ అనుమతి గల ChromeOS, Android యాప్‌లు, వెబ్‌సైట్‌లు, సర్వీస్‌లకు మీ పరికర లొకేషన్‌ను ఉపయోగించడానికి అనుమతినివ్వండి. 'లొకేషన్ ఖచ్చితత్వం', Android యాప్‌లు, సర్వీస్‌లకు మరింత ఖచ్చితమైన లొకేషన్ సమాచారాన్ని అందిస్తుంది. దీన్ని చేయడానికి, మీ పరికరం నుండి Google, పరికర సెన్సార్‌లు, వైర్‌లెస్ సిగ్నల్స్‌కు సంబంధించిన సమాచారాన్ని ప్రాసెస్ చేసి, వైర్‌లెస్ సిగ్నల్ లొకేషన్‌లను క్రౌడ్‌సోర్స్ చేస్తుంది. ఇవి మిమ్మల్ని గుర్తించకుండా 'లొకేషన్ ఖచ్చితత్వాన్ని', లొకేషన్ ఆధారిత సర్వీస్‌లను మెరుగుపరచడానికి, అలాగే యూజర్ అవసరాలను తీర్చడానికి Google, థర్డ్-పార్టీల చట్టబద్ధమైన ప్రయోజనాలకు అనుగుణంగా Google సర్వీస్‌లను మెరుగుపరచడానికి, అందించడానికి, మెయిన్‌టెయిన్ వినియోగించబడతాయి. <ph name="BEGIN_LINK1" />లొకేషన్‌ను ఉపయోగించడం గురించి మరింత తెలుసుకోండి<ph name="END_LINK1" /></translation>
@@ -11104,7 +11103,6 @@
 <translation id="8827125715368568315"><ph name="PERMISSION" />, మరో <ph name="COUNT" /> బ్లాక్ చేయబడ్డాయి</translation>
 <translation id="8827289157496676362">ఎక్స్‌టెన్షన్‌ను పిన్ చేయండి</translation>
 <translation id="8828933418460119530">DNS పేరు</translation>
-<translation id="8829979393064090868">స్ప్లిట్ వీక్షణకు ట్యాబ్‌ను జోడించండి</translation>
 <translation id="8830479210602243906">ప్రొడక్టివిటీని పెంచండి</translation>
 <translation id="883062543841130884">ప్రత్యామ్నాయాలు</translation>
 <translation id="8830779999439981481">అప్‌డేట్‌లను వర్తింపజేయడానికి రీస్టార్ట్ అవుతోంది</translation>
diff --git a/chrome/app/resources/generated_resources_th.xtb b/chrome/app/resources/generated_resources_th.xtb
index 0fac21b..8256f39 100644
--- a/chrome/app/resources/generated_resources_th.xtb
+++ b/chrome/app/resources/generated_resources_th.xtb
@@ -4766,6 +4766,7 @@
 <translation id="4305402730127028764">คัดลอกไปยัง <ph name="DEVICE_NAME" /></translation>
 <translation id="4305817255990598646">สลับ</translation>
 <translation id="4306119971288449206">แอปต้องได้รับบริการจากประเภทเนื้อหา "<ph name="CONTENT_TYPE" />"</translation>
+<translation id="4306489587293957491">ป้อน</translation>
 <translation id="4306810703452026910">Chrome จะหยุดแจ้งว่าการแจ้งเตือนจากเว็บไซต์นี้เป็นสแปม</translation>
 <translation id="4307992518367153382">พื้นฐาน</translation>
 <translation id="4309165024397827958">อนุญาตให้แอปและบริการของ Android ที่มีสิทธิ์เข้าถึงตำแหน่งใช้ตำแหน่งของอุปกรณ์ โดย Google อาจเก็บรวบรวมข้อมูลตำแหน่งเป็นระยะๆ และใช้ข้อมูลนี้ในแบบไม่ระบุตัวบุคคลเพื่อปรับปรุงความแม่นยำของตำแหน่งและการบริการตามสถานที่</translation>
@@ -4823,6 +4824,7 @@
 <translation id="4350230709416545141">บล็อก <ph name="HOST" /> ไม่ให้เข้าถึงตำแหน่งของคุณเสมอ</translation>
 <translation id="4350782034419308508">Ok Google</translation>
 <translation id="435185728237714178">ไปที่แอป "<ph name="APP_NAME" />" เพื่อจัดการแอปที่ติดตั้งและสตรีมแอป</translation>
+<translation id="4352913519324947509">รหัสผ่านของคุณยังไม่ได้เปลี่ยน แต่คุณยังคงสามารถเข้าถึงเว็บไซต์ด้วยรหัสผ่านปัจจุบันได้</translation>
 <translation id="4354073718307267720">ถามเมื่อเว็บไซต์ต้องการสร้างแผนที่ 3 มิติของสิ่งที่อยู่รอบตัวคุณหรือติดตามตำแหน่งของกล้อง</translation>
 <translation id="4354344420232759511">เว็บไซต์ที่คุณเข้าชมจะปรากฏที่นี่</translation>
 <translation id="435527878592612277">เลือกรูปภาพของคุณ</translation>
@@ -5980,7 +5982,6 @@
 <translation id="5186381005592669696">ปรับแต่งภาษาที่แสดงสำหรับแอปที่รองรับ</translation>
 <translation id="5186788525428341874">คุณสามารถใช้พาสคีย์นี้เพื่อลงชื่อเข้าใช้อุปกรณ์ต่างๆ ได้เร็วขึ้น เพราะระบบจะบันทึกไว้ในเครื่องมือจัดการรหัสผ่านบน Google สำหรับ <ph name="ACCOUNT_NAME" /></translation>
 <translation id="5187641678926990264">ติดตั้งหน้าเว็บเป็นแอป...</translation>
-<translation id="5187671830619031922">เพิ่มแท็บไปยังมุมมองแบบแยก</translation>
 <translation id="5187826826541650604"><ph name="KEY_NAME" /> (<ph name="DEVICE" />)</translation>
 <translation id="5188242000716462162">แชร์โดย <ph name="USER_NAME" /></translation>
 <translation id="5188648870018555788">ใช้ตำแหน่ง อนุญาตให้แอป เว็บไซต์ และบริการของ ChromeOS รวมถึง Android ที่มีสิทธิ์เข้าถึงตำแหน่งใช้ตำแหน่งของอุปกรณ์ ความแม่นยำของตำแหน่งจะระบุตำแหน่งที่แม่นยำยิ่งขึ้นสำหรับแอปและบริการต่างๆ ของ Android Google ทำเช่นนี้ได้ด้วยการประมวลผลข้อมูลเกี่ยวกับเซ็นเซอร์และสัญญาณไร้สายจากอุปกรณ์ของคุณเป็นระยะเพื่อรวบรวมข้อมูลตำแหน่งของสัญญาณไร้สายจากมวลชน ข้อมูลเหล่านี้มีการใช้โดยไม่ระบุตัวตนของคุณเพื่อปรับปรุงความแม่นยำของตำแหน่งและบริการตามตำแหน่ง รวมถึงเพื่อปรับปรุง จัดหา และดูแลรักษาบริการของเราโดยอิงตามประโยชน์โดยชอบด้วยกฎหมายของ Google และของบุคคลที่สามในการตอบสนองความต้องการของผู้ใช้ <ph name="BEGIN_LINK1" />ดูข้อมูลเพิ่มเติมเกี่ยวกับการใช้ตำแหน่ง<ph name="END_LINK1" /></translation>
@@ -8306,6 +8307,7 @@
 <translation id="686831807558000905">ไม่ต้องลงชื่อเข้าใช้</translation>
 <translation id="686839242150793617">อนุญาตให้เข้าสู่การแสดงภาพซ้อนภาพโดยอัตโนมัติ</translation>
 <translation id="6868934826811377550">ดูรายละเอียด</translation>
+<translation id="6870470066213933201">จัดการการเพิ่มประสิทธิภาพและความปลอดภัยของ JavaScript</translation>
 <translation id="6871644448911473373">OCSP Responder: <ph name="LOCATION" /></translation>
 <translation id="6871860225073478239">ภาษา...</translation>
 <translation id="6873571253135628430">เปลี่ยนสิทธิ์ของเว็บไซต์</translation>
@@ -9001,6 +9003,7 @@
 <translation id="7387951778417998929">หากต้องการใช้เครื่องมือค้นหาอื่นที่ไม่ใช่ค่าเริ่มต้น ให้พิมพ์ทางลัดของเครื่องมือค้นหานั้นในแถบที่อยู่ แล้วตามด้วยแป้นพิมพ์ลัดที่ต้องการ คุณยังเปลี่ยนเครื่องมือค้นหาเริ่มต้นตรงนี้ได้ด้วย</translation>
 <translation id="7388615499319468910">เว็บไซต์และผู้ลงโฆษณาจะรู้ได้ว่าโฆษณามีประสิทธิภาพเพียงใด การตั้งค่านี้ปิดอยู่</translation>
 <translation id="738903649531469042">เพิ่มแท็บไปยังเรื่องรออ่าน</translation>
+<translation id="7389615853658756494">เปลี่ยนในเว็บไซต์</translation>
 <translation id="7392118418926456391">สแกนไวรัสล้มเหลว</translation>
 <translation id="7392915005464253525">เ&amp;ปิดหน้าต่างที่ถูกปิดขึ้นใหม่</translation>
 <translation id="7393073300870882456">{COUNT,plural, =1{คัดลอก 1 รายการแล้ว}other{คัดลอก {COUNT} รายการแล้ว}}</translation>
@@ -9129,6 +9132,7 @@
 <translation id="7474043404939621342">ปรับแต่งแถบเครื่องมือ</translation>
 <translation id="747459581954555080">คืนค่าทั้งหมด</translation>
 <translation id="747507174130726364">{NUM_DAYS,plural, =1{ต้องส่งคืนทันที}other{ส่งคืน <ph name="DEVICE_TYPE" /> ภายใน {NUM_DAYS} วัน}}</translation>
+<translation id="747557463733380256">ดูข้อมูลเกี่ยวกับวิธีจัดการเบราว์เซอร์ของคุณ</translation>
 <translation id="7475671414023905704">URL รหัสผ่านสูญหายของ Netscape</translation>
 <translation id="7475742997309661417">ChromeVox ซึ่งเป็นโปรแกรมอ่านหน้าจอใน ChromeOS นั้นเป็นเครื่องมือที่ผู้ตาบอดหรือมีสายตาเลือนรางใช้เป็นหลักในการอ่านข้อความที่แสดงอยู่บนหน้าจอที่ใช้โปรแกรมสังเคราะห์เสียงพูดหรือจอแสดงผลอักษรเบรลล์ กดปุ่มปรับระดับเสียงทั้ง 2 ปุ่มค้างไว้ 5 วินาทีเพื่อเปิด ChromeVox เมื่อเปิดใช้งาน ChromeVox ระบบจะแนะนำการใช้งานสั้นๆ</translation>
 <translation id="7476454130948140105">แบตเตอรี่เหลือน้อยเกินไปสำหรับอัปเดต (<ph name="BATTERY_PERCENT" />%)</translation>
@@ -10278,6 +10282,7 @@
 <translation id="8265018477030547118">เฉพาะในอุปกรณ์นี้</translation>
 <translation id="826511437356419340">เข้าสู่โหมดภาพรวมหน้าต่างแล้ว เลื่อนเพื่อไปยังส่วนต่างๆ หรือกด Tab หากใช้แป้นพิมพ์</translation>
 <translation id="8265671588726449108">{COUNT,plural, =1{หน้าต่างที่ไม่ระบุตัวตนจะไม่เปิดหลังจากคลิกเปิดอีกครั้ง}other{หน้าต่างที่ไม่ระบุตัวตน {COUNT} หน้าต่างจะไม่เปิดขึ้นมาใหม่หลังจากคลิกเปิดอีกครั้ง}}</translation>
+<translation id="8266430295499893285">คุณต้องยืนยันตัวตนก่อนจึงจะเข้าถึงรหัสผ่านได้</translation>
 <translation id="8266947622852630193">วิธีการป้อนข้อมูลทั้งหมด</translation>
 <translation id="8267539814046467575">เพิ่มเครื่องพิมพ์</translation>
 <translation id="8267961145111171918"><ph name="BEGIN_PARAGRAPH1" />นี่คือข้อมูลทั่วไปเกี่ยวกับอุปกรณ์นี้และวิธีใช้อุปกรณ์ (เช่น ระดับแบตเตอรี่ กิจกรรมในระบบและแอป และข้อผิดพลาด) ระบบจะใช้ข้อมูลดังกล่าวเพื่อปรับปรุง Android และข้อมูลแบบสรุปรวมบางอย่างจะช่วยให้แอป Google และพาร์ทเนอร์ต่างๆ เช่น นักพัฒนาแอป Android ปรับปรุงแอปและผลิตภัณฑ์ของตนให้ดีขึ้นได้อีกด้วย<ph name="END_PARAGRAPH1" />
@@ -11087,7 +11092,6 @@
 <translation id="8827125715368568315">บล็อก<ph name="PERMISSION" />และอีก <ph name="COUNT" /> รายการ</translation>
 <translation id="8827289157496676362">ปักหมุดส่วนขยาย</translation>
 <translation id="8828933418460119530">ชื่อ DNS</translation>
-<translation id="8829979393064090868">เพิ่มแท็บไปยังมุมมองแบบแยก</translation>
 <translation id="8830479210602243906">เพิ่มประสิทธิภาพการทำงาน</translation>
 <translation id="883062543841130884">การใช้แทน</translation>
 <translation id="8830779999439981481">กำลังรีสตาร์ทเพื่อนำการอัปเดตไปใช้</translation>
diff --git a/chrome/app/resources/generated_resources_tr.xtb b/chrome/app/resources/generated_resources_tr.xtb
index 917e918..e26f5161 100644
--- a/chrome/app/resources/generated_resources_tr.xtb
+++ b/chrome/app/resources/generated_resources_tr.xtb
@@ -5979,7 +5979,6 @@
 <translation id="5186381005592669696">Desteklenen uygulamalar için görüntüleme dilini özelleştir</translation>
 <translation id="5186788525428341874">Cihazlarınızda daha hızlı oturum açmak için bu geçiş anahtarını kullanabilirsiniz. <ph name="ACCOUNT_NAME" /> için Google Şifre Yöneticisi'ne kaydedilir.</translation>
 <translation id="5187641678926990264">&amp;Sayfayı Uygulama Olarak Yükle...</translation>
-<translation id="5187671830619031922">Bölünmüş Görünüme Sekme Ekle</translation>
 <translation id="5187826826541650604"><ph name="KEY_NAME" /> (<ph name="DEVICE" />)</translation>
 <translation id="5188242000716462162"><ph name="USER_NAME" /> tarafından paylaşıldı</translation>
 <translation id="5188648870018555788">Konumu kullan. Konum izinleri olan ChromeOS ile Android uygulamaları, web siteleri ve hizmetlerinin cihazınızın konumunu kullanmasına izin verin. Konum Doğruluğu, Android uygulamaları ve hizmetleri için daha doğru konum bilgisi sunar. Google bunu yapmak için bu cihazdan kitle kaynaklı kablosuz sinyal konumlarına gönderilen kablosuz sinyaller ve cihaz sensörleri hakkındaki bilgileri düzenli aralıklarla işler. Bu bilgiler, konum doğruluğunu artırmanın ve konuma dayalı hizmetleri geliştirmenin yanı sıra Google'ın ve üçüncü tarafların meşru menfaatleri doğrultusunda kullanıcı ihtiyaçlarını karşılamak üzere Google'ın hizmetlerinin sağlanması, sürdürülmesi ve geliştirilmesi için kimliğinizi tanımlamadan kullanılır. <ph name="BEGIN_LINK1" />Konum bilgisini kullanma hakkında daha fazla bilgi edinin<ph name="END_LINK1" /></translation>
@@ -9004,6 +9003,7 @@
 <translation id="7387951778417998929">Varsayılan dışında bir arama motoru kullanmak için kısayolunu adres çubuğuna yazdıktan sonra tercih ettiğiniz klavye kısayoluna basın. Varsayılan arama motorunuzu da buradan değiştirebilirsiniz.</translation>
 <translation id="7388615499319468910">Siteler ve reklamverenler, reklamların nasıl performans gösterdiğini anlayabilir. Bu ayar kapalı.</translation>
 <translation id="738903649531469042">Sekmeyi Okuma Listesine Ekle</translation>
+<translation id="7389615853658756494">Sitede değiştir</translation>
 <translation id="7392118418926456391">Virüs taraması başarısız oldu</translation>
 <translation id="7392915005464253525">Kapatılan p&amp;encereyi yeniden aç</translation>
 <translation id="7393073300870882456">{COUNT,plural, =1{1 öğe kopyalandı}other{{COUNT} öğe kopyalandı}}</translation>
@@ -9132,6 +9132,7 @@
 <translation id="7474043404939621342">Araç çubuğunuzu özelleştirin</translation>
 <translation id="747459581954555080">Tümünü geri yükle</translation>
 <translation id="747507174130726364">{NUM_DAYS,plural, =1{Hemen iade edilmesi gerekiyor}other{<ph name="DEVICE_TYPE" /> cihazı {NUM_DAYS} gün içinde iade edin}}</translation>
+<translation id="747557463733380256">Tarayıcınızın nasıl yönetildiği hakkında bilgi</translation>
 <translation id="7475671414023905704">Netscape Kayıp Şifre URL'si</translation>
 <translation id="7475742997309661417">ChromeOS'teki ekran okuyucu olan ChromeVox, özellikle görme engelli ve az gören kişiler tarafından konuşma sentezleyici ya da Braille ekranla birlikte ekranda gösterilen metni okumak için kullanılır. ChromeVox'u açmak için ses seviyesi tuşlarının ikisini birden beş saniye boyunca basılı tutun. ChromeVox etkinleştirildiğinde hızlı bir tura çıkarsınız.</translation>
 <translation id="7476454130948140105">Pil gücü güncelleme için yeterli değil (%<ph name="BATTERY_PERCENT" />)</translation>
@@ -10281,6 +10282,7 @@
 <translation id="8265018477030547118">Yalnızca bu cihazda</translation>
 <translation id="826511437356419340">Pencere genel bakış moduna girildi. Gezinmek için kaydırın veya klavye kullanıyorsanız sekme tuşuna basın.</translation>
 <translation id="8265671588726449108">{COUNT,plural, =1{Yeniden başlatırsanız gizli pencereniz açılmaz}other{Yeniden başlatırsanız {COUNT} gizli pencereniz tekrar açılmaz}}</translation>
+<translation id="8266430295499893285">Şifrelerinize erişmeden önce kimliğinizi doğrulamanız gerekir</translation>
 <translation id="8266947622852630193">Tüm giriş yöntemleri</translation>
 <translation id="8267539814046467575">Yazıcı ekle</translation>
 <translation id="8267961145111171918"><ph name="BEGIN_PARAGRAPH1" />Buradaki bilgiler (pil seviyesi, sistem ve uygulama etkinliği ve hatalar gibi) cihazla ve kullanımıyla ilgili genel bilgilerdir. Bu veriler Android'i iyileştirmek için kullanılır. Toplu hale getirilen bazı bilgiler, Google uygulamalarının ve Android geliştiricileri gibi iş ortaklarına ait uygulama ve ürünlerin iyileştirilmesine de yardımcı olur.<ph name="END_PARAGRAPH1" />
@@ -11090,7 +11092,6 @@
 <translation id="8827125715368568315">Engellendi: <ph name="PERMISSION" /> ve <ph name="COUNT" /> daha</translation>
 <translation id="8827289157496676362">Uzantıyı sabitle</translation>
 <translation id="8828933418460119530">DNS Adı</translation>
-<translation id="8829979393064090868">Bölünmüş görünüme sekme ekle</translation>
 <translation id="8830479210602243906">Üretkenliği artırın</translation>
 <translation id="883062543841130884">Değişiklikler</translation>
 <translation id="8830779999439981481">Güncellemelerin uygulanması için yeniden başlatılıyor</translation>
diff --git a/chrome/app/resources/generated_resources_uk.xtb b/chrome/app/resources/generated_resources_uk.xtb
index 5c7e02a1..2c19e84 100644
--- a/chrome/app/resources/generated_resources_uk.xtb
+++ b/chrome/app/resources/generated_resources_uk.xtb
@@ -5998,7 +5998,6 @@
 <translation id="5186381005592669696">Налаштувати мову відображення для підтримуваних додатків</translation>
 <translation id="5186788525428341874">За допомогою цього ключа доступу ви можете швидше входити в облікові записи на всіх пристроях. Його буде збережено в Google Менеджері паролів для облікового запису <ph name="ACCOUNT_NAME" />.</translation>
 <translation id="5187641678926990264">&amp;Установити сторінку як додаток…</translation>
-<translation id="5187671830619031922">Додати вкладку на розділений екран</translation>
 <translation id="5187826826541650604"><ph name="KEY_NAME" /> (<ph name="DEVICE" />)</translation>
 <translation id="5188242000716462162">Доступ надає <ph name="USER_NAME" /></translation>
 <translation id="5188648870018555788">Використовувати геодані. Дозвольте додаткам, вебсайтам і сервісам Android та ChromeOS використовувати геодані вашого пристрою. Завдяки точній геолокації додатки й сервіси Android отримують точніші геодані. Для роботи цієї функції Google періодично обробляє інформацію про датчики й бездротові сигнали з вашого пристрою, щоб збирати краудсорсингові дані про місцеположення бездротових сигналів. Ці дані використовуються, не ідентифікуючи вашу особу, щоб покращувати точність геолокації і сервіси, які працюють на основі геоданих, а також надавати, підтримувати й покращувати сервіси Google на підставі законних інтересів Google і третіх осіб в обслуговуванні користувачів. <ph name="BEGIN_LINK1" />Докладніше про використання даних про місцезнаходження<ph name="END_LINK1" /></translation>
@@ -9025,6 +9024,7 @@
 <translation id="7387951778417998929">Щоб скористатись іншою пошуковою системою, а не стандартною, введіть команду для неї в адресному рядку, а потім натисніть вибрану комбінацію клавіш. На цій сторінці також можна змінити пошукову систему за умовчанням.</translation>
 <translation id="7388615499319468910">Власники сайтів і рекламодавці можуть оцінювати ефективність своїх оголошень. Це налаштування вимкнено.</translation>
 <translation id="738903649531469042">Додати вкладку в список читання</translation>
+<translation id="7389615853658756494">Змінити на сайті</translation>
 <translation id="7392118418926456391">Помилка перевірки на віруси</translation>
 <translation id="7392915005464253525">В&amp;ідкрити закрите вікно знову</translation>
 <translation id="7393073300870882456">{COUNT,plural, =1{Скопійовано 1 елемент}one{Скопійовано {COUNT} елемент}few{Скопійовано {COUNT} елементи}many{Скопійовано {COUNT} елементів}other{Скопійовано {COUNT} елемента}}</translation>
@@ -9153,6 +9153,7 @@
 <translation id="7474043404939621342">Налаштування панелі інструментів</translation>
 <translation id="747459581954555080">Відновити все</translation>
 <translation id="747507174130726364">{NUM_DAYS,plural, =1{Негайно поверніть пристрій}one{Поверніть пристрій <ph name="DEVICE_TYPE" /> упродовж {NUM_DAYS} дня}few{Поверніть пристрій <ph name="DEVICE_TYPE" /> упродовж {NUM_DAYS} днів}many{Поверніть пристрій <ph name="DEVICE_TYPE" /> упродовж {NUM_DAYS} днів}other{Поверніть пристрій <ph name="DEVICE_TYPE" /> упродовж {NUM_DAYS} дня}}</translation>
+<translation id="747557463733380256">Дізнатися, хто керує вашим вебпереглядачем</translation>
 <translation id="7475671414023905704">URL-адреса втраченого пароля Netscape</translation>
 <translation id="7475742997309661417">Програма зчитування з екрана в ChromeOS – ChromeVox – переважно використовується незрячими людьми й людьми з поганим зором для читання тексту на екрані за допомогою синтезатора мовлення або брайлівського дисплея. Щоб увімкнути ChromeVox, утримуйте обидві клавіші гучності впродовж п’яти секунд. Після активації ви швидко ознайомитеся з можливостями програми.</translation>
 <translation id="7476454130948140105">Акумулятор недостатньо заряджений, щоб оновити дані (<ph name="BATTERY_PERCENT" />%)</translation>
@@ -10302,6 +10303,7 @@
 <translation id="8265018477030547118">Лише на цьому пристрої</translation>
 <translation id="826511437356419340">Ви ввійшли в режим огляду вікна. Для навігації проводьте пальцем або натискайте клавішу Tab на клавіатурі.</translation>
 <translation id="8265671588726449108">{COUNT,plural, =1{Вікно в режимі анонімного перегляду не відкриється після перезапуску}one{{COUNT} вікно в режимі анонімного перегляду не відкриється після перезапуску}few{{COUNT} вікна в режимі анонімного перегляду не відкриються після перезапуску}many{{COUNT} вікон у режимі анонімного перегляду не відкриються після перезапуску}other{{COUNT} вікна в режимі анонімного перегляду не відкриється після перезапуску}}</translation>
+<translation id="8266430295499893285">Щоб отримати доступ до паролів, підтвердьте свою особу</translation>
 <translation id="8266947622852630193">Усі методи введення</translation>
 <translation id="8267539814046467575">Додати принтер</translation>
 <translation id="8267961145111171918"><ph name="BEGIN_PARAGRAPH1" />Це загальна інформація про пристрій і його використання (наприклад, дані про рівень заряду акумулятора, систему, історію додатків та помилки). Ці відомості використовуватимуться, щоб покращити Android, а деякі зведені дані корисні для додатків і партнерів Google, як-от розробників Android.<ph name="END_PARAGRAPH1" />
@@ -11114,7 +11116,6 @@
 <translation id="8827125715368568315">Заблоковано: <ph name="PERMISSION" /> і ще <ph name="COUNT" /></translation>
 <translation id="8827289157496676362">Закріпити розширення</translation>
 <translation id="8828933418460119530">DNS-ім'я</translation>
-<translation id="8829979393064090868">Додати вкладку на розділений екран</translation>
 <translation id="8830479210602243906">Підвищити продуктивність</translation>
 <translation id="883062543841130884">Заміни</translation>
 <translation id="8830779999439981481">Відбувається перезапуск, щоб застосувати оновлення</translation>
diff --git a/chrome/app/resources/generated_resources_ur.xtb b/chrome/app/resources/generated_resources_ur.xtb
index 8ed1c53f..8cf0ec0 100644
--- a/chrome/app/resources/generated_resources_ur.xtb
+++ b/chrome/app/resources/generated_resources_ur.xtb
@@ -5982,7 +5982,6 @@
 <translation id="5186381005592669696">تعاون یافتہ ایپس کے لیے ڈسپلے کی زبان کو حسب ضرورت بنائیں</translation>
 <translation id="5186788525428341874">‏آپ اپنے سبھی آلات پر تیزی سے سائن ان کرنے کے لیے اس پاس کی کا استعمال کر سکتے ہیں۔ اسے <ph name="ACCOUNT_NAME" /> کے Google پاس ورڈ مینیجر میں محفوظ کیا جائے گا۔</translation>
 <translation id="5187641678926990264">صفحہ بطور ایپ انسٹال کریں...</translation>
-<translation id="5187671830619031922">اسپلٹ ویو میں ٹیب شامل کریں</translation>
 <translation id="5187826826541650604"><ph name="KEY_NAME" /> (<ph name="DEVICE" />)</translation>
 <translation id="5188242000716462162">اشتراک کردہ بذریعہ <ph name="USER_NAME" /></translation>
 <translation id="5188648870018555788">‏مقام استعمال کریں۔ مقام کی اجازت والی ChromeOS اور Android ایپس، ویب سائٹس اور سروسز کو اپنے آلے کا مقام استعمال کرنے کی اجازت دیں۔ مقام کی درستگی Android ایپس اور سروسز کے لیے مزید درست مقام فراہم کرتی ہے۔ ایسا کرنے کے لیے، Google وقتاً فوقتاً آپ کے آلے سے وائرلیس سگنل کے مقامات کو کراؤڈ سورس کرنے کے لیے آلے کے سینسرز اور وائرلیس سگنلز سے متعلق معلومات پر کارروائی کرتا ہے۔ ان کا استعمال آپ کی شناخت کیے بغیر مقام کی درستگی اور مقام پر مبنی سروسز کو بہتر بنانے، ساتھ ہی Google اور فریقین ثالث کی جائز دلچسپیوں پر مبنی Google کی سروسز کو بھی بہتر بنانے، انہیں فراہم کرنے اور ان کو برقرار رکھنے کے لیے کیا جاتا ہے تاکہ صارفین کی ضروریات کو پورا کیا جا سکے۔ <ph name="BEGIN_LINK1" />مقام استعمال کرنے کے بارے میں مزید جانیں<ph name="END_LINK1" /></translation>
@@ -11093,7 +11092,6 @@
 <translation id="8827125715368568315"><ph name="PERMISSION" /> اور مزید <ph name="COUNT" /> کو مسدود کر دیا گیا</translation>
 <translation id="8827289157496676362">ایکسٹینشن پن کریں</translation>
 <translation id="8828933418460119530">‏DNS نام</translation>
-<translation id="8829979393064090868">اسپلٹ ویو میں ٹیب شامل کریں</translation>
 <translation id="8830479210602243906">پروڈکٹیوٹی بوسٹ کریں</translation>
 <translation id="883062543841130884">متبادلات</translation>
 <translation id="8830779999439981481">اپ ڈیٹس لاگو کرنے کے لیے ری سٹارٹ ہو رہا ہے</translation>
diff --git a/chrome/app/resources/generated_resources_uz.xtb b/chrome/app/resources/generated_resources_uz.xtb
index 4c3fdce..6fd0e79d 100644
--- a/chrome/app/resources/generated_resources_uz.xtb
+++ b/chrome/app/resources/generated_resources_uz.xtb
@@ -5982,7 +5982,6 @@
 <translation id="5186381005592669696">Mos ilovalar uchun interfeys tili sozlamalari</translation>
 <translation id="5186788525428341874">Bu kirish kaliti yordamida qurilmalaringizda hisobga tezroq kirishingiz mumkin. U Google Parollar menejeri xotirasida <ph name="ACCOUNT_NAME" /> hisobiga saqlanadi.</translation>
 <translation id="5187641678926990264">Sahifani &amp;ilova shaklida oʻrnatish...</translation>
-<translation id="5187671830619031922">Varaqni ajratilgan rejimga kiritish</translation>
 <translation id="5187826826541650604"><ph name="KEY_NAME" /> (<ph name="DEVICE" />)</translation>
 <translation id="5188242000716462162"><ph name="USER_NAME" /> ulashgan</translation>
 <translation id="5188648870018555788">Joylashuv axborotidan foydalanish. Joylashuv axborotiga ruxsati bor ChromeOS, Android ilovalari, veb-saytlar va xizmatlarga bu qurilma joylashuvi haqidagi axborotdan foydalanishiga ruxsat bering. Joylashuvni aniqlash xizmati Android ilova va xizmatlarga yanada aniq joylashuv axborotini taqdim etadi. Buning uchun Google vaqti-vaqti bilan simsiz signallar joylashuvlarining umumiy omborini jamlash orqali qurilma sensorlari hamda simsiz aloqa haqidagi maʼlumotlardan foydalanadi. Anonim maʼlumotlar foydalanuvchining joylashuv axboroti bilan ishlaydigan xizmatlarda joylashuv aniqligini oshirish maqsadida jamlanadi. Bunday maʼlumotlar foydalanuvchilar ehtiyojini qondirish maqsadida Google va tashqi tomonlarga xizmatlarni qonun doirasida yaxshilash, taqdim etish hamda dastaklashga yordam beradi. <ph name="BEGIN_LINK1" />Joylashuv axboroti ishlatilishi haqida batafsil<ph name="END_LINK1" /></translation>
@@ -11094,7 +11093,6 @@
 <translation id="8827125715368568315">Bloklandi: <ph name="PERMISSION" /> va yana <ph name="COUNT" /> ta</translation>
 <translation id="8827289157496676362">Kengaytmani mahkamlash</translation>
 <translation id="8828933418460119530">DNS nomi</translation>
-<translation id="8829979393064090868">Varaqni ajratilgan rejimga kiritish</translation>
 <translation id="8830479210602243906">Unumdorlikni oshirish</translation>
 <translation id="883062543841130884">Almashtiruvlar</translation>
 <translation id="8830779999439981481">Yangilanishlarni qoʻllash uchun qayta ishga tushirilmoqda</translation>
diff --git a/chrome/app/resources/generated_resources_vi.xtb b/chrome/app/resources/generated_resources_vi.xtb
index 2026539a..6f46c5d 100644
--- a/chrome/app/resources/generated_resources_vi.xtb
+++ b/chrome/app/resources/generated_resources_vi.xtb
@@ -4781,6 +4781,7 @@
 <translation id="4305402730127028764">Sao chép vào <ph name="DEVICE_NAME" /></translation>
 <translation id="4305817255990598646">Chuyển</translation>
 <translation id="4306119971288449206">Ứng dụng phải được cung cấp loại nội dung "<ph name="CONTENT_TYPE" />"</translation>
+<translation id="4306489587293957491">Nhập</translation>
 <translation id="4306810703452026910">Chrome sẽ ngừng đánh dấu thông báo của trang web này là nội dung rác</translation>
 <translation id="4307992518367153382">Cơ bản</translation>
 <translation id="4309165024397827958">Cho phép các ứng dụng Android và dịch vụ có quyền truy cập thông tin vị trí được dùng thông tin vị trí của thiết bị. Google có thể định kỳ thu thập dữ liệu vị trí và sử dụng dữ liệu này theo cách ẩn danh nhằm cải thiện độ chính xác của vị trí và các dịch vụ dựa trên vị trí.</translation>
@@ -4838,6 +4839,7 @@
 <translation id="4350230709416545141">Luôn chặn không cho <ph name="HOST" /> truy cập thông tin vị trí của bạn</translation>
 <translation id="4350782034419308508">Ok Google</translation>
 <translation id="435185728237714178">Chuyển đến ứng dụng "<ph name="APP_NAME" />" để quản lý các ứng dụng đã cài đặt và ứng dụng được truyền trực tuyến</translation>
+<translation id="4352913519324947509">Mật khẩu của bạn chưa thay đổi, nhưng bạn vẫn có thể truy cập vào trang web này bằng mật khẩu hiện tại</translation>
 <translation id="4354073718307267720">Hỏi khi một trang web muốn tạo bản đồ 3D về các khu vực xung quanh bạn hoặc theo dõi thông tin vị trí của máy ảnh</translation>
 <translation id="4354344420232759511">Các trang web bạn truy cập sẽ xuất hiện ở đây</translation>
 <translation id="435527878592612277">Chọn ảnh của bạn</translation>
@@ -5996,7 +5998,6 @@
 <translation id="5186381005592669696">Tuỳ chỉnh ngôn ngữ hiển thị cho các ứng dụng được hỗ trợ</translation>
 <translation id="5186788525428341874">Bạn có thể dùng khoá truy cập này để đăng nhập nhanh hơn trên các thiết bị. Khoá truy cập này sẽ được lưu vào Trình quản lý mật khẩu của Google cho <ph name="ACCOUNT_NAME" />.</translation>
 <translation id="5187641678926990264">&amp;Cài đặt trang dưới dạng ứng dụng...</translation>
-<translation id="5187671830619031922">Thêm thẻ vào chế độ xem phân tách</translation>
 <translation id="5187826826541650604"><ph name="KEY_NAME" /> (<ph name="DEVICE" />)</translation>
 <translation id="5188242000716462162">Người chia sẻ: <ph name="USER_NAME" /></translation>
 <translation id="5188648870018555788">Sử dụng thông tin vị trí. Cho phép các ứng dụng, trang web và dịch vụ trên ChromeOS và Android có quyền truy cập thông tin vị trí sử dụng thông tin vị trí của thiết bị. Chế độ Độ chính xác của vị trí cung cấp thông tin chính xác hơn về vị trí cho các ứng dụng và dịch vụ Android. Để thực hiện việc này, Google định kỳ xử lý thông tin về cảm biến thiết bị và tín hiệu không dây từ thiết bị của bạn nhằm thu thập dữ liệu vị trí dựa trên tín hiệu không dây từ đám đông. Những thông tin này sẽ được sử dụng theo cách không xác định danh tính của bạn nhằm cải thiện độ chính xác của vị trí và các dịch vụ dựa trên vị trí. Ngoài ra, những thông tin này còn dùng để cải thiện, cung cấp và duy trì các dịch vụ của Google căn cứ trên lợi ích chính đáng của Google và bên thứ ba nhằm phục vụ nhu cầu của người dùng. <ph name="BEGIN_LINK1" />Tìm hiểu thêm về việc sử dụng thông tin vị trí<ph name="END_LINK1" /></translation>
@@ -8326,6 +8327,7 @@
 <translation id="686831807558000905">Không đăng nhập</translation>
 <translation id="686839242150793617">Được phép tự động chuyển sang chế độ hình trong hình</translation>
 <translation id="6868934826811377550">Xem thông tin chi tiết</translation>
+<translation id="6870470066213933201">Quản lý tính năng tối ưu hoá và bảo mật JavaScript</translation>
 <translation id="6871644448911473373">Phản hồi OCSP: <ph name="LOCATION" /></translation>
 <translation id="6871860225073478239">Ngôn ngữ...</translation>
 <translation id="6873571253135628430">Thay đổi quyền của trang web</translation>
@@ -11113,7 +11115,6 @@
 <translation id="8827125715368568315">Đã chặn <ph name="PERMISSION" /> và <ph name="COUNT" /> quyền khác</translation>
 <translation id="8827289157496676362">Ghim tiện ích</translation>
 <translation id="8828933418460119530">Tên DNS</translation>
-<translation id="8829979393064090868">Thêm thẻ vào chế độ xem phân tách</translation>
 <translation id="8830479210602243906">Tăng năng suất</translation>
 <translation id="883062543841130884">Ký tự thay thế</translation>
 <translation id="8830779999439981481">Đang khởi động lại để áp dụng bản cập nhật</translation>
diff --git a/chrome/app/resources/generated_resources_zh-CN.xtb b/chrome/app/resources/generated_resources_zh-CN.xtb
index 26671bd8..2d03d8d 100644
--- a/chrome/app/resources/generated_resources_zh-CN.xtb
+++ b/chrome/app/resources/generated_resources_zh-CN.xtb
@@ -5971,7 +5971,6 @@
 <translation id="5186381005592669696">自定义受支持应用的显示语言</translation>
 <translation id="5186788525428341874">您可以使用此通行密钥在各个设备上更快地登录。系统会将它保存到 <ph name="ACCOUNT_NAME" /> 的 Google 密码管理工具中。</translation>
 <translation id="5187641678926990264">将网页作为应用安装(&amp;I)…</translation>
-<translation id="5187671830619031922">向拆分视图中添加标签页</translation>
 <translation id="5187826826541650604"><ph name="KEY_NAME" /> (<ph name="DEVICE" />)</translation>
 <translation id="5188242000716462162">由<ph name="USER_NAME" />共享</translation>
 <translation id="5188648870018555788">使用位置信息:允许具有位置信息权限的 ChromeOS 及 Android 应用、网站和服务使用设备的位置信息。开启“位置信息精确度”设置可为 Android 应用和服务提供更精确的位置信息。为此,Google 会定期处理来自您设备的传感器信息和无线信号信息,然后汇总根据无线信号识别的位置信息。Google 会在不识别您个人身份的情况下,使用这些信息来提高位置信息精确度和改善基于地理位置的服务,并根据 Google 和第三方的合法权益来改进、提供和维护 Google 服务,以满足用户的需求。<ph name="BEGIN_LINK1" />详细了解如何使用位置信息<ph name="END_LINK1" /></translation>
@@ -8992,6 +8991,7 @@
 <translation id="7387951778417998929">若要使用非默认的搜索引擎,请先在地址栏中输入相应的快捷字词,然后按您的首选键盘快捷键。您还可在此处更改默认搜索引擎。</translation>
 <translation id="7388615499319468910">网站和广告主可以了解广告效果。此设置已关闭。</translation>
 <translation id="738903649531469042">向阅读清单中添加标签页</translation>
+<translation id="7389615853658756494">在网站上更改</translation>
 <translation id="7392118418926456391">病毒扫描失败</translation>
 <translation id="7392915005464253525">重新打开关闭的窗口(&amp;E)</translation>
 <translation id="7393073300870882456">{COUNT,plural, =1{已复制 1 个条目}other{已复制 {COUNT} 个条目}}</translation>
@@ -9121,6 +9121,7 @@
 <translation id="7474043404939621342">自定义工具栏</translation>
 <translation id="747459581954555080">全部恢复</translation>
 <translation id="747507174130726364">{NUM_DAYS,plural, =1{必须立即退还此设备}other{请在 {NUM_DAYS} 天内退还 <ph name="DEVICE_TYPE" />}}</translation>
+<translation id="747557463733380256">了解您的浏览器的管理方式</translation>
 <translation id="7475671414023905704">Netscape 忘了密码网址</translation>
 <translation id="7475742997309661417">ChromeOS 中的屏幕阅读器 (ChromeVox) 主要供盲人或低视力用户使用,以便这些用户通过语音合成器或盲文显示屏获知屏幕上显示的文字。同时按住两个音量键 5 秒钟即可开启 ChromeVox。启用 ChromeVox 后,系统将带您快速了解相关功能。</translation>
 <translation id="7476454130948140105">电量太低 (<ph name="BATTERY_PERCENT" />%),无法更新</translation>
@@ -10270,6 +10271,7 @@
 <translation id="8265018477030547118">仅在该设备上</translation>
 <translation id="826511437356419340">已进入窗口概览模式。您可以滑动手指或(若使用键盘)按 Tab 键进行浏览。</translation>
 <translation id="8265671588726449108">{COUNT,plural, =1{当您重新启动后,您先前打开的那个无痕式窗口不会自动打开}other{当您重新启动后,您先前打开的那 {COUNT} 个无痕式窗口不会自动打开}}</translation>
+<translation id="8266430295499893285">您需要验证身份,然后才能访问您的密码</translation>
 <translation id="8266947622852630193">所有输入法</translation>
 <translation id="8267539814046467575">添加打印机</translation>
 <translation id="8267961145111171918"><ph name="BEGIN_PARAGRAPH1" />这是关于此设备及其使用情况(例如电池电量、系统与应用活动以及错误)的一般信息。我们会使用这些数据来改善 Android;部分汇总信息也会有助于改善 Google 应用,并会协助我们的合作伙伴(例如 Android 开发者)改善其应用和产品。<ph name="END_PARAGRAPH1" />
@@ -11079,7 +11081,6 @@
 <translation id="8827125715368568315">禁用了“<ph name="PERMISSION" />”权限和另外 <ph name="COUNT" /> 项权限</translation>
 <translation id="8827289157496676362">固定扩展程序</translation>
 <translation id="8828933418460119530">DNS 名称</translation>
-<translation id="8829979393064090868">向拆分视图中添加标签页</translation>
 <translation id="8830479210602243906">提高工作效率</translation>
 <translation id="883062543841130884">替换</translation>
 <translation id="8830779999439981481">正在重启以应用更新</translation>
diff --git a/chrome/app/resources/generated_resources_zh-HK.xtb b/chrome/app/resources/generated_resources_zh-HK.xtb
index 6f32b597..27a8d33 100644
--- a/chrome/app/resources/generated_resources_zh-HK.xtb
+++ b/chrome/app/resources/generated_resources_zh-HK.xtb
@@ -4775,6 +4775,7 @@
 <translation id="4305402730127028764">複製到「<ph name="DEVICE_NAME" />」</translation>
 <translation id="4305817255990598646">切換</translation>
 <translation id="4306119971288449206">應用程式的內容類型應設為「<ph name="CONTENT_TYPE" />」</translation>
+<translation id="4306489587293957491">輸入</translation>
 <translation id="4306810703452026910">Chrome 不會再將來自此網站的通知標示為垃圾內容</translation>
 <translation id="4307992518367153382">基本</translation>
 <translation id="4309165024397827958">允許擁有位置存取權的 Android 應用程式和服務使用裝置的位置資訊。Google 可能會定期收集並以匿名方式使用位置資訊,以提升定位的精確度及改善適地性服務。</translation>
@@ -4832,6 +4833,7 @@
 <translation id="4350230709416545141">一律禁止 <ph name="HOST" /> 存取您的位置</translation>
 <translation id="4350782034419308508">Hey Google</translation>
 <translation id="435185728237714178">請前往「<ph name="APP_NAME" />」應用程式,管理已安裝和串流的應用程式</translation>
+<translation id="4352913519324947509">你的密碼並未變更,但你應該仍能使用當前密碼存取網站</translation>
 <translation id="4354073718307267720">在網站要求建立您身處環境的 3D 地圖或追蹤攝錄機位置時詢問您</translation>
 <translation id="4354344420232759511">您瀏覽過的網站會在這裡顯示</translation>
 <translation id="435527878592612277">選取相片</translation>
@@ -5989,7 +5991,6 @@
 <translation id="5186381005592669696">自訂支援應用程式的顯示語言</translation>
 <translation id="5186788525428341874">你可在所有裝置上使用此密鑰快速登入。系統會將密碼儲存至 <ph name="ACCOUNT_NAME" /> 的「Google 密碼管理工具」。</translation>
 <translation id="5187641678926990264">將網頁作為應用程式安裝…</translation>
-<translation id="5187671830619031922">將分頁新增至「分割檢視畫面」</translation>
 <translation id="5187826826541650604"><ph name="KEY_NAME" /> (<ph name="DEVICE" />)</translation>
 <translation id="5188242000716462162">分享者:<ph name="USER_NAME" /></translation>
 <translation id="5188648870018555788">使用位置資料。允許有位置權限的 ChromeOS 和 Android 應用程式、網站和服務使用裝置位置。「定位精確度」為 Android 應用程式和服務提供更精確的位置。為此,Google 會定期處理裝置的感應器資訊和無線訊號,協助尋找無線訊號位置。這些資料不會識別你的身分,會用於改善定位精確度和適地性服務,並按照 Google 和第三方合法權益來改善、提供和維護 Google 的服務,滿足使用者的需要。<ph name="BEGIN_LINK1" />進一步瞭解如何使用位置設定<ph name="END_LINK1" /></translation>
@@ -8315,6 +8316,7 @@
 <translation id="686831807558000905">不登入</translation>
 <translation id="686839242150793617">已允許自動進入畫中畫</translation>
 <translation id="6868934826811377550">查看詳情</translation>
+<translation id="6870470066213933201">管理 JavaScript 優化和保安</translation>
 <translation id="6871644448911473373">OCSP 回應程式:<ph name="LOCATION" /></translation>
 <translation id="6871860225073478239">語言…</translation>
 <translation id="6873571253135628430">變更網站權限</translation>
@@ -9010,6 +9012,7 @@
 <translation id="7387951778417998929">如要使用預設以外的搜尋引擎,請在網址列輸入搜尋引擎的快捷字詞,然後按下您偏好的鍵盤快速鍵。您亦可在此變更預設的搜尋引擎。</translation>
 <translation id="7388615499319468910">網站和廣告客戶可以瞭解廣告的效益。此設定已關閉。</translation>
 <translation id="738903649531469042">將分頁新增至閱讀清單</translation>
+<translation id="7389615853658756494">在網站上更改</translation>
 <translation id="7392118418926456391">病毒掃描失敗</translation>
 <translation id="7392915005464253525">重新開啟已關閉視窗(&amp;E)</translation>
 <translation id="7393073300870882456">{COUNT,plural, =1{已複製 1 個項目}other{已複製 {COUNT} 個項目}}</translation>
@@ -9138,6 +9141,7 @@
 <translation id="7474043404939621342">自訂工具列</translation>
 <translation id="747459581954555080">全部還原</translation>
 <translation id="747507174130726364">{NUM_DAYS,plural, =1{需要立即歸還}other{請在 {NUM_DAYS} 天內歸還 <ph name="DEVICE_TYPE" />}}</translation>
+<translation id="747557463733380256">進一步了解瀏覽器嘅管理方式</translation>
 <translation id="7475671414023905704">Netscape 遺失密碼網址</translation>
 <translation id="7475742997309661417">ChromeOS 嘅螢幕閱讀器 ChromeVox 主要係俾失明或者低視力人士用嚟透過語音合成器或者點字顯示器閱讀螢幕上面顯示嘅文字。同時㩒住校高同校低音量掣 5 秒就可以啟用 ChromeVox。ChromeVox 啟動之後,系統就會提供快速導覽。</translation>
 <translation id="7476454130948140105">電量過低,無法更新 (<ph name="BATTERY_PERCENT" />%)</translation>
@@ -10285,6 +10289,7 @@
 <translation id="8265018477030547118">只儲存在此裝置上</translation>
 <translation id="826511437356419340">進入咗視窗概覽模式。掃一下就可以瀏覽。如果你用鍵盤,㩒一下 Tab 鍵就可以瀏覽。</translation>
 <translation id="8265671588726449108">{COUNT,plural, =1{您的無痕式視窗將不會在重新啟動後開啟}other{您的 {COUNT} 個無痕式視窗將不會在重新啟動後開啟}}</translation>
+<translation id="8266430295499893285">你需要先驗證身分才能存取密碼</translation>
 <translation id="8266947622852630193">所有輸入方法</translation>
 <translation id="8267539814046467575">新增打印機</translation>
 <translation id="8267961145111171918"><ph name="BEGIN_PARAGRAPH1" />這是裝置的一般資料和使用情况 (例如電量、系統及應用程式活動,以及發生的錯誤)。這些資料將會用來改善 Android。部分彙整資料還能協助 Google 應用程式和合作夥伴 (例如 Android 開發人員) 改良應用程式和產品。<ph name="END_PARAGRAPH1" />
@@ -11090,7 +11095,6 @@
 <translation id="8827125715368568315">已封鎖<ph name="PERMISSION" />和其他 <ph name="COUNT" /> 個項目</translation>
 <translation id="8827289157496676362">固定擴充功能</translation>
 <translation id="8828933418460119530">DNS 名稱</translation>
-<translation id="8829979393064090868">將分頁新增至分割檢視畫面</translation>
 <translation id="8830479210602243906">提升生產力</translation>
 <translation id="883062543841130884">替代項目</translation>
 <translation id="8830779999439981481">正在重新啟動以套用更新</translation>
diff --git a/chrome/app/resources/generated_resources_zh-TW.xtb b/chrome/app/resources/generated_resources_zh-TW.xtb
index 079fec6..a84d0fa 100644
--- a/chrome/app/resources/generated_resources_zh-TW.xtb
+++ b/chrome/app/resources/generated_resources_zh-TW.xtb
@@ -4764,6 +4764,7 @@
 <translation id="4305402730127028764">複製到「<ph name="DEVICE_NAME" />」</translation>
 <translation id="4305817255990598646">切換</translation>
 <translation id="4306119971288449206">應用程式的內容類型應設為「<ph name="CONTENT_TYPE" />」</translation>
+<translation id="4306489587293957491">輸入</translation>
 <translation id="4306810703452026910">Chrome 不會再將來自這個網站的通知標示為垃圾訊息</translation>
 <translation id="4307992518367153382">基本選項</translation>
 <translation id="4309165024397827958">允許具有位置存取權的 Android 應用程式和服務使用您裝置的位置資訊。Google 可能會定期蒐集位置資料,並以匿名方式使用這類資料,藉此提高定位精確度及改善適地性服務。</translation>
@@ -4821,6 +4822,7 @@
 <translation id="4350230709416545141">一律禁止 <ph name="HOST" /> 存取你的位置資訊</translation>
 <translation id="4350782034419308508">Hey Google</translation>
 <translation id="435185728237714178">請前往「<ph name="APP_NAME" />」應用程式,管理已安裝和串流的應用程式</translation>
+<translation id="4352913519324947509">密碼未變更,但你應該還能使用現有密碼存取網站</translation>
 <translation id="4354073718307267720">網站必須先詢問你,才能根據你的周遭環境建立 3D 地圖或追蹤攝影機位置</translation>
 <translation id="4354344420232759511">這裡會顯示你曾造訪的網站</translation>
 <translation id="435527878592612277">請選取你的相片</translation>
@@ -5978,7 +5980,6 @@
 <translation id="5186381005592669696">自訂支援應用程式的顯示語言</translation>
 <translation id="5186788525428341874">你可以在所有裝置上使用這個密碼金鑰快速登入。系統會將密碼金鑰儲存到 <ph name="ACCOUNT_NAME" /> 的 Google 密碼管理工具。</translation>
 <translation id="5187641678926990264">將頁面安裝為應用程式(&amp;I)...</translation>
-<translation id="5187671830619031922">將分頁新增到分割檢視畫面</translation>
 <translation id="5187826826541650604"><ph name="KEY_NAME" /> (<ph name="DEVICE" />)</translation>
 <translation id="5188242000716462162">共用者:<ph name="USER_NAME" /></translation>
 <translation id="5188648870018555788">使用定位服務。允許 ChromeOS 和具有位置存取權的 Android 應用程式、網站及服務使用裝置的位置資訊。「定位精確度」可為 Android 應用程式和服務提供更精確的位置資訊。為達成此目標,Google 會定期處理裝置感應器相關資訊和來自裝置的無線訊號,然後匯總這些無線訊號定位資料並建立資料庫。這些資料不含身分識別資訊,可用於提高定位精確度和適地性服務的品質,並基於 Google 和第三方的正當利益改善、提供及維護 Google 服務,以滿足使用者需求。<ph name="BEGIN_LINK1" />進一步瞭解定位服務使用情形<ph name="END_LINK1" /></translation>
@@ -8303,6 +8304,7 @@
 <translation id="686831807558000905">不登入</translation>
 <translation id="686839242150793617">允許自動進入子母畫面</translation>
 <translation id="6868934826811377550">查看詳情</translation>
+<translation id="6870470066213933201">管理 JavaScript 最佳化和安全性</translation>
 <translation id="6871644448911473373">OCSP 回應程式:<ph name="LOCATION" /></translation>
 <translation id="6871860225073478239">語言...</translation>
 <translation id="6873571253135628430">變更網站權限</translation>
@@ -8997,6 +8999,7 @@
 <translation id="7387951778417998929">如要使用非系統預設的搜尋引擎,請在網址列中輸入相應的搜尋捷徑,然後按下你慣用的鍵盤快速鍵。你也可以在這裡變更你的預設搜尋引擎。</translation>
 <translation id="7388615499319468910">網站和廣告主可以瞭解廣告成效。這項設定已關閉。</translation>
 <translation id="738903649531469042">將分頁新增至閱讀清單</translation>
+<translation id="7389615853658756494">在網站上變更</translation>
 <translation id="7392118418926456391">病毒掃描失敗</translation>
 <translation id="7392915005464253525">重新開啟已關閉視窗(&amp;E)</translation>
 <translation id="7393073300870882456">{COUNT,plural, =1{已複製 1 個項目}other{已複製 {COUNT} 個項目}}</translation>
@@ -9126,6 +9129,7 @@
 <translation id="7474043404939621342">自訂工具列</translation>
 <translation id="747459581954555080">全部還原</translation>
 <translation id="747507174130726364">{NUM_DAYS,plural, =1{需要立即退還}other{請在 {NUM_DAYS} 天內退還「<ph name="DEVICE_TYPE" />」}}</translation>
+<translation id="747557463733380256">瞭解如何管理瀏覽器</translation>
 <translation id="7475671414023905704">Netscape 遺失密碼網址</translation>
 <translation id="7475742997309661417">ChromeVox 是 ChromeOS 上的螢幕閱讀器,主要供失明和低視能人士使用,可協助他們透過語音合成器或點字顯示器閱讀螢幕上顯示的文字。同時按住音量調高鍵和調低鍵五秒,即可啟用 ChromeVox。ChromeVox 啟動後,系統會提供快速導覽。</translation>
 <translation id="7476454130948140105">電量過低,無法進行更新 (<ph name="BATTERY_PERCENT" />%)</translation>
@@ -10275,6 +10279,7 @@
 <translation id="8265018477030547118">僅儲存在這部裝置上</translation>
 <translation id="826511437356419340">已進入視窗總覽模式。滑動畫面或按下鍵盤上的 Tab 鍵即可瀏覽。</translation>
 <translation id="8265671588726449108">{COUNT,plural, =1{重新啟動後,系統將不會開啟無痕視窗}other{重新啟動後,系統將不會重新開啟 {COUNT} 個無痕視窗}}</translation>
+<translation id="8266430295499893285">你必須先驗證身分,才能存取密碼</translation>
 <translation id="8266947622852630193">所有輸入法</translation>
 <translation id="8267539814046467575">新增印表機</translation>
 <translation id="8267961145111171918"><ph name="BEGIN_PARAGRAPH1" />這會提供裝置和裝置使用情況的一般資訊 (例如電池電量、系統和應用程式活動,以及錯誤資訊)。這些資料會用於改善 Android 使用體驗,而部分匯總資訊還能協助 Google 應用程式和合作夥伴 (例如 Android 開發人員) 提高應用程式和產品的品質。<ph name="END_PARAGRAPH1" />
@@ -11084,7 +11089,6 @@
 <translation id="8827125715368568315">已封鎖:<ph name="PERMISSION" />和另外 <ph name="COUNT" /> 項</translation>
 <translation id="8827289157496676362">固定擴充功能</translation>
 <translation id="8828933418460119530">DNS 名稱</translation>
-<translation id="8829979393064090868">將分頁新增到分割檢視畫面</translation>
 <translation id="8830479210602243906">大幅提升工作效率</translation>
 <translation id="883062543841130884">替代項目</translation>
 <translation id="8830779999439981481">正在重新啟動以套用更新</translation>
diff --git a/chrome/app/resources/generated_resources_zu.xtb b/chrome/app/resources/generated_resources_zu.xtb
index 18a86979..27b7c66 100644
--- a/chrome/app/resources/generated_resources_zu.xtb
+++ b/chrome/app/resources/generated_resources_zu.xtb
@@ -4781,6 +4781,7 @@
 <translation id="4305402730127028764">Kopishela ku-<ph name="DEVICE_NAME" /></translation>
 <translation id="4305817255990598646">Shintsha</translation>
 <translation id="4306119971288449206">Izinhlelo zokusebenza kumele zinikezwe ngohlobo lokuqukethwe kwe-"<ph name="CONTENT_TYPE" />"</translation>
+<translation id="4306489587293957491">Faka</translation>
 <translation id="4306810703452026910">IChrome izozimisa izaziso ezimakiwe ezivela kule sayithi zibe ogaxekile</translation>
 <translation id="4307992518367153382">Izisekelo</translation>
 <translation id="4309165024397827958">Vumela ama-app we-Android namasevisi ngemvume yendawo ukuze asebenzise indawo yedivayisi yakho. I-Google ingaqoqa idatha yasendaweni ngezikhathi ezithile iphinde isebenzise le datha ngendlela engaziwa ukuze kuthuthukiswe ukunemba kwendawo namasevisi asuselwa endaweni.</translation>
@@ -4838,6 +4839,7 @@
 <translation id="4350230709416545141">Vimba i-<ph name="HOST" /> njalo ekufinyeleleni indawo yakho</translation>
 <translation id="4350782034419308508">Hey Google</translation>
 <translation id="435185728237714178">Yiya ku-"<ph name="APP_NAME" />" app ukuze ulawule ama-app afakiwe nasakaza bukhoma</translation>
+<translation id="4352913519324947509">Iphasiwedi yakho ayizange ishitshwe, noma kunjalo kufanele ukwazi ukufinyelela esayithini ngephasiwedi yakho endala</translation>
 <translation id="4354073718307267720">Buza uma amasayithi efuna ukudala imephu ye-3D yendawo ekuzungezile noma ukulandelela indawo yekhamera (kuyanconywa)</translation>
 <translation id="4354344420232759511">Amasayithi owavakashelayo azovela lapha</translation>
 <translation id="435527878592612277">Khetha isithombe sakho</translation>
@@ -5996,7 +5998,6 @@
 <translation id="5186381005592669696">Qoka ulimi lokubonisa kuma-app asekelwayo</translation>
 <translation id="5186788525428341874">Ungasebenzisa lo khiye wokungena ukuze ungene ngemvume ngokushesha kuwo wonke amadivayisi wakho. Izolondolozwa Kumphathi Wephasiwedi Ye-Google ye-<ph name="ACCOUNT_NAME" /></translation>
 <translation id="5187641678926990264">&amp;Faka Ikhasi njenge-App...</translation>
-<translation id="5187671830619031922">Engeza Ithebhu Ekubukeni Okuhlukanisiwe</translation>
 <translation id="5187826826541650604"><ph name="KEY_NAME" /> (<ph name="DEVICE" />)</translation>
 <translation id="5188242000716462162">Kwabiwe ngu-<ph name="USER_NAME" /></translation>
 <translation id="5188648870018555788">Sebenzisa indawo. Vumela iChromeOS nama-app e-Android, amawebhusayithi, namasevisi anemvume yendawo ukuba asebenzise indawo yedivayisi yakho. Ukuhlonzwa Kwendawo Ngqo kunikeza indawo enembe kakhulu kuma-app namasevisi e-Android. Ukuze yenze lokhu, iGoogle ngezikhathi ezithile icubungula ulwazi olusedivayisini yakho olumayelana nezinzwa zedivayisi namasiginali angenantambo ukuze kutholwe izindawo ezinesiginali engenantambo ngeningi. Lokhu kusetshenziswa ngaphandle kokukudalula ukuze kuthuthukiswe ukuhlonzwa kwendawo ngqo kanye namasevisi afaneleka ngokwendawo ukuze kuthuthukiswe, kuhlinzekwe, futhi kulondolozwe amasevisi eGoogle ngokuvumelana nezintshisekelo eziyimfuneko zeGoogle nezinkampani ezingahlangene ngqo zokuhlinzeka ngezidingo zabasebenzisi. <ph name="BEGIN_LINK1" />Funda kabanzi ngokusebenzisa indawo<ph name="END_LINK1" /></translation>
@@ -8329,6 +8330,7 @@
 <translation id="686831807558000905">Ungangeni ngemvume</translation>
 <translation id="686839242150793617">Ivunyelwe ukufaka isithombe-esithombeni ngokuzenzakalelayo</translation>
 <translation id="6868934826811377550">Bona Imininingwane</translation>
+<translation id="6870470066213933201">Lawula ukulungiselelwa kweJavaScript nokuphepha</translation>
 <translation id="6871644448911473373">Isiphenduli se-OCSP: <ph name="LOCATION" /></translation>
 <translation id="6871860225073478239">Izilimi...</translation>
 <translation id="6873571253135628430">Shintsha izimvume zesayithi</translation>
@@ -9023,6 +9025,7 @@
 <translation id="7387951778417998929">Ukuze usebenzise injini yokusesha ngaphandle kokuzenzakalelayo, thayipha isinqamuleli sayo kubha yekheli kulandelwa isinqamuleli sekhibhodi sakho esincanyelwayo. Futhi ungashintsha injini yakho yosesho ezenzakalelayo lapha.</translation>
 <translation id="7388615499319468910">Amasayithi nabakhangisi bangaqonda ukuthi izikhangiso zisebenza kanjani. Le sethingi ivaliwe.</translation>
 <translation id="738903649531469042">Engeza Ithebhu Kuhlu Lokufunda</translation>
+<translation id="7389615853658756494">Yishintshe esayithini</translation>
 <translation id="7392118418926456391">Ukuskena kwegciwane kuhlulekile</translation>
 <translation id="7392915005464253525">Phinda uvule iwindi elivaliwe</translation>
 <translation id="7393073300870882456">{COUNT,plural, =1{into e-1 ekopishiwe}one{izinto ezingu-{COUNT} ezikopishiwe}other{izinto ezingu-{COUNT} ezikopishiwe}}</translation>
@@ -9152,6 +9155,7 @@
 <translation id="7474043404939621342">Yenza ngokwezifiso ibha yakho yamathuluzi</translation>
 <translation id="747459581954555080">Buyisela konke</translation>
 <translation id="747507174130726364">{NUM_DAYS,plural, =1{Ukubuyisela okusheshayo kuyadingeka}one{Buyisela i-<ph name="DEVICE_TYPE" /> phakathi nezinsuku ezingu-{NUM_DAYS}}other{Buyisela i-<ph name="DEVICE_TYPE" /> phakathi nezinsuku ezingu-{NUM_DAYS}}}</translation>
+<translation id="747557463733380256">Funda kabanzi mayelana nendlela ibhrawuza yakho elawulwa ngayo</translation>
 <translation id="7475671414023905704">I-Netscape ilahlekelwe yi-URL yephasiwedi</translation>
 <translation id="7475742997309661417">Isifundi sesikrini ku-ChromeOS, ChromeVox, sisetshenziswa ngokuyinhloko abayizimpumputhe kanye nabangaboni kahle ukuze bafunde umbhalo ovezwe esikrinini besizwa yizwi lomshini noma isibonisi se-braille. Cindezela futhi ubambe bobabili okhiye bevolumu imizuzwana emihlanu ukuze uvule i-ChromeVox. Uma i-ChromeVox yenziwe yasebenza, uzoyihambela ngokushesha.</translation>
 <translation id="7476454130948140105">Ibhethri liphansi kakhulu ukuthi lingabuyekezwa (<ph name="BATTERY_PERCENT" />%)</translation>
@@ -10299,6 +10303,7 @@
 <translation id="8265018477030547118">Kule divayisi kuphela</translation>
 <translation id="826511437356419340">Ingene kumodi yokubuka konke yewindi. Swayipha ukuzulazula, noma cindezela ithebhu uma usebenzisa ikhibhodi.</translation>
 <translation id="8265671588726449108">{COUNT,plural, =1{Iwindi lakho le-Incognito ngeke livule ngemva kokuthi uqalise kabusha}one{Amawindi wakho we-Incognito angu-{COUNT} ngeke avule ngemva kokuthi uqalise kabusha}other{Amawindi wakho we-Incognito angu-{COUNT} ngeke avule ngemva kokuthi uqalise kabusha}}</translation>
+<translation id="8266430295499893285">Udinga ukuqinisekisa ukuthi nguwe ngaphambi kokuthi ufinyelele amaphasiwedi akho</translation>
 <translation id="8266947622852630193">Zonke izindlela zokufaka</translation>
 <translation id="8267539814046467575">Engeza iphrinta</translation>
 <translation id="8267961145111171918"><ph name="BEGIN_PARAGRAPH1" />Lolu ulwazi oluvamile mayelana nale divayisi nokuthi isetshenziswa kanjani (njengeleveli yebhethri, umsebenzi wesistimu nohlelo lokusebenza, namaphutha). Idatha izosetshenziswa ukuthuthukisa i-Android, nolunye ulwazi oluhlanganisiwe nalo luzosiza izinhlelo zousebenza ze-Google nozakwethu, njengonjiniyela be-Android, ukwenza izinhlelo zabo zokusebenza nemikhiqizo kubengcono.<ph name="END_PARAGRAPH1" />
@@ -11109,7 +11114,6 @@
 <translation id="8827125715368568315">Kuvinjwe i-<ph name="PERMISSION" /> nokungu-<ph name="COUNT" /> ngaphezulu</translation>
 <translation id="8827289157496676362">Isandiso sephinikhodi</translation>
 <translation id="8828933418460119530">Igama le-DNS</translation>
-<translation id="8829979393064090868">Engeza ithebhu ekubukeni okuhlukanisiwe</translation>
 <translation id="8830479210602243906">Khulisa ukukhiqiza</translation>
 <translation id="883062543841130884">Ukushintshaniswa</translation>
 <translation id="8830779999439981481">Iqala kabusha ukuze isebenzise izibuyekezo</translation>
diff --git a/chrome/app/resources/google_chrome_strings_ar.xtb b/chrome/app/resources/google_chrome_strings_ar.xtb
index 9a7118c..18c1f882 100644
--- a/chrome/app/resources/google_chrome_strings_ar.xtb
+++ b/chrome/app/resources/google_chrome_strings_ar.xtb
@@ -63,6 +63,7 @@
 <translation id="178701303897325119">‏لم تعُد هذه الإضافة متاحة. ينصح متصفّح Chrome بإزالتها.</translation>
 <translation id="1812689907177901597">‏من خلال إيقاف هذا الإعداد، يمكنك تسجيل الدخول إلى "مواقع Google" مثل Gmail بدون الحاجة إلى تسجيل الدخول إلى Chrome</translation>
 <translation id="1821644463306970002">{NUM_TABS,plural, =1{‏ينصح Chrome بإيقاف علامة التبويب التي تبطئ المتصفّح مؤقتًا}zero{‏ينصح Chrome بإيقاف علامات التبويب التي تبطئ المتصفّح مؤقتًا}two{‏ينصح Chrome بإيقاف علامتَي التبويب اللتين تبطئان المتصفّح مؤقتًا}few{‏ينصح Chrome بإيقاف علامات التبويب التي تبطئ المتصفّح مؤقتًا}many{‏ينصح Chrome بإيقاف علامات التبويب التي تبطئ المتصفّح مؤقتًا}other{‏ينصح Chrome بإيقاف علامات التبويب التي تبطئ المتصفّح مؤقتًا}}</translation>
+<translation id="1832046143430087831">‏يعمل هذا الإعداد على زيادة سرعة المواقع الإلكترونية باستخدام محرّك V8 في Chrome، مع تقليل قدرة Chrome على مقاومة الهجمات قليلاً. هذا الإعداد غير مفعَّل.</translation>
 <translation id="1838374766361614909">محو البحث</translation>
 <translation id="1860536484129686729">‏يحتاج Chrome إلى إذن للوصول إلى الكاميرا من أجل الموقع الإلكتروني هذا.</translation>
 <translation id="1873233029667955273">‏Google Chrome ليس متصفحك التلقائي.</translation>
@@ -447,6 +448,7 @@
 <translation id="6718739135284199302">‏زيادة سرعة متصفِّح Chrome</translation>
 <translation id="6735387454586646204">‏نظام التشغيل ChromeOS Flex</translation>
 <translation id="6750954913813541382">‏لإصلاح الأخطاء الإملائية، يرسِل Chrome النص الذي تكتبه في المتصفّح إلى Google.</translation>
+<translation id="6760235774835597023">‏يعمل هذا الإعداد على زيادة سرعة المواقع الإلكترونية باستخدام محرّك V8 في Chrome، مع تقليل قدرة Chrome على مقاومة الهجمات قليلاً. هذا الإعداد مفعَّل.</translation>
 <translation id="677276454032249905">‏هل تريد الخروج من Chrome على أي حال؟</translation>
 <translation id="6794858689789885890">‏حذف بيانات الموقع الإلكتروني من جهازك دائمًا عند إغلاق Chrome</translation>
 <translation id="6831043979455480757">ترجمة</translation>
diff --git a/chrome/app/resources/google_chrome_strings_hu.xtb b/chrome/app/resources/google_chrome_strings_hu.xtb
index 5540040..a9a83cc 100644
--- a/chrome/app/resources/google_chrome_strings_hu.xtb
+++ b/chrome/app/resources/google_chrome_strings_hu.xtb
@@ -61,6 +61,7 @@
 <translation id="178701303897325119">Ez a bővítmény már nem támogatott. A Chrome az eltávolítását javasolja.</translation>
 <translation id="1812689907177901597">A beállítás kikapcsolásával anélkül jelentkezhet be a Google-webhelyekre (pl. Gmail), hogy a Chrome-ba is bejelentkezne</translation>
 <translation id="1821644463306970002">{NUM_TABS,plural, =1{A Chrome a böngészőt lassító lap szüneteltetését javasolja}other{A Chrome a böngészőt lassító lapok szüneteltetését javasolja}}</translation>
+<translation id="1832046143430087831">A Chrome V8 motorjával felgyorsítja a webhelyeket, de kissé kevésbé ellenállóvá teszi a Chrome-ot a támadásokkal szemben. Ez a beállítás ki van kapcsolva.</translation>
 <translation id="1838374766361614909">Keresett kifejezés törlése</translation>
 <translation id="1860536484129686729">A Chrome-nak engedélyre van szüksége ahhoz, hogy hozzáférjen a kamerához ennél a webhelynél</translation>
 <translation id="1873233029667955273">Nem a Google Chrome az alapértelmezett böngésző</translation>
@@ -443,6 +444,7 @@
 <translation id="6718739135284199302">A Chrome felgyorsítása</translation>
 <translation id="6735387454586646204">ChromeOS Flex rendszer</translation>
 <translation id="6750954913813541382">A nyelvtani hibák javítása érdekében a Chrome elküldi a böngészőben begépelt összes szöveget a Google-nak</translation>
+<translation id="6760235774835597023">A Chrome V8 motorjával felgyorsítja a webhelyeket, de kissé kevésbé ellenállóvá teszi a Chrome-ot a támadásokkal szemben. Ez a beállítás be van kapcsolva.</translation>
 <translation id="677276454032249905">Biztosan kilép a Chrome-ból?</translation>
 <translation id="6794858689789885890">Mindig törölje a webhelyadatokat az eszközről a Chrome bezárásakor</translation>
 <translation id="6831043979455480757">Fordítás</translation>
diff --git a/chrome/app/resources/google_chrome_strings_ja.xtb b/chrome/app/resources/google_chrome_strings_ja.xtb
index 2fd5e4d..7a8e980 100644
--- a/chrome/app/resources/google_chrome_strings_ja.xtb
+++ b/chrome/app/resources/google_chrome_strings_ja.xtb
@@ -61,6 +61,7 @@
 <translation id="178701303897325119">この拡張機能は現在サポートされていません。代わりに削除することをおすすめします。</translation>
 <translation id="1812689907177901597">この設定を無効にすると、Chrome にログインすることなく Gmail などの Google サイトにログインできます</translation>
 <translation id="1821644463306970002">{NUM_TABS,plural, =1{ブラウザの動作を遅くしているタブを一時停止することをおすすめします}other{ブラウザの動作を遅くしているタブを一時停止することをおすすめします}}</translation>
+<translation id="1832046143430087831">Chrome の V8 エンジンでサイトを高速化する(攻撃に対する Chrome の耐性は若干低下します)。この設定はオフになっています。</translation>
 <translation id="1838374766361614909">検索をクリア</translation>
 <translation id="1860536484129686729">このサイトを利用するには、Chrome でカメラの使用を許可する必要があります</translation>
 <translation id="1873233029667955273">Google Chrome はデフォルトのブラウザとして設定されていません</translation>
@@ -442,6 +443,7 @@
 <translation id="6718739135284199302">Chrome を高速化する</translation>
 <translation id="6735387454586646204">ChromeOS Flex システム</translation>
 <translation id="6750954913813541382">スペルミスを修正するために、ブラウザに入力したテキストが Chrome から Google に送信されます</translation>
+<translation id="6760235774835597023">Chrome の V8 エンジンでサイトを高速化する(攻撃に対する Chrome の耐性は若干低下します)。この設定はオンになっています。</translation>
 <translation id="677276454032249905">今すぐ Chrome を終了しますか?</translation>
 <translation id="6794858689789885890">Chrome を閉じるとき、常にデバイスからサイトデータを削除する</translation>
 <translation id="6831043979455480757">翻訳</translation>
diff --git a/chrome/app/resources/google_chrome_strings_ka.xtb b/chrome/app/resources/google_chrome_strings_ka.xtb
index 05286be..8c914f9 100644
--- a/chrome/app/resources/google_chrome_strings_ka.xtb
+++ b/chrome/app/resources/google_chrome_strings_ka.xtb
@@ -65,6 +65,7 @@
 <translation id="178701303897325119">ეს გაფართოება აღარ არის მხარდაჭერილი. Chrome გირჩევთ მის ამოშლას.</translation>
 <translation id="1812689907177901597">ამ პარამეტრის გამორთვის შემთხვევაში, Google-ის საიტებში (მაგალითად, Gmail-ში) შესვლას შეძლებთ Chrome-ში შესვლის გარეშე</translation>
 <translation id="1821644463306970002">{NUM_TABS,plural, =1{Chrome გირჩევთ, დააპაუზოთ ჩანართი, რომელიც ანელებს თქვენი ბრაუზერის მუშაობას}other{Chrome გირჩევთ, დააპაუზოთ ჩანართები, რომლებიც ანელებს თქვენი ბრაუზერის მუშაობას}}</translation>
+<translation id="1832046143430087831">აჩქარებს Chrom-ის V8 მექანიზმის მქონე საიტების მუშაობას, მაგრამ Chrom ოდნავ ნაკლებად უძლებს შეტევებს. ეს პარამეტრი გამორთულია.</translation>
 <translation id="1838374766361614909">ძიების გასუფთავება</translation>
 <translation id="1860536484129686729">Chrome საჭიროებს თქვენს კამერაზე წვდომის ნებართვას ამ საიტისთვის</translation>
 <translation id="1873233029667955273">Google Chrome არ არის თქვენი ნაგულისხმევი ბრაუზერი</translation>
@@ -451,6 +452,7 @@
 <translation id="6718739135284199302">ააჩქარეთ Chrome-ის მუშაობა</translation>
 <translation id="6735387454586646204">ChromeOS Flex სისტემა</translation>
 <translation id="6750954913813541382">მართლწერის შეცდომების შესასწორებლად Chrome უგზავნის Google-ს თქვენ მიერ ბრაუზერში აკრეფილ ტექსტს</translation>
+<translation id="6760235774835597023">აჩქარებს Chrom-ის V8 მექანიზმის მქონე საიტების მუშაობას, მაგრამ Chrom ოდნავ ნაკლებად უძლებს შეტევებს. ეს პარამეტრი ჩართულია.</translation>
 <translation id="677276454032249905">მაინც გსურთ Chrome-იდან გასვლა?</translation>
 <translation id="6794858689789885890">Chrome-ის დახურვისას თქვენი მოწყობილობიდან საიტების მონაცემების ყოველთვის წაიშლება</translation>
 <translation id="6831043979455480757">თარგმნა</translation>
diff --git a/chrome/app/resources/google_chrome_strings_km.xtb b/chrome/app/resources/google_chrome_strings_km.xtb
index 7489a4c..5e95f2c 100644
--- a/chrome/app/resources/google_chrome_strings_km.xtb
+++ b/chrome/app/resources/google_chrome_strings_km.xtb
@@ -65,6 +65,7 @@
 <translation id="178701303897325119">លែងអាចប្រើកម្មវិធីបន្ថែម​នេះបានទៀតហើយ។ Chrome ណែនាំ​ឱ្យអ្នកដក​កម្មវិធីបន្ថែមនេះ​ចេញជំនួសវិញ។</translation>
 <translation id="1812689907177901597">ប្រសិនបើ​បិទ​មុខងារនេះ មានន័យ​ថាអ្នក​អាចចូល​គេហទំព័រផ្សេងៗ​របស់ Google ដូចជា Gmail ដោយមិន​ចាំបាច់ចូល Chrome នោះទេ</translation>
 <translation id="1821644463306970002">{NUM_TABS,plural, =1{Chrome ណែនាំឱ្យ​ផ្អាក​ផ្ទាំង​ដែលធ្វើឱ្យ​កម្មវិធីរុករក​តាមអ៊ីនធឺណិត​របស់អ្នក​ដំណើរការ​យឺត}other{Chrome ណែនាំឱ្យ​ផ្អាក​ផ្ទាំង​ដែលធ្វើឱ្យ​កម្មវិធីរុករក​តាមអ៊ីនធឺណិត​របស់អ្នក​ដំណើរការ​យឺត}}</translation>
+<translation id="1832046143430087831">បង្កើន​ល្បឿន​គេហទំព័រ​ដោយប្រើ​ម៉ាស៊ីន V8 របស់ Chrome ប៉ុន្តែ​ធ្វើឱ្យ Chrome មិនសូវធន់នឹង​ការវាយប្រហារ​បន្តិច។ ការកំណត់​នេះត្រូវបាន​បិទ។</translation>
 <translation id="1838374766361614909">ជម្រះការស្វែងរក</translation>
 <translation id="1860536484129686729">Chrome ត្រូវការ​ការអនុញ្ញាត​ដើម្បី​ចូល​ប្រើ​កាមេរ៉ា​របស់​អ្នក​សម្រាប់​ទំព័រនេះ</translation>
 <translation id="1873233029667955273">Google Chrome មិនមែន​ជា​កម្មវិធី​រុករក​តាមអ៊ីនធឺណិត​លំនាំដើម​របស់អ្នក​ទេ</translation>
@@ -450,6 +451,7 @@
 <translation id="6718739135284199302">ធ្វើឱ្យ Chrome កាន់តែ​រហ័ស</translation>
 <translation id="6735387454586646204">ប្រព័ន្ធ ChromeOS Flex</translation>
 <translation id="6750954913813541382">Chrome ផ្ញើអក្សរដែលអ្នក​វាយបញ្ចូលនៅក្នុង​កម្មវិធីរុករកតាមអ៊ីនធឺណិតទៅ Google ដើម្បីកែ​កំហុសអក្ខរាវិរុទ្ធ</translation>
+<translation id="6760235774835597023">បង្កើន​ល្បឿន​គេហទំព័រ​ដោយប្រើ​ម៉ាស៊ីន V8 របស់ Chrome ប៉ុន្តែ​ធ្វើឱ្យ Chrome មិនសូវធន់នឹង​ការវាយប្រហារ​បន្តិច។ ការកំណត់​នេះ​ត្រូវ​បានបើក។</translation>
 <translation id="677276454032249905">នៅ​តែ​ចង់​ចាក​ចេញពី Chrome ឬ?</translation>
 <translation id="6794858689789885890">លុប​ទិន្នន័យ​គេហទំព័រ​ពីឧបករណ៍​របស់អ្នក​ជានិច្ច នៅ​ពេលដែល​អ្នកបិទ Chrome</translation>
 <translation id="6831043979455480757">បកប្រែ</translation>
diff --git a/chrome/app/resources/google_chrome_strings_mn.xtb b/chrome/app/resources/google_chrome_strings_mn.xtb
index f133008..6de3f66 100644
--- a/chrome/app/resources/google_chrome_strings_mn.xtb
+++ b/chrome/app/resources/google_chrome_strings_mn.xtb
@@ -65,6 +65,7 @@
 <translation id="178701303897325119">Энэ өргөтгөлийг дэмжихээ больсон. Chrome танд оронд нь үүнийг хасахыг зөвлөж байна.</translation>
 <translation id="1812689907177901597">Үүнийг унтрааснаар та Gmail зэрэг Google-н сайтуудад Chrome-д нэвтрэлгүйгээр нэвтэрч болно</translation>
 <translation id="1821644463306970002">{NUM_TABS,plural, =1{Chrome таны хөтчийг удаашруулж буй табыг түр зогсоохыг зөвлөж байна}other{Chrome таны хөтчийг удаашруулж буй табуудыг түр зогсоохыг зөвлөж байна}}</translation>
+<translation id="1832046143430087831">Chrome-н V8 системээр сайтыг хурдасгах ч Chrome-г халдлагад арай тэсвэр багатай болгоно. Энэ тохиргоо унтраалттай байна.</translation>
 <translation id="1838374766361614909">Хайлтыг арилгах</translation>
 <translation id="1860536484129686729">Энэ сайтыг ашиглахын тулд Chrome-д зөвшөөрөл шаардлагатай</translation>
 <translation id="1873233029667955273">Google Chrome таны өгөгдмөл хөтөч биш юм</translation>
@@ -451,6 +452,7 @@
 <translation id="6718739135284199302">Chrome-г илүү хурдан болгоорой</translation>
 <translation id="6735387454586646204">ChromeOS Flex-н систем</translation>
 <translation id="6750954913813541382">Зөв бичгийн алдааг засахын тулд Chrome таны хөтөч дээр бичсэн текстийг Google-д илгээдэг</translation>
+<translation id="6760235774835597023">Chrome-н V8 системээр сайтыг хурдасгах ч Chrome-г халдлагад арай тэсвэр багатай болгоно. Энэ тохиргоо асаалттай байна.</translation>
 <translation id="677276454032249905">Chrome-с ямар ч үед гарах уу?</translation>
 <translation id="6794858689789885890">Таныг Chrome-г хаах үед төхөөрөмжөөс тань сайтын өгөгдлийг үргэлж устгана</translation>
 <translation id="6831043979455480757">Хөрвүүлэх</translation>
diff --git a/chrome/app/resources/google_chrome_strings_ms.xtb b/chrome/app/resources/google_chrome_strings_ms.xtb
index 49a8e21..107a4ef 100644
--- a/chrome/app/resources/google_chrome_strings_ms.xtb
+++ b/chrome/app/resources/google_chrome_strings_ms.xtb
@@ -61,6 +61,7 @@
 <translation id="178701303897325119">Sambungan ini tidak disokong lagi. Chrome mengesyorkan supaya anda mengalih keluar sambungan tersebut.</translation>
 <translation id="1812689907177901597">Dengan mematikan pilihan ini, anda boleh mengelog masuk ke tapak Google seperti Gmail tanpa perlu mengelog masuk ke Chrome</translation>
 <translation id="1821644463306970002">{NUM_TABS,plural, =1{Chrome mengesyorkan penjedaan tab yang memperlahankan penyemak imbas anda}other{Chrome mengesyorkan penjedaan tab yang memperlahankan penyemak imbas anda}}</translation>
+<translation id="1832046143430087831">Mempercepat laman dengan enjin V8 Chrome tetapi Chrome menjadi kurang tahan sedikit terhadap serangan. Tetapan ini dimatikan.</translation>
 <translation id="1838374766361614909">Kosongkan carian</translation>
 <translation id="1860536484129686729">Chrome memerlukan kebenaran untuk mengakses kamera anda bagi tapak ini</translation>
 <translation id="1873233029667955273">Google Chrome bukan penyemak imbas lalai anda</translation>
@@ -443,6 +444,7 @@
 <translation id="6718739135284199302">Jadikan Chrome lebih pantas</translation>
 <translation id="6735387454586646204">Sistem Chrome OS Flex</translation>
 <translation id="6750954913813541382">Untuk membetulkan kesalahan ejaan, Chrome akan menghantar teks yang anda taip dalam penyemak imbas kepada Google</translation>
+<translation id="6760235774835597023">Mempercepat laman dengan enjin V8 Chrome tetapi Chrome menjadi kurang tahan sedikit terhadap serangan. Tetapan ini dihidupkan.</translation>
 <translation id="677276454032249905">Keluar daripada Chrome juga?</translation>
 <translation id="6794858689789885890">Sentiasa padamkan data laman daripada peranti anda apabila anda menutup Chrome</translation>
 <translation id="6831043979455480757">Terjemah</translation>
diff --git a/chrome/app/resources/google_chrome_strings_nl.xtb b/chrome/app/resources/google_chrome_strings_nl.xtb
index 3f3de33..25c7f93 100644
--- a/chrome/app/resources/google_chrome_strings_nl.xtb
+++ b/chrome/app/resources/google_chrome_strings_nl.xtb
@@ -65,6 +65,7 @@
 <translation id="178701303897325119">Deze extensie wordt niet meer ondersteund. Chrome raadt je aan de extensie te verwijderen.</translation>
 <translation id="1812689907177901597">Als je dit uitzet, kun je inloggen bij Google-sites zoals Gmail zonder in te loggen bij Chrome</translation>
 <translation id="1821644463306970002">{NUM_TABS,plural, =1{Chrome raadt aan het tabblad dat je browser vertraagt te onderbreken}other{Chrome raadt aan de tabbladen die je browser vertragen te onderbreken}}</translation>
+<translation id="1832046143430087831">Versnelt sites met de V8-engine van Chrome, maar maakt Chrome iets minder goed bestand tegen aanvallen. Deze instelling staat uit.</translation>
 <translation id="1838374766361614909">Zoekopdracht wissen</translation>
 <translation id="1860536484129686729">Chrome heeft toegangsrechten voor je camera nodig voor deze site</translation>
 <translation id="1873233029667955273">Google Chrome is niet je standaardbrowser</translation>
@@ -448,6 +449,7 @@
 <translation id="6718739135284199302">Maak Chrome sneller</translation>
 <translation id="6735387454586646204">Chrome OS Flex-systeem</translation>
 <translation id="6750954913813541382">Voor het verbeteren van spelfouten verzendt Chrome de tekst die je in de browser typt naar Google</translation>
+<translation id="6760235774835597023">Versnelt sites met de V8-engine van Chrome, maar maakt Chrome iets minder goed bestand tegen aanvallen. Deze instelling staat aan.</translation>
 <translation id="677276454032249905">Chrome toch sluiten?</translation>
 <translation id="6794858689789885890">Sitegegevens altijd verwijderen van je apparaat als je Chrome sluit</translation>
 <translation id="6831043979455480757">Vertalen</translation>
diff --git a/chrome/app/resources/google_chrome_strings_pa.xtb b/chrome/app/resources/google_chrome_strings_pa.xtb
index 813a501..7e00033 100644
--- a/chrome/app/resources/google_chrome_strings_pa.xtb
+++ b/chrome/app/resources/google_chrome_strings_pa.xtb
@@ -65,6 +65,7 @@
 <translation id="178701303897325119">ਇਹ ਐਕਸਟੈਂਸ਼ਨ ਹੁਣ ਸਮਰਥਿਤ ਨਹੀਂ ਹੈ। Chrome ਸਿਫ਼ਾਰਸ਼ ਕਰਦਾ ਹੈ ਕਿ ਇਸਦੀ ਬਜਾਏ ਤੁਸੀਂ ਇਸਨੂੰ ਹਟਾ ਦਿਓ।</translation>
 <translation id="1812689907177901597">ਇਸਨੂੰ ਬੰਦ ਕਰਕੇ, ਤੁਸੀਂ Chrome ਵਿੱਚ ਸਾਈਨ-ਇਨ ਕੀਤੇ ਬਿਨਾਂ Gmail ਵਰਗੀਆਂ Google ਸਾਈਟਾਂ 'ਤੇ ਸਾਈਨ-ਇਨ ਕਰ ਸਕਦੇ ਹੋ</translation>
 <translation id="1821644463306970002">{NUM_TABS,plural, =1{Chrome ਤੁਹਾਡੇ ਬ੍ਰਾਊਜ਼ਰ ਨੂੰ ਹੌਲੀ ਕਰਨ ਵਾਲੇ ਟੈਬ ਨੂੰ ਰੋਕਣ ਦੀ ਸਿਫ਼ਾਰਸ਼ ਕਰਦਾ ਹੈ}one{Chrome ਤੁਹਾਡੇ ਬ੍ਰਾਊਜ਼ਰ ਨੂੰ ਹੌਲੀ ਕਰਨ ਵਾਲੇ ਟੈਬ ਨੂੰ ਰੋਕਣ ਦੀ ਸਿਫ਼ਾਰਸ਼ ਕਰਦਾ ਹੈ}other{Chrome ਤੁਹਾਡੇ ਬ੍ਰਾਊਜ਼ਰ ਨੂੰ ਹੌਲੀ ਕਰਨ ਵਾਲੇ ਟੈਬਾਂ ਨੂੰ ਰੋਕਣ ਦੀ ਸਿਫ਼ਾਰਸ਼ ਕਰਦਾ ਹੈ}}</translation>
+<translation id="1832046143430087831">ਇਸ ਨਾਲ Chrome ਦੇ V8 ਇੰਜਣ ਨਾਲ ਸਾਈਟਾਂ ਦੀ ਗਤੀ ਵਧ ਜਾਂਦੀ ਹੈ, ਪਰ Chrome 'ਤੇ ਹਮਲਿਆਂ ਤੋਂ ਸੁਰੱਖਿਆ ਘਟ ਜਾਂਦੀ ਹੈ। ਇਹ ਸੈਟਿੰਗ ਬੰਦ ਹੈ।</translation>
 <translation id="1838374766361614909">ਖੋਜ ਹਟਾਓ</translation>
 <translation id="1860536484129686729">Chrome ਨੂੰ ਇਸ ਸਾਈਟ ਵਾਸਤੇ ਤੁਹਾਡੇ ਕੈਮਰੇ ਤੱਕ ਪਹੁੰਚ ਕਰਨ ਲਈ ਇਜਾਜ਼ਤ ਦੀ ਲੋੜ ਹੈ</translation>
 <translation id="1873233029667955273">Google Chrome ਤੁਹਾਡਾ ਪੂਰਵ-ਨਿਰਧਾਰਤ ਬ੍ਰਾਊਜ਼ਰ ਨਹੀਂ ਹੈ</translation>
@@ -451,6 +452,7 @@
 <translation id="6718739135284199302">Chrome ਨੂੰ ਵਧੇਰੇ ਤੇਜ਼ ਬਣਾਓ</translation>
 <translation id="6735387454586646204">ChromeOS Flex ਸਿਸਟਮ</translation>
 <translation id="6750954913813541382">ਸ਼ਬਦ-ਜੋੜ ਗੜਬੜੀਆਂ ਠੀਕ ਕਰਨ ਲਈ, Chrome, ਬ੍ਰਾਊਜ਼ਰ ਵਿੱਚ ਤੁਹਾਡੇ ਵੱਲੋਂ ਟਾਈਪ ਕੀਤੀ ਜਾਣ ਵਾਲੀ ਲਿਖਤ Google ਨੂੰ ਭੇਜਦਾ ਹੈ</translation>
+<translation id="6760235774835597023">ਇਸ ਨਾਲ Chrome ਦੇ V8 ਇੰਜਣ ਨਾਲ ਸਾਈਟਾਂ ਦੀ ਗਤੀ ਵਧ ਜਾਂਦੀ ਹੈ, ਪਰ Chrome 'ਤੇ ਹਮਲਿਆਂ ਤੋਂ ਸੁਰੱਖਿਆ ਘਟ ਜਾਂਦੀ ਹੈ। ਇਹ ਸੈਟਿੰਗ ਚਾਲੂ ਹੈ।</translation>
 <translation id="677276454032249905">ਕੀ ਫਿਰ ਵੀ Chrome ਤੋਂ ਬਾਹਰ ਜਾਣਾ ਹੈ?</translation>
 <translation id="6794858689789885890">Chrome ਨੂੰ ਬੰਦ ਕਰਨ ਵੇਲੇ ਆਪਣੇ ਡੀਵਾਈਸ ਤੋਂ ਸਾਈਟ ਡਾਟੇ ਨੂੰ ਹਮੇਸ਼ਾਂ ਮਿਟਾਓ</translation>
 <translation id="6831043979455480757">ਅਨੁਵਾਦ ਕਰੋ</translation>
diff --git a/chrome/app/resources/google_chrome_strings_pl.xtb b/chrome/app/resources/google_chrome_strings_pl.xtb
index bf6221fa..0cdd474 100644
--- a/chrome/app/resources/google_chrome_strings_pl.xtb
+++ b/chrome/app/resources/google_chrome_strings_pl.xtb
@@ -61,6 +61,7 @@
 <translation id="178701303897325119">To rozszerzenie nie jest już obsługiwane. Chrome zaleca jego usunięcie.</translation>
 <translation id="1812689907177901597">Jeśli wyłączysz tę opcję, możesz logować się na stronach Google takich jak Gmail bez logowania się w Chrome</translation>
 <translation id="1821644463306970002">{NUM_TABS,plural, =1{Chrome zaleca wstrzymanie karty, która spowalnia przeglądarkę}few{Chrome zaleca wstrzymanie kart, które spowalniają przeglądarkę}many{Chrome zaleca wstrzymanie kart, które spowalniają przeglądarkę}other{Chrome zaleca wstrzymanie kart, które spowalniają przeglądarkę}}</translation>
+<translation id="1832046143430087831">Witryny będą działać szybciej dzięki mechanizmowi V8 w przeglądarce Chrome, ale będzie ona trochę mniej odporna na ataki. To ustawienie jest wyłączone.</translation>
 <translation id="1838374766361614909">Wyczyść wyszukiwanie</translation>
 <translation id="1860536484129686729">Chrome potrzebuje uprawnień dostępu do aparatu na tej stronie</translation>
 <translation id="1873233029667955273">Google Chrome nie jest domyślną przeglądarką</translation>
@@ -442,6 +443,7 @@
 <translation id="6718739135284199302">Przyspiesz działanie Chrome</translation>
 <translation id="6735387454586646204">System ChromeOS Flex</translation>
 <translation id="6750954913813541382">Aby poprawić błędy pisowni, Chrome wysyła do Google to, co wpisujesz w przeglądarce</translation>
+<translation id="6760235774835597023">Witryny będą działać szybciej dzięki mechanizmowi V8 w przeglądarce Chrome, ale będzie ona trochę mniej odporna na ataki. To ustawienie jest włączone.</translation>
 <translation id="677276454032249905">Zamknąć Chrome mimo to?</translation>
 <translation id="6794858689789885890">Zawsze usuwaj dane witryn z urządzenia po zamknięciu Chrome</translation>
 <translation id="6831043979455480757">Tłumacz</translation>
diff --git a/chrome/app/resources/google_chrome_strings_pt-PT.xtb b/chrome/app/resources/google_chrome_strings_pt-PT.xtb
index 9598a45db..97a15ced 100644
--- a/chrome/app/resources/google_chrome_strings_pt-PT.xtb
+++ b/chrome/app/resources/google_chrome_strings_pt-PT.xtb
@@ -61,6 +61,7 @@
 <translation id="178701303897325119">Esta extensão já não é suportada. O Chrome recomenda que a remova.</translation>
 <translation id="1812689907177901597">Ao desativar esta opção, pode iniciar sessão nos sites da Google como o Gmail sem iniciar sessão no Chrome.</translation>
 <translation id="1821644463306970002">{NUM_TABS,plural, =1{O Chrome recomenda pausar o separador que está a abrandar o navegador}other{O Chrome recomenda pausar os separadores que estão a abrandar o navegador}}</translation>
+<translation id="1832046143430087831">Acelera os sites com o motor V8 do Chrome, mas torna o Chrome ligeiramente menos resistente a ataques. Esta definição está desativada.</translation>
 <translation id="1838374766361614909">Limpar pesquisa</translation>
 <translation id="1860536484129686729">O Chrome necessita de autorização de acesso à câmara para este site.</translation>
 <translation id="1873233029667955273">O Google Chrome não é o seu navegador predefinido.</translation>
@@ -443,6 +444,7 @@
 <translation id="6718739135284199302">Torne o Chrome mais rápido</translation>
 <translation id="6735387454586646204">Sistema do ChromeOS Flex</translation>
 <translation id="6750954913813541382">Para corrigir erros ortográficos, o Chrome envia o texto que escrever no navegador para a Google.</translation>
+<translation id="6760235774835597023">Acelera os sites com o motor V8 do Chrome, mas torna o Chrome ligeiramente menos resistente a ataques. Esta definição está ativada.</translation>
 <translation id="677276454032249905">Quer sair do Chrome mesmo assim?</translation>
 <translation id="6794858689789885890">Eliminar sempre os dados de sites do seu dispositivo ao fechar o Chrome</translation>
 <translation id="6831043979455480757">Traduzir</translation>
diff --git a/chrome/app/resources/google_chrome_strings_ro.xtb b/chrome/app/resources/google_chrome_strings_ro.xtb
index 5825b87..5836c7c 100644
--- a/chrome/app/resources/google_chrome_strings_ro.xtb
+++ b/chrome/app/resources/google_chrome_strings_ro.xtb
@@ -61,6 +61,7 @@
 <translation id="178701303897325119">Extensia nu mai este acceptată. Chrome recomandă să o elimini.</translation>
 <translation id="1812689907177901597">Dacă dezactivezi, te poți conecta la site-uri Google ca Gmail fără a te conecta la Chrome</translation>
 <translation id="1821644463306970002">{NUM_TABS,plural, =1{Chrome recomandă să întrerupi fila care încetinește browserul}few{Chrome recomandă să întrerupi filele care încetinesc browserul}other{Chrome recomandă să întrerupi filele care încetinesc browserul}}</translation>
+<translation id="1832046143430087831">Accelerează site-urile cu motorul V8 din Chrome, dar reduce ușor rezistența Chrome la atacuri. Setarea este dezactivată.</translation>
 <translation id="1838374766361614909">Șterge căutarea</translation>
 <translation id="1860536484129686729">Chrome are nevoie de permisiune ca să acceseze camera foto pentru acest site</translation>
 <translation id="1873233029667955273">Google Chrome nu este browserul prestabilit</translation>
@@ -443,6 +444,7 @@
 <translation id="6718739135284199302">Crește eficiența în Chrome</translation>
 <translation id="6735387454586646204">ChromeOS Flex</translation>
 <translation id="6750954913813541382">Pentru a corecta erorile de scriere, Chrome trimite la Google textul pe care îl introduci în browser</translation>
+<translation id="6760235774835597023">Accelerează site-urile cu motorul V8 din Chrome, dar reduce ușor rezistența Chrome la atacuri. Setarea este activată.</translation>
 <translation id="677276454032249905">Ieși din Chrome oricum?</translation>
 <translation id="6794858689789885890">Șterge întotdeauna datele privind site-urile de pe dispozitiv când închizi Chrome</translation>
 <translation id="6831043979455480757">Tradu</translation>
diff --git a/chrome/app/resources/google_chrome_strings_sr-Latn.xtb b/chrome/app/resources/google_chrome_strings_sr-Latn.xtb
index 6a041ee7..4e9cc02 100644
--- a/chrome/app/resources/google_chrome_strings_sr-Latn.xtb
+++ b/chrome/app/resources/google_chrome_strings_sr-Latn.xtb
@@ -65,6 +65,7 @@
 <translation id="178701303897325119">Ovaj dodatak više nije podržan. Chrome preporučuje da ga uklonite.</translation>
 <translation id="1812689907177901597">Kada to uključite, možete da se prijavljujete na Google sajtove, kao što je Gmail, ali se ne prijavljujete u Chrome</translation>
 <translation id="1821644463306970002">{NUM_TABS,plural, =1{Chrome preporučuje da pauzirate karticu koja usporava pregledač}one{Chrome preporučuje da pauzirate kartice koje usporavaju pregledač}few{Chrome preporučuje da pauzirate kartice koje usporavaju pregledač}other{Chrome preporučuje da pauzirate kartice koje usporavaju pregledač}}</translation>
+<translation id="1832046143430087831">Ubrzava sajtove uz Chrome mehanizam V8, ali čini Chrome malo manje otpornim na napade. Ovo podešavanje je isključeno.</translation>
 <translation id="1838374766361614909">Obrišite pretragu</translation>
 <translation id="1860536484129686729">Chrome traži dozvolu da pristupi kameri za ovaj sajt</translation>
 <translation id="1873233029667955273">Google Chrome nije podrazumevani pregledač</translation>
@@ -451,6 +452,7 @@
 <translation id="6718739135284199302">Ubrzajte Chrome</translation>
 <translation id="6735387454586646204">Chrome OS Flex sistem</translation>
 <translation id="6750954913813541382">Da bi ispravio pravopisne greške, Chrome Google-u šalje tekst koji unosite u pregledač</translation>
+<translation id="6760235774835597023">Ubrzava sajtove uz Chrome mehanizam V8, ali čini Chrome malo manje otpornim na napade. Ovo podešavanje je uključeno.</translation>
 <translation id="677276454032249905">Želite li ipak da zatvorite Chrome?</translation>
 <translation id="6794858689789885890">Uvek izbrišite podatke o sajtovima sa uređaja kada zatvorite Chrome</translation>
 <translation id="6831043979455480757">Prevedi</translation>
diff --git a/chrome/app/resources/google_chrome_strings_sr.xtb b/chrome/app/resources/google_chrome_strings_sr.xtb
index c0cd0ce4..938ad90 100644
--- a/chrome/app/resources/google_chrome_strings_sr.xtb
+++ b/chrome/app/resources/google_chrome_strings_sr.xtb
@@ -65,6 +65,7 @@
 <translation id="178701303897325119">Овај додатак више није подржан. Chrome препоручује да га уклоните.</translation>
 <translation id="1812689907177901597">Када то укључите, можете да се пријављујете на Google сајтове, као што је Gmail, али се не пријављујете у Chrome</translation>
 <translation id="1821644463306970002">{NUM_TABS,plural, =1{Chrome препоручује да паузирате картицу која успорава прегледач}one{Chrome препоручује да паузирате картице које успоравају прегледач}few{Chrome препоручује да паузирате картице које успоравају прегледач}other{Chrome препоручује да паузирате картице које успоравају прегледач}}</translation>
+<translation id="1832046143430087831">Убрзава сајтове уз Chrome механизам V8, али чини Chrome мало мање отпорним на нападе. Ово подешавање је искључено.</translation>
 <translation id="1838374766361614909">Обришите претрагу</translation>
 <translation id="1860536484129686729">Chrome тражи дозволу да приступи камери за овај сајт</translation>
 <translation id="1873233029667955273">Google Chrome није подразумевани прегледач</translation>
@@ -451,6 +452,7 @@
 <translation id="6718739135284199302">Убрзајте Chrome</translation>
 <translation id="6735387454586646204">Chrome OS Flex систем</translation>
 <translation id="6750954913813541382">Да би исправио правописне грешке, Chrome Google-у шаље текст који уносите у прегледач</translation>
+<translation id="6760235774835597023">Убрзава сајтове уз Chrome механизам V8, али чини Chrome мало мање отпорним на нападе. Ово подешавање је укључено.</translation>
 <translation id="677276454032249905">Желите ли ипак да затворите Chrome?</translation>
 <translation id="6794858689789885890">Увек избришите податке о сајтовима са уређаја када затворите Chrome</translation>
 <translation id="6831043979455480757">Преведи</translation>
diff --git a/chrome/app/resources/google_chrome_strings_th.xtb b/chrome/app/resources/google_chrome_strings_th.xtb
index d604b28..0a9553dd 100644
--- a/chrome/app/resources/google_chrome_strings_th.xtb
+++ b/chrome/app/resources/google_chrome_strings_th.xtb
@@ -61,6 +61,7 @@
 <translation id="178701303897325119">ระบบไม่รองรับส่วนขยายนี้แล้ว Chrome แนะนำให้คุณนำออกแทน</translation>
 <translation id="1812689907177901597">เมื่อปิดการตั้งค่านี้ คุณจะลงชื่อเข้าใช้เว็บไซต์ของ Google อย่างเช่น Gmail ได้โดยไม่ต้องลงชื่อเข้าใช้ Chrome</translation>
 <translation id="1821644463306970002">{NUM_TABS,plural, =1{Chrome แนะนำให้หยุดแท็บที่ทำให้เบราว์เซอร์ทำงานช้าลงชั่วคราว}other{Chrome แนะนำให้หยุดแท็บที่ทําให้เบราว์เซอร์ทำงานช้าลงชั่วคราว}}</translation>
+<translation id="1832046143430087831">เร่งความเร็วเว็บไซต์ด้วยเครื่องมือ V8 ของ Chrome แต่ทำให้ Chrome ต้านทานการโจมตีได้น้อยลงเล็กน้อย การตั้งค่านี้ปิดอยู่</translation>
 <translation id="1838374766361614909">ล้างการค้นหา</translation>
 <translation id="1860536484129686729">Chrome ต้องการสิทธิ์เข้าถึงกล้องถ่ายรูปของคุณสำหรับเว็บไซต์นี้</translation>
 <translation id="1873233029667955273">Google Chrome ไม่ใช่เบราว์เซอร์เริ่มต้น</translation>
@@ -442,6 +443,7 @@
 <translation id="6718739135284199302">ทำให้ Chrome เร็วขึ้น</translation>
 <translation id="6735387454586646204">ระบบ Chrome OS Flex</translation>
 <translation id="6750954913813541382">Chrome จะส่งข้อความที่คุณพิมพ์ในเบราว์เซอร์ไปยัง Google เพื่อแก้ไขข้อผิดพลาดของการสะกดคำ</translation>
+<translation id="6760235774835597023">เร่งความเร็วเว็บไซต์ด้วยเครื่องมือ V8 ของ Chrome แต่ทำให้ Chrome ต้านทานการโจมตีได้น้อยลงเล็กน้อย การตั้งค่านี้เปิดอยู่</translation>
 <translation id="677276454032249905">ออกจาก Chrome ใช่ไหม</translation>
 <translation id="6794858689789885890">ลบข้อมูลเว็บไซต์จากอุปกรณ์เสมอเมื่อปิด Chrome</translation>
 <translation id="6831043979455480757">แปลภาษา</translation>
diff --git a/chrome/app/resources/google_chrome_strings_vi.xtb b/chrome/app/resources/google_chrome_strings_vi.xtb
index 4be8f39..1b62387 100644
--- a/chrome/app/resources/google_chrome_strings_vi.xtb
+++ b/chrome/app/resources/google_chrome_strings_vi.xtb
@@ -63,6 +63,7 @@
 <translation id="178701303897325119">Tiện ích này không còn được hỗ trợ nữa. Chrome khuyên bạn nên xoá tiện ích.</translation>
 <translation id="1812689907177901597">Bằng việc tắt tính năng này, bạn có thể đăng nhập vào các trang web của Google, chẳng hạn như Gmail mà không cần đăng nhập vào Chrome</translation>
 <translation id="1821644463306970002">{NUM_TABS,plural, =1{Chrome đề xuất tạm dừng thẻ làm chậm trình duyệt của bạn}other{Chrome đề xuất tạm dừng các thẻ làm chậm trình duyệt của bạn}}</translation>
+<translation id="1832046143430087831">Tăng tốc độ tải trang web bằng công cụ V8 của Chrome nhưng làm giảm khả năng chống lại các cuộc tấn công của Chrome. Chế độ cài đặt này đang tắt.</translation>
 <translation id="1838374766361614909">Xóa tìm kiếm</translation>
 <translation id="1860536484129686729">Chrome cần có quyền truy cập vào máy ảnh của bạn cho trang web này</translation>
 <translation id="1873233029667955273">Google Chrome không phải là trình duyệt mặc định của bạn</translation>
@@ -447,6 +448,7 @@
 <translation id="6718739135284199302">Giúp Chrome hoạt động nhanh hơn</translation>
 <translation id="6735387454586646204">Hệ thống ChromeOS Flex</translation>
 <translation id="6750954913813541382">Để sửa lỗi chính tả, Chrome sẽ gửi văn bản mà bạn nhập vào trình duyệt này cho Google</translation>
+<translation id="6760235774835597023">Tăng tốc độ tải trang web bằng công cụ V8 của Chrome nhưng làm giảm khả năng chống lại các cuộc tấn công của Chrome. Chế độ cài đặt này đang bật.</translation>
 <translation id="677276454032249905">Bạn vẫn muốn thoát khỏi Chrome?</translation>
 <translation id="6794858689789885890">Luôn xoá dữ liệu trang web khỏi thiết bị của bạn khi bạn đóng Chrome</translation>
 <translation id="6831043979455480757">Dịch</translation>
diff --git a/chrome/app/resources/google_chrome_strings_zh-HK.xtb b/chrome/app/resources/google_chrome_strings_zh-HK.xtb
index b12cbede..2d4457d 100644
--- a/chrome/app/resources/google_chrome_strings_zh-HK.xtb
+++ b/chrome/app/resources/google_chrome_strings_zh-HK.xtb
@@ -65,6 +65,7 @@
 <translation id="178701303897325119">此擴充程式不再受支援,Chrome 建議你將其移除。</translation>
 <translation id="1812689907177901597">關閉此功能後,您無需登入 Chrome,即可登入 Gmail 等 Google 網站</translation>
 <translation id="1821644463306970002">{NUM_TABS,plural, =1{Chrome 建議暫停導致瀏覽器運作緩慢的分頁}other{Chrome 建議暫停導致瀏覽器運作緩慢的分頁}}</translation>
+<translation id="1832046143430087831">使用 Chrome 的 V8 引擎加快網站速度,但 Chrome 防攻擊的能力會略為下降。此設定已關閉。</translation>
 <translation id="1838374766361614909">清除搜尋</translation>
 <translation id="1860536484129686729">Chrome 需要取得權限,才能讓這個網站存取您的相機</translation>
 <translation id="1873233029667955273">Google Chrome 並非您的預設瀏覽器</translation>
@@ -450,6 +451,7 @@
 <translation id="6718739135284199302">加快 Chrome 的運作速度</translation>
 <translation id="6735387454586646204">ChromeOS Flex 系統</translation>
 <translation id="6750954913813541382">Chrome 會將您在瀏覽器中輸入的文字傳送至 Google,以修正拼字錯誤</translation>
+<translation id="6760235774835597023">使用 Chrome 的 V8 引擎加快網站速度,但 Chrome 防攻擊的能力會略為下降。此設定已開啟。</translation>
 <translation id="677276454032249905">仍要結束 Chrome 嗎?</translation>
 <translation id="6794858689789885890">在 Chrome 關閉後一律刪除裝置上的網站資料</translation>
 <translation id="6831043979455480757">翻譯</translation>
diff --git a/chrome/app/resources/google_chrome_strings_zh-TW.xtb b/chrome/app/resources/google_chrome_strings_zh-TW.xtb
index 6479a2d..cc5e4d7a 100644
--- a/chrome/app/resources/google_chrome_strings_zh-TW.xtb
+++ b/chrome/app/resources/google_chrome_strings_zh-TW.xtb
@@ -61,6 +61,7 @@
 <translation id="178701303897325119">Chrome 不再支援這項擴充功能,建議你移除。</translation>
 <translation id="1812689907177901597">關閉這項功能後,你可以單獨登入 Gmail 等這類 Google 網站,不必同時登入 Chrome</translation>
 <translation id="1821644463306970002">{NUM_TABS,plural, =1{Chrome 建議暫停導致瀏覽器運作緩慢的分頁}other{Chrome 建議暫停導致瀏覽器運作緩慢的分頁}}</translation>
+<translation id="1832046143430087831">使用 Chrome 的 V8 引擎加快網站速度,但 Chrome 防範攻擊的能力會稍微降低。這項設定已關閉。</translation>
 <translation id="1838374766361614909">清除搜尋</translation>
 <translation id="1860536484129686729">Chrome 需要相關權限,才能讓這個網站使用你的攝影機</translation>
 <translation id="1873233029667955273">Google Chrome 並非你的預設瀏覽器</translation>
@@ -444,6 +445,7 @@
 <translation id="6718739135284199302">加快 Chrome 的運作速度</translation>
 <translation id="6735387454586646204">ChromeOS Flex 系統</translation>
 <translation id="6750954913813541382">Chrome 會將你在瀏覽器中輸入的文字傳送至 Google,以修正拼字錯誤</translation>
+<translation id="6760235774835597023">使用 Chrome 的 V8 引擎加快網站速度,但 Chrome 防範攻擊的能力會稍微降低。這項設定已開啟。</translation>
 <translation id="677276454032249905">確定要結束 Chrome 嗎?</translation>
 <translation id="6794858689789885890">在 Chrome 關閉後一律刪除裝置上的網站資料</translation>
 <translation id="6831043979455480757">翻譯</translation>
diff --git a/chrome/app/resources/google_chrome_strings_zu.xtb b/chrome/app/resources/google_chrome_strings_zu.xtb
index 9973d9f..88a0bc3 100644
--- a/chrome/app/resources/google_chrome_strings_zu.xtb
+++ b/chrome/app/resources/google_chrome_strings_zu.xtb
@@ -65,6 +65,7 @@
 <translation id="178701303897325119">Lesi sandiso asisasekelwa. IChrome incoma ukuthi usisuse esikhundleni salokho.</translation>
 <translation id="1812689907177901597">Ngokuvala lokhu, ungangena ngemvume kumasayithi e-Google njenge-Gmail ngaphandle kokungena ngemvume ku-Chrome</translation>
 <translation id="1821644463306970002">{NUM_TABS,plural, =1{IChromium incoma ukumisa ithebhu enciphisa ijubane lebhrawuza yakho}one{IChromium incoma ukumisa amathebhu anciphisa ijubane lebhrawuza yakho}other{IChromium incoma ukumisa amathebhu anciphisa ijubane lebhrawuza yakho}}</translation>
+<translation id="1832046143430087831">Isheshisa amasayithi ngenjini yeChrome ye-V8 kodwa yenza iChrome imelane kancane nokuhlaselwa. Le sethingi livaliwe.</translation>
 <translation id="1838374766361614909">Sula usesho</translation>
 <translation id="1860536484129686729">I-Chrome idinga imvume yokufinyelela kukhamera yakho kule sayithi</translation>
 <translation id="1873233029667955273">I-Google Chrome akusona isiphequluli sakho esizenzakalelayo</translation>
@@ -450,6 +451,7 @@
 <translation id="6718739135284199302">Yenza i-Chrome isheshe</translation>
 <translation id="6735387454586646204">Isistimu ye-ChromeOS Flex</translation>
 <translation id="6750954913813541382">Ukuze kulungiswe amaphutha okupeletwa, i-Chrome ithumela umbhalo owuthayiphayo kusiphequluli ku-Google</translation>
+<translation id="6760235774835597023">Isheshisa amasayithi ngenjini yeChrome ye-V8 kodwa yenza iChrome imelane kancane nokuhlaselwa. Le sethingi livuliwe.</translation>
 <translation id="677276454032249905">Phuma ku-Chrome noma kunjalo?</translation>
 <translation id="6794858689789885890">Yisule njalo idatha yesayithi kudivayisi yakho lapho uvala i-Chrome</translation>
 <translation id="6831043979455480757">Humusha</translation>
diff --git a/chrome/browser/about_flags.cc b/chrome/browser/about_flags.cc
index a7b35cb..a6460b6 100644
--- a/chrome/browser/about_flags.cc
+++ b/chrome/browser/about_flags.cc
@@ -86,6 +86,7 @@
 #include "components/autofill/core/common/autofill_switches.h"
 #include "components/autofill/core/common/autofill_util.h"
 #include "components/browser_sync/browser_sync_switches.h"
+#include "components/browsing_data/core/features.h"
 #include "components/collaboration/public/features.h"
 #include "components/commerce/core/commerce_feature_list.h"
 #include "components/commerce/core/flag_descriptions.h"
@@ -281,7 +282,6 @@
 #include "chrome/browser/notifications/chime/android/features.h"
 #include "chrome/browser/push_messaging/push_messaging_features.h"
 #include "components/browser_ui/photo_picker/android/features.h"
-#include "components/browsing_data/core/features.h"
 #include "components/credential_management/android/features.h"
 #include "components/enterprise/connectors/core/features.h"
 #include "components/external_intents/android/external_intents_features.h"
@@ -12313,7 +12313,7 @@
 #if !BUILDFLAG(IS_ANDROID)
     {"dbd-revamp-desktop", flag_descriptions::kDbdRevampDesktopName,
      flag_descriptions::kDbdRevampDesktopDescription, kOsDesktop,
-     FEATURE_VALUE_TYPE(features::kDbdRevampDesktop)},
+     FEATURE_VALUE_TYPE(browsing_data::features::kDbdRevampDesktop)},
 #endif  // !BUILDFLAG(IS_ANDROID)
 
     {"privacy-sandbox-ad-topics-content-parity",
diff --git a/chrome/browser/android/compositor/layer/tab_layer.cc b/chrome/browser/android/compositor/layer/tab_layer.cc
index 3b732e7..f89f84b2 100644
--- a/chrome/browser/android/compositor/layer/tab_layer.cc
+++ b/chrome/browser/android/compositor/layer/tab_layer.cc
@@ -193,7 +193,8 @@
       toolbar_resource_id, toolbar_background_color, anonymize_toolbar,
       toolbar_textbox_background_color, toolbar_textbox_resource_id, 0,
       content_offset, false, false, viz::OffsetTag());
-  toolbar_layer_->UpdateProgressBar(0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0);
+  toolbar_layer_->UpdateProgressBar(0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+                                    0, 0, 0, false);
 
   float toolbar_impact_height = 0;
   if (show_toolbar)
diff --git a/chrome/browser/android/compositor/layer/toolbar_layer.cc b/chrome/browser/android/compositor/layer/toolbar_layer.cc
index 7ee86cea..9f7ae374f 100644
--- a/chrome/browser/android/compositor/layer/toolbar_layer.cc
+++ b/chrome/browser/android/compositor/layer/toolbar_layer.cc
@@ -140,18 +140,25 @@
                                      int progress_bar_background_width,
                                      int progress_bar_background_height,
                                      int progress_bar_background_color,
+                                     int progress_bar_static_background_x,
+                                     int progress_bar_static_background_width,
+                                     int progress_bar_static_background_color,
                                      int progress_bar_end_indicator_x,
                                      int progress_bar_end_indicator_y,
                                      int progress_bar_end_indicator_width,
                                      int progress_bar_end_indicator_height,
-                                     float corner_radius) {
-  bool is_progress_bar_background_visible = SkColorGetA(
-      progress_bar_background_color);
-  progress_bar_background_layer_->SetHideLayerAndSubtree(
-      !is_progress_bar_background_visible);
+                                     float corner_radius,
+                                     bool progress_bar_visual_update_available) {
+  bool is_progress_bar_visible = SkColorGetA(progress_bar_background_color);
+
+  progress_bar_background_layer_->SetHideLayerAndSubtree(!is_progress_bar_visible);
+  progress_bar_layer_->SetHideLayerAndSubtree(!is_progress_bar_visible);
   progress_bar_end_circle_layer_->SetHideLayerAndSubtree(
-      !is_progress_bar_background_visible);
-  if (is_progress_bar_background_visible) {
+      !(is_progress_bar_visible && progress_bar_visual_update_available));
+  progress_bar_static_background_layer_->SetHideLayerAndSubtree(
+      !(is_progress_bar_visible && progress_bar_visual_update_available));
+
+  if (is_progress_bar_visible) {
     progress_bar_background_layer_->SetPosition(
         gfx::PointF(progress_bar_background_x, progress_bar_background_y));
     progress_bar_background_layer_->SetBounds(
@@ -162,17 +169,6 @@
         SkColor4f::FromColor(progress_bar_background_color));
     progress_bar_background_layer_->SetRoundedCorner(gfx::RoundedCornersF(corner_radius));
 
-    progress_bar_end_circle_layer_->SetPosition(
-        gfx::PointF(progress_bar_end_indicator_x, progress_bar_end_indicator_y));
-    progress_bar_end_circle_layer_->SetBounds(
-        gfx::Size(progress_bar_end_indicator_width, progress_bar_end_indicator_height));
-    progress_bar_end_circle_layer_->SetBackgroundColor(SkColor4f::FromColor(progress_bar_color));
-    progress_bar_end_circle_layer_->SetRoundedCorner(gfx::RoundedCornersF(corner_radius));
-  }
-
-  bool is_progress_bar_visible = SkColorGetA(progress_bar_background_color);
-  progress_bar_layer_->SetHideLayerAndSubtree(!is_progress_bar_visible);
-  if (is_progress_bar_visible) {
     progress_bar_layer_->SetPosition(
         gfx::PointF(progress_bar_x, progress_bar_y));
     progress_bar_layer_->SetBounds(
@@ -181,6 +177,24 @@
     progress_bar_layer_->SetBackgroundColor(
         SkColor4f::FromColor(progress_bar_color));
     progress_bar_layer_->SetRoundedCorner(gfx::RoundedCornersF(corner_radius));
+
+    if (progress_bar_visual_update_available) {
+      // Display the end circle and static background layer.
+      progress_bar_end_circle_layer_->SetPosition(
+          gfx::PointF(progress_bar_end_indicator_x, progress_bar_end_indicator_y));
+      progress_bar_end_circle_layer_->SetBounds(
+          gfx::Size(progress_bar_end_indicator_width, progress_bar_end_indicator_height));
+      progress_bar_end_circle_layer_->SetBackgroundColor(SkColor4f::FromColor(progress_bar_color));
+      progress_bar_end_circle_layer_->SetRoundedCorner(gfx::RoundedCornersF(corner_radius));
+
+      progress_bar_static_background_layer_->SetPosition(gfx::PointF(
+          progress_bar_static_background_x, progress_bar_y));
+      progress_bar_static_background_layer_->SetBounds(gfx::Size(
+          progress_bar_static_background_width, progress_bar_height));
+      progress_bar_static_background_layer_->SetBackgroundColor(
+          SkColor4f::FromColor(progress_bar_static_background_color));
+      progress_bar_static_background_layer_->SetRoundedCorner(gfx::RoundedCornersF(corner_radius));
+    }
   }
 }
 
@@ -192,6 +206,7 @@
   progress_bar_layer_->SetOpacity(opacity);
   progress_bar_background_layer_->SetOpacity(opacity);
   progress_bar_end_circle_layer_->SetOpacity(opacity);
+  progress_bar_static_background_layer_->SetOpacity(opacity);
 }
 
 ToolbarLayer::ToolbarLayer(ui::ResourceManager* resource_manager)
@@ -203,6 +218,7 @@
       progress_bar_layer_(cc::slim::SolidColorLayer::Create()),
       progress_bar_background_layer_(cc::slim::SolidColorLayer::Create()),
       progress_bar_end_circle_layer_(cc::slim::SolidColorLayer::Create()),
+      progress_bar_static_background_layer_(cc::slim::SolidColorLayer::Create()),
       debug_layer_(cc::slim::SolidColorLayer::Create()) {
   toolbar_background_layer_->SetIsDrawable(true);
   layer_->AddChild(toolbar_background_layer_);
@@ -214,6 +230,10 @@
   bitmap_layer_->SetIsDrawable(true);
   layer_->AddChild(bitmap_layer_);
 
+  progress_bar_static_background_layer_->SetIsDrawable(true);
+  progress_bar_static_background_layer_->SetHideLayerAndSubtree(true);
+  layer_->AddChild(progress_bar_static_background_layer_);
+
   progress_bar_background_layer_->SetIsDrawable(true);
   progress_bar_background_layer_->SetHideLayerAndSubtree(true);
   layer_->AddChild(progress_bar_background_layer_);
diff --git a/chrome/browser/android/compositor/layer/toolbar_layer.h b/chrome/browser/android/compositor/layer/toolbar_layer.h
index a7365235..13a6222c 100644
--- a/chrome/browser/android/compositor/layer/toolbar_layer.h
+++ b/chrome/browser/android/compositor/layer/toolbar_layer.h
@@ -52,11 +52,15 @@
                          int progress_bar_background_width,
                          int progress_bar_background_height,
                          int progress_bar_background_color,
+                         int progress_bar_static_background_x,
+                         int progress_bar_static_background_width,
+                         int progress_bar_static_background_color,
                          int progress_bar_end_indicator_x,
                          int progress_bar_end_indicator_y,
                          int progress_bar_end_indicator_width,
                          int progress_bar_end_indicator_height,
-                         float corner_radius);
+                         float corner_radius,
+                         bool progress_bar_visual_update_available);
 
   void SetOpacity(float opacity);
 
@@ -76,6 +80,7 @@
   scoped_refptr<cc::slim::SolidColorLayer> progress_bar_layer_;
   scoped_refptr<cc::slim::SolidColorLayer> progress_bar_background_layer_;
   scoped_refptr<cc::slim::SolidColorLayer> progress_bar_end_circle_layer_;
+  scoped_refptr<cc::slim::SolidColorLayer> progress_bar_static_background_layer_;
   scoped_refptr<cc::slim::SolidColorLayer> debug_layer_;
 };
 
diff --git a/chrome/browser/android/compositor/scene_layer/top_toolbar_scene_layer.cc b/chrome/browser/android/compositor/scene_layer/top_toolbar_scene_layer.cc
index e67ca6e..507ea50 100644
--- a/chrome/browser/android/compositor/scene_layer/top_toolbar_scene_layer.cc
+++ b/chrome/browser/android/compositor/scene_layer/top_toolbar_scene_layer.cc
@@ -81,20 +81,26 @@
     jint progress_bar_background_width,
     jint progress_bar_background_height,
     jint progress_bar_background_color,
+    jint progress_bar_static_background_x,
+    jint progress_bar_static_background_width,
+    jint progress_bar_static_background_color,
     jint progress_bar_end_indicator_x,
     jint progress_bar_end_indicator_y,
     jint progress_bar_end_indicator_width,
     jint progress_bar_end_indicator_height,
-    jfloat corner_radius) {
+    jfloat corner_radius,
+    jboolean progress_bar_visual_update_available) {
   if (!toolbar_layer_)
     return;
   toolbar_layer_->UpdateProgressBar(
       progress_bar_x, progress_bar_y, progress_bar_width, progress_bar_height,
       progress_bar_color, progress_bar_background_x, progress_bar_background_y,
       progress_bar_background_width, progress_bar_background_height,
-      progress_bar_background_color, progress_bar_end_indicator_x,
-      progress_bar_end_indicator_y, progress_bar_end_indicator_width,
-      progress_bar_end_indicator_height, corner_radius);
+      progress_bar_background_color, progress_bar_static_background_x,
+      progress_bar_static_background_width, progress_bar_static_background_color,
+      progress_bar_end_indicator_x, progress_bar_end_indicator_y,
+      progress_bar_end_indicator_width, progress_bar_end_indicator_height, corner_radius,
+      progress_bar_visual_update_available);
 }
 
 void TopToolbarSceneLayer::SetContentTree(
diff --git a/chrome/browser/android/compositor/scene_layer/top_toolbar_scene_layer.h b/chrome/browser/android/compositor/scene_layer/top_toolbar_scene_layer.h
index b6e3b959..413b77b6 100644
--- a/chrome/browser/android/compositor/scene_layer/top_toolbar_scene_layer.h
+++ b/chrome/browser/android/compositor/scene_layer/top_toolbar_scene_layer.h
@@ -58,11 +58,15 @@
                          jint progress_bar_background_width,
                          jint progress_bar_background_height,
                          jint progress_bar_background_color,
+                         jint progress_bar_static_background_x,
+                         jint progress_bar_static_background_width,
+                         jint progress_bar_static_background_color,
                          jint progress_bar_end_indicator_x,
                          jint progress_bar_end_indicator_y,
                          jint progress_bar_end_indicator_width,
                          jint progress_bar_end_indicator_height,
-                         jfloat corner_radius);
+                         jfloat corner_radius,
+                         jboolean progress_bar_visual_update_available);
 
   void SetContentTree(
       JNIEnv* env,
diff --git a/chrome/browser/android/tab_android.cc b/chrome/browser/android/tab_android.cc
index 7547562c..441a2567 100644
--- a/chrome/browser/android/tab_android.cc
+++ b/chrome/browser/android/tab_android.cc
@@ -48,6 +48,7 @@
 #include "components/infobars/content/content_infobar_manager.h"
 #include "components/no_state_prefetch/browser/no_state_prefetch_manager.h"
 #include "components/sessions/content/session_tab_helper.h"
+#include "components/tabs/public/supports_handles.h"
 #include "components/tabs/public/tab_collection.h"
 #include "components/tabs/public/tab_group_tab_collection.h"
 #include "content/public/browser/browser_thread.h"
@@ -112,6 +113,8 @@
 
 namespace tabs {
 
+DEFINE_HANDLE_FACTORY(TabInterface);
+
 // static
 TabInterface* TabInterface::GetFromContents(
     content::WebContents* web_contents) {
diff --git a/chrome/browser/bookmarks/android/java/src/org/chromium/chrome/browser/bookmarks/BookmarkManagerMediator.java b/chrome/browser/bookmarks/android/java/src/org/chromium/chrome/browser/bookmarks/BookmarkManagerMediator.java
index 511d4447..ef7dfcb 100644
--- a/chrome/browser/bookmarks/android/java/src/org/chromium/chrome/browser/bookmarks/BookmarkManagerMediator.java
+++ b/chrome/browser/bookmarks/android/java/src/org/chromium/chrome/browser/bookmarks/BookmarkManagerMediator.java
@@ -38,7 +38,7 @@
 import org.chromium.chrome.browser.partnerbookmarks.PartnerBookmarksReader;
 import org.chromium.chrome.browser.price_tracking.PriceDropNotificationManager;
 import org.chromium.chrome.browser.profiles.Profile;
-import org.chromium.chrome.browser.sync.ui.bookmark_batch_upload_card.BookmarkBatchUploadCardCoordinator;
+import org.chromium.chrome.browser.sync.ui.batch_upload_card.BatchUploadCardCoordinator;
 import org.chromium.chrome.browser.ui.messages.snackbar.SnackbarManager;
 import org.chromium.chrome.browser.ui.native_page.BasicNativePage;
 import org.chromium.components.bookmarks.BookmarkId;
@@ -157,8 +157,8 @@
                                 // Update the batch upload card (in case of refresh() is not called)
                                 // to reflect the right number of the
                                 // local bookmarks.
-                                if (mBookmarkBatchUploadCardCoordinator != null) {
-                                    mBookmarkBatchUploadCardCoordinator
+                                if (mBatchUploadCardCoordinator != null) {
+                                    mBatchUploadCardCoordinator
                                             .immediatelyHideBatchUploadCardAndUpdateItsVisibility();
                                 }
                             }
@@ -384,7 +384,7 @@
     private final BookmarkManagerOpener mBookmarkManagerOpener;
     private final PriceDropNotificationManager mPriceDropNotificationManager;
 
-    @Nullable private BookmarkBatchUploadCardCoordinator mBookmarkBatchUploadCardCoordinator;
+    @Nullable private BatchUploadCardCoordinator mBatchUploadCardCoordinator;
     // Whether this instance has been destroyed.
     private boolean mIsDestroyed;
     private String mInitialUrl;
@@ -449,8 +449,8 @@
         mSnackbarManager = snackbarManager;
         mCanShowSigninPromo = canShowSigninPromo;
         if (ChromeFeatureList.isEnabled(ChromeFeatureList.UNO_PHASE_2_FOLLOW_UP)) {
-            mBookmarkBatchUploadCardCoordinator =
-                    new BookmarkBatchUploadCardCoordinator(
+            mBatchUploadCardCoordinator =
+                    new BatchUploadCardCoordinator(
                             activity,
                             lifecycleOwner,
                             modalDialogManager,
@@ -1114,10 +1114,10 @@
     }
 
     private boolean shouldShowBatchUploadCard() {
-        if (mBookmarkBatchUploadCardCoordinator == null) {
+        if (mBatchUploadCardCoordinator == null) {
             return false;
         }
-        return mBookmarkBatchUploadCardCoordinator.shouldShowBatchUploadCard();
+        return mBatchUploadCardCoordinator.shouldShowBatchUploadCard();
     }
 
     /**
@@ -1279,8 +1279,8 @@
                 new PropertyModel.Builder(BookmarkManagerProperties.ALL_KEYS)
                         .with(BookmarkManagerProperties.BOOKMARK_LIST_ENTRY, bookmarkListEntry)
                         .with(
-                                BookmarkManagerProperties.BOOKMARK_BATCH_UPLOAD_CARD_COORDINATOR,
-                                mBookmarkBatchUploadCardCoordinator);
+                                BookmarkManagerProperties.BATCH_UPLOAD_CARD_COORDINATOR,
+                                mBatchUploadCardCoordinator);
         return new ListItem(bookmarkListEntry.getViewType(), builder.build());
     }
 
@@ -1358,8 +1358,8 @@
     }
 
     @VisibleForTesting
-    BookmarkBatchUploadCardCoordinator getBookmarkBatchUploadCardCoordinator() {
-        return mBookmarkBatchUploadCardCoordinator;
+    BatchUploadCardCoordinator getBatchUploadCardCoordinator() {
+        return mBatchUploadCardCoordinator;
     }
 
     @VisibleForTesting
diff --git a/chrome/browser/bookmarks/android/java/src/org/chromium/chrome/browser/bookmarks/BookmarkManagerProperties.java b/chrome/browser/bookmarks/android/java/src/org/chromium/chrome/browser/bookmarks/BookmarkManagerProperties.java
index d97e25c2..31489e5f 100644
--- a/chrome/browser/bookmarks/android/java/src/org/chromium/chrome/browser/bookmarks/BookmarkManagerProperties.java
+++ b/chrome/browser/bookmarks/android/java/src/org/chromium/chrome/browser/bookmarks/BookmarkManagerProperties.java
@@ -5,7 +5,7 @@
 package org.chromium.chrome.browser.bookmarks;
 
 import org.chromium.base.Callback;
-import org.chromium.chrome.browser.sync.ui.bookmark_batch_upload_card.BookmarkBatchUploadCardCoordinator;
+import org.chromium.chrome.browser.sync.ui.batch_upload_card.BatchUploadCardCoordinator;
 import org.chromium.components.bookmarks.BookmarkId;
 import org.chromium.ui.modelutil.PropertyKey;
 import org.chromium.ui.modelutil.PropertyModel.WritableBooleanPropertyKey;
@@ -16,8 +16,8 @@
 public class BookmarkManagerProperties {
     public static final WritableObjectPropertyKey<BookmarkPromoHeader> BOOKMARK_PROMO_HEADER =
             new WritableObjectPropertyKey<>();
-    public static final WritableObjectPropertyKey<BookmarkBatchUploadCardCoordinator>
-            BOOKMARK_BATCH_UPLOAD_CARD_COORDINATOR = new WritableObjectPropertyKey<>();
+    public static final WritableObjectPropertyKey<BatchUploadCardCoordinator>
+            BATCH_UPLOAD_CARD_COORDINATOR = new WritableObjectPropertyKey<>();
     // TODO(https://crbug.com/1416611): Replace with individual fields.
     public static final WritableObjectPropertyKey<BookmarkListEntry> BOOKMARK_LIST_ENTRY =
             new WritableObjectPropertyKey<>();
@@ -34,7 +34,7 @@
 
     static final PropertyKey[] ALL_KEYS = {
         BOOKMARK_PROMO_HEADER,
-        BOOKMARK_BATCH_UPLOAD_CARD_COORDINATOR,
+        BATCH_UPLOAD_CARD_COORDINATOR,
         BOOKMARK_LIST_ENTRY,
         BOOKMARK_ID,
         LOCATION,
diff --git a/chrome/browser/bookmarks/android/java/src/org/chromium/chrome/browser/bookmarks/BookmarkManagerViewBinder.java b/chrome/browser/bookmarks/android/java/src/org/chromium/chrome/browser/bookmarks/BookmarkManagerViewBinder.java
index 6907b4a5..b70a462 100644
--- a/chrome/browser/bookmarks/android/java/src/org/chromium/chrome/browser/bookmarks/BookmarkManagerViewBinder.java
+++ b/chrome/browser/bookmarks/android/java/src/org/chromium/chrome/browser/bookmarks/BookmarkManagerViewBinder.java
@@ -31,8 +31,8 @@
     static void bindLegacyPromoView(PropertyModel model, View view, PropertyKey key) {}
 
     static void bindBatchUploadCardView(PropertyModel model, View view, PropertyKey key) {
-        if (key == BookmarkManagerProperties.BOOKMARK_BATCH_UPLOAD_CARD_COORDINATOR) {
-            model.get(BookmarkManagerProperties.BOOKMARK_BATCH_UPLOAD_CARD_COORDINATOR)
+        if (key == BookmarkManagerProperties.BATCH_UPLOAD_CARD_COORDINATOR) {
+            model.get(BookmarkManagerProperties.BATCH_UPLOAD_CARD_COORDINATOR)
                     .setView(view.findViewById(R.id.signin_settings_card));
         }
     }
diff --git a/chrome/browser/bookmarks/android/junit/src/org/chromium/chrome/browser/bookmarks/BookmarkManagerMediatorTest.java b/chrome/browser/bookmarks/android/junit/src/org/chromium/chrome/browser/bookmarks/BookmarkManagerMediatorTest.java
index c5846ce2..4dbf0f1 100644
--- a/chrome/browser/bookmarks/android/junit/src/org/chromium/chrome/browser/bookmarks/BookmarkManagerMediatorTest.java
+++ b/chrome/browser/bookmarks/android/junit/src/org/chromium/chrome/browser/bookmarks/BookmarkManagerMediatorTest.java
@@ -1719,7 +1719,7 @@
                         eq(Set.of(DataType.BOOKMARKS, DataType.PASSWORDS, DataType.READING_LIST)),
                         any(Callback.class));
         mMediator
-                .getBookmarkBatchUploadCardCoordinator()
+                .getBatchUploadCardCoordinator()
                 .immediatelyHideBatchUploadCardAndUpdateItsVisibility();
 
         mBookmarkUiPrefs.setBookmarkRowSortOrder(BookmarkRowSortOrder.ALPHABETICAL);
@@ -1792,7 +1792,7 @@
                         eq(Set.of(DataType.BOOKMARKS, DataType.PASSWORDS, DataType.READING_LIST)),
                         any(Callback.class));
         mMediator
-                .getBookmarkBatchUploadCardCoordinator()
+                .getBatchUploadCardCoordinator()
                 .immediatelyHideBatchUploadCardAndUpdateItsVisibility();
 
         mBookmarkUiPrefs.setBookmarkRowSortOrder(BookmarkRowSortOrder.ALPHABETICAL);
@@ -1867,7 +1867,7 @@
                         eq(Set.of(DataType.BOOKMARKS, DataType.PASSWORDS, DataType.READING_LIST)),
                         any(Callback.class));
         mMediator
-                .getBookmarkBatchUploadCardCoordinator()
+                .getBatchUploadCardCoordinator()
                 .immediatelyHideBatchUploadCardAndUpdateItsVisibility();
 
         mBookmarkUiPrefs.setBookmarkRowSortOrder(BookmarkRowSortOrder.ALPHABETICAL);
diff --git a/chrome/browser/download/android/java/src/org/chromium/chrome/browser/download/DownloadInfo.java b/chrome/browser/download/android/java/src/org/chromium/chrome/browser/download/DownloadInfo.java
index 8927919..63bec96 100644
--- a/chrome/browser/download/android/java/src/org/chromium/chrome/browser/download/DownloadInfo.java
+++ b/chrome/browser/download/android/java/src/org/chromium/chrome/browser/download/DownloadInfo.java
@@ -248,23 +248,25 @@
 
     /**
      * Helper method to build a {@link DownloadInfo} from an {@link OfflineItem}.
-     * @param item    The {@link OfflineItem} to mimic.
+     *
+     * @param item The {@link OfflineItem} to mimic.
      * @param visuals The {@link OfflineItemVisuals} to mimic.
-     * @return        A {@link DownloadInfo} containing the relevant fields from {@code item}.
+     * @return A {@link DownloadInfo} containing the relevant fields from {@code item}.
      */
-    public static DownloadInfo fromOfflineItem(OfflineItem item, OfflineItemVisuals visuals) {
+    public static DownloadInfo fromOfflineItem(
+            OfflineItem item, @Nullable OfflineItemVisuals visuals) {
         return builderFromOfflineItem(item, visuals).build();
     }
 
     /**
      * Helper method to build a {@link DownloadInfo.Builder} from an {@link OfflineItem}.
-     * @param item    The {@link OfflineItem} to mimic.
+     *
+     * @param item The {@link OfflineItem} to mimic.
      * @param visuals The {@link OfflineItemVisuals} to mimic.
-     * @return        A {@link DownloadInfo.Builder} containing the relevant fields from
-     *                {@code item}.
+     * @return A {@link DownloadInfo.Builder} containing the relevant fields from {@code item}.
      */
     public static DownloadInfo.Builder builderFromOfflineItem(
-            OfflineItem item, OfflineItemVisuals visuals) {
+            OfflineItem item, @Nullable OfflineItemVisuals visuals) {
         int state;
         switch (item.state) {
             case OfflineItemState.COMPLETE:
diff --git a/chrome/browser/download/internal/android/java/src/org/chromium/chrome/browser/download/DownloadMessageUiControllerImpl.java b/chrome/browser/download/internal/android/java/src/org/chromium/chrome/browser/download/DownloadMessageUiControllerImpl.java
index 36169f5e..a25366f 100644
--- a/chrome/browser/download/internal/android/java/src/org/chromium/chrome/browser/download/DownloadMessageUiControllerImpl.java
+++ b/chrome/browser/download/internal/android/java/src/org/chromium/chrome/browser/download/DownloadMessageUiControllerImpl.java
@@ -522,6 +522,10 @@
             return;
         }
 
+        if (itemValidatedAfterDangerous(item)) {
+            removeNotification(item.id);
+        }
+
         computeNextStepForUpdate(item);
     }
 
diff --git a/chrome/browser/extensions/api/cookies/cookies_api.cc b/chrome/browser/extensions/api/cookies/cookies_api.cc
index d14e6338..b711013f 100644
--- a/chrome/browser/extensions/api/cookies/cookies_api.cc
+++ b/chrome/browser/extensions/api/cookies/cookies_api.cc
@@ -156,7 +156,10 @@
   }
   base::Value::List args;
   base::Value::Dict dict;
-  dict.Set(kRemovedKey, change.cause != net::CookieChangeCause::INSERTED);
+  dict.Set(
+      kRemovedKey,
+      change.cause != net::CookieChangeCause::INSERTED &&
+          change.cause != net::CookieChangeCause::INSERTED_NO_CHANGE_OVERWRITE);
 
   Profile* profile =
       otr ? profile_->GetPrimaryOTRProfile(/*create_if_needed=*/false)
diff --git a/chrome/browser/feedback/public/feedback_source.h b/chrome/browser/feedback/public/feedback_source.h
index 78273fdb..481a685f 100644
--- a/chrome/browser/feedback/public/feedback_source.h
+++ b/chrome/browser/feedback/public/feedback_source.h
@@ -14,6 +14,7 @@
 // below.
 namespace feedback {
 
+// LINT.IfChange(FeedbackSource)
 enum FeedbackSource {
   kFeedbackSourceArcApp = 0,
   kFeedbackSourceAsh = 1,
@@ -61,6 +62,7 @@
   kFeedbackSourceBorealis = 43,
   kFeedbackSourceSunfish = 44,
   kFeedbackSourceBocaApp = 45,
+  kFeedbackSourceTrackingProtections = 46,
 
   // ATTENTION: Before making any changes or adding to feedback collection,
   // please ensure the teams that operationalize feedback are aware and
@@ -69,6 +71,7 @@
   // Must be last.
   kFeedbackSourceCount,
 };
+// LINT.ThenChange(//tools/metrics/histograms/enums.xml:FeedbackSource)
 
 }  // namespace feedback
 
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 e827339..1dc5b28 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
@@ -1197,6 +1197,8 @@
             newMutableFlagWithSafeDefault(SUPPRESS_TOOLBAR_CAPTURES_AT_GESTURE_END, false);
     public static final MutableFlagWithSafeDefault sSwapNewTabAndNewTabInGroupAndroid =
             newMutableFlagWithSafeDefault(SWAP_NEW_TAB_AND_NEW_TAB_IN_GROUP_ANDROID, false);
+    public static final MutableFlagWithSafeDefault sTabCollectionAndroid =
+            newMutableFlagWithSafeDefault(TAB_COLLECTION_ANDROID, false);
     public static final MutableFlagWithSafeDefault sTabArchivalDragDropAndroid =
             newMutableFlagWithSafeDefault(TAB_ARCHIVAL_DRAG_DROP_ANDROID, false);
     // Default value will only ever be reached in tests.
diff --git a/chrome/browser/notifications/android/java/src/org/chromium/chrome/browser/notifications/NotificationUmaTracker.java b/chrome/browser/notifications/android/java/src/org/chromium/chrome/browser/notifications/NotificationUmaTracker.java
index eefc1f8..57f59b3 100644
--- a/chrome/browser/notifications/android/java/src/org/chromium/chrome/browser/notifications/NotificationUmaTracker.java
+++ b/chrome/browser/notifications/android/java/src/org/chromium/chrome/browser/notifications/NotificationUmaTracker.java
@@ -175,7 +175,8 @@
         ActionType.SAFETY_HUB_UNSUBSCRIBED_NOTIFICATIONS_REVIEW,
         ActionType.REPORT_AS_SAFE,
         ActionType.REPORT_WARNED_NOTIFICATION_AS_SPAM,
-        ActionType.REPORT_UNWARNED_NOTIFICATION_AS_SPAM
+        ActionType.REPORT_UNWARNED_NOTIFICATION_AS_SPAM,
+        ActionType.DOWNLOAD_DELETE_FROM_HISTORY
     })
     @Retention(RetentionPolicy.SOURCE)
     public @interface ActionType {
@@ -275,6 +276,9 @@
         // after the user unsubscribed from notifications when they did not receive a warning.
         int REPORT_UNWARNED_NOTIFICATION_AS_SPAM = 40;
 
+        // Delete from history button on user download notification.
+        int DOWNLOAD_DELETE_FROM_HISTORY = 41;
+
         // Number of real entries, excluding `UNKNOWN`.
         int NUM_ENTRIES = 41;
     }
diff --git a/chrome/browser/password_manager/password_change_browsertest.cc b/chrome/browser/password_manager/password_change_browsertest.cc
index 349f2cd0..c42b90e 100644
--- a/chrome/browser/password_manager/password_change_browsertest.cc
+++ b/chrome/browser/password_manager/password_change_browsertest.cc
@@ -27,7 +27,6 @@
 #include "chrome/browser/profiles/profile.h"
 #include "chrome/browser/ui/browser.h"
 #include "chrome/browser/ui/passwords/bubble_controllers/password_bubble_controller_base.h"
-#include "chrome/browser/ui/passwords/bubble_controllers/password_change/password_change_info_bubble_controller.h"
 #include "chrome/browser/ui/passwords/manage_passwords_ui_controller.h"
 #include "chrome/browser/ui/passwords/password_change_ui_controller.h"
 #include "chrome/browser/ui/passwords/ui_utils.h"
@@ -669,45 +668,6 @@
           PasswordChangeQuality_StepQuality_SubmissionStatus_FAILURE_STATUS);
 }
 
-IN_PROC_BROWSER_TEST_F(PasswordChangeBrowserTest,
-                       SignInCheckBubbleIsHiddenWhenStateIsUpdated) {
-  SetPrivacyNoticeAcceptedPref();
-  const GURL main_url = WebContents()->GetLastCommittedURL();
-  const GURL change_password_url =
-      embedded_test_server()->GetURL("/password/update_form_empty_fields.html");
-
-  EXPECT_CALL(*affiliation_service(), GetChangePasswordURL(main_url))
-      .WillOnce(testing::Return(change_password_url));
-
-  StartPasswordChange(main_url, u"test", u"pa$$word", WebContents());
-  // Verify the delegate is created and it's currently waiting for change
-  // password form.
-  auto* delegate =
-      password_change_service()->GetPasswordChangeDelegate(WebContents());
-  ASSERT_TRUE(delegate);
-
-  PasswordBubbleViewBase::ShowBubble(
-      WebContents(), LocationBarBubbleDelegateView::USER_GESTURE);
-  auto* bubble_controller = static_cast<PasswordChangeInfoBubbleController*>(
-      PasswordBubbleViewBase::manage_password_bubble()->GetController());
-  ASSERT_EQ(
-      bubble_controller->GetTitle(),
-      l10n_util::GetStringUTF16(IDS_PASSWORD_MANAGER_UI_SIGN_IN_CHECK_TITLE));
-  ASSERT_EQ(url_formatter::FormatUrlForSecurityDisplay(change_password_url),
-            bubble_controller->GetDisplayOrigin());
-
-  // Wait until the state is changed from `kWaitingForChangePasswordForm` to any
-  // other state. The bubble should disappear then.
-  ASSERT_TRUE(base::test::RunUntil([delegate]() {
-    return delegate->GetCurrentState() !=
-           PasswordChangeDelegate::State::kWaitingForChangePasswordForm;
-  }));
-  PasswordBubbleViewBase* bubble =
-      PasswordBubbleViewBase::manage_password_bubble();
-  ASSERT_FALSE(bubble);
-}
-
-#if !BUILDFLAG(IS_ANDROID)
 IN_PROC_BROWSER_TEST_F(PasswordChangeBrowserTest, OpenTabWithPasswordChange) {
   SetPrivacyNoticeAcceptedPref();
 
@@ -730,7 +690,6 @@
   EXPECT_EQ(2, tab_strip->count());
   EXPECT_EQ(1, tab_strip->active_index());
 }
-#endif
 
 IN_PROC_BROWSER_TEST_F(PasswordChangeBrowserTest,
                        PrivacyNoticeDialogDisplayed) {
@@ -739,7 +698,6 @@
       .WillOnce(testing::Return(embedded_test_server()->GetURL(
           "/password/update_form_empty_fields.html")));
 
-  BubbleObserver prompt_observer(WebContents());
   StartPasswordChange(main_url, u"test", u"pa$$word", WebContents());
 
   PasswordChangeDelegate* delegate =
@@ -752,31 +710,6 @@
                   ->IsVisible());
 }
 
-IN_PROC_BROWSER_TEST_F(PasswordChangeBrowserTest,
-                       SuccessfulDialogDisplayedAutomatically) {
-  SetPrivacyNoticeAcceptedPref();
-  const GURL main_url = WebContents()->GetLastCommittedURL();
-  EXPECT_CALL(*affiliation_service(), GetChangePasswordURL(main_url))
-      .WillOnce(testing::Return(embedded_test_server()->GetURL(
-          "/password/update_form_empty_fields.html")));
-
-  BubbleObserver prompt_observer(WebContents());
-  StartPasswordChange(main_url, u"test", u"pa$$word", WebContents());
-
-  MockPasswordChangeOutcome(
-      PasswordChangeOutcome::
-          PasswordChangeSubmissionData_PasswordChangeOutcome_SUCCESSFUL_OUTCOME);
-
-  PasswordChangeDelegate* delegate =
-      password_change_service()->GetPasswordChangeDelegate(WebContents());
-  EXPECT_TRUE(base::test::RunUntil([delegate]() {
-    return delegate->GetCurrentState() ==
-           PasswordChangeDelegate::State::kPasswordSuccessfullyChanged;
-  }));
-  // Now bubble should automatically appear.
-  EXPECT_TRUE(prompt_observer.IsBubbleDisplayedAutomatically());
-}
-
 IN_PROC_BROWSER_TEST_F(PasswordChangeBrowserTest, FailureDialogDisplayed) {
   SetPrivacyNoticeAcceptedPref();
   const GURL main_url = WebContents()->GetLastCommittedURL();
@@ -821,79 +754,6 @@
                   ->IsVisible());
 }
 
-IN_PROC_BROWSER_TEST_F(PasswordChangeBrowserTest,
-                       BubbleIsNotDisplayedWhenSwitchedToDifferentTab) {
-  SetPrivacyNoticeAcceptedPref();
-  const GURL main_url = WebContents()->GetLastCommittedURL();
-  EXPECT_CALL(*affiliation_service(), GetChangePasswordURL(main_url))
-      .WillOnce(testing::Return(embedded_test_server()->GetURL(
-          "/password/update_form_empty_fields.html")));
-
-  // Open new tab.
-  ui_test_utils::NavigateToURLWithDisposition(
-      browser(), embedded_test_server()->GetURL("/password/done.html"),
-      WindowOpenDisposition::NEW_FOREGROUND_TAB,
-      ui_test_utils::BROWSER_TEST_NO_WAIT);
-
-  BubbleObserver prompt_observer(
-      browser()->tab_strip_model()->GetActiveWebContents());
-
-  // Start password change in the old tab
-  StartPasswordChange(main_url, u"test", u"pa$$word", WebContents());
-  MockPasswordChangeOutcome(
-      PasswordChangeOutcome::
-          PasswordChangeSubmissionData_PasswordChangeOutcome_SUCCESSFUL_OUTCOME);
-
-  PasswordChangeDelegate* delegate =
-      password_change_service()->GetPasswordChangeDelegate(WebContents());
-  auto* web_contents =
-      static_cast<PasswordChangeDelegateImpl*>(delegate)->executor();
-  PasswordsNavigationObserver password_change_page_observer(web_contents);
-  EXPECT_TRUE(password_change_page_observer.Wait());
-
-  EXPECT_TRUE(base::test::RunUntil([delegate]() {
-    return delegate->GetCurrentState() ==
-           PasswordChangeDelegate::State::kPasswordSuccessfullyChanged;
-  }));
-  // Even after password change is finished no bubble is shown.
-  EXPECT_FALSE(prompt_observer.IsBubbleDisplayedAutomatically());
-}
-
-IN_PROC_BROWSER_TEST_F(
-    PasswordChangeBrowserTest,
-    SuccessfulDialogDisplayedAutomaticallyEvenAfterTheCheckIsFinished) {
-  SetPrivacyNoticeAcceptedPref();
-  const GURL main_url = WebContents()->GetLastCommittedURL();
-  EXPECT_CALL(*affiliation_service(), GetChangePasswordURL(main_url))
-      .WillOnce(testing::Return(embedded_test_server()->GetURL(
-          "/password/update_form_empty_fields.html")));
-  StartPasswordChange(main_url, u"test", u"pa$$word", WebContents());
-
-  // Add and activate a new tab to verify the success dialog will be displayed
-  // automatically when focusing the old tab again.
-  ui_test_utils::NavigateToURLWithDisposition(
-      browser(), embedded_test_server()->GetURL("/password/done.html"),
-      WindowOpenDisposition::NEW_FOREGROUND_TAB,
-      ui_test_utils::BROWSER_TEST_NO_WAIT);
-
-  MockPasswordChangeOutcome(
-      PasswordChangeOutcome::
-          PasswordChangeSubmissionData_PasswordChangeOutcome_SUCCESSFUL_OUTCOME);
-
-  PasswordChangeDelegate* delegate =
-      password_change_service()->GetPasswordChangeDelegate(WebContents());
-  EXPECT_TRUE(base::test::RunUntil([delegate]() {
-    return delegate->GetCurrentState() ==
-           PasswordChangeDelegate::State::kPasswordSuccessfullyChanged;
-  }));
-
-  // Verify that activating the original tab shows a bubble automatically.
-  BubbleObserver prompt_observer(
-      browser()->tab_strip_model()->GetWebContentsAt(0));
-  browser()->tab_strip_model()->ActivateTabAt(0);
-  EXPECT_TRUE(prompt_observer.IsBubbleDisplayedAutomatically());
-}
-
 IN_PROC_BROWSER_TEST_F(PasswordChangeBrowserTest, OTPDetectionHaltsTheFlow) {
   SetPrivacyNoticeAcceptedPref();
   const GURL main_url = WebContents()->GetLastCommittedURL();
diff --git a/chrome/browser/password_manager/password_change_delegate.h b/chrome/browser/password_manager/password_change_delegate.h
index 39fad49c..9ce5dfe 100644
--- a/chrome/browser/password_manager/password_change_delegate.h
+++ b/chrome/browser/password_manager/password_change_delegate.h
@@ -85,10 +85,6 @@
   // invoked after this function is called as the object will soon be destroyed.
   virtual void Stop() = 0;
 
-  // Restarts password change flow only if the flow failed due to inability to
-  // find change password form. In all other scenarios it's unsafe to restart.
-  virtual void Restart() = 0;
-
   // Brings a tab where password change is ongoing. Does nothing if the tab
   // doesn't exist anymore.
   virtual void OpenPasswordChangeTab() = 0;
diff --git a/chrome/browser/password_manager/password_change_delegate_impl.cc b/chrome/browser/password_manager/password_change_delegate_impl.cc
index 9f53427d..3b35161 100644
--- a/chrome/browser/password_manager/password_change_delegate_impl.cc
+++ b/chrome/browser/password_manager/password_change_delegate_impl.cc
@@ -79,15 +79,6 @@
   }
 }
 
-void DisplayChangePasswordBubbleAutomatically(
-    content::WebContents* web_contents) {
-  CHECK(web_contents);
-  if (auto* manage_controller =
-          ManagePasswordsUIController::FromWebContents(web_contents)) {
-    manage_controller->ShowChangePasswordBubble();
-  }
-}
-
 std::unique_ptr<BrowserSavePasswordProgressLogger> GetLoggerIfAvailable(
     content::WebContents* web_contents) {
   if (!web_contents) {
@@ -252,13 +243,6 @@
                     this);
 }
 
-void PasswordChangeDelegateImpl::Restart() {
-  CHECK_EQ(State::kChangePasswordFormNotFound, current_state_);
-  CHECK(!submission_verifier_);
-
-  StartPasswordChange();
-}
-
 void PasswordChangeDelegateImpl::OnPasswordFormSubmission(
     content::WebContents* web_contents) {
   if (submission_verifier_) {
@@ -333,26 +317,9 @@
     return;
   }
   current_state_ = new_state;
-  observers_.Notify(&PasswordChangeDelegate::Observer::OnStateChanged,
-                    new_state);
+  observers_.Notify(&Observer::OnStateChanged, new_state);
   ui_controller_->UpdateState(new_state);
 
-  switch (current_state_) {
-    case State::kWaitingForChangePasswordForm:
-    case State::kChangingPassword:
-    case State::kOfferingPasswordChange:
-    case State::kPasswordChangeFailed:
-    case State::kChangePasswordFormNotFound:
-    case State::kOtpDetected:
-    case State::kWaitingForAgreement:
-    case State::kCanceled:
-      return;
-    case State::kPasswordSuccessfullyChanged:
-      NotifyPasswordChangeFinishedSuccessfully(originator_);
-      DisplayChangePasswordBubbleAutomatically(originator_);
-      break;
-  }
-
   if (auto logger = GetLoggerIfAvailable(originator_)) {
     logger->LogNumber(
         BrowserSavePasswordProgressLogger::STRING_PASSWORD_CHANGE_STATE_CHANGED,
@@ -369,12 +336,14 @@
     // Password change was successful. Save new password with an original
     // username.
     submission_verifier_->SavePassword(username_);
+    NotifyPasswordChangeFinishedSuccessfully(originator_);
     UpdateState(State::kPasswordSuccessfullyChanged);
   }
   // TODO(crbug.com/407503334): Upload final log on destructor.
   logs_uploader_->UploadFinalLog();
   submission_verifier_.reset();
 }
+
 bool PasswordChangeDelegateImpl::IsPrivacyNoticeAcknowledged() const {
   const OptimizationGuideKeyedService* const opt_guide_keyed_service =
       OptimizationGuideKeyedServiceFactory::GetForProfile(profile_);
diff --git a/chrome/browser/password_manager/password_change_delegate_impl.h b/chrome/browser/password_manager/password_change_delegate_impl.h
index e802555..b261e9b 100644
--- a/chrome/browser/password_manager/password_change_delegate_impl.h
+++ b/chrome/browser/password_manager/password_change_delegate_impl.h
@@ -71,7 +71,6 @@
   bool IsPasswordChangeOngoing(content::WebContents* web_contents) override;
   State GetCurrentState() const override;
   void Stop() override;
-  void Restart() override;
   void OpenPasswordChangeTab() override;
   void OnPasswordFormSubmission(content::WebContents* web_contents) override;
   void OnOtpFieldDetected(content::WebContents* web_contents) override;
diff --git a/chrome/browser/password_manager/password_change_delegate_impl_unittest.cc b/chrome/browser/password_manager/password_change_delegate_impl_unittest.cc
index 54f5fce..a56f1a0 100644
--- a/chrome/browser/password_manager/password_change_delegate_impl_unittest.cc
+++ b/chrome/browser/password_manager/password_change_delegate_impl_unittest.cc
@@ -159,25 +159,6 @@
       PasswordChangeDelegate::State::kChangePasswordFormNotFound, 1);
 }
 
-TEST_F(PasswordChangeDelegateImplTest, RestartPasswordChange) {
-  SetOptimizationFeatureEnabled(/*enabled=*/true);
-  delegate()->StartPasswordChangeFlow();
-
-  EXPECT_EQ(PasswordChangeDelegate::State::kWaitingForChangePasswordForm,
-            delegate()->GetCurrentState());
-
-  static_cast<PasswordChangeDelegateImpl*>(delegate())
-      ->form_finder()
-      ->RespondWithFormNotFound();
-
-  EXPECT_EQ(PasswordChangeDelegate::State::kChangePasswordFormNotFound,
-            delegate()->GetCurrentState());
-
-  delegate()->Restart();
-  EXPECT_EQ(PasswordChangeDelegate::State::kWaitingForChangePasswordForm,
-            delegate()->GetCurrentState());
-}
-
 TEST_F(PasswordChangeDelegateImplTest, MetricsReportedFlowOffered) {
   base::HistogramTester histogram_tester;
   ResetDelegate();
diff --git a/chrome/browser/password_manager/password_change_delegate_mock.h b/chrome/browser/password_manager/password_change_delegate_mock.h
index db52843..c314e393 100644
--- a/chrome/browser/password_manager/password_change_delegate_mock.h
+++ b/chrome/browser/password_manager/password_change_delegate_mock.h
@@ -31,7 +31,6 @@
               (),
               (const override));
   MOCK_METHOD(void, Stop, (), (override));
-  MOCK_METHOD(void, Restart, (), (override));
   MOCK_METHOD(void, OpenPasswordChangeTab, (), (override));
   MOCK_METHOD(void,
               OnPasswordFormSubmission,
diff --git a/chrome/browser/prefs/DEPS b/chrome/browser/prefs/DEPS
index 07a9085..3136a999 100644
--- a/chrome/browser/prefs/DEPS
+++ b/chrome/browser/prefs/DEPS
@@ -3,4 +3,7 @@
   "profile_pref_store_manager\.cc": [
     "+services/preferences/tracked",
   ],
+  "chrome_pref_service_factory\.cc": [
+    "+services/preferences/tracked",
+  ],
 }
diff --git a/chrome/browser/prefs/chrome_pref_service_factory.cc b/chrome/browser/prefs/chrome_pref_service_factory.cc
index 744fc4b..f7ee08f 100644
--- a/chrome/browser/prefs/chrome_pref_service_factory.cc
+++ b/chrome/browser/prefs/chrome_pref_service_factory.cc
@@ -75,6 +75,7 @@
 #include "rlz/buildflags/buildflags.h"
 #include "services/preferences/public/cpp/tracked/configuration.h"
 #include "services/preferences/public/cpp/tracked/pref_names.h"
+#include "services/preferences/tracked/pref_hash_filter.h"
 #include "sql/error_delegate_util.h"
 #include "ui/base/resource/resource_bundle.h"
 
@@ -406,6 +407,25 @@
                  supervised_user_settings, user_pref_store,
                  std::move(extension_prefs), async, connector);
 
+#if !BUILDFLAG(IS_CHROMEOS) && !BUILDFLAG(IS_ANDROID)
+  // Get raw pointers to the filters before moving user_pref_store.
+  PrefFilter* default_filter = nullptr;
+  PrefFilter* selected_filter = nullptr;
+  if (user_pref_store) {
+    // Get the underlying segregated pref store filters if possible, otherwise
+    // the functions will return nullptr.
+    default_filter = user_pref_store->GetDefaultStoreFilter();
+    selected_filter = user_pref_store->GetSelectedStoreFilter();
+
+    // JsonPrefStore will not have the two getters implemented, it will fall
+    // back to this block below. The user_pref_store itself will have the
+    // filter.
+    if (!default_filter && !selected_filter) {
+      default_filter = user_pref_store->GetFilter();
+    }
+  }
+#endif  // !BUILDFLAG(IS_CHROMEOS) && !BUILDFLAG(IS_ANDROID)
+
   if (base::FeatureList::IsEnabled(
           switches::kEnablePreferencesAccountStorage)) {
     // Desktop and Mobile platforms have different implementation for account
@@ -487,7 +507,20 @@
     }
   }
 
-  return factory.CreateSyncable(std::move(pref_registry));
+  std::unique_ptr<sync_preferences::PrefServiceSyncable> pref_service =
+      factory.CreateSyncable(std::move(pref_registry));
+
+// The PrefService is created, set the weakptr for the filters.
+#if !BUILDFLAG(IS_CHROMEOS) && !BUILDFLAG(IS_ANDROID)
+  if (default_filter) {
+    default_filter->SetPrefService(pref_service.get());
+  }
+  if (selected_filter) {
+    selected_filter->SetPrefService(pref_service.get());
+  }
+#endif  // !BUILDFLAG(IS_CHROMEOS) && !BUILDFLAG(IS_ANDROID)
+
+  return pref_service;
 }
 
 void DisableDomainCheckForTesting() {
diff --git a/chrome/browser/readaloud/android/resources/translations/android_readaloud_strings_am.xtb b/chrome/browser/readaloud/android/resources/translations/android_readaloud_strings_am.xtb
index 497a9b5..2a9b0da 100644
--- a/chrome/browser/readaloud/android/resources/translations/android_readaloud_strings_am.xtb
+++ b/chrome/browser/readaloud/android/resources/translations/android_readaloud_strings_am.xtb
@@ -31,6 +31,7 @@
 <translation id="4525525184005340968">ሸለቆ</translation>
 <translation id="4710974520964166851">ዘና ያለ</translation>
 <translation id="4773921449011281499">ሰላም ያለው</translation>
+<translation id="4867493576811701175">የአሪፍ አዝራር፣ ይህን ባህሪ እንደወደዱት ግብረመልስ ለማስገባት ይምረጡ</translation>
 <translation id="4872475766448853257"><ph name="NUMBER_OF_SECONDS" /> ሰከንዶች ወደ ኋላ ተመለስ</translation>
 <translation id="4967513477347430212">የባህር ዳርቻ</translation>
 <translation id="5026371835667036198">ብሩህ</translation>
@@ -61,6 +62,7 @@
 <translation id="8136852699834914183">ለዚህ ገፅ መልሶ ማጫወት አይገኝም።</translation>
 <translation id="8198036737896977997">አየር</translation>
 <translation id="8264989794233974275"><ph name="PLAYBACK_SPEED" />x ፍጥነት መጨመር / መቀነስ።</translation>
+<translation id="837054959055425654">የደባሪ ነው አዝራር፣ በዚህ ባህሪ ላይ ስለሚገኝ ችግር ዝርዝር ግብረመልስ ለመስጠት የሚሆን ቅጽ ለመክፈት ይምረጡ</translation>
 <translation id="8407011429883244666">ማጫወቻን ይዝጉ።</translation>
 <translation id="8462210863277153423">ጥራት እና ምርምርን ለማሻሻል የእርስዎ ዩአርኤል ከግብረመልሱ ጋር ይሰቀላል።</translation>
 <translation id="8481839122437406573">የረጋ</translation>
diff --git a/chrome/browser/readaloud/android/resources/translations/android_readaloud_strings_as.xtb b/chrome/browser/readaloud/android/resources/translations/android_readaloud_strings_as.xtb
index c2fc353..b731382 100644
--- a/chrome/browser/readaloud/android/resources/translations/android_readaloud_strings_as.xtb
+++ b/chrome/browser/readaloud/android/resources/translations/android_readaloud_strings_as.xtb
@@ -31,6 +31,7 @@
 <translation id="4525525184005340968">উপত্যকা</translation>
 <translation id="4710974520964166851">নিশ্চিন্ত</translation>
 <translation id="4773921449011281499">শান্তিপূৰ্ণ</translation>
+<translation id="4867493576811701175">থাম্বছ আপ বুটাম, আপুনি এই সুবিধাটো ভাল পাইছে বুলি মতামত দাখিল কৰিবলৈ বাছনি কৰক</translation>
 <translation id="4872475766448853257"><ph name="NUMBER_OF_SECONDS" /> ছেকেণ্ড পিছলৈ যাওক</translation>
 <translation id="4967513477347430212">উপকূল</translation>
 <translation id="5026371835667036198">উজ্জ্বল</translation>
@@ -61,6 +62,7 @@
 <translation id="8136852699834914183">এই পৃষ্ঠাখনৰ বাবে প্লে’বেক উপলব্ধ নহয়।</translation>
 <translation id="8198036737896977997">বায়ু</translation>
 <translation id="8264989794233974275">গতি <ph name="PLAYBACK_SPEED" /> গুণ বৃদ্ধি/হ্ৰাস কৰক।</translation>
+<translation id="837054959055425654">থাম্বছ ডাউন বুটাম, এই সুবিধাটোৰ ক্ষেত্ৰত পোৱা কোনো সমস্যাৰ বিস্তৃত মতামত দিবলৈ এখন ফৰ্ম খুলিবলৈ বাছনি কৰক</translation>
 <translation id="8407011429883244666">প্লে’য়াৰ বন্ধ কৰক।</translation>
 <translation id="8462210863277153423">গুণগত মান আৰু গৱেষণা উন্নত কৰিবলৈ আপোনাৰ URLটো মতামতৰ সৈতে আপল’ড কৰা হ’ব।</translation>
 <translation id="8481839122437406573">শান্ত</translation>
diff --git a/chrome/browser/readaloud/android/resources/translations/android_readaloud_strings_az.xtb b/chrome/browser/readaloud/android/resources/translations/android_readaloud_strings_az.xtb
index 9479c37..254756b 100644
--- a/chrome/browser/readaloud/android/resources/translations/android_readaloud_strings_az.xtb
+++ b/chrome/browser/readaloud/android/resources/translations/android_readaloud_strings_az.xtb
@@ -31,6 +31,7 @@
 <translation id="4525525184005340968">Vadi</translation>
 <translation id="4710974520964166851">Rahat</translation>
 <translation id="4773921449011281499">Dinc</translation>
+<translation id="4867493576811701175">Baş barmaq yuxarı düyməsi. Bu funksiyanı bəyəndiyinizi bildirmək üçün seçin</translation>
 <translation id="4872475766448853257"><ph name="NUMBER_OF_SECONDS" /> saniyə geri qayıdın</translation>
 <translation id="4967513477347430212">Sahil</translation>
 <translation id="5026371835667036198">Xoşbəxt</translation>
@@ -61,6 +62,7 @@
 <translation id="8136852699834914183">Bu səhifəni səsləndirmək olmur.</translation>
 <translation id="8198036737896977997">Hava</translation>
 <translation id="8264989794233974275">Sürəti <ph name="PLAYBACK_SPEED" /> dəfə artırın/azaldın.</translation>
+<translation id="837054959055425654">Baş barmaq aşağı düyməsi. Bu funksiya ilə bağlı problem haqqında ətraflı rəy bildirmək üçün bu düyməni seçərək formanı açın</translation>
 <translation id="8407011429883244666">Pleyeri bağlayın.</translation>
 <translation id="8462210863277153423">Keyfiyyət və araşdırmanı yaxşılaşdırmaq üçün URL rəylə birlikdə yüklənəcək.</translation>
 <translation id="8481839122437406573">Sakit</translation>
diff --git a/chrome/browser/readaloud/android/resources/translations/android_readaloud_strings_be.xtb b/chrome/browser/readaloud/android/resources/translations/android_readaloud_strings_be.xtb
index 81f4439e..75cd64d 100644
--- a/chrome/browser/readaloud/android/resources/translations/android_readaloud_strings_be.xtb
+++ b/chrome/browser/readaloud/android/resources/translations/android_readaloud_strings_be.xtb
@@ -31,6 +31,7 @@
 <translation id="4525525184005340968">Даліна</translation>
 <translation id="4710974520964166851">Расслаблены голас</translation>
 <translation id="4773921449011281499">Спакойны</translation>
+<translation id="4867493576811701175">Кнопка "Падабаецца": націснуць, каб адправіць водгук пра тое, што вам падабаецца гэта функцыя</translation>
 <translation id="4872475766448853257">Пераматаць назад на наступную колькасць секунд: <ph name="NUMBER_OF_SECONDS" /></translation>
 <translation id="4967513477347430212">Бераг</translation>
 <translation id="5026371835667036198">Выразны</translation>
@@ -61,6 +62,7 @@
 <translation id="8136852699834914183">Прайграванне на гэтай старонцы недаступнае.</translation>
 <translation id="8198036737896977997">Паветра</translation>
 <translation id="8264989794233974275">Павялічыць або паменшыць хуткасць, прымяніўшы наступны множнік: <ph name="PLAYBACK_SPEED" />.</translation>
+<translation id="837054959055425654">Кнопка "Не падабаецца": націснуць, каб адкрыць форму для адпраўкі падрабязнага водгуку аб праблеме з гэтай функцыяй</translation>
 <translation id="8407011429883244666">Закрыць прайгравальнік.</translation>
 <translation id="8462210863277153423">У мэтах даследаванняў і паляпшэння якасці ваш URL-адрас будзе запампаваны разам з вашым водгукам.</translation>
 <translation id="8481839122437406573">Спакойны голас</translation>
diff --git a/chrome/browser/readaloud/android/resources/translations/android_readaloud_strings_bg.xtb b/chrome/browser/readaloud/android/resources/translations/android_readaloud_strings_bg.xtb
index b856b862..eb60566 100644
--- a/chrome/browser/readaloud/android/resources/translations/android_readaloud_strings_bg.xtb
+++ b/chrome/browser/readaloud/android/resources/translations/android_readaloud_strings_bg.xtb
@@ -31,6 +31,7 @@
 <translation id="4525525184005340968">Долина</translation>
 <translation id="4710974520964166851">Спокоен</translation>
 <translation id="4773921449011281499">Спокоен</translation>
+<translation id="4867493576811701175">Бутон „Харесва ми“. Изберете, за да изпратите отзиви, че харесвате тази функция</translation>
 <translation id="4872475766448853257">Превъртане с(ъс) <ph name="NUMBER_OF_SECONDS" /> секунди назад</translation>
 <translation id="4967513477347430212">Крайбрежие</translation>
 <translation id="5026371835667036198">Ведър</translation>
@@ -61,6 +62,7 @@
 <translation id="8136852699834914183">Възпроизвеждането не е възможно за тази страница.</translation>
 <translation id="8198036737896977997">Въздух</translation>
 <translation id="8264989794233974275">Увеличаване/намаляване на скоростта с(ъс) <ph name="PLAYBACK_SPEED" />.</translation>
+<translation id="837054959055425654">Бутон „Не ми харесва“. Изберете, за да отворите формуляр за изпращане на подробни отзиви за проблем с тази функция</translation>
 <translation id="8407011429883244666">Затваряне на плейъра.</translation>
 <translation id="8462210863277153423">URL адресът ви ще бъде качен с отзивите с цел подобряване на качеството и проучването.</translation>
 <translation id="8481839122437406573">Тих</translation>
diff --git a/chrome/browser/readaloud/android/resources/translations/android_readaloud_strings_bs.xtb b/chrome/browser/readaloud/android/resources/translations/android_readaloud_strings_bs.xtb
index 996ca74..35731be6 100644
--- a/chrome/browser/readaloud/android/resources/translations/android_readaloud_strings_bs.xtb
+++ b/chrome/browser/readaloud/android/resources/translations/android_readaloud_strings_bs.xtb
@@ -31,6 +31,7 @@
 <translation id="4525525184005340968">Dolina</translation>
 <translation id="4710974520964166851">Opušteno</translation>
 <translation id="4773921449011281499">Mirno</translation>
+<translation id="4867493576811701175">Slanje pozitivnih povratnih informacija o ovoj funkciji odabirom dugmeta za oznaku "Sviđa mi se"</translation>
 <translation id="4872475766448853257">Vraćanje <ph name="NUMBER_OF_SECONDS" /> s</translation>
 <translation id="4967513477347430212">Obala</translation>
 <translation id="5026371835667036198">Veselo</translation>
@@ -61,6 +62,7 @@
 <translation id="8136852699834914183">Reprodukcija nije dostupna za ovu stranicu.</translation>
 <translation id="8198036737896977997">Zrak</translation>
 <translation id="8264989794233974275"><ph name="PLAYBACK_SPEED" />x povećanje/smanjenje brzine.</translation>
+<translation id="837054959055425654">Otvaranje obrasca za detaljne povratne informacije o problemu s ovom funkcijom odabirom dugmeta za oznaku "Ne sviđa mi se"</translation>
 <translation id="8407011429883244666">Zatvaranje plejera.</translation>
 <translation id="8462210863277153423">URL će se otpremiti s povratnim informacijama da poboljšamo kvalitet i istraživanje.</translation>
 <translation id="8481839122437406573">Mirno</translation>
diff --git a/chrome/browser/readaloud/android/resources/translations/android_readaloud_strings_ca.xtb b/chrome/browser/readaloud/android/resources/translations/android_readaloud_strings_ca.xtb
index 1068dbd..a4b4f1a 100644
--- a/chrome/browser/readaloud/android/resources/translations/android_readaloud_strings_ca.xtb
+++ b/chrome/browser/readaloud/android/resources/translations/android_readaloud_strings_ca.xtb
@@ -31,6 +31,7 @@
 <translation id="4525525184005340968">Vall</translation>
 <translation id="4710974520964166851">Relaxada</translation>
 <translation id="4773921449011281499">Tranquil·la</translation>
+<translation id="4867493576811701175">Botó M'agrada: selecciona'l per enviar comentaris per indicar que t'agrada aquesta funció</translation>
 <translation id="4872475766448853257">Retrocedeix <ph name="NUMBER_OF_SECONDS" /> segons</translation>
 <translation id="4967513477347430212">Costa</translation>
 <translation id="5026371835667036198">Alegre</translation>
@@ -61,6 +62,7 @@
 <translation id="8136852699834914183">La reproducció no està disponible per a aquesta pàgina.</translation>
 <translation id="8198036737896977997">Aire</translation>
 <translation id="8264989794233974275">Augmenta o redueix la velocitat <ph name="PLAYBACK_SPEED" />x.</translation>
+<translation id="837054959055425654">Botó No m'agrada: selecciona'l per obrir un formulari i proporcionar comentaris detallats sobre un problema relacionat amb aquesta funció</translation>
 <translation id="8407011429883244666">Tanca el reproductor.</translation>
 <translation id="8462210863277153423">L'URL es penjarà juntament amb els comentaris per millorar la qualitat i la recerca.</translation>
 <translation id="8481839122437406573">Serena</translation>
diff --git a/chrome/browser/readaloud/android/resources/translations/android_readaloud_strings_cs.xtb b/chrome/browser/readaloud/android/resources/translations/android_readaloud_strings_cs.xtb
index 0532f3a..89a08271 100644
--- a/chrome/browser/readaloud/android/resources/translations/android_readaloud_strings_cs.xtb
+++ b/chrome/browser/readaloud/android/resources/translations/android_readaloud_strings_cs.xtb
@@ -31,6 +31,7 @@
 <translation id="4525525184005340968">Údolí</translation>
 <translation id="4710974520964166851">Pohodový</translation>
 <translation id="4773921449011281499">Poklidný</translation>
+<translation id="4867493576811701175">Tlačítko Palec nahoru, výběrem odešlete zpětnou vazbu, že se vám tato funkce líbí</translation>
 <translation id="4872475766448853257">Vrátit zpět o <ph name="NUMBER_OF_SECONDS" /> s</translation>
 <translation id="4967513477347430212">Pobřeží</translation>
 <translation id="5026371835667036198">Jasný</translation>
@@ -61,6 +62,7 @@
 <translation id="8136852699834914183">Přehrávání není pro tuto stránku dostupné.</translation>
 <translation id="8198036737896977997">Vzduch</translation>
 <translation id="8264989794233974275"><ph name="PLAYBACK_SPEED" />× zvýšit/snížit rychlost</translation>
+<translation id="837054959055425654">Tlačítko Palec dolů, výběrem otevřete formulář k poskytnutí podrobné zpětné vazby ohledně problému s touto funkcí</translation>
 <translation id="8407011429883244666">Zavřít přehrávač</translation>
 <translation id="8462210863277153423">Pro účely vylepšování kvality a výzkumu se spolu se zpětnou vazbou nahraje vaše adresa URL.</translation>
 <translation id="8481839122437406573">Klidný</translation>
diff --git a/chrome/browser/readaloud/android/resources/translations/android_readaloud_strings_cy.xtb b/chrome/browser/readaloud/android/resources/translations/android_readaloud_strings_cy.xtb
index 28e4ae7e..a71bab6 100644
--- a/chrome/browser/readaloud/android/resources/translations/android_readaloud_strings_cy.xtb
+++ b/chrome/browser/readaloud/android/resources/translations/android_readaloud_strings_cy.xtb
@@ -31,6 +31,7 @@
 <translation id="4525525184005340968">Dale</translation>
 <translation id="4710974520964166851">Digyffro</translation>
 <translation id="4773921449011281499">Heddychlon</translation>
+<translation id="4867493576811701175">Botwm bodiau i fyny, dewiswch i gyflwyno adborth eich bod yn hoffi'r nodwedd hon</translation>
 <translation id="4872475766448853257">Mynd yn ôl <ph name="NUMBER_OF_SECONDS" /> eiliad</translation>
 <translation id="4967513477347430212">Coast</translation>
 <translation id="5026371835667036198">Bywiog</translation>
@@ -61,6 +62,7 @@
 <translation id="8136852699834914183">Nid yw chwarae yn ôl ar gael ar gyfer y dudalen hon.</translation>
 <translation id="8198036737896977997">Air</translation>
 <translation id="8264989794233974275"><ph name="PLAYBACK_SPEED" />x o gynnydd/gostyngiad cyflymder.</translation>
+<translation id="837054959055425654">Botwm bodiau i lawr, dewiswch i agor ffurflen i roi adborth manwl am broblem gyda'r nodwedd hon</translation>
 <translation id="8407011429883244666">Cau'r chwaraewr.</translation>
 <translation id="8462210863277153423">Bydd eich URL yn cael ei uwchlwytho gyda'r adborth i wella ansawdd ac ymchwil.</translation>
 <translation id="8481839122437406573">Llonydd</translation>
diff --git a/chrome/browser/readaloud/android/resources/translations/android_readaloud_strings_da.xtb b/chrome/browser/readaloud/android/resources/translations/android_readaloud_strings_da.xtb
index e246fc3..36d5b69f 100644
--- a/chrome/browser/readaloud/android/resources/translations/android_readaloud_strings_da.xtb
+++ b/chrome/browser/readaloud/android/resources/translations/android_readaloud_strings_da.xtb
@@ -31,6 +31,7 @@
 <translation id="4525525184005340968">Dal</translation>
 <translation id="4710974520964166851">Afslappet</translation>
 <translation id="4773921449011281499">Fredfyldt</translation>
+<translation id="4867493576811701175">Like-knap, vælg for at tilkendegive, at du kan lide denne funktion</translation>
 <translation id="4872475766448853257">Spol <ph name="NUMBER_OF_SECONDS" /> sekunder tilbage</translation>
 <translation id="4967513477347430212">Kyst</translation>
 <translation id="5026371835667036198">Lys</translation>
@@ -61,6 +62,7 @@
 <translation id="8136852699834914183">Afspilning er ikke tilgængelig for denne side.</translation>
 <translation id="8198036737896977997">Luft</translation>
 <translation id="8264989794233974275">Øg eller sænk hastigheden med <ph name="PLAYBACK_SPEED" />x.</translation>
+<translation id="837054959055425654">Dislike-knap, vælg for at åbne en formular, hvor du kan give detaljeret feedback om et problem med denne funktion</translation>
 <translation id="8407011429883244666">Luk afspilleren.</translation>
 <translation id="8462210863277153423">Din webadresse uploades sammen med feedbacken for at forbedre kvaliteten og undersøgelsen.</translation>
 <translation id="8481839122437406573">Rolig</translation>
diff --git a/chrome/browser/readaloud/android/resources/translations/android_readaloud_strings_de.xtb b/chrome/browser/readaloud/android/resources/translations/android_readaloud_strings_de.xtb
index 922a4f3..72b9f66 100644
--- a/chrome/browser/readaloud/android/resources/translations/android_readaloud_strings_de.xtb
+++ b/chrome/browser/readaloud/android/resources/translations/android_readaloud_strings_de.xtb
@@ -31,6 +31,7 @@
 <translation id="4525525184005340968">Tal</translation>
 <translation id="4710974520964166851">Entspannt</translation>
 <translation id="4773921449011281499">Friedlich</translation>
+<translation id="4867493576811701175">Schaltfläche „Mag ich“ – über diese Schaltfläche kannst du positives Feedback zu dieser Funktion geben</translation>
 <translation id="4872475766448853257"><ph name="NUMBER_OF_SECONDS" /> Sekunden zurückspulen</translation>
 <translation id="4967513477347430212">Küste</translation>
 <translation id="5026371835667036198">Hell</translation>
@@ -61,6 +62,7 @@
 <translation id="8136852699834914183">Die Wiedergabefunktion ist für diese Seite nicht verfügbar.</translation>
 <translation id="8198036737896977997">Luft</translation>
 <translation id="8264989794233974275">Geschwindigkeit um das <ph name="PLAYBACK_SPEED" />-Fache erhöhen oder verringern.</translation>
+<translation id="837054959055425654">Schaltfläche „Mag ich nicht“ – über diese Schaltfläche wird ein Formular geöffnet, über das du detailliertes Feedback zu einem Problem mit dieser Funktion geben kannst</translation>
 <translation id="8407011429883244666">Player schließen</translation>
 <translation id="8462210863277153423">Zur Verbesserung der Qualität und für Forschungszwecke wird deine URL zusammen mit dem Feedback hochgeladen.</translation>
 <translation id="8481839122437406573">Ruhig</translation>
diff --git a/chrome/browser/readaloud/android/resources/translations/android_readaloud_strings_en-GB.xtb b/chrome/browser/readaloud/android/resources/translations/android_readaloud_strings_en-GB.xtb
index c3c6609..09ac603 100644
--- a/chrome/browser/readaloud/android/resources/translations/android_readaloud_strings_en-GB.xtb
+++ b/chrome/browser/readaloud/android/resources/translations/android_readaloud_strings_en-GB.xtb
@@ -31,6 +31,7 @@
 <translation id="4525525184005340968">Dale</translation>
 <translation id="4710974520964166851">Relaxed</translation>
 <translation id="4773921449011281499">Peaceful</translation>
+<translation id="4867493576811701175">Thumbs-up button, select to submit feedback that you like this feature</translation>
 <translation id="4872475766448853257">Go back <ph name="NUMBER_OF_SECONDS" /> seconds</translation>
 <translation id="4967513477347430212">Coast</translation>
 <translation id="5026371835667036198">Bright</translation>
@@ -61,6 +62,7 @@
 <translation id="8136852699834914183">Playback is unavailable for this page.</translation>
 <translation id="8198036737896977997">Air</translation>
 <translation id="8264989794233974275"><ph name="PLAYBACK_SPEED" />x increase/decrease speed.</translation>
+<translation id="837054959055425654">Thumbs-down button, select to open a form to give detailed feedback about an issue with this feature</translation>
 <translation id="8407011429883244666">Close player.</translation>
 <translation id="8462210863277153423">Your URL will be uploaded with the feedback to improve quality and research.</translation>
 <translation id="8481839122437406573">Calm</translation>
diff --git a/chrome/browser/readaloud/android/resources/translations/android_readaloud_strings_es.xtb b/chrome/browser/readaloud/android/resources/translations/android_readaloud_strings_es.xtb
index f88b745..3ca412a 100644
--- a/chrome/browser/readaloud/android/resources/translations/android_readaloud_strings_es.xtb
+++ b/chrome/browser/readaloud/android/resources/translations/android_readaloud_strings_es.xtb
@@ -31,6 +31,7 @@
 <translation id="4525525184005340968">Dale</translation>
 <translation id="4710974520964166851">Relajado</translation>
 <translation id="4773921449011281499">Apacible</translation>
+<translation id="4867493576811701175">Botón Me gusta. Selecciona para indicar que te gusta esta función</translation>
 <translation id="4872475766448853257">Retroceder <ph name="NUMBER_OF_SECONDS" /> segundos</translation>
 <translation id="4967513477347430212">Coast</translation>
 <translation id="5026371835667036198">Alegre</translation>
@@ -61,6 +62,7 @@
 <translation id="8136852699834914183">La reproducción no está disponible para esta página.</translation>
 <translation id="8198036737896977997">Air</translation>
 <translation id="8264989794233974275">Aumentar o disminuir la velocidad por <ph name="PLAYBACK_SPEED" /></translation>
+<translation id="837054959055425654">Botón No me gusta. Selecciona para abrir un formulario y enviar comentarios detallados sobre un problema con esta función</translation>
 <translation id="8407011429883244666">Cerrar el reproductor</translation>
 <translation id="8462210863277153423">Se subirá tu URL con las sugerencias para mejorar la calidad y la investigación.</translation>
 <translation id="8481839122437406573">Tranquilo</translation>
diff --git a/chrome/browser/readaloud/android/resources/translations/android_readaloud_strings_et.xtb b/chrome/browser/readaloud/android/resources/translations/android_readaloud_strings_et.xtb
index 564b110..1314ab1c 100644
--- a/chrome/browser/readaloud/android/resources/translations/android_readaloud_strings_et.xtb
+++ b/chrome/browser/readaloud/android/resources/translations/android_readaloud_strings_et.xtb
@@ -31,6 +31,7 @@
 <translation id="4525525184005340968">Jõeorg</translation>
 <translation id="4710974520964166851">Lõõgastunud</translation>
 <translation id="4773921449011281499">Rahulik</translation>
+<translation id="4867493576811701175">Valige nupp Meeldib, et anda tagasisidet selle kohta, et teile see funktsioon meeldib</translation>
 <translation id="4872475766448853257">Keri <ph name="NUMBER_OF_SECONDS" /> sekundit tagasi</translation>
 <translation id="4967513477347430212">Rannik</translation>
 <translation id="5026371835667036198">Hele</translation>
@@ -61,6 +62,7 @@
 <translation id="8136852699834914183">Selle lehe jaoks pole taasesitus saadaval.</translation>
 <translation id="8198036737896977997">Õhk</translation>
 <translation id="8264989794233974275">Kiiruse <ph name="PLAYBACK_SPEED" />× suurendamine/vähendamine.</translation>
+<translation id="837054959055425654">Valige nupp Ei meeldi, et anda selle funktsiooni probleemi kohta üksikasjalikku tagasisidet</translation>
 <translation id="8407011429883244666">Pleieri sulgemine.</translation>
 <translation id="8462210863277153423">Teie URL laaditakse koos tagasisidega üles, et kvaliteeti ja uuringuid parandada.</translation>
 <translation id="8481839122437406573">Rahulik</translation>
diff --git a/chrome/browser/readaloud/android/resources/translations/android_readaloud_strings_fa.xtb b/chrome/browser/readaloud/android/resources/translations/android_readaloud_strings_fa.xtb
index c480908..a2b1fc84 100644
--- a/chrome/browser/readaloud/android/resources/translations/android_readaloud_strings_fa.xtb
+++ b/chrome/browser/readaloud/android/resources/translations/android_readaloud_strings_fa.xtb
@@ -31,6 +31,7 @@
 <translation id="4525525184005340968">دره</translation>
 <translation id="4710974520964166851">آرام</translation>
 <translation id="4773921449011281499">ملایم</translation>
+<translation id="4867493576811701175">دکمه رأی موافق، با انتخاب این دکمه می‌توانید بازخوردی مبنی بر اینکه این ویژگی را می‌پسندید ارسال کنید</translation>
 <translation id="4872475766448853257"><ph name="NUMBER_OF_SECONDS" /> ثانیه عقب رفتن</translation>
 <translation id="4967513477347430212">ساحل</translation>
 <translation id="5026371835667036198">با نشاط</translation>
@@ -61,6 +62,7 @@
 <translation id="8136852699834914183">بازپخش در این صفحه دردسترس نیست.</translation>
 <translation id="8198036737896977997">هوا</translation>
 <translation id="8264989794233974275"><ph name="PLAYBACK_SPEED" />× افزایش/کاهش سرعت.</translation>
+<translation id="837054959055425654">دکمه رأی مخالف، با انتخاب این دکمه فرمی باز می‌شود که می‌توانید در آن درباره مشکل این ویژگی بازخوردی دقیق ارائه کنید</translation>
 <translation id="8407011429883244666">بستن پخش‌کننده.</translation>
 <translation id="8462210863277153423">برای بهبود کیفیت و انجام پژوهش، نشانی وب شما همراه با بازخورد بارگذاری خواهد شد.</translation>
 <translation id="8481839122437406573">آرامش‌بخش</translation>
diff --git a/chrome/browser/readaloud/android/resources/translations/android_readaloud_strings_fi.xtb b/chrome/browser/readaloud/android/resources/translations/android_readaloud_strings_fi.xtb
index 9b499103..086cb252 100644
--- a/chrome/browser/readaloud/android/resources/translations/android_readaloud_strings_fi.xtb
+++ b/chrome/browser/readaloud/android/resources/translations/android_readaloud_strings_fi.xtb
@@ -31,6 +31,7 @@
 <translation id="4525525184005340968">Laakso</translation>
 <translation id="4710974520964166851">Rento</translation>
 <translation id="4773921449011281499">Leppoisa</translation>
+<translation id="4867493576811701175">Tykkään-painike, valitse tämä, jos haluat lähettää palautetta, että pidät tästä ominaisuudesta</translation>
 <translation id="4872475766448853257">Siirry <ph name="NUMBER_OF_SECONDS" /> sekuntia taaksepäin</translation>
 <translation id="4967513477347430212">Rannikko</translation>
 <translation id="5026371835667036198">Kirkas</translation>
@@ -61,6 +62,7 @@
 <translation id="8136852699834914183">Toisto ei ole käytettävissä tällä sivulla.</translation>
 <translation id="8198036737896977997">Ilma</translation>
 <translation id="8264989794233974275">Lisää/vähennä nopeutta <ph name="PLAYBACK_SPEED" />-kertaiseksi.</translation>
+<translation id="837054959055425654">En tykkää ‐painike, valitse tämä avataksesi lomakkeen, jolla voit antaa yksityiskohtaista palautetta tähän ominaisuuteen liittyvästä ongelmasta</translation>
 <translation id="8407011429883244666">Sulje soitin.</translation>
 <translation id="8462210863277153423">URL-osoitteesi ladataan palautteen mukana laadun ja tutkimuksen parantamiseksi.</translation>
 <translation id="8481839122437406573">Tyyni</translation>
diff --git a/chrome/browser/readaloud/android/resources/translations/android_readaloud_strings_fil.xtb b/chrome/browser/readaloud/android/resources/translations/android_readaloud_strings_fil.xtb
index e154d29..3da62d7 100644
--- a/chrome/browser/readaloud/android/resources/translations/android_readaloud_strings_fil.xtb
+++ b/chrome/browser/readaloud/android/resources/translations/android_readaloud_strings_fil.xtb
@@ -31,6 +31,7 @@
 <translation id="4525525184005340968">Dale</translation>
 <translation id="4710974520964166851">Malumanay</translation>
 <translation id="4773921449011281499">Banayad</translation>
+<translation id="4867493576811701175">Button na thumbs up, piliin para magsumite ng feedback na gusto mo ang feature na ito</translation>
 <translation id="4872475766448853257">Bumalik nang <ph name="NUMBER_OF_SECONDS" /> (na) segundo</translation>
 <translation id="4967513477347430212">Baybayin</translation>
 <translation id="5026371835667036198">Masaya</translation>
@@ -61,6 +62,7 @@
 <translation id="8136852699834914183">Hindi available ang pag-playback para sa page na ito.</translation>
 <translation id="8198036737896977997">Hangin</translation>
 <translation id="8264989794233974275"><ph name="PLAYBACK_SPEED" />x na dagdagan/bawasan ang bilis.</translation>
+<translation id="837054959055425654">Button na thumbs down, piliin para magbukas ng form na magbibigay ng detalyadong feedback tungkol sa isyu sa feature na ito</translation>
 <translation id="8407011429883244666">Isara ang player.</translation>
 <translation id="8462210863277153423">Ia-upload ang iyong URL kasama ng feedback sa pagpapahusay ng kalidad at pananaliksik.</translation>
 <translation id="8481839122437406573">Kalmado</translation>
diff --git a/chrome/browser/readaloud/android/resources/translations/android_readaloud_strings_fr-CA.xtb b/chrome/browser/readaloud/android/resources/translations/android_readaloud_strings_fr-CA.xtb
index 33b52af..f0b8678 100644
--- a/chrome/browser/readaloud/android/resources/translations/android_readaloud_strings_fr-CA.xtb
+++ b/chrome/browser/readaloud/android/resources/translations/android_readaloud_strings_fr-CA.xtb
@@ -31,6 +31,7 @@
 <translation id="4525525184005340968">Vallée</translation>
 <translation id="4710974520964166851">Détendu</translation>
 <translation id="4773921449011281499">Paisible</translation>
+<translation id="4867493576811701175">Bouton « J'aime » : sélectionner pour envoyer un commentaire indiquant que vous aimez cette fonctionnalité</translation>
 <translation id="4872475766448853257">Reculer de <ph name="NUMBER_OF_SECONDS" /> secondes</translation>
 <translation id="4967513477347430212">Côte</translation>
 <translation id="5026371835667036198">Éclatant</translation>
@@ -61,6 +62,7 @@
 <translation id="8136852699834914183">La lecture n'est pas accessible pour cette page.</translation>
 <translation id="8198036737896977997">Air</translation>
 <translation id="8264989794233974275">Augmenter/diminuer la vitesse de <ph name="PLAYBACK_SPEED" />x</translation>
+<translation id="837054959055425654">Bouton « Je n'aime pas » : sélectionner pour ouvrir un formulaire permettant de donner des commentaires détaillés sur un problème lié à cette fonctionnalité</translation>
 <translation id="8407011429883244666">Fermer le lecteur</translation>
 <translation id="8462210863277153423">Votre URL sera téléversée avec les commentaires pour améliorer la qualité et la recherche.</translation>
 <translation id="8481839122437406573">Calme</translation>
diff --git a/chrome/browser/readaloud/android/resources/translations/android_readaloud_strings_fr.xtb b/chrome/browser/readaloud/android/resources/translations/android_readaloud_strings_fr.xtb
index e427568..1a73871b 100644
--- a/chrome/browser/readaloud/android/resources/translations/android_readaloud_strings_fr.xtb
+++ b/chrome/browser/readaloud/android/resources/translations/android_readaloud_strings_fr.xtb
@@ -31,6 +31,7 @@
 <translation id="4525525184005340968">Vallée</translation>
 <translation id="4710974520964166851">Détendue</translation>
 <translation id="4773921449011281499">Calme</translation>
+<translation id="4867493576811701175">Bouton "J'aime", sélectionner pour indiquer que vous aimez cette fonctionnalité</translation>
 <translation id="4872475766448853257">Revenir en arrière de <ph name="NUMBER_OF_SECONDS" /> secondes</translation>
 <translation id="4967513477347430212">Côte</translation>
 <translation id="5026371835667036198">Lumineux</translation>
@@ -61,6 +62,7 @@
 <translation id="8136852699834914183">La lecture n'est pas disponible pour cette page.</translation>
 <translation id="8198036737896977997">Air</translation>
 <translation id="8264989794233974275">Augmenter/Diminuer la vitesse de <ph name="PLAYBACK_SPEED" />.</translation>
+<translation id="837054959055425654">Bouton "Je n'aime pas", sélectionner pour ouvrir un formulaire où vous pourrez fournir des commentaires détaillés sur un problème lié à cette fonctionnalité</translation>
 <translation id="8407011429883244666">Fermer le lecteur.</translation>
 <translation id="8462210863277153423">Votre URL sera importée avec les commentaires afin d'améliorer la qualité et la recherche.</translation>
 <translation id="8481839122437406573">Calme</translation>
diff --git a/chrome/browser/readaloud/android/resources/translations/android_readaloud_strings_gl.xtb b/chrome/browser/readaloud/android/resources/translations/android_readaloud_strings_gl.xtb
index 279d8635..b2982850 100644
--- a/chrome/browser/readaloud/android/resources/translations/android_readaloud_strings_gl.xtb
+++ b/chrome/browser/readaloud/android/resources/translations/android_readaloud_strings_gl.xtb
@@ -31,6 +31,7 @@
 <translation id="4525525184005340968">Val</translation>
 <translation id="4710974520964166851">Relaxada</translation>
 <translation id="4773921449011281499">Tranquila</translation>
+<translation id="4867493576811701175">Botón Gústame; seleccionar para indicar que che gusta esta función</translation>
 <translation id="4872475766448853257">Retroceder <ph name="NUMBER_OF_SECONDS" /> segundos</translation>
 <translation id="4967513477347430212">Costa</translation>
 <translation id="5026371835667036198">Alegre</translation>
@@ -61,6 +62,7 @@
 <translation id="8136852699834914183">A reprodución non está dispoñible para esta páxina.</translation>
 <translation id="8198036737896977997">Aire</translation>
 <translation id="8264989794233974275">Aumentar ou diminuír a velocidade a <ph name="PLAYBACK_SPEED" />x.</translation>
+<translation id="837054959055425654">Botón Non me gusta; seleccionar para abrir un formulario e fornecer comentarios detallados sobre un problema con esta función</translation>
 <translation id="8407011429883244666">Pechar o reprodutor.</translation>
 <translation id="8462210863277153423">O URL cargarase cos comentarios para mellorar a calidade e a investigación.</translation>
 <translation id="8481839122437406573">Queda</translation>
diff --git a/chrome/browser/readaloud/android/resources/translations/android_readaloud_strings_gu.xtb b/chrome/browser/readaloud/android/resources/translations/android_readaloud_strings_gu.xtb
index feeb588..a5c39e5 100644
--- a/chrome/browser/readaloud/android/resources/translations/android_readaloud_strings_gu.xtb
+++ b/chrome/browser/readaloud/android/resources/translations/android_readaloud_strings_gu.xtb
@@ -31,6 +31,7 @@
 <translation id="4525525184005340968">ડેલ</translation>
 <translation id="4710974520964166851">હળવો</translation>
 <translation id="4773921449011281499">શાંતિપૂર્ણ</translation>
+<translation id="4867493576811701175">થમ્બ્સ અપ બટન, તમને આ સુવિધા ગમે છે તેવો પ્રતિસાદ સબમિટ કરવા માટે પસંદ કરો</translation>
 <translation id="4872475766448853257"><ph name="NUMBER_OF_SECONDS" /> સેકન્ડ પાછળ જાઓ</translation>
 <translation id="4967513477347430212">દરિયાકિનારો</translation>
 <translation id="5026371835667036198">તેજસ્વી</translation>
@@ -61,6 +62,7 @@
 <translation id="8136852699834914183">આ પેજ માટે પ્લેબૅક સુવિધા ઉપલબ્ધ નથી.</translation>
 <translation id="8198036737896977997">હવા</translation>
 <translation id="8264989794233974275"><ph name="PLAYBACK_SPEED" />x સ્પીડ વધારો/ઘટાડો.</translation>
+<translation id="837054959055425654">થમ્બ્સ ડાઉન બટન, આ સુવિધા સંબંધિત સમસ્યા વિશે વિગતવાર પ્રતિસાદ આપવા કોઈ ફોર્મ ખોલવા માટે પસંદ કરો</translation>
 <translation id="8407011429883244666">પ્લેયર બંધ કરો.</translation>
 <translation id="8462210863277153423">ક્વૉલિટી અને રિસર્ચને બહેતર બનાવવા માટે પ્રતિસાદ સાથે તમારું URL અપલોડ કરવામાં આવશે.</translation>
 <translation id="8481839122437406573">શાંત</translation>
diff --git a/chrome/browser/readaloud/android/resources/translations/android_readaloud_strings_hi.xtb b/chrome/browser/readaloud/android/resources/translations/android_readaloud_strings_hi.xtb
index 3603a97..55f36bd 100644
--- a/chrome/browser/readaloud/android/resources/translations/android_readaloud_strings_hi.xtb
+++ b/chrome/browser/readaloud/android/resources/translations/android_readaloud_strings_hi.xtb
@@ -31,6 +31,7 @@
 <translation id="4525525184005340968">डेल</translation>
 <translation id="4710974520964166851">रिलैक्स्ड टोन वाली आवाज़</translation>
 <translation id="4773921449011281499">शांति देने वाली आवाज़</translation>
+<translation id="4867493576811701175">'पसंद है' बटन. आपको यह सुविधा पसंद आई, यह बताने के लिए इसे चुनें</translation>
 <translation id="4872475766448853257"><ph name="NUMBER_OF_SECONDS" /> सेकंड पीछे जाएं</translation>
 <translation id="4967513477347430212">कोस्ट</translation>
 <translation id="5026371835667036198">साफ़ आवाज़</translation>
@@ -61,6 +62,7 @@
 <translation id="8136852699834914183">इस पेज के लिए वीडियो चलाने की सुविधा उपलब्ध नहीं है.</translation>
 <translation id="8198036737896977997">एयर</translation>
 <translation id="8264989794233974275">प्लेयर की स्पीड को <ph name="PLAYBACK_SPEED" /> गुना बढ़ाएं या कम करें.</translation>
+<translation id="837054959055425654">'पसंद नहीं है' बटन. इस सुविधा से जुड़ी किसी समस्या के बारे में बताने के लिए, फ़ॉर्म खोलें और उसमें इस समस्या के बारे में पूरी जानकारी दें</translation>
 <translation id="8407011429883244666">प्लेयर बंद करें.</translation>
 <translation id="8462210863277153423">क्वालिटी और रिसर्च को बेहतर बनाने के लिए, कॉन्टेंट के यूआरएल को सुझाव, शिकायत या राय के साथ अपलोड किया जाएगा.</translation>
 <translation id="8481839122437406573">शांत टोन वाली आवाज़</translation>
diff --git a/chrome/browser/readaloud/android/resources/translations/android_readaloud_strings_hr.xtb b/chrome/browser/readaloud/android/resources/translations/android_readaloud_strings_hr.xtb
index 27e4551..dcb3f4bd 100644
--- a/chrome/browser/readaloud/android/resources/translations/android_readaloud_strings_hr.xtb
+++ b/chrome/browser/readaloud/android/resources/translations/android_readaloud_strings_hr.xtb
@@ -31,6 +31,7 @@
 <translation id="4525525184005340968">Dolina</translation>
 <translation id="4710974520964166851">Opušten</translation>
 <translation id="4773921449011281499">Miran</translation>
+<translation id="4867493576811701175">Gumb Palac gore: odaberite da biste poslali povratne informacije da vam se značajka sviđa</translation>
 <translation id="4872475766448853257">Vraćanje <ph name="NUMBER_OF_SECONDS" /> s unatrag</translation>
 <translation id="4967513477347430212">Obala</translation>
 <translation id="5026371835667036198">Vedar</translation>
@@ -61,6 +62,7 @@
 <translation id="8136852699834914183">Reprodukcija nije dostupna za ovu stranicu.</translation>
 <translation id="8198036737896977997">Zrak</translation>
 <translation id="8264989794233974275"><ph name="PLAYBACK_SPEED" />x povećanje/smanjenje brzine.</translation>
+<translation id="837054959055425654">Gumb Palac dolje: odaberite da biste otvorili obrazac za pružanje detaljnih povratnih informacija o problemu sa značajkom</translation>
 <translation id="8407011429883244666">Zatvori player.</translation>
 <translation id="8462210863277153423">Vaš će se URL prenijeti s povratnim informacijama radi poboljšanja kvalitete i istraživanja.</translation>
 <translation id="8481839122437406573">Miran</translation>
diff --git a/chrome/browser/readaloud/android/resources/translations/android_readaloud_strings_hy.xtb b/chrome/browser/readaloud/android/resources/translations/android_readaloud_strings_hy.xtb
index eb94855..8b74917 100644
--- a/chrome/browser/readaloud/android/resources/translations/android_readaloud_strings_hy.xtb
+++ b/chrome/browser/readaloud/android/resources/translations/android_readaloud_strings_hy.xtb
@@ -31,6 +31,7 @@
 <translation id="4525525184005340968">Հովիտ</translation>
 <translation id="4710974520964166851">Հանդարտ</translation>
 <translation id="4773921449011281499">Խաղաղ</translation>
+<translation id="4867493576811701175">«Լավն է» կոճակ․ ընտրեք՝ հայտնելու, որ դուք հավանում եք այս գործառույթը</translation>
 <translation id="4872475766448853257"><ph name="NUMBER_OF_SECONDS" /> վայրկյան հետ գնալ</translation>
 <translation id="4967513477347430212">Ափ</translation>
 <translation id="5026371835667036198">Կենսուրախ</translation>
@@ -61,6 +62,7 @@
 <translation id="8136852699834914183">Այս էջի համար նվագարկումը հասանելի չէ։</translation>
 <translation id="8198036737896977997">Օդ</translation>
 <translation id="8264989794233974275">Ավելացնել/նվազեցնել արագությունը <ph name="PLAYBACK_SPEED" /> անգամ։</translation>
+<translation id="837054959055425654">«Վատն է» կոճակ․ ընտրեք՝ ձևը բացելու և գործառույթի հետ կապված խնդրի մասին մանրամասն կարծիք հայտնելու համար</translation>
 <translation id="8407011429883244666">Փակել նվագարկիչը։</translation>
 <translation id="8462210863277153423">Ձեր URL-ը կվերբեռնվի կարծիքի հետ՝ որակի բարելավման և հետազոտությունների համար։</translation>
 <translation id="8481839122437406573">Հանգիստ</translation>
diff --git a/chrome/browser/readaloud/android/resources/translations/android_readaloud_strings_id.xtb b/chrome/browser/readaloud/android/resources/translations/android_readaloud_strings_id.xtb
index 71ebd5f..7acf8b0 100644
--- a/chrome/browser/readaloud/android/resources/translations/android_readaloud_strings_id.xtb
+++ b/chrome/browser/readaloud/android/resources/translations/android_readaloud_strings_id.xtb
@@ -31,6 +31,7 @@
 <translation id="4525525184005340968">Lembah</translation>
 <translation id="4710974520964166851">Santai</translation>
 <translation id="4773921449011281499">Damai</translation>
+<translation id="4867493576811701175">Tombol suka, pilih untuk mengirim masukan bahwa Anda menyukai fitur ini</translation>
 <translation id="4872475766448853257">Mundur <ph name="NUMBER_OF_SECONDS" /> detik</translation>
 <translation id="4967513477347430212">Pesisir</translation>
 <translation id="5026371835667036198">Ceria</translation>
@@ -61,6 +62,7 @@
 <translation id="8136852699834914183">Pemutaran tidak tersedia untuk halaman ini.</translation>
 <translation id="8198036737896977997">Udara</translation>
 <translation id="8264989794233974275">Tingkatkan/kurangi kecepatan <ph name="PLAYBACK_SPEED" />x lipat.</translation>
+<translation id="837054959055425654">Tombol tidak suka, pilih untuk membuka formulir guna memberi masukan mendetail tentang masalah terkait fitur ini</translation>
 <translation id="8407011429883244666">Tutup pemutar.</translation>
 <translation id="8462210863277153423">URL Anda akan diupload dengan masukan untuk meningkatkan kualitas dan riset.</translation>
 <translation id="8481839122437406573">Tenang</translation>
diff --git a/chrome/browser/readaloud/android/resources/translations/android_readaloud_strings_is.xtb b/chrome/browser/readaloud/android/resources/translations/android_readaloud_strings_is.xtb
index ca7bd69e..0e1b22b 100644
--- a/chrome/browser/readaloud/android/resources/translations/android_readaloud_strings_is.xtb
+++ b/chrome/browser/readaloud/android/resources/translations/android_readaloud_strings_is.xtb
@@ -31,6 +31,7 @@
 <translation id="4525525184005340968">Dalur</translation>
 <translation id="4710974520964166851">Róleg</translation>
 <translation id="4773921449011281499">Friðsæl</translation>
+<translation id="4867493576811701175">Hnappurinn „Þumall upp“, veldu til að senda inn þau viðbrögð að þér líki við þennan eiginleika</translation>
 <translation id="4872475766448853257">Spóla til baka um <ph name="NUMBER_OF_SECONDS" /> sek.</translation>
 <translation id="4967513477347430212">Strönd</translation>
 <translation id="5026371835667036198">Björt</translation>
@@ -61,6 +62,7 @@
 <translation id="8136852699834914183">Spilun er ekki í boði fyrir þessa síðu.</translation>
 <translation id="8198036737896977997">Loft</translation>
 <translation id="8264989794233974275">Auka/minnka hraða <ph name="PLAYBACK_SPEED" />x</translation>
+<translation id="837054959055425654">Hnappurinn „Þumall niður“, veldu til að opna eyðublað til að gefa ítarlegar ábendingar um vandamál varðandi þennan eiginleika.</translation>
 <translation id="8407011429883244666">Loka spilara.</translation>
 <translation id="8462210863277153423">Vefslóðinni þinni verður hlaðið upp ásamt ábendingunni í því skyni að auka gæði og bæta rannsóknir.</translation>
 <translation id="8481839122437406573">Yfirveguð</translation>
diff --git a/chrome/browser/readaloud/android/resources/translations/android_readaloud_strings_iw.xtb b/chrome/browser/readaloud/android/resources/translations/android_readaloud_strings_iw.xtb
index ed80434..64d763b 100644
--- a/chrome/browser/readaloud/android/resources/translations/android_readaloud_strings_iw.xtb
+++ b/chrome/browser/readaloud/android/resources/translations/android_readaloud_strings_iw.xtb
@@ -4,7 +4,7 @@
 <translation id="1173075331199604451">תפריט ההפעלה הקולית</translation>
 <translation id="1178581264944972037">השהיה</translation>
 <translation id="1246424317317450637">מודגש</translation>
-<translation id="1357114957607379632">‏המערכת יוצרת סקירה קולית באמצעות AI…</translation>
+<translation id="1357114957607379632">המערכת יוצרת סקירה קולית…</translation>
 <translation id="1483137792530497944">נהר</translation>
 <translation id="1586836055630070874">רגוע</translation>
 <translation id="1639239467298939599">בטעינה</translation>
@@ -19,7 +19,7 @@
 <translation id="2611765907167846862">שלֵו</translation>
 <translation id="3023502830214299618">לצערנו, ההקראה לא זמינה בדף הזה כרגע. אפשר לנסות שוב מאוחר יותר.</translation>
 <translation id="3493899379487634969">מה השתבש?</translation>
-<translation id="3730775656877876887">‏המערכת יוצרת סקירה קולית באמצעות AI</translation>
+<translation id="3730775656877876887">המערכת יוצרת סקירה קולית</translation>
 <translation id="3778044272390020426">תפריט אפשרויות למשוב שלילי</translation>
 <translation id="3807208219231826020">בחירת מיקום בהפעלה</translation>
 <translation id="385051799172605136">חזרה</translation>
@@ -31,12 +31,13 @@
 <translation id="4525525184005340968">דייל</translation>
 <translation id="4710974520964166851">נינוח</translation>
 <translation id="4773921449011281499">חסר דאגה</translation>
+<translation id="4867493576811701175">כפתור "אהבתי", צריך לבחור בו כדי לשלוח משוב שאהבת את התכונה הזו</translation>
 <translation id="4872475766448853257">הרצה של <ph name="NUMBER_OF_SECONDS" /> שניות אחורה</translation>
 <translation id="4967513477347430212">קואסט</translation>
 <translation id="5026371835667036198">צלול</translation>
 <translation id="5234971936051226002">הנגן 'האזנה לדף הזה' ממוזער.</translation>
 <translation id="5251803541071282808">ענן</translation>
-<translation id="5528503854289436485">‏השמעת סקירה קולית באמצעות AI</translation>
+<translation id="5528503854289436485">השמעת סקירה קולית</translation>
 <translation id="5596627076506792578">אפשרויות נוספות</translation>
 <translation id="565342223183747919">אפשר ללחוץ כדי לשנות את מצב ההפעלה</translation>
 <translation id="5694491020339060116">תפריט מהירות ההפעלה</translation>
@@ -61,6 +62,7 @@
 <translation id="8136852699834914183">ההפעלה לא זמינה בדף הזה.</translation>
 <translation id="8198036737896977997">אייר</translation>
 <translation id="8264989794233974275">הגברה או הפחתה של המהירות פי <ph name="PLAYBACK_SPEED" />.</translation>
+<translation id="837054959055425654">כפתור "לא אהבתי"', צריך לבחור בו כדי לפתוח טופס למשוב מפורט על בעיה בתכונה הזו</translation>
 <translation id="8407011429883244666">סגירת הנגן.</translation>
 <translation id="8462210863277153423">‏כתובת ה-URL שלך תישלח עם המשוב כדי לשפר את האיכות והמחקר.</translation>
 <translation id="8481839122437406573">רגוע</translation>
diff --git a/chrome/browser/readaloud/android/resources/translations/android_readaloud_strings_kk.xtb b/chrome/browser/readaloud/android/resources/translations/android_readaloud_strings_kk.xtb
index 3b5308d..a34b31d 100644
--- a/chrome/browser/readaloud/android/resources/translations/android_readaloud_strings_kk.xtb
+++ b/chrome/browser/readaloud/android/resources/translations/android_readaloud_strings_kk.xtb
@@ -31,6 +31,7 @@
 <translation id="4525525184005340968">Алқап</translation>
 <translation id="4710974520964166851">Бәсең</translation>
 <translation id="4773921449011281499">Байыпты</translation>
+<translation id="4867493576811701175">"Ұнайды" түймесі. Сізге бұл функция ұнағаны туралы пікір жіберу үшін басыңыз</translation>
 <translation id="4872475766448853257"><ph name="NUMBER_OF_SECONDS" /> секунд артқа оралу</translation>
 <translation id="4967513477347430212">Жағалау</translation>
 <translation id="5026371835667036198">Жарқын</translation>
@@ -61,6 +62,7 @@
 <translation id="8136852699834914183">Бұл бетте ойнату функциясы қолжетімді емес.</translation>
 <translation id="8198036737896977997">Ауа</translation>
 <translation id="8264989794233974275">Жылдамдықты <ph name="PLAYBACK_SPEED" /> есе арттыру/азайту.</translation>
+<translation id="837054959055425654">"Ұнамайды" түймесі. Бұл функцияға қатысты мәселе туралы толық пікір жіберуге арналған үлгіні ашу үшін басыңыз</translation>
 <translation id="8407011429883244666">Ойнатқышты жабу.</translation>
 <translation id="8462210863277153423">Сапа мен зерттеу қызметін жақсарту үшін URL мекенжайыңыз пікірмен бірге жүктеп салынады.</translation>
 <translation id="8481839122437406573">Сабырлы</translation>
diff --git a/chrome/browser/readaloud/android/resources/translations/android_readaloud_strings_kn.xtb b/chrome/browser/readaloud/android/resources/translations/android_readaloud_strings_kn.xtb
index 56752e7..5e00ca8 100644
--- a/chrome/browser/readaloud/android/resources/translations/android_readaloud_strings_kn.xtb
+++ b/chrome/browser/readaloud/android/resources/translations/android_readaloud_strings_kn.xtb
@@ -31,6 +31,7 @@
 <translation id="4525525184005340968">ಡೇಲ್</translation>
 <translation id="4710974520964166851">ಆರಾಮದಾಯಕ</translation>
 <translation id="4773921449011281499">ಶಾಂತಿಯುತ ಟೋನ್‌</translation>
+<translation id="4867493576811701175">ಥಂಬ್ಸ್ ಅಪ್ ಬಟನ್, ಈ ಫೀಚರ್ ಅನ್ನು ನೀವು ಇಷ್ಟಪಡುವ ಫೀಡ್‌ಬ್ಯಾಕ್ ಅನ್ನು ಸಲ್ಲಿಸಲು ಆಯ್ಕೆಮಾಡಿ</translation>
 <translation id="4872475766448853257"><ph name="NUMBER_OF_SECONDS" /> ಸೆಕೆಂಡ್‌ಗಳಷ್ಟು ಹಿಂದಕ್ಕೆ ಹೋಗಿ</translation>
 <translation id="4967513477347430212">ಕರಾವಳಿ ತೀರ</translation>
 <translation id="5026371835667036198">ಬ್ರೈಟ್ ಟೋನ್‌</translation>
@@ -61,6 +62,7 @@
 <translation id="8136852699834914183">ಈ ಪುಟಕ್ಕೆ ಪ್ಲೇಬ್ಯಾಕ್ ಲಭ್ಯವಿಲ್ಲ.</translation>
 <translation id="8198036737896977997">ಗಾಳಿ</translation>
 <translation id="8264989794233974275">ಪ್ಲೇಬ್ಯಾಕ್ ವೇಗವನ್ನು <ph name="PLAYBACK_SPEED" />x ನಷ್ಟು ಹೆಚ್ಚು/ಕಡಿಮೆ ಮಾಡಿ.</translation>
+<translation id="837054959055425654">ಈ ಫೀಚರ್ ಜೊತೆಗಿನ ಸಮಸ್ಯೆಯ ಕುರಿತು ವಿವರವಾದ ಫೀಡ್‌ಬ್ಯಾಕ್ ಅನ್ನು ಒದಗಿಸಲು ಫಾರ್ಮ್ ತೆರೆಯಲು ಥಂಬ್ಸ್ ಡೌನ್ ಬಟನ್ ಆಯ್ಕೆಮಾಡಿ</translation>
 <translation id="8407011429883244666">ಪ್ಲೇಯರ್ ಅನ್ನು ಮುಚ್ಚಿ.</translation>
 <translation id="8462210863277153423">ಗುಣಮಟ್ಟ ಮತ್ತು ಸಂಶೋಧನೆಯನ್ನು ಸುಧಾರಿಸಲು ನಿಮ್ಮ URL ಅನ್ನು ಫೀಡ್‌ಬ್ಯಾಕ್ ಜೊತೆಗೆ ಅಪ್‌ಲೋಡ್ ಮಾಡಲಾಗುತ್ತದೆ.</translation>
 <translation id="8481839122437406573">ಶಾಂತ</translation>
diff --git a/chrome/browser/readaloud/android/resources/translations/android_readaloud_strings_ko.xtb b/chrome/browser/readaloud/android/resources/translations/android_readaloud_strings_ko.xtb
index 8077680f..74ac2d5 100644
--- a/chrome/browser/readaloud/android/resources/translations/android_readaloud_strings_ko.xtb
+++ b/chrome/browser/readaloud/android/resources/translations/android_readaloud_strings_ko.xtb
@@ -31,6 +31,7 @@
 <translation id="4525525184005340968">계곡</translation>
 <translation id="4710974520964166851">편안함</translation>
 <translation id="4773921449011281499">평화롭게</translation>
+<translation id="4867493576811701175">좋아요 버튼, 이 기능이 마음에 든다는 의견을 제출하려면 선택하세요</translation>
 <translation id="4872475766448853257"><ph name="NUMBER_OF_SECONDS" />초 뒤로 이동합니다.</translation>
 <translation id="4967513477347430212">해안</translation>
 <translation id="5026371835667036198">밝게</translation>
@@ -61,6 +62,7 @@
 <translation id="8136852699834914183">이 페이지는 재생할 수 없습니다.</translation>
 <translation id="8198036737896977997">바람</translation>
 <translation id="8264989794233974275">속도를 <ph name="PLAYBACK_SPEED" />배 높이거나 줄입니다.</translation>
+<translation id="837054959055425654">싫어요 버튼, 양식을 열어 이 기능의 문제에 관한 자세한 의견을 제출하려면 선택하세요</translation>
 <translation id="8407011429883244666">플레이어를 닫습니다.</translation>
 <translation id="8462210863277153423">품질 및 연구 개선을 위해 URL이 의견과 함께 업로드됩니다.</translation>
 <translation id="8481839122437406573">침착함</translation>
diff --git a/chrome/browser/readaloud/android/resources/translations/android_readaloud_strings_ky.xtb b/chrome/browser/readaloud/android/resources/translations/android_readaloud_strings_ky.xtb
index 8146d4e..cd950585 100644
--- a/chrome/browser/readaloud/android/resources/translations/android_readaloud_strings_ky.xtb
+++ b/chrome/browser/readaloud/android/resources/translations/android_readaloud_strings_ky.xtb
@@ -31,6 +31,7 @@
 <translation id="4525525184005340968">Өрөөн</translation>
 <translation id="4710974520964166851">Жай</translation>
 <translation id="4773921449011281499">Бейпил</translation>
+<translation id="4867493576811701175">Жакты баскычы. Бул функцияны эмне үчүн жактырганыңыз тууралуу пикир билдирүү үчүн аны басыңыз</translation>
 <translation id="4872475766448853257"><ph name="NUMBER_OF_SECONDS" /> секунд артка түрдүрүү</translation>
 <translation id="4967513477347430212">Жээк</translation>
 <translation id="5026371835667036198">Жарык</translation>
@@ -61,6 +62,7 @@
 <translation id="8136852699834914183">Бул бетте ойнотууга болбойт.</translation>
 <translation id="8198036737896977997">Аба</translation>
 <translation id="8264989794233974275">Ылдамдыкты <ph name="PLAYBACK_SPEED" /> эсе көбөйтүү/азайтуу.</translation>
+<translation id="837054959055425654">Жаккан жок баскычы. Бул функцияга байланыштуу маселе тууралуу толук пикир билдирүү формасын ачуу үчүн аны басыңыз</translation>
 <translation id="8407011429883244666">Ойноткучту жабуу.</translation>
 <translation id="8462210863277153423">Пикир менен бирге URL дареги жүктөлүп берилет. Бул изилдөө жүргүзүүгө жана кызматтын сапатын жакшыртууга жардам берет.</translation>
 <translation id="8481839122437406573">Жай</translation>
diff --git a/chrome/browser/readaloud/android/resources/translations/android_readaloud_strings_lo.xtb b/chrome/browser/readaloud/android/resources/translations/android_readaloud_strings_lo.xtb
index ab225d6..11ac2933 100644
--- a/chrome/browser/readaloud/android/resources/translations/android_readaloud_strings_lo.xtb
+++ b/chrome/browser/readaloud/android/resources/translations/android_readaloud_strings_lo.xtb
@@ -31,6 +31,7 @@
 <translation id="4525525184005340968">ຫຸບເຂົາ</translation>
 <translation id="4710974520964166851">ຜ່ອນຄາຍ</translation>
 <translation id="4773921449011281499">ງຽບສະຫງົບ</translation>
+<translation id="4867493576811701175">ປຸ່ມມັກ, ເລືອກເພື່ອສົ່ງຄຳຕິຊົມວ່າທ່ານມັກຄຸນສົມບັດນີ້</translation>
 <translation id="4872475766448853257">ກັບໄປ <ph name="NUMBER_OF_SECONDS" /> ວິນາທີ</translation>
 <translation id="4967513477347430212">ແຄມຝັ່ງ</translation>
 <translation id="5026371835667036198">ສົດໃສ</translation>
@@ -61,6 +62,7 @@
 <translation id="8136852699834914183">ບໍ່ສາມາດໃຊ້ການຫຼິ້ນສຳລັບໜ້ານີ້ໄດ້.</translation>
 <translation id="8198036737896977997">ອາກາດ</translation>
 <translation id="8264989794233974275"><ph name="PLAYBACK_SPEED" />x ເພີ່ມ/ຫຼຸດຄວາມໄວ.</translation>
+<translation id="837054959055425654">ປຸ່ມບໍ່ມັກ, ເລືອກເພື່ອເປີດແບບຟອມສຳລັບສະແດງຄຳຕິຊົມໂດຍລະອຽດກ່ຽວກັບບັນຫາຂອງຄຸນສົມບັດນີ້</translation>
 <translation id="8407011429883244666">ປິດຕົວຫຼິ້ນ.</translation>
 <translation id="8462210863277153423">URL ຂອງທ່ານຈະຖືກອັບໂຫຼດພ້ອມກັບຄຳຕິຊົມເພື່ອປັບປຸງຄຸນນະພາບ ແລະ ການຄົ້ນຄວ້າ.</translation>
 <translation id="8481839122437406573">ງຽບ</translation>
diff --git a/chrome/browser/readaloud/android/resources/translations/android_readaloud_strings_lt.xtb b/chrome/browser/readaloud/android/resources/translations/android_readaloud_strings_lt.xtb
index 3f3cab4..ef24b9c 100644
--- a/chrome/browser/readaloud/android/resources/translations/android_readaloud_strings_lt.xtb
+++ b/chrome/browser/readaloud/android/resources/translations/android_readaloud_strings_lt.xtb
@@ -31,6 +31,7 @@
 <translation id="4525525184005340968">Slėnis</translation>
 <translation id="4710974520964166851">Ne pagal laiką</translation>
 <translation id="4773921449011281499">Ramus</translation>
+<translation id="4867493576811701175">Mygtukas „Patinka“; pasirinkite, kad pateiktumėte atsiliepimą apie tai, jog jums patinka ši funkcija</translation>
 <translation id="4872475766448853257">Grįžti <ph name="NUMBER_OF_SECONDS" /> sek.</translation>
 <translation id="4967513477347430212">Pakrantė</translation>
 <translation id="5026371835667036198">Ryškus</translation>
@@ -61,6 +62,7 @@
 <translation id="8136852699834914183">Šio puslapio negalima atkurti.</translation>
 <translation id="8198036737896977997">Oras</translation>
 <translation id="8264989794233974275"><ph name="PLAYBACK_SPEED" /> k. padidinti / sumažinti spartą.</translation>
+<translation id="837054959055425654">Mygtukas „Nepatinka“; pasirinkite, kad atidarytumėte formą ir pateiktumėte išsamų atsiliepimą apie problemą, susijusią su šia funkcija</translation>
 <translation id="8407011429883244666">Uždaryti leistuvę.</translation>
 <translation id="8462210863277153423">Jūsų URL bus įkeltas su atsiliepimu, siekiant pagerinti kokybę ir tyrimus.</translation>
 <translation id="8481839122437406573">Ramus</translation>
diff --git a/chrome/browser/readaloud/android/resources/translations/android_readaloud_strings_lv.xtb b/chrome/browser/readaloud/android/resources/translations/android_readaloud_strings_lv.xtb
index b81b61d..ecbc23e 100644
--- a/chrome/browser/readaloud/android/resources/translations/android_readaloud_strings_lv.xtb
+++ b/chrome/browser/readaloud/android/resources/translations/android_readaloud_strings_lv.xtb
@@ -31,6 +31,7 @@
 <translation id="4525525184005340968">Ieleja</translation>
 <translation id="4710974520964166851">Nesteidzīgs tonis</translation>
 <translation id="4773921449011281499">Mierīgs</translation>
+<translation id="4867493576811701175">Poga “Patīk”; atlasiet to, lai iesniegtu atsauksmi, ka jums patīk šī funkcija</translation>
 <translation id="4872475766448853257">Pāriet atpakaļ par <ph name="NUMBER_OF_SECONDS" /> s</translation>
 <translation id="4967513477347430212">Krasts</translation>
 <translation id="5026371835667036198">Pacilājošs</translation>
@@ -61,6 +62,7 @@
 <translation id="8136852699834914183">Atskaņošana šai lapai nav pieejama.</translation>
 <translation id="8198036737896977997">Gaiss</translation>
 <translation id="8264989794233974275">Palielināt/samazināt ātrumu <ph name="PLAYBACK_SPEED" /> reizes</translation>
+<translation id="837054959055425654">Poga “Nepatīk”; atlasiet to, lai atvērtu veidlapu un sniegtu detalizētu atsauksmi par problēmu saistībā ar šo funkciju</translation>
 <translation id="8407011429883244666">Aizvērt atskaņotāju</translation>
 <translation id="8462210863277153423">Jūsu URL tiks augšupielādēts kopā ar atsauksmēm, lai uzlabotu kvalitāti un veiktu izpēti.</translation>
 <translation id="8481839122437406573">Mierīgs tonis</translation>
diff --git a/chrome/browser/readaloud/android/resources/translations/android_readaloud_strings_mk.xtb b/chrome/browser/readaloud/android/resources/translations/android_readaloud_strings_mk.xtb
index 82e1fb8..10b905c 100644
--- a/chrome/browser/readaloud/android/resources/translations/android_readaloud_strings_mk.xtb
+++ b/chrome/browser/readaloud/android/resources/translations/android_readaloud_strings_mk.xtb
@@ -31,6 +31,7 @@
 <translation id="4525525184005340968">Долина</translation>
 <translation id="4710974520964166851">Релаксиран</translation>
 <translation id="4773921449011281499">Мирен</translation>
+<translation id="4867493576811701175">Копче „Ми се допаѓа“, изберете за да испратите повратни информации дека ви се допаѓа функцијава</translation>
 <translation id="4872475766448853257">Премотај назад <ph name="NUMBER_OF_SECONDS" /> секунди</translation>
 <translation id="4967513477347430212">Брег</translation>
 <translation id="5026371835667036198">Јасен</translation>
@@ -61,6 +62,7 @@
 <translation id="8136852699834914183">Репродукцијата е недостапна за страницава.</translation>
 <translation id="8198036737896977997">Воздух</translation>
 <translation id="8264989794233974275"><ph name="PLAYBACK_SPEED" /> пати зголемена/намалена брзина.</translation>
+<translation id="837054959055425654">Копче „Не ми се допаѓа“, изберете за да се отвори формулар за да наведете детални повратни информации за проблем со функцијава</translation>
 <translation id="8407011429883244666">Затвори го плеерот.</translation>
 <translation id="8462210863277153423">Вашата URL-адреса ќе се прикачи со повратните информации за да се подобрат квалитетот и истражувањето.</translation>
 <translation id="8481839122437406573">Тивок</translation>
diff --git a/chrome/browser/readaloud/android/resources/translations/android_readaloud_strings_mn.xtb b/chrome/browser/readaloud/android/resources/translations/android_readaloud_strings_mn.xtb
index 2a95c0f..f98e622 100644
--- a/chrome/browser/readaloud/android/resources/translations/android_readaloud_strings_mn.xtb
+++ b/chrome/browser/readaloud/android/resources/translations/android_readaloud_strings_mn.xtb
@@ -31,6 +31,7 @@
 <translation id="4525525184005340968">Хөндий</translation>
 <translation id="4710974520964166851">Тайван</translation>
 <translation id="4773921449011281499">Намуун</translation>
+<translation id="4867493576811701175">"Сайн" товч. Танд энэ онцлог таалагдсан талаарх санал хүсэлтээ илгээх бол сонгоно уу</translation>
 <translation id="4872475766448853257"><ph name="NUMBER_OF_SECONDS" /> секунд ухраах</translation>
 <translation id="4967513477347430212">Далайн эрэг</translation>
 <translation id="5026371835667036198">Цовоо</translation>
@@ -61,6 +62,7 @@
 <translation id="8136852699834914183">Энэ хуудсанд дахин тоглуулах боломжгүй байна.</translation>
 <translation id="8198036737896977997">Агаар</translation>
 <translation id="8264989794233974275">Хурдыг <ph name="PLAYBACK_SPEED" /> дахин нэмэх/хасах.</translation>
+<translation id="837054959055425654">"Муу" товч. Энэ онцлогтой холбоотой асуудлын талаар нарийвчилсан санал хүсэлт өгөхөөр маягтыг нээх бол сонгоно уу</translation>
 <translation id="8407011429883244666">Тоглуулагчийг хаана уу.</translation>
 <translation id="8462210863277153423">Чанар, судалгааг сайжруулахын тулд таны URL-г санал хүсэлтийн хамт байршуулна.</translation>
 <translation id="8481839122437406573">Тайван</translation>
diff --git a/chrome/browser/readaloud/android/resources/translations/android_readaloud_strings_mr.xtb b/chrome/browser/readaloud/android/resources/translations/android_readaloud_strings_mr.xtb
index c5c51e18..5d710b21 100644
--- a/chrome/browser/readaloud/android/resources/translations/android_readaloud_strings_mr.xtb
+++ b/chrome/browser/readaloud/android/resources/translations/android_readaloud_strings_mr.xtb
@@ -31,6 +31,7 @@
 <translation id="4525525184005340968">डेल</translation>
 <translation id="4710974520964166851">निवांत टोन असलेला आवाज</translation>
 <translation id="4773921449011281499">शांत</translation>
+<translation id="4867493576811701175">थंब्स अप बटण, तुम्हाला हे वैशिष्ट्य आवडले आहे असा फीडबॅक सबमिट करण्यासाठी निवडा</translation>
 <translation id="4872475766448853257"><ph name="NUMBER_OF_SECONDS" /> सेकंद मागे जा</translation>
 <translation id="4967513477347430212">कोस्ट</translation>
 <translation id="5026371835667036198">उत्साही</translation>
@@ -61,6 +62,7 @@
 <translation id="8136852699834914183">या पेजसाठी प्लेबॅक उपलब्ध नाही.</translation>
 <translation id="8198036737896977997">एयर</translation>
 <translation id="8264989794233974275"><ph name="PLAYBACK_SPEED" />x वेग वाढवा/कमी करा.</translation>
+<translation id="837054959055425654">थंब्स डाउन बटण, या वैशिष्ट्यातील समस्येबद्दल तपशीलवार फीडबॅक देण्यासाठीचा फॉर्म उघडण्याकरिता निवडा</translation>
 <translation id="8407011429883244666">प्लेअर बंद करा.</translation>
 <translation id="8462210863277153423">गुणवत्ता आणि संशोधनामध्ये सुधारणा करण्याासाठी तुमची URL फीडबॅकसह अपलोड केली जाईल.</translation>
 <translation id="8481839122437406573">शांत टोन असलेला आवाज</translation>
diff --git a/chrome/browser/readaloud/android/resources/translations/android_readaloud_strings_my.xtb b/chrome/browser/readaloud/android/resources/translations/android_readaloud_strings_my.xtb
index d9ba33f..aa03e1f 100644
--- a/chrome/browser/readaloud/android/resources/translations/android_readaloud_strings_my.xtb
+++ b/chrome/browser/readaloud/android/resources/translations/android_readaloud_strings_my.xtb
@@ -31,6 +31,7 @@
 <translation id="4525525184005340968">Dale</translation>
 <translation id="4710974520964166851">သက်သောင့်သက်သာ</translation>
 <translation id="4773921449011281499">ငြိမ်းချမ်းသည်</translation>
+<translation id="4867493576811701175">လက်မထောင်ခလုတ်၊ ဤတူးလ်ကို နှစ်သက်ကြောင်း တုံ့ပြန်ချက်ပေးပို့ရန် ရွေးပါ</translation>
 <translation id="4872475766448853257"><ph name="NUMBER_OF_SECONDS" /> စက္ကန့် ပြန်သွားရန်</translation>
 <translation id="4967513477347430212">Coast</translation>
 <translation id="5026371835667036198">ကျယ်သည်</translation>
@@ -61,6 +62,7 @@
 <translation id="8136852699834914183">ဤစာမျက်နှာအတွက် ဖွင့်ခြင်း မရနိုင်ပါ။</translation>
 <translation id="8198036737896977997">Air</translation>
 <translation id="8264989794233974275">မြန်နှုန်း <ph name="PLAYBACK_SPEED" /> ဆ တိုး/လျှော့ရန်။</translation>
+<translation id="837054959055425654">လက်မအောက်စိုက်ခလုတ်၊ ဤတူးလ်နှင့်ပတ်သက်သော ပြဿနာအကြောင်း အသေးစိတ်တုံ့ပြန်ချက်ပေးသည့် ဖောင်ကိုဖွင့်ရန် ရွေးပါ</translation>
 <translation id="8407011429883244666">ပလေယာပိတ်ရန်။</translation>
 <translation id="8462210863277153423">အရည်အသွေးနှင့် သုတေသန ပိုကောင်းစေရန်အတွက် သင်၏ URL ကို အကြံပြုချက်နှင့်အတူ အပ်လုဒ်လုပ်ပါမည်။</translation>
 <translation id="8481839122437406573">ငြိမ်သက်</translation>
diff --git a/chrome/browser/readaloud/android/resources/translations/android_readaloud_strings_ne.xtb b/chrome/browser/readaloud/android/resources/translations/android_readaloud_strings_ne.xtb
index 2394197..dff1564 100644
--- a/chrome/browser/readaloud/android/resources/translations/android_readaloud_strings_ne.xtb
+++ b/chrome/browser/readaloud/android/resources/translations/android_readaloud_strings_ne.xtb
@@ -31,6 +31,7 @@
 <translation id="4525525184005340968">डेल</translation>
 <translation id="4710974520964166851">रिल्याक्स्ड</translation>
 <translation id="4773921449011281499">शान्त</translation>
+<translation id="4867493576811701175">थम्ज अप बटन, तपाईंलाई यो सुविधा मन परेको जनाउने प्रतिक्रिया पेस गर्नका निम्ति यो बटन चयन गर्नुहोस्</translation>
 <translation id="4872475766448853257"><ph name="NUMBER_OF_SECONDS" /> सेकेन्ड रिवाइन्ड गर्नुहोस्</translation>
 <translation id="4967513477347430212">कोस्ट</translation>
 <translation id="5026371835667036198">चहकिलो</translation>
@@ -61,6 +62,7 @@
 <translation id="8136852699834914183">यो पेजमा प्लेब्याक सुविधा उपलब्ध छैन।</translation>
 <translation id="8198036737896977997">एयर</translation>
 <translation id="8264989794233974275">गति <ph name="PLAYBACK_SPEED" /> गुणाले बढाउनुहोस् वा घटाउनुहोस्।</translation>
+<translation id="837054959055425654">थम्ज डाउन बटन, यो सुविधामा देखिएको कुनै समस्याका बारेमा विस्तृत प्रतिक्रिया पेस गर्नका निम्ति फाराम खोल्न यो बटन चयन गर्नुहोस्</translation>
 <translation id="8407011429883244666">प्लेयर बन्द गर्नुहोस्।</translation>
 <translation id="8462210863277153423">तपाईंको URL गुणस्तर सुधार्न र अनुसन्धान परिष्कृत गर्न सघाउने प्रतिक्रियासहित अपलोड गरिने छ।</translation>
 <translation id="8481839122437406573">शान्त</translation>
diff --git a/chrome/browser/readaloud/android/resources/translations/android_readaloud_strings_or.xtb b/chrome/browser/readaloud/android/resources/translations/android_readaloud_strings_or.xtb
index c86d8dc..f2da0c8a 100644
--- a/chrome/browser/readaloud/android/resources/translations/android_readaloud_strings_or.xtb
+++ b/chrome/browser/readaloud/android/resources/translations/android_readaloud_strings_or.xtb
@@ -31,6 +31,7 @@
 <translation id="4525525184005340968">ଡେଲ</translation>
 <translation id="4710974520964166851">ଆରାମ</translation>
 <translation id="4773921449011281499">ଶାନ୍ତିପୂର୍ଣ୍ଣ</translation>
+<translation id="4867493576811701175">ଥମ୍ବସ ଅପ ବଟନ, ଆପଣ ଏହି ଫିଚରକୁ ପସନ୍ଦ କରୁଥିବା ମତାମତ ଦାଖଲ କରିବା ପାଇଁ ଚୟନ କରନ୍ତୁ</translation>
 <translation id="4872475766448853257"><ph name="NUMBER_OF_SECONDS" /> ସେକେଣ୍ଡ ପଛକୁ ଫେରନ୍ତୁ</translation>
 <translation id="4967513477347430212">କୋଷ୍ଟ</translation>
 <translation id="5026371835667036198">ଉଜ୍ଜ୍ୱଳ</translation>
@@ -61,6 +62,7 @@
 <translation id="8136852699834914183">ଏହି ପୃଷ୍ଠା ପାଇଁ ପ୍ଲେବେକ ଉପଲବ୍ଧ ନାହିଁ।</translation>
 <translation id="8198036737896977997">ଏୟାର</translation>
 <translation id="8264989794233974275"><ph name="PLAYBACK_SPEED" />x ବଢ଼ାଇବା/କମାଇବା ସ୍ପିଡ।</translation>
+<translation id="837054959055425654">ଥମ୍ବସ ଡାଉନ ବଟନ, ଏହି ଫିଚର ସମ୍ବନ୍ଧୀୟ ଏକ ସମସ୍ୟା ବିଷୟରେ ବିସ୍ତୃତ ମତାମତ ଦେବା ପାଇଁ ଏକ ଫର୍ମ ଖୋଲିବାକୁ ଚୟନ କରନ୍ତୁ</translation>
 <translation id="8407011429883244666">ପ୍ଲେୟାରକୁ ବନ୍ଦ କରନ୍ତୁ।</translation>
 <translation id="8462210863277153423">ଗୁଣବତ୍ତା ଏବଂ ରିସର୍ଚ୍ଚକୁ ଉନ୍ନତ କରିବା ପାଇଁ ଆପଣଙ୍କ URLକୁ ମତାମତ ସହ ଅପଲୋଡ କରାଯିବ।</translation>
 <translation id="8481839122437406573">ଶାନ୍ତ</translation>
diff --git a/chrome/browser/readaloud/android/resources/translations/android_readaloud_strings_pa.xtb b/chrome/browser/readaloud/android/resources/translations/android_readaloud_strings_pa.xtb
index 4cbcbc1..1766f8e 100644
--- a/chrome/browser/readaloud/android/resources/translations/android_readaloud_strings_pa.xtb
+++ b/chrome/browser/readaloud/android/resources/translations/android_readaloud_strings_pa.xtb
@@ -31,6 +31,7 @@
 <translation id="4525525184005340968">ਡੇਲ</translation>
 <translation id="4710974520964166851">ਨਰਮ ਅਵਾਜ਼</translation>
 <translation id="4773921449011281499">ਪੀਸਫੁਲ</translation>
+<translation id="4867493576811701175">'ਸਲਾਹੋ' ਬਟਨ, ਤੁਹਾਨੂੰ ਇਹ ਵਿਸ਼ੇਸ਼ਤਾ ਪਸੰਦ ਆਈ, ਇਹ ਵਿਚਾਰ ਸਪੁਰਦ ਕਰਨ ਲਈ ਇਸਨੂੰ ਚੁਣੋ</translation>
 <translation id="4872475766448853257"><ph name="NUMBER_OF_SECONDS" /> ਸਕਿੰਟ ਪਿੱਛੇ ਜਾਓ</translation>
 <translation id="4967513477347430212">ਕੋਸਟ</translation>
 <translation id="5026371835667036198">ਬ੍ਰਾਈਟ</translation>
@@ -61,6 +62,7 @@
 <translation id="8136852699834914183">ਇਸ ਪੰਨੇ ਲਈ ਪਲੇਬੈਕ ਉਪਲਬਧ ਨਹੀਂ ਹੈ।</translation>
 <translation id="8198036737896977997">ਏਅਰ</translation>
 <translation id="8264989794233974275">ਪਲੇਅਰ ਦੀ ਗਤੀ ਨੂੰ <ph name="PLAYBACK_SPEED" />ਗੁਣਾ ਵਧਾਓ/ਘਟਾਓ।</translation>
+<translation id="837054959055425654">'ਨਾ ਸਲਾਹੋ' ਬਟਨ, ਇਸ ਵਿਸ਼ੇਸ਼ਤਾ ਨਾਲ ਸੰਬੰਧਿਤ ਸਮੱਸਿਆ ਬਾਰੇ ਵੇਰਵੇ ਸਹਿਤ ਵਿਚਾਰ ਦੇਣ ਲਈ ਫ਼ਾਰਮ ਖੋਲ੍ਹਣ ਵਾਸਤੇ ਇਸਨੂੰ ਚੁਣੋ</translation>
 <translation id="8407011429883244666">ਪਲੇਅਰ ਬੰਦ ਕਰੋ।</translation>
 <translation id="8462210863277153423">ਕੁਆਲਿਟੀ ਅਤੇ ਖੋਜ ਨੂੰ ਬਿਹਤਰ ਬਣਾਉਣ ਲਈ, ਤੁਹਾਡੇ URL ਨੂੰ ਵਿਚਾਰਾਂ ਨਾਲ ਅੱਪਲੋਡ ਕੀਤਾ ਜਾਵੇਗਾ।</translation>
 <translation id="8481839122437406573">ਸ਼ਾਂਤ ਅਵਾਜ਼</translation>
diff --git a/chrome/browser/readaloud/android/resources/translations/android_readaloud_strings_pt-BR.xtb b/chrome/browser/readaloud/android/resources/translations/android_readaloud_strings_pt-BR.xtb
index 8db3c85..af0475c 100644
--- a/chrome/browser/readaloud/android/resources/translations/android_readaloud_strings_pt-BR.xtb
+++ b/chrome/browser/readaloud/android/resources/translations/android_readaloud_strings_pt-BR.xtb
@@ -31,6 +31,7 @@
 <translation id="4525525184005340968">Vale</translation>
 <translation id="4710974520964166851">Descontraída</translation>
 <translation id="4773921449011281499">Pacífico</translation>
+<translation id="4867493576811701175">Botão "Gostei": selecione para enviar um feedback informando que você gostou deste recurso</translation>
 <translation id="4872475766448853257">Voltar <ph name="NUMBER_OF_SECONDS" /> segundos</translation>
 <translation id="4967513477347430212">Costa</translation>
 <translation id="5026371835667036198">Animado</translation>
@@ -61,6 +62,7 @@
 <translation id="8136852699834914183">A reprodução não está disponível nesta página.</translation>
 <translation id="8198036737896977997">Ar</translation>
 <translation id="8264989794233974275">Aumentar/diminuir a velocidade em <ph name="PLAYBACK_SPEED" />x</translation>
+<translation id="837054959055425654">Botão "Não gostei": selecione para abrir um formulário e enviar um feedback detalhado sobre um problema com este recurso</translation>
 <translation id="8407011429883244666">Fechar player</translation>
 <translation id="8462210863277153423">Seu URL será enviado com o feedback para melhorar a qualidade e a pesquisa.</translation>
 <translation id="8481839122437406573">Calmo</translation>
diff --git a/chrome/browser/readaloud/android/resources/translations/android_readaloud_strings_ro.xtb b/chrome/browser/readaloud/android/resources/translations/android_readaloud_strings_ro.xtb
index 05e989a..2d0e799 100644
--- a/chrome/browser/readaloud/android/resources/translations/android_readaloud_strings_ro.xtb
+++ b/chrome/browser/readaloud/android/resources/translations/android_readaloud_strings_ro.xtb
@@ -31,6 +31,7 @@
 <translation id="4525525184005340968">Vale</translation>
 <translation id="4710974520964166851">Relaxat</translation>
 <translation id="4773921449011281499">Liniștită</translation>
+<translation id="4867493576811701175">Butonul Îmi place, selectează pentru a trimite feedback conform căruia îți place această funcție</translation>
 <translation id="4872475766448853257">Derulează înapoi cu <ph name="NUMBER_OF_SECONDS" /> secunde</translation>
 <translation id="4967513477347430212">Coastă</translation>
 <translation id="5026371835667036198">Optimistă</translation>
@@ -61,6 +62,7 @@
 <translation id="8136852699834914183">Redarea nu este disponibilă pentru această pagină.</translation>
 <translation id="8198036737896977997">Aer</translation>
 <translation id="8264989794233974275">Micșorează / crește viteza de <ph name="PLAYBACK_SPEED" /> ori.</translation>
+<translation id="837054959055425654">Butonul Nu îmi place, selectează pentru a deschide un formular și a trimite feedback detaliat despre o problemă legată de această funcție</translation>
 <translation id="8407011429883244666">Închide playerul.</translation>
 <translation id="8462210863277153423">Adresa URL va fi încărcată împreună cu feedbackul pentru a îmbunătăți calitatea și cercetarea.</translation>
 <translation id="8481839122437406573">Calm</translation>
diff --git a/chrome/browser/readaloud/android/resources/translations/android_readaloud_strings_ru.xtb b/chrome/browser/readaloud/android/resources/translations/android_readaloud_strings_ru.xtb
index 6e393ef..0f6f592 100644
--- a/chrome/browser/readaloud/android/resources/translations/android_readaloud_strings_ru.xtb
+++ b/chrome/browser/readaloud/android/resources/translations/android_readaloud_strings_ru.xtb
@@ -31,6 +31,7 @@
 <translation id="4525525184005340968">Долина</translation>
 <translation id="4710974520964166851">расслабленный</translation>
 <translation id="4773921449011281499">безмятежный</translation>
+<translation id="4867493576811701175">Кнопка "Нравится". Нажав ее, вы сообщите нам о том, что вам нравится эта функция.</translation>
 <translation id="4872475766448853257">Перемотать на <ph name="NUMBER_OF_SECONDS" /> с. назад</translation>
 <translation id="4967513477347430212">Берег</translation>
 <translation id="5026371835667036198">энергичный</translation>
@@ -61,6 +62,7 @@
 <translation id="8136852699834914183">Воспроизведение на этой странице невозможно.</translation>
 <translation id="8198036737896977997">Воздух</translation>
 <translation id="8264989794233974275">Увеличить или уменьшить скорость, множитель – <ph name="PLAYBACK_SPEED" />.</translation>
+<translation id="837054959055425654">Кнопка "Не нравится". Нажмите ее, чтобы открыть форму отзыва и рассказать нам о проблеме с этой функцией.</translation>
 <translation id="8407011429883244666">Закрыть проигрыватель.</translation>
 <translation id="8462210863277153423">Вместе с отзывом будет передана информация о предоставленном вами URL. Она поможет нам провести исследование и улучшить качество сервиса.</translation>
 <translation id="8481839122437406573">спокойный</translation>
diff --git a/chrome/browser/readaloud/android/resources/translations/android_readaloud_strings_si.xtb b/chrome/browser/readaloud/android/resources/translations/android_readaloud_strings_si.xtb
index 89b66cd..e931811 100644
--- a/chrome/browser/readaloud/android/resources/translations/android_readaloud_strings_si.xtb
+++ b/chrome/browser/readaloud/android/resources/translations/android_readaloud_strings_si.xtb
@@ -31,6 +31,7 @@
 <translation id="4525525184005340968">මිටියාවත</translation>
 <translation id="4710974520964166851">ලිහිල් කිරීම</translation>
 <translation id="4773921449011281499">සාමකාමී</translation>
+<translation id="4867493576811701175">මහපටැඟිල්ල ඉහළට බොත්තම, ඔබ මෙම විශේෂාංගයට කැමති ප්‍රතිපෝෂණ ඉදිරිපත් කිරීමට තෝරන්න</translation>
 <translation id="4872475766448853257">තත්පර <ph name="NUMBER_OF_SECONDS" />ක් ආපසු යන්න</translation>
 <translation id="4967513477347430212">වෙරළ</translation>
 <translation id="5026371835667036198">දීප්තිමත්</translation>
@@ -61,6 +62,7 @@
 <translation id="8136852699834914183">මෙම පිටුව සඳහා පසුධාවනය නොමැත.</translation>
 <translation id="8198036737896977997">වාතය</translation>
 <translation id="8264989794233974275"><ph name="PLAYBACK_SPEED" />x වේගය වැඩි කිරීම/අඩු කිරීම.</translation>
+<translation id="837054959055425654">මෙම විශේෂාංගයේ ගැටලුවක් පිළිබඳව සවිස්තරාත්මක ප්‍රතිපෝෂණ ලබා දීම සඳහා පෝරමයක් විවෘත කිරීමට මාපටැඟිල්ල පහළට බොත්තම තෝරන්න</translation>
 <translation id="8407011429883244666">වාදකය වසන්න.</translation>
 <translation id="8462210863277153423">ගුණාත්මකභාවය සහ පර්යේෂණ වැඩි දියුණු කිරීම සඳහා ප්‍රතිපෝෂණ සමග ඔබේ URL උඩුගත කරනු ලැබේ.</translation>
 <translation id="8481839122437406573">සන්සුන්</translation>
diff --git a/chrome/browser/readaloud/android/resources/translations/android_readaloud_strings_sk.xtb b/chrome/browser/readaloud/android/resources/translations/android_readaloud_strings_sk.xtb
index 7375d86..01ad6afd 100644
--- a/chrome/browser/readaloud/android/resources/translations/android_readaloud_strings_sk.xtb
+++ b/chrome/browser/readaloud/android/resources/translations/android_readaloud_strings_sk.xtb
@@ -31,6 +31,7 @@
 <translation id="4525525184005340968">Údolie</translation>
 <translation id="4710974520964166851">Uvoľnený</translation>
 <translation id="4773921449011281499">Vyrovnaný</translation>
+<translation id="4867493576811701175">Tlačidlo s palcom hore. Výberom tlačidla odošlete spätnú väzbu, že sa vám táto funkcia páči.</translation>
 <translation id="4872475766448853257">Pretočiť späť o <ph name="NUMBER_OF_SECONDS" /> s</translation>
 <translation id="4967513477347430212">Pobrežie</translation>
 <translation id="5026371835667036198">Jasný</translation>
@@ -61,6 +62,7 @@
 <translation id="8136852699834914183">Prehrávanie nie je pre túto stránku k dispozícii.</translation>
 <translation id="8198036737896977997">Vzduch</translation>
 <translation id="8264989794233974275"><ph name="PLAYBACK_SPEED" />‑násobné zvýšenie alebo zníženie rýchlosti.</translation>
+<translation id="837054959055425654">Tlačidlo s palcom dole. Ak ho vyberiete, otvorí sa formulár, v ktorom môžete poskytnúť podrobnú spätnú väzbu o probléme s touto funkciou.</translation>
 <translation id="8407011429883244666">Zavrieť prehrávač</translation>
 <translation id="8462210863277153423">Vaša webová adresa bude nahraná spolu so spätnou väzbou na zlepšenie kvality a výskumu.</translation>
 <translation id="8481839122437406573">Pokojný</translation>
diff --git a/chrome/browser/readaloud/android/resources/translations/android_readaloud_strings_sl.xtb b/chrome/browser/readaloud/android/resources/translations/android_readaloud_strings_sl.xtb
index 94df8a2..2a7422d 100644
--- a/chrome/browser/readaloud/android/resources/translations/android_readaloud_strings_sl.xtb
+++ b/chrome/browser/readaloud/android/resources/translations/android_readaloud_strings_sl.xtb
@@ -31,6 +31,7 @@
 <translation id="4525525184005340968">Dolina</translation>
 <translation id="4710974520964166851">Sproščen</translation>
 <translation id="4773921449011281499">Miren</translation>
+<translation id="4867493576811701175">Gumb za Všeč mi je, izberite, če želite poslati povratne informacije, da vam je ta funkcija všeč</translation>
 <translation id="4872475766448853257">Vrnitev za <ph name="NUMBER_OF_SECONDS" /> s</translation>
 <translation id="4967513477347430212">Obala</translation>
 <translation id="5026371835667036198">Svetel</translation>
@@ -61,6 +62,7 @@
 <translation id="8136852699834914183">Predvajanje za to stran ni na voljo.</translation>
 <translation id="8198036737896977997">Zrak</translation>
 <translation id="8264989794233974275"><ph name="PLAYBACK_SPEED" />-kratno povečanje/zmanjšanje hitrosti.</translation>
+<translation id="837054959055425654">Gumb za Ni mi všeč, izberite, če želite odpreti obrazec za pošiljanje podrobnih povratnih informacij o težavi s to funkcijo</translation>
 <translation id="8407011429883244666">Zapiranje predvajalnika.</translation>
 <translation id="8462210863277153423">URL bo naložen s povratnimi informacijami zaradi izboljšanja kakovosti in raziskav.</translation>
 <translation id="8481839122437406573">Miren</translation>
diff --git a/chrome/browser/readaloud/android/resources/translations/android_readaloud_strings_sq.xtb b/chrome/browser/readaloud/android/resources/translations/android_readaloud_strings_sq.xtb
index 8f6b5ca..d6d7c639 100644
--- a/chrome/browser/readaloud/android/resources/translations/android_readaloud_strings_sq.xtb
+++ b/chrome/browser/readaloud/android/resources/translations/android_readaloud_strings_sq.xtb
@@ -31,6 +31,7 @@
 <translation id="4525525184005340968">Luginë</translation>
 <translation id="4710974520964166851">I qetësuar</translation>
 <translation id="4773921449011281499">Paqësor</translation>
+<translation id="4867493576811701175">Butoni i gishtave lart, zgjidh për të dërguar koment që të pëlqen kjo veçori</translation>
 <translation id="4872475766448853257">Kthehu prapa <ph name="NUMBER_OF_SECONDS" /> sekonda</translation>
 <translation id="4967513477347430212">Breg</translation>
 <translation id="5026371835667036198">I qartë</translation>
@@ -61,6 +62,7 @@
 <translation id="8136852699834914183">Luajtja nuk ofrohet për këtë faqe.</translation>
 <translation id="8198036737896977997">Ajër</translation>
 <translation id="8264989794233974275"><ph name="PLAYBACK_SPEED" />x rritje/ulje e shpejtësisë.</translation>
+<translation id="837054959055425654">Butoni i gishtave poshtë, zgjidh për të hapur një formular për të dhënë koment të detajuar rreth një problemi me këtë veçori</translation>
 <translation id="8407011429883244666">Mbyll luajtësin.</translation>
 <translation id="8462210863277153423">URL-ja jote do të ngarkohet me komentet për të përmirësuar cilësinë dhe kërkimin.</translation>
 <translation id="8481839122437406573">I qetë</translation>
diff --git a/chrome/browser/readaloud/android/resources/translations/android_readaloud_strings_sv.xtb b/chrome/browser/readaloud/android/resources/translations/android_readaloud_strings_sv.xtb
index 6ceb1c01..692d4fff 100644
--- a/chrome/browser/readaloud/android/resources/translations/android_readaloud_strings_sv.xtb
+++ b/chrome/browser/readaloud/android/resources/translations/android_readaloud_strings_sv.xtb
@@ -31,6 +31,7 @@
 <translation id="4525525184005340968">Dal</translation>
 <translation id="4710974520964166851">Avspänd</translation>
 <translation id="4773921449011281499">Rofylld</translation>
+<translation id="4867493576811701175">Gillar-knappen – välj den för att skicka feedback om att du gillar den här funktionen</translation>
 <translation id="4872475766448853257">Spola <ph name="NUMBER_OF_SECONDS" /> sekunder bakåt</translation>
 <translation id="4967513477347430212">Kust</translation>
 <translation id="5026371835667036198">Munter</translation>
@@ -61,6 +62,7 @@
 <translation id="8136852699834914183">Uppspelning är inte tillgängligt på den här sidan.</translation>
 <translation id="8198036737896977997">Luft</translation>
 <translation id="8264989794233974275">Öka/minska hastigheten till <ph name="PLAYBACK_SPEED" /> x.</translation>
+<translation id="837054959055425654">Gillar inte-knappen – välj den för att öppna ett formulär där du kan skicka detaljerad feedback om ett problem med den här funktionen</translation>
 <translation id="8407011429883244666">Stäng spelaren.</translation>
 <translation id="8462210863277153423">Din webbadress laddas upp tillsammans med feedbacken för research och kvalitetsförbättringar.</translation>
 <translation id="8481839122437406573">Lugn</translation>
diff --git a/chrome/browser/readaloud/android/resources/translations/android_readaloud_strings_ta.xtb b/chrome/browser/readaloud/android/resources/translations/android_readaloud_strings_ta.xtb
index 9de62c0..960f692d 100644
--- a/chrome/browser/readaloud/android/resources/translations/android_readaloud_strings_ta.xtb
+++ b/chrome/browser/readaloud/android/resources/translations/android_readaloud_strings_ta.xtb
@@ -31,6 +31,7 @@
 <translation id="4525525184005340968">பள்ளத்தாக்கு</translation>
 <translation id="4710974520964166851">ரிலாக்ஸ்டு</translation>
 <translation id="4773921449011281499">அமைதி</translation>
+<translation id="4867493576811701175">தம்ஸ்-அப் பட்டன், இந்த அம்சம் உங்களுக்குப் பிடித்திருக்கிறது என்ற கருத்தைச் சமர்ப்பிக்க தேர்ந்தெடுக்கவும்</translation>
 <translation id="4872475766448853257"><ph name="NUMBER_OF_SECONDS" /> வினாடிகள் பின்செல்லும்</translation>
 <translation id="4967513477347430212">கரை</translation>
 <translation id="5026371835667036198">உற்சாகம்</translation>
@@ -61,6 +62,7 @@
 <translation id="8136852699834914183">இந்தப் பக்கத்தில் பிளேபேக் வசதி கிடைக்காது.</translation>
 <translation id="8198036737896977997">காற்று</translation>
 <translation id="8264989794233974275">பிளேபேக் வேகத்தை <ph name="PLAYBACK_SPEED" /> மடங்கு அதிகரிக்கும் அல்லது குறைக்கும்.</translation>
+<translation id="837054959055425654">தம்ஸ்-டவுன் பட்டன், இந்த அம்சம் தொடர்பான சிக்கல் குறித்த விரிவான கருத்தை வழங்கும் படிவத்தைத் திறக்க தேர்ந்தெடுக்கவும்</translation>
 <translation id="8407011429883244666">பிளேயரை மூடும்.</translation>
 <translation id="8462210863277153423">தரத்தையும் ஆராய்ச்சியையும் மேம்படுத்துவதற்கான கருத்துடன் உங்கள் URL பதிவேற்றப்படும்.</translation>
 <translation id="8481839122437406573">காம்</translation>
diff --git a/chrome/browser/readaloud/android/resources/translations/android_readaloud_strings_te.xtb b/chrome/browser/readaloud/android/resources/translations/android_readaloud_strings_te.xtb
index d1528fc..626340b8 100644
--- a/chrome/browser/readaloud/android/resources/translations/android_readaloud_strings_te.xtb
+++ b/chrome/browser/readaloud/android/resources/translations/android_readaloud_strings_te.xtb
@@ -31,6 +31,7 @@
 <translation id="4525525184005340968">డేల్</translation>
 <translation id="4710974520964166851">టైమ్ లిమిట్ లేని మోడ్</translation>
 <translation id="4773921449011281499">ప్రశాంతమైన</translation>
+<translation id="4867493576811701175">బాగుంది అని తెలియజేసే బటన్, ఈ ఫీచర్ మీకు నచ్చిందని ఫీడ్‌బ్యాక్‌ను సమర్పించడానికి ఎంచుకోండి</translation>
 <translation id="4872475766448853257"><ph name="NUMBER_OF_SECONDS" /> సెకన్లు వెనక్కి వెళ్లండి</translation>
 <translation id="4967513477347430212">కోస్ట్</translation>
 <translation id="5026371835667036198">బిగ్గరగా</translation>
@@ -61,6 +62,7 @@
 <translation id="8136852699834914183">ఈ పేజీకి ప్లేబ్యాక్ అందుబాటులో లేదు.</translation>
 <translation id="8198036737896977997">ఏర్</translation>
 <translation id="8264989794233974275">వేగాన్ని <ph name="PLAYBACK_SPEED" />xకు పెంచండి/తగ్గించండి.</translation>
+<translation id="837054959055425654">బాగాలేదు అని తెలియజేసే బటన్, ఈ ఫీచర్‌తో సమస్య గురించి వివరణాత్మక ఫీడ్‌బ్యాక్‌ను అందించడానికి ఫారమ్‌ను తెరవడానికి ఎంచుకోండి</translation>
 <translation id="8407011429883244666">ప్లేయర్‌ను మూసివేయండి.</translation>
 <translation id="8462210863277153423">క్వాలిటీ, రీసెర్చ్‌ను మెరుగుపరచడానికి మీ URL ఫీడ్‌బ్యాక్‌తో అప్‌లోడ్ చేయబడుతుంది.</translation>
 <translation id="8481839122437406573">గాలులు లేకుండా ప్రశాంతంగా ఉంది</translation>
diff --git a/chrome/browser/readaloud/android/resources/translations/android_readaloud_strings_tr.xtb b/chrome/browser/readaloud/android/resources/translations/android_readaloud_strings_tr.xtb
index 5572748..7bc46b9 100644
--- a/chrome/browser/readaloud/android/resources/translations/android_readaloud_strings_tr.xtb
+++ b/chrome/browser/readaloud/android/resources/translations/android_readaloud_strings_tr.xtb
@@ -31,6 +31,7 @@
 <translation id="4525525184005340968">Vadi</translation>
 <translation id="4710974520964166851">Rahat</translation>
 <translation id="4773921449011281499">Huzurlu</translation>
+<translation id="4867493576811701175">Beğen düğmesi: Bu özelliği beğendiğinize dair geri bildirim göndermek için seçin</translation>
 <translation id="4872475766448853257"><ph name="NUMBER_OF_SECONDS" /> saniye geri gidin</translation>
 <translation id="4967513477347430212">Sahil</translation>
 <translation id="5026371835667036198">Canlı</translation>
@@ -61,6 +62,7 @@
 <translation id="8136852699834914183">Oynatma işlemi bu sayfada kullanılamıyor.</translation>
 <translation id="8198036737896977997">Hava</translation>
 <translation id="8264989794233974275">Hızı <ph name="PLAYBACK_SPEED" /> kat artırın/azaltın.</translation>
+<translation id="837054959055425654">Beğenme düğmesi: Bu özellikle ilgili bir sorun hakkında ayrıntılı geri bildirim gönderebileceğiniz formu açmak için seçin</translation>
 <translation id="8407011429883244666">Oynatıcıyı kapat.</translation>
 <translation id="8462210863277153423">Kaliteyi ve araştırmayı iyileştirmek için URL'niz geri bildirimle birlikte yüklenir.</translation>
 <translation id="8481839122437406573">Sakin</translation>
diff --git a/chrome/browser/readaloud/android/resources/translations/android_readaloud_strings_uk.xtb b/chrome/browser/readaloud/android/resources/translations/android_readaloud_strings_uk.xtb
index 7a4ffc4..82422642 100644
--- a/chrome/browser/readaloud/android/resources/translations/android_readaloud_strings_uk.xtb
+++ b/chrome/browser/readaloud/android/resources/translations/android_readaloud_strings_uk.xtb
@@ -31,6 +31,7 @@
 <translation id="4525525184005340968">Долина</translation>
 <translation id="4710974520964166851">без поспіху</translation>
 <translation id="4773921449011281499">Спокійний</translation>
+<translation id="4867493576811701175">Кнопка "Подобається": натисніть її, щоб надіслати позитивний відгук про цю функцію</translation>
 <translation id="4872475766448853257">Перемотати назад на <ph name="NUMBER_OF_SECONDS" /> с</translation>
 <translation id="4967513477347430212">Берег</translation>
 <translation id="5026371835667036198">Жвавий</translation>
@@ -61,6 +62,7 @@
 <translation id="8136852699834914183">Відтворення недоступне для цієї сторінки.</translation>
 <translation id="8198036737896977997">Повітря</translation>
 <translation id="8264989794233974275"><ph name="PLAYBACK_SPEED" />x-кратне збільшення/зменшення швидкості.</translation>
+<translation id="837054959055425654">Кнопка "Не подобається": натисніть її, щоб відкрити форму й залишити докладний відгук про проблему із цією функцією</translation>
 <translation id="8407011429883244666">Закрити програвач.</translation>
 <translation id="8462210863277153423">Вашу URL-адресу буде завантажено разом із відгуком, щоб покращувати якість і проводити дослідження.</translation>
 <translation id="8481839122437406573">спокійний</translation>
diff --git a/chrome/browser/readaloud/android/resources/translations/android_readaloud_strings_ur.xtb b/chrome/browser/readaloud/android/resources/translations/android_readaloud_strings_ur.xtb
index bab249f2..5652653 100644
--- a/chrome/browser/readaloud/android/resources/translations/android_readaloud_strings_ur.xtb
+++ b/chrome/browser/readaloud/android/resources/translations/android_readaloud_strings_ur.xtb
@@ -31,6 +31,7 @@
 <translation id="4525525184005340968">وادی</translation>
 <translation id="4710974520964166851">پُرسکون</translation>
 <translation id="4773921449011281499">پُرامن</translation>
+<translation id="4867493576811701175">اظہار پسندیدگی بٹن، اس حوالے سے تاثرات جمع کرانے کے لیے منتخب کریں کہ آپ اس خصوصیت کو پسند کرتے ہیں</translation>
 <translation id="4872475766448853257"><ph name="NUMBER_OF_SECONDS" /> سیکنڈ پیچھے جائیں</translation>
 <translation id="4967513477347430212">ساحل</translation>
 <translation id="5026371835667036198">روشن</translation>
@@ -61,6 +62,7 @@
 <translation id="8136852699834914183">پلے بیک اس صفحہ کے لیے دستیاب نہیں ہے۔</translation>
 <translation id="8198036737896977997">ہوا</translation>
 <translation id="8264989794233974275">‏<ph name="PLAYBACK_SPEED" />x رفتار میں اضافہ/کمی۔</translation>
+<translation id="837054959055425654">اظہار ناپسندیدگی بٹن، اس خصوصیت کے ساتھ کسی مسئلے کے بارے میں تفصیلی تاثرات دینے کی خاطر فارم کھولنے کے لیے منتخب کریں</translation>
 <translation id="8407011429883244666">پلیئر بند کریں۔</translation>
 <translation id="8462210863277153423">‏معیار اور تحقیق کو بہتر بنانے کے لیے آپ کا URL تاثرات کے ساتھ اپ لوڈ کیا جائے گا۔</translation>
 <translation id="8481839122437406573">خوشگوار</translation>
diff --git a/chrome/browser/readaloud/android/resources/translations/android_readaloud_strings_vi.xtb b/chrome/browser/readaloud/android/resources/translations/android_readaloud_strings_vi.xtb
index 71d1000..3a29d90 100644
--- a/chrome/browser/readaloud/android/resources/translations/android_readaloud_strings_vi.xtb
+++ b/chrome/browser/readaloud/android/resources/translations/android_readaloud_strings_vi.xtb
@@ -31,6 +31,7 @@
 <translation id="4525525184005340968">Thung lũng</translation>
 <translation id="4710974520964166851">Thoải mái</translation>
 <translation id="4773921449011281499">Êm tai</translation>
+<translation id="4867493576811701175">Nút Thích, chọn để gửi ý kiến phản hồi cho biết bạn thích tính năng này</translation>
 <translation id="4872475766448853257">Tua lại <ph name="NUMBER_OF_SECONDS" /> giây</translation>
 <translation id="4967513477347430212">Bờ biển</translation>
 <translation id="5026371835667036198">Tươi vui</translation>
@@ -61,6 +62,7 @@
 <translation id="8136852699834914183">Không thể phát trang này.</translation>
 <translation id="8198036737896977997">Không khí</translation>
 <translation id="8264989794233974275">Tăng/giảm tốc độ <ph name="PLAYBACK_SPEED" /> lần.</translation>
+<translation id="837054959055425654">Nút Không thích, chọn để mở biểu mẫu và đưa ra ý kiến phản hồi chi tiết về vấn đề bạn gặp phải với tính năng này</translation>
 <translation id="8407011429883244666">Đóng trình phát.</translation>
 <translation id="8462210863277153423">URL của bạn sẽ được tải lên cùng với ý kiến phản hồi nhằm mục đích nghiên cứu và cải thiện chất lượng.</translation>
 <translation id="8481839122437406573">Điềm tĩnh</translation>
diff --git a/chrome/browser/readaloud/android/resources/translations/android_readaloud_strings_zh-TW.xtb b/chrome/browser/readaloud/android/resources/translations/android_readaloud_strings_zh-TW.xtb
index 66b8e31..cb20f02 100644
--- a/chrome/browser/readaloud/android/resources/translations/android_readaloud_strings_zh-TW.xtb
+++ b/chrome/browser/readaloud/android/resources/translations/android_readaloud_strings_zh-TW.xtb
@@ -31,6 +31,7 @@
 <translation id="4525525184005340968">山谷</translation>
 <translation id="4710974520964166851">輕鬆</translation>
 <translation id="4773921449011281499">平靜</translation>
+<translation id="4867493576811701175">「喜歡」按鈕,選取即可表示你喜歡這項功能</translation>
 <translation id="4872475766448853257">倒轉 <ph name="NUMBER_OF_SECONDS" /> 秒</translation>
 <translation id="4967513477347430212">海岸</translation>
 <translation id="5026371835667036198">嘹亮</translation>
@@ -61,6 +62,7 @@
 <translation id="8136852699834914183">無法播放這個頁面的內容。</translation>
 <translation id="8198036737896977997">空氣</translation>
 <translation id="8264989794233974275">加快/減慢 <ph name="PLAYBACK_SPEED" /> 倍速度。</translation>
+<translation id="837054959055425654">「不喜歡」按鈕,選取後將開啟表單,你可以針對這項功能的問題提供詳細意見</translation>
 <translation id="8407011429883244666">關閉播放器。</translation>
 <translation id="8462210863277153423">我們會上傳你的網址和意見,以提升品質及進行研究。</translation>
 <translation id="8481839122437406573">平靜</translation>
diff --git a/chrome/browser/readaloud/android/resources/translations/android_readaloud_strings_zu.xtb b/chrome/browser/readaloud/android/resources/translations/android_readaloud_strings_zu.xtb
index cdd8b98..ba90c57 100644
--- a/chrome/browser/readaloud/android/resources/translations/android_readaloud_strings_zu.xtb
+++ b/chrome/browser/readaloud/android/resources/translations/android_readaloud_strings_zu.xtb
@@ -31,6 +31,7 @@
 <translation id="4525525184005340968">Isigodi</translation>
 <translation id="4710974520964166851">Elinethezekile</translation>
 <translation id="4773921449011281499">Ukuthula</translation>
+<translation id="4867493576811701175">Inkinobho yokuthi kulungile, khetha ukuze uthumele impendulo yokuthi uthanda lesi sakhi</translation>
 <translation id="4872475766448853257">Buyela emuva ngemizuzwana engu-<ph name="NUMBER_OF_SECONDS" /></translation>
 <translation id="4967513477347430212">Iqhweba</translation>
 <translation id="5026371835667036198">Ukukhanya</translation>
@@ -61,6 +62,7 @@
 <translation id="8136852699834914183">Okudlalwayo akutholakali kuleli khasi.</translation>
 <translation id="8198036737896977997">Umoya</translation>
 <translation id="8264989794233974275">Khulisa/nciphisa isivinini ngo-<ph name="PLAYBACK_SPEED" />x.</translation>
+<translation id="837054959055425654">Inkinobho yokuthi izithupha phansi, khetha ukuze uvule ifomu lokunikeza impendulo enemininingwane mayelana nenkinga ngalesi sakhi</translation>
 <translation id="8407011429883244666">Vala isidlali.</translation>
 <translation id="8462210863277153423">I-URL yakho izolayishwa ngezimpendulo ukuze kuthuthukiswe ikhwalithi nocwaningo.</translation>
 <translation id="8481839122437406573">Elipholile</translation>
diff --git a/chrome/browser/resources/chromeos/accessibility/strings/accessibility_strings_pt-BR.xtb b/chrome/browser/resources/chromeos/accessibility/strings/accessibility_strings_pt-BR.xtb
index b54ddbd..4b6199d 100644
--- a/chrome/browser/resources/chromeos/accessibility/strings/accessibility_strings_pt-BR.xtb
+++ b/chrome/browser/resources/chromeos/accessibility/strings/accessibility_strings_pt-BR.xtb
@@ -1024,7 +1024,7 @@
 <translation id="7685589220304187312">tlbar</translation>
 <translation id="7693840228159394336">Botão de opção anterior</translation>
 <translation id="7696631298608145306">passar para a próxima palavra</translation>
-<translation id="7701040980221191251">Não há</translation>
+<translation id="7701040980221191251">Nenhum</translation>
 <translation id="7701196182766842984">autolst</translation>
 <translation id="7708242671340939466">.input {$$COUNT :number} .match $$COUNT 1{{traço}} *{{{$$COUNT} traços}}</translation>
 <translation id="7714340021005120797">Nenhuma caixa de combinação a seguir</translation>
diff --git a/chrome/browser/resources/new_tab_page/app.html b/chrome/browser/resources/new_tab_page/app.html
index ec987cc6..0b01b587 100644
--- a/chrome/browser/resources/new_tab_page/app.html
+++ b/chrome/browser/resources/new_tab_page/app.html
@@ -70,33 +70,33 @@
         </ntp-modules>
       `}
     ` : ''}
-    <a id="backgroundImageAttribution"
-        href="${this.backgroundImageAttributionUrl_}"
-        ?hidden="${!this.backgroundImageAttribution1_}">
-      <div id="backgroundImageAttribution1Container">
-        <div id="linkIcon" ?hidden="${!this.backgroundImageAttributionUrl_}"></div>
-        <div id="backgroundImageAttribution1">
-          ${this.backgroundImageAttribution1_}
+  ${!this.isFooterVisible_ ? html`
+      <a id="backgroundImageAttribution"
+          href="${this.backgroundImageAttributionUrl_}"
+          ?hidden="${!this.backgroundImageAttribution1_}">
+        <div id="backgroundImageAttribution1Container">
+          <div id="linkIcon" ?hidden="${!this.backgroundImageAttributionUrl_}"></div>
+          <div id="backgroundImageAttribution1">
+            ${this.backgroundImageAttribution1_}
+          </div>
         </div>
-      </div>
-      <div id="backgroundImageAttribution2"
-          ?hidden="${!this.backgroundImageAttribution2_}">
-        ${this.backgroundImageAttribution2_}
-      </div>
-    </a>
-    <!-- TODO(crbug.com/409296433) Hide ntp-customize-buttons on new-tab-page when
-      footer is enabled and visible. -->
-    <ntp-customize-buttons id="customizeButtons"
-        ?modules-shown-to-user="${this.modulesShownToUser}"
-        ?show-background-image="${this.showBackgroundImage_}"
-        ?show-customize="${this.showCustomize_}"
-        ?show-customize-chrome-text="${this.showCustomizeChromeText_}"
-        ?show-wallpaper-search="${this.showWallpaperSearch_}"
-        ?show-wallpaper-search-button="${this.showWallpaperSearchButton_}"
-        ?wallpaper-search-button-animation-enabled="${this.wallpaperSearchButtonAnimationEnabled_}"
-        @customize-click="${this.onCustomizeClick_}"
-        @wallpaper-search-click="${this.onWallpaperSearchClick_}">
-    </ntp-customize-buttons>
+        <div id="backgroundImageAttribution2"
+            ?hidden="${!this.backgroundImageAttribution2_}">
+          ${this.backgroundImageAttribution2_}
+        </div>
+      </a>
+      <ntp-customize-buttons id="customizeButtons"
+          ?modules-shown-to-user="${this.modulesShownToUser}"
+          ?show-background-image="${this.showBackgroundImage_}"
+          ?show-customize="${this.showCustomize_}"
+          ?show-customize-chrome-text="${this.showCustomizeChromeText_}"
+          ?show-wallpaper-search="${this.showWallpaperSearch_}"
+          ?show-wallpaper-search-button="${this.showWallpaperSearchButton_}"
+          ?wallpaper-search-button-animation-enabled="${this.wallpaperSearchButtonAnimationEnabled_}"
+          @customize-click="${this.onCustomizeClick_}"
+          @wallpaper-search-click="${this.onWallpaperSearchClick_}">
+      </ntp-customize-buttons>
+    ` : ''}
     ${this.showThemeAttribution_() ? html`
       <div id="themeAttribution">
         <div>$i18n{themeCreatedBy}</div>
diff --git a/chrome/browser/resources/new_tab_page/app.ts b/chrome/browser/resources/new_tab_page/app.ts
index 6df3529f..8431b42d9 100644
--- a/chrome/browser/resources/new_tab_page/app.ts
+++ b/chrome/browser/resources/new_tab_page/app.ts
@@ -165,6 +165,8 @@
 
       showWallpaperSearch_: {type: Boolean},
 
+      isFooterVisible_: {type: Boolean},
+
       selectedCustomizeDialogPage_: {type: String},
       showVoiceSearchOverlay_: {type: Boolean},
 
@@ -301,6 +303,8 @@
       loadTimeData.getBoolean('searchboxShowComposeEntrypoint');
   accessor composeboxEnabled: boolean =
       loadTimeData.getBoolean('searchboxShowComposebox');
+  protected accessor isFooterVisible_: boolean = false;
+
   private callbackRouter_: PageCallbackRouter;
   private pageHandler_: PageHandlerRemote;
   private customizeButtonsCallbackRouter_:
@@ -311,6 +315,7 @@
   private setThemeListenerId_: number|null = null;
   private setCustomizeChromeSidePanelVisibilityListener_: number|null = null;
   private setWallpaperSearchButtonVisibilityListener_: number|null = null;
+  private footerVisibilityUpdatedListener_: number|null = null;
   private eventTracker_: EventTracker = new EventTracker();
   private shouldPrintPerformance_: boolean = false;
   private backgroundImageLoadStartEpoch_: number = 0;
@@ -426,6 +431,13 @@
               }
             });
 
+    this.footerVisibilityUpdatedListener_ =
+        this.callbackRouter_.footerVisibilityUpdated.addListener(
+            (visible: boolean) => {
+              this.isFooterVisible_ = visible;
+            });
+    this.pageHandler_.updateFooterVisibility();
+
     // Open Customize Chrome if there are Customize Chrome URL params.
     if (this.showCustomize_) {
       this.setCustomizeChromeSidePanelVisible_(this.showCustomize_);
@@ -487,6 +499,7 @@
         this.setWallpaperSearchButtonVisibilityListener_!);
     this.customizeButtonsCallbackRouter_.removeListener(
         this.setCustomizeChromeSidePanelVisibilityListener_!);
+    this.callbackRouter_.removeListener(this.footerVisibilityUpdatedListener_!);
     this.eventTracker_.removeAll();
   }
 
diff --git a/chrome/browser/resources/privacy_sandbox/internals/value_display.ts b/chrome/browser/resources/privacy_sandbox/internals/value_display.ts
index ef0e307..4f116e0 100644
--- a/chrome/browser/resources/privacy_sandbox/internals/value_display.ts
+++ b/chrome/browser/resources/privacy_sandbox/internals/value_display.ts
@@ -27,6 +27,20 @@
     return getTemplate();
   }
 
+  flattenValue(value: Value): any {
+    if (value.listValue != null) {
+      return value.listValue.storage.map(v => this.flattenValue(v));
+    } else if (value.dictionaryValue != null) {
+      const flattenedDictionary: {[key: string]: any} = {};
+      for (const [k, v] of Object.entries(value.dictionaryValue.storage)) {
+        flattenedDictionary[k] = this.flattenValue(v);
+      }
+      return flattenedDictionary;
+    } else {
+      return value;
+    }
+  }
+
   configure(value: Value, logicalFn: LogicalFn = defaultLogicalFn) {
     const tElem = this.shadowRoot!.querySelector<HTMLElement>(`#type`)!;
     const vElem = this.shadowRoot!.querySelector<HTMLElement>(`#value`)!;
@@ -62,11 +76,21 @@
 
     } else if (value.listValue != null) {
       tElem.textContent = '(list)';
-      vElem.textContent = JSON.stringify(value.listValue.storage);
+
+      // The pre element is used to preserve line breaks and spaces
+      const jsonValueElement = document.createElement('pre');
+      jsonValueElement.id = 'json-value';
+      jsonValueElement.textContent =
+          JSON.stringify(this.flattenValue(value), null, 2);
+      vElem.appendChild(jsonValueElement);
 
     } else if (value.dictionaryValue != null) {
       tElem.textContent = '(dictionary)';
-      vElem.textContent = JSON.stringify(value.dictionaryValue.storage);
+      const jsonValueElement = document.createElement('pre');
+      jsonValueElement.id = 'json-value';
+      jsonValueElement.textContent =
+          JSON.stringify(this.flattenValue(value), null, 2);
+      vElem.appendChild(jsonValueElement);
 
     } else if (value.binaryValue != null) {
       tElem.textContent = '(binary)';
diff --git a/chrome/browser/resources/settings/clear_browsing_data_dialog/other_google_data_dialog.html b/chrome/browser/resources/settings/clear_browsing_data_dialog/other_google_data_dialog.html
index 7526e94..0aa7926e 100644
--- a/chrome/browser/resources/settings/clear_browsing_data_dialog/other_google_data_dialog.html
+++ b/chrome/browser/resources/settings/clear_browsing_data_dialog/other_google_data_dialog.html
@@ -74,7 +74,8 @@
           using-slotted-label>
         <div slot="label">$i18n{passwordsAndPasskeys}</div>
       </cr-link-row>
-      <cr-link-row sub-label="$i18n{manageInYourGoogleAccount}" external
+      <cr-link-row sub-label="$i18n{manageInYourGoogleAccount}"
+          id="myActivityLink" on-click="onMyActivityClick_" external
           using-slotted-label>
         <div slot="label">$i18n{myActivity}</div>
       </cr-link-row>
diff --git a/chrome/browser/resources/settings/clear_browsing_data_dialog/other_google_data_dialog.ts b/chrome/browser/resources/settings/clear_browsing_data_dialog/other_google_data_dialog.ts
index 107acf8c..bb5dd46 100644
--- a/chrome/browser/resources/settings/clear_browsing_data_dialog/other_google_data_dialog.ts
+++ b/chrome/browser/resources/settings/clear_browsing_data_dialog/other_google_data_dialog.ts
@@ -16,6 +16,8 @@
 
 import type {CrDialogElement} from 'chrome://resources/cr_elements/cr_dialog/cr_dialog.js';
 import type {CrLinkRowElement} from 'chrome://resources/cr_elements/cr_link_row/cr_link_row.js';
+import {loadTimeData} from 'chrome://resources/js/load_time_data.js';
+import {OpenWindowProxyImpl} from 'chrome://resources/js/open_window_proxy.js';
 import {PolymerElement} from 'chrome://resources/polymer/v3_0/polymer/polymer_bundled.min.js';
 
 import {PasswordManagerImpl, PasswordManagerPage} from '../autofill_page/password_manager_proxy.js';
@@ -26,6 +28,7 @@
   $: {
     dialog: CrDialogElement,
     passwordManagerLink: CrLinkRowElement,
+    myActivityLink: CrLinkRowElement,
   };
 }
 
@@ -46,6 +49,11 @@
     PasswordManagerImpl.getInstance().showPasswordManager(
         PasswordManagerPage.PASSWORDS);
   }
+
+  private onMyActivityClick_() {
+    OpenWindowProxyImpl.getInstance().openUrl(
+        loadTimeData.getString('deleteBrowsingDataMyActivityUrl'));
+  }
 }
 
 declare global {
diff --git a/chrome/browser/share/android/java/src/org/chromium/chrome/browser/share/long_screenshots/bitmap_generation/EntryManager.java b/chrome/browser/share/android/java/src/org/chromium/chrome/browser/share/long_screenshots/bitmap_generation/EntryManager.java
index d117cfc..3582c490 100644
--- a/chrome/browser/share/android/java/src/org/chromium/chrome/browser/share/long_screenshots/bitmap_generation/EntryManager.java
+++ b/chrome/browser/share/android/java/src/org/chromium/chrome/browser/share/long_screenshots/bitmap_generation/EntryManager.java
@@ -4,6 +4,8 @@
 
 package org.chromium.chrome.browser.share.long_screenshots.bitmap_generation;
 
+import static org.chromium.build.NullUtil.assertNonNull;
+
 import android.content.Context;
 import android.graphics.Point;
 import android.graphics.Rect;
@@ -12,6 +14,7 @@
 import androidx.annotation.VisibleForTesting;
 
 import org.chromium.base.ObserverList;
+import org.chromium.build.annotations.NullMarked;
 import org.chromium.chrome.browser.share.long_screenshots.bitmap_generation.LongScreenshotsEntry.EntryStatus;
 import org.chromium.chrome.browser.tab.Tab;
 import org.chromium.components.paintpreview.player.CompositorStatus;
@@ -24,6 +27,7 @@
  * to generate and retrieve the needed bitmaps. Currently we generate the screenshot in one pass; to
  * obtain it call {@link generateFullpageEntry}.
  */
+@NullMarked
 public class EntryManager {
     // List of all entries in correspondence of the webpage.
     private final List<LongScreenshotsEntry> mEntries;
@@ -158,7 +162,9 @@
 
         observer.onStatusChange(mGeneratorStatus);
         if (mGeneratorStatus == EntryStatus.CAPTURE_COMPLETE) {
-            observer.onCompositorReady(mGenerator.getContentSize(), mGenerator.getScrollOffset());
+            observer.onCompositorReady(
+                    assertNonNull(mGenerator.getContentSize()),
+                    assertNonNull(mGenerator.getScrollOffset()));
         }
     }
 
@@ -183,6 +189,7 @@
 
                     Size contentSize = mGenerator.getContentSize();
                     Point scrollOffset = mGenerator.getScrollOffset();
+                    assert contentSize != null && scrollOffset != null;
                     for (BitmapGeneratorObserver observer : mGeneratorObservers) {
                         observer.onCompositorReady(contentSize, scrollOffset);
                     }
@@ -202,6 +209,7 @@
         };
     }
 
+    @SuppressWarnings("NullAway")
     public void destroy() {
         if (mGenerator != null) {
             mGenerator.destroy();
diff --git a/chrome/browser/share/android/java/src/org/chromium/chrome/browser/share/screenshot/ScreenshotShareSheetDialog.java b/chrome/browser/share/android/java/src/org/chromium/chrome/browser/share/screenshot/ScreenshotShareSheetDialog.java
index 02f77e0..f1146cc 100644
--- a/chrome/browser/share/android/java/src/org/chromium/chrome/browser/share/screenshot/ScreenshotShareSheetDialog.java
+++ b/chrome/browser/share/android/java/src/org/chromium/chrome/browser/share/screenshot/ScreenshotShareSheetDialog.java
@@ -8,11 +8,12 @@
 import android.graphics.Bitmap;
 import android.os.Bundle;
 
-import androidx.annotation.NonNull;
-import androidx.annotation.Nullable;
 import androidx.appcompat.app.AlertDialog;
 import androidx.fragment.app.DialogFragment;
 
+import org.chromium.build.annotations.Initializer;
+import org.chromium.build.annotations.NullMarked;
+import org.chromium.build.annotations.Nullable;
 import org.chromium.chrome.R;
 import org.chromium.chrome.browser.share.share_sheet.ChromeOptionShareCallback;
 import org.chromium.chrome.browser.ui.edge_to_edge.EdgeToEdgeUtils;
@@ -20,6 +21,7 @@
 import org.chromium.ui.base.WindowAndroid;
 
 /** ScreenshotShareSheetDialog is the main view for sharing non edited screenshots. */
+@NullMarked
 public class ScreenshotShareSheetDialog extends DialogFragment {
     private Bitmap mScreenshot;
     private WindowAndroid mWindowAndroid;
@@ -37,6 +39,7 @@
      * @param shareUrl The URL associated with the screenshot.
      * @param chromeOptionShareCallback the callback to trigger on share.
      */
+    @Initializer
     public void init(
             Bitmap screenshot,
             WindowAndroid windowAndroid,
@@ -61,9 +64,8 @@
         }
     }
 
-    @NonNull
     @Override
-    public Dialog onCreateDialog(Bundle savedInstanceState) {
+    public Dialog onCreateDialog(@Nullable Bundle savedInstanceState) {
         AlertDialog.Builder builder =
                 new FullscreenAlertDialog.Builder(
                         getActivity(), EdgeToEdgeUtils.isEdgeToEdgeEverywhereEnabled());
diff --git a/chrome/browser/share/android/javatests/src/org/chromium/chrome/browser/share/long_screenshots/bitmap_generation/EntryManagerTest.java b/chrome/browser/share/android/javatests/src/org/chromium/chrome/browser/share/long_screenshots/bitmap_generation/EntryManagerTest.java
index 1879d1b..2da9a8d 100644
--- a/chrome/browser/share/android/javatests/src/org/chromium/chrome/browser/share/long_screenshots/bitmap_generation/EntryManagerTest.java
+++ b/chrome/browser/share/android/javatests/src/org/chromium/chrome/browser/share/long_screenshots/bitmap_generation/EntryManagerTest.java
@@ -13,7 +13,9 @@
 import static org.mockito.Mockito.when;
 
 import android.graphics.Bitmap;
+import android.graphics.Point;
 import android.graphics.Rect;
+import android.util.Size;
 
 import org.junit.After;
 import org.junit.Before;
@@ -100,6 +102,8 @@
         when(mLongScreenshotsCompositorMock.requestBitmap(
                         any(), anyFloat(), mErrorCaptor.capture(), mCompleteCaptor.capture()))
                 .thenReturn(0);
+        when(mLongScreenshotsCompositorMock.getContentSize()).thenReturn(new Size(50, 50));
+        when(mLongScreenshotsCompositorMock.getScrollOffset()).thenReturn(new Point(20, 20));
     }
 
     @After
diff --git a/chrome/browser/sync/android/BUILD.gn b/chrome/browser/sync/android/BUILD.gn
index 00ee9a14..22e8846 100644
--- a/chrome/browser/sync/android/BUILD.gn
+++ b/chrome/browser/sync/android/BUILD.gn
@@ -24,10 +24,10 @@
 android_library("ui_java") {
   sources = [
     "java/src/org/chromium/chrome/browser/sync/ui/BatchUploadDialogCoordinator.java",
-    "java/src/org/chromium/chrome/browser/sync/ui/bookmark_batch_upload_card/BookmarkBatchUploadCardBinder.java",
-    "java/src/org/chromium/chrome/browser/sync/ui/bookmark_batch_upload_card/BookmarkBatchUploadCardCoordinator.java",
-    "java/src/org/chromium/chrome/browser/sync/ui/bookmark_batch_upload_card/BookmarkBatchUploadCardMediator.java",
-    "java/src/org/chromium/chrome/browser/sync/ui/bookmark_batch_upload_card/BookmarkBatchUploadCardProperties.java",
+    "java/src/org/chromium/chrome/browser/sync/ui/batch_upload_card/BatchUploadCardBinder.java",
+    "java/src/org/chromium/chrome/browser/sync/ui/batch_upload_card/BatchUploadCardCoordinator.java",
+    "java/src/org/chromium/chrome/browser/sync/ui/batch_upload_card/BatchUploadCardMediator.java",
+    "java/src/org/chromium/chrome/browser/sync/ui/batch_upload_card/BatchUploadCardProperties.java",
   ]
   deps = [
     "//base:callback_java",
@@ -52,7 +52,7 @@
 robolectric_library("junit") {
   testonly = true
 
-  sources = [ "junit/src/org/chromium/chrome/browser/sync/ui/bookmark_batch_upload_card/BookmarkBatchUploadCardMediatorTest.java" ]
+  sources = [ "junit/src/org/chromium/chrome/browser/sync/ui/batch_upload_card/BatchUploadCardMediatorTest.java" ]
 
   deps = [
     ":ui_java",
diff --git a/chrome/browser/sync/android/java/src/org/chromium/chrome/browser/sync/ui/bookmark_batch_upload_card/BookmarkBatchUploadCardBinder.java b/chrome/browser/sync/android/java/src/org/chromium/chrome/browser/sync/ui/batch_upload_card/BatchUploadCardBinder.java
similarity index 62%
rename from chrome/browser/sync/android/java/src/org/chromium/chrome/browser/sync/ui/bookmark_batch_upload_card/BookmarkBatchUploadCardBinder.java
rename to chrome/browser/sync/android/java/src/org/chromium/chrome/browser/sync/ui/batch_upload_card/BatchUploadCardBinder.java
index bc650bb..51969d69 100644
--- a/chrome/browser/sync/android/java/src/org/chromium/chrome/browser/sync/ui/bookmark_batch_upload_card/BookmarkBatchUploadCardBinder.java
+++ b/chrome/browser/sync/android/java/src/org/chromium/chrome/browser/sync/ui/batch_upload_card/BatchUploadCardBinder.java
@@ -2,7 +2,7 @@
 // Use of this source code is governed by a BSD-style license that can be
 // found in the LICENSE file.
 
-package org.chromium.chrome.browser.sync.ui.bookmark_batch_upload_card;
+package org.chromium.chrome.browser.sync.ui.batch_upload_card;
 
 import android.view.View;
 import android.widget.Button;
@@ -15,7 +15,7 @@
 import org.chromium.ui.modelutil.PropertyModel;
 
 @NullMarked
-class BookmarkBatchUploadCardBinder {
+class BatchUploadCardBinder {
     /**
      * Called whenever a property in the given model changes. It updates the given view accordingly.
      *
@@ -24,17 +24,16 @@
      * @param propertyKey The {@link PropertyKey} which changed.
      */
     public static void bind(PropertyModel model, View view, PropertyKey propertyKey) {
-        if (BookmarkBatchUploadCardProperties.DESCRIPTION_TEXT == propertyKey) {
+        if (BatchUploadCardProperties.DESCRIPTION_TEXT == propertyKey) {
             TextView text = (TextView) view.findViewById(R.id.signin_settings_card_description);
-            text.setText(model.get(BookmarkBatchUploadCardProperties.DESCRIPTION_TEXT));
-        } else if (BookmarkBatchUploadCardProperties.BUTTON_TEXT == propertyKey) {
+            text.setText(model.get(BatchUploadCardProperties.DESCRIPTION_TEXT));
+        } else if (BatchUploadCardProperties.BUTTON_TEXT == propertyKey) {
             Button button = (Button) view.findViewById(R.id.signin_settings_card_button);
-            button.setText(model.get(BookmarkBatchUploadCardProperties.BUTTON_TEXT));
-            button.setOnClickListener(
-                    model.get(BookmarkBatchUploadCardProperties.ON_CLICK_LISTENER));
-        } else if (BookmarkBatchUploadCardProperties.ICON == propertyKey) {
+            button.setText(model.get(BatchUploadCardProperties.BUTTON_TEXT));
+            button.setOnClickListener(model.get(BatchUploadCardProperties.ON_CLICK_LISTENER));
+        } else if (BatchUploadCardProperties.ICON == propertyKey) {
             ImageView image = (ImageView) view.findViewById(R.id.signin_settings_card_icon);
-            image.setImageDrawable(model.get(BookmarkBatchUploadCardProperties.ICON));
+            image.setImageDrawable(model.get(BatchUploadCardProperties.ICON));
         }
     }
 }
diff --git a/chrome/browser/sync/android/java/src/org/chromium/chrome/browser/sync/ui/bookmark_batch_upload_card/BookmarkBatchUploadCardCoordinator.java b/chrome/browser/sync/android/java/src/org/chromium/chrome/browser/sync/ui/batch_upload_card/BatchUploadCardCoordinator.java
similarity index 76%
rename from chrome/browser/sync/android/java/src/org/chromium/chrome/browser/sync/ui/bookmark_batch_upload_card/BookmarkBatchUploadCardCoordinator.java
rename to chrome/browser/sync/android/java/src/org/chromium/chrome/browser/sync/ui/batch_upload_card/BatchUploadCardCoordinator.java
index 10c026c5..ac88305 100644
--- a/chrome/browser/sync/android/java/src/org/chromium/chrome/browser/sync/ui/bookmark_batch_upload_card/BookmarkBatchUploadCardCoordinator.java
+++ b/chrome/browser/sync/android/java/src/org/chromium/chrome/browser/sync/ui/batch_upload_card/BatchUploadCardCoordinator.java
@@ -2,7 +2,7 @@
 // Use of this source code is governed by a BSD-style license that can be
 // found in the LICENSE file.
 
-package org.chromium.chrome.browser.sync.ui.bookmark_batch_upload_card;
+package org.chromium.chrome.browser.sync.ui.batch_upload_card;
 
 import android.app.Activity;
 import android.view.View;
@@ -20,13 +20,13 @@
 import org.chromium.ui.modelutil.PropertyModelChangeProcessor;
 
 @NullMarked
-public class BookmarkBatchUploadCardCoordinator {
-    private final BookmarkBatchUploadCardMediator mMediator;
+public class BatchUploadCardCoordinator {
+    private final BatchUploadCardMediator mMediator;
     private final PropertyModel mModel;
 
     private @Nullable PropertyModelChangeProcessor mPropertyModelChangeProcessor;
 
-    public BookmarkBatchUploadCardCoordinator(
+    public BatchUploadCardCoordinator(
             Activity activity,
             LifecycleOwner lifecycleOwner,
             ModalDialogManager modalDialogManager,
@@ -35,12 +35,12 @@
             Runnable batchUploadCardChangeAction) {
 
         mModel =
-                new PropertyModel.Builder(BookmarkBatchUploadCardProperties.ALL_KEYS)
+                new PropertyModel.Builder(BatchUploadCardProperties.ALL_KEYS)
                         .with(
-                                BookmarkBatchUploadCardProperties.BUTTON_TEXT,
-                                R.string.bookmarks_left_behind_bookmarks_button)
+                                BatchUploadCardProperties.BUTTON_TEXT,
+                                R.string.batch_upload_card_save_button)
                         .with(
-                                BookmarkBatchUploadCardProperties.ICON,
+                                BatchUploadCardProperties.ICON,
                                 UiUtils.getTintedDrawable(
                                         activity,
                                         R.drawable.ic_cloud_upload_24dp,
@@ -48,7 +48,7 @@
                         .build();
 
         mMediator =
-                new BookmarkBatchUploadCardMediator(
+                new BatchUploadCardMediator(
                         activity,
                         lifecycleOwner,
                         modalDialogManager,
@@ -68,8 +68,7 @@
             mPropertyModelChangeProcessor = null;
         }
         mPropertyModelChangeProcessor =
-                PropertyModelChangeProcessor.create(
-                        mModel, view, BookmarkBatchUploadCardBinder::bind);
+                PropertyModelChangeProcessor.create(mModel, view, BatchUploadCardBinder::bind);
     }
 
     public void immediatelyHideBatchUploadCardAndUpdateItsVisibility() {
diff --git a/chrome/browser/sync/android/java/src/org/chromium/chrome/browser/sync/ui/bookmark_batch_upload_card/BookmarkBatchUploadCardMediator.java b/chrome/browser/sync/android/java/src/org/chromium/chrome/browser/sync/ui/batch_upload_card/BatchUploadCardMediator.java
similarity index 96%
rename from chrome/browser/sync/android/java/src/org/chromium/chrome/browser/sync/ui/bookmark_batch_upload_card/BookmarkBatchUploadCardMediator.java
rename to chrome/browser/sync/android/java/src/org/chromium/chrome/browser/sync/ui/batch_upload_card/BatchUploadCardMediator.java
index 45c5bd51..a220a208 100644
--- a/chrome/browser/sync/android/java/src/org/chromium/chrome/browser/sync/ui/bookmark_batch_upload_card/BookmarkBatchUploadCardMediator.java
+++ b/chrome/browser/sync/android/java/src/org/chromium/chrome/browser/sync/ui/batch_upload_card/BatchUploadCardMediator.java
@@ -2,7 +2,7 @@
 // Use of this source code is governed by a BSD-style license that can be
 // found in the LICENSE file.
 
-package org.chromium.chrome.browser.sync.ui.bookmark_batch_upload_card;
+package org.chromium.chrome.browser.sync.ui.batch_upload_card;
 
 import static org.chromium.build.NullUtil.assumeNonNull;
 
@@ -41,7 +41,7 @@
 import java.util.Set;
 
 @NullMarked
-class BookmarkBatchUploadCardMediator
+class BatchUploadCardMediator
         implements SyncService.SyncStateChangedListener, BatchUploadDialogCoordinator.Listener {
     private final LifecycleObserver mLifeCycleObserver =
             new DefaultLifecycleObserver() {
@@ -78,7 +78,7 @@
      * @param snackbarManager {@link SnackbarManager} used to display snackbars.
      * @param batchUploadCardChangeAction {@link Runnable} that is used to update the card.
      */
-    public BookmarkBatchUploadCardMediator(
+    public BatchUploadCardMediator(
             Activity activity,
             LifecycleOwner lifecycleOwner,
             ModalDialogManager modalDialogManager,
@@ -232,7 +232,7 @@
 
         assumeNonNull(mLocalDataDescriptionsMap);
         mModel.set(
-                BookmarkBatchUploadCardProperties.ON_CLICK_LISTENER,
+                BatchUploadCardProperties.ON_CLICK_LISTENER,
                 v -> {
                     BatchUploadDialogCoordinator.show(
                             mContext, mLocalDataDescriptionsMap, mDialogManager, this);
@@ -249,7 +249,7 @@
 
         if (localItemsCountExcludingBookmarks == 0) {
             mModel.set(
-                    BookmarkBatchUploadCardProperties.DESCRIPTION_TEXT,
+                    BatchUploadCardProperties.DESCRIPTION_TEXT,
                     mContext.getResources()
                             .getQuantityString(
                                     R.plurals.bookmarks_left_behind_bookmark,
@@ -258,7 +258,7 @@
                                     accountInfo.getEmail()));
         } else if (localBookmarksCount == 0) {
             mModel.set(
-                    BookmarkBatchUploadCardProperties.DESCRIPTION_TEXT,
+                    BatchUploadCardProperties.DESCRIPTION_TEXT,
                     mContext.getResources()
                             .getQuantityString(
                                     R.plurals.bookmarks_left_behind_other,
@@ -267,7 +267,7 @@
                                     accountInfo.getEmail()));
         } else {
             mModel.set(
-                    BookmarkBatchUploadCardProperties.DESCRIPTION_TEXT,
+                    BatchUploadCardProperties.DESCRIPTION_TEXT,
                     mContext.getResources()
                             .getQuantityString(
                                     R.plurals.bookmarks_left_behind_bookmark_and_other,
diff --git a/chrome/browser/sync/android/java/src/org/chromium/chrome/browser/sync/ui/bookmark_batch_upload_card/BookmarkBatchUploadCardProperties.java b/chrome/browser/sync/android/java/src/org/chromium/chrome/browser/sync/ui/batch_upload_card/BatchUploadCardProperties.java
similarity index 91%
rename from chrome/browser/sync/android/java/src/org/chromium/chrome/browser/sync/ui/bookmark_batch_upload_card/BookmarkBatchUploadCardProperties.java
rename to chrome/browser/sync/android/java/src/org/chromium/chrome/browser/sync/ui/batch_upload_card/BatchUploadCardProperties.java
index 1a5cee76..24507c8e4 100644
--- a/chrome/browser/sync/android/java/src/org/chromium/chrome/browser/sync/ui/bookmark_batch_upload_card/BookmarkBatchUploadCardProperties.java
+++ b/chrome/browser/sync/android/java/src/org/chromium/chrome/browser/sync/ui/batch_upload_card/BatchUploadCardProperties.java
@@ -2,7 +2,7 @@
 // Use of this source code is governed by a BSD-style license that can be
 // found in the LICENSE file.
 
-package org.chromium.chrome.browser.sync.ui.bookmark_batch_upload_card;
+package org.chromium.chrome.browser.sync.ui.batch_upload_card;
 
 import android.graphics.drawable.Drawable;
 import android.view.View.OnClickListener;
@@ -14,7 +14,7 @@
 import org.chromium.ui.modelutil.PropertyModel.WritableObjectPropertyKey;
 
 @NullMarked
-class BookmarkBatchUploadCardProperties {
+class BatchUploadCardProperties {
     static final PropertyModel.WritableObjectPropertyKey<String> DESCRIPTION_TEXT =
             new PropertyModel.WritableObjectPropertyKey<>("description_text");
     static final PropertyModel.ReadableIntPropertyKey BUTTON_TEXT =
diff --git a/chrome/browser/sync/android/junit/src/org/chromium/chrome/browser/sync/ui/bookmark_batch_upload_card/BookmarkBatchUploadCardMediatorTest.java b/chrome/browser/sync/android/junit/src/org/chromium/chrome/browser/sync/ui/batch_upload_card/BatchUploadCardMediatorTest.java
similarity index 94%
rename from chrome/browser/sync/android/junit/src/org/chromium/chrome/browser/sync/ui/bookmark_batch_upload_card/BookmarkBatchUploadCardMediatorTest.java
rename to chrome/browser/sync/android/junit/src/org/chromium/chrome/browser/sync/ui/batch_upload_card/BatchUploadCardMediatorTest.java
index d1b90eae..339173b 100644
--- a/chrome/browser/sync/android/junit/src/org/chromium/chrome/browser/sync/ui/bookmark_batch_upload_card/BookmarkBatchUploadCardMediatorTest.java
+++ b/chrome/browser/sync/android/junit/src/org/chromium/chrome/browser/sync/ui/batch_upload_card/BatchUploadCardMediatorTest.java
@@ -2,7 +2,7 @@
 // Use of this source code is governed by a BSD-style license that can be
 // found in the LICENSE file.
 
-package org.chromium.chrome.browser.sync.ui.bookmark_batch_upload_card;
+package org.chromium.chrome.browser.sync.ui.batch_upload_card;
 
 import static org.mockito.ArgumentMatchers.any;
 import static org.mockito.ArgumentMatchers.eq;
@@ -43,10 +43,10 @@
 import java.util.HashMap;
 import java.util.Set;
 
-/** Unit tests for {@link BookmarkBatchUploadCardMediator}. */
+/** Unit tests for {@link BatchUploadCardMediator}. */
 @RunWith(BaseRobolectricTestRunner.class)
 @EnableFeatures({ChromeFeatureList.UNO_PHASE_2_FOLLOW_UP})
-public class BookmarkBatchUploadCardMediatorTest {
+public class BatchUploadCardMediatorTest {
     @Rule public MockitoRule mMockitoRule = MockitoJUnit.rule();
 
     @Rule
@@ -63,7 +63,7 @@
     @Mock private IdentityManager mIdentityManager;
 
     private Activity mActivity;
-    private BookmarkBatchUploadCardMediator mMediator;
+    private BatchUploadCardMediator mMediator;
 
     @Before
     public void setUp() {
@@ -103,7 +103,7 @@
                 .onActivity(
                         (activity) -> {
                             mMediator =
-                                    new BookmarkBatchUploadCardMediator(
+                                    new BatchUploadCardMediator(
                                             activity,
                                             (LifecycleOwner) activity,
                                             mModalDialogManager,
@@ -143,7 +143,7 @@
                 .onActivity(
                         (activity) -> {
                             mMediator =
-                                    new BookmarkBatchUploadCardMediator(
+                                    new BatchUploadCardMediator(
                                             activity,
                                             (LifecycleOwner) activity,
                                             mModalDialogManager,
@@ -183,7 +183,7 @@
                 .onActivity(
                         (activity) -> {
                             mMediator =
-                                    new BookmarkBatchUploadCardMediator(
+                                    new BatchUploadCardMediator(
                                             activity,
                                             (LifecycleOwner) activity,
                                             mModalDialogManager,
diff --git a/chrome/browser/sync/test/integration/single_client_bookmarks_sync_test.cc b/chrome/browser/sync/test/integration/single_client_bookmarks_sync_test.cc
index 93b465d..da99c9b 100644
--- a/chrome/browser/sync/test/integration/single_client_bookmarks_sync_test.cc
+++ b/chrome/browser/sync/test/integration/single_client_bookmarks_sync_test.cc
@@ -3186,6 +3186,27 @@
       /*sample=*/4 /*kAccountDataIsStrictSubsetOfLocalData*/,
       /*expected_bucket_count=*/1);
 
+  histogram_tester.ExpectUniqueSample(
+      "Sync.BookmarkModelMerger.Comparison2.MatchesPreviousGaiaId."
+      "ConsideringAllBookmarks.ByUrl",
+      /*sample=*/8 /*kIntersectionBetween50And90Percent*/,
+      /*expected_bucket_count=*/1);
+  histogram_tester.ExpectUniqueSample(
+      "Sync.BookmarkModelMerger.Comparison2.MatchesPreviousGaiaId."
+      "ConsideringAllBookmarks.ByUrlAndUuid",
+      /*sample=*/8 /*kIntersectionBetween50And90Percent*/,
+      /*expected_bucket_count=*/1);
+  histogram_tester.ExpectUniqueSample(
+      "Sync.BookmarkModelMerger.Comparison2.MatchesPreviousGaiaId."
+      "UnderBookmarksBar.ByUrlAndUuid",
+      /*sample=*/3 /*kExactMatchNonEmpty*/,
+      /*expected_bucket_count=*/1);
+  histogram_tester.ExpectUniqueSample(
+      "Sync.BookmarkModelMerger.Comparison2.MatchesPreviousGaiaId."
+      "ConsideringAllBookmarks.ByUrlAndUuid.Between1And19LocalUrlBookmarks",
+      /*sample=*/8 /*kIntersectionBetween50And90Percent*/,
+      /*expected_bucket_count=*/1);
+
   // Enable Sync with a different account.
   GetClient(kSingleProfileIndex)->SignOutPrimaryAccount();
   ASSERT_TRUE(GetClient(kSingleProfileIndex)
diff --git a/chrome/browser/tab_group_sync/android/java/src/org/chromium/chrome/browser/tab_group_sync/StartupHelper.java b/chrome/browser/tab_group_sync/android/java/src/org/chromium/chrome/browser/tab_group_sync/StartupHelper.java
index 9a24532..3c359ee 100644
--- a/chrome/browser/tab_group_sync/android/java/src/org/chromium/chrome/browser/tab_group_sync/StartupHelper.java
+++ b/chrome/browser/tab_group_sync/android/java/src/org/chromium/chrome/browser/tab_group_sync/StartupHelper.java
@@ -4,7 +4,6 @@
 
 package org.chromium.chrome.browser.tab_group_sync;
 
-import org.chromium.base.metrics.RecordHistogram;
 import org.chromium.build.annotations.NullMarked;
 import org.chromium.chrome.browser.preferences.Pref;
 import org.chromium.chrome.browser.tab.Tab;
@@ -93,16 +92,12 @@
 
     private void closeDeletedGroupsFromTabModel() {
         LogUtils.log(TAG, "closeDeletedGroupsFromTabModel");
-        int tabGroupsClosed = 0;
         for (LocalTabGroupId tabGroupId : mTabGroupSyncService.getDeletedGroupIds()) {
             if (!TabGroupSyncUtils.isInCurrentWindow(mTabGroupModelFilter, tabGroupId)) continue;
 
             mLocalTabGroupMutationHelper.closeTabGroup(
                     tabGroupId, ClosingSource.CLEANED_UP_ON_STARTUP);
-            tabGroupsClosed++;
         }
-        RecordHistogram.recordCount1000Histogram(
-                "TabGroups.CloseTabGroupsDeletedRemotely", tabGroupsClosed);
     }
 
     /**
diff --git a/chrome/browser/tab_group_sync/android/java/src/org/chromium/chrome/browser/tab_group_sync/StartupHelperUnitTest.java b/chrome/browser/tab_group_sync/android/java/src/org/chromium/chrome/browser/tab_group_sync/StartupHelperUnitTest.java
index 6b1db67..948f8ef5 100644
--- a/chrome/browser/tab_group_sync/android/java/src/org/chromium/chrome/browser/tab_group_sync/StartupHelperUnitTest.java
+++ b/chrome/browser/tab_group_sync/android/java/src/org/chromium/chrome/browser/tab_group_sync/StartupHelperUnitTest.java
@@ -27,7 +27,6 @@
 
 import org.chromium.base.Token;
 import org.chromium.base.test.BaseRobolectricTestRunner;
-import org.chromium.base.test.util.HistogramWatcher;
 import org.chromium.chrome.browser.preferences.Pref;
 import org.chromium.chrome.browser.profiles.Profile;
 import org.chromium.chrome.browser.tab.Tab;
@@ -154,16 +153,12 @@
         List<LocalTabGroupId> deletedIds = new ArrayList<>();
         deletedIds.add(LOCAL_TAB_GROUP_ID_1);
         when(mTabGroupSyncService.getDeletedGroupIds()).thenReturn(deletedIds);
-        HistogramWatcher histogramExpectation =
-                HistogramWatcher.newSingleRecordWatcher(
-                        "TabGroups.CloseTabGroupsDeletedRemotely", 1);
 
         // Init. Deleted groups should be closed.
         mStartupHelper.initializeTabGroupSync();
         verify(mTabGroupSyncService).getDeletedGroupIds();
         verify(mLocalMutationHelper, atLeastOnce())
                 .closeTabGroup(eq(LOCAL_TAB_GROUP_ID_1), eq(ClosingSource.CLEANED_UP_ON_STARTUP));
-        histogramExpectation.assertExpected();
     }
 
     @Test
diff --git a/chrome/browser/tab_group_sync/android/java/src/org/chromium/chrome/browser/tab_group_sync/TabGroupSyncRemoteObserver.java b/chrome/browser/tab_group_sync/android/java/src/org/chromium/chrome/browser/tab_group_sync/TabGroupSyncRemoteObserver.java
index 207e71dee..51877da 100644
--- a/chrome/browser/tab_group_sync/android/java/src/org/chromium/chrome/browser/tab_group_sync/TabGroupSyncRemoteObserver.java
+++ b/chrome/browser/tab_group_sync/android/java/src/org/chromium/chrome/browser/tab_group_sync/TabGroupSyncRemoteObserver.java
@@ -7,7 +7,6 @@
 import android.text.TextUtils;
 
 import org.chromium.base.Callback;
-import org.chromium.base.metrics.RecordHistogram;
 import org.chromium.base.supplier.Supplier;
 import org.chromium.build.annotations.NullMarked;
 import org.chromium.build.annotations.Nullable;
@@ -136,7 +135,6 @@
 
         mEnableLocalObserverCallback.onResult(false);
         mLocalTabGroupMutationHelper.closeTabGroup(localId, ClosingSource.DELETED_FROM_SYNC);
-        RecordHistogram.recordCount1000Histogram("TabGroups.CloseTabGroupsDeletedRemotely", 1);
         mEnableLocalObserverCallback.onResult(true);
     }
 
diff --git a/chrome/browser/tab_group_sync/android/java/src/org/chromium/chrome/browser/tab_group_sync/TabGroupSyncRemoteObserverUnitTest.java b/chrome/browser/tab_group_sync/android/java/src/org/chromium/chrome/browser/tab_group_sync/TabGroupSyncRemoteObserverUnitTest.java
index 2183a4b6..991f601 100644
--- a/chrome/browser/tab_group_sync/android/java/src/org/chromium/chrome/browser/tab_group_sync/TabGroupSyncRemoteObserverUnitTest.java
+++ b/chrome/browser/tab_group_sync/android/java/src/org/chromium/chrome/browser/tab_group_sync/TabGroupSyncRemoteObserverUnitTest.java
@@ -26,7 +26,6 @@
 import org.chromium.base.Token;
 import org.chromium.base.supplier.Supplier;
 import org.chromium.base.test.BaseRobolectricTestRunner;
-import org.chromium.base.test.util.HistogramWatcher;
 import org.chromium.chrome.browser.preferences.Pref;
 import org.chromium.chrome.browser.profiles.Profile;
 import org.chromium.chrome.browser.tab.MockTab;
@@ -194,24 +193,15 @@
     @Test
     public void testTabGroupRemoved() {
         addOneTab();
-        HistogramWatcher histogramExpectation =
-                HistogramWatcher.newSingleRecordWatcher(
-                        "TabGroups.CloseTabGroupsDeletedRemotely", 1);
         mRemoteObserver.onTabGroupRemoved(LOCAL_TAB_GROUP_ID_1, TriggerSource.REMOTE);
         verify(mLocalMutationHelper).closeTabGroup(any(), eq(ClosingSource.DELETED_FROM_SYNC));
-        histogramExpectation.assertExpected();
     }
 
     @Test
     public void testTabGroupRemovedForDifferentWindow() {
         addOneTab();
-        HistogramWatcher histogramExpectation =
-                HistogramWatcher.newBuilder()
-                        .expectNoRecords("TabGroups.CloseTabGroupsDeletedRemotely")
-                        .build();
         mRemoteObserver.onTabGroupRemoved(LOCAL_TAB_GROUP_ID_2, TriggerSource.REMOTE);
         verify(mLocalMutationHelper, never()).closeTabGroup(any(), anyInt());
-        histogramExpectation.assertExpected();
     }
 
     @Test
diff --git a/chrome/browser/tabmodel/BUILD.gn b/chrome/browser/tabmodel/BUILD.gn
index 338c8ab2..3c08939 100644
--- a/chrome/browser/tabmodel/BUILD.gn
+++ b/chrome/browser/tabmodel/BUILD.gn
@@ -24,6 +24,7 @@
     "android/java/src/org/chromium/chrome/browser/tabmodel/IncognitoTabHostRegistry.java",
     "android/java/src/org/chromium/chrome/browser/tabmodel/IncognitoTabHostUtils.java",
     "android/java/src/org/chromium/chrome/browser/tabmodel/IncognitoTabModel.java",
+    "android/java/src/org/chromium/chrome/browser/tabmodel/IncognitoTabModelHolder.java",
     "android/java/src/org/chromium/chrome/browser/tabmodel/IncognitoTabModelImpl.java",
     "android/java/src/org/chromium/chrome/browser/tabmodel/IncognitoTabModelInternal.java",
     "android/java/src/org/chromium/chrome/browser/tabmodel/IncognitoTabModelObserver.java",
@@ -54,6 +55,7 @@
     "android/java/src/org/chromium/chrome/browser/tabmodel/TabList.java",
     "android/java/src/org/chromium/chrome/browser/tabmodel/TabModel.java",
     "android/java/src/org/chromium/chrome/browser/tabmodel/TabModelActionListener.java",
+    "android/java/src/org/chromium/chrome/browser/tabmodel/TabModelHolder.java",
     "android/java/src/org/chromium/chrome/browser/tabmodel/TabModelInitializer.java",
     "android/java/src/org/chromium/chrome/browser/tabmodel/TabModelInternal.java",
     "android/java/src/org/chromium/chrome/browser/tabmodel/TabModelObserver.java",
diff --git a/chrome/browser/tabmodel/android/java/src/org/chromium/chrome/browser/tabmodel/IncognitoTabModelHolder.java b/chrome/browser/tabmodel/android/java/src/org/chromium/chrome/browser/tabmodel/IncognitoTabModelHolder.java
new file mode 100644
index 0000000..40fd4576
--- /dev/null
+++ b/chrome/browser/tabmodel/android/java/src/org/chromium/chrome/browser/tabmodel/IncognitoTabModelHolder.java
@@ -0,0 +1,22 @@
+// Copyright 2025 The Chromium Authors
+// Use of this source code is governed by a BSD-style license that can be
+// found in the LICENSE file.
+
+package org.chromium.chrome.browser.tabmodel;
+
+import org.chromium.build.annotations.NullMarked;
+
+/**
+ * Holds an {@link IncognitoTabModelInternal} and an incognito {@link TabGroupModelFilterInternal}.
+ */
+@NullMarked
+/*package*/ class IncognitoTabModelHolder {
+    public final IncognitoTabModelInternal tabModel;
+    public final TabGroupModelFilterInternal tabGroupModelFilter;
+
+    public IncognitoTabModelHolder(
+            IncognitoTabModelInternal tabModel, TabGroupModelFilterInternal tabGroupModelFilter) {
+        this.tabModel = tabModel;
+        this.tabGroupModelFilter = tabGroupModelFilter;
+    }
+}
diff --git a/chrome/browser/tabmodel/android/java/src/org/chromium/chrome/browser/tabmodel/TabModelHolder.java b/chrome/browser/tabmodel/android/java/src/org/chromium/chrome/browser/tabmodel/TabModelHolder.java
new file mode 100644
index 0000000..4e3461e
--- /dev/null
+++ b/chrome/browser/tabmodel/android/java/src/org/chromium/chrome/browser/tabmodel/TabModelHolder.java
@@ -0,0 +1,20 @@
+// Copyright 2025 The Chromium Authors
+// Use of this source code is governed by a BSD-style license that can be
+// found in the LICENSE file.
+
+package org.chromium.chrome.browser.tabmodel;
+
+import org.chromium.build.annotations.NullMarked;
+
+/** Holds regular versions of {@link TabModelInternal} and {@link TabGroupModelFilterInternal}. */
+@NullMarked
+/*package*/ class TabModelHolder {
+    public final TabModelInternal tabModel;
+    public final TabGroupModelFilterInternal tabGroupModelFilter;
+
+    public TabModelHolder(
+            TabModelInternal tabModel, TabGroupModelFilterInternal tabGroupModelFilter) {
+        this.tabModel = tabModel;
+        this.tabGroupModelFilter = tabGroupModelFilter;
+    }
+}
diff --git a/chrome/browser/tabmodel/android/java/src/org/chromium/chrome/browser/tabmodel/TabModelSelectorTabRegistrationObserverUnitTest.java b/chrome/browser/tabmodel/android/java/src/org/chromium/chrome/browser/tabmodel/TabModelSelectorTabRegistrationObserverUnitTest.java
index 26e750c..d199826a 100644
--- a/chrome/browser/tabmodel/android/java/src/org/chromium/chrome/browser/tabmodel/TabModelSelectorTabRegistrationObserverUnitTest.java
+++ b/chrome/browser/tabmodel/android/java/src/org/chromium/chrome/browser/tabmodel/TabModelSelectorTabRegistrationObserverUnitTest.java
@@ -92,7 +92,7 @@
                         selector,
                         normalTabRemover,
                         /* supportUndo= */ true,
-                        /* isArchivedTabModel= */ true);
+                        /* isArchivedTabModel= */ false);
         TabRemover incognitoTabRemover =
                 new PassthroughTabRemover(
                         () ->
@@ -113,10 +113,9 @@
                         /* supportUndo= */ false,
                         /* trackInNativeModelList= */ true);
 
-        TabUngrouperFactory factory =
-                (isIncognitoBranded, tabGroupModelFilterSupplier) ->
-                        new PassthroughTabUngrouper(tabGroupModelFilterSupplier);
-        selector.initialize(normalTabModel, incognitoTabModel, factory);
+        selector.initialize(
+                TabModelHolderFactory.createTabModelHolderForTesting(normalTabModel),
+                TabModelHolderFactory.createIncognitoTabModelHolderForTesting(incognitoTabModel));
 
         return selector;
     }
diff --git a/chrome/browser/touch_to_fill/password_manager/android/internal/java/strings/translations/android_touch_to_fill_strings_ar.xtb b/chrome/browser/touch_to_fill/password_manager/android/internal/java/strings/translations/android_touch_to_fill_strings_ar.xtb
index a9c04212..07c817a6 100644
--- a/chrome/browser/touch_to_fill/password_manager/android/internal/java/strings/translations/android_touch_to_fill_strings_ar.xtb
+++ b/chrome/browser/touch_to_fill/password_manager/android/internal/java/strings/translations/android_touch_to_fill_strings_ar.xtb
@@ -18,11 +18,13 @@
 <translation id="5591247451101092906">هل تريد استخدام كلمة المرور أو مفتاح المرور المحفوظَين؟</translation>
 <translation id="5624120631404540903">إدارة كلمات المرور</translation>
 <translation id="592182999816790476">تم حفظ كلمة المرور لحساب <ph name="USERNAME" /> على <ph name="WEBSITE" /></translation>
+<translation id="593924516471361340">تم حفظ كلمة المرور المؤقتة لاسترداد الحساب في حال حدوث مشكلة لحساب <ph name="USERNAME" /> على <ph name="WEBSITE" /></translation>
 <translation id="6560306912274274630">مفتاح مرور "<ph name="USERNAME" />": عليك استخدام قفل الشاشة.</translation>
 <translation id="7069750557362084654">{NUM_PASSWORDS,plural, =1{هناك كلمة مرور جديدة لهذا الموقع الإلكتروني}zero{ما مِن كلمات مرور جديدة لهذا الموقع الإلكتروني}two{هناك كلمتا مرور جديدتان لهذا الموقع الإلكتروني}few{هناك كلمات مرور جديدة لهذا الموقع الإلكتروني}many{هناك كلمات مرور جديدة لهذا الموقع الإلكتروني}other{هناك كلمات مرور جديدة لهذا الموقع الإلكتروني}}</translation>
 <translation id="7286867818472074330">اختيار مفتاح المرور</translation>
 <translation id="7669320311687290322"><ph name="ITEM_LABEL" />، <ph name="ITEM_POSITION" /> من إجمالي <ph name="ITEMS_TOTAL" /></translation>
 <translation id="7738288782501322815">لقد تلقّيت كلمات مرور للموقع الإلكتروني <ph name="SITE_NAME" /></translation>
+<translation id="8202660122967066153">كلمة المرور المؤقتة لاسترداد الحساب في حال حدوث مشكلة لحساب <ph name="USERNAME" /></translation>
 <translation id="8363484128299778310">استرداد مؤقت في حال حدوث مشكلة</translation>
 <translation id="8614995815226664591">لقد تلقّيت من "<ph name="SENDER_NAME" />" كلمة مرور للموقع الإلكتروني <ph name="SITE_NAME" /></translation>
 <translation id="8891372124884726271">تم إغلاق قائمة بيانات الاعتماد.</translation>
diff --git a/chrome/browser/touch_to_fill/password_manager/android/internal/java/strings/translations/android_touch_to_fill_strings_hu.xtb b/chrome/browser/touch_to_fill/password_manager/android/internal/java/strings/translations/android_touch_to_fill_strings_hu.xtb
index f6b9d32..ea6a616 100644
--- a/chrome/browser/touch_to_fill/password_manager/android/internal/java/strings/translations/android_touch_to_fill_strings_hu.xtb
+++ b/chrome/browser/touch_to_fill/password_manager/android/internal/java/strings/translations/android_touch_to_fill_strings_hu.xtb
@@ -18,11 +18,13 @@
 <translation id="5591247451101092906">Mentett jelszót vagy azonosítókulcsot szeretne használni?</translation>
 <translation id="5624120631404540903">Jelszavak kezelése</translation>
 <translation id="592182999816790476"><ph name="USERNAME" /> jelszava, amely a(z) <ph name="WEBSITE" /> webhelyhez van mentve</translation>
+<translation id="593924516471361340">A(z) <ph name="USERNAME" /> felhasználóhoz mentett ideiglenes helyreállítási jelszó probléma esetére a következő webhelyhez: <ph name="WEBSITE" /></translation>
 <translation id="6560306912274274630"><ph name="USERNAME" /> azonosítókulcsa, használja a képernyőzárat</translation>
 <translation id="7069750557362084654">{NUM_PASSWORDS,plural, =1{Új jelszó ehhez a webhelyhez}other{Új jelszavak ehhez a webhelyhez}}</translation>
 <translation id="7286867818472074330">Azonosítókulcs kiválasztása</translation>
 <translation id="7669320311687290322"><ph name="ITEM_LABEL" />, <ph name="ITEM_POSITION" />. pozíció, összesen: <ph name="ITEMS_TOTAL" />.</translation>
 <translation id="7738288782501322815">Ön jelszavakat kapott a következőhöz: <ph name="SITE_NAME" /></translation>
+<translation id="8202660122967066153">Ideiglenes helyreállítási jelszó probléma esetére a következőhöz: <ph name="USERNAME" /></translation>
 <translation id="8363484128299778310">Probléma esetén ideiglenes helyreállítás</translation>
 <translation id="8614995815226664591"><ph name="SENDER_NAME" /> jelszót osztott meg Önnel a következőhöz: <ph name="SITE_NAME" /></translation>
 <translation id="8891372124884726271">A hitelesítési adatok listája be van zárva.</translation>
diff --git a/chrome/browser/touch_to_fill/password_manager/android/internal/java/strings/translations/android_touch_to_fill_strings_ja.xtb b/chrome/browser/touch_to_fill/password_manager/android/internal/java/strings/translations/android_touch_to_fill_strings_ja.xtb
index 7d93fdf..17c6e33 100644
--- a/chrome/browser/touch_to_fill/password_manager/android/internal/java/strings/translations/android_touch_to_fill_strings_ja.xtb
+++ b/chrome/browser/touch_to_fill/password_manager/android/internal/java/strings/translations/android_touch_to_fill_strings_ja.xtb
@@ -18,11 +18,13 @@
 <translation id="5591247451101092906">保存したパスワードまたはパスキーを使用しますか?</translation>
 <translation id="5624120631404540903">パスワードを管理</translation>
 <translation id="592182999816790476"><ph name="WEBSITE" /> に <ph name="USERNAME" /> のパスワードを保存しました</translation>
+<translation id="593924516471361340"><ph name="WEBSITE" /> の <ph name="USERNAME" /> で問題が発生した場合の一時的な再設定パスワードを保存しました</translation>
 <translation id="6560306912274274630"><ph name="USERNAME" /> のパスキーです。画面ロックを使用してください</translation>
 <translation id="7069750557362084654">{NUM_PASSWORDS,plural, =1{このサイトの新しいパスワード}other{このサイトの新しいパスワード}}</translation>
 <translation id="7286867818472074330">パスキーを選択</translation>
 <translation id="7669320311687290322"><ph name="ITEM_LABEL" />(<ph name="ITEM_POSITION" /> / <ph name="ITEMS_TOTAL" />)</translation>
 <translation id="7738288782501322815"><ph name="SITE_NAME" /> のパスワードを受信しました</translation>
+<translation id="8202660122967066153"><ph name="USERNAME" /> で問題が発生した場合の一時的な再設定パスワード</translation>
 <translation id="8363484128299778310">問題発生時用の一時的な再設定パスワード</translation>
 <translation id="8614995815226664591"><ph name="SENDER_NAME" /> さんが <ph name="SITE_NAME" /> のパスワードをあなたと共有しました</translation>
 <translation id="8891372124884726271">認証情報のリストは閉じています。</translation>
diff --git a/chrome/browser/touch_to_fill/password_manager/android/internal/java/strings/translations/android_touch_to_fill_strings_ka.xtb b/chrome/browser/touch_to_fill/password_manager/android/internal/java/strings/translations/android_touch_to_fill_strings_ka.xtb
index 58ba055..42dcd1d6 100644
--- a/chrome/browser/touch_to_fill/password_manager/android/internal/java/strings/translations/android_touch_to_fill_strings_ka.xtb
+++ b/chrome/browser/touch_to_fill/password_manager/android/internal/java/strings/translations/android_touch_to_fill_strings_ka.xtb
@@ -18,11 +18,13 @@
 <translation id="5591247451101092906">გსურთ შენახული პაროლის ან წვდომის გასაღების გამოყენება?</translation>
 <translation id="5624120631404540903">პაროლების მართვა</translation>
 <translation id="592182999816790476"><ph name="USERNAME" />-ის პაროლი შეინახა <ph name="WEBSITE" />-ისთვის</translation>
+<translation id="593924516471361340">დროებითი პაროლი ადღგენისთვის, <ph name="WEBSITE" />-ისთვის შენახულ <ph name="USERNAME" />-თან დაკავშირებით პრობლემების წარმოქმნის შემთხვევაში</translation>
 <translation id="6560306912274274630">წვდომის გასაღები <ph name="USERNAME" />-ისთვის, გამოიყენეთ ეკრანის დაბლოკვის მეთოდი</translation>
 <translation id="7069750557362084654">{NUM_PASSWORDS,plural, =1{ახალი პაროლი ამ საიტისთვის}other{ახალი პაროლები ამ საიტისთვის}}</translation>
 <translation id="7286867818472074330">აირჩიეთ წვდომის გასაღები</translation>
 <translation id="7669320311687290322"><ph name="ITEM_LABEL" />, <ph name="ITEM_POSITION" /> / <ph name="ITEMS_TOTAL" />-დან.</translation>
 <translation id="7738288782501322815">თქვენ მიიღეთ პაროლები <ph name="SITE_NAME" />-ისთვის</translation>
+<translation id="8202660122967066153">დროებითი პაროლი ადღგენისთვის, <ph name="USERNAME" />-თან დაკავშირებით პრობლემების წარმოქმნის შემთხვევაში</translation>
 <translation id="8363484128299778310">დროებით აღდგენა პრობლემის შემთხვევაში</translation>
 <translation id="8614995815226664591"><ph name="SENDER_NAME" />-მა გაგიზიარათ <ph name="SITE_NAME" />-ის პაროლი</translation>
 <translation id="8891372124884726271">ავტორიზაციის მონაცემების სია დახურულია</translation>
diff --git a/chrome/browser/touch_to_fill/password_manager/android/internal/java/strings/translations/android_touch_to_fill_strings_km.xtb b/chrome/browser/touch_to_fill/password_manager/android/internal/java/strings/translations/android_touch_to_fill_strings_km.xtb
index 9d41754..f998f990 100644
--- a/chrome/browser/touch_to_fill/password_manager/android/internal/java/strings/translations/android_touch_to_fill_strings_km.xtb
+++ b/chrome/browser/touch_to_fill/password_manager/android/internal/java/strings/translations/android_touch_to_fill_strings_km.xtb
@@ -18,11 +18,13 @@
 <translation id="5591247451101092906">ប្រើប្រាស់​ពាក្យសម្ងាត់ ឬ​កូដសម្ងាត់​ដែល​បាន​រក្សាទុកឬ?</translation>
 <translation id="5624120631404540903">គ្រប់គ្រងពាក្យសម្ងាត់</translation>
 <translation id="592182999816790476">ពាក្យ​សម្ងាត់​សម្រាប់ <ph name="USERNAME" /> ត្រូវបាន​រក្សាទុក​សម្រាប់ <ph name="WEBSITE" /></translation>
+<translation id="593924516471361340">បាន​រក្សាទុកពាក្យ​សម្ងាត់​សម្រាប់​ការស្ដារឡើងវិញ​ជាបណ្ដោះអាសន្នសម្រាប់ <ph name="WEBSITE" /> ក្នុងករណី​ដែលមាន​បញ្ហា​សម្រាប់ <ph name="USERNAME" /></translation>
 <translation id="6560306912274274630">កូដសម្ងាត់​សម្រាប់ <ph name="USERNAME" />, ប្រើការចាក់សោអេក្រង់​របស់អ្នក</translation>
 <translation id="7069750557362084654">{NUM_PASSWORDS,plural, =1{ពាក្យសម្ងាត់​ថ្មី​សម្រាប់​គេហទំព័រ​នេះ}other{ពាក្យសម្ងាត់​ថ្មី​សម្រាប់​គេហទំព័រ​នេះ}}</translation>
 <translation id="7286867818472074330">ជ្រើសរើសកូដសម្ងាត់</translation>
 <translation id="7669320311687290322"><ph name="ITEM_LABEL" />, <ph name="ITEM_POSITION" /> នៃ <ph name="ITEMS_TOTAL" />។</translation>
 <translation id="7738288782501322815">អ្នកបានទទួលពាក្យ​សម្ងាត់សម្រាប់ <ph name="SITE_NAME" /></translation>
+<translation id="8202660122967066153">ពាក្យ​សម្ងាត់​សម្រាប់​ការស្ដារឡើងវិញ​ជាបណ្ដោះអាសន្ន​ក្នុងករណី​ដែលមាន​បញ្ហា​សម្រាប់ <ph name="USERNAME" /></translation>
 <translation id="8363484128299778310">ការស្ដារ​ឡើងវិញ​ជាបណ្ដោះ​អាសន្ន ក្នុងករណី​ដែលមាន​បញ្ហា</translation>
 <translation id="8614995815226664591"><ph name="SENDER_NAME" /> បានចែករំលែក​ពាក្យសម្ងាត់​ជាមួយអ្នក​សម្រាប់ <ph name="SITE_NAME" /></translation>
 <translation id="8891372124884726271">បញ្ជី​ព័ត៌មានផ្ទៀងផ្ទាត់​ត្រូវ​បានបិទ។</translation>
diff --git a/chrome/browser/touch_to_fill/password_manager/android/internal/java/strings/translations/android_touch_to_fill_strings_mn.xtb b/chrome/browser/touch_to_fill/password_manager/android/internal/java/strings/translations/android_touch_to_fill_strings_mn.xtb
index 8ac6cb9..6d6101e 100644
--- a/chrome/browser/touch_to_fill/password_manager/android/internal/java/strings/translations/android_touch_to_fill_strings_mn.xtb
+++ b/chrome/browser/touch_to_fill/password_manager/android/internal/java/strings/translations/android_touch_to_fill_strings_mn.xtb
@@ -18,11 +18,13 @@
 <translation id="5591247451101092906">Хадгалсан нууц үг эсвэл passkey-г ашиглах уу?</translation>
 <translation id="5624120631404540903">Нууц үгийг удирдах</translation>
 <translation id="592182999816790476"><ph name="WEBSITE" />-д хадгалсан <ph name="USERNAME" />-н нууц үг</translation>
+<translation id="593924516471361340"><ph name="USERNAME" />-д асуудал гарсан тохиолдолд ашиглах <ph name="WEBSITE" />-д хадгалсан түр зуурын сэргээх нууц үг</translation>
 <translation id="6560306912274274630"><ph name="USERNAME" />-н нэвтрэх түлхүүр, дэлгэцийн түгжээгээ ашиглана уу</translation>
 <translation id="7069750557362084654">{NUM_PASSWORDS,plural, =1{Энэ сайтын шинэ нууц үг}other{Энэ сайтын шинэ нууц үгнүүд}}</translation>
 <translation id="7286867818472074330">Нэвтрэх түлхүүр сонгох</translation>
 <translation id="7669320311687290322"><ph name="ITEM_LABEL" />, <ph name="ITEMS_TOTAL" />-с <ph name="ITEM_POSITION" />.</translation>
 <translation id="7738288782501322815">Та <ph name="SITE_NAME" />-н нууц үгнүүдийг хүлээн авсан</translation>
+<translation id="8202660122967066153"><ph name="USERNAME" />-д асуудал гарсан тохиолдолд ашиглах түр зуурын сэргээх нууц үг</translation>
 <translation id="8363484128299778310">Асуудал гарсан тохиолдолд түр сэргээх</translation>
 <translation id="8614995815226664591"><ph name="SENDER_NAME" /> тантай <ph name="SITE_NAME" />-н нууц үгийг хуваалцсан</translation>
 <translation id="8891372124884726271">Мандат үнэмлэхийн жагсаалтыг хаасан.</translation>
diff --git a/chrome/browser/touch_to_fill/password_manager/android/internal/java/strings/translations/android_touch_to_fill_strings_ms.xtb b/chrome/browser/touch_to_fill/password_manager/android/internal/java/strings/translations/android_touch_to_fill_strings_ms.xtb
index 2525d3ac6..6840cb43 100644
--- a/chrome/browser/touch_to_fill/password_manager/android/internal/java/strings/translations/android_touch_to_fill_strings_ms.xtb
+++ b/chrome/browser/touch_to_fill/password_manager/android/internal/java/strings/translations/android_touch_to_fill_strings_ms.xtb
@@ -18,11 +18,13 @@
 <translation id="5591247451101092906">Gunakan kata laluan atau kunci laluan yang disimpan?</translation>
 <translation id="5624120631404540903">Urus kata laluan</translation>
 <translation id="592182999816790476">Kata laluan untuk <ph name="USERNAME" /> disimpan untuk <ph name="WEBSITE" /></translation>
+<translation id="593924516471361340">Kata laluan pemulihan sementara sekiranya berlaku masalah untuk <ph name="USERNAME" /> disimpan untuk <ph name="WEBSITE" /></translation>
 <translation id="6560306912274274630">Kunci laluan untuk <ph name="USERNAME" />, gunakan kunci skrin anda</translation>
 <translation id="7069750557362084654">{NUM_PASSWORDS,plural, =1{Kata laluan baharu untuk laman ini}other{Kata laluan baharu untuk laman ini}}</translation>
 <translation id="7286867818472074330">Pilih kunci laluan</translation>
 <translation id="7669320311687290322"><ph name="ITEM_LABEL" />, <ph name="ITEM_POSITION" /> daripada <ph name="ITEMS_TOTAL" />.</translation>
 <translation id="7738288782501322815">Anda telah menerima kata laluan untuk <ph name="SITE_NAME" /></translation>
+<translation id="8202660122967066153">Kata laluan pemulihan sementara sekiranya berlaku masalah untuk <ph name="USERNAME" /></translation>
 <translation id="8363484128299778310">Pemulihan sementara sekiranya berlaku masalah</translation>
 <translation id="8614995815226664591"><ph name="SENDER_NAME" /> telah berkongsi kata laluan dengan anda pada <ph name="SITE_NAME" /></translation>
 <translation id="8891372124884726271">Senarai bukti kelayakan ditutup.</translation>
diff --git a/chrome/browser/touch_to_fill/password_manager/android/internal/java/strings/translations/android_touch_to_fill_strings_nl.xtb b/chrome/browser/touch_to_fill/password_manager/android/internal/java/strings/translations/android_touch_to_fill_strings_nl.xtb
index 1e141cd..6aa67aa 100644
--- a/chrome/browser/touch_to_fill/password_manager/android/internal/java/strings/translations/android_touch_to_fill_strings_nl.xtb
+++ b/chrome/browser/touch_to_fill/password_manager/android/internal/java/strings/translations/android_touch_to_fill_strings_nl.xtb
@@ -18,11 +18,13 @@
 <translation id="5591247451101092906">Opgeslagen wachtwoord of toegangssleutel gebruiken?</translation>
 <translation id="5624120631404540903">Wachtwoorden beheren</translation>
 <translation id="592182999816790476">Wachtwoord voor <ph name="USERNAME" /> opgeslagen voor <ph name="WEBSITE" /></translation>
+<translation id="593924516471361340">Tijdelijk herstelwachtwoord in geval van problemen voor <ph name="USERNAME" /> opgeslagen voor <ph name="WEBSITE" /></translation>
 <translation id="6560306912274274630">Toegangssleutel voor <ph name="USERNAME" />, gebruik je schermvergrendeling</translation>
 <translation id="7069750557362084654">{NUM_PASSWORDS,plural, =1{Nieuw wachtwoord voor deze site}other{Nieuwe wachtwoorden voor deze site}}</translation>
 <translation id="7286867818472074330">Toegangssleutel selecteren</translation>
 <translation id="7669320311687290322"><ph name="ITEM_LABEL" />, <ph name="ITEM_POSITION" /> van <ph name="ITEMS_TOTAL" />.</translation>
 <translation id="7738288782501322815">Je hebt wachtwoorden gekregen voor <ph name="SITE_NAME" /></translation>
+<translation id="8202660122967066153">Tijdelijk herstelwachtwoord in geval van problemen voor <ph name="USERNAME" /></translation>
 <translation id="8363484128299778310">Tijdelijk herstel bij problemen</translation>
 <translation id="8614995815226664591"><ph name="SENDER_NAME" /> heeft een wachtwoord met je gedeeld voor <ph name="SITE_NAME" /></translation>
 <translation id="8891372124884726271">Lijst met inloggegevens is gesloten.</translation>
diff --git a/chrome/browser/touch_to_fill/password_manager/android/internal/java/strings/translations/android_touch_to_fill_strings_pa.xtb b/chrome/browser/touch_to_fill/password_manager/android/internal/java/strings/translations/android_touch_to_fill_strings_pa.xtb
index e22f0ab..aea634f 100644
--- a/chrome/browser/touch_to_fill/password_manager/android/internal/java/strings/translations/android_touch_to_fill_strings_pa.xtb
+++ b/chrome/browser/touch_to_fill/password_manager/android/internal/java/strings/translations/android_touch_to_fill_strings_pa.xtb
@@ -18,11 +18,13 @@
 <translation id="5591247451101092906">ਕੀ ਰੱਖਿਅਤ ਕੀਤੇ ਪਾਸਵਰਡ ਜਾਂ ਪਾਸਕੀ ਦੀ ਵਰਤੋਂ ਕਰਨੀ ਹੈ?</translation>
 <translation id="5624120631404540903">ਪਾਸਵਰਡ ਵਿਵਸਥਿਤ ਕਰੋ</translation>
 <translation id="592182999816790476"><ph name="WEBSITE" /> ਦੇ ਲਈ <ph name="USERNAME" /> ਦਾ ਪਾਸਵਰਡ ਰੱਖਿਅਤ ਕੀਤਾ ਗਿਆ</translation>
+<translation id="593924516471361340"><ph name="WEBSITE" /> ਲਈ ਰੱਖਿਅਤ ਕੀਤੇ <ph name="USERNAME" /> ਵਿੱਚ ਸਮੱਸਿਆ ਹੋਣ ਦੀ ਸਥਿਤੀ ਵਿੱਚ ਅਸਥਾਈ ਰਿਕਵਰੀ ਪਾਸਵਰਡ</translation>
 <translation id="6560306912274274630"><ph name="USERNAME" /> ਲਈ ਪਾਸਕੀ, ਆਪਣਾ ਸਕ੍ਰੀਨ ਲਾਕ ਵਰਤੋ</translation>
 <translation id="7069750557362084654">{NUM_PASSWORDS,plural, =1{ਇਸ ਸਾਈਟ ਲਈ ਨਵਾਂ ਪਾਸਵਰਡ}one{ਇਸ ਸਾਈਟ ਲਈ ਨਵਾਂ ਪਾਸਵਰਡ}other{ਇਸ ਸਾਈਟ ਲਈ ਨਵੇਂ ਪਾਸਵਰਡ}}</translation>
 <translation id="7286867818472074330">ਪਾਸਕੀ ਚੁਣੋ</translation>
 <translation id="7669320311687290322"><ph name="ITEM_LABEL" />, <ph name="ITEMS_TOTAL" /> ਵਿੱਚੋਂ <ph name="ITEM_POSITION" />.</translation>
 <translation id="7738288782501322815">ਤੁਹਾਨੂੰ <ph name="SITE_NAME" /> ਦੇ ਪਾਸਵਰਡ ਪ੍ਰਾਪਤ ਹੋਏ ਹਨ</translation>
+<translation id="8202660122967066153"><ph name="USERNAME" /> ਵਿੱਚ ਸਮੱਸਿਆ ਹੋਣ ਦੀ ਸਥਿਤੀ ਵਿੱਚ ਅਸਥਾਈ ਰਿਕਵਰੀ ਪਾਸਵਰਡ</translation>
 <translation id="8363484128299778310">ਸਾਈਨ-ਇਨ ਦੌਰਾਨ ਸਮੱਸਿਆ ਆਉਣ 'ਤੇ ਰਿਕਵਰੀ ਪਾਸਵਰਡ ਵਰਤੋ</translation>
 <translation id="8614995815226664591"><ph name="SENDER_NAME" /> ਨੇ ਤੁਹਾਡੇ ਨਾਲ <ph name="SITE_NAME" /> ਦਾ ਪਾਸਵਰਡ ਸਾਂਝਾ ਕੀਤਾ ਹੈ</translation>
 <translation id="8891372124884726271">ਕ੍ਰੀਡੈਂਸ਼ੀਅਲ ਦੀ ਸੂਚੀ ਬੰਦ ਹੈ।</translation>
diff --git a/chrome/browser/touch_to_fill/password_manager/android/internal/java/strings/translations/android_touch_to_fill_strings_pl.xtb b/chrome/browser/touch_to_fill/password_manager/android/internal/java/strings/translations/android_touch_to_fill_strings_pl.xtb
index 33024ca..fab8d3e1 100644
--- a/chrome/browser/touch_to_fill/password_manager/android/internal/java/strings/translations/android_touch_to_fill_strings_pl.xtb
+++ b/chrome/browser/touch_to_fill/password_manager/android/internal/java/strings/translations/android_touch_to_fill_strings_pl.xtb
@@ -18,11 +18,13 @@
 <translation id="5591247451101092906">Użyć zapisanego hasła lub klucza?</translation>
 <translation id="5624120631404540903">Zarządzaj hasłami</translation>
 <translation id="592182999816790476">Hasło do witryny <ph name="WEBSITE" /> zapisane dla użytkownika <ph name="USERNAME" /></translation>
+<translation id="593924516471361340">Tymczasowe hasło przywracania w razie problemów z kontem <ph name="USERNAME" /> zapisane dla witryny <ph name="WEBSITE" /></translation>
 <translation id="6560306912274274630">Klucz dostępu dla użytkownika <ph name="USERNAME" />. Użyj blokady ekranu</translation>
 <translation id="7069750557362084654">{NUM_PASSWORDS,plural, =1{Nowe hasło do tej witryny}few{Nowe hasła do tej witryny}many{Nowe hasła do tej witryny}other{Nowe hasła do tej witryny}}</translation>
 <translation id="7286867818472074330">Wybierz klucz dostępu</translation>
 <translation id="7669320311687290322"><ph name="ITEM_LABEL" />, <ph name="ITEM_POSITION" /> z <ph name="ITEMS_TOTAL" />.</translation>
 <translation id="7738288782501322815">Ktoś przesłał Ci hasła do strony <ph name="SITE_NAME" /></translation>
+<translation id="8202660122967066153">Tymczasowe hasło przywracania w razie problemów z kontem <ph name="USERNAME" /></translation>
 <translation id="8363484128299778310">Tymczasowe odzyskiwanie w razie problemów</translation>
 <translation id="8614995815226664591"><ph name="SENDER_NAME" /> udostępnia Ci hasło do strony <ph name="SITE_NAME" /></translation>
 <translation id="8891372124884726271">Lista danych logowania jest zamknięta.</translation>
diff --git a/chrome/browser/touch_to_fill/password_manager/android/internal/java/strings/translations/android_touch_to_fill_strings_pt-PT.xtb b/chrome/browser/touch_to_fill/password_manager/android/internal/java/strings/translations/android_touch_to_fill_strings_pt-PT.xtb
index a290bea9..f107ec1c 100644
--- a/chrome/browser/touch_to_fill/password_manager/android/internal/java/strings/translations/android_touch_to_fill_strings_pt-PT.xtb
+++ b/chrome/browser/touch_to_fill/password_manager/android/internal/java/strings/translations/android_touch_to_fill_strings_pt-PT.xtb
@@ -18,11 +18,13 @@
 <translation id="5591247451101092906">Usar a palavra-passe ou o token de acesso guardada?</translation>
 <translation id="5624120631404540903">Gerir palavras-passe</translation>
 <translation id="592182999816790476">Palavra-passe de <ph name="USERNAME" /> guardada para <ph name="WEBSITE" /></translation>
+<translation id="593924516471361340">Palavra-passe de recuperação temporária em caso de problemas com <ph name="USERNAME" /> guardada para <ph name="WEBSITE" /></translation>
 <translation id="6560306912274274630">Chave de acesso para <ph name="USERNAME" />, use o bloqueio de ecrã</translation>
 <translation id="7069750557362084654">{NUM_PASSWORDS,plural, =1{Nova palavra-passe para este site}other{Novas palavras-passe para este site}}</translation>
 <translation id="7286867818472074330">Selecionar chave de acesso</translation>
 <translation id="7669320311687290322"><ph name="ITEM_LABEL" />, <ph name="ITEM_POSITION" /> de <ph name="ITEMS_TOTAL" />.</translation>
 <translation id="7738288782501322815">Recebeu palavras-passe para o Website <ph name="SITE_NAME" /></translation>
+<translation id="8202660122967066153">Palavra-passe de recuperação temporária em caso de problemas com <ph name="USERNAME" /></translation>
 <translation id="8363484128299778310">Recuperação temporária em caso de problemas</translation>
 <translation id="8614995815226664591"><ph name="SENDER_NAME" /> partilhou uma palavra-passe consigo para o Website <ph name="SITE_NAME" /></translation>
 <translation id="8891372124884726271">A lista de credenciais está fechada.</translation>
diff --git a/chrome/browser/touch_to_fill/password_manager/android/internal/java/strings/translations/android_touch_to_fill_strings_ro.xtb b/chrome/browser/touch_to_fill/password_manager/android/internal/java/strings/translations/android_touch_to_fill_strings_ro.xtb
index 4ba33f1..33de2cf 100644
--- a/chrome/browser/touch_to_fill/password_manager/android/internal/java/strings/translations/android_touch_to_fill_strings_ro.xtb
+++ b/chrome/browser/touch_to_fill/password_manager/android/internal/java/strings/translations/android_touch_to_fill_strings_ro.xtb
@@ -18,11 +18,13 @@
 <translation id="5591247451101092906">Folosești parola sau cheia de acces salvată?</translation>
 <translation id="5624120631404540903">Gestionați parolele</translation>
 <translation id="592182999816790476">Parola pentru <ph name="USERNAME" /> este salvată pentru <ph name="WEBSITE" /></translation>
+<translation id="593924516471361340">Parola de recuperare temporară în caz de probleme pentru <ph name="USERNAME" /> este salvată pentru <ph name="WEBSITE" /></translation>
 <translation id="6560306912274274630">Parola pentru <ph name="USERNAME" />; folosește blocarea ecranului</translation>
 <translation id="7069750557362084654">{NUM_PASSWORDS,plural, =1{Parolă nouă pentru acest site}few{Parole noi pentru acest site}other{Parole noi pentru acest site}}</translation>
 <translation id="7286867818472074330">Selectează cheia de acces</translation>
 <translation id="7669320311687290322"><ph name="ITEM_LABEL" />, <ph name="ITEM_POSITION" /> din <ph name="ITEMS_TOTAL" />.</translation>
 <translation id="7738288782501322815">Ai primit parole pentru <ph name="SITE_NAME" /></translation>
+<translation id="8202660122967066153">Parola de recuperare temporară în caz de probleme pentru <ph name="USERNAME" /></translation>
 <translation id="8363484128299778310">Recuperare temporară în cazul în care apar probleme</translation>
 <translation id="8614995815226664591"><ph name="SENDER_NAME" /> ți-a permis accesul la o parolă pentru <ph name="SITE_NAME" /></translation>
 <translation id="8891372124884726271">Lista datelor de conectare este închisă.</translation>
diff --git a/chrome/browser/touch_to_fill/password_manager/android/internal/java/strings/translations/android_touch_to_fill_strings_sr-Latn.xtb b/chrome/browser/touch_to_fill/password_manager/android/internal/java/strings/translations/android_touch_to_fill_strings_sr-Latn.xtb
index 13188e0..28171203 100644
--- a/chrome/browser/touch_to_fill/password_manager/android/internal/java/strings/translations/android_touch_to_fill_strings_sr-Latn.xtb
+++ b/chrome/browser/touch_to_fill/password_manager/android/internal/java/strings/translations/android_touch_to_fill_strings_sr-Latn.xtb
@@ -18,11 +18,13 @@
 <translation id="5591247451101092906">Želite da koristite sačuvanu lozinku ili pristupni kôd?</translation>
 <translation id="5624120631404540903">Upravljaj lozinkama</translation>
 <translation id="592182999816790476">Lozinka za <ph name="USERNAME" /> je sačuvana za <ph name="WEBSITE" /></translation>
+<translation id="593924516471361340">Privremena lozinka za oporavak u slučaju problema za <ph name="USERNAME" /> je sačuvana za <ph name="WEBSITE" /></translation>
 <translation id="6560306912274274630">Pristupni kôd za <ph name="USERNAME" />, koristite otključavanje ekrana</translation>
 <translation id="7069750557362084654">{NUM_PASSWORDS,plural, =1{Nova lozinka za ovaj sajt}one{Nove lozinke za ovaj sajt}few{Nove lozinke za ovaj sajt}other{Nove lozinke za ovaj sajt}}</translation>
 <translation id="7286867818472074330">Izaberi pristupni ključ</translation>
 <translation id="7669320311687290322"><ph name="ITEM_LABEL" />, <ph name="ITEM_POSITION" /> od <ph name="ITEMS_TOTAL" />.</translation>
 <translation id="7738288782501322815">Primili ste lozinke za <ph name="SITE_NAME" /></translation>
+<translation id="8202660122967066153">Privremena lozinka za oporavak u slučaju problema za <ph name="USERNAME" /></translation>
 <translation id="8363484128299778310">Privremeno oporavak u slučaju problema</translation>
 <translation id="8614995815226664591"><ph name="SENDER_NAME" /> deli sa vama lozinku za <ph name="SITE_NAME" /></translation>
 <translation id="8891372124884726271">Lista akreditiva je zatvorena.</translation>
diff --git a/chrome/browser/touch_to_fill/password_manager/android/internal/java/strings/translations/android_touch_to_fill_strings_sr.xtb b/chrome/browser/touch_to_fill/password_manager/android/internal/java/strings/translations/android_touch_to_fill_strings_sr.xtb
index 40237cae..52fe5d1 100644
--- a/chrome/browser/touch_to_fill/password_manager/android/internal/java/strings/translations/android_touch_to_fill_strings_sr.xtb
+++ b/chrome/browser/touch_to_fill/password_manager/android/internal/java/strings/translations/android_touch_to_fill_strings_sr.xtb
@@ -18,11 +18,13 @@
 <translation id="5591247451101092906">Желите да користите сачувану лозинку или приступни кôд?</translation>
 <translation id="5624120631404540903">Управљај лозинкама</translation>
 <translation id="592182999816790476">Лозинка за <ph name="USERNAME" /> је сачувана за <ph name="WEBSITE" /></translation>
+<translation id="593924516471361340">Привремена лозинка за опоравак у случају проблема за <ph name="USERNAME" /> је сачувана за <ph name="WEBSITE" /></translation>
 <translation id="6560306912274274630">Приступни кôд за <ph name="USERNAME" />, користите откључавање екрана</translation>
 <translation id="7069750557362084654">{NUM_PASSWORDS,plural, =1{Нова лозинка за овај сајт}one{Нове лозинке за овај сајт}few{Нове лозинке за овај сајт}other{Нове лозинке за овај сајт}}</translation>
 <translation id="7286867818472074330">Изабери приступни кључ</translation>
 <translation id="7669320311687290322"><ph name="ITEM_LABEL" />, <ph name="ITEM_POSITION" /> од <ph name="ITEMS_TOTAL" />.</translation>
 <translation id="7738288782501322815">Примили сте лозинке за <ph name="SITE_NAME" /></translation>
+<translation id="8202660122967066153">Привремена лозинка за опоравак у случају проблема за <ph name="USERNAME" /></translation>
 <translation id="8363484128299778310">Привремено опоравак у случају проблема</translation>
 <translation id="8614995815226664591"><ph name="SENDER_NAME" /> дели са вама лозинку за <ph name="SITE_NAME" /></translation>
 <translation id="8891372124884726271">Листа акредитива је затворена.</translation>
diff --git a/chrome/browser/touch_to_fill/password_manager/android/internal/java/strings/translations/android_touch_to_fill_strings_th.xtb b/chrome/browser/touch_to_fill/password_manager/android/internal/java/strings/translations/android_touch_to_fill_strings_th.xtb
index a3cfa17..d3d75c2 100644
--- a/chrome/browser/touch_to_fill/password_manager/android/internal/java/strings/translations/android_touch_to_fill_strings_th.xtb
+++ b/chrome/browser/touch_to_fill/password_manager/android/internal/java/strings/translations/android_touch_to_fill_strings_th.xtb
@@ -18,11 +18,13 @@
 <translation id="5591247451101092906">ใช้รหัสผ่านหรือพาสคีย์ที่บันทึกไว้ไหม</translation>
 <translation id="5624120631404540903">จัดการรหัสผ่าน</translation>
 <translation id="592182999816790476">บันทึกรหัสผ่านของ <ph name="USERNAME" /> ไว้สำหรับ <ph name="WEBSITE" /> แล้ว</translation>
+<translation id="593924516471361340">รหัสผ่านสำหรับการกู้คืนชั่วคราวในกรณีที่มีปัญหาสำหรับ <ph name="USERNAME" /> ที่บันทึกไว้สำหรับ <ph name="WEBSITE" /> แล้ว</translation>
 <translation id="6560306912274274630">พาสคีย์สำหรับ <ph name="USERNAME" /> ใช้การล็อกหน้าจอ</translation>
 <translation id="7069750557362084654">{NUM_PASSWORDS,plural, =1{รหัสผ่านใหม่สำหรับเว็บไซต์นี้}other{รหัสผ่านใหม่สำหรับเว็บไซต์นี้}}</translation>
 <translation id="7286867818472074330">เลือกพาสคีย์</translation>
 <translation id="7669320311687290322"><ph name="ITEM_LABEL" /> <ph name="ITEM_POSITION" /> จาก <ph name="ITEMS_TOTAL" /> รายการ</translation>
 <translation id="7738288782501322815">คุณได้รับรหัสผ่านสำหรับ <ph name="SITE_NAME" /></translation>
+<translation id="8202660122967066153">รหัสผ่านสำหรับการกู้คืนชั่วคราวในกรณีที่มีปัญหาสำหรับ <ph name="USERNAME" /></translation>
 <translation id="8363484128299778310">การกู้คืนชั่วคราวในกรณีที่มีปัญหา</translation>
 <translation id="8614995815226664591"><ph name="SENDER_NAME" /> ได้แชร์รหัสผ่านกับคุณสำหรับ <ph name="SITE_NAME" /></translation>
 <translation id="8891372124884726271">ปิดรายการข้อมูลเข้าสู่ระบบแล้ว</translation>
diff --git a/chrome/browser/touch_to_fill/password_manager/android/internal/java/strings/translations/android_touch_to_fill_strings_vi.xtb b/chrome/browser/touch_to_fill/password_manager/android/internal/java/strings/translations/android_touch_to_fill_strings_vi.xtb
index 567f52be..2c8a392 100644
--- a/chrome/browser/touch_to_fill/password_manager/android/internal/java/strings/translations/android_touch_to_fill_strings_vi.xtb
+++ b/chrome/browser/touch_to_fill/password_manager/android/internal/java/strings/translations/android_touch_to_fill_strings_vi.xtb
@@ -18,11 +18,13 @@
 <translation id="5591247451101092906">Sử dụng mật khẩu hoặc khoá đăng nhập đã lưu?</translation>
 <translation id="5624120631404540903">Quản lý mật khẩu</translation>
 <translation id="592182999816790476">Đã lưu mật khẩu cho <ph name="USERNAME" /> trên <ph name="WEBSITE" /></translation>
+<translation id="593924516471361340">Đã lưu mật khẩu khôi phục tạm thời trên <ph name="WEBSITE" /> cho <ph name="USERNAME" /> trong trường hợp gặp sự cố</translation>
 <translation id="6560306912274274630">Khoá truy cập cho <ph name="USERNAME" />, dùng phương thức khoá màn hình</translation>
 <translation id="7069750557362084654">{NUM_PASSWORDS,plural, =1{Mật khẩu mới cho trang web này}other{Các mật khẩu mới cho trang web này}}</translation>
 <translation id="7286867818472074330">Chọn khoá truy cập</translation>
 <translation id="7669320311687290322"><ph name="ITEM_LABEL" />, <ph name="ITEM_POSITION" />/<ph name="ITEMS_TOTAL" />.</translation>
 <translation id="7738288782501322815">Bạn đã nhận được mật khẩu cho <ph name="SITE_NAME" /></translation>
+<translation id="8202660122967066153">Mật khẩu khôi phục tạm thời cho <ph name="USERNAME" /> trong trường hợp gặp sự cố</translation>
 <translation id="8363484128299778310">Khôi phục tạm thời trong trường hợp gặp sự cố</translation>
 <translation id="8614995815226664591"><ph name="SENDER_NAME" /> đã chia sẻ với bạn một mật khẩu cho <ph name="SITE_NAME" /></translation>
 <translation id="8891372124884726271">Danh sách thông tin xác thực đã đóng.</translation>
diff --git a/chrome/browser/touch_to_fill/password_manager/android/internal/java/strings/translations/android_touch_to_fill_strings_zh-HK.xtb b/chrome/browser/touch_to_fill/password_manager/android/internal/java/strings/translations/android_touch_to_fill_strings_zh-HK.xtb
index 7268571..e49cb33 100644
--- a/chrome/browser/touch_to_fill/password_manager/android/internal/java/strings/translations/android_touch_to_fill_strings_zh-HK.xtb
+++ b/chrome/browser/touch_to_fill/password_manager/android/internal/java/strings/translations/android_touch_to_fill_strings_zh-HK.xtb
@@ -18,11 +18,13 @@
 <translation id="5591247451101092906">要使用已儲存的密碼或密鑰嗎?</translation>
 <translation id="5624120631404540903">管理密碼</translation>
 <translation id="592182999816790476">為 <ph name="WEBSITE" /> 儲存嘅 <ph name="USERNAME" /> 密碼</translation>
+<translation id="593924516471361340">儲存咗 <ph name="WEBSITE" /> 嘅臨時備援密碼,可以喺登入唔到 <ph name="USERNAME" /> 嘅時候用</translation>
 <translation id="6560306912274274630"><ph name="USERNAME" /> 嘅密鑰,用螢幕鎖定</translation>
 <translation id="7069750557362084654">{NUM_PASSWORDS,plural, =1{收到此網站的新密碼}other{收到此網站的新密碼}}</translation>
 <translation id="7286867818472074330">選取密鑰</translation>
 <translation id="7669320311687290322"><ph name="ITEM_LABEL" />,第 <ph name="ITEM_POSITION" /> 個,共 <ph name="ITEMS_TOTAL" /> 個。</translation>
 <translation id="7738288782501322815">你已收到 <ph name="SITE_NAME" /> 的密碼</translation>
+<translation id="8202660122967066153">登入唔到 <ph name="USERNAME" /> 嘅時候可以用嘅臨時備援密碼</translation>
 <translation id="8363484128299778310">發生問題時的臨時復原選項</translation>
 <translation id="8614995815226664591"><ph name="SENDER_NAME" />已與你分享 <ph name="SITE_NAME" /> 的密碼</translation>
 <translation id="8891372124884726271">憑證清單閂咗。</translation>
diff --git a/chrome/browser/touch_to_fill/password_manager/android/internal/java/strings/translations/android_touch_to_fill_strings_zh-TW.xtb b/chrome/browser/touch_to_fill/password_manager/android/internal/java/strings/translations/android_touch_to_fill_strings_zh-TW.xtb
index 9f72169..21111f77 100644
--- a/chrome/browser/touch_to_fill/password_manager/android/internal/java/strings/translations/android_touch_to_fill_strings_zh-TW.xtb
+++ b/chrome/browser/touch_to_fill/password_manager/android/internal/java/strings/translations/android_touch_to_fill_strings_zh-TW.xtb
@@ -18,11 +18,13 @@
 <translation id="5591247451101092906">要使用已儲存的密碼或密碼金鑰嗎?</translation>
 <translation id="5624120631404540903">管理密碼</translation>
 <translation id="592182999816790476">為「<ph name="WEBSITE" />」儲存的「<ph name="USERNAME" />」密碼</translation>
+<translation id="593924516471361340">已儲存 <ph name="WEBSITE" /> 的臨時備援密碼,可在無法登入 <ph name="USERNAME" /> 時使用</translation>
 <translation id="6560306912274274630"><ph name="USERNAME" /> 的密碼金鑰,使用螢幕鎖定</translation>
 <translation id="7069750557362084654">{NUM_PASSWORDS,plural, =1{這個網站的新密碼}other{這個網站的新密碼}}</translation>
 <translation id="7286867818472074330">選取密碼金鑰</translation>
 <translation id="7669320311687290322"><ph name="ITEM_LABEL" />,第 <ph name="ITEM_POSITION" /> 個,共 <ph name="ITEMS_TOTAL" /> 個。</translation>
 <translation id="7738288782501322815">你已收到 <ph name="SITE_NAME" /> 的密碼</translation>
+<translation id="8202660122967066153">無法登入 <ph name="USERNAME" /> 時可使用的臨時備援密碼</translation>
 <translation id="8363484128299778310">發生問題時的臨時救援選項</translation>
 <translation id="8614995815226664591"><ph name="SENDER_NAME" />已將 <ph name="SITE_NAME" /> 的密碼分享給你</translation>
 <translation id="8891372124884726271">憑證清單已關閉。</translation>
diff --git a/chrome/browser/touch_to_fill/password_manager/android/internal/java/strings/translations/android_touch_to_fill_strings_zu.xtb b/chrome/browser/touch_to_fill/password_manager/android/internal/java/strings/translations/android_touch_to_fill_strings_zu.xtb
index d28bf82..bf4802b6 100644
--- a/chrome/browser/touch_to_fill/password_manager/android/internal/java/strings/translations/android_touch_to_fill_strings_zu.xtb
+++ b/chrome/browser/touch_to_fill/password_manager/android/internal/java/strings/translations/android_touch_to_fill_strings_zu.xtb
@@ -18,11 +18,13 @@
 <translation id="5591247451101092906">Sebenzisa iphasiwedi egciniwe noma ukhiye wokudlula?</translation>
 <translation id="5624120631404540903">Phatha amaphasiwedi</translation>
 <translation id="592182999816790476">Iphasiwedi ka-<ph name="USERNAME" /> ilondolozelwe i-<ph name="WEBSITE" /></translation>
+<translation id="593924516471361340">Iphasiwedi yokuthola yesikhashana uma kuba nenkinga ka-<ph name="USERNAME" />yokulondolozelwa i-<ph name="WEBSITE" /></translation>
 <translation id="6560306912274274630">Ukhiye wokudlula we-<ph name="USERNAME" />, sebenzisa ukukhiya kwakho isikrini</translation>
 <translation id="7069750557362084654">{NUM_PASSWORDS,plural, =1{Iphasiwedi entsha yaleli sayithi}one{Amaphasiwedi amasha waleli sayithi}other{Amaphasiwedi amasha waleli sayithi}}</translation>
 <translation id="7286867818472074330">Khetha ukhiye wokudlula</translation>
 <translation id="7669320311687290322"><ph name="ITEM_LABEL" />, <ph name="ITEM_POSITION" /> kokungu-<ph name="ITEMS_TOTAL" />.</translation>
 <translation id="7738288782501322815">Uthole amaphasiwedi we-<ph name="SITE_NAME" /></translation>
+<translation id="8202660122967066153">Iphasiwedi yokuthola yesikhashana uma kuba nenkinga ka-<ph name="USERNAME" /></translation>
 <translation id="8363484128299778310">Ukuthola kwesikhashana uma kunezinkinga</translation>
 <translation id="8614995815226664591">U-<ph name="SENDER_NAME" /> wabelane nawe ngephasiwedi ye-<ph name="SITE_NAME" /></translation>
 <translation id="8891372124884726271">Uhlu lwemininingwane luvaliwe.</translation>
diff --git a/chrome/browser/ui/BUILD.gn b/chrome/browser/ui/BUILD.gn
index 4962ee3..c17d964 100644
--- a/chrome/browser/ui/BUILD.gn
+++ b/chrome/browser/ui/BUILD.gn
@@ -1047,18 +1047,8 @@
       "passwords/bubble_controllers/move_to_account_store_bubble_controller.h",
       "passwords/bubble_controllers/password_bubble_controller_base.cc",
       "passwords/bubble_controllers/password_bubble_controller_base.h",
-      "passwords/bubble_controllers/password_change/failed_password_change_bubble_controller.cc",
-      "passwords/bubble_controllers/password_change/failed_password_change_bubble_controller.h",
-      "passwords/bubble_controllers/password_change/no_password_change_form_bubble_controller.cc",
-      "passwords/bubble_controllers/password_change/no_password_change_form_bubble_controller.h",
-      "passwords/bubble_controllers/password_change/otp_during_password_change_bubble_controller.cc",
-      "passwords/bubble_controllers/password_change/otp_during_password_change_bubble_controller.h",
       "passwords/bubble_controllers/password_change/password_change_credential_leak_bubble_controller.cc",
       "passwords/bubble_controllers/password_change/password_change_credential_leak_bubble_controller.h",
-      "passwords/bubble_controllers/password_change/password_change_info_bubble_controller.cc",
-      "passwords/bubble_controllers/password_change/password_change_info_bubble_controller.h",
-      "passwords/bubble_controllers/password_change/privacy_notice_bubble_view_controller.cc",
-      "passwords/bubble_controllers/password_change/privacy_notice_bubble_view_controller.h",
       "passwords/bubble_controllers/password_change/successful_password_change_bubble_controller.cc",
       "passwords/bubble_controllers/password_change/successful_password_change_bubble_controller.h",
       "passwords/bubble_controllers/post_save_compromised_bubble_controller.cc",
@@ -1079,8 +1069,6 @@
       "passwords/manage_passwords_ui_controller.cc",
       "passwords/manage_passwords_ui_controller.h",
       "passwords/password_base_dialog_controller.h",
-      "passwords/password_change_icon_views_controller.cc",
-      "passwords/password_change_icon_views_controller.h",
       "passwords/password_change_ui_controller.cc",
       "passwords/password_change_ui_controller.h",
       "passwords/password_dialog_prompts.h",
@@ -4348,24 +4336,10 @@
       "views/passwords/password_auto_sign_in_view.h",
       "views/passwords/password_bubble_view_base.cc",
       "views/passwords/password_bubble_view_base.h",
-      "views/passwords/password_change/failed_password_change_view.cc",
-      "views/passwords/password_change/failed_password_change_view.h",
-      "views/passwords/password_change/no_password_change_form_view.cc",
-      "views/passwords/password_change/no_password_change_form_view.h",
-      "views/passwords/password_change/otp_during_password_change_view.cc",
-      "views/passwords/password_change/otp_during_password_change_view.h",
       "views/passwords/password_change/password_change_credential_leak_bubble_view.cc",
       "views/passwords/password_change/password_change_credential_leak_bubble_view.h",
-      "views/passwords/password_change/password_change_icon_views.cc",
-      "views/passwords/password_change/password_change_icon_views.h",
-      "views/passwords/password_change/password_change_info_bubble_view.cc",
-      "views/passwords/password_change/password_change_info_bubble_view.h",
       "views/passwords/password_change/password_change_toast.cc",
       "views/passwords/password_change/password_change_toast.h",
-      "views/passwords/password_change/password_change_view_factory.cc",
-      "views/passwords/password_change/password_change_view_factory.h",
-      "views/passwords/password_change/privacy_notice_view.cc",
-      "views/passwords/password_change/privacy_notice_view.h",
       "views/passwords/password_change/successful_password_change_view.cc",
       "views/passwords/password_change/successful_password_change_view.h",
       "views/passwords/password_cross_domain_confirmation_popup_view_views.cc",
diff --git a/chrome/browser/ui/android/strings/android_chrome_strings.grd b/chrome/browser/ui/android/strings/android_chrome_strings.grd
index f762243dd..1ec9546 100644
--- a/chrome/browser/ui/android/strings/android_chrome_strings.grd
+++ b/chrome/browser/ui/android/strings/android_chrome_strings.grd
@@ -2703,7 +2703,7 @@
           =1 {1 item is saved only to this device. To use it on your other devices, save it in your Google Account, <ph name="ACCOUNT_EMAIL">%2$s<ex>elisa.g.beckett@gmail.com</ex></ph>.}
           other {# items are saved only to this device. To use them on your other devices, save them in your Google Account, <ph name="ACCOUNT_EMAIL">%2$s<ex>elisa.g.beckett@gmail.com</ex></ph>.}}
       </message>
-      <message name="IDS_BOOKMARKS_LEFT_BEHIND_BOOKMARKS_BUTTON" desc="This message appears in a user's bookmark manager. The text appears in a temporary card to inform them that there is some local data (bookmarks) saved to their device, but the data hasn't been saved to their Google Account yet. The user can click 'Save in Account' to enter a flow where they review the data and choose to save it in their account. When data is saved to the user's Google Account, it's backed up safely and is available on any device where they're signed in to Chrome.">
+      <message name="IDS_BATCH_UPLOAD_CARD_SAVE_BUTTON" desc="This message appears on a button in a temporary card to inform the user that there is some local data saved to their device, but the data hasn't been saved to their Google Account yet. The user can click 'Save in Account' to enter a flow where they review the data and choose to save it in their account. When data is saved to the user's Google Account, it's backed up safely and is available on any device where they're signed in to Chrome.">
         Save in account
       </message>
       <message name="IDS_BOOKMARKS_LEFT_BEHIND_BOOKMARK"  desc="This message appears in a user's bookmark manager. The text appears in a temporary card to inform them that there is some local data (bookmarks) saved to their device, but the data hasn't been saved to their Google Account yet. The user can click 'Save in Account' to enter a flow where they review the data and choose to save it in their account. When data is saved to the user's Google Account, it's backed up safely and is available on any device where they're signed in to Chrome.">
diff --git a/chrome/browser/ui/android/strings/android_chrome_strings_grd/IDS_BOOKMARKS_LEFT_BEHIND_BOOKMARKS_BUTTON.png.sha1 b/chrome/browser/ui/android/strings/android_chrome_strings_grd/IDS_BATCH_UPLOAD_CARD_SAVE_BUTTON.png.sha1
similarity index 100%
rename from chrome/browser/ui/android/strings/android_chrome_strings_grd/IDS_BOOKMARKS_LEFT_BEHIND_BOOKMARKS_BUTTON.png.sha1
rename to chrome/browser/ui/android/strings/android_chrome_strings_grd/IDS_BATCH_UPLOAD_CARD_SAVE_BUTTON.png.sha1
diff --git a/chrome/browser/ui/android/strings/translations/android_chrome_strings_ar.xtb b/chrome/browser/ui/android/strings/translations/android_chrome_strings_ar.xtb
index bf57cf3..24e958bc 100644
--- a/chrome/browser/ui/android/strings/translations/android_chrome_strings_ar.xtb
+++ b/chrome/browser/ui/android/strings/translations/android_chrome_strings_ar.xtb
@@ -717,6 +717,7 @@
 <translation id="4298388696830689168">المواقع المرتبطة</translation>
 <translation id="4300632303535881174">الانتقال إلى الصفحة السابقة</translation>
 <translation id="4303044213806199882">‏chrome_لقطة شاشة_<ph name="CURRENT_TIMESTAMP_MS" /></translation>
+<translation id="4306489587293957491">إدخال</translation>
 <translation id="4307992518367153382">الإعدادات الأساسية</translation>
 <translation id="4311652497846705514">‏هل تريد فتح ملف PDF؟</translation>
 <translation id="4320177379694898372">لا يتوفر اتصال بالإنترنت</translation>
diff --git a/chrome/browser/ui/android/strings/translations/android_chrome_strings_fa.xtb b/chrome/browser/ui/android/strings/translations/android_chrome_strings_fa.xtb
index dc41a70..2c7b7ab 100644
--- a/chrome/browser/ui/android/strings/translations/android_chrome_strings_fa.xtb
+++ b/chrome/browser/ui/android/strings/translations/android_chrome_strings_fa.xtb
@@ -1794,7 +1794,7 @@
 <translation id="8856931513242997049">جریان اجازه اعلان بسته شد</translation>
 <translation id="8863714995118816041">اجازه‌ها دوباره به <ph name="SITE_NAME" /> اعطا شد</translation>
 <translation id="8865415417596392024">‏داده‌های Chrome در حساب شما</translation>
-<translation id="8888527824584402177">برگه‌هایی که به‌مدت <ph name="DAYS_INACTIVE" /> روز از آن‌ها استفاده نکرده‌اید به اینجا منتقل می‌شود<ph name="AUTODELETE_SECTION" />. هرزمان بخواهید می‌توانید این گزینه را در <ph name="SETTINGS_TITLE" /> تغییر دهید.</translation>
+<translation id="8888527824584402177">زبانه‌هایی که به‌مدت <ph name="DAYS_INACTIVE" /> روز از آن‌ها استفاده نکرده‌اید به اینجا منتقل می‌شود<ph name="AUTODELETE_SECTION" />. هرزمان بخواهید می‌توانید این گزینه را در <ph name="SETTINGS_TITLE" /> تغییر دهید.</translation>
 <translation id="8890668505403261809">جستجوی برگه‌های ناشناس</translation>
 <translation id="8898822736010347272">‏نشانی‌های وب بعضی از صفحه‌هایی که بازدید می‌کنید، اطلاعات محدودی از سیستم، و برخی از محتوای صفحه را به Google ارسال می‌کند تا به کشف تهدیدهای جدید و محافظت از همه افراد در وب کمک کند.</translation>
 <translation id="8903921497873541725">بزرگ‌نمایی</translation>
diff --git a/chrome/browser/ui/android/strings/translations/android_chrome_strings_hu.xtb b/chrome/browser/ui/android/strings/translations/android_chrome_strings_hu.xtb
index 0f34b52..d5791020 100644
--- a/chrome/browser/ui/android/strings/translations/android_chrome_strings_hu.xtb
+++ b/chrome/browser/ui/android/strings/translations/android_chrome_strings_hu.xtb
@@ -715,6 +715,7 @@
 <translation id="4298388696830689168">Összekapcsolt webhelyek</translation>
 <translation id="4300632303535881174">Ugrás az előző oldalra</translation>
 <translation id="4303044213806199882">chrome_screenshot_<ph name="CURRENT_TIMESTAMP_MS" /></translation>
+<translation id="4306489587293957491">Bevitel</translation>
 <translation id="4307992518367153382">Alapok</translation>
 <translation id="4311652497846705514">Megnyitja a PDF-et?</translation>
 <translation id="4320177379694898372">Nincs internetkapcsolat</translation>
diff --git a/chrome/browser/ui/android/strings/translations/android_chrome_strings_ja.xtb b/chrome/browser/ui/android/strings/translations/android_chrome_strings_ja.xtb
index bb226fd..706228e 100644
--- a/chrome/browser/ui/android/strings/translations/android_chrome_strings_ja.xtb
+++ b/chrome/browser/ui/android/strings/translations/android_chrome_strings_ja.xtb
@@ -715,6 +715,7 @@
 <translation id="4298388696830689168">リンク済みのサイト</translation>
 <translation id="4300632303535881174">前のページに移動</translation>
 <translation id="4303044213806199882">chrome_screenshot_<ph name="CURRENT_TIMESTAMP_MS" /></translation>
+<translation id="4306489587293957491">入力</translation>
 <translation id="4307992518367153382">基本設定</translation>
 <translation id="4311652497846705514">PDF を開きますか?</translation>
 <translation id="4320177379694898372">インターネットに接続されていません</translation>
diff --git a/chrome/browser/ui/android/strings/translations/android_chrome_strings_ka.xtb b/chrome/browser/ui/android/strings/translations/android_chrome_strings_ka.xtb
index e9d606c..2797aa88 100644
--- a/chrome/browser/ui/android/strings/translations/android_chrome_strings_ka.xtb
+++ b/chrome/browser/ui/android/strings/translations/android_chrome_strings_ka.xtb
@@ -341,6 +341,7 @@
 <translation id="2546283357679194313">ქუქი-ფაილები და საიტის მონაცემები</translation>
 <translation id="2547843573592965873">პროფილის ჩაკეტვა უზრუნველყოფს თქვენი ინფორმაციის (მათ შორის, პაროლების, გადახდებისა და Google ანგარიშში შენახული სხვა მონაცემების) დაცულობას მანქანაში.</translation>
 <translation id="254973855621628293">ამ მოწყობილობაზე შენახული პაროლები</translation>
+<translation id="2566471851103108967">{FILE_COUNT,plural, =1{სახიფათო ჩამოტვირთვა დაიბლოკა}other{# სახიფათო ჩამოტვირთვა დაიბლოკა}}</translation>
 <translation id="2567385386134582609">სურათი</translation>
 <translation id="2569733278091928697">თქვენ შეძლებთ, მარტივად აკონტროლოთ მედიის მართვის საშუალებები, ინკოგნიტო სესიები, ჩამოტვირთვები და სხვა</translation>
 <translation id="2571711316400087311">სხვაენოვანი გვერდების Google Translate-ში გაგზავნის შემოთავაზება</translation>
@@ -715,6 +716,7 @@
 <translation id="4298388696830689168">მიბმული საიტები</translation>
 <translation id="4300632303535881174">წინა გვერდზე გადასვლა</translation>
 <translation id="4303044213806199882">chrome_screenshot_<ph name="CURRENT_TIMESTAMP_MS" /></translation>
+<translation id="4306489587293957491">შეყვანა</translation>
 <translation id="4307992518367153382">ძირითადი</translation>
 <translation id="4311652497846705514">გსურთ PDF-ის გახსნა?</translation>
 <translation id="4320177379694898372">ინტერნეტთან კავშირი არ არის</translation>
@@ -750,6 +752,7 @@
 <translation id="4479972344484327217">ინსტალირდება <ph name="MODULE" /> Chrome-ისთვის…</translation>
 <translation id="4484496141267039529">კავშირი არ არის. ცადეთ მოგვიანებით.</translation>
 <translation id="4487967297491345095">Chrome-ში არსებული აპების მონაცემები სამუდამოდ წაიშლება. მათ შორის, აპებთან დაკავშირებული ყველა ფაილი, პარამეტრი, ანგარიში, მონაცემთა ბაზა და ა.შ.</translation>
+<translation id="4494315997125191493">აირჩიეთ მართვა, რომ ყველა ფანჯარა ნახოთ</translation>
 <translation id="4494806687727322324">პაროლის შენახვა ჩართულია თქვენი ადმინისტრატორის მიერ</translation>
 <translation id="4508528996305412043">გაიხსნა არხის ბარათის მენიუ</translation>
 <translation id="4509741852167209430">საკუთარი რეკლამის ეფექტურობის გაზომვის მიზნით, საიტებს შორის ზიარდება შეზღუდული ტიპის მონაცემები — მაგალითად, ის, შეიძინეთ თუ არა რამე საიტის მონახულების შემდეგ</translation>
@@ -790,6 +793,7 @@
 <translation id="4668279686271488041">რეკლამის ეფექტურობის გასაზომად გამოყენებული მონაცემები რეგულარულად იშლება თქვენი მოწყობილობიდან</translation>
 <translation id="4668347365065281350">საიტების მიერ შენახული ყველა მონაცემი, მათ შორის, ქუქი-ჩანაწერები და ადგილობრივად შენახული სხვა მონაცემები</translation>
 <translation id="4678082183394354975">მუქი თემა საიტებისთვის ჩართულია Chrome-ში</translation>
+<translation id="4682306524980568490">შესაძლებელია მხოლოდ <ph name="MAX_INSTANCE_COUNT" /> ფანჯრის ჩვენება</translation>
 <translation id="4684427112815847243">ყველაფრის სინქრონიზაცია</translation>
 <translation id="4685741273709472646">აირჩიეთ ჩამოსაშლელი სიიდან</translation>
 <translation id="4687718960473379118">საიტების მიერ შემოთავაზებული რეკლამები</translation>
diff --git a/chrome/browser/ui/android/strings/translations/android_chrome_strings_km.xtb b/chrome/browser/ui/android/strings/translations/android_chrome_strings_km.xtb
index 4fb6952f..e0c9cb6 100644
--- a/chrome/browser/ui/android/strings/translations/android_chrome_strings_km.xtb
+++ b/chrome/browser/ui/android/strings/translations/android_chrome_strings_km.xtb
@@ -715,6 +715,7 @@
 <translation id="4298388696830689168">គេហទំព័រ​ដែលបានតភ្ជាប់</translation>
 <translation id="4300632303535881174">ទៅ​ទំព័រ​មុន</translation>
 <translation id="4303044213806199882">chrome_screenshot_<ph name="CURRENT_TIMESTAMP_MS" /></translation>
+<translation id="4306489587293957491">បញ្ចូល</translation>
 <translation id="4307992518367153382">មូលដ្ឋាន</translation>
 <translation id="4311652497846705514">បើក PDF ឬ?</translation>
 <translation id="4320177379694898372">គ្មានការភ្ជាប់អ៊ីនធឺណិតទេ</translation>
diff --git a/chrome/browser/ui/android/strings/translations/android_chrome_strings_mn.xtb b/chrome/browser/ui/android/strings/translations/android_chrome_strings_mn.xtb
index 05b1b151..fab738d 100644
--- a/chrome/browser/ui/android/strings/translations/android_chrome_strings_mn.xtb
+++ b/chrome/browser/ui/android/strings/translations/android_chrome_strings_mn.xtb
@@ -715,6 +715,7 @@
 <translation id="4298388696830689168">Холбоотой сайтууд</translation>
 <translation id="4300632303535881174">Өмнөх хуудас руу очих</translation>
 <translation id="4303044213806199882">chrome_screenshot_<ph name="CURRENT_TIMESTAMP_MS" /></translation>
+<translation id="4306489587293957491">Оруулах</translation>
 <translation id="4307992518367153382">Үндэс</translation>
 <translation id="4311652497846705514">PDF-г нээх үү?</translation>
 <translation id="4320177379694898372">Интернетийн холболтгүй байна</translation>
diff --git a/chrome/browser/ui/android/strings/translations/android_chrome_strings_ms.xtb b/chrome/browser/ui/android/strings/translations/android_chrome_strings_ms.xtb
index 953b2856..d3ee0d8e 100644
--- a/chrome/browser/ui/android/strings/translations/android_chrome_strings_ms.xtb
+++ b/chrome/browser/ui/android/strings/translations/android_chrome_strings_ms.xtb
@@ -715,6 +715,7 @@
 <translation id="4298388696830689168">Tapak terpaut</translation>
 <translation id="4300632303535881174">Akses halaman sebelumnya</translation>
 <translation id="4303044213806199882">chrome_screenshot_<ph name="CURRENT_TIMESTAMP_MS" /></translation>
+<translation id="4306489587293957491">Masukkan</translation>
 <translation id="4307992518367153382">Asas</translation>
 <translation id="4311652497846705514">Buka PDF?</translation>
 <translation id="4320177379694898372">Tiada sambungan Internet</translation>
diff --git a/chrome/browser/ui/android/strings/translations/android_chrome_strings_nl.xtb b/chrome/browser/ui/android/strings/translations/android_chrome_strings_nl.xtb
index 3ca3a4c..dd40e9119 100644
--- a/chrome/browser/ui/android/strings/translations/android_chrome_strings_nl.xtb
+++ b/chrome/browser/ui/android/strings/translations/android_chrome_strings_nl.xtb
@@ -715,6 +715,7 @@
 <translation id="4298388696830689168">Gekoppelde sites</translation>
 <translation id="4300632303535881174">Naar de vorige pagina gaan</translation>
 <translation id="4303044213806199882">chrome_screenshot_<ph name="CURRENT_TIMESTAMP_MS" /></translation>
+<translation id="4306489587293957491">Invoeren</translation>
 <translation id="4307992518367153382">Basisinstellingen</translation>
 <translation id="4311652497846705514">Pdf openen?</translation>
 <translation id="4320177379694898372">Geen internetverbinding</translation>
diff --git a/chrome/browser/ui/android/strings/translations/android_chrome_strings_pa.xtb b/chrome/browser/ui/android/strings/translations/android_chrome_strings_pa.xtb
index 04a0c6e..2d2b159 100644
--- a/chrome/browser/ui/android/strings/translations/android_chrome_strings_pa.xtb
+++ b/chrome/browser/ui/android/strings/translations/android_chrome_strings_pa.xtb
@@ -715,6 +715,7 @@
 <translation id="4298388696830689168">ਲਿੰਕ ਕੀਤੀਆਂ ਸਾਈਟਾਂ</translation>
 <translation id="4300632303535881174">ਪਿਛਲੇ ਪੰਨੇ 'ਤੇ ਜਾਓ</translation>
 <translation id="4303044213806199882">chrome_screenshot_<ph name="CURRENT_TIMESTAMP_MS" /></translation>
+<translation id="4306489587293957491">ਦਾਖਲ ਕਰੋ</translation>
 <translation id="4307992518367153382">ਮੂਲ</translation>
 <translation id="4311652497846705514">ਕੀ PDF ਨੂੰ ਖੋਲ੍ਹਣਾ ਹੈ?</translation>
 <translation id="4320177379694898372">ਕੋਈ ਇੰਟਰਨੈਟ ਕਨੈਕਸ਼ਨ ਨਹੀਂ</translation>
diff --git a/chrome/browser/ui/android/strings/translations/android_chrome_strings_pl.xtb b/chrome/browser/ui/android/strings/translations/android_chrome_strings_pl.xtb
index cae2ff2..dafde05 100644
--- a/chrome/browser/ui/android/strings/translations/android_chrome_strings_pl.xtb
+++ b/chrome/browser/ui/android/strings/translations/android_chrome_strings_pl.xtb
@@ -715,6 +715,7 @@
 <translation id="4298388696830689168">Połączone strony</translation>
 <translation id="4300632303535881174">Przejdź na poprzednią stronę</translation>
 <translation id="4303044213806199882">chrome_screenshot_<ph name="CURRENT_TIMESTAMP_MS" /></translation>
+<translation id="4306489587293957491">Wpisz</translation>
 <translation id="4307992518367153382">Podstawowe</translation>
 <translation id="4311652497846705514">Otworzyć PDF?</translation>
 <translation id="4320177379694898372">Brak połączenia z internetem</translation>
diff --git a/chrome/browser/ui/android/strings/translations/android_chrome_strings_pt-BR.xtb b/chrome/browser/ui/android/strings/translations/android_chrome_strings_pt-BR.xtb
index 06976eb..c1e0836 100644
--- a/chrome/browser/ui/android/strings/translations/android_chrome_strings_pt-BR.xtb
+++ b/chrome/browser/ui/android/strings/translations/android_chrome_strings_pt-BR.xtb
@@ -1061,7 +1061,7 @@
 <translation id="5855546874025048181">Refinar: <ph name="REFINE_TEXT" /></translation>
 <translation id="5857447844686706637">Algo deu errado. Não foi possível atualizar o recurso Monitorar preço.</translation>
 <translation id="5859968346865909126">Ele pode ser ativado ou desativado nas configurações</translation>
-<translation id="5860033963881614850">Desativada</translation>
+<translation id="5860033963881614850">Desativado</translation>
 <translation id="5860491529813859533">Ativar</translation>
 <translation id="5864419784173784555">Aguardando outro download…</translation>
 <translation id="5865733239029070421">Envia estatísticas de uso e relatórios de erros automaticamente para o Google</translation>
diff --git a/chrome/browser/ui/android/strings/translations/android_chrome_strings_pt-PT.xtb b/chrome/browser/ui/android/strings/translations/android_chrome_strings_pt-PT.xtb
index f873e33..ffa1e2a 100644
--- a/chrome/browser/ui/android/strings/translations/android_chrome_strings_pt-PT.xtb
+++ b/chrome/browser/ui/android/strings/translations/android_chrome_strings_pt-PT.xtb
@@ -715,6 +715,7 @@
 <translation id="4298388696830689168">Sites associados</translation>
 <translation id="4300632303535881174">Ir para a página anterior</translation>
 <translation id="4303044213806199882">chrome_screenshot_<ph name="CURRENT_TIMESTAMP_MS" /></translation>
+<translation id="4306489587293957491">Introduzir</translation>
 <translation id="4307992518367153382">Noções básicas</translation>
 <translation id="4311652497846705514">Abrir o PDF?</translation>
 <translation id="4320177379694898372">Sem ligação à Internet</translation>
diff --git a/chrome/browser/ui/android/strings/translations/android_chrome_strings_ro.xtb b/chrome/browser/ui/android/strings/translations/android_chrome_strings_ro.xtb
index 5a46b89a..b970696 100644
--- a/chrome/browser/ui/android/strings/translations/android_chrome_strings_ro.xtb
+++ b/chrome/browser/ui/android/strings/translations/android_chrome_strings_ro.xtb
@@ -715,6 +715,7 @@
 <translation id="4298388696830689168">Site-uri conectate</translation>
 <translation id="4300632303535881174">Accesează pagina precedentă</translation>
 <translation id="4303044213806199882">chrome_screenshot_<ph name="CURRENT_TIMESTAMP_MS" /></translation>
+<translation id="4306489587293957491">Introdu</translation>
 <translation id="4307992518367153382">Elemente de bază</translation>
 <translation id="4311652497846705514">Deschizi fișierul PDF?</translation>
 <translation id="4320177379694898372">Nu există conexiune la internet</translation>
diff --git a/chrome/browser/ui/android/strings/translations/android_chrome_strings_sr-Latn.xtb b/chrome/browser/ui/android/strings/translations/android_chrome_strings_sr-Latn.xtb
index 3ebe85b..c326725 100644
--- a/chrome/browser/ui/android/strings/translations/android_chrome_strings_sr-Latn.xtb
+++ b/chrome/browser/ui/android/strings/translations/android_chrome_strings_sr-Latn.xtb
@@ -715,6 +715,7 @@
 <translation id="4298388696830689168">Povezani sajtovi</translation>
 <translation id="4300632303535881174">Idite na prethodnu stranicu</translation>
 <translation id="4303044213806199882">chrome_screenshot_<ph name="CURRENT_TIMESTAMP_MS" /></translation>
+<translation id="4306489587293957491">Unesi</translation>
 <translation id="4307992518367153382">Osnovna</translation>
 <translation id="4311652497846705514">Želite da otvorite PDF?</translation>
 <translation id="4320177379694898372">Nema internet veze</translation>
@@ -1303,7 +1304,7 @@
 <translation id="6850830437481525139">Zatvorenih kartica: <ph name="TAB_COUNT" /></translation>
 <translation id="685340923442249391">{FILE_COUNT,plural, =1{Audio fajlovi, 1 audio fajl na listi}one{Audio fajlovi, # audio fajl na listi}few{Audio fajlovi, # audio fajla na listi}other{Audio fajlovi, # audio fajlova na listi}}</translation>
 <translation id="685850645784703949">Google Discover – isključeno</translation>
-<translation id="6861722405755529743">Dugme za preklopni meni trake sa obeleživačima</translation>
+<translation id="6861722405755529743">Dugme za dodatne opcije trake sa obeleživačima</translation>
 <translation id="686366188661646310">Želite da izbrišete lozinku?</translation>
 <translation id="6864459304226931083">Preuzmi sliku</translation>
 <translation id="686490460830618322">Tabela sa filterima aplikacija</translation>
diff --git a/chrome/browser/ui/android/strings/translations/android_chrome_strings_sr.xtb b/chrome/browser/ui/android/strings/translations/android_chrome_strings_sr.xtb
index 3fa3837..0d46ed9 100644
--- a/chrome/browser/ui/android/strings/translations/android_chrome_strings_sr.xtb
+++ b/chrome/browser/ui/android/strings/translations/android_chrome_strings_sr.xtb
@@ -715,6 +715,7 @@
 <translation id="4298388696830689168">Повезани сајтови</translation>
 <translation id="4300632303535881174">Идите на претходну страницу</translation>
 <translation id="4303044213806199882">chrome_screenshot_<ph name="CURRENT_TIMESTAMP_MS" /></translation>
+<translation id="4306489587293957491">Унеси</translation>
 <translation id="4307992518367153382">Основна</translation>
 <translation id="4311652497846705514">Желите да отворите PDF?</translation>
 <translation id="4320177379694898372">Нема интернет везе</translation>
@@ -1303,7 +1304,7 @@
 <translation id="6850830437481525139">Затворених картица: <ph name="TAB_COUNT" /></translation>
 <translation id="685340923442249391">{FILE_COUNT,plural, =1{Аудио фајлови, 1 аудио фајл на листи}one{Аудио фајлови, # аудио фајл на листи}few{Аудио фајлови, # аудио фајла на листи}other{Аудио фајлови, # аудио фајлова на листи}}</translation>
 <translation id="685850645784703949">Google Discover – искључено</translation>
-<translation id="6861722405755529743">Дугме за преклопни мени траке са обележивачима</translation>
+<translation id="6861722405755529743">Дугме за додатне опције траке са обележивачима</translation>
 <translation id="686366188661646310">Желите да избришете лозинку?</translation>
 <translation id="6864459304226931083">Преузми слику</translation>
 <translation id="686490460830618322">Табела са филтерима апликација</translation>
diff --git a/chrome/browser/ui/android/strings/translations/android_chrome_strings_th.xtb b/chrome/browser/ui/android/strings/translations/android_chrome_strings_th.xtb
index 61f2ee4..ca3390f 100644
--- a/chrome/browser/ui/android/strings/translations/android_chrome_strings_th.xtb
+++ b/chrome/browser/ui/android/strings/translations/android_chrome_strings_th.xtb
@@ -715,6 +715,7 @@
 <translation id="4298388696830689168">เว็บไซต์ที่ลิงก์</translation>
 <translation id="4300632303535881174">ไปที่หน้าก่อนหน้านี้</translation>
 <translation id="4303044213806199882">chrome_screenshot_<ph name="CURRENT_TIMESTAMP_MS" /></translation>
+<translation id="4306489587293957491">ป้อน</translation>
 <translation id="4307992518367153382">พื้นฐาน</translation>
 <translation id="4311652497846705514">เปิด PDF ไหม</translation>
 <translation id="4320177379694898372">ไม่มีการเชื่อมต่ออินเทอร์เน็ต</translation>
diff --git a/chrome/browser/ui/android/strings/translations/android_chrome_strings_vi.xtb b/chrome/browser/ui/android/strings/translations/android_chrome_strings_vi.xtb
index f5c66a0..384dc64 100644
--- a/chrome/browser/ui/android/strings/translations/android_chrome_strings_vi.xtb
+++ b/chrome/browser/ui/android/strings/translations/android_chrome_strings_vi.xtb
@@ -715,6 +715,7 @@
 <translation id="4298388696830689168">Các trang web liên kết</translation>
 <translation id="4300632303535881174">Quay về trang trước</translation>
 <translation id="4303044213806199882">chrome_screenshot_<ph name="CURRENT_TIMESTAMP_MS" /></translation>
+<translation id="4306489587293957491">Nhập</translation>
 <translation id="4307992518367153382">Cơ bản</translation>
 <translation id="4311652497846705514">Mở tệp PDF?</translation>
 <translation id="4320177379694898372">Không có kết nối Internet</translation>
diff --git a/chrome/browser/ui/android/strings/translations/android_chrome_strings_zh-HK.xtb b/chrome/browser/ui/android/strings/translations/android_chrome_strings_zh-HK.xtb
index 71a9ce7..fd4ff74 100644
--- a/chrome/browser/ui/android/strings/translations/android_chrome_strings_zh-HK.xtb
+++ b/chrome/browser/ui/android/strings/translations/android_chrome_strings_zh-HK.xtb
@@ -715,6 +715,7 @@
 <translation id="4298388696830689168">已連結的網站</translation>
 <translation id="4300632303535881174">前往上一頁</translation>
 <translation id="4303044213806199882">chrome_screenshot_<ph name="CURRENT_TIMESTAMP_MS" /></translation>
+<translation id="4306489587293957491">輸入</translation>
 <translation id="4307992518367153382">基本</translation>
 <translation id="4311652497846705514">要開啟 PDF 嗎?</translation>
 <translation id="4320177379694898372">沒有互聯網連線</translation>
diff --git a/chrome/browser/ui/android/strings/translations/android_chrome_strings_zh-TW.xtb b/chrome/browser/ui/android/strings/translations/android_chrome_strings_zh-TW.xtb
index d6b0405..acf0c0a 100644
--- a/chrome/browser/ui/android/strings/translations/android_chrome_strings_zh-TW.xtb
+++ b/chrome/browser/ui/android/strings/translations/android_chrome_strings_zh-TW.xtb
@@ -715,6 +715,7 @@
 <translation id="4298388696830689168">連結的網站</translation>
 <translation id="4300632303535881174">前往上一頁</translation>
 <translation id="4303044213806199882">chrome_screenshot_<ph name="CURRENT_TIMESTAMP_MS" /></translation>
+<translation id="4306489587293957491">輸入</translation>
 <translation id="4307992518367153382">基本選項</translation>
 <translation id="4311652497846705514">要開啟 PDF 嗎?</translation>
 <translation id="4320177379694898372">沒有網際網路連線</translation>
diff --git a/chrome/browser/ui/android/strings/translations/android_chrome_strings_zu.xtb b/chrome/browser/ui/android/strings/translations/android_chrome_strings_zu.xtb
index da452fc7..5303314 100644
--- a/chrome/browser/ui/android/strings/translations/android_chrome_strings_zu.xtb
+++ b/chrome/browser/ui/android/strings/translations/android_chrome_strings_zu.xtb
@@ -715,6 +715,7 @@
 <translation id="4298388696830689168">Amasayithi axhunyiwe</translation>
 <translation id="4300632303535881174">Buyela ekhasini elingaphambili</translation>
 <translation id="4303044213806199882">chrome_screenshot_<ph name="CURRENT_TIMESTAMP_MS" /></translation>
+<translation id="4306489587293957491">Faka</translation>
 <translation id="4307992518367153382">Izisekelo</translation>
 <translation id="4311652497846705514">Vula i-PDF?</translation>
 <translation id="4320177379694898372">Alukho uxhumano lwe-inthanethi</translation>
diff --git a/chrome/browser/ui/android/toolbar/java/src/org/chromium/chrome/browser/toolbar/top/TopToolbarSceneLayer.java b/chrome/browser/ui/android/toolbar/java/src/org/chromium/chrome/browser/toolbar/top/TopToolbarSceneLayer.java
index 10328c91..9374a0a 100644
--- a/chrome/browser/ui/android/toolbar/java/src/org/chromium/chrome/browser/toolbar/top/TopToolbarSceneLayer.java
+++ b/chrome/browser/ui/android/toolbar/java/src/org/chromium/chrome/browser/toolbar/top/TopToolbarSceneLayer.java
@@ -76,11 +76,15 @@
                         progressInfo.progressBarBackgroundRect.width(),
                         progressInfo.progressBarBackgroundRect.height(),
                         progressInfo.progressBarBackgroundColor,
+                        progressInfo.progressBarStaticBackgroundRect.left,
+                        progressInfo.progressBarStaticBackgroundRect.width(),
+                        progressInfo.progressBarStaticBackgroundColor,
                         progressInfo.progressBarEndIndicator.left,
                         progressInfo.progressBarEndIndicator.top,
                         progressInfo.progressBarEndIndicator.width(),
                         progressInfo.progressBarEndIndicator.height(),
-                        progressInfo.cornerRadius);
+                        progressInfo.cornerRadius,
+                        progressInfo.progressBarVisualUpdateAvailable);
     }
 
     @Override
@@ -140,10 +144,14 @@
                 int progressBarBackgroundWidth,
                 int progressBarBackgroundHeight,
                 int progressBarBackgroundColor,
+                int progressBarStaticBackgroundX,
+                int progressBarStaticBackgroundWidth,
+                int progressBarStaticBackgroundColor,
                 int progressBarEndIndicatorX,
                 int progressBarEndIndicatorY,
                 int progressBarEndIndicatorWidth,
                 int progressBarEndIndicatorHeight,
-                float cornerRadius);
+                float cornerRadius,
+                boolean progressBarVisualUpdateAvailable);
     }
 }
diff --git a/chrome/browser/ui/page_action/page_action_icon_type.h b/chrome/browser/ui/page_action/page_action_icon_type.h
index 8027e04e..c63565e 100644
--- a/chrome/browser/ui/page_action/page_action_icon_type.h
+++ b/chrome/browser/ui/page_action/page_action_icon_type.h
@@ -46,7 +46,7 @@
   kDiscounts = 30,
   kOptimizationGuide = 31,
   kCollaborationMessaging = 32,
-  kChangePassword = 33,
+  // DEPRECATED: kChangePassword = 33,
   kLensOverlayHomework = 34,
   kMaxValue = kLensOverlayHomework,
 };
@@ -83,7 +83,6 @@
 static_assert(static_cast<int>(PageActionIconType::kOptimizationGuide) == 31);
 static_assert(static_cast<int>(PageActionIconType::kCollaborationMessaging) ==
               32);
-static_assert(static_cast<int>(PageActionIconType::kChangePassword) == 33);
 static_assert(static_cast<int>(PageActionIconType::kLensOverlayHomework) == 34);
 
 // Returns a bool indicating whether the given page action type has been
diff --git a/chrome/browser/ui/passwords/bubble_controllers/password_change/failed_password_change_bubble_controller.cc b/chrome/browser/ui/passwords/bubble_controllers/password_change/failed_password_change_bubble_controller.cc
deleted file mode 100644
index b1fde0d..0000000
--- a/chrome/browser/ui/passwords/bubble_controllers/password_change/failed_password_change_bubble_controller.cc
+++ /dev/null
@@ -1,68 +0,0 @@
-// Copyright 2025 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/passwords/bubble_controllers/password_change/failed_password_change_bubble_controller.h"
-
-#include "base/memory/weak_ptr.h"
-#include "chrome/browser/password_manager/password_change_delegate.h"
-#include "chrome/browser/ui/passwords/passwords_model_delegate.h"
-#include "chrome/grit/generated_resources.h"
-#include "components/password_manager/core/browser/password_manager_metrics_util.h"
-#include "ui/base/l10n/l10n_util.h"
-
-namespace metrics_util = password_manager::metrics_util;
-
-FailedPasswordChangeBubbleController::FailedPasswordChangeBubbleController(
-    base::WeakPtr<PasswordsModelDelegate> delegate)
-    : PasswordBubbleControllerBase(
-          delegate,
-          password_manager::metrics_util::UIDisplayDisposition::
-              PASSWORD_CHANGE_BUBBLE),
-      password_change_delegate_(
-          delegate_->GetPasswordChangeDelegate()->AsWeakPtr()) {}
-
-FailedPasswordChangeBubbleController::~FailedPasswordChangeBubbleController() {
-  OnBubbleClosing();
-}
-
-std::u16string FailedPasswordChangeBubbleController::GetTitle() const {
-  return l10n_util::GetStringUTF16(
-      IDS_PASSWORD_MANAGER_UI_PASSWORD_CHANGE_FAILED_TITLE);
-}
-
-std::u16string FailedPasswordChangeBubbleController::GetBody() const {
-  return l10n_util::GetStringUTF16(
-      IDS_PASSWORD_MANAGER_UI_PASSWORD_CHANGE_FAILED_BODY);
-}
-
-std::u16string FailedPasswordChangeBubbleController::GetAcceptButton() const {
-  return l10n_util::GetStringUTF16(
-      IDS_PASSWORD_MANAGER_UI_PASSWORD_CHANGE_FAILED_ACTION);
-}
-
-void FailedPasswordChangeBubbleController::ReportInteractions() {
-  base::UmaHistogramEnumeration(
-      "PasswordManager.PasswordChange.ChangingFailedBubble", dismissal_reason_,
-      metrics_util::NUM_UI_RESPONSES);
-}
-
-void FailedPasswordChangeBubbleController::FixManually() {
-  dismissal_reason_ = metrics_util::CLICKED_ACCEPT;
-  password_change_delegate_->OpenPasswordChangeTab();
-  FinishPasswordChange();
-}
-
-void FailedPasswordChangeBubbleController::FinishPasswordChange() {
-  if (dismissal_reason_ == metrics_util::NO_DIRECT_INTERACTION) {
-    dismissal_reason_ = metrics_util::CLICKED_CANCEL;
-  }
-  if (password_change_delegate_) {
-    password_change_delegate_->Stop();
-  }
-}
-
-void FailedPasswordChangeBubbleController::NavigateToPasswordChangeSettings() {
-  dismissal_reason_ = metrics_util::CLICKED_ABOUT_PASSWORD_CHANGE;
-  delegate_->NavigateToPasswordChangeSettings();
-}
diff --git a/chrome/browser/ui/passwords/bubble_controllers/password_change/failed_password_change_bubble_controller.h b/chrome/browser/ui/passwords/bubble_controllers/password_change/failed_password_change_bubble_controller.h
deleted file mode 100644
index 65bb489..0000000
--- a/chrome/browser/ui/passwords/bubble_controllers/password_change/failed_password_change_bubble_controller.h
+++ /dev/null
@@ -1,44 +0,0 @@
-// Copyright 2025 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_PASSWORDS_BUBBLE_CONTROLLERS_PASSWORD_CHANGE_FAILED_PASSWORD_CHANGE_BUBBLE_CONTROLLER_H_
-#define CHROME_BROWSER_UI_PASSWORDS_BUBBLE_CONTROLLERS_PASSWORD_CHANGE_FAILED_PASSWORD_CHANGE_BUBBLE_CONTROLLER_H_
-
-#include "chrome/browser/ui/passwords/bubble_controllers/password_bubble_controller_base.h"
-
-class PasswordChangeDelegate;
-
-// Controller for FailedPasswordChangeView which is displayed after
-// failed password change.
-class FailedPasswordChangeBubbleController
-    : public PasswordBubbleControllerBase {
- public:
-  explicit FailedPasswordChangeBubbleController(
-      base::WeakPtr<PasswordsModelDelegate> delegate);
-
-  ~FailedPasswordChangeBubbleController() override;
-
-  // PasswordBubbleControllerBase methods:
-  std::u16string GetTitle() const override;
-  void ReportInteractions() override;
-
-  std::u16string GetBody() const;
-  std::u16string GetAcceptButton() const;
-
-  // Opens a tab where password change is ongoing.
-  void FixManually();
-
-  // Marks password change flow as completed.
-  void FinishPasswordChange();
-
-  void NavigateToPasswordChangeSettings();
-
- private:
-  base::WeakPtr<PasswordChangeDelegate> password_change_delegate_;
-  // Dismissal reason for a password bubble.
-  password_manager::metrics_util::UIDismissalReason dismissal_reason_ =
-      password_manager::metrics_util::NO_DIRECT_INTERACTION;
-};
-
-#endif  // CHROME_BROWSER_UI_PASSWORDS_BUBBLE_CONTROLLERS_PASSWORD_CHANGE_FAILED_PASSWORD_CHANGE_BUBBLE_CONTROLLER_H_
diff --git a/chrome/browser/ui/passwords/bubble_controllers/password_change/failed_password_change_bubble_controller_unittest.cc b/chrome/browser/ui/passwords/bubble_controllers/password_change/failed_password_change_bubble_controller_unittest.cc
deleted file mode 100644
index 1cca4fe..0000000
--- a/chrome/browser/ui/passwords/bubble_controllers/password_change/failed_password_change_bubble_controller_unittest.cc
+++ /dev/null
@@ -1,68 +0,0 @@
-// Copyright 2025 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/passwords/bubble_controllers/password_change/failed_password_change_bubble_controller.h"
-
-#include <memory>
-
-#include "base/test/metrics/histogram_tester.h"
-#include "chrome/browser/password_manager/password_change_delegate_mock.h"
-#include "chrome/browser/ui/passwords/passwords_model_delegate_mock.h"
-#include "testing/gmock/include/gmock/gmock.h"
-#include "testing/gtest/include/gtest/gtest.h"
-
-using testing::Return;
-namespace metrics_util = password_manager::metrics_util;
-
-class FailedPasswordChangeBubbleControllerTest : public ::testing::Test {
- public:
-  void CreateController() {
-    EXPECT_CALL(mock_delegate_, OnBubbleShown());
-    ON_CALL(mock_delegate_, GetPasswordChangeDelegate)
-        .WillByDefault(Return(&password_change_delegate_));
-    controller_ = std::make_unique<FailedPasswordChangeBubbleController>(
-        mock_delegate_.AsWeakPtr());
-  }
-
- protected:
-  PasswordsModelDelegateMock mock_delegate_;
-  std::unique_ptr<FailedPasswordChangeBubbleController> controller_;
-  PasswordChangeDelegateMock password_change_delegate_;
-};
-
-TEST_F(FailedPasswordChangeBubbleControllerTest,
-       MetricsReportedForFixManually) {
-  base::HistogramTester histogram_tester;
-  CreateController();
-
-  controller_->FixManually();
-  controller_.reset();
-  histogram_tester.ExpectUniqueSample(
-      "PasswordManager.PasswordChange.ChangingFailedBubble",
-      metrics_util::CLICKED_ACCEPT, 1);
-}
-
-TEST_F(FailedPasswordChangeBubbleControllerTest,
-       MetricsReportedForBubbleClosure) {
-  base::HistogramTester histogram_tester;
-  CreateController();
-
-  controller_->FinishPasswordChange();
-  controller_.reset();
-  histogram_tester.ExpectUniqueSample(
-      "PasswordManager.PasswordChange.ChangingFailedBubble",
-      metrics_util::CLICKED_CANCEL, 1);
-}
-
-TEST_F(FailedPasswordChangeBubbleControllerTest,
-       MetricsReportedForAboutPasswordChangeLink) {
-  base::HistogramTester histogram_tester;
-  CreateController();
-
-  controller_->NavigateToPasswordChangeSettings();
-  controller_.reset();
-  histogram_tester.ExpectUniqueSample(
-      "PasswordManager.PasswordChange.ChangingFailedBubble",
-      metrics_util::CLICKED_ABOUT_PASSWORD_CHANGE, 1);
-}
diff --git a/chrome/browser/ui/passwords/bubble_controllers/password_change/no_password_change_form_bubble_controller.cc b/chrome/browser/ui/passwords/bubble_controllers/password_change/no_password_change_form_bubble_controller.cc
deleted file mode 100644
index 57ddfba..0000000
--- a/chrome/browser/ui/passwords/bubble_controllers/password_change/no_password_change_form_bubble_controller.cc
+++ /dev/null
@@ -1,62 +0,0 @@
-// Copyright 2025 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/passwords/bubble_controllers/password_change/no_password_change_form_bubble_controller.h"
-
-#include "base/memory/weak_ptr.h"
-#include "chrome/browser/password_manager/password_change_delegate.h"
-#include "chrome/browser/ui/passwords/passwords_model_delegate.h"
-#include "chrome/grit/generated_resources.h"
-#include "components/password_manager/core/browser/password_manager_metrics_util.h"
-#include "ui/base/l10n/l10n_util.h"
-
-namespace metrics_util = password_manager::metrics_util;
-
-NoPasswordChangeFormBubbleController::NoPasswordChangeFormBubbleController(
-    base::WeakPtr<PasswordsModelDelegate> delegate)
-    : PasswordBubbleControllerBase(
-          delegate,
-          password_manager::metrics_util::UIDisplayDisposition::
-              PASSWORD_CHANGE_BUBBLE),
-      password_change_delegate_(
-          delegate_->GetPasswordChangeDelegate()->AsWeakPtr()) {}
-
-NoPasswordChangeFormBubbleController::~NoPasswordChangeFormBubbleController() {
-  OnBubbleClosing();
-}
-
-void NoPasswordChangeFormBubbleController::Restart() {
-  dismissal_reason_ = metrics_util::CLICKED_ACCEPT;
-  CHECK(password_change_delegate_);
-  password_change_delegate_->Restart();
-}
-
-void NoPasswordChangeFormBubbleController::Cancel() {
-  dismissal_reason_ = metrics_util::CLICKED_CANCEL;
-  CHECK(password_change_delegate_);
-  if (password_change_delegate_) {
-    password_change_delegate_->Stop();
-  }
-}
-
-std::u16string NoPasswordChangeFormBubbleController::GetTitle() const {
-  return l10n_util::GetStringUTF16(
-      IDS_PASSWORD_MANAGER_UI_PASSWORD_CHANGE_RETRY_TITLE);
-}
-
-std::u16string NoPasswordChangeFormBubbleController::GetBody() const {
-  return l10n_util::GetStringUTF16(
-      IDS_PASSWORD_MANAGER_UI_PASSWORD_CHANGE_RETRY_BODY);
-}
-
-std::u16string NoPasswordChangeFormBubbleController::GetAcceptButton() const {
-  return l10n_util::GetStringUTF16(
-      IDS_PASSWORD_MANAGER_UI_PASSWORD_CHANGE_RETRY_ACTION);
-}
-
-void NoPasswordChangeFormBubbleController::ReportInteractions() {
-  base::UmaHistogramEnumeration(
-      "PasswordManager.PasswordChange.NoPasswordFormBubble", dismissal_reason_,
-      metrics_util::NUM_UI_RESPONSES);
-}
diff --git a/chrome/browser/ui/passwords/bubble_controllers/password_change/no_password_change_form_bubble_controller.h b/chrome/browser/ui/passwords/bubble_controllers/password_change/no_password_change_form_bubble_controller.h
deleted file mode 100644
index 5393110..0000000
--- a/chrome/browser/ui/passwords/bubble_controllers/password_change/no_password_change_form_bubble_controller.h
+++ /dev/null
@@ -1,38 +0,0 @@
-// Copyright 2025 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_PASSWORDS_BUBBLE_CONTROLLERS_PASSWORD_CHANGE_NO_PASSWORD_CHANGE_FORM_BUBBLE_CONTROLLER_H_
-#define CHROME_BROWSER_UI_PASSWORDS_BUBBLE_CONTROLLERS_PASSWORD_CHANGE_NO_PASSWORD_CHANGE_FORM_BUBBLE_CONTROLLER_H_
-
-#include "chrome/browser/ui/passwords/bubble_controllers/password_bubble_controller_base.h"
-
-class PasswordChangeDelegate;
-
-// Controller for NoPasswordChangeFormView which is displayed on timeout.
-class NoPasswordChangeFormBubbleController
-    : public PasswordBubbleControllerBase {
- public:
-  explicit NoPasswordChangeFormBubbleController(
-      base::WeakPtr<PasswordsModelDelegate> delegate);
-
-  ~NoPasswordChangeFormBubbleController() override;
-
-  // PasswordBubbleControllerBase methods:
-  std::u16string GetTitle() const override;
-  void ReportInteractions() override;
-
-  void Restart();
-  void Cancel();
-
-  std::u16string GetBody() const;
-  std::u16string GetAcceptButton() const;
-
- private:
-  base::WeakPtr<PasswordChangeDelegate> password_change_delegate_;
-  // Dismissal reason for this bubble.
-  password_manager::metrics_util::UIDismissalReason dismissal_reason_ =
-      password_manager::metrics_util::NO_DIRECT_INTERACTION;
-};
-
-#endif  // CHROME_BROWSER_UI_PASSWORDS_BUBBLE_CONTROLLERS_PASSWORD_CHANGE_NO_PASSWORD_CHANGE_FORM_BUBBLE_CONTROLLER_H_
diff --git a/chrome/browser/ui/passwords/bubble_controllers/password_change/no_password_change_form_bubble_controller_unittest.cc b/chrome/browser/ui/passwords/bubble_controllers/password_change/no_password_change_form_bubble_controller_unittest.cc
deleted file mode 100644
index d1e7bf08..0000000
--- a/chrome/browser/ui/passwords/bubble_controllers/password_change/no_password_change_form_bubble_controller_unittest.cc
+++ /dev/null
@@ -1,54 +0,0 @@
-// Copyright 2025 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/passwords/bubble_controllers/password_change/no_password_change_form_bubble_controller.h"
-
-#include <memory>
-
-#include "base/test/metrics/histogram_tester.h"
-#include "chrome/browser/password_manager/password_change_delegate_mock.h"
-#include "chrome/browser/ui/passwords/passwords_model_delegate_mock.h"
-#include "testing/gmock/include/gmock/gmock.h"
-#include "testing/gtest/include/gtest/gtest.h"
-
-using testing::Return;
-namespace metrics_util = password_manager::metrics_util;
-
-class NoPasswordChangeFormBubbleControllerTest : public ::testing::Test {
- public:
-  void CreateController() {
-    EXPECT_CALL(mock_delegate_, OnBubbleShown());
-    ON_CALL(mock_delegate_, GetPasswordChangeDelegate)
-        .WillByDefault(Return(&password_change_delegate_));
-    controller_ = std::make_unique<NoPasswordChangeFormBubbleController>(
-        mock_delegate_.AsWeakPtr());
-  }
-
- protected:
-  PasswordsModelDelegateMock mock_delegate_;
-  std::unique_ptr<NoPasswordChangeFormBubbleController> controller_;
-  PasswordChangeDelegateMock password_change_delegate_;
-};
-
-TEST_F(NoPasswordChangeFormBubbleControllerTest, MetricsReportedForCancel) {
-  base::HistogramTester histogram_tester;
-  CreateController();
-
-  controller_->Cancel();
-  controller_.reset();
-  histogram_tester.ExpectUniqueSample(
-      "PasswordManager.PasswordChange.NoPasswordFormBubble",
-      metrics_util::CLICKED_CANCEL, 1);
-}
-
-TEST_F(NoPasswordChangeFormBubbleControllerTest, MetricsReportedForRetry) {
-  base::HistogramTester histogram_tester;
-  CreateController();
-
-  controller_->Restart();
-  controller_.reset();
-  histogram_tester.ExpectUniqueSample(
-      "PasswordManager.PasswordChange.NoPasswordFormBubble",
-      metrics_util::CLICKED_ACCEPT, 1);
-}
diff --git a/chrome/browser/ui/passwords/bubble_controllers/password_change/otp_during_password_change_bubble_controller.cc b/chrome/browser/ui/passwords/bubble_controllers/password_change/otp_during_password_change_bubble_controller.cc
deleted file mode 100644
index 9113ff6..0000000
--- a/chrome/browser/ui/passwords/bubble_controllers/password_change/otp_during_password_change_bubble_controller.cc
+++ /dev/null
@@ -1,65 +0,0 @@
-// Copyright 2025 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/passwords/bubble_controllers/password_change/otp_during_password_change_bubble_controller.h"
-
-#include "base/memory/weak_ptr.h"
-#include "chrome/browser/password_manager/password_change_delegate.h"
-#include "chrome/browser/ui/passwords/passwords_model_delegate.h"
-#include "chrome/grit/generated_resources.h"
-#include "components/password_manager/core/browser/password_manager_metrics_util.h"
-#include "ui/base/l10n/l10n_util.h"
-
-namespace metrics_util = password_manager::metrics_util;
-
-OtpDuringPasswordChangeBubbleController::
-    OtpDuringPasswordChangeBubbleController(
-        base::WeakPtr<PasswordsModelDelegate> delegate)
-    : PasswordBubbleControllerBase(
-          delegate,
-          password_manager::metrics_util::UIDisplayDisposition::
-              PASSWORD_CHANGE_BUBBLE),
-      password_change_delegate_(
-          delegate_->GetPasswordChangeDelegate()->AsWeakPtr()) {}
-
-OtpDuringPasswordChangeBubbleController::
-    ~OtpDuringPasswordChangeBubbleController() {
-  OnBubbleClosing();
-}
-
-std::u16string OtpDuringPasswordChangeBubbleController::GetTitle() const {
-  return l10n_util::GetStringUTF16(
-      IDS_PASSWORD_MANAGER_UI_OTP_DURING_PASSWORD_CHANGE_TITLE);
-}
-
-std::u16string OtpDuringPasswordChangeBubbleController::GetBody() const {
-  return l10n_util::GetStringUTF16(
-      IDS_PASSWORD_MANAGER_UI_OTP_DURING_PASSWORD_CHANGE_BODY);
-}
-
-std::u16string OtpDuringPasswordChangeBubbleController::GetAcceptButtonText()
-    const {
-  return l10n_util::GetStringUTF16(
-      IDS_PASSWORD_MANAGER_UI_OTP_DURING_PASSWORD_CHANGE_ACTION);
-}
-
-void OtpDuringPasswordChangeBubbleController::ReportInteractions() {
-  // TODO(crbug.com/412612384): Add metrics recording.
-}
-
-void OtpDuringPasswordChangeBubbleController::FixManually() {
-  password_change_delegate_->OpenPasswordChangeTab();
-  FinishPasswordChange();
-}
-
-void OtpDuringPasswordChangeBubbleController::FinishPasswordChange() {
-  if (password_change_delegate_) {
-    password_change_delegate_->Stop();
-  }
-}
-
-void OtpDuringPasswordChangeBubbleController::
-    NavigateToPasswordChangeSettings() {
-  delegate_->NavigateToPasswordChangeSettings();
-}
diff --git a/chrome/browser/ui/passwords/bubble_controllers/password_change/otp_during_password_change_bubble_controller.h b/chrome/browser/ui/passwords/bubble_controllers/password_change/otp_during_password_change_bubble_controller.h
deleted file mode 100644
index ead17e4..0000000
--- a/chrome/browser/ui/passwords/bubble_controllers/password_change/otp_during_password_change_bubble_controller.h
+++ /dev/null
@@ -1,41 +0,0 @@
-// Copyright 2025 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_PASSWORDS_BUBBLE_CONTROLLERS_PASSWORD_CHANGE_OTP_DURING_PASSWORD_CHANGE_BUBBLE_CONTROLLER_H_
-#define CHROME_BROWSER_UI_PASSWORDS_BUBBLE_CONTROLLERS_PASSWORD_CHANGE_OTP_DURING_PASSWORD_CHANGE_BUBBLE_CONTROLLER_H_
-
-#include "chrome/browser/ui/passwords/bubble_controllers/password_bubble_controller_base.h"
-
-class PasswordChangeDelegate;
-
-// Controller for OtpDuringPasswordChangeView which is displayed after
-// OTP field was detected during the password change flow.
-class OtpDuringPasswordChangeBubbleController
-    : public PasswordBubbleControllerBase {
- public:
-  explicit OtpDuringPasswordChangeBubbleController(
-      base::WeakPtr<PasswordsModelDelegate> delegate);
-
-  ~OtpDuringPasswordChangeBubbleController() override;
-
-  // PasswordBubbleControllerBase methods:
-  std::u16string GetTitle() const override;
-  void ReportInteractions() override;
-
-  std::u16string GetBody() const;
-  std::u16string GetAcceptButtonText() const;
-
-  // Opens a tab where password change is ongoing.
-  void FixManually();
-
-  // Marks password change flow as completed.
-  void FinishPasswordChange();
-
-  void NavigateToPasswordChangeSettings();
-
- private:
-  base::WeakPtr<PasswordChangeDelegate> password_change_delegate_;
-};
-
-#endif  // CHROME_BROWSER_UI_PASSWORDS_BUBBLE_CONTROLLERS_PASSWORD_CHANGE_OTP_DURING_PASSWORD_CHANGE_BUBBLE_CONTROLLER_H_
diff --git a/chrome/browser/ui/passwords/bubble_controllers/password_change/otp_during_password_change_bubble_controller_unittest.cc b/chrome/browser/ui/passwords/bubble_controllers/password_change/otp_during_password_change_bubble_controller_unittest.cc
deleted file mode 100644
index 51ed414d..0000000
--- a/chrome/browser/ui/passwords/bubble_controllers/password_change/otp_during_password_change_bubble_controller_unittest.cc
+++ /dev/null
@@ -1,62 +0,0 @@
-// Copyright 2025 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/passwords/bubble_controllers/password_change/otp_during_password_change_bubble_controller.h"
-
-#include <memory>
-
-#include "base/test/metrics/histogram_tester.h"
-#include "chrome/browser/password_manager/password_change_delegate_mock.h"
-#include "chrome/browser/ui/passwords/passwords_model_delegate_mock.h"
-#include "testing/gmock/include/gmock/gmock.h"
-#include "testing/gtest/include/gtest/gtest.h"
-
-using testing::Return;
-
-class OtpDuringPasswordChangeBubbleControllerTest : public ::testing::Test {
- public:
-  PasswordsModelDelegateMock& mock_delegate() { return mock_delegate_; }
-  PasswordChangeDelegateMock& password_change_delegate() {
-    return password_change_delegate_;
-  }
-
- private:
-  PasswordsModelDelegateMock mock_delegate_;
-  PasswordChangeDelegateMock password_change_delegate_;
-};
-
-TEST_F(OtpDuringPasswordChangeBubbleControllerTest, FixManually) {
-  EXPECT_CALL(mock_delegate(), GetPasswordChangeDelegate)
-      .WillRepeatedly(Return(&password_change_delegate()));
-  OtpDuringPasswordChangeBubbleController controller(
-      mock_delegate().AsWeakPtr());
-
-  EXPECT_CALL(password_change_delegate(), OpenPasswordChangeTab);
-  EXPECT_CALL(password_change_delegate(), Stop);
-
-  controller.FixManually();
-}
-
-TEST_F(OtpDuringPasswordChangeBubbleControllerTest, FinishPasswordChange) {
-  EXPECT_CALL(mock_delegate(), GetPasswordChangeDelegate)
-      .WillRepeatedly(Return(&password_change_delegate()));
-  OtpDuringPasswordChangeBubbleController controller(
-      mock_delegate().AsWeakPtr());
-
-  EXPECT_CALL(password_change_delegate(), Stop);
-
-  controller.FinishPasswordChange();
-}
-
-TEST_F(OtpDuringPasswordChangeBubbleControllerTest,
-       NavigateToPasswordChangeSettings) {
-  EXPECT_CALL(mock_delegate(), GetPasswordChangeDelegate)
-      .WillRepeatedly(Return(&password_change_delegate()));
-  OtpDuringPasswordChangeBubbleController controller(
-      mock_delegate().AsWeakPtr());
-
-  EXPECT_CALL(mock_delegate(), NavigateToPasswordChangeSettings);
-
-  controller.NavigateToPasswordChangeSettings();
-}
diff --git a/chrome/browser/ui/passwords/bubble_controllers/password_change/password_change_info_bubble_controller.cc b/chrome/browser/ui/passwords/bubble_controllers/password_change/password_change_info_bubble_controller.cc
deleted file mode 100644
index 2e9cb14..0000000
--- a/chrome/browser/ui/passwords/bubble_controllers/password_change/password_change_info_bubble_controller.cc
+++ /dev/null
@@ -1,98 +0,0 @@
-// Copyright 2024 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/passwords/bubble_controllers/password_change/password_change_info_bubble_controller.h"
-
-#include "base/notreached.h"
-#include "base/strings/utf_string_conversions.h"
-#include "chrome/browser/password_manager/password_change_delegate.h"
-#include "chrome/browser/profiles/profile.h"
-#include "chrome/browser/signin/identity_manager_factory.h"
-#include "chrome/browser/sync/sync_service_factory.h"
-#include "chrome/browser/ui/passwords/passwords_model_delegate.h"
-#include "chrome/browser/ui/passwords/ui_utils.h"
-#include "chrome/browser/ui/views/passwords/password_bubble_view_base.h"
-#include "chrome/grit/generated_resources.h"
-#include "components/password_manager/core/browser/password_manager_metrics_util.h"
-#include "ui/base/l10n/l10n_util.h"
-
-namespace metrics_util = password_manager::metrics_util;
-
-PasswordChangeInfoBubbleController::PasswordChangeInfoBubbleController(
-    base::WeakPtr<PasswordsModelDelegate> delegate,
-    PasswordChangeDelegate::State state)
-    : PasswordBubbleControllerBase(
-          delegate,
-          password_manager::metrics_util::UIDisplayDisposition::
-              PASSWORD_CHANGE_BUBBLE),
-      state_(state),
-      password_change_delegate_(
-          delegate_->GetPasswordChangeDelegate()->AsWeakPtr()) {
-  password_change_delegate_->AddObserver(this);
-}
-
-PasswordChangeInfoBubbleController::~PasswordChangeInfoBubbleController() {
-  OnBubbleClosing();
-  if (!password_change_delegate_) {
-    return;
-  }
-  password_change_delegate_->RemoveObserver(this);
-}
-
-std::u16string PasswordChangeInfoBubbleController::GetTitle() const {
-  if (state_ == PasswordChangeDelegate::State::kWaitingForChangePasswordForm) {
-    return l10n_util::GetStringUTF16(
-        IDS_PASSWORD_MANAGER_UI_SIGN_IN_CHECK_TITLE);
-  }
-  if (state_ == PasswordChangeDelegate::State::kChangingPassword) {
-    return l10n_util::GetStringUTF16(
-        IDS_PASSWORD_MANAGER_UI_PASSWORD_CHANGE_INFO_BUBBLE_TITLE);
-  }
-  NOTREACHED();
-}
-
-void PasswordChangeInfoBubbleController::ReportInteractions() {
-  base::UmaHistogramEnumeration(
-      "PasswordManager.PasswordChange.InformationBubble", dismissal_reason_,
-      metrics_util::NUM_UI_RESPONSES);
-}
-
-void PasswordChangeInfoBubbleController::OnStateChanged(
-    PasswordChangeDelegate::State new_state) {
-  if (new_state == state_) {
-    return;
-  }
-  PasswordBubbleViewBase::CloseCurrentBubble();
-}
-
-void PasswordChangeInfoBubbleController::OnPasswordChangeStopped(
-    PasswordChangeDelegate* delegate) {
-  PasswordBubbleViewBase::CloseCurrentBubble();
-}
-
-void PasswordChangeInfoBubbleController::CancelPasswordChange() {
-  dismissal_reason_ = metrics_util::CLICKED_CANCEL;
-  CHECK(password_change_delegate_);
-  PasswordBubbleViewBase::CloseCurrentBubble();
-  password_change_delegate_->Stop();
-}
-
-std::u16string PasswordChangeInfoBubbleController::GetDisplayOrigin() {
-  return password_change_delegate_->GetDisplayOrigin();
-}
-
-void PasswordChangeInfoBubbleController::OnGooglePasswordManagerLinkClicked() {
-  dismissal_reason_ = metrics_util::CLICKED_MANAGE_PASSWORD;
-  if (delegate_) {
-    delegate_->NavigateToPasswordManagerSettingsPage(
-        password_manager::ManagePasswordsReferrer::kPasswordChangeInfoBubble);
-  }
-}
-
-std::u16string PasswordChangeInfoBubbleController::GetPrimaryAccountEmail() {
-  Profile* profile = GetProfile();
-  return base::UTF8ToUTF16(GetDisplayableAccountName(
-      SyncServiceFactory::GetForProfile(profile),
-      IdentityManagerFactory::GetForProfile(profile)));
-}
diff --git a/chrome/browser/ui/passwords/bubble_controllers/password_change/password_change_info_bubble_controller.h b/chrome/browser/ui/passwords/bubble_controllers/password_change/password_change_info_bubble_controller.h
deleted file mode 100644
index c73a58b1..0000000
--- a/chrome/browser/ui/passwords/bubble_controllers/password_change/password_change_info_bubble_controller.h
+++ /dev/null
@@ -1,47 +0,0 @@
-// Copyright 2024 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_PASSWORDS_BUBBLE_CONTROLLERS_PASSWORD_CHANGE_PASSWORD_CHANGE_INFO_BUBBLE_CONTROLLER_H_
-#define CHROME_BROWSER_UI_PASSWORDS_BUBBLE_CONTROLLERS_PASSWORD_CHANGE_PASSWORD_CHANGE_INFO_BUBBLE_CONTROLLER_H_
-
-#include <string>
-
-#include "base/memory/weak_ptr.h"
-#include "chrome/browser/password_manager/password_change_delegate.h"
-#include "chrome/browser/ui/passwords/bubble_controllers/password_bubble_controller_base.h"
-
-// Controller for the views informing the user about the password change flow
-// state.
-class PasswordChangeInfoBubbleController : public PasswordBubbleControllerBase,
-                                           PasswordChangeDelegate::Observer {
- public:
-  explicit PasswordChangeInfoBubbleController(
-      base::WeakPtr<PasswordsModelDelegate> delegate,
-      PasswordChangeDelegate::State state);
-
-  ~PasswordChangeInfoBubbleController() override;
-
-  // PasswordBubbleControllerBase methods:
-  std::u16string GetTitle() const override;
-  void ReportInteractions() override;
-
-  // PasswordChangeDelegate::Observer methods:
-  void OnStateChanged(PasswordChangeDelegate::State new_state) override;
-  void OnPasswordChangeStopped(PasswordChangeDelegate* delegate) override;
-
-  void CancelPasswordChange();
-  // Get the change password origin to be displayed in UI.
-  std::u16string GetDisplayOrigin();
-  void OnGooglePasswordManagerLinkClicked();
-  std::u16string GetPrimaryAccountEmail();
-
- private:
-  PasswordChangeDelegate::State state_;
-  base::WeakPtr<PasswordChangeDelegate> password_change_delegate_;
-  // Dismissal reason for this bubble.
-  password_manager::metrics_util::UIDismissalReason dismissal_reason_ =
-      password_manager::metrics_util::NO_DIRECT_INTERACTION;
-};
-
-#endif  // CHROME_BROWSER_UI_PASSWORDS_BUBBLE_CONTROLLERS_PASSWORD_CHANGE_PASSWORD_CHANGE_INFO_BUBBLE_CONTROLLER_H_
diff --git a/chrome/browser/ui/passwords/bubble_controllers/password_change/password_change_info_bubble_controller_unittest.cc b/chrome/browser/ui/passwords/bubble_controllers/password_change/password_change_info_bubble_controller_unittest.cc
deleted file mode 100644
index 8fa30ba..0000000
--- a/chrome/browser/ui/passwords/bubble_controllers/password_change/password_change_info_bubble_controller_unittest.cc
+++ /dev/null
@@ -1,83 +0,0 @@
-// Copyright 2024 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/passwords/bubble_controllers/password_change/password_change_info_bubble_controller.h"
-
-#include "base/test/metrics/histogram_tester.h"
-#include "chrome/browser/password_manager/password_change_delegate_mock.h"
-#include "chrome/browser/ui/passwords/passwords_model_delegate_mock.h"
-#include "components/password_manager/core/browser/password_manager_metrics_util.h"
-#include "testing/gmock/include/gmock/gmock.h"
-#include "testing/gtest/include/gtest/gtest.h"
-
-using testing::Return;
-namespace metrics_util = password_manager::metrics_util;
-
-class PasswordChangeBubbleControllerTest : public ::testing::Test {
- public:
-  PasswordChangeBubbleControllerTest() {
-    mock_delegate_ =
-        std::make_unique<testing::NiceMock<PasswordsModelDelegateMock>>();
-  }
-  void CreateController() {
-    EXPECT_CALL(*mock_delegate_, OnBubbleShown());
-    password_change_delegate_ = std::make_unique<PasswordChangeDelegateMock>();
-    ON_CALL(*mock_delegate_, GetPasswordChangeDelegate)
-        .WillByDefault(Return(password_change_delegate_.get()));
-    controller_ = std::make_unique<PasswordChangeInfoBubbleController>(
-        mock_delegate_->AsWeakPtr(),
-        PasswordChangeDelegate::State::kWaitingForChangePasswordForm);
-  }
-
-  PasswordsModelDelegateMock* delegate() { return mock_delegate_.get(); }
-  PasswordChangeDelegateMock* password_change_delegate() {
-    return password_change_delegate_.get();
-  }
-
- protected:
-  std::unique_ptr<PasswordChangeInfoBubbleController> controller_;
-
- private:
-  std::unique_ptr<PasswordsModelDelegateMock> mock_delegate_;
-  std::unique_ptr<PasswordChangeDelegateMock> password_change_delegate_;
-};
-
-TEST_F(PasswordChangeBubbleControllerTest, ControllerDestroyed) {
-  base::HistogramTester histogram_tester;
-  CreateController();
-
-  EXPECT_CALL(*delegate(), OnBubbleHidden());
-  controller_->OnBubbleClosing();
-  histogram_tester.ExpectUniqueSample(
-      "PasswordManager.PasswordChange.InformationBubble",
-      metrics_util::NO_DIRECT_INTERACTION, 1);
-}
-
-TEST_F(PasswordChangeBubbleControllerTest, CancelsFlow) {
-  base::HistogramTester histogram_tester;
-  CreateController();
-  ON_CALL(*password_change_delegate(), GetCurrentState)
-      .WillByDefault(
-          Return(PasswordChangeDelegate::State::kWaitingForChangePasswordForm));
-
-  EXPECT_CALL(*password_change_delegate(), Stop);
-  controller_->CancelPasswordChange();
-  controller_.reset();
-  histogram_tester.ExpectUniqueSample(
-      "PasswordManager.PasswordChange.InformationBubble",
-      metrics_util::CLICKED_CANCEL, 1);
-}
-
-TEST_F(PasswordChangeBubbleControllerTest, OpensPasswordManagerPage) {
-  base::HistogramTester histogram_tester;
-  CreateController();
-  EXPECT_CALL(*delegate(), NavigateToPasswordManagerSettingsPage(
-                               password_manager::ManagePasswordsReferrer::
-                                   kPasswordChangeInfoBubble));
-  controller_->OnGooglePasswordManagerLinkClicked();
-  controller_.reset();
-  histogram_tester.ExpectUniqueSample(
-      "PasswordManager.PasswordChange.InformationBubble",
-      metrics_util::CLICKED_MANAGE_PASSWORD, 1);
-}
diff --git a/chrome/browser/ui/passwords/bubble_controllers/password_change/privacy_notice_bubble_view_controller.cc b/chrome/browser/ui/passwords/bubble_controllers/password_change/privacy_notice_bubble_view_controller.cc
deleted file mode 100644
index bc79633..0000000
--- a/chrome/browser/ui/passwords/bubble_controllers/password_change/privacy_notice_bubble_view_controller.cc
+++ /dev/null
@@ -1,49 +0,0 @@
-// Copyright 2025 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/passwords/bubble_controllers/password_change/privacy_notice_bubble_view_controller.h"
-
-#include "base/memory/weak_ptr.h"
-#include "chrome/browser/ui/passwords/passwords_model_delegate.h"
-#include "chrome/browser/ui/views/passwords/password_bubble_view_base.h"
-#include "chrome/grit/generated_resources.h"
-#include "components/password_manager/core/browser/password_manager_metrics_util.h"
-#include "ui/base/l10n/l10n_util.h"
-
-namespace metrics_util = password_manager::metrics_util;
-
-PrivacyNoticeBubbleViewController::PrivacyNoticeBubbleViewController(
-    base::WeakPtr<PasswordsModelDelegate> delegate)
-    : PasswordBubbleControllerBase(
-          delegate,
-          password_manager::metrics_util::UIDisplayDisposition::
-              PASSWORD_CHANGE_BUBBLE),
-      password_change_delegate_(
-          delegate_->GetPasswordChangeDelegate()->AsWeakPtr()) {}
-
-PrivacyNoticeBubbleViewController::~PrivacyNoticeBubbleViewController() {
-  OnBubbleClosing();
-}
-
-std::u16string PrivacyNoticeBubbleViewController::GetTitle() const {
-  return l10n_util::GetStringUTF16(
-      IDS_PASSWORD_MANAGER_UI_PASSWORD_CHANGE_PRIVACY_NOTICE_TITLE);
-}
-
-void PrivacyNoticeBubbleViewController::ReportInteractions() {
-  base::UmaHistogramEnumeration(
-      "PasswordManager.PasswordChange.PrivacyNoticeBubble", dismissal_reason_,
-      metrics_util::NUM_UI_RESPONSES);
-}
-
-void PrivacyNoticeBubbleViewController::AcceptNotice() {
-  dismissal_reason_ = metrics_util::CLICKED_ACCEPT;
-  password_change_delegate_->OnPrivacyNoticeAccepted();
-}
-
-void PrivacyNoticeBubbleViewController::Cancel() {
-  dismissal_reason_ = metrics_util::CLICKED_CANCEL;
-  CHECK(password_change_delegate_);
-  password_change_delegate_->Stop();
-}
diff --git a/chrome/browser/ui/passwords/bubble_controllers/password_change/privacy_notice_bubble_view_controller.h b/chrome/browser/ui/passwords/bubble_controllers/password_change/privacy_notice_bubble_view_controller.h
deleted file mode 100644
index b97232a..0000000
--- a/chrome/browser/ui/passwords/bubble_controllers/password_change/privacy_notice_bubble_view_controller.h
+++ /dev/null
@@ -1,36 +0,0 @@
-// Copyright 2025 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_PASSWORDS_BUBBLE_CONTROLLERS_PASSWORD_CHANGE_PRIVACY_NOTICE_BUBBLE_VIEW_CONTROLLER_H_
-#define CHROME_BROWSER_UI_PASSWORDS_BUBBLE_CONTROLLERS_PASSWORD_CHANGE_PRIVACY_NOTICE_BUBBLE_VIEW_CONTROLLER_H_
-
-#include "chrome/browser/password_manager/password_change_delegate.h"
-#include "chrome/browser/ui/passwords/bubble_controllers/password_bubble_controller_base.h"
-
-// Controller for the privacy notice view. The privacy notice needs to be
-// accepted to start the password change flow.
-class PrivacyNoticeBubbleViewController : public PasswordBubbleControllerBase {
- public:
-  explicit PrivacyNoticeBubbleViewController(
-      base::WeakPtr<PasswordsModelDelegate> delegate);
-
-  ~PrivacyNoticeBubbleViewController() override;
-
-  // PasswordBubbleControllerBase methods:
-  std::u16string GetTitle() const override;
-  void ReportInteractions() override;
-
-  void AcceptNotice();
-
-  // Cancels the flow.
-  void Cancel();
-
- private:
-  base::WeakPtr<PasswordChangeDelegate> password_change_delegate_;
-  // Dismissal reason for this bubble.
-  password_manager::metrics_util::UIDismissalReason dismissal_reason_ =
-      password_manager::metrics_util::NO_DIRECT_INTERACTION;
-};
-
-#endif  // CHROME_BROWSER_UI_PASSWORDS_BUBBLE_CONTROLLERS_PASSWORD_CHANGE_PRIVACY_NOTICE_BUBBLE_VIEW_CONTROLLER_H_
diff --git a/chrome/browser/ui/passwords/bubble_controllers/password_change/privacy_notice_bubble_view_controller_unittest.cc b/chrome/browser/ui/passwords/bubble_controllers/password_change/privacy_notice_bubble_view_controller_unittest.cc
deleted file mode 100644
index f1d81f1..0000000
--- a/chrome/browser/ui/passwords/bubble_controllers/password_change/privacy_notice_bubble_view_controller_unittest.cc
+++ /dev/null
@@ -1,58 +0,0 @@
-// Copyright 2025 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/passwords/bubble_controllers/password_change/privacy_notice_bubble_view_controller.h"
-
-#include "base/test/metrics/histogram_tester.h"
-#include "chrome/browser/password_manager/password_change_delegate_mock.h"
-#include "chrome/browser/ui/passwords/bubble_controllers/password_change/password_change_info_bubble_controller.h"
-#include "chrome/browser/ui/passwords/passwords_model_delegate_mock.h"
-#include "testing/gmock/include/gmock/gmock.h"
-#include "testing/gtest/include/gtest/gtest.h"
-
-using testing::Return;
-namespace metrics_util = password_manager::metrics_util;
-
-class PrivacyNoticeBubbleViewControllerTest : public ::testing::Test {
- public:
-  PrivacyNoticeBubbleViewControllerTest() {
-    mock_delegate_ =
-        std::make_unique<testing::NiceMock<PasswordsModelDelegateMock>>();
-  }
-  void CreateController() {
-    EXPECT_CALL(*mock_delegate_, OnBubbleShown());
-    password_change_delegate_ = std::make_unique<PasswordChangeDelegateMock>();
-    ON_CALL(*mock_delegate_, GetPasswordChangeDelegate)
-        .WillByDefault(Return(password_change_delegate_.get()));
-    controller_ = std::make_unique<PrivacyNoticeBubbleViewController>(
-        mock_delegate_->AsWeakPtr());
-  }
-
- protected:
-  std::unique_ptr<PasswordsModelDelegateMock> mock_delegate_;
-  std::unique_ptr<PrivacyNoticeBubbleViewController> controller_;
-  std::unique_ptr<PasswordChangeDelegateMock> password_change_delegate_;
-};
-
-TEST_F(PrivacyNoticeBubbleViewControllerTest, MetricsReportedForCancel) {
-  base::HistogramTester histogram_tester;
-  CreateController();
-
-  controller_->Cancel();
-  controller_.reset();
-  histogram_tester.ExpectUniqueSample(
-      "PasswordManager.PasswordChange.PrivacyNoticeBubble",
-      metrics_util::CLICKED_CANCEL, 1);
-}
-
-TEST_F(PrivacyNoticeBubbleViewControllerTest, MetricsReportedForAccept) {
-  base::HistogramTester histogram_tester;
-  CreateController();
-
-  controller_->AcceptNotice();
-  controller_.reset();
-  histogram_tester.ExpectUniqueSample(
-      "PasswordManager.PasswordChange.PrivacyNoticeBubble",
-      metrics_util::CLICKED_ACCEPT, 1);
-}
diff --git a/chrome/browser/ui/passwords/manage_passwords_ui_controller.cc b/chrome/browser/ui/passwords/manage_passwords_ui_controller.cc
index bb25d41..688401a 100644
--- a/chrome/browser/ui/passwords/manage_passwords_ui_controller.cc
+++ b/chrome/browser/ui/passwords/manage_passwords_ui_controller.cc
@@ -469,6 +469,7 @@
 
     password_change_service->OfferPasswordChangeUi(
         details.origin, details.username, details.password, web_contents());
+    UpdateBubbleAndIconVisibility();
     return;
   }
 
@@ -721,7 +722,10 @@
 }
 
 password_manager::ui::State ManagePasswordsUIController::GetState() const {
-  if (IsPasswordChangeOngoing()) {
+  PasswordChangeDelegate* delegate = GetPasswordChangeDelegate();
+  if (delegate &&
+      delegate->GetCurrentState() ==
+          PasswordChangeDelegate::State::kPasswordSuccessfullyChanged) {
     return password_manager::ui::State::PASSWORD_CHANGE_STATE;
   }
   return passwords_data_.state();
@@ -1183,7 +1187,6 @@
     browser->window()->UpdatePageActionIcon(
         PageActionIconType::kManagePasswords);
   }
-  browser->window()->UpdatePageActionIcon(PageActionIconType::kChangePassword);
 }
 
 AccountChooserPrompt* ManagePasswordsUIController::CreateAccountChooser(
diff --git a/chrome/browser/ui/passwords/manage_passwords_ui_controller_unittest.cc b/chrome/browser/ui/passwords/manage_passwords_ui_controller_unittest.cc
index 9a51d14d..d291c401 100644
--- a/chrome/browser/ui/passwords/manage_passwords_ui_controller_unittest.cc
+++ b/chrome/browser/ui/passwords/manage_passwords_ui_controller_unittest.cc
@@ -1946,7 +1946,7 @@
       password_manager::ui::PASSKEY_NOT_ACCEPTED_STATE);
 }
 
-TEST_F(ManagePasswordsUIControllerTest, PasswordChangeOngoing) {
+TEST_F(ManagePasswordsUIControllerTest, PasswordChangeFinishedSuccessfully) {
   PasswordChangeServiceFactory::GetInstance()->SetTestingFactory(
       profile(),
       base::BindLambdaForTesting([](content::BrowserContext* context)
@@ -1967,10 +1967,13 @@
 
   // Emulate password change flow has started.
   PasswordChangeDelegateMock mock_delegate;
+  EXPECT_CALL(mock_delegate, GetCurrentState)
+      .WillOnce(
+          Return(PasswordChangeDelegate::State::kWaitingForChangePasswordForm));
   EXPECT_CALL(*password_change_service, GetPasswordChangeDelegate)
       .WillOnce(Return(&mock_delegate));
 
-  ASSERT_EQ(password_manager::ui::PASSWORD_CHANGE_STATE,
+  ASSERT_EQ(password_manager::ui::PENDING_PASSWORD_STATE,
             controller()->GetState());
 
   // Password change flow has finished successfully. The state should change to
diff --git a/chrome/browser/ui/passwords/password_change_icon_views_controller.cc b/chrome/browser/ui/passwords/password_change_icon_views_controller.cc
deleted file mode 100644
index a45f257..0000000
--- a/chrome/browser/ui/passwords/password_change_icon_views_controller.cc
+++ /dev/null
@@ -1,51 +0,0 @@
-// Copyright 2025 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/passwords/password_change_icon_views_controller.h"
-
-#include "chrome/browser/ui/passwords/manage_passwords_ui_controller.h"
-#include "content/public/browser/web_contents.h"
-
-PasswordChangeIconViewsController::PasswordChangeIconViewsController(
-    base::RepeatingClosure update_ui_callback,
-    base::RepeatingClosure update_visibility_callback)
-    : update_ui_callback_(std::move(update_ui_callback)),
-      update_visibility_callback_(std::move(update_visibility_callback)) {}
-
-PasswordChangeIconViewsController::~PasswordChangeIconViewsController() =
-    default;
-
-void PasswordChangeIconViewsController::SetPasswordChangeDelegate(
-    PasswordChangeDelegate* delegate) {
-  if (delegate == password_change_delegate_) {
-    return;
-  }
-  scoped_observation_.Reset();
-  password_change_delegate_ = delegate;
-  if (password_change_delegate_) {
-    OnStateChanged(password_change_delegate_->GetCurrentState());
-    scoped_observation_.Observe(password_change_delegate_);
-  }
-}
-
-PasswordChangeDelegate::State
-PasswordChangeIconViewsController::GetCurrentState() const {
-  return state_;
-}
-
-void PasswordChangeIconViewsController::OnStateChanged(
-    PasswordChangeDelegate::State state) {
-  if (state_ == state) {
-    return;
-  }
-  state_ = state;
-  update_ui_callback_.Run();
-}
-
-void PasswordChangeIconViewsController::OnPasswordChangeStopped(
-    PasswordChangeDelegate* delegate) {
-  scoped_observation_.Reset();
-  password_change_delegate_ = nullptr;
-  update_visibility_callback_.Run();
-}
diff --git a/chrome/browser/ui/passwords/password_change_icon_views_controller.h b/chrome/browser/ui/passwords/password_change_icon_views_controller.h
deleted file mode 100644
index c0c86d0..0000000
--- a/chrome/browser/ui/passwords/password_change_icon_views_controller.h
+++ /dev/null
@@ -1,50 +0,0 @@
-// Copyright 2025 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_PASSWORDS_PASSWORD_CHANGE_ICON_VIEWS_CONTROLLER_H_
-#define CHROME_BROWSER_UI_PASSWORDS_PASSWORD_CHANGE_ICON_VIEWS_CONTROLLER_H_
-
-#include "base/functional/callback.h"
-#include "chrome/browser/password_manager/password_change_delegate.h"
-#include "chrome/browser/ui/views/page_action/page_action_icon_view.h"
-#include "content/public/browser/web_contents.h"
-
-// Controller for the `PasswordChangeIconViews`. It observes the password change
-// state changes and triggers view updates.
-class PasswordChangeIconViewsController
-    : public PasswordChangeDelegate::Observer {
- public:
-  PasswordChangeIconViewsController(
-      base::RepeatingClosure update_ui_callback,
-      base::RepeatingClosure update_visibility_callback);
-  PasswordChangeIconViewsController(const PasswordChangeIconViewsController&) =
-      delete;
-  PasswordChangeIconViewsController& operator=(
-      const PasswordChangeIconViewsController&) = delete;
-  ~PasswordChangeIconViewsController() override;
-
-  void SetPasswordChangeDelegate(PasswordChangeDelegate* delegate);
-
-  PasswordChangeDelegate::State GetCurrentState() const;
-
- private:
-  // PasswordChangeDelegate::Observer
-  void OnStateChanged(PasswordChangeDelegate::State state) override;
-  void OnPasswordChangeStopped(PasswordChangeDelegate* delegate) override;
-
-  // Updates the icon and the label in the view.
-  base::RepeatingClosure update_ui_callback_;
-  // Hides/shows the view. This needs to be called if password change flow is
-  // finished/canceled.
-  base::RepeatingClosure update_visibility_callback_;
-  raw_ptr<PasswordChangeDelegate> password_change_delegate_ = nullptr;
-  PasswordChangeDelegate::State state_ =
-      static_cast<PasswordChangeDelegate::State>(-1);
-
-  base::ScopedObservation<PasswordChangeDelegate,
-                          PasswordChangeDelegate::Observer>
-      scoped_observation_{this};
-};
-
-#endif  // CHROME_BROWSER_UI_PASSWORDS_PASSWORD_CHANGE_ICON_VIEWS_CONTROLLER_H_
diff --git a/chrome/browser/ui/passwords/password_change_ui_controller.cc b/chrome/browser/ui/passwords/password_change_ui_controller.cc
index db6c434..48c3b2f 100644
--- a/chrome/browser/ui/passwords/password_change_ui_controller.cc
+++ b/chrome/browser/ui/passwords/password_change_ui_controller.cc
@@ -135,13 +135,8 @@
 
 void PasswordChangeUIController::UpdateState(
     PasswordChangeDelegate::State state) {
-  if (state_ == state) {
-    return;
-  }
-
-  state_ = state;
   std::variant<ToastOptions, std::unique_ptr<ui::DialogModel>> configuration =
-      GetDialogOrToastConfiguration(state_);
+      GetDialogOrToastConfiguration(state);
 
   if (std::holds_alternative<ToastOptions>(configuration)) {
     if (toast_view_) {
diff --git a/chrome/browser/ui/tabs/tab_model.cc b/chrome/browser/ui/tabs/tab_model.cc
index 51ae935..4a7faea7 100644
--- a/chrome/browser/ui/tabs/tab_model.cc
+++ b/chrome/browser/ui/tabs/tab_model.cc
@@ -36,6 +36,8 @@
 
 namespace tabs {
 
+DEFINE_HANDLE_FACTORY(TabInterface);
+
 namespace {
 
 // This class exists to allow consumers to look up a TabInterface from an
diff --git a/chrome/browser/ui/views/digital_credentials/digital_identity_multi_step_dialog.cc b/chrome/browser/ui/views/digital_credentials/digital_identity_multi_step_dialog.cc
index 423ff63a..875e8f25 100644
--- a/chrome/browser/ui/views/digital_credentials/digital_identity_multi_step_dialog.cc
+++ b/chrome/browser/ui/views/digital_credentials/digital_identity_multi_step_dialog.cc
@@ -121,6 +121,7 @@
   }
 
   SetTitle(dialog_title);
+  SetShowCloseButton(false);
   SetCancelCallbackWithClose(base::BindRepeating(
       &DigitalIdentityMultiStepDialogDelegate::OnDialogCanceled,
       base::Unretained(this)));
diff --git a/chrome/browser/ui/views/frame/top_controls_slide_controller_chromeos_browsertest.cc b/chrome/browser/ui/views/frame/top_controls_slide_controller_chromeos_browsertest.cc
index b8820169..23ffc60 100644
--- a/chrome/browser/ui/views/frame/top_controls_slide_controller_chromeos_browsertest.cc
+++ b/chrome/browser/ui/views/frame/top_controls_slide_controller_chromeos_browsertest.cc
@@ -692,50 +692,47 @@
   EXPECT_TRUE(browser_view()->GetLocationBarView()->omnibox_view()->HasFocus());
 }
 
-// Fails on Linux ChromiumOS MSan Tests (https://crbug.com/1194575).
 IN_PROC_BROWSER_TEST_F(TopControlsSlideControllerTest,
-                       DISABLED_TestScrollingPageAndSwitchingToNTP) {
+                       TestScrollingPageAndSwitchingToNTP) {
   ToggleTabletMode();
   ASSERT_TRUE(GetTabletModeEnabled());
   EXPECT_TRUE(top_controls_slide_controller()->IsEnabled());
   EXPECT_FLOAT_EQ(top_controls_slide_controller()->GetShownRatio(), 1.f);
 
-  // Add a tab containing a local NTP page. NTP pages are not permitted to hide
-  // top-chrome with scrolling.
-  ASSERT_TRUE(ui_test_utils::NavigateToURL(browser(),
-                                           GURL(chrome::kChromeUINewTabURL)));
   ASSERT_EQ(browser()->tab_strip_model()->count(), 1);
+  ASSERT_EQ(browser()->tab_strip_model()->active_index(), 0);
 
-  // Navigate to our test page that has a long vertical content which we can use
-  // to test page scrolling.
+  // Add a new tab (index 1), navigate it to the scrollable test page,
+  // making it the active tab.
+  chrome::NewTab(browser());
   NavigateActiveTabToUrl(
       embedded_test_server()->GetURL("/top_controls_scroll.html"));
-
   ASSERT_EQ(browser()->tab_strip_model()->count(), 2);
+  ASSERT_EQ(browser()->tab_strip_model()->active_index(), 1);
 
-  // Scroll the `top_controls_scroll.html` page such that top-chrome is now
-  // fully hidden.
+  // Scroll the active `top_controls_scroll.html` page (index 1) such that
+  // top-chrome is now fully hidden.
   ScrollAndExpectTopChromeToBe(ScrollDirection::kDown,
                                TopChromeShownState::kFullyHidden);
 
-  // Simulate (Ctrl + Tab) shortcut to select the next tab. Top-chrome should
-  // show automatically.
+  // Simulate (Ctrl + Tab) shortcut to select the next tab (NTP at index 0).
+  // Top-chrome should show automatically.
   TopControlsShownRatioWaiter waiter(top_controls_slide_controller());
   browser()->tab_strip_model()->SelectNextTab();
-  EXPECT_EQ(browser()->tab_strip_model()->active_index(), 1);
+  EXPECT_EQ(browser()->tab_strip_model()->active_index(), 0);
   waiter.WaitForRatio(1.f);
   EXPECT_FLOAT_EQ(top_controls_slide_controller()->GetShownRatio(), 1.f);
   CheckBrowserLayout(browser_view(), TopChromeShownState::kFullyShown);
 
-  // Since this is the NTP page, gesture scrolling down will not hide
+  // Since this is the NTP page (index 0), gesture scrolling down will not hide
   // top-chrome. It will remain fully shown.
   ScrollAndExpectTopChromeToBe(ScrollDirection::kDown,
                                TopChromeShownState::kFullyShown);
 
-  // Switch back to the scrollable page, it should be possible now to hide top-
-  // chrome.
+  // Switch back to the scrollable page (index 1), it should be possible now to
+  // hide top-chrome.
   browser()->tab_strip_model()->SelectNextTab();
-  EXPECT_EQ(browser()->tab_strip_model()->active_index(), 0);
+  EXPECT_EQ(browser()->tab_strip_model()->active_index(), 1);
   waiter.WaitForRatio(1.f);
   EXPECT_FLOAT_EQ(top_controls_slide_controller()->GetShownRatio(), 1.f);
 
@@ -745,10 +742,11 @@
   // The `DoBrowserControlsShrinkRendererSize` bit is separately tracked for
   // each tab.
   auto* tab_strip_model = browser()->tab_strip_model();
-  auto* scrollable_page_contents = tab_strip_model->GetWebContentsAt(0);
-  auto* ntp_contents = tab_strip_model->GetWebContentsAt(1);
+  auto* ntp_contents = tab_strip_model->GetWebContentsAt(0);
   EXPECT_TRUE(
       browser_view()->DoBrowserControlsShrinkRendererSize(ntp_contents));
+  auto* scrollable_page_contents =
+      browser()->tab_strip_model()->GetWebContentsAt(1);
   EXPECT_FALSE(browser_view()->DoBrowserControlsShrinkRendererSize(
       scrollable_page_contents));
 }
diff --git a/chrome/browser/ui/views/location_bar/cookie_controls/cookie_controls_bubble_view_controller.cc b/chrome/browser/ui/views/location_bar/cookie_controls/cookie_controls_bubble_view_controller.cc
index 4edc48d..6049e9a 100644
--- a/chrome/browser/ui/views/location_bar/cookie_controls/cookie_controls_bubble_view_controller.cc
+++ b/chrome/browser/ui/views/location_bar/cookie_controls/cookie_controls_bubble_view_controller.cc
@@ -24,6 +24,7 @@
 #include "components/content_settings/core/common/features.h"
 #include "components/favicon/core/favicon_service.h"
 #include "components/privacy_sandbox/privacy_sandbox_features.h"
+#include "components/privacy_sandbox/tracking_protection_settings.h"
 #include "components/strings/grit/privacy_sandbox_strings.h"
 #include "content/public/browser/navigation_controller.h"
 #include "content/public/browser/navigation_entry.h"
@@ -214,6 +215,7 @@
     desc = IDS_TRACKING_PROTECTIONS_BUBBLE_ACTIVE_PROTECTIONS_DESCRIPTION;
     button_label = IDS_TRACKING_PROTECTIONS_BUBBLE_PAUSE_PROTECTIONS_LABEL;
   }
+  bubble_view_->GetContentView()->SetTrackingProtectionsButtonVisible(true);
   bubble_view_->GetContentView()->SetCookiesRowVisible(false);
   bubble_view_->UpdateTitle(
       l10n_util::GetStringUTF16(IDS_INCOGNITO_TRACKING_PROTECTIONS_HEADER));
@@ -222,6 +224,9 @@
   bubble_view_->GetContentView()->SetTrackingProtectionsButtonLabel(
       l10n_util::GetStringUTF16(button_label));
   bubble_view_->GetContentView()->SetFeedbackSectionVisibility(tp_paused);
+  bubble_view_->GetContentView()->UpdateFeedbackButtonSubtitle(
+      l10n_util::GetStringUTF16(
+          IDS_TRACKING_PROTECTIONS_BUBBLE_SEND_FEEDBACK_DESCRIPTION));
   bubble_view_->GetContentView()->PreferredSizeChanged();
 }
 
@@ -332,16 +337,29 @@
 }
 
 void CookieControlsBubbleViewController::OnFeedbackButtonPressed() {
-  base::RecordAction(
-      base::UserMetricsAction("CookieControls.Bubble.SendFeedback"));
-  chrome::ShowFeedbackPage(
-      chrome::FindBrowserWithTab(web_contents_.get()),
-      feedback::kFeedbackSourceCookieControls,
-      /*description_template=*/std::string(),
-      l10n_util::GetStringUTF8(
-          IDS_COOKIE_CONTROLS_BUBBLE_SEND_FEEDBACK_FORM_PLACEHOLDER),
-      "cookie-controls",
-      /*extra_diagnostics=*/std::string());
+  if (privacy_sandbox::IsTrackingProtectionsUi(controls_state_)) {
+    chrome::ShowFeedbackPage(
+        chrome::FindBrowserWithTab(web_contents_.get()),
+        feedback::kFeedbackSourceTrackingProtections,
+        /*description_template=*/std::string(),
+        l10n_util::GetStringUTF8(
+            IDS_TRACKING_PROTECTIONS_BUBBLE_SEND_FEEDBACK_FORM_PLACEHOLDER),
+        "tracking-protections",
+        /*extra_diagnostics=*/std::string());
+    base::RecordAction(
+        base::UserMetricsAction("TrackingProtections.Bubble.SendFeedback"));
+  } else {
+    chrome::ShowFeedbackPage(
+        chrome::FindBrowserWithTab(web_contents_.get()),
+        feedback::kFeedbackSourceCookieControls,
+        /*description_template=*/std::string(),
+        l10n_util::GetStringUTF8(
+            IDS_COOKIE_CONTROLS_BUBBLE_SEND_FEEDBACK_FORM_PLACEHOLDER),
+        "cookie-controls",
+        /*extra_diagnostics=*/std::string());
+    base::RecordAction(
+        base::UserMetricsAction("CookieControls.Bubble.SendFeedback"));
+  }
 }
 
 std::unique_ptr<views::View>
diff --git a/chrome/browser/ui/views/location_bar/cookie_controls/cookie_controls_bubble_view_pixel_test.cc b/chrome/browser/ui/views/location_bar/cookie_controls/cookie_controls_bubble_view_pixel_test.cc
index 82b6ae21..738322f 100644
--- a/chrome/browser/ui/views/location_bar/cookie_controls/cookie_controls_bubble_view_pixel_test.cc
+++ b/chrome/browser/ui/views/location_bar/cookie_controls/cookie_controls_bubble_view_pixel_test.cc
@@ -21,6 +21,8 @@
 #include "components/content_settings/core/browser/cookie_settings.h"
 #include "components/content_settings/core/browser/host_content_settings_map.h"
 #include "components/content_settings/core/common/content_settings_pattern.h"
+#include "components/content_settings/core/common/cookie_blocking_3pcd_status.h"
+#include "components/content_settings/core/common/cookie_controls_enforcement.h"
 #include "components/content_settings/core/common/cookie_controls_state.h"
 #include "components/content_settings/core/common/features.h"
 #include "components/content_settings/core/common/pref_names.h"
@@ -35,23 +37,22 @@
 #include "ui/views/widget/any_widget_observer.h"
 #include "url/gurl.h"
 
-class CookieControlsBubbleViewPixelTest
-    : public DialogBrowserTest,
-      public testing::WithParamInterface<CookieBlocking3pcdStatus> {
+class CookieControlsBubbleViewPixelTestBase : public DialogBrowserTest {
  public:
-  CookieControlsBubbleViewPixelTest() = default;
+  CookieControlsBubbleViewPixelTestBase() = default;
 
   void TearDownOnMainThread() override {
     cookie_controls_coordinator_ = nullptr;
     controller_ = nullptr;
+    incognito_controller_ = nullptr;
     cookie_controls_icon_ = nullptr;
     DialogBrowserTest::TearDownOnMainThread();
   }
 
-  CookieControlsBubbleViewPixelTest(const CookieControlsBubbleViewPixelTest&) =
-      delete;
-  CookieControlsBubbleViewPixelTest& operator=(
-      const CookieControlsBubbleViewPixelTest&) = delete;
+  CookieControlsBubbleViewPixelTestBase(
+      const CookieControlsBubbleViewPixelTestBase&) = delete;
+  CookieControlsBubbleViewPixelTestBase& operator=(
+      const CookieControlsBubbleViewPixelTestBase&) = delete;
 
   void SetUp() override {
     https_server_ = std::make_unique<net::EmbeddedTestServer>(
@@ -98,11 +99,104 @@
         TrackingProtectionSettingsFactory::GetForProfile(browser()->profile()),
         /*is_incognito_profile=*/false);
 
+    incognito_controller_ =
+        std::make_unique<content_settings::CookieControlsController>(
+            CookieSettingsFactory::GetForProfile(incognito_profile()),
+            CookieSettingsFactory::GetForProfile(browser()->profile()),
+            HostContentSettingsMapFactory::GetForProfile(incognito_profile()),
+            TrackingProtectionSettingsFactory::GetForProfile(
+                incognito_profile()),
+            /*is_incognito_profile=*/true);
+
     cookie_controls_coordinator_ =
         &cookie_controls_icon_->GetCoordinatorForTesting();
     cookie_controls_coordinator_->SetDisplayNameForTesting(u"example.com");
   }
 
+  static base::Time GetReferenceTime() {
+    base::Time time;
+    EXPECT_TRUE(base::Time::FromString("Sat, 1 Sep 2023 11:00:00 UTC", &time));
+    return time;
+  }
+
+  void NavigateToUrlWithThirdPartyCookies() {
+    content::WebContents* web_contents =
+        browser()->tab_strip_model()->GetActiveWebContents();
+    content::CookieChangeObserver observer(web_contents);
+
+    ASSERT_TRUE(
+        ui_test_utils::NavigateToURL(browser(), third_party_cookie_page_url()));
+    observer.Wait();
+  }
+
+  scoped_refptr<content_settings::CookieSettings> cookie_settings() {
+    return CookieSettingsFactory::GetForProfile(browser()->profile());
+  }
+  HostContentSettingsMap* host_content_settings_map() {
+    return HostContentSettingsMapFactory::GetForProfile(browser()->profile());
+  }
+  GURL third_party_cookie_page_url() {
+    return https_test_server()->GetURL("a.test",
+                                       "/third_party_partitioned_cookies.html");
+  }
+
+  CookieControlsIconView* cookie_controls_icon() {
+    return cookie_controls_icon_;
+  }
+  net::EmbeddedTestServer* https_test_server() { return https_server_.get(); }
+
+  CookieControlsBubbleViewController* view_controller() {
+    return cookie_controls_coordinator_->GetViewControllerForTesting();
+  }
+
+  Profile* incognito_profile() {
+    return browser()->profile()->GetPrimaryOTRProfile(true);
+  }
+
+ protected:
+  CookieControlsEnforcement enforcement_ =
+      CookieControlsEnforcement::kNoEnforcement;
+  CookieControlsState controls_state_ = CookieControlsState::kBlocked3pc;
+
+  int days_to_expiration_ = 0;
+  // Overriding `base::Time::Now()` to obtain a consistent X days until
+  // exception expiration calculation regardless of the time the test runs.
+  base::subtle::ScopedTimeClockOverrides time_override_{
+      &CookieControlsBubbleViewPixelTestBase::GetReferenceTime,
+      /*time_ticks_override=*/nullptr, /*thread_ticks_override=*/nullptr};
+  std::unique_ptr<net::EmbeddedTestServer> https_server_;
+  content::ContentMockCertVerifier mock_cert_verifier_;
+  base::test::ScopedFeatureList scoped_feature_list_;
+  raw_ptr<CookieControlsIconView> cookie_controls_icon_;
+  std::unique_ptr<content_settings::CookieControlsController> controller_;
+  std::unique_ptr<content_settings::CookieControlsController>
+      incognito_controller_;
+  raw_ptr<CookieControlsBubbleCoordinator> cookie_controls_coordinator_;
+};
+
+class CookieControlsBubbleViewPixelTest
+    : public CookieControlsBubbleViewPixelTestBase,
+      public testing::WithParamInterface<CookieBlocking3pcdStatus> {
+ public:
+  CookieControlsBubbleViewPixelTest() = default;
+  CookieControlsBubbleViewPixelTest(const CookieControlsBubbleViewPixelTest&) =
+      delete;
+  CookieControlsBubbleViewPixelTest& operator=(
+      const CookieControlsBubbleViewPixelTest&) = delete;
+
+  void BlockThirdPartyCookies() {
+    bool pre_3pcd = GetParam() == CookieBlocking3pcdStatus::kNotIn3pcd;
+    if (pre_3pcd) {
+      browser()->profile()->GetPrefs()->SetInteger(
+          prefs::kCookieControlsMode,
+          static_cast<int>(
+              content_settings::CookieControlsMode::kBlockThirdParty));
+    } else {
+      browser()->profile()->GetPrefs()->SetBoolean(
+          prefs::kTrackingProtection3pcdEnabled, true);
+    }
+  }
+
   void SetStatus(CookieControlsState controls_state,
                  CookieControlsEnforcement enforcement,
                  CookieBlocking3pcdStatus blocking_status,
@@ -125,35 +219,6 @@
     cookie_controls_icon()->DisableUpdatesForTesting();
   }
 
-  static base::Time GetReferenceTime() {
-    base::Time time;
-    EXPECT_TRUE(base::Time::FromString("Sat, 1 Sep 2023 11:00:00 UTC", &time));
-    return time;
-  }
-
-  void NavigateToUrlWithThirdPartyCookies() {
-    content::WebContents* web_contents =
-        browser()->tab_strip_model()->GetActiveWebContents();
-    content::CookieChangeObserver observer(web_contents);
-
-    ASSERT_TRUE(
-        ui_test_utils::NavigateToURL(browser(), third_party_cookie_page_url()));
-    observer.Wait();
-  }
-
-  void BlockThirdPartyCookies() {
-    bool pre_3pcd = GetParam() == CookieBlocking3pcdStatus::kNotIn3pcd;
-    if (pre_3pcd) {
-      browser()->profile()->GetPrefs()->SetInteger(
-          prefs::kCookieControlsMode,
-          static_cast<int>(
-              content_settings::CookieControlsMode::kBlockThirdParty));
-    } else {
-      browser()->profile()->GetPrefs()->SetBoolean(
-          prefs::kTrackingProtection3pcdEnabled, true);
-    }
-  }
-
   void ShowUi(const std::string& name_with_param_suffix) override {
     BlockThirdPartyCookies();
     NavigateToUrlWithThirdPartyCookies();
@@ -172,44 +237,6 @@
         FROM_HERE, run_loop.QuitClosure(), base::Milliseconds(500));
     run_loop.Run();
   }
-
-  scoped_refptr<content_settings::CookieSettings> cookie_settings() {
-    return CookieSettingsFactory::GetForProfile(browser()->profile());
-  }
-  HostContentSettingsMap* host_content_settings_map() {
-    return HostContentSettingsMapFactory::GetForProfile(browser()->profile());
-  }
-  GURL third_party_cookie_page_url() {
-    return https_test_server()->GetURL("a.test",
-                                       "/third_party_partitioned_cookies.html");
-  }
-
-  CookieControlsIconView* cookie_controls_icon() {
-    return cookie_controls_icon_;
-  }
-  net::EmbeddedTestServer* https_test_server() { return https_server_.get(); }
-
-  CookieControlsBubbleViewController* view_controller() {
-    return cookie_controls_coordinator_->GetViewControllerForTesting();
-  }
-
- protected:
-  CookieControlsEnforcement enforcement_ =
-      CookieControlsEnforcement::kNoEnforcement;
-  CookieControlsState controls_state_ = CookieControlsState::kBlocked3pc;
-
-  int days_to_expiration_ = 0;
-  // Overriding `base::Time::Now()` to obtain a consistent X days until
-  // exception expiration calculation regardless of the time the test runs.
-  base::subtle::ScopedTimeClockOverrides time_override_{
-      &CookieControlsBubbleViewPixelTest::GetReferenceTime,
-      /*time_ticks_override=*/nullptr, /*thread_ticks_override=*/nullptr};
-  std::unique_ptr<net::EmbeddedTestServer> https_server_;
-  content::ContentMockCertVerifier mock_cert_verifier_;
-  base::test::ScopedFeatureList scoped_feature_list_;
-  raw_ptr<CookieControlsIconView> cookie_controls_icon_;
-  std::unique_ptr<content_settings::CookieControlsController> controller_;
-  raw_ptr<CookieControlsBubbleCoordinator> cookie_controls_coordinator_;
 };
 
 IN_PROC_BROWSER_TEST_P(CookieControlsBubbleViewPixelTest,
@@ -280,5 +307,62 @@
                        CookieBlocking3pcdStatus::kAll}),
     &ParamToTestSuffix);
 
-// TODO(https://b/354946320): Add pixel tests for ACT feature states once we
-// have UX.
+class CookieControlsBubbleViewTrackingProtectionUiPixelTest
+    : public CookieControlsBubbleViewPixelTestBase {
+ public:
+  CookieControlsBubbleViewTrackingProtectionUiPixelTest() = default;
+
+  void SetUp() override {
+    scoped_feature_list_.InitWithFeatures(
+        /*enabled_features=*/{privacy_sandbox::kActUserBypassUx,
+                              privacy_sandbox::kFingerprintingProtectionUx},
+        /*disabled_features=*/{});
+    CookieControlsBubbleViewPixelTestBase::SetUp();
+  }
+
+  void ShowUi(const std::string& name_with_param_suffix) override {
+    browser()->profile()->GetPrefs()->SetInteger(
+        prefs::kCookieControlsMode,
+        static_cast<int>(
+            content_settings::CookieControlsMode::kBlockThirdParty));
+    NavigateToUrlWithThirdPartyCookies();
+    ASSERT_TRUE(cookie_controls_icon()->GetVisible());
+    views::NamedWidgetShownWaiter waiter(views::test::AnyWidgetTestPasskey{},
+                                         "CookieControlsBubbleViewImpl");
+    cookie_controls_icon()->ExecuteForTesting();
+    SetStatus(controls_state_);
+    waiter.WaitIfNeededAndGet();
+  }
+
+  void SetStatus(CookieControlsState controls_state) {
+    // ShowBubble will initialize the view controller.
+    cookie_controls_coordinator_->ShowBubble(
+        browser()->GetBrowserView().toolbar_button_provider(),
+        browser()->tab_strip_model()->GetActiveWebContents(),
+        incognito_controller_.get());
+    // TODO: 344042974 - This should be updated to set directly on
+    // CookieControlsController. Currently if the page action icon is updated
+    // after OnStatusChanged() is called it will pull state from
+    // CookieControlsController, which has not been updated to reflect what is
+    // needed for this test.
+    view_controller()->OnStatusChanged(
+        controls_state, CookieControlsEnforcement::kNoEnforcement,
+        CookieBlocking3pcdStatus::kNotIn3pcd, base::Time());
+    cookie_controls_icon()->DisableUpdatesForTesting();
+  }
+
+ protected:
+  base::test::ScopedFeatureList scoped_feature_list_;
+  CookieControlsState controls_state_ = CookieControlsState::kActiveTp;
+};
+
+IN_PROC_BROWSER_TEST_F(CookieControlsBubbleViewTrackingProtectionUiPixelTest,
+                       InvokeUi_ProtectionsActive) {
+  ShowAndVerifyUi();
+}
+
+IN_PROC_BROWSER_TEST_F(CookieControlsBubbleViewTrackingProtectionUiPixelTest,
+                       InvokeUi_ProtectionsPaused) {
+  controls_state_ = CookieControlsState::kPausedTp;
+  ShowAndVerifyUi();
+}
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 81e1c67d..ec5b2cfa 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
@@ -174,6 +174,11 @@
   tracking_protections_button_->SetVisible(visible);
 }
 
+void CookieControlsContentView::UpdateFeedbackButtonSubtitle(
+    const std::u16string& subtitle) {
+  feedback_button_->SetSubtitleText(subtitle);
+}
+
 void CookieControlsContentView::SetTrackingProtectionsButtonLabel(
     const std::u16string& label) {
   tracking_protections_button_->SetText(label);
@@ -242,7 +247,7 @@
 
   feedback_section_->AddChildView(CreatePaddedSeparator());
 
-  auto* feedback_button =
+  feedback_button_ =
       feedback_section_->AddChildView(std::make_unique<RichHoverButton>(
           base::BindRepeating(
               &CookieControlsContentView::NotifyFeedbackButtonPressedCallback,
@@ -254,8 +259,8 @@
               IDS_COOKIE_CONTROLS_BUBBLE_SEND_FEEDBACK_BUTTON_DESCRIPTION),
           launch_icon));
 
-  feedback_button->SetProperty(views::kElementIdentifierKey, kFeedbackButton);
-  feedback_button->SetTooltipText(l10n_util::GetStringUTF16(
+  feedback_button_->SetProperty(views::kElementIdentifierKey, kFeedbackButton);
+  feedback_button_->SetTooltipText(l10n_util::GetStringUTF16(
       IDS_COOKIE_CONTROLS_BUBBLE_SEND_FEEDBACK_BUTTON_TITLE));
 }
 
diff --git a/chrome/browser/ui/views/location_bar/cookie_controls/cookie_controls_content_view.h b/chrome/browser/ui/views/location_bar/cookie_controls/cookie_controls_content_view.h
index c37ca19..16bf50c 100644
--- a/chrome/browser/ui/views/location_bar/cookie_controls/cookie_controls_content_view.h
+++ b/chrome/browser/ui/views/location_bar/cookie_controls/cookie_controls_content_view.h
@@ -6,6 +6,7 @@
 #define CHROME_BROWSER_UI_VIEWS_LOCATION_BAR_COOKIE_CONTROLS_COOKIE_CONTROLS_CONTENT_VIEW_H_
 
 #include "base/memory/raw_ptr.h"
+#include "chrome/browser/ui/views/controls/rich_hover_button.h"
 #include "components/content_settings/core/common/cookie_controls_state.h"
 #include "ui/base/interaction/element_identifier.h"
 #include "ui/base/metadata/metadata_header_macros.h"
@@ -57,6 +58,8 @@
 
   virtual void SetFeedbackSectionVisibility(bool visible);
 
+  virtual void UpdateFeedbackButtonSubtitle(const std::u16string& subtitle);
+
   base::CallbackListSubscription RegisterToggleButtonPressedCallback(
       base::RepeatingCallback<void(bool)> callback);
   base::CallbackListSubscription RegisterFeedbackButtonPressedCallback(
@@ -85,6 +88,7 @@
   void AddFeedbackSection();
   raw_ptr<RichControlsContainerView> cookies_row_ = nullptr;
   raw_ptr<views::View> feedback_section_ = nullptr;
+  raw_ptr<RichHoverButton> feedback_button_ = nullptr;
   raw_ptr<views::View> label_wrapper_ = nullptr;
   raw_ptr<views::Label> title_ = nullptr;
   raw_ptr<views::Label> description_ = nullptr;
diff --git a/chrome/browser/ui/views/location_bar/cookie_controls/cookie_controls_icon_view.cc b/chrome/browser/ui/views/location_bar/cookie_controls/cookie_controls_icon_view.cc
index 73f92ea..1a82fc7b 100644
--- a/chrome/browser/ui/views/location_bar/cookie_controls/cookie_controls_icon_view.cc
+++ b/chrome/browser/ui/views/location_bar/cookie_controls/cookie_controls_icon_view.cc
@@ -10,6 +10,7 @@
 #include "base/check_deref.h"
 #include "base/check_is_test.h"
 #include "base/metrics/user_metrics.h"
+#include "base/notreached.h"
 #include "chrome/browser/content_settings/cookie_settings_factory.h"
 #include "chrome/browser/content_settings/host_content_settings_map_factory.h"
 #include "chrome/browser/privacy_sandbox/tracking_protection_settings_factory.h"
@@ -45,15 +46,30 @@
   if (!icon_visible) {
     base::RecordAction(
         base::UserMetricsAction("CookieControls.Bubble.UnknownState.Opened"));
-  } else if (controls_state == CookieControlsState::kBlocked3pc) {
-    base::RecordAction(
-        base::UserMetricsAction("CookieControls.Bubble.CookiesBlocked.Opened"));
-  } else {
-    base::RecordAction(
-        base::UserMetricsAction("CookieControls.Bubble.CookiesAllowed.Opened"));
+  }
+
+  switch (controls_state) {
+    case CookieControlsState::kBlocked3pc:
+      base::RecordAction(base::UserMetricsAction(
+          "CookieControls.Bubble.CookiesBlocked.Opened"));
+      break;
+    case CookieControlsState::kAllowed3pc:
+      base::RecordAction(base::UserMetricsAction(
+          "CookieControls.Bubble.CookiesAllowed.Opened"));
+      break;
+    case CookieControlsState::kActiveTp:
+      base::RecordAction(base::UserMetricsAction(
+          "TrackingProtections.Bubble.ProtectionsActive.Opened"));
+      break;
+    case CookieControlsState::kPausedTp:
+      base::RecordAction(base::UserMetricsAction(
+          "TrackingProtections.Bubble.ProtectionsPaused.Opened"));
+      break;
+    case CookieControlsState::kHidden:
+      // Handled as part of `icon_visible` check above.
+      NOTREACHED();
   }
 }
-
 }  // namespace
 
 CookieControlsIconView::CookieControlsIconView(
diff --git a/chrome/browser/ui/views/location_bar/cookie_controls/cookie_controls_icon_view_unittest.cc b/chrome/browser/ui/views/location_bar/cookie_controls/cookie_controls_icon_view_unittest.cc
index 1f0959b..279035e4 100644
--- a/chrome/browser/ui/views/location_bar/cookie_controls/cookie_controls_icon_view_unittest.cc
+++ b/chrome/browser/ui/views/location_bar/cookie_controls/cookie_controls_icon_view_unittest.cc
@@ -61,6 +61,10 @@
     "CookieControls.Bubble.CookiesBlocked.Opened";
 const char kUMABubbleOpenedAllowed[] =
     "CookieControls.Bubble.CookiesAllowed.Opened";
+const char kUMABubbleOpenedProtectionsPaused[] =
+    "TrackingProtections.Bubble.ProtectionsPaused.Opened";
+const char kUMABubbleOpenedProtectionsActive[] =
+    "TrackingProtections.Bubble.ProtectionsActive.Opened";
 
 // A fake CookieControlsBubbleCoordinator that has a no-op ShowBubble().
 class MockCookieControlsBubbleCoordinator
@@ -212,6 +216,9 @@
   EXPECT_FALSE(LabelShown());
   EXPECT_EQ(TooltipText(), TpEnabledLabel());
   EXPECT_EQ(LabelText(), TpEnabledLabel());
+  EXPECT_EQ(user_actions_.GetActionCount(kUMAIconShown), 1);
+  EXPECT_EQ(user_actions_.GetActionCount(kUMAIconOpened), 1);
+  EXPECT_EQ(user_actions_.GetActionCount(kUMABubbleOpenedProtectionsActive), 1);
 
   // When tracking protections are paused, the label is shown and updated.
   view_->OnCookieControlsIconStatusChanged(
@@ -224,6 +231,9 @@
   EXPECT_TRUE(LabelShown());
   EXPECT_EQ(TooltipText(), TpPausedLabel());
   EXPECT_EQ(LabelText(), TpPausedLabel());
+  EXPECT_EQ(user_actions_.GetActionCount(kUMAIconShown), 2);
+  EXPECT_EQ(user_actions_.GetActionCount(kUMAIconOpened), 2);
+  EXPECT_EQ(user_actions_.GetActionCount(kUMABubbleOpenedProtectionsPaused), 1);
 
   // When tracking protections are resumed, the label is shown and updated.
   view_->OnCookieControlsIconStatusChanged(
@@ -236,6 +246,9 @@
   EXPECT_TRUE(LabelShown());
   EXPECT_EQ(TooltipText(), TpResumedLabel());
   EXPECT_EQ(LabelText(), TpResumedLabel());
+  EXPECT_EQ(user_actions_.GetActionCount(kUMAIconShown), 3);
+  EXPECT_EQ(user_actions_.GetActionCount(kUMAIconOpened), 3);
+  EXPECT_EQ(user_actions_.GetActionCount(kUMABubbleOpenedProtectionsActive), 2);
 }
 
 TEST_P(CookieControlsIconViewUnitTest,
diff --git a/chrome/browser/ui/views/location_bar/location_bar_view.cc b/chrome/browser/ui/views/location_bar/location_bar_view.cc
index 55e2295..a0f8c39a 100644
--- a/chrome/browser/ui/views/location_bar/location_bar_view.cc
+++ b/chrome/browser/ui/views/location_bar/location_bar_view.cc
@@ -406,7 +406,6 @@
     params.types_enabled.push_back(PageActionIconType::kSmsRemoteFetcher);
     params.types_enabled.push_back(PageActionIconType::kAutofillAddress);
     params.types_enabled.push_back(PageActionIconType::kManagePasswords);
-    params.types_enabled.push_back(PageActionIconType::kChangePassword);
     if (!apps::features::ShouldShowLinkCapturingUX()) {
       params.types_enabled.push_back(PageActionIconType::kIntentPicker);
     }
diff --git a/chrome/browser/ui/views/new_tab_footer/BUILD.gn b/chrome/browser/ui/views/new_tab_footer/BUILD.gn
index 4e7ffbc1..e5a518826 100644
--- a/chrome/browser/ui/views/new_tab_footer/BUILD.gn
+++ b/chrome/browser/ui/views/new_tab_footer/BUILD.gn
@@ -15,7 +15,6 @@
     "//base:base",
     "//chrome/browser/profiles:profile",
     "//chrome/browser/resources/new_tab_footer:resources_grit",
-    "//chrome/browser/search",
     "//chrome/browser/ui:ui_features",
     "//chrome/browser/ui/browser_window",
     "//chrome/browser/ui/webui:webui_util",
diff --git a/chrome/browser/ui/views/new_tab_footer/footer_controller.cc b/chrome/browser/ui/views/new_tab_footer/footer_controller.cc
index 1d0d17db..4917400 100644
--- a/chrome/browser/ui/views/new_tab_footer/footer_controller.cc
+++ b/chrome/browser/ui/views/new_tab_footer/footer_controller.cc
@@ -8,15 +8,11 @@
 #include "base/time/time.h"
 #include "chrome/browser/browser_process.h"
 #include "chrome/browser/enterprise/util/managed_browser_utils.h"
-#include "chrome/browser/search/search.h"
 #include "chrome/browser/ui/browser_window/public/browser_window_interface.h"
 #include "chrome/browser/ui/ui_features.h"
 #include "chrome/browser/ui/views/frame/browser_view.h"
 #include "chrome/browser/ui/views/new_tab_footer/footer_web_view.h"
 #include "chrome/browser/ui/webui/new_tab_footer/new_tab_footer_helper.h"
-#include "chrome/browser/ui/webui/new_tab_page/new_tab_page_ui.h"
-#include "chrome/browser/ui/webui/new_tab_page_third_party/new_tab_page_third_party_ui.h"
-#include "chrome/browser/ui/webui/ntp/new_tab_ui.h"
 #include "chrome/common/pref_names.h"
 #include "components/prefs/pref_service.h"
 #include "components/tabs/public/tab_interface.h"
@@ -25,19 +21,22 @@
 namespace new_tab_footer {
 
 namespace {
-bool IsNtp(const GURL& url,
-           content::WebContents* web_contents,
-           Profile* profile) {
-  content::NavigationEntry* entry =
-      web_contents->GetController().GetLastCommittedEntry();
-  if (entry->IsInitialEntry()) {
-    entry = web_contents->GetController().GetVisibleEntry();
-  }
-  return NewTabUI::IsNewTab(url) || NewTabPageUI::IsNewTabPageOrigin(url) ||
-         NewTabPageThirdPartyUI::IsNewTabPageOrigin(url) ||
-         search::NavEntryIsInstantNTP(web_contents, entry) ||
-         ntp_footer::IsExtensionNtp(url, profile);
+// Adding any new conditions that show the footer on the 1P NTP should also
+// update the visibility confition for the `Customize Chrome` buttons amd theme
+// attribution on the NTP.
+// LINT.IfChange(WillShowFooter)
+bool WillShowFooter(const GURL& url,
+                    content::WebContents* web_contents,
+                    Profile* profile) {
+  const bool will_show_extension =
+      ntp_footer::IsExtensionNtp(url, profile) &&
+      profile->GetPrefs()->GetBoolean(
+          prefs::kNTPFooterExtensionAttributionEnabled) &&
+      profile->GetPrefs()->GetBoolean(prefs::kNtpFooterVisible);
+  return will_show_extension ||
+         ntp_footer::WillShowManagementNotice(url, web_contents, profile);
 }
+// LINT.ThenChange(chrome/browser/ui/webui/new_tab_page/new_tab_footer_handler.cc:OnFooterVisibilityUpdated)
 }  // namespace
 
 NewTabFooterController::NewTabFooterController(BrowserWindowInterface* browser,
@@ -98,21 +97,14 @@
     url = web_contents()->GetController().GetVisibleEntry()->GetURL();
   }
 
-  const bool is_ntp = IsNtp(url, web_contents(), profile_);
-  const bool managed_ntp =
-      is_ntp && enterprise_util::CanShowEnterpriseBadgingForNTPFooter(profile_);
-  const bool show =
-      managed_ntp ||
-      (profile_->GetPrefs()->GetBoolean(prefs::kNtpFooterVisible) &&
-       ntp_footer::CanShowExtensionFooter(url, profile_));
-
+  const bool show = WillShowFooter(url, web_contents(), profile_);
   if (show) {
     footer_->ShowUI(load_start_timestamp, url);
   } else {
     footer_->CloseUI();
   }
 
-  if (is_ntp && log_on_load_metric) {
+  if (ntp_footer::IsNtp(url, web_contents(), profile_) && log_on_load_metric) {
     base::UmaHistogramBoolean("NewTabPage.Footer.VisibleOnLoad", show);
   }
 }
diff --git a/chrome/browser/ui/views/page_action/page_action_icon_controller.cc b/chrome/browser/ui/views/page_action/page_action_icon_controller.cc
index 5732e0f..b73bc0f 100644
--- a/chrome/browser/ui/views/page_action/page_action_icon_controller.cc
+++ b/chrome/browser/ui/views/page_action/page_action_icon_controller.cc
@@ -45,7 +45,6 @@
 #include "chrome/browser/ui/views/page_action/pwa_install_view.h"
 #include "chrome/browser/ui/views/page_action/zoom_view.h"
 #include "chrome/browser/ui/views/passwords/manage_passwords_icon_views.h"
-#include "chrome/browser/ui/views/passwords/password_change/password_change_icon_views.h"
 #include "chrome/browser/ui/views/performance_controls/memory_saver_chip_view.h"
 #include "chrome/browser/ui/views/sharing/sharing_dialog_view.h"
 #include "chrome/browser/ui/views/sharing/sharing_icon_view.h"
@@ -172,13 +171,6 @@
                       params.command_updater, params.icon_label_bubble_delegate,
                       params.page_action_icon_delegate, params.browser));
         break;
-      case PageActionIconType::kChangePassword:
-        DCHECK(params.command_updater);
-        add_page_action_icon(
-            type, std::make_unique<PasswordChangeIconViews>(
-                      params.command_updater, params.icon_label_bubble_delegate,
-                      params.page_action_icon_delegate, params.browser));
-        break;
       case PageActionIconType::kMandatoryReauth:
         add_page_action_icon(
             type, std::make_unique<autofill::MandatoryReauthIconView>(
diff --git a/chrome/browser/ui/views/passwords/manage_passwords_icon_view_interactive_uitest.cc b/chrome/browser/ui/views/passwords/manage_passwords_icon_view_interactive_uitest.cc
index c8913c6..3ce8d71 100644
--- a/chrome/browser/ui/views/passwords/manage_passwords_icon_view_interactive_uitest.cc
+++ b/chrome/browser/ui/views/passwords/manage_passwords_icon_view_interactive_uitest.cc
@@ -127,12 +127,6 @@
   content::RunAllPendingInMessageLoop();
 }
 
-IN_PROC_BROWSER_TEST_P(ManagePasswordsIconViewTest, PasswordChangeState) {
-  SetupPasswordChange();
-  EXPECT_EQ(password_manager::ui::PASSWORD_CHANGE_STATE, ViewState());
-  EXPECT_FALSE(GetIcon()->GetVisible());
-}
-
 IN_PROC_BROWSER_TEST_P(ManagePasswordsIconViewTestToolbarPinningOnly,
                        ShowPasswordsBubbleOrPage) {
   const GURL passwords_url = GURL("chrome://password-manager/");
diff --git a/chrome/browser/ui/views/passwords/password_bubble_view_base.cc b/chrome/browser/ui/views/passwords/password_bubble_view_base.cc
index 12c2a37..4f89c7e 100644
--- a/chrome/browser/ui/views/passwords/password_bubble_view_base.cc
+++ b/chrome/browser/ui/views/passwords/password_bubble_view_base.cc
@@ -23,7 +23,7 @@
 #include "chrome/browser/ui/views/passwords/move_to_account_store_bubble_view.h"
 #include "chrome/browser/ui/views/passwords/password_add_username_view.h"
 #include "chrome/browser/ui/views/passwords/password_auto_sign_in_view.h"
-#include "chrome/browser/ui/views/passwords/password_change/password_change_view_factory.h"
+#include "chrome/browser/ui/views/passwords/password_change/successful_password_change_view.h"
 #include "chrome/browser/ui/views/passwords/password_save_unsynced_credentials_locally_view.h"
 #include "chrome/browser/ui/views/passwords/password_save_update_view.h"
 #include "chrome/browser/ui/views/passwords/post_save_compromised_bubble_view.h"
@@ -51,18 +51,6 @@
 #include "chrome/browser/ui/views/passwords/biometric_authentication_for_filling_bubble_view.h"
 #endif
 
-namespace {
-PageActionIconType GetPageActionIconType(content::WebContents* web_contents) {
-  base::WeakPtr<PasswordsModelDelegate> delegate =
-      PasswordsModelDelegateFromWebContents(web_contents);
-  password_manager::ui::State model_state = delegate->GetState();
-  if (model_state == password_manager::ui::PASSWORD_CHANGE_STATE) {
-    return PageActionIconType::kChangePassword;
-  }
-  return PageActionIconType::kManagePasswords;
-}
-}  // namespace
-
 // static
 PasswordBubbleViewBase* PasswordBubbleViewBase::g_manage_passwords_bubble_ =
     nullptr;
@@ -99,7 +87,7 @@
   if (!views::Button::AsButton(anchor_view)) {
     g_manage_passwords_bubble_->SetHighlightedButton(
         button_provider->GetPageActionIconView(
-            GetPageActionIconType(web_contents)));
+            PageActionIconType::kManagePasswords));
   }
 
   views::BubbleDialogDelegateView::CreateBubble(g_manage_passwords_bubble_);
@@ -201,8 +189,7 @@
     view = new PasskeyUpgradeBubbleView(web_contents, anchor_view, reason,
                                         delegate->PasskeyRpId());
   } else if (model_state == password_manager::ui::PASSWORD_CHANGE_STATE) {
-    view = CreatePasswordChangeBubbleView(delegate->GetPasswordChangeDelegate(),
-                                          web_contents, anchor_view);
+    view = new SuccessfulPasswordChangeView(web_contents, anchor_view);
   } else {
     NOTREACHED();
   }
diff --git a/chrome/browser/ui/views/passwords/password_change/failed_password_change_view.cc b/chrome/browser/ui/views/passwords/password_change/failed_password_change_view.cc
deleted file mode 100644
index 9f853cf..0000000
--- a/chrome/browser/ui/views/passwords/password_change/failed_password_change_view.cc
+++ /dev/null
@@ -1,101 +0,0 @@
-// Copyright 2025 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/views/passwords/password_change/failed_password_change_view.h"
-
-#include "chrome/browser/ui/layout_constants.h"
-#include "chrome/browser/ui/passwords/bubble_controllers/password_change/failed_password_change_bubble_controller.h"
-#include "chrome/browser/ui/passwords/passwords_model_delegate.h"
-#include "chrome/browser/ui/views/chrome_layout_provider.h"
-#include "chrome/browser/ui/views/passwords/views_utils.h"
-#include "chrome/grit/branded_strings.h"
-#include "chrome/grit/generated_resources.h"
-#include "chrome/grit/theme_resources.h"
-#include "components/vector_icons/vector_icons.h"
-#include "content/public/browser/web_contents.h"
-#include "ui/base/metadata/metadata_impl_macros.h"
-#include "ui/views/accessibility/view_accessibility.h"
-#include "ui/views/controls/button/image_button.h"
-#include "ui/views/controls/button/md_text_button.h"
-#include "ui/views/controls/styled_label.h"
-#include "ui/views/layout/fill_layout.h"
-#include "ui/views/layout/flex_layout.h"
-
-FailedPasswordChangeView::FailedPasswordChangeView(
-    content::WebContents* web_contents,
-    views::View* anchor_view)
-    : PasswordBubbleViewBase(web_contents,
-                             anchor_view,
-                             /*easily_dismissable=*/false),
-      controller_(std::make_unique<FailedPasswordChangeBubbleController>(
-          PasswordsModelDelegateFromWebContents(web_contents))) {
-  SetLayoutManager(std::make_unique<views::BoxLayout>(
-      views::BoxLayout::Orientation::kVertical));
-
-  AddChildView(views::Builder<views::StyledLabel>()
-                   .SetText(controller_->GetBody())
-                   .SetTextContext(views::style::CONTEXT_DIALOG_BODY_TEXT)
-                   .SetDefaultTextStyle(views::style::STYLE_PRIMARY)
-                   .Build());
-
-  SetButtons(static_cast<int>(ui::mojom::DialogButton::kOk));
-  SetButtonLabel(ui::mojom::DialogButton::kOk, controller_->GetAcceptButton());
-  SetAcceptCallback(
-      base::BindOnce(&FailedPasswordChangeBubbleController::FixManually,
-                     base::Unretained(controller_.get())));
-
-  SetFootnoteView(CreateFooterView());
-
-  SetCloseCallback(base::BindRepeating(
-      [](FailedPasswordChangeView* view) {
-        // When dialog is closed explicitly finish password change flow to
-        // transition into a default password manager state.
-        if (view->GetWidget()->closed_reason() ==
-            views::Widget::ClosedReason::kCloseButtonClicked) {
-          view->controller_->FinishPasswordChange();
-        }
-      },
-      this));
-}
-
-FailedPasswordChangeView::~FailedPasswordChangeView() = default;
-
-std::unique_ptr<views::View> FailedPasswordChangeView::CreateFooterView() {
-  base::RepeatingClosure navigate_to_settings = base::BindRepeating(
-      &FailedPasswordChangeBubbleController::NavigateToPasswordChangeSettings,
-      base::Unretained(controller_.get()));
-  return CreateGooglePasswordManagerLabel(
-      /*text_message_id=*/
-      IDS_PASSWORD_MANAGER_UI_PASSWORD_CHANGE_FOOTER,
-      /*link_message_id=*/
-      IDS_PASSWORD_MANAGER_UI_PASSWORD_CHANGE_SETTINGS_LINK,
-      navigate_to_settings);
-}
-
-PasswordBubbleControllerBase* FailedPasswordChangeView::GetController() {
-  return controller_.get();
-}
-
-const PasswordBubbleControllerBase* FailedPasswordChangeView::GetController()
-    const {
-  return controller_.get();
-}
-
-void FailedPasswordChangeView::OnWidgetInitialized() {
-  PasswordBubbleViewBase::OnWidgetInitialized();
-  GetOkButton()->SetImageModel(
-      views::Button::ButtonState::STATE_NORMAL,
-      ui::ImageModel::FromVectorIcon(vector_icons::kLaunchIcon,
-                                     ui::kColorIconSecondary,
-                                     GetLayoutConstant(PAGE_INFO_ICON_SIZE)));
-  GetOkButton()->SetHorizontalAlignment(gfx::ALIGN_RIGHT);
-}
-
-void FailedPasswordChangeView::AddedToWidget() {
-  SetBubbleHeader(IDR_PASSWORD_CHANGE_WARNING,
-                  IDR_PASSWORD_CHANGE_WARNING_DARK);
-}
-
-BEGIN_METADATA(FailedPasswordChangeView)
-END_METADATA
diff --git a/chrome/browser/ui/views/passwords/password_change/failed_password_change_view.h b/chrome/browser/ui/views/passwords/password_change/failed_password_change_view.h
deleted file mode 100644
index f88f553e..0000000
--- a/chrome/browser/ui/views/passwords/password_change/failed_password_change_view.h
+++ /dev/null
@@ -1,35 +0,0 @@
-// Copyright 2025 The Chromium Authors
-// Use of this source code is governed by a BSD-style license that can be
-// found in the LICENSE file.
-
-#ifndef CHROME_BROWSER_UI_VIEWS_PASSWORDS_PASSWORD_CHANGE_FAILED_PASSWORD_CHANGE_VIEW_H_
-#define CHROME_BROWSER_UI_VIEWS_PASSWORDS_PASSWORD_CHANGE_FAILED_PASSWORD_CHANGE_VIEW_H_
-
-#include "chrome/browser/ui/views/passwords/password_bubble_view_base.h"
-
-class FailedPasswordChangeBubbleController;
-
-class FailedPasswordChangeView : public PasswordBubbleViewBase {
-  METADATA_HEADER(FailedPasswordChangeView, PasswordBubbleViewBase)
-
- public:
-  FailedPasswordChangeView(content::WebContents* web_contents,
-                           views::View* anchor_view);
-
- private:
-  ~FailedPasswordChangeView() override;
-
-  std::unique_ptr<views::View> CreateFooterView();
-
-  // PasswordBubbleViewBase
-  PasswordBubbleControllerBase* GetController() override;
-  const PasswordBubbleControllerBase* GetController() const override;
-
-  // View:
-  void AddedToWidget() override;
-  void OnWidgetInitialized() override;
-
-  std::unique_ptr<FailedPasswordChangeBubbleController> controller_;
-};
-
-#endif  // CHROME_BROWSER_UI_VIEWS_PASSWORDS_PASSWORD_CHANGE_FAILED_PASSWORD_CHANGE_VIEW_H_
diff --git a/chrome/browser/ui/views/passwords/password_change/failed_password_change_view_unittest.cc b/chrome/browser/ui/views/passwords/password_change/failed_password_change_view_unittest.cc
deleted file mode 100644
index 9397f07e..0000000
--- a/chrome/browser/ui/views/passwords/password_change/failed_password_change_view_unittest.cc
+++ /dev/null
@@ -1,119 +0,0 @@
-// Copyright 2025 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/views/passwords/password_change/failed_password_change_view.h"
-
-#include <memory>
-#include <string>
-
-#include "base/strings/utf_string_conversions.h"
-#include "chrome/browser/password_manager/password_change_delegate.h"
-#include "chrome/browser/password_manager/password_change_delegate_mock.h"
-#include "chrome/browser/ui/passwords/bubble_controllers/password_change/failed_password_change_bubble_controller.h"
-#include "chrome/browser/ui/views/passwords/password_bubble_view_test_base.h"
-#include "chrome/grit/branded_strings.h"
-#include "chrome/grit/generated_resources.h"
-#include "testing/gmock/include/gmock/gmock.h"
-#include "testing/gtest/include/gtest/gtest.h"
-#include "ui/events/test/test_event.h"
-#include "ui/views/controls/label.h"
-#include "ui/views/controls/styled_label.h"
-#include "ui/views/test/button_test_api.h"
-#include "url/gurl.h"
-
-using testing::Return;
-using testing::ReturnRef;
-
-class FailedPasswordChangeViewTest : public PasswordBubbleViewTestBase {
- public:
-  FailedPasswordChangeViewTest() = default;
-  ~FailedPasswordChangeViewTest() override = default;
-
-  void SetUp() override {
-    PasswordBubbleViewTestBase::SetUp();
-    password_change_delegate_ = std::make_unique<PasswordChangeDelegateMock>();
-    ON_CALL(*model_delegate_mock(), GetPasswordChangeDelegate())
-        .WillByDefault(Return(password_change_delegate_.get()));
-  }
-
-  void TearDown() override {
-    if (view_) {
-      CloseBubble();
-    }
-    PasswordBubbleViewTestBase::TearDown();
-  }
-
-  void CloseBubble(views::Widget::ClosedReason reason =
-                       views::Widget::ClosedReason::kUnspecified) {
-    view_->GetWidget()->CloseWithReason(reason);
-    view_ = nullptr;
-  }
-
-  void CreateAndShowView() {
-    CreateAnchorViewAndShow();
-
-    view_ = new FailedPasswordChangeView(web_contents(), anchor_view());
-    views::BubbleDialogDelegateView::CreateBubble(view_)->Show();
-  }
-
-  PasswordChangeDelegateMock* password_change_delegate() {
-    return password_change_delegate_.get();
-  }
-
-  FailedPasswordChangeView* view() { return view_; }
-
- private:
-  std::unique_ptr<PasswordChangeDelegateMock> password_change_delegate_;
-  raw_ptr<FailedPasswordChangeView> view_;
-};
-
-TEST_F(FailedPasswordChangeViewTest, BubbleLayout) {
-  CreateAndShowView();
-  EXPECT_EQ(view()->GetWindowTitle(),
-            l10n_util::GetStringUTF16(
-                IDS_PASSWORD_MANAGER_UI_PASSWORD_CHANGE_FAILED_TITLE));
-
-  EXPECT_TRUE(view()->GetOkButton());
-  EXPECT_EQ(view()->GetOkButton()->GetText(),
-            l10n_util::GetStringUTF16(
-                IDS_PASSWORD_MANAGER_UI_PASSWORD_CHANGE_FAILED_ACTION));
-}
-
-TEST_F(FailedPasswordChangeViewTest, FixNowClick) {
-  CreateAndShowView();
-
-  EXPECT_CALL(*password_change_delegate(), OpenPasswordChangeTab);
-  EXPECT_CALL(*password_change_delegate(), Stop);
-  EXPECT_CALL(*model_delegate_mock(), OnBubbleHidden);
-
-  views::test::ButtonTestApi(view()->GetOkButton())
-      .NotifyClick(ui::test::TestEvent());
-}
-
-TEST_F(FailedPasswordChangeViewTest, SuppressingBubbleDoesNotStopTheFlow) {
-  CreateAndShowView();
-
-  EXPECT_CALL(*password_change_delegate(), Stop).Times(0);
-  EXPECT_CALL(*model_delegate_mock(), OnBubbleHidden);
-
-  CloseBubble();
-}
-
-TEST_F(FailedPasswordChangeViewTest, ClosingBubbleStopsTheFlow) {
-  CreateAndShowView();
-
-  EXPECT_CALL(*password_change_delegate(), Stop);
-  EXPECT_CALL(*model_delegate_mock(), OnBubbleHidden);
-
-  CloseBubble(views::Widget::ClosedReason::kCloseButtonClicked);
-}
-
-TEST_F(FailedPasswordChangeViewTest, PasswordChangeLinkClicked) {
-  CreateAndShowView();
-
-  EXPECT_CALL(*model_delegate_mock(), NavigateToPasswordChangeSettings);
-  auto* controller = static_cast<FailedPasswordChangeBubbleController*>(
-      static_cast<PasswordBubbleViewBase*>(view())->GetController());
-  controller->NavigateToPasswordChangeSettings();
-}
diff --git a/chrome/browser/ui/views/passwords/password_change/no_password_change_form_view.cc b/chrome/browser/ui/views/passwords/password_change/no_password_change_form_view.cc
deleted file mode 100644
index f8826d06..0000000
--- a/chrome/browser/ui/views/passwords/password_change/no_password_change_form_view.cc
+++ /dev/null
@@ -1,73 +0,0 @@
-// Copyright 2025 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/views/passwords/password_change/no_password_change_form_view.h"
-
-#include "chrome/browser/ui/layout_constants.h"
-#include "chrome/browser/ui/passwords/bubble_controllers/password_change/no_password_change_form_bubble_controller.h"
-#include "chrome/browser/ui/passwords/passwords_model_delegate.h"
-#include "chrome/browser/ui/views/chrome_layout_provider.h"
-#include "chrome/grit/theme_resources.h"
-#include "components/vector_icons/vector_icons.h"
-#include "content/public/browser/web_contents.h"
-#include "ui/base/metadata/metadata_impl_macros.h"
-#include "ui/views/controls/button/md_text_button.h"
-#include "ui/views/controls/styled_label.h"
-#include "ui/views/layout/fill_layout.h"
-#include "ui/views/layout/flex_layout.h"
-
-NoPasswordChangeFormView::NoPasswordChangeFormView(
-    content::WebContents* web_contents,
-    views::View* anchor_view)
-    : PasswordBubbleViewBase(web_contents,
-                             anchor_view,
-                             /*easily_dismissable=*/false),
-      controller_(std::make_unique<NoPasswordChangeFormBubbleController>(
-          PasswordsModelDelegateFromWebContents(web_contents))) {
-  SetLayoutManager(std::make_unique<views::BoxLayout>(
-      views::BoxLayout::Orientation::kVertical));
-
-  AddChildView(views::Builder<views::StyledLabel>()
-                   .SetText(controller_->GetBody())
-                   .SetTextContext(views::style::CONTEXT_DIALOG_BODY_TEXT)
-                   .SetDefaultTextStyle(views::style::STYLE_PRIMARY)
-                   .Build());
-
-  SetButtons(
-      static_cast<int>(static_cast<int>(ui::mojom::DialogButton::kOk) |
-                       static_cast<int>(ui::mojom::DialogButton::kCancel)));
-  SetButtonLabel(ui::mojom::DialogButton::kOk, controller_->GetAcceptButton());
-
-  SetAcceptCallback(
-      base::BindOnce(&NoPasswordChangeFormBubbleController::Restart,
-                     base::Unretained(controller_.get())));
-  SetCancelCallback(
-      base::BindOnce(&NoPasswordChangeFormBubbleController::Cancel,
-                     base::Unretained(controller_.get())));
-}
-
-NoPasswordChangeFormView::~NoPasswordChangeFormView() = default;
-
-PasswordBubbleControllerBase* NoPasswordChangeFormView::GetController() {
-  return controller_.get();
-}
-
-const PasswordBubbleControllerBase* NoPasswordChangeFormView::GetController()
-    const {
-  return controller_.get();
-}
-
-void NoPasswordChangeFormView::OnWidgetInitialized() {
-  PasswordBubbleViewBase::OnWidgetInitialized();
-  GetOkButton()->SetImageModel(
-      views::Button::ButtonState::STATE_NORMAL,
-      ui::ImageModel::FromVectorIcon(vector_icons::kReloadChromeRefreshIcon,
-                                     ui::kColorIconSecondary,
-                                     GetLayoutConstant(PAGE_INFO_ICON_SIZE)));
-  SetBubbleHeader(IDR_PASSWORD_CHANGE_NEUTRAL,
-                  IDR_PASSWORD_CHANGE_NEUTRAL_DARK);
-}
-
-BEGIN_METADATA(NoPasswordChangeFormView)
-END_METADATA
diff --git a/chrome/browser/ui/views/passwords/password_change/no_password_change_form_view.h b/chrome/browser/ui/views/passwords/password_change/no_password_change_form_view.h
deleted file mode 100644
index c0f3a52..0000000
--- a/chrome/browser/ui/views/passwords/password_change/no_password_change_form_view.h
+++ /dev/null
@@ -1,33 +0,0 @@
-// Copyright 2025 The Chromium Authors
-// Use of this source code is governed by a BSD-style license that can be
-// found in the LICENSE file.
-
-#ifndef CHROME_BROWSER_UI_VIEWS_PASSWORDS_PASSWORD_CHANGE_NO_PASSWORD_CHANGE_FORM_VIEW_H_
-#define CHROME_BROWSER_UI_VIEWS_PASSWORDS_PASSWORD_CHANGE_NO_PASSWORD_CHANGE_FORM_VIEW_H_
-
-#include "chrome/browser/ui/views/passwords/password_bubble_view_base.h"
-
-class NoPasswordChangeFormBubbleController;
-
-// The dialog shown after no change password form has been found.
-class NoPasswordChangeFormView : public PasswordBubbleViewBase {
-  METADATA_HEADER(NoPasswordChangeFormView, PasswordBubbleViewBase)
-
- public:
-  NoPasswordChangeFormView(content::WebContents* web_contents,
-                           views::View* anchor_view);
-
- private:
-  ~NoPasswordChangeFormView() override;
-
-  // PasswordBubbleViewBase
-  PasswordBubbleControllerBase* GetController() override;
-  const PasswordBubbleControllerBase* GetController() const override;
-
-  // View:
-  void OnWidgetInitialized() override;
-
-  std::unique_ptr<NoPasswordChangeFormBubbleController> controller_;
-};
-
-#endif  // CHROME_BROWSER_UI_VIEWS_PASSWORDS_PASSWORD_CHANGE_NO_PASSWORD_CHANGE_FORM_VIEW_H_
diff --git a/chrome/browser/ui/views/passwords/password_change/no_password_change_form_view_unittest.cc b/chrome/browser/ui/views/passwords/password_change/no_password_change_form_view_unittest.cc
deleted file mode 100644
index dcb4ca5..0000000
--- a/chrome/browser/ui/views/passwords/password_change/no_password_change_form_view_unittest.cc
+++ /dev/null
@@ -1,94 +0,0 @@
-// Copyright 2025 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/views/passwords/password_change/no_password_change_form_view.h"
-
-#include <memory>
-#include <string>
-
-#include "base/strings/utf_string_conversions.h"
-#include "chrome/browser/password_manager/password_change_delegate.h"
-#include "chrome/browser/password_manager/password_change_delegate_mock.h"
-#include "chrome/browser/ui/views/passwords/password_bubble_view_test_base.h"
-#include "chrome/grit/branded_strings.h"
-#include "chrome/grit/generated_resources.h"
-#include "testing/gmock/include/gmock/gmock.h"
-#include "testing/gtest/include/gtest/gtest.h"
-#include "ui/events/test/test_event.h"
-#include "ui/views/controls/label.h"
-#include "ui/views/controls/styled_label.h"
-#include "ui/views/test/button_test_api.h"
-#include "url/gurl.h"
-
-using testing::Return;
-using testing::ReturnRef;
-
-class NoPasswordChangeFormViewTest : public PasswordBubbleViewTestBase {
- public:
-  NoPasswordChangeFormViewTest() = default;
-  ~NoPasswordChangeFormViewTest() override = default;
-
-  void SetUp() override {
-    PasswordBubbleViewTestBase::SetUp();
-    password_change_delegate_ = std::make_unique<PasswordChangeDelegateMock>();
-    ON_CALL(*model_delegate_mock(), GetPasswordChangeDelegate())
-        .WillByDefault(Return(password_change_delegate_.get()));
-  }
-
-  void TearDown() override {
-    view_->GetWidget()->CloseWithReason(
-        views::Widget::ClosedReason::kUnspecified);
-    view_ = nullptr;
-    PasswordBubbleViewTestBase::TearDown();
-  }
-
-  void CreateAndShowView() {
-    CreateAnchorViewAndShow();
-
-    view_ = new NoPasswordChangeFormView(web_contents(), anchor_view());
-    views::BubbleDialogDelegateView::CreateBubble(view_)->Show();
-  }
-
-  PasswordChangeDelegateMock* password_change_delegate() {
-    return password_change_delegate_.get();
-  }
-
-  NoPasswordChangeFormView* view() { return view_; }
-
- private:
-  std::unique_ptr<PasswordChangeDelegateMock> password_change_delegate_;
-  raw_ptr<NoPasswordChangeFormView> view_;
-};
-
-TEST_F(NoPasswordChangeFormViewTest, BubbleLayout) {
-  CreateAndShowView();
-  EXPECT_TRUE(view()->GetOkButton());
-  EXPECT_TRUE(view()->GetCancelButton());
-
-  EXPECT_EQ(view()->GetOkButton()->GetText(),
-            l10n_util::GetStringUTF16(
-                IDS_PASSWORD_MANAGER_UI_PASSWORD_CHANGE_RETRY_ACTION));
-
-  EXPECT_EQ(view()->GetWindowTitle(),
-            l10n_util::GetStringUTF16(
-                IDS_PASSWORD_MANAGER_UI_PASSWORD_CHANGE_RETRY_TITLE));
-}
-
-TEST_F(NoPasswordChangeFormViewTest, CancelClick) {
-  CreateAndShowView();
-  ASSERT_TRUE(view()->GetCancelButton());
-
-  EXPECT_CALL(*password_change_delegate(), Stop);
-  views::test::ButtonTestApi(view()->GetCancelButton())
-      .NotifyClick(ui::test::TestEvent());
-}
-
-TEST_F(NoPasswordChangeFormViewTest, RestartClick) {
-  CreateAndShowView();
-  ASSERT_TRUE(view()->GetOkButton());
-
-  EXPECT_CALL(*password_change_delegate(), Restart);
-  views::test::ButtonTestApi(view()->GetOkButton())
-      .NotifyClick(ui::test::TestEvent());
-}
diff --git a/chrome/browser/ui/views/passwords/password_change/otp_during_password_change_view.cc b/chrome/browser/ui/views/passwords/password_change/otp_during_password_change_view.cc
deleted file mode 100644
index 2c0d239..0000000
--- a/chrome/browser/ui/views/passwords/password_change/otp_during_password_change_view.cc
+++ /dev/null
@@ -1,102 +0,0 @@
-// Copyright 2025 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/views/passwords/password_change/otp_during_password_change_view.h"
-
-#include "chrome/browser/ui/layout_constants.h"
-#include "chrome/browser/ui/passwords/passwords_model_delegate.h"
-#include "chrome/browser/ui/views/chrome_layout_provider.h"
-#include "chrome/browser/ui/views/passwords/views_utils.h"
-#include "chrome/grit/branded_strings.h"
-#include "chrome/grit/generated_resources.h"
-#include "chrome/grit/theme_resources.h"
-#include "components/vector_icons/vector_icons.h"
-#include "content/public/browser/web_contents.h"
-#include "ui/base/metadata/metadata_impl_macros.h"
-#include "ui/views/accessibility/view_accessibility.h"
-#include "ui/views/controls/button/image_button.h"
-#include "ui/views/controls/button/md_text_button.h"
-#include "ui/views/controls/styled_label.h"
-#include "ui/views/layout/fill_layout.h"
-#include "ui/views/layout/flex_layout.h"
-
-OtpDuringPasswordChangeView::OtpDuringPasswordChangeView(
-    content::WebContents* web_contents,
-    views::View* anchor_view)
-    : PasswordBubbleViewBase(web_contents,
-                             anchor_view,
-                             /*easily_dismissable=*/false),
-      controller_(PasswordsModelDelegateFromWebContents(web_contents)) {
-  SetLayoutManager(std::make_unique<views::BoxLayout>(
-      views::BoxLayout::Orientation::kVertical));
-
-  AddChildView(views::Builder<views::StyledLabel>()
-                   .SetText(controller_.GetBody())
-                   .SetTextContext(views::style::CONTEXT_DIALOG_BODY_TEXT)
-                   .SetDefaultTextStyle(views::style::STYLE_PRIMARY)
-                   .Build());
-
-  SetButtons(static_cast<int>(ui::mojom::DialogButton::kOk));
-  SetButtonLabel(ui::mojom::DialogButton::kOk,
-                 controller_.GetAcceptButtonText());
-  SetAcceptCallback(
-      base::BindOnce(&OtpDuringPasswordChangeBubbleController::FixManually,
-                     base::Unretained(&controller_)));
-
-  SetFootnoteView(CreateFooterView());
-  SetCloseCallback(base::BindOnce(&OtpDuringPasswordChangeView::OnViewClosed,
-                                  base::Unretained(this)));
-}
-
-OtpDuringPasswordChangeView::~OtpDuringPasswordChangeView() = default;
-
-PasswordBubbleControllerBase* OtpDuringPasswordChangeView::GetController() {
-  return &controller_;
-}
-
-const PasswordBubbleControllerBase* OtpDuringPasswordChangeView::GetController()
-    const {
-  return &controller_;
-}
-
-void OtpDuringPasswordChangeView::OnWidgetInitialized() {
-  PasswordBubbleViewBase::OnWidgetInitialized();
-  GetOkButton()->SetImageModel(
-      views::Button::ButtonState::STATE_NORMAL,
-      ui::ImageModel::FromVectorIcon(vector_icons::kLaunchIcon,
-                                     ui::kColorIconSecondary,
-                                     GetLayoutConstant(PAGE_INFO_ICON_SIZE)));
-  GetOkButton()->SetHorizontalAlignment(gfx::ALIGN_RIGHT);
-}
-
-void OtpDuringPasswordChangeView::AddedToWidget() {
-  SetBubbleHeader(IDR_PASSWORD_CHANGE_NEUTRAL,
-                  IDR_PASSWORD_CHANGE_NEUTRAL_DARK);
-}
-
-std::unique_ptr<views::View> OtpDuringPasswordChangeView::CreateFooterView() {
-  base::RepeatingClosure navigate_to_settings = base::BindRepeating(
-      &OtpDuringPasswordChangeBubbleController::
-          NavigateToPasswordChangeSettings,
-      // Unretained is safe because this always outlives the footer.
-      base::Unretained(&controller_));
-  return CreateGooglePasswordManagerLabel(
-      /*text_message_id=*/
-      IDS_PASSWORD_MANAGER_UI_PASSWORD_CHANGE_FOOTER,
-      /*link_message_id=*/
-      IDS_PASSWORD_MANAGER_UI_PASSWORD_CHANGE_SETTINGS_LINK,
-      navigate_to_settings);
-}
-
-void OtpDuringPasswordChangeView::OnViewClosed() {
-  // When dialog is closed explicitly finish password change flow to
-  // transition into a default password manager state.
-  if (GetWidget()->closed_reason() ==
-      views::Widget::ClosedReason::kCloseButtonClicked) {
-    controller_.FinishPasswordChange();
-  }
-}
-
-BEGIN_METADATA(OtpDuringPasswordChangeView)
-END_METADATA
diff --git a/chrome/browser/ui/views/passwords/password_change/otp_during_password_change_view.h b/chrome/browser/ui/views/passwords/password_change/otp_during_password_change_view.h
deleted file mode 100644
index deb292be9..0000000
--- a/chrome/browser/ui/views/passwords/password_change/otp_during_password_change_view.h
+++ /dev/null
@@ -1,35 +0,0 @@
-// Copyright 2025 The Chromium Authors
-// Use of this source code is governed by a BSD-style license that can be
-// found in the LICENSE file.
-
-#ifndef CHROME_BROWSER_UI_VIEWS_PASSWORDS_PASSWORD_CHANGE_OTP_DURING_PASSWORD_CHANGE_VIEW_H_
-#define CHROME_BROWSER_UI_VIEWS_PASSWORDS_PASSWORD_CHANGE_OTP_DURING_PASSWORD_CHANGE_VIEW_H_
-
-#include "chrome/browser/ui/passwords/bubble_controllers/password_change/otp_during_password_change_bubble_controller.h"
-#include "chrome/browser/ui/views/passwords/password_bubble_view_base.h"
-
-class OtpDuringPasswordChangeView : public PasswordBubbleViewBase {
-  METADATA_HEADER(OtpDuringPasswordChangeView, PasswordBubbleViewBase)
-
- public:
-  OtpDuringPasswordChangeView(content::WebContents* web_contents,
-                              views::View* anchor_view);
-
-  // PasswordBubbleViewBase:
-  PasswordBubbleControllerBase* GetController() override;
-  const PasswordBubbleControllerBase* GetController() const override;
-
-  // View:
-  void AddedToWidget() override;
-  void OnWidgetInitialized() override;
-
- private:
-  ~OtpDuringPasswordChangeView() override;
-
-  std::unique_ptr<views::View> CreateFooterView();
-  void OnViewClosed();
-
-  OtpDuringPasswordChangeBubbleController controller_;
-};
-
-#endif  // CHROME_BROWSER_UI_VIEWS_PASSWORDS_PASSWORD_CHANGE_OTP_DURING_PASSWORD_CHANGE_VIEW_H_
diff --git a/chrome/browser/ui/views/passwords/password_change/otp_during_password_change_view_unittest.cc b/chrome/browser/ui/views/passwords/password_change/otp_during_password_change_view_unittest.cc
deleted file mode 100644
index 7b7bdf4..0000000
--- a/chrome/browser/ui/views/passwords/password_change/otp_during_password_change_view_unittest.cc
+++ /dev/null
@@ -1,111 +0,0 @@
-// Copyright 2025 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/views/passwords/password_change/otp_during_password_change_view.h"
-
-#include <memory>
-#include <string>
-
-#include "base/strings/utf_string_conversions.h"
-#include "chrome/browser/password_manager/password_change_delegate.h"
-#include "chrome/browser/password_manager/password_change_delegate_mock.h"
-#include "chrome/browser/ui/passwords/bubble_controllers/password_change/otp_during_password_change_bubble_controller.h"
-#include "chrome/browser/ui/views/passwords/password_bubble_view_test_base.h"
-#include "chrome/grit/branded_strings.h"
-#include "chrome/grit/generated_resources.h"
-#include "testing/gmock/include/gmock/gmock.h"
-#include "testing/gtest/include/gtest/gtest.h"
-#include "ui/events/test/test_event.h"
-#include "ui/views/controls/label.h"
-#include "ui/views/controls/styled_label.h"
-#include "ui/views/test/button_test_api.h"
-#include "url/gurl.h"
-
-using testing::Return;
-using testing::ReturnRef;
-
-class OtpDuringPasswordChangeViewTest : public PasswordBubbleViewTestBase {
- public:
-  OtpDuringPasswordChangeViewTest() = default;
-  ~OtpDuringPasswordChangeViewTest() override = default;
-
-  void SetUp() override {
-    PasswordBubbleViewTestBase::SetUp();
-    ON_CALL(*model_delegate_mock(), GetPasswordChangeDelegate())
-        .WillByDefault(Return(&password_change_delegate_));
-  }
-
-  void TearDown() override {
-    if (view_) {
-      CloseBubble();
-    }
-    PasswordBubbleViewTestBase::TearDown();
-  }
-
-  void CloseBubble(views::Widget::ClosedReason reason =
-                       views::Widget::ClosedReason::kUnspecified) {
-    view_->GetWidget()->CloseWithReason(reason);
-    view_ = nullptr;
-  }
-
-  void CreateAndShowView() {
-    CreateAnchorViewAndShow();
-
-    view_ = new OtpDuringPasswordChangeView(web_contents(), anchor_view());
-    views::BubbleDialogDelegateView::CreateBubble(view_)->Show();
-  }
-
-  PasswordChangeDelegateMock& password_change_delegate() {
-    return password_change_delegate_;
-  }
-
-  OtpDuringPasswordChangeView* view() { return view_; }
-
- private:
-  PasswordChangeDelegateMock password_change_delegate_;
-  raw_ptr<OtpDuringPasswordChangeView> view_;
-};
-
-TEST_F(OtpDuringPasswordChangeViewTest, BubbleLayout) {
-  CreateAndShowView();
-  EXPECT_EQ(view()->GetWindowTitle(),
-            l10n_util::GetStringUTF16(
-                IDS_PASSWORD_MANAGER_UI_OTP_DURING_PASSWORD_CHANGE_TITLE));
-
-  EXPECT_TRUE(view()->GetOkButton());
-  EXPECT_EQ(view()->GetOkButton()->GetText(),
-            l10n_util::GetStringUTF16(
-                IDS_PASSWORD_MANAGER_UI_OTP_DURING_PASSWORD_CHANGE_ACTION));
-}
-
-TEST_F(OtpDuringPasswordChangeViewTest, FixManuallyClick) {
-  CreateAndShowView();
-
-  EXPECT_CALL(password_change_delegate(), OpenPasswordChangeTab);
-  EXPECT_CALL(password_change_delegate(), Stop);
-  EXPECT_CALL(*model_delegate_mock(), OnBubbleHidden);
-
-  views::test::ButtonTestApi(view()->GetOkButton())
-      .NotifyClick(ui::test::TestEvent());
-}
-
-// Suppressing the bubble (e.g. by switching tabs) doesn't stop the password
-// change.
-TEST_F(OtpDuringPasswordChangeViewTest, SuppressingBubbleDoesNotStopTheFlow) {
-  CreateAndShowView();
-
-  EXPECT_CALL(password_change_delegate(), Stop).Times(0);
-  EXPECT_CALL(*model_delegate_mock(), OnBubbleHidden);
-
-  CloseBubble();
-}
-
-TEST_F(OtpDuringPasswordChangeViewTest, ClosingBubbleStopsTheFlow) {
-  CreateAndShowView();
-
-  EXPECT_CALL(password_change_delegate(), Stop);
-  EXPECT_CALL(*model_delegate_mock(), OnBubbleHidden);
-
-  CloseBubble(views::Widget::ClosedReason::kCloseButtonClicked);
-}
diff --git a/chrome/browser/ui/views/passwords/password_change/password_change_icon_views.cc b/chrome/browser/ui/views/passwords/password_change/password_change_icon_views.cc
deleted file mode 100644
index 6a85b98..0000000
--- a/chrome/browser/ui/views/passwords/password_change/password_change_icon_views.cc
+++ /dev/null
@@ -1,195 +0,0 @@
-// Copyright 2025 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/views/passwords/password_change/password_change_icon_views.h"
-
-#include <string>
-
-#include "base/functional/bind.h"
-#include "chrome/app/chrome_command_ids.h"
-#include "chrome/browser/password_manager/password_change_delegate.h"
-#include "chrome/browser/ui/actions/chrome_action_id.h"
-#include "chrome/browser/ui/browser.h"
-#include "chrome/browser/ui/browser_actions.h"
-#include "chrome/browser/ui/browser_element_identifiers.h"
-#include "chrome/browser/ui/browser_window.h"
-#include "chrome/browser/ui/color/chrome_color_id.h"
-#include "chrome/browser/ui/passwords/manage_passwords_ui_controller.h"
-#include "chrome/browser/ui/passwords/passwords_model_delegate.h"
-#include "chrome/browser/ui/ui_features.h"
-#include "chrome/browser/ui/views/passwords/password_bubble_view_base.h"
-#include "chrome/grit/generated_resources.h"
-#include "components/feature_engagement/public/feature_constants.h"
-#include "components/vector_icons/vector_icons.h"
-#include "ui/base/metadata/metadata_impl_macros.h"
-#include "ui/color/color_id.h"
-#include "ui/views/accessibility/view_accessibility.h"
-#include "ui/views/vector_icons.h"
-#include "ui/views/view_class_properties.h"
-
-using State = PasswordChangeDelegate::State;
-
-namespace {
-std::u16string GetLabelText(PasswordChangeDelegate::State state) {
-  if (state == PasswordChangeDelegate::State::kWaitingForChangePasswordForm) {
-    return l10n_util::GetStringUTF16(
-        IDS_PASSWORD_MANAGER_UI_PASSWORD_CHANGE_OMNIBOX_SIGN_IN_CHECK);
-  }
-  if (state == PasswordChangeDelegate::State::kChangingPassword) {
-    return l10n_util::GetStringUTF16(
-        IDS_PASSWORD_MANAGER_UI_PASSWORD_CHANGE_OMNIBOX_CHANGING_PASSWORD);
-  }
-  return std::u16string();
-}
-}  // namespace
-
-PasswordChangeIconViews::PasswordChangeIconViews(
-    CommandUpdater* updater,
-    IconLabelBubbleView::Delegate* icon_label_bubble_delegate,
-    PageActionIconView::Delegate* page_action_icon_delegate,
-    Browser* browser)
-    : PageActionIconView(updater,
-                         IDC_MANAGE_PASSWORDS_FOR_PAGE,
-                         icon_label_bubble_delegate,
-                         page_action_icon_delegate,
-                         "PasswordChange",
-                         kActionShowPasswordsBubbleOrPage,
-                         browser),
-      controller_(
-          base::BindRepeating(&PasswordChangeIconViews::UpdateIconAndLabel,
-                              base::Unretained(this)),
-          base::BindRepeating(&PasswordChangeIconViews::UpdateImpl,
-                              base::Unretained(this))) {
-  // Password icon should not be mirrored in RTL.
-  image_container_view()->SetFlipCanvasOnPaintForRTLUI(false);
-  SetProperty(views::kElementIdentifierKey, kPasswordsOmniboxKeyIconElementId);
-
-  std::u16string tooltip = l10n_util::GetStringUTF16(
-      IDS_PASSWORD_MANAGER_UI_PASSWORD_CHANGE_ICON_TOOLTIP);
-  SetAccessibleName(tooltip);
-  UpdateTooltipText();
-  // This doesn't work, the icon color stays the same.
-  SetIconColor(ui::kColorSysOnTonalContainer);
-}
-
-PasswordChangeIconViews::~PasswordChangeIconViews() = default;
-
-void PasswordChangeIconViews::SetState(password_manager::ui::State state,
-                                       bool is_blocklisted) {
-  const bool password_change_blocked =
-      is_blocklisted &&
-      base::FeatureList::IsEnabled(features::kSavePasswordsContextualUi);
-  bool should_be_visible =
-      !password_change_blocked &&
-      state == password_manager::ui::State::PASSWORD_CHANGE_STATE &&
-      !delegate()->ShouldHidePageActionIcon(this);
-  SetVisible(should_be_visible);
-  if (state == password_manager::ui::State::PASSWORD_CHANGE_STATE) {
-    std::u16string tooltip = l10n_util::GetStringUTF16(
-        IDS_PASSWORD_MANAGER_UI_PASSWORD_CHANGE_ICON_TOOLTIP);
-    SetTooltipForToolbarPinningEnabled(tooltip);
-  }
-
-  PasswordChangeDelegate* password_change_delegate =
-      GetWebContents() ? PasswordsModelDelegateFromWebContents(GetWebContents())
-                             ->GetPasswordChangeDelegate()
-                       : nullptr;
-  controller_.SetPasswordChangeDelegate(password_change_delegate);
-
-  // We may be about to automatically pop up a passwords bubble.
-  // Force layout of the icon's parent now; the bubble will be incorrectly
-  // positioned otherwise, as the icon won't have been drawn into position.
-  InvalidateLayout();
-}
-
-views::BubbleDialogDelegate* PasswordChangeIconViews::GetBubble() const {
-  return PasswordBubbleViewBase::manage_password_bubble();
-}
-
-void PasswordChangeIconViews::UpdateImpl() {
-  if (!GetWebContents()) {
-    return;
-  }
-
-  ManagePasswordsUIController::FromWebContents(GetWebContents())
-      ->UpdateIconAndBubbleState(this);
-}
-
-void PasswordChangeIconViews::OnExecuting(
-    PageActionIconView::ExecuteSource source) {
-  browser()->window()->NotifyFeaturePromoFeatureUsed(
-      feature_engagement::kIPHPasswordsSaveRecoveryPromoFeature,
-      FeaturePromoFeatureUsedAction::kClosePromoIfPresent);
-}
-
-bool PasswordChangeIconViews::OnMousePressed(const ui::MouseEvent& event) {
-  bool result = PageActionIconView::OnMousePressed(event);
-  PasswordBubbleViewBase::CloseCurrentBubble();
-  return result;
-}
-
-const gfx::VectorIcon& PasswordChangeIconViews::GetVectorIcon() const {
-  switch (controller_.GetCurrentState()) {
-    case PasswordChangeDelegate::State::kOfferingPasswordChange:
-    case PasswordChangeDelegate::State::kWaitingForAgreement:
-    case PasswordChangeDelegate::State::kPasswordSuccessfullyChanged:
-    case PasswordChangeDelegate::State::kPasswordChangeFailed:
-    case PasswordChangeDelegate::State::kChangePasswordFormNotFound:
-    case PasswordChangeDelegate::State::kOtpDetected:
-    case PasswordChangeDelegate::State::kCanceled:
-      return vector_icons::kPasswordManagerIcon;
-    case PasswordChangeDelegate::State::kWaitingForChangePasswordForm:
-    case PasswordChangeDelegate::State::kChangingPassword:
-      return views::kPasswordChangeIcon;
-  }
-  return vector_icons::kPasswordManagerIcon;
-}
-
-void PasswordChangeIconViews::AboutToRequestFocusFromTabTraversal(
-    bool reverse) {
-  if (IsBubbleShowing()) {
-    PasswordBubbleViewBase::ActivateBubble();
-  }
-}
-
-void PasswordChangeIconViews::SetTooltipForToolbarPinningEnabled(
-    const std::u16string& tooltip) {
-  // TODO(crbug.com/353777476): Strip out pinned toolbar button code into a
-  // shared controller for page action and pinned button.
-  BrowserActions* browser_actions = browser()->browser_actions();
-  actions::ActionManager::Get()
-      .FindAction(kActionShowPasswordsBubbleOrPage,
-                  browser_actions->root_action_item())
-      ->SetTooltipText(tooltip);
-}
-
-void PasswordChangeIconViews::UpdateIconAndLabel() {
-  SkColor icon_color = GetColorProvider()->GetColor(kColorOmniboxActionIcon);
-  ui::ColorId background_color_id = GetUseTonalColorsWhenExpanded()
-                                        ? kColorOmniboxIconBackgroundTonal
-                                        : kColorOmniboxIconBackground;
-
-  State flow_state = controller_.GetCurrentState();
-  if (flow_state == State::kWaitingForChangePasswordForm ||
-      flow_state == State::kChangingPassword) {
-    icon_color = GetColorProvider()->GetColor(ui::kColorSysOnTonalContainer);
-    background_color_id = ui::kColorSysTonalContainer;
-  }
-  std::u16string label_text = GetLabelText(controller_.GetCurrentState());
-  SetLabel(label_text,
-           /*accessible_name=*/label_text.empty()
-               ? l10n_util::GetStringUTF16(
-                     IDS_PASSWORD_MANAGER_UI_PASSWORD_CHANGE_ICON_TOOLTIP)
-               : label_text);
-  label()->SetVisible(label_text.empty() ? false : true);
-  SetIconColor(icon_color);
-  SetEnabledTextColors(icon_color);
-  SetCustomBackgroundColorId(background_color_id);
-  UpdateIconImage();
-  UpdateLabelColors();
-  UpdateBackground();
-}
-
-BEGIN_METADATA(PasswordChangeIconViews)
-END_METADATA
diff --git a/chrome/browser/ui/views/passwords/password_change/password_change_icon_views.h b/chrome/browser/ui/views/passwords/password_change/password_change_icon_views.h
deleted file mode 100644
index 95795bf..0000000
--- a/chrome/browser/ui/views/passwords/password_change/password_change_icon_views.h
+++ /dev/null
@@ -1,48 +0,0 @@
-// Copyright 2025 The Chromium Authors
-// Use of this source code is governed by a BSD-style license that can be
-// found in the LICENSE file.
-
-#ifndef CHROME_BROWSER_UI_VIEWS_PASSWORDS_PASSWORD_CHANGE_PASSWORD_CHANGE_ICON_VIEWS_H_
-#define CHROME_BROWSER_UI_VIEWS_PASSWORDS_PASSWORD_CHANGE_PASSWORD_CHANGE_ICON_VIEWS_H_
-
-#include "chrome/browser/ui/passwords/manage_passwords_icon_view.h"
-#include "chrome/browser/ui/passwords/password_change_icon_views_controller.h"
-#include "chrome/browser/ui/views/page_action/page_action_icon_view.h"
-#include "ui/base/metadata/metadata_header_macros.h"
-
-// View for the icon displayed in the Omnibox bar during the password change
-// flow.
-class PasswordChangeIconViews : public ManagePasswordsIconView,
-                                public PageActionIconView {
-  METADATA_HEADER(PasswordChangeIconViews, PageActionIconView)
-
- public:
-  PasswordChangeIconViews(
-      CommandUpdater* updater,
-      IconLabelBubbleView::Delegate* icon_label_bubble_delegate,
-      PageActionIconView::Delegate* page_action_icon_delegate,
-      Browser* browser);
-  PasswordChangeIconViews(const PasswordChangeIconViews&) = delete;
-  PasswordChangeIconViews& operator=(const PasswordChangeIconViews&) = delete;
-  ~PasswordChangeIconViews() override;
-
-  // ManagePasswordsIconView:
-  void SetState(password_manager::ui::State state,
-                bool is_blocklisted) override;
-
-  // PageActionIconView:
-  views::BubbleDialogDelegate* GetBubble() const override;
-  void UpdateImpl() override;
-  void OnExecuting(PageActionIconView::ExecuteSource source) override;
-  bool OnMousePressed(const ui::MouseEvent& event) override;
-  const gfx::VectorIcon& GetVectorIcon() const override;
-  void AboutToRequestFocusFromTabTraversal(bool reverse) override;
-
- private:
-  void SetTooltipForToolbarPinningEnabled(const std::u16string& tooltip);
-  void UpdateIconAndLabel();
-
-  PasswordChangeIconViewsController controller_;
-};
-
-#endif  // CHROME_BROWSER_UI_VIEWS_PASSWORDS_PASSWORD_CHANGE_PASSWORD_CHANGE_ICON_VIEWS_H_
diff --git a/chrome/browser/ui/views/passwords/password_change/password_change_icon_views_interactive_ui_test.cc b/chrome/browser/ui/views/passwords/password_change/password_change_icon_views_interactive_ui_test.cc
deleted file mode 100644
index d1da387..0000000
--- a/chrome/browser/ui/views/passwords/password_change/password_change_icon_views_interactive_ui_test.cc
+++ /dev/null
@@ -1,110 +0,0 @@
-// Copyright 2025 The Chromium Authors
-// Use of this source code is governed by a BSD-style license that can be
-// found in the LICENSE file.
-
-#include <string_view>
-
-#include "base/test/run_until.h"
-#include "chrome/browser/password_manager/password_change_delegate.h"
-#include "chrome/browser/profiles/profile.h"
-#include "chrome/browser/signin/identity_test_environment_profile_adaptor.h"
-#include "chrome/browser/ui/actions/chrome_action_id.h"
-#include "chrome/browser/ui/browser_actions.h"
-#include "chrome/browser/ui/passwords/manage_passwords_test.h"
-#include "chrome/browser/ui/passwords/manage_passwords_ui_controller_mock.h"
-#include "chrome/browser/ui/passwords/passwords_model_delegate.h"
-#include "chrome/browser/ui/views/passwords/password_change/password_change_icon_views.h"
-#include "chrome/browser/ui/views/toolbar/pinned_toolbar_actions_container.h"
-#include "chrome/browser/ui/views/toolbar/toolbar_view.h"
-#include "chrome/test/base/in_process_browser_test.h"
-#include "chrome/test/base/interactive_test_utils.h"
-#include "components/optimization_guide/core/optimization_guide_features.h"
-#include "components/optimization_guide/core/optimization_guide_prefs.h"
-#include "components/password_manager/core/common/password_manager_pref_names.h"
-#include "components/password_manager/core/common/password_manager_ui.h"
-#include "components/signin/public/identity_manager/account_capabilities_test_mutator.h"
-#include "components/vector_icons/vector_icons.h"
-#include "content/public/test/browser_test.h"
-#include "net/dns/mock_host_resolver.h"
-#include "testing/gmock/include/gmock/gmock.h"
-#include "testing/gtest/include/gtest/gtest.h"
-#include "ui/views/interaction/interaction_test_util_views.h"
-#include "ui/views/vector_icons.h"
-
-using testing::Return;
-
-class PasswordChangeIconViewsTest : public ManagePasswordsTest {
- public:
-  PasswordChangeIconViewsTest() = default;
-
-  PasswordChangeIconViewsTest(const PasswordChangeIconViewsTest&) = delete;
-  PasswordChangeIconViewsTest& operator=(const PasswordChangeIconViewsTest&) =
-      delete;
-
-  ~PasswordChangeIconViewsTest() override = default;
-
- protected:
-  std::unique_ptr<IdentityTestEnvironmentProfileAdaptor>
-      identity_test_env_adaptor_;
-
-  PasswordChangeIconViews* GetView() {
-    views::View* const view =
-        BrowserView::GetBrowserViewForBrowser(browser())
-            ->toolbar_button_provider()
-            ->GetPageActionIconView(PageActionIconType::kChangePassword);
-    CHECK(views::IsViewClass<PasswordChangeIconViews>(view));
-    return static_cast<PasswordChangeIconViews*>(view);
-  }
-
-  void SetPrivacyNoticeAcceptedPref() {
-    browser()->profile()->GetPrefs()->SetInteger(
-        optimization_guide::prefs::GetSettingEnabledPrefName(
-            optimization_guide::UserVisibleFeatureKey::
-                kPasswordChangeSubmission),
-        static_cast<int>(
-            optimization_guide::prefs::FeatureOptInState::kEnabled));
-  }
-
-  void EnableSignIn() {
-    auto account_info =
-        identity_test_env_adaptor_->identity_test_env()
-            ->MakePrimaryAccountAvailable("user@gmail.com",
-                                          signin::ConsentLevel::kSignin);
-    AccountCapabilitiesTestMutator mutator(&account_info.capabilities);
-    mutator.set_can_use_model_execution_features(true);
-    identity_test_env_adaptor_->identity_test_env()
-        ->UpdateAccountInfoForAccount(account_info);
-    identity_test_env_adaptor_->identity_test_env()
-        ->SetAutomaticIssueOfAccessTokens(true);
-  }
-
-  void SetUpBrowserContextKeyedServices(
-      content::BrowserContext* context) override {
-    ManagePasswordsTest::SetUpBrowserContextKeyedServices(context);
-    IdentityTestEnvironmentProfileAdaptor::
-        SetIdentityTestEnvironmentFactoriesOnBrowserContext(context);
-  }
-
-  void SetUpOnMainThread() override {
-    ManagePasswordsTest::SetUpOnMainThread();
-    identity_test_env_adaptor_ =
-        std::make_unique<IdentityTestEnvironmentProfileAdaptor>(
-            browser()->profile());
-  }
-};
-
-IN_PROC_BROWSER_TEST_F(PasswordChangeIconViewsTest,
-                       ViewIsNotVisibleWhenManagingPasswords) {
-  SetupManagingPasswords();
-  EXPECT_FALSE(GetView()->GetVisible());
-}
-
-IN_PROC_BROWSER_TEST_F(PasswordChangeIconViewsTest,
-                       ViewIsNotVisibleWhenChangingPasswordCanceled) {
-  SetupPasswordChange();
-  PasswordChangeDelegate* delegate =
-      static_cast<PasswordsModelDelegate*>(GetController())
-          ->GetPasswordChangeDelegate();
-  delegate->Stop();
-  EXPECT_FALSE(GetView()->GetVisible());
-}
diff --git a/chrome/browser/ui/views/passwords/password_change/password_change_info_bubble_view.cc b/chrome/browser/ui/views/passwords/password_change/password_change_info_bubble_view.cc
deleted file mode 100644
index f0078de..0000000
--- a/chrome/browser/ui/views/passwords/password_change/password_change_info_bubble_view.cc
+++ /dev/null
@@ -1,104 +0,0 @@
-// Copyright 2024 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/views/passwords/password_change/password_change_info_bubble_view.h"
-
-#include <memory>
-#include <string>
-
-#include "base/functional/bind.h"
-#include "base/notreached.h"
-#include "chrome/browser/password_manager/password_change_delegate.h"
-#include "chrome/browser/ui/passwords/bubble_controllers/password_change/password_change_info_bubble_controller.h"
-#include "chrome/browser/ui/passwords/passwords_model_delegate.h"
-#include "chrome/browser/ui/views/chrome_layout_provider.h"
-#include "chrome/browser/ui/views/passwords/views_utils.h"
-#include "chrome/grit/branded_strings.h"
-#include "chrome/grit/generated_resources.h"
-#include "ui/base/l10n/l10n_util.h"
-#include "ui/base/metadata/metadata_impl_macros.h"
-#include "ui/views/controls/label.h"
-#include "ui/views/controls/styled_label.h"
-#include "ui/views/layout/flex_layout.h"
-#include "ui/views/style/typography.h"
-
-namespace {
-std::unique_ptr<views::Label> CreateLabel(const std::u16string& text) {
-  auto body_text = std::make_unique<views::Label>(
-      text, views::style::CONTEXT_DIALOG_BODY_TEXT);
-  body_text->SetMultiLine(true);
-  body_text->SetHorizontalAlignment(gfx::ALIGN_LEFT);
-  return body_text;
-}
-
-}  // namespace
-
-PasswordChangeInfoBubbleView::PasswordChangeInfoBubbleView(
-    content::WebContents* web_contents,
-    views::View* anchor_view,
-    PasswordChangeDelegate::State state)
-    : PasswordBubbleViewBase(web_contents,
-                             anchor_view,
-                             /*easily_dismissable=*/true),
-      controller_(PasswordsModelDelegateFromWebContents(web_contents), state) {
-  views::FlexLayout* flex_layout =
-      SetLayoutManager(std::make_unique<views::FlexLayout>());
-  flex_layout->SetOrientation(views::LayoutOrientation::kVertical)
-      .SetCrossAxisAlignment(views::LayoutAlignment::kStretch)
-      .SetIgnoreDefaultMainAxisMargins(true)
-      .SetCollapseMargins(true)
-      .SetDefault(
-          views::kMarginsKey,
-          gfx::Insets::VH(ChromeLayoutProvider::Get()->GetDistanceMetric(
-                              views::DISTANCE_CONTROL_LIST_VERTICAL),
-                          0));
-
-  AddChildView(CreateLabel(controller_.GetDisplayOrigin()));
-  std::unique_ptr<views::View> body_text = CreateBodyText(state);
-  body_text->SetID(kChangingPasswordBodyText);
-  AddChildView(std::move(body_text));
-
-  SetButtons(static_cast<int>(ui::mojom::DialogButton::kCancel));
-  SetButtonLabel(ui::mojom::DialogButton::kCancel,
-                 l10n_util::GetStringUTF16(
-                     IDS_PASSWORD_MANAGER_UI_PASSWORD_CHANGE_CANCEL));
-  SetCancelCallback(
-      base::BindOnce(&PasswordChangeInfoBubbleController::CancelPasswordChange,
-                     base::Unretained(&controller_)));
-}
-
-PasswordChangeInfoBubbleView::~PasswordChangeInfoBubbleView() = default;
-
-PasswordBubbleControllerBase* PasswordChangeInfoBubbleView::GetController() {
-  return &controller_;
-}
-
-const PasswordBubbleControllerBase*
-PasswordChangeInfoBubbleView::GetController() const {
-  return &controller_;
-}
-
-std::unique_ptr<views::View> PasswordChangeInfoBubbleView::CreateBodyText(
-    PasswordChangeDelegate::State state) {
-  if (state == PasswordChangeDelegate::State::kWaitingForChangePasswordForm) {
-    return CreateLabel(l10n_util::GetStringUTF16(
-        IDS_PASSWORD_MANAGER_UI_SIGN_IN_CHECK_DETAILS));
-  }
-  if (state == PasswordChangeDelegate::State::kChangingPassword) {
-    base::RepeatingClosure open_password_manager_closure = base::BindRepeating(
-        &PasswordChangeInfoBubbleController::OnGooglePasswordManagerLinkClicked,
-        base::Unretained(&controller_));
-    return CreateGooglePasswordManagerLabel(
-        /*text_message_id=*/
-        IDS_PASSWORD_MANAGER_UI_PASSWORD_CHANGE_INFO_BUBBLE_DETAILS,
-        /*link_message_id=*/
-        IDS_PASSWORD_BUBBLES_PASSWORD_MANAGER_LINK_TEXT_SYNCED_TO_ACCOUNT,
-        controller_.GetPrimaryAccountEmail(), open_password_manager_closure,
-        CONTEXT_DIALOG_BODY_TEXT_SMALL, views::style::STYLE_PRIMARY);
-  }
-  NOTREACHED();
-}
-
-BEGIN_METADATA(PasswordChangeInfoBubbleView)
-END_METADATA
diff --git a/chrome/browser/ui/views/passwords/password_change/password_change_info_bubble_view.h b/chrome/browser/ui/views/passwords/password_change/password_change_info_bubble_view.h
deleted file mode 100644
index f0823e0..0000000
--- a/chrome/browser/ui/views/passwords/password_change/password_change_info_bubble_view.h
+++ /dev/null
@@ -1,37 +0,0 @@
-// Copyright 2024 The Chromium Authors
-// Use of this source code is governed by a BSD-style license that can be
-// found in the LICENSE file.
-
-#ifndef CHROME_BROWSER_UI_VIEWS_PASSWORDS_PASSWORD_CHANGE_PASSWORD_CHANGE_INFO_BUBBLE_VIEW_H_
-#define CHROME_BROWSER_UI_VIEWS_PASSWORDS_PASSWORD_CHANGE_PASSWORD_CHANGE_INFO_BUBBLE_VIEW_H_
-
-#include "chrome/browser/ui/passwords/bubble_controllers/password_change/password_change_info_bubble_controller.h"
-#include "chrome/browser/ui/views/passwords/password_bubble_view_base.h"
-
-// Bubble view, which is displayed during the password change flow. It is shown
-// when checking if user is signed into a web site.
-class PasswordChangeInfoBubbleView : public PasswordBubbleViewBase {
-  METADATA_HEADER(PasswordChangeInfoBubbleView, PasswordBubbleViewBase)
-
- public:
-  // Bubble body text label id. It's set here to be used in unit tests.
-  static constexpr int kChangingPasswordBodyText = 1;
-
-  PasswordChangeInfoBubbleView(content::WebContents* web_contents,
-                               views::View* anchor_view,
-                               PasswordChangeDelegate::State state);
-
- private:
-  ~PasswordChangeInfoBubbleView() override;
-
-  // PasswordBubbleViewBase
-  PasswordBubbleControllerBase* GetController() override;
-  const PasswordBubbleControllerBase* GetController() const override;
-
-  std::unique_ptr<views::View> CreateBodyText(
-      PasswordChangeDelegate::State state);
-
-  PasswordChangeInfoBubbleController controller_;
-};
-
-#endif  // CHROME_BROWSER_UI_VIEWS_PASSWORDS_PASSWORD_CHANGE_PASSWORD_CHANGE_INFO_BUBBLE_VIEW_H_
diff --git a/chrome/browser/ui/views/passwords/password_change/password_change_info_bubble_view_unittest.cc b/chrome/browser/ui/views/passwords/password_change/password_change_info_bubble_view_unittest.cc
deleted file mode 100644
index ce2ddb8..0000000
--- a/chrome/browser/ui/views/passwords/password_change/password_change_info_bubble_view_unittest.cc
+++ /dev/null
@@ -1,119 +0,0 @@
-// Copyright 2024 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/views/passwords/password_change/password_change_info_bubble_view.h"
-
-#include <memory>
-#include <string>
-
-#include "base/strings/utf_string_conversions.h"
-#include "chrome/browser/password_manager/password_change_delegate.h"
-#include "chrome/browser/password_manager/password_change_delegate_mock.h"
-#include "chrome/browser/sync/sync_service_factory.h"
-#include "chrome/browser/ui/views/passwords/password_bubble_view_test_base.h"
-#include "chrome/grit/branded_strings.h"
-#include "chrome/grit/generated_resources.h"
-#include "components/keyed_service/core/keyed_service.h"
-#include "components/signin/public/identity_manager/account_info.h"
-#include "components/sync/service/sync_service.h"
-#include "components/sync/test/test_sync_service.h"
-#include "testing/gmock/include/gmock/gmock.h"
-#include "testing/gtest/include/gtest/gtest.h"
-#include "ui/events/test/test_event.h"
-#include "ui/views/controls/label.h"
-#include "ui/views/controls/styled_label.h"
-#include "ui/views/test/button_test_api.h"
-#include "url/gurl.h"
-
-using testing::Return;
-using testing::ReturnRef;
-
-namespace {
-const std::u16string kTestEmail = u"account@example.com";
-
-std::unique_ptr<KeyedService> BuildTestSyncService(
-    AccountInfo account_info,
-    content::BrowserContext* context) {
-  auto sync_service = std::make_unique<syncer::TestSyncService>();
-  sync_service->SetSignedIn(signin::ConsentLevel::kSync, account_info);
-  return sync_service;
-}
-
-std::u16string GetBodyText() {
-  const std::u16string link = l10n_util::GetStringUTF16(
-      IDS_PASSWORD_BUBBLES_PASSWORD_MANAGER_LINK_TEXT_SYNCED_TO_ACCOUNT);
-  return l10n_util::GetStringFUTF16(
-      IDS_PASSWORD_MANAGER_UI_PASSWORD_CHANGE_INFO_BUBBLE_DETAILS, link,
-      kTestEmail);
-}
-}  // namespace
-
-class PasswordChangeInfoBubbleViewTest : public PasswordBubbleViewTestBase {
- public:
-  PasswordChangeInfoBubbleViewTest() = default;
-  ~PasswordChangeInfoBubbleViewTest() override = default;
-
-  void SetUp() override {
-    PasswordBubbleViewTestBase::SetUp();
-    password_change_delegate_ = std::make_unique<PasswordChangeDelegateMock>();
-    ON_CALL(*password_change_delegate_, GetDisplayOrigin())
-        .WillByDefault(Return(u"example.com"));
-    ON_CALL(*model_delegate_mock(), GetPasswordChangeDelegate())
-        .WillByDefault(Return(password_change_delegate_.get()));
-    AccountInfo account_info = identity_test_env()->MakePrimaryAccountAvailable(
-        base::UTF16ToUTF8(kTestEmail), signin::ConsentLevel::kSignin);
-    SyncServiceFactory::GetInstance()->SetTestingFactory(
-        profile(),
-        base::BindRepeating(&BuildTestSyncService, std::move(account_info)));
-  }
-
-  void TearDown() override {
-    view_->GetWidget()->CloseWithReason(
-        views::Widget::ClosedReason::kCloseButtonClicked);
-    view_ = nullptr;
-    PasswordBubbleViewTestBase::TearDown();
-  }
-
-  void CreateAndShowView(PasswordChangeDelegate::State state) {
-    CreateAnchorViewAndShow();
-
-    ON_CALL(*password_change_delegate_, GetCurrentState())
-        .WillByDefault(Return(state));
-    view_ =
-        new PasswordChangeInfoBubbleView(web_contents(), anchor_view(), state);
-    views::BubbleDialogDelegateView::CreateBubble(view_)->Show();
-  }
-
-  PasswordChangeDelegateMock* password_change_delegate() {
-    return password_change_delegate_.get();
-  }
-
-  PasswordChangeInfoBubbleView* view() { return view_; }
-
- private:
-  std::unique_ptr<PasswordChangeDelegateMock> password_change_delegate_;
-  raw_ptr<PasswordChangeInfoBubbleView> view_;
-};
-
-TEST_F(PasswordChangeInfoBubbleViewTest, ChangingPasswordBubbleLayout) {
-  CreateAndShowView(PasswordChangeDelegate::State::kChangingPassword);
-
-  EXPECT_TRUE(view()->GetCancelButton());
-  views::StyledLabel* bodyTextLabel =
-      static_cast<views::StyledLabel*>(view()->GetViewByID(
-          PasswordChangeInfoBubbleView::kChangingPasswordBodyText));
-  EXPECT_EQ(bodyTextLabel->GetText(), GetBodyText());
-  EXPECT_EQ(view()->GetWindowTitle(),
-            l10n_util::GetStringUTF16(
-                IDS_PASSWORD_MANAGER_UI_PASSWORD_CHANGE_INFO_BUBBLE_TITLE));
-}
-
-TEST_F(PasswordChangeInfoBubbleViewTest, CancelClosesTheBubbleAndCancelsFlow) {
-  CreateAndShowView(PasswordChangeDelegate::State::kChangingPassword);
-
-  EXPECT_CALL(*password_change_delegate(), Stop);
-  EXPECT_CALL(*model_delegate_mock(), OnBubbleHidden);
-  views::test::ButtonTestApi(view()->GetCancelButton())
-      .NotifyClick(ui::test::TestEvent());
-}
diff --git a/chrome/browser/ui/views/passwords/password_change/password_change_view_factory.cc b/chrome/browser/ui/views/passwords/password_change/password_change_view_factory.cc
deleted file mode 100644
index 85d995da..0000000
--- a/chrome/browser/ui/views/passwords/password_change/password_change_view_factory.cc
+++ /dev/null
@@ -1,44 +0,0 @@
-// Copyright 2024 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/views/passwords/password_change/password_change_view_factory.h"
-
-#include "base/notimplemented.h"
-#include "base/notreached.h"
-#include "chrome/browser/password_manager/password_change_delegate.h"
-#include "chrome/browser/ui/views/passwords/password_change/failed_password_change_view.h"
-#include "chrome/browser/ui/views/passwords/password_change/no_password_change_form_view.h"
-#include "chrome/browser/ui/views/passwords/password_change/otp_during_password_change_view.h"
-#include "chrome/browser/ui/views/passwords/password_change/password_change_credential_leak_bubble_view.h"
-#include "chrome/browser/ui/views/passwords/password_change/password_change_info_bubble_view.h"
-#include "chrome/browser/ui/views/passwords/password_change/privacy_notice_view.h"
-#include "chrome/browser/ui/views/passwords/password_change/successful_password_change_view.h"
-
-PasswordBubbleViewBase* CreatePasswordChangeBubbleView(
-    PasswordChangeDelegate* delegate,
-    content::WebContents* web_contents,
-    views::View* anchor_view) {
-  switch (delegate->GetCurrentState()) {
-    case PasswordChangeDelegate::State::kOfferingPasswordChange:
-      return new PasswordChangeCredentialLeakBubbleView(web_contents,
-                                                        anchor_view);
-    case PasswordChangeDelegate::State::kWaitingForAgreement:
-      return new PrivacyNoticeView(web_contents, anchor_view);
-    case PasswordChangeDelegate::State::kWaitingForChangePasswordForm:
-    case PasswordChangeDelegate::State::kChangingPassword:
-      return new PasswordChangeInfoBubbleView(web_contents, anchor_view,
-                                              delegate->GetCurrentState());
-    case PasswordChangeDelegate::State::kPasswordSuccessfullyChanged:
-      return new SuccessfulPasswordChangeView(web_contents, anchor_view);
-    case PasswordChangeDelegate::State::kPasswordChangeFailed:
-      return new FailedPasswordChangeView(web_contents, anchor_view);
-    case PasswordChangeDelegate::State::kChangePasswordFormNotFound:
-      return new NoPasswordChangeFormView(web_contents, anchor_view);
-    case PasswordChangeDelegate::State::kOtpDetected:
-      return new OtpDuringPasswordChangeView(web_contents, anchor_view);
-    case PasswordChangeDelegate::State::kCanceled:
-      return new OtpDuringPasswordChangeView(web_contents, anchor_view);
-  }
-  NOTREACHED();
-}
diff --git a/chrome/browser/ui/views/passwords/password_change/password_change_view_factory.h b/chrome/browser/ui/views/passwords/password_change/password_change_view_factory.h
deleted file mode 100644
index ba1b9ec..0000000
--- a/chrome/browser/ui/views/passwords/password_change/password_change_view_factory.h
+++ /dev/null
@@ -1,16 +0,0 @@
-// Copyright 2024 The Chromium Authors
-// Use of this source code is governed by a BSD-style license that can be
-// found in the LICENSE file.
-
-#ifndef CHROME_BROWSER_UI_VIEWS_PASSWORDS_PASSWORD_CHANGE_PASSWORD_CHANGE_VIEW_FACTORY_H_
-#define CHROME_BROWSER_UI_VIEWS_PASSWORDS_PASSWORD_CHANGE_PASSWORD_CHANGE_VIEW_FACTORY_H_
-
-#include "chrome/browser/password_manager/password_change_delegate.h"
-#include "chrome/browser/ui/views/passwords/password_bubble_view_base.h"
-
-PasswordBubbleViewBase* CreatePasswordChangeBubbleView(
-    PasswordChangeDelegate* delegate,
-    content::WebContents* web_contents,
-    views::View* anchor_view);
-
-#endif  // CHROME_BROWSER_UI_VIEWS_PASSWORDS_PASSWORD_CHANGE_PASSWORD_CHANGE_VIEW_FACTORY_H_
diff --git a/chrome/browser/ui/views/passwords/password_change/privacy_notice_view.cc b/chrome/browser/ui/views/passwords/password_change/privacy_notice_view.cc
deleted file mode 100644
index 731d6a3..0000000
--- a/chrome/browser/ui/views/passwords/password_change/privacy_notice_view.cc
+++ /dev/null
@@ -1,158 +0,0 @@
-// Copyright 2025 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/views/passwords/password_change/privacy_notice_view.h"
-
-#include <memory>
-
-#include "chrome/browser/ui/passwords/bubble_controllers/password_change/privacy_notice_bubble_view_controller.h"
-#include "chrome/browser/ui/passwords/passwords_model_delegate.h"
-#include "chrome/browser/ui/views/chrome_layout_provider.h"
-#include "chrome/grit/generated_resources.h"
-#include "components/vector_icons/vector_icons.h"
-#include "content/public/browser/web_contents.h"
-#include "ui/base/l10n/l10n_util.h"
-#include "ui/base/metadata/metadata_impl_macros.h"
-#include "ui/color/color_id.h"
-#include "ui/views/controls/button/image_button.h"
-#include "ui/views/controls/button/image_button_factory.h"
-#include "ui/views/layout/box_layout_view.h"
-#include "ui/views/layout/fill_layout.h"
-#include "ui/views/layout/layout_types.h"
-#include "ui/views/layout/table_layout_view.h"
-#include "ui/views/style/typography.h"
-#include "ui/views/vector_icons.h"
-
-using TableLayout = views::TableLayout;
-using LayoutAlignment = views::LayoutAlignment;
-using ClosedReason = views::Widget::ClosedReason;
-
-namespace {
-// The corner radius of the text area in the bubble.
-const float kCornerRadius = 12;
-constexpr int kIconSize = 16;
-
-std::unique_ptr<views::View> CreateLabel(const std::u16string& text,
-                                         int style) {
-  auto label = std::make_unique<views::Label>();
-  label->SetText(text);
-  label->SetTextStyle(style);
-  label->SetMultiLine(true);
-  label->SetHorizontalAlignment(gfx::ALIGN_LEFT);
-  return label;
-}
-
-void CreateRow(views::View& table_root_view,
-               const gfx::VectorIcon& icon_id,
-               int string_id) {
-  table_root_view.AddChildView(std::make_unique<views::ImageView>(
-      ui::ImageModel::FromVectorIcon(icon_id, ui::kColorIcon, kIconSize)));
-  table_root_view.AddChildView(CreateLabel(l10n_util::GetStringUTF16(string_id),
-                                           views::style::STYLE_SECONDARY));
-}
-
-std::unique_ptr<views::View> CreateThingsToConsiderList() {
-  const views::LayoutProvider* provider = views::LayoutProvider::Get();
-  const int related_control_padding =
-      provider->GetDistanceMetric(views::DISTANCE_RELATED_CONTROL_VERTICAL);
-  const int label_padding =
-      provider->GetDistanceMetric(views::DISTANCE_RELATED_LABEL_HORIZONTAL);
-
-  auto table_root_view = std::make_unique<views::TableLayoutView>();
-  table_root_view
-      ->AddColumn(LayoutAlignment::kCenter, LayoutAlignment::kCenter,
-                  TableLayout::kFixedSize, TableLayout::ColumnSize::kFixed,
-                  kIconSize, kIconSize)
-      .AddPaddingColumn(TableLayout::kFixedSize, label_padding)
-      .AddColumn(LayoutAlignment::kStretch, LayoutAlignment::kStretch, 1.0f,
-                 TableLayout::ColumnSize::kUsePreferred, 0, 0)
-      .AddRows(1, TableLayout::kFixedSize)
-      .AddPaddingRow(TableLayout::kFixedSize, related_control_padding)
-      .AddRows(1, TableLayout::kFixedSize)
-      .AddPaddingRow(TableLayout::kFixedSize, related_control_padding)
-      .AddRows(1, TableLayout::kFixedSize);
-
-  CreateRow(
-      *table_root_view, views::kPsychiatryIcon,
-      IDS_PASSWORD_MANAGER_UI_PASSWORD_CHANGE_PRIVACY_NOTICE_ITEM_EXPERIMENTAL);
-  CreateRow(
-      *table_root_view, views::kAccountBoxIcon,
-      IDS_PASSWORD_MANAGER_UI_PASSWORD_CHANGE_PRIVACY_NOTICE_ITEM_HUMAN_REVIEW);
-  CreateRow(
-      *table_root_view, vector_icons::kLockIcon,
-      IDS_PASSWORD_MANAGER_UI_PASSWORD_CHANGE_PRIVACY_NOTICE_ITEM_ENCRYPTED);
-  return table_root_view;
-}
-
-}  // namespace
-
-PrivacyNoticeView::PrivacyNoticeView(content::WebContents* web_contents,
-                                     views::View* anchor_view)
-    : PasswordBubbleViewBase(web_contents,
-                             anchor_view,
-                             /*easily_dismissable=*/true),
-      controller_(PasswordsModelDelegateFromWebContents(web_contents)) {
-  SetLayoutManager(std::make_unique<views::FillLayout>());
-  auto* root_view = AddChildView(std::make_unique<views::BoxLayoutView>());
-
-  root_view->SetOrientation(views::LayoutOrientation::kVertical);
-  const auto* const layout_provider = ChromeLayoutProvider::Get();
-  root_view->SetInsideBorderInsets(gfx::Insets::VH(
-      layout_provider->GetDistanceMetric(views::DISTANCE_CONTROL_LIST_VERTICAL),
-      // TODO(pkasting): Why is this using a vertical distance metric for a
-      // horizontal inset?
-      layout_provider->GetDistanceMetric(
-          views::DISTANCE_CONTROL_LIST_VERTICAL)));
-  root_view->SetCrossAxisAlignment(views::LayoutAlignment::kStretch);
-  const int spacing = layout_provider->GetDistanceMetric(
-      DISTANCE_RELATED_CONTROL_VERTICAL_SMALL);
-  root_view->SetBetweenChildSpacing(spacing);
-
-  root_view->SetBackground(
-      views::CreateRoundedRectBackground(ui::kColorSysSurface4,
-                                         /*top_radius=*/kCornerRadius,
-                                         /*bottom_radius=*/kCornerRadius));
-  root_view->AddChildView(CreateLabel(
-      l10n_util::GetStringUTF16(
-          IDS_PASSWORD_MANAGER_UI_PASSWORD_CHANGE_PRIVACY_NOTICE_SUBTITLE),
-      views::style::STYLE_BODY_4_MEDIUM));
-  root_view->AddChildView(CreateThingsToConsiderList());
-
-  SetButtons(static_cast<int>(ui::mojom::DialogButton::kOk) |
-             static_cast<int>(ui::mojom::DialogButton::kCancel));
-  SetButtonLabel(ui::mojom::DialogButton::kOk,
-                 l10n_util::GetStringUTF16(
-                     IDS_PASSWORD_MANAGER_UI_PASSWORD_CHANGE_CONTINUE));
-  SetButtonLabel(ui::mojom::DialogButton::kCancel,
-                 l10n_util::GetStringUTF16(
-                     IDS_PASSWORD_MANAGER_UI_PASSWORD_CHANGE_CANCEL));
-  SetAcceptCallback(
-      base::BindOnce(&PrivacyNoticeBubbleViewController::AcceptNotice,
-                     base::Unretained(&controller_)));
-  SetCancelCallback(base::BindOnce(&PrivacyNoticeBubbleViewController::Cancel,
-                                   base::Unretained(&controller_)));
-  SetCloseCallback(base::BindRepeating(
-      [](PrivacyNoticeView* view) {
-        ClosedReason reason = view->GetWidget()->closed_reason();
-        // Cancel the flow if the dialog is explicitly closed.
-        if (reason == ClosedReason::kCloseButtonClicked ||
-            reason == ClosedReason::kEscKeyPressed) {
-          view->controller_.Cancel();
-        }
-      },
-      this));
-}
-
-PrivacyNoticeView::~PrivacyNoticeView() = default;
-
-PasswordBubbleControllerBase* PrivacyNoticeView::GetController() {
-  return &controller_;
-}
-
-const PasswordBubbleControllerBase* PrivacyNoticeView::GetController() const {
-  return &controller_;
-}
-
-BEGIN_METADATA(PrivacyNoticeView)
-END_METADATA
diff --git a/chrome/browser/ui/views/passwords/password_change/privacy_notice_view.h b/chrome/browser/ui/views/passwords/password_change/privacy_notice_view.h
deleted file mode 100644
index 811e1a8..0000000
--- a/chrome/browser/ui/views/passwords/password_change/privacy_notice_view.h
+++ /dev/null
@@ -1,28 +0,0 @@
-// Copyright 2025 The Chromium Authors
-// Use of this source code is governed by a BSD-style license that can be
-// found in the LICENSE file.
-
-#ifndef CHROME_BROWSER_UI_VIEWS_PASSWORDS_PASSWORD_CHANGE_PRIVACY_NOTICE_VIEW_H_
-#define CHROME_BROWSER_UI_VIEWS_PASSWORDS_PASSWORD_CHANGE_PRIVACY_NOTICE_VIEW_H_
-
-#include "chrome/browser/ui/passwords/bubble_controllers/password_change/privacy_notice_bubble_view_controller.h"
-#include "chrome/browser/ui/views/passwords/password_bubble_view_base.h"
-
-class PrivacyNoticeView : public PasswordBubbleViewBase {
-  METADATA_HEADER(PrivacyNoticeView, PasswordBubbleViewBase)
-
- public:
-  PrivacyNoticeView(content::WebContents* web_contents,
-                    views::View* anchor_view);
-
- private:
-  ~PrivacyNoticeView() override;
-
-  // PasswordBubbleViewBase
-  PasswordBubbleControllerBase* GetController() override;
-  const PasswordBubbleControllerBase* GetController() const override;
-
-  PrivacyNoticeBubbleViewController controller_;
-};
-
-#endif  // CHROME_BROWSER_UI_VIEWS_PASSWORDS_PASSWORD_CHANGE_PRIVACY_NOTICE_VIEW_H_
diff --git a/chrome/browser/ui/views/passwords/password_change/privacy_notice_view_unittest.cc b/chrome/browser/ui/views/passwords/password_change/privacy_notice_view_unittest.cc
deleted file mode 100644
index e45bb098..0000000
--- a/chrome/browser/ui/views/passwords/password_change/privacy_notice_view_unittest.cc
+++ /dev/null
@@ -1,73 +0,0 @@
-// Copyright 2025 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/views/passwords/password_change/privacy_notice_view.h"
-
-#include "chrome/browser/password_manager/password_change_delegate_mock.h"
-#include "chrome/browser/ui/views/passwords/password_bubble_view_test_base.h"
-#include "testing/gmock/include/gmock/gmock.h"
-#include "testing/gtest/include/gtest/gtest.h"
-#include "ui/events/test/test_event.h"
-#include "ui/views/test/button_test_api.h"
-
-using testing::Return;
-using testing::ReturnRef;
-
-class PrivacyNoticeViewTest : public PasswordBubbleViewTestBase {
- public:
-  PrivacyNoticeViewTest() = default;
-  ~PrivacyNoticeViewTest() override = default;
-
-  void SetUp() override {
-    PasswordBubbleViewTestBase::SetUp();
-    password_change_delegate_ = std::make_unique<PasswordChangeDelegateMock>();
-    ON_CALL(*model_delegate_mock(), GetPasswordChangeDelegate())
-        .WillByDefault(Return(password_change_delegate_.get()));
-  }
-
-  void TearDown() override {
-    view_->GetWidget()->CloseWithReason(
-        views::Widget::ClosedReason::kCloseButtonClicked);
-    view_ = nullptr;
-    PasswordBubbleViewTestBase::TearDown();
-  }
-
-  void CreateAndShowView() {
-    CreateAnchorViewAndShow();
-
-    ON_CALL(*password_change_delegate_, GetCurrentState())
-        .WillByDefault(
-            Return(PasswordChangeDelegate::State::kWaitingForAgreement));
-    view_ = new PrivacyNoticeView(web_contents(), anchor_view());
-    views::BubbleDialogDelegateView::CreateBubble(view_)->Show();
-  }
-
-  PasswordChangeDelegateMock* password_change_delegate() {
-    return password_change_delegate_.get();
-  }
-
-  PrivacyNoticeView* view() { return view_; }
-
- private:
-  std::unique_ptr<PasswordChangeDelegateMock> password_change_delegate_;
-  raw_ptr<PrivacyNoticeView> view_;
-};
-
-TEST_F(PrivacyNoticeViewTest, AcceptClosesTheBubbleAndTriggersDelegate) {
-  CreateAndShowView();
-
-  EXPECT_CALL(*password_change_delegate(), OnPrivacyNoticeAccepted);
-  EXPECT_CALL(*model_delegate_mock(), OnBubbleHidden);
-  views::test::ButtonTestApi(view()->GetOkButton())
-      .NotifyClick(ui::test::TestEvent());
-}
-
-TEST_F(PrivacyNoticeViewTest, CancelClosesTheBubbleAndCancelsTheFlow) {
-  CreateAndShowView();
-
-  EXPECT_CALL(*password_change_delegate(), Stop);
-  EXPECT_CALL(*model_delegate_mock(), OnBubbleHidden);
-  views::test::ButtonTestApi(view()->GetCancelButton())
-      .NotifyClick(ui::test::TestEvent());
-}
diff --git a/chrome/browser/ui/webui/new_tab_footer/new_tab_footer_helper.cc b/chrome/browser/ui/webui/new_tab_footer/new_tab_footer_helper.cc
index ee29535..cd920b1f 100644
--- a/chrome/browser/ui/webui/new_tab_footer/new_tab_footer_helper.cc
+++ b/chrome/browser/ui/webui/new_tab_footer/new_tab_footer_helper.cc
@@ -6,9 +6,14 @@
 
 #include "chrome/browser/enterprise/util/managed_browser_utils.h"
 #include "chrome/browser/extensions/settings_api_helpers.h"
+#include "chrome/browser/search/search.h"
+#include "chrome/browser/ui/webui/new_tab_page/new_tab_page_ui.h"
+#include "chrome/browser/ui/webui/new_tab_page_third_party/new_tab_page_third_party_ui.h"
+#include "chrome/browser/ui/webui/ntp/new_tab_ui.h"
 #include "chrome/common/pref_names.h"
 #include "components/prefs/pref_service.h"
 #include "components/search/ntp_features.h"
+#include "content/public/browser/navigation_entry.h"
 #include "extensions/common/constants.h"
 
 namespace ntp_footer {
@@ -28,12 +33,24 @@
   return extension_managing_ntp->id() == url.host();
 }
 
-bool CanShowExtensionFooter(const GURL& url, Profile* profile) {
-  if (!IsExtensionNtp(url, profile)) {
-    return false;
+bool IsNtp(const GURL& url,
+           content::WebContents* web_contents,
+           Profile* profile) {
+  content::NavigationEntry* entry =
+      web_contents->GetController().GetLastCommittedEntry();
+  if (entry->IsInitialEntry()) {
+    entry = web_contents->GetController().GetVisibleEntry();
   }
+  return NewTabUI::IsNewTab(url) || NewTabPageUI::IsNewTabPageOrigin(url) ||
+         NewTabPageThirdPartyUI::IsNewTabPageOrigin(url) ||
+         search::NavEntryIsInstantNTP(web_contents, entry) ||
+         ntp_footer::IsExtensionNtp(url, profile);
+}
 
-  return profile->GetPrefs()->GetBoolean(
-      prefs::kNTPFooterExtensionAttributionEnabled);
+bool WillShowManagementNotice(const GURL& url,
+                              content::WebContents* web_contents,
+                              Profile* profile) {
+  return IsNtp(url, web_contents, profile) &&
+         enterprise_util::CanShowEnterpriseBadgingForNTPFooter(profile);
 }
 }  // namespace ntp_footer
diff --git a/chrome/browser/ui/webui/new_tab_footer/new_tab_footer_helper.h b/chrome/browser/ui/webui/new_tab_footer/new_tab_footer_helper.h
index 1aa328c..e0f69ff 100644
--- a/chrome/browser/ui/webui/new_tab_footer/new_tab_footer_helper.h
+++ b/chrome/browser/ui/webui/new_tab_footer/new_tab_footer_helper.h
@@ -14,8 +14,12 @@
 namespace ntp_footer {
 // Returns whether `url` belongs to an extension NTP.
 bool IsExtensionNtp(const GURL& url, Profile* profile);
-// Returns whether the extension attribution can be shown.
-bool CanShowExtensionFooter(const GURL& url, Profile* profile);
+bool IsNtp(const GURL& url,
+           content::WebContents* web_contents,
+           Profile* profile);
+bool WillShowManagementNotice(const GURL& url,
+                              content::WebContents* web_contents,
+                              Profile* profile);
 }  // namespace ntp_footer
 
 #endif  // CHROME_BROWSER_UI_WEBUI_NEW_TAB_FOOTER_NEW_TAB_FOOTER_HELPER_H_
diff --git a/chrome/browser/ui/webui/new_tab_page/new_tab_page.mojom b/chrome/browser/ui/webui/new_tab_page/new_tab_page.mojom
index 83547cfd..f9e4fd4 100644
--- a/chrome/browser/ui/webui/new_tab_page/new_tab_page.mojom
+++ b/chrome/browser/ui/webui/new_tab_page/new_tab_page.mojom
@@ -291,6 +291,8 @@
   GetModulesOrder() => (array<string> module_ids);
   // Triggers a call to |SetModulesLoadable|.
   UpdateModulesLoadable();
+  // Triggers a call to |FooterVisibilityUpdated|.
+  UpdateFooterVisibility();
   // Attempts to trigger the specified in product help promo.
   MaybeShowFeaturePromo(IphFeature iph_feature);
   // Increments count of times the compose button was shown.
@@ -327,7 +329,6 @@
   OnPromoLinkClicked();
   // Logs that the <ntp-app> element's |ready| callback method was called.
   OnAppRendered(double time);
-
 };
 
 // WebUI-side handler for requests from the browser.
@@ -344,8 +345,10 @@
   SetPromo(Promo? promo);
   // Shows a toast with information about Chrome Webstore themes.
   ShowWebstoreToast();
-  // Sets wallpaper search button's visibility to to |visible|.
+  // Sets wallpaper search button's visibility to |visible|.
   SetWallpaperSearchButtonVisibility(bool visible);
+  // Called when the NTP footer is shown or hidden.
+  FooterVisibilityUpdated(bool visible);
   // Called when the embedded chrome-untrusted:// document wants to bind Mojo
   // interfaces for communicating with the chrome:// document.
   ConnectToParentDocument(pending_remote<MicrosoftAuthUntrustedDocument> child_untrusted_document_remote);
diff --git a/chrome/browser/ui/webui/new_tab_page/new_tab_page_handler.cc b/chrome/browser/ui/webui/new_tab_page/new_tab_page_handler.cc
index 25b0b78..ab85ff3b 100644
--- a/chrome/browser/ui/webui/new_tab_page/new_tab_page_handler.cc
+++ b/chrome/browser/ui/webui/new_tab_page/new_tab_page_handler.cc
@@ -33,6 +33,8 @@
 #include "base/strings/stringprintf.h"
 #include "base/strings/utf_string_conversions.h"
 #include "base/values.h"
+#include "chrome/browser/browser_process.h"
+#include "chrome/browser/enterprise/util/managed_browser_utils.h"
 #include "chrome/browser/new_tab_page/feature_promo_helper/new_tab_page_feature_promo_helper.h"
 #include "chrome/browser/new_tab_page/microsoft_auth/microsoft_auth_service.h"
 #include "chrome/browser/new_tab_page/microsoft_auth/microsoft_auth_service_factory.h"
@@ -57,6 +59,7 @@
 #include "chrome/browser/ui/hats/hats_service.h"
 #include "chrome/browser/ui/hats/hats_service_factory.h"
 #include "chrome/browser/ui/views/side_panel/customize_chrome/customize_chrome_utils.h"
+#include "chrome/browser/ui/webui/new_tab_footer/new_tab_footer_helper.h"
 #include "chrome/browser/ui/webui/new_tab_page/ntp_pref_names.h"
 #include "chrome/browser/ui/webui/webui_util_desktop.h"
 #include "chrome/common/chrome_features.h"
@@ -532,6 +535,14 @@
       prefs::kSeedColorChangeCount,
       base::BindRepeating(&NewTabPageHandler::MaybeShowWebstoreToast,
                           base::Unretained(this)));
+
+#if BUILDFLAG(IS_WIN) || BUILDFLAG(IS_MAC) || BUILDFLAG(IS_LINUX)
+  local_state_pref_change_registrar_.Init(g_browser_process->local_state());
+  local_state_pref_change_registrar_.Add(
+      prefs::kNTPFooterManagementNoticeEnabled,
+      base::BindRepeating(&NewTabPageHandler::OnFooterVisibilityUpdated,
+                          base::Unretained(this)));
+#endif
 }
 
 NewTabPageHandler::~NewTabPageHandler() {
@@ -876,6 +887,10 @@
   }
 }
 
+void NewTabPageHandler::UpdateFooterVisibility() {
+  OnFooterVisibilityUpdated();
+}
+
 void NewTabPageHandler::MaybeShowFeaturePromo(
     new_tab_page::mojom::IphFeature iph_feature) {
   CHECK(profile_);
@@ -1487,6 +1502,11 @@
   return state != MicrosoftAuthService::AuthState::kNone;
 }
 
+void NewTabPageHandler::OnFooterVisibilityUpdated() {
+  page_->FooterVisibilityUpdated(ntp_footer::WillShowManagementNotice(
+      GURL(chrome::kChromeUINewTabURL), web_contents_, profile_));
+}
+
 void NewTabPageHandler::ConnectToParentDocument(
     mojo::PendingRemote<new_tab_page::mojom::MicrosoftAuthUntrustedDocument>
         child_untrusted_document_remote) {
diff --git a/chrome/browser/ui/webui/new_tab_page/new_tab_page_handler.h b/chrome/browser/ui/webui/new_tab_page/new_tab_page_handler.h
index 325a30c..a477298 100644
--- a/chrome/browser/ui/webui/new_tab_page/new_tab_page_handler.h
+++ b/chrome/browser/ui/webui/new_tab_page/new_tab_page_handler.h
@@ -147,6 +147,7 @@
   void SetModulesVisible(bool visible) override;
   void SetModuleDisabled(const std::string& module_id, bool disabled) override;
   void UpdateDisabledModules() override;
+  void UpdateFooterVisibility() override;
   void OnModulesLoadedWithData(
       const std::vector<std::string>& module_ids) override;
   void OnModuleUsed(const std::string& module_id) override;
@@ -174,6 +175,8 @@
   void OnPromoLinkClicked() override;
   void IncrementComposeButtonShownCount() override;
 
+  void OnFooterVisibilityUpdated();
+
   void SetCustomizeChromeSidePanelControllerForTesting(
       customize_chrome::SidePanelController* side_panel_controller);
 
@@ -277,6 +280,7 @@
                      std::unique_ptr<network::SimpleURLLoader>>
       loader_map_;
   PrefChangeRegistrar pref_change_registrar_;
+  PrefChangeRegistrar local_state_pref_change_registrar_;
   raw_ptr<PromoService> promo_service_;
   raw_ptr<MicrosoftAuthService> microsoft_auth_service_;
   raw_ptr<OptimizationGuideKeyedService> optimization_guide_keyed_service_;
diff --git a/chrome/browser/ui/webui/new_tab_page/new_tab_page_handler_unittest.cc b/chrome/browser/ui/webui/new_tab_page/new_tab_page_handler_unittest.cc
index 2518bdd..cbd3d95 100644
--- a/chrome/browser/ui/webui/new_tab_page/new_tab_page_handler_unittest.cc
+++ b/chrome/browser/ui/webui/new_tab_page/new_tab_page_handler_unittest.cc
@@ -52,6 +52,8 @@
 #include "chrome/grit/generated_resources.h"
 #include "chrome/grit/theme_resources.h"
 #include "chrome/test/base/browser_with_test_window_test.h"
+#include "chrome/test/base/scoped_testing_local_state.h"
+#include "chrome/test/base/testing_browser_process.h"
 #include "chrome/test/base/testing_profile.h"
 #include "components/feature_engagement/public/event_constants.h"
 #include "components/feature_engagement/public/feature_constants.h"
@@ -87,6 +89,12 @@
 #include "ui/gfx/color_palette.h"
 #include "url/gurl.h"
 
+#if BUILDFLAG(IS_WIN) || BUILDFLAG(IS_MAC) || BUILDFLAG(IS_LINUX)
+#include "chrome/browser/enterprise/browser_management/management_service_factory.h"
+#include "chrome/browser/ui/ui_features.h"
+#include "components/policy/core/common/management/scoped_management_service_override_for_testing.h"
+#endif
+
 namespace {
 
 using testing::_;
@@ -117,6 +125,7 @@
   MOCK_METHOD(void, SetPromo, (new_tab_page::mojom::PromoPtr));
   MOCK_METHOD(void, ShowWebstoreToast, ());
   MOCK_METHOD(void, SetWallpaperSearchButtonVisibility, (bool));
+  MOCK_METHOD(void, FooterVisibilityUpdated, (bool));
   MOCK_METHOD(void,
               ConnectToParentDocument,
               (mojo::PendingRemote<
@@ -299,7 +308,8 @@
 class NewTabPageHandlerTest : public testing::Test {
  public:
   NewTabPageHandlerTest()
-      : profile_(
+      : testing_local_state_(TestingBrowserProcess::GetGlobal()),
+        profile_(
             MakeTestingProfile(test_url_loader_factory_.GetSafeWeakWrapper())),
         mock_ntp_custom_background_service_(profile_.get()),
         mock_promo_service_(*static_cast<MockPromoService*>(
@@ -392,6 +402,7 @@
   }
 
  protected:
+  ScopedTestingLocalState testing_local_state_;
   testing::NiceMock<MockPage> mock_page_;
   // NOTE: The initialization order of these members matters.
   content::BrowserTaskEnvironment task_environment_;
@@ -1416,3 +1427,59 @@
       GetDictPrefKeyCount(profile_.get(), prefs::kNtpModulesLoadedCountDict,
                           NewTabPageHandlerHaTSTest::kSampleModuleId));
 }
+
+class NewTabPageHandlerManagedTest : public NewTabPageHandlerTest {
+ public:
+  NewTabPageHandlerManagedTest() {
+#if BUILDFLAG(IS_WIN) || BUILDFLAG(IS_MAC) || BUILDFLAG(IS_LINUX)
+    feature_list_.InitWithFeatures(
+        /*enabled_features=*/{features::kEnterpriseBadgingForNtpFooter},
+        /*disabled_features=*/{});
+#endif
+  }
+
+ protected:
+  base::test::ScopedFeatureList feature_list_;
+};
+
+// Tests that `FooterVisibilityUpdated` is called with false by default.
+TEST_F(NewTabPageHandlerManagedTest,
+       FooterVisibilityUpdatedForUnmanagedBrowser) {
+  EXPECT_CALL(mock_page_, FooterVisibilityUpdated)
+      .WillOnce([](bool is_visible) { EXPECT_FALSE(is_visible); });
+  handler_->OnFooterVisibilityUpdated();
+
+  mock_page_.FlushForTesting();
+}
+
+#if BUILDFLAG(IS_WIN) || BUILDFLAG(IS_MAC) || BUILDFLAG(IS_LINUX)
+TEST_F(NewTabPageHandlerManagedTest, FooterVisibilityUpdatedForManagedBrowser) {
+  // Simulate browser management.
+  policy::ScopedManagementServiceOverrideForTesting
+      profile_supervised_management(
+          policy::ManagementServiceFactory::GetForProfile(profile_.get()),
+          policy::EnterpriseManagementAuthority::CLOUD_DOMAIN);
+
+  EXPECT_CALL(mock_page_, FooterVisibilityUpdated)
+      .WillOnce([](bool is_visible) { EXPECT_TRUE(is_visible); });
+  handler_->OnFooterVisibilityUpdated();
+
+  mock_page_.FlushForTesting();
+}
+
+TEST_F(NewTabPageHandlerManagedTest,
+       FooterVisibilityUpdatedForManagementFooterPolicy) {
+  policy::ScopedManagementServiceOverrideForTesting
+      profile_supervised_management(
+          policy::ManagementServiceFactory::GetForProfile(profile_.get()),
+          policy::EnterpriseManagementAuthority::CLOUD_DOMAIN);
+
+  EXPECT_CALL(mock_page_, FooterVisibilityUpdated)
+      .WillOnce([](bool is_visible) { EXPECT_FALSE(is_visible); });
+  testing_local_state_.Get()->SetBoolean(
+      prefs::kNTPFooterManagementNoticeEnabled, false);
+
+  mock_page_.FlushForTesting();
+  testing::Mock::VerifyAndClearExpectations(&mock_page_);
+}
+#endif  // BUILDFLAG(IS_WIN) || BUILDFLAG(IS_MAC) || BUILDFLAG(IS_LINUX)
diff --git a/chrome/browser/ui/webui/new_tab_page/new_tab_page_ui.cc b/chrome/browser/ui/webui/new_tab_page/new_tab_page_ui.cc
index 54906ef..466a778 100644
--- a/chrome/browser/ui/webui/new_tab_page/new_tab_page_ui.cc
+++ b/chrome/browser/ui/webui/new_tab_page/new_tab_page_ui.cc
@@ -19,6 +19,7 @@
 #include "base/values.h"
 #include "chrome/browser/browser_features.h"
 #include "chrome/browser/buildflags.h"
+#include "chrome/browser/enterprise/util/managed_browser_utils.h"
 #include "chrome/browser/new_tab_page/feature_promo_helper/new_tab_page_feature_promo_helper.h"
 #include "chrome/browser/new_tab_page/modules/file_suggestion/drive_service.h"
 #include "chrome/browser/new_tab_page/modules/file_suggestion/drive_suggestion_handler.h"
diff --git a/chrome/browser/ui/webui/settings/settings_clear_browsing_data_handler.cc b/chrome/browser/ui/webui/settings/settings_clear_browsing_data_handler.cc
index 4b0e5c6..207b236 100644
--- a/chrome/browser/ui/webui/settings/settings_clear_browsing_data_handler.cc
+++ b/chrome/browser/ui/webui/settings/settings_clear_browsing_data_handler.cc
@@ -32,13 +32,13 @@
 #include "chrome/browser/ui/toasts/toast_features.h"
 #include "chrome/browser/ui/views/frame/browser_view.h"
 #include "chrome/common/channel_info.h"
-#include "chrome/common/chrome_features.h"
 #include "chrome/common/url_constants.h"
 #include "chrome/grit/branded_strings.h"
 #include "chrome/grit/generated_resources.h"
 #include "components/browsing_data/content/browsing_data_helper.h"
 #include "components/browsing_data/core/browsing_data_utils.h"
 #include "components/browsing_data/core/cookie_or_cache_deletion_choice.h"
+#include "components/browsing_data/core/features.h"
 #include "components/browsing_data/core/history_notice_utils.h"
 #include "components/browsing_data/core/pref_names.h"
 #include "components/history/core/common/pref_names.h"
@@ -74,7 +74,8 @@
       browsing_data::prefs::kDeleteSiteSettings,
   };
 
-  if (!base::FeatureList::IsEnabled(features::kDbdRevampDesktop)) {
+  if (!base::FeatureList::IsEnabled(
+          browsing_data::features::kDbdRevampDesktop)) {
     counter_prefs_advanced.push_back(browsing_data::prefs::kDeletePasswords);
   }
 
@@ -84,7 +85,8 @@
 std::vector<std::string> GetBasicCounterPrefs() {
   std::vector<std::string> counter_prefs_basic = {};
 
-  if (!base::FeatureList::IsEnabled(features::kDbdRevampDesktop)) {
+  if (!base::FeatureList::IsEnabled(
+          browsing_data::features::kDbdRevampDesktop)) {
     counter_prefs_basic.push_back(browsing_data::prefs::kDeleteCacheBasic);
   }
 
diff --git a/chrome/browser/ui/webui/settings/settings_localized_strings_provider.cc b/chrome/browser/ui/webui/settings/settings_localized_strings_provider.cc
index e3dbfd3..ab5eb285 100644
--- a/chrome/browser/ui/webui/settings/settings_localized_strings_provider.cc
+++ b/chrome/browser/ui/webui/settings/settings_localized_strings_provider.cc
@@ -678,6 +678,8 @@
       l10n_util::GetStringFUTF16(
           IDS_CLEAR_BROWSING_DATA_PASSWORDS_NOTICE,
           l10n_util::GetStringUTF16(IDS_PASSWORDS_WEB_LINK)));
+  html_source->AddString("deleteBrowsingDataMyActivityUrl",
+                         chrome::kMyActivityUrlInClearBrowsingData);
 
 #if !BUILDFLAG(IS_CHROMEOS)
   html_source->AddBoolean(
diff --git a/chrome/browser/ui/webui/settings/settings_ui.cc b/chrome/browser/ui/webui/settings/settings_ui.cc
index 3858552..0b11755 100644
--- a/chrome/browser/ui/webui/settings/settings_ui.cc
+++ b/chrome/browser/ui/webui/settings/settings_ui.cc
@@ -97,6 +97,7 @@
 #include "components/autofill/core/browser/payments/payments_autofill_client.h"
 #include "components/autofill/core/browser/permissions/autofill_ai/autofill_ai_permission_utils.h"
 #include "components/autofill/core/common/autofill_features.h"
+#include "components/browsing_data/core/features.h"
 #include "components/commerce/core/commerce_feature_list.h"
 #include "components/commerce/core/feature_utils.h"
 #include "components/commerce/core/shopping_service.h"
@@ -623,7 +624,7 @@
   // Delete Browsing Data
   html_source->AddBoolean(
       "enableDeleteBrowsingDataRevamp",
-      base::FeatureList::IsEnabled(features::kDbdRevampDesktop));
+      base::FeatureList::IsEnabled(browsing_data::features::kDbdRevampDesktop));
 
   html_source->AddBoolean(
       "enableSupportForHomeAndWork",
diff --git a/chrome/build/android-arm32.pgo.txt b/chrome/build/android-arm32.pgo.txt
index c888bd5..a8023ea 100644
--- a/chrome/build/android-arm32.pgo.txt
+++ b/chrome/build/android-arm32.pgo.txt
@@ -1 +1 @@
-chrome-android32-main-1749793413-7daf7a2fc3724b067ec30357f24238042c6b45b4-cdfe1f2e8a7f0dda65e5575431ff3103b4984cc6.profdata
+chrome-android32-main-1749815741-b00984324b975981bd4ee00f45a888eb0c877176-41d4f9a106e824de554d27e7ce69ba8e9af88d7d.profdata
diff --git a/chrome/build/android-arm64.pgo.txt b/chrome/build/android-arm64.pgo.txt
index 952ca9a..cc8571f4 100644
--- a/chrome/build/android-arm64.pgo.txt
+++ b/chrome/build/android-arm64.pgo.txt
@@ -1 +1 @@
-chrome-android64-main-1749805554-27b6326e34ee53c654b2d59d077d7c21d7dd7f28-d2dad1bfa09a047f6c5c5be5ff1216295cf9babb.profdata
+chrome-android64-main-1749823703-25d10514e4efc5d5a3b3c470049ce4b68240c3d7-e5d4b16833d6e5cb5cee502d4121aaf7d9590ebe.profdata
diff --git a/chrome/build/linux.pgo.txt b/chrome/build/linux.pgo.txt
index 1ca32797..8fae6b8 100644
--- a/chrome/build/linux.pgo.txt
+++ b/chrome/build/linux.pgo.txt
@@ -1 +1 @@
-chrome-linux-main-1749793413-51a80ee7b88ffe8d73f1c96f006df2e20a8f5e99-cdfe1f2e8a7f0dda65e5575431ff3103b4984cc6.profdata
+chrome-linux-main-1749815741-f0f821698069e9a4a5f0eb93df7dec765059eeeb-41d4f9a106e824de554d27e7ce69ba8e9af88d7d.profdata
diff --git a/chrome/build/mac-arm.pgo.txt b/chrome/build/mac-arm.pgo.txt
index 464b314..089ade1a 100644
--- a/chrome/build/mac-arm.pgo.txt
+++ b/chrome/build/mac-arm.pgo.txt
@@ -1 +1 @@
-chrome-mac-arm-main-1749807913-66503ee708e795836d7879ae3df8020a431707d3-2ee6659a03b5abac00465b2d33057a576a5c593b.profdata
+chrome-mac-arm-main-1749822825-71fc881fe271ca85158115c644365b475ed1c4c1-bf4daf081d11984f792def98b21575b06d0777b9.profdata
diff --git a/chrome/build/win64.pgo.txt b/chrome/build/win64.pgo.txt
index 66cced1..a2db66e 100644
--- a/chrome/build/win64.pgo.txt
+++ b/chrome/build/win64.pgo.txt
@@ -1 +1 @@
-chrome-win64-main-1749707943-b38563202e315274065a88f87976809188e8c4c5-5067a80093ba5f12e9310ac472296e278e6cad8d.profdata
+chrome-win64-main-1749793413-ced3024d23fee09116a08584cf18eebb6868e5be-cdfe1f2e8a7f0dda65e5575431ff3103b4984cc6.profdata
diff --git a/chrome/common/chrome_features.cc b/chrome/common/chrome_features.cc
index 1bbe5f7..61784074 100644
--- a/chrome/common/chrome_features.cc
+++ b/chrome/common/chrome_features.cc
@@ -195,14 +195,6 @@
 #endif
 
 #if !BUILDFLAG(IS_ANDROID)
-// Enables a revamped Delete Browsing Data dialog. This includes UI changes and
-// removal of the bulk password deletion option from the dialog.
-BASE_FEATURE(kDbdRevampDesktop,
-             "DbdRevampDesktop",
-             base::FEATURE_DISABLED_BY_DEFAULT);
-#endif  // !BUILDFLAG(IS_ANDROID)
-
-#if !BUILDFLAG(IS_ANDROID)
 // Whether to allow installed-by-default web apps to be installed or not.
 BASE_FEATURE(kPreinstalledWebAppInstallation,
              "DefaultWebAppInstallation",
diff --git a/chrome/common/chrome_features.h b/chrome/common/chrome_features.h
index a7aadec..9242151 100644
--- a/chrome/common/chrome_features.h
+++ b/chrome/common/chrome_features.h
@@ -111,10 +111,6 @@
 #endif
 
 #if !BUILDFLAG(IS_ANDROID)
-COMPONENT_EXPORT(CHROME_FEATURES) BASE_DECLARE_FEATURE(kDbdRevampDesktop);
-#endif  // !BUILDFLAG(IS_ANDROID)
-
-#if !BUILDFLAG(IS_ANDROID)
 COMPONENT_EXPORT(CHROME_FEATURES)
 BASE_DECLARE_FEATURE(kPreinstalledWebAppInstallation);
 
diff --git a/chrome/renderer/actor/journal.cc b/chrome/renderer/actor/journal.cc
index fa2ae091..a8301f6 100644
--- a/chrome/renderer/actor/journal.cc
+++ b/chrome/renderer/actor/journal.cc
@@ -15,6 +15,30 @@
 constexpr base::TimeDelta kSendLogBufferDelay = base::Milliseconds(200);
 }  // namespace
 
+Journal::PendingAsyncEntry::PendingAsyncEntry(base::PassKey<Journal> pass_key,
+                                              base::SafeRef<Journal> journal,
+                                              TaskId task_id,
+                                              uint64_t trace_id,
+                                              std::string_view event_name)
+    : pass_key_(pass_key),
+      journal_(journal),
+      task_id_(task_id),
+      trace_id_(trace_id),
+      event_name_(event_name) {}
+
+Journal::PendingAsyncEntry::~PendingAsyncEntry() {
+  if (!terminated_) {
+    EndEntry("");
+  }
+}
+
+void Journal::PendingAsyncEntry::EndEntry(std::string_view details) {
+  CHECK(!terminated_);
+  terminated_ = true;
+  ACTOR_LOG() << "End " << event_name_ << ": " << details;
+  journal_->AddEndEvent(pass_key_, task_id_, trace_id_, event_name_, details);
+}
+
 Journal::Journal() : current_id_(base::RandUint64()) {}
 Journal::~Journal() {
   if (log_buffer_.size() > 0) {
@@ -39,6 +63,26 @@
   auto journal_entry = mojom::JournalEntry::New(
       mojom::JournalEntryType::kInstant, task_id, current_id_++,
       base::Time::Now(), std::string(event), std::string(details));
+
+  AddJournalEntry(std::move(journal_entry));
+}
+
+std::unique_ptr<Journal::PendingAsyncEntry> Journal::CreatePendingAsyncEntry(
+    TaskId task_id,
+    std::string_view event_name,
+    std::string_view details) {
+  ACTOR_LOG() << "Begin " << event_name << ": " << details;
+
+  uint64_t trace_id = current_id_++;
+  AddJournalEntry(mojom::JournalEntry::New(
+      mojom::JournalEntryType::kBegin, task_id, trace_id, base::Time::Now(),
+      std::string(event_name), std::string(details)));
+  return base::WrapUnique(new PendingAsyncEntry(base::PassKey<Journal>(),
+                                                weak_factory_.GetSafeRef(),
+                                                task_id, trace_id, event_name));
+}
+
+void Journal::AddJournalEntry(mojom::JournalEntryPtr journal_entry) {
   log_buffer_.push_back(std::move(journal_entry));
   if (log_buffer_.size() > 1) {
     // A delayed task has already been posted for sending the buffer contents.
@@ -56,6 +100,16 @@
   }
 }
 
+void Journal::AddEndEvent(base::PassKey<Journal> pass_key,
+                          TaskId task_id,
+                          uint64_t trace_id,
+                          const std::string& event_name,
+                          std::string_view details) {
+  AddJournalEntry(mojom::JournalEntry::New(mojom::JournalEntryType::kEnd,
+                                           task_id, trace_id, base::Time::Now(),
+                                           event_name, std::string(details)));
+}
+
 void Journal::SendLogBuffer() {
   last_log_buffer_send_ = base::TimeTicks::Now();
   if (client_) {
diff --git a/chrome/renderer/actor/journal.h b/chrome/renderer/actor/journal.h
index 3e769994..9ecef2a 100644
--- a/chrome/renderer/actor/journal.h
+++ b/chrome/renderer/actor/journal.h
@@ -5,8 +5,10 @@
 #ifndef CHROME_RENDERER_ACTOR_JOURNAL_H_
 #define CHROME_RENDERER_ACTOR_JOURNAL_H_
 
+#include "base/memory/safe_ref.h"
 #include "base/memory/weak_ptr.h"
 #include "base/time/time.h"
+#include "base/types/pass_key.h"
 #include "chrome/common/actor.mojom.h"
 #include "mojo/public/cpp/bindings/associated_remote.h"
 #include "mojo/public/cpp/bindings/pending_associated_remote.h"
@@ -28,10 +30,50 @@
   Journal();
   ~Journal();
 
+  // A pending async journal entry.
+  class PendingAsyncEntry {
+   public:
+    // Creation of the event is only from the Journal itself. Use
+    // `Journal::CreatePendingAsyncEntry` to create this object.
+    PendingAsyncEntry(base::PassKey<Journal>,
+                      base::SafeRef<Journal> journal,
+                      TaskId task_id,
+                      uint64_t trace_id,
+                      std::string_view event_name);
+    ~PendingAsyncEntry();
+
+    // End an pending entry with additional details. This can only be called
+    // once and will be automatically called from the destructor if it hasn't
+    // been called.
+    void EndEntry(std::string_view details);
+
+   private:
+    base::PassKey<Journal> pass_key_;
+    bool terminated_ = false;
+    base::SafeRef<Journal> journal_;
+    TaskId task_id_;
+    uint64_t trace_id_;
+    std::string event_name_;
+  };
+
   void Bind(mojo::PendingAssociatedRemote<mojom::JournalClient> client);
   void Log(TaskId task_id, std::string_view event, std::string_view details);
 
+  // Create an async entry. This will log a Begin Entry event and when the
+  // PendingAsyncEntry object is destroyed the End Entry will be logged.
+  std::unique_ptr<PendingAsyncEntry> CreatePendingAsyncEntry(
+      TaskId task_id,
+      std::string_view event_name,
+      std::string_view details);
+
+  void AddEndEvent(base::PassKey<Journal>,
+                   TaskId task_id,
+                   uint64_t trace_id,
+                   const std::string& event_name,
+                   std::string_view details);
+
  private:
+  void AddJournalEntry(mojom::JournalEntryPtr journal_entry);
   void SendLogBuffer();
 
   mojo::AssociatedRemote<mojom::JournalClient> client_;
diff --git a/chrome/renderer/actor/page_stability_monitor.cc b/chrome/renderer/actor/page_stability_monitor.cc
index ea02674..615d425 100644
--- a/chrome/renderer/actor/page_stability_monitor.cc
+++ b/chrome/renderer/actor/page_stability_monitor.cc
@@ -48,12 +48,17 @@
 
 }  // namespace
 
-PageStabilityMonitor::PageStabilityMonitor(RenderFrame& frame)
+PageStabilityMonitor::PageStabilityMonitor(RenderFrame& frame,
+                                           int32_t task_id,
+                                           Journal& journal)
     : RenderFrameObserver(&frame) {
   CHECK(render_frame());
   CHECK(render_frame()->GetWebFrame());
   starting_request_count_ =
       render_frame()->GetWebFrame()->GetDocument().ActiveResourceRequestCount();
+
+  journal_entry_ =
+      journal.CreatePendingAsyncEntry(task_id, "PageStability", "");
 }
 
 PageStabilityMonitor::~PageStabilityMonitor() = default;
@@ -140,27 +145,31 @@
           render_frame()->GetWebFrame()->LocalRoot()->FrameWidget();
       if (!widget->InsertVisualStateRequest(
               PostMoveToStateClosure(State::kInvokeCallback))) {
-        ACTOR_LOG() << "Failed to wait for new frame presentation due to no "
-                       "compositor.";
+        journal_entry_->EndEntry(
+            "Failed to wait for new frame presentation due to no "
+            "compositor.");
         MoveToState(State::kInvokeCallback);
       }
       break;
     }
     case State::kTimeoutGlobal: {
-      ACTOR_LOG() << "Timed out waiting for page stability.";
+      journal_entry_->EndEntry("Timed out waiting for page stability.");
       MoveToState(State::kInvokeCallback);
       break;
     }
     case State::kTimeoutMainThread: {
-      ACTOR_LOG() << "Timed out waiting for page stability - main thread to "
-                     "produce a thread.";
+      journal_entry_->EndEntry(
+          "Timed out waiting for page stability - main thread to "
+          "produce a thread.");
       MoveToState(State::kInvokeCallback);
       break;
     }
     case State::kInvokeCallback: {
       // Ensure we release the network idle callback slot.
       network_idle_callback_.Cancel();
-      std::move(is_stable_callback_).Run();
+      // Call the callback on a separate task.
+      base::SequencedTaskRunner::GetCurrentDefault()->PostTask(
+          FROM_HERE, std::move(is_stable_callback_));
       MoveToState(State::kDone);
       break;
     }
diff --git a/chrome/renderer/actor/page_stability_monitor.h b/chrome/renderer/actor/page_stability_monitor.h
index 505912af..7592ccc 100644
--- a/chrome/renderer/actor/page_stability_monitor.h
+++ b/chrome/renderer/actor/page_stability_monitor.h
@@ -8,6 +8,7 @@
 #include "base/cancelable_callback.h"
 #include "base/functional/callback_forward.h"
 #include "base/memory/weak_ptr.h"
+#include "chrome/renderer/actor/journal.h"
 #include "content/public/renderer/render_frame_observer.h"
 
 namespace content {
@@ -23,7 +24,9 @@
  public:
   // Constructs the monitor and takes a baseline observation of the document in
   // the given RenderFrame.
-  explicit PageStabilityMonitor(content::RenderFrame& frame);
+  PageStabilityMonitor(content::RenderFrame& frame,
+                       int32_t task_id,
+                       Journal& journal);
   ~PageStabilityMonitor() override;
 
   // Invokes the given callback when the page is deemed stable enough for an
@@ -91,6 +94,8 @@
 
   base::OnceClosure is_stable_callback_;
 
+  std::unique_ptr<Journal::PendingAsyncEntry> journal_entry_;
+
   base::WeakPtrFactory<PageStabilityMonitor> weak_ptr_factory_{this};
 };
 
diff --git a/chrome/renderer/actor/tool_executor.cc b/chrome/renderer/actor/tool_executor.cc
index 3093cb06..f72e7bd 100644
--- a/chrome/renderer/actor/tool_executor.cc
+++ b/chrome/renderer/actor/tool_executor.cc
@@ -101,7 +101,8 @@
 
   journal_->Log(request->task_id, "Renderer InvokeTool", tool->DebugString());
 
-  page_stability_monitor_ = std::make_unique<PageStabilityMonitor>(*frame_);
+  page_stability_monitor_ = std::make_unique<PageStabilityMonitor>(
+      *frame_, request->task_id, *journal_);
 
   mojom::ActionResultPtr result = tool->Execute();
 
@@ -111,6 +112,7 @@
 
 void ToolExecutor::ToolFinished(mojom::ActionResultPtr result) {
   CHECK(completion_callback_);
+  page_stability_monitor_.reset();
   std::move(completion_callback_).Run(std::move(result));
 }
 
diff --git a/chrome/test/BUILD.gn b/chrome/test/BUILD.gn
index 6281ef7..afd738f 100644
--- a/chrome/test/BUILD.gn
+++ b/chrome/test/BUILD.gn
@@ -8002,12 +8002,7 @@
       "../browser/ui/passwords/bubble_controllers/common_saved_account_manager_bubble_controller_unittest.cc",
       "../browser/ui/passwords/bubble_controllers/manage_passwords_bubble_controller_unittest.cc",
       "../browser/ui/passwords/bubble_controllers/move_to_account_store_bubble_controller_unittest.cc",
-      "../browser/ui/passwords/bubble_controllers/password_change/failed_password_change_bubble_controller_unittest.cc",
-      "../browser/ui/passwords/bubble_controllers/password_change/no_password_change_form_bubble_controller_unittest.cc",
-      "../browser/ui/passwords/bubble_controllers/password_change/otp_during_password_change_bubble_controller_unittest.cc",
       "../browser/ui/passwords/bubble_controllers/password_change/password_change_credential_leak_bubble_controller_unittest.cc",
-      "../browser/ui/passwords/bubble_controllers/password_change/password_change_info_bubble_controller_unittest.cc",
-      "../browser/ui/passwords/bubble_controllers/password_change/privacy_notice_bubble_view_controller_unittest.cc",
       "../browser/ui/passwords/bubble_controllers/password_change/successful_password_change_bubble_controller_unittest.cc",
       "../browser/ui/passwords/bubble_controllers/post_save_compromised_bubble_controller_unittest.cc",
       "../browser/ui/passwords/bubble_controllers/save_unsynced_credentials_locally_bubble_controller_unittest.cc",
@@ -8061,13 +8056,8 @@
       "../browser/ui/views/passwords/move_to_account_store_bubble_view_unittest.cc",
       "../browser/ui/views/passwords/password_bubble_view_test_base.cc",
       "../browser/ui/views/passwords/password_bubble_view_test_base.h",
-      "../browser/ui/views/passwords/password_change/failed_password_change_view_unittest.cc",
-      "../browser/ui/views/passwords/password_change/no_password_change_form_view_unittest.cc",
-      "../browser/ui/views/passwords/password_change/otp_during_password_change_view_unittest.cc",
       "../browser/ui/views/passwords/password_change/password_change_credential_leak_bubble_view_unittest.cc",
-      "../browser/ui/views/passwords/password_change/password_change_info_bubble_view_unittest.cc",
       "../browser/ui/views/passwords/password_change/password_change_toast_unittest.cc",
-      "../browser/ui/views/passwords/password_change/privacy_notice_view_unittest.cc",
       "../browser/ui/views/passwords/password_change/successful_password_change_view_unittest.cc",
       "../browser/ui/views/passwords/password_save_unsynced_credentials_locally_view_unittest.cc",
       "../browser/ui/views/passwords/password_save_update_view_unittest.cc",
@@ -11536,7 +11526,6 @@
         "../browser/ui/views/passwords/manage_passwords_icon_view_interactive_uitest.cc",
         "../browser/ui/views/passwords/manage_passwords_page_action_controller_interactive_uitest.cc",
         "../browser/ui/views/passwords/password_bubble_interactive_uitest.cc",
-        "../browser/ui/views/passwords/password_change/password_change_icon_views_interactive_ui_test.cc",
         "../browser/ui/views/performance_controls/memory_saver_interactive_ui_test.cc",
         "../browser/ui/views/performance_controls/memory_saver_iph_interactive_uitest.cc",
         "../browser/ui/views/performance_controls/performance_intervention_interactive_ui_test.cc",
diff --git a/chrome/test/android/javatests/src/org/chromium/chrome/test/util/browser/tabmodel/MockTabCreator.java b/chrome/test/android/javatests/src/org/chromium/chrome/test/util/browser/tabmodel/MockTabCreator.java
index b61822b..b79b4db 100644
--- a/chrome/test/android/javatests/src/org/chromium/chrome/test/util/browser/tabmodel/MockTabCreator.java
+++ b/chrome/test/android/javatests/src/org/chromium/chrome/test/util/browser/tabmodel/MockTabCreator.java
@@ -57,7 +57,7 @@
             @TabLaunchType int type,
             Tab parent,
             int position) {
-        Tab tab =
+        MockTab tab =
                 new MockTab(
                         Tab.INVALID_TAB_ID,
                         mSelector.getModel(mIsIncognito).getProfile(),
@@ -65,6 +65,7 @@
         tab.getUserDataHost().setUserData(MockTabAttributes.class, new MockTabAttributes(false));
         TabTestUtils.initialize(
                 tab, null, null, loadUrlParams, title, null, null, false, null, false);
+        tab.setIsInitialized(true);
         mSelector
                 .getModel(mIsIncognito)
                 .addTab(tab, position, type, TabCreationState.LIVE_IN_FOREGROUND);
@@ -74,7 +75,7 @@
 
     @Override
     public Tab createFrozenTab(TabState state, int id, int index) {
-        Tab tab =
+        MockTab tab =
                 new MockTab(
                         id,
                         mSelector.getModel(mIsIncognito).getProfile(),
@@ -82,6 +83,7 @@
         tab.getUserDataHost().setUserData(MockTabAttributes.class, new MockTabAttributes(true));
         if (state != null) TabTestUtils.restoreFieldsFromState(tab, state);
         TabTestUtils.initialize(tab, null, null, null, null, null, null, false, null, false);
+        tab.setIsInitialized(true);
         mSelector
                 .getModel(mIsIncognito)
                 .addTab(tab, index, TabLaunchType.FROM_RESTORE, TabCreationState.FROZEN_ON_RESTORE);
diff --git a/chrome/test/android/javatests/src/org/chromium/chrome/test/util/browser/tabmodel/MockTabModelSelector.java b/chrome/test/android/javatests/src/org/chromium/chrome/test/util/browser/tabmodel/MockTabModelSelector.java
index d0e4287..3049f00 100644
--- a/chrome/test/android/javatests/src/org/chromium/chrome/test/util/browser/tabmodel/MockTabModelSelector.java
+++ b/chrome/test/android/javatests/src/org/chromium/chrome/test/util/browser/tabmodel/MockTabModelSelector.java
@@ -4,20 +4,17 @@
 
 package org.chromium.chrome.test.util.browser.tabmodel;
 
-import org.chromium.base.supplier.Supplier;
 import org.chromium.chrome.browser.profiles.Profile;
 import org.chromium.chrome.browser.tab.MockTab;
 import org.chromium.chrome.browser.tab.Tab;
 import org.chromium.chrome.browser.tab.TabLaunchType;
 import org.chromium.chrome.browser.tabmodel.IncognitoTabModelInternal;
-import org.chromium.chrome.browser.tabmodel.PassthroughTabUngrouper;
-import org.chromium.chrome.browser.tabmodel.TabGroupModelFilter;
 import org.chromium.chrome.browser.tabmodel.TabModel;
+import org.chromium.chrome.browser.tabmodel.TabModelHolderFactory;
 import org.chromium.chrome.browser.tabmodel.TabModelInternal;
 import org.chromium.chrome.browser.tabmodel.TabModelSelector;
 import org.chromium.chrome.browser.tabmodel.TabModelSelectorBase;
 import org.chromium.chrome.browser.tabmodel.TabModelUtils;
-import org.chromium.chrome.browser.tabmodel.TabUngrouper;
 import org.chromium.content_public.browser.LoadUrlParams;
 
 /**
@@ -38,9 +35,10 @@
             MockTabModel.MockTabModelDelegate delegate) {
         super(null, false);
         initialize(
-                new MockTabModel(profile, delegate),
-                new MockTabModel(incognitoProfile, delegate),
-                MockTabModelSelector::createTabUngrouper);
+                TabModelHolderFactory.createTabModelHolderForTesting(
+                        new MockTabModel(profile, delegate)),
+                TabModelHolderFactory.createIncognitoTabModelHolderForTesting(
+                        new MockTabModel(incognitoProfile, delegate)));
         for (int i = 0; i < tabCount; i++) {
             addMockTab();
         }
@@ -63,7 +61,9 @@
             TabModelInternal normalModel, IncognitoTabModelInternal incognitoModel) {
         destroy();
         getTabGroupModelFilterProvider().resetTabGroupModelFilterListForTesting();
-        initialize(normalModel, incognitoModel, MockTabModelSelector::createTabUngrouper);
+        initialize(
+                TabModelHolderFactory.createTabModelHolderForTesting(normalModel),
+                TabModelHolderFactory.createIncognitoTabModelHolderForTesting(incognitoModel));
     }
 
     private static int nextIdOffset() {
@@ -103,9 +103,4 @@
     public MockTab getCurrentTab() {
         return (MockTab) super.getCurrentTab();
     }
-
-    private static TabUngrouper createTabUngrouper(
-            boolean isIncognitoBranded, Supplier<TabGroupModelFilter> tabGroupModelFilterSupplier) {
-        return new PassthroughTabUngrouper(tabGroupModelFilterSupplier);
-    }
 }
diff --git a/chrome/test/data/extensions/api_test/cookies/events/test.js b/chrome/test/data/extensions/api_test/cookies/events/test.js
index fde6f9e0..5b14876b7 100644
--- a/chrome/test/data/extensions/api_test/cookies/events/test.js
+++ b/chrome/test/data/extensions/api_test/cookies/events/test.js
@@ -127,5 +127,37 @@
       value: '43',
       expirationDate: 1
     });
-  }
+  },
+  // Regression test for https://crbug.com/423096904.
+  function overwriteNoChange() {
+    var eventsObserved = 0;
+    var cookieOpts = {
+      url: 'http://a.com/path',
+      name: 'testOverwrite',
+      value: '42',
+      expirationDate: TEST_EXPIRATION_DATE
+    };
+    var done = chrome.test.listenForever(
+        chrome.cookies.onChanged,
+        function (info) {
+          eventsObserved++;
+          if (eventsObserved === 1) {
+            chrome.test.assertEq('explicit', info.cause);
+            chrome.test.assertEq(OVERWRITE_COOKIE_PRE, info.cookie);
+            chrome.test.assertFalse(info.removed);
+            // Overwrite with an exact duplicate cookie.
+            chrome.cookies.set(cookieOpts);
+          } else if (eventsObserved === 2) {
+            chrome.test.assertEq('overwrite', info.cause);
+            chrome.test.assertEq(OVERWRITE_COOKIE_PRE, info.cookie);
+            chrome.test.assertTrue(info.removed);
+          } else if (eventsObserved === 3) {
+            chrome.test.assertEq('explicit', info.cause);
+            chrome.test.assertEq(OVERWRITE_COOKIE_PRE, info.cookie);
+            chrome.test.assertFalse(info.removed);
+            done();
+          }
+        });
+    chrome.cookies.set(cookieOpts);
+  },
 ]);
diff --git a/chrome/test/data/webui/BUILD.gn b/chrome/test/data/webui/BUILD.gn
index ba48f650..a9cd3a98 100644
--- a/chrome/test/data/webui/BUILD.gn
+++ b/chrome/test/data/webui/BUILD.gn
@@ -209,6 +209,7 @@
       "//chrome/browser/ui/webui/whats_new",
       "//components/bookmarks/browser",
       "//components/bookmarks/managed",
+      "//components/browsing_data/core",
       "//components/commerce/core:account_checker_test_support",
       "//components/commerce/core:feature_list",
       "//components/commerce/core:shopping_service_test_support",
diff --git a/chrome/test/data/webui/cr_components/searchbox/searchbox_test.ts b/chrome/test/data/webui/cr_components/searchbox/searchbox_test.ts
index 323dd9f2..8b35501 100644
--- a/chrome/test/data/webui/cr_components/searchbox/searchbox_test.ts
+++ b/chrome/test/data/webui/cr_components/searchbox/searchbox_test.ts
@@ -25,6 +25,13 @@
   SELECTED = 'selected',
 }
 
+interface ComposeClickEventDetail {
+  button: number;
+  ctrlKey: boolean;
+  metaKey: boolean;
+  shiftKey: boolean;
+}
+
 function createClipboardEvent(name: string): ClipboardEvent {
   return new ClipboardEvent(
       name, {cancelable: true, clipboardData: new DataTransfer()});
@@ -338,7 +345,22 @@
     const composeButton =
         realbox.shadowRoot!.querySelector<HTMLElement>('#composeButton');
     assertTrue(!!composeButton);
-    composeButton.click();
+
+    // Dispatch the 'compose-click' event directly, which cr-searchbox
+    // listens for. This simulates the `cr-searchbox-compose-button`
+    // child `cr-button` being clicked and its `onClick_` function being
+    // called.
+    const eventDetail: ComposeClickEventDetail = {
+      button: 0,
+      ctrlKey: false,
+      metaKey: false,
+      shiftKey: false,
+    };
+    composeButton.dispatchEvent(new CustomEvent('compose-click', {
+      detail: eventDetail,
+      bubbles: true,
+      composed: true,
+    }));
 
     // Assert.
     await whenOpenComposeBox;
diff --git a/chrome/test/data/webui/new_tab_page/app_test.ts b/chrome/test/data/webui/new_tab_page/app_test.ts
index 4cef81db..0496b70 100644
--- a/chrome/test/data/webui/new_tab_page/app_test.ts
+++ b/chrome/test/data/webui/new_tab_page/app_test.ts
@@ -1065,7 +1065,7 @@
         assertEquals(
             1, handler.getCallCount('incrementComposeButtonShownCount'));
       });
-      test('compose entry point emits histograms when clicked', () => {
+      test('compose entry point emits histograms when clicked', async () => {
         // Assert compose button is present.
         const searchboxContainer = app.shadowRoot.querySelector('cr-searchbox');
         assertTrue(!!searchboxContainer);
@@ -1074,7 +1074,23 @@
                 '#composeButton');
         assertTrue(!!composeButton);
 
-        composeButton.click();
+        // Dispatch the 'compose-click' event directly, which cr-searchbox
+        // listens for. This simulates the `cr-searchbox-compose-button`
+        // child `cr-button` being clicked and its `onClick_` function being
+        // called.
+        composeButton.dispatchEvent(new CustomEvent('compose-click', {
+          detail: {
+            button: 0,
+            ctrlKey: false,
+            metaKey: false,
+            shiftKey: false,
+          },
+          bubbles: true,
+          composed: true,
+        }));
+
+        await microtasksFinished();
+
         // Metric should be recorded without user text present.
         assertEquals(
             1,
@@ -1100,7 +1116,21 @@
             searchboxContainer.shadowRoot!
                 .querySelector<HTMLInputElement>('#input')!.value = 'hello';
 
-            composeButton.click();
+            // Dispatch the 'compose-click' event directly, which cr-searchbox
+            // listens for. This simulates the `cr-searchbox-compose-button`
+            // child `cr-button` being clicked and its `onClick_` function being
+            // called.
+            composeButton.dispatchEvent(new CustomEvent('compose-click', {
+              detail: {
+                button: 0,
+                ctrlKey: false,
+                metaKey: false,
+                shiftKey: false,
+              },
+              bubbles: true,
+              composed: true,
+            }));
+
             // Metric should be recorded with user text present.
             assertEquals(
                 1,
@@ -1600,4 +1630,38 @@
               });
             }));
   });
+
+  suite('NewTabFooter', () => {
+    test('hide/show customize chrome and attribution buttons', async () => {
+      // Arrange.
+      const theme = createTheme();
+      theme.backgroundImageAttribution1 = 'foo';
+      theme.backgroundImageAttribution2 = 'bar';
+      theme.backgroundImageAttributionUrl = {url: 'https://info.com'};
+      callbackRouterRemote.setTheme(theme);
+      await callbackRouterRemote.$.flushForTesting();
+
+      // Assert default state of the buttons.
+      assertTrue(!!$$(app, '#customizeButtons'));
+      assertTrue(!!$$(app, '#backgroundImageAttribution'));
+
+      // Act.
+      callbackRouterRemote.footerVisibilityUpdated(true);
+      await callbackRouterRemote.$.flushForTesting();
+      await microtasksFinished();
+
+      // Assert.
+      assertFalse(!!$$(app, '#customizeButtons'));
+      assertFalse(!!$$(app, '#backgroundImageAttribution'));
+
+      // Act.
+      callbackRouterRemote.footerVisibilityUpdated(false);
+      await callbackRouterRemote.$.flushForTesting();
+      await microtasksFinished();
+
+      // Assert.
+      assertTrue(!!$$(app, '#customizeButtons'));
+      assertTrue(!!$$(app, '#backgroundImageAttribution'));
+    });
+  });
 });
diff --git a/chrome/test/data/webui/new_tab_page/new_tab_page_browsertest.cc b/chrome/test/data/webui/new_tab_page/new_tab_page_browsertest.cc
index 02dfbfa..5115a99c 100644
--- a/chrome/test/data/webui/new_tab_page/new_tab_page_browsertest.cc
+++ b/chrome/test/data/webui/new_tab_page/new_tab_page_browsertest.cc
@@ -230,6 +230,11 @@
           "runMochaSuite('NewTabPageAppTest MicrosoftAuth')");
 }
 
+IN_PROC_BROWSER_TEST_F(NewTabPageAppTest, NewTabFooter) {
+  RunTest("new_tab_page/app_test.js",
+          "runMochaSuite('NewTabPageAppTest NewTabFooter')");
+}
+
 class NewTabPageModulesMostRelevantTabResumptionModuleTest
     : public NewTabPageBrowserTest {
  protected:
diff --git a/chrome/test/data/webui/privacy_sandbox/internals/privacy_sandbox_internals_test.ts b/chrome/test/data/webui/privacy_sandbox/internals/privacy_sandbox_internals_test.ts
index a097853..ec85c20a 100644
--- a/chrome/test/data/webui/privacy_sandbox/internals/privacy_sandbox_internals_test.ts
+++ b/chrome/test/data/webui/privacy_sandbox/internals/privacy_sandbox_internals_test.ts
@@ -159,6 +159,12 @@
     assertEquals(span.textContent, s);
   };
 
+  const assertJsonValue = (s: string) => {
+    const jsonValueElement = valueElement.$('#json-value');
+    assertTrue(!!jsonValueElement);
+    assertEquals(jsonValueElement.textContent, s);
+  };
+
   test('null', () => {
     v.nullValue = 1;
     valueElement.configure(v);
@@ -229,8 +235,9 @@
       return v;
     });
     valueElement.configure(v);
-    assertValue(
-        '[{"intValue":1},{"intValue":2},{"intValue":3},{"intValue":4}]');
+    assertJsonValue(JSON.stringify(
+        [{'intValue': 1}, {'intValue': 2}, {'intValue': 3}, {'intValue': 4}],
+        null, 2));
     assertType('(list)');
   });
 
@@ -242,7 +249,54 @@
     v2.stringValue = 'bikes';
     v.dictionaryValue.storage = {'v1': v1, 'v2': v2};
     valueElement.configure(v);
-    assertValue('{"v1":{"intValue":10},"v2":{"stringValue":"bikes"}}');
+    assertJsonValue(JSON.stringify(
+        {'v1': {'intValue': 10}, 'v2': {'stringValue': 'bikes'}}, null, 2));
+    assertType('(dictionary)');
+  });
+
+  test('flattens list with nested dictionary', () => {
+    const vDict = {} as DictionaryValue;
+    const v1: Value = {} as Value;
+    v1.intValue = 10;
+    const v2: Value = {} as Value;
+    v2.stringValue = 'bikes';
+    vDict.storage = {'v1': v1, 'v2': v2};
+
+    v.listValue = {} as ListValue;
+    v.listValue.storage = [
+      {dictionaryValue: vDict} as Value,
+    ];
+
+    valueElement.configure(v);
+    assertJsonValue(JSON.stringify(
+        [{'v1': {'intValue': 10}, 'v2': {'stringValue': 'bikes'}}], null, 2));
+    assertType('(list)');
+  });
+
+  test('flattens dictionary with nested list', () => {
+    const vList = {} as ListValue;
+    vList.storage = [1, 2, 3, 4].map((x) => {
+      const v: Value = {} as Value;
+      v.intValue = x;
+      return v;
+    });
+
+    v.dictionaryValue = {} as DictionaryValue;
+    v.dictionaryValue.storage = {
+      'someKey': {listValue: vList} as Value,
+    };
+
+    valueElement.configure(v);
+    assertJsonValue(JSON.stringify(
+        {
+          'someKey': [
+            {'intValue': 1},
+            {'intValue': 2},
+            {'intValue': 3},
+            {'intValue': 4},
+          ],
+        },
+        null, 2));
     assertType('(dictionary)');
   });
 
diff --git a/chrome/test/data/webui/settings/DEPS b/chrome/test/data/webui/settings/DEPS
index d57fe38d..9f43648 100644
--- a/chrome/test/data/webui/settings/DEPS
+++ b/chrome/test/data/webui/settings/DEPS
@@ -1,4 +1,5 @@
 include_rules = [
+  "+components/browsing_data/core",
   "+components/safe_browsing/core/common",
   "+device/fido/features.h",
 ]
\ No newline at end of file
diff --git a/chrome/test/data/webui/settings/other_google_data_dialog_test.ts b/chrome/test/data/webui/settings/other_google_data_dialog_test.ts
index c8d97cd..5382443b1 100644
--- a/chrome/test/data/webui/settings/other_google_data_dialog_test.ts
+++ b/chrome/test/data/webui/settings/other_google_data_dialog_test.ts
@@ -5,9 +5,10 @@
 import 'chrome://settings/lazy_load.js';
 
 import type {SettingsOtherGoogleDataDialogElement} from 'chrome://settings/lazy_load.js';
-import {PasswordManagerImpl, PasswordManagerPage} from 'chrome://settings/settings.js';
+import {loadTimeData, OpenWindowProxyImpl, PasswordManagerImpl, PasswordManagerPage} from 'chrome://settings/settings.js';
 import {assertEquals} from 'chrome://webui-test/chai_assert.js';
 import {flushTasks} from 'chrome://webui-test/polymer_test_util.js';
+import {TestOpenWindowProxy} from 'chrome://webui-test/test_open_window_proxy.js';
 
 import {TestPasswordManagerProxy} from './test_password_manager_proxy.js';
 
@@ -15,11 +16,15 @@
 suite('OtherGoogleDataDialog', function() {
   let dialog: SettingsOtherGoogleDataDialogElement;
   let passwordManagerProxy: TestPasswordManagerProxy;
+  let testOpenWindowProxy: TestOpenWindowProxy;
 
   setup(function() {
     passwordManagerProxy = new TestPasswordManagerProxy();
     PasswordManagerImpl.setInstance(passwordManagerProxy);
 
+    testOpenWindowProxy = new TestOpenWindowProxy();
+    OpenWindowProxyImpl.setInstance(testOpenWindowProxy);
+
     document.body.innerHTML = window.trustedTypes!.emptyHTML;
     dialog = document.createElement('settings-other-google-data-dialog');
     document.body.appendChild(dialog);
@@ -33,4 +38,12 @@
         PasswordManagerPage.PASSWORDS,
         await passwordManagerProxy.whenCalled('showPasswordManager'));
   });
+
+  test('MyActivityLinkClick', async function() {
+    dialog.$.myActivityLink.click();
+
+    const url = await testOpenWindowProxy.whenCalled('openUrl');
+    assertEquals(
+        loadTimeData.getString('deleteBrowsingDataMyActivityUrl'), url);
+  });
 });
diff --git a/chrome/test/data/webui/settings/settings_browsertest.cc b/chrome/test/data/webui/settings/settings_browsertest.cc
index 74a7454..8e88c43 100644
--- a/chrome/test/data/webui/settings/settings_browsertest.cc
+++ b/chrome/test/data/webui/settings/settings_browsertest.cc
@@ -11,6 +11,7 @@
 #include "chrome/common/chrome_features.h"
 #include "chrome/common/webui_url_constants.h"
 #include "chrome/test/base/web_ui_mocha_browser_test.h"
+#include "components/browsing_data/core/features.h"
 #include "components/compose/buildflags.h"
 #include "components/compose/core/browser/compose_features.h"
 #include "components/content_settings/core/common/features.h"
@@ -811,7 +812,7 @@
 class SettingsClearBrowsingDataV2Test : public SettingsBrowserTest {
  private:
   base::test::ScopedFeatureList scoped_feature_list_{
-      features::kDbdRevampDesktop};
+      browsing_data::features::kDbdRevampDesktop};
 };
 
 #if !BUILDFLAG(IS_CHROMEOS)
@@ -1144,7 +1145,7 @@
 #if BUILDFLAG(IS_CHROMEOS)
             blink::features::kWebPrinting,
 #endif
-            features::kDbdRevampDesktop,
+            browsing_data::features::kDbdRevampDesktop,
             privacy_sandbox::kPrivacySandboxRelatedWebsiteSetsUi,
             permissions::features::kPermissionSiteSettingsRadioButton,
             privacy_sandbox::kFingerprintingProtectionUx,
diff --git a/chromeos/strings/chromeos_strings_ja.xtb b/chromeos/strings/chromeos_strings_ja.xtb
index 6b679ad3..5183670 100644
--- a/chromeos/strings/chromeos_strings_ja.xtb
+++ b/chromeos/strings/chromeos_strings_ja.xtb
@@ -948,7 +948,7 @@
 <translation id="5145331109270917438">更新日</translation>
 <translation id="5154917547274118687">メモリ</translation>
 <translation id="5160857336552977725"><ph name="DEVICE_TYPE" /> にログインしてください</translation>
-<translation id="5168185087976003268">電池の状態</translation>
+<translation id="5168185087976003268">バッテリー ヘルス</translation>
 <translation id="5170568018924773124">フォルダを開く</translation>
 <translation id="517075088756846356">更新プロセスを続行するには、<ph name="DEVICE_NAME" /> の電源ケーブルを取り外してから、もう一度差し込んでください</translation>
 <translation id="5180108905184566358">バオバブの木々</translation>
diff --git a/chromeos/strings/chromeos_strings_pt-BR.xtb b/chromeos/strings/chromeos_strings_pt-BR.xtb
index 825ccf54..bb2a394 100644
--- a/chromeos/strings/chromeos_strings_pt-BR.xtb
+++ b/chromeos/strings/chromeos_strings_pt-BR.xtb
@@ -1086,7 +1086,7 @@
 <translation id="5856267793478861942"><ph name="ATTACH" /> (<ph name="IA" />)</translation>
 <translation id="5859603669299126575">Álbum da galeria de arte</translation>
 <translation id="5859969039821714932">Atalho indisponível. Pressione um novo atalho sem <ph name="KEY" />.</translation>
-<translation id="5860033963881614850">Desativada</translation>
+<translation id="5860033963881614850">Desativado</translation>
 <translation id="5860491529813859533">Ativar</translation>
 <translation id="586463370326011345">raio</translation>
 <translation id="5875913454160982848">Baixar modelo de transcrição</translation>
@@ -1520,7 +1520,7 @@
 <translation id="7683228889864052081">matiz do teclado</translation>
 <translation id="7690294790491645610">Confirmar nova senha</translation>
 <translation id="7696506367342213250">colinas de argila</translation>
-<translation id="7701040980221191251">Não há</translation>
+<translation id="7701040980221191251">Nenhum</translation>
 <translation id="7705524343798198388">VPN</translation>
 <translation id="7716280709122323042">WPA3</translation>
 <translation id="7718231387947923843">luz do teclado</translation>
diff --git a/clank b/clank
index 495257e..165e124 160000
--- a/clank
+++ b/clank
@@ -1 +1 @@
-Subproject commit 495257e25198d1739ddaddd2f1c63e98e0d107e5
+Subproject commit 165e1245942c2ba6c05b06533aad7e66d94d1209
diff --git a/components/BUILD.gn b/components/BUILD.gn
index e17f6cb..e8b6bff 100644
--- a/components/BUILD.gn
+++ b/components/BUILD.gn
@@ -262,6 +262,7 @@
     "//components/ntp_tiles:unit_tests",
     "//components/offline_items_collection/core:unit_tests",
     "//components/omnibox/browser:unit_tests",
+    "//components/omnibox/composebox:unit_tests",
     "//components/open_from_clipboard:unit_tests",
     "//components/openscreen_platform:unittests",
     "//components/optimization_guide/core:unit_tests",
diff --git a/components/autofill/core/browser/form_parsing/internal_resources b/components/autofill/core/browser/form_parsing/internal_resources
index f7b8bc9..b0d7376 160000
--- a/components/autofill/core/browser/form_parsing/internal_resources
+++ b/components/autofill/core/browser/form_parsing/internal_resources
@@ -1 +1 @@
-Subproject commit f7b8bc92167cb6a44875b51cdee3df2e664ba21f
+Subproject commit b0d7376c49e618262acef6723c9dbdc7c41d31e8
diff --git a/components/autofill/core/browser/foundations/browser_autofill_manager.cc b/components/autofill/core/browser/foundations/browser_autofill_manager.cc
index be7f36eb..2c7af70 100644
--- a/components/autofill/core/browser/foundations/browser_autofill_manager.cc
+++ b/components/autofill/core/browser/foundations/browser_autofill_manager.cc
@@ -458,8 +458,7 @@
   }
 }
 
-bool ShouldOfferSingleFieldFill(const FormFieldData& field,
-                                const AutofillField* autofill_field,
+bool ShouldOfferSingleFieldFill(const AutofillField* autofill_field,
                                 AutofillSuggestionTriggerSource trigger_source,
                                 SuppressReason suppress_reason) {
   if (trigger_source ==
@@ -977,9 +976,9 @@
   // Log events when user edits the field.
   // If the user types into the same field multiple times, repeated
   // TypingFieldLogEvents are coalesced.
-  const FormFieldData& field = CHECK_DEREF(form.FindFieldByGlobalId(field_id));
   autofill_field->AppendLogEventIfNotRepeated(TypingFieldLogEvent{
-      .has_value_after_typing = ToOptionalBoolean(!field.value().empty())});
+      .has_value_after_typing =
+          ToOptionalBoolean(!autofill_field->value().empty())});
 
   UpdatePendingForm(form);
 
@@ -994,7 +993,7 @@
     autofill_field->set_is_autofilled(false);
     autofill_field->set_previously_autofilled(true);
     if (logger) {
-      logger->OnEditedAutofilledField(field.global_id());
+      logger->OnEditedAutofilledField(autofill_field->global_id());
     }
     if (AutofillAiDelegate* delegate = client().GetAutofillAiDelegate();
         delegate &&
@@ -1004,7 +1003,7 @@
     }
   } else {
     if (logger) {
-      logger->OnEditedNonFilledField(field.global_id());
+      logger->OnEditedNonFilledField(autofill_field->global_id());
     }
   }
   UpdateInitialInteractionTimestamp(timestamp);
@@ -1442,7 +1441,7 @@
   // Whether or not to request single field form fill suggestions.
   const bool should_offer_single_field_form_fill =
       should_offer_other_suggestions &&
-      ShouldOfferSingleFieldFill(field, autofill_field, trigger_source,
+      ShouldOfferSingleFieldFill(autofill_field, trigger_source,
                                  context.suppress_reason);
 
   // Whether or not to show plus address suggestions.
@@ -1744,7 +1743,7 @@
   if (action_persistence == mojom::ActionPersistence::kFill &&
       type == SuggestionType::kLoyaltyCardEntry) {
     metrics_->loyalty_card_form_event_logger.OnDidFillSuggestion(
-        *autofill_field);
+        *form_structure, *autofill_field);
   }
 }
 
@@ -2294,8 +2293,7 @@
                              &form_structure, &autofill_field)) {
     return;
   }
-  AnalyzeJavaScriptChangedAutofilledValue(*form_structure, *autofill_field,
-                                          field.value().empty());
+  AnalyzeJavaScriptChangedAutofilledValue(*form_structure, *autofill_field);
   form_filler_->MaybeTriggerRefill(
       form, *form_structure, RefillTriggerReason::kExpirationDateFormatted,
       AutofillTriggerSource::kJavaScriptChangedAutofilledValue, field,
@@ -2396,12 +2394,11 @@
 
 void BrowserAutofillManager::AnalyzeJavaScriptChangedAutofilledValue(
     const FormStructure& form,
-    AutofillField& field,
-    bool cleared_value) {
+    AutofillField& field) {
   // We are interested in reporting the events where JavaScript resets an
   // autofilled value immediately after filling. For a reset, the value
   // needs to be empty.
-  if (!cleared_value) {
+  if (!field.value().empty()) {
     return;
   }
   std::optional<base::TimeTicks> original_fill_time =
@@ -2543,20 +2540,17 @@
   std::visit(
       absl::Overload{
           [&](const AutofillProfile* profile) {
-            LogAndRecordProfileFill(
-                form_structure, trigger_autofill_field, safe_filled_fields,
-                safe_filled_autofill_fields, *profile, trigger_source,
-                refill_trigger_reason.has_value());
+            LogAndRecordProfileFill(form_structure, trigger_autofill_field,
+                                    *profile, trigger_source,
+                                    refill_trigger_reason.has_value());
             MaybeShowPlusAddressEmailOverrideNotification(
-                safe_filled_autofill_fields, safe_filled_fields, *profile,
-                form_structure);
+                safe_filled_autofill_fields, *profile, form_structure);
           },
           [&](const CreditCard* credit_card) {
-            LogAndRecordCreditCardFill(
-                form_structure, trigger_autofill_field, safe_filled_fields,
-                safe_filled_autofill_fields, filled_field_ids, safe_field_ids,
-                *credit_card, trigger_source,
-                refill_trigger_reason.has_value());
+            LogAndRecordCreditCardFill(form_structure, trigger_autofill_field,
+                                       filled_field_ids, safe_field_ids,
+                                       *credit_card, trigger_source,
+                                       refill_trigger_reason.has_value());
           },
           [&](const EntityInstance* entity) {
             if (AutofillAiDelegate* delegate =
@@ -2635,8 +2629,6 @@
 void BrowserAutofillManager::LogAndRecordCreditCardFill(
     FormStructure& form_structure,
     AutofillField& trigger_autofill_field,
-    base::span<const FormFieldData*> safe_filled_fields,
-    base::span<const AutofillField*> safe_filled_autofill_fields,
     const base::flat_set<FieldGlobalId>& filled_field_ids,
     const base::flat_set<FieldGlobalId>& safe_field_ids,
     const CreditCard& card,
@@ -2667,8 +2659,6 @@
 void BrowserAutofillManager::LogAndRecordProfileFill(
     FormStructure& form_structure,
     AutofillField& trigger_autofill_field,
-    base::span<const FormFieldData*> safe_filled_fields,
-    base::span<const AutofillField*> safe_filled_autofill_fields,
     const AutofillProfile& filled_profile,
     AutofillTriggerSource trigger_source,
     bool is_refill) {
@@ -2689,7 +2679,6 @@
 
 void BrowserAutofillManager::MaybeShowPlusAddressEmailOverrideNotification(
     base::span<const AutofillField*> safe_filled_autofill_fields,
-    base::span<const FormFieldData*> safe_filled_fields,
     const AutofillProfile& filled_profile,
     const FormStructure& form_structure) {
   // `filled_profile` might have had its email overridden, which is what makes
@@ -2801,7 +2790,6 @@
     const FormStructure& form_structure,
     const FormFieldData& trigger_field,
     const AutofillField& trigger_autofill_field,
-    AutofillSuggestionTriggerSource trigger_source,
     std::optional<std::string> plus_address_email_override) {
 #if !BUILDFLAG(IS_ANDROID) && !BUILDFLAG(IS_IOS)
   bool should_suppress =
@@ -2871,7 +2859,6 @@
     const FormStructure& form_structure,
     const FormFieldData& trigger_field,
     const AutofillField& autofill_trigger_field,
-    AutofillSuggestionTriggerSource trigger_source,
     autofill_metrics::SuggestionRankingContext& ranking_context) {
   metrics_->credit_card_form_event_logger.set_signin_state_for_metrics(
       metrics_->signin_state_for_metrics);
@@ -3137,9 +3124,9 @@
   std::vector<Suggestion> suggestions;
   switch (context.filling_product) {
     case FillingProduct::kAddress:
-      suggestions = GetProfileSuggestions(
-          form, *form_structure, field, *autofill_field, trigger_source,
-          std::move(plus_address_email_override));
+      suggestions =
+          GetProfileSuggestions(form, *form_structure, field, *autofill_field,
+                                std::move(plus_address_email_override));
       if (base::FeatureList::IsEnabled(
               features::kAutofillEnableEmailOrLoyaltyCardsFilling) &&
           autofill_field->Type().GetStorableType() ==
@@ -3160,8 +3147,7 @@
       break;
     case FillingProduct::kCreditCard:
       suggestions = GetCreditCardSuggestions(form, *form_structure, field,
-                                             *autofill_field, trigger_source,
-                                             ranking_context);
+                                             *autofill_field, ranking_context);
       break;
     case FillingProduct::kLoyaltyCard:
       if (base::FeatureList::IsEnabled(
diff --git a/components/autofill/core/browser/foundations/browser_autofill_manager.h b/components/autofill/core/browser/foundations/browser_autofill_manager.h
index dda9b90..df77192 100644
--- a/components/autofill/core/browser/foundations/browser_autofill_manager.h
+++ b/components/autofill/core/browser/foundations/browser_autofill_manager.h
@@ -389,6 +389,7 @@
   // - Collect profile token quality observations
   std::unique_ptr<FormStructure> ValidateSubmittedForm(const FormData& form);
 
+  // TODO(crbug.com/40100455): Correct this outdated comment.
   // Returns suggestions for the `form`, if suggestions were triggered using
   // the `trigger_source` on the `field`. The field's type is `field_type`.
   // The `trigger_source` controls which fields are considered for filling and
@@ -402,7 +403,6 @@
       const FormStructure& form_structure,
       const FormFieldData& trigger_field,
       const AutofillField& trigger_autofill_field,
-      AutofillSuggestionTriggerSource trigger_source,
       std::optional<std::string> plus_address_email_override);
 
   // Returns a list of values from the stored credit cards that match
@@ -416,14 +416,8 @@
       const FormStructure& form_structure,
       const FormFieldData& trigger_field,
       const AutofillField& autofill_trigger_field,
-      AutofillSuggestionTriggerSource trigger_source,
       autofill_metrics::SuggestionRankingContext& ranking_context);
 
-  // Returns valuables suggestions depending on the `trigger_autofill_field`
-  // value type.
-  std::vector<Suggestion> GetValuablesSuggestions(
-      const AutofillField& trigger_autofill_field);
-
   // Fills or previews `form` with the information in `credit_card`.
   // `autofill_field` is the field that triggered the filling operation.
   // `trigger_source` is the reason for triggering the filling operation.
@@ -450,11 +444,8 @@
   // method should be called after we learned that JavaScript modified an
   // autofilled field. It's responsible for assessing the nature of the
   // modification. `cleared_value` is true if JS wiped the previous value.
-  // TODO(crbug.com/40227496): Remove `cleared_value` when `field` starts
-  // containing the actual current value of the field.
   void AnalyzeJavaScriptChangedAutofilledValue(const FormStructure& form,
-                                               AutofillField& field,
-                                               bool cleared_value);
+                                               AutofillField& field);
 
   // Populates all the fields (except for ablation study related fields) in
   // `SuggestionsContext` based on the given params.
@@ -616,8 +607,6 @@
   void LogAndRecordCreditCardFill(
       FormStructure& form_structure,
       AutofillField& trigger_autofill_field,
-      base::span<const FormFieldData*> safe_filled_fields,
-      base::span<const AutofillField*> safe_filled_autofill_fields,
       const base::flat_set<FieldGlobalId>& filled_field_ids,
       const base::flat_set<FieldGlobalId>& safe_field_ids,
       const CreditCard& card,
@@ -629,8 +618,6 @@
   void LogAndRecordProfileFill(
       FormStructure& form_structure,
       AutofillField& trigger_autofill_field,
-      base::span<const FormFieldData*> safe_filled_fields,
-      base::span<const AutofillField*> safe_filled_autofill_fields,
       const AutofillProfile& filled_profile,
       AutofillTriggerSource trigger_source,
       bool is_refill);
@@ -639,7 +626,6 @@
   // if so, shows a notification to the user.
   void MaybeShowPlusAddressEmailOverrideNotification(
       base::span<const AutofillField*> safe_filled_autofill_fields,
-      base::span<const FormFieldData*> safe_filled_fields,
       const AutofillProfile& filled_profile,
       const FormStructure& form_structure);
 
diff --git a/components/autofill/core/browser/foundations/browser_autofill_manager_test_api.h b/components/autofill/core/browser/foundations/browser_autofill_manager_test_api.h
index 4f5e529..8f45973e 100644
--- a/components/autofill/core/browser/foundations/browser_autofill_manager_test_api.h
+++ b/components/autofill/core/browser/foundations/browser_autofill_manager_test_api.h
@@ -99,16 +99,14 @@
   std::vector<Suggestion> GetProfileSuggestions(
       const FormData& form,
       const FormFieldData& field,
-      AutofillSuggestionTriggerSource trigger_source =
-          AutofillSuggestionTriggerSource::kFormControlElementClicked,
       std::optional<std::string> plus_address_override = std::nullopt) {
     FormStructure* form_structure;
     AutofillField* autofill_field;
     CHECK(manager_->GetCachedFormAndField(form.global_id(), field.global_id(),
                                           &form_structure, &autofill_field));
-    return manager_->GetProfileSuggestions(
-        form, CHECK_DEREF(form_structure), field, CHECK_DEREF(autofill_field),
-        trigger_source, std::move(plus_address_override));
+    return manager_->GetProfileSuggestions(form, CHECK_DEREF(form_structure),
+                                           field, CHECK_DEREF(autofill_field),
+                                           std::move(plus_address_override));
   }
 
  private:
diff --git a/components/autofill/core/browser/integrators/autofill_ai/autofill_ai_suggestions.cc b/components/autofill/core/browser/integrators/autofill_ai/autofill_ai_suggestions.cc
index 7006e2e3..c9518fa0 100644
--- a/components/autofill/core/browser/integrators/autofill_ai/autofill_ai_suggestions.cc
+++ b/components/autofill/core/browser/integrators/autofill_ai/autofill_ai_suggestions.cc
@@ -298,33 +298,37 @@
   return true;
 }
 
-// Returns the set of AttributeTypes for which `entity` could fill a value in
-// `trigger_field.section()` of `form`.
-DenseSet<AttributeType> GetAttributeTypesFillableByEntity(
-    const FormStructure& form,
-    const AutofillField& trigger_field,
-    const EntityInstance& entity) {
-  DenseSet<AttributeType> attribute_types_in_section;
-  for (const std::unique_ptr<AutofillField>& field : form.fields()) {
-    // Only fill fields that match the triggering field section.
-    if (field->section() != trigger_field.section()) {
-      continue;
-    }
-    std::optional<FieldType> field_autofill_ai_prediction =
-        field->GetAutofillAiServerTypePredictions();
-    if (!field_autofill_ai_prediction) {
-      continue;
-    }
-    std::optional<AttributeType> attribute_type =
-        AttributeType::FromFieldType(*field_autofill_ai_prediction);
-    // Only fields that match the triggering field entity should be used to
-    // generate suggestions.
-    if (!attribute_type || entity.type() != attribute_type->entity_type()) {
-      continue;
-    }
-    attribute_types_in_section.insert(*attribute_type);
-  }
-  return attribute_types_in_section;
+// Returns true if `entity` has a non-empty value to fill for some field of
+// `section` in `form`.
+bool CanFillSomeField(const EntityInstance& entity,
+                      const FormStructure& form,
+                      const Section& section,
+                      const std::string& app_locale) {
+  return std::ranges::any_of(
+      form.fields(), [&](const std::unique_ptr<AutofillField>& field) {
+        // Only fill fields that match the triggering field section.
+        if (field->section() != section) {
+          return false;
+        }
+        std::optional<FieldType> field_autofill_ai_prediction =
+            field->GetAutofillAiServerTypePredictions();
+        if (!field_autofill_ai_prediction) {
+          return false;
+        }
+        std::optional<AttributeType> attribute_type =
+            AttributeType::FromFieldType(*field_autofill_ai_prediction);
+        // Only fields that match the triggering field entity should be used to
+        // generate suggestions.
+        if (!attribute_type || entity.type() != attribute_type->entity_type()) {
+          return false;
+        }
+        base::optional_ref<const AttributeInstance> attribute =
+            entity.attribute(*attribute_type);
+        return attribute && !attribute
+                                 ->GetInfo(attribute_type->field_type(),
+                                           app_locale, std::nullopt)
+                                 .empty();
+      });
 }
 
 SuggestionWithMetadata GetSuggestionForEntity(
@@ -428,16 +432,12 @@
 
   // Suggestion and their fields to be filled metadata.
   std::vector<SuggestionWithMetadata> suggestions_with_metadata;
-  // Used to know whether any other entity can fill the current fill group.
-  DenseSet<AttributeType> attribute_types_in_section;
   for (const EntityInstance* entity : sorted_entities) {
     if (!EntityShouldProduceSuggestion(*autofill_field, *entity, app_locale)) {
       continue;
     }
     suggestions_with_metadata.push_back(
         GetSuggestionForEntity(form, *autofill_field, *entity, app_locale));
-    attribute_types_in_section.insert_all(
-        GetAttributeTypesFillableByEntity(form, *autofill_field, *entity));
   }
 
   if (suggestions_with_metadata.empty()) {
@@ -462,17 +462,8 @@
     if (entity->type() != trigger_field_attribute_type->entity_type()) {
       continue;
     }
-    const bool can_entity_fill_any_field_in_section = std::ranges::any_of(
-        attribute_types_in_section, [&](const AttributeType attribute) {
-          base::optional_ref<const AttributeInstance> instance =
-              entity->attribute(attribute);
-          // If the entity can fill any field in the form, add it.
-          return instance && !instance
-                                  ->GetInfo(attribute.field_type(), app_locale,
-                                            std::nullopt)
-                                  .empty();
-        });
-    if (can_entity_fill_any_field_in_section) {
+    if (CanFillSomeField(*entity, form, autofill_field->section(),
+                         app_locale)) {
       other_entities_that_can_fill_section.push_back(entity);
     }
   }
diff --git a/components/autofill/core/browser/metrics/form_events/loyalty_card_form_event_logger.cc b/components/autofill/core/browser/metrics/form_events/loyalty_card_form_event_logger.cc
index 8af3984..a77535d 100644
--- a/components/autofill/core/browser/metrics/form_events/loyalty_card_form_event_logger.cc
+++ b/components/autofill/core/browser/metrics/form_events/loyalty_card_form_event_logger.cc
@@ -6,7 +6,9 @@
 
 #include "base/metrics/user_metrics.h"
 #include "base/metrics/user_metrics_action.h"
+#include "components/autofill/core/browser/foundations/autofill_driver.h"
 #include "components/autofill/core/browser/metrics/autofill_metrics_utils.h"
+#include "components/autofill/core/browser/metrics/form_events/form_events.h"
 
 namespace autofill::autofill_metrics {
 
@@ -23,8 +25,15 @@
 }
 
 void LoyaltyCardFormEventLogger::OnDidFillSuggestion(
+    const FormStructure& form,
     const AutofillField& field) {
-  has_logged_form_filling_suggestion_filled_ = true;
+  client().GetFormInteractionsUkmLogger().LogDidFillSuggestion(
+      driver().GetPageUkmSourceId(), form, field);
+  Log(FORM_EVENT_LOCAL_SUGGESTION_FILLED, form);
+  if (!has_logged_form_filling_suggestion_filled_) {
+    has_logged_form_filling_suggestion_filled_ = true;
+    Log(FORM_EVENT_LOCAL_SUGGESTION_FILLED_ONCE, form);
+  }
   FieldType field_type = field.Type().GetStorableType();
   field_types_with_shown_suggestions_.erase(field_type);
   field_types_with_accepted_suggestions_.insert(field_type);
@@ -38,7 +47,13 @@
 void LoyaltyCardFormEventLogger::RecordShowSuggestions() {}
 
 void LoyaltyCardFormEventLogger::LogUkmInteractedWithForm(
-    FormSignature form_signature) {}
+    FormSignature form_signature) {
+  // Loyalty card Autofill doesn't have the concept of server loyalty cards.
+  client().GetFormInteractionsUkmLogger().LogInteractedWithForm(
+      driver().GetPageUkmSourceId(),
+      /*is_for_credit_card=*/false, record_type_count_,
+      /*server_record_type_count=*/0, form_signature);
+}
 
 bool LoyaltyCardFormEventLogger::HasLoggedDataToFillAvailable() const {
   return record_type_count_ > 0;
diff --git a/components/autofill/core/browser/metrics/form_events/loyalty_card_form_event_logger.h b/components/autofill/core/browser/metrics/form_events/loyalty_card_form_event_logger.h
index 57cb591..dff5b7d 100644
--- a/components/autofill/core/browser/metrics/form_events/loyalty_card_form_event_logger.h
+++ b/components/autofill/core/browser/metrics/form_events/loyalty_card_form_event_logger.h
@@ -19,7 +19,8 @@
   ~LoyaltyCardFormEventLogger() override;
 
   // Triggered when the autofill manager fills a loyalty card suggestion.
-  void OnDidFillSuggestion(const AutofillField& field);
+  void OnDidFillSuggestion(const FormStructure& form,
+                           const AutofillField& field);
 
   // Triggered when the list of loyalty card suggestions is loaded by the
   // autofill manager.
diff --git a/components/autofill/core/browser/metrics/form_events/loyalty_card_form_event_logger_unittest.cc b/components/autofill/core/browser/metrics/form_events/loyalty_card_form_event_logger_unittest.cc
index 295cc47f..560dd3e 100644
--- a/components/autofill/core/browser/metrics/form_events/loyalty_card_form_event_logger_unittest.cc
+++ b/components/autofill/core/browser/metrics/form_events/loyalty_card_form_event_logger_unittest.cc
@@ -17,6 +17,9 @@
 namespace autofill::autofill_metrics {
 
 using UkmAutofillKeyMetricsType = ukm::builders::Autofill_KeyMetrics;
+using UkmFormEventType = ukm::builders::Autofill_FormEvent;
+using UkmInteractedWithFormType = ukm::builders::Autofill_InteractedWithForm;
+using UkmSuggestionFilledType = ukm::builders::Autofill_SuggestionFilled;
 using test::CreateTestFormField;
 using ::testing::IsEmpty;
 
@@ -256,6 +259,24 @@
 
   void TearDown() override { TearDownHelper(); }
 
+  void AppendLoyaltyCardFormEventUkm(
+      const FormEvent& form_event,
+      std::vector<std::vector<ExpectedUkmMetricsPair>>* expected_metrics) {
+    AppendFormEventUkm(
+        form_event, /*form_types=*/{FormTypeNameForLogging::kLoyaltyCardForm},
+        expected_metrics);
+  }
+
+  void VerifyInteractedWithFormUkmMetric() {
+    VerifyUkm(&test_ukm_recorder(), form_,
+              UkmInteractedWithFormType::kEntryName,
+              {{{UkmInteractedWithFormType::kIsForCreditCardName, false},
+                {UkmInteractedWithFormType::kLocalRecordTypeCountName, 2},
+                {UkmInteractedWithFormType::kServerRecordTypeCountName, 0},
+                {UkmInteractedWithFormType::kFormSignatureName,
+                 Collapse(CalculateFormSignature(form_)).value()}}});
+  }
+
   // Fillable form.
   FormData form_;
   std::vector<FieldType> field_types_;
@@ -299,6 +320,12 @@
               {UkmAutofillKeyMetricsType::kFormTypesName,
                AutofillMetrics::FormTypesToBitVector(
                    {FormTypeNameForLogging::kLoyaltyCardForm})}}});
+
+  EXPECT_THAT(
+      test_ukm_recorder().GetEntriesByName(UkmSuggestionFilledType::kEntryName),
+      IsEmpty());
+
+  VerifyInteractedWithFormUkmMetric();
 }
 
 // Validate Autofill.KeyMetrics.* in case the user does not accept a suggestion.
@@ -346,7 +373,108 @@
               {UkmAutofillKeyMetricsType::kFormTypesName,
                AutofillMetrics::FormTypesToBitVector(
                    {FormTypeNameForLogging::kLoyaltyCardForm})}}});
+
+  EXPECT_THAT(
+      test_ukm_recorder().GetEntriesByName(UkmSuggestionFilledType::kEntryName),
+      IsEmpty());
+
+  VerifyInteractedWithFormUkmMetric();
 }
+
+// Validate Autofill.KeyMetrics.* in case the user has filled a suggestion.
+TEST_F(LoyaltyCardFormEventLoggerBaseKeyMetricsTest, UserAcceptsSuggestion) {
+  base::HistogramTester histogram_tester;
+
+  // Simulate that suggestion is shown and user accepts it.
+  SeeForm(form_);
+  autofill_manager().OnAskForValuesToFillTest(form_,
+                                              form_.fields()[1].global_id());
+  DidShowAutofillSuggestions(form_, /*field_index=*/1);
+  FillLoyaltyCard(form_, valuables_data_manager().GetLoyaltyCards()[0],
+                  /*field_index=*/1);
+
+  SubmitForm(form_);
+
+  FormInteractionsFlowId flow_id =
+      test_api(autofill_manager()).loyalty_card_form_interactions_flow_id();
+  ResetDriverToCommitMetrics();
+
+  histogram_tester.ExpectBucketCount(
+      "Autofill.KeyMetrics.FillingReadiness.LoyaltyCard", 1, 1);
+  histogram_tester.ExpectBucketCount(
+      "Autofill.KeyMetrics.FillingAcceptance.LoyaltyCard", 1, 1);
+  histogram_tester.ExpectBucketCount(
+      "Autofill.KeyMetrics.FillingCorrectness.LoyaltyCard", 1, 1);
+  histogram_tester.ExpectBucketCount(
+      "Autofill.KeyMetrics.FillingAssistance.LoyaltyCard", 1, 1);
+  histogram_tester.ExpectBucketCount(
+      "Autofill.KeyMetrics.FormSubmission.Autofilled.LoyaltyCard", 1, 1);
+  histogram_tester.ExpectUniqueSample(
+      "Autofill.KeyMetrics.FillingAcceptance.GroupedByFocusedFieldType",
+      GetBucketForAcceptanceMetricsGroupedByFieldType(
+          field_types_[1], /*suggestion_accepted=*/true),
+      1);
+
+  VerifyUkm(&test_ukm_recorder(), form_, UkmAutofillKeyMetricsType::kEntryName,
+            {{{UkmAutofillKeyMetricsType::kFillingReadinessName, 1},
+              {UkmAutofillKeyMetricsType::kFillingAcceptanceName, 1},
+              {UkmAutofillKeyMetricsType::kFillingCorrectnessName, 1},
+              {UkmAutofillKeyMetricsType::kFillingAssistanceName, 1},
+              {UkmAutofillKeyMetricsType::kAutofillFillsName, 1},
+              {UkmAutofillKeyMetricsType::kFormElementUserModificationsName, 0},
+              {UkmAutofillKeyMetricsType::kFlowIdName, flow_id.value()},
+              {UkmAutofillKeyMetricsType::kFormTypesName,
+               AutofillMetrics::FormTypesToBitVector(
+                   {FormTypeNameForLogging::kLoyaltyCardForm})}}});
+
+  VerifyUkm(
+      &test_ukm_recorder(), form_, UkmSuggestionFilledType::kEntryName,
+      {{{UkmSuggestionFilledType::kIsForCreditCardName, false},
+        {UkmSuggestionFilledType::kFormSignatureName,
+         Collapse(CalculateFormSignature(form_)).value()},
+        {UkmSuggestionFilledType::kFieldSignatureName,
+         Collapse(CalculateFieldSignatureForField(form_.fields()[1])).value()},
+        {UkmSuggestionFilledType::kMillisecondsSinceFormParsedName, 0}}});
+
+  // Verify that the FORM_EVENT_LOCAL_SUGGESTION_FILLED and
+  // FORM_EVENT_LOCAL_SUGGESTION_FILLED_ONCE events are logged by the logger,
+  // other events are logged by the base logger.
+  std::vector<std::vector<ExpectedUkmMetricsPair>> expected_form_event_metrics;
+  // Form parsed.
+  AppendLoyaltyCardFormEventUkm(FORM_EVENT_DID_PARSE_FORM,
+                                &expected_form_event_metrics);
+  AppendLoyaltyCardFormEventUkm(FORM_EVENT_DID_PARSE_FORM,
+                                &expected_form_event_metrics);
+  // User interacted with the form.
+  AppendLoyaltyCardFormEventUkm(FORM_EVENT_INTERACTED_ONCE,
+                                &expected_form_event_metrics);
+  // Suggestion shown.
+  AppendLoyaltyCardFormEventUkm(FORM_EVENT_SUGGESTIONS_SHOWN,
+                                &expected_form_event_metrics);
+  AppendLoyaltyCardFormEventUkm(FORM_EVENT_SUGGESTIONS_SHOWN_ONCE,
+                                &expected_form_event_metrics);
+  // Suggestion filled.
+  AppendLoyaltyCardFormEventUkm(FORM_EVENT_LOCAL_SUGGESTION_FILLED,
+                                &expected_form_event_metrics);
+  AppendLoyaltyCardFormEventUkm(FORM_EVENT_LOCAL_SUGGESTION_FILLED_ONCE,
+                                &expected_form_event_metrics);
+  // Form submitted.
+  AppendLoyaltyCardFormEventUkm(FORM_EVENT_LOCAL_SUGGESTION_WILL_SUBMIT_ONCE,
+                                &expected_form_event_metrics);
+  AppendLoyaltyCardFormEventUkm(FORM_EVENT_SUGGESTION_SHOWN_WILL_SUBMIT_ONCE,
+                                &expected_form_event_metrics);
+  // Suggestion submitted.
+  AppendLoyaltyCardFormEventUkm(FORM_EVENT_LOCAL_SUGGESTION_SUBMITTED_ONCE,
+                                &expected_form_event_metrics);
+  AppendLoyaltyCardFormEventUkm(FORM_EVENT_SUGGESTION_SHOWN_SUBMITTED_ONCE,
+                                &expected_form_event_metrics);
+
+  VerifyUkm(&test_ukm_recorder(), form_, UkmFormEventType::kEntryName,
+            expected_form_event_metrics);
+
+  VerifyInteractedWithFormUkmMetric();
+}
+
 // Validate Autofill.KeyMetrics.* in case the user has to fix the filled data.
 TEST_F(LoyaltyCardFormEventLoggerBaseKeyMetricsTest, LogUserFixesFilledData) {
   base::HistogramTester histogram_tester;
@@ -394,6 +522,17 @@
               {UkmAutofillKeyMetricsType::kFormTypesName,
                AutofillMetrics::FormTypesToBitVector(
                    {FormTypeNameForLogging::kLoyaltyCardForm})}}});
+
+  VerifyUkm(
+      &test_ukm_recorder(), form_, UkmSuggestionFilledType::kEntryName,
+      {{{UkmSuggestionFilledType::kIsForCreditCardName, false},
+        {UkmSuggestionFilledType::kFormSignatureName,
+         Collapse(CalculateFormSignature(form_)).value()},
+        {UkmSuggestionFilledType::kFieldSignatureName,
+         Collapse(CalculateFieldSignatureForField(form_.fields()[1])).value()},
+        {UkmSuggestionFilledType::kMillisecondsSinceFormParsedName, 0}}});
+
+  VerifyInteractedWithFormUkmMetric();
 }
 
 // Validate Autofill.KeyMetrics.* in case the user fixes the filled data but
@@ -432,6 +571,17 @@
   EXPECT_THAT(test_ukm_recorder().GetEntriesByName(
                   UkmAutofillKeyMetricsType::kEntryName),
               IsEmpty());
+
+  VerifyUkm(
+      &test_ukm_recorder(), form_, UkmSuggestionFilledType::kEntryName,
+      {{{UkmSuggestionFilledType::kIsForCreditCardName, false},
+        {UkmSuggestionFilledType::kFormSignatureName,
+         Collapse(CalculateFormSignature(form_)).value()},
+        {UkmSuggestionFilledType::kFieldSignatureName,
+         Collapse(CalculateFieldSignatureForField(form_.fields()[1])).value()},
+        {UkmSuggestionFilledType::kMillisecondsSinceFormParsedName, 0}}});
+
+  VerifyInteractedWithFormUkmMetric();
 }
 
 }  // namespace autofill::autofill_metrics
diff --git a/components/autofill/core/browser/metrics/ukm_metrics_test_utils.cc b/components/autofill/core/browser/metrics/ukm_metrics_test_utils.cc
index 570c6bf..b31ef8b 100644
--- a/components/autofill/core/browser/metrics/ukm_metrics_test_utils.cc
+++ b/components/autofill/core/browser/metrics/ukm_metrics_test_utils.cc
@@ -100,6 +100,17 @@
   }
 }
 
+void AppendFormEventUkm(
+    const FormEvent& form_event,
+    const DenseSet<FormTypeNameForLogging>& form_types,
+    std::vector<std::vector<ExpectedUkmMetricsPair>>* expected_metrics) {
+  expected_metrics->emplace_back(std::vector<ExpectedUkmMetricsPair>{
+      {UkmFormEventType::kAutofillFormEventName, static_cast<int>(form_event)},
+      {UkmFormEventType::kMillisecondsSinceFormParsedName, 0},
+      {UkmFormEventType::kFormTypesName,
+       AutofillMetrics::FormTypesToBitVector(form_types)}});
+}
+
 void AppendFieldFillStatusUkm(
     const FormData& form,
     std::vector<std::vector<ExpectedUkmMetricsPair>>* expected_metrics) {
diff --git a/components/autofill/core/browser/metrics/ukm_metrics_test_utils.h b/components/autofill/core/browser/metrics/ukm_metrics_test_utils.h
index b1f52e8..951ac9f5 100644
--- a/components/autofill/core/browser/metrics/ukm_metrics_test_utils.h
+++ b/components/autofill/core/browser/metrics/ukm_metrics_test_utils.h
@@ -49,6 +49,11 @@
     const DenseSet<FormTypeNameForLogging>& form_types,
     const std::vector<int64_t>& expected_metric_values);
 
+void AppendFormEventUkm(
+    const FormEvent& form_event,
+    const DenseSet<FormTypeNameForLogging>& form_types,
+    std::vector<std::vector<ExpectedUkmMetricsPair>>* expected_metrics);
+
 void AppendFieldFillStatusUkm(
     const FormData& form,
     std::vector<std::vector<ExpectedUkmMetricsPair>>* expected_metrics);
diff --git a/components/browser_ui/site_settings/android/java/src/org/chromium/components/browser_ui/site_settings/ContentSettingException.java b/components/browser_ui/site_settings/android/java/src/org/chromium/components/browser_ui/site_settings/ContentSettingException.java
index bbc978d..3203064a 100644
--- a/components/browser_ui/site_settings/android/java/src/org/chromium/components/browser_ui/site_settings/ContentSettingException.java
+++ b/components/browser_ui/site_settings/android/java/src/org/chromium/components/browser_ui/site_settings/ContentSettingException.java
@@ -86,6 +86,12 @@
         return (mSecondaryPattern == null) ? SITE_WILDCARD : mSecondaryPattern;
     }
 
+    public String getDisplayPattern() {
+        return mPrimaryPattern.equals(SITE_WILDCARD)
+                ? getSecondaryPatternSafe()
+                : getPrimaryPattern();
+    }
+
     public @ProviderType.EnumType int getSource() {
         return mSource;
     }
diff --git a/components/browser_ui/site_settings/android/java/src/org/chromium/components/browser_ui/site_settings/SiteSettingsDelegate.java b/components/browser_ui/site_settings/android/java/src/org/chromium/components/browser_ui/site_settings/SiteSettingsDelegate.java
index b698d43..e512088 100644
--- a/components/browser_ui/site_settings/android/java/src/org/chromium/components/browser_ui/site_settings/SiteSettingsDelegate.java
+++ b/components/browser_ui/site_settings/android/java/src/org/chromium/components/browser_ui/site_settings/SiteSettingsDelegate.java
@@ -187,6 +187,11 @@
      */
     boolean isBlockAll3pcEnabledInTrackingProtection();
 
+    /**
+     * @return true if wildcards should be shown in content settings patterns.
+     */
+    boolean isDisplayWildcardInContentSettingsEnabled();
+
     /** Enables/disables Related Website Sets data access. */
     void setRelatedWebsiteSetsDataAccessEnabled(boolean enabled);
 
diff --git a/components/browser_ui/site_settings/android/java/src/org/chromium/components/browser_ui/site_settings/Website.java b/components/browser_ui/site_settings/android/java/src/org/chromium/components/browser_ui/site_settings/Website.java
index 4a5b0f0..29a00a5 100644
--- a/components/browser_ui/site_settings/android/java/src/org/chromium/components/browser_ui/site_settings/Website.java
+++ b/components/browser_ui/site_settings/android/java/src/org/chromium/components/browser_ui/site_settings/Website.java
@@ -210,6 +210,13 @@
         return mContentSettingExceptions.get(type);
     }
 
+    /** Returns the title for a specific type of content setting for this Website. */
+    public String getTitleForContentSetting(@ContentSettingsType.EnumType int type) {
+        return getContentSettingException(type) != null
+                ? assumeNonNull(getContentSettingException(type)).getDisplayPattern()
+                : getTitle();
+    }
+
     /** Sets the exception info for this Website for specified type. */
     public void setContentSettingException(
             @ContentSettingsType.EnumType int type, ContentSettingException exception) {
diff --git a/components/browser_ui/site_settings/android/java/src/org/chromium/components/browser_ui/site_settings/WebsiteGroup.java b/components/browser_ui/site_settings/android/java/src/org/chromium/components/browser_ui/site_settings/WebsiteGroup.java
index cb4ab51..38e9c16 100644
--- a/components/browser_ui/site_settings/android/java/src/org/chromium/components/browser_ui/site_settings/WebsiteGroup.java
+++ b/components/browser_ui/site_settings/android/java/src/org/chromium/components/browser_ui/site_settings/WebsiteGroup.java
@@ -43,7 +43,9 @@
         Map<String, List<Website>> etldMap = new HashMap<>();
         for (Website website : websites) {
             // TODO(crbug.com/40231223): Handle partitioned storage.
-            String etld = website.getAddress().getDomainAndRegistry();
+            // Use the main address to handle cases where Origin is a wildcard and the Embedder is
+            // the actual address.
+            String etld = website.getMainAddress().getDomainAndRegistry();
             List<Website> etldSites = etldMap.get(etld);
             if (etldSites == null) {
                 etldSites = new ArrayList<>();
diff --git a/components/browser_ui/site_settings/android/java/src/org/chromium/components/browser_ui/site_settings/WebsitePermissionsFetcher.java b/components/browser_ui/site_settings/android/java/src/org/chromium/components/browser_ui/site_settings/WebsitePermissionsFetcher.java
index 09a216e..e815c784 100644
--- a/components/browser_ui/site_settings/android/java/src/org/chromium/components/browser_ui/site_settings/WebsitePermissionsFetcher.java
+++ b/components/browser_ui/site_settings/android/java/src/org/chromium/components/browser_ui/site_settings/WebsitePermissionsFetcher.java
@@ -447,6 +447,16 @@
                         containsPatternWildcards(address)
                                 ? address
                                 : assumeNonNull(WebsiteAddress.create(address)).getOrigin();
+                // To avoid collapsing addresses with and without wildcards into the same row,
+                // convert the embedder to add the scheme or the wildcard to create a
+                // unique key (and thus row) per pattern.
+                if (mSiteSettingsDelegate.isDisplayWildcardInContentSettingsEnabled()
+                        && embedder != null) {
+                    embedder =
+                            containsPatternWildcards(embedder)
+                                    ? embedder
+                                    : assumeNonNull(WebsiteAddress.create(embedder)).getOrigin();
+                }
                 Website site = findOrCreateSite(origin, embedder, contentSetting);
                 if (isEmbeddedPermission) {
                     site.addEmbeddedPermission(exception);
diff --git a/components/browser_ui/site_settings/android/java/src/org/chromium/components/browser_ui/site_settings/WebsitePreference.java b/components/browser_ui/site_settings/android/java/src/org/chromium/components/browser_ui/site_settings/WebsitePreference.java
index 63e79765..f31254a5 100644
--- a/components/browser_ui/site_settings/android/java/src/org/chromium/components/browser_ui/site_settings/WebsitePreference.java
+++ b/components/browser_ui/site_settings/android/java/src/org/chromium/components/browser_ui/site_settings/WebsitePreference.java
@@ -32,8 +32,8 @@
 /**
  * A preference that displays a website's favicon and URL and, optionally, the amount of local
  * storage used by the site. This preference can also display an additional icon on the right side
- * of the preference. See {@link ChromeImageViewPreference} for more details on how this icon
- * can be used.
+ * of the preference. See {@link ChromeImageViewPreference} for more details on how this icon can be
+ * used.
  */
 @NullMarked
 class WebsitePreference extends ChromeImageViewPreference {
@@ -124,6 +124,10 @@
             return mSite.getTitleForPreferenceRow();
         }
 
+        if (mSiteSettingsDelegate.isDisplayWildcardInContentSettingsEnabled()) {
+            return mSite.getTitleForContentSetting(mCategory.getContentSettingsType());
+        }
+
         return mSite.getTitle();
     }
 
diff --git a/components/browser_ui/strings/android/browser_ui_strings.grd b/components/browser_ui/strings/android/browser_ui_strings.grd
index 21da2b9..0b91007a 100644
--- a/components/browser_ui/strings/android/browser_ui_strings.grd
+++ b/components/browser_ui/strings/android/browser_ui_strings.grd
@@ -420,12 +420,18 @@
       <message name="IDS_DOWNLOAD_NOTIFICATION_PAUSED" desc="Download notification to be displayed when a download pauses.">
         Download paused
       </message>
+      <message name="IDS_DOWNLOAD_NOTIFICATION_DANGEROUS_BLOCKED" desc="Download notification to be displayed when a download has been blocked for being dangerous.">
+        Dangerous download blocked
+      </message>
       <message name="IDS_DOWNLOAD_NOTIFICATION_PAUSE_BUTTON" desc="Text on the button that pauses a download.">
         Pause
       </message>
       <message name="IDS_DOWNLOAD_NOTIFICATION_RESUME_BUTTON" desc="Text on the button that resumes a paused download.">
         Resume
       </message>
+      <message name="IDS_DOWNLOAD_NOTIFICATION_DELETE_FROM_HISTORY_BUTTON" desc="Text on the button that deletes a download from history.">
+        Delete from history
+      </message>
       <message name="IDS_DOWNLOAD_UI_DETERMINATE_BYTES" desc="Appears in a notification when a user starts downloading a file. Indicates the number of bytes downloaded out of the total file size. E.g. 3/7 MB [downloaded]. As appropriate for your language, use '/' or 'of'; and change word order as needed.">
         <ph name="BYTES_DOWNLOADED_WITH_UNITS">%1$s<ex>12.2 MB</ex></ph> / <ph name="FILE_SIZE_WITH_UNITS">%2$s<ex>20.3 GB</ex></ph>
       </message>
diff --git a/components/browser_ui/strings/android/browser_ui_strings_grd/IDS_DOWNLOAD_NOTIFICATION_DANGEROUS_BLOCKED.png.sha1 b/components/browser_ui/strings/android/browser_ui_strings_grd/IDS_DOWNLOAD_NOTIFICATION_DANGEROUS_BLOCKED.png.sha1
new file mode 100644
index 0000000..0525f1f
--- /dev/null
+++ b/components/browser_ui/strings/android/browser_ui_strings_grd/IDS_DOWNLOAD_NOTIFICATION_DANGEROUS_BLOCKED.png.sha1
@@ -0,0 +1 @@
+f84f32724c333400d75fbc050ba7ae821f5fe376
\ No newline at end of file
diff --git a/components/browser_ui/strings/android/browser_ui_strings_grd/IDS_DOWNLOAD_NOTIFICATION_DELETE_FROM_HISTORY_BUTTON.png.sha1 b/components/browser_ui/strings/android/browser_ui_strings_grd/IDS_DOWNLOAD_NOTIFICATION_DELETE_FROM_HISTORY_BUTTON.png.sha1
new file mode 100644
index 0000000..0525f1f
--- /dev/null
+++ b/components/browser_ui/strings/android/browser_ui_strings_grd/IDS_DOWNLOAD_NOTIFICATION_DELETE_FROM_HISTORY_BUTTON.png.sha1
@@ -0,0 +1 @@
+f84f32724c333400d75fbc050ba7ae821f5fe376
\ No newline at end of file
diff --git a/components/browser_ui/strings/android/translations/browser_ui_strings_pt-BR.xtb b/components/browser_ui/strings/android/translations/browser_ui_strings_pt-BR.xtb
index 7af0488f..3c57fae 100644
--- a/components/browser_ui/strings/android/translations/browser_ui_strings_pt-BR.xtb
+++ b/components/browser_ui/strings/android/translations/browser_ui_strings_pt-BR.xtb
@@ -396,7 +396,7 @@
 <translation id="583673505367439042">Os sites podem pedir para editar arquivos e pastas no dispositivo</translation>
 <translation id="5844448279347999754">Quando essa configuração está ativada, os sites podem pedir para acessar texto e imagens na sua área de transferência. Quando está desativada, os sites não podem acessar texto e imagens na sua área de transferência.</translation>
 <translation id="5853982612236235577">Quando essa configuração está ativada, os sites podem pedir para enviar notificações. Quando está desativada, os sites não podem enviar notificações.</translation>
-<translation id="5860033963881614850">Desativada</translation>
+<translation id="5860033963881614850">Desativado</translation>
 <translation id="5860491529813859533">Ativar</translation>
 <translation id="5876056640971328065">Pausar vídeo</translation>
 <translation id="5877248419911025165">Fechar todas as solicitações</translation>
diff --git a/components/browser_ui/widget/android/java/src/org/chromium/components/browser_ui/widget/ClipDrawableProgressBar.java b/components/browser_ui/widget/android/java/src/org/chromium/components/browser_ui/widget/ClipDrawableProgressBar.java
index 35527cd..d1f639f 100644
--- a/components/browser_ui/widget/android/java/src/org/chromium/components/browser_ui/widget/ClipDrawableProgressBar.java
+++ b/components/browser_ui/widget/android/java/src/org/chromium/components/browser_ui/widget/ClipDrawableProgressBar.java
@@ -31,11 +31,14 @@
     public static class DrawingInfo {
         public final Rect progressBarRect = new Rect();
         public final Rect progressBarBackgroundRect = new Rect();
+        public final Rect progressBarStaticBackgroundRect = new Rect();
         public final Rect progressBarEndIndicator = new Rect();
 
         public int progressBarColor;
         public int progressBarBackgroundColor;
+        public int progressBarStaticBackgroundColor;
         public float cornerRadius;
+        public boolean progressBarVisualUpdateAvailable;
     }
 
     /** An observer for visible progress updates. */
@@ -67,6 +70,7 @@
     @Nullable private GradientDrawable mEndCapCircleDrawable;
     private int mForegroundColor;
     private int mBackgroundColor;
+    private int mStaticBackgroundColor;
     protected final int mProgressBarHeight;
     private float mProgress;
     private int mDesiredVisibility;
@@ -254,9 +258,12 @@
         float effectiveAlpha = getVisibility() == VISIBLE ? getAlpha() : 0.0f;
         drawingInfoOut.progressBarColor = applyAlpha(mForegroundColor, effectiveAlpha);
         drawingInfoOut.progressBarBackgroundColor = applyAlpha(mBackgroundColor, effectiveAlpha);
+        // Defaults to Color.TRANSPARENT
+        drawingInfoOut.progressBarStaticBackgroundColor = applyAlpha(mStaticBackgroundColor, effectiveAlpha);
 
         drawingInfoOut.cornerRadius = 0;
         if (useGradientDrawable()) {
+            drawingInfoOut.progressBarVisualUpdateAvailable = true;
             drawingInfoOut.cornerRadius = (float) (getBottom() - getTop()) / 2;
             if (mProgress == 0.0f) {
                 // Ensure the background drawable is fully visible when the progress is 0.
@@ -266,6 +273,8 @@
 
         int endIndicatorSize = getBottom() - getTop();
         if (ViewCompat.getLayoutDirection(this) == LAYOUT_DIRECTION_LTR) {
+            drawingInfoOut.progressBarStaticBackgroundRect.set(
+                    getLeft(), getTop(), getRight(), getBottom());
             drawingInfoOut.progressBarRect.set(
                     getLeft(),
                     getTop(),
@@ -290,6 +299,8 @@
                     getRight(),
                     getBottom());
         } else {
+            drawingInfoOut.progressBarStaticBackgroundRect.set(
+                    getRight(), getTop(), getLeft(), getBottom());
             drawingInfoOut.progressBarRect.set(
                     getRight() - Math.round(mProgress * getWidth()),
                     getTop(),
@@ -395,6 +406,7 @@
      */
     public void setProgressGapBackgroundColor(int color) {
         super.setBackgroundColor(color);
+        mStaticBackgroundColor = color;
     }
 
     @Override
diff --git a/components/browser_ui/widget/android/java/src/org/chromium/components/browser_ui/widget/tile/TileView.java b/components/browser_ui/widget/android/java/src/org/chromium/components/browser_ui/widget/tile/TileView.java
index ab392112..f0d9c61 100644
--- a/components/browser_ui/widget/android/java/src/org/chromium/components/browser_ui/widget/tile/TileView.java
+++ b/components/browser_ui/widget/android/java/src/org/chromium/components/browser_ui/widget/tile/TileView.java
@@ -70,19 +70,20 @@
      * @param icon The icon to display on the tile.
      * @param titleLines The number of text lines to use for the tile title.
      */
-    public void initialize(String title, boolean showOfflineBadge, Drawable icon, int titleLines) {
+    public void initialize(
+            String title, boolean showOfflineBadge, @Nullable Drawable icon, int titleLines) {
         setOfflineBadgeVisibility(showOfflineBadge);
         setIconDrawable(icon);
         setTitle(title, titleLines);
     }
 
     /** Renders the icon or clears it from the view if the icon is null. */
-    public void setIconDrawable(Drawable icon) {
+    public void setIconDrawable(@Nullable Drawable icon) {
         mIconView.setImageDrawable(icon);
     }
 
     /** Applies or clears icon tint. */
-    public void setIconTint(ColorStateList color) {
+    public void setIconTint(@Nullable ColorStateList color) {
         ImageViewCompat.setImageTintList(mIconView, color);
     }
 
diff --git a/components/browsing_data/core/browsing_data_utils.cc b/components/browsing_data/core/browsing_data_utils.cc
index fa781d9..5b2513f 100644
--- a/components/browsing_data/core/browsing_data_utils.cc
+++ b/components/browsing_data/core/browsing_data_utils.cc
@@ -18,6 +18,7 @@
 #include "components/browsing_data/core/counters/autofill_counter.h"
 #include "components/browsing_data/core/counters/history_counter.h"
 #include "components/browsing_data/core/counters/passwords_counter.h"
+#include "components/browsing_data/core/features.h"
 #include "components/browsing_data/core/pref_names.h"
 #include "components/prefs/pref_service.h"
 #include "components/strings/grit/components_strings.h"
@@ -52,7 +53,6 @@
   return domains_list;
 }
 
-#if BUILDFLAG(IS_ANDROID) || BUILDFLAG(IS_IOS)
 // Constructs the text to be displayed by the history counter from the given
 // `history_result`. The string is based on the unique domains within the
 // deletion range and if there are synced entries within the deletion range.
@@ -105,7 +105,6 @@
   return l10n_util::GetStringFUTF16(
       IDS_DEL_BROWSING_HISTORY_COUNTER_SINGLE_DOMAIN_TEXT, last_visited_domain);
 }
-#endif  // BUILDFLAG(IS_ANDROID) || BUILDFLAG(IS_IOS)
 }  // namespace
 
 namespace browsing_data {
@@ -288,7 +287,6 @@
     NOTREACHED();
   }
 
-  // TODO(crbug.com/397187800): Migrate to displaying the domains for Desktop.
   if (pref_name == prefs::kDeleteBrowsingHistory) {
 #if BUILDFLAG(IS_ANDROID) || BUILDFLAG(IS_IOS)
     // History counter.
@@ -296,6 +294,13 @@
         static_cast<const HistoryCounter::HistoryResult*>(result));
 #else   // !(BUILDFLAG(IS_ANDROID) || BUILDFLAG(IS_IOS))
     // History counter.
+    if (base::FeatureList::IsEnabled(features::kDbdRevampDesktop)) {
+      return CreateHistoryCounterString(
+          static_cast<const HistoryCounter::HistoryResult*>(result));
+    }
+
+    // TODO(crbug.com/397187800): Clean up item count strings logic once
+    // kDbdRevampDesktop is launched.
     const HistoryCounter::HistoryResult* history_result =
         static_cast<const HistoryCounter::HistoryResult*>(result);
     BrowsingDataCounter::ResultInt local_item_count = history_result->Value();
diff --git a/components/browsing_data/core/browsing_data_utils_unittest.cc b/components/browsing_data/core/browsing_data_utils_unittest.cc
index 7677c15..0b1f06c 100644
--- a/components/browsing_data/core/browsing_data_utils_unittest.cc
+++ b/components/browsing_data/core/browsing_data_utils_unittest.cc
@@ -12,12 +12,14 @@
 #include "base/strings/stringprintf.h"
 #include "base/strings/utf_string_conversions.h"
 #include "base/task/single_thread_task_runner.h"
+#include "base/test/scoped_feature_list.h"
 #include "base/test/task_environment.h"
 #include "components/autofill/core/browser/data_manager/test_personal_data_manager.h"
 #include "components/autofill/core/browser/webdata/autofill_webdata_service.h"
 #include "components/browsing_data/core/counters/autofill_counter.h"
 #include "components/browsing_data/core/counters/history_counter.h"
 #include "components/browsing_data/core/counters/passwords_counter.h"
+#include "components/browsing_data/core/features.h"
 #include "components/browsing_data/core/pref_names.h"
 #include "components/password_manager/core/browser/password_store/test_password_store.h"
 #include "components/prefs/pref_service.h"
@@ -225,7 +227,11 @@
 #else  // !(BUILDFLAG(IS_ANDROID) || BUILDFLAG(IS_IOS))
 
 // Tests the output of the History counter.
-TEST_F(BrowsingDataUtilsTest, Deprecated_HistoryCounterResult) {
+// TODO(crbug.com/397187800): Clean up once kDbdRevampDesktop is launched.
+TEST_F(BrowsingDataUtilsTest, HistoryCounterResult_RevampDisabled) {
+  base::test::ScopedFeatureList feature_list;
+  feature_list.InitAndDisableFeature(features::kDbdRevampDesktop);
+
   history::HistoryService history_service;
   HistoryCounter counter(&history_service,
                          HistoryCounter::GetUpdatedWebHistoryServiceCallback(),
@@ -264,6 +270,60 @@
   }
 }
 
+// Tests the output of the History counter with kDbdRevampDesktop, the history
+// counter should count the unique domains.
+TEST_F(BrowsingDataUtilsTest, HistoryCounterResult_RevampEnabled) {
+  base::test::ScopedFeatureList feature(features::kDbdRevampDesktop);
+
+  history::HistoryService history_service;
+  HistoryCounter counter(&history_service,
+                         HistoryCounter::GetUpdatedWebHistoryServiceCallback(),
+                         nullptr);
+  counter.Init(prefs(), ClearBrowsingDataTab::ADVANCED, base::DoNothing());
+
+  const struct TestCase {
+    int num_history;
+    int is_sync_enabled;
+    int has_sync_visits;
+    std::string last_visited_domain;
+    int unique_domains;
+    std::string expected_output;
+  } kTestCases[] = {
+      // No sync, no synced visits:
+      {0, false, false, "", 0, "None"},
+      {0, false, false, "google.com", 1, "From google.com"},
+      {1, false, false, "google.com", 1, "From google.com"},
+      {5, false, false, "google.com", 5, "From google.com + 4 sites"},
+      // Sync but not synced visits:
+      {0, true, false, "", 0, "None"},
+      {1, true, false, "google.com", 1, "From google.com"},
+      {0, true, false, "google.com", 1, "From google.com"},
+      {5, true, false, "google.com", 5, "From google.com + 4 sites"},
+      // Sync and synced visits:
+      {0, true, true, "", 0, "From at least 1 site on synced devices"},
+      {1, true, true, "google.com", 1,
+       "From google.com (more on synced devices)"},
+      {0, true, true, "google.com", 1,
+       "From google.com (more on synced devices)"},
+      {5, true, true, "google.com", 5,
+       "From google.com + 4 sites (more on synced devices)"},
+  };
+
+  for (const TestCase& test_case : kTestCases) {
+    HistoryCounter::HistoryResult result(
+        &counter, test_case.num_history, test_case.is_sync_enabled,
+        test_case.has_sync_visits, test_case.last_visited_domain,
+        test_case.unique_domains);
+    SCOPED_TRACE(
+        base::StringPrintf("Test params: %d history, %d has_synced_visits, "
+                           "last visted domain is %s",
+                           test_case.num_history, test_case.has_sync_visits,
+                           test_case.last_visited_domain));
+    std::u16string output = browsing_data::GetCounterTextFromResult(&result);
+    EXPECT_EQ(output, base::ASCIIToUTF16(test_case.expected_output));
+  }
+}
+
 #endif  // BUILDFLAG(IS_ANDROID) || BUILDFLAG(IS_IOS)
 
 }  // namespace browsing_data
diff --git a/components/browsing_data/core/counters/history_counter.cc b/components/browsing_data/core/counters/history_counter.cc
index aa8b288..1a426ae 100644
--- a/components/browsing_data/core/counters/history_counter.cc
+++ b/components/browsing_data/core/counters/history_counter.cc
@@ -69,15 +69,14 @@
   domain_fetching_finished_ = false;
 
   // Count the locally stored items.
+  // TODO(crbug.com/397187800): Clean up GetHistoryCount logic once
+  // kDbdRevampDesktop is launched.
   history_service_->GetHistoryCount(
       GetPeriodStart(), GetPeriodEnd(),
       base::BindOnce(&HistoryCounter::OnGetLocalHistoryCount,
                      weak_ptr_factory_.GetWeakPtr()),
       &cancelable_task_tracker_);
 
-  // TODO(crbug.com/397187800): Once the Desktop UI is migrated to the new
-  // strings based on domains, consider only using the GetUniqueDomainsVisited
-  // call.
   history_service_->GetUniqueDomainsVisited(
       GetPeriodStart(), GetPeriodEnd(),
       base::BindOnce(&HistoryCounter::OnGetUniqueDomains,
diff --git a/components/browsing_data/core/features.cc b/components/browsing_data/core/features.cc
index 15d9a0c..bfb982a0 100644
--- a/components/browsing_data/core/features.cc
+++ b/components/browsing_data/core/features.cc
@@ -12,4 +12,10 @@
              "BrowsingDataModel",
              base::FEATURE_DISABLED_BY_DEFAULT);
 #endif  // BUILDFLAG(IS_ANDROID)
+
+#if !BUILDFLAG(IS_ANDROID) && !BUILDFLAG(IS_IOS)
+BASE_FEATURE(kDbdRevampDesktop,
+             "DbdRevampDesktop",
+             base::FEATURE_DISABLED_BY_DEFAULT);
+#endif  // !BUILDFLAG(IS_ANDROID) && !BUILDFLAG(IS_IOS)
 }  // namespace browsing_data::features
diff --git a/components/browsing_data/core/features.h b/components/browsing_data/core/features.h
index 041a3f1..0508d49 100644
--- a/components/browsing_data/core/features.h
+++ b/components/browsing_data/core/features.h
@@ -14,6 +14,12 @@
 BASE_DECLARE_FEATURE(kBrowsingDataModel);
 #endif  // BUILDFLAG(IS_ANDROID)
 
+// Enables a revamped Delete Browsing Data dialog. This includes UI changes,
+// updates to history counter logic and removal of the bulk password deletion
+// option from the dialog.
+#if !BUILDFLAG(IS_ANDROID) && !BUILDFLAG(IS_IOS)
+BASE_DECLARE_FEATURE(kDbdRevampDesktop);
+#endif  // !BUILDFLAG(IS_ANDROID) && !BUILDFLAG(IS_IOS)
 }  // namespace browsing_data::features
 
 #endif  // COMPONENTS_BROWSING_DATA_CORE_FEATURES_H_
diff --git a/components/certificate_transparency/data/log_list.json b/components/certificate_transparency/data/log_list.json
index 32136fb8..5eb1c155 100644
--- a/components/certificate_transparency/data/log_list.json
+++ b/components/certificate_transparency/data/log_list.json
@@ -1,6 +1,6 @@
 {
-  "version": "55.3",
-  "log_list_timestamp": "2025-06-12T12:56:02Z",
+  "version": "55.4",
+  "log_list_timestamp": "2025-06-13T12:55:02Z",
   "operators": [
     {
       "name": "Google",
diff --git a/components/cronet/gn2bp/gen_android_bp.py b/components/cronet/gn2bp/gen_android_bp.py
index 5dd41d86..91f7c35b 100755
--- a/components/cronet/gn2bp/gen_android_bp.py
+++ b/components/cronet/gn2bp/gen_android_bp.py
@@ -2602,7 +2602,8 @@
   blueprint.add_module(module)
   return module
 
-def set_module_flags(module, cflags, defines, ldflags, libs):
+
+def configure_cc_module(module, cflags, defines, ldflags, libs):
   module.cflags.update(_get_cflags(cflags, defines))
   module.ldflags.update({
       flag
@@ -2610,6 +2611,14 @@
       if flag in ldflag_allowlist or flag.startswith("-Wl,-wrap,")
   })
   _set_linker_script(module, libs)
+  for lib in libs:
+    # Generally library names should be mangled as 'libXXX', unless they
+    # are HAL libraries (e.g., android.hardware.health@2.0) or AIDL c++ / NDK
+    # libraries (e.g. "android.hardware.power.stats-V1-cpp")
+    android_lib = lib if '@' in lib or "-cpp" in lib or "-ndk" in lib \
+      else 'lib' + lib
+    if lib in shared_library_allowlist:
+      module.shared_libs.add(android_lib)
   # TODO: implement proper cflag parsing.
   for flag in cflags:
     if '-std=' in flag:
@@ -2806,14 +2815,14 @@
     module.rtti = target.rtti
 
     if target.type in gn_utils.LINKER_UNIT_TYPES:
-      set_module_flags(module, target.cflags, target.defines, target.ldflags,
-                       target.libs)
+      configure_cc_module(module, target.cflags, target.defines, target.ldflags,
+                          target.libs)
       set_module_include_dirs(module, target.cflags, target.include_dirs)
       # TODO: set_module_xxx is confusing, apply similar function to module and target in better way.
       for arch_name, arch in target.get_archs().items():
         # TODO(aymanm): Make libs arch-specific.
-        set_module_flags(module.target[arch_name], arch.cflags, arch.defines,
-                         arch.ldflags, [])
+        configure_cc_module(module.target[arch_name], arch.cflags, arch.defines,
+                            arch.ldflags, arch.libs)
         # -Xclang -target-feature -Xclang +mte are used to enable MTE (Memory Tagging Extensions).
         # Flags which does not start with '-' could not be in the cflags so enabling MTE by
         # -march and -mcpu Feature Modifiers. MTE is only available on arm64. This is needed for
@@ -2872,14 +2881,6 @@
       # Don't try to inject library/source dependencies into genrules or
       # filegroups because they are not compiled in the traditional sense.
       module.defaults = [cc_defaults_module]
-      for lib in target.libs:
-        # Generally library names should be mangled as 'libXXX', unless they
-        # are HAL libraries (e.g., android.hardware.health@2.0) or AIDL c++ / NDK
-        # libraries (e.g. "android.hardware.power.stats-V1-cpp")
-        android_lib = lib if '@' in lib or "-cpp" in lib or "-ndk" in lib \
-          else 'lib' + lib
-        if lib in shared_library_allowlist:
-          module.add_android_shared_lib(android_lib)
 
     if module.type == 'cc_library_shared':
       output_name = target.output_name
diff --git a/components/cronet/gn2bp/gn_utils.py b/components/cronet/gn2bp/gn_utils.py
index 48164db..4744bb97 100644
--- a/components/cronet/gn2bp/gn_utils.py
+++ b/components/cronet/gn2bp/gn_utils.py
@@ -122,6 +122,7 @@
         self.args = []
         self.response_file_contents = ''
         self.rust_flags = list()
+        self.libs = set()
 
     def __init__(self, name, gn_type):
       self.name = name  # e.g. //src/ipc:ipc
@@ -149,9 +150,6 @@
       # These are valid only for gn_type == 'action'
       self.script = ''
 
-      # These variables are propagated up when encountering a dependency
-      # on a source_set target.
-      self.libs = set()
       self.proto_deps = set()
       self.rtti = False
 
@@ -202,6 +200,10 @@
     def outputs(self):
       return self.arch['common'].outputs
 
+    @property
+    def libs(self):
+      return self.arch['common'].libs
+
     @outputs.setter
     def outputs(self, val):
       self.arch['common'].outputs = val
@@ -281,11 +283,11 @@
 
     def update(self, other, arch):
       for key in ('cflags', 'defines', 'deps', 'include_dirs', 'ldflags',
-                  'proto_deps', 'libs', 'proto_paths'):
+                  'proto_deps', 'proto_paths'):
         getattr(self, key).update(getattr(other, key, []))
 
       for key_in_arch in ('cflags', 'defines', 'include_dirs', 'deps',
-                          'ldflags'):
+                          'ldflags', 'libs'):
         getattr(self.arch[arch],
                 key_in_arch).update(getattr(other.arch[arch], key_in_arch, []))
 
@@ -333,7 +335,7 @@
 
       for key in ('sources', 'cflags', 'defines', 'include_dirs', 'deps',
                   'inputs', 'outputs', 'args', 'response_file_contents',
-                  'ldflags', 'rust_flags'):
+                  'ldflags', 'rust_flags', 'libs'):
         self._finalize_attribute(key)
 
     def get_target_name(self):
@@ -609,7 +611,7 @@
     target.build_file_path = _get_build_path_from_label(target_name)
     target.arch[arch].cflags.update(
         desc.get('cflags', []) + desc.get('cflags_cc', []))
-    target.libs.update(desc.get('libs', []))
+    target.arch[arch].libs.update(desc.get('libs', []))
     target.arch[arch].ldflags.update(desc.get('ldflags', []))
     target.arch[arch].defines.update(desc.get('defines', []))
     target.arch[arch].include_dirs.update(desc.get('include_dirs', []))
diff --git a/components/cronet/gn2bp/templates/Android.extras.bp.template b/components/cronet/gn2bp/templates/Android.extras.bp.template
index 39a4e4d..898ed33 100644
--- a/components/cronet/gn2bp/templates/Android.extras.bp.template
+++ b/components/cronet/gn2bp/templates/Android.extras.bp.template
@@ -119,7 +119,7 @@
         "components/cronet/testing/test_server/data/**/*",
     ],
     visibility: [
-        "//external/cronet/android/tests:__subpackages__",
+        "//external/cronet:__subpackages__",
     ],
 }
 
@@ -152,7 +152,7 @@
         test: true,
     },
     visibility: [
-        "//external/cronet/android/tests:__subpackages__",
+        "//external/cronet:__subpackages__",
     ],
 }
 
@@ -160,14 +160,14 @@
     name: "${GN2BP_MODULE_PREFIX}java_framework_defaults",
     sdk_version: "module_current",
     libs: [
-         "framework-connectivity-pre-jarjar-without-cronet",
-         "framework-connectivity.stubs.module_lib",
-         "framework-connectivity-t.stubs.module_lib",
-         "framework-location.stubs.module_lib",
-         "framework-mediaprovider.stubs.module_lib",
-         "framework-statsd.stubs.module_lib",
-         "framework-wifi.stubs.module_lib",
-         "framework-sdkextensions.stubs.module_lib",
+        "framework-connectivity-pre-jarjar-without-cronet",
+        "framework-connectivity.stubs.module_lib",
+        "framework-connectivity-t.stubs.module_lib",
+        "framework-location.stubs.module_lib",
+        "framework-mediaprovider.stubs.module_lib",
+        "framework-statsd.stubs.module_lib",
+        "framework-wifi.stubs.module_lib",
+        "framework-sdkextensions.stubs.module_lib",
     ],
     visibility: [
         "//external/cronet:__subpackages__",
diff --git a/components/enterprise/common/proto/BUILD.gn b/components/enterprise/common/proto/BUILD.gn
index f89d0f3..f365b7d 100644
--- a/components/enterprise/common/proto/BUILD.gn
+++ b/components/enterprise/common/proto/BUILD.gn
@@ -29,6 +29,9 @@
     "//components/safe_browsing/core/common/proto:csd_proto",
     "//components/safe_browsing/core/common/proto:csd_proto_extras",
   ]
+
+  # The fuzzable_proto_library rule above uses the full protobuf runtime.
+  protobuf_full_support = true
 }
 
 proto_library("dlp_policy_event_proto") {
diff --git a/components/feature_engagement/public/feature_configurations.cc b/components/feature_engagement/public/feature_configurations.cc
index 9ccd012..b4be36e 100644
--- a/components/feature_engagement/public/feature_configurations.cc
+++ b/components/feature_engagement/public/feature_configurations.cc
@@ -1903,6 +1903,25 @@
 
     return config;
   }
+  if (kIPHAutofillEnableLoyaltyCardsFeature.name == feature->name) {
+    // A config that allows autofill loyalty card IPH to be shown
+    // only one time when the user first encounter the feature.
+    FeatureConfig config;
+    config.valid = true;
+    config.availability = Comparator(ANY, 0);
+    config.session_rate = Comparator(EQUAL, 0);
+    config.session_rate_impact.type = SessionRateImpact::Type::ALL;
+    config.trigger = EventConfig("keyboard_accessory_loyalty_cards_iph_trigger",
+                                 Comparator(LESS_THAN, 1),
+                                 feature_engagement::kMaxStoragePeriod,
+                                 feature_engagement::kMaxStoragePeriod);
+    config.used =
+        EventConfig("keyboard_accessory_loyalty_cards_autofilled",
+                    Comparator(EQUAL, 0), feature_engagement::kMaxStoragePeriod,
+                    feature_engagement::kMaxStoragePeriod);
+
+    return config;
+  }
 #endif  // BUILDFLAG(IS_ANDROID)
 
 #if BUILDFLAG(IS_WIN) || BUILDFLAG(IS_APPLE) || BUILDFLAG(IS_LINUX) || \
diff --git a/components/input/render_widget_host_input_event_router.cc b/components/input/render_widget_host_input_event_router.cc
index 3341f8f0..346b878c 100644
--- a/components/input/render_widget_host_input_event_router.cc
+++ b/components/input/render_widget_host_input_event_router.cc
@@ -165,9 +165,10 @@
     // If the touch-event was sent directly to the view without going through
     // RenderWidgetHostInputEventRouter, as is the case with AndroidWebView,
     // then we must ack it directly.
-    if (target_view)
+    if (target_view && target_view->GetRootView()) {
       target_view->GetRootView()->ProcessAckedTouchEvent(touch_event,
                                                          ack_result);
+    }
     return;
   }
 
diff --git a/components/network_session_configurator/browser/network_session_configurator.cc b/components/network_session_configurator/browser/network_session_configurator.cc
index 44234037..5619ee07 100644
--- a/components/network_session_configurator/browser/network_session_configurator.cc
+++ b/components/network_session_configurator/browser/network_session_configurator.cc
@@ -79,14 +79,15 @@
 
 bool GetVariationBoolParamOrFeatureSetting(const VariationParameters& params,
                                            const std::string& key,
-                                           bool feature_setting) {
+                                           bool feature_setting,
+                                           const std::string& param_setting) {
   // Don't override feature setting if variation param doesn't exist.
   if (params.find(key) == params.end()) {
     return feature_setting;
   }
 
   return base::EqualsCaseInsensitiveASCII(GetVariationParam(params, key),
-                                          "true");
+                                          param_setting);
 }
 
 spdy::SettingsMap GetHttp2Settings(
@@ -306,14 +307,16 @@
   return GetVariationBoolParamOrFeatureSetting(
       quic_trial_params, "migrate_sessions_on_network_change_v2",
       base::FeatureList::IsEnabled(
-          net::features::kMigrateSessionsOnNetworkChangeV2));
+          net::features::kMigrateSessionsOnNetworkChangeV2),
+      "true");
 }
 
 bool ShouldQuicUseNewAlpsCodepoint(
     const VariationParameters& quic_trial_params) {
-  return GetVariationBoolParamOrFeatureSetting(
+  return !GetVariationBoolParamOrFeatureSetting(
       quic_trial_params, "use_new_alps_codepoint",
-      base::FeatureList::IsEnabled(net::features::kUseNewAlpsCodepointQUIC));
+      !base::FeatureList::IsEnabled(net::features::kUseNewAlpsCodepointQUIC),
+      "false");
 }
 
 bool ShouldQuicMigrateSessionsEarlyV2(
diff --git a/components/network_session_configurator/browser/network_session_configurator_unittest.cc b/components/network_session_configurator/browser/network_session_configurator_unittest.cc
index 9958f46..015f95c5 100644
--- a/components/network_session_configurator/browser/network_session_configurator_unittest.cc
+++ b/components/network_session_configurator/browser/network_session_configurator_unittest.cc
@@ -107,9 +107,7 @@
       quic_params_.initial_delay_for_broken_alternative_service.has_value());
   EXPECT_FALSE(quic_params_.exponential_backoff_on_initial_delay.has_value());
   EXPECT_FALSE(quic_params_.delay_main_job_with_available_spdy_session);
-  EXPECT_EQ(
-      base::FeatureList::IsEnabled(net::features::kUseNewAlpsCodepointQUIC),
-      quic_params_.use_new_alps_codepoint);
+  EXPECT_TRUE(quic_params_.use_new_alps_codepoint);
   EXPECT_TRUE(quic_params_.enable_origin_frame);
   EXPECT_TRUE(quic_params_.skip_dns_with_origin_frame);
   EXPECT_FALSE(quic_params_.ignore_ip_matching_when_finding_existing_sessions);
@@ -1090,10 +1088,7 @@
   NetworkSessionConfiguratorWithNewAlpsCodepointTest()
       : use_new_alps_codepoint_feature_setting_(std::get<0>(GetParam())),
         use_new_alps_codepoint_field_trial_setting_(std::get<1>(GetParam())) {
-    if (use_new_alps_codepoint_feature_setting_) {
-      feature_list_.InitAndEnableFeature(
-          net::features::kUseNewAlpsCodepointQUIC);
-    } else {
+    if (!use_new_alps_codepoint_feature_setting_) {
       feature_list_.InitAndDisableFeature(
           net::features::kUseNewAlpsCodepointQUIC);
     }
diff --git a/components/omnibox/composebox/BUILD.gn b/components/omnibox/composebox/BUILD.gn
index e1b39bd6..4cd435a 100644
--- a/components/omnibox/composebox/BUILD.gn
+++ b/components/omnibox/composebox/BUILD.gn
@@ -9,3 +9,12 @@
   ]
   deps = [ "//base:base" ]
 }
+
+source_set("unit_tests") {
+  testonly = true
+  sources = [ "composebox_query_controller_unittest.cc" ]
+  deps = [
+    ":composebox",
+    "//base/test:test_support",
+  ]
+}
diff --git a/components/omnibox/composebox/composebox_query_controller.cc b/components/omnibox/composebox/composebox_query_controller.cc
index d4ccb85..b9b7635 100644
--- a/components/omnibox/composebox/composebox_query_controller.cc
+++ b/components/omnibox/composebox/composebox_query_controller.cc
@@ -4,7 +4,22 @@
 
 #include "components/omnibox/composebox/composebox_query_controller.h"
 
-// TODO(420700441) Add unittest coverage.
+ComposeboxQueryController::~ComposeboxQueryController() {
+  // Ensure NTP exits are tracked. i.e. The user starts a composebox session,
+  // and closes the NTP without explicitly exiting the session or submitting a
+  // query.
+  // TODO(420701010): Add unittest coverage, e.g. ensuring abandoned metrics
+  // are correctly emitted.
+  if (session_state() == SessionState::kSessionStarted) {
+    NotifySessionAbandoned();
+  }
+}
+
 void ComposeboxQueryController::NotifySessionStarted() {
+  session_state_ = SessionState::kSessionStarted;
   session_start_time_ = base::Time::Now();
 }
+
+void ComposeboxQueryController::NotifySessionAbandoned() {
+  session_state_ = SessionState::kSessionAbandoned;
+}
diff --git a/components/omnibox/composebox/composebox_query_controller.h b/components/omnibox/composebox/composebox_query_controller.h
index 747012e..670947d1 100644
--- a/components/omnibox/composebox/composebox_query_controller.h
+++ b/components/omnibox/composebox/composebox_query_controller.h
@@ -7,17 +7,28 @@
 
 #include "base/time/time.h"
 
+enum class SessionState {
+  kNone = 0,
+  kSessionStarted = 1,
+  kSessionAbandoned = 2,
+  kSubmittedQuery = 3,
+};
+
 class ComposeboxQueryController {
  public:
   ComposeboxQueryController() = default;
-  virtual ~ComposeboxQueryController() = default;
+  virtual ~ComposeboxQueryController();
 
   // Session management.
   void NotifySessionStarted();
+  void NotifySessionAbandoned();
+
+  SessionState session_state() { return session_state_; }
 
  private:
   // TODO(420701010) Create SessionMetrics struct.
   base::Time session_start_time_;
+  SessionState session_state_ = SessionState::kNone;
 };
 
 #endif  // COMPONENTS_OMNIBOX_COMPOSEBOX_COMPOSEBOX_QUERY_CONTROLLER_H_
diff --git a/components/omnibox/composebox/composebox_query_controller_unittest.cc b/components/omnibox/composebox/composebox_query_controller_unittest.cc
new file mode 100644
index 0000000..9b3f5428
--- /dev/null
+++ b/components/omnibox/composebox/composebox_query_controller_unittest.cc
@@ -0,0 +1,32 @@
+// Copyright 2025 The Chromium Authors
+// Use of this source code is governed by a BSD-style license that can be
+// found in the LICENSE file.
+
+#include "components/omnibox/composebox/composebox_query_controller.h"
+
+#include "testing/gtest/include/gtest/gtest.h"
+
+class ComposeboxQueryControllerTest : public testing::Test {
+ public:
+  ComposeboxQueryControllerTest() = default;
+  ~ComposeboxQueryControllerTest() override = default;
+
+  void SetUp() override {
+    controller_ = std::make_unique<ComposeboxQueryController>();
+  }
+
+  ComposeboxQueryController& controller() { return *controller_; }
+
+ private:
+  std::unique_ptr<ComposeboxQueryController> controller_;
+};
+
+TEST_F(ComposeboxQueryControllerTest, NotifySessionStarted) {
+  controller().NotifySessionStarted();
+  EXPECT_EQ(SessionState::kSessionStarted, controller().session_state());
+}
+
+TEST_F(ComposeboxQueryControllerTest, NotifySessionAbandoned) {
+  controller().NotifySessionAbandoned();
+  EXPECT_EQ(SessionState::kSessionAbandoned, controller().session_state());
+}
diff --git a/components/policy/resources/policy_templates_de.xtb b/components/policy/resources/policy_templates_de.xtb
index 33f100d..e9412a2 100644
--- a/components/policy/resources/policy_templates_de.xtb
+++ b/components/policy/resources/policy_templates_de.xtb
@@ -106,6 +106,7 @@
       Sollte diese Richtlinie nicht konfiguriert sein, kommt das Standardprofilverzeichnis zum Einsatz.</translation>
 <translation id="1053981429146436598">Eine Gruppe von Richtlinien zu den Einstellungen für Anfragen an private Netzwerke.  Siehe https://wicg.github.io/private-network-access/.</translation>
 <translation id="1059069692400941670">Import der Standardsuchmaschine bei der ersten Ausführung deaktivieren</translation>
+<translation id="1060020040574767394">Benutzerdefinierte Einstellungen des Wasserzeichens konfigurieren</translation>
 <translation id="1062011392452772310">Remote-Bescheinigung (Remote Attestation) für das Gerät aktivieren</translation>
 <translation id="1062407476771304334">Ersetzen</translation>
 <translation id="1063860513136880926">Wenn die Richtlinie aktiviert ist, können keine Screenshots über Tastenkombinationen oder Erweiterungs-APIs aufgenommen werden. Ist die Richtlinie deaktiviert oder nicht konfiguriert, sind Screenshots zulässig.
@@ -493,6 +494,7 @@
 <translation id="1379689277107868399">Ist die Richtlinie auf „DoNotPrompt“ gesetzt oder nicht konfiguriert, fordert <ph name="PRODUCT_NAME" /> den Nutzer nicht automatisch auf, sich noch einmal im Browser zu authentifizieren.
 
 Wenn „PromptInTab“ festgelegt ist und die Authentifizierung des Nutzers abläuft, wird sofort ein neuer Tab mit der Google-Anmeldeseite geöffnet. Dies geschieht nur bei Verwendung von <ph name="CHROME_SYNC_NAME" />.</translation>
+<translation id="1384040387986918863">Füllungsdeckkraft des Texts auf dem Wasserzeichen von 0 (durchsichtig) bis 100 (undurchsichtig).</translation>
 <translation id="1384459581748403878">Referenz: <ph name="REFERENCE_URL" /></translation>
 <translation id="1384594066274112751">Mit dieser Richtlinie wird jede URL, die mit einem oder mehreren der angegebenen Muster (im <ph name="URL_BLOCKLIST_POLICY_NAME" />-Filterformat) übereinstimmt, nie vom Browser verworfen.
       Dies gilt für das Verwerfen bei hoher Speicherauslastung und bei der Verwendung des Modus für hohe Effizienz.
@@ -1788,6 +1790,13 @@
       Nutzer können diese Einstellung weder ändern noch überschreiben.
 
       Hinweis: Durch diese Richtlinie wird allen HTTP- und HTTPS-Anfragen, die an google.com-Domains gesendet werden, der Header „X-GoogApps-Allowed-Domains“ angehängt (siehe https://support.google.com/a/answer/1668854).</translation>
+<translation id="2287414160388710497">Ermöglicht Administratoren, das Erscheinungsbild von Wasserzeichen anzupassen, die durch Regeln zum Schutz vor Datenverlust (Data Loss Prevention, DLP) angewendet werden. Dazu gehört auch das Festlegen der Deckkraft für Füllung und Kontur sowie der Schriftgröße.
+Wenn diese Richtlinie oder einige Werte nicht konfiguriert sind, verwendet Chrome die Standardwerte für Wasserzeichen.
+Diese sind: Füllungsdeckkraft bei 4, Konturdeckkraft bei 6 und Schriftgröße bei 24.
+
+Die „Füllungsdeckkraft“ ist ein Prozentwert von 0 (völlig durchsichtig) bis 100 (völlig undurchsichtig).
+Die „Konturdeckkraft“ ist ein Prozentwert von 0 (völlig durchsichtig) bis 100 (völlig undurchsichtig).
+Der Wert für „Schriftgröße“ wird in Punkten angegeben.</translation>
 <translation id="2288506601233091655">Der Verlauf der Druckaufträge darf nicht gelöscht werden</translation>
 <translation id="2289688405312849186">Prinzipalname des Nutzers: „nutzer@realm“. Der Platzhalter „<ph name="LOGIN_ID_PLACEHOLDER" />“ wird durch den Nutzernamen „nutzer“ ersetzt. Der Platzhalter „<ph name="LOGIN_EMAIL_PLACEHOLDER" />“ wird durch den vollständigen Prinzipalnamen des Nutzers „nutzer@realm“ ersetzt.</translation>
 <translation id="2290270645214705008">Wenn diese Richtlinie deaktiviert ist, kann der Host für den Remote-Zugriff keine eingehenden Verbindungen annehmen.  Diese Richtlinien wirkt sich nicht auf die Remote-Unterstützung aus.
@@ -2527,6 +2536,7 @@
 <translation id="288448261660192095">Wenn diese Richtlinie aktiviert ist, werden die physischen Ein- und Ausgabegeräte des Hosts für den Remote-Zugriff bei bestehender Remote-Verbindung deaktiviert.
 
       Ist diese Richtlinie deaktiviert oder nicht konfiguriert, können lokale und Remote-Nutzer mit dem Host interagieren, sofern dieser freigegeben ist.</translation>
+<translation id="288463102030083286">Konfiguration des benutzerdefinierten Wasserzeichens</translation>
 <translation id="2884765974461416016">Freigabe zwischen Android-Apps und Webanwendungen deaktivieren.</translation>
 <translation id="2886215882246310669">Die Richtlinie legt fest, ob <ph name="PRODUCT_OS_NAME" /> erlaubt, dass neue Family Link-Nutzerkonten zu diesem Gerät hinzugefügt werden können.
       Sie ist nur in Verbindung mit <ph name="DEVICE_USER_ALLOWLIST_POLICY_NAME" /> nützlich. Sie erlaubt neben den in der Zulassungsliste festgelegten Konten auch Family Link-Konten.
@@ -3137,6 +3147,7 @@
 <translation id="3278042410658310805">Gesprochenes Feedback auf dem Anmeldebildschirm deaktivieren und dem Nutzer erlauben, es vorübergehend zu aktivieren</translation>
 <translation id="328347261792478720">Der Browser zeigt standardmäßig für den Nutzer personalisierte Empfehlungen zu Medien an. Wenn diese Richtlinie deaktiviert ist, sind diese Empfehlungen für den Nutzer nicht sichtbar. Wenn sie aktiviert oder nicht konfiguriert ist, werden dem Nutzer die Empfehlungen zu Medien angezeigt.</translation>
 <translation id="3284094172359247914">Verwendung der WebUSB API steuern</translation>
+<translation id="3285231260918855067">Konturdeckkraft des Texts auf dem Wasserzeichen von 0 (durchsichtig) bis 100 (undurchsichtig).</translation>
 <translation id="3286159327013237833">„Automatischer Klick“ auf dem Anmeldebildschirm aktivieren</translation>
 <translation id="3288595667065905535">Release-Kanal</translation>
 <translation id="3291940794983537008">Einstellungen für generative KI-Funktionen in den Entwicklertools</translation>
@@ -8248,6 +8259,7 @@
 <translation id="6795485990775913659">Drucken nur ohne PIN zulassen</translation>
 <translation id="6796215185873669533">Standardmäßig Browsereinstellungen für die Hauptversion im User-Agent-String verwenden.</translation>
 <translation id="6800181452282128474">Keine Anfragen an Quirks Server stellen</translation>
+<translation id="6801739506172328815">Schriftgröße des Texts auf dem Wasserzeichen in Punkten.</translation>
 <translation id="6802412020718145539">Der PDF-Viewer verwendet die OOPIF-Architektur.</translation>
 <translation id="68031099365512050">Audiostatus melden</translation>
 <translation id="680356860463873420">Nutzern nicht erlauben, PluginVm zu verwenden</translation>
diff --git a/components/policy/resources/policy_templates_es.xtb b/components/policy/resources/policy_templates_es.xtb
index ef168bc..a373b412 100644
--- a/components/policy/resources/policy_templates_es.xtb
+++ b/components/policy/resources/policy_templates_es.xtb
@@ -106,6 +106,7 @@
       Si no se establece esta política, se utilizará el directorio de perfil predeterminado.</translation>
 <translation id="1053981429146436598">Un grupo de políticas relacionadas con los ajustes de solicitudes de redes privadas.  Consulta https://wicg.github.io/private-network-access/.</translation>
 <translation id="1059069692400941670">Inhabilitar la importación del buscador predeterminado en la primera ejecución</translation>
+<translation id="1060020040574767394">Configurar los ajustes de marca de agua personalizada</translation>
 <translation id="1062011392452772310">Habilitar confirmación remota para el dispositivo</translation>
 <translation id="1062407476771304334">Reemplazar</translation>
 <translation id="1063860513136880926">Si se habilita esta política, no se permitirá hacer capturas de pantalla mediante combinaciones de teclas ni APIs de extensión. Si se inhabilita esta política o no se establece, se permitirán las capturas de pantalla.
@@ -493,6 +494,7 @@
 <translation id="1379689277107868399">Si a esta política se le asigna el valor "DoNotPrompt" o no se define, <ph name="PRODUCT_NAME" /> no solicitará automáticamente al usuario que se vuelva a autenticar en el navegador.
 
 Si se le asigna el valor "PromptInTab", cuando la autenticación del usuario caduque, se abrirá inmediatamente una nueva pestaña con la página de inicio de sesión de Google. Esto solo ocurre si se usa <ph name="CHROME_SYNC_NAME" />.</translation>
+<translation id="1384040387986918863">Opacidad del relleno del texto de la marca de agua, de 0 (transparente) a 100 (opaco).</translation>
 <translation id="1384459581748403878">Referencia: <ph name="REFERENCE_URL" /></translation>
 <translation id="1384594066274112751">Esta política impide que el navegador descarte cualquier URL que coincida con uno o varios de los patrones que se especifiquen (usando el formato de filtro <ph name="URL_BLOCKLIST_POLICY_NAME" />).
       Esto se aplica al descarte de la presión de memoria y del modo Alta eficiencia.
@@ -1789,6 +1791,13 @@
       Los usuarios no podrán modificar ni anular este ajuste.
 
       Nota: Esta política provoca que el encabezado X-GoogApps-Allowed-Domains se añada a todas las solicitudes HTTP y HTTPS en todos los dominios de google.com, como se describe en https://support.google.com/a/answer/1668854.</translation>
+<translation id="2287414160388710497">Permite a los administradores personalizar el aspecto de las marcas de agua aplicadas por las reglas de Prevención de la pérdida de datos (DLP). Esto incluye establecer la opacidad del relleno o del contorno y el tamaño de la fuente.
+Si no se define esta política o algunos valores, Chrome usará su comportamiento predeterminado para las marcas de agua.
+Los valores predeterminados son: opacidad del relleno 4, opacidad del contorno 6 y tamaño de la fuente 24.
+
+La opacidad del relleno es un porcentaje que va del 0 (totalmente transparente) al 100 (totalmente opaco).
+La opacidad del contorno es un porcentaje que va del 0 (totalmente transparente) al 100 (totalmente opaco).
+El tamaño de la fuente se especifica en puntos.</translation>
 <translation id="2288506601233091655">No permitir que se elimine el historial de trabajos de impresión</translation>
 <translation id="2289688405312849186">Cuenta principal del usuario: "usuario@dominio". El marcador de posición <ph name="LOGIN_ID_PLACEHOLDER" /> se reemplazará por el nombre de usuario "usuario". El marcador de posición <ph name="LOGIN_EMAIL_PLACEHOLDER" /> se reemplazará por la cuenta principal completa "usuario@dominio".</translation>
 <translation id="2290270645214705008">Si se inhabilita esta política, el servicio de host de acceso remoto no se podrá iniciar ni configurar para que acepte conexiones entrantes.  Esta política no afecta a las situaciones de asistencia remota.
@@ -2530,6 +2539,7 @@
 <translation id="288448261660192095">Si se habilita esta política, los dispositivos físicos de entrada y salida del host de acceso remoto se inhabilitarán durante la conexión remota.
 
       Si se inhabilita esta política o no se le asigna ningún valor, los usuarios locales y los remotos podrán interactuar con el host cuando este se encuentre en modo compartido.</translation>
+<translation id="288463102030083286">Configuración de marca de agua personalizada</translation>
 <translation id="2884765974461416016">Inhabilitar la opción de compartir de Android a aplicación web.</translation>
 <translation id="2886215882246310669">Controla si <ph name="PRODUCT_OS_NAME" /> permite añadir nuevas cuentas de usuario de Family Link en el dispositivo.
       Esta política solo es útil si se combina con <ph name="DEVICE_USER_ALLOWLIST_POLICY_NAME" />. Permite añadir cuentas de Family Link, así como las cuentas que se definan en la lista de permitidas.
@@ -3142,6 +3152,7 @@
 <translation id="3278042410658310805">Inhabilitar los mensajes de voz en la pantalla de inicio de sesión y permitir que el usuario los habilite temporalmente</translation>
 <translation id="328347261792478720">De forma predeterminada, el navegador mostrará recomendaciones de contenido multimedia personalizadas al usuario. Si se inhabilita esta política, no se mostrarán estas recomendaciones al usuario. Si se habilita esta política o no se establece, se mostrarán recomendaciones de contenido multimedia al usuario.</translation>
 <translation id="3284094172359247914">Controlar el uso de la API WebUSB</translation>
+<translation id="3285231260918855067">Opacidad del contorno del texto de la marca de agua, de 0 (transparente) a 100 (opaco).</translation>
 <translation id="3286159327013237833">Habilitar el clic automático en la pantalla de inicio de sesión</translation>
 <translation id="3288595667065905535">Canal de lanzamiento</translation>
 <translation id="3291940794983537008">Configuración de las funciones de IA generativa de DevTools</translation>
@@ -8304,6 +8315,7 @@
 <translation id="6795485990775913659">Permitir imprimir solo sin PIN</translation>
 <translation id="6796215185873669533">Asigna el valor predeterminado de la configuración del navegador a la versión de la cadena user-agent.</translation>
 <translation id="6800181452282128474">No realizar consultas a Quirks Servers</translation>
+<translation id="6801739506172328815">Tamaño de la fuente del texto de la marca de agua en puntos.</translation>
 <translation id="6802412020718145539">El visor de PDFs usa la arquitectura OOPIF.</translation>
 <translation id="68031099365512050">Informar sobre el estado del audio</translation>
 <translation id="680356860463873420">No permitir que los usuarios utilicen un PluginVm</translation>
diff --git a/components/policy/resources/policy_templates_fr.xtb b/components/policy/resources/policy_templates_fr.xtb
index 8a09ba1..f622d50 100644
--- a/components/policy/resources/policy_templates_fr.xtb
+++ b/components/policy/resources/policy_templates_fr.xtb
@@ -106,6 +106,7 @@
       Si ce paramètre n'est pas configuré, le répertoire de profil par défaut est utilisé.</translation>
 <translation id="1053981429146436598">Groupe de règles liées aux paramètres des requêtes à un réseau privé.  Consultez https://wicg.github.io/private-network-access/.</translation>
 <translation id="1059069692400941670">Désactiver l'importation du moteur de recherche par défaut à la première exécution</translation>
+<translation id="1060020040574767394">Configurer les paramètres de filigrane personnalisés</translation>
 <translation id="1062011392452772310">Activer l'attestation à distance pour l'appareil</translation>
 <translation id="1062407476771304334">Remplacer</translation>
 <translation id="1063860513136880926">Si cette règle est activée, les utilisateurs ne peuvent pas faire de captures d'écran avec des raccourcis clavier ni avec des API d'extension. Si elle est désactivée ou qu'elle n'est pas configurée, les captures d'écran sont autorisées.
@@ -493,6 +494,7 @@
 <translation id="1379689277107868399">Si la règle est définie sur "DoNotPrompt" ou n'est pas configurée, <ph name="PRODUCT_NAME" /> n'invite pas automatiquement l'utilisateur à s'authentifier de nouveau auprès du navigateur.
 
 Si elle est définie sur "PromptInTab", lorsque l'authentification de l'utilisateur expire, un nouvel onglet avec la page de connexion Google s'ouvre immédiatement. Cela ne se produit que si la <ph name="CHROME_SYNC_NAME" /> est utilisée.</translation>
+<translation id="1384040387986918863">Opacité du remplissage du texte du filigrane, de 0 (transparent) à 100 (opaque).</translation>
 <translation id="1384459581748403878">Référence : <ph name="REFERENCE_URL" /></translation>
 <translation id="1384594066274112751">Cette règle détermine que toute URL correspondant à un ou plusieurs des formats qu'elle spécifie (avec le format de filtre <ph name="URL_BLOCKLIST_POLICY_NAME" />) ne sera jamais supprimée par le navigateur.
       Cela s'applique à la suppression de la pression sur la mémoire et du mode Haute efficacité.
@@ -1788,6 +1790,13 @@
       Les utilisateurs ne peuvent ni modifier, ni ignorer ce paramètre.
 
       Remarque : Cette règle entraîne l'ajout de l'en-tête "X-GoogApps-Allowed-Domains" à toutes les requêtes HTTP et HTTPS sur tous les domaines google.com (comme indiqué sur https://support.google.com/a/answer/1668854).</translation>
+<translation id="2287414160388710497">Permet aux administrateurs de personnaliser l'apparence des filigranes appliqués par les règles de Protection contre la perte de données. Cela inclut la définition de l'opacité du remplissage/du contour et de la taille de la police.
+Si cette règle ou certaines valeurs ne sont pas définies, Chrome utilisera son comportement par défaut pour les filigranes.
+Les valeurs par défaut sont les suivantes : opacité du remplissage à 4, opacité du contour à 6 et taille de police à 24.
+
+L'opacité du remplissage est un pourcentage compris entre 0 (totalement transparent) et 100 (totalement opaque).
+L'opacité du contour est un pourcentage compris entre 0 (totalement transparent) et 100 (totalement opaque).
+La taille de police est indiquée en points.</translation>
 <translation id="2288506601233091655">Ne pas autoriser la suppression de l'historique des tâches d'impression</translation>
 <translation id="2289688405312849186">Compte principal de l'utilisateur "user@realm". L'espace réservé <ph name="LOGIN_ID_PLACEHOLDER" /> est remplacé par le nom d'utilisateur "user". L'espace réservé <ph name="LOGIN_EMAIL_PLACEHOLDER" /> est remplacé par le compte principal complet "user@realm".</translation>
 <translation id="2290270645214705008">Si cette règle est désactivée, le service hôte d'accès à distance ne peut pas être démarré ni configuré pour accepter les connexions entrantes.  Cette règle ne concerne pas les cas d'assistance à distance.
@@ -2527,6 +2536,7 @@
 <translation id="288448261660192095">Si cette règle est activée, les appareils d'entrée et de sortie physiques des hôtes d'accès à distance sont désactivés pendant une connexion à distance.
 
       Si cette règle est désactivée ou qu'elle n'est pas configurée, l'utilisateur local et l'utilisateur à distance peuvent interagir avec l'hôte tant que ce celui-ci est partagé.</translation>
+<translation id="288463102030083286">Configuration de filigrane personnalisée</translation>
 <translation id="2884765974461416016">Désactiver le partage des applis Android vers les applis Web.</translation>
 <translation id="2886215882246310669">Permet de spécifier si <ph name="PRODUCT_OS_NAME" /> autorise ou non l'ajout de nouveaux comptes utilisateur Family Link sur l'appareil.
       Cette règle n'est utile que si elle combinée avec la règle <ph name="DEVICE_USER_ALLOWLIST_POLICY_NAME" />. Elle autorise les comptes Family Link en plus de ceux figurant dans la liste d'autorisation.
@@ -3139,6 +3149,7 @@
 <translation id="3278042410658310805">Désactiver la lecture vocale sur l'écran de connexion et permettre à l'utilisateur à l'activer temporairement</translation>
 <translation id="328347261792478720">Par défaut, le navigateur propose à l'utilisateur des recommandations personnalisées de contenus multimédias. Si cette règle est désactivée, l'utilisateur ne bénéficie pas de ces recommandations. Si cette règle est activée ou qu'elle n'est pas configurée, l'utilisateur peut voir ces recommandations.</translation>
 <translation id="3284094172359247914">Contrôler l'utilisation de l'API WebUSB</translation>
+<translation id="3285231260918855067">Opacité du contour du texte du filigrane, de 0 (transparent) à 100 (opaque).</translation>
 <translation id="3286159327013237833">Activer les clics automatiques sur l'écran de connexion</translation>
 <translation id="3288595667065905535">Version disponible</translation>
 <translation id="3291940794983537008">Paramètres des fonctionnalités d'IA générative des outils de développement</translation>
@@ -8262,6 +8273,7 @@
 <translation id="6795485990775913659">Autoriser l'impression sans code uniquement</translation>
 <translation id="6796215185873669533">Appliquez les paramètres par défaut du navigateur pour la version de la chaîne user-agent.</translation>
 <translation id="6800181452282128474">Ne pas envoyer de requêtes aux serveurs Quirks</translation>
+<translation id="6801739506172328815">Taille de police du texte en filigrane en points.</translation>
 <translation id="6802412020718145539">La visionneuse de PDF utilise l'architecture iFrame hors processus.</translation>
 <translation id="68031099365512050">Signaler l'état audio</translation>
 <translation id="680356860463873420">Ne pas autoriser les utilisateurs à employer Plugin VM</translation>
diff --git a/components/policy/resources/policy_templates_id.xtb b/components/policy/resources/policy_templates_id.xtb
index 3501241..1b9672c2 100644
--- a/components/policy/resources/policy_templates_id.xtb
+++ b/components/policy/resources/policy_templates_id.xtb
@@ -106,6 +106,7 @@
       Jika setelan ini tidak disetel, direktori profil default akan digunakan.</translation>
 <translation id="1053981429146436598">Kumpulan kebijakan yang terkait dengan setelan permintaan jaringan pribadi.  Lihat https://wicg.github.io/private-network-access/.</translation>
 <translation id="1059069692400941670">Nonaktifkan impor mesin telusur default saat browser pertama kali dijalankan</translation>
+<translation id="1060020040574767394">Konfigurasi Setelan Watermark Kustom</translation>
 <translation id="1062011392452772310">Mengaktifkan pengesahan jarak jauh untuk perangkat tersebut</translation>
 <translation id="1062407476771304334">Ganti</translation>
 <translation id="1063860513136880926">Jika kebijakan disetel ke Aktif, screenshot yang diambil dengan pintasan keyboard
@@ -511,6 +512,7 @@
 <translation id="1379689277107868399">Jika kebijakan ini disetel ke DoNotPrompt atau tidak disetel, <ph name="PRODUCT_NAME" /> tidak akan otomatis meminta pengguna untuk melakukan autentikasi ulang ke browser.
 
 Jika kebijakan ini disetel ke PromptInTab, tab baru dengan halaman login Google akan langsung dibuka ketika masa berlaku autentikasi pengguna berakhir. Hal ini hanya terjadi jika menggunakan <ph name="CHROME_SYNC_NAME" />.</translation>
+<translation id="1384040387986918863">Opasitas isian teks watermark, dari 0 (transparan) hingga 100 (buram).</translation>
 <translation id="1384459581748403878">Referensi: <ph name="REFERENCE_URL" /></translation>
 <translation id="1384594066274112751">Kebijakan ini membuat URL apa pun yang cocok dengan satu atau beberapa pola yang ditentukan (menggunakan format filter <ph name="URL_BLOCKLIST_POLICY_NAME" />) tidak akan dihapus oleh browser.
       Kebijakan ini berlaku untuk menghentikan tekanan memori dan mode efisiensi tinggi.
@@ -1873,6 +1875,13 @@
       Pengguna tidak dapat mengubah atau mengganti setelan ini.
 
       Catatan: Kebijakan ini menyebabkan header X-GoogApps-Allowed-Domains ditambahkan ke semua permintaan HTTP dan HTTPS di semua domain google.com, seperti yang dijelaskan di https://support.google.com/a/answer/1668854.</translation>
+<translation id="2287414160388710497">Mengizinkan administrator menyesuaikan tampilan watermark yang diterapkan oleh aturan Pencegahan Kebocoran Data (DLP). Kebijakan ini mencakup menyetel opasitas isian/garis tepi, dan menentukan ukuran font.
+Jika kebijakan ini atau beberapa nilainya tidak disetel, Chrome akan menggunakan perilaku watermark default.
+Nilai default: opasitas isian 4, opasitas garis tepi 6, dan ukuran font 24.
+
+'Opasitas Isian' adalah persentase dari 0 (sepenuhnya transparan) hingga 100 (sepenuhnya buram).
+'Opasitas Garis Tepi' adalah persentase dari 0 (sepenuhnya transparan) hingga 100 (sepenuhnya buram).
+'FontSize' ditentukan dalam satuan poin.</translation>
 <translation id="2288506601233091655">Jangan izinkan histori tugas pencetakan dihapus</translation>
 <translation id="2289688405312849186">Akun utama pengguna 'user@realm'. Placeholder <ph name="LOGIN_ID_PLACEHOLDER" /> diganti dengan nama pengguna 'user'. Placeholder <ph name="LOGIN_EMAIL_PLACEHOLDER" /> diganti dengan akun utama penuh 'user@realm'.</translation>
 <translation id="2290270645214705008">Jika kebijakan ini disetel ke Nonaktif, layanan host akses jarak jauh tidak dapat dimulai atau dikonfigurasi untuk menerima koneksi masuk.  Kebijakan ini tidak memengaruhi skenario dukungan jarak jauh.
@@ -2659,6 +2668,7 @@
 <translation id="288448261660192095">Jika disetel ke Aktif, perangkat input dan output fisik host akses jarak jauh akan dinonaktifkan selama koneksi jarak jauh berlangsung.
 
       Jika kebijakan disetel ke Nonaktif atau tidak disetel, pengguna lokal dan jarak jauh akan diizinkan untuk berinteraksi dengan host saat host dibagikan.</translation>
+<translation id="288463102030083286">Konfigurasi Watermark Kustom</translation>
 <translation id="2884765974461416016">Nonaktifkan berbagi Aplikasi Android ke Aplikasi Web.</translation>
 <translation id="2886215882246310669">Mengontrol apakah <ph name="PRODUCT_OS_NAME" /> mengizinkan akun pengguna Family Link baru ditambahkan ke perangkat atau tidak.
       Kebijakan ini hanya berguna jika digunakan bersama <ph name="DEVICE_USER_ALLOWLIST_POLICY_NAME" />. Ini akan mengizinkan akun Family Link ditambahkan ke akun yang ditentukan dalam daftar yang diizinkan.
@@ -3297,6 +3307,7 @@
 <translation id="3278042410658310805">Nonaktifkan respons lisan di layar login dan izinkan pengguna mengaktifkannya untuk sementara</translation>
 <translation id="328347261792478720">Secara default, browser akan menampilkan rekomendasi media yang dipersonalisasi kepada pengguna. Jika kebijakan ini disetel ke Nonaktif, rekomendasi ini akan disembunyikan dari pengguna. Jika kebijakan ini disetel ke Aktif atau tidak disetel, rekomendasi media akan ditampilkan kepada pengguna.</translation>
 <translation id="3284094172359247914">Penggunaan kontrol WebUSB API</translation>
+<translation id="3285231260918855067">Opasitas garis tepi teks watermark, dari 0 (transparan) hingga 100 (buram).</translation>
 <translation id="3286159327013237833">Aktifkan klik otomatis di layar login</translation>
 <translation id="3288595667065905535">Saluran rilis</translation>
 <translation id="3291940794983537008">Setelan untuk Fitur AI Generatif DevTools</translation>
@@ -8637,6 +8648,7 @@
 <translation id="6795485990775913659">Hanya izinkan pencetakan tanpa PIN</translation>
 <translation id="6796215185873669533">Mengembalikan setelan browser untuk versi string Agen Pengguna ke defaultnya.</translation>
 <translation id="6800181452282128474">Jangan kueri Server Quirks</translation>
+<translation id="6801739506172328815">Ukuran font teks watermark dalam satuan poin.</translation>
 <translation id="6802412020718145539">Penampil PDF menggunakan arsitektur OOPIF.</translation>
 <translation id="68031099365512050">Laporkan status audio</translation>
 <translation id="680356860463873420">Jangan izinkan pengguna menggunakan PluginVm</translation>
diff --git a/components/policy/resources/policy_templates_ko.xtb b/components/policy/resources/policy_templates_ko.xtb
index 4756bf1..5f5142a 100644
--- a/components/policy/resources/policy_templates_ko.xtb
+++ b/components/policy/resources/policy_templates_ko.xtb
@@ -106,6 +106,7 @@
       이 정책을 설정하지 않으면 기본 프로필 디렉터리를 사용합니다.</translation>
 <translation id="1053981429146436598">비공개 네트워크 요청 설정과 관련된 정책 그룹입니다.  https://wicg.github.io/private-network-access/를 참고하세요.</translation>
 <translation id="1059069692400941670">처음 실행 시 기본 검색엔진 가져오기 사용 중지</translation>
+<translation id="1060020040574767394">맞춤 워터마크 설정 구성</translation>
 <translation id="1062011392452772310">기기에 대한 원격 인증을 사용합니다.</translation>
 <translation id="1062407476771304334">바꾸기</translation>
 <translation id="1063860513136880926">정책을 '사용'으로 설정하면 단축키나 확장 프로그램 API를 통해 스크린샷을 캡처할 수 없습니다. 정책을 설정하지 않거나 '사용 안함'으로 설정하면 스크린샷을 캡처할 수 있습니다.
@@ -492,6 +493,7 @@
 <translation id="1379689277107868399">DoNotPrompt로 설정하거나 아무런 설정도 되어 있지 않으면 <ph name="PRODUCT_NAME" />에서 사용자에게 브라우저를 다시 인증하라는 메시지를 자동으로 표시하지 않습니다.
 
 PromptInTab으로 설정하면, 사용자의 인증이 만료되는 즉시 Google 로그인 페이지가 새 탭으로 열립니다. 이는 <ph name="CHROME_SYNC_NAME" />를 사용하는 경우에만 발생합니다.</translation>
+<translation id="1384040387986918863">워터마크 텍스트의 채우기 불투명도로, 0(투명)에서 100(불투명) 사이입니다.</translation>
 <translation id="1384459581748403878">참고: <ph name="REFERENCE_URL" /></translation>
 <translation id="1384594066274112751">이 정책은 지정된 패턴 중 하나 이상과 일치하는 모든 URL(<ph name="URL_BLOCKLIST_POLICY_NAME" /> 필터 형식 사용)이 브라우저에 의해 삭제되지 않도록 합니다.
       이는 메모리 압력 및 고효율 모드 삭제에 적용됩니다.
@@ -1116,6 +1118,15 @@
       목록의 순서는 chrome://settings/languages의 '환경설정에 따른 언어 순서' 섹션의 순서와 동일하게 표시됩니다. 사용자는 정책에서 설정된 언어를 삭제하거나 순서를 변경할 수는 없지만 정책에서 설정된 언어 아래에 언어를 추가할 수는 있습니다. 다른 정책에 의해 강제되지 않는 한 사용자는 브라우저의 UI 언어 및 번역/맞춤법 검사 설정을 원하는 대로 변경할 수 있습니다.
 
       정책을 설정하지 않으면 사용자가 기본 언어의 전체 목록을 변경할 수 있습니다.</translation>
+<translation id="180243155313050440">이 정책은 관리 브라우저를 나타내는 데 사용되는 맞춤 라벨을 제어합니다. 관리 브라우저의 경우 이 라벨은 새 탭 페이지 하단의 관리 면책 조항에 표시됩니다. 맞춤 라벨은 번역되지 않습니다.
+
+이 정책이 적용되면 16자(영문 기준)를 초과하는 문자열은 '…'로 잘립니다. 긴 이름을 사용하지 마세요.
+
+이 정책은 관리 브라우저에만 적용되므로, 관리되지 않는 브라우저의 관리 사용자에게는 영향을 미치지 않습니다.
+
+<ph name="MS_WIN_NAME" />의 경우 이 정책은 <ph name="MS_AD_NAME" /> 도메인에 연결되거나, <ph name="MS_AAD_NAME" />에 연결되거나, <ph name="CHROME_ENTERPRISE_CORE_NAME" />에 등록된 인스턴스에서만 사용할 수 있습니다.
+
+<ph name="MAC_OS_NAME" />의 경우 이 정책은 MDM을 통해 관리되거나, MCX를 통해 도메인에 연결되거나, <ph name="CHROME_ENTERPRISE_CORE_NAME" />에 등록된 인스턴스에서만 사용할 수 있습니다.</translation>
 <translation id="1803646570632580723">런처에 표시되는 고정된 앱 목록</translation>
 <translation id="1808715480127969042">이 사이트에서 쿠키 차단</translation>
 <translation id="1810261428246410396">인스턴트 테더링 사용 허용</translation>
@@ -1805,6 +1816,13 @@
       사용자는 이 설정을 변경하거나 재정의할 수 없습니다.
 
       참고: 정책을 사용하면 https://support.google.com/a/answer/1668854에서 설명된 바와 같이 X-GoogApps-Allowed-Domains 헤더가 모든 google.com 도메인에 대한 HTTP 및 HTTPS 요청에 첨부됩니다.</translation>
+<translation id="2287414160388710497">관리자가 데이터 손실 방지(DLP) 규칙에 따라 적용된 워터마크의 모양을 맞춤설정할 수 있습니다. 여기에는 채우기/윤곽선 불투명도 설정 및 글꼴 크기 정의가 포함됩니다.
+정책 또는 일부 값을 설정하지 않으면 Chrome에서 기본 워터마크 동작을 사용합니다.
+기본값은 채우기 불투명도 4, 윤곽선 불투명도 6, 글꼴 크기 24입니다.
+
+'채우기 불투명도'는 0(완전 투명)에서 100(완전 불투명) 사이의 백분율입니다.
+'윤곽선 불투명도'는 0(완전 투명)에서 100(완전 불투명) 사이의 백분율입니다.
+'글꼴 크기'는 포인트 단위로 지정됩니다.</translation>
 <translation id="2288506601233091655">인쇄 작업 내역 삭제 허용 안함</translation>
 <translation id="2289688405312849186">사용자 주 구성원 'user@realm'입니다. <ph name="LOGIN_ID_PLACEHOLDER" /> 자리표시자가 사용자 이름 'user'로 교체됩니다. <ph name="LOGIN_EMAIL_PLACEHOLDER" /> 자리표시자가 전체 주 구성원 'user@realm'으로 교체됩니다.</translation>
 <translation id="2290270645214705008">정책을 사용 안함으로 설정하면 수신되는 연결을 허용하도록 원격 액세스 호스트 서비스를 시작하거나 구성할 수 없습니다.  이 정책은 원격 지원 시나리오에 영향을 주지 않습니다.
@@ -2547,6 +2565,7 @@
 <translation id="288448261660192095">정책을 사용 설정하면 원격 연결 중에 원격 액세스 호스트의 물리적 입력과 출력 기기가 사용 중지됩니다.
 
       정책을 사용 중지하거나 설정하지 않으면 로컬 및 원격 사용자 모두 공유 중에 호스트와 상호작용할 수 있습니다.</translation>
+<translation id="288463102030083286">맞춤 워터마크 구성</translation>
 <translation id="2884765974461416016">Android 앱에서 웹 앱으로의 공유를 사용 중지합니다.</translation>
 <translation id="2886215882246310669"><ph name="PRODUCT_OS_NAME" />에서 새로운 Family Link 사용자 계정이 기기에 추가되도록 허용할지 선택합니다.
       이 정책은 <ph name="DEVICE_USER_ALLOWLIST_POLICY_NAME" />와 결합해서 사용할 때만 유용합니다. 이 정책은 허용 목록에서 정의된 계정에 Family Link 계정을 추가적으로 허용합니다.
@@ -3160,6 +3179,7 @@
 <translation id="3278042410658310805">로그인 화면에서 음성 피드백을 사용 중지하고 사용자가 일시적으로 사용 설정할 수 있도록 허용</translation>
 <translation id="328347261792478720">브라우저에서 기본적으로 사용자에게 맞춤설정된 미디어 추천을 표시합니다. 정책을 사용 중지하면 사용자에게 이러한 추천이 표시되지 않습니다. 정책을 사용 설정하거나 설정하지 않으면 사용자에게 미디어 추천이 표시됩니다.</translation>
 <translation id="3284094172359247914">WebUSB API 사용 조정</translation>
+<translation id="3285231260918855067">워터마크 텍스트의 윤곽선 불투명도로, 0(투명)에서 100(불투명) 사이입니다.</translation>
 <translation id="3286159327013237833">로그인 화면에서 자동 클릭 사용</translation>
 <translation id="3288595667065905535">배포 채널</translation>
 <translation id="3291940794983537008">DevTools 생성형 AI 기능 설정</translation>
@@ -4526,6 +4546,15 @@
 <translation id="4297483555396496700">정책을 true로 설정하면 사용자가 기기의 출시 채널만 변경할 수 있습니다. 정책을 false로 설정하거나 설정하지 않으면 사용자가 채널을 변경할 수 없습니다.
 
 <ph name="CHROME_OS_RELEASE_CHANNEL_POLICY_NAME" /> 설정은 <ph name="CHROME_OS_RELEASE_CHANNEL_DELEGATED_POLICY_NAME" />를 false로 설정하는 경우에만 적용됩니다.</translation>
+<translation id="4297774573405304484">관리 브라우저에 기업 배지로 사용될 이미지의 URL입니다. URL은 이미지를 가리켜야 합니다.
+
+파비콘(예: https://www.google.com/favicon.ico) 또는 48x48픽셀 이상의 아이콘을 사용하는 것이 좋습니다.
+
+이 정책은 관리 브라우저에만 적용되므로, 관리되지 않는 브라우저의 관리 사용자에게는 영향을 미치지 않습니다.
+
+<ph name="MS_WIN_NAME" />의 경우 이 정책은 <ph name="MS_AD_NAME" /> 도메인에 연결되거나, <ph name="MS_AAD_NAME" />에 연결되거나, <ph name="CHROME_ENTERPRISE_CORE_NAME" />에 등록된 인스턴스에서만 사용할 수 있습니다.
+
+<ph name="MAC_OS_NAME" />의 경우 이 정책은 MDM을 통해 관리되거나, MCX를 통해 도메인에 연결되거나, <ph name="CHROME_ENTERPRISE_CORE_NAME" />에 등록된 인스턴스에서만 사용할 수 있습니다.</translation>
 <translation id="4301478455179579340">프로그레시브 웹 애플리케이션 설치 중 네이티브 애플리케이션 서명</translation>
 <translation id="4303167373847512281">개발자 모드 허용</translation>
 <translation id="4307116964468610577">이 정책은 하루에 한 번만 완전 충전하여 시스템 배터리 수명을 연장합니다. 남은 시간 동안은 시스템이 전원에 연결되어 있더라도 배터리가 보관에 유리한 저충전 상태로 유지됩니다.
@@ -8362,6 +8391,7 @@
 <translation id="6795485990775913659">PIN이 없으면 인쇄만 허용</translation>
 <translation id="6796215185873669533">사용자 에이전트 문자열 버전의 브라우저 설정을 기본값으로 설정합니다.</translation>
 <translation id="6800181452282128474">Quirks 서버 쿼리 안함</translation>
+<translation id="6801739506172328815">워터마크 텍스트의 글꼴 크기(포인트)입니다.</translation>
 <translation id="6802412020718145539">PDF 뷰어는 OOPIF 아키텍처를 사용합니다.</translation>
 <translation id="68031099365512050">오디오 상태 보고</translation>
 <translation id="680356860463873420">사용자가 PluginVm을 사용하도록 허용 안함</translation>
diff --git a/components/policy/resources/policy_templates_nl.xtb b/components/policy/resources/policy_templates_nl.xtb
index ed66051..16265c46 100644
--- a/components/policy/resources/policy_templates_nl.xtb
+++ b/components/policy/resources/policy_templates_nl.xtb
@@ -106,6 +106,7 @@
       Als je deze instelling niet instelt, wordt de standaard profieldirectory gebruikt.</translation>
 <translation id="1053981429146436598">Een groep beleidsregels voor instellingen voor privénetwerkverzoeken.  Zie https://wicg.github.io/private-network-access/.</translation>
 <translation id="1059069692400941670">Import van standaard zoekmachine bij eerste uitvoering uitzetten</translation>
+<translation id="1060020040574767394">Aangepaste watermerkinstellingen configureren</translation>
 <translation id="1062011392452772310">Externe bevestiging van apparaat aanzetten</translation>
 <translation id="1062407476771304334">Vervangen</translation>
 <translation id="1063860513136880926">Als je het beleid toepast, zijn screenshots die worden gemaakt met sneltoetsen of extensie-API's niet toegestaan. Als je het beleid niet toepast of niet instelt, zijn screenshots toegestaan.
@@ -492,6 +493,7 @@
 <translation id="1379689277107868399">Als je dit beleid instelt op DoNotPrompt of niet instelt, vraagt <ph name="PRODUCT_NAME" /> de gebruiker niet automatisch om opnieuw te verifiëren voor de browser.
 
 Als je dit beleid instelt op PromptInTab, wordt na het verlopen van de verificatie van de gebruiker meteen een nieuw tabblad met de inlogpagina van Google geopend. Dit gebeurt alleen als je <ph name="CHROME_SYNC_NAME" /> gebruikt.</translation>
+<translation id="1384040387986918863">Ondoorzichtigheid van opvulling van de watermerktekst, van 0 (transparant) tot 100 (ondoorzichtig).</translation>
 <translation id="1384459581748403878">Referentie: <ph name="REFERENCE_URL" /></translation>
 <translation id="1384594066274112751">Dit beleid zorgt ervoor dat elke URL die overeenkomt met een of meer patronen uit het beleid (met de filterindeling <ph name="URL_BLOCKLIST_POLICY_NAME" />), nooit door de browser wordt verwijderd.
       Dit is van toepassing op geheugenbelasting en weggooien in de modus voor hoge efficiëntie.
@@ -1100,6 +1102,15 @@
       De lijst wordt in dezelfde volgorde getoond in het gedeelte Talen rangschikken op basis van je voorkeur op chrome://settings/languages. Gebruikers kunnen talen die door het beleid zijn ingesteld niet verwijderen of anders indelen. Ze kunnen wel extra talen toevoegen onder de talen die door het beleid zijn ingesteld. Gebruikers hebben ook de volledige controle over de UI-taal van de browser en instellingen voor vertaling/spellingcontrole, tenzij die door ander beleid worden afgedwongen.
 
       Als je het beleid niet instelt, kunnen gebruikers de hele lijst met voorkeurstalen aanpassen.</translation>
+<translation id="180243155313050440">Dit beleid beheert een aangepast label waarmee een beheerde browser wordt aangegeven. Voor beheerde browsers wordt dit label getoond in een beheerdisclaimer in de voettekst op de pagina Nieuw tabblad. Het aangepaste label wordt niet vertaald.
+
+Als je dit beleid toepast, worden tekenreeksen van meer dan 16 tekens afgekapt met een beletselteken. Gebruik geen uitgebreide namen.
+
+Dit beleid wordt alleen toegepast voor beheerde browsers. Het heeft dus geen effect voor beheerde gebruikers in onbeheerde browsers.
+
+In <ph name="MS_WIN_NAME" /> is dit beleid alleen beschikbaar voor instanties die zijn gekoppeld aan een <ph name="MS_AD_NAME" />-domein of aan <ph name="MS_AAD_NAME" />, of die zijn ingeschreven voor <ph name="CHROME_ENTERPRISE_CORE_NAME" />.
+
+In <ph name="MAC_OS_NAME" /> is dit beleid alleen beschikbaar voor instanties die via MDM worden beheerd, via een MCX aan een domein zijn gekoppeld of zijn ingeschreven voor <ph name="CHROME_ENTERPRISE_CORE_NAME" />.</translation>
 <translation id="1803646570632580723">Lijst met vastgezette apps om in het opstartprogramma te tonen</translation>
 <translation id="1808715480127969042">Cookies blokkeren op deze sites</translation>
 <translation id="1810261428246410396">Het gebruik van instant tethering toestaan</translation>
@@ -1787,6 +1798,13 @@
       Gebruikers kunnen deze instelling niet wijzigen of overschrijven.
 
       Opmerking: Door dit beleid wordt de kop 'X-GoogApps-Allowed-Domains' toegevoegd aan alle HTTP- en HTTPS-verzoeken voor alle google.com-domeinen, zoals beschreven in https://support.google.com/a/answer/1668854.</translation>
+<translation id="2287414160388710497">Hiermee kunnen beheerders het uiterlijk van watermerken aanpassen die worden toegepast door regels voor Gegevensverlies voorkomen (Data Loss Prevention, DLP). Dit omvat het instellen van de ondoorzichtigheid van de opvulling/omtrek en het definiëren van de lettergrootte.
+Als je dit beleid of bepaalde waarden niet instelt, gebruikt Chrome het standaardgedrag voor watermerken.
+De standaardwaarden zijn: ondoorzichtigheid van opvulling op 4, ondoorzichtigheid van omtrek op 6 en lettergrootte op 24.
+
+De ondoorzichtigheid van de opvulling is een percentage van 0 (volledig transparant) tot 100 (volledig ondoorzichtig).
+De ondoorzichtigheid van de omtrek is een percentage van 0 (volledig transparant) tot 100 (volledig ondoorzichtig).
+De lettergrootte wordt aangegeven in punten.</translation>
 <translation id="2288506601233091655">Niet toestaan dat de afdrukgeschiedenis wordt verwijderd</translation>
 <translation id="2289688405312849186">Hoofdaccount van gebruiker: 'user@realm'. De tijdelijke aanduiding <ph name="LOGIN_ID_PLACEHOLDER" /> wordt vervangen door de gebruikersnaam 'user'. De tijdelijke aanduiding <ph name="LOGIN_EMAIL_PLACEHOLDER" /> wordt vervangen door het volledige hoofdaccount 'user@realm'.</translation>
 <translation id="2290270645214705008">Als dit beleid niet is toegepast, kan de hostservice voor externe toegang niet worden gestart of ingesteld om inkomende verbindingen te accepteren.  Dit beleid heeft geen effect op scenario's voor support op afstand.
@@ -2525,6 +2543,7 @@
 <translation id="288448261660192095">Als je dit beleid toepast, worden de fysieke invoer- en uitvoerapparaten van hosts voor externe toegang uitgezet tijdens een externe verbinding.
 
       Als je het beleid niet toepast of niet instelt, kunnen zowel lokale als externe gebruikers met de host communiceren terwijl deze wordt gedeeld.</translation>
+<translation id="288463102030083286">Aangepaste watermerkconfiguratie</translation>
 <translation id="2884765974461416016">Delen van Android-apps naar web-apps uitzetten.</translation>
 <translation id="2886215882246310669">Bepaalt of <ph name="PRODUCT_OS_NAME" /> toestaat dat er nieuwe Family Link-gebruikersaccounts worden toegevoegd aan het apparaat.
       Dit beleid is alleen nuttig in combinatie met <ph name="DEVICE_USER_ALLOWLIST_POLICY_NAME" />. Met dit beleid worden ook andere Family Link-accounts toegestaan dan de accounts die zijn gedefinieerd in de toelatingslijst.
@@ -3136,6 +3155,7 @@
 <translation id="3278042410658310805">Gesproken feedback op het inlogscherm uitzetten en de gebruiker toestaan dit tijdelijk aan te zetten</translation>
 <translation id="328347261792478720">De browser toont standaard media-aanbevelingen die zijn gepersonaliseerd voor de gebruiker. Als je dit beleid niet toepast, ziet de gebruiker deze aanbevelingen niet. Als je dit beleid toepast of niet instelt, ziet de gebruiker de media-aanbevelingen.</translation>
 <translation id="3284094172359247914">Gebruik van de WebUSB API beheren</translation>
+<translation id="3285231260918855067">Ondoorzichtigheid van de omtrek van de watermerktekst, van 0 (transparant) tot 100 (ondoorzichtig).</translation>
 <translation id="3286159327013237833">Automatisch klikken op het inlogscherm aanzetten</translation>
 <translation id="3288595667065905535">Releasekanaal</translation>
 <translation id="3291940794983537008">Instellingen voor generatieve AI-functies van DevTools</translation>
@@ -4467,6 +4487,15 @@
 <translation id="4297483555396496700">Gebruikers mogen het releasekanaal van het apparaat alleen wijzigen als je dit beleid hebt ingesteld op True. Als je dit beleid hebt ingesteld op False of niet hebt ingesteld, mogen gebruikers het kanaal niet wijzigen.
 
 Het instellen van <ph name="CHROME_OS_RELEASE_CHANNEL_POLICY_NAME" /> heeft alleen effect als je <ph name="CHROME_OS_RELEASE_CHANNEL_DELEGATED_POLICY_NAME" /> hebt ingesteld op False.</translation>
+<translation id="4297774573405304484">Een URL naar een afbeelding die wordt gebruikt als zakelijke badge voor een beheerde browser. De URL moet naar een afbeelding verwijzen.
+
+We raden je aan het favicon (bijvoorbeeld https://www.google.com/favicon.ico) of een icoon van minimaal 48 x 48 pixels te gebruiken.
+
+Dit beleid wordt alleen toegepast voor beheerde browsers. Het heeft dus geen effect voor beheerde gebruikers in onbeheerde browsers.
+
+In <ph name="MS_WIN_NAME" /> is dit beleid alleen beschikbaar voor instanties die zijn gekoppeld aan een <ph name="MS_AD_NAME" />-domein of aan <ph name="MS_AAD_NAME" />, of die zijn ingeschreven voor <ph name="CHROME_ENTERPRISE_CORE_NAME" />.
+
+In <ph name="MAC_OS_NAME" /> is dit beleid alleen beschikbaar voor instanties die via MDM worden beheerd, via een MCX aan een domein zijn gekoppeld of zijn ingeschreven voor <ph name="CHROME_ENTERPRISE_CORE_NAME" />.</translation>
 <translation id="4301478455179579340">Ondertekening van systeemeigen app bij installatie van progressive web-app</translation>
 <translation id="4303167373847512281">Ontwikkelaarsmodus toestaan</translation>
 <translation id="4307116964468610577">Het beleid verlengt de bruikbare levensduur van de systeembatterijen door ze maar één keer per dag volledig op te laden. De rest van de dag worden de batterijen in een lagere oplaadstatus gehouden, wat beter is voor opslag, ook als het systeem is aangesloten op een voedingsbron.
@@ -8214,6 +8243,7 @@
 <translation id="6795485990775913659">Alleen afdrukken toestaan zonder pincode</translation>
 <translation id="6796215185873669533">Standaard browserinstellingen gebruiken voor tekenreeksversie van User-agent.</translation>
 <translation id="6800181452282128474">Geen query's sturen naar Quirks Servers</translation>
+<translation id="6801739506172328815">Lettergrootte van de watermerktekst in punten.</translation>
 <translation id="6802412020718145539">De pdf-viewer gebruikt de OOPIF-architectuur.</translation>
 <translation id="68031099365512050">Audiostatus rapporteren</translation>
 <translation id="680356860463873420">Gebruikers niet toestaan een PluginVm te gebruiken</translation>
diff --git a/components/policy/resources/policy_templates_pt-BR.xtb b/components/policy/resources/policy_templates_pt-BR.xtb
index 421d3e8..149716f 100644
--- a/components/policy/resources/policy_templates_pt-BR.xtb
+++ b/components/policy/resources/policy_templates_pt-BR.xtb
@@ -106,6 +106,7 @@
       Se a política não for definida, o diretório padrão do perfil será utilizado.</translation>
 <translation id="1053981429146436598">Um grupo de políticas relacionadas às configurações de solicitação de rede privada.  Consulte https://wicg.github.io/private-network-access/ (link em inglês).</translation>
 <translation id="1059069692400941670">Desativar a importação do mecanismo de pesquisa padrão na primeira execução</translation>
+<translation id="1060020040574767394">Configurações de marca-d'água personalizada</translation>
 <translation id="1062011392452772310">Ativar declaração remota para o dispositivo</translation>
 <translation id="1062407476771304334">Substituir</translation>
 <translation id="1063860513136880926">Se a política for ativada, não vai ser permitido fazer capturas de tela com os atalhos do teclado
@@ -507,6 +508,7 @@
 <translation id="1379689277107868399">Quando a política for definida como DoNotPrompt ou deixada sem definição, o <ph name="PRODUCT_NAME" /> não vai pedir automaticamente que o usuário faça a autenticação de novo no navegador.
 
 Se definida como PromptInTab, quando a autenticação do usuário expirar, uma nova guia será aberta imediatamente com a página de login do Google. Isso só vai acontecer se você estiver usando a <ph name="CHROME_SYNC_NAME" />.</translation>
+<translation id="1384040387986918863">É a opacidade do preenchimento do texto da marca-d'água, de 0 (transparente) a 100 (opaco).</translation>
 <translation id="1384459581748403878">Referência: <ph name="REFERENCE_URL" /></translation>
 <translation id="1384594066274112751">Esta política determina que qualquer URL que corresponda a um ou mais padrões especificados, usando o formato de filtro <ph name="URL_BLOCKLIST_POLICY_NAME" />, nunca seja descartado pelo navegador.
       Isso se aplica à pressão da memória e ao descarte no modo de alta eficiência.
@@ -1869,6 +1871,12 @@
       Os usuários não poderão mudar ou substituir essa configuração.
 
       Observação: essa política faz com que o cabeçalho X-GoogApps-Allowed-Domains seja anexado a todas as solicitações HTTP e HTTPS de todos os domínios google.com, como descrito em https://support.google.com/a/answer/1668854.</translation>
+<translation id="2287414160388710497">Permite que os administradores personalizem a aparência das marcas-d'água aplicadas pelas regras de Prevenção Contra Perda de Dados (DLP). Isso inclui definir a opacidade do preenchimento e contorno e o tamanho da fonte.
+Se a política ou alguns valores não forem definidos, o Chrome vai usar o comportamento padrão de marca-d'água: opacidade do preenchimento em 4, opacidade do contorno em 6 e tamanho da fonte em 24.
+
+A opacidade do preenchimento é uma porcentagem de 0 (totalmente transparente) a 100 (totalmente opaco).
+A opacidade do contorno é uma porcentagem de 0 (totalmente transparente) a 100 (totalmente opaco).
+O tamanho da fonte é especificado em pontos.</translation>
 <translation id="2288506601233091655">Não permitir a exclusão do histórico de trabalhos de impressão</translation>
 <translation id="2289688405312849186">Principal "user@realm" do usuário. O marcador <ph name="LOGIN_ID_PLACEHOLDER" /> é substituído pelo nome de usuário "user". O marcador <ph name="LOGIN_EMAIL_PLACEHOLDER" /> é substituído pelo principal completo "user@realm".</translation>
 <translation id="2290270645214705008">Se esta política for definida como "Desativada", o serviço de host de acesso remoto não poderá ser iniciado nem configurado para aceitar conexões de entrada.  Esta política não afeta situações de suporte remoto.
@@ -2653,6 +2661,7 @@
 <translation id="288448261660192095">Se a política for definida como "Ativada", a entrada física e os dispositivos de saída dos hosts de acesso remoto serão desativados durante uma conexão remota.
 
       Se a política for definida como "Desativada" ou deixada sem definição, usuários locais e remotos poderão interagir com o host durante o compartilhamento.</translation>
+<translation id="288463102030083286">Configuração de marca-d'água personalizada</translation>
 <translation id="2884765974461416016">Desativar o compartilhamento do Android para apps da Web.</translation>
 <translation id="2886215882246310669">Controla se o <ph name="PRODUCT_OS_NAME" /> permite que novas contas de usuários do Family Link sejam adicionadas ao dispositivo.
       Esta política só será usada junto com <ph name="DEVICE_USER_ALLOWLIST_POLICY_NAME" />. Ela permite mais contas do Family Link, além das contas definidas na lista de permissões.
@@ -3291,6 +3300,7 @@
 <translation id="3278042410658310805">Desativar a resposta falada na tela de login e permitir que o usuário a ative temporariamente</translation>
 <translation id="328347261792478720">Por padrão, o navegador mostrará recomendações de mídia personalizadas para o usuário. Se esta política for definida como "Desativada", essas recomendações ficarão ocultas para o usuário. Se esta política for definida como "Ativada" ou não for definida, as recomendações de mídia serão mostradas para o usuário.</translation>
 <translation id="3284094172359247914">Controla o uso da API WebUSB</translation>
+<translation id="3285231260918855067">É a opacidade do contorno do texto da marca-d'água, de 0 (transparente) a 100 (opaco).</translation>
 <translation id="3286159327013237833">Ativar o clique automático na tela de login</translation>
 <translation id="3288595667065905535">Liberar canal</translation>
 <translation id="3291940794983537008">Configurações dos recursos da IA generativa do DevTools</translation>
@@ -8617,6 +8627,7 @@
 <translation id="6795485990775913659">Permitir impressão apenas sem PIN</translation>
 <translation id="6796215185873669533">Definir a versão da string do user agent como a configuração padrão do navegador.</translation>
 <translation id="6800181452282128474">Não consultar servidores Quirks</translation>
+<translation id="6801739506172328815">É o tamanho da fonte do texto da marca-d'água em pontos.</translation>
 <translation id="6802412020718145539">O visualizador de PDF usa a arquitetura OOPIF.</translation>
 <translation id="68031099365512050">Informar o status de áudio</translation>
 <translation id="680356860463873420">Não permitir o uso de um PluginVm</translation>
diff --git a/components/policy/resources/policy_templates_th.xtb b/components/policy/resources/policy_templates_th.xtb
index af3e9fec..9c02c00 100644
--- a/components/policy/resources/policy_templates_th.xtb
+++ b/components/policy/resources/policy_templates_th.xtb
@@ -106,6 +106,7 @@
       หากไม่ได้กำหนดการตั้งค่านี้ ระบบจะใช้ไดเรกทอรีโปรไฟล์ที่เป็นค่าเริ่มต้น</translation>
 <translation id="1053981429146436598">กลุ่มนโยบายที่เกี่ยวข้องกับการตั้งค่าคำขอเครือข่ายส่วนตัว  โปรดดูที่ https://wicg.github.io/private-network-access/</translation>
 <translation id="1059069692400941670">ปิดใช้การนำเข้าเครื่องมือค้นหาเริ่มต้นเมื่อเรียกใช้ครั้งแรก</translation>
+<translation id="1060020040574767394">กำหนดการตั้งค่าลายน้ำที่กำหนดเอง</translation>
 <translation id="1062011392452772310">เปิดใช้งานการยืนยันระยะไกลสำหรับอุปกรณ์</translation>
 <translation id="1062407476771304334">แทนที่</translation>
 <translation id="1063860513136880926">การตั้งค่านโยบายเป็น "เปิดใช้" จะไม่อนุญาตให้ถ่ายภาพหน้าจอด้วยแป้นพิมพ์ลัดหรือ API ส่วนขยาย การตั้งค่านโยบายเป็น "ปิดใช้" หรือไม่ได้ตั้งค่าจะอนุญาตให้ถ่ายภาพหน้าจอได้
@@ -493,6 +494,7 @@
 <translation id="1379689277107868399">หากตั้งค่าเป็น DoNotPrompt หรือไม่ได้ตั้งค่าไว้ <ph name="PRODUCT_NAME" /> จะไม่แสดงข้อความแจ้งให้ผู้ใช้ตรวจสอบสิทธิ์กับเบราว์เซอร์อีกครั้งโดยอัตโนมัติ
 
 หากตั้งค่าเป็น PromptInTab ไว้ ระบบจะเปิดแท็บใหม่ที่เป็นหน้าเข้าสู่ระบบของ Google ขึ้นมา ทันทีที่การตรวจสอบสิทธิ์ของผู้ใช้หมดอายุลง ซึ่งกรณีนี้จะเกิดขึ้นเมื่อใช้ <ph name="CHROME_SYNC_NAME" /> เท่านั้น</translation>
+<translation id="1384040387986918863">ความทึบแสงของสีเติมของข้อความลายน้ำ ตั้งแต่ 0 (โปร่งใส) ถึง 100 (ทึบแสง)</translation>
 <translation id="1384459581748403878">การอ้างอิง: <ph name="REFERENCE_URL" /></translation>
 <translation id="1384594066274112751">นโยบายนี้จะทำให้เบราว์เซอร์ไม่ละทิ้ง URL ที่ตรงกับรูปแบบที่ระบุไว้อย่างน้อย 1 รูปแบบ (โดยใช้รูปแบบตัวกรอง <ph name="URL_BLOCKLIST_POLICY_NAME" />)
       โดยจะมีผลกับการใช้หน่วยความจำและการละทิ้งในโหมดประสิทธิภาพสูง
@@ -1101,6 +1103,15 @@
       ลำดับของรายการจะปรากฏในลำดับเดียวกันในส่วน "เรียงลำดับภาษาตามความต้องการของคุณ" ที่ chrome://settings/languages ผู้ใช้จะนำภาษาออกหรือเปลี่ยนลำดับภาษาที่นโยบายกำหนดไว้ไม่ได้ แต่จะเพิ่มภาษาใต้รายการที่นโยบายกำหนดไว้ได้ นอกจากนี้ยังสามารถควบคุมภาษาสำหรับ UI และการตั้งค่าการแปล/การตรวจตัวสะกดของเบราว์เซอร์ได้เต็มที่ เว้นแต่จะมีการบังคับใช้โดยนโยบายอื่น
 
       การไม่ตั้งค่านโยบายจะทำให้ผู้ใช้ดัดแปลงรายการภาษาที่ต้องการทั้งหมดได้</translation>
+<translation id="180243155313050440">นโยบายนี้ควบคุมป้ายกำกับที่กำหนดเองซึ่งใช้เพื่อระบุเบราว์เซอร์ที่มีการจัดการ สำหรับเบราว์เซอร์ที่มีการจัดการ ป้ายกำกับนี้จะแสดงอยู่ในข้อจำกัดความรับผิดด้านการจัดการในส่วนท้ายของหน้าแท็บใหม่ ระบบจะไม่แปลป้ายกำกับที่กำหนดเอง
+
+เมื่อใช้นโยบายนี้ สตริงใดก็ตามที่มีอักขระเกิน 16 ตัวจะถูกตัดส่วนเกินเป็น "..." โปรดอย่าใช้ชื่อขนาดยาว
+
+โปรดทราบว่านโยบายนี้มีผลกับเบราว์เซอร์ที่มีการจัดการเท่านั้น ดังนั้นจะไม่มีผลกับผู้ใช้ที่มีการจัดการในเบราว์เซอร์ที่ไม่มีการจัดการ
+
+ใน <ph name="MS_WIN_NAME" /> นโยบายนี้ใช้ได้เฉพาะในอินสแตนซ์ที่เข้าร่วมโดเมน <ph name="MS_AD_NAME" />, เข้าร่วม <ph name="MS_AAD_NAME" /> หรือลงทะเบียนใน <ph name="CHROME_ENTERPRISE_CORE_NAME" />
+
+ใน <ph name="MAC_OS_NAME" /> นโยบายนี้ใช้ได้เฉพาะในอินสแตนซ์ที่จัดการผ่าน MDM, เข้าร่วมโดเมนผ่าน MCX หรือลงทะเบียนใน <ph name="CHROME_ENTERPRISE_CORE_NAME" /></translation>
 <translation id="1803646570632580723">รายชื่อของแอปพลิเคชันที่ปักหมุดจะแสดงในตัวเรียกใช้งาน</translation>
 <translation id="1808715480127969042">ปิดกั้นคุกกี้บนไซต์เหล่านี้</translation>
 <translation id="1810261428246410396">อนุญาตให้ใช้การเชื่อมต่ออินเทอร์เน็ตผ่านมือถือแบบด่วน</translation>
@@ -1788,6 +1799,13 @@
       ผู้ใช้จะเปลี่ยนหรือลบล้างการตั้งค่านี้ไม่ได้
 
       หมายเหตุ: นโยบายนี้ส่งผลให้ต้องเติมส่วนหัว X-GoogApps-Allowed-Domains ในคำขอ HTTP และ HTTPS ทั้งหมดที่ส่งไปยังโดเมน google.com ทั้งหมดตามที่อธิบายไว้ใน https://support.google.com/a/answer/1668854</translation>
+<translation id="2287414160388710497">อนุญาตให้ผู้ดูแลระบบปรับแต่งลักษณะของลายน้ำที่ใช้โดยกฎการป้องกันข้อมูลรั่วไหล (DLP) ซึ่งรวมถึงการตั้งค่าความทึบแสงของสีเติม/เส้นขอบ และกำหนดขนาดแบบอักษร
+หากไม่ได้ตั้งค่านโยบายนี้หรือค่าบางค่า Chrome จะใช้ลักษณะการทํางานของลายน้ำเริ่มต้น
+ค่าเริ่มต้นคือความทึบแสงของสีเติมที่ 4, ความทึบแสงของเส้นขอบที่ 6 และขนาดแบบอักษรที่ 24
+
+"ความทึบแสงของสีเติม" คือเปอร์เซ็นต์ตั้งแต่ 0 (โปร่งใสทั้งหมด) ถึง 100 (ทึบแสงทั้งหมด)
+"ความทึบแสงของเส้นขอบ" คือเปอร์เซ็นต์ตั้งแต่ 0 (โปร่งใสทั้งหมด) ถึง 100 (ทึบแสงทั้งหมด)
+"ขนาดแบบอักษร" จะระบุในหน่วยพอยต์</translation>
 <translation id="2288506601233091655">ไม่อนุญาตให้ลบประวัติงานพิมพ์</translation>
 <translation id="2289688405312849186">ผู้ใช้หลัก "user@realm" ตัวยึดตำแหน่ง <ph name="LOGIN_ID_PLACEHOLDER" /> นั้นแทนที่โดยชื่อผู้ใช้ "user" ตัวยึดตำแหน่ง <ph name="LOGIN_EMAIL_PLACEHOLDER" /> นั้นแทนที่โดยผู้ใช้หลักแบบเต็ม "user@realm"</translation>
 <translation id="2290270645214705008">หากปิดใช้นโยบายนี้ บริการโฮสต์การเข้าถึงระยะไกลจะไม่สามารถเริ่มต้นหรือกำหนดค่าให้ยอมรับการเชื่อมต่อขาเข้า  นโยบายนี้ไม่มีผลต่อสถานการณ์การสนับสนุนระยะไกล
@@ -2529,6 +2547,7 @@
 <translation id="288448261660192095">การตั้งค่านโยบายเป็น "เปิดใช้" จะปิดอุปกรณ์อินพุตและเอาต์พุตของโฮสต์การเข้าถึงระยะไกลระหว่างการเชื่อมต่อระยะไกล
 
       การตั้งค่านโยบายเป็น "ปิดใช้" หรือไม่ตั้งค่าจะทำให้ทั้งผู้ใช้เครือข่ายภายในและผู้ใช้ระยะไกลโต้ตอบกับโฮสต์ระหว่างที่แชร์ได้</translation>
+<translation id="288463102030083286">การกำหนดค่าลายน้ำที่กำหนดเอง</translation>
 <translation id="2884765974461416016">ปิดใช้การแชร์จาก Android ไปยังเว็บแอป</translation>
 <translation id="2886215882246310669">ควบคุมว่า <ph name="PRODUCT_OS_NAME" /> จะอนุญาตให้เพิ่มบัญชีผู้ใช้ Family Link บัญชีใหม่ลงในอุปกรณ์หรือไม่
       นโยบายนี้จะมีประโยชน์เมื่อใช้ร่วมกับ <ph name="DEVICE_USER_ALLOWLIST_POLICY_NAME" /> ซึ่งจะอนุญาตให้มีการเพิ่มบัญชี Family Link นอกเหนือจากบัญชีที่ระบุไว้ในรายการที่อนุญาต
@@ -3139,6 +3158,7 @@
 <translation id="3278042410658310805">ปิดใช้ฟีเจอร์อธิบายและอ่านออกเสียงในหน้าจอการเข้าสู่ระบบและอนุญาตให้ผู้ใช้เปิดใช้ชั่วคราว</translation>
 <translation id="328347261792478720">โดยค่าเริ่มต้น เบราว์เซอร์จะแสดงคำแนะนำสื่อที่มีการปรับเปลี่ยนในแบบของผู้ใช้ การตั้งค่านโยบายนี้เป็น "ปิดใช้" จะทำให้ระบบซ่อนคำแนะนำเหล่านี้ไม่ให้ผู้ใช้เห็น การตั้งค่านโยบายนี้เป็น "เปิดใช้" หรือไม่ได้ตั้งค่าจะทำให้ระบบแสดงคำแนะนำสื่อต่อผู้ใช้</translation>
 <translation id="3284094172359247914">ควบคุมการใช้ WebUSB API</translation>
+<translation id="3285231260918855067">ความทึบแสงของเส้นขอบของข้อความลายน้ำ ตั้งแต่ 0 (โปร่งใส) ถึง 100 (ทึบแสง)</translation>
 <translation id="3286159327013237833">เปิดใช้การคลิกอัตโนมัติในหน้าจอการเข้าสู่ระบบ</translation>
 <translation id="3288595667065905535">ช่องเผยแพร่</translation>
 <translation id="3291940794983537008">การตั้งค่าสำหรับฟีเจอร์ Generative AI ในเครื่องมือสำหรับนักพัฒนาเว็บ</translation>
@@ -4474,6 +4494,15 @@
 <translation id="4297483555396496700">ผู้ใช้ได้รับอนุญาตให้เปลี่ยนเวอร์ชันการเผยแพร่ของอุปกรณ์หากตั้งค่านโยบายนี้เป็น "จริง" เท่านั้น หากนโยบายนี้เป็น "เท็จ" หรือไม่ได้ตั้งค่า ผู้ใช้จะไม่ได้รับอนุญาตให้เปลี่ยนเวอร์ชัน
 
 การตั้งค่า <ph name="CHROME_OS_RELEASE_CHANNEL_POLICY_NAME" /> จะมีผลเฉพาะในกรณีที่ตั้งค่า <ph name="CHROME_OS_RELEASE_CHANNEL_DELEGATED_POLICY_NAME" /> เป็น "เท็จ"</translation>
+<translation id="4297774573405304484">URL ไปยังรูปภาพที่จะใช้เป็นป้ายองค์กรสำหรับเบราว์เซอร์ที่มีการจัดการ URL ต้องชี้ไปยังรูปภาพ
+
+ขอแนะนำให้ใช้ไอคอน Fav (ตัวอย่าง https://www.google.com/favicon.ico) หรือไอคอนที่มีขนาดไม่น้อยกว่า 48 x 48 พิกเซล
+
+โปรดทราบว่านโยบายนี้มีผลกับเบราว์เซอร์ที่มีการจัดการเท่านั้น ดังนั้นจะไม่มีผลกับผู้ใช้ที่มีการจัดการในเบราว์เซอร์ที่ไม่มีการจัดการ
+
+ใน <ph name="MS_WIN_NAME" /> นโยบายนี้ใช้ได้เฉพาะในอินสแตนซ์ที่เข้าร่วมโดเมน <ph name="MS_AD_NAME" />, เข้าร่วม <ph name="MS_AAD_NAME" /> หรือลงทะเบียนใน <ph name="CHROME_ENTERPRISE_CORE_NAME" />
+
+ใน <ph name="MAC_OS_NAME" /> นโยบายนี้ใช้ได้เฉพาะในอินสแตนซ์ที่จัดการผ่าน MDM, เข้าร่วมโดเมนผ่าน MCX หรือลงทะเบียนใน <ph name="CHROME_ENTERPRISE_CORE_NAME" /></translation>
 <translation id="4301478455179579340">การรับรองแอปพลิเคชันแบบเนทีฟระหว่างการติดตั้ง Progressive Web Application</translation>
 <translation id="4303167373847512281">อนุญาตให้ใช้โหมดนักพัฒนาซอฟต์แวร์</translation>
 <translation id="4307116964468610577">นโยบายนี้จะช่วยยืดอายุการใช้งานแบตเตอรี่ของระบบโดยจะชาร์จจนเต็มความจุเพียง 1 ครั้งต่อวัน ส่วนระยะเวลาที่เหลือของวัน แบตเตอรี่จะคงสถานะการชาร์จไว้ในระดับที่ต่ำลงซึ่งเหมาะกับพื้นที่เก็บข้อมูลมากกว่า แม้ว่าจะเสียบเข้ากับแหล่งจ่ายไฟก็ตาม
@@ -8227,6 +8256,7 @@
 <translation id="6795485990775913659">อนุญาตให้พิมพ์เท่านั้นเมื่อไม่มี PIN</translation>
 <translation id="6796215185873669533">ใช้การตั้งค่าเบราว์เซอร์เป็นค่าเริ่มต้นสำหรับเวอร์ชันสตริงของ User-Agent</translation>
 <translation id="6800181452282128474">ไม่ส่งคำค้นหาไปยังเซิร์ฟเวอร์ Quirks</translation>
+<translation id="6801739506172328815">ขนาดแบบอักษรของข้อความลายน้ำในหน่วยพอยต์</translation>
 <translation id="6802412020718145539">โปรแกรมอ่าน PDF ใช้สถาปัตยกรรมแบบ OOPIF</translation>
 <translation id="68031099365512050">รายงานสถานะเสียง</translation>
 <translation id="680356860463873420">ไม่อนุญาตให้ผู้ใช้สามารถใช้ PluginVm</translation>
diff --git a/components/policy/resources/policy_templates_tr.xtb b/components/policy/resources/policy_templates_tr.xtb
index 485b6d4..c90bf44 100644
--- a/components/policy/resources/policy_templates_tr.xtb
+++ b/components/policy/resources/policy_templates_tr.xtb
@@ -106,6 +106,7 @@
       Bu ayar kurulmadan bırakılırsa varsayılan profil dizini kullanılır.</translation>
 <translation id="1053981429146436598">Özel ağ isteği ayarlarıyla ilgili politika grubu.  https://wicg.github.io/private-network-access/ adresine göz atın.</translation>
 <translation id="1059069692400941670">İlk çalıştırmada varsayılan arama motorunun içe aktarılmasını devre dışı bırak</translation>
+<translation id="1060020040574767394">Özel Filigran Ayarlarını Yapılandırma</translation>
 <translation id="1062011392452772310">Cihaz için uzaktan doğrulamayı etkinleştir</translation>
 <translation id="1062407476771304334">Değiştir</translation>
 <translation id="1063860513136880926">Politika, Etkin değerine ayarlandığında klavye kısayolları veya uzantı API'leriyle ekran görüntüsü alınmasına izin verilmez. Politika, Devre Dışı değerine ayarlanır veya ayarlanmadan bırakılırsa ekran görüntülerine izin verilir.
@@ -494,6 +495,7 @@
 <translation id="1379689277107868399">DoNotPrompt değerine ayarlanır veya ayarlanmadan bırakılırsa <ph name="PRODUCT_NAME" />, kullanıcıdan tarayıcıda yeniden kimlik doğrulaması yapmasını otomatik olarak istemez.
 
 PromptInTab olarak ayarlanırsa kullanıcının kimlik doğrulama süresi dolduğunda hemen yeni bir sekmede Google giriş sayfası açılır. Bu yalnızca <ph name="CHROME_SYNC_NAME" /> kullanıldığında geçerlidir.</translation>
+<translation id="1384040387986918863">Filigran metninin opaklığını 0 (şeffaf) ile 100 (opak) arasında ayarlayın.</translation>
 <translation id="1384459581748403878">Referans: <ph name="REFERENCE_URL" /></translation>
 <translation id="1384594066274112751">Bu politika, <ph name="URL_BLOCKLIST_POLICY_NAME" /> filtre biçimini kullanarak belirttiği kalıplardan en az bir tanesiyle eşleşen herhangi bir URL'nin, tarayıcı tarafından hiçbir zaman silinmemesini sağlar.
       Bu durum, bellek baskısı ve yüksek verimlilik modunun silinme işleminde de geçerlidir.
@@ -1807,6 +1809,13 @@
       Kullanıcılar bu ayarı değiştiremez veya geçersiz kılamazlar.
 
       Not: Bu politika, https://support.google.com/a/answer/1668854 sayfasında açıklandığı gibi, tüm google.com alan adlarına gönderilen tüm HTTP ve HTTPS isteklerine X-GoogApps-Allowed-Domains başlığının eklenmesine neden olur.</translation>
+<translation id="2287414160388710497">Yöneticilere, Veri Kaybını Önleme (DLP) kuralları tarafından uygulanan filigranların görünümünü özelleştirme olanağı tanır. Buna, dolgu/çizgi opaklığının ayarlanması ve yazı tipi boyutunun belirlenmesi dahildir.
+Bu politika veya bazı değerler ayarlanmazsa Chrome, varsayılan filigran davranışını kullanır.
+Varsayılan değerler şunlardır: dolgu opaklığı 4, çizgi opaklığı 6 ve yazı tipi boyutu 24.
+
+"Dolgu Opaklığı", 0 (tamamen şeffaf) ile 100 (tamamen opak) arasında bir yüzdedir.
+"Çizgi Opaklığı", 0 (tamamen şeffaf) ile 100 (tamamen opak) arasında bir yüzdedir.
+"Yazı Tipi Boyutu" değeri punto cinsinden belirtilir .</translation>
 <translation id="2288506601233091655">Yazdırma işleri geçmişinin silinmesine izin verme</translation>
 <translation id="2289688405312849186">Kullanıcı ana hesabı "user@realm". <ph name="LOGIN_ID_PLACEHOLDER" /> yer tutucusunun yerine "user" kullanıcı adı gelir. <ph name="LOGIN_EMAIL_PLACEHOLDER" /> yer tutucusunun yerine tam ana hesap "user@realm" gelir.</translation>
 <translation id="2290270645214705008">Bu politika Devre Dışı değerine ayarlanırsa uzaktan erişim ana makine hizmeti başlatılamaz veya gelen bağlantıları kabul etmek üzere yapılandırılamaz.  Bu politika, uzaktan destek senaryolarını etkilemez.
@@ -2573,6 +2582,7 @@
 <translation id="288448261660192095">Politika, Etkin değerine ayarlanırsa uzak bağlantı sırasında uzaktan erişim ana makinelerin fiziksel giriş ve çıkış cihazları devre dışı bırakılır.
 
       Politika, Devre Dışı değerine ayarlanır veya ayarlanmadan bırakılırsa ana makine paylaşıldığı sırada hem yerel hem de uzak kullanıcıların etkileşimde bulunmasına izin verilir.</translation>
+<translation id="288463102030083286">Özel Filigran Yapılandırması</translation>
 <translation id="2884765974461416016">Android'den Web Uygulamasına paylaşımını devre dışı bırakın.</translation>
 <translation id="2886215882246310669">Cihaza yeni Family Link kullanıcı hesaplarının eklenmesine <ph name="PRODUCT_OS_NAME" /> tarafından izin verilip verilmeyeceğini belirler.
       Bu politika yalnızca <ph name="DEVICE_USER_ALLOWLIST_POLICY_NAME" /> ile birlikte kullanıldığında işe yarar. İzin verilenler listesinde tanımlanan hesaplara ek olarak Family Link hesaplarına da izin verir.
@@ -3201,6 +3211,7 @@
 <translation id="3278042410658310805">Giriş ekranında sözlü geri bildirimi devre dışı bırak ve kullanıcının bunu geçici olarak etkinleştirmesine izin ver</translation>
 <translation id="328347261792478720">Varsayılan olarak tarayıcı, kullanıcıya göre kişiselleştirilmiş medya önerileri gösterir. Bu politika Devre Dışı değerine ayarlanırsa bu öneriler kullanıcıdan gizlenir. Bu politika Etkin değerine ayarlanır veya ayarlanmadan bırakılırsa kullanıcıya medya önerileri gösterilir.</translation>
 <translation id="3284094172359247914">WebUSB API'sinin kullanımını kontrol et</translation>
+<translation id="3285231260918855067">Filigran metninin çizgi opaklığını 0 (şeffaf) ile 100 (opak) arasında ayarlayın.</translation>
 <translation id="3286159327013237833">Giriş ekranında otomatik tıklamayı etkinleştir</translation>
 <translation id="3288595667065905535">Yeni sürüm kanalı</translation>
 <translation id="3291940794983537008">Geliştirici Araçları üretken yapay zeka özellik ayarları</translation>
@@ -8398,6 +8409,7 @@
 <translation id="6795485990775913659">Yalnızca PIN olmadan yazdırmaya izin ver</translation>
 <translation id="6796215185873669533">User-Agent dizesi sürümü için varsayılan olarak tarayıcı ayarlarını kullan.</translation>
 <translation id="6800181452282128474">Quirks Sunucularını sorgulama</translation>
+<translation id="6801739506172328815">Punto cinsinden filigran metninin yazı tipi boyutu.</translation>
 <translation id="6802412020718145539">PDF görüntüleyici, OOPIF mimarisini kullanır.</translation>
 <translation id="68031099365512050">Ses durumunu bildir</translation>
 <translation id="680356860463873420">Kullanıcıların PluginVm kullanmasına izin verme</translation>
diff --git a/components/policy/resources/policy_templates_uk.xtb b/components/policy/resources/policy_templates_uk.xtb
index 874bdf7..4ae5d664 100644
--- a/components/policy/resources/policy_templates_uk.xtb
+++ b/components/policy/resources/policy_templates_uk.xtb
@@ -106,6 +106,7 @@
       Якщо цей параметр не налаштовано, використовуватиметься каталог профілю за умовчанням.</translation>
 <translation id="1053981429146436598">Група правил, пов’язаних із налаштуваннями запитів приватної мережі.  Докладнішу інформацію наведено на сторінці https://wicg.github.io/private-network-access/.</translation>
 <translation id="1059069692400941670">Вимкнути імпортування пошукової системи за умовчанням під час першого запуску</translation>
+<translation id="1060020040574767394">Налаштувати спеціальні параметри водяного знака</translation>
 <translation id="1062011392452772310">Вмикає віддалене підтвердження даних для пристрою</translation>
 <translation id="1062407476771304334">Замінити</translation>
 <translation id="1063860513136880926">Якщо ввімкнути це правило, знімки екрана не можна буде робити за допомогою комбінацій клавіш або API розширення. Якщо його вимкнути або не налаштувати, знімки екрана будуть дозволені.
@@ -494,6 +495,7 @@
 <translation id="1379689277107868399">Якщо це правило не налаштувати або вибрати для нього значення DoNotPrompt, <ph name="PRODUCT_NAME" /> не пропонуватиме користувачу пройти повторну автентифікацію у веб-переглядачі.
 
 Якщо вибрати значення PromptInTab, після завершення строку дії автентифікації користувача відкриватиметься нова вкладка зі сторінкою входу в обліковий запис Google. Це можливо, лише якщо використовується <ph name="CHROME_SYNC_NAME" />.</translation>
+<translation id="1384040387986918863">Прозорість заливки тексту водяного знака: від 0 (прозора) до 100 (непрозора).</translation>
 <translation id="1384459581748403878">Довідкові матеріали: <ph name="REFERENCE_URL" /></translation>
 <translation id="1384594066274112751">Це правило забороняє веб-переглядачу відхиляти будь-які URL-адреси, які відповідають принаймні одному вказаному шаблону (за допомогою формату фільтра <ph name="URL_BLOCKLIST_POLICY_NAME" />).
       Зокрема, правило застосовується до відхилень, пов’язаних із недостатнім обсягом пам’яті й режимом високої ефективності.
@@ -1120,6 +1122,15 @@
       Саме в цьому порядку мови відображатимуться в розділі "Розмістіть мови в бажаному порядку" на сторінці chrome://settings/languages. Користувачі не зможуть видалити налаштовані в правилі мови чи змінити їх порядок, але матимуть змогу додавати нові з нижчим пріоритетом. Також вони зможуть керувати мовою інтерфейсу веб-переглядача, налаштуваннями перекладу та перевірки орфографії (якщо для них не діятимуть інші правила).
 
       Якщо не налаштувати це правило, користувачі зможуть керувати всім списком вибраних мов.</translation>
+<translation id="180243155313050440">Це правило керує спеціальною міткою, яка використовується для позначення керованого вебпереглядача. У керованих вебпереглядачах ця мітка відображатиметься в нижньому колонтитулі сторінки нової вкладки в застереженні про адміністрування. Спеціальна мітка не перекладатиметься.
+
+Якщо застосувати це правило, усі сегменти, що містять більше ніж 16 символів, скорочуватимуться за допомогою символу "…". Не використовуйте довгі назви.
+
+Зверніть увагу, що це правило застосовується лише до керованих вебпереглядачів, тому воно не діє для керованих користувачів у некерованих вебпереглядачах.
+
+У <ph name="MS_WIN_NAME" /> це правило застосовується лише для екземплярів, які зареєстровано в доменах <ph name="MS_AD_NAME" /> чи <ph name="MS_AAD_NAME" /> або в <ph name="CHROME_ENTERPRISE_CORE_NAME" />.
+
+У <ph name="MAC_OS_NAME" /> це правило доступне лише для екземплярів, які контролюються через Керування мобільними пристроями або зареєстровані в домені через MCX чи в <ph name="CHROME_ENTERPRISE_CORE_NAME" />.</translation>
 <translation id="1803646570632580723">Список закріплених програм для відображення на панелі запуску</translation>
 <translation id="1808715480127969042">Блокувати файли cookie на цих сайтах</translation>
 <translation id="1810261428246410396">Дозволити використання миттєвої точки доступу.</translation>
@@ -1809,6 +1820,13 @@
       Користувачі не можуть змінити або замінити його.
 
       Примітка. Якщо це правило застосовується, до всіх запитів HTTP та HTTPS, що надсилаються в домени google.com, додається заголовок X-GoogApps-Allowed-Domains, як описано на сторінці https://support.google.com/a/answer/1668854.</translation>
+<translation id="2287414160388710497">За допомогою цього правила адміністратори можуть налаштовувати вигляд водяних знаків, які застосовуються згідно з правилами запобігання витокам даних (DLP). Зокрема, вони можуть змінювати прозорість заливки й контуру та розмір шрифту.
+Якщо це правило або певні його значення не налаштувати, Chrome використовуватиме параметри водяного знаку за умовчанням:
+прозорість заливки – 4, прозорість контуру – 6, розмір шрифту – 24.
+
+Прозорість заливки – це значення у відсотках від 0 (повністю прозора) до 100 (повністю непрозора).
+Прозорість контуру – це значення у відсотках від 0 (повністю прозорий) до 100 (повністю непрозорий).
+Значення розміру шрифту вказується в пунктах.</translation>
 <translation id="2288506601233091655">Заборонити видаляти історію завдань друку</translation>
 <translation id="2289688405312849186">Ім'я користувача "user@realm". Заповнювач <ph name="LOGIN_ID_PLACEHOLDER" /> буде замінено іменем користувача "user". Заповнювач <ph name="LOGIN_EMAIL_PLACEHOLDER" /> буде замінено повним іменем "user@realm".</translation>
 <translation id="2290270645214705008">Якщо це правило вимкнено, сервіс хосту віддаленого доступу не можна запустити або налаштувати для того, щоб приймати вхідні підключення.  Це правило не стосується віддаленої підтримки.
@@ -2561,6 +2579,7 @@
 <translation id="288448261660192095">Якщо це правило ввімкнено, на час віддаленого підключення до хосту його фізичні пристрої вводу/виводу вимикаються.
 
       Якщо це правило вимкнено або не налаштовано, під час віддаленого підключення до хосту з ним можуть взаємодіяти як віддалені, так і локальні користувачі.</translation>
+<translation id="288463102030083286">Налаштування спеціальних параметрів водяного знака</translation>
 <translation id="2884765974461416016">Вимкнути надсилання контенту з додатків Android у веб-додатки</translation>
 <translation id="2886215882246310669">Контролює, чи <ph name="PRODUCT_OS_NAME" /> дозволяє додавати на пристрій нові облікові записи користувачів Family Link.
       Це правило корисне лише разом із правилом <ph name="DEVICE_USER_ALLOWLIST_POLICY_NAME" />. Крім облікових записів, указаних у білому списку, воно дозволяє ще й облікові записи Family Link.
@@ -3174,6 +3193,7 @@
 <translation id="3278042410658310805">Вимкнути голосові підказки на екрані входу й дозволити користувачу тимчасово ввімкнути цю функцію</translation>
 <translation id="328347261792478720">За умовчанням веб-переглядач показуватиме користувачу персоналізовані рекомендації мультимедійного контенту. Якщо це правило вимкнено, користувач не бачитиме таких рекомендацій. Якщо це правило ввімкнено або не налаштовано, користувач бачитиме рекомендації.</translation>
 <translation id="3284094172359247914">Контролювати використання API WebUSB</translation>
+<translation id="3285231260918855067">Прозорість контуру тексту водяного знака: від 0 (прозорий) до 100 (непрозорий).</translation>
 <translation id="3286159327013237833">Увімкнути автоматичне натискання на екрані входу</translation>
 <translation id="3288595667065905535">Версія оновлення</translation>
 <translation id="3291940794983537008">Налаштування для інструментів розробника функцій на основі генеративного ШІ</translation>
@@ -4511,6 +4531,15 @@
 <translation id="4297483555396496700">Якщо для цього правила вибрати значення "правда", користувачі зможуть змінювати лише версію оновлення для цього пристрою. Якщо вибрати для цього правила значення "неправда" або не налаштувати його, користувачі не зможуть змінювати цю версію.
 
 Налаштування правила <ph name="CHROME_OS_RELEASE_CHANNEL_POLICY_NAME" /> діють, лише якщо для <ph name="CHROME_OS_RELEASE_CHANNEL_DELEGATED_POLICY_NAME" /> вибрано значення "неправда".</translation>
+<translation id="4297774573405304484">URL-адреса зображення, яке використовуватиметься як корпоративний значок у керованому вебпереглядачі. Вона має спрямовувати на зображення.
+
+Рекомендовано використовувати значок вебсторінки (приклад: https://www.google.com/favicon.ico) або значок розміром не менше ніж 48 x 48 пікс.
+
+Зверніть увагу, що це правило застосовується лише до керованих вебпереглядачів, тому воно не діє для керованих користувачів у некерованих вебпереглядачах.
+
+У <ph name="MS_WIN_NAME" /> це правило застосовується лише для екземплярів, які зареєстровано в доменах <ph name="MS_AD_NAME" /> чи <ph name="MS_AAD_NAME" /> або в <ph name="CHROME_ENTERPRISE_CORE_NAME" />.
+
+У <ph name="MAC_OS_NAME" /> це правило доступне лише для екземплярів, які контролюються через Керування мобільними пристроями або зареєстровані в домені через MCX чи в <ph name="CHROME_ENTERPRISE_CORE_NAME" />.</translation>
 <translation id="4301478455179579340">Підписування нативних додатків під час встановлення прогресивних вебдодатків</translation>
 <translation id="4303167373847512281">Дозволити режим розробника</translation>
 <translation id="4307116964468610577">Це правило дає змогу подовжити строк експлуатації системних акумуляторів, заряджаючи їх повністю лише раз на день. До кінця дня заряд підтримуватиметься на нижчому рівні, щоб захистити акумулятор від зносу (навіть якщо пристрій підключено до джерела живлення).
@@ -8338,6 +8367,7 @@
 <translation id="6795485990775913659">Дозволити лише друк без PIN-коду</translation>
 <translation id="6796215185873669533">Використовувати налаштування веб-переглядача за умовчанням для версії в сегменті агента користувача.</translation>
 <translation id="6800181452282128474">Не надсилати запити на сервери Quirks</translation>
+<translation id="6801739506172328815">Розмір шрифту для тексту водяного знака в пунктах.</translation>
 <translation id="6802412020718145539">Засіб перегляду PDF використовує архітектуру OOPIF.</translation>
 <translation id="68031099365512050">Повідомляти статус аудіо</translation>
 <translation id="680356860463873420">Заборонити користувачам застосовувати PluginVm</translation>
diff --git a/components/policy/resources/policy_templates_zh-CN.xtb b/components/policy/resources/policy_templates_zh-CN.xtb
index 55a18532a..ad90c17 100644
--- a/components/policy/resources/policy_templates_zh-CN.xtb
+++ b/components/policy/resources/policy_templates_zh-CN.xtb
@@ -106,6 +106,7 @@
       如果您未设置此政策,系统将会使用默认的个人资料目录。</translation>
 <translation id="1053981429146436598">一组与专用网络请求设置相关的政策。请参阅 https://wicg.github.io/private-network-access/。</translation>
 <translation id="1059069692400941670">禁止在首次运行时导入默认搜索引擎</translation>
+<translation id="1060020040574767394">配置自定义水印设置</translation>
 <translation id="1062011392452772310">为设备启用远程认证</translation>
 <translation id="1062407476771304334">替换</translation>
 <translation id="1063860513136880926">启用此政策会禁止使用键盘快捷键或扩展程序 API 截屏。停用或不设置此政策则会允许截屏。
@@ -491,6 +492,7 @@
 <translation id="1379689277107868399">如果此政策设为 DoNotPrompt 或未设置,<ph name="PRODUCT_NAME" /> 不会自动提示用户重新向浏览器验证身份。
 
 如果此政策设为 PromptInTab,当用户的身份验证到期时,系统会立即在新标签页中打开 Google 登录页面。这种情况仅发生于使用 <ph name="CHROME_SYNC_NAME" />时。</translation>
+<translation id="1384040387986918863">水印文字的填充不透明度,范围为 0(透明)到 100(不透明)。</translation>
 <translation id="1384459581748403878">参考页面:<ph name="REFERENCE_URL" /></translation>
 <translation id="1384594066274112751">此政策旨在确保与其指定(使用 <ph name="URL_BLOCKLIST_POLICY_NAME" /> 过滤器格式)的一个或多个格式匹配的任何网址都绝不会被浏览器舍弃。
       这适用于内存压力和高效率模式舍弃。
@@ -1091,6 +1093,7 @@
       该列表将按同样的顺序显示在 chrome://settings/languages 页面内的“根据您的偏好设置对语言进行排序”部分中。用户将无法移除或重新排列此政策设定的语言,但能在这些语言下方添加语言。此外,用户还能完全控制浏览器的界面语言和翻译/拼写检查设置,除非其他政策已强制执行这些设置。
 
       如果此政策未设置,用户便可操控整个首选语言列表。</translation>
+<translation id="180243155313050440">此政策可控制用于标识受管浏览器的自定义标签。对于受管浏览器,此标签会显示在“新标签页”页面页脚的管理免责声明中。系统不会翻译此自定义标签。应用此政策后,任何超过 16 个字符的字符串都会被截断,并在末尾添加“…”。请避免使用过长的名称。请注意,此政策仅适用于受管浏览器,对使用非受管浏览器的受管用户没有影响。在 <ph name="MS_WIN_NAME" /> 上,此政策仅适用于已加入 <ph name="MS_AD_NAME" /> 网域的实例、已加入 <ph name="MS_AAD_NAME" /> 的实例,或已注册 <ph name="CHROME_ENTERPRISE_CORE_NAME" />的实例。在 <ph name="MAC_OS_NAME" /> 上,此政策仅适用于通过 MDM 进行管理的实例、已通过 MCX 加入网域的实例或已在 <ph name="CHROME_ENTERPRISE_CORE_NAME" />中注册的实例。</translation>
 <translation id="1803646570632580723">要在启动程序中显示的固定应用的列表</translation>
 <translation id="1808715480127969042">在这些网站上阻止 Cookie</translation>
 <translation id="1810261428246410396">允许使用即时网络共享功能。</translation>
@@ -1778,6 +1781,13 @@
       用户无法更改或覆盖此设置。
 
       请注意:此政策会致使系统将 X-GoogApps-Allowed-Domains 标头附加到向所有 google.com 网域发送的所有 HTTP 和 HTTPS 请求中,如 https://support.google.com/a/answer/1668854 中所述。</translation>
+<translation id="2287414160388710497">允许管理员自定义数据泄露防护 (DLP) 规则应用的水印外观。这包括设置填充/轮廓不透明度,以及定义字体大小。
+如果未设置此政策或某些值,Chrome 将使用其默认水印行为。
+默认值如下:填充不透明度为 4,轮廓不透明度为 6,字体大小为 24。
+
+“填充不透明度”是介于 0(完全透明)到 100(完全不透明)之间的百分比。
+“轮廓不透明度”是介于 0(完全透明)到 100(完全不透明)之间的百分比。
+“FontSize”以磅为单位。</translation>
 <translation id="2288506601233091655">不允许删除打印任务记录</translation>
 <translation id="2289688405312849186">用户的主账号“user@realm”。占位符 <ph name="LOGIN_ID_PLACEHOLDER" /> 会被用户名“user”取代。占位符 <ph name="LOGIN_EMAIL_PLACEHOLDER" /> 会被完整主账号“user@realm”取代。</translation>
 <translation id="2290270645214705008">如果此政策已停用,系统将无法启动远程访问主机服务,也无法将该服务配置为接受传入连接。此政策不影响远程支持场景。
@@ -2516,6 +2526,7 @@
 <translation id="288448261660192095">如果此政策已启用,在远程连接期间,系统会关闭远程访问主机的物理输入和输出设备。
 
       如果此政策已停用或未设置,本地用户和远程用户都能在访问期间与远程访问主机交互。</translation>
+<translation id="288463102030083286">自定义水印配置</translation>
 <translation id="2884765974461416016">停用 Android 应用至 Web 应用分享功能。</translation>
 <translation id="2886215882246310669">控制 <ph name="PRODUCT_OS_NAME" />是否允许在设备上添加新的 Family Link 用户账号。
       此政策只能与 <ph name="DEVICE_USER_ALLOWLIST_POLICY_NAME" /> 结合使用。除了许可名单中所指定的账号外,该政策允许添加 Family Link 账号。
@@ -3126,6 +3137,7 @@
 <translation id="3278042410658310805">为登录屏幕停用语音反馈,并允许用户暂时启用它</translation>
 <translation id="328347261792478720">默认情况下,浏览器会显示为用户量身定制的媒体推荐内容。如果此政策已停用,系统将对用户隐藏这些推荐内容。如果此政策已启用或未设置,系统则会向用户显示媒体推荐内容。</translation>
 <translation id="3284094172359247914">控制对 WebUSB API 的使用</translation>
+<translation id="3285231260918855067">水印文字的轮廓不透明度,范围为 0(透明)到 100(不透明)。</translation>
 <translation id="3286159327013237833">允许在登录屏幕上自动点击</translation>
 <translation id="3288595667065905535">发布版</translation>
 <translation id="3291940794983537008">开发者工具生成式 AI 功能的设置</translation>
@@ -4454,6 +4466,7 @@
 <translation id="4297483555396496700">如果此政策设为 True,用户只能更改设备的发布渠道;如果设为 False 或未设置,则用户将无法更改渠道。
 
 仅当 <ph name="CHROME_OS_RELEASE_CHANNEL_DELEGATED_POLICY_NAME" /> 设为 False 时,设置 <ph name="CHROME_OS_RELEASE_CHANNEL_POLICY_NAME" /> 才会产生影响。</translation>
+<translation id="4297774573405304484">指向特定图片的网址,该图片将用作受管浏览器的企业标记。此网址必须指向图片。建议使用网站图标(例如 https://www.google.com/favicon.ico)或不小于 48 x 48 像素的图标。请注意,此政策仅适用于受管浏览器,对使用非受管浏览器的受管用户没有影响。在 <ph name="MS_WIN_NAME" /> 上,此政策仅适用于已加入 <ph name="MS_AD_NAME" /> 网域的实例、已加入 <ph name="MS_AAD_NAME" /> 的实例,或已注册 <ph name="CHROME_ENTERPRISE_CORE_NAME" />的实例。在 <ph name="MAC_OS_NAME" /> 上,此政策仅适用于通过 MDM 进行管理的实例、已通过 MCX 加入网域的实例或已在 <ph name="CHROME_ENTERPRISE_CORE_NAME" />中注册的实例。</translation>
 <translation id="4301478455179579340">在安装渐进式 Web 应用期间对原生应用进行签名</translation>
 <translation id="4303167373847512281">允许使用开发者模式</translation>
 <translation id="4307116964468610577">此政策允许系统电池每天只充满 1 次,以延长它的使用寿命。除了用来将电池充满的时间,在当天的其余时间内,电池始终都不会充到 100%,即使系统已接通电源也是如此,这样更利于储电。
@@ -8201,6 +8214,7 @@
 <translation id="6795485990775913659">仅允许在没有 PIN 码的情况下打印</translation>
 <translation id="6796215185873669533">将 User-Agent 字符串版本默认设为浏览器设置。</translation>
 <translation id="6800181452282128474">不向 Quirks Server 发送查询</translation>
+<translation id="6801739506172328815">水印文字的字体大小(以磅为单位)。</translation>
 <translation id="6802412020718145539">PDF 查看器使用 OOPIF 架构。</translation>
 <translation id="68031099365512050">报告音频状态</translation>
 <translation id="680356860463873420">不允许用户使用 PluginVm</translation>
diff --git a/components/policy/resources/policy_templates_zh-TW.xtb b/components/policy/resources/policy_templates_zh-TW.xtb
index 047fb55..66c7616 100644
--- a/components/policy/resources/policy_templates_zh-TW.xtb
+++ b/components/policy/resources/policy_templates_zh-TW.xtb
@@ -106,6 +106,7 @@
       如果不設定這項政策,系統會使用預設的設定檔目錄。</translation>
 <translation id="1053981429146436598">與私人網路要求設定相關的一組政策,請參閱 https://wicg.github.io/private-network-access/。</translation>
 <translation id="1059069692400941670">不允許在第一次執行時匯入預設搜尋引擎</translation>
+<translation id="1060020040574767394">設定自訂浮水印設定</translation>
 <translation id="1062011392452772310">為裝置啟用遠端認證機制</translation>
 <translation id="1062407476771304334">取代</translation>
 <translation id="1063860513136880926">如果將這項政策設為啟用,使用者將無法使用鍵盤快速鍵或擴充功能 API 擷取螢幕畫面。如果將這項政策設為停用或不設定,使用者將可擷取螢幕畫面。
@@ -485,6 +486,7 @@
 <translation id="1379689277107868399">如果設為 DoNotPrompt 或未設定,<ph name="PRODUCT_NAME" /> 不會自動提示使用者重新驗證瀏覽器。
 
 如果設為 PromptInTab,使用者的驗證過期後,系統會立即在新分頁中開啟 Google 登入頁面。這個情形只有在使用 <ph name="CHROME_SYNC_NAME" /> 時才會發生。</translation>
+<translation id="1384040387986918863">浮水印文字的填滿不透明度,範圍從 0 (透明) 到 100 (不透明)。</translation>
 <translation id="1384459581748403878">參考頁面:<ph name="REFERENCE_URL" /></translation>
 <translation id="1384594066274112751">如果啟用這項政策,只要任何網址符合政策指定 (使用 <ph name="URL_BLOCKLIST_POLICY_NAME" /> 篩選器格式) 的一或多個模式,就不會遭瀏覽器捨棄。這項政策會套用至用於釋放記憶體壓力及高效率模式的捨棄功能。系統會卸載捨棄的網頁,並完整收回該網頁的資源。與網頁殘餘資料相關聯的分頁仍會保留在分頁列中,當使用者切換到該分頁時,就會觸發系統完整重新載入該分頁。
       </translation>
@@ -1076,6 +1078,15 @@
       設定完成後,chrome://settings/languages 的「根據你的偏好設定排列語言順序」部分就會顯示同樣的順序。使用者將無法移除或調整這項政策設定的語言與順序,但可以在這類語言底下新增其他語言。使用者也能全面控管瀏覽器的 UI 語言和翻譯/拼字檢查設定,但前提是其他政策未強制執行相關設定。
 
       如果不設定這項政策,使用者就能完全控制偏好語言清單。</translation>
+<translation id="180243155313050440">這項政策會控管用於表示是否為受管理瀏覽器的自訂標籤。如果是受管理的瀏覽器,「新分頁」頁面頁尾的管理免責事項就會顯示這個標籤。系統不會翻譯自訂標籤。
+
+套用這項政策後,任何長度超過 16 個半形字元的字串都會以「...」截斷。請勿使用過長的名稱。
+
+請注意,這項政策只會套用到受管理的瀏覽器,不會影響非受管理瀏覽器的受管理使用者。
+
+在 <ph name="MS_WIN_NAME" /> 上,這項政策適用的執行個體必須加入 <ph name="MS_AD_NAME" /> 網域或 <ph name="MS_AAD_NAME" />,或者註冊 <ph name="CHROME_ENTERPRISE_CORE_NAME" />。
+
+在 <ph name="MAC_OS_NAME" /> 上,這項政策適用的執行個體必須透過行動裝置管理 (MDM) 軟體管理、透過 MCX 加入網域,或者註冊 <ph name="CHROME_ENTERPRISE_CORE_NAME" />。</translation>
 <translation id="1803646570632580723">要顯示在啟動器中的固定應用程式清單</translation>
 <translation id="1808715480127969042">封鎖這些網站的 Cookie</translation>
 <translation id="1810261428246410396">允許使用即時網路共用功能。</translation>
@@ -1754,6 +1765,13 @@
       使用者無法變更或覆寫這項設定。
 
       注意:套用這項政策後,傳送給所有 google.com 網域的任何 HTTP 和 HTTPS 要求都會加上 X-GoogApps-Allowed-Domains 標頭。詳情請參閱以下說明文章:https://support.google.com/a/answer/1668854。</translation>
+<translation id="2287414160388710497">允許管理員自訂資料遺失防護 (DLP) 規則套用的浮水印外觀,包括設定填滿/外框不透明度,以及定義字型大小。
+如果未設定這項政策或部分值,Chrome 會採用預設浮水印行為。
+預設值如下:填滿不透明度為 4、外框不透明度為 6,以及字型大小為 24。
+
+「填滿不透明度」是百分比,範圍從 0 (完全透明) 到 100 (完全不透明)。
+「外框不透明度」是百分比,範圍從 0 (完全透明) 到 100 (完全不透明)。
+「FontSize」是以點為設定單位。</translation>
 <translation id="2288506601233091655">不允許刪除列印工作記錄</translation>
 <translation id="2289688405312849186">使用者主體是「user@realm」。<ph name="LOGIN_ID_PLACEHOLDER" /> 預留位置會由使用者名稱「user」取代。<ph name="LOGIN_EMAIL_PLACEHOLDER" /> 預留位置會由完整主體「user@realm」取代。</translation>
 <translation id="2290270645214705008">如果將這項政策設為「停用」,將無法開啟遠端存取主機服務,也無法將該服務設為接受外來連線。這項政策不適用於遠端支援情境。
@@ -2486,6 +2504,7 @@
 <translation id="288448261660192095">如果將這項政策設為啟用,在遠端連線期間,系統會停用遠端存取主機的實體輸入和輸出裝置。
 
       如果將這項政策設為停用或不設定,則在共用主機期間,本機和遠端使用者都可與主機互動。</translation>
+<translation id="288463102030083286">自訂浮水印設定</translation>
 <translation id="2884765974461416016">禁止從 Android 分享內容到網頁應用程式。</translation>
 <translation id="2886215882246310669">這項政策可控管 <ph name="PRODUCT_OS_NAME" />是否允許將新的 Family Link 使用者帳戶加入裝置。
       這項政策只有在搭配 <ph name="DEVICE_USER_ALLOWLIST_POLICY_NAME" /> 時才會有作用。除了許可清單中定義的帳戶以外,這項政策也會允許 Family Link 帳戶加入裝置。
@@ -3075,6 +3094,7 @@
 <translation id="3278042410658310805">在登入畫面上停用互動朗讀功能,並允許使用者暫時啟用</translation>
 <translation id="328347261792478720">在預設狀態下,瀏覽器會根據使用者顯示個人化的媒體推薦內容。如果將這項政策設為停用,瀏覽器會向使用者隱藏這類推薦內容。如果將這項政策設為啟用或不設定,瀏覽器會向使用者顯示媒體推薦內容。</translation>
 <translation id="3284094172359247914">控制 WebUSB API 使用權限</translation>
+<translation id="3285231260918855067">浮水印文字的外框不透明度,範圍從 0 (透明) 到 100 (不透明)。</translation>
 <translation id="3286159327013237833">在登入畫面上啟用自動點選功能</translation>
 <translation id="3288595667065905535">發布頻道</translation>
 <translation id="3291940794983537008">開發人員工具生成式 AI 功能設定</translation>
@@ -4391,6 +4411,15 @@
 <translation id="4297483555396496700">請將這項政策設為 True,使用者才能變更裝置的發布版本。如果將這項政策設為 False 或不設定,使用者就無法變更版本。
 
 只有將 <ph name="CHROME_OS_RELEASE_CHANNEL_DELEGATED_POLICY_NAME" /> 設為 False,<ph name="CHROME_OS_RELEASE_CHANNEL_POLICY_NAME" /> 設定才會生效。</translation>
+<translation id="4297774573405304484">設定圖片網址,用於受管理瀏覽器的企業徽章。該網址必須指向圖片。
+
+建議使用網站小圖示 (例如 https://www.google.com/favicon.ico) 或尺寸 48 x 48 像素以上的圖示。
+
+請注意,這項政策只會套用到受管理的瀏覽器,不會影響非受管理瀏覽器的受管理使用者。
+
+在 <ph name="MS_WIN_NAME" /> 上,這項政策適用的執行個體必須加入 <ph name="MS_AD_NAME" /> 網域或 <ph name="MS_AAD_NAME" />,或者註冊 <ph name="CHROME_ENTERPRISE_CORE_NAME" />。
+
+在 <ph name="MAC_OS_NAME" /> 上,這項政策適用的執行個體必須透過行動裝置管理 (MDM) 軟體管理、透過 MCX 加入網域,或者註冊 <ph name="CHROME_ENTERPRISE_CORE_NAME" />。</translation>
 <translation id="4301478455179579340">在安裝漸進式網頁應用程式期間簽署原生應用程式</translation>
 <translation id="4303167373847512281">允許使用開發人員模式</translation>
 <translation id="4307116964468610577">這項政策每天只會將電池充飽一次,藉此延長系統電池的使用壽命。在當天剩餘時間內,即使系統已接上電源,電池仍會保持在較低的充電狀態。
@@ -8092,6 +8121,7 @@
 <translation id="6795485990775913659">只在 PIN 碼停用時允許列印</translation>
 <translation id="6796215185873669533">將 User-Agent 字串版本預設為瀏覽器設定值。</translation>
 <translation id="6800181452282128474">不向 Quirks Server 發送查詢</translation>
+<translation id="6801739506172328815">浮水印文字的字型大小 (以點為單位)。</translation>
 <translation id="6802412020718145539">PDF 檢視器採用 OOPIF 架構。</translation>
 <translation id="68031099365512050">回報音訊狀態</translation>
 <translation id="680356860463873420">不允許使用者使用 PluginVm</translation>
diff --git a/components/prefs/json_pref_store.cc b/components/prefs/json_pref_store.cc
index d2d75df..7653c5c 100644
--- a/components/prefs/json_pref_store.cc
+++ b/components/prefs/json_pref_store.cc
@@ -549,3 +549,7 @@
 bool JsonPrefStore::HasReadErrorDelegate() const {
   return error_delegate_.has_value();
 }
+
+PrefFilter* JsonPrefStore::GetFilter() {
+  return pref_filter_.get();
+}
diff --git a/components/prefs/json_pref_store.h b/components/prefs/json_pref_store.h
index 5ed5f8d..8ce33b7 100644
--- a/components/prefs/json_pref_store.h
+++ b/components/prefs/json_pref_store.h
@@ -95,6 +95,7 @@
   bool ReadOnly() const override;
   PrefReadError GetReadError() const override;
   bool HasReadErrorDelegate() const override;
+  PrefFilter* GetFilter() override;
   // Note this method may be asynchronous if this instance has a |pref_filter_|
   // in which case it will return PREF_READ_ERROR_ASYNCHRONOUS_TASK_INCOMPLETE.
   // See details in pref_filter.h.
diff --git a/components/prefs/json_pref_store_unittest.cc b/components/prefs/json_pref_store_unittest.cc
index a420b37..4349c68 100644
--- a/components/prefs/json_pref_store_unittest.cc
+++ b/components/prefs/json_pref_store_unittest.cc
@@ -32,6 +32,7 @@
 #include "base/values.h"
 #include "components/prefs/persistent_pref_store_unittest.h"
 #include "components/prefs/pref_filter.h"
+#include "components/prefs/testing_pref_service.h"
 #include "testing/gmock/include/gmock/gmock.h"
 #include "testing/gtest/include/gtest/gtest.h"
 
@@ -81,6 +82,8 @@
   }
   void OnStoreDeletionFromDisk() override {}
 
+  void SetPrefService(PrefService* pref_service) override {}
+
   bool has_intercepted_prefs() const { return intercepted_prefs_ != nullptr; }
 
   // Finalize an intercepted read, handing |intercepted_prefs_| back to its
@@ -1022,4 +1025,85 @@
             write_callback_observer_.GetAndResetPostWriteObservationState());
 }
 
+class MockApiTestPrefFilter : public PrefFilter {
+ public:
+  MockApiTestPrefFilter() = default;
+  ~MockApiTestPrefFilter() override = default;
+
+  void FilterOnLoad(PostFilterOnLoadCallback on_done,
+                    base::Value::Dict pref_store_contents) override {
+    std::move(on_done).Run(std::move(pref_store_contents), false);
+  }
+
+  OnWriteCallbackPair FilterSerializeData(
+      base::Value::Dict& pref_store_contents) override {
+    return OnWriteCallbackPair();
+  }
+
+  void FilterUpdate(std::string_view path) override {}
+  void OnStoreDeletionFromDisk() override {}
+
+  void SetPrefService(PrefService* pref_service) override {
+    pref_service_ = pref_service;
+  }
+
+  PrefService* get_pref_service_for_testing() const {
+    return pref_service_.get();
+  }
+
+ private:
+  raw_ptr<PrefService> pref_service_ = nullptr;
+};
+
+// A test fixture for testing the new APIs on JsonPrefStore.
+class JsonPrefStoreApiTest : public testing::Test {
+ protected:
+  JsonPrefStoreApiTest()
+      : task_environment_(base::test::TaskEnvironment::MainThreadType::UI) {}
+
+  void SetUp() override { ASSERT_TRUE(temp_dir_.CreateUniqueTempDir()); }
+
+  base::FilePath GetTestFile() {
+    return temp_dir_.GetPath().AppendASCII("test_api.json");
+  }
+
+  base::test::TaskEnvironment task_environment_;
+  base::ScopedTempDir temp_dir_;
+};
+
+TEST_F(JsonPrefStoreApiTest, GetFilter) {
+  // Test with a filter.
+  auto filter = std::make_unique<MockApiTestPrefFilter>();
+  PrefFilter* raw_filter = filter.get();
+  auto pref_store_with_filter =
+      base::MakeRefCounted<JsonPrefStore>(GetTestFile(), std::move(filter));
+  EXPECT_EQ(raw_filter, pref_store_with_filter->GetFilter());
+
+  // Test without a filter.
+  auto pref_store_without_filter =
+      base::MakeRefCounted<JsonPrefStore>(GetTestFile());
+  EXPECT_EQ(nullptr, pref_store_without_filter->GetFilter());
+}
+
+TEST_F(JsonPrefStoreApiTest, SetPrefServiceOnFilter) {
+  auto filter = std::make_unique<MockApiTestPrefFilter>();
+  MockApiTestPrefFilter* raw_filter = filter.get();
+  auto pref_store =
+      base::MakeRefCounted<JsonPrefStore>(GetTestFile(), std::move(filter));
+
+  // Initially, the filter should not have a PrefService.
+  // This emulates the scenario where the filter object is created but the pref
+  // service isn't available yet.
+  EXPECT_EQ(nullptr, raw_filter->get_pref_service_for_testing());
+
+  TestingPrefServiceSimple pref_service;
+
+  // Set the PrefService on the filter via the store's API.
+  PrefFilter* retrieved_filter = pref_store->GetFilter();
+  ASSERT_NE(nullptr, retrieved_filter);
+  retrieved_filter->SetPrefService(&pref_service);
+
+  // Verify that the filter now holds the correct PrefService pointer.
+  EXPECT_EQ(&pref_service, raw_filter->get_pref_service_for_testing());
+}
 }  // namespace base
diff --git a/components/prefs/persistent_pref_store.cc b/components/prefs/persistent_pref_store.cc
index 0a2943b..ce8bb90 100644
--- a/components/prefs/persistent_pref_store.cc
+++ b/components/prefs/persistent_pref_store.cc
@@ -28,3 +28,15 @@
 bool PersistentPrefStore::IsInMemoryPrefStore() const {
   return false;
 }
+
+PrefFilter* PersistentPrefStore::GetFilter() {
+  return nullptr;
+}
+
+PrefFilter* PersistentPrefStore::GetDefaultStoreFilter() {
+  return nullptr;
+}
+
+PrefFilter* PersistentPrefStore::GetSelectedStoreFilter() {
+  return nullptr;
+}
diff --git a/components/prefs/persistent_pref_store.h b/components/prefs/persistent_pref_store.h
index 9daea07..2cbb0d9 100644
--- a/components/prefs/persistent_pref_store.h
+++ b/components/prefs/persistent_pref_store.h
@@ -6,6 +6,7 @@
 #define COMPONENTS_PREFS_PERSISTENT_PREF_STORE_H_
 
 #include "base/functional/callback.h"
+#include "components/prefs/pref_filter.h"
 #include "components/prefs/prefs_export.h"
 #include "components/prefs/writeable_pref_store.h"
 
@@ -89,6 +90,17 @@
   // GetReadError(), this can be used to identity if there's a pending read.
   virtual bool HasReadErrorDelegate() const = 0;
 
+  // Returns this store's filter, or nullptr if it has none.
+  virtual PrefFilter* GetFilter();
+
+  // Returns the default store filter used by SegregatedPrefStore.
+  // Returns nullptr by default.
+  virtual PrefFilter* GetDefaultStoreFilter();
+
+  // Returns the selected store filter used by SegregatedPrefStore.
+  // Returns nullptr by default.
+  virtual PrefFilter* GetSelectedStoreFilter();
+
  protected:
   ~PersistentPrefStore() override = default;
 };
diff --git a/components/prefs/pref_filter.h b/components/prefs/pref_filter.h
index 71818c45..a9771f0 100644
--- a/components/prefs/pref_filter.h
+++ b/components/prefs/pref_filter.h
@@ -9,9 +9,12 @@
 #include <utility>
 
 #include "base/functional/callback_forward.h"
+#include "base/memory/weak_ptr.h"
 #include "base/values.h"
 #include "components/prefs/prefs_export.h"
 
+class PrefService;
+
 // Filters preferences as they are loaded from disk or updated at runtime.
 // Currently supported only by JsonPrefStore.
 class COMPONENTS_PREFS_EXPORT PrefFilter {
@@ -56,6 +59,9 @@
 
   // Cleans preference data that may have been saved outside of the store.
   virtual void OnStoreDeletionFromDisk() = 0;
+
+  // Allows a PrefService to be injected into the filter class.
+  virtual void SetPrefService(PrefService* pref_service) = 0;
 };
 
 #endif  // COMPONENTS_PREFS_PREF_FILTER_H_
diff --git a/components/prefs/segregated_pref_store.cc b/components/prefs/segregated_pref_store.cc
index df50b7d..82e74fe 100644
--- a/components/prefs/segregated_pref_store.cc
+++ b/components/prefs/segregated_pref_store.cc
@@ -230,3 +230,11 @@
 bool SegregatedPrefStore::HasReadErrorDelegate() const {
   return read_error_delegate_.has_value();
 }
+
+PrefFilter* SegregatedPrefStore::GetDefaultStoreFilter() {
+  return default_pref_store_->GetFilter();
+}
+
+PrefFilter* SegregatedPrefStore::GetSelectedStoreFilter() {
+  return selected_pref_store_ ? selected_pref_store_->GetFilter() : nullptr;
+}
diff --git a/components/prefs/segregated_pref_store.h b/components/prefs/segregated_pref_store.h
index cc55b75..51dfd6e8 100644
--- a/components/prefs/segregated_pref_store.h
+++ b/components/prefs/segregated_pref_store.h
@@ -83,6 +83,12 @@
   void OnStoreDeletionFromDisk() override;
   bool HasReadErrorDelegate() const override;
 
+  // Overridden from PersistentPrefStore to get underlying default store filter.
+  PrefFilter* GetDefaultStoreFilter() override;
+  // Overridden from PersistentPrefStore to get underlying selected store
+  // filter.
+  PrefFilter* GetSelectedStoreFilter() override;
+
  protected:
   ~SegregatedPrefStore() override;
 
diff --git a/components/privacy_sandbox/android/java/src/org/chromium/components/privacy_sandbox/TrackingProtectionDelegate.java b/components/privacy_sandbox/android/java/src/org/chromium/components/privacy_sandbox/TrackingProtectionDelegate.java
index de46898..59c8016f3 100644
--- a/components/privacy_sandbox/android/java/src/org/chromium/components/privacy_sandbox/TrackingProtectionDelegate.java
+++ b/components/privacy_sandbox/android/java/src/org/chromium/components/privacy_sandbox/TrackingProtectionDelegate.java
@@ -67,6 +67,11 @@
      */
     boolean isFingerprintingProtectionEnabled();
 
+    /**
+     * @return true if wildcards should be shown in content settings patterns.
+     */
+    boolean isDisplayWildcardInContentSettingsEnabled();
+
     /** Set the value of the fingerprinting protection state. */
     void setFingerprintingProtection(boolean enabled);
 
diff --git a/components/privacy_sandbox/android/java/src/org/chromium/components/privacy_sandbox/TrackingProtectionSettings.java b/components/privacy_sandbox/android/java/src/org/chromium/components/privacy_sandbox/TrackingProtectionSettings.java
index 5cb871a..375b0d0 100644
--- a/components/privacy_sandbox/android/java/src/org/chromium/components/privacy_sandbox/TrackingProtectionSettings.java
+++ b/components/privacy_sandbox/android/java/src/org/chromium/components/privacy_sandbox/TrackingProtectionSettings.java
@@ -249,7 +249,11 @@
     private void onExceptionsFetched(Collection<Website> sites) {
         List<WebsiteExceptionRowPreference> websites = new ArrayList<>();
         for (Website site : sites) {
-            if (mSearch == null || mSearch.isEmpty() || site.getTitle().contains(mSearch)) {
+            // Filter out any exceptions for first-party cookies.
+            if (site.representsThirdPartiesOnSite()
+                    && (mSearch == null
+                            || mSearch.isEmpty()
+                            || site.getTitle().contains(mSearch))) {
                 WebsiteExceptionRowPreference preference =
                         new WebsiteExceptionRowPreference(
                                 getContext(), site, mDelegate, this::refreshBlockingExceptions);
diff --git a/components/privacy_sandbox/android/java/src/org/chromium/components/privacy_sandbox/WebsiteExceptionRowPreference.java b/components/privacy_sandbox/android/java/src/org/chromium/components/privacy_sandbox/WebsiteExceptionRowPreference.java
index 01aee8da..3b986d4 100644
--- a/components/privacy_sandbox/android/java/src/org/chromium/components/privacy_sandbox/WebsiteExceptionRowPreference.java
+++ b/components/privacy_sandbox/android/java/src/org/chromium/components/privacy_sandbox/WebsiteExceptionRowPreference.java
@@ -55,7 +55,10 @@
         mContext = context;
         mCallback = callback;
 
-        setTitle(site.getTitle());
+        setTitle(
+                delegate.isDisplayWildcardInContentSettingsEnabled()
+                        ? mSite.getTitleForContentSetting(ContentSettingsType.COOKIES)
+                        : mSite.getTitle());
         var exception = mSite.getContentSettingException(ContentSettingsType.COOKIES);
         if (exception != null && exception.hasExpiration()) {
             int expirationInDays = assumeNonNull(exception.getExpirationInDays());
diff --git a/components/privacy_sandbox/android/javatests/src/org/chromium/components/privacy_sandbox/WebsiteExceptionRowPreferenceTest.java b/components/privacy_sandbox/android/javatests/src/org/chromium/components/privacy_sandbox/WebsiteExceptionRowPreferenceTest.java
index 7a22398..1a0b855 100644
--- a/components/privacy_sandbox/android/javatests/src/org/chromium/components/privacy_sandbox/WebsiteExceptionRowPreferenceTest.java
+++ b/components/privacy_sandbox/android/javatests/src/org/chromium/components/privacy_sandbox/WebsiteExceptionRowPreferenceTest.java
@@ -80,6 +80,8 @@
 
     @Mock private WebsiteExceptionDeletedCallback mCallback;
 
+    private static final String TEST_URL_WITH_WILDCARD = "https://[*.]test.com";
+
     @BeforeClass
     public static void setupSuite() {
         LibraryLoader.getInstance().setLibraryProcessType(LibraryProcessType.PROCESS_BROWSER);
@@ -94,6 +96,7 @@
         mPreferenceScreen = mSettingsRule.getPreferenceScreen();
         mActivity = mSettingsRule.getActivity();
         when(mDelegate.getSiteSettingsDelegate(Mockito.any())).thenReturn(mSiteSettingsDelegate);
+        when(mDelegate.isDisplayWildcardInContentSettingsEnabled()).thenReturn(true);
     }
 
     @After
@@ -117,6 +120,88 @@
 
     @Test
     @SmallTest
+    public void createExceptionWithSecondaryPattern_displayedCorrectly() {
+        Website site =
+                new Website(
+                        WebsiteAddress.create("*"), WebsiteAddress.create(TEST_URL_WITH_WILDCARD));
+        site.setContentSettingException(
+                ContentSettingsType.COOKIES,
+                new ContentSettingException(
+                        ContentSettingsType.COOKIES,
+                        /* primaryPattern */ "*",
+                        TEST_URL_WITH_WILDCARD,
+                        ContentSettingValues.ALLOW,
+                        ProviderType.PREF_PROVIDER,
+                        /* expirationInDays= */ null,
+                        /* isEmbargoed= */ false));
+        mPreference = new WebsiteExceptionRowPreference(mActivity, site, mDelegate, mCallback);
+        mPreferenceScreen.addPreference(mPreference);
+        // Check the title, summary, and the delete button.
+        onViewWaiting(withId(android.R.id.title))
+                .check(matches(allOf(withText(TEST_URL_WITH_WILDCARD), isDisplayed())));
+        onView(withId(android.R.id.summary))
+                .check(matches(allOf(withText("Does not expire"), isDisplayed())));
+        onView(withId(R.id.image_view_widget)).check(matches(isDisplayed()));
+    }
+
+    @Test
+    @SmallTest
+    public void createExceptionWithPrimaryPattern_displayedCorrectly() {
+        Website site =
+                new Website(
+                        WebsiteAddress.create(TEST_URL_WITH_WILDCARD), WebsiteAddress.create("*"));
+        site.setContentSettingException(
+                ContentSettingsType.COOKIES,
+                new ContentSettingException(
+                        ContentSettingsType.COOKIES,
+                        TEST_URL_WITH_WILDCARD,
+                        /* secondaryPattern */ "*",
+                        ContentSettingValues.ALLOW,
+                        ProviderType.PREF_PROVIDER,
+                        /* expirationInDays= */ null,
+                        /* isEmbargoed= */ false));
+        mPreference = new WebsiteExceptionRowPreference(mActivity, site, mDelegate, mCallback);
+        mPreferenceScreen.addPreference(mPreference);
+        // Check the title, summary, and the delete button.
+        onViewWaiting(withId(android.R.id.title))
+                .check(matches(allOf(withText(TEST_URL_WITH_WILDCARD), isDisplayed())));
+        onView(withId(android.R.id.summary))
+                .check(matches(allOf(withText("Does not expire"), isDisplayed())));
+        onView(withId(R.id.image_view_widget)).check(matches(isDisplayed()));
+    }
+
+    // TODO(crbug.com/393183477): Remove when fully launched.
+    @Test
+    @SmallTest
+    public void
+            createExceptionWithSecondaryPattern_displayedCorrectly_displayWildcardContentSettingsDisabled() {
+        when(mDelegate.isDisplayWildcardInContentSettingsEnabled()).thenReturn(false);
+
+        Website site =
+                new Website(
+                        WebsiteAddress.create("*"), WebsiteAddress.create(TEST_URL_WITH_WILDCARD));
+        site.setContentSettingException(
+                ContentSettingsType.COOKIES,
+                new ContentSettingException(
+                        ContentSettingsType.COOKIES,
+                        /* primaryPattern */ "*",
+                        TEST_URL_WITH_WILDCARD,
+                        ContentSettingValues.ALLOW,
+                        ProviderType.PREF_PROVIDER,
+                        /* expirationInDays= */ null,
+                        /* isEmbargoed= */ false));
+        mPreference = new WebsiteExceptionRowPreference(mActivity, site, mDelegate, mCallback);
+        mPreferenceScreen.addPreference(mPreference);
+        // Check the title, summary, and the delete button.
+        onViewWaiting(withId(android.R.id.title))
+                .check(matches(allOf(withText("https://test.com"), isDisplayed())));
+        onView(withId(android.R.id.summary))
+                .check(matches(allOf(withText("Does not expire"), isDisplayed())));
+        onView(withId(R.id.image_view_widget)).check(matches(isDisplayed()));
+    }
+
+    @Test
+    @SmallTest
     public void createExceptionWithExpiration_displayedCorrectly() {
         Website site = new Website(WebsiteAddress.create("https://test.com"), null);
         site.setContentSettingException(
diff --git a/components/privacy_sandbox_strings.grd b/components/privacy_sandbox_strings.grd
index 59ea8f5c..4065df4 100644
--- a/components/privacy_sandbox_strings.grd
+++ b/components/privacy_sandbox_strings.grd
@@ -344,6 +344,9 @@
       <message name="IDS_TRACKING_PROTECTIONS_PAGE_ACTION_PROTECTIONS_ENABLED_LABEL" desc="" translateable="false">
         Tracking protections enabled
       </message>
+      <message name="IDS_TRACKING_PROTECTIONS_BUBBLE_SEND_FEEDBACK_FORM_PLACEHOLDER" desc="" translateable="false">
+        Tell us why you paused tracking protections on this site
+      </message>
       <!-- Page Info -->
       <message name="IDS_PAGE_INFO_PRIVACY_SITE_DATA_HEADER" desc="" formatter_data="android_java" translateable="false">
         Privacy and site data
@@ -374,6 +377,9 @@
           <message name="IDS_PAGE_INFO_PRIVACY_SITE_DATA_3PCS_USER_ALLOWED_DESCRIPTION_ANDROID" desc="" formatter_data="android_java" translateable="false">
             Chrome blocks third-party cookies in Incognito, but you made an exception for this site. Incognito also provides features that can limit the information available to companies whose content is embedded on a site you visit. Manage Incognito tracking protections in <ph name="BEGIN_LINK">&lt;link&gt;</ph>Settings<ph name="END_LINK">&lt;/link&gt;</ph>.
           </message>
+          <message name="IDS_TRACKING_PROTECTIONS_BUBBLE_SEND_FEEDBACK_DESCRIPTION" desc="" translateable="false">
+            Help us improve Chrome by telling us why you paused tracking protections
+          </message>
         </then>
         <else>
           <message name="IDS_PAGE_INFO_PRIVACY_SITE_DATA_3PCS_ENTERPRISE_ALLOWED_DESCRIPTION" desc="" translateable="false">
@@ -391,6 +397,9 @@
           <message name="IDS_PAGE_INFO_PRIVACY_SITE_DATA_3PCS_USER_ALLOWED_DESCRIPTION_ANDROID" desc="" formatter_data="android_java" translateable="false">
             Chromium blocks third-party cookies in Incognito, but you made an exception for this site. Incognito also provides features that can limit the information available to companies whose content is embedded on a site you visit. Manage Incognito tracking protections in <ph name="BEGIN_LINK">&lt;link&gt;</ph>Settings<ph name="END_LINK">&lt;/link&gt;</ph>.
           </message>
+          <message name="IDS_TRACKING_PROTECTIONS_BUBBLE_SEND_FEEDBACK_DESCRIPTION" desc="" translateable="false">
+            Help us improve Chromium by telling us why you paused tracking protections
+          </message>
         </else>
       </if>
       <message name="IDS_PAGE_INFO_INCOGNITO_TRACKING_PROTECTION_SETTINGS_BUTTON_TITLE" desc="" translateable="false">
diff --git a/components/proto_extras/BUILD.gn b/components/proto_extras/BUILD.gn
index efdb310e..8861c57 100644
--- a/components/proto_extras/BUILD.gn
+++ b/components/proto_extras/BUILD.gn
@@ -2,27 +2,39 @@
 # Use of this source code is governed by a BSD-style license that can be
 # found in the LICENSE file.
 
+import("//testing/libfuzzer/fuzzer_test.gni")
+
 if (current_toolchain == host_toolchain) {
   executable("proto_extras_plugin") {
     sources = [ "proto_extras_plugin.cc" ]
     deps = [
       "//base",
-      "//third_party/protobuf:protoc_lib",
       "//third_party/protobuf:protoc_cpp",
+      "//third_party/protobuf:protoc_lib",
     ]
   }
 }
 
-component("proto_extras_lib") {
+source_set("proto_extras_lib") {
   public = [ "proto_extras_lib.h" ]
-  sources = [
-    "proto_extras_lib.cc"
-  ]
   public_deps = [
     "//base",
     "//third_party/protobuf:protobuf_lite",
   ]
-  defines = [ "IS_PROTO_EXTRAS_IMPL" ]
+}
+
+if (use_fuzzing_engine_with_lpm) {
+  # Component for protobuf_full support of our serialization, which is required
+  # by proto fuzzers.
+  source_set("protobuf_full_support") {
+    public = [ "protobuf_full_support.h" ]
+    sources = [ "protobuf_full_support.cc" ]
+    public_deps = [
+      ":proto_extras_lib",
+      "//base",
+      "//third_party/protobuf:protobuf_full",
+    ]
+  }
 }
 
 source_set("unit_tests") {
diff --git a/components/proto_extras/proto_extras.gni b/components/proto_extras/proto_extras.gni
index f1eba2b7..9e9c6ad 100644
--- a/components/proto_extras/proto_extras.gni
+++ b/components/proto_extras/proto_extras.gni
@@ -2,10 +2,26 @@
 # Use of this source code is governed by a BSD-style license that can be
 # found in the LICENSE file.
 
-# Generate serializers that turn a protobuf into a base::Value. This
-# does not directly generate the protobuf bindings for any language, so
+# Generate extra functionality for protobuf messages, including:
+# - Serialization to base::DictValue.
+# - Stream operator support for C++ printing.
+# - (future) equality operator support
+# - (future) gtest matchers.
+# This does not directly generate the protobuf bindings for any language, so
 # callers must include the build target for C++ bindings in the deps.
 #
+# This is a wrapper around proto_library that adds the proto_extras plugin. It
+# is intended to be used in conjunction with proto_library, not on its own.
+#
+# The generated C++ code will be named <name>.extras.h and <name>.extras.cc.
+# The primary entry point is <name>.extras.h, which declares the generated
+# serialization and streaming operators.
+#
+# For cases where the message uses the full google::protobuf::Message type,
+# the protobuf_full_support option can be used to ensure the generated code
+# with the full protobuf library. Due to android build complications, this also
+# requires the `use_fuzzing_engine_with_lpm` build flag to be set.
+#
 # Caveats:
 # - Integer types in the proto that are not compatible with base::Value are
 #   serialized as strings (e.g. uint64_t).
@@ -19,19 +35,28 @@
 #     deps = [
 #       "mylib_proto_target"
 #     ]
-#     # Optional: Set to true to generate C++ stream operators (operator<<)
-#     # for the proto messages, which will print the message using
-#     # base::Value::DebugString().
-#     # Defaults to false.
-#     generate_stream_operators = true
+#     omit_to_value_serialization = true   # default is false
+#     omit_stream_operators = true         # default is false
 #   }
 
+import("//testing/libfuzzer/fuzzer_test.gni")
 import("//third_party/protobuf/proto_library.gni")
 
 template("proto_extras") {
-  _generate_stream_operators = false
-  if (defined(invoker.generate_stream_operators)) {
-    _generate_stream_operators = invoker.generate_stream_operators
+  _options = []
+  if (defined(invoker.omit_to_value_serialization) &&
+      invoker.omit_to_value_serialization) {
+    _options += [ "omit_to_value_serialization" ]
+  }
+  if (defined(invoker.omit_stream_operators) && invoker.omit_stream_operators) {
+    _options += [ "omit_stream_operators" ]
+  }
+
+  _protobuf_full_support = false
+  if (defined(invoker.protobuf_full_support) && invoker.protobuf_full_support &&
+      use_fuzzing_engine_with_lpm) {
+    _options += [ "protobuf_full_support" ]
+    _protobuf_full_support = true
   }
 
   proto_library("${target_name}") {
@@ -44,16 +69,16 @@
     }
 
     generator_plugin_label = "//components/proto_extras:proto_extras_plugin"
-    generator_plugin_suffix = ".to_value"
+    generator_plugin_suffix = ".extras"
     generate_cc = false
     generate_python = false
     link_public_deps = [ "//base" ]
-    link_deps = [
-      "//components/proto_extras:proto_extras_lib",
-    ]
-
-    if (_generate_stream_operators) {
-      generator_plugin_options = "generate_stream_operators"
+    link_deps = [ "//components/proto_extras:proto_extras_lib" ]
+    if (_protobuf_full_support) {
+      link_deps += [ "//components/proto_extras:protobuf_full_support" ]
+    }
+    if (_options != []) {
+      generator_plugin_options = string_join(",", _options)
     }
   }
 }
diff --git a/components/proto_extras/proto_extras_lib.h b/components/proto_extras/proto_extras_lib.h
index 7dd41e4..f14e7f77 100644
--- a/components/proto_extras/proto_extras_lib.h
+++ b/components/proto_extras/proto_extras_lib.h
@@ -13,39 +13,19 @@
 #include "base/numerics/safe_conversions.h"
 #include "base/strings/string_number_conversions.h"
 #include "base/values.h"
-#include "third_party/protobuf/src/google/protobuf/message.h"
-#include "third_party/protobuf/src/google/protobuf/message_lite.h"
 
 namespace google::protobuf {
-class UnknownFieldSet;
+class MessageLite;
 }  // namespace google::protobuf
 
 namespace proto_extras {
 
-COMPONENT_EXPORT(PROTO_EXTRAS) base::DictValue Serialize(
-    const google::protobuf::UnknownFieldSet& unknown_fields);
-
-// Specialization for Message protos, which use the UnknownFieldSet type
-// allowing for more readable serialization.
-template <typename MessageType,
-          typename std::enable_if_t<
-              std::is_base_of<google::protobuf::Message, MessageType>::value,
-              int> = 0>
-void SerializeUnknownFields(const MessageType& message, base::DictValue& dict) {
-  if (message.unknown_fields().empty()) {
-    return;
+// Specialization for MessageLite protos, which always returns a std::string
+// for unknown fields.
+template <typename MessageType>
+  requires requires(MessageType message) {
+    { message.unknown_fields() } -> std::same_as<const std::string&>;
   }
-  dict.Set("unknown_fields", Serialize(message.unknown_fields()));
-}
-
-// Specialization for MessageLite protos. These types don't use the
-// UnknownFieldSet, and instead store all unknown fields in a string of bytes.
-template <
-    typename MessageType,
-    typename std::enable_if<
-        std::is_base_of<google::protobuf::MessageLite, MessageType>::value &&
-            !std::is_base_of<google::protobuf::Message, MessageType>::value,
-        int>::type = 0>
 void SerializeUnknownFields(const MessageType& message, base::DictValue& dict) {
   if (message.unknown_fields().empty()) {
     return;
diff --git a/components/proto_extras/proto_extras_plugin.cc b/components/proto_extras/proto_extras_plugin.cc
index 77216be..ee2d2a5 100644
--- a/components/proto_extras/proto_extras_plugin.cc
+++ b/components/proto_extras/proto_extras_plugin.cc
@@ -2,16 +2,21 @@
 // Use of this source code is governed by a BSD-style license that can be
 // found in the LICENSE file.
 
+#include <string>
+
 #include "base/check.h"
 #include "base/containers/contains.h"
 #include "base/files/file_path.h"
 #include "base/logging.h"
 #include "base/memory/raw_ptr.h"
+#include "base/notreached.h"
+#include "base/strings/strcat.h"
 #include "base/strings/string_util.h"
 #include "base/strings/utf_string_conversions.h"
+#include "third_party/abseil-cpp/absl/container/flat_hash_set.h"
 #include "third_party/protobuf/src/google/protobuf/compiler/code_generator.h"
-#include "third_party/protobuf/src/google/protobuf/compiler/cpp/names.h"
 #include "third_party/protobuf/src/google/protobuf/compiler/cpp/helpers.h"
+#include "third_party/protobuf/src/google/protobuf/compiler/cpp/names.h"
 #include "third_party/protobuf/src/google/protobuf/compiler/importer.h"
 #include "third_party/protobuf/src/google/protobuf/compiler/plugin.h"
 #include "third_party/protobuf/src/google/protobuf/descriptor.h"
@@ -26,14 +31,123 @@
 using google::protobuf::io::Printer;
 using google::protobuf::io::ZeroCopyOutputStream;
 
-struct ToValueGeneratorOptions {
+struct ProtoExtrasGeneratorOptions {
+  bool generate_to_value_serialization;
   bool generate_stream_operator;
+  bool protobuf_full_support;
 };
 
-class ToValueGenerator : public google::protobuf::compiler::CodeGenerator {
+void FieldToValueFunction(const FieldDescriptor& field, Printer* printer) {
+  using enum FieldDescriptor::Type;
+  auto conversion_function = [&]() -> std::string {
+    switch (field.type()) {
+      case TYPE_DOUBLE:
+      case TYPE_FLOAT:
+        return "static_cast<double>";
+      case TYPE_INT32:
+      case TYPE_INT64:
+      case TYPE_UINT64:
+      case TYPE_UINT32:
+      case TYPE_FIXED64:
+      case TYPE_FIXED32:
+      case TYPE_SFIXED64:
+      case TYPE_SFIXED32:
+      case TYPE_SINT64:
+      case TYPE_SINT32:
+        return "::proto_extras::ToNumericTypeForValue";
+      case TYPE_BOOL:
+        return "static_cast<bool>";
+      case TYPE_STRING:
+        return "static_cast<std::string>";
+      case TYPE_BYTES:
+        return "base::Base64Encode";
+      case TYPE_ENUM:
+        return base::StrCat(
+            {google::protobuf::compiler::cpp::QualifiedClassName(
+                 field.enum_type()),
+             "_Name"});
+      case TYPE_MESSAGE:
+      case TYPE_GROUP:
+        // The Serialize function for the message is in the namespace of the
+        // nested message itself.
+        return base::StrCat(
+            {google::protobuf::compiler::cpp::Namespace(field.message_type()),
+             "::Serialize"});
+    }
+    NOTREACHED();
+  };
+  printer->Print(conversion_function());
+}
+
+void CreateSerializationDefinitions(
+    const Descriptor& message,
+    Printer* printer,
+    const ProtoExtrasGeneratorOptions& options) {
+  printer->Emit(
+      {{"message_type", google::protobuf::compiler::cpp::ClassName(&message)},
+       {"serialize_fields",
+        [&]() {
+          for (int j = 0; j < message.field_count(); j++) {
+            const FieldDescriptor& field = *message.field(j);
+            std::string field_name(field.lowercase_name());
+
+            auto field_to_value = [&]() {
+              FieldToValueFunction(field, printer);
+            };
+            if (field.is_repeated()) {
+              printer->Emit({{"field_name", field_name},
+                             {"field_to_value", field_to_value}},
+                            R"(
+  if (!message.$field_name$().empty()) {
+    base::ListValue list;
+    for (const auto& value : message.$field_name$()) {
+      list.Append($field_to_value$(value));
+    }
+    dict.Set("$field_name$", std::move(list));
+  }
+)");
+            } else if (field.has_presence()) {
+              printer->Emit({{"field_name", field_name},
+                             {"field_to_value", field_to_value}},
+                            R"(
+  if (message.has_$field_name$()) {
+    dict.Set("$field_name$", $field_to_value$(message.$field_name$()));
+  }
+)");
+            } else if (field.type() == FieldDescriptor::Type::TYPE_STRING ||
+                       field.type() == FieldDescriptor::Type::TYPE_BYTES) {
+              printer->Emit({{"field_name", field_name},
+                             {"field_to_value", field_to_value}},
+                            R"(
+  if (!message.$field_name$().empty()) {
+    dict.Set("$field_name$", $field_to_value$(message.$field_name$()));
+  }
+)");
+            } else {
+              printer->Emit({{"field_name", field_name},
+                             {"field_to_value", field_to_value}},
+                            R"(
+  dict.Set("$field_name$", $field_to_value$(message.$field_name$()));
+)");
+            }
+          }
+        }}},
+      R"(
+base::DictValue Serialize(const $message_type$& message) {
+  base::DictValue dict;
+  if (!message.unknown_fields().empty()) {
+    ::proto_extras::SerializeUnknownFields(message, dict);
+  }
+  $serialize_fields$
+  return dict;
+}
+)");
+}
+
+class ProtoExtrasGenerator : public google::protobuf::compiler::CodeGenerator {
  public:
-  ToValueGenerator() = default;
-  ~ToValueGenerator() override = default;
+  ProtoExtrasGenerator() = default;
+  ~ProtoExtrasGenerator() override = default;
 
   bool Generate(const FileDescriptor* file,
                 const std::string& options,  // Options from build system
@@ -41,11 +155,22 @@
                 std::string* error) const override {
     CHECK(file);
 
-    base::FilePath base_file_path = ToValueFilePath(file->name());
+    ProtoExtrasGeneratorOptions generator_options{
+        .generate_to_value_serialization =
+            !base::Contains(options, "omit_to_value_serialization"),
+        .generate_stream_operator =
+            !base::Contains(options, "omit_stream_operators"),
+        .protobuf_full_support =
+            base::Contains(options, "protobuf_full_support"),
+    };
+    CHECK(generator_options.generate_to_value_serialization ||
+          generator_options.generate_stream_operator);
+
+    base::FilePath proto_file_path = base::FilePath::FromASCII(file->name());
     base::FilePath h_file_path =
-        base_file_path.AddExtension(FILE_PATH_LITERAL("to_value.h"));
+        proto_file_path.ReplaceExtension(FILE_PATH_LITERAL("extras.h"));
     base::FilePath cc_file_path =
-        base_file_path.AddExtension(FILE_PATH_LITERAL("to_value.cc"));
+        proto_file_path.ReplaceExtension(FILE_PATH_LITERAL("extras.cc"));
 
     const std::unique_ptr<ZeroCopyOutputStream> h_stream(
         context->Open(h_file_path.AsUTF8Unsafe()));
@@ -55,102 +180,127 @@
     Printer h_printer(h_stream.get(), Printer::Options{'$', nullptr});
     Printer cc_printer(cc_stream.get(), Printer::Options{'$', nullptr});
 
-    ToValueGeneratorOptions generator_options;
-    generator_options.generate_stream_operator =
-        base::Contains(options, "generate_stream_operators");
     std::string include_guard =
         base::ToUpperASCII(h_file_path.AsUTF8Unsafe()) + "_";
     CHECK(base::ReplaceChars(include_guard, ".-/\\", "_", &include_guard));
 
-    std::string kHeader =
-        "// Generated by the proto to value plugin.  DO NOT EDIT!\n\n";
-    h_printer.Print(kHeader);
-    h_printer.Print("#ifndef $g$\n#define $g$\n\n", "g", include_guard);
+    h_printer.Emit(
+        {
+            {"include_guard", include_guard},
+            {"proto_file_path", proto_file_path.AsUTF8Unsafe()},
+            {"includes",
+             [&] {
+               if (generator_options.generate_stream_operator) {
+                 h_printer.Print("#include <iosfwd>\n\n");
+               }
+               h_printer.Print(
+                   "#include \"$f$\"\n", "f",
+                   proto_file_path.ReplaceExtension(FILE_PATH_LITERAL("pb.h"))
+                       .AsUTF8Unsafe());
+             }},
+            {"function_declarations",
+             [&] {
+               google::protobuf::compiler::cpp::NamespaceOpener ns(
+                   google::protobuf::compiler::cpp::Namespace(file),
+                   &h_printer);
+               for (int i = 0; i < file->message_type_count(); i++) {
+                 PrintFunctionDeclarations(*file->message_type(i), &h_printer,
+                                           error, generator_options);
+               }
+             }},
+        },
+        R"(// Generated by the proto_to_extras plugin.  DO NOT EDIT!
+// source: $proto_file_path$
 
-    if (generator_options.generate_stream_operator) {
-      h_printer.Print("#include <iosfwd>\n\n");
-    }
-    std::vector<std::string> header_include_files = {
-        "base/values.h",
-        base_file_path.BaseName()
-            .AddExtension(FILE_PATH_LITERAL("pb.h"))
-            .AsUTF8Unsafe(),
-    };
-    for (const auto& include : header_include_files) {
-      h_printer.Print("#include \"$f$\"\n", "f", include);
-    }
-    h_printer.Print("\n");
+#ifndef $include_guard$
+#define $include_guard$
 
-    {
-      google::protobuf::compiler::cpp::NamespaceOpener ns(
-          google::protobuf::compiler::cpp::Namespace(file), &h_printer);
-      for (int i = 0; i < file->message_type_count(); i++) {
-        if (!PrintFunctionDeclarations(*file->message_type(i), &h_printer,
-                                       error, generator_options)) {
-          return false;
-        }
-      }
-    }
-    h_printer.Print("\n#endif  // $g$\n", "g", include_guard);
+$includes$
 
-    cc_printer.Print(kHeader);
-    cc_printer.Print("\n");
-    if (generator_options.generate_stream_operator) {
-      cc_printer.Print("#include <ostream>\n\n");
-    }
-    std::vector<std::string> impl_include_files = {
-        "base/base64.h",
-        "base/values.h",
-        base_file_path.BaseName()
-            .AddExtension(FILE_PATH_LITERAL("pb.h"))
-            .AsUTF8Unsafe(),
+namespace base {
+class DictValue;
+}  // namespace base
+
+$function_declarations$
+
+#endif  // $include_guard$
+)");
+
+    // Determine the #includes for the implementation file.
+    absl::flat_hash_set<std::string> impl_system_inclues;
+    // Always have the header and pb.h for the message.
+    absl::flat_hash_set<std::string> impl_user_includes = {
         h_file_path.AsUTF8Unsafe(),
-        "components/proto_extras/proto_extras_lib.h",
+        proto_file_path.ReplaceExtension(FILE_PATH_LITERAL("pb.h"))
+            .AsUTF8Unsafe(),
     };
+    if (generator_options.generate_stream_operator) {
+      impl_system_inclues.insert("<ostream>");
+    }
+    if (generator_options.generate_to_value_serialization) {
+      impl_user_includes.insert({"base/base64.h", "base/values.h",
+                                 "components/proto_extras/proto_extras_lib.h"});
+    }
     for (int i = 0; i < file->dependency_count(); i++) {
-      impl_include_files.push_back(
-          ToValueFilePath(file->dependency(i)->name())
-              .AddExtension(FILE_PATH_LITERAL("to_value.h"))
+      base::FilePath dependency_proto_file_path =
+          base::FilePath::FromASCII(file->dependency(i)->name());
+      impl_user_includes.insert(
+          dependency_proto_file_path
+              .ReplaceExtension(FILE_PATH_LITERAL("extras.h"))
               .AsUTF8Unsafe());
     }
-    for (const auto& include : impl_include_files) {
-      cc_printer.Print("#include \"$f$\"\n", "f", include);
+    if (generator_options.protobuf_full_support) {
+      impl_user_includes.insert(
+          "components/proto_extras/protobuf_full_support.h");
     }
-    cc_printer.Print("\n");
+    cc_printer.Emit(
+        {
+            {"proto_file_path", proto_file_path.AsUTF8Unsafe()},
+            {"includes",
+             [&] {
+               for (const auto& include : impl_system_inclues) {
+                 cc_printer.Print("#include $f$\n", "f", include);
+               }
+               for (const auto& include : impl_user_includes) {
+                 cc_printer.Print("#include \"$f$\"\n", "f", include);
+               }
+             }},
+            {"function_definitions",
+             [&] {
+               google::protobuf::compiler::cpp::NamespaceOpener ns(
+                   google::protobuf::compiler::cpp::Namespace(file),
+                   &cc_printer);
+               for (int i = 0; i < file->message_type_count(); i++) {
+                 PrintFunctionDefinitions(*file->message_type(i), &cc_printer,
+                                          error, generator_options);
+               }
+             }},
+        },
+        R"(// Generated by the proto_to_extras plugin.  DO NOT EDIT!
+// source: $proto_file_path$
 
-    {
-      google::protobuf::compiler::cpp::NamespaceOpener ns(
-          google::protobuf::compiler::cpp::Namespace(file), &cc_printer);
-      for (int i = 0; i < file->message_type_count(); i++) {
-        if (!PrintFunctionDefinition(*file->message_type(i), &cc_printer, error,
-                                     generator_options)) {
-          return false;
-        }
-      }
-    }
+$includes$
+
+$function_definitions$
+)");
     return true;
   }
 
- private:
-  base::FilePath ToValueFilePath(std::string_view file_name) const {
-#if BUILDFLAG(IS_WIN)
-    return base::FilePath(base::ASCIIToWide(file_name)).RemoveExtension();
-#else
-    return base::FilePath(file_name).RemoveExtension();
-#endif
-  }
-
-  bool PrintFunctionDeclarations(const Descriptor& message,
-                                 Printer* printer,
-                                 std::string* error,
-                                 const ToValueGeneratorOptions& options) const {
+  bool PrintFunctionDeclarations(
+      const Descriptor& message,
+      Printer* printer,
+      std::string* error,
+      const ProtoExtrasGeneratorOptions& options) const {
     std::string message_type =
         google::protobuf::compiler::cpp::ClassName(&message);
-    printer->Print("base::Value::Dict Serialize(const $m$& message);\n", "m",
-                   message_type);
+    if (options.generate_to_value_serialization) {
+      printer->Print("base::DictValue Serialize(const $m$& message);\n", "m",
+                     message_type);
+    }
     if (options.generate_stream_operator) {
       printer->Print(
-          "std::ostream& operator<<(std::ostream& out, const $m$& message);\n",
+          "std::ostream& operator<<(std::ostream& out, const "
+          "$m$& message);\n",
           "m", message_type);
     }
     for (int i = 0; i < message.nested_type_count(); i++) {
@@ -163,134 +313,38 @@
     return true;
   }
 
-  bool PrintFunctionDefinition(const Descriptor& message,
-                               Printer* printer,
-                               std::string* error,
-                               const ToValueGeneratorOptions& options) const {
-    std::string message_type =
-        google::protobuf::compiler::cpp::ClassName(&message);
-    printer->Print("base::Value::Dict Serialize(const $m$& message) {\n", "m",
-                   message_type);
-    printer->Indent();
-    printer->Print("base::Value::Dict dict;\n\n");
-    for (int j = 0; j < message.field_count(); j++) {
-      const FieldDescriptor* field = message.field(j);
-      std::string field_name(field->lowercase_name());
-      if (field->is_repeated()) {
-        printer->Print("if (!message.$f$().empty()) {\n", "f", field_name);
-        printer->Indent();
-        printer->Print("base::Value::List list;\n");
-        printer->Print("for (const auto& value : message.$f$()) {\n", "f",
-                       field_name);
-        printer->Indent();
-        printer->Print("list.Append(");
-        PrintFieldToValue(*field, printer);
-        printer->Print("(value));\n");
-        printer->Outdent();
-        printer->Print("}\n");
-        printer->Print("dict.Set(\"$f$\", std::move(list));\n", "f",
-                       field_name);
-        printer->Outdent();
-        printer->Print("}\n");
-      } else if (field->has_presence()) {
-        printer->Print("if (message.has_$f$()) {\n", "f", field_name);
-        printer->Indent();
-        printer->Print("dict.Set(\"$f$\", ", "f", field_name);
-        PrintFieldToValue(*field, printer);
-        printer->Print("(message.$f$()));\n", "f", field_name);
-        printer->Outdent();
-        printer->Print("}\n");
-      } else if (field->type() == FieldDescriptor::Type::TYPE_STRING ||
-                 field->type() == FieldDescriptor::Type::TYPE_BYTES) {
-        printer->Print("if (!message.$f$().empty()) {\n", "f", field_name);
-        printer->Indent();
-        printer->Print("dict.Set(\"$f$\", ", "f", field_name);
-        PrintFieldToValue(*field, printer);
-        printer->Print("(message.$f$()));\n", "f", field_name);
-        printer->Outdent();
-        printer->Print("}\n");
-      } else {
-        printer->Print("dict.Set(\"$f$\", ", "f", field_name);
-        PrintFieldToValue(*field, printer);
-        printer->Print("(message.$f$()));\n", "f", field_name);
-      }
+  bool PrintFunctionDefinitions(
+      const Descriptor& message,
+      Printer* printer,
+      std::string* error,
+      const ProtoExtrasGeneratorOptions& options) const {
+    if (options.generate_to_value_serialization) {
+      CreateSerializationDefinitions(message, printer, options);
     }
-    printer->Print("if (!message.unknown_fields().empty()) {\n");
-    printer->Indent();
-    printer->Print(
-        "::proto_extras::SerializeUnknownFields(message, dict);\n");
-    printer->Outdent();
-    printer->Print("}\n");
-    printer->Print("return dict;\n");
-    printer->Outdent();
-    printer->Print("}\n");
-
     if (options.generate_stream_operator) {
-      printer->Print(
-          "\nstd::ostream& operator<<(std::ostream& out, const $m$& message) "
-          "{\n",
-          "m", message_type);
-      printer->Indent();
-      printer->Print("return out << Serialize(message).DebugString();\n");
-      printer->Outdent();
-      printer->Print("}\n");
+      std::string message_type =
+          google::protobuf::compiler::cpp::ClassName(&message);
+      printer->Emit({{"message_type", message_type}},
+                    R"(
+std::ostream& operator<<(std::ostream& out, const $message_type$& message) {
+  return out << Serialize(message).DebugString();
+}
+)");
     }
 
     for (int i = 0; i < message.nested_type_count(); i++) {
-      if (!PrintFunctionDefinition(*message.nested_type(i), printer, error,
-                                   options)) {
+      if (!PrintFunctionDefinitions(*message.nested_type(i), printer, error,
+                                    options)) {
         return false;
       }
     }
 
     return true;
   }
-
-  void PrintFieldToValue(const FieldDescriptor& field, Printer* printer) const {
-    using enum FieldDescriptor::Type;
-    switch (field.type()) {
-      case TYPE_DOUBLE:
-      case TYPE_FLOAT:
-        printer->Print("static_cast<double>");
-        break;
-      case TYPE_INT32:
-      case TYPE_INT64:
-      case TYPE_UINT64:
-      case TYPE_UINT32:
-      case TYPE_FIXED64:
-      case TYPE_FIXED32:
-      case TYPE_SFIXED64:
-      case TYPE_SFIXED32:
-      case TYPE_SINT64:
-      case TYPE_SINT32:
-        printer->Print("::proto_extras::ToNumericTypeForValue");
-        break;
-      case TYPE_BOOL:
-        printer->Print("static_cast<bool>");
-        break;
-      case TYPE_STRING:
-        printer->Print("static_cast<std::string>");
-        break;
-      case TYPE_BYTES:
-        printer->Print("base::Base64Encode");
-        break;
-      case TYPE_ENUM:
-        printer->Print("$t$_Name", "t",
-                       google::protobuf::compiler::cpp::QualifiedClassName(
-                           field.enum_type()));
-        break;
-      case TYPE_MESSAGE:
-      case TYPE_GROUP:
-        printer->Print("$p$::Serialize", "p",
-                       google::protobuf::compiler::cpp::Namespace(field.message_type()));
-        break;
-    }
-  }
 };
-
 }  // namespace
 
 int main(int argc, char** argv) {
-  ToValueGenerator generator;
+  ProtoExtrasGenerator generator;
   return google::protobuf::compiler::PluginMain(argc, argv, &generator);
 }
diff --git a/components/proto_extras/proto_extras_unittest.cc b/components/proto_extras/proto_extras_unittest.cc
index 73a07f5..bf7b00d 100644
--- a/components/proto_extras/proto_extras_unittest.cc
+++ b/components/proto_extras/proto_extras_unittest.cc
@@ -3,12 +3,12 @@
 // found in the LICENSE file.
 
 #include "base/test/values_test_util.h"
+#include "components/proto_extras/test_proto/test_proto.extras.h"
 #include "components/proto_extras/test_proto/test_proto.pb.h"
-#include "components/proto_extras/test_proto/test_proto.to_value.h"
+#include "components/proto_extras/test_proto/test_proto_dependency.extras.h"
 #include "components/proto_extras/test_proto/test_proto_dependency.pb.h"
-#include "components/proto_extras/test_proto/test_proto_dependency.to_value.h"
+#include "components/proto_extras/test_proto2/test_proto2.extras.h"
 #include "components/proto_extras/test_proto2/test_proto2.pb.h"
-#include "components/proto_extras/test_proto2/test_proto2.to_value.h"
 #include "testing/gtest/include/gtest/gtest.h"
 
 namespace proto_extras {
diff --git a/components/proto_extras/proto_extras_lib.cc b/components/proto_extras/protobuf_full_support.cc
similarity index 95%
rename from components/proto_extras/proto_extras_lib.cc
rename to components/proto_extras/protobuf_full_support.cc
index 11af1c9d..31deed6d 100644
--- a/components/proto_extras/proto_extras_lib.cc
+++ b/components/proto_extras/protobuf_full_support.cc
@@ -2,10 +2,11 @@
 // Use of this source code is governed by a BSD-style license that can be
 // found in the LICENSE file.
 
-#include "components/proto_extras/proto_extras_lib.h"
+#include "components/proto_extras/protobuf_full_support.h"
 
 #include "base/strings/string_number_conversions.h"
 #include "base/values.h"
+#include "components/proto_extras/proto_extras_lib.h"
 #include "third_party/protobuf/src/google/protobuf/unknown_field_set.h"
 
 namespace proto_extras {
diff --git a/components/proto_extras/protobuf_full_support.h b/components/proto_extras/protobuf_full_support.h
new file mode 100644
index 0000000..ef668fc
--- /dev/null
+++ b/components/proto_extras/protobuf_full_support.h
@@ -0,0 +1,33 @@
+// Copyright 2025 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_PROTO_EXTRAS_PROTOBUF_FULL_SUPPORT_H_
+#define COMPONENTS_PROTO_EXTRAS_PROTOBUF_FULL_SUPPORT_H_
+
+#include "base/component_export.h"
+#include "base/values.h"
+#include "third_party/protobuf/src/google/protobuf/message.h"
+#include "third_party/protobuf/src/google/protobuf/unknown_field_set.h"
+
+namespace google::protobuf {
+class UnknownFieldSet;
+}  // namespace google::protobuf
+
+namespace proto_extras {
+
+base::DictValue Serialize(
+    const google::protobuf::UnknownFieldSet& unknown_fields);
+
+template <typename MessageType>
+  requires std::is_base_of_v<google::protobuf::Message, MessageType>
+void SerializeUnknownFields(const MessageType& message, base::DictValue& dict) {
+  if (message.unknown_fields().empty()) {
+    return;
+  }
+  dict.Set("unknown_fields", Serialize(message.unknown_fields()));
+}
+
+}  // namespace proto_extras
+
+#endif  // COMPONENTS_PROTO_EXTRAS_PROTOBUF_FULL_SUPPORT_H_
diff --git a/components/proto_extras/test_proto2/BUILD.gn b/components/proto_extras/test_proto2/BUILD.gn
index 06d83310..0a65bdf 100644
--- a/components/proto_extras/test_proto2/BUILD.gn
+++ b/components/proto_extras/test_proto2/BUILD.gn
@@ -14,6 +14,4 @@
   sources = [ "test_proto2.proto" ]
 
   deps = [ ":test_proto2" ]
-
-  generate_stream_operators = true
 }
diff --git a/components/safe_browsing/content/browser/web_ui/DEPS b/components/safe_browsing/content/browser/web_ui/DEPS
index a2e080da..c60c73f 100644
--- a/components/safe_browsing/content/browser/web_ui/DEPS
+++ b/components/safe_browsing/content/browser/web_ui/DEPS
@@ -1,6 +1,6 @@
 include_rules = [
   "+components/enterprise/common/proto/connectors.pb.h",
-  "+components/enterprise/common/proto/connectors.to_value.h",
+  "+components/enterprise/common/proto/connectors.extras.h",
   "+components/grit/safe_browsing_resources.h",
   "+components/grit/safe_browsing_resources_map.h",
   "+components/password_manager/core/browser/hash_password_manager.h",
diff --git a/components/safe_browsing/content/browser/web_ui/safe_browsing_ui.cc b/components/safe_browsing/content/browser/web_ui/safe_browsing_ui.cc
index dfc119a..a9302ab 100644
--- a/components/safe_browsing/content/browser/web_ui/safe_browsing_ui.cc
+++ b/components/safe_browsing/content/browser/web_ui/safe_browsing_ui.cc
@@ -36,11 +36,11 @@
 #include "components/safe_browsing/buildflags.h"
 #include "components/safe_browsing/core/browser/referrer_chain_provider.h"
 #include "components/safe_browsing/core/common/features.h"
+#include "components/safe_browsing/core/common/proto/csd.extras.h"
 #include "components/safe_browsing/core/common/proto/csd.pb.h"
-#include "components/safe_browsing/core/common/proto/csd.to_value.h"
-#include "components/safe_browsing/core/common/proto/realtimeapi.to_value.h"
+#include "components/safe_browsing/core/common/proto/realtimeapi.extras.h"
+#include "components/safe_browsing/core/common/proto/safebrowsingv5.extras.h"
 #include "components/safe_browsing/core/common/proto/safebrowsingv5.pb.h"
-#include "components/safe_browsing/core/common/proto/safebrowsingv5.to_value.h"
 #include "components/safe_browsing/core/common/safe_browsing_prefs.h"
 #include "components/safe_browsing/core/common/web_ui_constants.h"
 #include "components/strings/grit/components_strings.h"
@@ -58,8 +58,8 @@
 #endif
 
 #if BUILDFLAG(SAFE_BROWSING_DOWNLOAD_PROTECTION) && !BUILDFLAG(IS_ANDROID)
+#include "components/enterprise/common/proto/connectors.extras.h"
 #include "components/enterprise/common/proto/connectors.pb.h"
-#include "components/enterprise/common/proto/connectors.to_value.h"
 #endif
 
 using base::Time;
diff --git a/components/safe_browsing/core/common/proto/BUILD.gn b/components/safe_browsing/core/common/proto/BUILD.gn
index a13eed7..377f7cb 100644
--- a/components/safe_browsing/core/common/proto/BUILD.gn
+++ b/components/safe_browsing/core/common/proto/BUILD.gn
@@ -24,6 +24,9 @@
 proto_extras("csd_proto_extras") {
   sources = [ "csd.proto" ]
   deps = [ ":csd_proto" ]
+
+  # The fuzzable_proto_library rule above uses the full protobuf runtime.
+  protobuf_full_support = true
 }
 
 proto_library("webui_proto") {
@@ -48,6 +51,9 @@
     "//components/enterprise/common/proto:connectors_proto",
     "//components/enterprise/common/proto:connectors_proto_extras",
   ]
+
+  # The fuzzable_proto_library rule above uses the full protobuf runtime.
+  protobuf_full_support = true
 }
 
 fuzzable_proto_library("client_model_proto") {
diff --git a/components/strings/components_strings_af.xtb b/components/strings/components_strings_af.xtb
index 02a94c0..769e34df 100644
--- a/components/strings/components_strings_af.xtb
+++ b/components/strings/components_strings_af.xtb
@@ -2100,11 +2100,13 @@
 <translation id="4530347922939905757">SMS</translation>
 <translation id="4531477351494678589">Virtuele kaart se nommer:</translation>
 <translation id="4535523368173457420">Hierdie soekenjins is gewild in jou streek en word in lukrake volgorde gewys</translation>
+<translation id="4539931187424170595">{NUM_YEARS,plural, =1{1 jaar gelede geskep}other{{NUM_YEARS} jaar gelede geskep}}</translation>
 <translation id="4541810033354695636">aangevulde realiteit</translation>
 <translation id="4542971377163063093">Laai 6</translation>
 <translation id="4543072026714825470">Stoor jou kaart en faktureringadres in jou Google-rekening om volgende keer vinniger te betaal.</translation>
 <translation id="454441086898495030">Voeg by <ph name="SET" />?</translation>
 <translation id="4546730006268514143">Oordrag het uitgetel</translation>
+<translation id="4548974025982531828">{NUM_DAYS,plural, =1{1 dag gelede geskep}other{{NUM_DAYS} dae gelede geskep}}</translation>
 <translation id="455113658016510503">A9</translation>
 <translation id="4556069465387849460">Jy gebruik tans jou skermslot vir die invul van wagwoorde</translation>
 <translation id="4557573143631562971">Huisversekering</translation>
@@ -2898,6 +2900,7 @@
 <translation id="5938153366081463283">Voeg virtuele kaart by</translation>
 <translation id="5938793338444039872">Troy</translation>
 <translation id="5938866385061293322">Hierdie inligting is afkomstig van onafhanklike resensiewebwerwe soos Trustpilot, ScamAdviser, Google en meer. Opsommings is met KI geskep</translation>
+<translation id="5943775258256265106">{NUM_MINS,plural, =1{1 minuut gelede geskep}other{{NUM_MINS} minute gelede geskep}}</translation>
 <translation id="5944297261866530437">Tekstiel (glansryk)</translation>
 <translation id="5950901984834744590">Skeermesse en skeertoestelle</translation>
 <translation id="5951495562196540101">Kan nie met 'n verbruikerrekening inskryf nie (verpakte lisensie beskikbaar).</translation>
@@ -4058,6 +4061,7 @@
 <translation id="7894280532028510793">As die spelling korrek is, kan jy <ph name="BEGIN_LINK" />Netwerkdiagnostiek probeer gebruik<ph name="END_LINK" />.</translation>
 <translation id="7901831439558593470">Koevert 7x9 dm.</translation>
 <translation id="7905064834449738336">Wanneer jy ’n wagwoord gebruik, waarsku Chromium jou as dit aanlyn gepubliseer is. Wanneer dit gedoen word, word jou wagwoorde en gebruikername geënkripteer sodat niemand, insluitend Google, hulle kan lees nie.</translation>
+<translation id="7906177144646315659">{NUM_HOURS,plural, =1{1 uur gelede geskep}other{{NUM_HOURS} uur gelede geskep}}</translation>
 <translation id="7908648876066812348">Aktiveer tans virtuele kaart</translation>
 <translation id="7909498058929404306"><ph name="RUN_CHROME_SAFETY_CHECK_FOCUSED_FRIENDLY_MATCH_TEXT" />, druk Tab en dan Enter om na Chrome-veiligheidskontrolebladsy in instellings te gaan</translation>
 <translation id="791107458486222637">Resultaat word herdoen</translation>
@@ -4192,6 +4196,7 @@
 <translation id="8134058435519644366">Werwing en personeel</translation>
 <translation id="8135546115396015134">linkersleutel</translation>
 <translation id="8137456439814903304">Energie- en munisipale dienste</translation>
+<translation id="814432316791813431">{NUM_MONTHS,plural, =1{1 maand gelede geskep}other{{NUM_MONTHS} maande gelede geskep}}</translation>
 <translation id="8148608574971654810">PDF-weergawe:</translation>
 <translation id="8149426793427495338">Jou rekenaar het gaan slaap.</translation>
 <translation id="8150722005171944719">Die lêer by <ph name="URL" /> is nie leesbaar nie. Dit is dalk verwyder, geskuif of lêertoestemmings kan dalk toegang verhinder.</translation>
diff --git a/components/strings/components_strings_am.xtb b/components/strings/components_strings_am.xtb
index 67a6ce07..c40f336 100644
--- a/components/strings/components_strings_am.xtb
+++ b/components/strings/components_strings_am.xtb
@@ -1563,6 +1563,7 @@
 <translation id="3641116835972736297">የአሜሪካ እግር ኳስ</translation>
 <translation id="3642196846309122856">ፋይሎችዎን እንደገና ለማውረድ ይሞክሩ</translation>
 <translation id="3642638418806704195">መተግበሪያ፦</translation>
+<translation id="3644768007456662469">የክፍያዎች ንጥል አዶ</translation>
 <translation id="3646643500201740985">የአንድ ማስታወቂያ አፈጻጸም ምን ያህል ጥሩ እንደሆነ መለካት</translation>
 <translation id="3647286794400715637">እያንዳንዱ የዩአርኤል ሕብረቁምፊ ከ1 እስከ 2 ዩአርኤሎች መያዝ አለበት።</translation>
 <translation id="3647400963805615193">የChrome ጠቃሚ ምክር አዝራርን ያሰናብቱ፣ ለማሰናበት Enter ይጫኑ፣ <ph name="REMOVE_BUTTON_FOCUSED_FRIENDLY_MATCH_TEXT" /></translation>
@@ -2099,11 +2100,13 @@
 <translation id="4530347922939905757">የጽሑፍ መልዕክት</translation>
 <translation id="4531477351494678589">ምናባዊ የካርድ ቁጥር፦</translation>
 <translation id="4535523368173457420">እነዚህ የፍለጋ ፕሮግራሞች በክልልዎ ውስጥ ታዋቂ ናቸው እና የዘፈቀደ በሆነ ቅደም ተከተል ይታያሉ</translation>
+<translation id="4539931187424170595">{NUM_YEARS,plural, =1{ከ1 ዓመት በፊት የተፈጠረ}one{ከ{NUM_YEARS} ዓመት በፊት የተፈጠረ}other{ከ{NUM_YEARS} ዓመታት በፊት የተፈጠረ}}</translation>
 <translation id="4541810033354695636">ትክክለኛ እውነታ</translation>
 <translation id="4542971377163063093">መሳቢያ 6</translation>
 <translation id="4543072026714825470">በሚቀጥለው ጊዜ ይበልጥ በፍጥነት ለመክፈል የእርስዎን ካርድ እና የሒሳብ መጠየቂያ አድራሻ በGoogle መለያዎ ውስጥ ያስቀምጡ።</translation>
 <translation id="454441086898495030">ወደ <ph name="SET" /> ይታከሉ?</translation>
 <translation id="4546730006268514143">የእረፍት ጊዜን በማስተላለፍ ላይ</translation>
+<translation id="4548974025982531828">{NUM_DAYS,plural, =1{ከ1 ቀን በፊት የተፈጠረ}one{ከ{NUM_DAYS} ቀን በፊት የተፈጠረ}other{ከ{NUM_DAYS} ቀኖች በፊት የተፈጠረ}}</translation>
 <translation id="455113658016510503">A9</translation>
 <translation id="4556069465387849460">የይለፍ ቃላትን ለመሙላት ማያ ገፅ መቆለፊያዎን እየተጠቀሙ ነው</translation>
 <translation id="4557573143631562971">የቤት መድህን</translation>
@@ -2897,6 +2900,7 @@
 <translation id="5938153366081463283">ምናባዊ ካርድ ያክሉ</translation>
 <translation id="5938793338444039872">Troy</translation>
 <translation id="5938866385061293322">ይህ መረጃ እንደ Trustpilot፣ ScamAdviser፣ Google እና ሌሎች ካሉ ገለልተኛ የግምገማ ድር ጣቢያዎች የመጣ ነው። ማጠቃለያዎች የተፈጠሩት በሰው ሠራሽ አስተውሎት ነው።</translation>
+<translation id="5943775258256265106">{NUM_MINS,plural, =1{ከ1 ደቂቃ በፊት የተፈጠረ}one{ከ{NUM_MINS} ደቂቃ በፊት የተፈጠረ}other{ከ{NUM_MINS} ደቂቃዎች በፊት የተፈጠረ}}</translation>
 <translation id="5944297261866530437">ጨርቅ (ከፍተኛ ማንጸባረቅ)</translation>
 <translation id="5950901984834744590">ምላጮች እና መላጫዎች</translation>
 <translation id="5951495562196540101">በሸማች መለያ መመዝገብ አይቻልም (የጥቅል ፈቃድ ይገኛል)።</translation>
@@ -4058,6 +4062,7 @@
 <translation id="7894280532028510793">የፊደል አጻጻፉ ትክክል ከሆነ <ph name="BEGIN_LINK" />የአውታረ መረብ ምርመራን ለማስኬድ ይሞክሩ<ph name="END_LINK" />።</translation>
 <translation id="7901831439558593470">7 x 9 ኢንች ፖስታ</translation>
 <translation id="7905064834449738336">የይለፍ ቃል ሲጠቀሙ Chromium በመስመር ላይ ታትሞ ከነበረ ያስጠነቅቅዎታል። ይህን በሚያደርግበት ጊዜ የእርስዎ የይለፍ ቃላት እና የተጠቃሚ ስሞች Googleን ጨምሮ በሌላ ማንም ወገን እንዳይነበቡ ይመሰጠራሉ።</translation>
+<translation id="7906177144646315659">{NUM_HOURS,plural, =1{ከ1 ሰዓት በፊት የተፈጠረ}one{ከ{NUM_HOURS} ሰዓት በፊት የተፈጠረ}other{ከ{NUM_HOURS} ሰዓቶች በፊት የተፈጠረ}}</translation>
 <translation id="7908648876066812348">ምናባዊ ካርድ በማብራት ላይ</translation>
 <translation id="7909498058929404306"><ph name="RUN_CHROME_SAFETY_CHECK_FOCUSED_FRIENDLY_MATCH_TEXT" />፣ ቅንብሮች ውስጥ ወዳለው የChrome የደህንነት ፍተሻ ገፅ ለመሄድ Tab በመቀጠል Enter ይጫኑ</translation>
 <translation id="791107458486222637">የመድገም ውጤት</translation>
@@ -4192,6 +4197,7 @@
 <translation id="8134058435519644366">ምልመላ እና የሰው ኃይል ምደባ</translation>
 <translation id="8135546115396015134">የግራ ቁልፍ</translation>
 <translation id="8137456439814903304">ኃይል እና መገልገያዎች</translation>
+<translation id="814432316791813431">{NUM_MONTHS,plural, =1{ከ1 ወር በፊት የተፈጠረ}one{ከ{NUM_MONTHS} ወር በፊት የተፈጠረ}other{ከ{NUM_MONTHS} ወሮች በፊት የተፈጠረ}}</translation>
 <translation id="8148608574971654810">የPDF ስሪት፦</translation>
 <translation id="8149426793427495338">የእርስዎ ኮምፒውተ ተኝቷል።</translation>
 <translation id="8150722005171944719"><ph name="URL" /> ላይ ያለው ፋይል የሚነበብ አይደለም።  ተወግዶ፣ ተወስዶ ወይም የፋይል ፍቃዶቹ መዳረሻ እየከለከሉ ሊሆኑ ይችላሉ።</translation>
diff --git a/components/strings/components_strings_ar.xtb b/components/strings/components_strings_ar.xtb
index 0595a1e..b0e26ac 100644
--- a/components/strings/components_strings_ar.xtb
+++ b/components/strings/components_strings_ar.xtb
@@ -938,6 +938,7 @@
 </translation>
 <translation id="254947805923345898">قيمة السياسة غير صحيحة.</translation>
 <translation id="2549836668759467704">الاستشارات والتعاقدات المعمارية</translation>
+<translation id="2549919488151689436"><ph name="TOPIC_1" /> و<ph name="TOPIC_2" /> ومواضيع أخرى</translation>
 <translation id="255002559098805027">أرسل <ph name="HOST_NAME" /> استجابة غير صالحة.</translation>
 <translation id="2551608178605132291">العنوان: <ph name="ADDRESS" /></translation>
 <translation id="2552246211866555379">Hagaki</translation>
@@ -4823,6 +4824,7 @@
 <translation id="9219103736887031265">الصور</translation>
 <translation id="922152298093051471">‏تخصيص Chrome</translation>
 <translation id="9222403027701923763">الدراسة الابتدائية والثانوية (التعليم المدرسي)</translation>
+<translation id="9222463428840654067">رقم البطاقة غير صالح</translation>
 <translation id="922849469395748170">بطاقات الولاء</translation>
 <translation id="93020190163435405">تدريب داخلي</translation>
 <translation id="931598121743515856">‏يجب أن تكون قيمة الشراء أكثر من ‎<ph name="CHECKOUT_AMOUNT_MINIMUM" /></translation>
diff --git a/components/strings/components_strings_as.xtb b/components/strings/components_strings_as.xtb
index b0970c2..c0f04ad6 100644
--- a/components/strings/components_strings_as.xtb
+++ b/components/strings/components_strings_as.xtb
@@ -1561,6 +1561,7 @@
 <translation id="3641116835972736297">আমেৰিকান ফুটবল</translation>
 <translation id="3642196846309122856">আপোনাৰ ফাইলসমূহ পুনৰ ডাউনল’ড কৰি চাওক</translation>
 <translation id="3642638418806704195">এপ্লিকেশ্বন:</translation>
+<translation id="3644768007456662469">পৰিশোধ সম্পৰ্কীয় চিহ্ন</translation>
 <translation id="3646643500201740985">কোনো বিজ্ঞাপনে কিমান ভাল পাৰদৰ্শিতা দেখুৱাইছে তাৰ জোখ-মাখ কৰা</translation>
 <translation id="3647286794400715637">প্ৰতিটো URLৰ ষ্ট্ৰিঙৰ প্ৰৱিষ্টিত ১ৰ পৰা ২টাৰ ভিতৰত URL থাকিবই লাগিব।</translation>
 <translation id="3647400963805615193">Chromeৰ পৰামৰ্শ অগ্ৰাহ্য কৰাৰ বুটাম, অগ্ৰাহ্য কৰিবলৈ এণ্টাৰ টিপক, <ph name="REMOVE_BUTTON_FOCUSED_FRIENDLY_MATCH_TEXT" /></translation>
@@ -2096,11 +2097,13 @@
 <translation id="4530347922939905757">পাঠ বাৰ্তা</translation>
 <translation id="4531477351494678589">ভাৰ্চুৱেল কাৰ্ডৰ নম্বৰ:</translation>
 <translation id="4535523368173457420">এই সন্ধান ইঞ্জিনসমূহ আপোনাৰ অঞ্চলত জনপ্ৰিয় আৰু এইসমূহক যাদৃচ্ছিক ক্ৰমত দেখুওৱা হৈছে</translation>
+<translation id="4539931187424170595">{NUM_YEARS,plural, =1{১ বছৰ পূৰ্বে সৃষ্টি কৰা হৈছে}one{{NUM_YEARS} বছৰ পূৰ্বে সৃষ্টি কৰা হৈছে}other{{NUM_YEARS} বছৰ পূৰ্বে সৃষ্টি কৰা হৈছে}}</translation>
 <translation id="4541810033354695636">পৰিৱৰ্ধিত বাস্তৱিকতা</translation>
 <translation id="4542971377163063093">ট্ৰে’ ৬</translation>
 <translation id="4543072026714825470">পৰৱৰ্তী সময়ত দ্ৰুতভাৱে পৰিশোধ কৰিবলৈ, আপোনাৰ Google একাউণ্টত নিজৰ কাৰ্ড, নাম আৰু বিলিঙৰ ঠিকনা ছেভ কৰক।</translation>
 <translation id="454441086898495030"><ph name="SET" />ত যোগ দিবনে?</translation>
 <translation id="4546730006268514143">স্থানান্তৰণ কৰাৰ সময় উকলিছে</translation>
+<translation id="4548974025982531828">{NUM_DAYS,plural, =1{১ দিন পূৰ্বে সৃষ্টি কৰা হৈছে}one{{NUM_DAYS} দিন পূৰ্বে সৃষ্টি কৰা হৈছে}other{{NUM_DAYS} দিন পূৰ্বে সৃষ্টি কৰা হৈছে}}</translation>
 <translation id="455113658016510503">A9</translation>
 <translation id="4556069465387849460">পাছৱৰ্ড পূৰ কৰাৰ বাবে আপুনি আপোনাৰ স্ক্ৰীন লক ব্যৱহাৰ কৰি আছে</translation>
 <translation id="4557573143631562971">গৃহ বীমা</translation>
@@ -2894,6 +2897,7 @@
 <translation id="5938153366081463283">ভাৰ্চুৱেল কাৰ্ডখন যোগ দিয়ক</translation>
 <translation id="5938793338444039872">Troy</translation>
 <translation id="5938866385061293322">এই তথ্য Trustpilot, ScamAdviser, Google আৰু বহুতোৰ দৰে স্বতন্ত্ৰ পৰ্যালোচনাৰ ৱেবছাইটৰ পৰা লোৱা। সাৰাংশ AIৰ জৰিয়তে সৃষ্টি কৰা হৈছে।</translation>
+<translation id="5943775258256265106">{NUM_MINS,plural, =1{১ মিনিট পূৰ্বে সৃষ্টি কৰা হৈছে}one{{NUM_MINS} মিনিট পূৰ্বে সৃষ্টি কৰা হৈছে}other{{NUM_MINS} মিনিট পূৰ্বে সৃষ্টি কৰা হৈছে}}</translation>
 <translation id="5944297261866530437">ফেব্ৰিক (হাই-গ্লছ)</translation>
 <translation id="5950901984834744590">ৰেজৰ আৰু শ্বেভাৰ</translation>
 <translation id="5951495562196540101">উপভোক্তাৰ একাউণ্টৰ সৈতে পঞ্জীয়ন কৰিব নোৱাৰি (পেকেজ অনুজ্ঞাপত্ৰ উপলব্ধ)।</translation>
@@ -4053,6 +4057,7 @@
 <translation id="7894280532028510793">যদি বানান ঠিকে আছে, <ph name="BEGIN_LINK" />নেটৱৰ্ক ডায়গন’ষ্টিক্স চলাই চাওক<ph name="END_LINK" />।</translation>
 <translation id="7901831439558593470">এনভেল’প ৭ x ৯ ইঞ্চি</translation>
 <translation id="7905064834449738336">যেতিয়া আপুনি এটা পাছৱৰ্ড ব্যৱহাৰ কৰে, তেতিয়া সেইটো অনলাইনত প্ৰকাশ কৰা হৈছে নেকি সেই বিষয়ে Chromiumএ আপোনাক সকীয়নি দিয়ে। এনে কৰোঁতে আপোনাৰ পাছৱৰ্ডসমূহ আৰু ব্যৱহাৰকাৰীৰ নামসমূহ এনক্ৰিপ্ট কৰা হয়, গতিকে সেইবোৰ Googleকে ধৰি অন্য কোনেও পঢ়িব নোৱাৰে।</translation>
+<translation id="7906177144646315659">{NUM_HOURS,plural, =1{১ ঘণ্টা পূৰ্বে সৃষ্টি কৰা হৈছে}one{{NUM_HOURS} ঘণ্টা পূৰ্বে সৃষ্টি কৰা হৈছে}other{{NUM_HOURS} ঘণ্টা পূৰ্বে সৃষ্টি কৰা হৈছে}}</translation>
 <translation id="7908648876066812348">ভাৰ্ছুৱেল কাৰ্ড অন কৰা হৈছে</translation>
 <translation id="7909498058929404306"><ph name="RUN_CHROME_SAFETY_CHECK_FOCUSED_FRIENDLY_MATCH_TEXT" />, ছেটিঙত Chromeৰ সুৰক্ষা পৰীক্ষা পৃষ্ঠালৈ যাবলৈ প্ৰথমে টেব তাৰ পাছত এণ্টাৰ টিপক</translation>
 <translation id="791107458486222637">ফলাফল পুনৰ নিৰ্ধাৰণ কৰি থকা হৈছে</translation>
@@ -4187,6 +4192,7 @@
 <translation id="8134058435519644366">নিযুক্তি আৰু কৰ্মচাৰীৰ ভৰ্তিকৰণ</translation>
 <translation id="8135546115396015134">বাওঁফালৰ কী</translation>
 <translation id="8137456439814903304">শক্তি আৰু উপযোগিতা</translation>
+<translation id="814432316791813431">{NUM_MONTHS,plural, =1{১ মাহ পূৰ্বে সৃষ্টি কৰা হৈছে}one{{NUM_MONTHS} মাহ পূৰ্বে সৃষ্টি কৰা হৈছে}other{{NUM_MONTHS} মাহ পূৰ্বে সৃষ্টি কৰা হৈছে}}</translation>
 <translation id="8148608574971654810">PDFৰ সংস্কৰণ:</translation>
 <translation id="8149426793427495338">আপোনাৰ কম্পিউটাৰটো সুপ্ত অৱস্থালৈ গৈছিল।</translation>
 <translation id="8150722005171944719"><ph name="URL" />ৰ ফাইলটো পঢ়িব পৰা অৱস্থাত নাই।  এই ফাইলটো হয়তো আঁতৰোৱা হৈছে, ইয়াৰ পৰা লৈ যোৱা হৈছে বা ফাইলৰ অনুমতিয়ে এক্সেছ প্ৰদান কৰা নাই।</translation>
diff --git a/components/strings/components_strings_az.xtb b/components/strings/components_strings_az.xtb
index 46746d8..2d3a59f 100644
--- a/components/strings/components_strings_az.xtb
+++ b/components/strings/components_strings_az.xtb
@@ -1560,6 +1560,7 @@
 <translation id="3641116835972736297">Amerika Futbolu</translation>
 <translation id="3642196846309122856">Faylları yenidən endirin</translation>
 <translation id="3642638418806704195">Tətbiq:</translation>
+<translation id="3644768007456662469">Ödəniş elementi ikonası</translation>
 <translation id="3646643500201740985">Bir reklamın nə qədər yaxşı performans göstərdiyini ölçmək</translation>
 <translation id="3647286794400715637">Hər bir keçid sətri daxiletməsində 1-2 keçid olmalıdır.</translation>
 <translation id="3647400963805615193">Chrome tövsiyəsini rədd etmək üçün düymə, rədd etmək üçün Enter üzərinə basın, <ph name="REMOVE_BUTTON_FOCUSED_FRIENDLY_MATCH_TEXT" /></translation>
diff --git a/components/strings/components_strings_be.xtb b/components/strings/components_strings_be.xtb
index 8ed1ba6c..a021457 100644
--- a/components/strings/components_strings_be.xtb
+++ b/components/strings/components_strings_be.xtb
@@ -1564,6 +1564,7 @@
 <translation id="3641116835972736297">Амерыканскі футбол</translation>
 <translation id="3642196846309122856">Паспрабуйце спампаваць файлы яшчэ раз</translation>
 <translation id="3642638418806704195">Праграма:</translation>
+<translation id="3644768007456662469">Значок элемента, звязанага з плацяжамі</translation>
 <translation id="3646643500201740985">Ацэнка эфектыўнасці рэкламнай аб’явы</translation>
 <translation id="3647286794400715637">Кожны запіс павінен змяшчаць 1-2 URL-адрасы.</translation>
 <translation id="3647400963805615193">Кнопка, каб закрыць параду Chrome. Націсніце Увод, каб закрыць параду. <ph name="REMOVE_BUTTON_FOCUSED_FRIENDLY_MATCH_TEXT" /></translation>
@@ -2100,11 +2101,13 @@
 <translation id="4530347922939905757">Тэкставае паведамленне</translation>
 <translation id="4531477351494678589">Нумар віртуальнай карткі:</translation>
 <translation id="4535523368173457420">Гэтыя пошукавыя сістэмы папулярныя ў вашым рэгіёне. Яны размешчаны ў выпадковым парадку.</translation>
+<translation id="4539931187424170595">{NUM_YEARS,plural, =1{Створана год таму}one{Створана {NUM_YEARS} год таму}few{Створана {NUM_YEARS} гады таму}many{Створана {NUM_YEARS} гадоў таму}other{Створана {NUM_YEARS} года таму}}</translation>
 <translation id="4541810033354695636">дапоўненая рэальнасць</translation>
 <translation id="4542971377163063093">Латок 6</translation>
 <translation id="4543072026714825470">Каб наступны раз плаціць хутчэй, захавайце картку і адрас для выстаўлення рахункаў ва Уліковым запісе Google</translation>
 <translation id="454441086898495030">Дадаць у групу "<ph name="SET" />"?</translation>
 <translation id="4546730006268514143">Час чакання пераносу перавышаны</translation>
+<translation id="4548974025982531828">{NUM_DAYS,plural, =1{Створана дзень таму}one{Створана {NUM_DAYS} дзень таму}few{Створана {NUM_DAYS} дні таму}many{Створана {NUM_DAYS} дзён таму}other{Створана {NUM_DAYS} дня таму}}</translation>
 <translation id="455113658016510503">A9</translation>
 <translation id="4556069465387849460">Блакіроўка экрана выкарыстоўваецца для ўводу пароляў</translation>
 <translation id="4557573143631562971">Страхаванне жылля</translation>
@@ -2897,6 +2900,7 @@
 <translation id="5938153366081463283">Дадаць віртуальную картку</translation>
 <translation id="5938793338444039872">Troy</translation>
 <translation id="5938866385061293322">Гэта інфармацыя атрымана з незалежных вэб-сайтаў з водгукамі, такіх як Trustpilot, ScamAdviser, Google і іншых. Рэзюмэ створаны штучным інтэлектам.</translation>
+<translation id="5943775258256265106">{NUM_MINS,plural, =1{Створана хвіліну таму}one{Створана {NUM_MINS} хвіліну таму}few{Створана {NUM_MINS} хвіліны таму}many{Створана {NUM_MINS} хвілін таму}other{Створана {NUM_MINS} хвіліны таму}}</translation>
 <translation id="5944297261866530437">Высакаглянцавая тканіна</translation>
 <translation id="5950901984834744590">Электрабрытвы і станкі для галення</translation>
 <translation id="5951495562196540101">Не ўдалося зарэгістраваць з дапамогай уліковага запісу спажыўца (даступна пакетная ліцэнзія).</translation>
@@ -4058,6 +4062,7 @@
 <translation id="7894280532028510793">Калі напісанне правільнае, <ph name="BEGIN_LINK" />паспрабуйце запусціць дыягностыку сеткі<ph name="END_LINK" />.</translation>
 <translation id="7901831439558593470">Канверт 7 x 9 цаляў</translation>
 <translation id="7905064834449738336">Chromium папярэджвае, калі пароль, які вы выкарыстоўваеце, быў апублікаваны ў інтэрнэце. Пры гэтым вашы паролі і імёны карыстальніка зашыфраваны – прачытаць іх не можа ніхто, нават Google.</translation>
+<translation id="7906177144646315659">{NUM_HOURS,plural, =1{Створана гадзіну таму}one{Створана {NUM_HOURS} гадзіну таму}few{Створана {NUM_HOURS} гадзіны таму}many{Створана {NUM_HOURS} гадзін таму}other{Створана {NUM_HOURS} гадзіны таму}}</translation>
 <translation id="7908648876066812348">Віртуальная картка падключаецца</translation>
 <translation id="7909498058929404306"><ph name="RUN_CHROME_SAFETY_CHECK_FOCUSED_FRIENDLY_MATCH_TEXT" />. Каб перайсці на старонку праверкі бяспекі Chrome у наладах, націсніце Tab, затым Увод.</translation>
 <translation id="791107458486222637">Вынік будзе атрыманы паўторна</translation>
@@ -4192,6 +4197,7 @@
 <translation id="8134058435519644366">Рэкрутынг і працаўладкаванне</translation>
 <translation id="8135546115396015134">стрэлку ўлева</translation>
 <translation id="8137456439814903304">Энергетыка і камунальныя арганізацыі</translation>
+<translation id="814432316791813431">{NUM_MONTHS,plural, =1{Створана месяц таму}one{Створана {NUM_MONTHS} месяц таму}few{Створана {NUM_MONTHS} месяцы таму}many{Створана {NUM_MONTHS} месяцаў таму}other{Створана {NUM_MONTHS} месяца таму}}</translation>
 <translation id="8148608574971654810">Версія PDF:</translation>
 <translation id="8149426793427495338">Камп’ютар перайшоў у рэжым сну.</translation>
 <translation id="8150722005171944719">Файл па адрасе "<ph name="URL" />" не чытаецца.  Магчыма, ён быў выдалены, перамешчаны або не хапае дазволаў на доступ да яго.</translation>
diff --git a/components/strings/components_strings_bg.xtb b/components/strings/components_strings_bg.xtb
index f52bad73..493a749 100644
--- a/components/strings/components_strings_bg.xtb
+++ b/components/strings/components_strings_bg.xtb
@@ -1564,6 +1564,7 @@
 <translation id="3641116835972736297">Американски футбол</translation>
 <translation id="3642196846309122856">Опитайте отново да изтеглите файловете си</translation>
 <translation id="3642638418806704195">Приложение:</translation>
+<translation id="3644768007456662469">Икона на елемента за плащания</translation>
 <translation id="3646643500201740985">Измерване на ефективността на дадена реклама</translation>
 <translation id="3647286794400715637">Всеки въведен низ за URL адреси трябва да съдържа 1 или 2 URL адреса.</translation>
 <translation id="3647400963805615193">Бутон за отхвърляне на съвета за Chrome. Натиснете Enter за отхвърляне на „<ph name="REMOVE_BUTTON_FOCUSED_FRIENDLY_MATCH_TEXT" />“</translation>
@@ -2100,11 +2101,13 @@
 <translation id="4530347922939905757">SMS съобщение</translation>
 <translation id="4531477351494678589">Номер на виртуалната карта:</translation>
 <translation id="4535523368173457420">Тези търсещи машини са популярни в региона ви и се показват в произволен ред</translation>
+<translation id="4539931187424170595">{NUM_YEARS,plural, =1{Създадено преди 1 година}other{Създадено преди {NUM_YEARS} години}}</translation>
 <translation id="4541810033354695636">обогатена реалност</translation>
 <translation id="4542971377163063093">Тава 6</translation>
 <translation id="4543072026714825470">За да платите по-бързо следващия път, запазете картата и адреса си за фактуриране в профила си в Google</translation>
 <translation id="454441086898495030">Да се добави ли към <ph name="SET" /></translation>
 <translation id="4546730006268514143">Времето за изчакване при прехвърляне изтече</translation>
+<translation id="4548974025982531828">{NUM_DAYS,plural, =1{Създадено преди 1 ден}other{Създадено преди {NUM_DAYS} дни}}</translation>
 <translation id="455113658016510503">A9</translation>
 <translation id="4556069465387849460">Използвате опцията си за заключване на екрана при попълване на пароли</translation>
 <translation id="4557573143631562971">Жилищно застраховане</translation>
@@ -2898,6 +2901,7 @@
 <translation id="5938153366081463283">Добавяне на виртуална карта</translation>
 <translation id="5938793338444039872">Troy</translation>
 <translation id="5938866385061293322">Тази информация е от независими уебсайтове за отзиви, като например Trustpilot, ScamAdviser, Google и др. Обобщенията се създават с AI.</translation>
+<translation id="5943775258256265106">{NUM_MINS,plural, =1{Създадено преди 1 минута}other{Създадено преди {NUM_MINS} минути}}</translation>
 <translation id="5944297261866530437">Текстил (силно гланциран)</translation>
 <translation id="5950901984834744590">Бръсначи и самобръсначки</translation>
 <translation id="5951495562196540101">Не е възможно регистриране с профил на потребител (налице е лиценз в пакет).</translation>
@@ -4059,6 +4063,7 @@
 <translation id="7894280532028510793">Ако изписването е правилно, <ph name="BEGIN_LINK" />стартирайте мрежова диагностика<ph name="END_LINK" />.</translation>
 <translation id="7901831439558593470">Плик 7 x 9 инча</translation>
 <translation id="7905064834449738336">Когато използвате парола, Chromium ще ви предупреди, ако е публикувана онлайн. Когато го прави, паролите и потребителските ви имена са шифровани, така че да не могат да бъдат прочетени от никого, включително от Google.</translation>
+<translation id="7906177144646315659">{NUM_HOURS,plural, =1{Създадено преди 1 час}other{Създадено преди {NUM_HOURS} часа}}</translation>
 <translation id="7908648876066812348">Виртуалната карта се включва</translation>
 <translation id="7909498058929404306"><ph name="RUN_CHROME_SAFETY_CHECK_FOCUSED_FRIENDLY_MATCH_TEXT" />. Натиснете Tab и след това Enter, за да отворите страницата за проверка на безопасността в Chrome от настройките</translation>
 <translation id="791107458486222637">Резултатът се възстановява</translation>
@@ -4193,6 +4198,7 @@
 <translation id="8134058435519644366">Подбор на персонал и кадрово обезпечение</translation>
 <translation id="8135546115396015134">клавиш със стрелка за наляво</translation>
 <translation id="8137456439814903304">Електроенергия и комунални услуги</translation>
+<translation id="814432316791813431">{NUM_MONTHS,plural, =1{Създадено преди 1 месец}other{Създадено преди {NUM_MONTHS} месеца}}</translation>
 <translation id="8148608574971654810">PDF версия:</translation>
 <translation id="8149426793427495338">Компютърът ви премина в спящ режим.</translation>
 <translation id="8150722005171944719">Файлът на адрес <ph name="URL" /> не може да бъде прочетен.  Възможно е да е премахнат, преместен или разрешенията му да предотвратяват достъпа.</translation>
diff --git a/components/strings/components_strings_bs.xtb b/components/strings/components_strings_bs.xtb
index 90c8f4cd..65b1a14 100644
--- a/components/strings/components_strings_bs.xtb
+++ b/components/strings/components_strings_bs.xtb
@@ -1564,6 +1564,7 @@
 <translation id="3641116835972736297">Američki fudbal</translation>
 <translation id="3642196846309122856">Ponovo pokušajte preuzeti fajlove</translation>
 <translation id="3642638418806704195">Aplikacija:</translation>
+<translation id="3644768007456662469">Ikona artikla za plaćanje</translation>
 <translation id="3646643500201740985">Mjerenje performansi oglasa</translation>
 <translation id="3647286794400715637">Svaki uneseni niz URL-a mora sadržavati između 1 i 2 URL-a.</translation>
 <translation id="3647400963805615193">Dugme za odbacivanje savjeta Chromea; odbacivanje pritiskanjem Entera; <ph name="REMOVE_BUTTON_FOCUSED_FRIENDLY_MATCH_TEXT" /></translation>
diff --git a/components/strings/components_strings_ca.xtb b/components/strings/components_strings_ca.xtb
index 0020e9ef..d8e1a5c 100644
--- a/components/strings/components_strings_ca.xtb
+++ b/components/strings/components_strings_ca.xtb
@@ -1564,6 +1564,7 @@
 <translation id="3641116835972736297">Futbol americà</translation>
 <translation id="3642196846309122856">Prova de tornar a baixar els fitxers</translation>
 <translation id="3642638418806704195">Aplicació:</translation>
+<translation id="3644768007456662469">Icona d'element de pagaments</translation>
 <translation id="3646643500201740985">Mesurar el rendiment d'un anunci</translation>
 <translation id="3647286794400715637">Cada entrada de la cadena d'URL ha de contenir 1 o 2 URL.</translation>
 <translation id="3647400963805615193">Botó per ignorar el consell de Chrome, prem Retorn per ignorar-lo, <ph name="REMOVE_BUTTON_FOCUSED_FRIENDLY_MATCH_TEXT" /></translation>
@@ -2100,11 +2101,13 @@
 <translation id="4530347922939905757">Missatge de text</translation>
 <translation id="4531477351494678589">Número de targeta virtual:</translation>
 <translation id="4535523368173457420">Aquests motors de cerca són populars a la teva regió i es mostren en ordre aleatori</translation>
+<translation id="4539931187424170595">{NUM_YEARS,plural, =1{Creat fa 1 any}other{Creat fa {NUM_YEARS} anys}}</translation>
 <translation id="4541810033354695636">realitat augmentada</translation>
 <translation id="4542971377163063093">Safata 6</translation>
 <translation id="4543072026714825470">Perquè la propera vegada puguis pagar més ràpidament, desa la targeta i l'adreça de facturació al teu Compte de Google</translation>
 <translation id="454441086898495030">Vols afegir-la a <ph name="SET" />?</translation>
 <translation id="4546730006268514143">S'ha esgotat el temps d'espera per a la transferència</translation>
+<translation id="4548974025982531828">{NUM_DAYS,plural, =1{Creat fa 1 dia}other{Creat fa {NUM_DAYS} dies}}</translation>
 <translation id="455113658016510503">A9</translation>
 <translation id="4556069465387849460">Estàs utilitzant el bloqueig de pantalla per emplenar contrasenyes</translation>
 <translation id="4557573143631562971">Assegurances de la llar</translation>
@@ -2898,6 +2901,7 @@
 <translation id="5938153366081463283">Afegeix una targeta virtual</translation>
 <translation id="5938793338444039872">Troy</translation>
 <translation id="5938866385061293322">Aquesta informació prové de llocs web independents de ressenyes, com ara Trustpilot, ScamAdviser, Google i d'altres. Els resums es creen amb IA.</translation>
+<translation id="5943775258256265106">{NUM_MINS,plural, =1{Creat fa 1 minut}other{Creat fa {NUM_MINS} minuts}}</translation>
 <translation id="5944297261866530437">Tela (brillantor alta)</translation>
 <translation id="5950901984834744590">Màquines i fulles d'afaitar</translation>
 <translation id="5951495562196540101">El dispositiu no es pot inscriure amb un compte de consumidor (hi ha una llicència associada disponible).</translation>
@@ -4059,6 +4063,7 @@
 <translation id="7894280532028510793">Si està ben escrit, <ph name="BEGIN_LINK" />prova d'executar el diagnòstic de xarxes<ph name="END_LINK" />.</translation>
 <translation id="7901831439558593470">Sobre de 7 x 9 polzades</translation>
 <translation id="7905064834449738336">Quan utilitzes una contrasenya, Chromium t'avisa si s'ha publicat en línia. Quan ho fa, les teves contrasenyes i els teus noms d'usuari s'encripten perquè ningú no els pugui llegir (ni tan sols Google).</translation>
+<translation id="7906177144646315659">{NUM_HOURS,plural, =1{Creat fa 1 hora}other{Creat fa {NUM_HOURS} hores}}</translation>
 <translation id="7908648876066812348">S'està activant la targeta virtual</translation>
 <translation id="7909498058929404306"><ph name="RUN_CHROME_SAFETY_CHECK_FOCUSED_FRIENDLY_MATCH_TEXT" />. Prem Tab i després Retorn per anar a la pàgina de comprovació de seguretat de Chrome a la configuració.</translation>
 <translation id="791107458486222637">S'està refent el resultat</translation>
@@ -4193,6 +4198,7 @@
 <translation id="8134058435519644366">Contractació de personal</translation>
 <translation id="8135546115396015134">tecla esquerra</translation>
 <translation id="8137456439814903304">Energia i companyies elèctriques</translation>
+<translation id="814432316791813431">{NUM_MONTHS,plural, =1{Creat fa 1 mes}other{Creat fa {NUM_MONTHS} mesos}}</translation>
 <translation id="8148608574971654810">Versió de PDF:</translation>
 <translation id="8149426793427495338">L'ordinador ha entrat en mode de repòs.</translation>
 <translation id="8150722005171944719">El fitxer de <ph name="URL" /> no es pot llegir. Pot ser que s'hagi eliminat, que s'hagi traslladat o que els permisos del fitxer n'impedeixin l'accés.</translation>
diff --git a/components/strings/components_strings_cs.xtb b/components/strings/components_strings_cs.xtb
index cfe862a..fa7b07b8 100644
--- a/components/strings/components_strings_cs.xtb
+++ b/components/strings/components_strings_cs.xtb
@@ -1560,6 +1560,7 @@
 <translation id="3641116835972736297">Americký fotbal</translation>
 <translation id="3642196846309122856">Zkuste soubory stáhnout znovu</translation>
 <translation id="3642638418806704195">Aplikace:</translation>
+<translation id="3644768007456662469">Ikona platební položky</translation>
 <translation id="3646643500201740985">Měření výkonu reklam</translation>
 <translation id="3647286794400715637">Každý zadaný řetězec adres URL musí obsahovat 1 až 2 adresy URL.</translation>
 <translation id="3647400963805615193">Tlačítko k zavření tipu pro Chrome, zavřete ho stisknutím klávesy Enter, <ph name="REMOVE_BUTTON_FOCUSED_FRIENDLY_MATCH_TEXT" /></translation>
diff --git a/components/strings/components_strings_cy.xtb b/components/strings/components_strings_cy.xtb
index cc3fa01..980fdc695 100644
--- a/components/strings/components_strings_cy.xtb
+++ b/components/strings/components_strings_cy.xtb
@@ -1564,6 +1564,7 @@
 <translation id="3641116835972736297">Pêl-droed Americanaidd</translation>
 <translation id="3642196846309122856">Rhowch gynnig ar lawrlwytho'ch ffeiliau eto</translation>
 <translation id="3642638418806704195">Rhaglen:</translation>
+<translation id="3644768007456662469">Eicon Eitem Taliadau</translation>
 <translation id="3646643500201740985">Mesur pa mor dda y mae hysbyseb yn perfformio</translation>
 <translation id="3647286794400715637">Rhaid i bob cofnod llinyn cyfeiriadau URL gynnwys rhwng 1 a 2 gyfeiriad URL.</translation>
 <translation id="3647400963805615193">Botwm Diystyru Awgrym Chrome, pwyswch Enter i ddiystyru, <ph name="REMOVE_BUTTON_FOCUSED_FRIENDLY_MATCH_TEXT" /></translation>
@@ -2100,11 +2101,13 @@
 <translation id="4530347922939905757">Neges destun</translation>
 <translation id="4531477351494678589">Rhif cerdyn rhithwir:</translation>
 <translation id="4535523368173457420">Mae'r peiriannau chwilio hyn yn boblogaidd yn eich rhanbarth ac fe'u dangosir ar hap</translation>
+<translation id="4539931187424170595">{NUM_YEARS,plural, =1{Crëwyd 1 flwyddyn yn ôl}zero{Crëwyd {NUM_YEARS} blynedd yn ôl}two{Crëwyd {NUM_YEARS} flynedd yn ôl}few{Crëwyd {NUM_YEARS} blynedd yn ôl}many{Crëwyd {NUM_YEARS} blynedd yn ôl}other{Crëwyd {NUM_YEARS} mlynedd yn ôl}}</translation>
 <translation id="4541810033354695636">realiti estynedig</translation>
 <translation id="4542971377163063093">Hambwrdd 6</translation>
 <translation id="4543072026714825470">I dalu'n gyflymach y tro nesaf, cadwch eich cerdyn a'ch cyfeiriad bilio yn eich Cyfrif Google.</translation>
 <translation id="454441086898495030">Ychwanegu at <ph name="SET" />?</translation>
 <translation id="4546730006268514143">Mae trosglwyddo wedi cymryd gormod o amser</translation>
+<translation id="4548974025982531828">{NUM_DAYS,plural, =1{Crëwyd 1 diwrnod yn ôl}zero{Crëwyd {NUM_DAYS} diwrnod yn ôl}two{Crëwyd {NUM_DAYS} ddiwrnod yn ôl}few{Crëwyd {NUM_DAYS} diwrnod yn ôl}many{Crëwyd {NUM_DAYS} diwrnod yn ôl}other{Crëwyd {NUM_DAYS} diwrnod yn ôl}}</translation>
 <translation id="455113658016510503">A9</translation>
 <translation id="4556069465387849460">Rydych chi'n defnyddio'ch clo sgrin ar gyfer llenwi cyfrineiriau</translation>
 <translation id="4557573143631562971">Yswiriant Cartref</translation>
@@ -2898,6 +2901,7 @@
 <translation id="5938153366081463283">Ychwanegu cerdyn rhithwir</translation>
 <translation id="5938793338444039872">Troy</translation>
 <translation id="5938866385061293322">Daw'r wybodaeth hon o wefannau adolygu annibynnol megis Trustpilot, ScamAdviser, Google a rhagor. Mae crynodebau yn cael eu creu gydag AI.</translation>
+<translation id="5943775258256265106">{NUM_MINS,plural, =1{Crëwyd 1 funud yn ôl}zero{Crëwyd {NUM_MINS} munud yn ôl}two{Crëwyd {NUM_MINS} funud yn ôl}few{Crëwyd {NUM_MINS} munud yn ôl}many{Crëwyd {NUM_MINS} munud yn ôl}other{Crëwyd {NUM_MINS} munud yn ôl}}</translation>
 <translation id="5944297261866530437">Ffabrig (Sglein Uchel)</translation>
 <translation id="5950901984834744590">Raserau ac Eillio</translation>
 <translation id="5951495562196540101">Methu â chofrestru gyda chyfrif defnyddiwr (mae trwydded sydd wedi'i becynnu ar gael).</translation>
@@ -4058,6 +4062,7 @@
 <translation id="7894280532028510793">Os yw'r sillafu'n gywir, <ph name="BEGIN_LINK" />rhowch gynnig ar redeg Diagnosteg Rhwydwaith<ph name="END_LINK" />.</translation>
 <translation id="7901831439558593470">Amlen 7 x 9 o fodfeddi</translation>
 <translation id="7905064834449738336">Pan fyddwch yn defnyddio cyfrinair, mae Chromium yn eich rhybuddio os yw wedi'i gyhoeddi ar-lein. Wrth wneud hyn, mae eich cyfrineiriau a'ch enwau defnyddiwr wedi'u hamgryptio, felly ni all unrhyw un, gan gynnwys Google, eu darllen.</translation>
+<translation id="7906177144646315659">{NUM_HOURS,plural, =1{Crëwyd 1 awr yn ôl}zero{Crëwyd {NUM_HOURS} awr yn ôl}two{Crëwyd {NUM_HOURS} awr yn ôl}few{Crëwyd {NUM_HOURS} awr yn ôl}many{Crëwyd {NUM_HOURS} awr yn ôl}other{Crëwyd {NUM_HOURS} awr yn ôl}}</translation>
 <translation id="7908648876066812348">Wrthi'n troi cerdyn rhithwir ymlaen</translation>
 <translation id="7909498058929404306"><ph name="RUN_CHROME_SAFETY_CHECK_FOCUSED_FRIENDLY_MATCH_TEXT" />, pwyswch Tab yna Enter i fynd i dudalen gwirio diogelwch Chrome yn y gosodiadau</translation>
 <translation id="791107458486222637">Wrthi'n ailwneud y canlyniad</translation>
@@ -4192,6 +4197,7 @@
 <translation id="8134058435519644366">Recriwtio a Staffio</translation>
 <translation id="8135546115396015134">bysell chwith</translation>
 <translation id="8137456439814903304">Ynni a Chyfleustodau</translation>
+<translation id="814432316791813431">{NUM_MONTHS,plural, =1{Crëwyd 1 mis yn ôl}zero{Crëwyd {NUM_MONTHS} mis yn ôl}two{Crëwyd {NUM_MONTHS} fis yn ôl}few{Crëwyd {NUM_MONTHS} mis yn ôl}many{Crëwyd {NUM_MONTHS} mis yn ôl}other{Crëwyd {NUM_MONTHS} mis yn ôl}}</translation>
 <translation id="8148608574971654810">Fersiwn y PDF:</translation>
 <translation id="8149426793427495338">Aeth eich cyfrifiadur i gysgu.</translation>
 <translation id="8150722005171944719">Nid oes modd darllen y ffeil yn <ph name="URL" />.  Mae'n bosib ei bod wedi cael ei thynnu, ei symud neu gallai caniatadau ffeil rwystro mynediad iddi.</translation>
diff --git a/components/strings/components_strings_da.xtb b/components/strings/components_strings_da.xtb
index 2f4c4f7..fac532e 100644
--- a/components/strings/components_strings_da.xtb
+++ b/components/strings/components_strings_da.xtb
@@ -1564,6 +1564,7 @@
 <translation id="3641116835972736297">Amerikansk fodbold</translation>
 <translation id="3642196846309122856">Prøv at downloade dine filer igen</translation>
 <translation id="3642638418806704195">Program:</translation>
+<translation id="3644768007456662469">Ikon for betalingselement</translation>
 <translation id="3646643500201740985">Måling af en annonces effektivitet</translation>
 <translation id="3647286794400715637">Hver webadressestreng skal indeholde mellem 1 og 2 webadresser.</translation>
 <translation id="3647400963805615193">Knappen Luk Chrome-tip, tryk på Enter for at lukke, <ph name="REMOVE_BUTTON_FOCUSED_FRIENDLY_MATCH_TEXT" /></translation>
@@ -2100,11 +2101,13 @@
 <translation id="4530347922939905757">Sms</translation>
 <translation id="4531477351494678589">Virtuelt kortnummer:</translation>
 <translation id="4535523368173457420">Disse søgemaskiner er populære i din region og vises i vilkårlig rækkefølge</translation>
+<translation id="4539931187424170595">{NUM_YEARS,plural, =1{Oprettet for 1 år siden}one{Oprettet for {NUM_YEARS} år siden}other{Oprettet for {NUM_YEARS} år siden}}</translation>
 <translation id="4541810033354695636">augmented reality</translation>
 <translation id="4542971377163063093">Bakke 6</translation>
 <translation id="4543072026714825470">Gem dit kort og din faktureringsadresse på din Google-konto for at betale hurtigere næste gang</translation>
 <translation id="454441086898495030">Vil du føje elementet til <ph name="SET" />?</translation>
 <translation id="4546730006268514143">Overførslen fik timeout</translation>
+<translation id="4548974025982531828">{NUM_DAYS,plural, =1{Oprettet for 1 dag siden}one{Oprettet for {NUM_DAYS} dag siden}other{Oprettet for {NUM_DAYS} dage siden}}</translation>
 <translation id="455113658016510503">A9</translation>
 <translation id="4556069465387849460">Du bruger din skærmlås til at udfylde adgangskoder</translation>
 <translation id="4557573143631562971">Indboforsikring</translation>
@@ -2898,6 +2901,7 @@
 <translation id="5938153366081463283">Tilføj virtuelt kort</translation>
 <translation id="5938793338444039872">Troy</translation>
 <translation id="5938866385061293322">Disse oplysninger stammer fra uafhængige anmeldelseswebsites som f.eks. Trustpilot, ScamAdviser, Google m.m. Opsummeringer oprettes med AI.</translation>
+<translation id="5943775258256265106">{NUM_MINS,plural, =1{Oprettet for 1 minut siden}one{Oprettet for {NUM_MINS} minut siden}other{Oprettet for {NUM_MINS} minutter siden}}</translation>
 <translation id="5944297261866530437">Stof (helblankt)</translation>
 <translation id="5950901984834744590">Skrabere og barbermaskiner</translation>
 <translation id="5951495562196540101">Det er ikke muligt at tilmelde sig med en forbrugerkonto (mulighed for tilknyttet licens ).</translation>
@@ -4059,6 +4063,7 @@
 <translation id="7894280532028510793">Hvis stavningen er korrekt, kan du <ph name="BEGIN_LINK" />prøve at køre Netværksdiagnosticering<ph name="END_LINK" />.</translation>
 <translation id="7901831439558593470">Konvolut 7 x 9 tommer</translation>
 <translation id="7905064834449738336">Når du bruger en adgangskode, advarer Chromium dig, hvis den er blevet afsløret online. Dine adgangskoder og brugernavne krypteres under disse tjek, så de kan ikke læses af nogen, heller ikke Google.</translation>
+<translation id="7906177144646315659">{NUM_HOURS,plural, =1{Oprettet for 1 time siden}one{Oprettet for {NUM_HOURS} time siden}other{Oprettet for {NUM_HOURS} timer siden}}</translation>
 <translation id="7908648876066812348">Aktiverer virtuelt kort</translation>
 <translation id="7909498058929404306"><ph name="RUN_CHROME_SAFETY_CHECK_FOCUSED_FRIENDLY_MATCH_TEXT" />, tryk på Tab-tasten efterfulgt af Enter for at gå til siden for Chromes sikkerhedstjek i indstillingerne</translation>
 <translation id="791107458486222637">Annullerer fortrydelse af resultat</translation>
@@ -4193,6 +4198,7 @@
 <translation id="8134058435519644366">Rekruttering og personale</translation>
 <translation id="8135546115396015134">venstre tast</translation>
 <translation id="8137456439814903304">Energi og forsyning</translation>
+<translation id="814432316791813431">{NUM_MONTHS,plural, =1{Oprettet for 1 måned siden}one{Oprettet for {NUM_MONTHS} måned siden}other{Oprettet for {NUM_MONTHS} måneder siden}}</translation>
 <translation id="8148608574971654810">PDF-version:</translation>
 <translation id="8149426793427495338">Din computer gik i dvale.</translation>
 <translation id="8150722005171944719">Filen i <ph name="URL" /> kan ikke læses. Den kan være blevet fjernet, flyttet, eller også forhindrer filtilladelser muligvis adgangen.</translation>
diff --git a/components/strings/components_strings_de.xtb b/components/strings/components_strings_de.xtb
index ff28ab8..9d3a836 100644
--- a/components/strings/components_strings_de.xtb
+++ b/components/strings/components_strings_de.xtb
@@ -1562,6 +1562,7 @@
 <translation id="3641116835972736297">American Football</translation>
 <translation id="3642196846309122856">Versuche noch einmal, deine Dateien herunterzuladen</translation>
 <translation id="3642638418806704195">Anwendung:</translation>
+<translation id="3644768007456662469">Symbol für Zahlungselement</translation>
 <translation id="3646643500201740985">Leistung einer Werbeanzeige messen</translation>
 <translation id="3647286794400715637">Jeder URL-Stringeintrag muss eine oder zwei URLs enthalten.</translation>
 <translation id="3647400963805615193">Schaltfläche „Chrome-Tipp schließen“ – Drück die Eingabetaste zum Schließen, <ph name="REMOVE_BUTTON_FOCUSED_FRIENDLY_MATCH_TEXT" /></translation>
@@ -2098,11 +2099,13 @@
 <translation id="4530347922939905757">SMS</translation>
 <translation id="4531477351494678589">Virtuelle Kartennummer:</translation>
 <translation id="4535523368173457420">Diese Suchmaschinen sind in deiner Region beliebt und werden in zufälliger Reihenfolge angezeigt</translation>
+<translation id="4539931187424170595">{NUM_YEARS,plural, =1{Vor 1 Jahr erstellt}other{Vor {NUM_YEARS} Jahren erstellt}}</translation>
 <translation id="4541810033354695636">Augmented Reality</translation>
 <translation id="4542971377163063093">Fach 6</translation>
 <translation id="4543072026714825470">Du kannst nächstes Mal schneller bezahlen, wenn du deine Karte und deine Rechnungsadresse in deinem Google-Konto speicherst</translation>
 <translation id="454441086898495030">Zu „<ph name="SET" />“ hinzufügen?</translation>
 <translation id="4546730006268514143">Zeitüberschreitung bei Übertragung</translation>
+<translation id="4548974025982531828">{NUM_DAYS,plural, =1{Vor 1 Tag erstellt}other{Vor {NUM_DAYS} Tagen erstellt}}</translation>
 <translation id="455113658016510503">A9</translation>
 <translation id="4556069465387849460">Du verwendest die Displaysperre zum Ausfüllen von Passwörtern</translation>
 <translation id="4557573143631562971">Hausversicherungen</translation>
@@ -2896,6 +2899,7 @@
 <translation id="5938153366081463283">Virtuelle Karte hinzufügen</translation>
 <translation id="5938793338444039872">Troy</translation>
 <translation id="5938866385061293322">Diese Informationen stammen von unabhängigen Rezensionswebsites wie Trustpilot, ScamAdviser und Google. Zusammenfassungen werden mithilfe von KI erstellt.</translation>
+<translation id="5943775258256265106">{NUM_MINS,plural, =1{Vor 1 Minute erstellt}other{Vor {NUM_MINS} Minuten erstellt}}</translation>
 <translation id="5944297261866530437">Stoff (hochglanz)</translation>
 <translation id="5950901984834744590">Rasierer</translation>
 <translation id="5951495562196540101">Registrierung mit Kundenkonto nicht möglich (Paketlizenz verfügbar).</translation>
@@ -4057,6 +4061,7 @@
 <translation id="7894280532028510793">Wenn die URL keinen Tippfehler enthält, <ph name="BEGIN_LINK" />kannst du die Netzwerkdiagnose durchführen<ph name="END_LINK" />.</translation>
 <translation id="7901831439558593470">Umschlag 7 × 9 Zoll</translation>
 <translation id="7905064834449738336">Wenn du ein Passwort verwendest, wirst du von Chromium gewarnt, falls es online veröffentlicht wurde. Dabei werden deine Passwörter und Nutzernamen verschlüsselt, damit sie von niemandem gelesen werden können, auch nicht von Google.</translation>
+<translation id="7906177144646315659">{NUM_HOURS,plural, =1{Vor 1 Stunde erstellt}other{Vor {NUM_HOURS} Stunden erstellt}}</translation>
 <translation id="7908648876066812348">Virtuelle Karte wird aktiviert</translation>
 <translation id="7909498058929404306"><ph name="RUN_CHROME_SAFETY_CHECK_FOCUSED_FRIENDLY_MATCH_TEXT" /> – Drück die Tabulatortaste und dann die Eingabetaste, um in den Einstellungen die Seite „Sicherheitscheck“ für Chrome aufzurufen</translation>
 <translation id="791107458486222637">Aktion wird wiederholt</translation>
@@ -4191,6 +4196,7 @@
 <translation id="8134058435519644366">Personalbeschaffung</translation>
 <translation id="8135546115396015134">die linke Taste</translation>
 <translation id="8137456439814903304">Energie und Energieversorger</translation>
+<translation id="814432316791813431">{NUM_MONTHS,plural, =1{Vor 1 Monat erstellt}other{Vor {NUM_MONTHS} Monaten erstellt}}</translation>
 <translation id="8148608574971654810">PDF-Version:</translation>
 <translation id="8149426793427495338">Dein Computer ist im Ruhemodus.</translation>
 <translation id="8150722005171944719">Die Datei unter <ph name="URL" /> kann nicht gelesen werden. Sie wurde möglicherweise entfernt oder verschoben oder die Dateiberechtigungen verhindern den Zugriff.</translation>
diff --git a/components/strings/components_strings_el.xtb b/components/strings/components_strings_el.xtb
index df9289a..2d91bac 100644
--- a/components/strings/components_strings_el.xtb
+++ b/components/strings/components_strings_el.xtb
@@ -2102,11 +2102,13 @@
 <translation id="4530347922939905757">Μήνυμα κειμένου</translation>
 <translation id="4531477351494678589">Αριθμός εικονικής κάρτας:</translation>
 <translation id="4535523368173457420">Αυτές οι μηχανές αναζήτησης είναι δημοφιλείς στην περιοχή σας και εμφανίζονται με τυχαία σειρά</translation>
+<translation id="4539931187424170595">{NUM_YEARS,plural, =1{Δημιουργήθηκε πριν από 1 έτος}other{Δημιουργήθηκε πριν από {NUM_YEARS} έτη}}</translation>
 <translation id="4541810033354695636">επαυξημένη πραγματικότητα</translation>
 <translation id="4542971377163063093">Δίσκος 6</translation>
 <translation id="4543072026714825470">Για πιο γρήγορες πληρωμές στο μέλλον, αποθηκεύστε την κάρτα σας και τη διεύθυνση χρέωσης στον Λογαριασμό σας Google</translation>
 <translation id="454441086898495030">Προσθήκη σε <ph name="SET" />;</translation>
 <translation id="4546730006268514143">Έληξε το χρονικό όριο για τη μεταφορά</translation>
+<translation id="4548974025982531828">{NUM_DAYS,plural, =1{Δημιουργήθηκε πριν από 1 ημέρα}other{Δημιουργήθηκε πριν από {NUM_DAYS} ημέρες}}</translation>
 <translation id="455113658016510503">A9</translation>
 <translation id="4556069465387849460">Χρησιμοποιείτε το κλείδωμα οθόνης για τη συμπλήρωση κωδικών πρόσβασης</translation>
 <translation id="4557573143631562971">Ασφάλεια σπιτιού</translation>
@@ -2901,6 +2903,7 @@
 <translation id="5938153366081463283">Προσθήκη εικονικής κάρτας</translation>
 <translation id="5938793338444039872">Troy</translation>
 <translation id="5938866385061293322">Αυτές οι πληροφορίες προέρχονται από ιστοτόπους με προσωπικές αξιολογήσεις, όπως το Trustpilot, το ScamAdviser, η Google και άλλοι. Οι συνόψεις δημιουργούνται με AI.</translation>
+<translation id="5943775258256265106">{NUM_MINS,plural, =1{Δημιουργήθηκε πριν από 1 λεπτό}other{Δημιουργήθηκε πριν από {NUM_MINS} λεπτά}}</translation>
 <translation id="5944297261866530437">Ύφασμα (Υψηλής στιλπνότητας)</translation>
 <translation id="5950901984834744590">Ξυραφάκια και ξυριστικές μηχανές</translation>
 <translation id="5951495562196540101">Δεν είναι δυνατή η εγγραφή με λογαριασμό προσωπικής χρήσης (διατίθεται σχετική άδεια).</translation>
@@ -4063,6 +4066,7 @@
 <translation id="7894280532028510793">Εάν δεν υπάρχει ορθογραφικό λάθος, <ph name="BEGIN_LINK" />δοκιμάστε να εκτελέσετε έναν έλεγχο Διαγνωστικών δικτύου<ph name="END_LINK" />.</translation>
 <translation id="7901831439558593470">Φάκελος 7 x 9 ίντσες</translation>
 <translation id="7905064834449738336">Όταν χρησιμοποιείτε έναν κωδικό πρόσβασης, το Chromium σας προειδοποιεί εάν έχει δημοσιευτεί στο διαδίκτυο. Κατά τη διάρκεια αυτής της διαδικασίας, οι κωδικοί πρόσβασης και τα ονόματα χρήστη σας κρυπτογραφούνται, έτσι ώστε να μην μπορεί να τα διαβάσει κανείς, συμπεριλαμβανομένης της Google.</translation>
+<translation id="7906177144646315659">{NUM_HOURS,plural, =1{Δημιουργήθηκε πριν από 1 ώρα}other{Δημιουργήθηκε πριν από {NUM_HOURS} ώρες}}</translation>
 <translation id="7908648876066812348">Ενεργοποίηση εικονικής κάρτας</translation>
 <translation id="7909498058929404306"><ph name="RUN_CHROME_SAFETY_CHECK_FOCUSED_FRIENDLY_MATCH_TEXT" />, πατήστε το πλήκτρο Tab και μετά το Enter για να μεταβείτε στη σελίδα του ελέγχου ασφαλείας του Chrome στις ρυθμίσεις</translation>
 <translation id="791107458486222637">Επανάληψη αποτελέσματος</translation>
@@ -4197,6 +4201,7 @@
 <translation id="8134058435519644366">Προσλήψεις και προσωπικό</translation>
 <translation id="8135546115396015134">αριστερό πλήκτρο</translation>
 <translation id="8137456439814903304">Ενέργεια και υπηρεσίες κοινής ωφέλειας</translation>
+<translation id="814432316791813431">{NUM_MONTHS,plural, =1{Δημιουργήθηκε πριν από 1 μήνα}other{Δημιουργήθηκε πριν από {NUM_MONTHS} μήνες}}</translation>
 <translation id="8148608574971654810">Έκδοση PDF:</translation>
 <translation id="8149426793427495338">Ο υπολογιστής σας τέθηκε σε αδράνεια.</translation>
 <translation id="8150722005171944719">Δεν είναι δυνατή η ανάγνωση του αρχείου στη διεύθυνση <ph name="URL" />. Ενδέχεται να καταργήθηκε, να μετακινήθηκε ή τα δικαιώματα αρχείου μπορεί να μην επιτρέπουν την πρόσβαση.</translation>
diff --git a/components/strings/components_strings_en-GB.xtb b/components/strings/components_strings_en-GB.xtb
index f7a5181..35c5378 100644
--- a/components/strings/components_strings_en-GB.xtb
+++ b/components/strings/components_strings_en-GB.xtb
@@ -1564,6 +1564,7 @@
 <translation id="3641116835972736297">American football</translation>
 <translation id="3642196846309122856">Try downloading your files again</translation>
 <translation id="3642638418806704195">Application:</translation>
+<translation id="3644768007456662469">Payments item icon</translation>
 <translation id="3646643500201740985">Measuring how well an ad performs</translation>
 <translation id="3647286794400715637">Each URL string entry must contain between 1 and 2 URLs.</translation>
 <translation id="3647400963805615193">Dismiss Chrome tip button, press Enter to dismiss, <ph name="REMOVE_BUTTON_FOCUSED_FRIENDLY_MATCH_TEXT" /></translation>
@@ -2100,11 +2101,13 @@
 <translation id="4530347922939905757">Text message</translation>
 <translation id="4531477351494678589">Virtual card number:</translation>
 <translation id="4535523368173457420">These search engines are popular in your region and are shown in random order</translation>
+<translation id="4539931187424170595">{NUM_YEARS,plural, =1{Created 1 year ago}other{Created {NUM_YEARS} years ago}}</translation>
 <translation id="4541810033354695636">augmented reality</translation>
 <translation id="4542971377163063093">Tray 6</translation>
 <translation id="4543072026714825470">To pay faster next time, save your card and billing address in your Google Account</translation>
 <translation id="454441086898495030">Add to <ph name="SET" />?</translation>
 <translation id="4546730006268514143">Transferring timed out</translation>
+<translation id="4548974025982531828">{NUM_DAYS,plural, =1{Created 1 day ago}other{Created {NUM_DAYS} days ago}}</translation>
 <translation id="455113658016510503">A9</translation>
 <translation id="4556069465387849460">You're using your screen lock for filling in passwords</translation>
 <translation id="4557573143631562971">Home insurance</translation>
@@ -2898,6 +2901,7 @@
 <translation id="5938153366081463283">Add virtual card</translation>
 <translation id="5938793338444039872">Troy</translation>
 <translation id="5938866385061293322">This info comes from independent review websites like Trustpilot, ScamAdviser, Google and more. Summaries are created with AI.</translation>
+<translation id="5943775258256265106">{NUM_MINS,plural, =1{Created 1 minute ago}other{Created {NUM_MINS} minutes ago}}</translation>
 <translation id="5944297261866530437">Fabric (high gloss)</translation>
 <translation id="5950901984834744590">Razors and shavers</translation>
 <translation id="5951495562196540101">Can't enrol with consumer account (packaged licence available).</translation>
@@ -4059,6 +4063,7 @@
 <translation id="7894280532028510793">If spelling is correct, <ph name="BEGIN_LINK" />try running network Diagnostics<ph name="END_LINK" />.</translation>
 <translation id="7901831439558593470">Envelope 7 x 9 in</translation>
 <translation id="7905064834449738336">When you use a password, Chromium warns you if it has been published online. When doing this, your passwords and usernames are encrypted, so they can’t be read by anyone, including Google.</translation>
+<translation id="7906177144646315659">{NUM_HOURS,plural, =1{Created 1 hour ago}other{Created {NUM_HOURS} hours ago}}</translation>
 <translation id="7908648876066812348">Turning on virtual card</translation>
 <translation id="7909498058929404306"><ph name="RUN_CHROME_SAFETY_CHECK_FOCUSED_FRIENDLY_MATCH_TEXT" />, press Tab then Enter to go to Chrome safety check page in settings</translation>
 <translation id="791107458486222637">Redoing result</translation>
@@ -4193,6 +4198,7 @@
 <translation id="8134058435519644366">Recruitment and Staffing</translation>
 <translation id="8135546115396015134">left key</translation>
 <translation id="8137456439814903304">Energy and utilities</translation>
+<translation id="814432316791813431">{NUM_MONTHS,plural, =1{Created 1 month ago}other{Created {NUM_MONTHS} months ago}}</translation>
 <translation id="8148608574971654810">PDF version:</translation>
 <translation id="8149426793427495338">Your computer went to sleep.</translation>
 <translation id="8150722005171944719">The file at <ph name="URL" /> is not readable.  It may have been removed, moved or file permissions may be preventing access.</translation>
diff --git a/components/strings/components_strings_es.xtb b/components/strings/components_strings_es.xtb
index c3c7c8f..2226a1f 100644
--- a/components/strings/components_strings_es.xtb
+++ b/components/strings/components_strings_es.xtb
@@ -1564,6 +1564,7 @@
 <translation id="3641116835972736297">Fútbol americano</translation>
 <translation id="3642196846309122856">Prueba a descargar tus archivos de nuevo</translation>
 <translation id="3642638418806704195">Aplicación:</translation>
+<translation id="3644768007456662469">Icono de elemento de pagos</translation>
 <translation id="3646643500201740985">Medir el rendimiento de un anuncio</translation>
 <translation id="3647286794400715637">Cada entrada de la cadena de URLs debe contener entre 1 y 2 URLs.</translation>
 <translation id="3647400963805615193">Botón para cerrar el consejo de Chrome, pulsa Intro para cerrarlo, <ph name="REMOVE_BUTTON_FOCUSED_FRIENDLY_MATCH_TEXT" /></translation>
@@ -2100,11 +2101,13 @@
 <translation id="4530347922939905757">Mensaje de texto</translation>
 <translation id="4531477351494678589">Número de tarjeta virtual:</translation>
 <translation id="4535523368173457420">Estos buscadores son populares en tu zona y se muestran en orden aleatorio</translation>
+<translation id="4539931187424170595">{NUM_YEARS,plural, =1{Creado hace 1 año}other{Creado hace {NUM_YEARS} años}}</translation>
 <translation id="4541810033354695636">realidad aumentada</translation>
 <translation id="4542971377163063093">Bandeja 6</translation>
 <translation id="4543072026714825470">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="454441086898495030">¿Añadir a <ph name="SET" />?</translation>
 <translation id="4546730006268514143">Tiempo de espera de transferencia agotado</translation>
+<translation id="4548974025982531828">{NUM_DAYS,plural, =1{Creado hace 1 día}other{Creado hace {NUM_DAYS} días}}</translation>
 <translation id="455113658016510503">A9</translation>
 <translation id="4556069465387849460">Estás usando el bloqueo de pantalla para rellenar contraseñas</translation>
 <translation id="4557573143631562971">Seguros de vivienda</translation>
@@ -2898,6 +2901,7 @@
 <translation id="5938153366081463283">Añadir tarjeta virtual</translation>
 <translation id="5938793338444039872">Troy</translation>
 <translation id="5938866385061293322">Esta información procede de sitios web de reseñas independientes como Trustpilot, ScamAdviser y Google, entre otros. Los resúmenes se crean con IA.</translation>
+<translation id="5943775258256265106">{NUM_MINS,plural, =1{Creado hace 1 minuto}other{Creado hace {NUM_MINS} minutos}}</translation>
 <translation id="5944297261866530437">Tela (brillo intenso)</translation>
 <translation id="5950901984834744590">Cuchillas y máquinas de afeitar</translation>
 <translation id="5951495562196540101">No te puedes registrar con una cuenta de consumidor (hay una licencia asociada disponible).</translation>
@@ -4059,6 +4063,7 @@
 <translation id="7894280532028510793">Si está escrito correctamente, <ph name="BEGIN_LINK" />prueba a ejecutar el diagnóstico de red<ph name="END_LINK" />.</translation>
 <translation id="7901831439558593470">Sobre de 7x9 pulgadas</translation>
 <translation id="7905064834449738336">Cuando usas una contraseña, Chromium te avisa si se ha publicado online. Al hacerlo, tus contraseñas y nombres de usuario se cifran para que nadie pueda leerlos, ni siquiera Google.</translation>
+<translation id="7906177144646315659">{NUM_HOURS,plural, =1{Creado hace 1 hora}other{Creado hace {NUM_HOURS} horas}}</translation>
 <translation id="7908648876066812348">Activando tarjeta virtual</translation>
 <translation id="7909498058929404306"><ph name="RUN_CHROME_SAFETY_CHECK_FOCUSED_FRIENDLY_MATCH_TEXT" />, pulsa Tabulador y luego Intro para ir a la página de comprobación de seguridad de Chrome en la configuración</translation>
 <translation id="791107458486222637">Rehaciendo resultado</translation>
@@ -4193,6 +4198,7 @@
 <translation id="8134058435519644366">Contratación y selección de personal</translation>
 <translation id="8135546115396015134">tecla izquierda</translation>
 <translation id="8137456439814903304">Energía y servicios públicos</translation>
+<translation id="814432316791813431">{NUM_MONTHS,plural, =1{Creado hace 1 mes}other{Creado hace {NUM_MONTHS} meses}}</translation>
 <translation id="8148608574971654810">Versión de PDF:</translation>
 <translation id="8149426793427495338">El ordenador se ha suspendido.</translation>
 <translation id="8150722005171944719">El archivo que se encuentra en <ph name="URL" /> no se puede leer. Puede que se haya eliminado o movido o que los permisos del archivo impidan acceder a él.</translation>
diff --git a/components/strings/components_strings_et.xtb b/components/strings/components_strings_et.xtb
index a73d5d2..2d8fcd3 100644
--- a/components/strings/components_strings_et.xtb
+++ b/components/strings/components_strings_et.xtb
@@ -1564,6 +1564,7 @@
 <translation id="3641116835972736297">Ameerika jalgpall</translation>
 <translation id="3642196846309122856">Proovige oma failid uuesti alla laadida</translation>
 <translation id="3642638418806704195">Rakendus:</translation>
+<translation id="3644768007456662469">Maksete üksuse ikoon</translation>
 <translation id="3646643500201740985">Reklaami toimivuse mõõtmine</translation>
 <translation id="3647286794400715637">Iga URL-i string peab sisaldama 1–2 URL-i.</translation>
 <translation id="3647400963805615193">Chrome'i nõuandest loobumise nupp, loobumiseks vajutage sisestusklahvi, <ph name="REMOVE_BUTTON_FOCUSED_FRIENDLY_MATCH_TEXT" /></translation>
@@ -2100,11 +2101,13 @@
 <translation id="4530347922939905757">Tekstsõnum</translation>
 <translation id="4531477351494678589">Virtuaalkaardi number:</translation>
 <translation id="4535523368173457420">Need otsingumootorid on teie piirkonnas populaarsed ja need kuvatakse juhuslikus järjestuses</translation>
+<translation id="4539931187424170595">{NUM_YEARS,plural, =1{Loodud 1 aasta tagasi}other{Loodud {NUM_YEARS} aastat tagasi}}</translation>
 <translation id="4541810033354695636">liitreaalsus</translation>
 <translation id="4542971377163063093">Salv 6</translation>
 <translation id="4543072026714825470">Kui soovite järgmisel korral kiiremini maksta, salvestage kaart ja arveldusaadress oma Google'i kontole.</translation>
 <translation id="454441086898495030">Kas lisada võrdlustabelisse „<ph name="SET" />“?</translation>
 <translation id="4546730006268514143">Ülekandmine aegus</translation>
+<translation id="4548974025982531828">{NUM_DAYS,plural, =1{Loodud 1 päev tagasi}other{Loodud {NUM_DAYS} päeva tagasi}}</translation>
 <translation id="455113658016510503">A9</translation>
 <translation id="4556069465387849460">Kasutate oma ekraanilukku paroolide sisestamiseks</translation>
 <translation id="4557573143631562971">Kodukindlustus</translation>
@@ -2898,6 +2901,7 @@
 <translation id="5938153366081463283">Virtuaalkaardi lisamine</translation>
 <translation id="5938793338444039872">Troy</translation>
 <translation id="5938866385061293322">See teave on pärit sõltumatutelt arvustuste veebisaitidelt, nagu Trustpilot, ScamAdviser, Google jpm. Kokkuvõtted tehakse AI abil.</translation>
+<translation id="5943775258256265106">{NUM_MINS,plural, =1{Loodud 1 minut tagasi}other{Loodud {NUM_MINS} minutit tagasi}}</translation>
 <translation id="5944297261866530437">Kangas (kõrgläikega)</translation>
 <translation id="5950901984834744590">Pardlid ja raseerimisvahendid</translation>
 <translation id="5951495562196540101">Tarbijakontoga ei saa registreeruda (paketipõhine litsents on saadaval).</translation>
@@ -4059,6 +4063,7 @@
 <translation id="7894280532028510793">Kui õigekirjavigu pole, <ph name="BEGIN_LINK" />käitage võrgudiagnostika<ph name="END_LINK" />.</translation>
 <translation id="7901831439558593470">7 × 9-tolline ümbrik</translation>
 <translation id="7905064834449738336">Kui kasutate parooli, hoiatab Chromium teid, kui see on veebis avalikustatud. Selle käigus on teie paroolid ja kasutajanimed krüpteeritud, et mitte keegi (sh Google) ei saaks neid lugeda.</translation>
+<translation id="7906177144646315659">{NUM_HOURS,plural, =1{Loodud 1 tund tagasi}other{Loodud {NUM_HOURS} tundi tagasi}}</translation>
 <translation id="7908648876066812348">Virtuaalkaardi sisselülitamine</translation>
 <translation id="7909498058929404306"><ph name="RUN_CHROME_SAFETY_CHECK_FOCUSED_FRIENDLY_MATCH_TEXT" />. Vajutage tabulaatorit, seejärel sisestusklahvi, et minna seadetes Chrome'i ohutuskontrollilehele</translation>
 <translation id="791107458486222637">Tulemuse uuesti tegemine</translation>
@@ -4193,6 +4198,7 @@
 <translation id="8134058435519644366">Töölevõtmine ja värbamine</translation>
 <translation id="8135546115396015134">vasak klahv</translation>
 <translation id="8137456439814903304">Energia- ja kommunaalteenused</translation>
+<translation id="814432316791813431">{NUM_MONTHS,plural, =1{Loodud 1 kuu tagasi}other{Loodud {NUM_MONTHS} kuud tagasi}}</translation>
 <translation id="8148608574971654810">PDF-i versioon:</translation>
 <translation id="8149426793427495338">Teie arvuti lülitus unerežiimile.</translation>
 <translation id="8150722005171944719">Fail <ph name="URL" /> ei ole loetav. Võimalik, et see on eemaldatud, teisaldatud või faili load takistavad juurdepääsu.</translation>
diff --git a/components/strings/components_strings_fa.xtb b/components/strings/components_strings_fa.xtb
index cb23390..7cd52cd 100644
--- a/components/strings/components_strings_fa.xtb
+++ b/components/strings/components_strings_fa.xtb
@@ -1564,6 +1564,7 @@
 <translation id="3641116835972736297">فوتبال آمریکایی</translation>
 <translation id="3642196846309122856">فایل‌ها را دوباره بارگیری کنید</translation>
 <translation id="3642638418806704195">برنامه:</translation>
+<translation id="3644768007456662469">نماد گزینه پرداخت‌ها</translation>
 <translation id="3646643500201740985">سنجش میزان موفقیت آگهی</translation>
 <translation id="3647286794400715637">هر ورودی رشته نشانی وب باید بین ۱ تا ۲ نشانی وب داشته باشد.</translation>
 <translation id="3647400963805615193">‏دکمه «بستن نکته Chrome»، برای بستن، کلید «ورود» را فشار دهید، <ph name="REMOVE_BUTTON_FOCUSED_FRIENDLY_MATCH_TEXT" /></translation>
diff --git a/components/strings/components_strings_fi.xtb b/components/strings/components_strings_fi.xtb
index 5c8278f6..cbe13ae 100644
--- a/components/strings/components_strings_fi.xtb
+++ b/components/strings/components_strings_fi.xtb
@@ -1565,6 +1565,7 @@
 <translation id="3641116835972736297">Amerikkalainen jalkapallo</translation>
 <translation id="3642196846309122856">Yritä ladata tiedostot uudelleen</translation>
 <translation id="3642638418806704195">Sovellus:</translation>
+<translation id="3644768007456662469">Maksutuotteen kuvake</translation>
 <translation id="3646643500201740985">Mainostulosten mittaaminen</translation>
 <translation id="3647286794400715637">Jokaisessa lisätyssä URL-merkkijonossa on oltava 1–2 URL-osoitetta.</translation>
 <translation id="3647400963805615193">Hylkää Chrome-vinkki ‐painike, hylkää painamalla Enter, <ph name="REMOVE_BUTTON_FOCUSED_FRIENDLY_MATCH_TEXT" /></translation>
@@ -2101,11 +2102,13 @@
 <translation id="4530347922939905757">Tekstiviesti</translation>
 <translation id="4531477351494678589">Virtuaalikortin numero:</translation>
 <translation id="4535523368173457420">Nämä hakukoneet ovat suosittuja alueellasi ja näkyvät satunnaisessa järjestyksessä</translation>
+<translation id="4539931187424170595">{NUM_YEARS,plural, =1{Luotu 1 vuosi sitten}other{Luotu {NUM_YEARS} vuotta sitten}}</translation>
 <translation id="4541810033354695636">lisätty todellisuus</translation>
 <translation id="4542971377163063093">Lokero 6</translation>
 <translation id="4543072026714825470">Jos haluat maksaa nopeammin ensi kerralla, tallenna kortti ja laskutusosoite Google-tilillesi</translation>
 <translation id="454441086898495030">Lisätäänkö kokoelmaan <ph name="SET" />?</translation>
 <translation id="4546730006268514143">Siirto aikakatkaistu</translation>
+<translation id="4548974025982531828">{NUM_DAYS,plural, =1{Luotu 1 päivä sitten}other{Luotu {NUM_DAYS} päivää sitten}}</translation>
 <translation id="455113658016510503">A9</translation>
 <translation id="4556069465387849460">Käytät näytön lukituksen avaustapaa salasanojen täyttämiseen</translation>
 <translation id="4557573143631562971">Kotivakuutukset</translation>
@@ -2899,6 +2902,7 @@
 <translation id="5938153366081463283">Lisää virtuaalinen kortti</translation>
 <translation id="5938793338444039872">Troy</translation>
 <translation id="5938866385061293322">Tiedot ovat peräisin riippumattomilta arvostelusivustoilta, kuten Trustpilot, ScamAdviser ja Google. Yhteenvedot luodaan tekoälyllä.</translation>
+<translation id="5943775258256265106">{NUM_MINS,plural, =1{Luotu 1 minuutti sitten}other{Luotu {NUM_MINS} minuuttia sitten}}</translation>
 <translation id="5944297261866530437">Kangas (erittäin kiiltävä)</translation>
 <translation id="5950901984834744590">Terät ja parranajo</translation>
 <translation id="5951495562196540101">Liittyminen kuluttajatilillä ei onnistu (pakettilisenssi saatavilla).</translation>
@@ -4060,6 +4064,7 @@
 <translation id="7894280532028510793">Jos kirjoitusasu on oikein, <ph name="BEGIN_LINK" />kokeile verkon diagnostiikkaa<ph name="END_LINK" />.</translation>
 <translation id="7901831439558593470">Kirjekuori 177 x 228 mm</translation>
 <translation id="7905064834449738336">Kun käytät salasanaa, Chromium varoittaa, jos se on julkaistu verkossa. Tätä varten salasanat ja käyttäjänimet salataan, joten kukaan (myöskään Google) ei voi lukea niitä.</translation>
+<translation id="7906177144646315659">{NUM_HOURS,plural, =1{Luotu 1 tunti sitten}other{Luotu {NUM_HOURS} tuntia sitten}}</translation>
 <translation id="7908648876066812348">Virtuaalikorttia laitetaan päälle</translation>
 <translation id="7909498058929404306"><ph name="RUN_CHROME_SAFETY_CHECK_FOCUSED_FRIENDLY_MATCH_TEXT" />, siirry Chromen turvatarkistussivulle asetuksista painamalla sarkainta ja sitten Enter</translation>
 <translation id="791107458486222637">Toistetaan tulosta</translation>
@@ -4194,6 +4199,7 @@
 <translation id="8134058435519644366">Rekrytointi ja henkilöstön hankinta</translation>
 <translation id="8135546115396015134">vasenta näppäintä</translation>
 <translation id="8137456439814903304">Energia ja energianjakelu</translation>
+<translation id="814432316791813431">{NUM_MONTHS,plural, =1{Luotu 1 kuukausi sitten}other{Luotu {NUM_MONTHS} kuukautta sitten}}</translation>
 <translation id="8148608574971654810">PDF-versio:</translation>
 <translation id="8149426793427495338">Tietokoneesi siirtyi virransäästötilaan.</translation>
 <translation id="8150722005171944719">Tiedosto osoitteessa <ph name="URL" /> ei ole luettavissa. Se on voitu poistaa tai siirtää, tai tiedoston käyttöluvat voivat estää sen käytön.</translation>
diff --git a/components/strings/components_strings_fil.xtb b/components/strings/components_strings_fil.xtb
index 8cf9b46d..90357a6 100644
--- a/components/strings/components_strings_fil.xtb
+++ b/components/strings/components_strings_fil.xtb
@@ -1564,6 +1564,7 @@
 <translation id="3641116835972736297">American Football</translation>
 <translation id="3642196846309122856">Subukang i-download ulit ang iyong mga file</translation>
 <translation id="3642638418806704195">Application:</translation>
+<translation id="3644768007456662469">Icon na Item ng Mga Pagbabayad</translation>
 <translation id="3646643500201740985">Pagtukoy sa husay ng performance ng ad</translation>
 <translation id="3647286794400715637">Ang bawat entry ng string ng mga url ay dapat na maglaman ng 1 hanggang 2 URL.</translation>
 <translation id="3647400963805615193">Button na I-dismiss ang Tip sa Chrome, pindutin ang Enter para i-dismiss ang <ph name="REMOVE_BUTTON_FOCUSED_FRIENDLY_MATCH_TEXT" /></translation>
@@ -2100,11 +2101,13 @@
 <translation id="4530347922939905757">Text message</translation>
 <translation id="4531477351494678589">Numero ng virtual card</translation>
 <translation id="4535523368173457420">Sikat ang mga search engine na ito sa iyong rehiyon at ipapakita ang mga ito sa random na pagkakasunod-sunod</translation>
+<translation id="4539931187424170595">{NUM_YEARS,plural, =1{Ginawa 1 taon ang nakalipas}one{Ginawa {NUM_YEARS} taon ang nakalipas}other{Ginawa {NUM_YEARS} na taon ang nakalipas}}</translation>
 <translation id="4541810033354695636">augmented reality</translation>
 <translation id="4542971377163063093">Tray 6</translation>
 <translation id="4543072026714825470">Para mas mabilis na makapagbayad sa susunod, i-save ang iyong card at billing address sa Google Account mo</translation>
 <translation id="454441086898495030">Idagdag sa <ph name="SET" />?</translation>
 <translation id="4546730006268514143">Nag-time out ang paglilipat</translation>
+<translation id="4548974025982531828">{NUM_DAYS,plural, =1{Ginawa 1 araw ang nakalipas}one{Ginawa {NUM_DAYS} araw ang nakalipas}other{Ginawa {NUM_DAYS} na araw ang nakalipas}}</translation>
 <translation id="455113658016510503">A9</translation>
 <translation id="4556069465387849460">Ginagamit mo ang iyong lock ng screen para sa paglalagay ng mga password</translation>
 <translation id="4557573143631562971">Insurance sa Bahay</translation>
@@ -2898,6 +2901,7 @@
 <translation id="5938153366081463283">Magdagdag ng virtual card</translation>
 <translation id="5938793338444039872">Troy</translation>
 <translation id="5938866385061293322">Ang impormasyong ito ay galing sa mga independent na website ng review tulad ng Trustpilot, ScamAdviser, Google, at higit pa. Binuo ang mga buod gamit ang AI.</translation>
+<translation id="5943775258256265106">{NUM_MINS,plural, =1{Ginawa 1 minuto ang nakalipas}one{Ginawa {NUM_MINS} minuto ang nakalipas}other{Ginawa {NUM_MINS} na minuto ang nakalipas}}</translation>
 <translation id="5944297261866530437">Tela (High-Gloss)</translation>
 <translation id="5950901984834744590">Mga Razor at Pang-ahit</translation>
 <translation id="5951495562196540101">Hindi maka-enroll gamit ang account ng consumer (may available na naka-package na lisensya).</translation>
@@ -4059,6 +4063,7 @@
 <translation id="7894280532028510793">Kung tama ang pagbabaybay, <ph name="BEGIN_LINK" />subukang patakbuhin ang Mga Diagnostic ng Network<ph name="END_LINK" />.</translation>
 <translation id="7901831439558593470">Envelope 7 x 9 in</translation>
 <translation id="7905064834449738336">Kapag gumamit ka ng password, babalaan ka ng Chromium kung na-publish na ito online. Kapag ginagawa ito, naka-encrypt ang iyong mga password at username, para hindi mabasa ng sinuman ang mga ito, kabilang ang Google.</translation>
+<translation id="7906177144646315659">{NUM_HOURS,plural, =1{Ginawa 1 oras ang nakalipas}one{Ginawa {NUM_HOURS} oras ang nakalipas}other{Ginawa {NUM_HOURS} na oras ang nakalipas}}</translation>
 <translation id="7908648876066812348">Ino-on ang virtual card</translation>
 <translation id="7909498058929404306"><ph name="RUN_CHROME_SAFETY_CHECK_FOCUSED_FRIENDLY_MATCH_TEXT" />, pindutin ang Tab at pagkatapos ay ang Enter para pumunta sa page ng pag-check sa kaligtasan ng Chrome sa mga setting</translation>
 <translation id="791107458486222637">Nire-redo ang resulta</translation>
@@ -4193,6 +4198,7 @@
 <translation id="8134058435519644366">Pag-recruit at Pagpapasok ng Tauhan</translation>
 <translation id="8135546115396015134">pakaliwang key</translation>
 <translation id="8137456439814903304">Enerhiya at Mga Utility</translation>
+<translation id="814432316791813431">{NUM_MONTHS,plural, =1{Ginawa 1 buwan ang nakalipas}one{Ginawa {NUM_MONTHS} buwan ang nakalipas}other{Ginawa {NUM_MONTHS} na buwan ang nakalipas}}</translation>
 <translation id="8148608574971654810">Bersyon ng PDF:</translation>
 <translation id="8149426793427495338">Nag-sleep ang iyong computer.</translation>
 <translation id="8150722005171944719">Hindi nababasa ang file sa <ph name="URL" />. Maaaring ito ay naalis, nalipat, o maaaring pinipigilan ng mga pagpapahintulot ng file ang access.</translation>
diff --git a/components/strings/components_strings_fr-CA.xtb b/components/strings/components_strings_fr-CA.xtb
index b4fbc31..ea56ade 100644
--- a/components/strings/components_strings_fr-CA.xtb
+++ b/components/strings/components_strings_fr-CA.xtb
@@ -1564,6 +1564,7 @@
 <translation id="3641116835972736297">Football américain</translation>
 <translation id="3642196846309122856">Réessayez de télécharger vos fichiers</translation>
 <translation id="3642638418806704195">Application :</translation>
+<translation id="3644768007456662469">Icône de l'élément de paiement</translation>
 <translation id="3646643500201740985">Mesurer la performance d'une annonce</translation>
 <translation id="3647286794400715637">Chaque entrée de chaîne d'URL doit contenir entre une et deux URL.</translation>
 <translation id="3647400963805615193">Bouton Fermer l'astuce Chrome : appuyez sur la touche Entrée pour fermer <ph name="REMOVE_BUTTON_FOCUSED_FRIENDLY_MATCH_TEXT" /></translation>
@@ -2100,11 +2101,13 @@
 <translation id="4530347922939905757">Message texte</translation>
 <translation id="4531477351494678589">Numéro de carte virtuelle :</translation>
 <translation id="4535523368173457420">Ces moteurs de recherche sont populaires dans votre région et sont affichés dans un ordre aléatoire</translation>
+<translation id="4539931187424170595">{NUM_YEARS,plural, =1{Créé il y a 1 an}one{Créé il y a {NUM_YEARS} an}other{Créé il y a {NUM_YEARS} ans}}</translation>
 <translation id="4541810033354695636">Réalité augmentée</translation>
 <translation id="4542971377163063093">Bac 6</translation>
 <translation id="4543072026714825470">Pour accélérer le prochain paiement, enregistrez votre carte et votre adresse de facturation dans votre compte Google</translation>
 <translation id="454441086898495030">Ajouter à <ph name="SET" />?</translation>
 <translation id="4546730006268514143">Le transfert a dépassé le délai</translation>
+<translation id="4548974025982531828">{NUM_DAYS,plural, =1{Créé il y a 1 jour}one{Créé il y a {NUM_DAYS} jour}other{Créé il y a {NUM_DAYS} jours}}</translation>
 <translation id="455113658016510503">A9</translation>
 <translation id="4556069465387849460">Vous utilisez votre verrouillage d'écran pour remplir les mots de passe</translation>
 <translation id="4557573143631562971">Assurance habitation</translation>
@@ -2898,6 +2901,7 @@
 <translation id="5938153366081463283">Ajouter une carte virtuelle</translation>
 <translation id="5938793338444039872">Troy</translation>
 <translation id="5938866385061293322">Ces renseignements proviennent de sites Web d'avis indépendants tels que Trustpilot, ScamAdviser, Google, etc. Les résumés sont créés à l'aide de l'IA.</translation>
+<translation id="5943775258256265106">{NUM_MINS,plural, =1{Créé il y a 1 minute}one{Créé il y a {NUM_MINS} minute}other{Créé il y a {NUM_MINS} minutes}}</translation>
 <translation id="5944297261866530437">Tissu (haute brillance)</translation>
 <translation id="5950901984834744590">Rasoirs</translation>
 <translation id="5951495562196540101">Impossible de s'inscrire avec un compte de consommateur (licence empaquetée disponible).</translation>
@@ -4058,6 +4062,7 @@
 <translation id="7894280532028510793">S'il n'y a pas d'erreur, <ph name="BEGIN_LINK" />essayez d'exécuter les diagnostics de réseau<ph name="END_LINK" />.</translation>
 <translation id="7901831439558593470">Enveloppe 7 x 9 po</translation>
 <translation id="7905064834449738336">Lorsque vous utilisez un mot de passe, Chromium vous avertit s'il a été publié en ligne. Lors de cette opération, vos mots de passe et vos noms d'utilisateur sont chiffrés pour que personne ne puisse les consulter, y compris Google.</translation>
+<translation id="7906177144646315659">{NUM_HOURS,plural, =1{Créé il y a 1 heure}one{Créé il y a {NUM_HOURS} heure}other{Créé il y a {NUM_HOURS} heures}}</translation>
 <translation id="7908648876066812348">Activation de la carte virtuelle en cours…</translation>
 <translation id="7909498058929404306"><ph name="RUN_CHROME_SAFETY_CHECK_FOCUSED_FRIENDLY_MATCH_TEXT" />, appuyez sur la touche Tabulation, puis sur la touche Entrée pour accéder à la page de la Vérification de sécurité de Chrome dans les paramètres</translation>
 <translation id="791107458486222637">Rétablissement du résultat en cours…</translation>
@@ -4192,6 +4197,7 @@
 <translation id="8134058435519644366">Dotation en personnel</translation>
 <translation id="8135546115396015134">touche de gauche</translation>
 <translation id="8137456439814903304">Énergie et services publics</translation>
+<translation id="814432316791813431">{NUM_MONTHS,plural, =1{Créé il y a 1 mois}one{Créé il y a {NUM_MONTHS} mois}other{Créé il y a {NUM_MONTHS} mois}}</translation>
 <translation id="8148608574971654810">Version PDF :</translation>
 <translation id="8149426793427495338">Votre ordinateur s'est mis en veille.</translation>
 <translation id="8150722005171944719">Le fichier à l'adresse <ph name="URL" /> n'est pas lisible. Il est possible qu'il ait été supprimé ou déplacé, ou que les autorisations associées à ce fichier empêchent d'y accéder.</translation>
diff --git a/components/strings/components_strings_fr.xtb b/components/strings/components_strings_fr.xtb
index 9ac6c6a..f683b96 100644
--- a/components/strings/components_strings_fr.xtb
+++ b/components/strings/components_strings_fr.xtb
@@ -1564,6 +1564,7 @@
 <translation id="3641116835972736297">Football américain</translation>
 <translation id="3642196846309122856">Réessayez de télécharger vos fichiers</translation>
 <translation id="3642638418806704195">Application :</translation>
+<translation id="3644768007456662469">Icône de l'élément de paiement</translation>
 <translation id="3646643500201740985">Mesurer les performances d'une annonce</translation>
 <translation id="3647286794400715637">Chaque chaîne d'URL doit contenir entre une et deux URL.</translation>
 <translation id="3647400963805615193">Bouton "Fermer l'astuce Chrome", appuyez sur Entrée pour fermer, <ph name="REMOVE_BUTTON_FOCUSED_FRIENDLY_MATCH_TEXT" /></translation>
@@ -2100,11 +2101,13 @@
 <translation id="4530347922939905757">SMS</translation>
 <translation id="4531477351494678589">Numéro de carte virtuelle :</translation>
 <translation id="4535523368173457420">Ces moteurs de recherche sont populaires dans votre région et s'affichent dans un ordre aléatoire</translation>
+<translation id="4539931187424170595">{NUM_YEARS,plural, =1{Créé il y a 1 an}one{Créé il y a {NUM_YEARS} an}other{Créé il y a {NUM_YEARS} ans}}</translation>
 <translation id="4541810033354695636">réalité augmentée</translation>
 <translation id="4542971377163063093">Bac 6</translation>
 <translation id="4543072026714825470">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="454441086898495030">Ajouter à <ph name="SET" /> ?</translation>
 <translation id="4546730006268514143">Délai de transfert dépassé</translation>
+<translation id="4548974025982531828">{NUM_DAYS,plural, =1{Créé il y a 1 jour}one{Créé il y a {NUM_DAYS} jour}other{Créé il y a {NUM_DAYS} jours}}</translation>
 <translation id="455113658016510503">A9</translation>
 <translation id="4556069465387849460">Vous utilisez le verrouillage de l'écran pour la saisie des mots de passe</translation>
 <translation id="4557573143631562971">Assurance habitation</translation>
@@ -2898,6 +2901,7 @@
 <translation id="5938153366081463283">Ajouter une carte virtuelle</translation>
 <translation id="5938793338444039872">Troy</translation>
 <translation id="5938866385061293322">Ces infos proviennent de sites d'avis indépendants comme Trustpilot, ScamAdviser, Google, etc. Les résumés sont créés à l'aide de l'IA.</translation>
+<translation id="5943775258256265106">{NUM_MINS,plural, =1{Créé il y a 1 minute}one{Créé il y a {NUM_MINS} minute}other{Créé il y a {NUM_MINS} minutes}}</translation>
 <translation id="5944297261866530437">Tissu (haute brillance)</translation>
 <translation id="5950901984834744590">Rasoirs</translation>
 <translation id="5951495562196540101">Impossible d'enregistrer votre appareil avec un compte personnel (licence associée disponible).</translation>
@@ -4060,6 +4064,7 @@
 <translation id="7894280532028510793">S'il n'y a pas d'erreur, essayez de <ph name="BEGIN_LINK" />faire un diagnostic réseau<ph name="END_LINK" />.</translation>
 <translation id="7901831439558593470">Enveloppe 180x230</translation>
 <translation id="7905064834449738336">Lorsque vous utilisez un mot de passe, Chromium vous avertit s'il a été publié en ligne. Lors de cette opération, vos mots de passe et vos noms d'utilisateur sont chiffrés afin que personne ne puisse les consulter, y compris Google.</translation>
+<translation id="7906177144646315659">{NUM_HOURS,plural, =1{Créé il y a 1 heure}one{Créé il y a {NUM_HOURS} heure}other{Créé il y a {NUM_HOURS} heures}}</translation>
 <translation id="7908648876066812348">Activation en cours de la carte virtuelle</translation>
 <translation id="7909498058929404306"><ph name="RUN_CHROME_SAFETY_CHECK_FOCUSED_FRIENDLY_MATCH_TEXT" />, appuyez sur Tabulation, puis sur Entrée pour accéder à la page du contrôle de sécurité de Chrome dans les paramètres</translation>
 <translation id="791107458486222637">Rétablissement du résultat…</translation>
@@ -4194,6 +4199,7 @@
 <translation id="8134058435519644366">Recrutement et gestion du personnel</translation>
 <translation id="8135546115396015134">touche gauche</translation>
 <translation id="8137456439814903304">Énergie et services publics</translation>
+<translation id="814432316791813431">{NUM_MONTHS,plural, =1{Créé il y a 1 mois}one{Créé il y a {NUM_MONTHS} mois}other{Créé il y a {NUM_MONTHS} mois}}</translation>
 <translation id="8148608574971654810">Version PDF :</translation>
 <translation id="8149426793427495338">Votre ordinateur s'est mis en veille.</translation>
 <translation id="8150722005171944719">Le fichier disponible à l'adresse <ph name="URL" /> n'est pas lisible. Il est possible qu'il ait été supprimé ou déplacé, ou que les autorisations associées empêchent d'y accéder.</translation>
diff --git a/components/strings/components_strings_gl.xtb b/components/strings/components_strings_gl.xtb
index 0e7eff54b..4ea8778 100644
--- a/components/strings/components_strings_gl.xtb
+++ b/components/strings/components_strings_gl.xtb
@@ -1564,6 +1564,7 @@
 <translation id="3641116835972736297">Fútbol americano</translation>
 <translation id="3642196846309122856">Proba a descargar os ficheiros de novo</translation>
 <translation id="3642638418806704195">Aplicación:</translation>
+<translation id="3644768007456662469">Icona de elemento de pagamentos</translation>
 <translation id="3646643500201740985">Medir o rendemento dun anuncio</translation>
 <translation id="3647286794400715637">Todas as cadeas de URL deben conter entre 1 e 2 URL.</translation>
 <translation id="3647400963805615193">Botón para pechar o consello de Chrome; preme Introducir para pechalo, <ph name="REMOVE_BUTTON_FOCUSED_FRIENDLY_MATCH_TEXT" /></translation>
@@ -2100,11 +2101,13 @@
 <translation id="4530347922939905757">Mensaxe de texto</translation>
 <translation id="4531477351494678589">Número de tarxeta virtual:</translation>
 <translation id="4535523368173457420">Estes buscadores son populares na túa zona e móstranse en orde aleatoria</translation>
+<translation id="4539931187424170595">{NUM_YEARS,plural, =1{Creouse hai 1 ano}other{Creouse hai {NUM_YEARS} anos}}</translation>
 <translation id="4541810033354695636">realidade aumentada</translation>
 <translation id="4542971377163063093">Bandexa 6</translation>
 <translation id="4543072026714825470">Para pagar máis rápido a próxima vez, garda a tarxeta e o enderezo de facturación na túa Conta de Google</translation>
 <translation id="454441086898495030">Engadir a <ph name="SET" />?</translation>
 <translation id="4546730006268514143">Esgotouse o tempo de espera para a transferencia</translation>
+<translation id="4548974025982531828">{NUM_DAYS,plural, =1{Creouse hai 1 día}other{Creouse hai {NUM_DAYS} días}}</translation>
 <translation id="455113658016510503">A9</translation>
 <translation id="4556069465387849460">Estás usando o bloqueo de pantalla para completar contrasinais</translation>
 <translation id="4557573143631562971">Seguros do fogar</translation>
@@ -2898,6 +2901,7 @@
 <translation id="5938153366081463283">Engadir tarxeta virtual</translation>
 <translation id="5938793338444039872">Troy</translation>
 <translation id="5938866385061293322">Esta información procede de sitios web de recensións independentes como Trustpilot, ScamAdviser e Google, entre outros. Os resumos créanse con IA.</translation>
+<translation id="5943775258256265106">{NUM_MINS,plural, =1{Creouse hai 1 minuto}other{Creouse hai {NUM_MINS} minutos}}</translation>
 <translation id="5944297261866530437">Tecido (alto brillo)</translation>
 <translation id="5950901984834744590">Coitelas e máquinas de afeitar</translation>
 <translation id="5951495562196540101">Non se pode realizar a inscrición coa conta de uso particular (licenza en paquete dispoñible).</translation>
@@ -4058,6 +4062,7 @@
 <translation id="7894280532028510793">Se está ben escrito, podes <ph name="BEGIN_LINK" />probar a executar o diagnóstico de rede<ph name="END_LINK" />.</translation>
 <translation id="7901831439558593470">Sobre 7 x 9 polgadas</translation>
 <translation id="7905064834449738336">Cando usas un contrasinal, Chromium avísate se se publicou en liña. Ao facelo, os teus contrasinais e os teus nomes de usuario encríptanse, polo que ninguén pode lelos, nin sequera Google.</translation>
+<translation id="7906177144646315659">{NUM_HOURS,plural, =1{Creouse hai 1 hora}other{Creouse hai {NUM_HOURS} horas}}</translation>
 <translation id="7908648876066812348">Activando tarxeta virtual</translation>
 <translation id="7909498058929404306"><ph name="RUN_CHROME_SAFETY_CHECK_FOCUSED_FRIENDLY_MATCH_TEXT" />, preme Tabulador e, a continuación, Introducir para ir á páxina de comprobación de seguranza de Chrome na configuración</translation>
 <translation id="791107458486222637">Refacendo resultado</translation>
@@ -4192,6 +4197,7 @@
 <translation id="8134058435519644366">Contratación e persoal</translation>
 <translation id="8135546115396015134">tecla esquerda</translation>
 <translation id="8137456439814903304">Enerxía, empresas e servizos públicos</translation>
+<translation id="814432316791813431">{NUM_MONTHS,plural, =1{Creouse hai 1 mes}other{Creouse hai {NUM_MONTHS} meses}}</translation>
 <translation id="8148608574971654810">Versión do PDF:</translation>
 <translation id="8149426793427495338">O teu ordenador entrou no modo de suspensión.</translation>
 <translation id="8150722005171944719">Non se pode ler o ficheiro que se encontra en <ph name="URL" />. É posible que se eliminase, movese ou que os permisos do ficheiro estean impedindo o acceso.</translation>
diff --git a/components/strings/components_strings_gu.xtb b/components/strings/components_strings_gu.xtb
index 7a20001..0171852f 100644
--- a/components/strings/components_strings_gu.xtb
+++ b/components/strings/components_strings_gu.xtb
@@ -1564,6 +1564,7 @@
 <translation id="3641116835972736297">અમેરિકન ફૂટબૉલ</translation>
 <translation id="3642196846309122856">તમારી ફાઇલોને ફરીથી ડાઉનલોડ કરવાનો પ્રયાસ કરો</translation>
 <translation id="3642638418806704195">ઍપ્લિકેશન:</translation>
+<translation id="3644768007456662469">ચુકવણીઓ સંબંધિત આઇટમનું આઇકન</translation>
 <translation id="3646643500201740985">કોઈ જાહેરાતના પર્ફોર્મન્સની માપણી</translation>
 <translation id="3647286794400715637">પ્રત્યે URLની સ્ટ્રિંગ ઍન્ટ્રીમાં 1થી 2ની વચ્ચે URLs શામેલ હોવી આવશ્યક છે.</translation>
 <translation id="3647400963805615193">Chromeની ટિપનું બટન છોડી દો, છોડી દેવા માટે Enter દબાવો, <ph name="REMOVE_BUTTON_FOCUSED_FRIENDLY_MATCH_TEXT" /></translation>
@@ -2100,11 +2101,13 @@
 <translation id="4530347922939905757">ટેક્સ્ટ મેસેજ</translation>
 <translation id="4531477351494678589">વર્ચ્યુઅલ કાર્ડ નંબર:</translation>
 <translation id="4535523368173457420">આ શોધ એન્જિન તમારા પ્રદેશમાં લોકપ્રિય છે અને તેમને કોઈપણ ક્રમમાં બતાવવામાં આવ્યા છે</translation>
+<translation id="4539931187424170595">{NUM_YEARS,plural, =1{1 વર્ષ પહેલાં બનાવ્યું}one{{NUM_YEARS} વર્ષ પહેલાં બનાવ્યું}other{{NUM_YEARS} વર્ષ પહેલાં બનાવ્યું}}</translation>
 <translation id="4541810033354695636">ઑગ્મેન્ટેડ રિયાલિટી</translation>
 <translation id="4542971377163063093">ટ્રે 6</translation>
 <translation id="4543072026714825470">આગલી વખતે વધુ ઝડપથી ચુકવણી કરવા માટે, તમારા કાર્ડ અને બિલિંગ સરનામાને તમારા Google એકાઉન્ટમાં સાચવો</translation>
 <translation id="454441086898495030"><ph name="SET" />માં ઉમેરીએ?</translation>
 <translation id="4546730006268514143">ટ્રાન્સફર કરવાનો સમય સમાપ્ત થયો</translation>
+<translation id="4548974025982531828">{NUM_DAYS,plural, =1{1 દિવસ પહેલાં બનાવ્યું}one{{NUM_DAYS} દિવસ પહેલાં બનાવ્યું}other{{NUM_DAYS} દિવસ પહેલાં બનાવ્યું}}</translation>
 <translation id="455113658016510503">A9</translation>
 <translation id="4556069465387849460">તમે પાસવર્ડ ભરવા માટે તમારા સ્ક્રીન લૉકનો ઉપયોગ કરી રહ્યાં છો</translation>
 <translation id="4557573143631562971">ઘરનો વીમો</translation>
@@ -2898,6 +2901,7 @@
 <translation id="5938153366081463283">વર્ચ્યુઅલ કાર્ડ ઉમેરો</translation>
 <translation id="5938793338444039872">Troy</translation>
 <translation id="5938866385061293322">આ માહિતી Trustpilot, ScamAdviser, Google અને વધુ જેવી રિવ્યૂ માટેની સ્વતંત્ર વેબસાઇટ પરથી આવે છે. સારાંશો AI વડે બનાવવામાં આવે છે.</translation>
+<translation id="5943775258256265106">{NUM_MINS,plural, =1{1 મિનિટ પહેલાં બનાવ્યું}one{{NUM_MINS} મિનિટ પહેલાં બનાવ્યું}other{{NUM_MINS} મિનિટ પહેલાં બનાવ્યું}}</translation>
 <translation id="5944297261866530437">કાપડ (હાઇ-ગ્લોસ)</translation>
 <translation id="5950901984834744590">રેઝર અને શેવર</translation>
 <translation id="5951495562196540101">ઉપભોક્તા એકાઉન્ટ સાથે નોંધણી કરાવી શકાતી નથી (પૅકેજમાં લાઇસન્સ ઉપલબ્ધ છે).</translation>
@@ -4059,6 +4063,7 @@
 <translation id="7894280532028510793">જો જોડણી સાચી હોય, તો <ph name="BEGIN_LINK" />નેટવર્ક નિદાન ચલાવવાનો પ્રયાસ કરી જુઓ<ph name="END_LINK" />.</translation>
 <translation id="7901831439558593470">એન્વલપ 7 x 9 ઇંચ</translation>
 <translation id="7905064834449738336">તમે પાસવર્ડનો ઉપયોગ કરો છો, ત્યારે જો તે ઑનલાઇન પબ્લિશ કરવામાં આવ્યો હોય તો Chromium તમને ચેતવણી આપે છે. આમ કરતી વખતે તમારા પાસવર્ડ અને વપરાશકર્તા નામ એન્ક્રિપ્ટેડ હોય છે, જેથી Google સહિત, કોઈપણ તેને વાંચી શકતું નથી.</translation>
+<translation id="7906177144646315659">{NUM_HOURS,plural, =1{1 કલાક પહેલાં બનાવ્યું}one{{NUM_HOURS} કલાક પહેલાં બનાવ્યું}other{{NUM_HOURS} કલાક પહેલાં બનાવ્યું}}</translation>
 <translation id="7908648876066812348">વર્ચ્યુઅલ કાર્ડ ચાલુ કરી રહ્યાં છીએ</translation>
 <translation id="7909498058929404306"><ph name="RUN_CHROME_SAFETY_CHECK_FOCUSED_FRIENDLY_MATCH_TEXT" />, સેટિંગમાં Chromeની 'સલામતી માટે તપાસ' પેજ પર જવા માટે Tab અને પછી Enter કી દબાવો</translation>
 <translation id="791107458486222637">પરિણામ ફરીથી કરી રહ્યાં છીએ</translation>
@@ -4193,6 +4198,7 @@
 <translation id="8134058435519644366">ભરતી અને કર્મચારીની નિયુક્તિ</translation>
 <translation id="8135546115396015134">ડાબી કી</translation>
 <translation id="8137456439814903304">ઊર્જા અને યુટિલિટી</translation>
+<translation id="814432316791813431">{NUM_MONTHS,plural, =1{1 મહિના પહેલાં બનાવ્યું}one{{NUM_MONTHS} મહિના પહેલાં બનાવ્યું}other{{NUM_MONTHS} મહિના પહેલાં બનાવ્યું}}</translation>
 <translation id="8148608574971654810">PDF વર્ઝન:</translation>
 <translation id="8149426793427495338">તમારું કમ્પ્યુટર નિષ્ક્રિય થઈ ગયું હતું.</translation>
 <translation id="8150722005171944719"><ph name="URL" /> પરની ફાઇલ વાંચનયોગ્ય નથી. તે દૂર કરવામાં, ખસેડવામાં આવી હોઈ શકે છે અથવા ફાઇલ પરવાનગીઓ ઍક્સેસ કરવાથી અટકાવતી હોઈ શકે છે.</translation>
diff --git a/components/strings/components_strings_hi.xtb b/components/strings/components_strings_hi.xtb
index 5bf822c..d0f8832b 100644
--- a/components/strings/components_strings_hi.xtb
+++ b/components/strings/components_strings_hi.xtb
@@ -1564,6 +1564,7 @@
 <translation id="3641116835972736297">अमेरिकन फ़ुटबॉल</translation>
 <translation id="3642196846309122856">अपनी फ़ाइलें फिर से डाउनलोड करने की कोशिश करें</translation>
 <translation id="3642638418806704195">ऐप्लिकेशन:</translation>
+<translation id="3644768007456662469">पेमेंट आइटम का आइकॉन</translation>
 <translation id="3646643500201740985">विज्ञापन की परफ़ॉर्मेंस का आकलन करना</translation>
 <translation id="3647286794400715637">हर यूआरएल स्ट्रिंग में, यूआरएल की संख्या एक से दो के बीच होनी चाहिए.</translation>
 <translation id="3647400963805615193">Chrome से जुड़ी सलाह खारिज करने के लिए बटन. <ph name="REMOVE_BUTTON_FOCUSED_FRIENDLY_MATCH_TEXT" /> को खारिज करने के लिए Enter दबाएं</translation>
@@ -2100,11 +2101,13 @@
 <translation id="4530347922939905757">मैसेज</translation>
 <translation id="4531477351494678589">वर्चुअल कार्ड नंबर:</translation>
 <translation id="4535523368173457420">ये सर्च इंजन आपके देश/इलाके में लोकप्रिय हैं और इन्हें किसी खास क्रम में नहीं दिखाया गया है</translation>
+<translation id="4539931187424170595">{NUM_YEARS,plural, =1{1 साल पहले बनाया गया}one{{NUM_YEARS} साल पहले बनाया गया}other{{NUM_YEARS} साल पहले बनाया गया}}</translation>
 <translation id="4541810033354695636">ऑगमेंटेड रिएलिटी (एआर)</translation>
 <translation id="4542971377163063093">ट्रे 6</translation>
 <translation id="4543072026714825470">अगली बार तेज़ी से पैसे चुकाने के लिए, अपने कार्ड की जानकारी और बिलिंग पते को Google खाते में सेव करें</translation>
 <translation id="454441086898495030">क्या इसे <ph name="SET" /> में शामिल करना है?</translation>
 <translation id="4546730006268514143">ट्रांसफ़र करने का समय खत्म हो गया</translation>
+<translation id="4548974025982531828">{NUM_DAYS,plural, =1{1 दिन पहले बनाया गया}one{{NUM_DAYS} दिन पहले बनाया गया}other{{NUM_DAYS} दिन पहले बनाया गया}}</translation>
 <translation id="455113658016510503">ए9</translation>
 <translation id="4556069465387849460">आपने पासवर्ड डालने के लिए, स्क्रीन लॉक का इस्तेमाल किया है</translation>
 <translation id="4557573143631562971">घर का बीमा</translation>
@@ -2898,6 +2901,7 @@
 <translation id="5938153366081463283">वर्चुअल कार्ड जोड़ें</translation>
 <translation id="5938793338444039872">ट्रॉय</translation>
 <translation id="5938866385061293322">यह जानकारी, समीक्षा वाली स्वतंत्र वेबसाइटों से ली जाती है, जैसे कि Trustpilot, ScamAdviser, Google वगैरह. खास जानकारी, एआई की मदद से जनरेट की जाती है.</translation>
+<translation id="5943775258256265106">{NUM_MINS,plural, =1{1 मिनट पहले बनाया गया}one{{NUM_MINS} मिनट पहले बनाया गया}other{{NUM_MINS} मिनट पहले बनाया गया}}</translation>
 <translation id="5944297261866530437">फ़ैब्रिक (हाई-ग्लॉस)</translation>
 <translation id="5950901984834744590">रेज़र और शेवर</translation>
 <translation id="5951495562196540101">उपभोक्ता खाते (पैकेज किया गया लाइसेंस मौजूद है) के साथ नामांकन नहीं कर सकते.</translation>
@@ -4059,6 +4063,7 @@
 <translation id="7894280532028510793">अगर स्पेलिंग सही है, तो <ph name="BEGIN_LINK" />Network Diagnostics ऐप्लिकेशन चलाकर देखें<ph name="END_LINK" />.</translation>
 <translation id="7901831439558593470">7 x 9 इंच का लिफ़ाफ़ा</translation>
 <translation id="7905064834449738336">अगर कोई पासवर्ड इस्तेमाल किया जाता है, तो Chromium आपको चेतावनी देता है कि पासवर्ड ऑनलाइन पब्लिश हो चुका है. ऐसा करते समय, आपके पासवर्ड और उपयोगकर्ता नाम को एन्क्रिप्ट (सुरक्षित) किया जाता है, ताकि कोई उन्हें देख न सके, यहां तक कि Google भी नहीं.</translation>
+<translation id="7906177144646315659">{NUM_HOURS,plural, =1{1 घंटे पहले बनाया गया}one{{NUM_HOURS} घंटे पहले बनाया गया}other{{NUM_HOURS} घंटे पहले बनाया गया}}</translation>
 <translation id="7908648876066812348">वर्चुअल कार्ड चालू किया जा रहा है</translation>
 <translation id="7909498058929404306"><ph name="RUN_CHROME_SAFETY_CHECK_FOCUSED_FRIENDLY_MATCH_TEXT" />, सेटिंग में Chrome की सुरक्षा जांच वाले पेज पर जाने के लिए, Tab और फिर Enter बटन दबाएं</translation>
 <translation id="791107458486222637">नतीजे को फिर से जोड़ा जा रहा है</translation>
@@ -4193,6 +4198,7 @@
 <translation id="8134058435519644366">रिक्रूटमेंट और स्टाफ़िंग</translation>
 <translation id="8135546115396015134">बाईं ओर मौजूद बटन</translation>
 <translation id="8137456439814903304">ऊर्जा और बिजली, पानी जैसी सुविधाएं</translation>
+<translation id="814432316791813431">{NUM_MONTHS,plural, =1{1 महीने पहले बनाया गया}one{{NUM_MONTHS} महीने पहले बनाया गया}other{{NUM_MONTHS} महीने पहले बनाया गया}}</translation>
 <translation id="8148608574971654810">पीडीएफ़ का वर्शन:</translation>
 <translation id="8149426793427495338">आपका कंप्यूटर निष्क्रिय हो गया है.</translation>
 <translation id="8150722005171944719"><ph name="URL" /> पर मौजूद फ़ाइल पढ़ने के लायक नहीं है.  हो सकता है कि इसे हटा दिया गया हो, कहीं ले जाया गया हो, या फ़ाइल की अनुमतियां एक्सेस को रोक रही हों.</translation>
diff --git a/components/strings/components_strings_hr.xtb b/components/strings/components_strings_hr.xtb
index c4332466..0b2b0e9 100644
--- a/components/strings/components_strings_hr.xtb
+++ b/components/strings/components_strings_hr.xtb
@@ -1563,6 +1563,7 @@
 <translation id="3641116835972736297">Američki nogomet</translation>
 <translation id="3642196846309122856">Pokušajte ponovno preuzeti datoteke</translation>
 <translation id="3642638418806704195">Aplikacija:</translation>
+<translation id="3644768007456662469">Ikona stavke za plaćanje</translation>
 <translation id="3646643500201740985">Mjerenje izvedbe oglasa</translation>
 <translation id="3647286794400715637">Unos svakog niza URL-ova mora sadržavati od jednog do dva URL-a.</translation>
 <translation id="3647400963805615193">Gumb Odbaci savjet za Chrome, pritisnite Enter za odbacivanje, <ph name="REMOVE_BUTTON_FOCUSED_FRIENDLY_MATCH_TEXT" /></translation>
diff --git a/components/strings/components_strings_hu.xtb b/components/strings/components_strings_hu.xtb
index 477c2c0..0f081b9 100644
--- a/components/strings/components_strings_hu.xtb
+++ b/components/strings/components_strings_hu.xtb
@@ -937,6 +937,7 @@
 <translation id="2546283357679194313">Cookie-k és webhelyadatok</translation>
 <translation id="254947805923345898">A házirend értéke nem érvényes.</translation>
 <translation id="2549836668759467704">Építészeti tanácsadás és szerződéskötés</translation>
+<translation id="2549919488151689436"><ph name="TOPIC_1" />, <ph name="TOPIC_2" /> és továbbiak</translation>
 <translation id="255002559098805027">A(z) <ph name="HOST_NAME" /> érvénytelen választ küldött.</translation>
 <translation id="2551608178605132291">Cím: <ph name="ADDRESS" />.</translation>
 <translation id="2552246211866555379">„Hagaki” méret</translation>
@@ -4817,6 +4818,7 @@
 <translation id="9219103736887031265">Képek</translation>
 <translation id="922152298093051471">A Chrome személyre szabása</translation>
 <translation id="9222403027701923763">Általános iskolai és középiskolai oktatás</translation>
+<translation id="9222463428840654067">A kártyaszám érvénytelen</translation>
 <translation id="922849469395748170">Hűségkártyák</translation>
 <translation id="93020190163435405">Szakmai gyakorlat</translation>
 <translation id="931598121743515856">A vásárlásnak legalább <ph name="CHECKOUT_AMOUNT_MINIMUM" /> összegűnek kell lennie</translation>
diff --git a/components/strings/components_strings_hy.xtb b/components/strings/components_strings_hy.xtb
index dc311d3..1325b80 100644
--- a/components/strings/components_strings_hy.xtb
+++ b/components/strings/components_strings_hy.xtb
@@ -1570,6 +1570,7 @@
 <translation id="3641116835972736297">Ամերիկյան ֆուտբոլ</translation>
 <translation id="3642196846309122856">Փորձեք նորից ներբեռնել ֆայլերը</translation>
 <translation id="3642638418806704195">Ծրագիրը՝</translation>
+<translation id="3644768007456662469">Payments-ի տարրի պատկերակ</translation>
 <translation id="3646643500201740985">Գովազդի արդյունավետության գնահատում</translation>
 <translation id="3647286794400715637">URL-ների տողի յուրաքանչյուր գրառում պետք է պարունակի 1-ից 2 URL։</translation>
 <translation id="3647400963805615193">«Փակել Chrome-ի խորհուրդը» կոճակ․ սեղմեք Enter՝ փակելու համար, <ph name="REMOVE_BUTTON_FOCUSED_FRIENDLY_MATCH_TEXT" /></translation>
@@ -2106,11 +2107,13 @@
 <translation id="4530347922939905757">Տեքստային հաղորդագրություն</translation>
 <translation id="4531477351494678589">Վիրտուալ քարտի համարը՝</translation>
 <translation id="4535523368173457420">Այս որոնողական համակարգերը տարածված են ձեր տարածաշրջանում և ցուցադրվում են պատահական հերթականությամբ</translation>
+<translation id="4539931187424170595">{NUM_YEARS,plural, =1{Ստեղծվել է 1 տարի առաջ}one{Ստեղծվել է {NUM_YEARS} տարի առաջ}other{Ստեղծվել է {NUM_YEARS} տարի առաջ}}</translation>
 <translation id="4541810033354695636">լրացված իրականություն</translation>
 <translation id="4542971377163063093">Դարակ 6</translation>
 <translation id="4543072026714825470">Հաջորդ անգամ ավելի արագ վճարելու համար պահեք ձեր քարտն ու վճարային հասցեն Google հաշվում</translation>
 <translation id="454441086898495030">Ավելացնե՞լ «<ph name="SET" />» աղյուսակում</translation>
 <translation id="4546730006268514143">Փոխանցման ժամանակը սպառվել է</translation>
+<translation id="4548974025982531828">{NUM_DAYS,plural, =1{Ստեղծվել է 1 օր առաջ}one{Ստեղծվել է {NUM_DAYS} օր առաջ}other{Ստեղծվել է {NUM_DAYS} օր առաջ}}</translation>
 <translation id="455113658016510503">A9</translation>
 <translation id="4556069465387849460">Դուք օգտագործում եք էկրանի կողպումը գաղտնաբառերի լրացման համար</translation>
 <translation id="4557573143631562971">Անշարժ գույքի ապահովագրություն</translation>
@@ -2907,6 +2910,7 @@
 <translation id="5938153366081463283">Ավելացրեք վիրտուալ քարտ</translation>
 <translation id="5938793338444039872">Troy</translation>
 <translation id="5938866385061293322">Այս տեղեկությունները վերցվում են անկախ կայքերից, որոնք կարծիքներ են պարունակում, օրինակ՝ Trustpilot-ից, ScamAdviser-ից և Google-ից։ Ամփոփագրերը ստեղծվում են ԱԲ-ի միջոցով։</translation>
+<translation id="5943775258256265106">{NUM_MINS,plural, =1{Ստեղծվել է 1 րոպե առաջ}one{Ստեղծվել է {NUM_MINS} րոպե առաջ}other{Ստեղծվել է {NUM_MINS} րոպե առաջ}}</translation>
 <translation id="5944297261866530437">Գործվածք (գերփայլուն)</translation>
 <translation id="5950901984834744590">Ածելիներ և սափրիչներ</translation>
 <translation id="5951495562196540101">Հնարավոր չէ գրանցվել սովորական հաշվով (հասանելի է փաթեթով արտոնագիր)։</translation>
@@ -4067,6 +4071,7 @@
 <translation id="7894280532028510793">Եթե տառասխալ չկա, <ph name="BEGIN_LINK" />գործարկեք ցանցի դիագնոստիկան<ph name="END_LINK" />։</translation>
 <translation id="7901831439558593470">Envelope 7 x 9 դյմ</translation>
 <translation id="7905064834449738336">Երբ գաղտնաբառ եք օգտագործում, Chromium-ը զգուշացնում է ձեզ, եթե այն հրապարակվել է համացանցում։ Այդ ժամանակ ձեր գաղտնաբառերը և օգտանունները գաղտնագրվում են, այնպես որ ոչ ոք, այդ թվում՝ Google-ը, չի կարող կարդալ դրանք։</translation>
+<translation id="7906177144646315659">{NUM_HOURS,plural, =1{Ստեղծվել է 1 ժամ առաջ}one{Ստեղծվել է {NUM_HOURS} ժամ առաջ}other{Ստեղծվել է {NUM_HOURS} ժամ առաջ}}</translation>
 <translation id="7908648876066812348">Վիրտուալ քարտը միացվում է</translation>
 <translation id="7909498058929404306"><ph name="RUN_CHROME_SAFETY_CHECK_FOCUSED_FRIENDLY_MATCH_TEXT" />։ Կարգավորումներում Chrome-ի անվտանգության ստուգման էջ անցնելու համար սեղմեք Tab, ապա՝ Enter։</translation>
 <translation id="791107458486222637">Արդյունքը վերարկվում է</translation>
@@ -4201,6 +4206,7 @@
 <translation id="8134058435519644366">Անձնակազմի հավաքագրում և ընտրություն</translation>
 <translation id="8135546115396015134">ձախ ստեղն</translation>
 <translation id="8137456439814903304">Էներգիա մատակարարող և կոմունալ ծառայություն</translation>
+<translation id="814432316791813431">{NUM_MONTHS,plural, =1{Ստեղծվել է 1 ամիս առաջ}one{Ստեղծվել է {NUM_MONTHS} ամիս առաջ}other{Ստեղծվել է {NUM_MONTHS} ամիս առաջ}}</translation>
 <translation id="8148608574971654810">PDF-ի տարբեակը՝</translation>
 <translation id="8149426793427495338">Ձեր համակարգիչը մտել է քնի ռեժիմ:</translation>
 <translation id="8150722005171944719"><ph name="URL" />-ում գտնվող ֆայլը ընթեռնելի չէ: Հնարավոր է, այն հեռացվել է, տեղափոխվել կամ ֆայլի թույլտվությունները կանխում են մուտքը:</translation>
diff --git a/components/strings/components_strings_id.xtb b/components/strings/components_strings_id.xtb
index 982621e..c594be5 100644
--- a/components/strings/components_strings_id.xtb
+++ b/components/strings/components_strings_id.xtb
@@ -1564,6 +1564,7 @@
 <translation id="3641116835972736297">Sepak Bola Amerika</translation>
 <translation id="3642196846309122856">Coba download file lagi</translation>
 <translation id="3642638418806704195">Aplikasi:</translation>
+<translation id="3644768007456662469">Ikon Item Pembayaran</translation>
 <translation id="3646643500201740985">Mengukur seberapa baik performa iklan</translation>
 <translation id="3647286794400715637">Setiap entri string URL harus berisi antara 1 hingga 2 URL.</translation>
 <translation id="3647400963805615193">Tombol Tutup Tips Chrome, tekan Enter untuk menutup, <ph name="REMOVE_BUTTON_FOCUSED_FRIENDLY_MATCH_TEXT" /></translation>
@@ -2100,11 +2101,13 @@
 <translation id="4530347922939905757">SMS</translation>
 <translation id="4531477351494678589">Nomor kartu virtual:</translation>
 <translation id="4535523368173457420">Mesin telusur ini populer di wilayah Anda dan ditampilkan dalam urutan acak</translation>
+<translation id="4539931187424170595">{NUM_YEARS,plural, =1{Dibuat 1 tahun lalu}other{Dibuat {NUM_YEARS} tahun lalu}}</translation>
 <translation id="4541810033354695636">augmented reality</translation>
 <translation id="4542971377163063093">Baki 6</translation>
 <translation id="4543072026714825470">Agar selanjutnya dapat melakukan pembayaran lebih cepat, simpan kartu dan alamat penagihan di Akun Google Anda</translation>
 <translation id="454441086898495030">Tambahkan ke <ph name="SET" />?</translation>
 <translation id="4546730006268514143">Waktu transfer habis</translation>
+<translation id="4548974025982531828">{NUM_DAYS,plural, =1{Dibuat 1 hari lalu}other{Dibuat {NUM_DAYS} hari lalu}}</translation>
 <translation id="455113658016510503">A9</translation>
 <translation id="4556069465387849460">Anda menggunakan kunci layar untuk mengisi sandi</translation>
 <translation id="4557573143631562971">Asuransi Rumah</translation>
@@ -2898,6 +2901,7 @@
 <translation id="5938153366081463283">Tambahkan kartu virtual</translation>
 <translation id="5938793338444039872">Troy</translation>
 <translation id="5938866385061293322">Info ini berasal dari situs ulasan independen seperti Trustpilot, ScamAdviser, Google, dan lainnya. Ringkasan dibuat dengan AI.</translation>
+<translation id="5943775258256265106">{NUM_MINS,plural, =1{Dibuat 1 menit lalu}other{Dibuat {NUM_MINS} menit lalu}}</translation>
 <translation id="5944297261866530437">Kain (Kilap Tinggi)</translation>
 <translation id="5950901984834744590">Pisau Cukur &amp; Alat Cukur</translation>
 <translation id="5951495562196540101">Tidak dapat mendaftar dengan akun konsumen (tersedia paket lisensi).</translation>
@@ -4057,6 +4061,7 @@
 <translation id="7894280532028510793">Jika ejaan sudah benar, <ph name="BEGIN_LINK" />coba jalankan Diagnostik Jaringan<ph name="END_LINK" />.</translation>
 <translation id="7901831439558593470">Envelope 7 x 9 inci</translation>
 <translation id="7905064834449738336">Jika Anda menggunakan sandi, Chromium akan memperingatkan Anda jika sandi telah dipublikasikan secara online. Saat pemeriksaan dilakukan, sandi dan nama pengguna Anda dienkripsi, sehingga tidak dapat dibaca oleh siapa pun, termasuk Google.</translation>
+<translation id="7906177144646315659">{NUM_HOURS,plural, =1{Dibuat 1 jam lalu}other{Dibuat {NUM_HOURS} jam lalu}}</translation>
 <translation id="7908648876066812348">Mengaktifkan kartu virtual</translation>
 <translation id="7909498058929404306"><ph name="RUN_CHROME_SAFETY_CHECK_FOCUSED_FRIENDLY_MATCH_TEXT" />, tekan Tab lalu Enter untuk membuka halaman pemeriksaan keamanan Chrome di setelan</translation>
 <translation id="791107458486222637">Ulangi hasil</translation>
@@ -4191,6 +4196,7 @@
 <translation id="8134058435519644366">Perekrutan &amp; Ketenagakerjaan</translation>
 <translation id="8135546115396015134">tombol kiri</translation>
 <translation id="8137456439814903304">Energi, Gas &amp; Air</translation>
+<translation id="814432316791813431">{NUM_MONTHS,plural, =1{Dibuat 1 bulan lalu}other{Dibuat {NUM_MONTHS} bulan lalu}}</translation>
 <translation id="8148608574971654810">Versi PDF:</translation>
 <translation id="8149426793427495338">Komputer Anda sedang dalam mode tidur.</translation>
 <translation id="8150722005171944719">File pada <ph name="URL" /> tidak dapat dibaca.  File mungkin telah dihapus, dipindahkan, atau izin file mungkin mencegah akses.</translation>
diff --git a/components/strings/components_strings_is.xtb b/components/strings/components_strings_is.xtb
index 84b0fd7..c3aaa19 100644
--- a/components/strings/components_strings_is.xtb
+++ b/components/strings/components_strings_is.xtb
@@ -1564,6 +1564,7 @@
 <translation id="3641116835972736297">Amerískur fótbolti</translation>
 <translation id="3642196846309122856">Prófaðu að sækja skrárnar þínar aftur</translation>
 <translation id="3642638418806704195">Forrit:</translation>
+<translation id="3644768007456662469">Tákn fyrir greiðsluatriði</translation>
 <translation id="3646643500201740985">Mæla árangur auglýsingar</translation>
 <translation id="3647286794400715637">Hver innsleginn vefslóðarstrengur verður að innihalda 1 til 2 vefslóðir</translation>
 <translation id="3647400963805615193">Hnappur til að hunsa ábendingu frá Chrome, ýttu á Enter til að hunsa, <ph name="REMOVE_BUTTON_FOCUSED_FRIENDLY_MATCH_TEXT" /></translation>
@@ -2100,11 +2101,13 @@
 <translation id="4530347922939905757">SMS-skilaboð</translation>
 <translation id="4531477351494678589">Númer sýndarkorts:</translation>
 <translation id="4535523368173457420">Þessar leitarvélar eru vinsælar á þínu svæði og birtast í handahófskenndri röð</translation>
+<translation id="4539931187424170595">{NUM_YEARS,plural, =1{Búinn til fyrir 1 ári}one{Búinn til fyrir {NUM_YEARS} ári}other{Búinn til fyrir {NUM_YEARS} árum}}</translation>
 <translation id="4541810033354695636">aukinn veruleika</translation>
 <translation id="4542971377163063093">Bakki 6</translation>
 <translation id="4543072026714825470">Til að greiða hraðar næst skaltu vista kortið og heimilisfang greiðanda á Google reikningnum</translation>
 <translation id="454441086898495030">Bæta við <ph name="SET" />?</translation>
 <translation id="4546730006268514143">Flutningur rann út á tíma</translation>
+<translation id="4548974025982531828">{NUM_DAYS,plural, =1{Búinn til fyrir 1 degi}one{Búinn til fyrir {NUM_DAYS} degi}other{Búinn til fyrir {NUM_DAYS} dögum}}</translation>
 <translation id="455113658016510503">A9</translation>
 <translation id="4556069465387849460">Þú ert að nota skjálásinn til að fylla út aðgangsorð</translation>
 <translation id="4557573143631562971">Heimilistryggingar</translation>
@@ -2898,6 +2901,7 @@
 <translation id="5938153366081463283">Bæta við sýndarkorti</translation>
 <translation id="5938793338444039872">Troy</translation>
 <translation id="5938866385061293322">Þessar upplýsingar koma frá sjálfstæðum umsagnavefsvæðum eins og Trustpilot, ScamAdviser, Google og fleiri. Samantektir eru búnar til með gervigreind.</translation>
+<translation id="5943775258256265106">{NUM_MINS,plural, =1{Búinn til fyrir 1 mínútu}one{Búinn til fyrir {NUM_MINS} mínútu}other{Búinn til fyrir {NUM_MINS} mínútum}}</translation>
 <translation id="5944297261866530437">Vefnaður (háglans)</translation>
 <translation id="5950901984834744590">Rakvélar</translation>
 <translation id="5951495562196540101">Þú getur ekki skráð þig með almennum reikningi (pakkaleyfi í boði).</translation>
@@ -4058,6 +4062,7 @@
 <translation id="7894280532028510793">Ef stafsetningin er rétt skaltu <ph name="BEGIN_LINK" />prófa að keyra bilanaleit á netkerfi<ph name="END_LINK" />.</translation>
 <translation id="7901831439558593470">Umslag: 18 x 23 cm</translation>
 <translation id="7905064834449738336">Þegar þú notar aðgangsorð varar Chromium þig við ef það hefur verið birt á netinu. Meðan á þessu stendur eru aðgangsorðin þín og notandanöfnin dulkóðuð svo enginn geti lesið þau, þ.m.t. Google.</translation>
+<translation id="7906177144646315659">{NUM_HOURS,plural, =1{Búinn til fyrir 1 klukkustund}one{Búinn til fyrir {NUM_HOURS} klukkustund}other{Búinn til fyrir {NUM_HOURS} klukkustundum}}</translation>
 <translation id="7908648876066812348">Kveiki á sýndarkorti</translation>
 <translation id="7909498058929404306"><ph name="RUN_CHROME_SAFETY_CHECK_FOCUSED_FRIENDLY_MATCH_TEXT" />, ýttu á dálkalykilinn og svo á Enter til að opna síðu öryggisathugunar Chrome í stillingunum</translation>
 <translation id="791107458486222637">Endurtekur niðurstöðu</translation>
@@ -4192,6 +4197,7 @@
 <translation id="8134058435519644366">Ráðningar og starfsmannamál</translation>
 <translation id="8135546115396015134">vinstri lykill</translation>
 <translation id="8137456439814903304">Orka og orkufyrirtæki</translation>
+<translation id="814432316791813431">{NUM_MONTHS,plural, =1{Búinn til fyrir 1 mánuði}one{Búinn til fyrir {NUM_MONTHS} mánuði}other{Búinn til fyrir {NUM_MONTHS} mánuðum}}</translation>
 <translation id="8148608574971654810">PDF-útgáfa:</translation>
 <translation id="8149426793427495338">Tölvan þín fór að sofa.</translation>
 <translation id="8150722005171944719">Skráin á <ph name="URL" /> er ekki læsileg. Hún kann að hafa verið fjarlægð, færð eða skrárheimildir gætu hindrað aðgang að henni.</translation>
diff --git a/components/strings/components_strings_iw.xtb b/components/strings/components_strings_iw.xtb
index b5eef2e..0153e2a 100644
--- a/components/strings/components_strings_iw.xtb
+++ b/components/strings/components_strings_iw.xtb
@@ -1564,6 +1564,7 @@
 <translation id="3641116835972736297">פוטבול</translation>
 <translation id="3642196846309122856">רוצה לנסות שוב להוריד את הקבצים?</translation>
 <translation id="3642638418806704195">אפליקציה:</translation>
+<translation id="3644768007456662469">סמל של פריט תשלומים</translation>
 <translation id="3646643500201740985">מדידת הביצועים של מודעה מסוימת</translation>
 <translation id="3647286794400715637">‏כל רשומת מחרוזת של כתובות URL חייבת להכיל כתובת URL אחת או שתיים.</translation>
 <translation id="3647400963805615193">‏לסגירת הכפתור של הטיפ ל-Chrome, לוחצים על Enter, <ph name="REMOVE_BUTTON_FOCUSED_FRIENDLY_MATCH_TEXT" /></translation>
diff --git a/components/strings/components_strings_ja.xtb b/components/strings/components_strings_ja.xtb
index 9122753..58fea506 100644
--- a/components/strings/components_strings_ja.xtb
+++ b/components/strings/components_strings_ja.xtb
@@ -937,6 +937,7 @@
 <translation id="2546283357679194313">Cookie とサイトデータ</translation>
 <translation id="254947805923345898">ポリシーの値が無効です。</translation>
 <translation id="2549836668759467704">建築コンサルティング、請負</translation>
+<translation id="2549919488151689436"><ph name="TOPIC_1" />、<ph name="TOPIC_2" />、その他</translation>
 <translation id="255002559098805027"><ph name="HOST_NAME" /> から無効な応答が送信されました。</translation>
 <translation id="2551608178605132291">住所: <ph name="ADDRESS" />。</translation>
 <translation id="2552246211866555379">はがき</translation>
@@ -3327,7 +3328,7 @@
 <translation id="6649510485211003056">195x270 mm</translation>
 <translation id="6651270836885078973">管理者:</translation>
 <translation id="6652101503459149953">Windows Hello を使用</translation>
-<translation id="6654224358955673568">フォーマルに</translation>
+<translation id="6654224358955673568">よりフォーマルに</translation>
 <translation id="6654244995031366386">ガラス(テクスチャ)</translation>
 <translation id="6657585470893396449">パスワード</translation>
 <translation id="6659246032834639189">この価格は低額です</translation>
@@ -4820,6 +4821,7 @@
 <translation id="9219103736887031265">画像</translation>
 <translation id="922152298093051471">Chrome をカスタマイズ</translation>
 <translation id="9222403027701923763">小、中、高等学校</translation>
+<translation id="9222463428840654067">カード番号が無効です</translation>
 <translation id="922849469395748170">ポイントカード</translation>
 <translation id="93020190163435405">インターンシップ</translation>
 <translation id="931598121743515856"><ph name="CHECKOUT_AMOUNT_MINIMUM" /> を超える購入で使用できます</translation>
diff --git a/components/strings/components_strings_ka.xtb b/components/strings/components_strings_ka.xtb
index cd94aeca..39a3a4e9 100644
--- a/components/strings/components_strings_ka.xtb
+++ b/components/strings/components_strings_ka.xtb
@@ -937,6 +937,7 @@
 <translation id="2546283357679194313">ქუქი-ფაილები და საიტის მონაცემები</translation>
 <translation id="254947805923345898">წესების მნიშვნელობა არასწორია.</translation>
 <translation id="2549836668759467704">სამშენებლო საკითხებში კონსულტაცია და ნარდობა</translation>
+<translation id="2549919488151689436"><ph name="TOPIC_1" />, <ph name="TOPIC_2" /> და სხვა</translation>
 <translation id="255002559098805027"><ph name="HOST_NAME" />-მა არასწორი პასუხი გამოაგზავნა.</translation>
 <translation id="2551608178605132291">მისამართი: <ph name="ADDRESS" />.</translation>
 <translation id="2552246211866555379">Hagaki</translation>
@@ -4818,6 +4819,7 @@
 <translation id="9219103736887031265">გამოსახულებები</translation>
 <translation id="922152298093051471">Chrome-ის მორგება</translation>
 <translation id="9222403027701923763">დაწყებითი და საშუალო განათლება (K-12)</translation>
+<translation id="9222463428840654067">ბარათის ნომერი არასწორია</translation>
 <translation id="922849469395748170">ერთგული კლიენტის ბარათები</translation>
 <translation id="93020190163435405">სტაჟირება</translation>
 <translation id="931598121743515856">შესყიდვის თანხის ოდენობა <ph name="CHECKOUT_AMOUNT_MINIMUM" />-ზე მეტი უნდა იყოს</translation>
diff --git a/components/strings/components_strings_kk.xtb b/components/strings/components_strings_kk.xtb
index 0cab91e3..0e9bc07 100644
--- a/components/strings/components_strings_kk.xtb
+++ b/components/strings/components_strings_kk.xtb
@@ -1563,6 +1563,7 @@
 <translation id="3641116835972736297">Америкалық футбол</translation>
 <translation id="3642196846309122856">Файлдарды қайта жүктеп алып көріңіз</translation>
 <translation id="3642638418806704195">Қолданба:</translation>
+<translation id="3644768007456662469">Төлемдер элементінің белгішесі</translation>
 <translation id="3646643500201740985">Жарнама өнімділігін өлшеу</translation>
 <translation id="3647286794400715637">Әрбір URL жолы жазбасында 1–2 URL болуы керек.</translation>
 <translation id="3647400963805615193">Chrome кеңесін жабу түймесі. Жабу үшін Enter пернесін басыңыз. <ph name="REMOVE_BUTTON_FOCUSED_FRIENDLY_MATCH_TEXT" /></translation>
@@ -2099,11 +2100,13 @@
 <translation id="4530347922939905757">Мәтіндік хабар</translation>
 <translation id="4531477351494678589">Виртуалдық карта нөмірі:</translation>
 <translation id="4535523368173457420">Бұл іздеу жүйелері аймағыңызда танымал және олар кездейсоқ ретпен көрсетілген.</translation>
+<translation id="4539931187424170595">{NUM_YEARS,plural, =1{1 жыл бұрын жасалды.}other{{NUM_YEARS} жыл бұрын жасалды.}}</translation>
 <translation id="4541810033354695636">толықтырылған шындық</translation>
 <translation id="4542971377163063093">6-науа</translation>
 <translation id="4543072026714825470">Келесіде жылдамырақ төлеу үшін картаңызды және төлем мекенжайын Google аккаунтыңызға сақтап қойыңыз.</translation>
 <translation id="454441086898495030"><ph name="SET" /> жинағына қосу қажет пе?</translation>
 <translation id="4546730006268514143">Тасымалдау уақыты өтіп кетті</translation>
+<translation id="4548974025982531828">{NUM_DAYS,plural, =1{1 күн бұрын жасалды.}other{{NUM_DAYS} күн бұрын жасалды.}}</translation>
 <translation id="455113658016510503">A9</translation>
 <translation id="4556069465387849460">Құпия сөздерді толтыру үшін экран құлпын пайдаланып жатырсыз</translation>
 <translation id="4557573143631562971">Үй сақтандыру</translation>
@@ -2897,6 +2900,7 @@
 <translation id="5938153366081463283">Виртуалдық карта қосыңыз.</translation>
 <translation id="5938793338444039872">Troy</translation>
 <translation id="5938866385061293322">Бұл ақпарат Trustpilot, ScamAdviser, Google және т.б. сияқты тәуелсіз пікірлер веб-сайттарынан алынған. Қорытындылар AI арқылы жасалған.</translation>
+<translation id="5943775258256265106">{NUM_MINS,plural, =1{1 минут бұрын жасалды.}other{{NUM_MINS} минут бұрын жасалды.}}</translation>
 <translation id="5944297261866530437">Мата (жылтырлығы жоғары)</translation>
 <translation id="5950901984834744590">Қырыну құралдары</translation>
 <translation id="5951495562196540101">Тұтынушының аккаунтымен тіркеу мүмкін емес (лицензия пакеті бар).</translation>
@@ -4057,6 +4061,7 @@
 <translation id="7894280532028510793">Дұрыс жазылған болса, <ph name="BEGIN_LINK" />Network Diagnostics құралын іске қосып көріңіз<ph name="END_LINK" />.</translation>
 <translation id="7901831439558593470">178 x 229 мм хатқалта</translation>
 <translation id="7905064834449738336">Құпия сөзді пайдаланған кезде, ол онлайн жарияланған болса, Chromium сізге ескертеді. Тексеру кезінде құпия сөздер мен пайдаланушылар аты шифрланады. Сондықтан оларды ешкім, тіпті Google да оқи алмайды.</translation>
+<translation id="7906177144646315659">{NUM_HOURS,plural, =1{1 сағат бұрын жасалды.}other{{NUM_HOURS} сағат бұрын жасалды.}}</translation>
 <translation id="7908648876066812348">Виртуалдық карта қосылып жатыр</translation>
 <translation id="7909498058929404306"><ph name="RUN_CHROME_SAFETY_CHECK_FOCUSED_FRIENDLY_MATCH_TEXT" />, параметрлердегі Chrome қауіпсіздік тексерісі бетіне өту үшін Tab, содан кейін Enter пернесін басыңыз.</translation>
 <translation id="791107458486222637">Нәтиже қайталанып жатыр.</translation>
@@ -4191,6 +4196,7 @@
 <translation id="8134058435519644366">Жұмысқа қабылдау және жұмысқа тұру</translation>
 <translation id="8135546115396015134">сол жақ перне</translation>
 <translation id="8137456439814903304">Қуат және коммуналдық қызметтер</translation>
+<translation id="814432316791813431">{NUM_MONTHS,plural, =1{1 ай бұрын жасалды.}other{{NUM_MONTHS} ай бұрын жасалды.}}</translation>
 <translation id="8148608574971654810">PDF нұсқасы:</translation>
 <translation id="8149426793427495338">Компьютеріңіз ұйқы күйіне өтті.</translation>
 <translation id="8150722005171944719"><ph name="URL" /> сілтемесіндегі файл оқылмайды. Ол жойылған, көшірілген болуы немесе файл рұқсаттары кедергі болуы мүмкін.</translation>
diff --git a/components/strings/components_strings_km.xtb b/components/strings/components_strings_km.xtb
index 49197eb..1d9cd0d2 100644
--- a/components/strings/components_strings_km.xtb
+++ b/components/strings/components_strings_km.xtb
@@ -940,6 +940,7 @@
 <translation id="2546283357679194313">ខុកឃី និងទិន្នន័យគេហទំព័រ</translation>
 <translation id="254947805923345898">តម្លៃ​របស់គោលការណ៍​គ្មានសុពលភាពទេ។</translation>
 <translation id="2549836668759467704">ការពិគ្រោះ និង​ការម៉ៅការ​សំណង់</translation>
+<translation id="2549919488151689436"><ph name="TOPIC_1" />, <ph name="TOPIC_2" /> និង​ច្រើនទៀត</translation>
 <translation id="255002559098805027"><ph name="HOST_NAME" /> បានផ្ញើការឆ្លើយតបដែលមិនត្រឹមត្រូវ</translation>
 <translation id="2551608178605132291">អាសយដ្ឋាន៖ <ph name="ADDRESS" />។</translation>
 <translation id="2552246211866555379">Hagaki</translation>
@@ -4823,6 +4824,7 @@
 <translation id="9219103736887031265">រូបភាព</translation>
 <translation id="922152298093051471">ប្ដូរ Chrome តាមបំណង</translation>
 <translation id="9222403027701923763">បឋម​សិក្សា និង​មធ្យម​សិក្សា (មត្តេយ្យដល់ថ្នាក់ទី 12)</translation>
+<translation id="9222463428840654067">លេខកាត​មិន​ត្រឹមត្រូវទេ</translation>
 <translation id="922849469395748170">កាតសមាជិក</translation>
 <translation id="93020190163435405">ការងារហាត់ការ</translation>
 <translation id="931598121743515856">ការទិញ​ត្រូវតែ​លើស <ph name="CHECKOUT_AMOUNT_MINIMUM" /></translation>
diff --git a/components/strings/components_strings_kn.xtb b/components/strings/components_strings_kn.xtb
index e7aa802..e56f804 100644
--- a/components/strings/components_strings_kn.xtb
+++ b/components/strings/components_strings_kn.xtb
@@ -1561,6 +1561,7 @@
 <translation id="3641116835972736297">ಅಮೆರಿಕನ್ ಫುಟ್ಬಾಲ್</translation>
 <translation id="3642196846309122856">ನಿಮ್ಮ ಫೈಲ್‌ಗಳನ್ನು ಮತ್ತೊಮ್ಮೆ ಡೌನ್‌ಲೋಡ್ ಮಾಡಲು ಪ್ರಯತ್ನಿಸಿ</translation>
 <translation id="3642638418806704195">ಅಪ್ಲಿಕೇಶನ್:</translation>
+<translation id="3644768007456662469">ಪಾವತಿಗಳ ಐಟಂ ಐಕಾನ್</translation>
 <translation id="3646643500201740985">ಜಾಹೀರಾತು ಎಷ್ಟು ಉತ್ತಮವಾಗಿ ಕಾರ್ಯನಿರ್ವಹಿಸುತ್ತದೆ ಎಂಬುದನ್ನು ಮಾಪನ ಮಾಡುವುದು</translation>
 <translation id="3647286794400715637">ಪ್ರತಿ URL ಗಳ ಸ್ಟ್ರಿಂಗ್ ನಮೂದು 1 ರಿಂದ 2 URL ಗಳ ನಡುವೆ ಇರಬೇಕು.</translation>
 <translation id="3647400963805615193">Chrome ಸಲಹೆಯನ್ನು ವಜಾಗೊಳಿಸಿ ಬಟನ್, ವಜಾಗೊಳಿಸಲು Enter ಒತ್ತಿರಿ, <ph name="REMOVE_BUTTON_FOCUSED_FRIENDLY_MATCH_TEXT" /></translation>
diff --git a/components/strings/components_strings_ko.xtb b/components/strings/components_strings_ko.xtb
index 3e43c6a..d4c530c 100644
--- a/components/strings/components_strings_ko.xtb
+++ b/components/strings/components_strings_ko.xtb
@@ -1564,6 +1564,7 @@
 <translation id="3641116835972736297">미식 축구</translation>
 <translation id="3642196846309122856">파일을 다시 다운로드해 보세요.</translation>
 <translation id="3642638418806704195">애플리케이션:</translation>
+<translation id="3644768007456662469">결제 항목 아이콘</translation>
 <translation id="3646643500201740985">광고 실적 측정</translation>
 <translation id="3647286794400715637">모든 URL 문자열 항목에는 1~2개의 URL이 포함되어야 합니다.</translation>
 <translation id="3647400963805615193">Chrome 도움말 닫기 버튼, Enter 키를 눌러 닫기, <ph name="REMOVE_BUTTON_FOCUSED_FRIENDLY_MATCH_TEXT" /></translation>
@@ -2100,11 +2101,13 @@
 <translation id="4530347922939905757">SMS</translation>
 <translation id="4531477351494678589">가상 카드 번호:</translation>
 <translation id="4535523368173457420">거주 지역에서 인기 있는 검색엔진이 임의의 순서로 표시됩니다.</translation>
+<translation id="4539931187424170595">{NUM_YEARS,plural, =1{1년 전 생성됨}other{{NUM_YEARS}년 전 생성됨}}</translation>
 <translation id="4541810033354695636">증강 현실</translation>
 <translation id="4542971377163063093">트레이 6</translation>
 <translation id="4543072026714825470">다음번에 더 빠르게 결제할 수 있도록 Google 계정에 카드 및 청구서 수신 주소를 저장하세요.</translation>
 <translation id="454441086898495030"><ph name="SET" />에 추가하시겠습니까?</translation>
 <translation id="4546730006268514143">전송 시간 초과</translation>
+<translation id="4548974025982531828">{NUM_DAYS,plural, =1{1일 전 생성됨}other{{NUM_DAYS}일 전 생성됨}}</translation>
 <translation id="455113658016510503">A9</translation>
 <translation id="4556069465387849460">비밀번호 입력 시 화면 잠금 사용 중</translation>
 <translation id="4557573143631562971">주택 보험</translation>
@@ -2898,6 +2901,7 @@
 <translation id="5938153366081463283">가상 카드 추가</translation>
 <translation id="5938793338444039872">Troy</translation>
 <translation id="5938866385061293322">이 정보는 Trustpilot, ScamAdviser, Google 등의 독립적인 리뷰 웹사이트에서 제공합니다. 요약은 AI를 사용해 생성됩니다.</translation>
+<translation id="5943775258256265106">{NUM_MINS,plural, =1{1분 전 생성됨}other{{NUM_MINS}분 전 생성됨}}</translation>
 <translation id="5944297261866530437">패브릭(고광택)</translation>
 <translation id="5950901984834744590">면도기</translation>
 <translation id="5951495562196540101">일반 계정으로 등록할 수 없습니다(패키지 라이선스 사용 가능).</translation>
@@ -4058,6 +4062,7 @@
 <translation id="7894280532028510793">철자가 올바르다면 <ph name="BEGIN_LINK" />네트워크 진단을 실행<ph name="END_LINK" />해 보세요.</translation>
 <translation id="7901831439558593470">봉투 7 x 9 in</translation>
 <translation id="7905064834449738336">비밀번호를 사용하면 온라인에 비밀번호가 게시된 경우 Chromium에서 경고를 표시합니다. 이렇게 하면 비밀번호 및 사용자 이름이 암호화되어 Google을 포함해 누구도 읽을 수 없습니다.</translation>
+<translation id="7906177144646315659">{NUM_HOURS,plural, =1{1시간 전 생성됨}other{{NUM_HOURS}시간 전 생성됨}}</translation>
 <translation id="7908648876066812348">가상 카드 사용 설정 중</translation>
 <translation id="7909498058929404306"><ph name="RUN_CHROME_SAFETY_CHECK_FOCUSED_FRIENDLY_MATCH_TEXT" />, Tab과 Enter를 차례로 눌러 설정의 Chrome 안전 확인 페이지로 이동</translation>
 <translation id="791107458486222637">결과 재실행</translation>
@@ -4192,6 +4197,7 @@
 <translation id="8134058435519644366">신규모집 및 채용</translation>
 <translation id="8135546115396015134">왼쪽 키</translation>
 <translation id="8137456439814903304">에너지 및 공공사업</translation>
+<translation id="814432316791813431">{NUM_MONTHS,plural, =1{1개월 전 생성됨}other{{NUM_MONTHS}개월 전 생성됨}}</translation>
 <translation id="8148608574971654810">PDF 버전:</translation>
 <translation id="8149426793427495338">컴퓨터가 절전 모드 상태입니다.</translation>
 <translation id="8150722005171944719"><ph name="URL" />의 파일을 읽을 수 없습니다. 삭제 또는 이동되었거나 파일 사용 권한이 액세스를 차단할 수도 있습니다.</translation>
diff --git a/components/strings/components_strings_ky.xtb b/components/strings/components_strings_ky.xtb
index 4b3c3cd..1b5e060 100644
--- a/components/strings/components_strings_ky.xtb
+++ b/components/strings/components_strings_ky.xtb
@@ -1563,6 +1563,7 @@
 <translation id="3641116835972736297">Америка футболу</translation>
 <translation id="3642196846309122856">Файлдарыңызды жүктөп алууга кайра аракет кылып көрүңүз</translation>
 <translation id="3642638418806704195">Колдонмо:</translation>
+<translation id="3644768007456662469">Төлөмдөргө байланыштуу объекттин сүрөтчөсү</translation>
 <translation id="3646643500201740985">Жарнамалардын майнаптуулугун талдоо</translation>
 <translation id="3647286794400715637">Ар бир URL сабында 1–2 URL дареги болушу керек.</translation>
 <translation id="3647400963805615193">Chrome кеңешин жабуу баскычы, жабуу үчүн Enter баскычын басыңыз, <ph name="REMOVE_BUTTON_FOCUSED_FRIENDLY_MATCH_TEXT" /></translation>
@@ -2099,11 +2100,13 @@
 <translation id="4530347922939905757">SMS билдирүү</translation>
 <translation id="4531477351494678589">Виртуалдык картанын номери:</translation>
 <translation id="4535523368173457420">Бул издөө каражаттары сиз жашаган аймакта көп колдонулат. Алар башаламан иретте көрсөтүлдү</translation>
+<translation id="4539931187424170595">{NUM_YEARS,plural, =1{1 жыл мурун түзүлдү}other{{NUM_YEARS} жыл мурун түзүлдү}}</translation>
 <translation id="4541810033354695636">кошумчаланган чындык</translation>
 <translation id="4542971377163063093">6-түпкүч</translation>
 <translation id="4543072026714825470">Кийинки жолу тезирээк төлөө үчүн картаңыз менен эсептешүү дарегин Google аккаунтуңузга сактап коюңуз</translation>
 <translation id="454441086898495030"><ph name="SET" /> топтомуна кошулсунбу?</translation>
 <translation id="4546730006268514143">Өткөрүү убакыты аяктады</translation>
+<translation id="4548974025982531828">{NUM_DAYS,plural, =1{1 күн мурун түзүлдү}other{{NUM_DAYS} күн мурун түзүлдү}}</translation>
 <translation id="455113658016510503">A9</translation>
 <translation id="4556069465387849460">Сырсөздөрдү толтуруу үчүн экрандын кулпусун колдонуп жатасыз</translation>
 <translation id="4557573143631562971">Үйдү камсыздандыруу</translation>
@@ -2897,6 +2900,7 @@
 <translation id="5938153366081463283">Виртуалдык картаны кошуу</translation>
 <translation id="5938793338444039872">Troy</translation>
 <translation id="5938866385061293322">Бул маалымат Trustpilot, ScamAdviser, Google жана башка көз карандысыз баалоочу сайттардан алынды. Корутундулар ЖИ менен түзүлдү.</translation>
+<translation id="5943775258256265106">{NUM_MINS,plural, =1{1 мүнөт мурун түзүлдү}other{{NUM_MINS} мүнөт мурун түзүлдү}}</translation>
 <translation id="5944297261866530437">Кездеме (өтө жылтырак)</translation>
 <translation id="5950901984834744590">Устаралар</translation>
 <translation id="5951495562196540101">Аккаунт түзмөктүн уруксаттамасына дал келбегендиктен аны менен катталууга болбойт.</translation>
@@ -4057,6 +4061,7 @@
 <translation id="7894280532028510793">Эгер туура жазылса, <ph name="BEGIN_LINK" />Тармактагы мүчүлүштүктөрдү аныктоону<ph name="END_LINK" /> иштетип көрүңүз.</translation>
 <translation id="7901831439558593470">Конверт 7 x 9 дюйм</translation>
 <translation id="7905064834449738336">Колдонулган сырсөздү кимдир бирөө билип алган болсо, Chromium ал тууралуу эскертет. Мындай учурда сырсөздөрүңүз менен колдонуучу аттарыңыз шифрленет. Аларды эч ким, анын ичинде Google да окуй албайт.</translation>
+<translation id="7906177144646315659">{NUM_HOURS,plural, =1{1 саат мурун түзүлдү}other{{NUM_HOURS} саат мурун түзүлдү}}</translation>
 <translation id="7908648876066812348">Виртуалдык карта күйгүзүлүүдө</translation>
 <translation id="7909498058929404306"><ph name="RUN_CHROME_SAFETY_CHECK_FOCUSED_FRIENDLY_MATCH_TEXT" />, Жөндөөлөрдөгү Chrome коопсуздук текшерүү барагына өтүү үчүн Tab, анан Enter баскычын басыңыз</translation>
 <translation id="791107458486222637">Кайталоо</translation>
@@ -4191,6 +4196,7 @@
 <translation id="8134058435519644366">Жумушка алуу жана кадрлар менен камсыз кылуу</translation>
 <translation id="8135546115396015134">сол баскычты</translation>
 <translation id="8137456439814903304">Энергетика жана коммуналдык кызматтар</translation>
+<translation id="814432316791813431">{NUM_MONTHS,plural, =1{1 ай мурун түзүлдү}other{{NUM_MONTHS} ай мурун түзүлдү}}</translation>
 <translation id="8148608574971654810">PDF версиясы:</translation>
 <translation id="8149426793427495338">Компьютериңиз уктап калды.</translation>
 <translation id="8150722005171944719"><ph name="URL" /> дарегиндеги файл окулбайт. Ал чыгарылып салынган, жылдырылган же файл уруксаттарынан улам аны окуу мүмкүн эмес.</translation>
diff --git a/components/strings/components_strings_lo.xtb b/components/strings/components_strings_lo.xtb
index 6a69d9d7..2c1abcb8 100644
--- a/components/strings/components_strings_lo.xtb
+++ b/components/strings/components_strings_lo.xtb
@@ -1564,6 +1564,7 @@
 <translation id="3641116835972736297">ອາເມລິກັນຟຸດບອນ</translation>
 <translation id="3642196846309122856">ລອງດາວໂຫຼດໄຟລ໌ຂອງທ່ານອີກຄັ້ງ</translation>
 <translation id="3642638418806704195">ແອັບພລິເຄຊັນ:</translation>
+<translation id="3644768007456662469">ໄອຄອນລາຍການທີ່ກ່ຽວຂ້ອງກັບການຈ່າຍເງິນ</translation>
 <translation id="3646643500201740985">ການວັດແທກປະສິດທິພາບຂອງໂຄສະນາ</translation>
 <translation id="3647286794400715637">ສະຕຣິງ URL ແຕ່ລະອັນຕ້ອງມີ URL ຈຳນວນ 1 ຫາ 2 ອັນ.</translation>
 <translation id="3647400963805615193">ປຸ່ມປິດເຄັດລັບ Chrome, ກົດ Enter ເພື່ອປິດ, <ph name="REMOVE_BUTTON_FOCUSED_FRIENDLY_MATCH_TEXT" /></translation>
@@ -2100,11 +2101,13 @@
 <translation id="4530347922939905757">ຂໍ້ຄວາມ SMS</translation>
 <translation id="4531477351494678589">ໝາຍເລກບັດສະເໝືອນ:</translation>
 <translation id="4535523368173457420">ໂປຣແກຣມຊອກຫາເຫຼົ່ານີ້ໄດ້ຮັບຄວາມນິຍົມໃນພາກພື້ນຂອງທ່ານ ແລະ ສະແດງແບບສຸ່ມລຳດັບ</translation>
+<translation id="4539931187424170595">{NUM_YEARS,plural, =1{ສ້າງເມື່ອ 1 ປີກ່ອນ}other{ສ້າງເມື່ອ {NUM_YEARS} ປີກ່ອນ}}</translation>
 <translation id="4541810033354695636">ອາກິວເມັນ ຣີອາລິຕີ</translation>
 <translation id="4542971377163063093">ຖາດ 6</translation>
 <translation id="4543072026714825470">ເພື່ອຈ່າຍໄວຂຶ້ນໃນເທື່ອຕໍ່ໄປ, ໃຫ້ບັນທຶກບັດ ແລະ ທີ່ຢູ່ໃບບິນຂອງທ່ານໄວ້ໃນບັນຊີ Google.</translation>
 <translation id="454441086898495030">ເພີ່ມໃສ່ໃນ <ph name="SET" /> ບໍ?</translation>
 <translation id="4546730006268514143">ການໂອນຍ້າຍໝົດເວລາແລ້ວ</translation>
+<translation id="4548974025982531828">{NUM_DAYS,plural, =1{ສ້າງເມື່ອ 1 ມື້ກ່ອນ}other{ສ້າງເມື່ອ {NUM_DAYS} ມື້ກ່ອນ}}</translation>
 <translation id="455113658016510503">A9</translation>
 <translation id="4556069465387849460">ທ່ານກຳລັງໃຊ້ການລັອກໜ້າຈໍຂອງທ່ານເພື່ອໃສ່ລະຫັດຜ່ານ</translation>
 <translation id="4557573143631562971">ປະກັນໄພເຮືອນ</translation>
@@ -2898,6 +2901,7 @@
 <translation id="5938153366081463283">ເພີ່ມບັດສະເໝືອນ</translation>
 <translation id="5938793338444039872">Troy</translation>
 <translation id="5938866385061293322">ຂໍ້ມູນນີ້ມາຈາກເວັບໄຊຕິຊົມທີ່ເປັນເອກະລາດເຊັ່ນ: Trustpilot, ScamAdviser, Google ແລະ ອື່ນໆອີກ. ບົດສະຫຼຸບແມ່ນສ້າງດ້ວຍ AI.</translation>
+<translation id="5943775258256265106">{NUM_MINS,plural, =1{ສ້າງເມື່ອ 1 ນາທີກ່ອນ}other{ສ້າງເມື່ອ {NUM_MINS} ນາທີກ່ອນ}}</translation>
 <translation id="5944297261866530437">ຜ້າ (ມັນວາວຫຼາຍ)</translation>
 <translation id="5950901984834744590">ມີດແຖ ແລະ ເຄື່ອງໂກນໜວດ</translation>
 <translation id="5951495562196540101">ບໍ່ສາມາດລົງທະບຽນດ້ວຍບັນຊີຜູ້ຊົມໃຊ້ໄດ້ (ມີໃບອະນຸຍາດແບບແພັກເກດ).</translation>
@@ -4058,6 +4062,7 @@
 <translation id="7894280532028510793">ຖ້າການສະກົດຄຳຖືກຕ້ອງ, <ph name="BEGIN_LINK" />ລອງເປີດໃຊ້ Network Diagnostics<ph name="END_LINK" />.</translation>
 <translation id="7901831439558593470">Envelope 7 x 9 ນິ້ວ</translation>
 <translation id="7905064834449738336">ເມື່ອທ່ານໃຊ້ລະຫັດຜ່ານ, Chromium ຈະເຕືອນທ່ານຫາກມີການເຜີຍແຜ່ລະຫັດຜ່ານທາງອອນລາຍ. ໃນເວລາກວດສອບ, ລະຫັດຜ່ານ ແລະ ຊື່ຜູ້ໃຊ້ຂອງທ່ານຈະຖືກເຂົ້າລະຫັດໄວ້, ເພື່ອບໍ່ໃຫ້ໃຜກໍຕາມສາມາດອ່ານຂໍ້ມູນດັ່ງກ່າວໄດ້, ຮວມທັງ Google ນຳ.</translation>
+<translation id="7906177144646315659">{NUM_HOURS,plural, =1{ສ້າງເມື່ອ 1 ຊົ່ວໂມງກ່ອນ}other{ສ້າງເມື່ອ {NUM_HOURS} ຊົ່ວໂມງກ່ອນ}}</translation>
 <translation id="7908648876066812348">ກຳລັງເປີດໃຊ້ບັດສະເໝືອນ</translation>
 <translation id="7909498058929404306"><ph name="RUN_CHROME_SAFETY_CHECK_FOCUSED_FRIENDLY_MATCH_TEXT" />, ກົດ Tab ຈາກນັ້ນກົດ Enter ເພື່ອເຂົ້າໄປໜ້າການກວດສອບຄວາມປອດໄພຂອງ Chrome ໃນການຕັ້ງຄ່າ</translation>
 <translation id="791107458486222637">ກຳລັງເຮັດຊ້ຳຜົນໄດ້ຮັບ</translation>
@@ -4192,6 +4197,7 @@
 <translation id="8134058435519644366">ການຈັດຫາ ແລະ ຮັບພະນັກງານ</translation>
 <translation id="8135546115396015134">ປຸ່ມຊ້າຍ</translation>
 <translation id="8137456439814903304">ພະລັງງານ ແລະ ສາທາລະນຸປະໂພກ</translation>
+<translation id="814432316791813431">{NUM_MONTHS,plural, =1{ສ້າງເມື່ອ 1 ເດືອນກ່ອນ}other{ສ້າງເມື່ອ {NUM_MONTHS} ເດືອນກ່ອນ}}</translation>
 <translation id="8148608574971654810">ເວີຊັນ PDF:</translation>
 <translation id="8149426793427495338">ຄອມພິວເຕີຂອງທ່ານໄດ້ເຂົ້າສູ່ໂໝດນອນຫຼັບແລ້ວ.</translation>
 <translation id="8150722005171944719">ໄຟລ໌ຢູ່ທີ່ <ph name="URL" /> ບໍ່ສາມາດອ່ານໄດ້. ມັນອາດຈະຖືກເອົາອອກໄປ, ຍ້າຍໜີ,​ຫຼື ການອະນຸຍາດໄຟລ໌ອາດຈະກໍາລັງ​ປ້ອງ​ກັນການການເຂົ້າຫາ.</translation>
diff --git a/components/strings/components_strings_lt.xtb b/components/strings/components_strings_lt.xtb
index 9e3a76e..212520b2 100644
--- a/components/strings/components_strings_lt.xtb
+++ b/components/strings/components_strings_lt.xtb
@@ -1565,6 +1565,7 @@
 <translation id="3641116835972736297">Amerikietiškasis futbolas</translation>
 <translation id="3642196846309122856">Pabandykite dar kartą atsisiųsti failus</translation>
 <translation id="3642638418806704195">Programa:</translation>
+<translation id="3644768007456662469">Mokėjimų elemento piktograma</translation>
 <translation id="3646643500201740985">Skelbimo našumo vertinimas</translation>
 <translation id="3647286794400715637">Kiekviename URL eilutės įraše turi būti nuo vieno iki dviejų URL.</translation>
 <translation id="3647400963805615193">„Chrome“ patarimo uždarymo mygtukas, paspauskite „Enter“, kad uždarytumėte, <ph name="REMOVE_BUTTON_FOCUSED_FRIENDLY_MATCH_TEXT" /></translation>
@@ -2101,11 +2102,13 @@
 <translation id="4530347922939905757">Teksto pranešimas</translation>
 <translation id="4531477351494678589">Virtualios kortelės numeris:</translation>
 <translation id="4535523368173457420">Šie paieškos varikliai populiarūs jūsų regione ir rodomi atsitiktine tvarka</translation>
+<translation id="4539931187424170595">{NUM_YEARS,plural, =1{Sukurta prieš 1 metus}one{Sukurta prieš {NUM_YEARS} metus}few{Sukurta prieš {NUM_YEARS} metus}many{Sukurta prieš {NUM_YEARS} metų}other{Sukurta prieš {NUM_YEARS} metų}}</translation>
 <translation id="4541810033354695636">išplėstoji realybė</translation>
 <translation id="4542971377163063093">6 dėklas</translation>
 <translation id="4543072026714825470">Kad kitą kartą galėtumėte greičiau atlikti mokėjimą, išsaugokite kortelę ir atsiskaitymo adresą „Google“ paskyroje.</translation>
 <translation id="454441086898495030">Pridėti prie „<ph name="SET" />“?</translation>
 <translation id="4546730006268514143">Baigėsi perkėlimo skirtasis laikas</translation>
+<translation id="4548974025982531828">{NUM_DAYS,plural, =1{Sukurta prieš 1 dieną}one{Sukurta prieš {NUM_DAYS} dieną}few{Sukurta prieš {NUM_DAYS} dienas}many{Sukurta prieš {NUM_DAYS} dienos}other{Sukurta prieš {NUM_DAYS} dienų}}</translation>
 <translation id="455113658016510503">A9</translation>
 <translation id="4556069465387849460">Naudojate ekrano užraktą slaptažodžiams užpildyti</translation>
 <translation id="4557573143631562971">Būsto draudimas</translation>
@@ -2899,6 +2902,7 @@
 <translation id="5938153366081463283">Pridėkite virtualią kortelę</translation>
 <translation id="5938793338444039872">Troy</translation>
 <translation id="5938866385061293322">Ši informacija gaunama iš nepriklausomų apžvalgų svetainių, pvz., „Trustpilot“, „ScamAdviser“, „Google“ ir kt. Suvestinės sukurtos naudojant DI.</translation>
+<translation id="5943775258256265106">{NUM_MINS,plural, =1{Sukurta prieš 1 minutę}one{Sukurta prieš {NUM_MINS} minutę}few{Sukurta prieš {NUM_MINS} minutes}many{Sukurta prieš {NUM_MINS} minutės}other{Sukurta prieš {NUM_MINS} minučių}}</translation>
 <translation id="5944297261866530437">Audinys (itin blizgus)</translation>
 <translation id="5950901984834744590">Skustuvai ir skutimosi priemonės</translation>
 <translation id="5951495562196540101">Nepavyko prisiregistruoti su kliento paskyra (galima įsigyti licencijos paketą).</translation>
@@ -4060,6 +4064,7 @@
 <translation id="7894280532028510793">Jei parašyta tinkamai, <ph name="BEGIN_LINK" />pabandykite paleisti tinklo diagnostiką<ph name="END_LINK" />.</translation>
 <translation id="7901831439558593470">7 x 9 col. vokas</translation>
 <translation id="7905064834449738336">Kai naudojate slaptažodį, „Chromium“ įspėja jus, jei jis paskelbtas internete. Tai atliekant, slaptažodžiai ir naudotojų vardai užšifruojami, kad niekas negalėtų jų perskaityti, įskaitant „Google“.</translation>
+<translation id="7906177144646315659">{NUM_HOURS,plural, =1{Sukurta prieš 1 valandą}one{Sukurta prieš {NUM_HOURS} valandą}few{Sukurta prieš {NUM_HOURS} valandas}many{Sukurta prieš {NUM_HOURS} valandos}other{Sukurta prieš {NUM_HOURS} valandų}}</translation>
 <translation id="7908648876066812348">Įjungiama virtuali kortelė</translation>
 <translation id="7909498058929404306"><ph name="RUN_CHROME_SAFETY_CHECK_FOCUSED_FRIENDLY_MATCH_TEXT" />; paspauskite tabuliavimo klavišą, tada „Enter“, kad pereitumėte į „Chrome“ saugos patikros puslapį nustatymuose</translation>
 <translation id="791107458486222637">Grąžinamas rezultatas</translation>
@@ -4194,6 +4199,7 @@
 <translation id="8134058435519644366">Komplektavimas ir personalo poreikiai</translation>
 <translation id="8135546115396015134">kairįjį klavišą</translation>
 <translation id="8137456439814903304">Energija ir komunalinės paslaugos</translation>
+<translation id="814432316791813431">{NUM_MONTHS,plural, =1{Sukurta prieš 1 mėnesį}one{Sukurta prieš {NUM_MONTHS} mėnesį}few{Sukurta prieš {NUM_MONTHS} mėnesius}many{Sukurta prieš {NUM_MONTHS} mėnesio}other{Sukurta prieš {NUM_MONTHS} mėnesių}}</translation>
 <translation id="8148608574971654810">PDF versija:</translation>
 <translation id="8149426793427495338">Įjungta kompiuterio miego būsena.</translation>
 <translation id="8150722005171944719"><ph name="URL" /> nurodyto failo negalima skaityti. Gali būti, kad jis pašalintas, perkeltas arba neleidžiama prieiga prie jo dėl failo leidimų.</translation>
diff --git a/components/strings/components_strings_lv.xtb b/components/strings/components_strings_lv.xtb
index cc95cf53..c85a4c4 100644
--- a/components/strings/components_strings_lv.xtb
+++ b/components/strings/components_strings_lv.xtb
@@ -1563,6 +1563,7 @@
 <translation id="3641116835972736297">Amerikāņu futbols</translation>
 <translation id="3642196846309122856">Mēģiniet vēlreiz lejupielādēt savus failus.</translation>
 <translation id="3642638418806704195">Lietojumprogramma:</translation>
+<translation id="3644768007456662469">Maksājuma vienuma ikona</translation>
 <translation id="3646643500201740985">Reklāmas veiktspējas novērtēšana</translation>
 <translation id="3647286794400715637">Katrā URL virknes ierakstā ir jābūt 1–2 vietrāžiem URL.</translation>
 <translation id="3647400963805615193">Chrome padoma noraidīšanas poga; nospiediet taustiņu Enter, lai noraidītu; <ph name="REMOVE_BUTTON_FOCUSED_FRIENDLY_MATCH_TEXT" /></translation>
@@ -2098,11 +2099,13 @@
 <translation id="4530347922939905757">Īsziņa</translation>
 <translation id="4531477351494678589">Virtuālās kartes numurs:</translation>
 <translation id="4535523368173457420">Šīs meklētājprogrammas ir populāras jūsu reģionā un tiek rādītas nejaušā secībā.</translation>
+<translation id="4539931187424170595">{NUM_YEARS,plural, =1{Izveidota pirms 1 gada}zero{Izveidota pirms {NUM_YEARS} gadiem}one{Izveidota pirms {NUM_YEARS} gada}other{Izveidota pirms {NUM_YEARS} gadiem}}</translation>
 <translation id="4541810033354695636">papildinātā realitāte</translation>
 <translation id="4542971377163063093">6. paplāte</translation>
 <translation id="4543072026714825470">Lai nākamreiz veiktu maksājumu ātrāk, glabājiet kartes datus un norēķinu adresi savā Google kontā.</translation>
 <translation id="454441086898495030">Vai pievienot tabulai “<ph name="SET" />”?</translation>
 <translation id="4546730006268514143">Pārsūtīšanai iestājās noildze</translation>
+<translation id="4548974025982531828">{NUM_DAYS,plural, =1{Izveidota pirms 1 dienas}zero{Izveidota pirms {NUM_DAYS} dienām}one{Izveidota pirms {NUM_DAYS} dienas}other{Izveidota pirms {NUM_DAYS} dienām}}</translation>
 <translation id="455113658016510503">A9</translation>
 <translation id="4556069465387849460">Jūs izmantojat ekrāna bloķēšanu paroļu aizpildei</translation>
 <translation id="4557573143631562971">Mājokļa apdrošināšana</translation>
@@ -2896,6 +2899,7 @@
 <translation id="5938153366081463283">Pievienojiet virtuālu karti</translation>
 <translation id="5938793338444039872">Troy</translation>
 <translation id="5938866385061293322">Šī informācija ir iegūta no neatkarīgām atsauksmju vietnēm, piemēram, Trustpilot, ScamAdviser, Google u. c. Apkopojumi ir izveidoti, izmantojot MI.</translation>
+<translation id="5943775258256265106">{NUM_MINS,plural, =1{Izveidota pirms 1 minūtes}zero{Izveidota pirms {NUM_MINS} minūtēm}one{Izveidota pirms {NUM_MINS} minūtes}other{Izveidota pirms {NUM_MINS} minūtēm}}</translation>
 <translation id="5944297261866530437">Audums (augsti glancēts)</translation>
 <translation id="5950901984834744590">Skuvekļi</translation>
 <translation id="5951495562196540101">Neizdevās reģistrēt, izmantojot patērētāja kontu (pieejama komplektā iekļauta licence).</translation>
@@ -4057,6 +4061,7 @@
 <translation id="7894280532028510793">Ja nav pareizrakstības kļūdu, <ph name="BEGIN_LINK" />mēģiniet palaist tīkla diagnostiku<ph name="END_LINK" />.</translation>
 <translation id="7901831439558593470">Aploksne (7 x 9 collas)</translation>
 <translation id="7905064834449738336">Pārlūkā Chromium tiek parādīts brīdinājums, ja izmantojat paroli, kas ir publicēta tiešsaistē. Šo pārbaužu laikā paroles un lietotājvārdi ir šifrēti, lai neviens tos nevarētu lasīt, tostarp Google.</translation>
+<translation id="7906177144646315659">{NUM_HOURS,plural, =1{Izveidota pirms 1 stundas}zero{Izveidota pirms {NUM_HOURS} stundām}one{Izveidota pirms {NUM_HOURS} stundas}other{Izveidota pirms {NUM_HOURS} stundām}}</translation>
 <translation id="7908648876066812348">Notiek virtuālās kartes aktivizēšana</translation>
 <translation id="7909498058929404306"><ph name="RUN_CHROME_SAFETY_CHECK_FOCUSED_FRIENDLY_MATCH_TEXT" />, lai iestatījumos pārietu uz Chrome drošības pārbaudes lapu, nospiediet tabulēšanas taustiņu un pēc tam — taustiņu Enter.</translation>
 <translation id="791107458486222637">Rezultāta atsaukšanas atcelšana</translation>
@@ -4191,6 +4196,7 @@
 <translation id="8134058435519644366">Pieņemšana darbā un personāla komplektēšana</translation>
 <translation id="8135546115396015134">kreisais taustiņš</translation>
 <translation id="8137456439814903304">Enerģija un komunālie pakalpojumi</translation>
+<translation id="814432316791813431">{NUM_MONTHS,plural, =1{Izveidota pirms 1 mēneša}zero{Izveidota pirms {NUM_MONTHS} mēnešiem}one{Izveidota pirms {NUM_MONTHS} mēneša}other{Izveidota pirms {NUM_MONTHS} mēnešiem}}</translation>
 <translation id="8148608574971654810">PDF versija:</translation>
 <translation id="8149426793427495338">Dators tika pārslēgts miega režīmā.</translation>
 <translation id="8150722005171944719">Vietnē <ph name="URL" /> esošo failu nevar nolasīt. Iespējams, tas ir noņemts vai pārvietots vai piekļuvei nepieciešamas atļaujas.</translation>
diff --git a/components/strings/components_strings_mk.xtb b/components/strings/components_strings_mk.xtb
index c82e14f6..a96cc48 100644
--- a/components/strings/components_strings_mk.xtb
+++ b/components/strings/components_strings_mk.xtb
@@ -1564,6 +1564,7 @@
 <translation id="3641116835972736297">Американски фудбал</translation>
 <translation id="3642196846309122856">Обидете се да ги преземете датотеките повторно</translation>
 <translation id="3642638418806704195">Апликација:</translation>
+<translation id="3644768007456662469">Икона за ставка за плаќање</translation>
 <translation id="3646643500201740985">Мерење на изведбата на реклама</translation>
 <translation id="3647286794400715637">Секој запис во низата со URL-адреси мора да содржи помеѓу 1 и 2 URL-адреси.</translation>
 <translation id="3647400963805615193">Копче за отфрлање совет на Chrome, притиснете го копчето Enter за да отфрлите, <ph name="REMOVE_BUTTON_FOCUSED_FRIENDLY_MATCH_TEXT" /></translation>
diff --git a/components/strings/components_strings_mn.xtb b/components/strings/components_strings_mn.xtb
index bea44384..5f3beaa8 100644
--- a/components/strings/components_strings_mn.xtb
+++ b/components/strings/components_strings_mn.xtb
@@ -937,6 +937,7 @@
 <translation id="2546283357679194313">Cookies болон сайтын дата</translation>
 <translation id="254947805923345898">Удирдамжийн утга хүчингүй байна.</translation>
 <translation id="2549836668759467704">Барилгын зөвлөгөө болон гэрээт үйлчилгээ</translation>
+<translation id="2549919488151689436"><ph name="TOPIC_1" />, <ph name="TOPIC_2" /> болон бусад</translation>
 <translation id="255002559098805027"><ph name="HOST_NAME" /> хүчингүй хариу илгээсэн байна.</translation>
 <translation id="2551608178605132291">Хаяг: <ph name="ADDRESS" />.</translation>
 <translation id="2552246211866555379">Хагаки</translation>
@@ -1565,6 +1566,7 @@
 <translation id="3641116835972736297">Америк хөлбөмбөг</translation>
 <translation id="3642196846309122856">Файлуудаа дахин татаж үзнэ үү</translation>
 <translation id="3642638418806704195">Аппликэйшн:</translation>
+<translation id="3644768007456662469">Төлбөрийн зүйлийн дүрс тэмдэг</translation>
 <translation id="3646643500201740985">Зар хэр сайн гүйцэтгэлтэй байгааг хэмжих</translation>
 <translation id="3647286794400715637">URL-н мөрийн оролт бүр 1-ээс 2-ын хооронд URL агуулсан байх ёстой.</translation>
 <translation id="3647400963805615193">Chrome-н зөвлөгөөг хаах товчлуур, хаахын тулд Enter дарна уу, <ph name="REMOVE_BUTTON_FOCUSED_FRIENDLY_MATCH_TEXT" /></translation>
@@ -2101,11 +2103,13 @@
 <translation id="4530347922939905757">Мессеж</translation>
 <translation id="4531477351494678589">Виртуал картын дугаар:</translation>
 <translation id="4535523368173457420">Эдгээр хайлтын систем нь танай бүс нутагт эрэлттэй бөгөөд эдгээрийг санамсаргүй дарааллаар харуулсан</translation>
+<translation id="4539931187424170595">{NUM_YEARS,plural, =1{1 жилийн өмнө үүсгэсэн}other{{NUM_YEARS} жилийн өмнө үүсгэсэн}}</translation>
 <translation id="4541810033354695636">өргөтгөсөн бодит орчин</translation>
 <translation id="4542971377163063093">Гарах цаасны тавиур 6</translation>
 <translation id="4543072026714825470">Дараагийн удаа илүү хурдан төлөхийн тулд карт болон төлбөр тооцооны хаягаа Google Бүртгэлдээ хадгална уу</translation>
 <translation id="454441086898495030"><ph name="SET" />-д нэмэх үү?</translation>
 <translation id="4546730006268514143">Шилжүүлэх үйлдэл завсарласан</translation>
+<translation id="4548974025982531828">{NUM_DAYS,plural, =1{1 хоногийн өмнө үүсгэсэн}other{{NUM_DAYS} хоногийн өмнө үүсгэсэн}}</translation>
 <translation id="455113658016510503">A9</translation>
 <translation id="4556069465387849460">Та нууц үг бөглөхөд дэлгэцийн түгжээгээ ашиглаж байна</translation>
 <translation id="4557573143631562971">Орон сууцны даатгал</translation>
@@ -2899,6 +2903,7 @@
 <translation id="5938153366081463283">Виртуал карт нэмнэ үү</translation>
 <translation id="5938793338444039872">Troy</translation>
 <translation id="5938866385061293322">Энэ мэдээлэл Trustpilot, ScamAdviser, Google болон шүүмжийн бусад бие даасан вебсайтаас ирсэн. Хураангуйг ХОУ-аар үүсгэдэг.</translation>
+<translation id="5943775258256265106">{NUM_MINS,plural, =1{1 минутын өмнө үүсгэсэн}other{{NUM_MINS} минутын өмнө үүсгэсэн}}</translation>
 <translation id="5944297261866530437">Даавуу (маш гялгар)</translation>
 <translation id="5950901984834744590">Сахлын хутга, сахлын машинууд</translation>
 <translation id="5951495562196540101">Хэрэглэгчийн бүртгэлээр бүртгүүлэх боломжгүй (багцалсан лиценз боломжтой).</translation>
@@ -4058,6 +4063,7 @@
 <translation id="7894280532028510793">Хэрэв алдаагүй, зөв бичсэн бол <ph name="BEGIN_LINK" />Сүлжээний оношилгоог ажиллуулж үзнэ үү<ph name="END_LINK" />.</translation>
 <translation id="7901831439558593470">Дугтуй 7 x 9 инч</translation>
 <translation id="7905064834449738336">Таныг нууц үг ашиглах үед үүнийг онлайнд нийтэлсэн тохиолдолд Chromium танд сануулна. Үүнийг хийх үед таны нууц үг болон хэрэглэгчийн нэрийг шифрлэх бөгөөд ингэснээр Google-г оруулаад хэн ч тэдгээрийг унших боломжгүй.</translation>
+<translation id="7906177144646315659">{NUM_HOURS,plural, =1{1 цагийн өмнө үүсгэсэн}other{{NUM_HOURS} цагийн өмнө үүсгэсэн}}</translation>
 <translation id="7908648876066812348">Виртуал картыг асааж байна</translation>
 <translation id="7909498058929404306"><ph name="RUN_CHROME_SAFETY_CHECK_FOCUSED_FRIENDLY_MATCH_TEXT" />, тохиргооны Chrome-н аюулгүй байдлын шалгалтын хуудас руу очихын тулд Tab, дараа нь Enter-г дарна уу</translation>
 <translation id="791107458486222637">Үр дүнг дахин гаргаж байна</translation>
@@ -4192,6 +4198,7 @@
 <translation id="8134058435519644366">Ажилд авах болон боловсон хүчин</translation>
 <translation id="8135546115396015134">зүүн суман товч</translation>
 <translation id="8137456439814903304">Эрчим хүч, эрчим хүч нийлүүлэгчид</translation>
+<translation id="814432316791813431">{NUM_MONTHS,plural, =1{1 сарын өмнө үүсгэсэн}other{{NUM_MONTHS} сарын өмнө үүсгэсэн}}</translation>
 <translation id="8148608574971654810">PDF хувилбар:</translation>
 <translation id="8149426793427495338">Таны компьютер идэвхгүй болсон байна.</translation>
 <translation id="8150722005171944719"><ph name="URL" /> дахь файлыг унших боломжгүй байна. Энэ файл нь устгагдсан, шилжигдсэн, эсвэл хандалтыг хазгаарласан байж болно.</translation>
@@ -4812,6 +4819,7 @@
 <translation id="9219103736887031265">Зураг</translation>
 <translation id="922152298093051471">Chrome-г өөрчлөх</translation>
 <translation id="9222403027701923763">Бага болон дунд сургууль (K-12)</translation>
+<translation id="9222463428840654067">Картын дугаар буруу байна</translation>
 <translation id="922849469395748170">Лояалти карт</translation>
 <translation id="93020190163435405">Дадлага</translation>
 <translation id="931598121743515856">Худалдан авалтын дүн <ph name="CHECKOUT_AMOUNT_MINIMUM" />-с дээш байх ёстой</translation>
diff --git a/components/strings/components_strings_mr.xtb b/components/strings/components_strings_mr.xtb
index 362f256..f746bfe 100644
--- a/components/strings/components_strings_mr.xtb
+++ b/components/strings/components_strings_mr.xtb
@@ -1563,6 +1563,7 @@
 <translation id="3641116835972736297">अमेरिकन फुटबॉल</translation>
 <translation id="3642196846309122856">तुमच्या फाइल पुन्हा डाउनलोड करण्याचा प्रयत्न करा</translation>
 <translation id="3642638418806704195">ॲप्लिकेशन:</translation>
+<translation id="3644768007456662469">पेमेंट आयटम आयकन</translation>
 <translation id="3646643500201740985">जाहिरात किती चांगल्या पद्धतीने परफॉर्म करते हे मोजणे</translation>
 <translation id="3647286794400715637">प्रत्येक URLs स्ट्रिंग एंट्रीमध्ये एक ते दोन URLs असणे आवश्यक आहे.</translation>
 <translation id="3647400963805615193">Chrome टीप डिसमिस करण्यासाठी बटण, डिसमिस करण्यासाठी एंटर प्रेस करा, <ph name="REMOVE_BUTTON_FOCUSED_FRIENDLY_MATCH_TEXT" /></translation>
@@ -2099,11 +2100,13 @@
 <translation id="4530347922939905757">एसएमएस</translation>
 <translation id="4531477351494678589">व्हर्च्युअल कार्ड नंबर:</translation>
 <translation id="4535523368173457420">ही शोध इंजीन तुमच्या प्रदेशात लोकप्रिय आहेत आणि रँडम क्रमाने दाखवली आहेत</translation>
+<translation id="4539931187424170595">{NUM_YEARS,plural, =1{१ वर्षापूर्वी तयार केला आहे}other{{NUM_YEARS} वर्षांपूर्वी तयार केला आहे}}</translation>
 <translation id="4541810033354695636">ऑगमेंटेड रीअ‍ॅलिटी</translation>
 <translation id="4542971377163063093">ट्रे ६</translation>
 <translation id="4543072026714825470">पुढील वेळेस आणखी जलद पेमेंट करण्यासाठी, तुमच्या Google खाते मध्ये तुमचे कार्ड आणि बिलिंग पत्ता स्टोअर करा</translation>
 <translation id="454441086898495030"><ph name="SET" /> मध्ये जोडायचे आहे का?</translation>
 <translation id="4546730006268514143">ट्रान्सफर करणे टाइम आउट झाले</translation>
+<translation id="4548974025982531828">{NUM_DAYS,plural, =1{१ दिवसापूर्वी तयार केला आहे}other{{NUM_DAYS} दिवसांपूर्वी तयार केला आहे}}</translation>
 <translation id="455113658016510503">A9</translation>
 <translation id="4556069465387849460">पासवर्ड भरण्यासाठी तुम्ही तुमचे स्क्रीन लॉक वापरत आहात</translation>
 <translation id="4557573143631562971">गृह विमा</translation>
@@ -2897,6 +2900,7 @@
 <translation id="5938153366081463283">व्हर्च्युअल कार्ड जोडा</translation>
 <translation id="5938793338444039872">ट्रॉय</translation>
 <translation id="5938866385061293322">ही माहिती Trustpilot, ScamAdviser, Google आणि यांसारख्या आणखी बऱ्याच स्वतंत्र परीक्षण वेबसाइटवरून येते. सारांश हे AI वापरून तयार केले जातात.</translation>
+<translation id="5943775258256265106">{NUM_MINS,plural, =1{१ मिनिटापूर्वी तयार केला आहे}other{{NUM_MINS} मिनिटांपूर्वी तयार केला आहे}}</translation>
 <translation id="5944297261866530437">पेपर (हाय-ग्लॉस)</translation>
 <translation id="5950901984834744590">रेझर आणि शेव्हर</translation>
 <translation id="5951495562196540101">उपभोक्ता खात्याने नोंदणी करू शकत नाही (पॅकेज केलेला परवाना उपलब्ध).</translation>
@@ -4059,6 +4063,7 @@
 <translation id="7894280532028510793">शब्दलेखन योग्य असल्यास, <ph name="BEGIN_LINK" />नेटवर्क निदान रन करून पहा<ph name="END_LINK" />.</translation>
 <translation id="7901831439558593470">एन्व्हलप ७ x ९ इंच</translation>
 <translation id="7905064834449738336">तुम्ही पासवर्ड वापरता, तेव्हा तो ऑनलाइन प्रकाशित झाला असल्यास Chromium तुम्हाला चेतावणी देते. हे करत असताना, तुमचे पासवर्ड आणि वापरकर्ता नावे या गोष्टी एंक्रिप्ट केल्या जातात, जेणेकरून Google च्या समावेशासह इतर कोणीही त्या वाचू शकणार नाही.</translation>
+<translation id="7906177144646315659">{NUM_HOURS,plural, =1{१ तासापूर्वी तयार केला आहे}other{{NUM_HOURS} तासांपूर्वी तयार केला आहे}}</translation>
 <translation id="7908648876066812348">व्हर्च्युअल कार्ड सुरू करत आहे</translation>
 <translation id="7909498058929404306"><ph name="RUN_CHROME_SAFETY_CHECK_FOCUSED_FRIENDLY_MATCH_TEXT" />, सेटिंग्जमध्ये Chrome सुरक्षितता तपासणी पेजवर जाण्यासाठी टॅब आणि त्यानंतर एंटर प्रेस करा</translation>
 <translation id="791107458486222637">परिणाम पुन्हा जनरेट करत आहे</translation>
@@ -4193,6 +4198,7 @@
 <translation id="8134058435519644366">भरती आणि कर्मचारी नेमणूक</translation>
 <translation id="8135546115396015134">लेफ्ट की</translation>
 <translation id="8137456439814903304">ऊर्जा आणि सुविधा पुरवठादार</translation>
+<translation id="814432316791813431">{NUM_MONTHS,plural, =1{१ महिन्यापूर्वी तयार केला आहे}other{{NUM_MONTHS} महिन्यांपूर्वी तयार केला आहे}}</translation>
 <translation id="8148608574971654810">पीडीएफ आवृत्ती:</translation>
 <translation id="8149426793427495338">तुमचा कॉंप्युटर निष्क्रीय झाला.</translation>
 <translation id="8150722005171944719"><ph name="URL" /> येथील फाइल वाचनीय नाही. ती काढून टाकलेली, हलविलेली असू शकते किंवा फाइल परवानग्या ॲक्सेस प्रतिबंधित करत असू शकतात.</translation>
diff --git a/components/strings/components_strings_ms.xtb b/components/strings/components_strings_ms.xtb
index 2ee31ee..46c9d01 100644
--- a/components/strings/components_strings_ms.xtb
+++ b/components/strings/components_strings_ms.xtb
@@ -937,6 +937,7 @@
 <translation id="2546283357679194313">Kuki dan data tapak</translation>
 <translation id="254947805923345898">Nilai dasar tidak sah.</translation>
 <translation id="2549836668759467704">Perundingan &amp; Kontrak Pembinaan</translation>
+<translation id="2549919488151689436"><ph name="TOPIC_1" />, <ph name="TOPIC_2" /> dan pelbagai lagi</translation>
 <translation id="255002559098805027"><ph name="HOST_NAME" /> menghantar balasan yang tidak sah.</translation>
 <translation id="2551608178605132291">Alamat: <ph name="ADDRESS" />.</translation>
 <translation id="2552246211866555379">Hagaki</translation>
@@ -4821,6 +4822,7 @@
 <translation id="9219103736887031265">Imej</translation>
 <translation id="922152298093051471">Sesuaikan Chrome</translation>
 <translation id="9222403027701923763">Persekolahan Rendah &amp; Menengah (K-12)</translation>
+<translation id="9222463428840654067">Nombor kad tidak sah</translation>
 <translation id="922849469395748170">Kad kesetiaan</translation>
 <translation id="93020190163435405">Latihan amali</translation>
 <translation id="931598121743515856">Pembelian mestilah melebihi <ph name="CHECKOUT_AMOUNT_MINIMUM" /></translation>
diff --git a/components/strings/components_strings_my.xtb b/components/strings/components_strings_my.xtb
index 360c13f..3ce04867 100644
--- a/components/strings/components_strings_my.xtb
+++ b/components/strings/components_strings_my.xtb
@@ -1564,6 +1564,7 @@
 <translation id="3641116835972736297">အမေရိကန်ဘောလုံး</translation>
 <translation id="3642196846309122856">သင့်ဖိုင်များကို ထပ်မံ ဒေါင်းလုဒ်လုပ်ကြည့်ပါ</translation>
 <translation id="3642638418806704195">အပလီကေးရှင်း-</translation>
+<translation id="3644768007456662469">ငွေပေးချေမှုဖိုင် သင်္ကေတ</translation>
 <translation id="3646643500201740985">ကြော်ငြာစွမ်းဆောင်ရည် မည်မျှကောင်းကြောင်း တိုင်းတာခြင်း</translation>
 <translation id="3647286794400715637">URL လိုင်း တစ်ခုစီတွင် URL ၁ ခုမှ ၂ ခုအထိ ပါဝင်ရမည်။</translation>
 <translation id="3647400963805615193">Chrome အကြံပြုချက်ပယ်ရန် ခလုတ်၊ Enter ခလုတ်နှိပ်၍ ပယ်ပါ၊ <ph name="REMOVE_BUTTON_FOCUSED_FRIENDLY_MATCH_TEXT" /></translation>
@@ -2101,11 +2102,13 @@
 <translation id="4530347922939905757">မိုဘိုင်းမက်ဆေ့ဂျ်</translation>
 <translation id="4531477351494678589">ပကတိအသွင် ကတ်နံပါတ်-</translation>
 <translation id="4535523368173457420">ဤရှာဖွေရေး အင်ဂျင်များသည် သင့်ဒေသတွင် လူကြိုက်များပြီး ၎င်းတို့ကို ကျပန်းပြထားပါသည်</translation>
+<translation id="4539931187424170595">{NUM_YEARS,plural, =1{ပြီးခဲ့သော ၁ နှစ်က ပြုလုပ်ထားသည်}other{ပြီးခဲ့သော {NUM_YEARS} နှစ်က ပြုလုပ်ထားသည်}}</translation>
 <translation id="4541810033354695636">လွန်ကဲပကတိအသွင်</translation>
 <translation id="4542971377163063093">ဗန်း ၆</translation>
 <translation id="4543072026714825470">နောင်တွင် မြန်ဆန်စွာပေးချေနိုင်ရန် သင်၏ကတ်နှင့် ငွေတောင်းခံလွှာပို့သော လိပ်စာကို သင့် Google Account တွင် သိမ်းထားပါ</translation>
 <translation id="454441086898495030"><ph name="SET" /> တွင် ထည့်မလား။</translation>
 <translation id="4546730006268514143">လွှဲပြောင်းမှု အချိန်ကုန်သွားသည်</translation>
+<translation id="4548974025982531828">{NUM_DAYS,plural, =1{ပြီးခဲ့သော ၁ ရက်က ပြုလုပ်ထားသည်}other{ပြီးခဲ့သော {NUM_DAYS} ရက်က ပြုလုပ်ထားသည်}}</translation>
 <translation id="455113658016510503">A9</translation>
 <translation id="4556069465387849460">သင်သည် စကားဝှက်ဖြည့်ရန်အတွက် ဖန်သားပြင်လော့ခ်ကို အသုံးပြုနေသည်</translation>
 <translation id="4557573143631562971">အိမ်အာမခံ</translation>
@@ -2899,6 +2902,7 @@
 <translation id="5938153366081463283">ပကတိအသွင်ကတ် ထည့်ရန်</translation>
 <translation id="5938793338444039872">Troy</translation>
 <translation id="5938866385061293322">ဤအချက်အလက်ကို Trustpilot၊ ScamAdviser၊ Google စသည်တို့ကဲ့သို့သော တစ်သီးပုဂ္ဂလ သုံးသပ်ချက်ဝဘ်ဆိုက်များမှ ရရှိပါသည်။ အနှစ်ချုပ်များကို AI ဖြင့် ပြုလုပ်ထားသည်။</translation>
+<translation id="5943775258256265106">{NUM_MINS,plural, =1{ပြီးခဲ့သော ၁ မိနစ်က ပြုလုပ်ထားသည်}other{ပြီးခဲ့သော {NUM_MINS} မိနစ်က ပြုလုပ်ထားသည်}}</translation>
 <translation id="5944297261866530437">အထည် (အလွန်တောက်ပြောင်)</translation>
 <translation id="5950901984834744590">သင်တုန်းဓား၊ အမွေးရိတ်စက်</translation>
 <translation id="5951495562196540101">အသုံးပြုသူ အကောင့်ဖြင့် စာရင်းသွင်း၍ မရပါ (ပက်ကေ့ချ်လုပ်ထားသော လိုင်စင်ကို ရနိုင်သည်)။</translation>
@@ -4059,6 +4063,7 @@
 <translation id="7894280532028510793">စာလုံးပေါင်း မှန်ကန်ပါက <ph name="BEGIN_LINK" />ကွန်ရက် အမှားရှာဖွေမှုများပြုလုပ်ရန် ကြိုးစားကြည့်ပါ<ph name="END_LINK" />။</translation>
 <translation id="7901831439558593470">၇ x ၉ လက်မ စာအိတ်</translation>
 <translation id="7905064834449738336">သင်စကားဝှက်သုံးသောအခါ ၎င်းကို အွန်လိုင်းတွင် ထုတ်ဝေထားခြင်း ရှိ၊ မရှိ Chromium က သတိပေးပါသည်။ ဤသို့စစ်ဆေးသည့်အခါ သင်၏စကားဝှက်နှင့် အသုံးပြုသူအမည်များကို အသွင်ဝှက်ထားသောကြောင့် Google အပါအဝင် မည်သူမျှ ၎င်းတို့ကို ဖတ်၍မရပါ။</translation>
+<translation id="7906177144646315659">{NUM_HOURS,plural, =1{ပြီးခဲ့သော ၁ နာရီက ပြုလုပ်ထားသည်}other{ပြီးခဲ့သော {NUM_HOURS} နာရီက ပြုလုပ်ထားသည်}}</translation>
 <translation id="7908648876066812348">ပကတိအသွင်ကတ်ကို ဖွင့်နေသည်</translation>
 <translation id="7909498058929404306"><ph name="RUN_CHROME_SAFETY_CHECK_FOCUSED_FRIENDLY_MATCH_TEXT" />၊ ‘တဘ်’ နှိပ်ပြီးနောက် Enter နှိပ်၍ ဆက်တင်များရှိ Chrome လုံခြုံရေး စစ်ဆေးမှု စာမျက်နှာသို့ သွားပါ</translation>
 <translation id="791107458486222637">ရလဒ် ပြန်လုပ်နေသည်</translation>
@@ -4194,6 +4199,7 @@
 <translation id="8134058435519644366">လူသစ်စုဆောင်းမှုနှင့် ဝန်ထမ်းခန့်အပ်မှု</translation>
 <translation id="8135546115396015134">ဘယ်ခလုတ်</translation>
 <translation id="8137456439814903304">စွမ်းအင်၊ လျှပ်စစ်မီး ဝန်ဆောင်မှု</translation>
+<translation id="814432316791813431">{NUM_MONTHS,plural, =1{ပြီးခဲ့သော ၁ လက ပြုလုပ်ထားသည်}other{ပြီးခဲ့သော {NUM_MONTHS} လက ပြုလုပ်ထားသည်}}</translation>
 <translation id="8148608574971654810">PDF ဗားရှင်း-</translation>
 <translation id="8149426793427495338">သင့်ကွန်ပျူတာ အိပ်သွားပါသည်။</translation>
 <translation id="8150722005171944719"><ph name="URL" />မှာ ရှိသော ဖိုင်ကို ဖတ်မရပါ။ ၎င်းကို ရွှေ့ပစ်ခဲ့တာ၊ ဖယ်ရှားပစ်ခဲ့တာ ဖြစ်နိုင်သည်၊ သို့မဟုတ် ဖိုင် ခွင်ပြုချက်များက ရယူမှုကို ဟန့်တားနေတာ ဖြစ်နိုင်သည်။</translation>
diff --git a/components/strings/components_strings_ne.xtb b/components/strings/components_strings_ne.xtb
index 96ac433..e9d2a21 100644
--- a/components/strings/components_strings_ne.xtb
+++ b/components/strings/components_strings_ne.xtb
@@ -1561,6 +1561,7 @@
 <translation id="3641116835972736297">अमेरिकी फुटबल</translation>
 <translation id="3642196846309122856">आफ्ना फाइलहरू फेरि डाउनलोड गरी हेर्नुहोस्</translation>
 <translation id="3642638418806704195">एप:</translation>
+<translation id="3644768007456662469">भुक्तानीसम्बन्धी आइटम जनाउने आइकन</translation>
 <translation id="3646643500201740985">विज्ञापनको पर्फर्मेन्स कत्तिको राम्रो छ भन्ने कुरा मापन गर्ने तरिका</translation>
 <translation id="3647286794400715637">प्रत्येक URL स्ट्रिङ प्रविष्टिमा १ देखि २ वटा URL हुनु पर्छ।</translation>
 <translation id="3647400963805615193">Chrome सम्बन्धी सुझाव हटाउने बटन, हटाउन इन्टर की थिच्नुहोस्, <ph name="REMOVE_BUTTON_FOCUSED_FRIENDLY_MATCH_TEXT" /></translation>
@@ -2098,11 +2099,13 @@
 <translation id="4530347922939905757">टेक्स्ट म्यासेज</translation>
 <translation id="4531477351494678589">भर्चुअल कार्ड नम्बर:</translation>
 <translation id="4535523368173457420">यी सर्च इन्जिनहरू तपाईंको क्षेत्रमा लोकप्रिय छन् र अनियमित क्रममा देखाइएका छन्</translation>
+<translation id="4539931187424170595">{NUM_YEARS,plural, =1{१ वर्षअघि बनाइएको}other{{NUM_YEARS} वर्षअघि बनाइएको}}</translation>
 <translation id="4541810033354695636">अग्मेन्टेड रियालिटी</translation>
 <translation id="4542971377163063093">ट्रे ६</translation>
 <translation id="4543072026714825470">अर्को पटक अझ छिटो भुक्तानी गर्न आफ्नो Google खातामा आफ्नो कार्ड र बिलिङ ठेगाना सेभ गर्नुहोस्</translation>
 <translation id="454441086898495030"><ph name="SET" /> मा हाल्ने हो?</translation>
 <translation id="4546730006268514143">ट्रान्स्फर गर्ने समय सकिएको छ</translation>
+<translation id="4548974025982531828">{NUM_DAYS,plural, =1{१ दिनअघि बनाइएको}other{{NUM_DAYS} दिनअघि बनाइएको}}</translation>
 <translation id="455113658016510503">A9</translation>
 <translation id="4556069465387849460">तपाईं पासवर्डहरू हाल्नका निम्ति स्क्रिन लक प्रयोग गर्दै हुनुहुन्छ</translation>
 <translation id="4557573143631562971">घरको बीमा</translation>
@@ -2896,6 +2899,7 @@
 <translation id="5938153366081463283">भर्चुअल कार्ड लिंक गर्नुहोस्</translation>
 <translation id="5938793338444039872">Troy</translation>
 <translation id="5938866385061293322">यो जानकारी स्वतन्त्र रूपमा रिभ्यू पोस्ट गर्न सकिने Trustpilot, ScamAdviser, Google लगायतका वेबसाइटहरूबाट लिइएको हो। सारांशहरू AI प्रयोग गरी सिर्जना गरिन्छन्।</translation>
+<translation id="5943775258256265106">{NUM_MINS,plural, =1{१ मिनेटअघि बनाइएको}other{{NUM_MINS} मिनेटअघि बनाइएको}}</translation>
 <translation id="5944297261866530437">फेब्रिक (हाई-ग्लस)</translation>
 <translation id="5950901984834744590">दाह्री काट्ने तथा रौँ खौरने रेजर</translation>
 <translation id="5951495562196540101">उपभोक्ताको खातामार्फत दर्ता गर्न सकिँदैन (प्याकेजसहितको इजाजतपत्र उपलब्ध छ)।</translation>
@@ -4056,6 +4060,7 @@
 <translation id="7894280532028510793">हिज्जे सही छ भने <ph name="BEGIN_LINK" />'नेटवर्कका डाइगोन्स्टिक्स' चलाएर हेर्नुहोस्<ph name="END_LINK" />।</translation>
 <translation id="7901831439558593470">Envelope 7 x 9 in</translation>
 <translation id="7905064834449738336">तपाईंले अनलाइनमा लिक भइसकेको कुनै पासवर्ड प्रयोग गर्नुभयो भने Chromium ले तपाईंलाई उक्त कुराका बारेमा चेतावनी दिन्छ। यसो गर्ने क्रममा Google लगायत अरू कसैले पनि तपाईंका पासवर्ड र युजरनेम हेर्न नसकून् भन्नाका लागि तिनलाई इन्क्रिप्ट गरिन्छ।</translation>
+<translation id="7906177144646315659">{NUM_HOURS,plural, =1{१ घण्टाअघि बनाइएको}other{{NUM_HOURS} घण्टाअघि बनाइएको}}</translation>
 <translation id="7908648876066812348">भर्चुअल कार्ड अन गरिँदै छ</translation>
 <translation id="7909498058929404306"><ph name="RUN_CHROME_SAFETY_CHECK_FOCUSED_FRIENDLY_MATCH_TEXT" />, सेटिङमा रहेको Chrome को सुरक्षा जाँच पेजमा जान ट्याब थिच्नुहोस् अनि इन्टर थिच्नुहोस्</translation>
 <translation id="791107458486222637">परिणाम रिडू गरिँदै छ</translation>
@@ -4190,6 +4195,7 @@
 <translation id="8134058435519644366">भर्ती तथा नियक्ति गर्ने सेवा</translation>
 <translation id="8135546115396015134">लेफ्ट की</translation>
 <translation id="8137456439814903304">ऊर्जा तथा युटिलिटीहरू</translation>
+<translation id="814432316791813431">{NUM_MONTHS,plural, =1{१ महिनाअघि बनाइएको}other{{NUM_MONTHS} महिनाअघि बनाइएको}}</translation>
 <translation id="8148608574971654810">PDF को संस्करण:</translation>
 <translation id="8149426793427495338">तपाईंको कम्प्युटर शयन अवस्थामा गयो।</translation>
 <translation id="8150722005171944719"><ph name="URL" /> मा भएको फाइल पठनीय छैन। यो हटाइएको, सारिएको हुनसक्छ, वा फाइल अनुमतिले पहुँचलाई रोकेको हुन सक्छ।</translation>
diff --git a/components/strings/components_strings_nl.xtb b/components/strings/components_strings_nl.xtb
index 43bb4b9..15d2347 100644
--- a/components/strings/components_strings_nl.xtb
+++ b/components/strings/components_strings_nl.xtb
@@ -937,6 +937,7 @@
 <translation id="2546283357679194313">Cookies en sitegegevens</translation>
 <translation id="254947805923345898">Beleidswaarde is ongeldig.</translation>
 <translation id="2549836668759467704">Bouwadvies en aanbesteding</translation>
+<translation id="2549919488151689436">Onder andere <ph name="TOPIC_1" /> en <ph name="TOPIC_2" /></translation>
 <translation id="255002559098805027"><ph name="HOST_NAME" /> heeft een ongeldige reactie verzonden.</translation>
 <translation id="2551608178605132291">Adres: <ph name="ADDRESS" />.</translation>
 <translation id="2552246211866555379">Hagaki</translation>
@@ -2095,11 +2096,13 @@
 <translation id="4530347922939905757">Sms</translation>
 <translation id="4531477351494678589">Virtueel kaartnummer:</translation>
 <translation id="4535523368173457420">Deze zoekmachines zijn populair in je regio en worden in willekeurige volgorde getoond</translation>
+<translation id="4539931187424170595">{NUM_YEARS,plural, =1{1 jaar geleden gemaakt}other{{NUM_YEARS} jaar geleden gemaakt}}</translation>
 <translation id="4541810033354695636">augmented reality</translation>
 <translation id="4542971377163063093">Lade 6</translation>
 <translation id="4543072026714825470">Sla je kaart en factuuradres op in je Google-account, zodat je de volgende keer sneller kunt betalen</translation>
 <translation id="454441086898495030">Toevoegen aan <ph name="SET" />?</translation>
 <translation id="4546730006268514143">Time-out bij overzetten</translation>
+<translation id="4548974025982531828">{NUM_DAYS,plural, =1{1 dag geleden gemaakt}other{{NUM_DAYS} dagen geleden gemaakt}}</translation>
 <translation id="455113658016510503">A9</translation>
 <translation id="4556069465387849460">Je gebruikt je schermvergrendeling om wachtwoorden in te vullen</translation>
 <translation id="4557573143631562971">Woningverzekeringen</translation>
@@ -2893,6 +2896,7 @@
 <translation id="5938153366081463283">Virtuele kaart toevoegen</translation>
 <translation id="5938793338444039872">Troy</translation>
 <translation id="5938866385061293322">Deze informatie komt van onafhankelijke reviewwebsites zoals Trustpilot, ScamAdviser en Google. Samenvattingen worden gemaakt met AI.</translation>
+<translation id="5943775258256265106">{NUM_MINS,plural, =1{1 minuut geleden gemaakt}other{{NUM_MINS} minuten geleden gemaakt}}</translation>
 <translation id="5944297261866530437">Stof (hoogglans)</translation>
 <translation id="5950901984834744590">Scheermessen en scheerapparaten</translation>
 <translation id="5951495562196540101">Kan consumentenaccount niet inschrijven (verpakte licentie beschikbaar).</translation>
@@ -4053,6 +4057,7 @@
 <translation id="7894280532028510793">Als de spelling klopt, <ph name="BEGIN_LINK" />voer je een netwerkcontrole uit<ph name="END_LINK" />.</translation>
 <translation id="7901831439558593470">Envelop 7 x 9 inch</translation>
 <translation id="7905064834449738336">Als je een wachtwoord gebruikt, waarschuwt Chromium je als het online is gepubliceerd. Als dit wordt gedaan, zijn je wachtwoorden en gebruikersnamen versleuteld, zodat ze door niemand (ook niet Google) kunnen worden gelezen.</translation>
+<translation id="7906177144646315659">{NUM_HOURS,plural, =1{1 uur geleden gemaakt}other{{NUM_HOURS} uur geleden gemaakt}}</translation>
 <translation id="7908648876066812348">Virtuele kaart aanzetten</translation>
 <translation id="7909498058929404306"><ph name="RUN_CHROME_SAFETY_CHECK_FOCUSED_FRIENDLY_MATCH_TEXT" />, druk op Tab en daarna op Enter om naar de pagina voor de Chrome-veiligheidscheck in de instellingen te gaan</translation>
 <translation id="791107458486222637">Resultaat opnieuw uitvoeren</translation>
@@ -4187,6 +4192,7 @@
 <translation id="8134058435519644366">Werving en selectie</translation>
 <translation id="8135546115396015134">linkertoets</translation>
 <translation id="8137456439814903304">Nutsbedrijven</translation>
+<translation id="814432316791813431">{NUM_MONTHS,plural, =1{1 maand geleden gemaakt}other{{NUM_MONTHS} maanden geleden gemaakt}}</translation>
 <translation id="8148608574971654810">Pdf-versie:</translation>
 <translation id="8149426793427495338">De slaapstand van je computer is geactiveerd.</translation>
 <translation id="8150722005171944719">Het bestand op <ph name="URL" /> is onleesbaar. Het bestand is mogelijk verwijderd of verplaatst of de bestandsrechten zorgen ervoor dat het bestand niet kan worden geopend.</translation>
@@ -4806,6 +4812,7 @@
 <translation id="9219103736887031265">Afbeeldingen</translation>
 <translation id="922152298093051471">Chrome aanpassen</translation>
 <translation id="9222403027701923763">Basisonderwijs en voortgezet onderwijs</translation>
+<translation id="9222463428840654067">Kaartnummer is ongeldig</translation>
 <translation id="922849469395748170">Klantenkaarten</translation>
 <translation id="93020190163435405">Stages</translation>
 <translation id="931598121743515856">Aankoopbedrag moet hoger zijn dan <ph name="CHECKOUT_AMOUNT_MINIMUM" /></translation>
diff --git a/components/strings/components_strings_or.xtb b/components/strings/components_strings_or.xtb
index 3f10b46..11898d91 100644
--- a/components/strings/components_strings_or.xtb
+++ b/components/strings/components_strings_or.xtb
@@ -1561,6 +1561,7 @@
 <translation id="3641116835972736297">ଆମେରିକାନ ଫୁଟବଲ</translation>
 <translation id="3642196846309122856">ଆପଣଙ୍କ ଫାଇଲଗୁଡ଼ିକୁ ପୁଣି ଡାଉନଲୋଡ କରିବା ପାଇଁ ଚେଷ୍ଟା କରନ୍ତୁ</translation>
 <translation id="3642638418806704195">ଆପ୍ଲିକେସନ୍:</translation>
+<translation id="3644768007456662469">ପେମେଣ୍ଟ ଆଇଟମ ଆଇକନ</translation>
 <translation id="3646643500201740985">କୌଣସି ବିଜ୍ଞାପନ କେତେ ଭଲ ପରଫର୍ମ କରେ ତାହା ମାପିବା</translation>
 <translation id="3647286794400715637">ପ୍ରତ୍ୟେକ URL ଷ୍ଟ୍ରିଙ୍ଗ ଏଣ୍ଟ୍ରି 1ରୁ 2 URL ମଧ୍ୟରେ ରହିବା ଉଚିତ।</translation>
 <translation id="3647400963805615193">Chromeର ଟିପକୁ ଖାରଜ କରିବା ବଟନ, ଖାରଜ କରିବାକୁ ଏଣ୍ଟର ଦବାନ୍ତୁ, <ph name="REMOVE_BUTTON_FOCUSED_FRIENDLY_MATCH_TEXT" /></translation>
@@ -2097,11 +2098,13 @@
 <translation id="4530347922939905757">ଟେକ୍ସଟ ମେସେଜ</translation>
 <translation id="4531477351494678589">ଭର୍ଚୁଆଲ କାର୍ଡ ନମ୍ବର:</translation>
 <translation id="4535523368173457420">ଏହି ସର୍ଚ୍ଚ ଇଞ୍ଜିନଗୁଡ଼ିକ ଆପଣଙ୍କ ଅଞ୍ଚଳରେ ଲୋକପ୍ରିୟ ଅଟେ ଏବଂ ସେଗୁଡ଼ିକୁ ରେଣ୍ଡମ କ୍ରମରେ ଦେଖାଯାଇଛି</translation>
+<translation id="4539931187424170595">{NUM_YEARS,plural, =1{1 ବର୍ଷ ପୂର୍ବେ ତିଆରି କରାଯାଇଛି}other{{NUM_YEARS} ବର୍ଷ ପୂର୍ବେ ତିଆରି କରାଯାଇଛି}}</translation>
 <translation id="4541810033354695636">ଅଗମେଣ୍ଟେଡ୍ ରିଆଲିଟୀ</translation>
 <translation id="4542971377163063093">ଟ୍ରେ 6</translation>
 <translation id="4543072026714825470">ପରବର୍ତ୍ତୀ ଥର ଶୀଘ୍ର ପେମେଣ୍ଟ କରିବା ପାଇଁ ଆପଣଙ୍କ Google ଆକାଊଣ୍ଟରେ ଆପଣଙ୍କର କାର୍ଡ ଏବଂ ବିଲିଂ ଠିକଣା ସେଭ କରନ୍ତୁ</translation>
 <translation id="454441086898495030"><ph name="SET" />ରେ ଯୋଗ କରିବେ?</translation>
 <translation id="4546730006268514143">ଟ୍ରାନ୍ସଫର କରିବା ସମୟ ସମାପ୍ତ ହୋଇଯାଇଛି</translation>
+<translation id="4548974025982531828">{NUM_DAYS,plural, =1{1 ଦିନ ପୂର୍ବେ ତିଆରି କରାଯାଇଛି}other{{NUM_DAYS} ଦିନ ପୂର୍ବେ ତିଆରି କରାଯାଇଛି}}</translation>
 <translation id="455113658016510503">A9</translation>
 <translation id="4556069465387849460">ଆପଣ ପାସୱାର୍ଡଗୁଡ଼ିକ ପୂରଣ କରିବା ପାଇଁ ଆପଣଙ୍କ ସ୍କ୍ରିନ ଲକ ବ୍ୟବହାର କରୁଛନ୍ତି</translation>
 <translation id="4557573143631562971">ହୋମ ବୀମା</translation>
@@ -2895,6 +2898,7 @@
 <translation id="5938153366081463283">ଭର୍ଚୁଆଲ କାର୍ଡ ଯୋଗ କରନ୍ତୁ</translation>
 <translation id="5938793338444039872">ଟ୍ରୟ</translation>
 <translation id="5938866385061293322">ଏହି ସୂଚନା Trustpilot, ScamAdviser, Google ଏବଂ ଅନ୍ୟ ସ୍ୱତନ୍ତ୍ର ସମୀକ୍ଷା ୱେବସାଇଟରୁ ଆସିଛି। ସାରାଂଶଗୁଡ଼ିକ AI ସାହାଯ୍ୟରେ ତିଆରି କରାଯାଇଥାଏ।</translation>
+<translation id="5943775258256265106">{NUM_MINS,plural, =1{1 ମିନିଟ ପୂର୍ବେ ତିଆରି କରାଯାଇଛି}other{{NUM_MINS} ମିନିଟ ପୂର୍ବେ ତିଆରି କରାଯାଇଛି}}</translation>
 <translation id="5944297261866530437">ଫେବ୍ରିକ (ହାଇ-ଗ୍ଲସ)</translation>
 <translation id="5950901984834744590">ରେଜର ଏବଂ ସେଭରଗୁଡ଼ିକ</translation>
 <translation id="5951495562196540101">ଉପଭୋକ୍ତାଙ୍କ ଆକାଉଣ୍ଟ (ପ୍ୟାକେଜ୍‌ ହୋ‍ଇଥିବା ଲାଇସେନ୍ସ ଉପଲବ୍ଧ ଅଛି ) ନାମାଙ୍କନ କରାଯାଇପାରିବ ନାହିଁ।</translation>
@@ -4054,6 +4058,7 @@
 <translation id="7894280532028510793">ଯଦି ବନାନ ସଠିକ୍ ଅଛି, ତେବେ <ph name="BEGIN_LINK" />ନେଟୱାର୍କ ଡାଏଗ୍ନୋଷ୍ଟିକ୍ସ ଚଲାଇବାକୁ ଚେଷ୍ଟା କରନ୍ତୁ<ph name="END_LINK" />।</translation>
 <translation id="7901831439558593470">ଏନଭେଲପ 7 x 9 in</translation>
 <translation id="7905064834449738336">ଆପଣ ଏକ ପାସୱାର୍ଡ ବ୍ୟବହାର କରିବା ସମୟରେ, ଯଦି ଏହାକୁ ଅନଲାଇନରେ ପବ୍ଲିସ କରାଯାଇଛି ତେବେ Chromium ଆପଣଙ୍କୁ ଚେତାବନୀ ଦିଏ। ଏହା କରିବା ସମୟରେ, ଆପଣଙ୍କ ପାସୱାର୍ଡ ଏବଂ ୟୁଜରନେମଗୁଡ଼ିକୁ ଏନକ୍ରିପ୍ଟ କରାଯାଇଥାଏ, ତେଣୁ Google ସମେତ କୌଣସି ବ୍ୟକ୍ତି ସେଗୁଡ଼ିକୁ ପଢ଼ିପାରିବେ ନାହିଁ।</translation>
+<translation id="7906177144646315659">{NUM_HOURS,plural, =1{1 ଘଣ୍ଟା ପୂର୍ବେ ତିଆରି କରାଯାଇଛି}other{{NUM_HOURS} ଘଣ୍ଟା ପୂର୍ବେ ତିଆରି କରାଯାଇଛି}}</translation>
 <translation id="7908648876066812348">ଭର୍ଚୁଆଲ କାର୍ଡ ଚାଲୁ କରାଯାଉଛି</translation>
 <translation id="7909498058929404306"><ph name="RUN_CHROME_SAFETY_CHECK_FOCUSED_FRIENDLY_MATCH_TEXT" />, ସେଟିଂସରେ Chrome ସୁରକ୍ଷା ଯାଞ୍ଚ ପୃଷ୍ଠାକୁ ଯିବା ପାଇଁ Tab ତା'ପରେ Enter ଦବାନ୍ତୁ</translation>
 <translation id="791107458486222637">ଫଳାଫଳ ରିଡୁ କରାଯାଉଛି</translation>
@@ -4188,6 +4193,7 @@
 <translation id="8134058435519644366">ନିଯୁକ୍ତି ଓ କର୍ମଚାରୀ</translation>
 <translation id="8135546115396015134">ବାମ କୀ</translation>
 <translation id="8137456439814903304">ଏନର୍ଜି ଏବଂ ୟୁଟିଲିଟିଗୁଡ଼ିକ</translation>
+<translation id="814432316791813431">{NUM_MONTHS,plural, =1{1 ମାସ ପୂର୍ବେ ତିଆରି କରାଯାଇଛି}other{{NUM_MONTHS} ମାସ ପୂର୍ବେ ତିଆରି କରାଯାଇଛି}}</translation>
 <translation id="8148608574971654810">PDF ସଂସ୍କରଣ:</translation>
 <translation id="8149426793427495338">ଆପଣଙ୍କର କମ୍ପୁଟର୍‌ ନିଷ୍କ୍ରିୟ ହୋ‍ଇଯାଇଛି।</translation>
 <translation id="8150722005171944719"><ph name="URL" />ରେ ଫାଇଲ୍‍ଟି ପଠନଯୋଗ୍ୟ ନୁହେଁ।  ହୁଏତ ଏହା କାଢ଼ି ଦିଆଯାଇଛି, ଘୁଞ୍ଚାଯାଇଛି କିମ୍ବା ଫାଇଲ୍ ଅନୁମତିର ଆକ୍ସେସ୍‍କୁ ପ୍ରତିବନ୍ଧିତ କରାଯାଇଛି।</translation>
diff --git a/components/strings/components_strings_pa.xtb b/components/strings/components_strings_pa.xtb
index b6d7113..178fef9 100644
--- a/components/strings/components_strings_pa.xtb
+++ b/components/strings/components_strings_pa.xtb
@@ -937,6 +937,7 @@
 <translation id="2546283357679194313">ਕੁਕੀਜ਼ ਅਤੇ ਸਾਈਟ ਡਾਟਾ</translation>
 <translation id="254947805923345898">ਨੀਤੀ ਦਾ ਮੁੱਲ ਵੈਧ ਨਹੀਂ ਹੈ।</translation>
 <translation id="2549836668759467704">ਉਸਾਰੀ ਸੰਬੰਧੀ ਸਲਾਹ-ਮਸ਼ਵਰਾ ਅਤੇ ਇਕਰਾਰਨਾਮਾ</translation>
+<translation id="2549919488151689436"><ph name="TOPIC_1" />, <ph name="TOPIC_2" /> ਅਤੇ ਹੋਰ</translation>
 <translation id="255002559098805027"><ph name="HOST_NAME" /> ਨੇ ਇੱਕ ਅਵੈਧ ਪ੍ਰਤਿਕਿਰਿਆ ਭੇਜੀ।</translation>
 <translation id="2551608178605132291">ਪਤਾ: <ph name="ADDRESS" />.</translation>
 <translation id="2552246211866555379">Hagaki</translation>
@@ -1561,6 +1562,7 @@
 <translation id="3641116835972736297">ਅਮਰੀਕੀ ਫੁੱਟਬਾਲ</translation>
 <translation id="3642196846309122856">ਆਪਣੀਆਂ ਫ਼ਾਈਲਾਂ ਨੂੰ ਦੁਬਾਰਾ ਡਾਊਨਲੋਡ ਕਰਨ ਦੀ ਕੋਸ਼ਿਸ਼ ਕਰੋ</translation>
 <translation id="3642638418806704195">ਐਪਲੀਕੇਸ਼ਨ:</translation>
+<translation id="3644768007456662469">ਭੁਗਤਾਨ ਆਈਟਮ ਦਾ ਪ੍ਰਤੀਕ</translation>
 <translation id="3646643500201740985">ਵਿਗਿਆਪਨ ਕਿੰਨੀ ਵਧੀਆ ਕਾਰਗੁਜ਼ਾਰੀ ਕਰਦਾ ਹੈ, ਉਸਨੂੰ ਮਾਪਣਾ</translation>
 <translation id="3647286794400715637">ਹਰੇਕ URL ਸਤਰ ਇੰਦਰਾਜ ਵਿੱਚ 1 ਤੋਂ 2 URL ਸ਼ਾਮਲ ਹੋਣੇ ਲਾਜ਼ਮੀ ਹਨ।</translation>
 <translation id="3647400963805615193">'Chrome ਸੰਬੰਧੀ ਨੁਕਤੇ ਨੂੰ ਖਾਰਜ ਕਰੋ' ਬਟਨ, ਖਾਰਜ ਕਰਨ ਲਈ Enter ਦਬਾਓ, <ph name="REMOVE_BUTTON_FOCUSED_FRIENDLY_MATCH_TEXT" /></translation>
@@ -4813,6 +4815,7 @@
 <translation id="9219103736887031265">ਚਿੱਤਰ</translation>
 <translation id="922152298093051471">Chrome ਨੂੰ ਵਿਉਂਤਬੱਧ ਕਰੋ</translation>
 <translation id="9222403027701923763">ਪ੍ਰਾਇਮਰੀ ਅਤੇ ਸੈਕੰਡਰੀ ਸਕੂਲ (K-12)</translation>
+<translation id="9222463428840654067">ਕਾਰਡ ਨੰਬਰ ਅਵੈਧ ਹੈ</translation>
 <translation id="922849469395748170">ਵਫ਼ਾਦਾਰੀ ਕਾਰਡ</translation>
 <translation id="93020190163435405">ਇੰਟਰਨਸ਼ਿਪਾਂ</translation>
 <translation id="931598121743515856">ਖਰੀਦ <ph name="CHECKOUT_AMOUNT_MINIMUM" /> ਤੋਂ ਵੱਧ ਦੀ ਹੋਣੀ ਲਾਜ਼ਮੀ ਹੈ</translation>
diff --git a/components/strings/components_strings_pl.xtb b/components/strings/components_strings_pl.xtb
index b92ef29..697f446 100644
--- a/components/strings/components_strings_pl.xtb
+++ b/components/strings/components_strings_pl.xtb
@@ -937,6 +937,7 @@
 <translation id="2546283357679194313">Pliki cookie i dane witryn</translation>
 <translation id="254947805923345898">Wartość zasady jest nieprawidłowa.</translation>
 <translation id="2549836668759467704">Doradztwo i usługi budowlane</translation>
+<translation id="2549919488151689436"><ph name="TOPIC_1" />, <ph name="TOPIC_2" /> i inne</translation>
 <translation id="255002559098805027">Serwer <ph name="HOST_NAME" /> wysłał nieprawidłową odpowiedź.</translation>
 <translation id="2551608178605132291">Adres: <ph name="ADDRESS" />.</translation>
 <translation id="2552246211866555379">Hagaki</translation>
@@ -4818,6 +4819,7 @@
 <translation id="9219103736887031265">Grafika</translation>
 <translation id="922152298093051471">Dostosuj Chrome</translation>
 <translation id="9222403027701923763">Nauka w szkołach podstawowych i średnich</translation>
+<translation id="9222463428840654067">Numer karty jest nieprawidłowy</translation>
 <translation id="922849469395748170">Karty lojalnościowe</translation>
 <translation id="93020190163435405">Staże</translation>
 <translation id="931598121743515856">Kwota zakupu musi przekraczać <ph name="CHECKOUT_AMOUNT_MINIMUM" /></translation>
diff --git a/components/strings/components_strings_pt-BR.xtb b/components/strings/components_strings_pt-BR.xtb
index d6274b0..76b549c 100644
--- a/components/strings/components_strings_pt-BR.xtb
+++ b/components/strings/components_strings_pt-BR.xtb
@@ -1564,6 +1564,7 @@
 <translation id="3641116835972736297">Futebol americano</translation>
 <translation id="3642196846309122856">Tente baixar os arquivos de novo</translation>
 <translation id="3642638418806704195">Aplicativo:</translation>
+<translation id="3644768007456662469">Ícone do item de pagamentos</translation>
 <translation id="3646643500201740985">Medir a performance de um anúncio</translation>
 <translation id="3647286794400715637">Cada entrada de string de URL precisa conter entre um e dois URLs.</translation>
 <translation id="3647400963805615193">Botão "Dispensar dica do Chrome", pressione Enter para dispensar, <ph name="REMOVE_BUTTON_FOCUSED_FRIENDLY_MATCH_TEXT" /></translation>
@@ -2100,11 +2101,13 @@
 <translation id="4530347922939905757">Mensagem de texto</translation>
 <translation id="4531477351494678589">Número do cartão virtual:</translation>
 <translation id="4535523368173457420">Esses mecanismos de pesquisa são os mais usados na sua região. Eles estão listados em ordem aleatória.</translation>
+<translation id="4539931187424170595">{NUM_YEARS,plural, =1{Criado há 1 ano}one{Criado há {NUM_YEARS} ano}other{Criado há {NUM_YEARS} anos}}</translation>
 <translation id="4541810033354695636">realidade aumentada</translation>
 <translation id="4542971377163063093">Bandeja 6</translation>
 <translation id="4543072026714825470">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="454441086898495030">Adicionar a <ph name="SET" />?</translation>
 <translation id="4546730006268514143">O tempo de transferência expirou</translation>
+<translation id="4548974025982531828">{NUM_DAYS,plural, =1{Criado há 1 dia}one{Criado há {NUM_DAYS} dia}other{Criado há {NUM_DAYS} dias}}</translation>
 <translation id="455113658016510503">A9</translation>
 <translation id="4556069465387849460">Você está usando o bloqueio de tela para preencher senhas</translation>
 <translation id="4557573143631562971">Seguro residencial</translation>
@@ -2898,6 +2901,7 @@
 <translation id="5938153366081463283">Adicionar cartão virtual</translation>
 <translation id="5938793338444039872">Troy</translation>
 <translation id="5938866385061293322">Essas informações vêm de sites de avaliações independentes, como Trustpilot, ScamAdviser, Google e outros. Os resumos são criados com IA.</translation>
+<translation id="5943775258256265106">{NUM_MINS,plural, =1{Criado há 1 minuto}one{Criado há {NUM_MINS} minuto}other{Criado há {NUM_MINS} minutos}}</translation>
 <translation id="5944297261866530437">Tecido (alto brilho)</translation>
 <translation id="5950901984834744590">Lâminas e barbeadores</translation>
 <translation id="5951495562196540101">Não é possível fazer a inscrição com a conta pessoal (pacote de licença disponível).</translation>
@@ -3955,7 +3959,7 @@
 <translation id="769424100851389104">Iniciar atualização agora</translation>
 <translation id="7697837508203274589">Eventos esportivos ao vivo</translation>
 <translation id="7698864304447945242">Atualizar o Google Play Services para RA?</translation>
-<translation id="7701040980221191251">Não há</translation>
+<translation id="7701040980221191251">Nenhum</translation>
 <translation id="7701486038694690341">Música country</translation>
 <translation id="7701544340847569275">Atualização concluída com erros</translation>
 <translation id="7704050614460855821"><ph name="BEGIN_LINK" />Ir para <ph name="SITE" /> (não seguro)<ph name="END_LINK" /></translation>
@@ -4059,6 +4063,7 @@
 <translation id="7894280532028510793">Se o endereço estiver correto, <ph name="BEGIN_LINK" />tente executar o Diagnóstico de Rede<ph name="END_LINK" />.</translation>
 <translation id="7901831439558593470">Envelope de 18 cm x 23 cm</translation>
 <translation id="7905064834449738336">Quando você usa uma senha, o Chromium avisa se ela foi publicada on-line. Quando isso é feito, as senhas e os nomes de usuário são criptografados para que não possam ser lidos por ninguém, nem mesmo o Google.</translation>
+<translation id="7906177144646315659">{NUM_HOURS,plural, =1{Criado há 1 hora}one{Criado há {NUM_HOURS} hora}other{Criado há {NUM_HOURS} horas}}</translation>
 <translation id="7908648876066812348">Ativando o cartão virtual</translation>
 <translation id="7909498058929404306"><ph name="RUN_CHROME_SAFETY_CHECK_FOCUSED_FRIENDLY_MATCH_TEXT" />. Pressione Tab e depois Enter para acessar a página de confirmação de segurança do Chrome nas configurações</translation>
 <translation id="791107458486222637">Botão "Refazer" pressionado</translation>
@@ -4193,6 +4198,7 @@
 <translation id="8134058435519644366">Recrutamento e contratação</translation>
 <translation id="8135546115396015134">tecla esquerda</translation>
 <translation id="8137456439814903304">Energia e serviços públicos</translation>
+<translation id="814432316791813431">{NUM_MONTHS,plural, =1{Criado há 1 mês}one{Criado há {NUM_MONTHS} mês}other{Criado há {NUM_MONTHS} meses}}</translation>
 <translation id="8148608574971654810">Versão do PDF:</translation>
 <translation id="8149426793427495338">Seu computador entrou em modo de suspensão.</translation>
 <translation id="8150722005171944719">O arquivo em <ph name="URL" /> não está legível. Ele pode ter sido removido ou movido, ou as permissões do arquivo podem estar impedindo o acesso.</translation>
diff --git a/components/strings/components_strings_pt-PT.xtb b/components/strings/components_strings_pt-PT.xtb
index 7cd6f9d..d8ccb10 100644
--- a/components/strings/components_strings_pt-PT.xtb
+++ b/components/strings/components_strings_pt-PT.xtb
@@ -937,6 +937,7 @@
 <translation id="2546283357679194313">Cookies e dados de Web sites</translation>
 <translation id="254947805923345898">O valor da política não é válido.</translation>
 <translation id="2549836668759467704">Consultoria e contratação de construção</translation>
+<translation id="2549919488151689436"><ph name="TOPIC_1" />, <ph name="TOPIC_2" /> e outros</translation>
 <translation id="255002559098805027"><ph name="HOST_NAME" /> enviou uma resposta inválida.</translation>
 <translation id="2551608178605132291">Morada: <ph name="ADDRESS" />.</translation>
 <translation id="2552246211866555379">Hagaki</translation>
@@ -4819,6 +4820,7 @@
 <translation id="9219103736887031265">Imagens</translation>
 <translation id="922152298093051471">Personalizar o Chrome</translation>
 <translation id="9222403027701923763">Ensino básico e secundário</translation>
+<translation id="9222463428840654067">O número do cartão é inválido</translation>
 <translation id="922849469395748170">Cartões de fidelidade</translation>
 <translation id="93020190163435405">Estágios</translation>
 <translation id="931598121743515856">A compra tem de ser superior a <ph name="CHECKOUT_AMOUNT_MINIMUM" /></translation>
diff --git a/components/strings/components_strings_ro.xtb b/components/strings/components_strings_ro.xtb
index ce9254e..55caa942 100644
--- a/components/strings/components_strings_ro.xtb
+++ b/components/strings/components_strings_ro.xtb
@@ -937,6 +937,7 @@
 <translation id="2546283357679194313">Cookie-uri și date privind site-ul</translation>
 <translation id="254947805923345898">Valoarea politicii nu este validă.</translation>
 <translation id="2549836668759467704">Consultanță și contractare pentru construcții</translation>
+<translation id="2549919488151689436"><ph name="TOPIC_1" />, <ph name="TOPIC_2" /> și altele</translation>
 <translation id="255002559098805027"><ph name="HOST_NAME" /> a trimis un răspuns nevalid.</translation>
 <translation id="2551608178605132291">Adresă: <ph name="ADDRESS" />.</translation>
 <translation id="2552246211866555379">Hagaki</translation>
@@ -1564,6 +1565,7 @@
 <translation id="3641116835972736297">Fotbal american</translation>
 <translation id="3642196846309122856">Încearcă să descarci din nou fișierele</translation>
 <translation id="3642638418806704195">Aplicație:</translation>
+<translation id="3644768007456662469">Pictograma articolului Plăți</translation>
 <translation id="3646643500201740985">Măsurarea performanței unui anunț</translation>
 <translation id="3647286794400715637">Fiecare intrare de șir de adrese URL trebuie să conțină una sau două adrese URL.</translation>
 <translation id="3647400963805615193">Butonul Închide sfatul Chrome, apasă pe Enter pentru a închide, <ph name="REMOVE_BUTTON_FOCUSED_FRIENDLY_MATCH_TEXT" /></translation>
@@ -2100,11 +2102,13 @@
 <translation id="4530347922939905757">Mesaj text</translation>
 <translation id="4531477351494678589">Numărul cardului virtual:</translation>
 <translation id="4535523368173457420">Aceste motoare de căutare sunt populare în regiunea ta și se afișează în ordine aleatorie</translation>
+<translation id="4539931187424170595">{NUM_YEARS,plural, =1{Creat acum un an}few{Creat acum {NUM_YEARS} ani}other{Creat acum {NUM_YEARS} de ani}}</translation>
 <translation id="4541810033354695636">Realitate augmentată</translation>
 <translation id="4542971377163063093">Tava 6</translation>
 <translation id="4543072026714825470">Pentru a plăti mai rapid data viitoare, salvează cardul și adresa de facturare în Contul Google</translation>
 <translation id="454441086898495030">Adaugi în <ph name="SET" />?</translation>
 <translation id="4546730006268514143">Transferul a expirat</translation>
+<translation id="4548974025982531828">{NUM_DAYS,plural, =1{Creat acum o zi}few{Creat acum {NUM_DAYS} zile}other{Creat acum {NUM_DAYS} de zile}}</translation>
 <translation id="455113658016510503">A9</translation>
 <translation id="4556069465387849460">Folosești blocarea ecranului pentru a completa parolele</translation>
 <translation id="4557573143631562971">Asigurarea casei</translation>
@@ -2898,6 +2902,7 @@
 <translation id="5938153366081463283">Adaugă un card virtual</translation>
 <translation id="5938793338444039872">Troy</translation>
 <translation id="5938866385061293322">Aceste informații provin de la site-uri independente de recenzii, cum ar fi Trustpilot, ScamAdviser, Google și altele. Rezumatele sunt create cu AI.</translation>
+<translation id="5943775258256265106">{NUM_MINS,plural, =1{Creat acum un minut}few{Creat acum {NUM_MINS} minute}other{Creat acum {NUM_MINS} de minute}}</translation>
 <translation id="5944297261866530437">Material textil (foarte lucios)</translation>
 <translation id="5950901984834744590">Aparate și lame de ras</translation>
 <translation id="5951495562196540101">Nu te poți înscrie cu contul de consumator (este disponibilă o licență din pachet).</translation>
@@ -4059,6 +4064,7 @@
 <translation id="7894280532028510793">Dacă scrierea este corectă, <ph name="BEGIN_LINK" />încearcă să rulezi Diagnosticarea rețelei<ph name="END_LINK" />.</translation>
 <translation id="7901831439558593470">Plic de 7 x 9 inchi</translation>
 <translation id="7905064834449738336">Când folosești o parolă, Chromium te avertizează dacă a fost publicată online. Când face acest lucru, parolele și numele tale de utilizator sunt criptate, astfel încât să nu fie descifrate de nimeni, nici măcar de Google.</translation>
+<translation id="7906177144646315659">{NUM_HOURS,plural, =1{Creat acum o oră}few{Creat acum {NUM_HOURS} ore}other{Creat acum {NUM_HOURS} de ore}}</translation>
 <translation id="7908648876066812348">Se activează cardul virtual</translation>
 <translation id="7909498058929404306"><ph name="RUN_CHROME_SAFETY_CHECK_FOCUSED_FRIENDLY_MATCH_TEXT" />, apasă pe Tab, apoi pe Enter pentru a accesa pagina Verificarea de siguranță din Chrome din setări</translation>
 <translation id="791107458486222637">Repetă</translation>
@@ -4193,6 +4199,7 @@
 <translation id="8134058435519644366">Recrutare și personal</translation>
 <translation id="8135546115396015134">tasta săgeată spre stânga</translation>
 <translation id="8137456439814903304">Energie și utilități</translation>
+<translation id="814432316791813431">{NUM_MONTHS,plural, =1{Creat acum o lună}few{Creat acum {NUM_MONTHS} luni}other{Creat acum {NUM_MONTHS} de luni}}</translation>
 <translation id="8148608574971654810">Versiune PDF:</translation>
 <translation id="8149426793427495338">Computerul este inactiv.</translation>
 <translation id="8150722005171944719">Fișierul de la <ph name="URL" /> nu poate fi citit.  Este posibil să fi fost eliminat ori mutat sau ca permisiunile pentru fișiere să împiedice accesarea acestuia.</translation>
@@ -4814,6 +4821,7 @@
 <translation id="9219103736887031265">Imagini</translation>
 <translation id="922152298093051471">Personalizează Chrome</translation>
 <translation id="9222403027701923763">Școală primară și secundară (grădiniță – clasa a 12-a)</translation>
+<translation id="9222463428840654067">Numărul de card nu este valid</translation>
 <translation id="922849469395748170">Carduri de fidelitate</translation>
 <translation id="93020190163435405">Stagii</translation>
 <translation id="931598121743515856">Achiziția trebuie să aibă o valoare de peste <ph name="CHECKOUT_AMOUNT_MINIMUM" /></translation>
diff --git a/components/strings/components_strings_ru.xtb b/components/strings/components_strings_ru.xtb
index 54584c7..58b91c4 100644
--- a/components/strings/components_strings_ru.xtb
+++ b/components/strings/components_strings_ru.xtb
@@ -1563,6 +1563,7 @@
 <translation id="3641116835972736297">Американский футбол</translation>
 <translation id="3642196846309122856">Попробуйте скачать файлы ещё раз.</translation>
 <translation id="3642638418806704195">Приложение:</translation>
+<translation id="3644768007456662469">Значок объекта, связанного с платежами</translation>
 <translation id="3646643500201740985">Оценка эффективности рекламы</translation>
 <translation id="3647286794400715637">Каждая запись должна содержать 1–2 URL.</translation>
 <translation id="3647400963805615193">Кнопка "Закрыть совет по работе с Chrome". Для выполнения действия нажмите Ввод. <ph name="REMOVE_BUTTON_FOCUSED_FRIENDLY_MATCH_TEXT" />.</translation>
diff --git a/components/strings/components_strings_si.xtb b/components/strings/components_strings_si.xtb
index b36f2e6c..07a21e3 100644
--- a/components/strings/components_strings_si.xtb
+++ b/components/strings/components_strings_si.xtb
@@ -1564,6 +1564,7 @@
 <translation id="3641116835972736297">ඇමරිකානු පාපන්දු</translation>
 <translation id="3642196846309122856">ඔබේ ගොනු නැවත බාගැනීමට උත්සාහ කරන්න</translation>
 <translation id="3642638418806704195">යෙදුම:</translation>
+<translation id="3644768007456662469">ගෙවීම් අයිතම නිරූපකය</translation>
 <translation id="3646643500201740985">දැන්වීමක් කෙතරම් හොඳින් ක්‍රියාත්මක වේ ද යන්න මැන බැලීම</translation>
 <translation id="3647286794400715637">සෑම url තන්තු ප්‍රවේශයකම URL 1ක් 2ක් අඩංගු විය යුතුය.</translation>
 <translation id="3647400963805615193">Chrome ඉඟි බොත්තම අස් කරන්න, අස් කිරීමට Enter ඔබන්න, <ph name="REMOVE_BUTTON_FOCUSED_FRIENDLY_MATCH_TEXT" /></translation>
diff --git a/components/strings/components_strings_sk.xtb b/components/strings/components_strings_sk.xtb
index 23e7371..d70c336 100644
--- a/components/strings/components_strings_sk.xtb
+++ b/components/strings/components_strings_sk.xtb
@@ -1560,6 +1560,7 @@
 <translation id="3641116835972736297">Americký futbal</translation>
 <translation id="3642196846309122856">Skúste súbory znova stiahnuť</translation>
 <translation id="3642638418806704195">Aplikácia:</translation>
+<translation id="3644768007456662469">Ikona platobnej položky</translation>
 <translation id="3646643500201740985">Meranie výkonnosti reklamy</translation>
 <translation id="3647286794400715637">Každý záznam reťazca webovej adresy musí obsahovať jednu až dve webové adresy.</translation>
 <translation id="3647400963805615193">Tlačidlo Zavrieť tip pre Chrome, zavrite stlačením klávesa Enter, <ph name="REMOVE_BUTTON_FOCUSED_FRIENDLY_MATCH_TEXT" /></translation>
@@ -2096,11 +2097,13 @@
 <translation id="4530347922939905757">Textová správa</translation>
 <translation id="4531477351494678589">Číslo virtuálnej karty:</translation>
 <translation id="4535523368173457420">Tieto vyhľadávače sú vo vašej oblasti populárne a zobrazujú sa v náhodnom poradí</translation>
+<translation id="4539931187424170595">{NUM_YEARS,plural, =1{Vytvorená pred 1 rokom}few{Vytvorená pred {NUM_YEARS} rokmi}many{Vytvorená pred {NUM_YEARS} roka}other{Vytvorená pred {NUM_YEARS} rokmi}}</translation>
 <translation id="4541810033354695636">rozšírená realita</translation>
 <translation id="4542971377163063093">Priehradka č. 6</translation>
 <translation id="4543072026714825470">Ak chcete nabudúce zaplatiť rýchlejšie, uložte si kartu a fakturačnú adresu do účtu Google</translation>
 <translation id="454441086898495030">Chcete pridať do skupiny <ph name="SET" />?</translation>
 <translation id="4546730006268514143">Vypršal čas prenosu</translation>
+<translation id="4548974025982531828">{NUM_DAYS,plural, =1{Vytvorené pred 1 dňom}few{Vytvorená pred {NUM_DAYS} dňami}many{Vytvorená pred {NUM_DAYS} dňa}other{Vytvorená pred {NUM_DAYS} dňami}}</translation>
 <translation id="455113658016510503">A9</translation>
 <translation id="4556069465387849460">Pri vypĺňaní hesiel používate zámku obrazovky</translation>
 <translation id="4557573143631562971">Poistenie domácností</translation>
@@ -2894,6 +2897,7 @@
 <translation id="5938153366081463283">Pridajte si virtuálnu kartu</translation>
 <translation id="5938793338444039872">Troy</translation>
 <translation id="5938866385061293322">Tieto informácie pochádzajú z nezávislých webov s recenziami, ako sú Trustpilot, ScamAdviser, Google a ďalšie. Zhrnutia sú vytvorené pomocou umelej inteligencie.</translation>
+<translation id="5943775258256265106">{NUM_MINS,plural, =1{Vytvorená pred 1 minútou}few{Vytvorená pred {NUM_MINS} minútami}many{Vytvorená pred {NUM_MINS} minúty}other{Vytvorená pred {NUM_MINS} minútami}}</translation>
 <translation id="5944297261866530437">Látka (vysoký lesk)</translation>
 <translation id="5950901984834744590">Holiace strojčeky</translation>
 <translation id="5951495562196540101">Nemôžete sa zaregistrovať spotrebiteľským účtom (k dispozícii je licencia v balíčku).</translation>
@@ -4054,6 +4058,7 @@
 <translation id="7894280532028510793">Ak je pravopis správny, <ph name="BEGIN_LINK" />skúste spustiť nástroj Network Diagnostics<ph name="END_LINK" />.</translation>
 <translation id="7901831439558593470">Obálka 177,8 mm × 228,6 mm</translation>
 <translation id="7905064834449738336">Keď používate heslo, Chromium vás upozorní, ak bude zverejnené na internete. Vaše heslá a používateľské mená sú pritom šifrované, aby ich nikto nemohol prečítať (ani Google).</translation>
+<translation id="7906177144646315659">{NUM_HOURS,plural, =1{Vytvorená pred 1 hodinou}few{Vytvorená pred {NUM_HOURS} hodinami}many{Vytvorená pred {NUM_HOURS} hodiny}other{Vytvorená pred {NUM_HOURS} hodinami}}</translation>
 <translation id="7908648876066812348">Zapína sa virtuálna karta</translation>
 <translation id="7909498058929404306"><ph name="RUN_CHROME_SAFETY_CHECK_FOCUSED_FRIENDLY_MATCH_TEXT" />, stlačením klávesov Tab a potom Enter prejdite na stránku kontroly bezpečnosti Chromu v nastaveniach</translation>
 <translation id="791107458486222637">Zopakovanie výsledku</translation>
@@ -4188,6 +4193,7 @@
 <translation id="8134058435519644366">Nábor a personalistika</translation>
 <translation id="8135546115396015134">ľavý kláves</translation>
 <translation id="8137456439814903304">Energia a služby</translation>
+<translation id="814432316791813431">{NUM_MONTHS,plural, =1{Vytvorená pred 1 mesiacom}few{Vytvorená pred {NUM_MONTHS} mesiacmi}many{Vytvorená pred {NUM_MONTHS} mesiaca}other{Vytvorená pred {NUM_MONTHS} mesiacmi}}</translation>
 <translation id="8148608574971654810">Verzia PDF:</translation>
 <translation id="8149426793427495338">Váš počítač prešiel do režimu spánku.</translation>
 <translation id="8150722005171944719">Súbor na adrese <ph name="URL" /> nie je možné prečítať. Je možné, že bol odstránený, presunutý alebo môžu v prístupe brániť povolenia súboru.</translation>
diff --git a/components/strings/components_strings_sl.xtb b/components/strings/components_strings_sl.xtb
index 3984dbc2..771a089 100644
--- a/components/strings/components_strings_sl.xtb
+++ b/components/strings/components_strings_sl.xtb
@@ -1564,6 +1564,7 @@
 <translation id="3641116835972736297">Ameriški nogomet</translation>
 <translation id="3642196846309122856">Poskusite znova prenesti datoteke</translation>
 <translation id="3642638418806704195">Program:</translation>
+<translation id="3644768007456662469">Ikona elementa za plačilo</translation>
 <translation id="3646643500201740985">Merjenje uspešnosti oglasa</translation>
 <translation id="3647286794400715637">Vsak vnos z nizom URL-jev mora vsebovati od 1 do 2 URL-ja.</translation>
 <translation id="3647400963805615193">Gumb za opustitev nasveta za Chrome, pritisnite Enter, če želite opustiti, <ph name="REMOVE_BUTTON_FOCUSED_FRIENDLY_MATCH_TEXT" /></translation>
@@ -2100,11 +2101,13 @@
 <translation id="4530347922939905757">Sporočilo SMS</translation>
 <translation id="4531477351494678589">Številka navidezne kartice:</translation>
 <translation id="4535523368173457420">Ti iskalniki so priljubljeni na vašem območju in so prikazani v naključnem vrstnem redu</translation>
+<translation id="4539931187424170595">{NUM_YEARS,plural, =1{Ustvarjeno pred 1 letom}one{Ustvarjeno pred {NUM_YEARS} letom}two{Ustvarjeno pred {NUM_YEARS} letoma}few{Ustvarjeno pred {NUM_YEARS} leti}other{Ustvarjeno pred {NUM_YEARS} leti}}</translation>
 <translation id="4541810033354695636">razširjena resničnost</translation>
 <translation id="4542971377163063093">Pladenj 6</translation>
 <translation id="4543072026714825470">Če želite naslednjič hitreje plačati, shranite kartico in naslov za izstavitev računa v računu Google</translation>
 <translation id="454441086898495030">Želite dodati v »<ph name="SET" />«?</translation>
 <translation id="4546730006268514143">Časovna omejitev za prenos je potekla</translation>
+<translation id="4548974025982531828">{NUM_DAYS,plural, =1{Ustvarjeno pred 1 dnevom}one{Ustvarjeno pred {NUM_DAYS} dnevom}two{Ustvarjeno pred {NUM_DAYS} dnevoma}few{Ustvarjeno pred {NUM_DAYS} dnevi}other{Ustvarjeno pred {NUM_DAYS} dnevi}}</translation>
 <translation id="455113658016510503">A9</translation>
 <translation id="4556069465387849460">Zaklepanje zaslona uporabljate za izpolnjevanje gesel</translation>
 <translation id="4557573143631562971">Zavarovanje nepremičnin</translation>
@@ -2898,6 +2901,7 @@
 <translation id="5938153366081463283">Dodaj navidezno kartico</translation>
 <translation id="5938793338444039872">Troy</translation>
 <translation id="5938866385061293322">Te informacije izvirajo iz neodvisnih spletnih mest z mnenji, kot so Trustpilot, ScamAdviser, Google in druga. Povzetki so ustvarjeni z umetno inteligenco.</translation>
+<translation id="5943775258256265106">{NUM_MINS,plural, =1{Ustvarjeno pred 1 minuto}one{Ustvarjeno pred {NUM_MINS} minuto}two{Ustvarjeno pred {NUM_MINS} minutama}few{Ustvarjeno pred {NUM_MINS} minutami}other{Ustvarjeno pred {NUM_MINS} minutami}}</translation>
 <translation id="5944297261866530437">Fabric (High-Gloss)</translation>
 <translation id="5950901984834744590">Britvice in brivniki</translation>
 <translation id="5951495562196540101">S potrošniškim računom se ni mogoče včlaniti (na voljo je pridružena licenca).</translation>
@@ -4059,6 +4063,7 @@
 <translation id="7894280532028510793">Če je črkovanje pravilno, <ph name="BEGIN_LINK" />poskušajte zagnati orodje za omrežno diagnostiko<ph name="END_LINK" />.</translation>
 <translation id="7901831439558593470">Kuverta 7 x 9 palcev</translation>
 <translation id="7905064834449738336">Ko uporabite geslo, vas Chromium opozori, če je bilo objavljeno v spletu. Pri tem so vaša gesla in uporabniška imena šifrirana, da jih ne more prebrati nihče, vključno z Googlom.</translation>
+<translation id="7906177144646315659">{NUM_HOURS,plural, =1{Ustvarjeno pred 1 uro}one{Ustvarjeno pred {NUM_HOURS} uro}two{Ustvarjeno pred {NUM_HOURS} urama}few{Ustvarjeno pred {NUM_HOURS} urami}other{Ustvarjeno pred {NUM_HOURS} urami}}</translation>
 <translation id="7908648876066812348">Vklapljanje navidezne kartice</translation>
 <translation id="7909498058929404306"><ph name="RUN_CHROME_SAFETY_CHECK_FOCUSED_FRIENDLY_MATCH_TEXT" />, pritisnite tabulatorko, nato Enter, če želite v nastavitvah odpreti stran za varnostno preverjanje v Chromu</translation>
 <translation id="791107458486222637">Uveljavitev rezultata</translation>
@@ -4193,6 +4198,7 @@
 <translation id="8134058435519644366">Zaposlovanje in kadrovanje</translation>
 <translation id="8135546115396015134">tipka levo</translation>
 <translation id="8137456439814903304">Energetika in komunalne službe</translation>
+<translation id="814432316791813431">{NUM_MONTHS,plural, =1{Ustvarjeno pred 1 mesecem}one{Ustvarjeno pred {NUM_MONTHS} mesecem}two{Ustvarjeno pred {NUM_MONTHS} mesecema}few{Ustvarjeno pred {NUM_MONTHS} meseci}other{Ustvarjeno pred {NUM_MONTHS} meseci}}</translation>
 <translation id="8148608574971654810">Različica dokumenta PDF:</translation>
 <translation id="8149426793427495338">Računalnik je preklopil v stanje pripravljenosti.</translation>
 <translation id="8150722005171944719">Datoteke na <ph name="URL" /> ni mogoče prebrati. Morda je odstranjena, premaknjena ali pa dostop preprečujejo dovoljenja za datoteke.</translation>
diff --git a/components/strings/components_strings_sq.xtb b/components/strings/components_strings_sq.xtb
index 115139692..ce2f63a 100644
--- a/components/strings/components_strings_sq.xtb
+++ b/components/strings/components_strings_sq.xtb
@@ -1564,6 +1564,7 @@
 <translation id="3641116835972736297">Futboll amerikan</translation>
 <translation id="3642196846309122856">Provo t'i shkarkosh përsëri skedarët e tu</translation>
 <translation id="3642638418806704195">Aplikacioni:</translation>
+<translation id="3644768007456662469">Ikona e artikullit të pagesave</translation>
 <translation id="3646643500201740985">Matja se sa mirë po funksionon një reklamë</translation>
 <translation id="3647286794400715637">Çdo hyrje e vargjeve të URL-ve duhet të përfshijë nga 1 deri në 2 URL.</translation>
 <translation id="3647400963805615193">Butoni "Hiq këshillën për Chrome". Shtyp "Enter" për ta hequr, <ph name="REMOVE_BUTTON_FOCUSED_FRIENDLY_MATCH_TEXT" /></translation>
@@ -2100,11 +2101,13 @@
 <translation id="4530347922939905757">Mesazhi me tekst</translation>
 <translation id="4531477351494678589">Numri i kartës virtuale:</translation>
 <translation id="4535523368173457420">Këta motorë kërkimi janë të njohur në rajonin tënd dhe shfaqen në renditje të rastësishme</translation>
+<translation id="4539931187424170595">{NUM_YEARS,plural, =1{Krijuar 1 vit më parë}other{Krijuar {NUM_YEARS} vite më parë}}</translation>
 <translation id="4541810033354695636">realiteti i zgjeruar</translation>
 <translation id="4542971377163063093">Tabakaja 6</translation>
 <translation id="4543072026714825470">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="454441086898495030">Të shtohet në "<ph name="SET" />"?</translation>
 <translation id="4546730006268514143">Koha e transferimit skadoi</translation>
+<translation id="4548974025982531828">{NUM_DAYS,plural, =1{Krijuar 1 ditë më parë}other{Krijuar {NUM_DAYS} ditë më parë}}</translation>
 <translation id="455113658016510503">A9</translation>
 <translation id="4556069465387849460">Po përdor kyçjen e ekranit për plotësimin e fjalëkalimeve</translation>
 <translation id="4557573143631562971">Sigurimi i shtëpisë</translation>
@@ -2898,6 +2901,7 @@
 <translation id="5938153366081463283">Shto kartë virtuale</translation>
 <translation id="5938793338444039872">Troy</translation>
 <translation id="5938866385061293322">Këto informacione vijnë nga uebsajte të pavarura të komenteve, si p.sh. Trustpilot, ScamAdviser, Google etj. Përmbledhjet krijohen me IA-në.</translation>
+<translation id="5943775258256265106">{NUM_MINS,plural, =1{Krijuar 1 minutë më parë}other{Krijuar {NUM_MINS} minuta më parë}}</translation>
 <translation id="5944297261866530437">Pëlhurë (me shumë shkëlqim)</translation>
 <translation id="5950901984834744590">Brisqe dhe makina rroje</translation>
 <translation id="5951495562196540101">Nuk mund të regjistrohesh me një llogari konsumatori (ofrohet një licencë paketë).</translation>
@@ -4057,6 +4061,7 @@
 <translation id="7894280532028510793">Nëse nuk ka ndonjë gabim drejtshkrimor, <ph name="BEGIN_LINK" />provo të ekzekutosh "Diagnostikimin e rrjetit"<ph name="END_LINK" />.</translation>
 <translation id="7901831439558593470">Zarf 7 x 9 inç</translation>
 <translation id="7905064834449738336">Kur përdor një fjalëkalim, Chromium të paralajmëron nëse ai është publikuar online. Kur vepron kështu, fjalëkalimet dhe emrat e tu të përdoruesit enkriptohen, në mënyrë që të mos lexohen nga askush, duke përfshirë Google.</translation>
+<translation id="7906177144646315659">{NUM_HOURS,plural, =1{Krijuar 1 orë më parë}other{Krijuar {NUM_HOURS} orë më parë}}</translation>
 <translation id="7908648876066812348">Karta virtuale po aktivizohet</translation>
 <translation id="7909498058929404306"><ph name="RUN_CHROME_SAFETY_CHECK_FOCUSED_FRIENDLY_MATCH_TEXT" />, shtyp "Tab" dhe më pas "Enter" për të shkuar te faqja e kontrollit të sigurisë të Chrome te cilësimet</translation>
 <translation id="791107458486222637">Po ribëhen rezultatet</translation>
@@ -4191,6 +4196,7 @@
 <translation id="8134058435519644366">Rekrutimi i personelit</translation>
 <translation id="8135546115396015134">tasti majtas</translation>
 <translation id="8137456439814903304">Energjia dhe shërbimet utilitare</translation>
+<translation id="814432316791813431">{NUM_MONTHS,plural, =1{Krijuar 1 muaj më parë}other{Krijuar {NUM_MONTHS} muaj më parë}}</translation>
 <translation id="8148608574971654810">Versioni i PDF-së:</translation>
 <translation id="8149426793427495338">Kompjuteri yt kaloi në gjumë.</translation>
 <translation id="8150722005171944719">Skedari në <ph name="URL" /> nuk është i lexueshëm: mund të jetë hequr, lëvizur ose lejet e tij mund të pengojnë qasjen.</translation>
diff --git a/components/strings/components_strings_sr-Latn.xtb b/components/strings/components_strings_sr-Latn.xtb
index 04ba9443..8d590e64 100644
--- a/components/strings/components_strings_sr-Latn.xtb
+++ b/components/strings/components_strings_sr-Latn.xtb
@@ -937,6 +937,7 @@
 <translation id="2546283357679194313">Kolačići i podaci o sajtovima</translation>
 <translation id="254947805923345898">Vrednost smernica nije važeća.</translation>
 <translation id="2549836668759467704">Savetodavne usluge i izvođenje radova u građevinarstvu</translation>
+<translation id="2549919488151689436"><ph name="TOPIC_1" />, <ph name="TOPIC_2" /> i drugo</translation>
 <translation id="255002559098805027">Host <ph name="HOST_NAME" /> je poslao nevažeći odgovor.</translation>
 <translation id="2551608178605132291">Adresa: <ph name="ADDRESS" />.</translation>
 <translation id="2552246211866555379">Razglednica</translation>
@@ -4819,6 +4820,7 @@
 <translation id="9219103736887031265">Slike</translation>
 <translation id="922152298093051471">Prilagodite Chrome</translation>
 <translation id="9222403027701923763">Osnovno i srednje obrazovanje (K-12)</translation>
+<translation id="9222463428840654067">Broj kartice je nevažeći</translation>
 <translation id="922849469395748170">Kartice lojalnosti</translation>
 <translation id="93020190163435405">Stažiranje</translation>
 <translation id="931598121743515856">Iznos kupovine mora da bude iznad <ph name="CHECKOUT_AMOUNT_MINIMUM" /></translation>
diff --git a/components/strings/components_strings_sr.xtb b/components/strings/components_strings_sr.xtb
index d417623..a87e655 100644
--- a/components/strings/components_strings_sr.xtb
+++ b/components/strings/components_strings_sr.xtb
@@ -937,6 +937,7 @@
 <translation id="2546283357679194313">Колачићи и подаци о сајтовима</translation>
 <translation id="254947805923345898">Вредност смерница није важећа.</translation>
 <translation id="2549836668759467704">Саветодавне услуге и извођење радова у грађевинарству</translation>
+<translation id="2549919488151689436"><ph name="TOPIC_1" />, <ph name="TOPIC_2" /> и друго</translation>
 <translation id="255002559098805027">Хост <ph name="HOST_NAME" /> је послао неважећи одговор.</translation>
 <translation id="2551608178605132291">Адреса: <ph name="ADDRESS" />.</translation>
 <translation id="2552246211866555379">Разгледница</translation>
@@ -4819,6 +4820,7 @@
 <translation id="9219103736887031265">Слике</translation>
 <translation id="922152298093051471">Прилагодите Chrome</translation>
 <translation id="9222403027701923763">Основно и средње образовање (K-12)</translation>
+<translation id="9222463428840654067">Број картице је неважећи</translation>
 <translation id="922849469395748170">Картице лојалности</translation>
 <translation id="93020190163435405">Стажирање</translation>
 <translation id="931598121743515856">Износ куповине мора да буде изнад <ph name="CHECKOUT_AMOUNT_MINIMUM" /></translation>
diff --git a/components/strings/components_strings_sv.xtb b/components/strings/components_strings_sv.xtb
index cc4d2580..9968f6e0 100644
--- a/components/strings/components_strings_sv.xtb
+++ b/components/strings/components_strings_sv.xtb
@@ -1564,6 +1564,7 @@
 <translation id="3641116835972736297">Amerikansk fotboll</translation>
 <translation id="3642196846309122856">Testa att ladda ned filerna igen</translation>
 <translation id="3642638418806704195">Program:</translation>
+<translation id="3644768007456662469">Objektikon för betalningar</translation>
 <translation id="3646643500201740985">Mäta hur bra resultatet är för en annons</translation>
 <translation id="3647286794400715637">Varje webbadressträng måste innehålla en till två webbadresser.</translation>
 <translation id="3647400963805615193">Knapp för att stänga Chrome-tips, tryck på Retur för att stänga, <ph name="REMOVE_BUTTON_FOCUSED_FRIENDLY_MATCH_TEXT" /></translation>
@@ -2100,11 +2101,13 @@
 <translation id="4530347922939905757">Sms</translation>
 <translation id="4531477351494678589">Virtuellt kortnummer:</translation>
 <translation id="4535523368173457420">Dessa sökmotorer är populära i din region och visas i slumpmässig ordning</translation>
+<translation id="4539931187424170595">{NUM_YEARS,plural, =1{Skapades för 1 år sedan}other{Skapades för {NUM_YEARS} år sedan}}</translation>
 <translation id="4541810033354695636">förstärkt verklighet</translation>
 <translation id="4542971377163063093">Fack 6</translation>
 <translation id="4543072026714825470">Spara kortet och faktureringsadressen i Google-kontot så går det snabbare att betala nästa gång</translation>
 <translation id="454441086898495030">Vill du lägga till i <ph name="SET" />?</translation>
 <translation id="4546730006268514143">Tidsgränsen för överföringen överskreds</translation>
+<translation id="4548974025982531828">{NUM_DAYS,plural, =1{Skapades för 1 dag sedan}other{Skapades för {NUM_DAYS} dagar sedan}}</translation>
 <translation id="455113658016510503">A9</translation>
 <translation id="4556069465387849460">Du använder skärmlåset för att fylla i lösenord</translation>
 <translation id="4557573143631562971">Hemförsäkringar</translation>
@@ -2898,6 +2901,7 @@
 <translation id="5938153366081463283">Lägg till ett virtuellt kort</translation>
 <translation id="5938793338444039872">Troy</translation>
 <translation id="5938866385061293322">Informationen kommer från oberoende webbplatser med recensioner som Trustpilot, ScamAdviser och Google. Sammanfattningar skapas med AI.</translation>
+<translation id="5943775258256265106">{NUM_MINS,plural, =1{Skapades för 1 minut sedan}other{Skapades för {NUM_MINS} minuter sedan}}</translation>
 <translation id="5944297261866530437">Tyg (högblankt)</translation>
 <translation id="5950901984834744590">Rakhyvlar och rakapparater</translation>
 <translation id="5951495562196540101">Det går inte att registrera enheten med ett konsumentkonto (paketerad licens är tillgänglig).</translation>
@@ -4059,6 +4063,7 @@
 <translation id="7894280532028510793">Om stavningen är rätt <ph name="BEGIN_LINK" />testar du att köra nätverksdiagnostik<ph name="END_LINK" />.</translation>
 <translation id="7901831439558593470">Kuvert, 7 x 9 tum</translation>
 <translation id="7905064834449738336">När du använder ett lösenord visas en varning i Chromium om det har publicerats online. Under kontrollen krypteras dina lösenord och användarnamn så att varken Google eller någon annan kan läsa dem.</translation>
+<translation id="7906177144646315659">{NUM_HOURS,plural, =1{Skapades för 1 timme sedan}other{Skapades för {NUM_HOURS} timmar sedan}}</translation>
 <translation id="7908648876066812348">Aktiverar virtuella kort</translation>
 <translation id="7909498058929404306"><ph name="RUN_CHROME_SAFETY_CHECK_FOCUSED_FRIENDLY_MATCH_TEXT" />: tryck på Tabb och sedan på Retur för att öppna sidan Säkerhetskontroll i Chrome-inställningarna</translation>
 <translation id="791107458486222637">Gör om resultatet</translation>
@@ -4193,6 +4198,7 @@
 <translation id="8134058435519644366">Rekrytering och bemanning</translation>
 <translation id="8135546115396015134">vänstertangent</translation>
 <translation id="8137456439814903304">Energi och energiproduktion</translation>
+<translation id="814432316791813431">{NUM_MONTHS,plural, =1{Skapades för 1 månad sedan}other{Skapades för {NUM_MONTHS} månader sedan}}</translation>
 <translation id="8148608574971654810">PDF-version:</translation>
 <translation id="8149426793427495338">Datorn gick i viloläge.</translation>
 <translation id="8150722005171944719">Det går inte att läsa filen på <ph name="URL" />. Den kan ha tagits bort eller flyttats, eller så krävs behörighet för att få åtkomst till den.</translation>
diff --git a/components/strings/components_strings_ta.xtb b/components/strings/components_strings_ta.xtb
index 9f828a6..e54a9c48 100644
--- a/components/strings/components_strings_ta.xtb
+++ b/components/strings/components_strings_ta.xtb
@@ -1560,6 +1560,7 @@
 <translation id="3641116835972736297">அமெரிக்க கால்பந்து</translation>
 <translation id="3642196846309122856">ஃபைல்களை மீண்டும் பதிவிறக்க முயலவும்</translation>
 <translation id="3642638418806704195">ஆப்ஸ்:</translation>
+<translation id="3644768007456662469">பேமெண்ட் விவரங்களுக்கான ஐகான்</translation>
 <translation id="3646643500201740985">விளம்பரம் எவ்வளவு சிறப்பாகச் செயல்படுகிறது என்பதை அளவிடுதல்</translation>
 <translation id="3647286794400715637">ஒவ்வொரு URLலுக்கும் அதன் வார்த்தைகள் பகுதியில் 1 முதல் 2 URLகள் வரை இருக்க வேண்டும்.</translation>
 <translation id="3647400963805615193">Chrome உதவிக்குறிப்பை மூடும் பட்டன், மூட Enter அழுத்தவும், <ph name="REMOVE_BUTTON_FOCUSED_FRIENDLY_MATCH_TEXT" /></translation>
@@ -2096,11 +2097,13 @@
 <translation id="4530347922939905757">மெசேஜ்</translation>
 <translation id="4531477351494678589">விர்ச்சுவல் கார்டு எண்:</translation>
 <translation id="4535523368173457420">உங்கள் பகுதியில் மிகவும் பிரபலமான இந்தத் தேடல் இன்ஜின்கள் ரேண்டமான வரிசையில் காட்டப்படுகின்றன</translation>
+<translation id="4539931187424170595">{NUM_YEARS,plural, =1{1 வருடத்திற்கு முன் உருவாக்கப்பட்டது}other{{NUM_YEARS} வருடங்களுக்கு முன் உருவாக்கப்பட்டது}}</translation>
 <translation id="4541810033354695636">ஆக்மென்ட்டட் ரியாலிட்டி</translation>
 <translation id="4542971377163063093">தட்டு 6</translation>
 <translation id="4543072026714825470">அடுத்த முறை விரைவாகப் பணம் செலுத்த, உங்கள் கார்டையும் பில்லிங் முகவரியையும் Google கணக்கில் சேமித்திடுங்கள்</translation>
 <translation id="454441086898495030"><ph name="SET" /> இல் சேர்க்க வேண்டுமா?</translation>
 <translation id="4546730006268514143">மாற்றுவதற்கான நேரம் முடிந்தது</translation>
+<translation id="4548974025982531828">{NUM_DAYS,plural, =1{1 நாளுக்கு முன் உருவாக்கப்பட்டது}other{{NUM_DAYS} நாட்களுக்கு முன் உருவாக்கப்பட்டது}}</translation>
 <translation id="455113658016510503">A9</translation>
 <translation id="4556069465387849460">கடவுச்சொற்களை நிரப்புவதற்காக உங்கள் திரைப்பூட்டைப் பயன்படுத்துகிறீர்கள்</translation>
 <translation id="4557573143631562971">வீட்டுக் காப்பீடு</translation>
@@ -2894,6 +2897,7 @@
 <translation id="5938153366081463283">விர்ச்சுவல் கார்டைச் சேர்க்கும்</translation>
 <translation id="5938793338444039872">Troy</translation>
 <translation id="5938866385061293322">இந்தத் தகவல் Trustpilot, ScamAdviser, Google, போன்ற சார்பற்ற மதிப்பாய்வு இணையதளங்களில் இருந்து பெறப்படுகிறது. சுருக்க விவரங்கள் AI மூலம் உருவாக்கப்படுகின்றன.</translation>
+<translation id="5943775258256265106">{NUM_MINS,plural, =1{1 நிமிடத்திற்கு முன் உருவாக்கப்பட்டது}other{{NUM_MINS} நிமிடங்களுக்கு முன் உருவாக்கப்பட்டது}}</translation>
 <translation id="5944297261866530437">ஹை க்ளாஸ்ஸி ஃபேப்ரிக்</translation>
 <translation id="5950901984834744590">ரேசர்கள் மற்றும் ஷேவர்கள்</translation>
 <translation id="5951495562196540101">நுகர்வோர் கணக்கில் பதிவுசெய்ய முடியவில்லை (தொகுக்கப்பட்ட உரிமம் உள்ளது).</translation>
@@ -4054,6 +4058,7 @@
 <translation id="7894280532028510793">எழுத்துப்பிழை இல்லையெனில் <ph name="BEGIN_LINK" />நெட்வொர்க் சரிபார்ப்பை இயக்கிப் பார்க்கவும்<ph name="END_LINK" />.</translation>
 <translation id="7901831439558593470">என்வெலப் 7 x 9 இன்ச்</translation>
 <translation id="7905064834449738336">நீங்கள் ஒரு கடவுச்சொல்லைப் பயன்படுத்தும்போது, அது ஆன்லைனில் ஏற்கெனவே வெளியாகி இருந்தால் அது குறித்து Chromium உங்களை எச்சரிக்கும். இதைச் செய்யும்போது உங்கள் கடவுச்சொற்களும் பயனர்பெயர்களும் என்கிரிப்ஷன் செய்யப்படுவதால் Google உட்பட எவராலும் அவற்றைக் கண்டறிய முடியாது.</translation>
+<translation id="7906177144646315659">{NUM_HOURS,plural, =1{1 மணிநேரத்திற்கு முன் உருவாக்கப்பட்டது}other{{NUM_HOURS} மணிநேரத்திற்கு முன் உருவாக்கப்பட்டது}}</translation>
 <translation id="7908648876066812348">விர்ச்சுவல் கார்டை இயக்குகிறது</translation>
 <translation id="7909498058929404306"><ph name="RUN_CHROME_SAFETY_CHECK_FOCUSED_FRIENDLY_MATCH_TEXT" />, அமைப்புகளில் உள்ள Chrome பாதுகாப்புச் சரிபார்ப்பு பக்கத்திற்குச் செல்ல, Tab பட்டனை அழுத்திவிட்டு Enter பட்டனை அழுத்தவும்</translation>
 <translation id="791107458486222637">மீண்டும்செய்கிறது</translation>
@@ -4188,6 +4193,7 @@
 <translation id="8134058435519644366">ஆட்சேர்ப்பு &amp; பணியமர்த்துதல்</translation>
 <translation id="8135546115396015134">இடது அம்புக்குறி</translation>
 <translation id="8137456439814903304">ஆற்றல் மற்றும் யூட்டிலிட்டிகள்</translation>
+<translation id="814432316791813431">{NUM_MONTHS,plural, =1{1 மாதத்திற்கு முன் உருவாக்கப்பட்டது}other{{NUM_MONTHS} மாதங்களுக்கு முன் உருவாக்கப்பட்டது}}</translation>
 <translation id="8148608574971654810">PDF பதிப்பு:</translation>
 <translation id="8149426793427495338">உங்கள் கம்ப்யூட்டர் உறக்கநிலைக்குச் சென்றது.</translation>
 <translation id="8150722005171944719"><ph name="URL" /> இல் உள்ள ஃபைல் படிக்கக் கூடியதாக இல்லை. அது அகற்றப்பட்டிருக்கலாம், நகர்த்தப்பட்டிருக்கலாம் அல்லது ஃபைல் அனுமதிகள் அணுகலைத் தடுத்திருக்கலாம்.</translation>
diff --git a/components/strings/components_strings_te.xtb b/components/strings/components_strings_te.xtb
index f03a6a9c..8aeb871 100644
--- a/components/strings/components_strings_te.xtb
+++ b/components/strings/components_strings_te.xtb
@@ -1559,6 +1559,7 @@
 <translation id="3641116835972736297">అమెరికన్ ఫుట్‌బాల్</translation>
 <translation id="3642196846309122856">మీ ఫైళ్లను మళ్లీ డౌన్‌లోడ్ చేయడానికి ట్రై చేయండి</translation>
 <translation id="3642638418806704195">యాప్:</translation>
+<translation id="3644768007456662469">పేమెంట్‌ల ఐటెమ్ చిహ్నం</translation>
 <translation id="3646643500201740985">యాడ్ పనితీరు ఎలా ఉందో అంచనా వేయడం</translation>
 <translation id="3647286794400715637">ప్రతి url స్ట్రింగ్ ఎంట్రీ తప్పనిసరిగా 1 నుండి 2 URLలను కలిగి ఉండాలి.</translation>
 <translation id="3647400963805615193">Chrome చిట్కా బటన్‌ను విస్మరించి, <ph name="REMOVE_BUTTON_FOCUSED_FRIENDLY_MATCH_TEXT" />ని, విస్మరించడానికి Enter కీని నొక్కండి</translation>
diff --git a/components/strings/components_strings_th.xtb b/components/strings/components_strings_th.xtb
index 575905a..94f6869 100644
--- a/components/strings/components_strings_th.xtb
+++ b/components/strings/components_strings_th.xtb
@@ -937,6 +937,7 @@
 <translation id="2546283357679194313">คุกกี้และข้อมูลเว็บไซต์</translation>
 <translation id="254947805923345898">ค่านโยบายไม่ถูกต้อง</translation>
 <translation id="2549836668759467704">การให้คำปรึกษาและการทำสัญญาก่อสร้าง</translation>
+<translation id="2549919488151689436"><ph name="TOPIC_1" />, <ph name="TOPIC_2" /> และอื่นๆ</translation>
 <translation id="255002559098805027"><ph name="HOST_NAME" /> ส่งการตอบกลับที่ไม่ถูกต้อง</translation>
 <translation id="2551608178605132291">ที่อยู่: <ph name="ADDRESS" /></translation>
 <translation id="2552246211866555379">Hagaki</translation>
@@ -2100,11 +2101,13 @@
 <translation id="4530347922939905757">SMS</translation>
 <translation id="4531477351494678589">หมายเลขบัตรเสมือน:</translation>
 <translation id="4535523368173457420">เครื่องมือค้นหาเหล่านี้ได้รับความนิยมในภูมิภาคของคุณ และแสดงแบบสุ่มลำดับ</translation>
+<translation id="4539931187424170595">{NUM_YEARS,plural, =1{สร้างเมื่อ 1 ปีที่ผ่านมา}other{สร้างเมื่อ {NUM_YEARS} ปีที่ผ่านมา}}</translation>
 <translation id="4541810033354695636">Augmented Reality</translation>
 <translation id="4542971377163063093">ถาด 6</translation>
 <translation id="4543072026714825470">บันทึกข้อมูลบัตรและที่อยู่สำหรับการเรียกเก็บเงินไว้ในบัญชี Google เพื่อให้ชำระเงินได้เร็วขึ้นในครั้งถัดไป</translation>
 <translation id="454441086898495030">เพิ่มไปยัง<ph name="SET" />ไหม</translation>
 <translation id="4546730006268514143">การโอนหมดเวลาแล้ว</translation>
+<translation id="4548974025982531828">{NUM_DAYS,plural, =1{สร้างเมื่อ 1 วันที่ผ่านมา}other{สร้างเมื่อ {NUM_DAYS} วันที่ผ่านมา}}</translation>
 <translation id="455113658016510503">A9</translation>
 <translation id="4556069465387849460">คุณกําลังใช้การล็อกหน้าจอเพื่อป้อนรหัสผ่าน</translation>
 <translation id="4557573143631562971">ประกันภัยบ้าน</translation>
@@ -2898,6 +2901,7 @@
 <translation id="5938153366081463283">เพิ่มบัตรเสมือน</translation>
 <translation id="5938793338444039872">Troy</translation>
 <translation id="5938866385061293322">ข้อมูลนี้มาจากเว็บไซต์รีวิวอิสระ เช่น Trustpilot, ScamAdviser, Google และอื่นๆ ข้อมูลสรุปสร้างขึ้นด้วย AI</translation>
+<translation id="5943775258256265106">{NUM_MINS,plural, =1{สร้างเมื่อ 1 นาทีที่ผ่านมา}other{สร้างเมื่อ {NUM_MINS} นาทีที่ผ่านมา}}</translation>
 <translation id="5944297261866530437">ผ้า (เงามาก)</translation>
 <translation id="5950901984834744590">มีดโกนและเครื่องโกน</translation>
 <translation id="5951495562196540101">ลงทะเบียนด้วยบัญชีผู้ใช้ทั่วไปไม่ได้ (มีใบอนุญาตแบบแพ็กเกจ)</translation>
@@ -4059,6 +4063,7 @@
 <translation id="7894280532028510793">หากการสะกดถูกต้อง ให้<ph name="BEGIN_LINK" />ลองเรียกใช้การวินิจฉัยเครือข่าย<ph name="END_LINK" /></translation>
 <translation id="7901831439558593470">Envelope 7 x 9 นิ้ว</translation>
 <translation id="7905064834449738336">เมื่อใช้รหัสผ่าน Chromium จะเตือนคุณหากมีการเผยแพร่รหัสผ่านออนไลน์ เราเข้ารหัสชื่อผู้ใช้และรหัสผ่านเมื่อทำการตรวจสอบเพื่อไม่ให้ผู้ใดอ่านข้อมูลดังกล่าวได้ รวมถึง Google</translation>
+<translation id="7906177144646315659">{NUM_HOURS,plural, =1{สร้างเมื่อ 1 ชั่วโมงที่ผ่านมา}other{สร้างเมื่อ {NUM_HOURS} ชั่วโมงที่ผ่านมา}}</translation>
 <translation id="7908648876066812348">กำลังเปิดบัตรเสมือน (Virtual Card)</translation>
 <translation id="7909498058929404306"><ph name="RUN_CHROME_SAFETY_CHECK_FOCUSED_FRIENDLY_MATCH_TEXT" /> กด Tab ตามด้วย Enter เพื่อไปที่หน้าการตรวจสอบความปลอดภัยของ Chrome ในการตั้งค่า</translation>
 <translation id="791107458486222637">กำลังทำซ้ำผลลัพธ์</translation>
@@ -4193,6 +4198,7 @@
 <translation id="8134058435519644366">การรับสมัครงาน</translation>
 <translation id="8135546115396015134">ปุ่มซ้าย</translation>
 <translation id="8137456439814903304">พลังงานและสาธารณูปโภค</translation>
+<translation id="814432316791813431">{NUM_MONTHS,plural, =1{สร้างเมื่อ 1 เดือนที่ผ่านมา}other{สร้างเมื่อ {NUM_MONTHS} เดือนที่ผ่านมา}}</translation>
 <translation id="8148608574971654810">เวอร์ชัน PDF:</translation>
 <translation id="8149426793427495338">คอมพิวเตอร์ของคุณเข้าสู่โหมดสลีปแล้ว</translation>
 <translation id="8150722005171944719">ไฟล์ที่ <ph name="URL" /> ไม่สามารถอ่านได้ เนื่องจากอาจถูกลบ ย้ายไปแล้ว หรือการอนุญาตของไฟล์อาจป้องกันการเข้าถึง</translation>
@@ -4813,6 +4819,7 @@
 <translation id="9219103736887031265">ภาพ</translation>
 <translation id="922152298093051471">ปรับแต่ง Chrome</translation>
 <translation id="9222403027701923763">โรงเรียนประถมและมัธยม (ป.1 - ม.6)</translation>
+<translation id="9222463428840654067">หมายเลขบัตรไม่ถูกต้อง</translation>
 <translation id="922849469395748170">บัตรสะสมคะแนน</translation>
 <translation id="93020190163435405">การฝึกงาน</translation>
 <translation id="931598121743515856">การซื้อต้องมีมูลค่าสูงกว่า <ph name="CHECKOUT_AMOUNT_MINIMUM" /></translation>
diff --git a/components/strings/components_strings_tr.xtb b/components/strings/components_strings_tr.xtb
index 1f65697..0ae4bed 100644
--- a/components/strings/components_strings_tr.xtb
+++ b/components/strings/components_strings_tr.xtb
@@ -1564,6 +1564,7 @@
 <translation id="3641116835972736297">Amerikan Futbolu</translation>
 <translation id="3642196846309122856">Dosyalarınızı tekrar indirmeyi deneyin</translation>
 <translation id="3642638418806704195">Uygulama:</translation>
+<translation id="3644768007456662469">Ödeme Öğesi Simgesi</translation>
 <translation id="3646643500201740985">Bir reklamın ne kadar iyi performans gösterdiğini ölçme</translation>
 <translation id="3647286794400715637">Her URL dizesi girişinde 1-2 URL bulunmalıdır.</translation>
 <translation id="3647400963805615193">Chrome İpucunu Kapat düğmesi, kapatmak için Enter'a basın, <ph name="REMOVE_BUTTON_FOCUSED_FRIENDLY_MATCH_TEXT" /></translation>
@@ -2100,11 +2101,13 @@
 <translation id="4530347922939905757">Kısa mesaj</translation>
 <translation id="4531477351494678589">Sanal kart numarası:</translation>
 <translation id="4535523368173457420">Bölgenizde popüler olan bu arama motorları rastgele sırayla gösterilmiştir</translation>
+<translation id="4539931187424170595">{NUM_YEARS,plural, =1{1 yıl önce oluşturuldu}other{{NUM_YEARS} yıl önce oluşturuldu}}</translation>
 <translation id="4541810033354695636">artırılmış gerçeklik</translation>
 <translation id="4542971377163063093">Tepsi 6</translation>
 <translation id="4543072026714825470">Bir dahaki sefere daha hızlı ödeme yapmak için kartınızı ve fatura adresinizi Google Hesabınızda depolayın</translation>
 <translation id="454441086898495030">Şuraya eklensin mi? <ph name="SET" /></translation>
 <translation id="4546730006268514143">Aktarım zaman aşımına uğradı</translation>
+<translation id="4548974025982531828">{NUM_DAYS,plural, =1{1 gün önce oluşturuldu}other{{NUM_DAYS} gün önce oluşturuldu}}</translation>
 <translation id="455113658016510503">A9</translation>
 <translation id="4556069465387849460">Şifreleri doldurmak için ekran kilidinizi kullanıyorsunuz</translation>
 <translation id="4557573143631562971">Ev Sigortası</translation>
@@ -2898,6 +2901,7 @@
 <translation id="5938153366081463283">Sanal kart ekleyin</translation>
 <translation id="5938793338444039872">Troy</translation>
 <translation id="5938866385061293322">Bu bilgiler Trustpilot, ScamAdviser, Google ve diğer bağımsız yorum web sitelerinden alınır. Özetler yapay zeka ile oluşturulur.</translation>
+<translation id="5943775258256265106">{NUM_MINS,plural, =1{1 dakika önce oluşturuldu}other{{NUM_MINS} dakika önce oluşturuldu}}</translation>
 <translation id="5944297261866530437">Kumaş (Çok Parlak)</translation>
 <translation id="5950901984834744590">Jiletler ve Tıraş Makineleri</translation>
 <translation id="5951495562196540101">Tüketici hesabına kaydedilemiyor (paket lisans mevcut).</translation>
@@ -4059,6 +4063,7 @@
 <translation id="7894280532028510793">Yazım doğruysa <ph name="BEGIN_LINK" />Ağ Teşhisi'ni çalıştırmayı deneyin<ph name="END_LINK" />.</translation>
 <translation id="7901831439558593470">Zarf 7 x 9 inç</translation>
 <translation id="7905064834449738336">Kullandığınız bir şifre internette yayınlanmışsa Chromium sizi uyarır. Bu işlem sırasında şifreleriniz ve kullanıcı adlarınız şifrelendiğinden, Google dahil olmak üzere hiç kimse tarafından okunamaz.</translation>
+<translation id="7906177144646315659">{NUM_HOURS,plural, =1{1 saat önce oluşturuldu}other{{NUM_HOURS} saat önce oluşturuldu}}</translation>
 <translation id="7908648876066812348">Sanal kart etkinleştiriliyor</translation>
 <translation id="7909498058929404306"><ph name="RUN_CHROME_SAFETY_CHECK_FOCUSED_FRIENDLY_MATCH_TEXT" />, ayarlarda Chrome güvenlik kontrolü sayfasına gitmek için Sekme tuşuna, sonra Enter'a basın</translation>
 <translation id="791107458486222637">Sonuç yeniden üretiliyor</translation>
@@ -4193,6 +4198,7 @@
 <translation id="8134058435519644366">İşe Alım ve Kadrolar</translation>
 <translation id="8135546115396015134">sol tuş</translation>
 <translation id="8137456439814903304">Enerji ve Kamu Hizmetleri</translation>
+<translation id="814432316791813431">{NUM_MONTHS,plural, =1{1 ay önce oluşturuldu}other{{NUM_MONTHS} ay önce oluşturuldu}}</translation>
 <translation id="8148608574971654810">PDF sürümü:</translation>
 <translation id="8149426793427495338">Bilgisayarınız uyku moduna geçti.</translation>
 <translation id="8150722005171944719"><ph name="URL" /> konumundaki dosya okunamıyor. Kaldırılmış ya da taşınmış olabilir veya dosya izinleri erişimi önlüyordur.</translation>
diff --git a/components/strings/components_strings_uk.xtb b/components/strings/components_strings_uk.xtb
index 87a369ce..9f70a5f 100644
--- a/components/strings/components_strings_uk.xtb
+++ b/components/strings/components_strings_uk.xtb
@@ -1564,6 +1564,7 @@
 <translation id="3641116835972736297">Американський футбол</translation>
 <translation id="3642196846309122856">Спробуйте повторно завантажити файли</translation>
 <translation id="3642638418806704195">Додаток:</translation>
+<translation id="3644768007456662469">Значок платежу</translation>
 <translation id="3646643500201740985">Оцінювання ефективності реклами</translation>
 <translation id="3647286794400715637">Кожен рядок URL-адреси має містити від 1 до 2 URL-адрес.</translation>
 <translation id="3647400963805615193">Кнопка "Закрити пораду щодо Chrome"; натисніть Enter, щоб закрити; <ph name="REMOVE_BUTTON_FOCUSED_FRIENDLY_MATCH_TEXT" /></translation>
@@ -2100,11 +2101,13 @@
 <translation id="4530347922939905757">SMS</translation>
 <translation id="4531477351494678589">Номер віртуальної картки:</translation>
 <translation id="4535523368173457420">Ці пошукові системи популярні у вашому регіоні й відображаються в довільному порядку</translation>
+<translation id="4539931187424170595">{NUM_YEARS,plural, =1{Створено 1 рік тому}one{Створено {NUM_YEARS} рік тому}few{Створено {NUM_YEARS} роки тому}many{Створено {NUM_YEARS} років тому}other{Створено {NUM_YEARS} року тому}}</translation>
 <translation id="4541810033354695636">доповнена реальність</translation>
 <translation id="4542971377163063093">Лоток 6</translation>
 <translation id="4543072026714825470">Щоб наступного разу платити швидше, збережіть дані картки й платіжну адресу в обліковому записі Google</translation>
 <translation id="454441086898495030">Додати до таблиці "<ph name="SET" />"?</translation>
 <translation id="4546730006268514143">Час очікування перенесення минув</translation>
+<translation id="4548974025982531828">{NUM_DAYS,plural, =1{Створено 1 день тому}one{Створено {NUM_DAYS} день тому}few{Створено {NUM_DAYS} дні тому}many{Створено {NUM_DAYS} днів тому}other{Створено {NUM_DAYS} дня тому}}</translation>
 <translation id="455113658016510503">A9</translation>
 <translation id="4556069465387849460">Ви використовуєте функцію блокування екрана для заповнення паролів</translation>
 <translation id="4557573143631562971">Страхування нерухомості</translation>
@@ -2898,6 +2901,7 @@
 <translation id="5938153366081463283">Додайте віртуальну картку</translation>
 <translation id="5938793338444039872">Troy</translation>
 <translation id="5938866385061293322">Ці дані надходять із незалежних вебсайтів із відгуками, таких як Trustpilot, ScamAdviser, Google тощо. Короткі огляди створюються за допомогою ШІ.</translation>
+<translation id="5943775258256265106">{NUM_MINS,plural, =1{Створено 1 хвилину тому}one{Створено {NUM_MINS} хвилину тому}few{Створено {NUM_MINS} хвилини тому}many{Створено {NUM_MINS} хвилин тому}other{Створено {NUM_MINS} хвилини тому}}</translation>
 <translation id="5944297261866530437">Тканина (високоглянцева)</translation>
 <translation id="5950901984834744590">Станки для гоління й електробритви</translation>
 <translation id="5951495562196540101">Не вдається зареєструватися за допомогою особистого облікового запису користувача (ліцензію отримано в комплекті з пристроєм).</translation>
@@ -4059,6 +4063,7 @@
 <translation id="7894280532028510793">Якщо помилок немає, <ph name="BEGIN_LINK" />проведіть діагностику мережі<ph name="END_LINK" />.</translation>
 <translation id="7901831439558593470">Конверт 7 x 9 дюймів</translation>
 <translation id="7905064834449738336">Коли ви використовуєте пароль, Chromium попереджає вас, якщо його опубліковано в Інтернеті. Під час цього ваші паролі й імена користувачів шифруються, тож їх ніхто не може прочитати, навіть Google.</translation>
+<translation id="7906177144646315659">{NUM_HOURS,plural, =1{Створено 1 годину тому}one{Створено {NUM_HOURS} годину тому}few{Створено {NUM_HOURS} години тому}many{Створено {NUM_HOURS} годин тому}other{Створено {NUM_HOURS} години тому}}</translation>
 <translation id="7908648876066812348">Увімкнення віртуальної картки</translation>
 <translation id="7909498058929404306"><ph name="RUN_CHROME_SAFETY_CHECK_FOCUSED_FRIENDLY_MATCH_TEXT" />, натисніть клавішу Tab, а потім – Enter, щоб перейти на сторінку "Перевірка безпеки Chrome" у налаштуваннях</translation>
 <translation id="791107458486222637">Повторний запит результату</translation>
@@ -4193,6 +4198,7 @@
 <translation id="8134058435519644366">Набір персоналу й працевлаштування</translation>
 <translation id="8135546115396015134">клавіша зі стрілкою вліво</translation>
 <translation id="8137456439814903304">Енергетична промисловість і комунальне господарство</translation>
+<translation id="814432316791813431">{NUM_MONTHS,plural, =1{Створено 1 місяць тому}one{Створено {NUM_MONTHS} місяць тому}few{Створено {NUM_MONTHS} місяці тому}many{Створено {NUM_MONTHS} місяців тому}other{Створено {NUM_MONTHS} місяця тому}}</translation>
 <translation id="8148608574971654810">Версія PDF:</translation>
 <translation id="8149426793427495338">Ваш комп’ютер перейшов у режим сну.</translation>
 <translation id="8150722005171944719">Файл за адресою <ph name="URL" /> не читається. Можливо, його видалено, переміщено або доступ заборонено дозволами файлу.</translation>
diff --git a/components/strings/components_strings_ur.xtb b/components/strings/components_strings_ur.xtb
index c3b3e06a7..bc31555 100644
--- a/components/strings/components_strings_ur.xtb
+++ b/components/strings/components_strings_ur.xtb
@@ -1565,6 +1565,7 @@
 <translation id="3641116835972736297">امریکی فٹبال</translation>
 <translation id="3642196846309122856">اپنی فائلز دوبارہ ڈاؤن لوڈ کرنے کی کوشش کریں</translation>
 <translation id="3642638418806704195">ایپلیکیشن:</translation>
+<translation id="3644768007456662469">ادائیگیوں کے آئٹم کا آئیکن</translation>
 <translation id="3646643500201740985">اس بات کی پیمائش کرنا کہ اشتہار کتنی اچھی کارکردگی کا مظاہرہ کرتا ہے</translation>
 <translation id="3647286794400715637">‏urls اسٹرنگ کے ہر اندراج میں 1 سے 2 کے درمیان URLs کا شامل ہونا ضروری ہے۔</translation>
 <translation id="3647400963805615193">‏‫Chrome کی تجویز کے بٹن کو برخاست کریں، برخاست کرنے کے لیے اینٹر دبائیں، <ph name="REMOVE_BUTTON_FOCUSED_FRIENDLY_MATCH_TEXT" /></translation>
diff --git a/components/strings/components_strings_vi.xtb b/components/strings/components_strings_vi.xtb
index 92c66ab..883ffee 100644
--- a/components/strings/components_strings_vi.xtb
+++ b/components/strings/components_strings_vi.xtb
@@ -937,6 +937,7 @@
 <translation id="2546283357679194313">Cookie và dữ liệu trang web</translation>
 <translation id="254947805923345898">Giá trị của chính sách là không hợp lệ.</translation>
 <translation id="2549836668759467704">Tư vấn và hợp đồng xây dựng</translation>
+<translation id="2549919488151689436"><ph name="TOPIC_1" />, <ph name="TOPIC_2" /> và nhiều chủ đề khác</translation>
 <translation id="255002559098805027"><ph name="HOST_NAME" /> đã gửi ý kiến phản hồi không hợp lệ.</translation>
 <translation id="2551608178605132291">Địa chỉ: <ph name="ADDRESS" />.</translation>
 <translation id="2552246211866555379">Hagaki</translation>
@@ -1564,6 +1565,7 @@
 <translation id="3641116835972736297">Bóng bầu dục Mỹ</translation>
 <translation id="3642196846309122856">Hãy thử tải các tệp xuống lần nữa</translation>
 <translation id="3642638418806704195">Ứng dụng:</translation>
+<translation id="3644768007456662469">Biểu tượng của mục thanh toán</translation>
 <translation id="3646643500201740985">Đo lường hiệu suất quảng cáo</translation>
 <translation id="3647286794400715637">Mỗi mục nhập chuỗi url phải chứa từ 1 đến 2 URL.</translation>
 <translation id="3647400963805615193">Nút Đóng mẹo sử dụng Chrome, nhấn Enter để đóng, <ph name="REMOVE_BUTTON_FOCUSED_FRIENDLY_MATCH_TEXT" /></translation>
@@ -4819,6 +4821,7 @@
 <translation id="9219103736887031265">Hình ảnh</translation>
 <translation id="922152298093051471">Tuỳ chỉnh Chrome</translation>
 <translation id="9222403027701923763">Học tiểu học và trung học (K-12)</translation>
+<translation id="9222463428840654067">Số thẻ không hợp lệ</translation>
 <translation id="922849469395748170">Thẻ khách hàng thân thiết</translation>
 <translation id="93020190163435405">Thực tập</translation>
 <translation id="931598121743515856">Giao dịch mua phải có giá trị trên <ph name="CHECKOUT_AMOUNT_MINIMUM" /></translation>
diff --git a/components/strings/components_strings_zh-CN.xtb b/components/strings/components_strings_zh-CN.xtb
index 81172f64..4729019d 100644
--- a/components/strings/components_strings_zh-CN.xtb
+++ b/components/strings/components_strings_zh-CN.xtb
@@ -2097,11 +2097,13 @@
 <translation id="4530347922939905757">短信</translation>
 <translation id="4531477351494678589">虚拟卡号:</translation>
 <translation id="4535523368173457420">这些搜索引擎在您所在地区非常热门,按随机顺序显示</translation>
+<translation id="4539931187424170595">{NUM_YEARS,plural, =1{创建时间:1 年前}other{创建时间:{NUM_YEARS} 年前}}</translation>
 <translation id="4541810033354695636">增强现实</translation>
 <translation id="4542971377163063093">纸匣 6</translation>
 <translation id="4543072026714825470">如果想在下次购物时更快捷地付款,请将您的付款卡信息和账单邮寄地址保存到您的 Google 账号中</translation>
 <translation id="454441086898495030">要添加到“<ph name="SET" />”吗?</translation>
 <translation id="4546730006268514143">传输超时</translation>
+<translation id="4548974025982531828">{NUM_DAYS,plural, =1{创建时间:1 天前}other{创建时间:{NUM_DAYS} 天前}}</translation>
 <translation id="455113658016510503">A9</translation>
 <translation id="4556069465387849460">您正在使用屏幕锁定功能填充密码</translation>
 <translation id="4557573143631562971">住宅保险</translation>
@@ -2895,6 +2897,7 @@
 <translation id="5938153366081463283">添加虚拟卡</translation>
 <translation id="5938793338444039872">Troy</translation>
 <translation id="5938866385061293322">这些信息来自 Trustpilot、ScamAdviser、Google 等独立评价网站。摘要是使用 AI 生成的。</translation>
+<translation id="5943775258256265106">{NUM_MINS,plural, =1{创建时间:1 分钟前}other{创建时间:{NUM_MINS} 分钟前}}</translation>
 <translation id="5944297261866530437">织物(高光)</translation>
 <translation id="5950901984834744590">剃刀与刮胡刀</translation>
 <translation id="5951495562196540101">无法通过消费者账号注册(有封装的许可)。</translation>
@@ -4055,6 +4058,7 @@
 <translation id="7894280532028510793">如果拼写无误,请<ph name="BEGIN_LINK" />尝试运行网络诊断<ph name="END_LINK" />。</translation>
 <translation id="7901831439558593470">7 x 9 英寸信封</translation>
 <translation id="7905064834449738336">当您使用某个密码时,如果 Chromium 发现它已被在线发布,就会向您发出警告。当 Chromium 进行这项检查时,您的密码和用户名都会被加密,所以绝不会被任何人员/任何一方(包括 Google)读取。</translation>
+<translation id="7906177144646315659">{NUM_HOURS,plural, =1{创建时间:1 小时前}other{创建时间:{NUM_HOURS} 小时前}}</translation>
 <translation id="7908648876066812348">正在开启虚拟卡</translation>
 <translation id="7909498058929404306"><ph name="RUN_CHROME_SAFETY_CHECK_FOCUSED_FRIENDLY_MATCH_TEXT" />,依次按 Tab 键和 Enter 键即可前往“设置”中的 Chrome 安全检查页面</translation>
 <translation id="791107458486222637">正在重新生成结果</translation>
@@ -4189,6 +4193,7 @@
 <translation id="8134058435519644366">招聘与人事</translation>
 <translation id="8135546115396015134">向左键</translation>
 <translation id="8137456439814903304">能源与公共事业</translation>
+<translation id="814432316791813431">{NUM_MONTHS,plural, =1{创建时间:1 个月前}other{创建时间:{NUM_MONTHS} 个月前}}</translation>
 <translation id="8148608574971654810">PDF 版本:</translation>
 <translation id="8149426793427495338">您的计算机已进入休眠模式。</translation>
 <translation id="8150722005171944719">无法读取 <ph name="URL" /> 上的文件。该文件可能已遭到删除、移动,或者文件权限不允许进行访问。</translation>
diff --git a/components/strings/components_strings_zh-HK.xtb b/components/strings/components_strings_zh-HK.xtb
index c33e3c4c..e87a1ed9 100644
--- a/components/strings/components_strings_zh-HK.xtb
+++ b/components/strings/components_strings_zh-HK.xtb
@@ -937,6 +937,7 @@
 <translation id="2546283357679194313">Cookie 和網站數據</translation>
 <translation id="254947805923345898">政策值無效。</translation>
 <translation id="2549836668759467704">建築業諮詢和公務承辦</translation>
+<translation id="2549919488151689436"><ph name="TOPIC_1" />、<ph name="TOPIC_2" />和其他主題</translation>
 <translation id="255002559098805027"><ph name="HOST_NAME" /> 傳送的回應無效。</translation>
 <translation id="2551608178605132291">地址:<ph name="ADDRESS" />。</translation>
 <translation id="2552246211866555379">Hagaki 紙匣</translation>
@@ -2100,11 +2101,13 @@
 <translation id="4530347922939905757">短訊</translation>
 <translation id="4531477351494678589">虛擬卡號:</translation>
 <translation id="4535523368173457420">這些是你所在地區最普遍使用的搜尋引擎,以隨機順序顯示</translation>
+<translation id="4539931187424170595">{NUM_YEARS,plural, =1{1 年前建立}other{{NUM_YEARS} 年前建立}}</translation>
 <translation id="4541810033354695636">擴張實境</translation>
 <translation id="4542971377163063093">紙匣 6</translation>
 <translation id="4543072026714825470">只要將付款卡和帳單地址儲存至 Google 帳戶中,下次就能更快完成付款程序</translation>
 <translation id="454441086898495030">要加到「<ph name="SET" />」嗎?</translation>
 <translation id="4546730006268514143">傳輸逾時</translation>
+<translation id="4548974025982531828">{NUM_DAYS,plural, =1{1 日前建立}other{{NUM_DAYS} 日前建立}}</translation>
 <translation id="455113658016510503">A9</translation>
 <translation id="4556069465387849460">您正在使用螢幕鎖定功能填入密碼</translation>
 <translation id="4557573143631562971">家居保險</translation>
@@ -2898,6 +2901,7 @@
 <translation id="5938153366081463283">新增虛擬卡</translation>
 <translation id="5938793338444039872">Troy</translation>
 <translation id="5938866385061293322">資料來自 Trustpilot、ScamAdviser 和 Google 等獨立評論網站。摘要由 AI 生成。</translation>
+<translation id="5943775258256265106">{NUM_MINS,plural, =1{1 分鐘前建立}other{{NUM_MINS} 分鐘前建立}}</translation>
 <translation id="5944297261866530437">布料 (高光面)</translation>
 <translation id="5950901984834744590">剃刀和剃鬚刀</translation>
 <translation id="5951495562196540101">無法使用消費者帳戶註冊 (有可用套裝授權)。</translation>
@@ -4059,6 +4063,7 @@
 <translation id="7894280532028510793">如果拼字正確,<ph name="BEGIN_LINK" />請嘗試執行網絡診斷<ph name="END_LINK" />。</translation>
 <translation id="7901831439558593470">7 x 9 吋信封</translation>
 <translation id="7905064834449738336">如果你使用的密碼已在網上發佈,Chromium 就會發出警告。核對時,你的密碼和使用者名稱將會加密,任何人 (包括 Google) 均無法讀取。</translation>
+<translation id="7906177144646315659">{NUM_HOURS,plural, =1{1 小時前建立}other{{NUM_HOURS} 小時前建立}}</translation>
 <translation id="7908648876066812348">打開緊虛擬卡</translation>
 <translation id="7909498058929404306"><ph name="RUN_CHROME_SAFETY_CHECK_FOCUSED_FRIENDLY_MATCH_TEXT" />,㩒一下 Tab 鍵,然後㩒一下 Enter 鍵就可以去設定入面嘅 Chrome 安全檢查頁面</translation>
 <translation id="791107458486222637">正在取消復原結果</translation>
@@ -4193,6 +4198,7 @@
 <translation id="8134058435519644366">人才招募和人力配備</translation>
 <translation id="8135546115396015134">左鍵</translation>
 <translation id="8137456439814903304">能源和公用事業</translation>
+<translation id="814432316791813431">{NUM_MONTHS,plural, =1{1 個月前建立}other{{NUM_MONTHS} 個月前建立}}</translation>
 <translation id="8148608574971654810">PDF 版本:</translation>
 <translation id="8149426793427495338">您的電腦已進入休眠狀態。</translation>
 <translation id="8150722005171944719">無法讀取位於 <ph name="URL" /> 的檔案。這個檔案可能已被移除或移動位置,或者檔案權限為禁止存取。</translation>
@@ -4812,6 +4818,7 @@
 <translation id="9219103736887031265">圖片</translation>
 <translation id="922152298093051471">自訂 Chrome</translation>
 <translation id="9222403027701923763">小學和中學</translation>
+<translation id="9222463428840654067">卡號無效</translation>
 <translation id="922849469395748170">會員卡</translation>
 <translation id="93020190163435405">實習</translation>
 <translation id="931598121743515856">購買金額必須高於 <ph name="CHECKOUT_AMOUNT_MINIMUM" /></translation>
diff --git a/components/strings/components_strings_zh-TW.xtb b/components/strings/components_strings_zh-TW.xtb
index dc5757b..d66de108 100644
--- a/components/strings/components_strings_zh-TW.xtb
+++ b/components/strings/components_strings_zh-TW.xtb
@@ -936,6 +936,7 @@
 <translation id="2546283357679194313">Cookie 和網站資料</translation>
 <translation id="254947805923345898">政策的值無效。</translation>
 <translation id="2549836668759467704">建築顧問與承包</translation>
+<translation id="2549919488151689436"><ph name="TOPIC_1" />、<ph name="TOPIC_2" />和其他主題</translation>
 <translation id="255002559098805027"><ph name="HOST_NAME" /> 傳送的回應無效。</translation>
 <translation id="2551608178605132291">地址:<ph name="ADDRESS" />。</translation>
 <translation id="2552246211866555379">Hagaki 紙匣</translation>
@@ -1562,6 +1563,7 @@
 <translation id="3641116835972736297">美式足球</translation>
 <translation id="3642196846309122856">再次嘗試下載檔案</translation>
 <translation id="3642638418806704195">應用程式:</translation>
+<translation id="3644768007456662469">「付款項目」圖示</translation>
 <translation id="3646643500201740985">評估廣告成效</translation>
 <translation id="3647286794400715637">每個網址字串項目都必須包含 1 到 2 個網址。</translation>
 <translation id="3647400963805615193">關閉 Chrome 提示的按鈕,按下 Enter 鍵即可關閉,<ph name="REMOVE_BUTTON_FOCUSED_FRIENDLY_MATCH_TEXT" /></translation>
@@ -2098,11 +2100,13 @@
 <translation id="4530347922939905757">簡訊</translation>
 <translation id="4531477351494678589">虛擬卡號:</translation>
 <translation id="4535523368173457420">這些是你所在地區最普遍使用的搜尋引擎,以隨機順序顯示</translation>
+<translation id="4539931187424170595">{NUM_YEARS,plural, =1{1 年前建立}other{{NUM_YEARS} 年前建立}}</translation>
 <translation id="4541810033354695636">擴增實境</translation>
 <translation id="4542971377163063093">紙匣 6</translation>
 <translation id="4543072026714825470">只要將卡片與帳單地址儲存到 Google 帳戶中,下次就能更快完成付款程序</translation>
 <translation id="454441086898495030">要新增至「<ph name="SET" />」嗎?</translation>
 <translation id="4546730006268514143">傳輸作業逾時</translation>
+<translation id="4548974025982531828">{NUM_DAYS,plural, =1{1 天前建立}other{{NUM_DAYS} 天前建立}}</translation>
 <translation id="455113658016510503">A9</translation>
 <translation id="4556069465387849460">你正在使用螢幕鎖定功能填入密碼</translation>
 <translation id="4557573143631562971">住宅保險</translation>
@@ -2896,6 +2900,7 @@
 <translation id="5938153366081463283">新增虛擬卡片</translation>
 <translation id="5938793338444039872">Troy</translation>
 <translation id="5938866385061293322">這些資訊來自 Trustpilot、ScamAdviser、Google 等獨立評論網站,並由 AI 技術生成摘要。</translation>
+<translation id="5943775258256265106">{NUM_MINS,plural, =1{1 分鐘前建立}other{{NUM_MINS} 分鐘前建立}}</translation>
 <translation id="5944297261866530437">織品 (高光面)</translation>
 <translation id="5950901984834744590">剃刀與刮鬍刀</translation>
 <translation id="5951495562196540101">無法透過個人帳戶註冊 (有封裝授權)。</translation>
@@ -4057,6 +4062,7 @@
 <translation id="7894280532028510793">如果拼字正確,<ph name="BEGIN_LINK" />請嘗試執行網路診斷<ph name="END_LINK" />。</translation>
 <translation id="7901831439558593470">Envelope 7 x 9 in</translation>
 <translation id="7905064834449738336">如果你使用的密碼已被他人公布在網路上,Chromium 就會發出警告。在進行這項檢查時,系統會加密你的密碼和使用者名稱,因此任何人 (包括 Google) 都無法讀取。</translation>
+<translation id="7906177144646315659">{NUM_HOURS,plural, =1{1 小時前建立}other{{NUM_HOURS} 小時前建立}}</translation>
 <translation id="7908648876066812348">正在啟用虛擬卡片</translation>
 <translation id="7909498058929404306"><ph name="RUN_CHROME_SAFETY_CHECK_FOCUSED_FRIENDLY_MATCH_TEXT" />,在設定中按下 Tab 鍵再按下 Enter 鍵,即可前往 Chrome 安全檢查頁面</translation>
 <translation id="791107458486222637">重新產生結果</translation>
@@ -4191,6 +4197,7 @@
 <translation id="8134058435519644366">人才招募與人力派遣</translation>
 <translation id="8135546115396015134">左鍵</translation>
 <translation id="8137456439814903304">能源與公用事業</translation>
+<translation id="814432316791813431">{NUM_MONTHS,plural, =1{1 個月前建立}other{{NUM_MONTHS} 個月前建立}}</translation>
 <translation id="8148608574971654810">PDF 版本:</translation>
 <translation id="8149426793427495338">您的電腦已進入睡眠模式。</translation>
 <translation id="8150722005171944719">無法讀取位於 <ph name="URL" /> 的檔案。這個檔案可能已遭移除或移動位置,或者檔案權限為禁止存取。</translation>
@@ -4810,6 +4817,7 @@
 <translation id="9219103736887031265">圖片</translation>
 <translation id="922152298093051471">自訂 Chrome</translation>
 <translation id="9222403027701923763">幼兒園與中小學教育 (K-12)</translation>
+<translation id="9222463428840654067">卡號無效</translation>
 <translation id="922849469395748170">會員卡</translation>
 <translation id="93020190163435405">實習</translation>
 <translation id="931598121743515856">購買金額必須超過 <ph name="CHECKOUT_AMOUNT_MINIMUM" /></translation>
diff --git a/components/strings/components_strings_zu.xtb b/components/strings/components_strings_zu.xtb
index 74af2400..e7e47d6c 100644
--- a/components/strings/components_strings_zu.xtb
+++ b/components/strings/components_strings_zu.xtb
@@ -937,6 +937,7 @@
 <translation id="2546283357679194313">Amakhukhi nedatha yesayithi</translation>
 <translation id="254947805923345898">Inani lenqubomgomo alivumelekile.</translation>
 <translation id="2549836668759467704">Ukubonisana Nomakhi Nesivumelwano</translation>
+<translation id="2549919488151689436">I-<ph name="TOPIC_1" />, i-<ph name="TOPIC_2" />, nokwengeziwe</translation>
 <translation id="255002559098805027">I-<ph name="HOST_NAME" /> ithumele impendulo engavumelekile.</translation>
 <translation id="2551608178605132291">Ikheli: <ph name="ADDRESS" />.</translation>
 <translation id="2552246211866555379">I-Hagaki</translation>
@@ -1561,6 +1562,7 @@
 <translation id="3641116835972736297">I-American Football</translation>
 <translation id="3642196846309122856">Zama ukudawuniloda amafayela akho futhi</translation>
 <translation id="3642638418806704195">Uhlelo lokusebenza:</translation>
+<translation id="3644768007456662469">Isithonjana Sento Yezinkokhelo</translation>
 <translation id="3646643500201740985">Ukulinganisa ukuthi isikhangiso senza kahle kangakanani</translation>
 <translation id="3647286794400715637">Ukufakwa ngakunye kweyunithi yezinhlamvu zama-url kufanele kuqukathe phakathi kwe-URL e-1 kuya kwama-2.</translation>
 <translation id="3647400963805615193">Inkinobho yokuthi Chitha Ithiphu yeChrome, cindezela u-Enter ukuze uyichithe, <ph name="REMOVE_BUTTON_FOCUSED_FRIENDLY_MATCH_TEXT" /></translation>
@@ -2097,11 +2099,13 @@
 <translation id="4530347922939905757">Umlayezo wombhalo</translation>
 <translation id="4531477351494678589">Inombolo yekhadi ebonakalayo:</translation>
 <translation id="4535523368173457420">Lezi zinjini zokusesha zijwayelekile esifundeni sakho futhi zivezwa ngokungahleliwe.</translation>
+<translation id="4539931187424170595">{NUM_YEARS,plural, =1{Kusungulwe onyakeni o-1 odlule}one{Kusungulwe eminyakeni engu-{NUM_YEARS} edlule}other{Kusungulwe eminyakeni engu-{NUM_YEARS} edlule}}</translation>
 <translation id="4541810033354695636">i-augmented reality</translation>
 <translation id="4542971377163063093">Ithileyi elingu-6</translation>
 <translation id="4543072026714825470">Ukuze ukhokhe ngokushesha ngesikhathi esilandelayo, londoloza ikhadi lakho nekheli lokukhokha ku-Google Account yakho.</translation>
 <translation id="454441086898495030">Faka ku-<ph name="SET" /></translation>
 <translation id="4546730006268514143">Ukudlulisa kuphelelwe yisikhathi</translation>
+<translation id="4548974025982531828">{NUM_DAYS,plural, =1{Kusungulwe osukwini olu-1 oludlule}one{Kusungulwe ezinsukwini ezingu-{NUM_DAYS} ezedlule}other{Kusungulwe ezinsukwini ezingu-{NUM_DAYS} ezedlule}}</translation>
 <translation id="455113658016510503">A9</translation>
 <translation id="4556069465387849460">Usebenzisa ukukhiya isikrini kwakho ukuze ugcwalise amaphasiwedi</translation>
 <translation id="4557573143631562971">Umshwalensi wasekhaya</translation>
@@ -2895,6 +2899,7 @@
 <translation id="5938153366081463283">Engeza ikhadi lokubuka</translation>
 <translation id="5938793338444039872">U-Troy</translation>
 <translation id="5938866385061293322">Lolu lwazi luvela kumawebhusayithi okubuyekeza azimele afana neTrustpilot, iScamAdviser, iGoogle, nokuningi. Izifinyezo zisungulwe nge-AI.</translation>
+<translation id="5943775258256265106">{NUM_MINS,plural, =1{Kusungulwe emzuzwini o-1 odlule}one{Kusungulwe emizuzwini engu-{NUM_MINS} edlule}other{Kusungulwe emizuzwini engu-{NUM_MINS} edlule}}</translation>
 <translation id="5944297261866530437">Indwangu (i-Gloss-Ephezulu)</translation>
 <translation id="5950901984834744590">Ama-razor nama-Shaver</translation>
 <translation id="5951495562196540101">Ayikwazi ukubhalisa nge-akhawunti yekhasimende (ilayisensi lephakheji liyatholakala).</translation>
@@ -4055,6 +4060,7 @@
 <translation id="7894280532028510793">Uma isipelingi singalungile, <ph name="BEGIN_LINK" />zama ukuqalisa Ukuxilongwa Kwenethiwekhi<ph name="END_LINK" />.</translation>
 <translation id="7901831439558593470">Imvilophu ye-7 x 9 in</translation>
 <translation id="7905064834449738336">Uma usebenzisa iphasiwedi, i-Chromium iyakuxwayisa uma ishicilelwe ku-inthanethi. Uma yenza lokhu, amaphasiwedi akho namagama abasebenzisi ayabethelwa, ukuze angakwazi ukufundwa yinoma ngubani, kubandakanya ne-Google.</translation>
+<translation id="7906177144646315659">{NUM_HOURS,plural, =1{Kusungulwe ehoreni eli-1 eledlule}one{Kusungulwe emahoreni angu-{NUM_HOURS} adlule}other{Kusungulwe emahoreni angu-{NUM_HOURS} adlule}}</translation>
 <translation id="7908648876066812348">Ivula ikhadi eliku-app</translation>
 <translation id="7909498058929404306"><ph name="RUN_CHROME_SAFETY_CHECK_FOCUSED_FRIENDLY_MATCH_TEXT" />, cindezela Ithebhu bese ucindezela Ufaka ukuze uye ekhasini lokuhlola ukuphepha ku-Chrome kumasethingi</translation>
 <translation id="791107458486222637">Ukwenza kabusha umphumela</translation>
@@ -4189,6 +4195,7 @@
 <translation id="8134058435519644366">Ezokuqasha Nabasebenzi</translation>
 <translation id="8135546115396015134">ukhiye okwesobunxele</translation>
 <translation id="8137456439814903304">Amandla Nezinsiza</translation>
+<translation id="814432316791813431">{NUM_MONTHS,plural, =1{Kusungulwe enyangeni e-1 edlule}one{Kusungulwe ezinyangeni ezingu-{NUM_MONTHS} ezedlule}other{Kusungulwe ezinyangeni ezingu-{NUM_MONTHS} ezedlule}}</translation>
 <translation id="8148608574971654810">Uhlobo lwe-PDF:</translation>
 <translation id="8149426793427495338">Ikhompuyutha yakho iye yalala.</translation>
 <translation id="8150722005171944719">Ifayela e-<ph name="URL" /> alifundeki. Kungenzeka lisusiwe, lihanjisiwe, noma izimvume zefayela zivimbela ukufinyelela.</translation>
@@ -4809,6 +4816,7 @@
 <translation id="9219103736887031265">Izithombe</translation>
 <translation id="922152298093051471">Yenza i-Chrome ngokwezifiso</translation>
 <translation id="9222403027701923763">Isikole Sebanga Eliphansi Neliphezulu (K-12)</translation>
+<translation id="9222463428840654067">Inombolo yekhadi ayivumelekile</translation>
 <translation id="922849469395748170">Amakhadi obuqotho</translation>
 <translation id="93020190163435405">Ama-Internship</translation>
 <translation id="931598121743515856">Ukuthenga kufanele kube ngaphezulu kuka-<ph name="CHECKOUT_AMOUNT_MINIMUM" /></translation>
diff --git a/components/supervised_user/android/java/src/org/chromium/components/supervised_user/ContentFiltersObserverBridge.java b/components/supervised_user/android/java/src/org/chromium/components/supervised_user/ContentFiltersObserverBridge.java
index c651873..8a417b5 100644
--- a/components/supervised_user/android/java/src/org/chromium/components/supervised_user/ContentFiltersObserverBridge.java
+++ b/components/supervised_user/android/java/src/org/chromium/components/supervised_user/ContentFiltersObserverBridge.java
@@ -13,6 +13,7 @@
 import org.jni_zero.NativeMethods;
 
 import org.chromium.base.ContextUtils;
+import org.chromium.base.Log;
 import org.chromium.build.annotations.NullMarked;
 
 /**
@@ -27,6 +28,9 @@
 @JNINamespace("supervised_user")
 class ContentFiltersObserverBridge {
 
+    // Supervised User Content Filters Observer.
+    private static final String TAG = "SUCFiltersObserver";
+
     // The observer to be notified of changes.
     private final ContentObserver mObserver;
     // Caches the logical value of the setting to avoid calling the native code with the same value.
@@ -45,12 +49,15 @@
                     @Override
                     public void onChange(boolean selfChange) {
                         boolean newEnabled = getValue(settingName);
+
                         if (mIsEnabled == newEnabled) {
+                            Log.d(TAG, "setting=%s discarding %s", settingName, newEnabled);
                             return;
                         }
                         mIsEnabled = newEnabled;
                         ContentFiltersObserverBridgeJni.get()
                                 .onChange(nativeContentFiltersObserverBridge, mIsEnabled);
+                        Log.d(TAG, "setting=%s updating with %s", settingName, newEnabled);
                     }
                 };
         ContextUtils.getApplicationContext()
@@ -64,6 +71,7 @@
         // Call the native first time to get the current value of the setting.
         ContentFiltersObserverBridgeJni.get()
                 .onChange(nativeContentFiltersObserverBridge, mIsEnabled);
+        Log.d(TAG, "setting=%s initial value %s", settingName, mIsEnabled);
     }
 
     @CalledByNative
diff --git a/components/supervised_user/core/browser/android/content_filters_observer_bridge.cc b/components/supervised_user/core/browser/android/content_filters_observer_bridge.cc
index 028bd77..fb12af6 100644
--- a/components/supervised_user/core/browser/android/content_filters_observer_bridge.cc
+++ b/components/supervised_user/core/browser/android/content_filters_observer_bridge.cc
@@ -5,6 +5,7 @@
 #include "components/supervised_user/core/browser/android/content_filters_observer_bridge.h"
 
 #include "base/android/jni_android.h"
+#include "base/logging.h"
 #include "components/supervised_user/core/common/features.h"
 
 // Include last. Requires declarations from includes above.
@@ -16,11 +17,14 @@
     std::string_view setting_name,
     base::RepeatingClosure on_enabled,
     base::RepeatingClosure on_disabled)
-    : on_enabled_(on_enabled), on_disabled_(on_disabled) {
+    : setting_name_(setting_name),
+      on_enabled_(on_enabled),
+      on_disabled_(on_disabled) {
   if (!base::FeatureList::IsEnabled(
           kPropagateDeviceContentFiltersToSupervisedUser)) {
     // TODO(crbug.com/422435683): Link the java bridge class to relevant
     // unit-test binaries.
+    VLOG(1) << "ContentFiltersObserverBridge is disabled.";
     return;
   }
 
@@ -43,6 +47,9 @@
 }
 
 void ContentFiltersObserverBridge::OnChange(JNIEnv* env, bool enabled) {
+  VLOG(1) << "ContentFiltersObserverBridge received onChange for setting "
+          << setting_name_ << " with value "
+          << (enabled ? "enabled" : "disabled");
   if (enabled) {
     on_enabled_.Run();
   } else {
diff --git a/components/supervised_user/core/browser/android/content_filters_observer_bridge.h b/components/supervised_user/core/browser/android/content_filters_observer_bridge.h
index b8756c3..0229ffa 100644
--- a/components/supervised_user/core/browser/android/content_filters_observer_bridge.h
+++ b/components/supervised_user/core/browser/android/content_filters_observer_bridge.h
@@ -5,6 +5,8 @@
 #ifndef COMPONENTS_SUPERVISED_USER_CORE_BROWSER_ANDROID_CONTENT_FILTERS_OBSERVER_BRIDGE_H_
 #define COMPONENTS_SUPERVISED_USER_CORE_BROWSER_ANDROID_CONTENT_FILTERS_OBSERVER_BRIDGE_H_
 
+#include <string>
+
 #include "base/android/jni_string.h"
 #include "base/android/scoped_java_ref.h"
 #include "base/functional/callback.h"
@@ -22,6 +24,9 @@
   explicit ContentFiltersObserverBridge(std::string_view setting_name,
                                         base::RepeatingClosure on_enabled,
                                         base::RepeatingClosure on_disabled);
+  ContentFiltersObserverBridge(const ContentFiltersObserverBridge&) = delete;
+  ContentFiltersObserverBridge& operator=(
+      const ContentFiltersObserverBridge&) = delete;
   ~ContentFiltersObserverBridge();
 
   // Called after creating the bridge and when the setting is enabled or
@@ -29,9 +34,10 @@
   void OnChange(JNIEnv* env, bool enabled);
 
  private:
-  base::android::ScopedJavaGlobalRef<jobject> bridge_;
+  std::string setting_name_;
   base::RepeatingClosure on_enabled_;
   base::RepeatingClosure on_disabled_;
+  base::android::ScopedJavaGlobalRef<jobject> bridge_;
 };
 
 }  // namespace supervised_user
diff --git a/components/supervised_user/core/browser/proto_fetcher.cc b/components/supervised_user/core/browser/proto_fetcher.cc
index 5c48a6d..34467ae 100644
--- a/components/supervised_user/core/browser/proto_fetcher.cc
+++ b/components/supervised_user/core/browser/proto_fetcher.cc
@@ -223,7 +223,7 @@
 
 void FetchProcess::OnSimpleUrlLoaderComplete(
     scoped_refptr<network::SharedURLLoaderFactory> url_loader_factory,
-    std::unique_ptr<std::string> response_body) {
+    std::optional<std::string> response_body) {
   // In best-effort mode we must retry on auth error in order that the request
   // can proceed without credentials.
   if (config_->access_token_config.has_value() &&
diff --git a/components/supervised_user/core/browser/proto_fetcher.h b/components/supervised_user/core/browser/proto_fetcher.h
index 06853ec..1a05b5e45 100644
--- a/components/supervised_user/core/browser/proto_fetcher.h
+++ b/components/supervised_user/core/browser/proto_fetcher.h
@@ -104,11 +104,11 @@
   // Third phase of fetching: the remote service responded
   void OnSimpleUrlLoaderComplete(
       scoped_refptr<network::SharedURLLoaderFactory> url_loader_factory,
-      std::unique_ptr<std::string> response_body);
+      std::optional<std::string> response_body);
 
   // Final phase of fetching: binary data is collected and ready to be
   // interpreted or error is encountered.
-  virtual void OnResponse(std::unique_ptr<std::string> response_body) = 0;
+  virtual void OnResponse(std::optional<std::string> response_body) = 0;
   virtual void OnError(const ProtoFetcherStatus& status) = 0;
 
   const raw_ref<signin::IdentityManager> identity_manager_;
@@ -168,7 +168,7 @@
   ~TypedFetchProcess() override = default;
 
  private:
-  void OnResponse(std::unique_ptr<std::string> response_body) override {
+  void OnResponse(std::optional<std::string> response_body) override {
     CHECK(response_body) << "Use OnError when there is no response.";
     std::unique_ptr<Response> response = std::make_unique<Response>();
     if (!response->ParseFromString(*response_body)) {
diff --git a/components/supervised_user/test_support/testutil_proto_fetcher.cc b/components/supervised_user/test_support/testutil_proto_fetcher.cc
index 60e9bc7..b89b40c 100644
--- a/components/supervised_user/test_support/testutil_proto_fetcher.cc
+++ b/components/supervised_user/test_support/testutil_proto_fetcher.cc
@@ -13,9 +13,9 @@
 
 template <>
 void TypedFetchProcess<std::string>::OnResponse(
-    std::unique_ptr<std::string> response_body) {
+    std::optional<std::string> response_body) {
   CHECK(response_body) << "Use OnError when there is no response.";
-  OnSuccess(std::move(response_body));
+  OnSuccess(std::make_unique<std::string>(std::move(response_body.value())));
 }
 
 }  // namespace supervised_user
diff --git a/components/supervised_user/test_support/testutil_proto_fetcher.h b/components/supervised_user/test_support/testutil_proto_fetcher.h
index c2c6262..468c54d 100644
--- a/components/supervised_user/test_support/testutil_proto_fetcher.h
+++ b/components/supervised_user/test_support/testutil_proto_fetcher.h
@@ -16,7 +16,7 @@
 // the message.
 template <>
 void TypedFetchProcess<std::string>::OnResponse(
-    std::unique_ptr<std::string> response_body);
+    std::optional<std::string> response_body);
 
 }  // namespace supervised_user
 #endif  // COMPONENTS_SUPERVISED_USER_TEST_SUPPORT_TESTUTIL_PROTO_FETCHER_H_
diff --git a/components/sync_bookmarks/bookmark_model_merger_comparison_metrics.cc b/components/sync_bookmarks/bookmark_model_merger_comparison_metrics.cc
index 46d846f3..3086518 100644
--- a/components/sync_bookmarks/bookmark_model_merger_comparison_metrics.cc
+++ b/components/sync_bookmarks/bookmark_model_merger_comparison_metrics.cc
@@ -504,7 +504,7 @@
     for (std::string_view optional_bookmark_count_suffix :
          {std::string_view(),
           BookmarkCountSuffixToString(bookmark_count_suffix)}) {
-      const std::string histogram_name =
+      const std::string legacy_histogram_name =
           base::StrCat({"Sync.BookmarkModelMerger.Comparison",
                         optional_previously_syncing_gaia_id_info_infix, ".",
                         SubtreeSelectionToInfix(subtree_selection), ".",
@@ -514,9 +514,24 @@
       // The call below to CompareSets() mixes up local data with account data.
       // Such implementation was accidental, but the resulting metric is anyway
       // meaningful, and the resulting behavior documented in histograms.xml.
-      // TODO(crbug.com/424163391): Fix arguments below.
+      // For a fixed version of this, see `fixed_histogram_name` immediately
+      // below.
+      // TODO(crbug.com/424551547): Clean up the legacy metric, if not both,
+      // in upcoming milestones (M139 or M140).
       base::UmaHistogramEnumeration(
-          histogram_name, CompareSets(local_data_set, account_data_set));
+          legacy_histogram_name, CompareSets(/*account_data=*/local_data_set,
+                                             /*local_data=*/account_data_set));
+
+      const std::string fixed_histogram_name =
+          base::StrCat({"Sync.BookmarkModelMerger.Comparison2",
+                        optional_previously_syncing_gaia_id_info_infix, ".",
+                        SubtreeSelectionToInfix(subtree_selection), ".",
+                        GroupingKeyInfixToString(Key::kGroupingKeyInfix),
+                        optional_bookmark_count_suffix});
+
+      base::UmaHistogramEnumeration(
+          fixed_histogram_name, CompareSets(/*account_data=*/account_data_set,
+                                            /*local_data=*/local_data_set));
     }
   }
 }
diff --git a/components/sync_bookmarks/bookmark_model_merger_comparison_metrics.h b/components/sync_bookmarks/bookmark_model_merger_comparison_metrics.h
index bfd9629..b68cebf 100644
--- a/components/sync_bookmarks/bookmark_model_merger_comparison_metrics.h
+++ b/components/sync_bookmarks/bookmark_model_merger_comparison_metrics.h
@@ -39,6 +39,11 @@
 // Result of comparing two datasets for the purpose of logging metrics. Note
 // that enum values listed first take precedence (are evaluated earlier) than
 // those following.
+// These values are persisted to logs. Entries should not be renumbered and
+// numeric values should never be reused. Keep in sync with the homonym enum
+// in tools/metrics/histograms/metadata/sync/enums.xml.
+// Exposed in the header file for testing.
+// LINT.IfChange(BookmarkSetComparisonOutcome)
 enum class SetComparisonOutcome {
   kBothEmpty = 0,
   kLocalDataEmpty = 1,
@@ -54,6 +59,7 @@
   kIntersectionEmpty = 11,
   kMaxValue = kIntersectionEmpty
 };
+// LINT.ThenChange(/tools/metrics/histograms/metadata/sync/enums.xml:BookmarkSetComparisonOutcome)
 
 struct UrlOnly {
   static constexpr GroupingKeyInfix kGroupingKeyInfix =
diff --git a/components/sync_bookmarks/bookmark_model_merger_comparison_metrics_unittest.cc b/components/sync_bookmarks/bookmark_model_merger_comparison_metrics_unittest.cc
index b409506a..0fa1fa68 100644
--- a/components/sync_bookmarks/bookmark_model_merger_comparison_metrics_unittest.cc
+++ b/components/sync_bookmarks/bookmark_model_merger_comparison_metrics_unittest.cc
@@ -758,16 +758,96 @@
       LegacySetComparisonOutcome::kAccountDataIsStrictSubsetOfLocalData,
       /*expected_bucket_count=*/1);
 
+  histogram_tester.ExpectUniqueSample(
+      "Sync.BookmarkModelMerger.Comparison2.MatchesPreviousGaiaId."
+      "ConsideringAllBookmarks.ByUrlAndTitle",
+      /*sample=*/SetComparisonOutcome::kExactMatchNonEmpty,
+      /*expected_bucket_count=*/1);
+
+  histogram_tester.ExpectUniqueSample(
+      "Sync.BookmarkModelMerger.Comparison2.MatchesPreviousGaiaId."
+      "ConsideringAllBookmarks.ByUrlAndUuid",
+      /*sample=*/SetComparisonOutcome::kIntersectionEmpty,
+      /*expected_bucket_count=*/1);
+
+  histogram_tester.ExpectUniqueSample(
+      "Sync.BookmarkModelMerger.Comparison2.MatchesPreviousGaiaId."
+      "ConsideringAllBookmarks.ByUrlAndTitleAndPath",
+      /*sample=*/SetComparisonOutcome::kIntersectionBetween10And50Percent,
+      /*expected_bucket_count=*/1);
+
+  histogram_tester.ExpectUniqueSample(
+      "Sync.BookmarkModelMerger.Comparison2.MatchesPreviousGaiaId."
+      "ConsideringAllBookmarks.ByUrlAndTitleAndPathAndUuid",
+      /*sample=*/SetComparisonOutcome::kIntersectionEmpty,
+      /*expected_bucket_count=*/1);
+
+  histogram_tester.ExpectUniqueSample(
+      "Sync.BookmarkModelMerger.Comparison2.MatchesPreviousGaiaId."
+      "UnderBookmarksBar.ByUrlAndTitle",
+      /*sample=*/SetComparisonOutcome::kIntersectionBetween50And90Percent,
+      /*expected_bucket_count=*/1);
+
+  histogram_tester.ExpectUniqueSample(
+      "Sync.BookmarkModelMerger.Comparison2.MatchesPreviousGaiaId."
+      "UnderBookmarksBar.ByUrlAndUuid",
+      /*sample=*/SetComparisonOutcome::kIntersectionEmpty,
+      /*expected_bucket_count=*/1);
+
+  histogram_tester.ExpectUniqueSample(
+      "Sync.BookmarkModelMerger.Comparison2.MatchesPreviousGaiaId."
+      "UnderBookmarksBar.ByUrlAndTitleAndPath",
+      /*sample=*/SetComparisonOutcome::kIntersectionBetween50And90Percent,
+      /*expected_bucket_count=*/1);
+
+  // Same as above but with the bookmark count suffix.
+  histogram_tester.ExpectUniqueSample(
+      "Sync.BookmarkModelMerger.Comparison2.MatchesPreviousGaiaId."
+      "ConsideringAllBookmarks.ByUrlAndTitle.Between1And19LocalUrlBookmarks",
+      /*sample=*/SetComparisonOutcome::kExactMatchNonEmpty,
+      /*expected_bucket_count=*/1);
+
+  histogram_tester.ExpectUniqueSample(
+      "Sync.BookmarkModelMerger.Comparison2.MatchesPreviousGaiaId."
+      "ConsideringAllBookmarks.ByUrlAndUuid.Between1And19LocalUrlBookmarks",
+      /*sample=*/SetComparisonOutcome::kIntersectionEmpty,
+      /*expected_bucket_count=*/1);
+
+  histogram_tester.ExpectUniqueSample(
+      "Sync.BookmarkModelMerger.Comparison2.MatchesPreviousGaiaId."
+      "ConsideringAllBookmarks.ByUrlAndTitleAndPath."
+      "Between1And19LocalUrlBookmarks",
+      /*sample=*/SetComparisonOutcome::kIntersectionBetween10And50Percent,
+      /*expected_bucket_count=*/1);
+
+  histogram_tester.ExpectUniqueSample(
+      "Sync.BookmarkModelMerger.Comparison2.MatchesPreviousGaiaId."
+      "UnderBookmarksBar.ByUrlAndTitle.Between1And19LocalUrlBookmarks",
+      /*sample=*/SetComparisonOutcome::kIntersectionBetween50And90Percent,
+      /*expected_bucket_count=*/1);
+
+  histogram_tester.ExpectUniqueSample(
+      "Sync.BookmarkModelMerger.Comparison2.MatchesPreviousGaiaId."
+      "UnderBookmarksBar.ByUrlAndUuid.Between1And19LocalUrlBookmarks",
+      /*sample=*/SetComparisonOutcome::kIntersectionEmpty,
+      /*expected_bucket_count=*/1);
+
+  histogram_tester.ExpectUniqueSample(
+      "Sync.BookmarkModelMerger.Comparison2.MatchesPreviousGaiaId."
+      "UnderBookmarksBar.ByUrlAndTitleAndPath.Between1And19LocalUrlBookmarks",
+      /*sample=*/SetComparisonOutcome::kIntersectionBetween50And90Percent,
+      /*expected_bucket_count=*/1);
+
   // Sanity-check the recording of a few metrics without the gaia ID info
   // breakdown.
   histogram_tester.ExpectUniqueSample(
-      "Sync.BookmarkModelMerger.Comparison."
+      "Sync.BookmarkModelMerger.Comparison2."
       "ConsideringAllBookmarks.ByUrlAndTitle",
       /*sample=*/LegacySetComparisonOutcome::kExactMatchNonEmpty,
       /*expected_bucket_count=*/1);
 
   histogram_tester.ExpectUniqueSample(
-      "Sync.BookmarkModelMerger.Comparison."
+      "Sync.BookmarkModelMerger.Comparison2."
       "ConsideringAllBookmarks.ByUrlAndUuid",
       /*sample=*/LegacySetComparisonOutcome::kIntersectionEmpty,
       /*expected_bucket_count=*/1);
diff --git a/components/tabs/BUILD.gn b/components/tabs/BUILD.gn
index 0580d74..d4f25c0 100644
--- a/components/tabs/BUILD.gn
+++ b/components/tabs/BUILD.gn
@@ -37,6 +37,7 @@
     "split_tab_collection.cc",
     "split_tab_data.cc",
     "split_tab_visual_data.cc",
+    "supports_handles.cc",
     "tab_collection.cc",
     "tab_collection_storage.cc",
     "tab_group.cc",
diff --git a/components/tabs/public/supports_handles.h b/components/tabs/public/supports_handles.h
index 0bca248..e095fe4 100644
--- a/components/tabs/public/supports_handles.h
+++ b/components/tabs/public/supports_handles.h
@@ -19,12 +19,26 @@
 // `raw_value` which can be copied around, and even passed between programming
 // languages.
 //
-// To use handles with a class, inherit publicly from
-// `SupportsHandles<YourClassName>`. Then a handle can be retrieved from an
-// instance, and the instance retrieved from the handle:
+// To use handles with a class:
+//  - Use `DECLARE_HANDLE_FACTORY(MyClass)` just before your class declaration
+//  - Inherit from `SupportsHandles<MyClassHandleFactory>`.
+//  - In the corresponding .cc file, use `DEFINE_HANDLE_FACTORY(MyClass)`
+//
+// Example:
+// ```
+//  // in the .h file
+//  DECLARE_HANDLE_FACTORY(TabThingy);
+//  class TabThingy : public SupportsHandles<TabThingyHandleFactory> { ... };
+//
+//  // in the .cc file
+//  DEFINE_HANDLE_FACTORY(TabThingy);
+// ```
+//
+// Once you have done this, a handle can be retrieved from an instance, and the
+// instance can be retrieved from the handle:
 // ```
 //  MyClass::Handle handle = my_object->GetHandle();
-//  // Do a bunch of stuff that might delete `my_object`.
+//  // Do a bunch of stuff that might or might not delete `my_object`.
 //  if (MyClass* obj = handle.Get()) {
 //    obj->DoAThing();
 //  }
@@ -57,11 +71,102 @@
 #include <ostream>
 
 #include "base/check.h"
+#include "base/memory/raw_ref.h"
 #include "base/no_destructor.h"
 #include "base/sequence_checker.h"
+#include "base/types/pass_key.h"
 
 namespace tabs {
 
+class SupportsHandlesTest;
+
+namespace internal {
+
+class HandleFactory;
+
+// Base class for all objects that support handles.
+class SupportsHandlesBase {
+ public:
+  virtual ~SupportsHandlesBase();
+  SupportsHandlesBase(const SupportsHandlesBase& other) = delete;
+  void operator=(const SupportsHandlesBase& other) = delete;
+
+ protected:
+  explicit SupportsHandlesBase(HandleFactory& factory);
+
+  // Looks up the object with `handle_value` in `factory`.
+  static SupportsHandlesBase* LookupHandle(HandleFactory& factory,
+                                           int32_t handle_value);
+
+ protected:
+  int32_t handle_value() const { return handle_value_; }
+
+ private:
+  const raw_ref<HandleFactory> handle_factory_;
+  const int32_t handle_value_;
+};
+
+// Provides handle lookup table storage for each class that supports handles.
+//
+// This object is strictly sequence-checked and should only ever be accessed
+// from the primary UI thread.
+class HandleFactory {
+ public:
+  HandleFactory(HandleFactory&) = delete;
+  void operator=(HandleFactory&) = delete;
+  virtual ~HandleFactory();
+
+  using StoredPointerType = SupportsHandlesBase*;
+
+  // Assigns a new, unused handle value for `object` and returns the value.
+  // Called from the constructor of `SupportsHandles`.
+  int32_t AssignHandleValue(base::PassKey<SupportsHandlesBase>,
+                            StoredPointerType object);
+
+  // Frees a handle with `handle_value`. Must be called from the destructor of
+  // `SupportsHandles`.
+  void FreeHandleValue(base::PassKey<SupportsHandlesBase>,
+                       int32_t handle_value);
+
+  // Retrieves the object associated with the given `handle_value`, or null if
+  // no such object exists.
+  StoredPointerType LookupObject(base::PassKey<SupportsHandlesBase>,
+                                 int32_t handle_value) const;
+
+ protected:
+  HandleFactory();
+
+ private:
+  friend SupportsHandlesTest;
+
+  int32_t last_handle_value_ GUARDED_BY_CONTEXT(sequence_) = 0;
+  std::map<int32_t, StoredPointerType> lookup_table_
+      GUARDED_BY_CONTEXT(sequence_);
+  SEQUENCE_CHECKER(sequence_);
+};
+
+// Created to force type safety.
+template <typename T>
+class HandleFactoryT : public HandleFactory {
+ public:
+  using ObjectType = T;
+
+  ~HandleFactoryT() override = default;
+
+ protected:
+  HandleFactoryT() = default;
+};
+
+template <typename Factory>
+concept IsHandleFactory =
+    std::derived_from<Factory,
+                      internal::HandleFactoryT<typename Factory::ObjectType>> &&
+    requires {
+      { Factory::GetInstance() } -> std::same_as<Factory&>;
+    };
+
+}  // namespace internal
+
 // Inherit from this type to have your class support handles. Objects that
 // support handles cannot be copyable or assignable:
 // ```
@@ -71,22 +176,18 @@
 // It is required that `T` derive from this class. This constraint is enforced
 // via a helper class, as it cannot be enforced before SupportsHandles is
 // defined.
-template <typename T>
-class SupportsHandles {
+template <typename Factory>
+  requires internal::IsHandleFactory<Factory>
+class SupportsHandles : public internal::SupportsHandlesBase {
  public:
-  SupportsHandles();
-  virtual ~SupportsHandles();
-  SupportsHandles(const SupportsHandles& other) = delete;
-  void operator=(const SupportsHandles& other) = delete;
+  SupportsHandles() : SupportsHandlesBase(Factory::GetInstance()) {}
+  ~SupportsHandles() override = default;
 
   // The handle type for this class.
   class Handle;
 
   // Returns a unique handle value for this object.
   Handle GetHandle() const;
-
- private:
-  int32_t handle_value_;
 };
 
 // The handle type for an object of type `T`.
@@ -95,8 +196,9 @@
 //
 // Unlike WeakPtr there is some overhead in looking up a handle, so convenience
 // operators (bool, !, ->, *) are not provided.
-template <typename T>
-class SupportsHandles<T>::Handle {
+template <typename Factory>
+  requires internal::IsHandleFactory<Factory>
+class SupportsHandles<Factory>::Handle {
  public:
   Handle() = default;
   Handle(const Handle& other) = default;
@@ -104,7 +206,7 @@
   Handle& operator=(const Handle& other) = default;
 
   // The object type returned by `Get()`.
-  using ObjectType = T;
+  using ObjectType = Factory::ObjectType;
 
   // Convert to/from a raw, opaque handle value. It is safe to pass this value
   // around, including to code running in other languages.
@@ -126,91 +228,58 @@
   int32_t raw_value_ = NullValue;
 };
 
-class SupportsHandlesTest;
-
-namespace internal {
-
-// Provides handle lookup table storage for each class that supports handles.
-//
-// This object is strictly sequence-checked and should only ever be accessed
-// from the primary UI thread.
-template <typename T>
-  requires std::derived_from<T, SupportsHandles<T>>
-class HandleHelper {
- public:
-  using StoredPointerType = SupportsHandles<T>*;
-
-  // Assigns a new, unused handle value for `object` and returns the value.
-  // Called from the constructor of `SupportsHandles`.
-  int32_t AssignHandleValue(StoredPointerType object) {
-    DCHECK_CALLED_ON_VALID_SEQUENCE(sequence_);
-    CHECK(object);
-
-    // Use the next available handle value; it is an error if the value rolls
-    // back over to zero.
-    ++last_handle_value_;
-    CHECK(last_handle_value_)
-        << "Fatal handle reuse! Please curtail object creation.";
-
-    lookup_table_.emplace(last_handle_value_, object);
-    return last_handle_value_;
-  }
-
-  // Frees a handle with `handle_value`. Must be called from the destructor of
-  // `SupportsHandles`.
-  void FreeHandleValue(int32_t handle_value) {
-    DCHECK_CALLED_ON_VALID_SEQUENCE(sequence_);
-    CHECK(lookup_table_.erase(handle_value));
-  }
-
-  // Retrieves the object associated with the given `handle_value`, or null if
-  // no such object exists.
-  T* LookupObject(int32_t handle_value) const {
-    DCHECK_CALLED_ON_VALID_SEQUENCE(sequence_);
-    const auto it = lookup_table_.find(handle_value);
-    return it != lookup_table_.end() ? static_cast<T*>(it->second) : nullptr;
-  }
-
-  // The lookup object is a singleton per `SupportsHandle`-derived type.
-  static HandleHelper& GetInstance() {
-    static base::NoDestructor<HandleHelper> instance;
-    return *instance;
-  }
-
- private:
-  friend SupportsHandlesTest;
-  friend class base::NoDestructor<HandleHelper<T>>;
-  HandleHelper() = default;
-  ~HandleHelper() = default;
-
-  int32_t last_handle_value_ GUARDED_BY_CONTEXT(sequence_) = 0;
-  std::map<int32_t, StoredPointerType> lookup_table_
-      GUARDED_BY_CONTEXT(sequence_);
-  SEQUENCE_CHECKER(sequence_);
-};
-
-}  // namespace internal
-
-template <typename T>
-SupportsHandles<T>::SupportsHandles()
-    : handle_value_(
-          internal::HandleHelper<T>::GetInstance().AssignHandleValue(this)) {}
-
-template <typename T>
-SupportsHandles<T>::~SupportsHandles() {
-  internal::HandleHelper<T>::GetInstance().FreeHandleValue(handle_value_);
+template <typename Factory>
+  requires internal::IsHandleFactory<Factory>
+typename SupportsHandles<Factory>::Handle SupportsHandles<Factory>::GetHandle()
+    const {
+  return Handle(handle_value());
 }
 
-template <typename T>
-typename SupportsHandles<T>::Handle SupportsHandles<T>::GetHandle() const {
-  return Handle(handle_value_);
-}
-
-template <typename T>
-T* SupportsHandles<T>::Handle::Get() const {
-  return internal::HandleHelper<T>::GetInstance().LookupObject(raw_value_);
+template <typename Factory>
+  requires internal::IsHandleFactory<Factory>
+SupportsHandles<Factory>::Handle::ObjectType*
+SupportsHandles<Factory>::Handle::Get() const {
+  return static_cast<Factory::ObjectType*>(
+      SupportsHandlesBase::LookupHandle(Factory::GetInstance(), raw_value_));
 }
 
 }  // namespace tabs
 
+// Internal; do not use.
+#define DECLARE_HANDLE_FACTORY_IMPL(ExportName, ForType)       \
+  class ForType;                                               \
+  class ExportName ForType##HandleFactory                      \
+      : public ::tabs::internal::HandleFactoryT<ForType> {     \
+   public:                                                     \
+    static ForType##HandleFactory& GetInstance();              \
+                                                               \
+   private:                                                    \
+    friend class ::base::NoDestructor<ForType##HandleFactory>; \
+    ForType##HandleFactory() = default;                        \
+    ~ForType##HandleFactory() override = default;              \
+  }
+
+// Put this in your .h file just before declaring class `ForType` which inherits
+// from `SupportsHandleFactory`. This will create a handle factory class named
+// "`ForType`HandleFactory".
+#define DECLARE_HANDLE_FACTORY(ForType) DECLARE_HANDLE_FACTORY_IMPL(, ForType)
+
+// Use this version of `DECLARE_HANDLE_FACTORY()` if you need your classes to be
+// exported, e.g.:
+// ```
+//  DECLARE_HANDLE_FACTORY_EXPORT(COMPONENT_EXPORT(MY_COMPONENT), MyClass)
+// ```
+#define DECLARE_HANDLE_FACTORY_EXPORT(ExportName, ForType) \
+  DECLARE_HANDLE_FACTORY_IMPL(ExportName, ForType)
+
+// Put this in the .cc file that corresponds to the .h file with your
+// `DECLARE_HANDLE_FACTORY()`.
+#define DEFINE_HANDLE_FACTORY(ForType)                            \
+  ForType##HandleFactory& ForType##HandleFactory::GetInstance() { \
+    static base::NoDestructor<ForType##HandleFactory> instance;   \
+    return *instance;                                             \
+  }                                                               \
+  /* Included to force a semicolon. */                            \
+  static_assert(true)
+
 #endif  // COMPONENTS_TABS_PUBLIC_SUPPORTS_HANDLES_H_
diff --git a/components/tabs/public/supports_handles_unittest.cc b/components/tabs/public/supports_handles_unittest.cc
index e7304ba..2218c9c 100644
--- a/components/tabs/public/supports_handles_unittest.cc
+++ b/components/tabs/public/supports_handles_unittest.cc
@@ -14,14 +14,16 @@
 namespace tabs {
 
 namespace {
-class TestClass : public SupportsHandles<TestClass> {};
+DECLARE_HANDLE_FACTORY(TestClass);
+class TestClass : public SupportsHandles<TestClassHandleFactory> {};
+DEFINE_HANDLE_FACTORY(TestClass);
 }  // namespace
 
 class SupportsHandlesTest : public testing::Test {
  public:
   template <typename T>
   void SetCounter(int32_t value) {
-    auto& helper = internal::HandleHelper<T>::GetInstance();
+    auto& helper = TestClassHandleFactory::GetInstance();
     DCHECK_CALLED_ON_VALID_SEQUENCE(helper.sequence_);
     CHECK(helper.lookup_table_.empty());
     helper.last_handle_value_ = value;
diff --git a/components/tabs/public/tab_collection.h b/components/tabs/public/tab_collection.h
index c5ca742b..0f7cfe1 100644
--- a/components/tabs/public/tab_collection.h
+++ b/components/tabs/public/tab_collection.h
@@ -28,12 +28,14 @@
 
 class TabInterface;
 
+DECLARE_HANDLE_FACTORY(TabCollection);
+
 // This is an interface that representing the hierarchical storage of tabs.
 // This can be used to access and manipulate tabs and the state of the tabstrip.
 // Different types of collections should implement this base class based on how
 // their feature works. For example, a pinned collection can implement tab
 // collection that does not store any collection.
-class TabCollection : public SupportsHandles<TabCollection> {
+class TabCollection : public SupportsHandles<TabCollectionHandleFactory> {
  public:
   // TabIterator provides a way to traverse all tab objects within this
   // TabCollection and its sub-collections in a depth first inorder traversal
diff --git a/components/tabs/public/tab_interface.h b/components/tabs/public/tab_interface.h
index a037fb73..19fe93e 100644
--- a/components/tabs/public/tab_interface.h
+++ b/components/tabs/public/tab_interface.h
@@ -42,6 +42,8 @@
   virtual ~ScopedTabModalUI() = default;
 };
 
+DECLARE_HANDLE_FACTORY(TabInterface);
+
 // TODO(crbug.com/404889112): This interface will be reused for Android as part
 // of the effort to share tab collections between desktop and Android. Some
 // features of TabInterface are unsupported on Android. A buildflag is used to
@@ -53,7 +55,7 @@
 // Ping erikchen for assistance if this class does not have the functionality
 // your feature needs. This comment will be deleted after there are 10+ features
 // in TabFeatures.
-class TabInterface : public SupportsHandles<TabInterface> {
+class TabInterface : public SupportsHandles<TabInterfaceHandleFactory> {
  public:
   // This method exists to ease the transition from WebContents to TabInterface.
   // This method should only be called on instances of WebContents that are
diff --git a/components/tabs/supports_handles.cc b/components/tabs/supports_handles.cc
new file mode 100644
index 0000000..c1cc6fe93
--- /dev/null
+++ b/components/tabs/supports_handles.cc
@@ -0,0 +1,59 @@
+// Copyright 2025 The Chromium Authors
+// Use of this source code is governed by a BSD-style license that can be
+// found in the LICENSE file.
+
+#include "components/tabs/public/supports_handles.h"
+
+#include "base/types/pass_key.h"
+
+namespace tabs::internal {
+
+SupportsHandlesBase::SupportsHandlesBase(HandleFactory& handle_factory)
+    : handle_factory_(handle_factory),
+      handle_value_(
+          handle_factory.AssignHandleValue(base::PassKey<SupportsHandlesBase>(),
+                                           this)) {}
+SupportsHandlesBase::~SupportsHandlesBase() {
+  handle_factory_->FreeHandleValue(base::PassKey<SupportsHandlesBase>(),
+                                   handle_value_);
+}
+
+SupportsHandlesBase* SupportsHandlesBase::LookupHandle(HandleFactory& factory,
+                                                       int32_t handle_value) {
+  return factory.LookupObject(base::PassKey<SupportsHandlesBase>(),
+                              handle_value);
+}
+
+HandleFactory::HandleFactory() = default;
+HandleFactory::~HandleFactory() = default;
+
+int32_t HandleFactory::AssignHandleValue(base::PassKey<SupportsHandlesBase>,
+                                         StoredPointerType object) {
+  DCHECK_CALLED_ON_VALID_SEQUENCE(sequence_);
+  CHECK(object);
+
+  // Use the next available handle value; it is an error if the value rolls
+  // back over to zero.
+  ++last_handle_value_;
+  CHECK(last_handle_value_)
+      << "Fatal handle reuse! Please curtail object creation.";
+
+  lookup_table_.emplace(last_handle_value_, object);
+  return last_handle_value_;
+}
+
+void HandleFactory::FreeHandleValue(base::PassKey<SupportsHandlesBase>,
+                                    int32_t handle_value) {
+  DCHECK_CALLED_ON_VALID_SEQUENCE(sequence_);
+  CHECK(lookup_table_.erase(handle_value));
+}
+
+HandleFactory::StoredPointerType HandleFactory::LookupObject(
+    base::PassKey<SupportsHandlesBase>,
+    int32_t handle_value) const {
+  DCHECK_CALLED_ON_VALID_SEQUENCE(sequence_);
+  const auto it = lookup_table_.find(handle_value);
+  return it != lookup_table_.end() ? it->second : nullptr;
+}
+
+}  // namespace tabs::internal
diff --git a/components/tabs/tab_collection.cc b/components/tabs/tab_collection.cc
index 26a1a47..32e94fa 100644
--- a/components/tabs/tab_collection.cc
+++ b/components/tabs/tab_collection.cc
@@ -6,10 +6,13 @@
 
 #include "base/check.h"
 #include "base/notreached.h"
+#include "components/tabs/public/supports_handles.h"
 #include "components/tabs/public/tab_interface.h"
 
 namespace tabs {
 
+DEFINE_HANDLE_FACTORY(TabCollection);
+
 // This does not create a useful iterator, but providing a default constructor
 // is required for forward iterators by the C++ spec.
 TabCollection::TabIterator::TabIterator() : TabIterator(nullptr, true) {}
diff --git a/components/viz/common/features.cc b/components/viz/common/features.cc
index b1108146..e3341f2 100644
--- a/components/viz/common/features.cc
+++ b/components/viz/common/features.cc
@@ -421,6 +421,13 @@
              "BatchResourceRelease",
              base::FEATURE_DISABLED_BY_DEFAULT);
 
+// When enabled, BeginFrameSource will not send a `BeginFrameArgs::MISSED` in
+// response to `AddObserver`. As these consistently miss deadlines, and increase
+// latency and jank. Instead the client will receive the next BeginFrame.
+BASE_FEATURE(kNoLateBeginFrames,
+             "NoLateBeginFrames",
+             base::FEATURE_DISABLED_BY_DEFAULT);
+
 // Stops BeginFrame issue to use |last_vsync_interval_| instead of the current
 // set of BeginFrameArgs.
 // TODO(b/333940735): Should be removed if the issue isn't fixed.
diff --git a/components/viz/common/features.h b/components/viz/common/features.h
index fbcb901..b5eec88 100644
--- a/components/viz/common/features.h
+++ b/components/viz/common/features.h
@@ -144,6 +144,7 @@
 
 VIZ_COMMON_EXPORT BASE_DECLARE_FEATURE(kShutdownForFailedChannelCreation);
 VIZ_COMMON_EXPORT BASE_DECLARE_FEATURE(kBatchResourceRelease);
+VIZ_COMMON_EXPORT BASE_DECLARE_FEATURE(kNoLateBeginFrames);
 
 #if BUILDFLAG(IS_ANDROID)
 VIZ_COMMON_EXPORT bool IsDynamicColorGamutEnabled();
diff --git a/components/viz/common/frame_sinks/begin_frame_source.cc b/components/viz/common/frame_sinks/begin_frame_source.cc
index 8aefdbe8..54bb28f 100644
--- a/components/viz/common/frame_sinks/begin_frame_source.cc
+++ b/components/viz/common/frame_sinks/begin_frame_source.cc
@@ -13,6 +13,7 @@
 #include "base/atomic_sequence_num.h"
 #include "base/check_op.h"
 #include "base/containers/contains.h"
+#include "base/feature_list.h"
 #include "base/location.h"
 #include "base/memory/raw_ptr.h"
 #include "base/metrics/histogram_macros.h"
@@ -381,6 +382,9 @@
           last_begin_frame_args_.frame_time + double_tick_margin) {
     last_begin_frame_args_ = CreateBeginFrameArgs(last_or_missed_tick_time);
   }
+  if (base::FeatureList::IsEnabled(features::kNoLateBeginFrames)) {
+    return;
+  }
   BeginFrameArgs missed_args = last_begin_frame_args_;
   missed_args.type = BeginFrameArgs::MISSED;
   IssueBeginFrameToObserver(obs, missed_args);
@@ -508,6 +512,9 @@
   observers_.insert(obs);
   obs->OnBeginFrameSourcePausedChanged(paused_);
 
+  if (base::FeatureList::IsEnabled(features::kNoLateBeginFrames)) {
+    return;
+  }
   // Send a MISSED begin frame if necessary.
   BeginFrameArgs missed_args = GetMissedBeginFrameArgs(obs);
   if (missed_args.IsValid()) {
diff --git a/components/viz/common/frame_sinks/begin_frame_source_unittest.cc b/components/viz/common/frame_sinks/begin_frame_source_unittest.cc
index 8a5af7a..1e94c9c 100644
--- a/components/viz/common/frame_sinks/begin_frame_source_unittest.cc
+++ b/components/viz/common/frame_sinks/begin_frame_source_unittest.cc
@@ -9,8 +9,11 @@
 #include <memory>
 #include <utility>
 
+#include "base/feature_list.h"
 #include "base/memory/raw_ptr.h"
+#include "base/test/scoped_feature_list.h"
 #include "base/test/test_mock_time_task_runner.h"
+#include "components/viz/common/features.h"
 #include "components/viz/test/begin_frame_args_test.h"
 #include "components/viz/test/begin_frame_source_test.h"
 #include "components/viz/test/fake_delay_based_time_source.h"
@@ -400,9 +403,18 @@
 
 // DelayBasedBeginFrameSource testing
 // ------------------------------------------
-class DelayBasedBeginFrameSourceTest : public ::testing::Test {
+class DelayBasedBeginFrameSourceTest
+    : public ::testing::Test,
+      public testing::WithParamInterface<bool> {
  public:
+  bool NoLateBeginFrames() const { return GetParam(); }
+
   void SetUp() override {
+    if (NoLateBeginFrames()) {
+      scoped_feature_list_.InitAndEnableFeature(features::kNoLateBeginFrames);
+    } else {
+      scoped_feature_list_.InitAndDisableFeature(features::kNoLateBeginFrames);
+    }
     task_runner_ = base::MakeRefCounted<TestTaskRunner>();
     std::unique_ptr<FakeDelayBasedTimeSource> time_source =
         std::make_unique<FakeDelayBasedTimeSource>(
@@ -420,10 +432,14 @@
   scoped_refptr<TestTaskRunner> task_runner_;
   std::unique_ptr<DelayBasedBeginFrameSource> source_;
   std::unique_ptr<MockBeginFrameObserver> obs_;
+  base::test::ScopedFeatureList scoped_feature_list_;
 };
 
-TEST_F(DelayBasedBeginFrameSourceTest,
+TEST_P(DelayBasedBeginFrameSourceTest,
        AddObserverCallsOnBeginFrameWithMissedTick) {
+  if (NoLateBeginFrames()) {
+    return;
+  }
   task_runner_->AdvanceMockTickClock(base::Microseconds(9010));
   EXPECT_BEGIN_FRAME_SOURCE_PAUSED(*obs_, false);
   EXPECT_BEGIN_FRAME_USED_MISSED(*obs_, source_->source_id(), 1, 10000, 20000,
@@ -432,10 +448,12 @@
   // No tasks should need to be run for this to occur.
 }
 
-TEST_F(DelayBasedBeginFrameSourceTest, AddObserverCallsCausesOnBeginFrame) {
+TEST_P(DelayBasedBeginFrameSourceTest, AddObserverCallsCausesOnBeginFrame) {
   EXPECT_BEGIN_FRAME_SOURCE_PAUSED(*obs_, false);
-  EXPECT_BEGIN_FRAME_USED_MISSED(*obs_, source_->source_id(), 1, 0, 10000,
-                                 10000);
+  if (!NoLateBeginFrames()) {
+    EXPECT_BEGIN_FRAME_USED_MISSED(*obs_, source_->source_id(), 1, 0, 10000,
+                                   10000);
+  }
   source_->AddObserver(obs_.get());
   EXPECT_EQ(TicksFromMicroseconds(10000),
             task_runner_->NowTicks() + task_runner_->NextPendingTaskDelay());
@@ -445,10 +463,12 @@
   task_runner_->RunUntilIdle();
 }
 
-TEST_F(DelayBasedBeginFrameSourceTest, BasicOperation) {
+TEST_P(DelayBasedBeginFrameSourceTest, BasicOperation) {
   EXPECT_BEGIN_FRAME_SOURCE_PAUSED(*obs_, false);
-  EXPECT_BEGIN_FRAME_USED_MISSED(*obs_, source_->source_id(), 1, 0, 10000,
-                                 10000);
+  if (!NoLateBeginFrames()) {
+    EXPECT_BEGIN_FRAME_USED_MISSED(*obs_, source_->source_id(), 1, 0, 10000,
+                                   10000);
+  }
   source_->AddObserver(obs_.get());
   EXPECT_BEGIN_FRAME_USED(*obs_, source_->source_id(), 2, 10000, 20000, 10000);
   EXPECT_BEGIN_FRAME_USED(*obs_, source_->source_id(), 3, 20000, 30000, 10000);
@@ -460,10 +480,12 @@
   task_runner_->FastForwardTo(TicksFromMicroseconds(60000));
 }
 
-TEST_F(DelayBasedBeginFrameSourceTest, VSyncChanges) {
+TEST_P(DelayBasedBeginFrameSourceTest, VSyncChanges) {
   EXPECT_BEGIN_FRAME_SOURCE_PAUSED(*obs_, false);
-  EXPECT_BEGIN_FRAME_USED_MISSED(*obs_, source_->source_id(), 1, 0, 10000,
-                                 10000);
+  if (!NoLateBeginFrames()) {
+    EXPECT_BEGIN_FRAME_USED_MISSED(*obs_, source_->source_id(), 1, 0, 10000,
+                                   10000);
+  }
   source_->AddObserver(obs_.get());
 
   EXPECT_BEGIN_FRAME_USED(*obs_, source_->source_id(), 2, 10000, 20000, 10000);
@@ -481,10 +503,12 @@
   task_runner_->FastForwardTo(TicksFromMicroseconds(60000));
 }
 
-TEST_F(DelayBasedBeginFrameSourceTest, VSyncChangeTimebaseBeforeLastTick) {
+TEST_P(DelayBasedBeginFrameSourceTest, VSyncChangeTimebaseBeforeLastTick) {
   EXPECT_BEGIN_FRAME_SOURCE_PAUSED(*obs_, false);
-  EXPECT_BEGIN_FRAME_USED_MISSED(*obs_, source_->source_id(), 1, 0, 10000,
-                                 10000);
+  if (!NoLateBeginFrames()) {
+    EXPECT_BEGIN_FRAME_USED_MISSED(*obs_, source_->source_id(), 1, 0, 10000,
+                                   10000);
+  }
   source_->AddObserver(obs_.get());
 
   EXPECT_BEGIN_FRAME_USED(*obs_, source_->source_id(), 2, 10000, 20000, 10000);
@@ -513,10 +537,12 @@
   task_runner_->FastForwardTo(TicksFromMicroseconds(70000));
 }
 
-TEST_F(DelayBasedBeginFrameSourceTest, VSyncChangeTimebaseAfterNextTick) {
+TEST_P(DelayBasedBeginFrameSourceTest, VSyncChangeTimebaseAfterNextTick) {
   EXPECT_BEGIN_FRAME_SOURCE_PAUSED(*obs_, false);
-  EXPECT_BEGIN_FRAME_USED_MISSED(*obs_, source_->source_id(), 1, 0, 10000,
-                                 10000);
+  if (!NoLateBeginFrames()) {
+    EXPECT_BEGIN_FRAME_USED_MISSED(*obs_, source_->source_id(), 1, 0, 10000,
+                                   10000);
+  }
   source_->AddObserver(obs_.get());
 
   EXPECT_BEGIN_FRAME_USED(*obs_, source_->source_id(), 2, 10000, 20000, 10000);
@@ -552,10 +578,12 @@
   task_runner_->FastForwardTo(TicksFromMicroseconds(85000));
 }
 
-TEST_F(DelayBasedBeginFrameSourceTest, VSyncChangeTimebaseBetweenTicks) {
+TEST_P(DelayBasedBeginFrameSourceTest, VSyncChangeTimebaseBetweenTicks) {
   EXPECT_BEGIN_FRAME_SOURCE_PAUSED(*obs_, false);
-  EXPECT_BEGIN_FRAME_USED_MISSED(*obs_, source_->source_id(), 1, 0, 10000,
-                                 10000);
+  if (!NoLateBeginFrames()) {
+    EXPECT_BEGIN_FRAME_USED_MISSED(*obs_, source_->source_id(), 1, 0, 10000,
+                                   10000);
+  }
   source_->AddObserver(obs_.get());
 
   EXPECT_BEGIN_FRAME_USED(*obs_, source_->source_id(), 2, 10000, 20000, 10000);
@@ -580,10 +608,12 @@
   task_runner_->FastForwardTo(TicksFromMicroseconds(70000));
 }
 
-TEST_F(DelayBasedBeginFrameSourceTest, VSyncSkipped) {
+TEST_P(DelayBasedBeginFrameSourceTest, VSyncSkipped) {
   EXPECT_BEGIN_FRAME_SOURCE_PAUSED(*obs_, false);
-  EXPECT_BEGIN_FRAME_USED_MISSED(*obs_, source_->source_id(), 1, 0, 10000,
-                                 10000);
+  if (!NoLateBeginFrames()) {
+    EXPECT_BEGIN_FRAME_USED_MISSED(*obs_, source_->source_id(), 1, 0, 10000,
+                                   10000);
+  }
   source_->AddObserver(obs_.get());
 
   EXPECT_BEGIN_FRAME_USED(*obs_, source_->source_id(), 2, 10000, 20000, 10000);
@@ -602,14 +632,16 @@
   task_runner_->FastForwardTo(TicksFromMicroseconds(75000));
 }
 
-TEST_F(DelayBasedBeginFrameSourceTest, MultipleObservers) {
+TEST_P(DelayBasedBeginFrameSourceTest, MultipleObservers) {
   NiceMock<MockBeginFrameObserver> obs1, obs2;
 
   // Mock tick clock starts off at 1000.
   task_runner_->FastForwardBy(base::Microseconds(9010));
   EXPECT_BEGIN_FRAME_SOURCE_PAUSED(obs1, false);
-  EXPECT_BEGIN_FRAME_USED_MISSED(obs1, source_->source_id(), 1, 10000, 20000,
-                                 10000);
+  if (!NoLateBeginFrames()) {
+    EXPECT_BEGIN_FRAME_USED_MISSED(obs1, source_->source_id(), 1, 10000, 20000,
+                                   10000);
+  }
   source_->AddObserver(&obs1);  // Should cause the last tick to be sent
   // No tasks should need to be run for this to occur.
 
@@ -618,8 +650,10 @@
 
   EXPECT_BEGIN_FRAME_SOURCE_PAUSED(obs2, false);
   // Sequence number unchanged for missed frame with time of last normal frame.
-  EXPECT_BEGIN_FRAME_USED_MISSED(obs2, source_->source_id(), 2, 20000, 30000,
-                                 10000);
+  if (!NoLateBeginFrames()) {
+    EXPECT_BEGIN_FRAME_USED_MISSED(obs2, source_->source_id(), 2, 20000, 30000,
+                                   10000);
+  }
   source_->AddObserver(&obs2);  // Should cause the last tick to be sent
   // No tasks should need to be run for this to occur.
 
@@ -637,11 +671,14 @@
   EXPECT_FALSE(task_runner_->HasPendingTask());
 }
 
-TEST_F(DelayBasedBeginFrameSourceTest, DoubleTick) {
+TEST_P(DelayBasedBeginFrameSourceTest, DoubleTick) {
   NiceMock<MockBeginFrameObserver> obs;
 
   EXPECT_BEGIN_FRAME_SOURCE_PAUSED(obs, false);
-  EXPECT_BEGIN_FRAME_USED_MISSED(obs, source_->source_id(), 1, 0, 10000, 10000);
+  if (!NoLateBeginFrames()) {
+    EXPECT_BEGIN_FRAME_USED_MISSED(obs, source_->source_id(), 1, 0, 10000,
+                                   10000);
+  }
   source_->AddObserver(&obs);
 
   source_->OnUpdateVSyncParameters(TicksFromMicroseconds(5000),
@@ -659,11 +696,14 @@
   task_runner_->RunUntilIdle();
 }
 
-TEST_F(DelayBasedBeginFrameSourceTest, DoubleTickMissedFrame) {
+TEST_P(DelayBasedBeginFrameSourceTest, DoubleTickMissedFrame) {
   NiceMock<MockBeginFrameObserver> obs;
 
   EXPECT_BEGIN_FRAME_SOURCE_PAUSED(obs, false);
-  EXPECT_BEGIN_FRAME_USED_MISSED(obs, source_->source_id(), 1, 0, 10000, 10000);
+  if (!NoLateBeginFrames()) {
+    EXPECT_BEGIN_FRAME_USED_MISSED(obs, source_->source_id(), 1, 0, 10000,
+                                   10000);
+  }
   source_->AddObserver(&obs);
   source_->RemoveObserver(&obs);
 
@@ -683,19 +723,29 @@
                                    base::Microseconds(10000));
   task_runner_->AdvanceMockTickClock(base::Microseconds(5000));
   EXPECT_BEGIN_FRAME_SOURCE_PAUSED(obs, false);
-  // Sequence number is incremented again, because sufficient time has passed.
-  EXPECT_BEGIN_FRAME_USED_MISSED(obs, source_->source_id(), 2, 10000, 20000,
-                                 10000);
+  if (!NoLateBeginFrames()) {
+    // Sequence number is incremented again, because sufficient time has passed.
+    EXPECT_BEGIN_FRAME_USED_MISSED(obs, source_->source_id(), 2, 10000, 20000,
+                                   10000);
+  }
   source_->AddObserver(&obs);
+  if (NoLateBeginFrames()) {
+    EXPECT_BEGIN_FRAME_USED(obs, source_->source_id(), 3, 20000, 30000, 10000);
+    task_runner_->AdvanceMockTickClock(base::Microseconds(10010));
+    task_runner_->RunUntilIdle();
+  }
   source_->RemoveObserver(&obs);
 }
 
-TEST_F(DelayBasedBeginFrameSourceTest, MultipleArgsInSameInterval) {
+TEST_P(DelayBasedBeginFrameSourceTest, MultipleArgsInSameInterval) {
   NiceMock<MockBeginFrameObserver> obs;
   NiceMock<MockBeginFrameObserver> obs2;
 
   EXPECT_BEGIN_FRAME_SOURCE_PAUSED(obs, false);
-  EXPECT_BEGIN_FRAME_USED_MISSED(obs, source_->source_id(), 1, 0, 10000, 10000);
+  if (!NoLateBeginFrames()) {
+    EXPECT_BEGIN_FRAME_USED_MISSED(obs, source_->source_id(), 1, 0, 10000,
+                                   10000);
+  }
   source_->AddObserver(&obs);
   task_runner_->RunUntilIdle();
 
@@ -703,9 +753,11 @@
   task_runner_->AdvanceMockTickClock(base::Microseconds(9000));
   task_runner_->RunUntilIdle();
 
-  // Sequence number should stay the same within same interval.
-  EXPECT_BEGIN_FRAME_USED_MISSED(obs2, source_->source_id(), 2, 10000, 20000,
-                                 10000);
+  if (!NoLateBeginFrames()) {
+    // Sequence number should stay the same within same interval.
+    EXPECT_BEGIN_FRAME_USED_MISSED(obs2, source_->source_id(), 2, 10000, 20000,
+                                   10000);
+  }
   source_->AddObserver(&obs2);
 
   EXPECT_BEGIN_FRAME_USED(obs, source_->source_id(), 3, 20000, 30000, 10000);
@@ -714,11 +766,14 @@
   task_runner_->RunUntilIdle();
 }
 
-TEST_F(DelayBasedBeginFrameSourceTest, ConsecutiveArgsDelayedByMultipleVsyncs) {
+TEST_P(DelayBasedBeginFrameSourceTest, ConsecutiveArgsDelayedByMultipleVsyncs) {
   NiceMock<MockBeginFrameObserver> obs;
 
   EXPECT_BEGIN_FRAME_SOURCE_PAUSED(obs, false);
-  EXPECT_BEGIN_FRAME_USED_MISSED(obs, source_->source_id(), 1, 0, 10000, 10000);
+  if (!NoLateBeginFrames()) {
+    EXPECT_BEGIN_FRAME_USED_MISSED(obs, source_->source_id(), 1, 0, 10000,
+                                   10000);
+  }
   source_->AddObserver(&obs);
   task_runner_->RunUntilIdle();
 
@@ -730,18 +785,29 @@
   // New args created 8 intervals later.
   // Sequence number should increase by this much.
   EXPECT_BEGIN_FRAME_SOURCE_PAUSED(obs, false);
-  EXPECT_BEGIN_FRAME_USED_MISSED(obs, source_->source_id(), 10, 90000, 100000,
-                                 10000);
+  if (!NoLateBeginFrames()) {
+    EXPECT_BEGIN_FRAME_USED_MISSED(obs, source_->source_id(), 10, 90000, 100000,
+                                   10000);
+  }
   task_runner_->AdvanceMockTickClock(base::Microseconds(80000));
   source_->AddObserver(&obs);
+  if (NoLateBeginFrames()) {
+    EXPECT_BEGIN_FRAME_USED(obs, source_->source_id(), 11, 100000, 110000,
+                            10000);
+    task_runner_->AdvanceMockTickClock(base::Microseconds(10010));
+    task_runner_->RunUntilIdle();
+  }
 }
 
-TEST_F(DelayBasedBeginFrameSourceTest, WithVrrInterval) {
+TEST_P(DelayBasedBeginFrameSourceTest, WithVrrInterval) {
   NiceMock<MockBeginFrameObserver> obs;
   source_->SetMaxVrrInterval(base::Microseconds(25000));
 
   EXPECT_BEGIN_FRAME_SOURCE_PAUSED(obs, false);
-  EXPECT_BEGIN_FRAME_USED_MISSED(obs, source_->source_id(), 1, 0, 25000, 25000);
+  if (!NoLateBeginFrames()) {
+    EXPECT_BEGIN_FRAME_USED_MISSED(obs, source_->source_id(), 1, 0, 25000,
+                                   25000);
+  }
   source_->AddObserver(&obs);
 
   EXPECT_BEGIN_FRAME_USED(obs, source_->source_id(), 2, 10000, 35000, 25000);
@@ -766,6 +832,13 @@
   task_runner_->FastForwardTo(TicksFromMicroseconds(73000));
 }
 
+INSTANTIATE_TEST_SUITE_P(
+    ,
+    DelayBasedBeginFrameSourceTest,
+    testing::Bool(),
+    [](const ::testing::TestParamInfo<bool>& info) -> std::string {
+      return info.param ? "NoLateBeginFrames" : "LateBeginFrames";
+    });
 // ExternalBeginFrameSource testing
 // --------------------------------------------
 class MockExternalBeginFrameSourceClient
@@ -849,7 +922,9 @@
   source_->OnBeginFrame(args);
 
   EXPECT_BEGIN_FRAME_SOURCE_PAUSED(*obs_, false);
-  EXPECT_BEGIN_FRAME_USED_MISSED(*obs_, 0, 2, 10000, 10100, 100);
+  if (!base::FeatureList::IsEnabled(features::kNoLateBeginFrames)) {
+    EXPECT_BEGIN_FRAME_USED_MISSED(*obs_, 0, 2, 10000, 10100, 100);
+  }
   source_->AddObserver(obs_.get());
   source_->RemoveObserver(obs_.get());
 
diff --git a/components/viz/service/display_embedder/skia_output_device_offscreen.cc b/components/viz/service/display_embedder/skia_output_device_offscreen.cc
index 01b5b17..c9b9b69 100644
--- a/components/viz/service/display_embedder/skia_output_device_offscreen.cc
+++ b/components/viz/service/display_embedder/skia_output_device_offscreen.cc
@@ -236,7 +236,10 @@
   ReadPixelsContext context;
   if (auto* graphite_shared_context =
           context_state_->graphite_shared_context()) {
-    graphite_shared_context->asyncRescaleAndReadPixels(
+    context_state_->FlushAndSubmit(true);
+    // asyncRescaleAndReadPixels is a context operation that inserts its own
+    // recording internally.
+    graphite_shared_context->asyncRescaleAndReadPixelsAndSubmit(
         sk_surface_.get(), sk_surface_->imageInfo(),
         SkIRect::MakeSize(sk_surface_->imageInfo().dimensions()),
         SkImage::RescaleGamma::kSrc, SkImage::RescaleMode::kRepeatedLinear,
@@ -248,9 +251,9 @@
         SkIRect::MakeSize(sk_surface_->imageInfo().dimensions()),
         SkImage::RescaleGamma::kSrc, SkImage::RescaleMode::kRepeatedLinear,
         &ReadPixelsContext::OnReadPixelsDone, &context);
+    context_state_->FlushAndSubmit(true);
   }
 
-  context_state_->FlushAndSubmit(true);
   CHECK(context.finished);
   CHECK(context.async_result);
 
diff --git a/components/viz/service/input/input_manager.cc b/components/viz/service/input/input_manager.cc
index 961dacba..011b34ef 100644
--- a/components/viz/service/input/input_manager.cc
+++ b/components/viz/service/input/input_manager.cc
@@ -412,7 +412,6 @@
   if (it != frame_sink_metadata_map_.end()) {
     return it->second.rir_support.get();
   }
-  DUMP_WILL_BE_NOTREACHED();
   return nullptr;
 }
 
@@ -433,8 +432,6 @@
   if (it != frame_sink_metadata_map_.end()) {
     return it->second.rir_support.get();
   }
-
-  DUMP_WILL_BE_NOTREACHED();
   return nullptr;
 }
 
diff --git a/content/browser/attribution_reporting/attribution_internals_handler_impl.cc b/content/browser/attribution_reporting/attribution_internals_handler_impl.cc
index d96c757..9e94186 100644
--- a/content/browser/attribution_reporting/attribution_internals_handler_impl.cc
+++ b/content/browser/attribution_reporting/attribution_internals_handler_impl.cc
@@ -228,7 +228,7 @@
 }
 
 attribution_internals::mojom::NetworkStatusPtr NetworkStatus(int status) {
-  return status > 0
+  return status >= 0
              ? attribution_internals::mojom::NetworkStatus::NewHttpResponseCode(
                    status)
              : attribution_internals::mojom::NetworkStatus::NewNetworkError(
diff --git a/content/public/browser/BUILD.gn b/content/public/browser/BUILD.gn
index 2714f3b8..69d7b318 100644
--- a/content/public/browser/BUILD.gn
+++ b/content/public/browser/BUILD.gn
@@ -607,7 +607,6 @@
     "//components/viz/host",
     "//content/browser",  # Must not be public_deps!
     "//device/fido",
-    "//gpu",
     "//gpu/command_buffer/service:gles2",
     "//media",
     "//media/capture",
diff --git a/content/public/browser/gpu_utils.cc b/content/public/browser/gpu_utils.cc
index a1e6e4e2..dc7cf18 100644
--- a/content/public/browser/gpu_utils.cc
+++ b/content/public/browser/gpu_utils.cc
@@ -19,7 +19,6 @@
 #include "content/browser/gpu/gpu_process_host.h"
 #include "content/public/common/content_features.h"
 #include "content/public/common/content_switches.h"
-#include "gpu/command_buffer/service/gpu_switches.h"
 #include "gpu/command_buffer/service/service_utils.h"
 #include "gpu/config/gpu_finch_features.h"
 #include "gpu/config/gpu_switches.h"
diff --git a/content/public/browser/tts_controller_delegate.cc b/content/public/browser/tts_controller_delegate.cc
index 56789d3e..6bb79b3 100644
--- a/content/public/browser/tts_controller_delegate.cc
+++ b/content/public/browser/tts_controller_delegate.cc
@@ -4,12 +4,14 @@
 
 #include "content/public/browser/tts_controller_delegate.h"
 
+#include <string>
+#include <utility>
+
 namespace content {
 
-TtsControllerDelegate::PreferredVoiceId::PreferredVoiceId(
-    const std::string& name,
-    const std::string& id)
-    : name(name), id(id) {}
+TtsControllerDelegate::PreferredVoiceId::PreferredVoiceId(std::string name,
+                                                          std::string id)
+    : name(std::move(name)), id(std::move(id)) {}
 
 TtsControllerDelegate::PreferredVoiceId::PreferredVoiceId() = default;
 
diff --git a/content/public/browser/tts_controller_delegate.h b/content/public/browser/tts_controller_delegate.h
index 2a0c3ef..953794e 100644
--- a/content/public/browser/tts_controller_delegate.h
+++ b/content/public/browser/tts_controller_delegate.h
@@ -21,7 +21,7 @@
  public:
   // Used in picking the best Voice for an Utterance.
   struct CONTENT_EXPORT PreferredVoiceId {
-    PreferredVoiceId(const std::string& name, const std::string& id);
+    PreferredVoiceId(std::string name, std::string id);
     PreferredVoiceId();
     ~PreferredVoiceId();
 
diff --git a/content/test/gpu/gpu_tests/test_expectations/pixel_expectations.txt b/content/test/gpu/gpu_tests/test_expectations/pixel_expectations.txt
index 27ca9ab..4922471f 100644
--- a/content/test/gpu/gpu_tests/test_expectations/pixel_expectations.txt
+++ b/content/test/gpu/gpu_tests/test_expectations/pixel_expectations.txt
@@ -500,8 +500,8 @@
 crbug.com/420902568 [ win10 nvidia-0x2184 target-cpu-32 ] Pixel_MeetEffectsTruckerHat [ Failure ]
 
 # Flakily causes android pixel 6 genesh to crash.
-crbug.com/421412516 [ android android-chromium graphite-disabled passthrough angle-vulkan android-pixel-6 ] Pixel_Video_MP4_Rounded_Corner [ Failure ]
-crbug.com/421871867 [ android android-chromium graphite-disabled passthrough angle-vulkan android-pixel-6 ] Pixel_Video_MP4_FourColors_Rot_270 [ Failure ]
+crbug.com/421412516 [ android android-chromium graphite-disabled passthrough angle-vulkan android-pixel-6 ] Pixel_Video_MP4_Rounded_Corner [ RetryOnFailure ]
+crbug.com/421871867 [ android android-chromium graphite-disabled passthrough angle-vulkan android-pixel-6 ] Pixel_Video_MP4_FourColors_Rot_270 [ RetryOnFailure ]
 
 # Corsola/Android Desktop
 crbug.com/421948893 [ android android-corsola ] Pixel_Video_BackdropFilter [ Failure ]
diff --git a/device/fido/mac/fake_icloud_keychain_sys.h b/device/fido/mac/fake_icloud_keychain_sys.h
index 7113bb9..f5105f6 100644
--- a/device/fido/mac/fake_icloud_keychain_sys.h
+++ b/device/fido/mac/fake_icloud_keychain_sys.h
@@ -26,6 +26,12 @@
 // and install it with `SetSystemInterfaceForTesting`.
 class API_AVAILABLE(macos(13.3)) FakeSystemInterface : public SystemInterface {
  public:
+  enum class LargeBlobSupportState {
+    kNotSupported,
+    kSupportedAndEnabled,
+    kSupportedButDisabled,
+  };
+
   FakeSystemInterface();
 
   // set_auth_state sets the state that `GetAuthState` will report.
@@ -88,6 +94,7 @@
   void MakeCredential(
       NSWindow* window,
       CtapMakeCredentialRequest request,
+      MakeCredentialOptions options,
       base::OnceCallback<void(ASAuthorization*, NSError*)> callback) override;
 
   void GetAssertion(
@@ -97,6 +104,10 @@
 
   void Cancel() override;
 
+  void set_large_blob_support_state(LargeBlobSupportState state) {
+    large_blob_support_state_ = state;
+  }
+
  protected:
   friend class base::RefCounted<SystemInterface>;
   friend class base::RefCounted<FakeSystemInterface>;
@@ -122,6 +133,9 @@
   unsigned cancel_count_ = 0;
 
   std::vector<DiscoverableCredentialMetadata> creds_;
+
+  LargeBlobSupportState large_blob_support_state_ =
+      LargeBlobSupportState::kNotSupported;
 };
 
 }  // namespace device::fido::icloud_keychain
diff --git a/device/fido/mac/fake_icloud_keychain_sys.mm b/device/fido/mac/fake_icloud_keychain_sys.mm
index cd18ddf..6adea64 100644
--- a/device/fido/mac/fake_icloud_keychain_sys.mm
+++ b/device/fido/mac/fake_icloud_keychain_sys.mm
@@ -2,15 +2,32 @@
 // Use of this source code is governed by a BSD-style license that can be
 // found in the LICENSE file.
 
-#include <vector>
+#include "device/fido/mac/fake_icloud_keychain_sys.h"
 
 #import <AuthenticationServices/AuthenticationServices.h>
 #import <objc/message.h>
 
+#include <vector>
+
 #include "base/functional/callback.h"
 #include "base/strings/sys_string_conversions.h"
+#include "device/fido/ctap_make_credential_request.h"
 #include "device/fido/fido_parsing_utils.h"
-#include "device/fido/mac/fake_icloud_keychain_sys.h"
+
+// Fake subclass to simulate a largeBlob registration output.
+
+API_AVAILABLE(macos(14.0))
+@interface FakeLargeBlobRegistrationOutput
+    : ASAuthorizationPublicKeyCredentialLargeBlobRegistrationOutput
+@property(nonatomic) BOOL isSupported;
+@end
+
+@implementation FakeLargeBlobRegistrationOutput
+@synthesize isSupported = _isSupported;
+- (BOOL)isSupported {
+  return _isSupported;
+}
+@end
 
 // A number of AuthenticationServices objects are subclassed so that the
 // values of readonly properties can be overridden in tests.
@@ -44,16 +61,19 @@
 
 API_AVAILABLE(macos(13.3))
 @interface FakeASAuthorizationPublicKeyCredentialRegistration
-    : NSObject <ASAuthorizationPublicKeyCredentialRegistration>
+    : ASAuthorizationPlatformPublicKeyCredentialRegistration
 @property(nonatomic, copy) NSData* rawAttestationObject;
 @property(nonatomic, copy) NSData* rawClientDataJSON;
 @property(nonatomic, copy) NSData* credentialID;
+@property(nonatomic, strong) API_AVAILABLE(macos(14.0))
+    FakeLargeBlobRegistrationOutput* largeBlob;
 @end
 
 @implementation FakeASAuthorizationPublicKeyCredentialRegistration
 @synthesize rawAttestationObject = _rawAttestationObject;
 @synthesize rawClientDataJSON = _rawClientDataJSON;
 @synthesize credentialID = _credentialID;
+@synthesize largeBlob = _largeBlob;
 
 + (BOOL)supportsSecureCoding {
   return NO;
@@ -211,6 +231,7 @@
 void FakeSystemInterface::MakeCredential(
     NSWindow* window,
     CtapMakeCredentialRequest request,
+    MakeCredentialOptions options,
     base::OnceCallback<void(ASAuthorization*, NSError*)> callback) {
   if (create_callback_) {
     create_callback_.Run(request);
@@ -237,10 +258,21 @@
                                                             userInfo:nullptr]);
   } else {
     FakeASAuthorizationPublicKeyCredentialRegistration* result =
-        [[FakeASAuthorizationPublicKeyCredentialRegistration alloc] init];
+        [FakeASAuthorizationPublicKeyCredentialRegistration alloc];
     result.rawAttestationObject = ToNSData(*attestation_object_bytes);
     result.credentialID = ToNSData(*credential_id);
-
+    if (@available(macOS 14.0, *)) {
+      if (options.large_blob_support != LargeBlobSupport::kNotRequested) {
+        CHECK(options.large_blob_support != LargeBlobSupport::kRequired ||
+              large_blob_support_state_ !=
+                  LargeBlobSupportState::kNotSupported);
+        FakeLargeBlobRegistrationOutput* blob_output =
+            [[FakeLargeBlobRegistrationOutput alloc] init];
+        blob_output.isSupported = large_blob_support_state_ ==
+                                  LargeBlobSupportState::kSupportedAndEnabled;
+        result.largeBlob = blob_output;
+      }
+    }
     FakeASAuthorization* authorization = [FakeASAuthorization alloc];
     authorization.credential = result;
 
diff --git a/device/fido/mac/icloud_keychain.h b/device/fido/mac/icloud_keychain.h
index a8b75f8..d315a7c 100644
--- a/device/fido/mac/icloud_keychain.h
+++ b/device/fido/mac/icloud_keychain.h
@@ -36,6 +36,10 @@
 COMPONENT_EXPORT(DEVICE_FIDO)
 std::optional<bool> HasPermission();
 
+// SupportsLargeBlob returns true if the current macOS version and the chrome
+// feature flag both support large blob extension for iCloud Keychain.
+COMPONENT_EXPORT(DEVICE_FIDO) bool SupportsLargeBlob();
+
 }  // namespace fido::icloud_keychain
 }  // namespace device
 
diff --git a/device/fido/mac/icloud_keychain.mm b/device/fido/mac/icloud_keychain.mm
index 029d939..8d0d6be 100644
--- a/device/fido/mac/icloud_keychain.mm
+++ b/device/fido/mac/icloud_keychain.mm
@@ -9,6 +9,7 @@
 
 #include <algorithm>
 #include <optional>
+#include <utility>
 
 #include "base/apple/foundation_util.h"
 #include "base/containers/contains.h"
@@ -28,6 +29,7 @@
 #include "device/fido/attestation_object.h"
 #include "device/fido/attestation_statement.h"
 #include "device/fido/authenticator_data.h"
+#include "device/fido/authenticator_supported_options.h"
 #include "device/fido/ctap_get_assertion_request.h"
 #include "device/fido/ctap_make_credential_request.h"
 #include "device/fido/discoverable_credential_metadata.h"
@@ -36,6 +38,8 @@
 #include "device/fido/fido_discovery_base.h"
 #include "device/fido/fido_parsing_utils.h"
 #include "device/fido/fido_transport_protocol.h"
+#include "device/fido/fido_types.h"
+#include "device/fido/large_blob.h"
 #include "device/fido/mac/icloud_keychain_sys.h"
 
 using base::apple::NSDataToSpan;
@@ -49,6 +53,17 @@
   return {span.begin(), span.end()};
 }
 
+bool SupportsLargeBlob() {
+  if (!base::FeatureList::IsEnabled(
+          device::kWebAuthnLargeBlobForICloudKeychain)) {
+    return false;
+  }
+  if (@available(macOS 14.0, *)) {
+    return true;
+  }
+  return false;
+}
+
 AuthenticatorSupportedOptions AuthenticatorOptions() {
   AuthenticatorSupportedOptions options;
   options.is_platform_device =
@@ -60,6 +75,9 @@
   if (@available(macOS 15.0, *)) {
     options.supports_prf = true;
   }
+  if (SupportsLargeBlob()) {
+    options.large_blob_type = LargeBlobSupportType::kBespoke;
+  }
   return options;
 }
 
@@ -97,6 +115,16 @@
   return result;
 }
 
+API_AVAILABLE(macos(14.0))
+static bool LargeBlobSupportedFromRegistration(
+    ASAuthorizationPlatformPublicKeyCredentialRegistration* reg) {
+  // LargeBlob will be non-nil only if the Relying Party asks for the extension.
+  if (!reg.largeBlob) {
+    return false;
+  }
+  return reg.largeBlob.isSupported;
+}
+
 constexpr char kMetricName[] = "WebAuthentication.MacOS.PasskeyPermission";
 
 class API_AVAILABLE(macos(13.3)) Authenticator : public FidoAuthenticator {
@@ -115,6 +143,9 @@
                       MakeCredentialOptions options,
                       MakeCredentialCallback callback) override {
     scoped_refptr<SystemInterface> sys_interface = GetSystemInterface();
+    if (!SupportsLargeBlob()) {
+      options.large_blob_support = LargeBlobSupport::kNotRequested;
+    }
     auto continuation =
         base::BindOnce(&Authenticator::OnMakeCredentialComplete,
                        weak_factory_.GetWeakPtr(), std::move(callback));
@@ -130,7 +161,7 @@
         sys_interface->AuthorizeAndContinue(
             base::BindOnce(&Authenticator::MakeCredentialAfterPermissionRequest,
                            weak_factory_.GetWeakPtr(), std::move(request),
-                           std::move(continuation)));
+                           std::move(options), std::move(continuation)));
         break;
       case SystemInterface::kAuthDenied:
         // The operation continues even if the user denied access. See above.
@@ -138,6 +169,7 @@
         [[fallthrough]];
       case SystemInterface::kAuthAuthorized:
         sys_interface->MakeCredential(window_, std::move(request),
+                                      std::move(options),
                                       std::move(continuation));
         break;
     }
@@ -145,6 +177,7 @@
 
   void MakeCredentialAfterPermissionRequest(
       CtapMakeCredentialRequest request,
+      MakeCredentialOptions options,
       base::OnceCallback<void(ASAuthorization* authorization, NSError* error)>
           continuation) {
     scoped_refptr<SystemInterface> sys_interface = GetSystemInterface();
@@ -157,7 +190,7 @@
     }
 
     sys_interface->MakeCredential(window_, std::move(request),
-                                  std::move(continuation));
+                                  std::move(options), std::move(continuation));
   }
 
   void GetAssertion(CtapGetAssertionRequest request,
@@ -176,7 +209,7 @@
         sys_interface->AuthorizeAndContinue(
             base::BindOnce(&Authenticator::GetAssertionAfterPermissionRequest,
                            weak_factory_.GetWeakPtr(), std::move(request),
-                           std::move(callback)));
+                           std::move(options), std::move(callback)));
         break;
       case SystemInterface::kAuthDenied:
         // The operation continues even if the user denied access. See above.
@@ -193,6 +226,7 @@
   }
 
   void GetAssertionAfterPermissionRequest(CtapGetAssertionRequest request,
+                                          CtapGetAssertionOptions options,
                                           GetAssertionCallback callback) {
     scoped_refptr<SystemInterface> sys_interface = GetSystemInterface();
     if (sys_interface->GetAuthState() != SystemInterface::kAuthAuthorized) {
@@ -388,7 +422,6 @@
     response.transports->insert(FidoTransportProtocol::kHybrid);
     response.transports->insert(FidoTransportProtocol::kInternal);
     response.transport_used = FidoTransportProtocol::kInternal;
-
     if (@available(macOS 15.0, *)) {
       if ([result isKindOfClass:
                       [ASAuthorizationPlatformPublicKeyCredentialRegistration
@@ -402,7 +435,19 @@
         }
       }
     }
-
+    if (@available(macOS 14.0, *)) {
+      if ([result isKindOfClass:
+                      [ASAuthorizationPlatformPublicKeyCredentialRegistration
+                          class]]) {
+        ASAuthorizationPlatformPublicKeyCredentialRegistration*
+            platform_result =
+                (ASAuthorizationPlatformPublicKeyCredentialRegistration*)result;
+        response.large_blob_type =
+            LargeBlobSupportedFromRegistration(platform_result)
+                ? std::optional(LargeBlobSupportType::kBespoke)
+                : std::nullopt;
+      }
+    }
     std::move(callback).Run(MakeCredentialStatus::kSuccess,
                             std::move(response));
   }
@@ -476,7 +521,6 @@
         CredentialType::kPublicKey,
         fido_parsing_utils::Materialize(NSDataToSpan(result.credentialID)));
     response.user_selected = true;
-
     if (@available(macOS 15.0, *)) {
       if ([result
               isKindOfClass:[ASAuthorizationPlatformPublicKeyCredentialAssertion
@@ -488,7 +532,6 @@
         }
       }
     }
-
     std::vector<AuthenticatorGetAssertionResponse> responses;
     responses.emplace_back(std::move(response));
     std::move(callback).Run(GetAssertionStatus::kSuccess, std::move(responses));
diff --git a/device/fido/mac/icloud_keychain_sys.h b/device/fido/mac/icloud_keychain_sys.h
index f0d89ac..721bd89 100644
--- a/device/fido/mac/icloud_keychain_sys.h
+++ b/device/fido/mac/icloud_keychain_sys.h
@@ -59,6 +59,7 @@
   virtual void MakeCredential(
       NSWindow* window,
       CtapMakeCredentialRequest request,
+      MakeCredentialOptions options,
       base::OnceCallback<void(ASAuthorization*, NSError*)> callback) = 0;
 
   virtual void GetAssertion(
diff --git a/device/fido/mac/icloud_keychain_sys.mm b/device/fido/mac/icloud_keychain_sys.mm
index 9fc60cb..6df4a4db 100644
--- a/device/fido/mac/icloud_keychain_sys.mm
+++ b/device/fido/mac/icloud_keychain_sys.mm
@@ -12,6 +12,8 @@
 #include "base/strings/sys_string_conversions.h"
 #include "base/task/sequenced_task_runner.h"
 #include "components/device_event_log/device_event_log.h"
+#include "device/fido/features.h"
+#include "device/fido/large_blob.h"
 #include "device/fido/mac/icloud_keychain_internals.h"
 
 namespace {
@@ -288,6 +290,7 @@
   void MakeCredential(
       NSWindow* window,
       CtapMakeCredentialRequest request,
+      MakeCredentialOptions options,
       base::OnceCallback<void(ASAuthorization*, NSError*)> callback) override {
     DCHECK(!create_controller_);
     DCHECK(!get_controller_);
@@ -306,6 +309,29 @@
             [provider createCredentialRegistrationRequestWithChallenge:challenge
                                                                   name:name
                                                                 userID:user_id];
+    if (options.large_blob_support != LargeBlobSupport::kNotRequested) {
+      if (@available(macOS 14.0, *)) {
+        ASAuthorizationPublicKeyCredentialLargeBlobSupportRequirement
+            support_mode;
+        switch (options.large_blob_support) {
+          case LargeBlobSupport::kRequired:
+            support_mode =
+                ASAuthorizationPublicKeyCredentialLargeBlobSupportRequirementRequired;
+            break;
+          case LargeBlobSupport::kPreferred:
+            support_mode =
+                ASAuthorizationPublicKeyCredentialLargeBlobSupportRequirementPreferred;
+            break;
+          case LargeBlobSupport::kNotRequested:
+            NOTREACHED();
+        }
+        ASAuthorizationPublicKeyCredentialLargeBlobRegistrationInput*
+            large_blob_input =
+                [[ASAuthorizationPublicKeyCredentialLargeBlobRegistrationInput
+                    alloc] initWithSupportRequirement:support_mode];
+        create_request.largeBlob = large_blob_input;
+      }
+    }
     create_request.attestationPreference =
         Convert(request.attestation_preference);
     create_request.userVerificationPreference =
diff --git a/device/fido/mac/icloud_keychain_unittest.mm b/device/fido/mac/icloud_keychain_unittest.mm
index 56213158..6f30a10d 100644
--- a/device/fido/mac/icloud_keychain_unittest.mm
+++ b/device/fido/mac/icloud_keychain_unittest.mm
@@ -20,10 +20,13 @@
 #include "base/metrics/histogram_samples.h"
 #include "base/metrics/statistics_recorder.h"
 #include "base/notreached.h"
+#include "base/test/scoped_feature_list.h"
 #include "base/test/task_environment.h"
 #include "base/test/test_future.h"
 #include "device/fido/authenticator_get_assertion_response.h"
 #include "device/fido/authenticator_make_credential_response.h"
+#include "device/fido/ctap_make_credential_request.h"
+#include "device/fido/features.h"
 #include "device/fido/fido_authenticator.h"
 #include "device/fido/fido_constants.h"
 #include "device/fido/fido_discovery_base.h"
@@ -189,6 +192,8 @@
   std::unique_ptr<FidoDiscoveryBase> discovery_;
   raw_ptr<FidoAuthenticator> authenticator_ = nullptr;
   base::test::SingleThreadTaskEnvironment task_environment_;
+  base::test::ScopedFeatureList scoped_feature_list_{
+      kWebAuthnLargeBlobForICloudKeychain};
 };
 
 TEST_F(iCloudKeychainTest, RequestAuthorization) {
@@ -505,6 +510,133 @@
   }
 }
 
+TEST_F(iCloudKeychainTest, LargeBlobSupportForICloudKeychain) {
+  if (@available(macOS 14.0, *)) {
+    struct LargeBlobTestCase {
+      LargeBlobSupport large_blob_support_request;
+      FakeSystemInterface::LargeBlobSupportState support_state;
+      std::optional<LargeBlobSupportType> expected_large_blob_type;
+      std::string description;
+    };
+
+    const std::vector<LargeBlobTestCase> test_cases = {
+        {
+            .large_blob_support_request = LargeBlobSupport::kNotRequested,
+            .support_state = FakeSystemInterface::LargeBlobSupportState::
+                kSupportedAndEnabled,
+            .expected_large_blob_type = std::nullopt,
+            .description = "LargeBlobSupport not requested",
+        },
+        {
+            .large_blob_support_request = LargeBlobSupport::kRequired,
+            .support_state = FakeSystemInterface::LargeBlobSupportState::
+                kSupportedAndEnabled,
+            .expected_large_blob_type = LargeBlobSupportType::kBespoke,
+            .description = "LargeBlobSupport required",
+        },
+        {
+            .large_blob_support_request = LargeBlobSupport::kPreferred,
+            .support_state = FakeSystemInterface::LargeBlobSupportState::
+                kSupportedAndEnabled,
+            .expected_large_blob_type = LargeBlobSupportType::kBespoke,
+            .description = "LargeBlobSupport preferred",
+        },
+        {
+            .large_blob_support_request = LargeBlobSupport::kPreferred,
+            .support_state = FakeSystemInterface::LargeBlobSupportState::
+                kSupportedButDisabled,
+            .expected_large_blob_type = std::nullopt,
+            .description = "LargeBlobSupport preferred but API does not "
+                           "support large blob",
+        },
+        {
+            .large_blob_support_request = LargeBlobSupport::kPreferred,
+            .support_state =
+                FakeSystemInterface::LargeBlobSupportState::kNotSupported,
+            .expected_large_blob_type = std::nullopt,
+            .description = "LargeBlobSupport preferred but macOS version does "
+                           "not support large blob",
+        },
+    };
+
+    for (const auto& test_case : test_cases) {
+      SCOPED_TRACE(test_case.description);
+      PublicKeyCredentialParams public_key_params(
+          {PublicKeyCredentialParams::CredentialInfo()});
+
+      CtapMakeCredentialRequest request("{}", {{1, 2, 3, 4}, "rp.id"},
+                                        {{4, 3, 2, 1}, "name", "displayName"},
+                                        public_key_params);
+
+      MakeCredentialOptions options;
+      options.large_blob_support = test_case.large_blob_support_request;
+
+      fake_->set_large_blob_support_state(test_case.support_state);
+      fake_->SetMakeCredentialResult(kAttestationObjectBytes, kCredentialID);
+
+      base::test::TestFuture<MakeCredentialStatus,
+                             std::optional<AuthenticatorMakeCredentialResponse>>
+          future;
+      authenticator_->MakeCredential(request, options, future.GetCallback());
+      ASSERT_TRUE(future.Wait());
+
+      auto [status, response_opt] = std::move(future).Take();
+      EXPECT_EQ(status, MakeCredentialStatus::kSuccess);
+      ASSERT_TRUE(response_opt.has_value());
+      EXPECT_EQ(response_opt->large_blob_type,
+                test_case.expected_large_blob_type);
+    }
+  }
+}
+
+TEST_F(iCloudKeychainTest, LargeBlobPreMacOS14) {
+  if (@available(macOS 14.0, *)) {
+    GTEST_SKIP() << "Large blob supported on macOS 14.0+";
+  }
+  if (@available(macOS 13.3, *)) {
+    const auto& options = authenticator_->Options();
+    EXPECT_EQ(options.large_blob_type, std::nullopt);
+
+    PublicKeyCredentialParams public_key_params(
+        {PublicKeyCredentialParams::CredentialInfo()});
+    CtapMakeCredentialRequest request("{}", {{1, 2, 3, 4}, "rp.id"},
+                                      {{4, 3, 2, 1}, "name", "displayName"},
+                                      public_key_params);
+
+    MakeCredentialOptions cred_options;
+    cred_options.large_blob_support = LargeBlobSupport::kPreferred;
+
+    fake_->set_large_blob_support_state(
+        FakeSystemInterface::LargeBlobSupportState::kSupportedAndEnabled);
+    fake_->SetMakeCredentialResult(kAttestationObjectBytes, kCredentialID);
+
+    base::test::TestFuture<MakeCredentialStatus,
+                           std::optional<AuthenticatorMakeCredentialResponse>>
+        future;
+    authenticator_->MakeCredential(request, cred_options, future.GetCallback());
+    ASSERT_TRUE(future.Wait());
+
+    auto [status, response_opt] = std::move(future).Take();
+    EXPECT_EQ(status, MakeCredentialStatus::kSuccess);
+    ASSERT_TRUE(response_opt.has_value());
+    EXPECT_EQ(response_opt->large_blob_type, std::nullopt);
+  }
+}
+
+TEST_F(iCloudKeychainTest, AuthenticatorOptionsLargeBlob) {
+  // large_blob_type should be supported when flag is enabled and macOS 14.0+.
+  if (@available(macOS 14.0, *)) {
+    const AuthenticatorSupportedOptions& options = authenticator_->Options();
+    EXPECT_EQ(options.large_blob_type, LargeBlobSupportType::kBespoke);
+
+    // macOS < 14.0 should never report large_blob_type even with the flag
+    // enabled.
+  } else if (@available(macOS 13.3, *)) {
+    const AuthenticatorSupportedOptions& options = authenticator_->Options();
+    EXPECT_EQ(options.large_blob_type, std::nullopt);
+  }
+}
+
 TEST_F(iCloudKeychainTest, FetchCredentialMetadata) {
   if (@available(macOS 13.5, *)) {
     const std::vector<DiscoverableCredentialMetadata> creds = {
diff --git a/docs/website b/docs/website
index cca89b4..bc9e8a0 160000
--- a/docs/website
+++ b/docs/website
@@ -1 +1 @@
-Subproject commit cca89b4e2f007c21ff502adffd4339b01bf8730a
+Subproject commit bc9e8a007a9145c1511f0e7ede2e9d6b57e0c4c9
diff --git a/gpu/BUILD.gn b/gpu/BUILD.gn
index 01e77c9..280c929a 100644
--- a/gpu/BUILD.gn
+++ b/gpu/BUILD.gn
@@ -43,6 +43,8 @@
 }
 
 component("gpu") {
+  # Do not depend on this component directly, depend on relevant gpu/{config,ipc,command_buffer}/{client,common,service} targets.
+  visibility = [ "//gpu/*" ]
   public_deps = [
     "//gpu/command_buffer/client:client_sources",
     "//gpu/command_buffer/common:common_sources",
diff --git a/gpu/command_buffer/service/copy_shared_image_helper.cc b/gpu/command_buffer/service/copy_shared_image_helper.cc
index 01ab7e3..f0012332 100644
--- a/gpu/command_buffer/service/copy_shared_image_helper.cc
+++ b/gpu/command_buffer/service/copy_shared_image_helper.cc
@@ -614,13 +614,15 @@
   }
 #endif
 
-  graphite_shared_context->asyncRescaleAndReadPixels(
-      sk_image.get(), dst_info, RectToSkIRect(src_rect),
-      SkImage::RescaleGamma::kSrc, SkImage::RescaleMode::kRepeatedLinear,
-      base::BindOnce(&OnReadPixelsDone), &context);
   // We don't need to insert a recording since asyncRescaleAndReadPixels is a
   // context operation that inserts its own recording internally.
-  graphite_shared_context->submit(skgpu::graphite::SyncToCpu::kYes);
+  if (!graphite_shared_context->asyncRescaleAndReadPixelsAndSubmit(
+          sk_image.get(), dst_info, RectToSkIRect(src_rect),
+          SkImage::RescaleGamma::kSrc, SkImage::RescaleMode::kRepeatedLinear,
+          base::BindOnce(&OnReadPixelsDone), &context)) {
+    return false;
+  }
+
   CHECK(context.finished);
   if (!context.async_result) {
     return false;
diff --git a/gpu/command_buffer/service/graphite_shared_context.cc b/gpu/command_buffer/service/graphite_shared_context.cc
index 8d33b9a3..678aadb 100644
--- a/gpu/command_buffer/service/graphite_shared_context.cc
+++ b/gpu/command_buffer/service/graphite_shared_context.cc
@@ -235,6 +235,44 @@
       &ReadPixelsCallbackThreadSafe, new_callbackContext);
 }
 
+bool GraphiteSharedContext::asyncRescaleAndReadPixelsAndSubmit(
+    const SkImage* src,
+    const SkImageInfo& dstImageInfo,
+    const SkIRect& srcRect,
+    SkImage::RescaleGamma rescaleGamma,
+    SkImage::RescaleMode rescaleMode,
+    SkImageReadPixelsCallback callback,
+    SkImage::ReadPixelsContext callbackContext) {
+  AutoLock auto_lock(this);
+  auto* new_callbackContext = CreateAsyncReadContextThreadSafe(
+      std::move(callback), callbackContext, IsThreadSafe());
+
+  graphite_context_->asyncRescaleAndReadPixels(
+      src, dstImageInfo, srcRect, rescaleGamma, rescaleMode,
+      &ReadPixelsCallbackThreadSafe, new_callbackContext);
+
+  return graphite_context_->submit(skgpu::graphite::SyncToCpu::kYes);
+}
+
+bool GraphiteSharedContext::asyncRescaleAndReadPixelsAndSubmit(
+    const SkSurface* src,
+    const SkImageInfo& dstImageInfo,
+    const SkIRect& srcRect,
+    SkImage::RescaleGamma rescaleGamma,
+    SkImage::RescaleMode rescaleMode,
+    SkImageReadPixelsCallback callback,
+    SkImage::ReadPixelsContext callbackContext) {
+  AutoLock auto_lock(this);
+  auto* new_callbackContext = CreateAsyncReadContextThreadSafe(
+      std::move(callback), callbackContext, IsThreadSafe());
+
+  graphite_context_->asyncRescaleAndReadPixels(
+      src, dstImageInfo, srcRect, rescaleGamma, rescaleMode,
+      &ReadPixelsCallbackThreadSafe, new_callbackContext);
+
+  return graphite_context_->submit(skgpu::graphite::SyncToCpu::kYes);
+}
+
 void GraphiteSharedContext::asyncRescaleAndReadPixelsYUV420(
     const SkImage* src,
     SkYUVColorSpace yuvColorSpace,
diff --git a/gpu/command_buffer/service/graphite_shared_context.h b/gpu/command_buffer/service/graphite_shared_context.h
index f53f4326e..5d2025d 100644
--- a/gpu/command_buffer/service/graphite_shared_context.h
+++ b/gpu/command_buffer/service/graphite_shared_context.h
@@ -79,6 +79,21 @@
                                  SkImageReadPixelsCallback callback,
                                  SkImage::ReadPixelsContext context);
 
+  bool asyncRescaleAndReadPixelsAndSubmit(const SkImage* src,
+                                          const SkImageInfo& dstImageInfo,
+                                          const SkIRect& srcRect,
+                                          SkImage::RescaleGamma rescaleGamma,
+                                          SkImage::RescaleMode rescaleMode,
+                                          SkImageReadPixelsCallback callback,
+                                          SkImage::ReadPixelsContext context);
+  bool asyncRescaleAndReadPixelsAndSubmit(const SkSurface* src,
+                                          const SkImageInfo& dstImageInfo,
+                                          const SkIRect& srcRect,
+                                          SkImage::RescaleGamma rescaleGamma,
+                                          SkImage::RescaleMode rescaleMode,
+                                          SkImageReadPixelsCallback callback,
+                                          SkImage::ReadPixelsContext context);
+
   void asyncRescaleAndReadPixelsYUV420(const SkImage* src,
                                        SkYUVColorSpace yuvColorSpace,
                                        sk_sp<SkColorSpace> dstColorSpace,
diff --git a/ios/chrome/app/strings/resources/ios_strings_af.xtb b/ios/chrome/app/strings/resources/ios_strings_af.xtb
index 40e8e53..f7ca1468 100644
--- a/ios/chrome/app/strings/resources/ios_strings_af.xtb
+++ b/ios/chrome/app/strings/resources/ios_strings_af.xtb
@@ -964,7 +964,6 @@
 <translation id="4979397965658815378">Meld met jou Google-rekening aan om jou boekmerke, wagwoorde, geskiedenis en ander instellings op al jou toestelle te kry</translation>
 <translation id="4985921635659180565">Nadat ’n lêer geskeduleer is om uitgevee te word, kan dit nie gekanselleer word nie.</translation>
 <translation id="498624032394115435">Enigiemand met die skakel kan alle oortjies wysig.</translation>
-<translation id="4989065233040279145">Kies waar om <ph name="FILENAME" /> te stoor</translation>
 <translation id="499122600724363620"><ph name="NAME" />, <ph name="EMAIL" />, bestuur deur jou organisasie.</translation>
 <translation id="4992255726304765516">Kleur van oortjiegroep is <ph name="COLOR" /></translation>
 <translation id="5005498671520578047">Kopieer wagwoord</translation>
@@ -1650,7 +1649,6 @@
 <translation id="7724085059277147439">{count,plural, =1{Item in jou Google-rekening, {email}, gestoor}other{Items in jou Google-rekening, {email}, gestoor}}</translation>
 <translation id="7729458878441927652">Sinkroniseer jou oortjies en geskiedenis om oortjies van jou ander toestelle af te sien.</translation>
 <translation id="7730020510075123961">Nee, voeg data saam</translation>
-<translation id="7730973429297233609">Kies die rekening wat jy wil gebruik om <ph name="FILENAME" /> - <ph name="FILESIZE" /> te stoor</translation>
 <translation id="7733646263819020771"><ph name="BOOKMRK_NAME" />. Net op hierdie toestel.</translation>
 <translation id="7744192722284567281">Bevind dat dit data skend</translation>
 <translation id="7749790401023484470">Jy het nie enige teks geselekteer nie.</translation>
@@ -1834,7 +1832,6 @@
 <translation id="8428045167754449968">Stad / dorp</translation>
 <translation id="8428213095426709021">Instellings</translation>
 <translation id="8428634594422941299">Het dit</translation>
-<translation id="8430694217306051839">Kies waar om <ph name="FILENAME" /> te stoor (<ph name="FILE_SIZE" />)</translation>
 <translation id="8434837876193928924">Besonderhede van oortjiegroep</translation>
 <translation id="8438566539970814960">Maak soektogte en blaai-ervaring beter</translation>
 <translation id="8439758443371991593">Versteek Voeg by leeslys</translation>
diff --git a/ios/chrome/app/strings/resources/ios_strings_am.xtb b/ios/chrome/app/strings/resources/ios_strings_am.xtb
index f755d54..a18f1c3 100644
--- a/ios/chrome/app/strings/resources/ios_strings_am.xtb
+++ b/ios/chrome/app/strings/resources/ios_strings_am.xtb
@@ -623,6 +623,7 @@
 <translation id="3596414637720633074">ማንነትን በማያሳውቅ ሁነታ ሦስተኛ ወገን ኩኪዎች ያግዱ</translation>
 <translation id="3602260545951981695">«የላቀ ጥበቃ» የሚለውን ይምረጡ</translation>
 <translation id="3608436266458100337">የአንባቢ ሁነታ</translation>
+<translation id="3610041351087301930">አንባቢን ደብቅ</translation>
 <translation id="3622175633937495219">የፍለጋ ታሪክ (<ph name="COUNT" /> ይገኛሉ)</translation>
 <translation id="3625008969091706597">ወደ ኋላ ለመሄድ ጠርዙን ማንሸራተት ይችላሉ።</translation>
 <translation id="362709345066740529">እዚህ የእርስዎን ካርዶች፣ ምግብ እና ሌሎችንም ያብጁ</translation>
@@ -964,7 +965,6 @@
 <translation id="4979397965658815378">የእርስዎን ዕልባቶች፣ የይለፍ ቃላት፣ ታሪክ እና ሌሎች ቅንብሮችን በሁሉም መሣሪያዎችዎ ላይ ለማግኘት በGoogle መለያዎ ይግቡ</translation>
 <translation id="4985921635659180565">አንዴ ፋይል እንዲሰረዝ መርሐግብር ከተያዘለት በኋላ ሊቀር አይችልም።</translation>
 <translation id="498624032394115435">አገናኙ ያለው ማንኛውም ሰው ሁሉንም ትሮች ማርትዕ ይችላል።</translation>
-<translation id="4989065233040279145"><ph name="FILENAME" />ን የት እንደሚያስቀምጡ ይምረጡ</translation>
 <translation id="499122600724363620"><ph name="NAME" />፣ <ph name="EMAIL" />፣ በድርጅትዎ የሚተዳደር።</translation>
 <translation id="4992255726304765516">የትር ቡድን ቀለም <ph name="COLOR" /></translation>
 <translation id="5005498671520578047">የይለፍ ቃል ቅዳ</translation>
@@ -1064,6 +1064,7 @@
 <translation id="5431252637281434233">እርስዎ ዘግተው እንዲወጡ ይደረጋሉ</translation>
 <translation id="543338862236136125">የይለፍ ቃል አርትዕ</translation>
 <translation id="5433691172869980887">የተጠቃሚ ስም ተቀድቷል</translation>
+<translation id="5437480232219631455">Gemini እዚህ መክፈት ይችላሉ</translation>
 <translation id="5439618055789623719">እንደ <ph name="USER_EMAIL" /> ሆነው በመለያ ገብተዋል</translation>
 <translation id="5443636120437209490">በነባሪ የተሻለ አሰሳ</translation>
 <translation id="5444892875087332195">ዕልባቶች</translation>
@@ -1650,7 +1651,6 @@
 <translation id="7724085059277147439">{count,plural, =1{በእርስዎ Google መለያ፣ {email} ውስጥ የተቀመጠ ንጥል}one{በእርስዎ Google መለያ፣ {email} ውስጥ የተቀመጠ ንጥል}other{በእርስዎ Google መለያ፣ {email} ውስጥ የተቀመጡ ንጥሎች}}</translation>
 <translation id="7729458878441927652">ከሌሎች መሣሪያዎችዎ ላይ ትሮችን ለማየት ትሮችዎን እና ታሪክዎን ያስምሩ።</translation>
 <translation id="7730020510075123961">አይ፣ ውሂብን አዋህድ</translation>
-<translation id="7730973429297233609"><ph name="FILENAME" /> - <ph name="FILESIZE" /> ለማስቀመጥ ሊጠቀሙበት የሚፈልጉትን መለያ ይምረጡ</translation>
 <translation id="7733646263819020771"><ph name="BOOKMRK_NAME" />። በዚህ መሣሪያ ላይ ብቻ።</translation>
 <translation id="7744192722284567281">በውሂብ ጥሰት ላይ ተገኝቷል</translation>
 <translation id="7749790401023484470">ምንም ጽሁፍ አልመረጡም።</translation>
@@ -1834,7 +1834,6 @@
 <translation id="8428045167754449968">ከተማ / መለስተኛ ከተማ</translation>
 <translation id="8428213095426709021">ቅንብሮች</translation>
 <translation id="8428634594422941299">ገባኝ</translation>
-<translation id="8430694217306051839"><ph name="FILENAME" /> (<ph name="FILE_SIZE" />) የት እንደሚያስቀምጡ ይምረጡ</translation>
 <translation id="8434837876193928924">የትር ቡድን ዝርዝሮች</translation>
 <translation id="8438566539970814960">ፍለጋዎችን እና አሰሳን የተሻለ አድርግ</translation>
 <translation id="8439758443371991593">ወደ የንባብ ዝርዝር አክልን ደብቅ</translation>
diff --git a/ios/chrome/app/strings/resources/ios_strings_ar.xtb b/ios/chrome/app/strings/resources/ios_strings_ar.xtb
index b1451f3..c17fbbbb 100644
--- a/ios/chrome/app/strings/resources/ios_strings_ar.xtb
+++ b/ios/chrome/app/strings/resources/ios_strings_ar.xtb
@@ -964,7 +964,6 @@
 <translation id="4979397965658815378">‏سجّل الدخول إلى حسابك على Google للحصول على الإشارات المرجعية وكلمات المرور والسجلّ والإعدادات الأخرى واستخدامها على جميع أجهزتك.</translation>
 <translation id="4985921635659180565">بعد تحديد موعد لحذف ملف، لا يمكن إلغاء ذلك.</translation>
 <translation id="498624032394115435">يمكن لأي مستخدم لديه الرابط تعديل جميع علامات التبويب.</translation>
-<translation id="4989065233040279145">اختَر مكانًا لحفظ "<ph name="FILENAME" />".</translation>
 <translation id="499122600724363620">تدير مؤسستك حساب "<ph name="NAME" />" (<ph name="EMAIL" />).</translation>
 <translation id="4992255726304765516">لون مجموعة علامات التبويب: <ph name="COLOR" /></translation>
 <translation id="5005498671520578047">نسخ كلمة المرور</translation>
@@ -1648,7 +1647,6 @@
 <translation id="7724085059277147439">{count,plural, =1{‏تم حفظ العنصر في حسابك على Google،‏ {email}.}zero{‏تم حفظ العناصر في حسابك على Google،‏ {email}.}two{‏تم حفظ العنصرين في حسابك على Google،‏ {email}.}few{‏تم حفظ العناصر في حسابك على Google،‏ {email}.}many{‏تم حفظ العناصر في حسابك على Google،‏ {email}.}other{‏تم حفظ العناصر في حسابك على Google،‏ {email}.}}</translation>
 <translation id="7729458878441927652">يجب مزامنة علامات التبويب والسجلّ للاطّلاع عليها من أجهزتك الأخرى.</translation>
 <translation id="7730020510075123961">لا. أريد دمج البيانات</translation>
-<translation id="7730973429297233609">حدِّد الحساب الذي تريد استخدامه لحفظ <ph name="FILENAME" /> - <ph name="FILESIZE" /></translation>
 <translation id="7733646263819020771">حفظ الإشارة المرجعية باسم "<ph name="BOOKMRK_NAME" />" على هذا الجهاز فقط</translation>
 <translation id="7744192722284567281">تم العثور عليها في عملية اختراق البيانات.</translation>
 <translation id="7749790401023484470">لم يتم تحديد أي نص.</translation>
@@ -1833,7 +1831,6 @@
 <translation id="8428045167754449968">المدينة/البلدة</translation>
 <translation id="8428213095426709021">الإعدادات</translation>
 <translation id="8428634594422941299">حسنًا</translation>
-<translation id="8430694217306051839">يُرجى اختيار مكان لحفظ "<ph name="FILENAME" />" (<ph name="FILE_SIZE" />)</translation>
 <translation id="8434837876193928924">تفاصيل مجموعة علامات التبويب</translation>
 <translation id="8438566539970814960">تحسين عمليات البحث والتصفُّح</translation>
 <translation id="8439758443371991593">إخفاء خيار "الإضافة إلى قائمة القراءة"</translation>
diff --git a/ios/chrome/app/strings/resources/ios_strings_as.xtb b/ios/chrome/app/strings/resources/ios_strings_as.xtb
index 92886ce..f028b29 100644
--- a/ios/chrome/app/strings/resources/ios_strings_as.xtb
+++ b/ios/chrome/app/strings/resources/ios_strings_as.xtb
@@ -623,6 +623,7 @@
 <translation id="3596414637720633074">ইনক'গনিট'ত তৃতীয় পক্ষৰ কুকিসমূহ অৱৰোধ কৰক</translation>
 <translation id="3602260545951981695">"বৰ্ধিত সুৰক্ষা" বাছনি কৰক</translation>
 <translation id="3608436266458100337">ৰীডাৰ ম’ড</translation>
+<translation id="3610041351087301930">ৰীডাৰ লুকুৱাওক</translation>
 <translation id="3622175633937495219">সন্ধানৰ ইতিহাস (<ph name="COUNT" /> টা পোৱা গৈছে)</translation>
 <translation id="3625008969091706597">পাছলৈ যাবলৈ আপুনি কাষৰ পৰা ছোৱাইপ কৰিব পাৰে।</translation>
 <translation id="362709345066740529">ইয়াত আপোনাৰ কাৰ্ড, ফীড আৰু আন বহুতো বস্তু কাষ্টমাইজ কৰক</translation>
@@ -964,7 +965,6 @@
 <translation id="4979397965658815378">আপোনাৰ সকলো ডিভাইচত বুকমাৰ্ক, ইতিহাস, পাছৱৰ্ড আৰু অন্য ছেটিংসমূহ পাবৰ বাবে Google একাউণ্টৰ জৰিয়তে ছাইন ইন কৰক।</translation>
 <translation id="4985921635659180565">কোনো ফাইল মচাৰ সময়সূচী নিৰ্ধাৰণ কৰাৰ পাছত, সেইটো বাতিল কৰিব নোৱাৰি।</translation>
 <translation id="498624032394115435">এই লিংকটো থকা যিকোনো লোকে আটাইবোৰ টেব সম্পাদনা কৰিব পাৰে।</translation>
-<translation id="4989065233040279145"><ph name="FILENAME" /> ক’ত ছেভ কৰিব লাগে বাছনি কৰক</translation>
 <translation id="499122600724363620"><ph name="NAME" />, <ph name="EMAIL" />, আপোনাৰ প্ৰতিষ্ঠানে পৰিচালনা কৰে।</translation>
 <translation id="4992255726304765516">টেবৰ গোটৰ ৰং <ph name="COLOR" /></translation>
 <translation id="5005498671520578047">পাছৱর্ডটোৰ প্ৰতিলিপি কৰক</translation>
@@ -1064,6 +1064,7 @@
 <translation id="5431252637281434233">আপোনাক ছাইন আউট কৰোৱা হ’ব</translation>
 <translation id="543338862236136125">পাছৱৰ্ড সম্পাদনা কৰক</translation>
 <translation id="5433691172869980887">ব্যৱহাৰকাৰীৰ নাম প্ৰতিলিপি কৰা হ’ল</translation>
+<translation id="5437480232219631455">আপুনি ইয়াত Gemini খুলিব পাৰে</translation>
 <translation id="5439618055789623719"><ph name="USER_EMAIL" /> হিচাপে ছাইন ইন কৰা হৈছে</translation>
 <translation id="5443636120437209490">ডিফ’ল্ট হিচাপে উন্নত ব্ৰাউজিং</translation>
 <translation id="5444892875087332195">বুকমার্ক</translation>
@@ -1650,7 +1651,6 @@
 <translation id="7724085059277147439">{count,plural, =1{বস্তুটো আপোনাৰ Google একাউণ্ট, {email}ত ছেভ কৰা হৈছে}one{বস্তুকেইটা আপোনাৰ Google একাউণ্ট, {email}ত ছেভ কৰা হৈছে}other{বস্তুকেইটা আপোনাৰ Google একাউণ্ট, {email}ত ছেভ কৰা হৈছে}}</translation>
 <translation id="7729458878441927652">আপোনাৰ অন্য ডিভাইচৰ পৰা টেবসমূহ চাবলৈ, আপোনাৰ টেব আৰু ইতিহাস ছিংক কৰক।</translation>
 <translation id="7730020510075123961">নাই, ডেটা একত্ৰিত কৰক</translation>
-<translation id="7730973429297233609"><ph name="FILENAME" /> - <ph name="FILESIZE" /> ছেভ কৰিবলৈ আপুনি ব্যৱহাৰ কৰিব বিচৰা একাউণ্টটো বাছনি কৰক</translation>
 <translation id="7733646263819020771"><ph name="BOOKMRK_NAME" />। কেৱল এই ডিভাইচটোত।</translation>
 <translation id="7744192722284567281">ডেটা উলংঘন হোৱা দেখা গৈছিল</translation>
 <translation id="7749790401023484470">আপুনি কোনো পাঠ বাছনি কৰা নাই।</translation>
@@ -1840,7 +1840,6 @@
 <translation id="8428045167754449968">নগৰ / চহৰ</translation>
 <translation id="8428213095426709021">ছেটিংসমূহ</translation>
 <translation id="8428634594422941299">বুজি পালোঁ</translation>
-<translation id="8430694217306051839"><ph name="FILENAME" /> (<ph name="FILE_SIZE" />) ক’ত ছেভ কৰিব লাগে বাছনি কৰক</translation>
 <translation id="8434837876193928924">টেবৰ গোটৰ সবিশেষ</translation>
 <translation id="8438566539970814960">সন্ধান আৰু ব্ৰাউজিং উন্নত কৰক</translation>
 <translation id="8439758443371991593">পঢ়াৰ সূচীত যোগ দিয়াৰ সুবিধাটো লুকুৱাওক</translation>
diff --git a/ios/chrome/app/strings/resources/ios_strings_az.xtb b/ios/chrome/app/strings/resources/ios_strings_az.xtb
index fd96e95..f993889 100644
--- a/ios/chrome/app/strings/resources/ios_strings_az.xtb
+++ b/ios/chrome/app/strings/resources/ios_strings_az.xtb
@@ -623,6 +623,7 @@
 <translation id="3596414637720633074">Anonim rejimdə üçüncü tərəf kukilərini bloklayın</translation>
 <translation id="3602260545951981695">"Təkmil qoruma" seçin</translation>
 <translation id="3608436266458100337">Oxu rejimi</translation>
+<translation id="3610041351087301930">Oxu rejimini gizlədin</translation>
 <translation id="3622175633937495219">Axtarış tarixçəsi (<ph name="COUNT" /> nəticə tapılıb)</translation>
 <translation id="3625008969091706597">Kənarı çəkərək geri qayıda bilərsiniz.</translation>
 <translation id="362709345066740529">Kartları, lenti və s. bölmələri burada fərdiləşdirin</translation>
@@ -964,7 +965,6 @@
 <translation id="4979397965658815378">Bütün cihazlarınızda əlfəcin, tarixçə, parol və digər ayarları əldə etmək üçün Google Hesabınız ilə daxil olun.</translation>
 <translation id="4985921635659180565">Faylın silinməsi planlaşdırıldıqdan sonra onu ləğv etmək mümkün deyil.</translation>
 <translation id="498624032394115435">Keçidi olan hər kəs bütün tablara düzəliş edə bilər.</translation>
-<translation id="4989065233040279145"><ph name="FILENAME" /> faylının yadda saxlanacağı yeri seçin</translation>
 <translation id="499122600724363620"><ph name="NAME" />, <ph name="EMAIL" />, təşkilatınız tərəfindən idarə olunur.</translation>
 <translation id="4992255726304765516">Tab qrupu rəngi <ph name="COLOR" /></translation>
 <translation id="5005498671520578047">Parolu kopyalayın</translation>
@@ -1064,6 +1064,7 @@
 <translation id="5431252637281434233">Çıxacaqsınız</translation>
 <translation id="543338862236136125">Parolu redaktə edin</translation>
 <translation id="5433691172869980887">İstifadəçi adı kopyalandı</translation>
+<translation id="5437480232219631455">Gemini-ni burada aça bilərsiniz</translation>
 <translation id="5439618055789623719"><ph name="USER_EMAIL" /> kimi giriş edilib</translation>
 <translation id="5443636120437209490">Defolt olaraq daha yaxşı baxış</translation>
 <translation id="5444892875087332195">Əlfəcinlər</translation>
@@ -1650,7 +1651,6 @@
 <translation id="7724085059277147439">{count,plural, =1{Element Google Hesabında ({email}) yadda saxlandı}other{Elementlər Google Hesabında ({email}) yadda saxlandı}}</translation>
 <translation id="7729458878441927652">Digər cihazlardakı tablara baxmaq üçün tab və tarixçəni sinxronlaşdırın.</translation>
 <translation id="7730020510075123961">Xeyr, datanı birləşdirin</translation>
-<translation id="7730973429297233609"><ph name="FILENAME" /> faylını (<ph name="FILESIZE" />) yadda saxlamaq üçün istifadə ediləcək hesabı seçin</translation>
 <translation id="7733646263819020771"><ph name="BOOKMRK_NAME" />. Yalnız bu cihazda.</translation>
 <translation id="7744192722284567281">Verilənlərin təhlükəsizliyinin pozulması halı aşkarlanıb</translation>
 <translation id="7749790401023484470">Mətn seçməmisiniz.</translation>
@@ -1834,7 +1834,6 @@
 <translation id="8428045167754449968">Şəhər / Kənd</translation>
 <translation id="8428213095426709021">Ayarlar</translation>
 <translation id="8428634594422941299">Anladım</translation>
-<translation id="8430694217306051839"><ph name="FILENAME" /> faylını (<ph name="FILE_SIZE" />) yadda saxlayacağınız yeri seçin</translation>
 <translation id="8434837876193928924">Tab qrupu təfərrüatları</translation>
 <translation id="8438566539970814960">Axtarış və brauzer fəaliyyətini təkmilləşdirin</translation>
 <translation id="8439758443371991593">"Oxu siyahısına əlavə edin" seçimini gizlədin</translation>
diff --git a/ios/chrome/app/strings/resources/ios_strings_be.xtb b/ios/chrome/app/strings/resources/ios_strings_be.xtb
index fd5a642..03c4383 100644
--- a/ios/chrome/app/strings/resources/ios_strings_be.xtb
+++ b/ios/chrome/app/strings/resources/ios_strings_be.xtb
@@ -623,6 +623,7 @@
 <translation id="3596414637720633074">Блакіраваць староннія файлы cookie у рэжыме інкогніта</translation>
 <translation id="3602260545951981695">Выберыце функцыю "Палепшаная абарона"</translation>
 <translation id="3608436266458100337">Рэжым чытання</translation>
+<translation id="3610041351087301930">Схаваць рэжым чытання</translation>
 <translation id="3622175633937495219">Гісторыя пошуку (знойдзена супадзенняў: <ph name="COUNT" />)</translation>
 <translation id="3625008969091706597">Каб перайсці назад, правядзіце пальцам па краі экрана.</translation>
 <translation id="362709345066740529">Тут можна наладзіць карткі, стужку і іншае</translation>
@@ -964,7 +965,6 @@
 <translation id="4979397965658815378">Каб закладкі, паролі, гісторыя і іншыя налады былі даступнымі на ўсіх вашых прыладах, увайдзіце ва Уліковы запіс Google</translation>
 <translation id="4985921635659180565">Запланаванае выдаленне файла нельга адмяніць.</translation>
 <translation id="498624032394115435">Любы карыстальнік, які мае спасылку, можа рэдагаваць усе ўкладкі.</translation>
-<translation id="4989065233040279145">Выберыце, куды захаваць файл "<ph name="FILENAME" />"</translation>
 <translation id="499122600724363620"><ph name="NAME" />, <ph name="EMAIL" />, пад кіраваннем вашай арганізацыі.</translation>
 <translation id="4992255726304765516">Колер групы ўкладак <ph name="COLOR" /></translation>
 <translation id="5005498671520578047">Капіраваць пароль</translation>
@@ -1064,6 +1064,7 @@
 <translation id="5431252637281434233">Будзе выкананы выхад з уліковага запісу</translation>
 <translation id="543338862236136125">Змяніць пароль</translation>
 <translation id="5433691172869980887">Імя карыстальніка скапіравана</translation>
+<translation id="5437480232219631455">Тут можна адкрыць Gemini</translation>
 <translation id="5439618055789623719">Вы ўвайшлі як <ph name="USER_EMAIL" /></translation>
 <translation id="5443636120437209490">Лепшы стандартны браўзер</translation>
 <translation id="5444892875087332195">Закладкі</translation>
@@ -1650,7 +1651,6 @@
 <translation id="7724085059277147439">{count,plural, =1{Даныя захаваны ў вашым Уліковым запісе Google ({email})}one{Даныя захаваны ў вашым Уліковым запісе Google ({email})}few{Даныя захаваны ў вашым Уліковым запісе Google ({email})}many{Даныя захаваны ў вашым Уліковым запісе Google ({email})}other{Даныя захаваны ў вашым Уліковым запісе Google ({email})}}</translation>
 <translation id="7729458878441927652">Каб бачыць укладкі з іншых прылад, сінхранізуйце ўкладкі і гісторыю.</translation>
 <translation id="7730020510075123961">Не, аб’яднаць даныя</translation>
-<translation id="7730973429297233609">Выберыце ўліковы запіс, у якім трэба захаваць файл "<ph name="FILENAME" />" (<ph name="FILESIZE" />)</translation>
 <translation id="7733646263819020771"><ph name="BOOKMRK_NAME" />. Толькі на гэтай прыладзе.</translation>
 <translation id="7744192722284567281">Раскрыты пры ўцечцы даных</translation>
 <translation id="7749790401023484470">Вы не выбралі тэкст</translation>
@@ -1834,7 +1834,6 @@
 <translation id="8428045167754449968">Горад або населены пункт</translation>
 <translation id="8428213095426709021">Налады</translation>
 <translation id="8428634594422941299">Зразумела</translation>
-<translation id="8430694217306051839">Выберыце, куды захаваць файл "<ph name="FILENAME" />" (<ph name="FILE_SIZE" />)</translation>
 <translation id="8434837876193928924">Падрабязныя звесткі пра групу ўкладак</translation>
 <translation id="8438566539970814960">Палепшыць пошук і прагляд</translation>
 <translation id="8439758443371991593">Схаваць пункт "Дадаць у спіс на прагляд"</translation>
diff --git a/ios/chrome/app/strings/resources/ios_strings_bg.xtb b/ios/chrome/app/strings/resources/ios_strings_bg.xtb
index ca1fc5c4..e3dc7b6 100644
--- a/ios/chrome/app/strings/resources/ios_strings_bg.xtb
+++ b/ios/chrome/app/strings/resources/ios_strings_bg.xtb
@@ -623,6 +623,7 @@
 <translation id="3596414637720633074">Блокиране на „бисквитките“ на трети страни в режим „инкогнито“</translation>
 <translation id="3602260545951981695">Изберете „Подобрена защита“.</translation>
 <translation id="3608436266458100337">Режим за четене</translation>
+<translation id="3610041351087301930">Скриване на четеца</translation>
 <translation id="3622175633937495219">История на търсенията (намерени: <ph name="COUNT" />)</translation>
 <translation id="3625008969091706597">Можете да прекарате пръст по края, за да се върнете назад.</translation>
 <translation id="362709345066740529">Персонализирайте картите, емисията и др. оттук</translation>
@@ -964,7 +965,6 @@
 <translation id="4979397965658815378">Влезте с профила си в Google, за да получите своите отметки, пароли, история и други настройки на всичките си устройства</translation>
 <translation id="4985921635659180565">След като изтриването на даден файл бъде насрочено, то не може да бъде отменено.</translation>
 <translation id="498624032394115435">Всеки, който разполага с връзката, може да редактира всички раздели.</translation>
-<translation id="4989065233040279145">Изберете къде да се запази <ph name="FILENAME" /></translation>
 <translation id="499122600724363620"><ph name="NAME" /> (<ph name="EMAIL" />). Управлява се от организацията ви.</translation>
 <translation id="4992255726304765516">Цветът на групата раздели е <ph name="COLOR" /></translation>
 <translation id="5005498671520578047">Копиране на паролата</translation>
@@ -1064,6 +1064,7 @@
 <translation id="5431252637281434233">Ще излезете от профила си</translation>
 <translation id="543338862236136125">Редактиране на паролата</translation>
 <translation id="5433691172869980887">Потребителското име е копирано</translation>
+<translation id="5437480232219631455">Можете да отворите Gemini тук</translation>
 <translation id="5439618055789623719">Влязохте като <ph name="USER_EMAIL" /></translation>
 <translation id="5443636120437209490">По-добро сърфиране по подразбиране</translation>
 <translation id="5444892875087332195">Отметки</translation>
@@ -1650,7 +1651,6 @@
 <translation id="7724085059277147439">{count,plural, =1{Елементът е запазен в профила ви в Google {email}}other{Елементите са запазени в профила ви в Google {email}}}</translation>
 <translation id="7729458878441927652">За да виждате разделите от другите си устройства, синхронизирайте разделите и историята си.</translation>
 <translation id="7730020510075123961">Не, обединяване на данните</translation>
-<translation id="7730973429297233609">Изберете профила, който искате да използвате, за да запазите <ph name="FILENAME" /> – <ph name="FILESIZE" /></translation>
 <translation id="7733646263819020771"><ph name="BOOKMRK_NAME" />. Само на това устройство.</translation>
 <translation id="7744192722284567281">Разкрита при нарушение на сигурността на данните</translation>
 <translation id="7749790401023484470">Не сте избрали текст.</translation>
@@ -1834,7 +1834,6 @@
 <translation id="8428045167754449968">Град/селище</translation>
 <translation id="8428213095426709021">Настройки</translation>
 <translation id="8428634594422941299">Разбрах</translation>
-<translation id="8430694217306051839">Изберете къде да се запази <ph name="FILENAME" /> (<ph name="FILE_SIZE" />)</translation>
 <translation id="8434837876193928924">Подробности за групата раздели</translation>
 <translation id="8438566539970814960">Подобряване на търсенията и сърфирането</translation>
 <translation id="8439758443371991593">Скриване на „Добавяне към списъка за четене“</translation>
diff --git a/ios/chrome/app/strings/resources/ios_strings_bn.xtb b/ios/chrome/app/strings/resources/ios_strings_bn.xtb
index c6e1821..538adbe 100644
--- a/ios/chrome/app/strings/resources/ios_strings_bn.xtb
+++ b/ios/chrome/app/strings/resources/ios_strings_bn.xtb
@@ -965,7 +965,6 @@
 <translation id="4979397965658815378">আপনার সব ডিভাইসে আপনার বুকমার্ক, পাসওয়ার্ড, ইতিহাস এবং অন্যান্য সেটিংস পেতে আপনার Google অ্যাকাউন্টে সাইন-ইন করুন</translation>
 <translation id="4985921635659180565">কোনও একটি ফাইল মুছে ফেলার জন্য শিডিউল করা হলে, এটি বাতিল করা যাবে না।</translation>
 <translation id="498624032394115435">এই লিঙ্ক আছে এমন যেকোনও ব্যক্তি সব ট্যাব এডিট করতে পারবেন।</translation>
-<translation id="4989065233040279145"><ph name="FILENAME" /> কোথায় সেভ করবেন বেছে নিন</translation>
 <translation id="499122600724363620"><ph name="NAME" />, <ph name="EMAIL" /> আপনার সংস্থা এটি ম্যানেজ করে।</translation>
 <translation id="4992255726304765516">ট্যাব গ্রুপের রঙ <ph name="COLOR" /></translation>
 <translation id="5005498671520578047">পাসওয়ার্ড কপি করুন</translation>
@@ -1653,7 +1652,6 @@
 <translation id="7724085059277147439">{count,plural, =1{আপনার Google অ্যাকাউন্ট, {email}-এ আইটেম সেভ করা হয়েছে}one{আপনার Google অ্যাকাউন্ট, {email}-এ আইটেম সেভ করা হয়েছে}other{আপনার Google অ্যাকাউন্ট, {email}-এ আইটেম সেভ করা হয়েছে}}</translation>
 <translation id="7729458878441927652">আপনার অন্য ডিভাইস থেকে ট্যাব দেখতে নিজের ট্যাব ও ইতিহাস সিঙ্ক করুন।</translation>
 <translation id="7730020510075123961">না, ডেটা মার্জ করুন</translation>
-<translation id="7730973429297233609"><ph name="FILENAME" /> - <ph name="FILESIZE" /> সেভ করার জন্য যে অ্যাকাউন্ট ব্যবহার করতে চান তা বেছে নিন</translation>
 <translation id="7733646263819020771"><ph name="BOOKMRK_NAME" />। শুধুমাত্র এই ডিভাইসে।</translation>
 <translation id="7744192722284567281">ডেটার নিরাপত্তা লঙ্ঘন দেখা গেছে</translation>
 <translation id="7749790401023484470">আপনি কোনও টেক্সট বেছে নিন।</translation>
@@ -1837,7 +1835,6 @@
 <translation id="8428045167754449968">নগর / ছোট শহর</translation>
 <translation id="8428213095426709021">সেটিংস</translation>
 <translation id="8428634594422941299">বুঝেছি</translation>
-<translation id="8430694217306051839"><ph name="FILENAME" /> (<ph name="FILE_SIZE" />) কোথায় সেভ করবেন বেছে নিন</translation>
 <translation id="8434837876193928924">ট্যাব গ্রুপ সম্পর্কিত বিবরণ</translation>
 <translation id="8438566539970814960">সার্চ এবং ব্রাউজিং অভিজ্ঞতা আরও উন্নত করুন</translation>
 <translation id="8439758443371991593">'পড়ার তালিকায় যোগ করুন' বিকল্পটি লুকান</translation>
diff --git a/ios/chrome/app/strings/resources/ios_strings_bs.xtb b/ios/chrome/app/strings/resources/ios_strings_bs.xtb
index 745e10d5..30f23c4 100644
--- a/ios/chrome/app/strings/resources/ios_strings_bs.xtb
+++ b/ios/chrome/app/strings/resources/ios_strings_bs.xtb
@@ -623,6 +623,7 @@
 <translation id="3596414637720633074">Blokirajte kolačiće trećih strana u anonimnom načinu rada</translation>
 <translation id="3602260545951981695">Odaberite "Poboljšana zaštita"</translation>
 <translation id="3608436266458100337">Način čitača</translation>
+<translation id="3610041351087301930">Sakrij čitanje</translation>
 <translation id="3622175633937495219">Historija pretraživanja (otkriveno: <ph name="COUNT" />)</translation>
 <translation id="3625008969091706597">Možete prevući po rubu da se vratite.</translation>
 <translation id="362709345066740529">Ovdje prilagodite kartice, sažetak sadržaja i drugo</translation>
@@ -964,7 +965,6 @@
 <translation id="4979397965658815378">Prijavite se na svoj Google račun da dobijete oznake, lozinke, historiju i ostale postavke na svim svojim uređajima.</translation>
 <translation id="4985921635659180565">Ne možete otkazati brisanje fajla nakon što to zakažete.</translation>
 <translation id="498624032394115435">Svako s linkom može uređivati sve kartice.</translation>
-<translation id="4989065233040279145">Odaberite gdje želite sačuvati fajl <ph name="FILENAME" /></translation>
 <translation id="499122600724363620"><ph name="NAME" />, <ph name="EMAIL" />. Ovim upravlja vaša organizacija.</translation>
 <translation id="4992255726304765516">Boja grupe kartica: <ph name="COLOR" /></translation>
 <translation id="5005498671520578047">Kopiranje lozinke</translation>
@@ -1064,6 +1064,7 @@
 <translation id="5431252637281434233">Odjavit ćete se</translation>
 <translation id="543338862236136125">Uredite lozinku</translation>
 <translation id="5433691172869980887">Kopirano je korisničko ime</translation>
+<translation id="5437480232219631455">Ovdje možete otvoriti Gemini</translation>
 <translation id="5439618055789623719">Prijavljeni ste kao <ph name="USER_EMAIL" /></translation>
 <translation id="5443636120437209490">Bolje pregledanje prema zadanim postavkama</translation>
 <translation id="5444892875087332195">Oznake</translation>
@@ -1650,7 +1651,6 @@
 <translation id="7724085059277147439">{count,plural, =1{Stavka je sačuvana na Google račun {email}}one{Stavke su sačuvane na Google račun {email}}few{Stavke su sačuvane na Google račun {email}}other{Stavke su sačuvane na Google račun {email}}}</translation>
 <translation id="7729458878441927652">Da vidite kartice sa svojih drugih uređaja, sinhronizirajte svoje kartice i historiju.</translation>
 <translation id="7730020510075123961">Ne, spoji podatke</translation>
-<translation id="7730973429297233609">Odaberite račun koji želite koristiti za pohranjivanje fajla <ph name="FILENAME" />, <ph name="FILESIZE" /></translation>
 <translation id="7733646263819020771"><ph name="BOOKMRK_NAME" />. Samo na ovom uređaju.</translation>
 <translation id="7744192722284567281">Pronađeno u narušavanju podataka</translation>
 <translation id="7749790401023484470">Niste odabrali nijedan tekst.</translation>
@@ -1834,7 +1834,6 @@
 <translation id="8428045167754449968">Grad/mjesto</translation>
 <translation id="8428213095426709021">Postavke</translation>
 <translation id="8428634594422941299">Razumijem</translation>
-<translation id="8430694217306051839">Odaberite gdje želite sačuvati fajl <ph name="FILENAME" /> (<ph name="FILE_SIZE" />)</translation>
 <translation id="8434837876193928924">Detalji o grupi kartica</translation>
 <translation id="8438566539970814960">Poboljšajte pretraživanje i pregledanje</translation>
 <translation id="8439758443371991593">Sakrij dodavanje na Listu za čitanje</translation>
diff --git a/ios/chrome/app/strings/resources/ios_strings_ca.xtb b/ios/chrome/app/strings/resources/ios_strings_ca.xtb
index 259f7e0..de7ffc3a 100644
--- a/ios/chrome/app/strings/resources/ios_strings_ca.xtb
+++ b/ios/chrome/app/strings/resources/ios_strings_ca.xtb
@@ -623,6 +623,7 @@
 <translation id="3596414637720633074">Bloqueja les galetes de tercers en mode d'incògnit</translation>
 <translation id="3602260545951981695">Tria Protecció millorada</translation>
 <translation id="3608436266458100337">Mode de lector</translation>
+<translation id="3610041351087301930">Amaga el lector</translation>
 <translation id="3622175633937495219">Historial de cerques (n'hem trobat <ph name="COUNT" />)</translation>
 <translation id="3625008969091706597">Pots fer lliscar la vora per anar enrere.</translation>
 <translation id="362709345066740529">Personalitza les targetes, el feed i més aquí</translation>
@@ -964,7 +965,6 @@
 <translation id="4979397965658815378">Inicia la sessió amb el compte de Google per tenir les adreces d'interès, l'historial, les contrasenyes i altres opcions de configuració en tots els dispositius.</translation>
 <translation id="4985921635659180565">Un cop programada, la supressió d'un fitxer no es pot cancel·lar.</translation>
 <translation id="498624032394115435">Tothom que tingui l'enllaç pot editar totes les pestanyes.</translation>
-<translation id="4989065233040279145">Tria on vols desar <ph name="FILENAME" /></translation>
 <translation id="499122600724363620"><ph name="NAME" />, <ph name="EMAIL" />, gestionat per la teva organització.</translation>
 <translation id="4992255726304765516">Grup de pestanyes de color <ph name="COLOR" /></translation>
 <translation id="5005498671520578047">Copia la contrasenya</translation>
@@ -1064,6 +1064,7 @@
 <translation id="5431252637281434233">Es tancarà la teva sessió</translation>
 <translation id="543338862236136125">Edita la contrasenya</translation>
 <translation id="5433691172869980887">S'ha copiat el nom d'usuari</translation>
+<translation id="5437480232219631455">Aquí pots obrir Gemini</translation>
 <translation id="5439618055789623719">Has iniciat la sessió com a <ph name="USER_EMAIL" /></translation>
 <translation id="5443636120437209490">Millor navegació per defecte</translation>
 <translation id="5444892875087332195">Adreces d'interès</translation>
@@ -1650,7 +1651,6 @@
 <translation id="7724085059277147439">{count,plural, =1{L'element s'ha desat al teu Compte de Google, {email}}other{Els elements s'han desat al teu Compte de Google, {email}}}</translation>
 <translation id="7729458878441927652">Per veure les pestanyes dels altres dispositius, sincronitza les pestanyes i l'historial.</translation>
 <translation id="7730020510075123961">No, combina les dades</translation>
-<translation id="7730973429297233609">Selecciona el compte que vols utilitzar per desar <ph name="FILENAME" /> - <ph name="FILESIZE" /></translation>
 <translation id="7733646263819020771"><ph name="BOOKMRK_NAME" />. Només en aquest dispositiu.</translation>
 <translation id="7744192722284567281">S'ha trobat en una violació de les dades</translation>
 <translation id="7749790401023484470">No has seleccionat cap text.</translation>
@@ -1834,7 +1834,6 @@
 <translation id="8428045167754449968">Ciutat/població</translation>
 <translation id="8428213095426709021">Configuració</translation>
 <translation id="8428634594422941299">D'acord</translation>
-<translation id="8430694217306051839">Tria on vols desar <ph name="FILENAME" /> (<ph name="FILE_SIZE" />)</translation>
 <translation id="8434837876193928924">Detalls del grup de pestanyes</translation>
 <translation id="8438566539970814960">Millora les cerques i la navegació</translation>
 <translation id="8439758443371991593">Amaga l'opció Afegeix a la llista de lectura</translation>
diff --git a/ios/chrome/app/strings/resources/ios_strings_cs.xtb b/ios/chrome/app/strings/resources/ios_strings_cs.xtb
index 5625297..b8c1f1e 100644
--- a/ios/chrome/app/strings/resources/ios_strings_cs.xtb
+++ b/ios/chrome/app/strings/resources/ios_strings_cs.xtb
@@ -623,6 +623,7 @@
 <translation id="3596414637720633074">V anonymním režimu blokovat soubory cookie třetích stran</translation>
 <translation id="3602260545951981695">Vyberte Vylepšená ochrana</translation>
 <translation id="3608436266458100337">Režim čtečky</translation>
+<translation id="3610041351087301930">Skrýt čtenáře</translation>
 <translation id="3622175633937495219">Historie vyhledávání (nalezeno: <ph name="COUNT" />)</translation>
 <translation id="3625008969091706597">Přejetím přes okraj se můžete vrátit zpět.</translation>
 <translation id="362709345066740529">Tady si můžete přizpůsobit své karty, feed a další věci</translation>
@@ -964,7 +965,6 @@
 <translation id="4979397965658815378">Přihlaste se pomocí účtu Google a získejte záložky, hesla, historii a další nastavení do všech svých zařízení.</translation>
 <translation id="4985921635659180565">Naplánované smazání souboru nelze později zrušit.</translation>
 <translation id="498624032394115435">Kdokoli s odkazem může upravovat všechny karty.</translation>
-<translation id="4989065233040279145">Vyberte, kam soubor <ph name="FILENAME" /> chcete uložit</translation>
 <translation id="499122600724363620"><ph name="NAME" />, <ph name="EMAIL" />, spravováno vaší organizací.</translation>
 <translation id="4992255726304765516">Barva skupiny karet: <ph name="COLOR" /></translation>
 <translation id="5005498671520578047">Kopírování hesla</translation>
@@ -1064,6 +1064,7 @@
 <translation id="5431252637281434233">Budete odhlášeni</translation>
 <translation id="543338862236136125">Upravit heslo</translation>
 <translation id="5433691172869980887">Uživatelské jméno bylo zkopírováno</translation>
+<translation id="5437480232219631455">Gemini můžete otevřít tady</translation>
 <translation id="5439618055789623719">Jste přihlášeni jako <ph name="USER_EMAIL" /></translation>
 <translation id="5443636120437209490">Lepší procházení ve výchozím nastavení</translation>
 <translation id="5444892875087332195">Záložky</translation>
@@ -1650,7 +1651,6 @@
 <translation id="7724085059277147439">{count,plural, =1{Položka byla uložena do vašeho účtu Google ({email})}few{Položky byly uloženy do vašeho účtu Google ({email})}many{Položky byly uloženy do vašeho účtu Google ({email})}other{Položky byly uloženy do vašeho účtu Google ({email})}}</translation>
 <translation id="7729458878441927652">Pokud chcete zobrazit karty ze svých ostatních zařízení, synchronizujte karty a historii.</translation>
 <translation id="7730020510075123961">Ne, sloučit data</translation>
-<translation id="7730973429297233609">Vyberte účet, který chcete použít k uložení souboru <ph name="FILENAME" /> – <ph name="FILESIZE" /></translation>
 <translation id="7733646263819020771"><ph name="BOOKMRK_NAME" />. Pouze na tomto zařízení</translation>
 <translation id="7744192722284567281">Nalezeno v porušení zabezpečení údajů</translation>
 <translation id="7749790401023484470">Nevybrali jste žádný text.</translation>
@@ -1834,7 +1834,6 @@
 <translation id="8428045167754449968">Město nebo obec</translation>
 <translation id="8428213095426709021">Nastavení</translation>
 <translation id="8428634594422941299">Rozumím</translation>
-<translation id="8430694217306051839">Vyberte, zda soubor <ph name="FILENAME" /> (<ph name="FILE_SIZE" />) chcete uložit</translation>
 <translation id="8434837876193928924">Podrobnosti o skupině karet</translation>
 <translation id="8438566539970814960">Vylepšit vyhledávání a procházení</translation>
 <translation id="8439758443371991593">Skrýt možnost Přidat do seznamu četby</translation>
diff --git a/ios/chrome/app/strings/resources/ios_strings_cy.xtb b/ios/chrome/app/strings/resources/ios_strings_cy.xtb
index bc51052..32cfba1 100644
--- a/ios/chrome/app/strings/resources/ios_strings_cy.xtb
+++ b/ios/chrome/app/strings/resources/ios_strings_cy.xtb
@@ -623,6 +623,7 @@
 <translation id="3596414637720633074">Rhwystro cwcis gan drydydd parti yn y Modd Anhysbys</translation>
 <translation id="3602260545951981695">Dewiswch "Diogelwch Gwell"</translation>
 <translation id="3608436266458100337">Modd darllenydd</translation>
+<translation id="3610041351087301930">Cuddio'r Darllenydd</translation>
 <translation id="3622175633937495219">Hanes Chwilio (wedi dod o hyd i <ph name="COUNT" />)</translation>
 <translation id="3625008969091706597">Gallwch sweipio'r ymyl i fynd yn ôl.</translation>
 <translation id="362709345066740529">Addaswch eich cardiau, ffrwd a mwy yma</translation>
@@ -964,7 +965,6 @@
 <translation id="4979397965658815378">Mewngofnodwch gyda'ch Cyfrif Google i gael eich nodau tudalen, eich cyfrineiriau, eich hanes a'ch gosodiadau eraill ar eich holl ddyfeisiau</translation>
 <translation id="4985921635659180565">Unwaith y bydd ffeil wedi'i threfnu i gael ei dileu, ni ellir ei chanslo.</translation>
 <translation id="498624032394115435">Gall unrhyw un sydd â'r ddolen olygu'r holl dabiau.</translation>
-<translation id="4989065233040279145">Dewiswch ble i gadw <ph name="FILENAME" /></translation>
 <translation id="499122600724363620"><ph name="NAME" />, <ph name="EMAIL" />, rheolir gan eich sefydliad.</translation>
 <translation id="4992255726304765516">Lliw grŵp tabiau <ph name="COLOR" /></translation>
 <translation id="5005498671520578047">Copïo'r cyfrinair</translation>
@@ -1064,6 +1064,7 @@
 <translation id="5431252637281434233">Byddwch yn cael eich allgofnodi</translation>
 <translation id="543338862236136125">Golygu cyfrinair</translation>
 <translation id="5433691172869980887">Copïwyd enw defnyddiwr</translation>
+<translation id="5437480232219631455">Gallwch agor Gemini yma</translation>
 <translation id="5439618055789623719">Wedi mewngofnodi fel <ph name="USER_EMAIL" /></translation>
 <translation id="5443636120437209490">Pori gwell yn ddiofyn</translation>
 <translation id="5444892875087332195">Nodau tudalen</translation>
@@ -1650,7 +1651,6 @@
 <translation id="7724085059277147439">{count,plural, =1{Eitem a gadwyd yn eich Cyfrif Google, {email}}zero{Eitem a gadwyd yn eich Cyfrif Google, {email}}two{Eitem a gadwyd yn eich Cyfrif Google, {email}}few{Eitem a gadwyd yn eich Cyfrif Google, {email}}many{Eitem a gadwyd yn eich Cyfrif Google, {email}}other{Eitem a gadwyd yn eich Cyfrif Google, {email}}}</translation>
 <translation id="7729458878441927652">I weld tabiau o'ch dyfeisiau eraill, cysonwch eich tabiau a'ch hanes.</translation>
 <translation id="7730020510075123961">Na, cyfuno data</translation>
-<translation id="7730973429297233609">Dewiswch y cyfrif yr hoffech ei ddefnyddio i gadw <ph name="FILENAME" /> - <ph name="FILESIZE" /></translation>
 <translation id="7733646263819020771"><ph name="BOOKMRK_NAME" />. Ar y ddyfais hon yn unig.</translation>
 <translation id="7744192722284567281">Wedi darganfod tor data</translation>
 <translation id="7749790401023484470">Ni wnaethoch ddewis unrhyw destun.</translation>
@@ -1834,7 +1834,6 @@
 <translation id="8428045167754449968">Dinas / Tref</translation>
 <translation id="8428213095426709021">Gosodiadau</translation>
 <translation id="8428634594422941299">Deall</translation>
-<translation id="8430694217306051839">Dewiswch ble i gadw <ph name="FILENAME" /> (<ph name="FILE_SIZE" />)</translation>
 <translation id="8434837876193928924">Manylion grŵp tabiau</translation>
 <translation id="8438566539970814960">Gwneud chwiliadau a phori yn well</translation>
 <translation id="8439758443371991593">Cuddio Ychwanegu at Restr Darllen</translation>
diff --git a/ios/chrome/app/strings/resources/ios_strings_da.xtb b/ios/chrome/app/strings/resources/ios_strings_da.xtb
index dba0a50..d1efe7b 100644
--- a/ios/chrome/app/strings/resources/ios_strings_da.xtb
+++ b/ios/chrome/app/strings/resources/ios_strings_da.xtb
@@ -623,6 +623,7 @@
 <translation id="3596414637720633074">Bloker tredjepartscookies i inkognito</translation>
 <translation id="3602260545951981695">Vælg "Forbedret beskyttelse"</translation>
 <translation id="3608436266458100337">Læser-tilstand</translation>
+<translation id="3610041351087301930">Skjul Læser</translation>
 <translation id="3622175633937495219">Søgehistorik (<ph name="COUNT" /> blev fundet)</translation>
 <translation id="3625008969091706597">Du kan stryge i kanten for at gå tilbage.</translation>
 <translation id="362709345066740529">Tilpas dine kort, dit feed m.m. her</translation>
@@ -964,7 +965,6 @@
 <translation id="4979397965658815378">Log ind med din Google-konto for at få adgang til dine bogmærker, dine adgangskoder, din historik og andre indstillinger på alle dine enheder.</translation>
 <translation id="4985921635659180565">Når en fil er planlagt til at blive slettet, kan den ikke annulleres.</translation>
 <translation id="498624032394115435">Alle med linket kan redigere alle faner.</translation>
-<translation id="4989065233040279145">Vælg, hvor du vil gemme <ph name="FILENAME" /></translation>
 <translation id="499122600724363620"><ph name="NAME" />, <ph name="EMAIL" />, som administreres af din organisation.</translation>
 <translation id="4992255726304765516">Fanegruppens farve <ph name="COLOR" /></translation>
 <translation id="5005498671520578047">Kopiér adgangskode</translation>
@@ -1064,6 +1064,7 @@
 <translation id="5431252637281434233">Du logges ud</translation>
 <translation id="543338862236136125">Rediger adgangskode</translation>
 <translation id="5433691172869980887">Brugernavnet er kopieret</translation>
+<translation id="5437480232219631455">Du kan åbne Gemini her</translation>
 <translation id="5439618055789623719">Logget ind som <ph name="USER_EMAIL" /></translation>
 <translation id="5443636120437209490">Bedre browsing som standard</translation>
 <translation id="5444892875087332195">Bogmærker</translation>
@@ -1650,7 +1651,6 @@
 <translation id="7724085059277147439">{count,plural, =1{Elementet er gemt på din Google-konto, {email}}one{Elementet er gemt på din Google-konto, {email}}other{Elementerne er gemt på din Google-konto, {email}}}</translation>
 <translation id="7729458878441927652">Hvis du vil se faner fra dine andre enheder, skal du synkronisere dine faner og din historik.</translation>
 <translation id="7730020510075123961">Nej. Flet data</translation>
-<translation id="7730973429297233609">Vælg den konto, du vil bruge til at gemme <ph name="FILENAME" /> – <ph name="FILESIZE" /></translation>
 <translation id="7733646263819020771"><ph name="BOOKMRK_NAME" />. Kun på denne enhed.</translation>
 <translation id="7744192722284567281">Blev fundet i et brud på datasikkerheden</translation>
 <translation id="7749790401023484470">Du har ikke valgt en tekst.</translation>
@@ -1834,7 +1834,6 @@
 <translation id="8428045167754449968">By</translation>
 <translation id="8428213095426709021">Indstillinger</translation>
 <translation id="8428634594422941299">OK</translation>
-<translation id="8430694217306051839">Vælg, hvor du vil gemme <ph name="FILENAME" /> (<ph name="FILE_SIZE" />)</translation>
 <translation id="8434837876193928924">Oplysninger om fanegruppen</translation>
 <translation id="8438566539970814960">Gør søgninger og browsing endnu bedre</translation>
 <translation id="8439758443371991593">Skjul Føj til læseliste</translation>
diff --git a/ios/chrome/app/strings/resources/ios_strings_de.xtb b/ios/chrome/app/strings/resources/ios_strings_de.xtb
index 6c105f2..df7871d 100644
--- a/ios/chrome/app/strings/resources/ios_strings_de.xtb
+++ b/ios/chrome/app/strings/resources/ios_strings_de.xtb
@@ -623,6 +623,7 @@
 <translation id="3596414637720633074">Drittanbieter-Cookies im Inkognitomodus blockieren</translation>
 <translation id="3602260545951981695">Wähle „Erweiterter Schutz“ aus</translation>
 <translation id="3608436266458100337">Lesemodus</translation>
+<translation id="3610041351087301930">Reader ausblenden</translation>
 <translation id="3622175633937495219">Suchverlauf (<ph name="COUNT" /> gefunden)</translation>
 <translation id="3625008969091706597">Du kannst über den Rand wischen, um zurückzugehen.</translation>
 <translation id="362709345066740529">Hier kannst du deine Karten, deinen Feed und mehr anpassen</translation>
@@ -964,7 +965,6 @@
 <translation id="4979397965658815378">Melde dich mit deinem Google-Konto an, um deine Lesezeichen, deine Passwörter, den Verlauf und deine anderen Einstellungen auf allen Geräten abrufen zu können</translation>
 <translation id="4985921635659180565">Wenn das Löschen einer Datei geplant wurde, kann es nicht mehr abgebrochen werden.</translation>
 <translation id="498624032394115435">Jeder Nutzer mit dem Link kann alle Tabs bearbeiten.</translation>
-<translation id="4989065233040279145">Speicherort für <ph name="FILENAME" /> auswählen</translation>
 <translation id="499122600724363620"><ph name="NAME" />, <ph name="EMAIL" />, von deiner Organisation verwaltet.</translation>
 <translation id="4992255726304765516">Farbe der Tabgruppe: <ph name="COLOR" /></translation>
 <translation id="5005498671520578047">Passwort kopieren</translation>
@@ -1064,6 +1064,7 @@
 <translation id="5431252637281434233">Du wirst abgemeldet</translation>
 <translation id="543338862236136125">Passwort ändern</translation>
 <translation id="5433691172869980887">Nutzername kopiert</translation>
+<translation id="5437480232219631455">Hier kannst du Gemini öffnen</translation>
 <translation id="5439618055789623719">Angemeldet als <ph name="USER_EMAIL" /></translation>
 <translation id="5443636120437209490">Standardmäßig besseres Surfen</translation>
 <translation id="5444892875087332195">Lesezeichen</translation>
@@ -1650,7 +1651,6 @@
 <translation id="7724085059277147439">{count,plural, =1{Element im Google-Konto {email} gespeichert}other{Elemente im Google-Konto {email} gespeichert}}</translation>
 <translation id="7729458878441927652">Wenn du Tabs von deinen anderen Geräten sehen möchtest, synchronisiere deine Tabs und den Verlauf.</translation>
 <translation id="7730020510075123961">Nein, Daten zusammenführen</translation>
-<translation id="7730973429297233609">Wähle das Konto aus, mit dem du <ph name="FILENAME" /> – <ph name="FILESIZE" /> speichern möchtest</translation>
 <translation id="7733646263819020771"><ph name="BOOKMRK_NAME" />. Nur auf diesem Gerät.</translation>
 <translation id="7744192722284567281">Bei Datenpanne gefunden</translation>
 <translation id="7749790401023484470">Du hast keinen Text ausgewählt.</translation>
@@ -1834,7 +1834,6 @@
 <translation id="8428045167754449968">Stadt/Ort</translation>
 <translation id="8428213095426709021">Einstellungen</translation>
 <translation id="8428634594422941299">Ok</translation>
-<translation id="8430694217306051839">Speicherort für <ph name="FILENAME" /> (<ph name="FILE_SIZE" />) auswählen</translation>
 <translation id="8434837876193928924">Details zur Tabgruppe</translation>
 <translation id="8438566539970814960">Suchanfragen und das Surfen verbessern</translation>
 <translation id="8439758443371991593">„Zur Leseliste hinzufügen“ ausblenden</translation>
diff --git a/ios/chrome/app/strings/resources/ios_strings_el.xtb b/ios/chrome/app/strings/resources/ios_strings_el.xtb
index 01053bd3..fb9b8b2 100644
--- a/ios/chrome/app/strings/resources/ios_strings_el.xtb
+++ b/ios/chrome/app/strings/resources/ios_strings_el.xtb
@@ -965,7 +965,6 @@
 <translation id="4979397965658815378">Συνδεθείτε στον Λογαριασμό σας Google για να λάβετε τους σελιδοδείκτες, τους κωδικούς πρόσβασης, το ιστορικό και άλλες ρυθμίσεις σε όλες τις συσκευές σας.</translation>
 <translation id="4985921635659180565">Εάν ένα αρχείο έχει προγραμματιστεί για διαγραφή, δεν είναι δυνατή η ακύρωσή της.</translation>
 <translation id="498624032394115435">Όποιος διαθέτει τον σύνδεσμο μπορεί να επεξεργαστεί όλες τις καρτέλες.</translation>
-<translation id="4989065233040279145">Επιλέξτε τοποθεσία αποθήκευσης για το αρχείο <ph name="FILENAME" /></translation>
 <translation id="499122600724363620"><ph name="NAME" />, <ph name="EMAIL" />, υπό τη διαχείριση του οργανισμού σας.</translation>
 <translation id="4992255726304765516">Χρώμα ομάδας καρτελών <ph name="COLOR" /></translation>
 <translation id="5005498671520578047">Αντιγραφή κωδικού πρόσβασης</translation>
@@ -1653,7 +1652,6 @@
 <translation id="7724085059277147439">{count,plural, =1{Το στοιχείο αποθηκεύτηκε στον Λογαριασμό σας Google, {email}}other{Τα στοιχεία αποθηκεύτηκαν στον Λογαριασμό σας Google, {email}}}</translation>
 <translation id="7729458878441927652">Για να δείτε τις καρτέλες από τις άλλες συσκευές σας, συγχρονίστε τις καρτέλες και το ιστορικό.</translation>
 <translation id="7730020510075123961">Όχι, να γίνει συγχώνευση δεδομένων</translation>
-<translation id="7730973429297233609">Επιλέξτε τον λογαριασμό που θέλετε να χρησιμοποιήσετε για την αποθήκευση του αρχείου <ph name="FILENAME" /> - <ph name="FILESIZE" /></translation>
 <translation id="7733646263819020771"><ph name="BOOKMRK_NAME" />. Μόνο σε αυτήν τη συσκευή.</translation>
 <translation id="7744192722284567281">Βρέθηκε σε παραβίαση δεδομένων</translation>
 <translation id="7749790401023484470">Δεν επιλέξατε κείμενο.</translation>
@@ -1837,7 +1835,6 @@
 <translation id="8428045167754449968">Πόλη / Κωμόπολη</translation>
 <translation id="8428213095426709021">Ρυθμίσεις</translation>
 <translation id="8428634594422941299">Το κατάλαβα</translation>
-<translation id="8430694217306051839">Επιλέξτε τοποθεσία αποθήκευσης για το αρχείο <ph name="FILENAME" /> (<ph name="FILE_SIZE" />)</translation>
 <translation id="8434837876193928924">Λεπτομέρειες ομάδας καρτελών</translation>
 <translation id="8438566539970814960">Βελτιώστε τις αναζητήσεις και την περιήγηση</translation>
 <translation id="8439758443371991593">Απόκρυψη της επιλογής Προσθήκη στη λίστα ανάγνωσης</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 82d4e79..b0c1b91 100644
--- a/ios/chrome/app/strings/resources/ios_strings_en-GB.xtb
+++ b/ios/chrome/app/strings/resources/ios_strings_en-GB.xtb
@@ -623,6 +623,7 @@
 <translation id="3596414637720633074">Block third-party cookies in Incognito</translation>
 <translation id="3602260545951981695">Choose 'Enhanced protection'</translation>
 <translation id="3608436266458100337">Reader mode</translation>
+<translation id="3610041351087301930">Hide reader</translation>
 <translation id="3622175633937495219">Search history (<ph name="COUNT" /> found)</translation>
 <translation id="3625008969091706597">You can swipe the edge to go back.</translation>
 <translation id="362709345066740529">Customise your cards, feed and more here</translation>
@@ -964,7 +965,6 @@
 <translation id="4979397965658815378">Sign in with your Google Account to get your bookmarks, passwords, history and other settings on all your devices</translation>
 <translation id="4985921635659180565">Once a file is scheduled to be deleted, it can't be cancelled.</translation>
 <translation id="498624032394115435">Anyone with the link can edit all tabs.</translation>
-<translation id="4989065233040279145">Choose where to save <ph name="FILENAME" /></translation>
 <translation id="499122600724363620"><ph name="NAME" />, <ph name="EMAIL" />, managed by your organisation.</translation>
 <translation id="4992255726304765516">Tab group colour <ph name="COLOR" /></translation>
 <translation id="5005498671520578047">Copy password</translation>
@@ -1064,6 +1064,7 @@
 <translation id="5431252637281434233">You'll be signed out</translation>
 <translation id="543338862236136125">Edit password</translation>
 <translation id="5433691172869980887">Username copied</translation>
+<translation id="5437480232219631455">You can open Gemini here</translation>
 <translation id="5439618055789623719">Signed in as <ph name="USER_EMAIL" /></translation>
 <translation id="5443636120437209490">Better browsing by default</translation>
 <translation id="5444892875087332195">Bookmarks</translation>
@@ -1650,7 +1651,6 @@
 <translation id="7724085059277147439">{count,plural, =1{Item saved in your Google Account, {email}}other{Items saved in your Google Account, {email}}}</translation>
 <translation id="7729458878441927652">To see tabs from your other devices, sync your tabs and history.</translation>
 <translation id="7730020510075123961">No, merge data</translation>
-<translation id="7730973429297233609">Select the account that you want to use to save <ph name="FILENAME" /> - <ph name="FILESIZE" /></translation>
 <translation id="7733646263819020771"><ph name="BOOKMRK_NAME" />. Only on this device.</translation>
 <translation id="7744192722284567281">Found in data breach</translation>
 <translation id="7749790401023484470">You have not selected any text.</translation>
@@ -1834,7 +1834,6 @@
 <translation id="8428045167754449968">City/Town</translation>
 <translation id="8428213095426709021">Settings</translation>
 <translation id="8428634594422941299">Got it</translation>
-<translation id="8430694217306051839">Choose where to save <ph name="FILENAME" /> (<ph name="FILE_SIZE" />)</translation>
 <translation id="8434837876193928924">Tab group details</translation>
 <translation id="8438566539970814960">Make searches and browsing better</translation>
 <translation id="8439758443371991593">Hide Add to reading list</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 dabca17..a9d131c 100644
--- a/ios/chrome/app/strings/resources/ios_strings_es-419.xtb
+++ b/ios/chrome/app/strings/resources/ios_strings_es-419.xtb
@@ -965,7 +965,6 @@
 <translation id="4979397965658815378">Accede con tu cuenta de Google para obtener tus favoritos, contraseñas, historial y otras opciones de configuración en todos tus dispositivos</translation>
 <translation id="4985921635659180565">Una vez que se programa la eliminación de un archivo, no se puede cancelar.</translation>
 <translation id="498624032394115435">Cualquier persona que tenga el vínculo puede editar todas las pestañas.</translation>
-<translation id="4989065233040279145">Elige dónde guardar <ph name="FILENAME" /></translation>
 <translation id="499122600724363620"><ph name="NAME" />, <ph name="EMAIL" />, administrada por tu organización.</translation>
 <translation id="4992255726304765516">Color <ph name="COLOR" /> del grupo de pestañas</translation>
 <translation id="5005498671520578047">Copiar contraseña</translation>
@@ -1652,7 +1651,6 @@
 <translation id="7724085059277147439">{count,plural, =1{Elemento guardado en tu Cuenta de Google ({email})}other{Elementos guardados en tu Cuenta de Google ({email})}}</translation>
 <translation id="7729458878441927652">Para ver las pestañas de tus otros dispositivos, sincroniza las pestañas y el historial.</translation>
 <translation id="7730020510075123961">No, combinar datos</translation>
-<translation id="7730973429297233609">Selecciona la cuenta que quieres usar para guardar <ph name="FILENAME" /> (<ph name="FILESIZE" />)</translation>
 <translation id="7733646263819020771"><ph name="BOOKMRK_NAME" />. Solo en este dispositivo.</translation>
 <translation id="7744192722284567281">Se encontró en una violación de la seguridad de los datos</translation>
 <translation id="7749790401023484470">No seleccionaste texto.</translation>
@@ -1836,7 +1834,6 @@
 <translation id="8428045167754449968">Ciudad/pueblo</translation>
 <translation id="8428213095426709021">Configuración</translation>
 <translation id="8428634594422941299">Entendido</translation>
-<translation id="8430694217306051839">Elige dónde guardar <ph name="FILENAME" /> (<ph name="FILE_SIZE" />)</translation>
 <translation id="8434837876193928924">Detalles del grupo de pestañas</translation>
 <translation id="8438566539970814960">Mejorar las búsquedas y la navegación</translation>
 <translation id="8439758443371991593">Ocultar la opción Agregar a la Lista de lectura</translation>
diff --git a/ios/chrome/app/strings/resources/ios_strings_es.xtb b/ios/chrome/app/strings/resources/ios_strings_es.xtb
index bc4fe07..4407660 100644
--- a/ios/chrome/app/strings/resources/ios_strings_es.xtb
+++ b/ios/chrome/app/strings/resources/ios_strings_es.xtb
@@ -623,6 +623,7 @@
 <translation id="3596414637720633074">Bloquear cookies de terceros en Incógnito</translation>
 <translation id="3602260545951981695">Elige Protección mejorada</translation>
 <translation id="3608436266458100337">Modo de lectura</translation>
+<translation id="3610041351087301930">Ocultar lector</translation>
 <translation id="3622175633937495219">Historial de búsqueda (resultados: <ph name="COUNT" />)</translation>
 <translation id="3625008969091706597">Puedes deslizar el borde para desplazarte hacia atrás.</translation>
 <translation id="362709345066740529">Personaliza tus tarjetas, tu feed y más aquí</translation>
@@ -964,7 +965,6 @@
 <translation id="4979397965658815378">Inicia sesión con tu cuenta de Google para acceder a tus marcadores, contraseñas, historial y otros ajustes desde todos tus dispositivos</translation>
 <translation id="4985921635659180565">Una vez que se ha programado la eliminación de un archivo, no se puede cancelar.</translation>
 <translation id="498624032394115435">Cualquier persona que tenga el enlace puede editar todas las pestañas.</translation>
-<translation id="4989065233040279145">Elige dónde guardar <ph name="FILENAME" /></translation>
 <translation id="499122600724363620"><ph name="NAME" /> (<ph name="EMAIL" />), gestionado por tu organización.</translation>
 <translation id="4992255726304765516">Color del grupo de pestañas: <ph name="COLOR" /></translation>
 <translation id="5005498671520578047">Copiar contraseña</translation>
@@ -1064,6 +1064,7 @@
 <translation id="5431252637281434233">Tu sesión se cerrará</translation>
 <translation id="543338862236136125">Cambiar contraseña</translation>
 <translation id="5433691172869980887">Se ha copiado el nombre de usuario</translation>
+<translation id="5437480232219631455">Puedes abrir Gemini aquí</translation>
 <translation id="5439618055789623719">Has iniciado sesión como <ph name="USER_EMAIL" /></translation>
 <translation id="5443636120437209490">Mejor navegación de forma predeterminada</translation>
 <translation id="5444892875087332195">Marcadores</translation>
@@ -1650,7 +1651,6 @@
 <translation id="7724085059277147439">{count,plural, =1{Elemento guardado en tu cuenta de Google ({email})}other{Elementos guardados en tu cuenta de Google ({email})}}</translation>
 <translation id="7729458878441927652">Para ver las pestañas de tus otros dispositivos, sincroniza tus pestañas y tu historial.</translation>
 <translation id="7730020510075123961">No, combinar datos</translation>
-<translation id="7730973429297233609">Selecciona la cuenta que quieras usar para guardar <ph name="FILENAME" /> (<ph name="FILESIZE" />)</translation>
 <translation id="7733646263819020771"><ph name="BOOKMRK_NAME" />. Solo en este dispositivo.</translation>
 <translation id="7744192722284567281">Encontrada en una brecha de seguridad de datos</translation>
 <translation id="7749790401023484470">No has seleccionado texto.</translation>
@@ -1834,7 +1834,6 @@
 <translation id="8428045167754449968">Ciudad/Localidad</translation>
 <translation id="8428213095426709021">Configuración</translation>
 <translation id="8428634594422941299">Entendido</translation>
-<translation id="8430694217306051839">Elige dónde guardar <ph name="FILENAME" /> (<ph name="FILE_SIZE" />)</translation>
 <translation id="8434837876193928924">Detalles del grupo de pestañas</translation>
 <translation id="8438566539970814960">Mejorar las búsquedas y la navegación</translation>
 <translation id="8439758443371991593">Ocultar Añadir a lista de lectura</translation>
diff --git a/ios/chrome/app/strings/resources/ios_strings_et.xtb b/ios/chrome/app/strings/resources/ios_strings_et.xtb
index 8e7ff65..c1d01fb 100644
--- a/ios/chrome/app/strings/resources/ios_strings_et.xtb
+++ b/ios/chrome/app/strings/resources/ios_strings_et.xtb
@@ -623,6 +623,7 @@
 <translation id="3596414637720633074">Blokeeri kolmanda osapoole küpsisefailid inkognito režiimis</translation>
 <translation id="3602260545951981695">Valige „Täiustatud kaitse“</translation>
 <translation id="3608436266458100337">Lugejarežiim</translation>
+<translation id="3610041351087301930">Peida lugeja</translation>
 <translation id="3622175633937495219">Otsinguajalugu (leiti <ph name="COUNT" />)</translation>
 <translation id="3625008969091706597">Tagasiliikumiseks saate pühkida serva.</translation>
 <translation id="362709345066740529">Siin saate kohandada omakaarte, voogu ja muud</translation>
@@ -964,7 +965,6 @@
 <translation id="4979397965658815378">Logige sisse oma Google'i kontoga, et näha oma järjehoidjaid, paroole, ajalugu ja muid seadeid kõigis oma seadmetes</translation>
 <translation id="4985921635659180565">Kui fail märgitakse kustutamiseks, ei saa seda tagasi võtta.</translation>
 <translation id="498624032394115435">Igaüks, kellel on link, saab muuta kõiki vahelehti.</translation>
-<translation id="4989065233040279145">Valige koht, kuhu <ph name="FILENAME" /> salvestada</translation>
 <translation id="499122600724363620"><ph name="NAME" />, <ph name="EMAIL" />, haldab teie organisatsioon.</translation>
 <translation id="4992255726304765516">Vahelehegrupi värv: <ph name="COLOR" /></translation>
 <translation id="5005498671520578047">Parooli kopeerimine</translation>
@@ -1064,6 +1064,7 @@
 <translation id="5431252637281434233">Teid logitakse välja</translation>
 <translation id="543338862236136125">Muuda parooli</translation>
 <translation id="5433691172869980887">Kasutajanimi on kopeeritud</translation>
+<translation id="5437480232219631455">Saate Gemini siin avada</translation>
 <translation id="5439618055789623719">Sisse logitud kasutajana <ph name="USER_EMAIL" /></translation>
 <translation id="5443636120437209490">Vaikimisi parem sirvimine</translation>
 <translation id="5444892875087332195">Järjehoidjad</translation>
@@ -1650,7 +1651,6 @@
 <translation id="7724085059277147439">{count,plural, =1{Üksus on salvestatud teie Google’i kontole {email}}other{Üksused on salvestatud teie Google’i kontole {email}}}</translation>
 <translation id="7729458878441927652">Teiste seadmete vahelehtede nägemiseks sünkroonige oma vahelehed ja ajalugu.</translation>
 <translation id="7730020510075123961">Ei, liida andmed</translation>
-<translation id="7730973429297233609">Valige konto, mida soovite faili <ph name="FILENAME" /> (<ph name="FILESIZE" />) salvestamiseks kasutada</translation>
 <translation id="7733646263819020771"><ph name="BOOKMRK_NAME" />. Ainult selles seadmes.</translation>
 <translation id="7744192722284567281">Ilmnes andmetega seotud rikkumises</translation>
 <translation id="7749790401023484470">Te ei valinud mingisugust teksti.</translation>
@@ -1834,7 +1834,6 @@
 <translation id="8428045167754449968">Linn</translation>
 <translation id="8428213095426709021">Seaded</translation>
 <translation id="8428634594422941299">Selge</translation>
-<translation id="8430694217306051839">Valige faili <ph name="FILENAME" /> (<ph name="FILE_SIZE" />) salvestamise koht</translation>
 <translation id="8434837876193928924">Vahelehegrupi üksikasjad</translation>
 <translation id="8438566539970814960">Otsingute ja sirvimise paremaks muutmine</translation>
 <translation id="8439758443371991593">Peida valik Lisa lugemisloendisse</translation>
diff --git a/ios/chrome/app/strings/resources/ios_strings_eu.xtb b/ios/chrome/app/strings/resources/ios_strings_eu.xtb
index 7a1dbe0..a58af6d 100644
--- a/ios/chrome/app/strings/resources/ios_strings_eu.xtb
+++ b/ios/chrome/app/strings/resources/ios_strings_eu.xtb
@@ -964,7 +964,6 @@
 <translation id="4979397965658815378">Hasi saioa Google-ko kontuarekin laster-markak, historia, pasahitzak eta bestelako ezarpenak gailu guztietan eskura izateko</translation>
 <translation id="4985921635659180565">Fitxategi bat ezabatzeko programatzen denean, ezin da bertan behera utzi.</translation>
 <translation id="498624032394115435">Esteka duten guztiek fitxa guztiak edita ditzakete.</translation>
-<translation id="4989065233040279145">Aukeratu non gorde nahi duzun <ph name="FILENAME" /></translation>
 <translation id="499122600724363620"><ph name="NAME" /> (<ph name="EMAIL" />), erakundeak kudeatzen du.</translation>
 <translation id="4992255726304765516">Fitxa talderako kolore <ph name="COLOR" /></translation>
 <translation id="5005498671520578047">Kopiatu pasahitza</translation>
@@ -1649,7 +1648,6 @@
 <translation id="7724085059277147439">{count,plural, =1{Gorde da elementua Google-ko kontuan ({email})}other{Gorde dira elementuak Google-ko kontuan ({email})}}</translation>
 <translation id="7729458878441927652">Beste gailuetako fitxak ikusteko, sinkronizatu fitxak eta historia.</translation>
 <translation id="7730020510075123961">Ez, bateratu datuak</translation>
-<translation id="7730973429297233609">Hautatu <ph name="FILENAME" /> (<ph name="FILESIZE" />) gordetzeko erabili nahi duzun kontua</translation>
 <translation id="7733646263819020771"><ph name="BOOKMRK_NAME" />. Gailu honetan soilik.</translation>
 <translation id="7744192722284567281">Datuen isilpekotasunaren urratze batean aurkitu da</translation>
 <translation id="7749790401023484470">Ez duzu hautatu testurik.</translation>
@@ -1833,7 +1831,6 @@
 <translation id="8428045167754449968">Hiria/Udalerria</translation>
 <translation id="8428213095426709021">Ezarpenak</translation>
 <translation id="8428634594422941299">Ados</translation>
-<translation id="8430694217306051839">Aukeratu non gorde nahi duzun <ph name="FILENAME" /> (<ph name="FILE_SIZE" />)</translation>
 <translation id="8434837876193928924">Fitxa taldearen xehetasunak</translation>
 <translation id="8438566539970814960">Hobetu bilaketak eta arakatze-jarduerak</translation>
 <translation id="8439758443371991593">Ezkutatu "Gehitu irakurketa-zerrendan"</translation>
diff --git a/ios/chrome/app/strings/resources/ios_strings_fa.xtb b/ios/chrome/app/strings/resources/ios_strings_fa.xtb
index b3760f8..330f0ffc 100644
--- a/ios/chrome/app/strings/resources/ios_strings_fa.xtb
+++ b/ios/chrome/app/strings/resources/ios_strings_fa.xtb
@@ -53,7 +53,7 @@
 <translation id="1207493287814084192">۵:۳۰ ب.ظ.</translation>
 <translation id="1217294226280635614">نمای تقسیم‌شده</translation>
 <translation id="1219674500290482172">اتصال به اینترنت امکان‌پذیر نیست.</translation>
-<translation id="1227113644794103810">برگه‌های غیرفعال</translation>
+<translation id="1227113644794103810">زبانه‌های غیرفعال</translation>
 <translation id="1231733316453485619">همگام‌سازی روشن شود؟</translation>
 <translation id="1253032109800629289">پنهان کردن «اعلان‌های دریافت پیگیری قیمت»</translation>
 <translation id="1258491128795710625">ویژگی‌های جدید</translation>
@@ -623,6 +623,7 @@
 <translation id="3596414637720633074">مسدود کردن کوکی‌های طرف سوم در «حالت ناشناس»</translation>
 <translation id="3602260545951981695">«محافظت بهبودیافته» را انتخاب کنید</translation>
 <translation id="3608436266458100337">حالت خواننده</translation>
+<translation id="3610041351087301930">پنهان کردن خواننده</translation>
 <translation id="3622175633937495219">سابقه «جستجو» (<ph name="COUNT" /> مورد پیدا شد)</translation>
 <translation id="3625008969091706597">برای رفتن به عقب، می‌توانید از لبه تند بکشید.</translation>
 <translation id="362709345066740529">کارت‌ها، فید، و موارد دیگر را اینجا سفارشی‌سازی کنید</translation>
@@ -964,7 +965,6 @@
 <translation id="4979397965658815378">‏برای دریافت نشانک‌ها، گذرواژه‌ها، سابقه و تنظیمات دیگر در همه دستگاه‌هایتان، به سیستم حساب Google خودتان وارد شوید</translation>
 <translation id="4985921635659180565">وقتی فایلی برای حذف زمان‌بندی شود، دیگر قابل‌لغو نیست.</translation>
 <translation id="498624032394115435">هر کسی پیوند را داشته باشد می‌تواند همه برگه‌ها را ویرایش کند.</translation>
-<translation id="4989065233040279145">انتخاب مکان ذخیره‌سازی <ph name="FILENAME" /></translation>
 <translation id="499122600724363620">‫<ph name="NAME" />،‏ <ph name="EMAIL" />، توسط سازمانتان مدیریت می‌شود.</translation>
 <translation id="4992255726304765516">رنگ <ph name="COLOR" /> گروه برگه</translation>
 <translation id="5005498671520578047">کپی گذرواژه</translation>
@@ -1064,6 +1064,7 @@
 <translation id="5431252637281434233">از سیستم خارج خواهید شد</translation>
 <translation id="543338862236136125">ویرایش گذرواژه</translation>
 <translation id="5433691172869980887">نام کاربری کپی شد</translation>
+<translation id="5437480232219631455">‏می‌توانید Gemini را از اینجا باز کنید</translation>
 <translation id="5439618055789623719">ورود به سیستم با <ph name="USER_EMAIL" /></translation>
 <translation id="5443636120437209490">مرور بهتر به‌طور پیش‌فرض</translation>
 <translation id="5444892875087332195">نشانک‌ها</translation>
@@ -1650,7 +1651,6 @@
 <translation id="7724085059277147439">{count,plural, =1{‏مورد در «حساب Google» شما ({email}) ذخیره شد}one{‏موارد در «حساب Google» شما ({email}) ذخیره شد}other{‏موارد در «حساب Google» شما ({email}) ذخیره شد}}</translation>
 <translation id="7729458878441927652">برای دیدن برگه‌های دستگاه‌های دیگرتان، برگه‌ها و سابقه را همگام‌سازی کنید.</translation>
 <translation id="7730020510075123961">نه، داده‌ها ادغام شود</translation>
-<translation id="7730973429297233609">حسابی را که می‌خواهید برای ذخیره کردن <ph name="FILENAME" />‏ - <ph name="FILESIZE" /> استفاده شود انتخاب کنید</translation>
 <translation id="7733646263819020771"><ph name="BOOKMRK_NAME" />. فقط در این دستگاه.</translation>
 <translation id="7744192722284567281">در نقض داده پیدا شد</translation>
 <translation id="7749790401023484470">هیچ نوشتاری را انتخاب نکردید.</translation>
@@ -1834,7 +1834,6 @@
 <translation id="8428045167754449968">شهر / شهرک</translation>
 <translation id="8428213095426709021">تنظیمات</translation>
 <translation id="8428634594422941299">متوجه شدم</translation>
-<translation id="8430694217306051839">انتخاب مکان ذخیره‌سازی <ph name="FILENAME" /> (<ph name="FILE_SIZE" />)</translation>
 <translation id="8434837876193928924">جزئیات گروه برگه</translation>
 <translation id="8438566539970814960">بهبود جستجوها و مرور</translation>
 <translation id="8439758443371991593">پنهان کردن «افزودن به فهرست خواندن»</translation>
diff --git a/ios/chrome/app/strings/resources/ios_strings_fi.xtb b/ios/chrome/app/strings/resources/ios_strings_fi.xtb
index db29d9ff..c0060a3 100644
--- a/ios/chrome/app/strings/resources/ios_strings_fi.xtb
+++ b/ios/chrome/app/strings/resources/ios_strings_fi.xtb
@@ -623,6 +623,7 @@
 <translation id="3596414637720633074">Estä kolmannen osapuolen evästeet incognito-tilassa</translation>
 <translation id="3602260545951981695">Valitse "Parannettu suojaus"</translation>
 <translation id="3608436266458100337">Lukijatila</translation>
+<translation id="3610041351087301930">Piilota lukijatila</translation>
 <translation id="3622175633937495219">Hae historiasta (<ph name="COUNT" /> löytyi)</translation>
 <translation id="3625008969091706597">Voit siirtyä taaksepäin pyyhkäisemällä sivun reunaa.</translation>
 <translation id="362709345066740529">Muokkaa kortteja, fiidiä ja muita ominaisuuksia täällä</translation>
@@ -964,7 +965,6 @@
 <translation id="4979397965658815378">Kirjaudu Google-tilillesi, niin voit käyttää kirjanmerkkejäsi, salasanojasi, historiaasi ja muuta Chrome-sisältöäsi kaikilla laitteillasi.</translation>
 <translation id="4985921635659180565">Kun tiedoston poistaminen on ajoitettu, sitä ei voi perua.</translation>
 <translation id="498624032394115435">Kaikki linkin saaneet voivat muokata kaikkia välilehtiä.</translation>
-<translation id="4989065233040279145">Valitse tallennuspaikka tiedostolle: <ph name="FILENAME" /></translation>
 <translation id="499122600724363620"><ph name="NAME" />, <ph name="EMAIL" />, organisaatiosi hallinnoima.</translation>
 <translation id="4992255726304765516">Välilehtiryhmän väri on <ph name="COLOR" /></translation>
 <translation id="5005498671520578047">Kopioi salasana</translation>
@@ -1064,6 +1064,7 @@
 <translation id="5431252637281434233">Sinut kirjataan ulos</translation>
 <translation id="543338862236136125">Muokkaa salasanaa</translation>
 <translation id="5433691172869980887">Käyttäjänimi kopioitu</translation>
+<translation id="5437480232219631455">Voit avata Geminin täältä</translation>
 <translation id="5439618055789623719"><ph name="USER_EMAIL" /> on kirjautunut sisään</translation>
 <translation id="5443636120437209490">Parempi selailu oletuksena</translation>
 <translation id="5444892875087332195">Kirjanmerkit</translation>
@@ -1650,7 +1651,6 @@
 <translation id="7724085059277147439">{count,plural, =1{Kohde tallennettu Google-tilillesi, {email}}other{Kohteet tallennettu Google-tilillesi, {email}}}</translation>
 <translation id="7729458878441927652">Voit nähdä muiden laitteiden välilehdet synkronoimalla välilehdet ja historian.</translation>
 <translation id="7730020510075123961">Ei, yhdistä data</translation>
-<translation id="7730973429297233609">Valitse tili, jolle <ph name="FILENAME" /> tallennetaan – <ph name="FILESIZE" /></translation>
 <translation id="7733646263819020771"><ph name="BOOKMRK_NAME" />. Vain tällä laitteella.</translation>
 <translation id="7744192722284567281">Kuului tietosuojaloukkaukseen</translation>
 <translation id="7749790401023484470">Et valinnut tekstiä.</translation>
@@ -1834,7 +1834,6 @@
 <translation id="8428045167754449968">Kaupunki</translation>
 <translation id="8428213095426709021">Asetukset</translation>
 <translation id="8428634594422941299">Selvä</translation>
-<translation id="8430694217306051839">Valitse tallennuspaikka tiedostolle: <ph name="FILENAME" /> (<ph name="FILE_SIZE" />)</translation>
 <translation id="8434837876193928924">Välilehtiryhmän tiedot</translation>
 <translation id="8438566539970814960">Paranna hakuja ja selausta</translation>
 <translation id="8439758443371991593">Piilota "Lisää lukulistalle"</translation>
diff --git a/ios/chrome/app/strings/resources/ios_strings_fil.xtb b/ios/chrome/app/strings/resources/ios_strings_fil.xtb
index eb19e85..f2cd5048 100644
--- a/ios/chrome/app/strings/resources/ios_strings_fil.xtb
+++ b/ios/chrome/app/strings/resources/ios_strings_fil.xtb
@@ -623,6 +623,7 @@
 <translation id="3596414637720633074">I-block ang third-party na cookies sa Incognito</translation>
 <translation id="3602260545951981695">Piliin ang "Pinaigting na Proteksyon"</translation>
 <translation id="3608436266458100337">Reader mode</translation>
+<translation id="3610041351087301930">I-hide ang Reader</translation>
 <translation id="3622175633937495219">History ng Paghahanap (<ph name="COUNT" /> ang nakita)</translation>
 <translation id="3625008969091706597">Puwede mong i-swipe ang gilid na bahagi para bumalik.</translation>
 <translation id="362709345066740529">I-customize dito ang iyong mga card, feed, at higit pa</translation>
@@ -964,7 +965,6 @@
 <translation id="4979397965658815378">Mag-sign in gamit ang Google Account mo para makuha ang iyong mga bookmark, password, history at iba pang mga setting sa lahat ng device mo</translation>
 <translation id="4985921635659180565">Kapag naiskedyul nang i-delete ang isang file, hindi na ito makakansela.</translation>
 <translation id="498624032394115435">Mae-edit ng sinumang may link ang lahat ng tab.</translation>
-<translation id="4989065233040279145">Piliin kung saan ise-save ang <ph name="FILENAME" /></translation>
 <translation id="499122600724363620"><ph name="NAME" />, <ph name="EMAIL" />, pinapamahalaan ng iyong organisasyon.</translation>
 <translation id="4992255726304765516">Kulay <ph name="COLOR" /> na grupo ng tab</translation>
 <translation id="5005498671520578047">Kopyahin password</translation>
@@ -1064,6 +1064,7 @@
 <translation id="5431252637281434233">Masa-sign out ka</translation>
 <translation id="543338862236136125">I-edit ang password</translation>
 <translation id="5433691172869980887">Nakopya ang username</translation>
+<translation id="5437480232219631455">Puwede mong buksan ang Gemini dito</translation>
 <translation id="5439618055789623719">Naka-sign in bilang <ph name="USER_EMAIL" /></translation>
 <translation id="5443636120437209490">Mas mahusay na pag-browse bilang default</translation>
 <translation id="5444892875087332195">Mga Bookmark</translation>
@@ -1650,7 +1651,6 @@
 <translation id="7724085059277147439">{count,plural, =1{Na-save na ang item sa iyong Google Account, {email}}one{Na-save na ang mga item sa iyong Google Account, {email}}other{Na-save na ang mga item sa iyong Google Account, {email}}}</translation>
 <translation id="7729458878441927652">Para makita ang mga tab mula sa iba mong device, i-sync ang iyong mga tab at history.</translation>
 <translation id="7730020510075123961">Hindi, i-merge ang data</translation>
-<translation id="7730973429297233609">Piliin ang account na gusto mong gamitin para i-save ang <ph name="FILENAME" /> - <ph name="FILESIZE" /></translation>
 <translation id="7733646263819020771"><ph name="BOOKMRK_NAME" />. Sa device lang na ito.</translation>
 <translation id="7744192722284567281">Nakita sa paglabag sa data</translation>
 <translation id="7749790401023484470">Wala kang piniling anumang text.</translation>
@@ -1834,7 +1834,6 @@
 <translation id="8428045167754449968">Lungsod / Bayan</translation>
 <translation id="8428213095426709021">Mga Setting</translation>
 <translation id="8428634594422941299">OK</translation>
-<translation id="8430694217306051839">Piliin kung saan ise-save ang <ph name="FILENAME" /> (<ph name="FILE_SIZE" />)</translation>
 <translation id="8434837876193928924">Mga detalye ng grupo ng tab</translation>
 <translation id="8438566539970814960">Mas pahusayin ang mga paghahanap at pag-browse</translation>
 <translation id="8439758443371991593">I-hide ang Idagdag sa Listahan ng Babasahin</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 ae1d641..cdc51a8 100644
--- a/ios/chrome/app/strings/resources/ios_strings_fr-CA.xtb
+++ b/ios/chrome/app/strings/resources/ios_strings_fr-CA.xtb
@@ -623,6 +623,7 @@
 <translation id="3596414637720633074">Bloquer les témoins tiers en navigation privée</translation>
 <translation id="3602260545951981695">Choisissez « Protection renforcée »</translation>
 <translation id="3608436266458100337">Mode Lecteur</translation>
+<translation id="3610041351087301930">Masquer le lecteur</translation>
 <translation id="3622175633937495219">Historique de recherche (<ph name="COUNT" /> éléments trouvés)</translation>
 <translation id="3625008969091706597">Vous pouvez balayer l'écran à partir du bord pour reculer.</translation>
 <translation id="362709345066740529">Personnalisez vos cartes, votre flux et bien plus ici</translation>
@@ -964,7 +965,6 @@
 <translation id="4979397965658815378">Connectez-vous à votre compte Google pour synchroniser vos favoris, vos mots de passe, votre historique et vos autres paramètres sur tous vos appareils</translation>
 <translation id="4985921635659180565">Une fois que la suppression d'un fichier est programmée, elle ne peut plus être annulée.</translation>
 <translation id="498624032394115435">Toute personne disposant du lien peut modifier tous les onglets.</translation>
-<translation id="4989065233040279145">Choisissez l'endroit où enregistrer <ph name="FILENAME" /></translation>
 <translation id="499122600724363620"><ph name="NAME" />, <ph name="EMAIL" />, géré par votre organisation.</translation>
 <translation id="4992255726304765516">Couleur du groupe d'onglets : <ph name="COLOR" /></translation>
 <translation id="5005498671520578047">Copier mot de passe</translation>
@@ -1064,6 +1064,7 @@
 <translation id="5431252637281434233">Vous serez déconnecté</translation>
 <translation id="543338862236136125">Modifier le mot de passe</translation>
 <translation id="5433691172869980887">Nom d'utilisateur copié</translation>
+<translation id="5437480232219631455">Vous pouvez ouvrir Gemini ici</translation>
 <translation id="5439618055789623719">Connecté en tant que <ph name="USER_EMAIL" /></translation>
 <translation id="5443636120437209490">Une meilleure navigation par défaut</translation>
 <translation id="5444892875087332195">Favoris</translation>
@@ -1650,7 +1651,6 @@
 <translation id="7724085059277147439">{count,plural, =1{Élément enregistré dans votre compte Google, {email}}one{Élément enregistré dans votre compte Google, {email}}other{Éléments enregistrés dans votre compte Google, {email}}}</translation>
 <translation id="7729458878441927652">Pour voir les onglets de vos autres appareils, synchronisez vos onglets et votre historique.</translation>
 <translation id="7730020510075123961">Non, fusionner les données</translation>
-<translation id="7730973429297233609">Sélectionnez le compte que vous souhaitez utiliser pour enregistrer <ph name="FILENAME" /> – <ph name="FILESIZE" /></translation>
 <translation id="7733646263819020771"><ph name="BOOKMRK_NAME" />. Uniquement sur cet appareil.</translation>
 <translation id="7744192722284567281">Trouvé dans une violation de données</translation>
 <translation id="7749790401023484470">Vous n'avez pas sélectionné de texte.</translation>
@@ -1834,7 +1834,6 @@
 <translation id="8428045167754449968">Ville</translation>
 <translation id="8428213095426709021">Paramètres</translation>
 <translation id="8428634594422941299">OK</translation>
-<translation id="8430694217306051839">Choisissez l'endroit où enregistrer <ph name="FILENAME" /> (<ph name="FILE_SIZE" />)</translation>
 <translation id="8434837876193928924">Détails du groupe d'onglets</translation>
 <translation id="8438566539970814960">Amélioration des recherches et de la navigation</translation>
 <translation id="8439758443371991593">Masquer Ajouter à la Liste de lecture</translation>
diff --git a/ios/chrome/app/strings/resources/ios_strings_fr.xtb b/ios/chrome/app/strings/resources/ios_strings_fr.xtb
index d6625f20..7ca77a7b 100644
--- a/ios/chrome/app/strings/resources/ios_strings_fr.xtb
+++ b/ios/chrome/app/strings/resources/ios_strings_fr.xtb
@@ -623,6 +623,7 @@
 <translation id="3596414637720633074">Bloquer les cookies tiers en mode navigation privée</translation>
 <translation id="3602260545951981695">Sélectionnez "Protection renforcée"</translation>
 <translation id="3608436266458100337">Mode Lecteur</translation>
+<translation id="3610041351087301930">Masquer le lecteur</translation>
 <translation id="3622175633937495219">Rechercher dans l'historique (nombre de résultats : <ph name="COUNT" />)</translation>
 <translation id="3625008969091706597">Vous pouvez balayer l'écran à partir du bord pour revenir en arrière.</translation>
 <translation id="362709345066740529">Personnalisez ici vos cartes, votre flux et plus</translation>
@@ -964,7 +965,6 @@
 <translation id="4979397965658815378">Connectez-vous à votre compte Google pour synchroniser favoris, mots de passe, historique et autres paramètres sur tous vos appareils.</translation>
 <translation id="4985921635659180565">Une fois que la suppression d'un fichier a été programmée, elle ne peut plus être annulée.</translation>
 <translation id="498624032394115435">Toutes les personnes disposant du lien peuvent modifier tous les onglets.</translation>
-<translation id="4989065233040279145">Choisissez où enregistrer <ph name="FILENAME" /></translation>
 <translation id="499122600724363620"><ph name="NAME" />, <ph name="EMAIL" />, géré par votre organisation.</translation>
 <translation id="4992255726304765516">Couleur du groupe d'onglets <ph name="COLOR" /></translation>
 <translation id="5005498671520578047">Copier mot de passe</translation>
@@ -1064,6 +1064,7 @@
 <translation id="5431252637281434233">Vous allez être déconnecté</translation>
 <translation id="543338862236136125">Modifier le mot de passe</translation>
 <translation id="5433691172869980887">Nom d'utilisateur copié</translation>
+<translation id="5437480232219631455">Vous pouvez ouvrir Gemini ici</translation>
 <translation id="5439618055789623719">Connecté en tant que <ph name="USER_EMAIL" /></translation>
 <translation id="5443636120437209490">Une meilleure navigation par défaut</translation>
 <translation id="5444892875087332195">Favoris</translation>
@@ -1650,7 +1651,6 @@
 <translation id="7724085059277147439">{count,plural, =1{Élément enregistré dans votre compte Google, {email}}one{Élément enregistré dans votre compte Google, {email}}other{Éléments enregistrés dans votre compte Google, {email}}}</translation>
 <translation id="7729458878441927652">Pour voir les onglets de vos autres appareils, synchronisez vos onglets et l'historique.</translation>
 <translation id="7730020510075123961">Non, fusionner les données</translation>
-<translation id="7730973429297233609">Sélectionnez le compte que vous souhaitez utiliser pour enregistrer <ph name="FILENAME" /> - <ph name="FILESIZE" /></translation>
 <translation id="7733646263819020771"><ph name="BOOKMRK_NAME" />. Uniquement sur cet appareil.</translation>
 <translation id="7744192722284567281">Détecté lors d'une violation des données</translation>
 <translation id="7749790401023484470">Vous n'avez pas sélectionné de texte.</translation>
@@ -1834,7 +1834,6 @@
 <translation id="8428045167754449968">Ville</translation>
 <translation id="8428213095426709021">Paramètres</translation>
 <translation id="8428634594422941299">OK</translation>
-<translation id="8430694217306051839">Choisissez où enregistrer <ph name="FILENAME" /> (<ph name="FILE_SIZE" />)</translation>
 <translation id="8434837876193928924">Détails du groupe d'onglets</translation>
 <translation id="8438566539970814960">Améliorer les recherches et la navigation</translation>
 <translation id="8439758443371991593">Masquer "Ajouter à la liste de lecture"</translation>
diff --git a/ios/chrome/app/strings/resources/ios_strings_gl.xtb b/ios/chrome/app/strings/resources/ios_strings_gl.xtb
index b6275c6..847498d 100644
--- a/ios/chrome/app/strings/resources/ios_strings_gl.xtb
+++ b/ios/chrome/app/strings/resources/ios_strings_gl.xtb
@@ -623,6 +623,7 @@
 <translation id="3596414637720633074">Bloquear cookies de terceiros no modo de incógnito</translation>
 <translation id="3602260545951981695">Escolle Protección mellorada</translation>
 <translation id="3608436266458100337">Modo de lector</translation>
+<translation id="3610041351087301930">Ocultar lector</translation>
 <translation id="3622175633937495219">Historial de busca (coincidencias atopadas: <ph name="COUNT" />)</translation>
 <translation id="3625008969091706597">Podes pasar o dedo polo bordo para retroceder.</translation>
 <translation id="362709345066740529">Personaliza as tarxetas, o feed e moito máis aquí</translation>
@@ -964,7 +965,6 @@
 <translation id="4979397965658815378">Inicia sesión na túa conta de Google para ter os marcadores, os contrasinais, o historial e o resto das opcións de configuración en todos os teus dispositivos.</translation>
 <translation id="4985921635659180565">Unha vez programada, a eliminación dun ficheiro non se pode cancelar.</translation>
 <translation id="498624032394115435">Calquera persoa que teña a ligazón poderá editar todas as pestanas.</translation>
-<translation id="4989065233040279145">Escolle onde gardar <ph name="FILENAME" /></translation>
 <translation id="499122600724363620"><ph name="NAME" /> (<ph name="EMAIL" />), perfil xestionado pola túa organización.</translation>
 <translation id="4992255726304765516">Tocar a cor do grupo <ph name="COLOR" /></translation>
 <translation id="5005498671520578047">Copiar contrasinal</translation>
@@ -1064,6 +1064,7 @@
 <translation id="5431252637281434233">Pecharase a túa sesión</translation>
 <translation id="543338862236136125">Editar contrasinal</translation>
 <translation id="5433691172869980887">Copiouse o nome de usuario</translation>
+<translation id="5437480232219631455">Podes abrir Gemini aquí</translation>
 <translation id="5439618055789623719">Tes a sesión iniciada como <ph name="USER_EMAIL" /></translation>
 <translation id="5443636120437209490">Mellor navegación de forma predeterminada</translation>
 <translation id="5444892875087332195">Marcadores</translation>
@@ -1650,7 +1651,6 @@
 <translation id="7724085059277147439">{count,plural, =1{O elemento gardouse na túa Conta de Google, {email}}other{Os elementos gardáronse na túa Conta de Google, {email}}}</translation>
 <translation id="7729458878441927652">Para ver as pestanas doutros dispositivos, sincroniza as pestanas e o historial.</translation>
 <translation id="7730020510075123961">Non, combinar datos</translation>
-<translation id="7730973429297233609">Selecciona a conta que queres usar para gardar <ph name="FILENAME" /> (<ph name="FILESIZE" />)</translation>
 <translation id="7733646263819020771"><ph name="BOOKMRK_NAME" />. Só neste dispositivo.</translation>
 <translation id="7744192722284567281">O contrasinal viuse implicado nunha violación da seguranza dos datos</translation>
 <translation id="7749790401023484470">Non seleccionaches ningún texto.</translation>
@@ -1834,7 +1834,6 @@
 <translation id="8428045167754449968">Cidade/localidade</translation>
 <translation id="8428213095426709021">Configuración</translation>
 <translation id="8428634594422941299">De acordo</translation>
-<translation id="8430694217306051839">Escolle onde gardar <ph name="FILENAME" /> (<ph name="FILE_SIZE" />)</translation>
 <translation id="8434837876193928924">Detalles do grupo de pestanas</translation>
 <translation id="8438566539970814960">Mellorar as buscas e a navegación</translation>
 <translation id="8439758443371991593">Ocultar Engadir á lista de lectura</translation>
diff --git a/ios/chrome/app/strings/resources/ios_strings_gu.xtb b/ios/chrome/app/strings/resources/ios_strings_gu.xtb
index 6c2f873..1e094e9 100644
--- a/ios/chrome/app/strings/resources/ios_strings_gu.xtb
+++ b/ios/chrome/app/strings/resources/ios_strings_gu.xtb
@@ -623,6 +623,7 @@
 <translation id="3596414637720633074">ત્રીજા પક્ષની કુકીને છૂપા મોડમાં બ્લૉક કરો</translation>
 <translation id="3602260545951981695">"વધારેલું સંરક્ષણ" પસંદ કરો</translation>
 <translation id="3608436266458100337">રીડર મોડ</translation>
+<translation id="3610041351087301930">રીડર છુપાવો</translation>
 <translation id="3622175633937495219">શોધ ઇતિહાસ (<ph name="COUNT" /> મળ્યાં)</translation>
 <translation id="3625008969091706597">તમે પાછળ જવા માટે, કિનારીને સ્વાઇપ કરી શકો છો.</translation>
 <translation id="362709345066740529">અહીં તમારા કાર્ડ, ફીડ અને બીજું ઘણું કસ્ટમાઇઝ કરો</translation>
@@ -964,7 +965,6 @@
 <translation id="4979397965658815378">તમારા બુકમાર્ક, પાસવર્ડ, ઇતિહાસ અને બીજા સેટિંગને તમારા બધા ડિવાઇસ પર મેળવવા માટે તમારા Google એકાઉન્ટ સાથે સાઇન ઇન કરો.</translation>
 <translation id="4985921635659180565">એકવાર ફાઇલ ડિલીટ થવા માટે શેડ્યૂલ થાય તે પછી, તેને રદ કરી શકાતી નથી.</translation>
 <translation id="498624032394115435">લિંક ધરાવતી કોઈપણ વ્યક્તિ બધા ટૅબમાં ફેરફારો કરી શકે છે.</translation>
-<translation id="4989065233040279145"><ph name="FILENAME" />ને સાચવવા માટેનું લોકેશન પસંદ કરો</translation>
 <translation id="499122600724363620"><ph name="NAME" />, <ph name="EMAIL" />, તમારી સંસ્થા દ્વારા મેનેજ કરવામાં આવે છે.</translation>
 <translation id="4992255726304765516">ટૅબના ગ્રૂપનો રંગ <ph name="COLOR" /></translation>
 <translation id="5005498671520578047">પાસવર્ડની કૉપિ કરો</translation>
@@ -1064,6 +1064,7 @@
 <translation id="5431252637281434233">તમને સાઇન આઉટ કરવામાં આવશે</translation>
 <translation id="543338862236136125">પાસવર્ડમાં ફેરફાર કરો</translation>
 <translation id="5433691172869980887">વપરાશકર્તાનામ કૉપિ કર્યું</translation>
+<translation id="5437480232219631455">તમે અહીં Gemini ખોલી શકો છો</translation>
 <translation id="5439618055789623719"><ph name="USER_EMAIL" /> તરીકે સાઇન ઇન થયા</translation>
 <translation id="5443636120437209490">ડિફૉલ્ટ તરીકે બહેતર બ્રાઉઝિંગ</translation>
 <translation id="5444892875087332195">બુકમાર્ક</translation>
@@ -1650,7 +1651,6 @@
 <translation id="7724085059277147439">{count,plural, =1{આઇટમને તમારા Google એકાઉન્ટ, {email}માં સાચવી}one{આઇટમને તમારા Google એકાઉન્ટ, {email}માં સાચવી}other{આઇટમને તમારા Google એકાઉન્ટ, {email}માં સાચવી}}</translation>
 <translation id="7729458878441927652">તમારા અન્ય ડિવાઇસમાંના ટૅબ જોવા માટે, તમારા ટૅબ અને ઇતિહાસ સિંક કરો.</translation>
 <translation id="7730020510075123961">ના, ડેટા મર્જ કરો</translation>
-<translation id="7730973429297233609">જેનો ઉપયોગ કરીને તમે <ph name="FILENAME" /> - <ph name="FILESIZE" />ને સાચવવા માગો છો, તે એકાઉન્ટ પસંદ કરો</translation>
 <translation id="7733646263819020771"><ph name="BOOKMRK_NAME" />. માત્ર આ જ ડિવાઇસ પર.</translation>
 <translation id="7744192722284567281">ડેટા ઉલ્લંઘનમાં મળ્યો</translation>
 <translation id="7749790401023484470">તમે કોઈ ટેક્સ્ટ પસંદ કરેલી નથી.</translation>
@@ -1834,7 +1834,6 @@
 <translation id="8428045167754449968">શહેર/નગર</translation>
 <translation id="8428213095426709021">સેટિંગ</translation>
 <translation id="8428634594422941299">સમજાઈ ગયું</translation>
-<translation id="8430694217306051839"><ph name="FILENAME" /> (<ph name="FILE_SIZE" />)ને સાચવવા માટેનું લોકેશન પસંદ કરો</translation>
 <translation id="8434837876193928924">ટૅબના ગ્રૂપની વિગતો</translation>
 <translation id="8438566539970814960">શોધ અને બ્રાઉઝિંગ વધુ સારું બનાવો</translation>
 <translation id="8439758443371991593">'વાંચન સૂચિમાં ઉમેરો' છુપાવો</translation>
diff --git a/ios/chrome/app/strings/resources/ios_strings_hi.xtb b/ios/chrome/app/strings/resources/ios_strings_hi.xtb
index 136eb7b..052fdef9 100644
--- a/ios/chrome/app/strings/resources/ios_strings_hi.xtb
+++ b/ios/chrome/app/strings/resources/ios_strings_hi.xtb
@@ -623,6 +623,7 @@
 <translation id="3596414637720633074">गुप्त मोड के दौरान तीसरे पक्ष की कुकी को ब्लॉक करें</translation>
 <translation id="3602260545951981695">"बेहतर सुरक्षा मोड" चुनें</translation>
 <translation id="3608436266458100337">रीडर मोड</translation>
+<translation id="3610041351087301930">रीडर मोड छिपाएं</translation>
 <translation id="3622175633937495219">खोज इतिहास (<ph name="COUNT" /> नतीजे मिले)</translation>
 <translation id="3625008969091706597">पिछले टैब पर वापस जाने के लिए, किनारे पर स्वाइप करें.</translation>
 <translation id="362709345066740529">यहां अपने कार्ड, फ़ीड वगैरह को अपनी पसंद के मुताबिक बनाएं</translation>
@@ -964,7 +965,6 @@
 <translation id="4979397965658815378">अपने सभी डिवाइस पर बुकमार्क, पासवर्ड, इतिहास और दूसरी तरह की सेटिंग पाने के लिए Google खाते से साइन इन करें.</translation>
 <translation id="4985921635659180565">फ़ाइल मिटाने के लिए शेड्यूल करने के बाद, इसे रद्द नहीं किया जा सकता.</translation>
 <translation id="498624032394115435">जिन लोगों के पास यह लिंक है वे हर टैब में बदलाव कर सकते हैं.</translation>
-<translation id="4989065233040279145"><ph name="FILENAME" /> को सेव करने की जगह चुनें</translation>
 <translation id="499122600724363620"><ph name="NAME" />, <ph name="EMAIL" /> को आपका संगठन मैनेज करता है.</translation>
 <translation id="4992255726304765516">टैब ग्रुप का रंग <ph name="COLOR" /></translation>
 <translation id="5005498671520578047">पासवर्ड कॉपी करें</translation>
@@ -1064,6 +1064,7 @@
 <translation id="5431252637281434233">आपको साइन आउट कर दिया जाएगा</translation>
 <translation id="543338862236136125">पासवर्ड में बदलाव करें</translation>
 <translation id="5433691172869980887">उपयोगकर्ता नाम कॉपी किया गया</translation>
+<translation id="5437480232219631455">आपके पास यहां Gemini खोलने का विकल्प है</translation>
 <translation id="5439618055789623719">आपने <ph name="USER_EMAIL" /> के तौर पर साइन इन किया है</translation>
 <translation id="5443636120437209490">बेहतर ब्राउज़िंग करने के लिए इसे डिफ़ॉल्ट ब्राउज़र के तौर पर सेट करें</translation>
 <translation id="5444892875087332195">बुकमार्क</translation>
@@ -1650,7 +1651,6 @@
 <translation id="7724085059277147439">{count,plural, =1{आपके Google खाते {email} में सेव किया गया आइटम}one{आपके Google खाते {email} में सेव किया गया आइटम}other{आपके Google खाते {email} में सेव किए गए आइटम}}</translation>
 <translation id="7729458878441927652">अपने अन्य डिवाइसों के टैब देखने के लिए, टैब और इतिहास सिंक करें.</translation>
 <translation id="7730020510075123961">नहीं, डेटा मर्ज करें</translation>
-<translation id="7730973429297233609">वह खाता चुनें जिसका इस्तेमाल करके आपको <ph name="FILENAME" /> - <ph name="FILESIZE" /> को सेव करना है</translation>
 <translation id="7733646263819020771"><ph name="BOOKMRK_NAME" />. सिर्फ़ इस डिवाइस पर.</translation>
 <translation id="7744192722284567281">यह पासवर्ड आपके हैक हो चुके डेटा में शामिल है</translation>
 <translation id="7749790401023484470">आपने कोई टेक्स्ट नहीं चुना.</translation>
@@ -1834,7 +1834,6 @@
 <translation id="8428045167754449968">शहर / कस्बा</translation>
 <translation id="8428213095426709021">सेटिंग</translation>
 <translation id="8428634594422941299">समझ लिया</translation>
-<translation id="8430694217306051839"><ph name="FILENAME" /> (<ph name="FILE_SIZE" />) को सेव करने की जगह चुनें</translation>
 <translation id="8434837876193928924">टैब ग्रुप की जानकारी</translation>
 <translation id="8438566539970814960">खोज और ब्राउज़िंग की सुविधा को बेहतर बनाएं</translation>
 <translation id="8439758443371991593">'रीडिंग लिस्ट में जोड़ें' विकल्प को छिपाएं</translation>
diff --git a/ios/chrome/app/strings/resources/ios_strings_hr.xtb b/ios/chrome/app/strings/resources/ios_strings_hr.xtb
index 694d7c5..8cb98bea 100644
--- a/ios/chrome/app/strings/resources/ios_strings_hr.xtb
+++ b/ios/chrome/app/strings/resources/ios_strings_hr.xtb
@@ -623,6 +623,7 @@
 <translation id="3596414637720633074">Blokiranje kolačića trećih strana u anonimnom načinu</translation>
 <translation id="3602260545951981695">Odaberite Poboljšana zaštita</translation>
 <translation id="3608436266458100337">Način čitača</translation>
+<translation id="3610041351087301930">Sakrij čitač</translation>
 <translation id="3622175633937495219">Pretražite povijest (pronađeno: <ph name="COUNT" />)</translation>
 <translation id="3625008969091706597">Možete prijeći prstom po rubu da biste se vratili.</translation>
 <translation id="362709345066740529">Ovdje prilagodite svoje kartice, feed i drugo</translation>
@@ -964,7 +965,6 @@
 <translation id="4979397965658815378">Prijavite se Google računom da biste imali pristup svojim oznakama, zaporkama, povijesti i ostalim postavkama na svim svojim uređajima</translation>
 <translation id="4985921635659180565">Nakon što se datoteka zakaže za brisanje, to se ne može otkazati.</translation>
 <translation id="498624032394115435">Svatko s vezom može uređivati sve kartice.</translation>
-<translation id="4989065233040279145">Odaberite mjesto spremanja datoteke <ph name="FILENAME" /></translation>
 <translation id="499122600724363620"><ph name="NAME" />, <ph name="EMAIL" />, pod upravljanjem vaše organizacije.</translation>
 <translation id="4992255726304765516">Boja grupe kartica <ph name="COLOR" /></translation>
 <translation id="5005498671520578047">Kopiranje zaporke</translation>
@@ -1064,6 +1064,7 @@
 <translation id="5431252637281434233">Odjavit ćete se</translation>
 <translation id="543338862236136125">Uredite zaporku</translation>
 <translation id="5433691172869980887">Korisničko je ime kopirano</translation>
+<translation id="5437480232219631455">Ovdje možete otvoriti Gemini</translation>
 <translation id="5439618055789623719">Prijavljeni ste kao <ph name="USER_EMAIL" /></translation>
 <translation id="5443636120437209490">Bolje pregledavanje prema zadanim postavkama</translation>
 <translation id="5444892875087332195">Oznake</translation>
@@ -1650,7 +1651,6 @@
 <translation id="7724085059277147439">{count,plural, =1{Stavka je spremljena na vaš Google račun, {email}}one{Stavke su spremljene na vaš Google račun, {email}}few{Stavke su spremljene na vaš Google račun, {email}}other{Stavke su spremljene na vaš Google račun, {email}}}</translation>
 <translation id="7729458878441927652">Kako biste vidjeli kartice s drugih uređaja, sinkronizirajte kartice i povijest.</translation>
 <translation id="7730020510075123961">Ne, spoji podatke</translation>
-<translation id="7730973429297233609">Odaberite račun koji želite upotrijebiti za spremanje datoteke <ph name="FILENAME" /> – <ph name="FILESIZE" /></translation>
 <translation id="7733646263819020771"><ph name="BOOKMRK_NAME" />. Samo na ovom uređaju.</translation>
 <translation id="7744192722284567281">Pronađeno u povredi podataka</translation>
 <translation id="7749790401023484470">Niste odabrali nikakav tekst.</translation>
@@ -1834,7 +1834,6 @@
 <translation id="8428045167754449968">Grad/mjesto</translation>
 <translation id="8428213095426709021">Postavke</translation>
 <translation id="8428634594422941299">Shvaćam</translation>
-<translation id="8430694217306051839">Odaberite mjesto spremanja datoteke <ph name="FILENAME" /> (<ph name="FILE_SIZE" />)</translation>
 <translation id="8434837876193928924">Pojedinosti o grupi kartica</translation>
 <translation id="8438566539970814960">Poboljšaj pretraživanje i pregledavanje</translation>
 <translation id="8439758443371991593">Sakrij stavku Dodaj na popis za čitanje</translation>
diff --git a/ios/chrome/app/strings/resources/ios_strings_hu.xtb b/ios/chrome/app/strings/resources/ios_strings_hu.xtb
index cf5b321..5d87a05e 100644
--- a/ios/chrome/app/strings/resources/ios_strings_hu.xtb
+++ b/ios/chrome/app/strings/resources/ios_strings_hu.xtb
@@ -964,7 +964,6 @@
 <translation id="4979397965658815378">Jelentkezzen be Google-fiókjába, így könyvjelzőit, előzményeit, jelszavait és más beállításait az összes eszközén elérheti.</translation>
 <translation id="4985921635659180565">A fájlok törlésének ütemezése után a törlés már nem vonható vissza.</translation>
 <translation id="498624032394115435">A link birtokában bárki szerkesztheti az összes lapot.</translation>
-<translation id="4989065233040279145"><ph name="FILENAME" /> mentési helyének kiválasztása</translation>
 <translation id="499122600724363620"><ph name="NAME" />, <ph name="EMAIL" />, az Ön szervezete kezeli.</translation>
 <translation id="4992255726304765516">Lapcsoport színe: <ph name="COLOR" /></translation>
 <translation id="5005498671520578047">Jelszó másolása</translation>
@@ -1650,7 +1649,6 @@
 <translation id="7724085059277147439">{count,plural, =1{Elem mentve az Ön Google-fiókjába ({email})}other{Elemek mentve az Ön Google-fiókjába ({email})}}</translation>
 <translation id="7729458878441927652">Ha látni szeretné a többi eszközén felkeresett lapokat, szinkronizálja lapjait és előzményeit.</translation>
 <translation id="7730020510075123961">Nem, egyesítése az adatokat</translation>
-<translation id="7730973429297233609">Válassza ki a fiókot, amelyet használni szeretne a következő mentéséhez: <ph name="FILENAME" /> – <ph name="FILESIZE" /></translation>
 <translation id="7733646263819020771"><ph name="BOOKMRK_NAME" />. Csak erre az eszközre.</translation>
 <translation id="7744192722284567281">Megtalálható adatvédelmi incidensben</translation>
 <translation id="7749790401023484470">Nem választott ki szöveget.</translation>
@@ -1834,7 +1832,6 @@
 <translation id="8428045167754449968">Város/helység</translation>
 <translation id="8428213095426709021">Beállítások</translation>
 <translation id="8428634594422941299">Értem</translation>
-<translation id="8430694217306051839"><ph name="FILENAME" /> (<ph name="FILE_SIZE" />) mentési helyének kiválasztása</translation>
 <translation id="8434837876193928924">Lapcsoport részletei</translation>
 <translation id="8438566539970814960">Keresések és böngészés javítása</translation>
 <translation id="8439758443371991593">A „Hozzáadás az Olvasólistához” művelet elrejtése</translation>
diff --git a/ios/chrome/app/strings/resources/ios_strings_hy.xtb b/ios/chrome/app/strings/resources/ios_strings_hy.xtb
index 37678cf..4c181a15 100644
--- a/ios/chrome/app/strings/resources/ios_strings_hy.xtb
+++ b/ios/chrome/app/strings/resources/ios_strings_hy.xtb
@@ -623,6 +623,7 @@
 <translation id="3596414637720633074">Արգելափակել կողմնակի կայքերի քուքիները ինկոգնիտո ռեժիմում</translation>
 <translation id="3602260545951981695">Ընտրեք «Բարելավված պաշտպանություն»</translation>
 <translation id="3608436266458100337">Ընթերցման ռեժիմ</translation>
+<translation id="3610041351087301930">Թաքցնել ընթերցիչը</translation>
 <translation id="3622175633937495219">Որոնեք պատմության մեջ (<ph name="COUNT" /> համընկնում)</translation>
 <translation id="3625008969091706597">Հետ գնալու համար մատը սահեցրեք էկրանի եզրով։</translation>
 <translation id="362709345066740529">Անհատականացրեք ձեր քարտերը, ֆիդը և ավելին՝ այստեղ</translation>
@@ -964,7 +965,6 @@
 <translation id="4979397965658815378">Մուտք գործեք ձեր Google հաշվով՝ ձեր էջանիշները, գաղտնաբառերը, պատմությունը և այլ կարգավորումները ձեր բոլոր սարքերում օգտագործելու համար:</translation>
 <translation id="4985921635659180565">Ֆայլի պլանավորված ջնջումը հնարավոր չէ չեղարկել։</translation>
 <translation id="498624032394115435">Ցանկացած ոք, ով ունի այս հղումը, կարող է փոփոխել բոլոր ներդիրները։</translation>
-<translation id="4989065233040279145">Ընտրեք, թե որտեղ պահել <ph name="FILENAME" /> ֆայլը</translation>
 <translation id="499122600724363620"><ph name="NAME" />, <ph name="EMAIL" />, կառավարվում է ձեր կազմակերպության կողմից։</translation>
 <translation id="4992255726304765516">Ներդիրների խմբի գույնը՝ <ph name="COLOR" /></translation>
 <translation id="5005498671520578047">Պատճենել գաղտնաբառը</translation>
@@ -1064,6 +1064,7 @@
 <translation id="5431252637281434233">Դուք դուրս կգաք հաշվից</translation>
 <translation id="543338862236136125">Փոխել գաղտնաբառը</translation>
 <translation id="5433691172869980887">Օգտանունը պատճենվեց</translation>
+<translation id="5437480232219631455">Դուք կարող եք բացել Gemini-ը այստեղ</translation>
 <translation id="5439618055789623719">Մուտք եք գործել որպես <ph name="USER_EMAIL" /></translation>
 <translation id="5443636120437209490">Դարձրեք ձեր կանխադրված դիտարկիչը</translation>
 <translation id="5444892875087332195">Էջանիշեր</translation>
@@ -1650,7 +1651,6 @@
 <translation id="7724085059277147439">{count,plural, =1{Տարրը պահվեց ձեր Google հաշվում, {email}}one{Տարրը պահվեց ձեր Google հաշվում, {email}}other{Տարրերը պահվեցին ձեր Google հաշվում, {email}}}</translation>
 <translation id="7729458878441927652">Ձեր մյուս սարքերի ներդիրները տեսնելու համար համաժամացրեք ձեր ներդիրներն ու պատմությունը։</translation>
 <translation id="7730020510075123961">Ոչ, միավորել տվյալները</translation>
-<translation id="7730973429297233609">Ընտրեք հաշիվը, որն ուզում եք օգտագործել՝ <ph name="FILENAME" /> ֆայլը (<ph name="FILESIZE" />) պահելու համար</translation>
 <translation id="7733646263819020771"><ph name="BOOKMRK_NAME" />։ Միայն այս սարքում։</translation>
 <translation id="7744192722284567281">Հայտնաբերվել է տվյալների արտահոսքում</translation>
 <translation id="7749790401023484470">Դուք չեք ընտրել որևէ տեքստ։</translation>
@@ -1834,7 +1834,6 @@
 <translation id="8428045167754449968">Քաղաք</translation>
 <translation id="8428213095426709021">Կարգավորումներ</translation>
 <translation id="8428634594422941299">Պարզ է</translation>
-<translation id="8430694217306051839">Ընտրեք, թե որտեղ պահել <ph name="FILENAME" /> ֆայլը (<ph name="FILE_SIZE" />)</translation>
 <translation id="8434837876193928924">Ներդիրների խմբի մասին</translation>
 <translation id="8438566539970814960">Լավացնել որոնումն ու էջերի դիտումը</translation>
 <translation id="8439758443371991593">Թաքցնել «Ավելացնել ընթերցանության ցանկում» գործողությունը</translation>
diff --git a/ios/chrome/app/strings/resources/ios_strings_id.xtb b/ios/chrome/app/strings/resources/ios_strings_id.xtb
index 8c3a425..e8f2d8c 100644
--- a/ios/chrome/app/strings/resources/ios_strings_id.xtb
+++ b/ios/chrome/app/strings/resources/ios_strings_id.xtb
@@ -623,6 +623,7 @@
 <translation id="3596414637720633074">Blokir cookie pihak ketiga dalam mode Samaran</translation>
 <translation id="3602260545951981695">Pilih "Perlindungan yang Ditingkatkan"</translation>
 <translation id="3608436266458100337">Mode pembaca</translation>
+<translation id="3610041351087301930">Sembunyikan Pembaca</translation>
 <translation id="3622175633937495219">Histori Penelusuran (<ph name="COUNT" /> ditemukan)</translation>
 <translation id="3625008969091706597">Anda dapat menggeser tepi untuk kembali.</translation>
 <translation id="362709345066740529">Sesuaikan kartu, feed, dan lainnya di sini</translation>
@@ -964,7 +965,6 @@
 <translation id="4979397965658815378">Login dengan Akun Google untuk mendapatkan bookmark, sandi, histori, dan setelan lainnya di semua perangkat Anda.</translation>
 <translation id="4985921635659180565">Setelah dijadwalkan untuk dihapus, penghapusan file tidak dapat dibatalkan.</translation>
 <translation id="498624032394115435">Siapa saja yang memiliki link ini dapat mengedit semua tab.</translation>
-<translation id="4989065233040279145">Pilih lokasi untuk menyimpan <ph name="FILENAME" /></translation>
 <translation id="499122600724363620"><ph name="NAME" />, <ph name="EMAIL" />, dikelola oleh organisasi Anda.</translation>
 <translation id="4992255726304765516">Warna grup tab <ph name="COLOR" /></translation>
 <translation id="5005498671520578047">Salin sandi</translation>
@@ -1064,6 +1064,7 @@
 <translation id="5431252637281434233">Anda akan logout</translation>
 <translation id="543338862236136125">Edit sandi</translation>
 <translation id="5433691172869980887">Nama pengguna disalin</translation>
+<translation id="5437480232219631455">Anda dapat membuka Gemini di sini</translation>
 <translation id="5439618055789623719">Login sebagai <ph name="USER_EMAIL" /></translation>
 <translation id="5443636120437209490">Penjelajahan yang lebih baik secara default</translation>
 <translation id="5444892875087332195">Bookmark</translation>
@@ -1650,7 +1651,6 @@
 <translation id="7724085059277147439">{count,plural, =1{Item disimpan di Akun Google Anda, {email}}other{Item disimpan di Akun Google Anda, {email}}}</translation>
 <translation id="7729458878441927652">Untuk melihat tab dari perangkat Anda yang lain, sinkronkan tab dan histori.</translation>
 <translation id="7730020510075123961">Tidak, gabungkan data</translation>
-<translation id="7730973429297233609">Pilih akun yang ingin Anda gunakan untuk menyimpan <ph name="FILENAME" /> - <ph name="FILESIZE" /></translation>
 <translation id="7733646263819020771"><ph name="BOOKMRK_NAME" />. Hanya di perangkat ini.</translation>
 <translation id="7744192722284567281">Ditemukan di pelanggaran data</translation>
 <translation id="7749790401023484470">Anda tidak memilih teks apa pun.</translation>
@@ -1834,7 +1834,6 @@
 <translation id="8428045167754449968">Kota</translation>
 <translation id="8428213095426709021">Setelan</translation>
 <translation id="8428634594422941299">Mengerti</translation>
-<translation id="8430694217306051839">Pilih lokasi untuk menyimpan <ph name="FILENAME" /> (<ph name="FILE_SIZE" />)</translation>
 <translation id="8434837876193928924">Detail grup tab</translation>
 <translation id="8438566539970814960">Jadikan penelusuran dan penjelajahan lebih baik</translation>
 <translation id="8439758443371991593">Sembunyikan Tambahkan ke Daftar Bacaan</translation>
diff --git a/ios/chrome/app/strings/resources/ios_strings_is.xtb b/ios/chrome/app/strings/resources/ios_strings_is.xtb
index f5977c5..8ed3067 100644
--- a/ios/chrome/app/strings/resources/ios_strings_is.xtb
+++ b/ios/chrome/app/strings/resources/ios_strings_is.xtb
@@ -623,6 +623,7 @@
 <translation id="3596414637720633074">Loka á fótspor þriðju aðila í huliðsstillingu</translation>
 <translation id="3602260545951981695">Veldu „Aukin vörn“</translation>
 <translation id="3608436266458100337">Lestrarstilling</translation>
+<translation id="3610041351087301930">Fela lesara</translation>
 <translation id="3622175633937495219">Leitarferill (<ph name="COUNT" /> fannst/fundust)</translation>
 <translation id="3625008969091706597">Þú getur strokið brúnina til að fara til baka.</translation>
 <translation id="362709345066740529">Hér geturðu sérsniðið spjöldin þín, strauminn og fleira</translation>
@@ -964,7 +965,6 @@
 <translation id="4979397965658815378">Skráðu þig inn með Google reikningnum þínum til að fá bókamerkin þín, ferilinn, aðgangsorð og aðrar stillingar í öll tækin þín</translation>
 <translation id="4985921635659180565">Ekki er hægt að afturkalla áætlaða eyðingu skráar.</translation>
 <translation id="498624032394115435">Allir með tengilinn geta breytt öllum flipum.</translation>
-<translation id="4989065233040279145">Veldu hvar þú vilt vista <ph name="FILENAME" /></translation>
 <translation id="499122600724363620"><ph name="NAME" />, <ph name="EMAIL" /> (stjórnað af fyrirtækinu þínu).</translation>
 <translation id="4992255726304765516">Litur flipahóps <ph name="COLOR" /></translation>
 <translation id="5005498671520578047">Afrita aðgangsorð</translation>
@@ -1064,6 +1064,7 @@
 <translation id="5431252637281434233">Þú verður skráð(ur) út</translation>
 <translation id="543338862236136125">Breyta aðgangsorði</translation>
 <translation id="5433691172869980887">Notandanafn afritað</translation>
+<translation id="5437480232219631455">Þú getur opnað Gemini hér</translation>
 <translation id="5439618055789623719">Skráð(ur) inn sem <ph name="USER_EMAIL" /></translation>
 <translation id="5443636120437209490">Sjálfgefin betri skoðun</translation>
 <translation id="5444892875087332195">Bókamerki</translation>
@@ -1650,7 +1651,6 @@
 <translation id="7724085059277147439">{count,plural, =1{Atriði vistað á Google-reikningnum þínum, {email}}one{Atriði vistuð á Google-reikningnum þínum, {email}}other{Atriði vistuð á Google-reikningnum þínum, {email}}}</translation>
 <translation id="7729458878441927652">Samstilltu flipana þína og ferilinn til að sjá flipa úr hinum tækjunum þínum.</translation>
 <translation id="7730020510075123961">Nei, sameina gögn</translation>
-<translation id="7730973429297233609">Veldu reikninginn sem þú vilt nota til að vista <ph name="FILENAME" /> - <ph name="FILESIZE" /></translation>
 <translation id="7733646263819020771"><ph name="BOOKMRK_NAME" />. Aðeins í þessu tæki.</translation>
 <translation id="7744192722284567281">Fannst í öryggisbroti</translation>
 <translation id="7749790401023484470">Þú valdir engan texta.</translation>
@@ -1834,7 +1834,6 @@
 <translation id="8428045167754449968">Borg/bær</translation>
 <translation id="8428213095426709021">Stillingar</translation>
 <translation id="8428634594422941299">Ég skil</translation>
-<translation id="8430694217306051839">Veldu hvar þú vilt vista <ph name="FILENAME" /> (<ph name="FILE_SIZE" />)</translation>
 <translation id="8434837876193928924">Upplýsingar um flipahóp</translation>
 <translation id="8438566539970814960">Bæta leit og vafra</translation>
 <translation id="8439758443371991593">Fela „Bæta við leslista“</translation>
diff --git a/ios/chrome/app/strings/resources/ios_strings_it.xtb b/ios/chrome/app/strings/resources/ios_strings_it.xtb
index 76d4885..664c72d 100644
--- a/ios/chrome/app/strings/resources/ios_strings_it.xtb
+++ b/ios/chrome/app/strings/resources/ios_strings_it.xtb
@@ -965,7 +965,6 @@
 <translation id="4979397965658815378">Accedi con il tuo Account Google per avere preferiti, password, cronologia e altre impostazioni su tutti i tuoi dispositivi</translation>
 <translation id="4985921635659180565">Una volta programmata l'eliminazione di un file, non è possibile annullarla.</translation>
 <translation id="498624032394115435">Chiunque abbia il link può modificare tutte le schede.</translation>
-<translation id="4989065233040279145">Scegli dove salvare <ph name="FILENAME" /></translation>
 <translation id="499122600724363620"><ph name="NAME" />, <ph name="EMAIL" />, gestito dalla tua organizzazione.</translation>
 <translation id="4992255726304765516">Colore del gruppo di schede: <ph name="COLOR" /></translation>
 <translation id="5005498671520578047">Copia password</translation>
@@ -1652,7 +1651,6 @@
 <translation id="7724085059277147439">{count,plural, =1{Elemento salvato nel tuo Account Google, {email}}other{Elementi salvati nel tuo Account Google, {email}}}</translation>
 <translation id="7729458878441927652">Per vedere le schede degli altri tuoi dispositivi, sincronizza le schede e la cronologia.</translation>
 <translation id="7730020510075123961">No, unisci i dati</translation>
-<translation id="7730973429297233609">Seleziona l'account che vuoi utilizzare per salvare <ph name="FILENAME" /> - <ph name="FILESIZE" /></translation>
 <translation id="7733646263819020771"><ph name="BOOKMRK_NAME" />. Solo su questo dispositivo.</translation>
 <translation id="7744192722284567281">Rilevata in una violazione dei dati</translation>
 <translation id="7749790401023484470">Non hai selezionato alcun testo.</translation>
@@ -1836,7 +1834,6 @@
 <translation id="8428045167754449968">Città/località</translation>
 <translation id="8428213095426709021">Impostazioni</translation>
 <translation id="8428634594422941299">Ok</translation>
-<translation id="8430694217306051839">Scegli dove salvare <ph name="FILENAME" /> (<ph name="FILE_SIZE" />)</translation>
 <translation id="8434837876193928924">Dettagli gruppo di schede</translation>
 <translation id="8438566539970814960">Migliora le ricerche e le attività di navigazione</translation>
 <translation id="8439758443371991593">Nascondi Aggiungi all'elenco di lettura</translation>
diff --git a/ios/chrome/app/strings/resources/ios_strings_iw.xtb b/ios/chrome/app/strings/resources/ios_strings_iw.xtb
index 064d103d..85b22ae 100644
--- a/ios/chrome/app/strings/resources/ios_strings_iw.xtb
+++ b/ios/chrome/app/strings/resources/ios_strings_iw.xtb
@@ -623,6 +623,7 @@
 <translation id="3596414637720633074">‏חסימת קובצי cookie של צד שלישי במצב אנונימי</translation>
 <translation id="3602260545951981695">בוחרים באפשרות 'הגנה משופרת'</translation>
 <translation id="3608436266458100337">מצב קורא</translation>
+<translation id="3610041351087301930">הסתרת "קורא"</translation>
 <translation id="3622175633937495219">חיפוש בהיסטוריה (התקבלו <ph name="COUNT" /> תוצאות)</translation>
 <translation id="3625008969091706597">אפשר להחליק את הקצה כדי לעבור אחורה.</translation>
 <translation id="362709345066740529">כאן אפשר להתאים אישית את הכרטיסים, הפיד ועוד</translation>
@@ -964,7 +965,6 @@
 <translation id="4979397965658815378">‏יש להיכנס באמצעות חשבון Google כדי לקבל גישה אל הסימניות, הסיסמאות, ההיסטוריה והגדרות נוספות בכל המכשירים שלך.</translation>
 <translation id="4985921635659180565">אחרי שקובעים מועד מחיקה לקובץ, אי אפשר לבטל את המחיקה.</translation>
 <translation id="498624032394115435">כל מי שיש לו את הקישור יכול לערוך את כל הכרטיסיות.</translation>
-<translation id="4989065233040279145">בחירת מיקום לשמירת הקובץ <ph name="FILENAME" /></translation>
 <translation id="499122600724363620">‫<ph name="NAME" />, <ph name="EMAIL" />, חשבון שמנוהל על-ידי הארגון שלך.</translation>
 <translation id="4992255726304765516">הצבע של קבוצת הכרטיסיות <ph name="COLOR" /></translation>
 <translation id="5005498671520578047">העתקת הסיסמה</translation>
@@ -1064,6 +1064,7 @@
 <translation id="5431252637281434233">המערכת תוציא אותך מהחשבון</translation>
 <translation id="543338862236136125">עריכת סיסמה</translation>
 <translation id="5433691172869980887">שם המשתמש הועתק</translation>
+<translation id="5437480232219631455">‏אפשר לפתוח את Gemini כאן</translation>
 <translation id="5439618055789623719">נכנסת בתור <ph name="USER_EMAIL" /></translation>
 <translation id="5443636120437209490">גלישה טובה יותר כברירת מחדל</translation>
 <translation id="5444892875087332195">סימניות</translation>
@@ -1650,7 +1651,6 @@
 <translation id="7724085059277147439">{count,plural, =1{‏הפריט נשמר בחשבון Google עם הכתובת {email}}one{‏הפריטים נשמרו בחשבון Google עם הכתובת {email}.}two{‏הפריטים נשמרו בחשבון Google עם הכתובת {email}.}other{‏הפריטים נשמרו בחשבון Google עם הכתובת {email}.}}</translation>
 <translation id="7729458878441927652">כדי לראות כרטיסיות מהמכשירים האחרים שלך, צריך לסנכרן את הכרטיסיות ואת ההיסטוריה.</translation>
 <translation id="7730020510075123961">לא, אני רוצה למזג את הנתונים</translation>
-<translation id="7730973429297233609">צריך לבחור את החשבון שבו רוצים להשתמש כדי לשמור את <ph name="FILENAME" /> ‏– <ph name="FILESIZE" /></translation>
 <translation id="7733646263819020771"><ph name="BOOKMRK_NAME" />. רק במכשיר הזה.</translation>
 <translation id="7744192722284567281">נמצאה בפרצה באבטחת מידע</translation>
 <translation id="7749790401023484470">לא בחרת טקסט.</translation>
@@ -1834,7 +1834,6 @@
 <translation id="8428045167754449968">עיר / יישוב</translation>
 <translation id="8428213095426709021">הגדרות</translation>
 <translation id="8428634594422941299">הבנתי</translation>
-<translation id="8430694217306051839">בחירת מיקום לשמירת הקובץ <ph name="FILENAME" /> ‏(<ph name="FILE_SIZE" />)</translation>
 <translation id="8434837876193928924">פרטי קבוצת הכרטיסיות</translation>
 <translation id="8438566539970814960">שיפור החיפושים והגלישה</translation>
 <translation id="8439758443371991593">הסתרה של 'הוספה לרשימת הקריאה'</translation>
diff --git a/ios/chrome/app/strings/resources/ios_strings_ja.xtb b/ios/chrome/app/strings/resources/ios_strings_ja.xtb
index 6e0f665..b8bcf1d 100644
--- a/ios/chrome/app/strings/resources/ios_strings_ja.xtb
+++ b/ios/chrome/app/strings/resources/ios_strings_ja.xtb
@@ -965,7 +965,6 @@
 <translation id="4979397965658815378">Google アカウントでログインすると、どのデバイスからでも同じブックマーク、パスワード、履歴などの設定を利用できるようになります。</translation>
 <translation id="4985921635659180565">ファイルの削除をスケジュール設定すると、後からキャンセルできません。</translation>
 <translation id="498624032394115435">リンクを知っているユーザーは誰でも、すべてのタブを編集できます。</translation>
-<translation id="4989065233040279145"><ph name="FILENAME" /> の保存先を選択</translation>
 <translation id="499122600724363620"><ph name="NAME" />(<ph name="EMAIL" />)、組織によって管理されています。</translation>
 <translation id="4992255726304765516">タブグループの色 <ph name="COLOR" /></translation>
 <translation id="5005498671520578047">パスワードのコピー</translation>
@@ -1652,7 +1651,6 @@
 <translation id="7724085059277147439">{count,plural, =1{Google アカウント({email})にアイテムを保存しました}other{Google アカウント({email})にアイテムを保存しました}}</translation>
 <translation id="7729458878441927652">他のデバイスのタブを表示するには、タブと履歴を同期します。</translation>
 <translation id="7730020510075123961">いいえ、データを結合します</translation>
-<translation id="7730973429297233609"><ph name="FILENAME" />(<ph name="FILESIZE" />)の保存に使用するアカウントを選択してください</translation>
 <translation id="7733646263819020771"><ph name="BOOKMRK_NAME" />、このデバイスのみ。</translation>
 <translation id="7744192722284567281">データ侵害で漏洩</translation>
 <translation id="7749790401023484470">テキストが選択されていません。</translation>
@@ -1836,7 +1834,6 @@
 <translation id="8428045167754449968">市区町村</translation>
 <translation id="8428213095426709021">設定</translation>
 <translation id="8428634594422941299">OK</translation>
-<translation id="8430694217306051839"><ph name="FILENAME" />(<ph name="FILE_SIZE" />)の保存先を選択</translation>
 <translation id="8434837876193928924">タブグループの詳細</translation>
 <translation id="8438566539970814960">検索とブラウジングを改善する</translation>
 <translation id="8439758443371991593">[リーディング リストに追加] を非表示</translation>
diff --git a/ios/chrome/app/strings/resources/ios_strings_ka.xtb b/ios/chrome/app/strings/resources/ios_strings_ka.xtb
index 037fc489..8bc4ca9 100644
--- a/ios/chrome/app/strings/resources/ios_strings_ka.xtb
+++ b/ios/chrome/app/strings/resources/ios_strings_ka.xtb
@@ -545,6 +545,7 @@
 <translation id="3227137524299004712">მიკროფონი</translation>
 <translation id="3235063766008841141">შეყვანილია შეცდომაში შემყვან საიტზე და გამოაშკარავდა მონაცემთა გაჟონვისას</translation>
 <translation id="3235242129752692527">დაარედაქტირეთ მოვლენის დეტალები და შეხებით აირჩიეთ „შენახვა“.</translation>
+<translation id="323863549127671026">ამჟამად გახსნილი ჩანართები და ჩანართების ჯგუფების</translation>
 <translation id="3240426699337459095">ბმული დაკოპირდა</translation>
 <translation id="3244271242291266297">თთ</translation>
 <translation id="3245429137663807393">თუ თქვენ აზიარებთ Chrome-ის მოხმარების ანგარიშებსაც, ეს ანგარიშები ასევე მოიცავს თქვენ მიერ მონახულებულ URL-ებს</translation>
@@ -965,7 +966,6 @@
 <translation id="4979397965658815378">თქვენი სანიშნეების, პაროლების, ისტორიის და სხვა პარამეტრების ყველა თქვენს მოწყობილობაში მისაღებად, შედით სისტემაში თქვენი Google ანგარიშით</translation>
 <translation id="4985921635659180565">ფაილის წაშლის დაგეგმვის შემდეგ ამ მოქმედების გაუქმებას ვეღარ შეძლებთ.</translation>
 <translation id="498624032394115435">ყველას, ვისაც აქვს ბმული, შეუძლია ნებისმიერი ჩანართის რედაქტირება.</translation>
-<translation id="4989065233040279145">აირჩიეთ, სად გსურთ, შეინახოთ <ph name="FILENAME" /></translation>
 <translation id="499122600724363620"><ph name="NAME" />, <ph name="EMAIL" />, მართავს თქვენი ორგანიზაცია.</translation>
 <translation id="4992255726304765516">ჩანართების ჯგუფის ფერი: <ph name="COLOR" /></translation>
 <translation id="5005498671520578047">პაროლის კოპირება</translation>
@@ -1652,7 +1652,6 @@
 <translation id="7724085059277147439">{count,plural, =1{ერთეული შეინახა თქვენს Google ანგარიშში ({email})}other{ერთეულები შეინახა თქვენს Google ანგარიშში ({email})}}</translation>
 <translation id="7729458878441927652">სხვა მოწყობილობებიდან ჩანართების სანახავად შეასრულეთ თქვენი ჩანართებისა და ისტორიის სინქრონიზაცია.</translation>
 <translation id="7730020510075123961">არა, მონაცემების გაერთიანება</translation>
-<translation id="7730973429297233609">აირჩიეთ ანგარიში, რომელიც გსურთ გამოიყენოთ, რომ შეინახოთ <ph name="FILENAME" /> — <ph name="FILESIZE" /></translation>
 <translation id="7733646263819020771"><ph name="BOOKMRK_NAME" />. მხოლოდ ამ მოწყობილობაზე.</translation>
 <translation id="7744192722284567281">დაფიქსირდა პერსონალურ მონაცემთა გაჟონვისას</translation>
 <translation id="7749790401023484470">ტექსტი არ აგირჩევიათ.</translation>
@@ -1836,7 +1835,6 @@
 <translation id="8428045167754449968">ქალაქი/დაბა</translation>
 <translation id="8428213095426709021">პარამეტრები</translation>
 <translation id="8428634594422941299">გასაგებია</translation>
-<translation id="8430694217306051839">აირჩიეთ, სად გსურთ, შეინახოთ <ph name="FILENAME" /> (<ph name="FILE_SIZE" />)</translation>
 <translation id="8434837876193928924">ჩანართების ჯგუფის დეტალები</translation>
 <translation id="8438566539970814960">გააუმჯობესეთ ძიებები და ვებსაიტების დათვალიერება</translation>
 <translation id="8439758443371991593">საკითხავ სიაში დამატების დამალვა</translation>
diff --git a/ios/chrome/app/strings/resources/ios_strings_kk.xtb b/ios/chrome/app/strings/resources/ios_strings_kk.xtb
index 7015129..ba82bec8 100644
--- a/ios/chrome/app/strings/resources/ios_strings_kk.xtb
+++ b/ios/chrome/app/strings/resources/ios_strings_kk.xtb
@@ -623,6 +623,7 @@
 <translation id="3596414637720633074">Инкогнито режимінде үшінші тарап cookie файлдарын бөгеу</translation>
 <translation id="3602260545951981695">"Күшейтілген қорғаныс" опциясын таңдаңыз</translation>
 <translation id="3608436266458100337">Оқу құралы режимі</translation>
+<translation id="3610041351087301930">Оқырман режимін жасыру</translation>
 <translation id="3622175633937495219">Тарихтан іздеу (<ph name="COUNT" /> нәтиже табылды)</translation>
 <translation id="3625008969091706597">Артқа өту үшін мына шеттен сырғытуға болады.</translation>
 <translation id="362709345066740529">Карталарды, фидті, т.б. осы жерде бейімдеуге болады.</translation>
@@ -964,7 +965,6 @@
 <translation id="4979397965658815378">Барлық құрылғыларда бетбелгілерді, құпия сөздерді, тарихты және басқа параметрлерді алу үшін Google аккаунтымен кіріңіз</translation>
 <translation id="4985921635659180565">Файлды жою жоспарланса, одан бас тарта алмайсыз.</translation>
 <translation id="498624032394115435">Сілтемені алған кез келген адам барлық қойындыны өзгерте алады.</translation>
-<translation id="4989065233040279145"><ph name="FILENAME" /> файлын қай жерге сақтау қажеттігін таңдаңыз</translation>
 <translation id="499122600724363620"><ph name="NAME" />, <ph name="EMAIL" />, ұйымыңыз басқарады.</translation>
 <translation id="4992255726304765516">Қойындылар тобының түсі <ph name="COLOR" /></translation>
 <translation id="5005498671520578047">Құпия сөзді көшіру</translation>
@@ -1064,6 +1064,7 @@
 <translation id="5431252637281434233">Аккаунттан шығарыласыз</translation>
 <translation id="543338862236136125">Құпия сөзді өзгерту</translation>
 <translation id="5433691172869980887">Пайдаланушының аты көшірілді</translation>
+<translation id="5437480232219631455">Gemini-ды осы жерде ашуға болады</translation>
 <translation id="5439618055789623719"><ph name="USER_EMAIL" /> ретінде кірдіңіз</translation>
 <translation id="5443636120437209490">Браузерді әдепкісінше тиімді пайдалану</translation>
 <translation id="5444892875087332195">Бетбелгілер</translation>
@@ -1650,7 +1651,6 @@
 <translation id="7724085059277147439">{count,plural, =1{Элемент Google аккаунтыңызға ({email}) сақталды.}other{Элементтер Google аккаунтыңызға ({email}) сақталды.}}</translation>
 <translation id="7729458878441927652">Басқа құрылғылардағы қойындыларды көру үшін қойындылар мен журналды синхрондаңыз.</translation>
 <translation id="7730020510075123961">Жоқ, деректерді біріктіру</translation>
-<translation id="7730973429297233609"><ph name="FILESIZE" /> <ph name="FILENAME" /> файлын сақтау үшін қолданғыңыз келетін аккаунтты таңдаңыз</translation>
 <translation id="7733646263819020771"><ph name="BOOKMRK_NAME" />. Тек осы құрылғыда.</translation>
 <translation id="7744192722284567281">Деректер қолды болғанда табылды</translation>
 <translation id="7749790401023484470">Ешбір мәтінді таңдамадыңыз.</translation>
@@ -1834,7 +1834,6 @@
 <translation id="8428045167754449968">Қала / қалашық</translation>
 <translation id="8428213095426709021">Параметрлер</translation>
 <translation id="8428634594422941299">Түсінікті</translation>
-<translation id="8430694217306051839"><ph name="FILENAME" /> (<ph name="FILE_SIZE" />) файлын қай жерге сақтау қажеттігін таңдаңыз</translation>
 <translation id="8434837876193928924">Қойындылар тобының мәліметтері</translation>
 <translation id="8438566539970814960">Іздеу және сайттарды шолу жұмысын жақсарту</translation>
 <translation id="8439758443371991593">"Оқу тізіміне қосу" опциясын жасыру</translation>
diff --git a/ios/chrome/app/strings/resources/ios_strings_km.xtb b/ios/chrome/app/strings/resources/ios_strings_km.xtb
index 6a45852..f9488229 100644
--- a/ios/chrome/app/strings/resources/ios_strings_km.xtb
+++ b/ios/chrome/app/strings/resources/ios_strings_km.xtb
@@ -965,7 +965,6 @@
 <translation id="4979397965658815378">ចូលដោយប្រើគណនី Google របស់អ្នកដើម្បីទទួលយកចំណាំ ពាក្យសម្ងាត់ ប្រវត្តិ និងការកំណត់ផ្សេងទៀតរបស់អ្នកនៅលើឧបករណ៍ទាំងអស់របស់អ្នក</translation>
 <translation id="4985921635659180565">បន្ទាប់ពី​កំណត់ពេល​លុប​ឯកសាររួច នោះមិនអាច​បោះបង់​សកម្មភាពនេះ​បានទេ។</translation>
 <translation id="498624032394115435">គ្រប់គ្នា​ដែលមាន​តំណនេះអាច​កែផ្ទាំង​ទាំងអស់បាន។</translation>
-<translation id="4989065233040279145">ជ្រើសរើស​កន្លែង​ដែលត្រូវ​រក្សាទុក <ph name="FILENAME" /></translation>
 <translation id="499122600724363620"><ph name="NAME" />, <ph name="EMAIL" /> ដែលស្ថិត​ក្រោម​ការ​គ្រប់គ្រង​របស់ស្ថាប័ន​អ្នក។</translation>
 <translation id="4992255726304765516">ពណ៌ក្រុមផ្ទាំង<ph name="COLOR" /></translation>
 <translation id="5005498671520578047">ថតចម្លងពាក្យសម្ងាត់</translation>
@@ -1652,7 +1651,6 @@
 <translation id="7724085059277147439">{count,plural, =1{បាន​រក្សាទុក​ធាតុនៅ​ក្នុង​គណនី Google របស់​អ្នក {email}}other{បាន​រក្សាទុក​ធាតុនៅ​ក្នុង​គណនី Google របស់​អ្នក {email}}}</translation>
 <translation id="7729458878441927652">ដើម្បីមើលឃើញផ្ទាំងពីឧបករណ៍ផ្សេងទៀតរបស់អ្នក សូមធ្វើសមកាលកម្មផ្ទាំង និងប្រវត្តិរបស់អ្នក។</translation>
 <translation id="7730020510075123961">ទេ ដាក់​ទិន្នន័យ​ចូលគ្នា</translation>
-<translation id="7730973429297233609">ជ្រើសរើស​គណនី​ដែល​អ្នក​ចង់​ប្រើ​ដើម្បីរក្សាទុក <ph name="FILENAME" /> - <ph name="FILESIZE" /></translation>
 <translation id="7733646263819020771"><ph name="BOOKMRK_NAME" />។ តែ​នៅ​លើ​ឧបករណ៍​នេះ​ប៉ុណ្ណោះ។</translation>
 <translation id="7744192722284567281">បានរកឃើញនៅក្នុងការបែកធ្លាយ​ទិន្នន័យ​</translation>
 <translation id="7749790401023484470">អ្នក​មិនបាន​ជ្រើសរើស​អក្សរ​ទេ។</translation>
@@ -1836,7 +1834,6 @@
 <translation id="8428045167754449968">រដ្ឋធានី ឬ ទីក្រុង</translation>
 <translation id="8428213095426709021">ការកំណត់</translation>
 <translation id="8428634594422941299">យល់ហើយ</translation>
-<translation id="8430694217306051839">ជ្រើសរើស​កន្លែង​ដែលត្រូវ​រក្សាទុក <ph name="FILENAME" /> (<ph name="FILE_SIZE" />)</translation>
 <translation id="8434837876193928924">ព័ត៌មានលម្អិត​អំពី​ក្រុមផ្ទាំង</translation>
 <translation id="8438566539970814960">ធ្វើ​ឱ្យ​ការស្វែងរក និងការរុករក​ប្រសើរ​ជាងមុន</translation>
 <translation id="8439758443371991593">លាក់ "បញ្ចូល​ទៅ​ក្នុងបញ្ជីអាន"</translation>
diff --git a/ios/chrome/app/strings/resources/ios_strings_kn.xtb b/ios/chrome/app/strings/resources/ios_strings_kn.xtb
index 57d6384a..55559c0 100644
--- a/ios/chrome/app/strings/resources/ios_strings_kn.xtb
+++ b/ios/chrome/app/strings/resources/ios_strings_kn.xtb
@@ -623,6 +623,7 @@
 <translation id="3596414637720633074">ಅಜ್ಞಾತ ಮೋಡ್‌ನಲ್ಲಿ ಥರ್ಡ್-ಪಾರ್ಟಿ ಕುಕೀಗಳನ್ನು ನಿರ್ಬಂಧಿಸಿ</translation>
 <translation id="3602260545951981695">"ವರ್ಧಿತ ಸುರಕ್ಷತೆ" ಯನ್ನು ಆಯ್ಕೆಮಾಡಿ</translation>
 <translation id="3608436266458100337">ರೀಡರ್ ಮೋಡ್</translation>
+<translation id="3610041351087301930">ರೀಡರ್ ಅನ್ನು ಮರೆಮಾಡಿ</translation>
 <translation id="3622175633937495219">ಹುಡುಕಾಟದ ಇತಿಹಾಸ (<ph name="COUNT" /> ಕಂಡುಬಂದಿದೆ)</translation>
 <translation id="3625008969091706597">ಹಿಂತಿರುಗಲು ನೀವು ಅಂಚನ್ನು ಸ್ವೈಪ್ ಮಾಡಬಹುದು.</translation>
 <translation id="362709345066740529">ನಿಮ್ಮ ಕಾರ್ಡ್‌ಗಳು, ಫೀಡ್ ಮತ್ತು ಇತ್ಯಾದಿಗಳನ್ನು ಇಲ್ಲಿ ಕಸ್ಟಮೈಸ್ ಮಾಡಿ</translation>
@@ -964,7 +965,6 @@
 <translation id="4979397965658815378">ನಿಮ್ಮ ಬುಕ್‌ಮಾರ್ಕ್‌ಗಳು, ಪಾಸ್‌ವರ್ಡ್‌ಗಳು, ಇತಿಹಾಸ ಮತ್ತು ಇತರ ಸೆಟ್ಟಿಂಗ್‌ಗಳನ್ನು ನಿಮ್ಮ ಎಲ್ಲಾ ಸಾಧನಗಳಲ್ಲಿ ಪಡೆಯಲು ನಿಮ್ಮ Google ಖಾತೆ ಮೂಲಕ ಸೈನ್ ಇನ್ ಮಾಡಿ</translation>
 <translation id="4985921635659180565">ಫೈಲ್ ಅನ್ನು ಅಳಿಸಲು ನಿಗದಿಪಡಿಸಿದ ನಂತರ, ಅದನ್ನು ರದ್ದುಗೊಳಿಸಲಾಗುವುದಿಲ್ಲ.</translation>
 <translation id="498624032394115435">ಲಿಂಕ್ ಹೊಂದಿರುವ ಯಾರಾದರೂ ಎಲ್ಲಾ ಟ್ಯಾಬ್‌ಗಳನ್ನು ಎಡಿಟ್ ಮಾಡಬಹುದು.</translation>
-<translation id="4989065233040279145"><ph name="FILENAME" /> ಅನ್ನು ಎಲ್ಲಿ ಸೇವ್ ಮಾಡಬೇಕೆಂದು ಆಯ್ಕೆಮಾಡಿ</translation>
 <translation id="499122600724363620"><ph name="NAME" />, <ph name="EMAIL" /> ನಿಮ್ಮ ಸಂಸ್ಥೆಯ ಮೂಲಕ ನಿರ್ವಹಿಸಲಾಗುತ್ತದೆ.</translation>
 <translation id="4992255726304765516"><ph name="COLOR" /> ಟ್ಯಾಬ್ ಗುಂಪಿನ ಬಣ್ಣ</translation>
 <translation id="5005498671520578047">ಪಾಸ್‌ವರ್ಡ್ ಕಾಪಿ ಮಾಡಿ</translation>
@@ -1064,6 +1064,7 @@
 <translation id="5431252637281434233">ನಿಮ್ಮನ್ನು ಸೈನ್ ಔಟ್ ಮಾಡಲಾಗುತ್ತದೆ</translation>
 <translation id="543338862236136125">ಪಾಸ್‌ವರ್ಡ್ ಎಡಿಟ್ ಮಾಡಿ</translation>
 <translation id="5433691172869980887">ಬಳಕೆದಾರರ ಹೆಸರನ್ನು ನಕಲಿಸಲಾಗಿದೆ</translation>
+<translation id="5437480232219631455">ನೀವು ಇಲ್ಲಿ Gemini ಅನ್ನು ತೆರೆಯಬಹುದು</translation>
 <translation id="5439618055789623719"><ph name="USER_EMAIL" /> ಎಂದು ಸೈನ್ ಇನ್ ಮಾಡಿದ್ದೀರಿ</translation>
 <translation id="5443636120437209490">ಡೀಫಾಲ್ಟ್ ಆಗಿ ಬ್ರೌಸಿಂಗ್ ಮಾಡುವುದು ಉತ್ತಮ</translation>
 <translation id="5444892875087332195">ಬುಕ್‌ಮಾರ್ಕ್‌ಗಳು</translation>
@@ -1650,7 +1651,6 @@
 <translation id="7724085059277147439">{count,plural, =1{ನಿಮ್ಮ {email} Google ಖಾತೆಯಲ್ಲಿ ಐಟಂ ಅನ್ನು ಸೇವ್ ಮಾಡಲಾಗಿದೆ}one{ನಿಮ್ಮ {email} Google ಖಾತೆಯಲ್ಲಿ ಐಟಂಗಳನ್ನು ಸೇವ್ ಮಾಡಲಾಗಿದೆ}other{ನಿಮ್ಮ {email} Google ಖಾತೆಯಲ್ಲಿ ಐಟಂಗಳನ್ನು ಸೇವ್ ಮಾಡಲಾಗಿದೆ}}</translation>
 <translation id="7729458878441927652">ನಿಮ್ಮ ಇತರ ಸಾಧನಗಳಲ್ಲಿನ ಟ್ಯಾಬ್‌ಗಳನ್ನು ನೋಡಲು, ನಿಮ್ಮ ಟ್ಯಾಬ್‌ಗಳು ಮತ್ತು ಇತಿಹಾಸವನ್ನು ಸಿಂಕ್ ಮಾಡಿ.</translation>
 <translation id="7730020510075123961">ಇಲ್ಲ, ಡೇಟಾವನ್ನು ವಿಲೀನಗೊಳಿಸಿ</translation>
-<translation id="7730973429297233609"><ph name="FILENAME" /> - <ph name="FILESIZE" /> ಸೇವ್ ಮಾಡಲು ನೀವು ಬಳಸಲು ಬಯಸುವ ಖಾತೆಯನ್ನು ಆಯ್ಕೆಮಾಡಿ</translation>
 <translation id="7733646263819020771"><ph name="BOOKMRK_NAME" />. ಈ ಸಾಧನದಲ್ಲಿ ಮಾತ್ರ.</translation>
 <translation id="7744192722284567281">ಡೇಟಾ ಉಲ್ಲಂಘಿಸಿದವುಗಳ ಪಟ್ಟಿಯಲ್ಲಿ ಕಂಡುಬಂದಿದೆ</translation>
 <translation id="7749790401023484470">ನೀವು ಯಾವುದೇ ಪಠ್ಯವನ್ನು ಆಯ್ಕೆ ಮಾಡಿಲ್ಲ.</translation>
@@ -1834,7 +1834,6 @@
 <translation id="8428045167754449968">ನಗರ / ಪಟ್ಟಣ</translation>
 <translation id="8428213095426709021">ಸೆಟ್ಟಿಂಗ್‌ಗಳು</translation>
 <translation id="8428634594422941299">ಅರ್ಥವಾಯಿತು</translation>
-<translation id="8430694217306051839"><ph name="FILENAME" /> (<ph name="FILE_SIZE" />) ಅನ್ನು ಎಲ್ಲಿ ಸೇವ್ ಮಾಡಬೇಕೆಂದು ಆಯ್ಕೆಮಾಡಿ</translation>
 <translation id="8434837876193928924">ಟ್ಯಾಬ್ ಗುಂಪಿನ ವಿವರಗಳು</translation>
 <translation id="8438566539970814960">ಹುಡುಕಾಟಗಳನ್ನು ಮತ್ತು ಬ್ರೌಸಿಂಗ್ ಅನ್ನು ಉತ್ತಮಗೊಳಿಸುವಂತೆ ಮಾಡಿ</translation>
 <translation id="8439758443371991593">ಓದುವ ಪಟ್ಟಿಗೆ ಸೇರಿಸಿ ಎಂಬುದನ್ನು ಮರೆಮಾಡಿ</translation>
diff --git a/ios/chrome/app/strings/resources/ios_strings_ko.xtb b/ios/chrome/app/strings/resources/ios_strings_ko.xtb
index ffff446c..09dcd767 100644
--- a/ios/chrome/app/strings/resources/ios_strings_ko.xtb
+++ b/ios/chrome/app/strings/resources/ios_strings_ko.xtb
@@ -623,6 +623,7 @@
 <translation id="3596414637720633074">시크릿 모드에서 서드 파티 쿠키 차단</translation>
 <translation id="3602260545951981695">'향상된 보호 모드'를 선택합니다</translation>
 <translation id="3608436266458100337">리더 모드</translation>
+<translation id="3610041351087301930">읽기 모드 숨기기</translation>
 <translation id="3622175633937495219">검색 기록(<ph name="COUNT" />개 찾음)</translation>
 <translation id="3625008969091706597">가장자리를 스와이프하여 뒤로 돌아갈 수 있습니다.</translation>
 <translation id="362709345066740529">여기에서 카드, 피드 등을 맞춤설정하세요</translation>
@@ -964,7 +965,6 @@
 <translation id="4979397965658815378">Google 계정으로 로그인하면 모든 기기에서 북마크, 비밀번호, 방문 기록 및 기타 설정을 사용할 수 있습니다.</translation>
 <translation id="4985921635659180565">파일 삭제가 예약되면 취소할 수 없습니다.</translation>
 <translation id="498624032394115435">링크가 있는 사용자가 모든 탭을 수정할 수 있습니다.</translation>
-<translation id="4989065233040279145"><ph name="FILENAME" /> 저장 위치 선택</translation>
 <translation id="499122600724363620"><ph name="NAME" />, <ph name="EMAIL" />, 조직에서 관리합니다.</translation>
 <translation id="4992255726304765516">탭 그룹 색상: <ph name="COLOR" /></translation>
 <translation id="5005498671520578047">비밀번호 복사</translation>
@@ -1064,6 +1064,7 @@
 <translation id="5431252637281434233">로그아웃됩니다</translation>
 <translation id="543338862236136125">비밀번호 수정</translation>
 <translation id="5433691172869980887">사용자 이름 복사됨</translation>
+<translation id="5437480232219631455">여기에서 Gemini를 열 수 있습니다.</translation>
 <translation id="5439618055789623719"><ph name="USER_EMAIL" /> 계정으로 로그인함</translation>
 <translation id="5443636120437209490">기본적으로 더 나은 탐색 경험</translation>
 <translation id="5444892875087332195">북마크</translation>
@@ -1650,7 +1651,6 @@
 <translation id="7724085059277147439">{count,plural, =1{항목이 Google 계정({email})에 저장됨}other{항목이 Google 계정({email})에 저장됨}}</translation>
 <translation id="7729458878441927652">다른 기기의 탭을 보려면 탭과 방문 기록을 동기화하세요</translation>
 <translation id="7730020510075123961">아니요, 데이터를 병합합니다</translation>
-<translation id="7730973429297233609"><ph name="FILENAME" /> - <ph name="FILESIZE" /> 파일을 저장하는 데 사용할 계정을 선택하세요.</translation>
 <translation id="7733646263819020771"><ph name="BOOKMRK_NAME" />. 이 기기에서만 표시.</translation>
 <translation id="7744192722284567281">정보 유출에 포함됨</translation>
 <translation id="7749790401023484470">선택한 텍스트가 없습니다.</translation>
@@ -1834,7 +1834,6 @@
 <translation id="8428045167754449968">시/군/구</translation>
 <translation id="8428213095426709021">설정</translation>
 <translation id="8428634594422941299">확인</translation>
-<translation id="8430694217306051839"><ph name="FILENAME" />(<ph name="FILE_SIZE" />) 저장 위치 선택</translation>
 <translation id="8434837876193928924">탭 그룹 세부정보</translation>
 <translation id="8438566539970814960">검색 및 탐색 기능 개선</translation>
 <translation id="8439758443371991593">읽기 목록에 추가 숨기기</translation>
diff --git a/ios/chrome/app/strings/resources/ios_strings_ky.xtb b/ios/chrome/app/strings/resources/ios_strings_ky.xtb
index f50427b..9747e4a 100644
--- a/ios/chrome/app/strings/resources/ios_strings_ky.xtb
+++ b/ios/chrome/app/strings/resources/ios_strings_ky.xtb
@@ -623,6 +623,7 @@
 <translation id="3596414637720633074">Жашыруун режимде үчүнчү тараптын cookie файлдарын бөгөттөө</translation>
 <translation id="3602260545951981695">Мыктылап коргоону тандаңыз</translation>
 <translation id="3608436266458100337">Окугуч режими</translation>
+<translation id="3610041351087301930">Окурман режимин жашыруу</translation>
 <translation id="3622175633937495219">Издөө таржымалы (<ph name="COUNT" /> табылды)</translation>
 <translation id="3625008969091706597">Артка кайтуу үчүн кырын сүрүп коюңуз.</translation>
 <translation id="362709345066740529">Карталарды, түрмөктү жана башкаларды бул жерде ыңгайлаштырыңыз</translation>
@@ -964,7 +965,6 @@
 <translation id="4979397965658815378">Бардык түзмөктөрүңүздөн кыстармалар, сырсөздөр, таржымал жана башка параметрлериңизди алуу үчүн аккаунтка кириңиз</translation>
 <translation id="4985921635659180565">Файлды өчүрүү пландаштырылгандан кийин, аны жокко чыгарууга болбойт.</translation>
 <translation id="498624032394115435">Шилтемеси бар колдонуучулардын баары бардык өтмөктөрдү түзөтө алышат.</translation>
-<translation id="4989065233040279145"><ph name="FILENAME" /> файлы кайда сакталарын тандаңыз</translation>
 <translation id="499122600724363620"><ph name="NAME" />, <ph name="EMAIL" /> аккаунтун уюмуңуз тескейт.</translation>
 <translation id="4992255726304765516">Өтмөктөр тобунун түсү: <ph name="COLOR" /></translation>
 <translation id="5005498671520578047">Сырсөздү көчүрүү</translation>
@@ -1064,6 +1064,7 @@
 <translation id="5431252637281434233">Аккаунтуңуздан чыгасыз</translation>
 <translation id="543338862236136125">Сырсөздү түзөтүү</translation>
 <translation id="5433691172869980887">Колдонуучунун аты көчүрүлдү</translation>
+<translation id="5437480232219631455">Бул жерде Gemini'ды ача аласыз</translation>
 <translation id="5439618055789623719"><ph name="USER_EMAIL" /> катары кирдиңиз</translation>
 <translation id="5443636120437209490">Демейки шартта серептөө ыңгайлуу</translation>
 <translation id="5444892875087332195">Кыстармалар</translation>
@@ -1650,7 +1651,6 @@
 <translation id="7724085059277147439">{count,plural, =1{Объект Google аккаунтуңузга ({email}) сакталды}other{Объекттер Google аккаунтуңузга ({email}) сакталды}}</translation>
 <translation id="7729458878441927652">Башка түзмөктөрүңүздөгү өтмөктөрдү көрүү үчүн өтмөктөрүңүздү жана таржымалды шайкештириңиз.</translation>
 <translation id="7730020510075123961">Жок, маалыматтарды бириктирүү</translation>
-<translation id="7730973429297233609"><ph name="FILENAME" /> (<ph name="FILESIZE" />) сактала турган аккаунтту тандаңыз</translation>
 <translation id="7733646263819020771"><ph name="BOOKMRK_NAME" />. Ушул түзмөктө гана.</translation>
 <translation id="7744192722284567281">Сырсөз уурдалды</translation>
 <translation id="7749790401023484470">Текст тандаңыз.</translation>
@@ -1834,7 +1834,6 @@
 <translation id="8428045167754449968">Шаар/Шаарча</translation>
 <translation id="8428213095426709021">Параметрлер</translation>
 <translation id="8428634594422941299">Түшүнүктүү</translation>
-<translation id="8430694217306051839"><ph name="FILENAME" /> (<ph name="FILE_SIZE" />) файлы кайда сакталарын тандаңыз</translation>
 <translation id="8434837876193928924">Өтмөк тобунун чоо-жайы</translation>
 <translation id="8438566539970814960">Издөө жана серептөө аракеттериңизди жакшыртыңыз</translation>
 <translation id="8439758443371991593">"Окуу тизмесине кошуу" дегенди жашыруу</translation>
diff --git a/ios/chrome/app/strings/resources/ios_strings_lo.xtb b/ios/chrome/app/strings/resources/ios_strings_lo.xtb
index 65e370c..ea3858a 100644
--- a/ios/chrome/app/strings/resources/ios_strings_lo.xtb
+++ b/ios/chrome/app/strings/resources/ios_strings_lo.xtb
@@ -623,6 +623,7 @@
 <translation id="3596414637720633074">ບລັອກຄຸກກີ້ພາກສ່ວນທີສາມໃນໂໝດບໍ່ເປີດເຜີຍຕົວຕົນ</translation>
 <translation id="3602260545951981695">ເລືອກ "ການປົກປ້ອງທີ່ປັບປຸງດີຂຶ້ນ"</translation>
 <translation id="3608436266458100337">ໂໝດເຄື່ອງອ່ານ</translation>
+<translation id="3610041351087301930">ເຊື່ອງໂໝດຜູ້ອື່ນ</translation>
 <translation id="3622175633937495219">ປະຫວັດການຊອກຫາ (ພົບ <ph name="COUNT" /> ລາຍການ)</translation>
 <translation id="3625008969091706597">ທ່ານສາມາດປັດຂອບເພື່ອກັບຄືນໄດ້.</translation>
 <translation id="362709345066740529">ປັບແຕ່ງບັດ, ຟີດ ແລະ ອື່ນໆຂອງທ່ານຢູ່ບ່ອນນີ້</translation>
@@ -964,7 +965,6 @@
 <translation id="4979397965658815378">ເຂົ້າສູ່ລະບົບດ້ວຍບັນຊີ Google ຂອງທ່ານເພື່ອໃຊ້ບຸກມາກ, ລະຫັດຜ່ານ, ປະຫວັດ ແລະ ການຕັ້ງຄ່າອື່ນຢູ່ໃນທຸກອຸປະກອນຂອງທ່ານ</translation>
 <translation id="4985921635659180565">ເມື່ອໄຟລ໌ຖືກກຳນົດເວລາໃຫ້ຖືກລຶບແລ້ວ, ມັນບໍ່ສາມາດຍົກເລີກໄດ້.</translation>
 <translation id="498624032394115435">ທຸກຄົນທີ່ມີລິ້ງສາມາດແກ້ໄຂແຖບທັງໝົດໄດ້.</translation>
-<translation id="4989065233040279145">ເລືອກບ່ອນທີ່ຈະບັນທຶກ <ph name="FILENAME" /></translation>
 <translation id="499122600724363620"><ph name="NAME" />, <ph name="EMAIL" /> ຈັດການໂດຍອົງກອນຂອງທ່ານ.</translation>
 <translation id="4992255726304765516">ສີຂອງກຸ່ມແຖບ <ph name="COLOR" /></translation>
 <translation id="5005498671520578047">ອັດ​ສຳ​ເນົາ​ລະ​ຫັດ​ຜ່ານ</translation>
@@ -1064,6 +1064,7 @@
 <translation id="5431252637281434233">ທ່ານຈະອອກຈາກລະບົບ</translation>
 <translation id="543338862236136125">ແກ້ໄຂລະຫັດຜ່ານ</translation>
 <translation id="5433691172869980887">ສຳເນົາຊື່ຜູ້ໃຊ້ແລ້ວ</translation>
+<translation id="5437480232219631455">ທ່ານສາມາດເປີດ Gemini ໄດ້ບ່ອນນີ້</translation>
 <translation id="5439618055789623719">ເຂົ້າສູ່ລະບົບເປັນ <ph name="USER_EMAIL" /> ແລ້ວ</translation>
 <translation id="5443636120437209490">ການເລືອກເບິ່ງທີ່ດີຂຶ້ນໂດຍຄ່າເລີ່ມຕົ້ນ</translation>
 <translation id="5444892875087332195">ບຸກມາກ</translation>
@@ -1650,7 +1651,6 @@
 <translation id="7724085059277147439">{count,plural, =1{ບັນທຶກລາຍການໄວ້ໃນບັນຊີ Google ຂອງທ່ານ, ເຊິ່ງແມ່ນ {email} ແລ້ວ}other{ບັນທຶກລາຍການໄວ້ໃນບັນຊີ Google ຂອງທ່ານ, ເຊິ່ງແມ່ນ {email} ແລ້ວ}}</translation>
 <translation id="7729458878441927652">ເພື່ອເບິ່ງແຖບຕ່າງໆຈາກອຸປະກອນອື່ນຂອງທ່ານ, ໃຫ້ຊິ້ງຂໍ້ມູນແຖບ ແລະ ປະຫວັດຂອງທ່ານ.</translation>
 <translation id="7730020510075123961">ບໍ່, ຮວມຂໍ້ມູນ</translation>
-<translation id="7730973429297233609">ເລືອກບັນຊີທີ່ທ່ານຕ້ອງການໃຊ້ເພື່ອບັນທຶກ <ph name="FILENAME" /> - <ph name="FILESIZE" /></translation>
 <translation id="7733646263819020771"><ph name="BOOKMRK_NAME" />. ສະເພາະຢູ່ອຸປະກອນນີ້.</translation>
 <translation id="7744192722284567281">ພົບເຫັນໃນການລະເມີດຂໍ້ມູນ</translation>
 <translation id="7749790401023484470">ທ່ານຍັງບໍ່ໄດ້ເລືອກຂໍ້ຄວາມໃດເທື່ອ.</translation>
@@ -1834,7 +1834,6 @@
 <translation id="8428045167754449968">ເມືອງ</translation>
 <translation id="8428213095426709021">ການ​ຕັ້ງຄ່າ</translation>
 <translation id="8428634594422941299">ເຂົ້າໃຈແລ້ວ</translation>
-<translation id="8430694217306051839">ເລືອກບ່ອນທີ່ຈະບັນທຶກ <ph name="FILENAME" /> (<ph name="FILE_SIZE" />)</translation>
 <translation id="8434837876193928924">ລາຍລະອຽດກຸ່ມແຖບ</translation>
 <translation id="8438566539970814960">ເຮັດໃຫ້ການຊອກຫາ ແລະ ການທ່ອງເວັບດີຂຶ້ນ</translation>
 <translation id="8439758443371991593">ເຊື່ອງ ເພີ່ມໃສ່ລາຍຊື່ການອ່ານ</translation>
diff --git a/ios/chrome/app/strings/resources/ios_strings_lt.xtb b/ios/chrome/app/strings/resources/ios_strings_lt.xtb
index 460779b4..c3c94cc8 100644
--- a/ios/chrome/app/strings/resources/ios_strings_lt.xtb
+++ b/ios/chrome/app/strings/resources/ios_strings_lt.xtb
@@ -623,6 +623,7 @@
 <translation id="3596414637720633074">Blokuoti trečiųjų šalių slapukus inkognito režimu</translation>
 <translation id="3602260545951981695">Pasirinkite „Sustiprinta apsauga“</translation>
 <translation id="3608436266458100337">Skait. režimas</translation>
+<translation id="3610041351087301930">Slėpti skaitytoją</translation>
 <translation id="3622175633937495219">Paieškos istorija (rasta: <ph name="COUNT" />)</translation>
 <translation id="3625008969091706597">Galite perbraukti kraštą, kad grįžtumėte.</translation>
 <translation id="362709345066740529">Čia galite tinkinti korteles, sklaidos kanalą ir kt.</translation>
@@ -964,7 +965,6 @@
 <translation id="4979397965658815378">Prisijunkite naudodami „Google“ paskyrą, kad gautumėte žymes, slaptažodžius, istoriją ir kitus nustatymus visuose įrenginiuose</translation>
 <translation id="4985921635659180565">Kai failas suplanuotas ištrinti, jo negalima atšaukti.</translation>
 <translation id="498624032394115435">Visi nuorodą turintys žmonės gali redaguoti visus skirtukus.</translation>
-<translation id="4989065233040279145">Pasirinkite, kur išsaugoti „<ph name="FILENAME" />“</translation>
 <translation id="499122600724363620"><ph name="NAME" />, <ph name="EMAIL" />, valdo jūsų organizacija.</translation>
 <translation id="4992255726304765516">Skirtukų grupės spalva <ph name="COLOR" /></translation>
 <translation id="5005498671520578047">Kopijuoti slaptažodį</translation>
@@ -1064,6 +1064,7 @@
 <translation id="5431252637281434233">Būsite atjungti</translation>
 <translation id="543338862236136125">Redaguoti slaptažodį</translation>
 <translation id="5433691172869980887">Naudotojo vardas nukopijuotas</translation>
+<translation id="5437480232219631455">Čia galite atidaryti „Gemini“</translation>
 <translation id="5439618055789623719">Prisijungta kaip <ph name="USER_EMAIL" /></translation>
 <translation id="5443636120437209490">Geresnis naršymas pagal numatytuosius nustatymus</translation>
 <translation id="5444892875087332195">Žymės</translation>
@@ -1650,7 +1651,6 @@
 <translation id="7724085059277147439">{count,plural, =1{Elementas išsaugotas „Google“ paskyroje ({email})}one{Elementai išsaugoti „Google“ paskyroje ({email})}few{Elementai išsaugoti „Google“ paskyroje ({email})}many{Elementai išsaugoti „Google“ paskyroje ({email})}other{Elementai išsaugoti „Google“ paskyroje ({email})}}</translation>
 <translation id="7729458878441927652">Jei norite peržiūrėti kitų įrenginių skirtukus, sinchronizuokite skirtukus ir istoriją.</translation>
 <translation id="7730020510075123961">Ne, sujungti duomenis</translation>
-<translation id="7730973429297233609">Pasirinkite paskyrą, kurią norite naudoti, kad išsaugotumėte „<ph name="FILENAME" />“ – <ph name="FILESIZE" /></translation>
 <translation id="7733646263819020771"><ph name="BOOKMRK_NAME" />. Tik šiame įrenginyje.</translation>
 <translation id="7744192722284567281">Rasta duomenų saugos pažeidime</translation>
 <translation id="7749790401023484470">Nepasirinkote jokio teksto.</translation>
@@ -1834,7 +1834,6 @@
 <translation id="8428045167754449968">Didm. / miest.</translation>
 <translation id="8428213095426709021">Nustatymai</translation>
 <translation id="8428634594422941299">Supratau</translation>
-<translation id="8430694217306051839">Pasirinkite, kur išsaugoti „<ph name="FILENAME" />“ (<ph name="FILE_SIZE" />)</translation>
 <translation id="8434837876193928924">Išsami skirtukų grupės informacija</translation>
 <translation id="8438566539970814960">Tobulinti paieškas ir naršymą</translation>
 <translation id="8439758443371991593">Slėpti parinktį „Pridėti prie skaitymo sąrašo“</translation>
diff --git a/ios/chrome/app/strings/resources/ios_strings_lv.xtb b/ios/chrome/app/strings/resources/ios_strings_lv.xtb
index ea26cc5..a419fe4 100644
--- a/ios/chrome/app/strings/resources/ios_strings_lv.xtb
+++ b/ios/chrome/app/strings/resources/ios_strings_lv.xtb
@@ -623,6 +623,7 @@
 <translation id="3596414637720633074">Inkognito režīmā bloķēt trešo pušu sīkfailus</translation>
 <translation id="3602260545951981695">Atlasiet vienumu “Uzlabota aizsardzība”.</translation>
 <translation id="3608436266458100337">Lasītāja režīms</translation>
+<translation id="3610041351087301930">Paslēpt lasītāju</translation>
 <translation id="3622175633937495219">Meklēšanas vēsture (atrasti rezultāti: <ph name="COUNT" />)</translation>
 <translation id="3625008969091706597">Varat vilkt no malas, lai pārietu atpakaļ.</translation>
 <translation id="362709345066740529">Šeit varat pielāgot kartītes, plūsmu un citu saturu.</translation>
@@ -964,7 +965,6 @@
 <translation id="4979397965658815378">Pierakstieties Google kontā, lai izmantotu savas grāmatzīmes, paroles, vēsturi un citus Chrome datus visās jūsu ierīcēs.</translation>
 <translation id="4985921635659180565">Kad ir ieplānota kāda faila dzēšana, to vairs nevar atcelt.</translation>
 <translation id="498624032394115435">Ikviens, kam ir saite, var rediģēt visas cilnes.</translation>
-<translation id="4989065233040279145">Izvēlieties faila <ph name="FILENAME" /> saglabāšanas vietu</translation>
 <translation id="499122600724363620"><ph name="NAME" />, <ph name="EMAIL" /> (pārvalda jūsu organizācija).</translation>
 <translation id="4992255726304765516">Ciļņu grupas krāsa: <ph name="COLOR" /></translation>
 <translation id="5005498671520578047">Paroles kopēšana</translation>
@@ -1064,6 +1064,7 @@
 <translation id="5431252637281434233">Jūs tiksiet izrakstīts</translation>
 <translation id="543338862236136125">Rediģēt paroli</translation>
 <translation id="5433691172869980887">Lietotājvārds ir nokopēts.</translation>
+<translation id="5437480232219631455">Šeit varat atvērt Gemini</translation>
 <translation id="5439618055789623719">Pierakstījies kā <ph name="USER_EMAIL" /></translation>
 <translation id="5443636120437209490">Labāka pārlūkošana pēc noklusējuma</translation>
 <translation id="5444892875087332195">Grāmatzīmes</translation>
@@ -1650,7 +1651,6 @@
 <translation id="7724085059277147439">{count,plural, =1{Vienums ir saglabāts jūsu Google kontā ({email})}zero{Vienumi ir saglabāti jūsu Google kontā ({email})}one{Vienumi ir saglabāti jūsu Google kontā ({email})}other{Vienumi ir saglabāti jūsu Google kontā ({email})}}</translation>
 <translation id="7729458878441927652">Lai skatītu cilnes no citām savām ierīcēm, sinhronizējiet cilnes un vēsturi.</translation>
 <translation id="7730020510075123961">Nē, sapludināt datus</translation>
-<translation id="7730973429297233609">Atlasiet kontu, kuru vēlaties izmantot, lai saglabātu failu “<ph name="FILENAME" />” (<ph name="FILESIZE" />).</translation>
 <translation id="7733646263819020771"><ph name="BOOKMRK_NAME" />. Tikai šajā ierīcē.</translation>
 <translation id="7744192722284567281">Atklāta datu aizsardzības pārkāpuma dēļ</translation>
 <translation id="7749790401023484470">Jūs neatlasījāt tekstu.</translation>
@@ -1834,7 +1834,6 @@
 <translation id="8428045167754449968">Pilsēta/ciems</translation>
 <translation id="8428213095426709021">Iestatījumi</translation>
 <translation id="8428634594422941299">Labi</translation>
-<translation id="8430694217306051839">Izvēlieties faila <ph name="FILENAME" /> (<ph name="FILE_SIZE" />) saglabāšanas vietu</translation>
 <translation id="8434837876193928924">Informācija par ciļņu grupu</translation>
 <translation id="8438566539970814960">Uzlabot meklēšanu un pārlūkošanu</translation>
 <translation id="8439758443371991593">Paslēpt vienumu “Pievienot lasīšanas sarakstam”</translation>
diff --git a/ios/chrome/app/strings/resources/ios_strings_mk.xtb b/ios/chrome/app/strings/resources/ios_strings_mk.xtb
index 0e1b4dc9..0bc168ed 100644
--- a/ios/chrome/app/strings/resources/ios_strings_mk.xtb
+++ b/ios/chrome/app/strings/resources/ios_strings_mk.xtb
@@ -623,6 +623,7 @@
 <translation id="3596414637720633074">Блокирај колачиња од трети страни во „Инкогнито“</translation>
 <translation id="3602260545951981695">Изберете „Подобрена заштита“</translation>
 <translation id="3608436266458100337">Режим на читач</translation>
+<translation id="3610041351087301930">Скриј Reader Mode</translation>
 <translation id="3622175633937495219">Историја на пребарување (најдено: <ph name="COUNT" />)</translation>
 <translation id="3625008969091706597">Може да го повлечете работ за да се вратите назад.</translation>
 <translation id="362709345066740529">Приспособете ги картичките, активноста и друго овде</translation>
@@ -964,7 +965,6 @@
 <translation id="4979397965658815378">Најавете се со сметката на Google за да ги добиете обележувачите, лозинките, историјата и другите поставки на сите ваши уреди.</translation>
 <translation id="4985921635659180565">Штом некоја датотека ќе се закаже за бришење, тоа не може да се откаже.</translation>
 <translation id="498624032394115435">Секој што го има линкот може да ги изменува сите картички.</translation>
-<translation id="4989065233040279145">Изберете каде да се зачувува <ph name="FILENAME" /></translation>
 <translation id="499122600724363620"><ph name="NAME" />, <ph name="EMAIL" />, управувана од вашата организација.</translation>
 <translation id="4992255726304765516">Боја на групата картички: <ph name="COLOR" /></translation>
 <translation id="5005498671520578047">Копирање лозинка</translation>
@@ -1064,6 +1064,7 @@
 <translation id="5431252637281434233">Ќе се одјавите</translation>
 <translation id="543338862236136125">Измени ја лозинката</translation>
 <translation id="5433691172869980887">Корисничкото име е копирано</translation>
+<translation id="5437480232219631455">Може да го отворите Gemini тука</translation>
 <translation id="5439618055789623719">Најавени сте како <ph name="USER_EMAIL" /></translation>
 <translation id="5443636120437209490">Стандардно подобро прелистување</translation>
 <translation id="5444892875087332195">Обележувачи</translation>
@@ -1650,7 +1651,6 @@
 <translation id="7724085059277147439">{count,plural, =1{Ставката е зачувана во вашата сметка на Google, {email}}one{Ставките се зачувани во вашата сметка на Google, {email}}other{Ставките се зачувани во вашата сметка на Google, {email}}}</translation>
 <translation id="7729458878441927652">За да ги гледате картичките од другите ваши уреди, синхронизирајте ги вашите картички и историја.</translation>
 <translation id="7730020510075123961">Не, спој ги податоците</translation>
-<translation id="7730973429297233609">Изберете ја сметката што сакате да се користи за зачувување на <ph name="FILENAME" /> - <ph name="FILESIZE" /></translation>
 <translation id="7733646263819020771"><ph name="BOOKMRK_NAME" />. Само на уредов.</translation>
 <translation id="7744192722284567281">Откриена при упад во податоци</translation>
 <translation id="7749790401023484470">Не избравте текст.</translation>
@@ -1834,7 +1834,6 @@
 <translation id="8428045167754449968">Град</translation>
 <translation id="8428213095426709021">Поставки</translation>
 <translation id="8428634594422941299">Сфатив</translation>
-<translation id="8430694217306051839">Изберете каде да се зачувува <ph name="FILENAME" /> (<ph name="FILE_SIZE" />)</translation>
 <translation id="8434837876193928924">Детали за групата картички</translation>
 <translation id="8438566539970814960">Подобрете ги пребарувањата и прелистувањето</translation>
 <translation id="8439758443371991593">Скриј „Додај во список за читање“</translation>
diff --git a/ios/chrome/app/strings/resources/ios_strings_ml.xtb b/ios/chrome/app/strings/resources/ios_strings_ml.xtb
index bc1451fa..3060524 100644
--- a/ios/chrome/app/strings/resources/ios_strings_ml.xtb
+++ b/ios/chrome/app/strings/resources/ios_strings_ml.xtb
@@ -965,7 +965,6 @@
 <translation id="4979397965658815378">എല്ലാ ഉപകരണങ്ങളിലും നിങ്ങളുടെ ബുക്ക്‌മാർക്കുകൾ, പാസ്‌വേഡുകൾ, ചരിത്രം, മറ്റ് ക്രമീകരണം എന്നിവ ലഭിക്കാൻ Google Account ഉപയോഗിച്ച് സൈൻ ഇൻ ചെയ്യുക</translation>
 <translation id="4985921635659180565">ഒരു ഫയൽ ഇല്ലാതാക്കാൻ ഷെഡ്യൂൾ ചെയ്‌തുകഴിഞ്ഞാൽ, അത് റദ്ദാക്കാനാകില്ല.</translation>
 <translation id="498624032394115435">ലിങ്കുള്ള ആർക്ക് വേണമെങ്കിലും എല്ലാ ടാബുകളും എഡിറ്റ് ചെയ്യാം.</translation>
-<translation id="4989065233040279145"><ph name="FILENAME" /> എവിടെ സംരക്ഷിക്കണമെന്ന് തിരഞ്ഞെടുക്കുക</translation>
 <translation id="499122600724363620"><ph name="NAME" />, <ph name="EMAIL" />, നിങ്ങളുടെ സ്ഥാപനം മാനേജ് ചെയ്യുന്നത്.</translation>
 <translation id="4992255726304765516">ടാബ് ഗ്രൂപ്പ് നിറം <ph name="COLOR" /></translation>
 <translation id="5005498671520578047">പാസ്‌വേഡ് പകർത്തുക</translation>
@@ -1652,7 +1651,6 @@
 <translation id="7724085059277147439">{count,plural, =1{{email} എന്ന Google Account-ൽ ഇനം സംരക്ഷിച്ചു}other{{email} എന്ന Google Account-ൽ ഇനങ്ങൾ സംരക്ഷിച്ചു}}</translation>
 <translation id="7729458878441927652">നിങ്ങളുടെ മറ്റ് ഉപകരണങ്ങളിൽ നിന്നുള്ള ടാബുകൾ കാണാൻ, ടാബുകളും ചരിത്രവും സമന്വയിപ്പിക്കുക.</translation>
 <translation id="7730020510075123961">വേണ്ട, ഡാറ്റ ലയിപ്പിക്കുക</translation>
-<translation id="7730973429297233609"><ph name="FILENAME" /> - <ph name="FILESIZE" /> സംരക്ഷിക്കാൻ നിങ്ങൾ ഉപയോഗിക്കാൻ ആഗ്രഹിക്കുന്ന അക്കൗണ്ട് തിരഞ്ഞെടുക്കുക</translation>
 <translation id="7733646263819020771"><ph name="BOOKMRK_NAME" />. ഈ ഉപകരണത്തിൽ മാത്രം.</translation>
 <translation id="7744192722284567281">ഡാറ്റാ ലംഘനത്തിൽ കണ്ടെത്തി</translation>
 <translation id="7749790401023484470">നിങ്ങൾ ടെക്സ്റ്റൊന്നും തിരഞ്ഞെടുത്തിട്ടില്ല.</translation>
@@ -1836,7 +1834,6 @@
 <translation id="8428045167754449968">നഗരം / പട്ടണം</translation>
 <translation id="8428213095426709021">ക്രമീകരണം</translation>
 <translation id="8428634594422941299">മനസ്സിലായി</translation>
-<translation id="8430694217306051839"><ph name="FILENAME" /> (<ph name="FILE_SIZE" />) എവിടെ സംരക്ഷിക്കണമെന്ന് തിരഞ്ഞെടുക്കുക</translation>
 <translation id="8434837876193928924">ടാബ് ഗ്രൂപ്പ് വിശദാംശങ്ങൾ</translation>
 <translation id="8438566539970814960">തിരയലുകളും ബ്രൗസിംഗും മികച്ചതാക്കുക</translation>
 <translation id="8439758443371991593">'വായിക്കാനുള്ളവയുടെ ലിസ്റ്റിലേക്ക് ചേർക്കുക' മറയ്ക്കുക</translation>
diff --git a/ios/chrome/app/strings/resources/ios_strings_mn.xtb b/ios/chrome/app/strings/resources/ios_strings_mn.xtb
index d663afe..a29c50c 100644
--- a/ios/chrome/app/strings/resources/ios_strings_mn.xtb
+++ b/ios/chrome/app/strings/resources/ios_strings_mn.xtb
@@ -623,6 +623,7 @@
 <translation id="3596414637720633074">Нууцлалтай горимд гуравдагч талын күүкиг блоклох</translation>
 <translation id="3602260545951981695">"Сайжруулсан хамгаалалт"-ыг сонгоно уу</translation>
 <translation id="3608436266458100337">Уншигчийн горим</translation>
+<translation id="3610041351087301930">Уншигч горимыг нуух</translation>
 <translation id="3622175633937495219">Хайлтын түүх (<ph name="COUNT" /> олдсон)</translation>
 <translation id="3625008969091706597">Та буцахын тулд ирмэгээс шудрах боломжтой.</translation>
 <translation id="362709345066740529">Карт, хангамж болон бусад зүйлээ энд өөрчилнө үү</translation>
@@ -964,7 +965,6 @@
 <translation id="4979397965658815378">Хавчуурга, нууц үг, түүх болон бусад тохиргоог бүх төхөөрөмждөө авахын тулд Google Бүртгэлээрээ нэвтэрнэ үү</translation>
 <translation id="4985921635659180565">Файлыг устгах хуваарь гаргасны дараа цуцлах боломжгүй.</translation>
 <translation id="498624032394115435">Холбоостой дурын хүн бүх табыг засах боломжтой.</translation>
-<translation id="4989065233040279145"><ph name="FILENAME" />-г хаана хадгалахыг сонгоно уу</translation>
 <translation id="499122600724363620">Танай байгууллагаас тохиргоо хийсэн <ph name="NAME" />, <ph name="EMAIL" />.</translation>
 <translation id="4992255726304765516">Табын бүлгийн <ph name="COLOR" /> өнгө</translation>
 <translation id="5005498671520578047">Нууц үг хуулах</translation>
@@ -1064,6 +1064,7 @@
 <translation id="5431252637281434233">Таныг гаргана</translation>
 <translation id="543338862236136125">Нууц үг засах</translation>
 <translation id="5433691172869980887">Хэрэглэгчийн нэрийг хуулсан</translation>
+<translation id="5437480232219631455">Та эндээс Gemini-г нээж болно</translation>
 <translation id="5439618055789623719"><ph name="USER_EMAIL" />-р нэвтэрсэн</translation>
 <translation id="5443636120437209490">Өгөгдмөлөөр илүү сайн үзээрэй</translation>
 <translation id="5444892875087332195">Хавчуурга</translation>
@@ -1650,7 +1651,6 @@
 <translation id="7724085059277147439">{count,plural, =1{Таны {email} Google Бүртгэлд зүйлийг хадгалсан}other{Таны {email} Google Бүртгэлд зүйлсийг хадгалсан}}</translation>
 <translation id="7729458878441927652">Бусад төхөөрөмжийнхөө табуудыг харахын тулд табууд болон түүхээ синк хийнэ үү.</translation>
 <translation id="7730020510075123961">Үгүй, өгөгдлийг нэгтгэнэ үү</translation>
-<translation id="7730973429297233609">Та <ph name="FILENAME" /> - <ph name="FILESIZE" />-г хадгалахыг хүсэж буй бүртгэлээ сонгоно уу</translation>
 <translation id="7733646263819020771"><ph name="BOOKMRK_NAME" />. Зөвхөн энэ төхөөрөмжид.</translation>
 <translation id="7744192722284567281">Өгөгдлийн зөрчилд олдсон</translation>
 <translation id="7749790401023484470">Та ямар ч текст сонгоогүй.</translation>
@@ -1834,7 +1834,6 @@
 <translation id="8428045167754449968">Хот / Тосгон</translation>
 <translation id="8428213095426709021">Тохиргоо</translation>
 <translation id="8428634594422941299">Ойлголоо</translation>
-<translation id="8430694217306051839"><ph name="FILENAME" />-г (<ph name="FILE_SIZE" />) хаана хадгалахыг сонгоно уу</translation>
 <translation id="8434837876193928924">Табын бүлгийн дэлгэрэнгүй мэдээлэл</translation>
 <translation id="8438566539970814960">Хайлт болон хөтлөх явцыг сайжруулаарай</translation>
 <translation id="8439758443371991593">Унших жагсаалтад нэмэхийг нуух</translation>
diff --git a/ios/chrome/app/strings/resources/ios_strings_mr.xtb b/ios/chrome/app/strings/resources/ios_strings_mr.xtb
index 9ea846c..4f2b693 100644
--- a/ios/chrome/app/strings/resources/ios_strings_mr.xtb
+++ b/ios/chrome/app/strings/resources/ios_strings_mr.xtb
@@ -623,6 +623,7 @@
 <translation id="3596414637720633074">तृतीय पक्ष कुकी गुप्त मोडमध्ये ब्लॉक करा</translation>
 <translation id="3602260545951981695">"वर्धित संरक्षण" निवडा</translation>
 <translation id="3608436266458100337">वाचक मोड</translation>
+<translation id="3610041351087301930">रीडर लपवा</translation>
 <translation id="3622175633937495219">शोध इतिहास (<ph name="COUNT" /> आढळले)</translation>
 <translation id="3625008969091706597">तुम्ही मागे जाण्यासाठी कडेवर स्‍वाइप करू शकता.</translation>
 <translation id="362709345066740529">इथे तुमची कार्ड, फीड आणि आणखी बरेच काही कस्टमाइझ करा</translation>
@@ -964,7 +965,6 @@
 <translation id="4979397965658815378">आपल्या सर्व डिव्हाइसेसवर तुमचे बुकमार्क, पासवर्ड, इतिहास आणि अन्य सेटिंग्ज प्राप्त करण्यासाठी आपल्या Google खात्यासह साइन इन करा</translation>
 <translation id="4985921635659180565">फाइल हटवली जाण्यासाठी शेड्यूल केल्यानंतर, ती रद्द केली जाऊ शकत नाही.</translation>
 <translation id="498624032394115435">लिंक असलेली कोणतीही व्यक्ती सर्व टॅब संपादित करू शकते.</translation>
-<translation id="4989065233040279145"><ph name="FILENAME" /> कुठे सेव्ह करायची आहे हे निवडा</translation>
 <translation id="499122600724363620"><ph name="NAME" />, <ph name="EMAIL" />, तुमच्या संस्थेने व्यवस्थापित केला आहे.</translation>
 <translation id="4992255726304765516">टॅब गटाचा रंग <ph name="COLOR" /></translation>
 <translation id="5005498671520578047">पासवर्ड कॉपी करा</translation>
@@ -1064,6 +1064,7 @@
 <translation id="5431252637281434233">तुम्हाला साइन आउट केले जाईल</translation>
 <translation id="543338862236136125">पासवर्ड संपादित करा</translation>
 <translation id="5433691172869980887">वापरकर्ता नाव कॉपी केले</translation>
+<translation id="5437480232219631455">तुम्ही इथे Gemini उघडू शकता</translation>
 <translation id="5439618055789623719"><ph name="USER_EMAIL" /> म्हणून साइन इन केले आहे</translation>
 <translation id="5443636120437209490">बाय डीफॉल्ट आणखी चांगले ब्राउझिंग</translation>
 <translation id="5444892875087332195">बुकमार्क</translation>
@@ -1651,7 +1652,6 @@
 <translation id="7724085059277147439">{count,plural, =1{तुमच्या {email} या Google खाते मध्ये आयटम सेव्ह केला आहे}other{तुमच्या {email} या Google खाते मध्ये आयटम सेव्ह केले आहेत}}</translation>
 <translation id="7729458878441927652">तुमच्या इतर डिव्हाइसवरील टॅब पाहण्यासाठी, तुमचे टॅब आणि इतिहास सिंक करा.</translation>
 <translation id="7730020510075123961">नाही, डेटा मर्ज करा</translation>
-<translation id="7730973429297233609">तुम्हाला <ph name="FILENAME" /> - <ph name="FILESIZE" /> सेव्ह करण्यासाठी वापरायचे असलेले खाते निवडा</translation>
 <translation id="7733646263819020771"><ph name="BOOKMRK_NAME" />. फक्त या डिव्हाइसवर.</translation>
 <translation id="7744192722284567281">डेटा भंग करत असल्याचे आढळले</translation>
 <translation id="7749790401023484470">तुम्ही कोणताही मजकूर निवडला नाही.</translation>
@@ -1835,7 +1835,6 @@
 <translation id="8428045167754449968">शहर / नगर</translation>
 <translation id="8428213095426709021">सेटिंग्ज</translation>
 <translation id="8428634594422941299">समजले</translation>
-<translation id="8430694217306051839"><ph name="FILENAME" /> (<ph name="FILE_SIZE" />) कुठे सेव्ह करायची आहे हे निवडा</translation>
 <translation id="8434837876193928924">टॅब गटाचे तपशील</translation>
 <translation id="8438566539970814960">शोध आणि ब्राउझ करणे चांगले करा</translation>
 <translation id="8439758443371991593">वाचन सूची मध्ये जोडा हे लपवा</translation>
diff --git a/ios/chrome/app/strings/resources/ios_strings_ms.xtb b/ios/chrome/app/strings/resources/ios_strings_ms.xtb
index 7e44962..71c71ef 100644
--- a/ios/chrome/app/strings/resources/ios_strings_ms.xtb
+++ b/ios/chrome/app/strings/resources/ios_strings_ms.xtb
@@ -965,7 +965,6 @@
 <translation id="4979397965658815378">Log masuk dengan Google Account anda untuk mendapatkan penanda halaman, kata laluan, sejarah dan tetapan anda yang lain pada semua peranti anda</translation>
 <translation id="4985921635659180565">Setelah fail dijadualkan untuk dipadamkan, tindakan tersebut tidak boleh dibatalkan.</translation>
 <translation id="498624032394115435">Sesiapa sahaja yang mempunyai pautan boleh mengedit semua tab.</translation>
-<translation id="4989065233040279145">Pilih lokasi untuk menyimpan <ph name="FILENAME" /></translation>
 <translation id="499122600724363620"><ph name="NAME" />, <ph name="EMAIL" />, diurus oleh organisasi anda.</translation>
 <translation id="4992255726304765516">Kumpulan tab berwarna <ph name="COLOR" /></translation>
 <translation id="5005498671520578047">Salin kata laluan</translation>
@@ -1652,7 +1651,6 @@
 <translation id="7724085059277147439">{count,plural, =1{Item yang disimpan dalam Google Account anda, {email}}other{Item yang disimpan dalam Google Account anda, {email}}}</translation>
 <translation id="7729458878441927652">Untuk melihat tab daripada peranti anda yang lain, segerakkan tab dan sejarah anda.</translation>
 <translation id="7730020510075123961">Tidak, gabungkan data</translation>
-<translation id="7730973429297233609">Pilih akaun yang mahu digunakan untuk menyimpan <ph name="FILENAME" /> - <ph name="FILESIZE" /></translation>
 <translation id="7733646263819020771"><ph name="BOOKMRK_NAME" />. Hanya pada peranti ini.</translation>
 <translation id="7744192722284567281">Ditemukan dalam pelanggaran data</translation>
 <translation id="7749790401023484470">Anda tidak memilih apa-apa teks.</translation>
@@ -1836,7 +1834,6 @@
 <translation id="8428045167754449968">Bandar / Pekan</translation>
 <translation id="8428213095426709021">Tetapan</translation>
 <translation id="8428634594422941299">OK</translation>
-<translation id="8430694217306051839">Pilih lokasi untuk menyimpan <ph name="FILENAME" /> (<ph name="FILE_SIZE" />)</translation>
 <translation id="8434837876193928924">Butiran kumpulan tab</translation>
 <translation id="8438566539970814960">Mempertingkatkan carian dan penyemakan imbas</translation>
 <translation id="8439758443371991593">Sembunyikan Tambahkan pada Senarai Bacaan</translation>
diff --git a/ios/chrome/app/strings/resources/ios_strings_my.xtb b/ios/chrome/app/strings/resources/ios_strings_my.xtb
index 5f40b902..71c85a1 100644
--- a/ios/chrome/app/strings/resources/ios_strings_my.xtb
+++ b/ios/chrome/app/strings/resources/ios_strings_my.xtb
@@ -623,6 +623,7 @@
 <translation id="3596414637720633074">'ရုပ်ဖျက်' မုဒ်တွင် ပြင်ပကုမ္ပဏီ၏ ကွတ်ကီးများကို ပိတ်ပါ</translation>
 <translation id="3602260545951981695">“အဆင့်မြင့်ကာကွယ်မှု” ကိုရွေးပါ</translation>
 <translation id="3608436266458100337">ဖတ်သူ မုဒ်</translation>
+<translation id="3610041351087301930">ဖတ်ရှုမုဒ်ကို ဖျောက်ရန်</translation>
 <translation id="3622175633937495219">ရှာဖွေမှတ်တမ်း (<ph name="COUNT" /> ခု တွေ့သည်)</translation>
 <translation id="3625008969091706597">နောက်သို့ပြန်သွားရန် အစွန်းကို ပွတ်ဆွဲနိုင်သည်။</translation>
 <translation id="362709345066740529">သင့်ကတ်များ၊ ဖိဒ် စသည်တို့ကို ဤနေရာတွင် စိတ်ကြိုက်လုပ်နိုင်သည်</translation>
@@ -964,7 +965,6 @@
 <translation id="4979397965658815378">သင့်စက်ပစ္စည်းများအားလုံးပေါ်တွင် စာညှပ်များ၊ စကားဝှက်များ၊ မှတ်တမ်းနှင့် အခြားဆက်တင်များ ရယူအသုံးပြုနိုင်ရန် သင့် Google အကောင့်ဖြင့် လက်မှတ်ထိုးဝင်ပါ</translation>
 <translation id="4985921635659180565">ဖိုင်ကို ဖျက်ရန် အချိန်ဇယားဆွဲထားပါက ပယ်ဖျက်၍မရပါ။</translation>
 <translation id="498624032394115435">လင့်ခ်ရှိသူတိုင်း တဘ်အားလုံးကို တည်းဖြတ်နိုင်သည်။</translation>
-<translation id="4989065233040279145"><ph name="FILENAME" /> သိမ်းမည့်နေရာ ရွေးပါ</translation>
 <translation id="499122600724363620">သင်၏အဖွဲ့အစည်းက စီမံခန့်ခွဲသည့် <ph name="NAME" />၊ <ph name="EMAIL" />။</translation>
 <translation id="4992255726304765516">တဘ်အုပ်စု အရောင် <ph name="COLOR" /></translation>
 <translation id="5005498671520578047">စကားဝှက်ကို ကူးယူပါ</translation>
@@ -1064,6 +1064,7 @@
 <translation id="5431252637281434233">သင် ထွက်သွားမည်</translation>
 <translation id="543338862236136125">စကားဝှက်ကို တည်းဖြတ်ခြင်း</translation>
 <translation id="5433691172869980887">အသုံးပြုသူအမည်ကို ကူးပြီးပါပြီ</translation>
+<translation id="5437480232219631455">Gemini ကို ဤနေရာတွင် ဖွင့်နိုင်သည်</translation>
 <translation id="5439618055789623719"><ph name="USER_EMAIL" /> အဖြစ် လက်မှတ်ထိုးဝင်ထားသည်</translation>
 <translation id="5443636120437209490">မူရင်းသတ်မှတ်ချက်ထားပါက ဘရောက်စ်လုပ်ရပိုကောင်းသည်</translation>
 <translation id="5444892875087332195">လိပ်စာများ</translation>
@@ -1649,7 +1650,6 @@
 <translation id="7724085059277147439">{count,plural, =1{Google Account {email} ၌သိမ်းထားသောအရာ}other{Google Account {email} ၌သိမ်းထားသောအရာများ}}</translation>
 <translation id="7729458878441927652">အခြားစက်များမှ တဘ်များကို ကြည့်ရန် တဘ်နှင့် မှတ်တမ်းများကို စင့်ခ်လုပ်ပါ။</translation>
 <translation id="7730020510075123961">ပေါင်းစည်းရန်ဒေတာ မရှိပါ</translation>
-<translation id="7730973429297233609"><ph name="FILENAME" /> - <ph name="FILESIZE" /> ကိုသိမ်းရန် သုံးလိုသည့်အကောင့် ရွေးပါ</translation>
 <translation id="7733646263819020771"><ph name="BOOKMRK_NAME" />။ ဤစက်တွင်သာ။</translation>
 <translation id="7744192722284567281">ဒေတာကျိုးပေါက်မှုတွင် တွေ့ထားသည်</translation>
 <translation id="7749790401023484470">မည်သည့်စာသားမျှ ရွေးမထားပါ။</translation>
@@ -1833,7 +1833,6 @@
 <translation id="8428045167754449968">မြို့တော် / မြို့</translation>
 <translation id="8428213095426709021">ဆက်တင်များ</translation>
 <translation id="8428634594422941299">ရပါပြီ</translation>
-<translation id="8430694217306051839"><ph name="FILENAME" /> သိမ်းမည့်နေရာ ရွေးပါ (<ph name="FILE_SIZE" />)</translation>
 <translation id="8434837876193928924">တဘ်အုပ်စု အသေးစိတ်</translation>
 <translation id="8438566539970814960">ရှာဖွေမှုနှင့် ဖွင့်ကြည့်မှု ပိုမိုကောင်းမွန်လာအောင် လုပ်ခြင်း</translation>
 <translation id="8439758443371991593">‘ဖတ်ရန်စာရင်းတွင် ထည့်ရန်’ ကိုဖျောက်ရန်</translation>
diff --git a/ios/chrome/app/strings/resources/ios_strings_ne.xtb b/ios/chrome/app/strings/resources/ios_strings_ne.xtb
index 88fbd11..53b78189 100644
--- a/ios/chrome/app/strings/resources/ios_strings_ne.xtb
+++ b/ios/chrome/app/strings/resources/ios_strings_ne.xtb
@@ -623,6 +623,7 @@
 <translation id="3596414637720633074">इन्कोग्निटो मोडमा तेस्रो पक्षीय कुकीहरूमाथि रोक लगाउनुहोस्</translation>
 <translation id="3602260545951981695">"उन्नत सुरक्षा" छान्नुहोस्</translation>
 <translation id="3608436266458100337">पाठक मोड</translation>
+<translation id="3610041351087301930">रिडर लुकाउनुहोस्</translation>
 <translation id="3622175633937495219">सर्च हिस्ट्री (<ph name="COUNT" /> वटा सामग्री भेटिए)</translation>
 <translation id="3625008969091706597">तपाईं किनारा स्वाइप गरेर पछाडि जान सक्नुहुन्छ।</translation>
 <translation id="362709345066740529">यहाँ आफ्ना कार्ड, फिड र थप कुरा कस्टमाइज गर्नुहोस्</translation>
@@ -964,7 +965,6 @@
 <translation id="4979397965658815378">आफ्ना सबै यन्त्रहरूमा आफ्ना पुस्तक चिन्ह, इतिहास, पासवर्ड र अन्य सेटिङहरू प्राप्त गर्न आफ्नो Google खाता मार्फत साइन इन गर्नुहोस्।</translation>
 <translation id="4985921635659180565">फाइल मेटाउने समय तोकिसकेपछि उक्त कारबाही रद्द गर्न मिल्दैन।</translation>
 <translation id="498624032394115435">यो लिंक हुने सबै जना सबै ट्याब सम्पादन गर्न सक्छन्।</translation>
-<translation id="4989065233040279145"><ph name="FILENAME" /> सेभ गर्ने ठाउँ छनौट गर्नुहोस्</translation>
 <translation id="499122600724363620"><ph name="NAME" />, <ph name="EMAIL" />। यो खाता तपाईंको सङ्गठनले व्यवस्थापन गर्छ।</translation>
 <translation id="4992255726304765516">ट्याब समूहको रङ: <ph name="COLOR" /></translation>
 <translation id="5005498671520578047">पासवर्ड कपी गर्नुहोस्</translation>
@@ -1064,6 +1064,7 @@
 <translation id="5431252637281434233">तपाईंलाई साइन आउट गरिने छ</translation>
 <translation id="543338862236136125">पासवर्ड सम्पादन गर्नुहोस्</translation>
 <translation id="5433691172869980887">युजरनेम कपी गरियो</translation>
+<translation id="5437480232219631455">तपाईं यहाँ Gemini खोल्न सक्नुहुन्छ</translation>
 <translation id="5439618055789623719"><ph name="USER_EMAIL" /> मार्फत साइन इन गरिएको छ</translation>
 <translation id="5443636120437209490">स्वतः अझ राम्रो ब्राउजिङ</translation>
 <translation id="5444892875087332195">बुकमार्कहरू</translation>
@@ -1650,7 +1651,6 @@
 <translation id="7724085059277147439">{count,plural, =1{तपाईंको Google खातामा सेभ गरिएको सामग्री, {email}}other{तपाईंको Google खातामा सेभ गरिएका सामग्री, {email}}}</translation>
 <translation id="7729458878441927652">आफूले अन्य डिभाइसमा खोलेका ट्याबहरू हेर्न आफ्ना ट्याब र हिस्ट्री सिंक गर्नुहोस्।</translation>
 <translation id="7730020510075123961">अहँ, डेटा मर्ज गर्नुहोस्</translation>
-<translation id="7730973429297233609">तपाईं <ph name="FILENAME" /> - <ph name="FILESIZE" /> जुन खातामा सेभ गर्न चाहनुहुन्छ त्यो खाता चयन गर्नुहोस्</translation>
 <translation id="7733646263819020771"><ph name="BOOKMRK_NAME" />। यो डिभाइसमा मात्र।</translation>
 <translation id="7744192722284567281">डेटा चोरीको घटनामा फेला परेको</translation>
 <translation id="7749790401023484470">तपाईंले कुनै पनि टेक्स्ट चयन गर्नुभएको छैन।</translation>
@@ -1834,7 +1834,6 @@
 <translation id="8428045167754449968">गाउँ / टोल</translation>
 <translation id="8428213095426709021">सेटिङहरू</translation>
 <translation id="8428634594422941299">बुझेँ</translation>
-<translation id="8430694217306051839"><ph name="FILENAME" /> (<ph name="FILE_SIZE" />) सेभ गर्ने ठाउँ छनौट गर्नुहोस्</translation>
 <translation id="8434837876193928924">ट्याब समूहसम्बन्धी विवरणहरू</translation>
 <translation id="8438566539970814960">खोज तथा ब्राउजिङलाई अझ राम्रो बनाउनुहोस्</translation>
 <translation id="8439758443371991593">"रिडिङ लिस्टमा हाल्नुहोस्" लुकाउनुहोस्</translation>
diff --git a/ios/chrome/app/strings/resources/ios_strings_nl.xtb b/ios/chrome/app/strings/resources/ios_strings_nl.xtb
index 4a616443..37d9f88 100644
--- a/ios/chrome/app/strings/resources/ios_strings_nl.xtb
+++ b/ios/chrome/app/strings/resources/ios_strings_nl.xtb
@@ -965,7 +965,6 @@
 <translation id="4979397965658815378">Log in met je Google-account om je bookmarks, wachtwoorden, geschiedenis en andere instellingen op al je apparaten te gebruiken</translation>
 <translation id="4985921635659180565">Zodra een bestand is gepland voor verwijdering, kan dit niet worden geannuleerd.</translation>
 <translation id="498624032394115435">Iedereen met de link kan alle tabbladen bewerken.</translation>
-<translation id="4989065233040279145">Kies een opslaglocatie voor <ph name="FILENAME" /></translation>
 <translation id="499122600724363620"><ph name="NAME" />, <ph name="EMAIL" />, beheerd door je organisatie.</translation>
 <translation id="4992255726304765516">Kleur van tabbladgroep <ph name="COLOR" /></translation>
 <translation id="5005498671520578047">Wachtwoord kopiëren</translation>
@@ -1652,7 +1651,6 @@
 <translation id="7724085059277147439">{count,plural, =1{Item opgeslagen in je Google-account, {email}}other{Items opgeslagen in je Google-account, {email}}}</translation>
 <translation id="7729458878441927652">Synchroniseer je tabbladen en geschiedenis om tabbladen van je andere apparaten te zien.</translation>
 <translation id="7730020510075123961">Nee, gegevens samenvoegen</translation>
-<translation id="7730973429297233609">Selecteer het account dat je wilt gebruiken om <ph name="FILENAME" /> - <ph name="FILESIZE" /> op te slaan</translation>
 <translation id="7733646263819020771"><ph name="BOOKMRK_NAME" />. Alleen op dit apparaat.</translation>
 <translation id="7744192722284567281">Gevonden in een gegevenslek</translation>
 <translation id="7749790401023484470">Je hebt geen tekst geselecteerd.</translation>
@@ -1836,7 +1834,6 @@
 <translation id="8428045167754449968">Stad/plaats</translation>
 <translation id="8428213095426709021">Instellingen</translation>
 <translation id="8428634594422941299">OK</translation>
-<translation id="8430694217306051839">Kies een opslaglocatie voor <ph name="FILENAME" /> (<ph name="FILE_SIZE" />)</translation>
 <translation id="8434837876193928924">Tabbladgroepgegevens</translation>
 <translation id="8438566539970814960">Zoekopdrachten en browsefunctionaliteit verbeteren</translation>
 <translation id="8439758443371991593">Toevoegen aan leeslijst verbergen</translation>
diff --git a/ios/chrome/app/strings/resources/ios_strings_no.xtb b/ios/chrome/app/strings/resources/ios_strings_no.xtb
index d1b28e4..2618d318 100644
--- a/ios/chrome/app/strings/resources/ios_strings_no.xtb
+++ b/ios/chrome/app/strings/resources/ios_strings_no.xtb
@@ -965,7 +965,6 @@
 <translation id="4979397965658815378">Logg på med Google-kontoen din for å få bokmerkene, passordene, loggoppføringene og de andre innstillingene dine på alle enhetene du bruker</translation>
 <translation id="4985921635659180565">Når en fil er planlagt slettet, kan ikke dette avbrytes.</translation>
 <translation id="498624032394115435">Alle som har linken, kan redigere alle faner.</translation>
-<translation id="4989065233040279145">Velg hvor du vil lagre <ph name="FILENAME" /></translation>
 <translation id="499122600724363620"><ph name="NAME" />, <ph name="EMAIL" />, administreres av organisasjonen din.</translation>
 <translation id="4992255726304765516">Farge på fanegruppe: <ph name="COLOR" /></translation>
 <translation id="5005498671520578047">Kopiér passordet</translation>
@@ -1652,7 +1651,6 @@
 <translation id="7724085059277147439">{count,plural, =1{Elementet er lagret i Google-kontoen din, {email}}other{Elementene er lagret i Google-kontoen din, {email}}}</translation>
 <translation id="7729458878441927652">For å se faner fra de andre enhetene dine, synkroniser fanene dine og loggen din.</translation>
 <translation id="7730020510075123961">Nei, slå sammen data</translation>
-<translation id="7730973429297233609">Velg kontoen du vil bruke til å lagre <ph name="FILENAME" /> – <ph name="FILESIZE" /></translation>
 <translation id="7733646263819020771"><ph name="BOOKMRK_NAME" />. Bare på denne enheten.</translation>
 <translation id="7744192722284567281">Funnet i databrudd</translation>
 <translation id="7749790401023484470">Du har ikke merket noe tekst.</translation>
@@ -1836,7 +1834,6 @@
 <translation id="8428045167754449968">By/tettsted</translation>
 <translation id="8428213095426709021">Innstillinger</translation>
 <translation id="8428634594422941299">Greit</translation>
-<translation id="8430694217306051839">Velg hvor du vil lagre <ph name="FILENAME" /> (<ph name="FILE_SIZE" />)</translation>
 <translation id="8434837876193928924">Detaljer om fanegruppen</translation>
 <translation id="8438566539970814960">Gjør søking og surfing bedre</translation>
 <translation id="8439758443371991593">Skjul Legg til på leselisten</translation>
diff --git a/ios/chrome/app/strings/resources/ios_strings_or.xtb b/ios/chrome/app/strings/resources/ios_strings_or.xtb
index 58a4828c..57dc219 100644
--- a/ios/chrome/app/strings/resources/ios_strings_or.xtb
+++ b/ios/chrome/app/strings/resources/ios_strings_or.xtb
@@ -623,6 +623,7 @@
 <translation id="3596414637720633074">ଇନକଗ୍ନିଟୋ ମୋଡରେ ତୃତୀୟ-ପକ୍ଷ କୁକୀଗୁଡ଼ିକୁ ବ୍ଲକ୍ କରନ୍ତୁ</translation>
 <translation id="3602260545951981695">"ଉନ୍ନତ ସୁରକ୍ଷା" ବାଛନ୍ତୁ</translation>
 <translation id="3608436266458100337">ରିଡର୍ ମୋଡ୍</translation>
+<translation id="3610041351087301930">ରିଡରକୁ ଲୁଚାନ୍ତୁ</translation>
 <translation id="3622175633937495219">ସର୍ଚ୍ଚ ଇତିହାସ (<ph name="COUNT" /> ମିଳିଛି)</translation>
 <translation id="3625008969091706597">ପଛକୁ ଯିବା ପାଇଁ ଆପଣ ଧାରରେ ସ୍ୱାଇପ କରିପାରିବେ।</translation>
 <translation id="362709345066740529">ଏଠାରେ ଆପଣଙ୍କ କାର୍ଡ, ଫିଡ ଏବଂ ଆହୁରି ଅନେକ କିଛିକୁ କଷ୍ଟମାଇଜ କରନ୍ତୁ</translation>
@@ -964,7 +965,6 @@
 <translation id="4979397965658815378">ଆପଣଙ୍କର ସମସ୍ତ ଡିଭାଇସ୍‌ଗୁଡ଼ିକରେ ନିଜର ବୁକ୍‍ମାର୍କ, ଇତିବୃତ୍ତି, ପାସ୍‌ୱର୍ଡଗୁଡ଼ିକ ଏବଂ ଅନ୍ୟ ସେଟିଂସ୍ ପ୍ରାପ୍ତ କରିବାକୁ ଆପଣଙ୍କର Google ଆକାଉଣ୍ଟରେ ସାଇନ୍‌ ଇନ୍‌ କରନ୍ତୁ</translation>
 <translation id="4985921635659180565">କୌଣସି ଫାଇଲକୁ ଡିଲିଟ କରିବା ପାଇଁ ସିଡୁଲ କରାଯିବା ପରେ ଏହାକୁ ବାତିଲ କରାଯାଇପାରିବ ନାହିଁ।</translation>
 <translation id="498624032394115435">ଲିଙ୍କ ଥିବା ଯେ କୌଣସି ବ୍ୟକ୍ତି ସମସ୍ତ ଟାବକୁ ଏଡିଟ କରିପାରିବେ।</translation>
-<translation id="4989065233040279145"><ph name="FILENAME" />କୁ କେଉଁଠାରେ ସେଭ କରିବେ ତାହା ବାଛନ୍ତୁ</translation>
 <translation id="499122600724363620"><ph name="NAME" />, <ph name="EMAIL" />, ଆପଣଙ୍କ ସଂସ୍ଥା ଦ୍ୱାରା ପରିଚାଳିତ।</translation>
 <translation id="4992255726304765516">ଟାବ ଗ୍ରୁପର ରଙ୍ଗ<ph name="COLOR" /></translation>
 <translation id="5005498671520578047">ପାସ୍‍ୱର୍ଡ କପି କରନ୍ତୁ</translation>
@@ -1064,6 +1064,7 @@
 <translation id="5431252637281434233">ଆପଣ ସାଇନ ଆଉଟ ହୋଇଯିବେ</translation>
 <translation id="543338862236136125">ପାସ୍‍ୱାର୍ଡ ସମ୍ପାଦନ କରନ୍ତୁ</translation>
 <translation id="5433691172869980887">ଉପଯୋଗକର୍ତ୍ତାଙ୍କର ନାମ କପି କରାଗଲା</translation>
+<translation id="5437480232219631455">ଆପଣ ଏଠାରେ Geminiକୁ ଖୋଲିପାରିବେ</translation>
 <translation id="5439618055789623719"><ph name="USER_EMAIL" /> ଭାବରେ ସାଇନ୍ ଇନ୍ କରିଛନ୍ତି</translation>
 <translation id="5443636120437209490">ଡିଫଲ୍ଟ ଭାବେ ଉତ୍ତମ ବ୍ରାଉଜିଂ</translation>
 <translation id="5444892875087332195">ବୁକମାର୍କ</translation>
@@ -1650,7 +1651,6 @@
 <translation id="7724085059277147439">{count,plural, =1{ଆପଣଙ୍କ Google ଆକାଉଣ୍ଟ {email}ରେ ଆଇଟମ ସେଭ କରାଯାଇଛି}other{ଆପଣଙ୍କ Google ଆକାଉଣ୍ଟ {email}ରେ ଆଇଟମ ସେଭ କରାଯାଇଛି}}</translation>
 <translation id="7729458878441927652">ଆପଣଙ୍କ ଅନ୍ୟ ଡିଭାଇସଗୁଡ଼ିକରୁ ଟାବଗୁଡ଼ିକୁ ଦେଖିବା ପାଇଁ ଆପଣଙ୍କ ଟାବ ଏବଂ ଇତିହାସ ସିଙ୍କ କରନ୍ତୁ।</translation>
 <translation id="7730020510075123961">ନା, ଡାଟାକୁ ମର୍ଜ କରନ୍ତୁ</translation>
-<translation id="7730973429297233609"><ph name="FILENAME" /> - <ph name="FILESIZE" />କୁ ସେଭ କରିବା ପାଇଁ ଆପଣ ବ୍ୟବହାର କରିବାକୁ ଚାହୁଁଥିବା ଆକାଉଣ୍ଟକୁ ଚୟନ କରନ୍ତୁ</translation>
 <translation id="7733646263819020771"><ph name="BOOKMRK_NAME" />। କେବଳ ଏହି ଡିଭାଇସରେ।</translation>
 <translation id="7744192722284567281">ଡାଟା ଚୋରିରେ ପାସୱାର୍ଡ ମିଳିଛି</translation>
 <translation id="7749790401023484470">ଆପଣ କୌଣସି ଟେକ୍ସଟ ଚୟନ କରିନାହାଁନ୍ତି।</translation>
@@ -1834,7 +1834,6 @@
 <translation id="8428045167754449968">ବଡ଼ ସହର/ସହର</translation>
 <translation id="8428213095426709021">ସେଟିଂସ୍</translation>
 <translation id="8428634594422941299">ବୁଝିଗଲି</translation>
-<translation id="8430694217306051839"><ph name="FILENAME" /> (<ph name="FILE_SIZE" />)କୁ କେଉଁଠାରେ ସେଭ କରିବେ ତାହା ବାଛନ୍ତୁ</translation>
 <translation id="8434837876193928924">ଟାବ ଗ୍ରୁପର ବିବରଣୀ</translation>
 <translation id="8438566539970814960">ସନ୍ଧାନ ଓ ବ୍ରାଉଜିଂକୁ ଉନ୍ନତ କରନ୍ତୁ</translation>
 <translation id="8439758443371991593">'ପଢ଼ିବା ତାଲିକାରେ ଯୋଗ କରନ୍ତୁ'କୁ ଲୁଚାନ୍ତୁ</translation>
diff --git a/ios/chrome/app/strings/resources/ios_strings_pa.xtb b/ios/chrome/app/strings/resources/ios_strings_pa.xtb
index a21cef5..14cda858 100644
--- a/ios/chrome/app/strings/resources/ios_strings_pa.xtb
+++ b/ios/chrome/app/strings/resources/ios_strings_pa.xtb
@@ -623,6 +623,7 @@
 <translation id="3596414637720633074">ਇਨਕੋਗਨਿਟੋ ਵਿੱਚ ਤੀਜੀ-ਧਿਰ ਦੀਆਂ ਕੁਕੀਜ਼ ਨੂੰ ਬਲਾਕ ਕਰੋ</translation>
 <translation id="3602260545951981695">"ਵਿਸਤ੍ਰਿਤ ਸੁਰੱਖਿਆ" ਚੁਣੋ</translation>
 <translation id="3608436266458100337">ਪਾਠਕ ਮੋਡ</translation>
+<translation id="3610041351087301930">ਰੀਡਰ ਮੋਡ ਲੁਕਾਓ</translation>
 <translation id="3622175633937495219">ਖੋਜ ਇਤਿਹਾਸ (<ph name="COUNT" /> ਮੇਲ ਖਾਂਦੀਆਂ ਆਈਟਮਾਂ ਮਿਲੀਆਂ)</translation>
 <translation id="3625008969091706597">ਤੁਸੀਂ ਪਿੱਛੇ ਜਾਣ ਲਈ ਕੋਨੇ 'ਤੇ ਸਵਾਈਪ ਕਰ ਸਕਦੇ ਹੋ।</translation>
 <translation id="362709345066740529">ਇੱਥੇ ਆਪਣੇ ਕਾਰਡਾਂ, ਫ਼ੀਡ ਅਤੇ ਹੋਰ ਚੀਜ਼ਾਂ ਨੂੰ ਵਿਉਂਤਬੱਧ ਕਰੋ</translation>
@@ -964,7 +965,6 @@
 <translation id="4979397965658815378">ਆਪਣੇ ਸਾਰੇ ਡੀਵਾਈਸਾਂ 'ਤੇ ਆਪਣੇ ਬੁੱਕਮਾਰਕਾਂ, ਪਾਸਵਰਡਾਂ, ਇਤਿਹਾਸ ਅਤੇ ਹੋਰ ਸੈਟਿੰਗਾਂ ਨੂੰ ਪ੍ਰਾਪਤ ਕਰਨ ਲਈ ਆਪਣੇ Google ਖਾਤੇ ਨਾਲ ਸਾਈਨ-ਇਨ ਕਰੋ</translation>
 <translation id="4985921635659180565">ਇੱਕ ਵਾਰ ਜਦੋਂ ਫ਼ਾਈਲ ਨੂੰ ਮਿਟਾਉਣ ਲਈ ਨਿਯਤ ਕੀਤਾ ਜਾਂਦਾ ਹੈ, ਤਾਂ ਇਸ ਕਾਰਵਾਈ ਨੂੰ ਰੱਦ ਨਹੀਂ ਕੀਤਾ ਜਾ ਸਕਦਾ।</translation>
 <translation id="498624032394115435">ਜਿਸ ਕੋਲ ਵੀ ਲਿੰਕ ਹੈ, ਉਹ ਸਾਰੀਆਂ ਟੈਬਾਂ ਦਾ ਸੰਪਾਦਨ ਕਰ ਸਕਦਾ ਹੈ।</translation>
-<translation id="4989065233040279145"><ph name="FILENAME" /> ਰੱਖਿਅਤ ਕਰਨ ਲਈ ਕੋਈ ਥਾਂ ਚੁਣੋ</translation>
 <translation id="499122600724363620"><ph name="NAME" />, <ph name="EMAIL" />, ਤੁਹਾਡੀ ਸੰਸਥਾ ਵੱਲੋਂ ਪ੍ਰਬੰਧਿਤ ਹੈ।</translation>
 <translation id="4992255726304765516">ਟੈਬ ਗਰੁੱਪ ਦਾ ਰੰਗ <ph name="COLOR" /></translation>
 <translation id="5005498671520578047">ਪਾਸਵਰਡ ਕਾਪੀ ਕਰੋ</translation>
@@ -1064,6 +1064,7 @@
 <translation id="5431252637281434233">ਤੁਸੀਂ ਸਾਈਨ-ਆਊਟ ਹੋ ਜਾਵੋਗੇ</translation>
 <translation id="543338862236136125">ਪਾਸਵਰਡ ਦਾ ਸੰਪਾਦਨ ਕਰੋ</translation>
 <translation id="5433691172869980887">ਵਰਤੋਂਕਾਰ ਨਾਮ ਕਾਪੀ ਕੀਤਾ ਗਿਆ</translation>
+<translation id="5437480232219631455">ਤੁਸੀਂ ਇੱਥੇ Gemini ਖੋਲ੍ਹ ਸਕਦੇ ਹੋ</translation>
 <translation id="5439618055789623719"><ph name="USER_EMAIL" /> ਵਜੋਂ ਸਾਈਨ-ਇਨ ਹੋ</translation>
 <translation id="5443636120437209490">ਪੂਰਵ-ਨਿਰਧਾਰਿਤ ਤੌਰ 'ਤੇ ਬਿਹਤਰ ਬ੍ਰਾਊਜ਼ਿੰਗ</translation>
 <translation id="5444892875087332195">ਬੁੱਕਮਾਰਕ</translation>
@@ -1650,7 +1651,6 @@
 <translation id="7724085059277147439">{count,plural, =1{ਤੁਹਾਡੇ Google ਖਾਤੇ {email} ਵਿੱਚ ਰੱਖਿਅਤ ਕੀਤੀ ਆਈਟਮ}one{ਤੁਹਾਡੇ Google ਖਾਤੇ {email} ਵਿੱਚ ਰੱਖਿਅਤ ਕੀਤੀ ਆਈਟਮ}other{ਤੁਹਾਡੇ Google ਖਾਤੇ {email} ਵਿੱਚ ਰੱਖਿਅਤ ਕੀਤੀਆਂ ਆਈਟਮਾਂ}}</translation>
 <translation id="7729458878441927652">ਤੁਹਾਡੇ ਹੋਰ ਡੀਵਾਈਸਾਂ ਤੋਂ ਟੈਬਾਂ ਨੂੰ ਦੇਖਣ ਲਈ, ਆਪਣੀਆਂ ਟੈਬਾਂ ਅਤੇ ਇਤਿਹਾਸ ਨੂੰ ਸਿੰਕ ਕਰੋ।</translation>
 <translation id="7730020510075123961">ਨਹੀਂ, ਡਾਟਾ ਮਿਲਾਓ</translation>
-<translation id="7730973429297233609">ਉਹ ਖਾਤਾ ਚੁਣੋ ਜਿਸਦੀ ਵਰਤੋਂ ਤੁਸੀਂ <ph name="FILENAME" /> - <ph name="FILESIZE" /> ਨੂੰ ਰੱਖਿਅਤ ਕਰਨ ਲਈ ਵਰਤਣਾ ਚਾਹੁੰਦੇ ਹੋ</translation>
 <translation id="7733646263819020771"><ph name="BOOKMRK_NAME" />। ਸਿਰਫ਼ ਇਸ ਡੀਵਾਈਸ 'ਤੇ।</translation>
 <translation id="7744192722284567281">ਡਾਟਾ ਉਲੰਘਣਾ ਵਿੱਚ ਮਿਲਿਆ</translation>
 <translation id="7749790401023484470">ਤੁਸੀਂ ਕੋਈ ਲਿਖਤ ਨਹੀਂ ਚੁਣੀ।</translation>
@@ -1834,7 +1834,6 @@
 <translation id="8428045167754449968">ਸ਼ਹਿਰ / ਕਸਬਾ</translation>
 <translation id="8428213095426709021">ਸੈਟਿੰਗਾਂ</translation>
 <translation id="8428634594422941299">ਸਮਝ ਲਿਆ</translation>
-<translation id="8430694217306051839"><ph name="FILENAME" /> (<ph name="FILE_SIZE" />) ਰੱਖਿਅਤ ਕਰਨ ਲਈ ਕੋਈ ਥਾਂ ਚੁਣੋ</translation>
 <translation id="8434837876193928924">ਟੈਬ ਗਰੁੱਪ ਸੰਬੰਧੀ ਵੇਰਵੇ</translation>
 <translation id="8438566539970814960">ਖੋਜਾਂ ਅਤੇ ਬ੍ਰਾਊਜ਼ਿੰਗ ਬਿਹਤਰ ਬਣਾਓ</translation>
 <translation id="8439758443371991593">'ਪੜ੍ਹਨ-ਸੂਚੀ ਵਿੱਚ ਸ਼ਾਮਲ ਕਰੋ' ਨੂੰ ਲੁਕਾਓ</translation>
diff --git a/ios/chrome/app/strings/resources/ios_strings_pl.xtb b/ios/chrome/app/strings/resources/ios_strings_pl.xtb
index 2040deb..9b1696a 100644
--- a/ios/chrome/app/strings/resources/ios_strings_pl.xtb
+++ b/ios/chrome/app/strings/resources/ios_strings_pl.xtb
@@ -965,7 +965,6 @@
 <translation id="4979397965658815378">Zaloguj się na konto Google, by korzystać z zakładek, haseł, historii i innych ustawień na wszystkich urządzeniach</translation>
 <translation id="4985921635659180565">Zaplanowanego usunięcia pliku nie można anulować.</translation>
 <translation id="498624032394115435">Każda osoba, która ma link, może edytować wszystkie karty.</translation>
-<translation id="4989065233040279145">Wybierz, gdzie zapisać plik <ph name="FILENAME" /></translation>
 <translation id="499122600724363620"><ph name="NAME" />, <ph name="EMAIL" />, konto zarządzane przez Twoją organizację.</translation>
 <translation id="4992255726304765516">Kolor grupy kart: <ph name="COLOR" /></translation>
 <translation id="5005498671520578047">Skopiuj hasło</translation>
@@ -1652,7 +1651,6 @@
 <translation id="7724085059277147439">{count,plural, =1{Element został zapisany na Twoim koncie Google {email}}few{Elementy zostały zapisane na Twoim koncie Google {email}}many{Elementy zostały zapisane na Twoim koncie Google {email}}other{Elementy zostały zapisane na Twoim koncie Google {email}}}</translation>
 <translation id="7729458878441927652">Aby zobaczyć karty z innych urządzeń, zsynchronizuj karty i historię.</translation>
 <translation id="7730020510075123961">Nie, scal dane</translation>
-<translation id="7730973429297233609">Wybierz konto, którego chcesz użyć do zapisania pliku <ph name="FILENAME" /> – <ph name="FILESIZE" /></translation>
 <translation id="7733646263819020771"><ph name="BOOKMRK_NAME" />. Tylko na tym urządzeniu.</translation>
 <translation id="7744192722284567281">Doszło do naruszenia bezpieczeństwa danych</translation>
 <translation id="7749790401023484470">Nie wybrano żadnego tekstu.</translation>
@@ -1836,7 +1834,6 @@
 <translation id="8428045167754449968">Miejscowość</translation>
 <translation id="8428213095426709021">Ustawienia</translation>
 <translation id="8428634594422941299">OK</translation>
-<translation id="8430694217306051839">Wybierz, gdzie zapisać plik <ph name="FILENAME" /> (<ph name="FILE_SIZE" />)</translation>
 <translation id="8434837876193928924">Szczegóły grupy kart</translation>
 <translation id="8438566539970814960">Ulepsz wyszukiwanie i przeglądanie</translation>
 <translation id="8439758443371991593">Ukryj opcję Dodaj do listy Do przeczytania</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 0cb07d8..59215f4 100644
--- a/ios/chrome/app/strings/resources/ios_strings_pt-BR.xtb
+++ b/ios/chrome/app/strings/resources/ios_strings_pt-BR.xtb
@@ -623,6 +623,7 @@
 <translation id="3596414637720633074">Bloquear cookies de terceiros na navegação anônima</translation>
 <translation id="3602260545951981695">Escolha "Proteção reforçada"</translation>
 <translation id="3608436266458100337">Modo leitor</translation>
+<translation id="3610041351087301930">Ocultar leitor</translation>
 <translation id="3622175633937495219">Pesquisar no histórico (<ph name="COUNT" /> encontrados)</translation>
 <translation id="3625008969091706597">Deslize a borda da tela para voltar.</translation>
 <translation id="362709345066740529">Personalize os cards, o feed e muito mais</translation>
@@ -964,7 +965,6 @@
 <translation id="4979397965658815378">Faça login com sua Conta do Google para ter seus favoritos, senhas, histórico e outras configurações em todos os seus dispositivos</translation>
 <translation id="4985921635659180565">Não é possível cancelar a exclusão programada de um arquivo.</translation>
 <translation id="498624032394115435">Qualquer pessoa com o link pode editar todas as guias.</translation>
-<translation id="4989065233040279145">Escolha um local para salvar <ph name="FILENAME" /></translation>
 <translation id="499122600724363620"><ph name="NAME" />, <ph name="EMAIL" />, gerenciado pela sua organização.</translation>
 <translation id="4992255726304765516">Cor do grupo de guias <ph name="COLOR" /></translation>
 <translation id="5005498671520578047">Copiar senha</translation>
@@ -1064,6 +1064,7 @@
 <translation id="5431252637281434233">Sua conta será desconectada</translation>
 <translation id="543338862236136125">Editar senha</translation>
 <translation id="5433691172869980887">Nome de usuário copiado</translation>
+<translation id="5437480232219631455">Você pode abrir o Gemini aqui</translation>
 <translation id="5439618055789623719">Conta conectada: <ph name="USER_EMAIL" /></translation>
 <translation id="5443636120437209490">Melhor navegação por padrão</translation>
 <translation id="5444892875087332195">Favoritos</translation>
@@ -1642,7 +1643,7 @@
 <translation id="7695953765525234038">Barra de pesquisa</translation>
 <translation id="7696316012653762532">Opções para traduzir a página</translation>
 <translation id="7700527812567437847">Pesquisar na tela com o Google Lens</translation>
-<translation id="7701040980221191251">Não há</translation>
+<translation id="7701040980221191251">Nenhum</translation>
 <translation id="7708994397325774423">Acesse todas as suas senhas</translation>
 <translation id="7711440461521638739">Você não está reutilizando senhas</translation>
 <translation id="7712361583414030698">Mostrando a versão off-line</translation>
@@ -1650,7 +1651,6 @@
 <translation id="7724085059277147439">{count,plural, =1{Item salvo na sua Conta do Google {email}}one{Item salvo na sua Conta do Google {email}}other{Itens salvos na sua Conta do Google {email}}}</translation>
 <translation id="7729458878441927652">Para conferir as guias dos seus outros dispositivos, sincronize-as com o histórico.</translation>
 <translation id="7730020510075123961">Não, juntar dados</translation>
-<translation id="7730973429297233609">Selecione a conta que você quer usar para salvar o arquivo <ph name="FILENAME" /> (<ph name="FILESIZE" />)</translation>
 <translation id="7733646263819020771"><ph name="BOOKMRK_NAME" />. Somente neste dispositivo.</translation>
 <translation id="7744192722284567281">Encontrada em uma violação de dados</translation>
 <translation id="7749790401023484470">Você não selecionou nenhum texto.</translation>
@@ -1834,7 +1834,6 @@
 <translation id="8428045167754449968">Cidade</translation>
 <translation id="8428213095426709021">Configurações</translation>
 <translation id="8428634594422941299">Entendi</translation>
-<translation id="8430694217306051839">Escolha um local para salvar <ph name="FILENAME" /> (<ph name="FILE_SIZE" />)</translation>
 <translation id="8434837876193928924">Detalhes do grupo de guias</translation>
 <translation id="8438566539970814960">Melhorar as pesquisas e a navegação</translation>
 <translation id="8439758443371991593">Ocultar "Adicionar à Lista de leitura"</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 32b63307..9b74a5b 100644
--- a/ios/chrome/app/strings/resources/ios_strings_pt-PT.xtb
+++ b/ios/chrome/app/strings/resources/ios_strings_pt-PT.xtb
@@ -965,7 +965,6 @@
 <translation id="4979397965658815378">Inicie sessão com a sua Conta Google para aceder aos marcadores, às palavras-passe, ao histórico e a outras definições em todos os dispositivos</translation>
 <translation id="4985921635659180565">Quando é agendada a eliminação de um ficheiro, não é possível cancelá-la.</translation>
 <translation id="498624032394115435">Qualquer pessoa com o link pode editar todos os separadores.</translation>
-<translation id="4989065233040279145">Escolha onde quer guardar <ph name="FILENAME" /></translation>
 <translation id="499122600724363620"><ph name="NAME" />, <ph name="EMAIL" />, gerida pela sua organização.</translation>
 <translation id="4992255726304765516">Cor do grupo de separadores: <ph name="COLOR" /></translation>
 <translation id="5005498671520578047">Copiar palavra-passe</translation>
@@ -1652,7 +1651,6 @@
 <translation id="7724085059277147439">{count,plural, =1{Item guardado na sua Conta Google, {email}}other{Itens guardados na sua Conta Google, {email}}}</translation>
 <translation id="7729458878441927652">Para ver os separadores dos seus outros dispositivos, sincronize os separadores e o histórico.</translation>
 <translation id="7730020510075123961">Não, unir dados</translation>
-<translation id="7730973429297233609">Selecione a conta que quer usar para guardar <ph name="FILENAME" /> – <ph name="FILESIZE" /></translation>
 <translation id="7733646263819020771"><ph name="BOOKMRK_NAME" />. Só neste dispositivo.</translation>
 <translation id="7744192722284567281">Encontrada numa violação de dados</translation>
 <translation id="7749790401023484470">Não selecionou texto.</translation>
@@ -1836,7 +1834,6 @@
 <translation id="8428045167754449968">Cidade/Localidade</translation>
 <translation id="8428213095426709021">Definições</translation>
 <translation id="8428634594422941299">OK</translation>
-<translation id="8430694217306051839">Escolha onde quer guardar <ph name="FILENAME" /> (<ph name="FILE_SIZE" />)</translation>
 <translation id="8434837876193928924">Detalhes do grupo de separadores</translation>
 <translation id="8438566539970814960">Melhorar as pesquisas e a navegação</translation>
 <translation id="8439758443371991593">Ocultar Adicionar à Lista de leitura</translation>
diff --git a/ios/chrome/app/strings/resources/ios_strings_ro.xtb b/ios/chrome/app/strings/resources/ios_strings_ro.xtb
index 9e938ecd..7dfeb06 100644
--- a/ios/chrome/app/strings/resources/ios_strings_ro.xtb
+++ b/ios/chrome/app/strings/resources/ios_strings_ro.xtb
@@ -623,6 +623,7 @@
 <translation id="3596414637720633074">Blochează cookie-urile terță parte în modul incognito</translation>
 <translation id="3602260545951981695">Alege Protecție îmbunătățită</translation>
 <translation id="3608436266458100337">Modul Cititor</translation>
+<translation id="3610041351087301930">Ascunde modul Cititor</translation>
 <translation id="3622175633937495219">Istoricul căutărilor (găsite: <ph name="COUNT" />)</translation>
 <translation id="3625008969091706597">Poți să glisezi pe margine pentru a te deplasa înapoi.</translation>
 <translation id="362709345066740529">Personalizează-ți aici cardurile, feedul și multe altele</translation>
@@ -964,7 +965,6 @@
 <translation id="4979397965658815378">Conectează-te folosind Contul Google pentru a accesa marcajele, parolele, istoricul și alte setări pe toate dispozitivele</translation>
 <translation id="4985921635659180565">După ce un fișier este programat pentru ștergere, nu mai poate fi anulat.</translation>
 <translation id="498624032394115435">Oricine are linkul poate să editeze toate filele.</translation>
-<translation id="4989065233040279145">Alege unde vrei să salvezi <ph name="FILENAME" /></translation>
 <translation id="499122600724363620"><ph name="NAME" />, <ph name="EMAIL" />, gestionat de organizația ta.</translation>
 <translation id="4992255726304765516">Culoarea grupului de file <ph name="COLOR" /></translation>
 <translation id="5005498671520578047">Copiază parola</translation>
@@ -1064,6 +1064,7 @@
 <translation id="5431252637281434233">Vei fi deconectat(ă)</translation>
 <translation id="543338862236136125">Editează parola</translation>
 <translation id="5433691172869980887">Numele de utilizator a fost copiat</translation>
+<translation id="5437480232219631455">Poți deschide Gemini aici</translation>
 <translation id="5439618055789623719">Te-ai conectat ca <ph name="USER_EMAIL" /></translation>
 <translation id="5443636120437209490">Navigare mai eficientă în mod prestabilit</translation>
 <translation id="5444892875087332195">Marcaje</translation>
@@ -1650,7 +1651,6 @@
 <translation id="7724085059277147439">{count,plural, =1{Elementul a fost salvat în Contul Google {email}}few{Elementele au fost salvate în Contul Google {email}}other{Elementele au fost salvate în Contul Google {email}}}</translation>
 <translation id="7729458878441927652">Pentru a vedea filele de pe alte dispozitive, sincronizează filele și istoricul.</translation>
 <translation id="7730020510075123961">Nu, îmbină datele</translation>
-<translation id="7730973429297233609">Selectează contul pe care vrei să-l folosești pentru a economisi <ph name="FILENAME" /> – <ph name="FILESIZE" /></translation>
 <translation id="7733646263819020771"><ph name="BOOKMRK_NAME" />. Numai pe acest dispozitiv.</translation>
 <translation id="7744192722284567281">S-a găsit în urma încălcării securității datelor</translation>
 <translation id="7749790401023484470">Nu ai selectat niciun text.</translation>
@@ -1834,7 +1834,6 @@
 <translation id="8428045167754449968">Oraș</translation>
 <translation id="8428213095426709021">Setări</translation>
 <translation id="8428634594422941299">Am înțeles</translation>
-<translation id="8430694217306051839">Alege unde vrei să salvezi <ph name="FILENAME" /> (<ph name="FILE_SIZE" />)</translation>
 <translation id="8434837876193928924">Detaliile grupului de file</translation>
 <translation id="8438566539970814960">Îmbunătățește căutările și navigarea</translation>
 <translation id="8439758443371991593">Ascunde opțiunea Adaugă în lista de lecturi</translation>
diff --git a/ios/chrome/app/strings/resources/ios_strings_ru.xtb b/ios/chrome/app/strings/resources/ios_strings_ru.xtb
index f280e8c..e1af01ce 100644
--- a/ios/chrome/app/strings/resources/ios_strings_ru.xtb
+++ b/ios/chrome/app/strings/resources/ios_strings_ru.xtb
@@ -623,6 +623,7 @@
 <translation id="3596414637720633074">Блокировать файлы cookie сторонних сайтов в режиме инкогнито</translation>
 <translation id="3602260545951981695">Выберите параметр "Улучшенная защита".</translation>
 <translation id="3608436266458100337">Режим чтения</translation>
+<translation id="3610041351087301930">Скрыть режим чтения</translation>
 <translation id="3622175633937495219">Поиск в истории (совпадений: <ph name="COUNT" />)</translation>
 <translation id="3625008969091706597">Чтобы перейти назад, проведите пальцем по краю экрана.</translation>
 <translation id="362709345066740529">Настройте карточки, ленту и многое другое</translation>
@@ -964,7 +965,6 @@
 <translation id="4979397965658815378">Войдите в аккаунт Google, чтобы пользоваться своими закладками, паролями, историей и другими настройками на любом устройстве</translation>
 <translation id="4985921635659180565">Отменить запланированное удаление файла нельзя.</translation>
 <translation id="498624032394115435">Все, у кого есть ссылка, могут изменять любые вкладки.</translation>
-<translation id="4989065233040279145">Выберите, где сохранить файл "<ph name="FILENAME" />".</translation>
 <translation id="499122600724363620"><ph name="NAME" />, <ph name="EMAIL" />. Аккаунтом управляет ваша организация.</translation>
 <translation id="4992255726304765516">Цвет группы вкладок: <ph name="COLOR" /></translation>
 <translation id="5005498671520578047">Копировать пароль</translation>
@@ -1064,6 +1064,7 @@
 <translation id="5431252637281434233">Вы выйдете из аккаунта</translation>
 <translation id="543338862236136125">Изменить пароль</translation>
 <translation id="5433691172869980887">Имя пользователя скопировано</translation>
+<translation id="5437480232219631455">Здесь вы можете открыть Gemini.</translation>
 <translation id="5439618055789623719">Вы вошли в аккаунт <ph name="USER_EMAIL" />.</translation>
 <translation id="5443636120437209490">Сделайте браузером по умолчанию</translation>
 <translation id="5444892875087332195">Закладки</translation>
@@ -1650,7 +1651,6 @@
 <translation id="7724085059277147439">{count,plural, =1{Объект сохранен в вашем аккаунте Google ({email}).}one{Объекты сохранены в вашем аккаунте Google ({email}).}few{Объекты сохранены в вашем аккаунте Google ({email}).}many{Объекты сохранены в вашем аккаунте Google ({email}).}other{Объекты сохранены в вашем аккаунте Google ({email}).}}</translation>
 <translation id="7729458878441927652">Синхронизируйте вкладки и историю. Тогда вам станут доступны вкладки, открытые на других ваших устройствах.</translation>
 <translation id="7730020510075123961">Нет, объединить данные</translation>
-<translation id="7730973429297233609">Выберите аккаунт, в котором вы хотите сохранить файл "<ph name="FILENAME" />" (<ph name="FILESIZE" />).</translation>
 <translation id="7733646263819020771">Закладка <ph name="BOOKMRK_NAME" />. Только на этом устройстве.</translation>
 <translation id="7744192722284567281">Раскрыт при утечке данных</translation>
 <translation id="7749790401023484470">Выберите текст.</translation>
@@ -1834,7 +1834,6 @@
 <translation id="8428045167754449968">Город</translation>
 <translation id="8428213095426709021">Настройки</translation>
 <translation id="8428634594422941299">ОК</translation>
-<translation id="8430694217306051839">Выберите, где сохранить файл <ph name="FILENAME" /> (<ph name="FILE_SIZE" />).</translation>
 <translation id="8434837876193928924">Сведения о группе вкладок</translation>
 <translation id="8438566539970814960">Помогать улучшать просмотр страниц и поиск</translation>
 <translation id="8439758443371991593">Скрыть действие "Добавить в список для чтения"</translation>
diff --git a/ios/chrome/app/strings/resources/ios_strings_si.xtb b/ios/chrome/app/strings/resources/ios_strings_si.xtb
index 9a46902..5bfcc80 100644
--- a/ios/chrome/app/strings/resources/ios_strings_si.xtb
+++ b/ios/chrome/app/strings/resources/ios_strings_si.xtb
@@ -623,6 +623,7 @@
 <translation id="3596414637720633074">අප්‍රසිද්ධය තුළ තෙවන පාර්ශ්ව කුකී අවහිර කරන්න</translation>
 <translation id="3602260545951981695">"වැඩිදියුණු කළ ආරක්ෂාව" තෝරන්න</translation>
 <translation id="3608436266458100337">කියවීමේ ආකාරය</translation>
+<translation id="3610041351087301930">කියවනය සඟවන්න</translation>
 <translation id="3622175633937495219">සෙවීම් ඉතිහාසය (<ph name="COUNT" />ක් හමු විය)</translation>
 <translation id="3625008969091706597">ඔබට ආපසු යාමට දාරය ස්වයිප් කළ හැක.</translation>
 <translation id="362709345066740529">ඔබේ කාඩ්පත්, සංග්‍රහය සහ තවත් දේ මෙහි අභිරුචිකරණය කරන්න</translation>
@@ -964,7 +965,6 @@
 <translation id="4979397965658815378">ඔබගේ සියලුම උපාංග මත පිටුසන්, මුරපද, ඉතිහාසය හා අනෙකුත් සැකසීම් ලබා ගැනීමට ඔබගේ Google ගිණුම සමඟ පුරනය වන්න</translation>
 <translation id="4985921635659180565">ගොනුවක් මකා දැමීමට කාලසටහන්ගත කළ පසු, එය අවලංගු කළ නොහැක.</translation>
 <translation id="498624032394115435">සබැඳිය සහිත ඕනෑම අයෙකුට සියලු පටිති සංස්කරණය කළ හැක.</translation>
-<translation id="4989065233040279145"><ph name="FILENAME" /> සුරකින ස්ථානය තෝරා ගන්න</translation>
 <translation id="499122600724363620"><ph name="NAME" />, <ph name="EMAIL" />, ඔබේ සංවිධානය විසින් කළමනාකරණය කරනු ලැබේ.</translation>
 <translation id="4992255726304765516">පටිති සමූහ වර්ණය <ph name="COLOR" /></translation>
 <translation id="5005498671520578047">මුරපදය පිටපත් කරන්න</translation>
@@ -1064,6 +1064,7 @@
 <translation id="5431252637281434233">ඔබ වරනය වනු ඇත</translation>
 <translation id="543338862236136125">මුරපදය සංස්කරණ කරන්න</translation>
 <translation id="5433691172869980887">පරිශීලක නම පිටපත් කරන ලදී</translation>
+<translation id="5437480232219631455">ඔබට මෙහි Gemini විවෘත කළ හැක</translation>
 <translation id="5439618055789623719"><ph name="USER_EMAIL" /> ලෙස පුරන ලදි</translation>
 <translation id="5443636120437209490">පෙරනිමියෙන් වඩා හොඳ බ්‍රවුස් කිරීම</translation>
 <translation id="5444892875087332195">පිටුසන්</translation>
@@ -1650,7 +1651,6 @@
 <translation id="7724085059277147439">{count,plural, =1{ඔබේ Google ගිණුමේ, {email} අයිතමය සුරැකිණි}one{ඔබේ Google ගිණුමේ, {email} අයිතම සුරැකිණි}other{ඔබේ Google ගිණුමේ, {email} අයිතම සුරැකිණි}}</translation>
 <translation id="7729458878441927652">ඔබේ අනෙකුත් උපාංගවලින් පටිති බැලීම සඳහා, ඔබේ පටිති සහ ඉතිහාසය සමමුහුර්ත කරන්න.</translation>
 <translation id="7730020510075123961">නැහැ, දත්ත ඒකාබද්ධ කරන්න</translation>
-<translation id="7730973429297233609">ඔබට <ph name="FILENAME" /> - <ph name="FILESIZE" /> සුරැකීමට භාවිතා කිරීමට අවශ්‍ය ගිණුම තෝරන්න</translation>
 <translation id="7733646263819020771"><ph name="BOOKMRK_NAME" />. මෙම උපාංගය මත පමණි.</translation>
 <translation id="7744192722284567281">දත්ත කඩ කිරීම තුළ හමු විය</translation>
 <translation id="7749790401023484470">ඔබ කිසිදු පෙළක් තෝරා නැත.</translation>
@@ -1834,7 +1834,6 @@
 <translation id="8428045167754449968">නගරය / පුරවරය</translation>
 <translation id="8428213095426709021">සැකසුම්</translation>
 <translation id="8428634594422941299">තේරුණා</translation>
-<translation id="8430694217306051839"><ph name="FILENAME" /> (<ph name="FILE_SIZE" />) සුරකින ස්ථානය තෝරා ගන්න</translation>
 <translation id="8434837876193928924">පටිති සමූහ විස්තර</translation>
 <translation id="8438566539970814960">සෙවීම් සහ ගවේෂණය වඩා හොඳ කරන්න</translation>
 <translation id="8439758443371991593">කියවීම් ලැයිස්තුවට එක් කිරීම සඟවන්න</translation>
diff --git a/ios/chrome/app/strings/resources/ios_strings_sk.xtb b/ios/chrome/app/strings/resources/ios_strings_sk.xtb
index 0301243b..c838f7d5 100644
--- a/ios/chrome/app/strings/resources/ios_strings_sk.xtb
+++ b/ios/chrome/app/strings/resources/ios_strings_sk.xtb
@@ -623,6 +623,7 @@
 <translation id="3596414637720633074">Blokovať súbory cookie tretích strán v režime inkognito</translation>
 <translation id="3602260545951981695">Vyberte položku Rozšírená ochrana</translation>
 <translation id="3608436266458100337">Režim čítačky</translation>
+<translation id="3610041351087301930">Skryť čitateľa</translation>
 <translation id="3622175633937495219">Hľadať v histórii (nájdené: <ph name="COUNT" />)</translation>
 <translation id="3625008969091706597">Potiahnutím po okraji sa vrátite späť.</translation>
 <translation id="362709345066740529">Tu si môžete prispôsobiť karty, feed a ďalšie položky</translation>
@@ -964,7 +965,6 @@
 <translation id="4979397965658815378">Prihláste sa účtom Google a používajte svoje záložky, heslá, históriu a ďalšie nastavenia vo všetkých svojich zariadeniach</translation>
 <translation id="4985921635659180565">Po naplánovaní odstránenia súboru sa už táto akcia nedá zrušiť.</translation>
 <translation id="498624032394115435">Ktokoľvek s odkazom môže upravovať všetky karty.</translation>
-<translation id="4989065233040279145">Vyberte, kam sa má uložiť <ph name="FILENAME" /></translation>
 <translation id="499122600724363620">Účet <ph name="NAME" /> <ph name="EMAIL" /> spravovaný vašou organizáciou.</translation>
 <translation id="4992255726304765516">Farba skupiny kariet: <ph name="COLOR" /></translation>
 <translation id="5005498671520578047">Kopírovanie hesla</translation>
@@ -1064,6 +1064,7 @@
 <translation id="5431252637281434233">Systém vás odhlási</translation>
 <translation id="543338862236136125">Upraviť heslo</translation>
 <translation id="5433691172869980887">Používateľské meno bolo skopírované</translation>
+<translation id="5437480232219631455">Tu môžete otvoriť Gemini</translation>
 <translation id="5439618055789623719">Prihlásený účet: <ph name="USER_EMAIL" /></translation>
 <translation id="5443636120437209490">Predvolené lepšie prehliadanie</translation>
 <translation id="5444892875087332195">Záložky</translation>
@@ -1650,7 +1651,6 @@
 <translation id="7724085059277147439">{count,plural, =1{Položka bola uložená vo vašom účte Google {email}}few{Položky boli uložené vo vašom účte Google {email}}many{Items saved in your Google Account, {email}}other{Položky boli uložené vo vašom účte Google {email}}}</translation>
 <translation id="7729458878441927652">Ak chcete vidieť karty z vašich ostatných zariadení, synchronizujte si karty aj históriu.</translation>
 <translation id="7730020510075123961">Nie, zlúčiť dáta</translation>
-<translation id="7730973429297233609">Vyberte účet, pomocou ktorého chcete uložiť súbor <ph name="FILENAME" /> – <ph name="FILESIZE" /></translation>
 <translation id="7733646263819020771"><ph name="BOOKMRK_NAME" />. Iba v tomto zariadení.</translation>
 <translation id="7744192722284567281">Nájdené v rámci porušenia ochrany údajov</translation>
 <translation id="7749790401023484470">Nevybrali ste žiadny text.</translation>
@@ -1834,7 +1834,6 @@
 <translation id="8428045167754449968">Mesto</translation>
 <translation id="8428213095426709021">Nastavenia</translation>
 <translation id="8428634594422941299">Dobre</translation>
-<translation id="8430694217306051839">Vyberte, kam sa má <ph name="FILENAME" /> (<ph name="FILE_SIZE" />) uložiť</translation>
 <translation id="8434837876193928924">Podrobnosti skupiny kariet</translation>
 <translation id="8438566539970814960">Zlepšovať vyhľadávanie a prehliadanie</translation>
 <translation id="8439758443371991593">Skryť položku Pridať do čitateľského zoznamu</translation>
diff --git a/ios/chrome/app/strings/resources/ios_strings_sl.xtb b/ios/chrome/app/strings/resources/ios_strings_sl.xtb
index ea2e6d3..5852c34e 100644
--- a/ios/chrome/app/strings/resources/ios_strings_sl.xtb
+++ b/ios/chrome/app/strings/resources/ios_strings_sl.xtb
@@ -623,6 +623,7 @@
 <translation id="3596414637720633074">Blokiranje piškotkov tretjih oseb v anonimnem načinu</translation>
 <translation id="3602260545951981695">Izberite »Izboljšana zaščita«</translation>
 <translation id="3608436266458100337">Reader mode</translation>
+<translation id="3610041351087301930">Skrij bralnik</translation>
 <translation id="3622175633937495219">Zgodovina iskanja (najdeno: <ph name="COUNT" />)</translation>
 <translation id="3625008969091706597">Za premik nazaj lahko povlečete po robu.</translation>
 <translation id="362709345066740529">Tukaj lahko prilagodite kartice, vir in drugo</translation>
@@ -964,7 +965,6 @@
 <translation id="4979397965658815378">Prijavite se z Google Računom, da boste zaznamke, gesla, zgodovino in druge nastavitve imeli na voljo v vseh napravah.</translation>
 <translation id="4985921635659180565">Ko je datoteka načrtovana za izbris, tega ni mogoče preklicati.</translation>
 <translation id="498624032394115435">Vsi s povezavo lahko urejajo vse zavihke.</translation>
-<translation id="4989065233040279145">Izberite lokacijo za shranjevanje <ph name="FILENAME" /></translation>
 <translation id="499122600724363620"><ph name="NAME" />, <ph name="EMAIL" />, upravlja vaša organizacija.</translation>
 <translation id="4992255726304765516">Barva skupine zavihkov je <ph name="COLOR" /></translation>
 <translation id="5005498671520578047">Kopiranje gesla</translation>
@@ -1064,6 +1064,7 @@
 <translation id="5431252637281434233">Odjavljeni boste</translation>
 <translation id="543338862236136125">Uredi geslo</translation>
 <translation id="5433691172869980887">Uporabniško ime kopirano</translation>
+<translation id="5437480232219631455">Tukaj lahko odprete Geminija</translation>
 <translation id="5439618055789623719">Prijavljeni ste kot <ph name="USER_EMAIL" /></translation>
 <translation id="5443636120437209490">Privzeto boljše brskanje</translation>
 <translation id="5444892875087332195">Zaznamki</translation>
@@ -1650,7 +1651,6 @@
 <translation id="7724085059277147439">{count,plural, =1{Element je shranjen v računu Google, {email}}one{Elementi so shranjeni v računu Google, {email}}two{Elementi so shranjeni v računu Google, {email}}few{Elementi so shranjeni v računu Google, {email}}other{Elementi so shranjeni v računu Google, {email}}}</translation>
 <translation id="7729458878441927652">Če si želite ogledati zavihke iz drugih naprav, sinhronizirajte zavihke in zgodovino.</translation>
 <translation id="7730020510075123961">Ne, združi podatke</translation>
-<translation id="7730973429297233609">Izberite račun, ki ga želite uporabiti, da shranite <ph name="FILENAME" /> – <ph name="FILESIZE" /></translation>
 <translation id="7733646263819020771"><ph name="BOOKMRK_NAME" />. Samo v tej napravi.</translation>
 <translation id="7744192722284567281">Najdeno pri podatkovni kršitvi</translation>
 <translation id="7749790401023484470">Niste izbrali besedila.</translation>
@@ -1834,7 +1834,6 @@
 <translation id="8428045167754449968">Mesto</translation>
 <translation id="8428213095426709021">Nastavitve</translation>
 <translation id="8428634594422941299">Razumem</translation>
-<translation id="8430694217306051839">Izberite lokacijo za shranjevanje datoteke <ph name="FILENAME" /> (<ph name="FILE_SIZE" />)</translation>
 <translation id="8434837876193928924">Podrobnosti o skupini zavihkov</translation>
 <translation id="8438566539970814960">Izboljšanje iskanja in brskanja</translation>
 <translation id="8439758443371991593">Skrij Dodaj na bralni seznam</translation>
diff --git a/ios/chrome/app/strings/resources/ios_strings_sq.xtb b/ios/chrome/app/strings/resources/ios_strings_sq.xtb
index c10d6bf5..a1e217c2 100644
--- a/ios/chrome/app/strings/resources/ios_strings_sq.xtb
+++ b/ios/chrome/app/strings/resources/ios_strings_sq.xtb
@@ -623,6 +623,7 @@
 <translation id="3596414637720633074">Blloko kukit e palëve të treta në modalitetin "I fshehtë"</translation>
 <translation id="3602260545951981695">Zgjidh "Mbrojtjen e përmirësuar"</translation>
 <translation id="3608436266458100337">Modaliteti "lexues"</translation>
+<translation id="3610041351087301930">Fshih lexuesin</translation>
 <translation id="3622175633937495219">Historiku i kërkimeve (u gjetën <ph name="COUNT" />)</translation>
 <translation id="3625008969091706597">Mund të rrëshqasësh shpejt anash për të kaluar pas.</translation>
 <translation id="362709345066740529">Personalizo kartat, furnizimin dhe më shumë këtu</translation>
@@ -964,7 +965,6 @@
 <translation id="4979397965658815378">Identifikohu me llogarinë e Google për të marrë faqeshënuesit, fjalëkalimet, historikun dhe cilësime të tjera në të gjitha pajisjet e tua.</translation>
 <translation id="4985921635659180565">Pasi një skedar të planifikohet për t'u fshirë, kjo nuk mund të anulohet.</translation>
 <translation id="498624032394115435">Çdo person që ka lidhjen mund të modifikojë të gjitha skedat.</translation>
-<translation id="4989065233040279145">Zgjidh se ku do ta ruash skedarin <ph name="FILENAME" /></translation>
 <translation id="499122600724363620"><ph name="NAME" />, <ph name="EMAIL" />, menaxhohet nga organizata jote.</translation>
 <translation id="4992255726304765516">Ngjyra e grupit të skedave: <ph name="COLOR" /></translation>
 <translation id="5005498671520578047">Kopjo fjalëkalimin</translation>
@@ -1064,6 +1064,7 @@
 <translation id="5431252637281434233">Do të dalësh nga llogaria</translation>
 <translation id="543338862236136125">Redakto fjalëkalimin</translation>
 <translation id="5433691172869980887">Emri i përdoruesit u kopjua</translation>
+<translation id="5437480232219631455">Mund të hapësh Gemini këtu</translation>
 <translation id="5439618055789623719">Identifikuar si <ph name="USER_EMAIL" /></translation>
 <translation id="5443636120437209490">Shfletim më i mirë si parazgjedhje</translation>
 <translation id="5444892875087332195">Faqeshënuesit</translation>
@@ -1650,7 +1651,6 @@
 <translation id="7724085059277147439">{count,plural, =1{Artikulli i ruajtur në "Llogarinë tënde të Google", {email}}other{Artikujt e ruajtur në "Llogarinë tënde të Google", {email}}}</translation>
 <translation id="7729458878441927652">Për të parë skedat nga pajisjet e tua të tjera, sinkronizo skedat dhe historikun.</translation>
 <translation id="7730020510075123961">Jo, shkriji të dhënat</translation>
-<translation id="7730973429297233609">Zgjidh llogarinë që dëshiron të përdorësh për të ruajtur skedarin <ph name="FILENAME" /> - <ph name="FILESIZE" /></translation>
 <translation id="7733646263819020771"><ph name="BOOKMRK_NAME" />. Vetëm në këtë pajisje.</translation>
 <translation id="7744192722284567281">U gjet në një nxjerrje të paautorizuar të të dhënave</translation>
 <translation id="7749790401023484470">Nuk zgjodhe asnjë tekst.</translation>
@@ -1834,7 +1834,6 @@
 <translation id="8428045167754449968">Qyteti / Qyteza</translation>
 <translation id="8428213095426709021">Cilësimet</translation>
 <translation id="8428634594422941299">E kuptova</translation>
-<translation id="8430694217306051839">Zgjidh se ku do ta ruash skedarin <ph name="FILENAME" /> (<ph name="FILE_SIZE" />)</translation>
 <translation id="8434837876193928924">Detajet e grupit të skedave</translation>
 <translation id="8438566539970814960">Përmirëson kërkimet dhe shfletimin</translation>
 <translation id="8439758443371991593">Fshih "Shto te 'Lista e leximit'"</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 7d0dafb9..511a88c 100644
--- a/ios/chrome/app/strings/resources/ios_strings_sr-Latn.xtb
+++ b/ios/chrome/app/strings/resources/ios_strings_sr-Latn.xtb
@@ -965,7 +965,6 @@
 <translation id="4979397965658815378">Prijavite se pomoću Google naloga da biste imali obeleživače, lozinke, istoriju i druga podešavanja na svim uređajima</translation>
 <translation id="4985921635659180565">Kada se zakaže brisanje fajla, ne može da se otkaže.</translation>
 <translation id="498624032394115435">Svako sa linkom može da menja sve kartice.</translation>
-<translation id="4989065233040279145">Izaberite gde će fajl <ph name="FILENAME" /> biti sačuvan</translation>
 <translation id="499122600724363620"><ph name="NAME" />, <ph name="EMAIL" />, ovim upravlja organizacija.</translation>
 <translation id="4992255726304765516">Boja grupe kartica <ph name="COLOR" /></translation>
 <translation id="5005498671520578047">Kopiranje lozinke</translation>
@@ -1652,7 +1651,6 @@
 <translation id="7724085059277147439">{count,plural, =1{Stavka je sačuvana na Google nalogu, {email}}one{Stavke su sačuvane na Google nalogu, {email}}few{Stavke su sačuvane na Google nalogu, {email}}other{Stavke su sačuvane na Google nalogu, {email}}}</translation>
 <translation id="7729458878441927652">Da biste videli kartice sa drugih uređaja, sinhronizujte kartice i istoriju.</translation>
 <translation id="7730020510075123961">Ne, objedini podatke</translation>
-<translation id="7730973429297233609">Izaberite nalog koji želite da koristite da biste sačuvali <ph name="FILENAME" /> – <ph name="FILESIZE" /></translation>
 <translation id="7733646263819020771"><ph name="BOOKMRK_NAME" />. Samo na ovom uređaju.</translation>
 <translation id="7744192722284567281">Pronađeno u upadu u podatke</translation>
 <translation id="7749790401023484470">Niste izabrali nikakav tekst.</translation>
@@ -1836,7 +1834,6 @@
 <translation id="8428045167754449968">Grad/mesto</translation>
 <translation id="8428213095426709021">Podešavanja</translation>
 <translation id="8428634594422941299">Važi</translation>
-<translation id="8430694217306051839">Izaberite gde će fajl <ph name="FILENAME" /> biti sačuvan (<ph name="FILE_SIZE" />)</translation>
 <translation id="8434837876193928924">Detalji grupe kartica</translation>
 <translation id="8438566539970814960">Poboljšaj pretrage i pregledanje</translation>
 <translation id="8439758443371991593">Sakrij opciju Dodaj na listu za čitanje</translation>
diff --git a/ios/chrome/app/strings/resources/ios_strings_sr.xtb b/ios/chrome/app/strings/resources/ios_strings_sr.xtb
index 72743bb..cf1930a3 100644
--- a/ios/chrome/app/strings/resources/ios_strings_sr.xtb
+++ b/ios/chrome/app/strings/resources/ios_strings_sr.xtb
@@ -965,7 +965,6 @@
 <translation id="4979397965658815378">Пријавите се помоћу Google налога да бисте имали обележиваче, лозинке, историју и друга подешавања на свим уређајима</translation>
 <translation id="4985921635659180565">Када се закаже брисање фајла, не може да се откаже.</translation>
 <translation id="498624032394115435">Свако са линком може да мења све картице.</translation>
-<translation id="4989065233040279145">Изаберите где ће фајл <ph name="FILENAME" /> бити сачуван</translation>
 <translation id="499122600724363620"><ph name="NAME" />, <ph name="EMAIL" />, овим управља организација.</translation>
 <translation id="4992255726304765516">Боја групе картица <ph name="COLOR" /></translation>
 <translation id="5005498671520578047">Копирање лозинке</translation>
@@ -1652,7 +1651,6 @@
 <translation id="7724085059277147439">{count,plural, =1{Ставка је сачувана на Google налогу, {email}}one{Ставке су сачуване на Google налогу, {email}}few{Ставке су сачуване на Google налогу, {email}}other{Ставке су сачуване на Google налогу, {email}}}</translation>
 <translation id="7729458878441927652">Да бисте видели картице са других уређаја, синхронизујте картице и историју.</translation>
 <translation id="7730020510075123961">Не, обједини податке</translation>
-<translation id="7730973429297233609">Изаберите налог који желите да користите да бисте сачували <ph name="FILENAME" /> – <ph name="FILESIZE" /></translation>
 <translation id="7733646263819020771"><ph name="BOOKMRK_NAME" />. Само на овом уређају.</translation>
 <translation id="7744192722284567281">Пронађено у упаду у податке</translation>
 <translation id="7749790401023484470">Нисте изабрали никакав текст.</translation>
@@ -1836,7 +1834,6 @@
 <translation id="8428045167754449968">Град/место</translation>
 <translation id="8428213095426709021">Подешавања</translation>
 <translation id="8428634594422941299">Важи</translation>
-<translation id="8430694217306051839">Изаберите где ће фајл <ph name="FILENAME" /> бити сачуван (<ph name="FILE_SIZE" />)</translation>
 <translation id="8434837876193928924">Детаљи групе картица</translation>
 <translation id="8438566539970814960">Побољшај претраге и прегледање</translation>
 <translation id="8439758443371991593">Сакриј опцију Додај на листу за читање</translation>
diff --git a/ios/chrome/app/strings/resources/ios_strings_sv.xtb b/ios/chrome/app/strings/resources/ios_strings_sv.xtb
index a917ce9e..9507dd85 100644
--- a/ios/chrome/app/strings/resources/ios_strings_sv.xtb
+++ b/ios/chrome/app/strings/resources/ios_strings_sv.xtb
@@ -623,6 +623,7 @@
 <translation id="3596414637720633074">Blockera cookies från tredje part med inkognitoläget</translation>
 <translation id="3602260545951981695">Välj Utökat skydd</translation>
 <translation id="3608436266458100337">Läsläge</translation>
+<translation id="3610041351087301930">Dölj läsarläget</translation>
 <translation id="3622175633937495219">Sökhistorik (<ph name="COUNT" /> hittades)</translation>
 <translation id="3625008969091706597">Du kan svepa från kanten för att gå tillbaka.</translation>
 <translation id="362709345066740529">Anpassa dina kort, ditt flöde och annat här</translation>
@@ -964,7 +965,6 @@
 <translation id="4979397965658815378">Logga in med ditt Google-konto så att du kan använda bokmärken, lösenord, historik med mera på alla dina enheter</translation>
 <translation id="4985921635659180565">När en fil har schemalagts för radering kan den inte avbrytas.</translation>
 <translation id="498624032394115435">Alla som har länken kan redigera alla flikar.</translation>
-<translation id="4989065233040279145">Välj var du vill spara <ph name="FILENAME" /></translation>
 <translation id="499122600724363620"><ph name="NAME" />, <ph name="EMAIL" />, hanteras av organisationen.</translation>
 <translation id="4992255726304765516">Flikgruppens färg <ph name="COLOR" /></translation>
 <translation id="5005498671520578047">Kopiera lösenord</translation>
@@ -1064,6 +1064,7 @@
 <translation id="5431252637281434233">Du loggas ut</translation>
 <translation id="543338862236136125">Redigera lösenord</translation>
 <translation id="5433691172869980887">Användarnamnet har kopierats</translation>
+<translation id="5437480232219631455">Du kan öppna Gemini här</translation>
 <translation id="5439618055789623719">Inloggad som <ph name="USER_EMAIL" /></translation>
 <translation id="5443636120437209490">Surfa bättre som standard</translation>
 <translation id="5444892875087332195">Bokmärken</translation>
@@ -1650,7 +1651,6 @@
 <translation id="7724085059277147439">{count,plural, =1{Objektet har sparats i Google-kontot {email}}other{Objekten har sparats i Google-kontot {email}}}</translation>
 <translation id="7729458878441927652">Synkronisera flikar och historik om du vill se flikar från dina andra enheter</translation>
 <translation id="7730020510075123961">Nej, sammanfoga data</translation>
-<translation id="7730973429297233609">Välj det konto du vill använda för att spara <ph name="FILENAME" /> – <ph name="FILESIZE" /></translation>
 <translation id="7733646263819020771"><ph name="BOOKMRK_NAME" />. Bara på den här enheten.</translation>
 <translation id="7744192722284567281">Upptäckt i ett dataintrång</translation>
 <translation id="7749790401023484470">Du har inte markerat någon text.</translation>
@@ -1834,7 +1834,6 @@
 <translation id="8428045167754449968">Ort</translation>
 <translation id="8428213095426709021">Inställningar</translation>
 <translation id="8428634594422941299">Jag förstår</translation>
-<translation id="8430694217306051839">Välj var du vill spara <ph name="FILENAME" /> (<ph name="FILE_SIZE" />)</translation>
 <translation id="8434837876193928924">Information om flikgruppen</translation>
 <translation id="8438566539970814960">Förbättra sökningar och surfandet</translation>
 <translation id="8439758443371991593">Dölj Lägg till i läslistan</translation>
diff --git a/ios/chrome/app/strings/resources/ios_strings_sw.xtb b/ios/chrome/app/strings/resources/ios_strings_sw.xtb
index f1cc56f..bd11631f 100644
--- a/ios/chrome/app/strings/resources/ios_strings_sw.xtb
+++ b/ios/chrome/app/strings/resources/ios_strings_sw.xtb
@@ -965,7 +965,6 @@
 <translation id="4979397965658815378">Ingia katika akaunti kwa kutumia Akaunti yako ya Google ili upate alamisho, manenosiri, historia na mipangilio mingine kwenye vifaa vyako vyote.</translation>
 <translation id="4985921635659180565">Faili ikisharatibiwa kufutwa, haiwezi kuachishwa.</translation>
 <translation id="498624032394115435">Yeyote aliye na kiungo anaweza kubadilisha vichupo vyote.</translation>
-<translation id="4989065233040279145">Chagua utakapohifadhi <ph name="FILENAME" /></translation>
 <translation id="499122600724363620"><ph name="NAME" />, <ph name="EMAIL" />, inadhibitiwa na shirika lako.</translation>
 <translation id="4992255726304765516">Rangi ya <ph name="COLOR" /> ya kikundi cha vichupo</translation>
 <translation id="5005498671520578047">Nakili nenosiri</translation>
@@ -1652,7 +1651,6 @@
 <translation id="7724085059277147439">{count,plural, =1{Kipengee kimehifadhiwa kwenye Akaunti yako ya Google, {email}}other{Vipengee vimehifadhiwa kwenye Akaunti yako ya Google, {email}}}</translation>
 <translation id="7729458878441927652">Ili uone vichupo kutoka kwenye vifaa vyako vingine, sawazisha vichupo vyako na historia.</translation>
 <translation id="7730020510075123961">Hapana, unganisha data</translation>
-<translation id="7730973429297233609">Chagua akaunti unayotaka kutumia ili uhifadhi <ph name="FILENAME" /> - <ph name="FILESIZE" /></translation>
 <translation id="7733646263819020771"><ph name="BOOKMRK_NAME" />. Kwenye kifaa hiki pekee.</translation>
 <translation id="7744192722284567281">Limepatikana kwenye tukio la ufichuzi haramu wa data</translation>
 <translation id="7749790401023484470">Hujachagua maandishi yoyote.</translation>
@@ -1836,7 +1834,6 @@
 <translation id="8428045167754449968">Jiji / Mji</translation>
 <translation id="8428213095426709021">Mipangilio</translation>
 <translation id="8428634594422941299">Nimeelewa</translation>
-<translation id="8430694217306051839">Chagua utakapohifadhi <ph name="FILENAME" /> (<ph name="FILE_SIZE" />)</translation>
 <translation id="8434837876193928924">Maelezo ya kikundi cha vichupo</translation>
 <translation id="8438566539970814960">Boresha utafutaji na kuvinjari</translation>
 <translation id="8439758443371991593">Ficha Chaguo la Weka kwenye Orodha ya Kusoma</translation>
diff --git a/ios/chrome/app/strings/resources/ios_strings_ta.xtb b/ios/chrome/app/strings/resources/ios_strings_ta.xtb
index d4b39948..c2499ddd3f3 100644
--- a/ios/chrome/app/strings/resources/ios_strings_ta.xtb
+++ b/ios/chrome/app/strings/resources/ios_strings_ta.xtb
@@ -623,6 +623,7 @@
 <translation id="3596414637720633074">மறைநிலை அம்சத்தில் மூன்றாம் தரப்பு குக்கீகளைத் தடுக்கும்</translation>
 <translation id="3602260545951981695">"மேம்பட்ட பாதுகாப்பு" என்பதைத் தேர்வுசெய்யவும்</translation>
 <translation id="3608436266458100337">படித்தல் பயன்முறை</translation>
+<translation id="3610041351087301930">படித்தல் பயன்முறையை மறை</translation>
 <translation id="3622175633937495219">இதுவரை தேடியவை (<ph name="COUNT" /> முடிவுகள் உள்ளன)</translation>
 <translation id="3625008969091706597">பின்செல்ல ஓரத்தில் ஸ்வைப் செய்யலாம்.</translation>
 <translation id="362709345066740529">உங்கள் கார்டுகள், ஊட்டம் மற்றும் பலவற்றை இங்கே பிரத்தியேகமாக்கலாம்</translation>
@@ -690,7 +691,7 @@
 <translation id="3922395466317605522">மெனுவைப் பிரத்தியேகமாக்குங்கள்</translation>
 <translation id="3929457972718048006">முகவரிகள்</translation>
 <translation id="3931215329146376310">{count,plural, =1{இந்தத் தளத்திற்கான புதிய கடவுச்சொல்}other{இந்தத் தளத்திற்கான புதிய கடவுச்சொற்கள்}}</translation>
-<translation id="3940195383040445971">தாவல்களில் விலையைக் கண்காணித்தல்</translation>
+<translation id="3940195383040445971">பக்கங்களில் விலையைக் கண்காணித்தல்</translation>
 <translation id="3941941395924123592">{COUNT,plural, =1{{COUNT} பக்கத்தை மூடு}other{{COUNT} பக்கங்களை மூடு}}</translation>
 <translation id="3948600256434252210">மறைநிலையில் உலாவ வலதுபுறம் ஸ்வைப் செய்யலாம்.</translation>
 <translation id="3950479158728806902">விரைவாக உள்நுழைய கடவுச்சாவியைத் தானாக உருவாக்கு</translation>
@@ -964,7 +965,6 @@
 <translation id="4979397965658815378">உங்கள் எல்லா சாதனங்களிலும் புக்மார்க்குகள், கடவுச்சொற்கள், வரலாறு மற்றும் பிற அமைப்புகளைப் பெற, உங்கள் Google கணக்கு மூலம் உள்நுழையவும்</translation>
 <translation id="4985921635659180565">ஃபைலை நீக்குவதற்கு ஒருமுறை திட்டமிட்டுவிட்டால் அதை ரத்துசெய்ய முடியாது.</translation>
 <translation id="498624032394115435">இணைப்பு உள்ள அனைவரும் எல்லாப் பக்கங்களையும் திருத்தலாம்.</translation>
-<translation id="4989065233040279145"><ph name="FILENAME" /> ஃபைலை எங்கே சேமிக்க வேண்டும் என்பதைத் தேர்வுசெய்யுங்கள்</translation>
 <translation id="499122600724363620"><ph name="NAME" />, <ph name="EMAIL" /> கணக்கு உங்கள் நிறுவனத்தால் நிர்வகிக்கப்படுகிறது.</translation>
 <translation id="4992255726304765516">பக்கக் குழுவின் வண்ணம்: <ph name="COLOR" /></translation>
 <translation id="5005498671520578047">கடவுச்சொல்லை நகலெடு</translation>
@@ -1064,6 +1064,7 @@
 <translation id="5431252637281434233">நீங்கள் வெளியேற்றப்படுவீர்கள்</translation>
 <translation id="543338862236136125">கடவுச்சொல்லை மாற்று</translation>
 <translation id="5433691172869980887">பயனர்பெயர் நகலெடுக்கப்பட்டது</translation>
+<translation id="5437480232219631455">இங்கே Geminiயைத் திறக்கலாம்</translation>
 <translation id="5439618055789623719">உள்நுழைந்துள்ள கணக்கு: <ph name="USER_EMAIL" /></translation>
 <translation id="5443636120437209490">இயல்பாகவே சிறப்பான பிரவுசிங்</translation>
 <translation id="5444892875087332195">புக்மார்க்குகள்</translation>
@@ -1650,7 +1651,6 @@
 <translation id="7724085059277147439">{count,plural, =1{உங்கள் Google கணக்கில் ({email}) சேமிக்கப்பட்டது}other{உங்கள் Google கணக்கில் ({email}) சேமிக்கப்பட்டன}}</translation>
 <translation id="7729458878441927652">பிற சாதனங்களில் உள்ள உலாவிப் பக்கங்களைப் பார்க்க, உலாவிப் பக்கங்களையும் பதிவையும் ஒத்திசைக்கவும்.</translation>
 <translation id="7730020510075123961">வேண்டாம், தரவை ஒன்றிணை</translation>
-<translation id="7730973429297233609"><ph name="FILENAME" /> (<ph name="FILESIZE" />) ஃபைலைச் சேமிக்க, நீங்கள் பயன்படுத்த விரும்பும் கணக்கைத் தேர்ந்தெடுக்கவும்</translation>
 <translation id="7733646263819020771"><ph name="BOOKMRK_NAME" />. இந்தச் சாதனத்தில் மட்டும்.</translation>
 <translation id="7744192722284567281">தரவு மீறலில் உள்ளது</translation>
 <translation id="7749790401023484470">நீங்கள் எந்த வார்த்தையையும் தேர்ந்தெடுக்கவில்லை.</translation>
@@ -1834,7 +1834,6 @@
 <translation id="8428045167754449968">மாநகரம் / நகரம்</translation>
 <translation id="8428213095426709021">அமைப்புகள்</translation>
 <translation id="8428634594422941299">நிராகரி</translation>
-<translation id="8430694217306051839"><ph name="FILENAME" /> (<ph name="FILE_SIZE" />) ஃபைலை எங்கே சேமிக்க வேண்டும் என்பதைத் தேர்வுசெய்யுங்கள்</translation>
 <translation id="8434837876193928924">பக்கக் குழு விவரங்கள்</translation>
 <translation id="8438566539970814960">தேடல்களையும் உலாவலையும் மேலும் சிறப்பாக்குக</translation>
 <translation id="8439758443371991593">‘வாசிப்புப் பட்டியலில் சேர்’ என்பதை மறை</translation>
diff --git a/ios/chrome/app/strings/resources/ios_strings_te.xtb b/ios/chrome/app/strings/resources/ios_strings_te.xtb
index b280812..ce9dbd9 100644
--- a/ios/chrome/app/strings/resources/ios_strings_te.xtb
+++ b/ios/chrome/app/strings/resources/ios_strings_te.xtb
@@ -623,6 +623,7 @@
 <translation id="3596414637720633074">అజ్ఞాత మోడ్‌లో థర్డ్-పార్టీ కుక్కీలను బ్లాక్ చేయండి</translation>
 <translation id="3602260545951981695">"మెరుగైన రక్షణ"ను ఎంచుకోండి</translation>
 <translation id="3608436266458100337">రీడర్ మోడ్</translation>
+<translation id="3610041351087301930">రీడర్‌ను దాచండి</translation>
 <translation id="3622175633937495219">సెర్చ్ హిస్టరీ (<ph name="COUNT" /> కనుగొనబడింది)</translation>
 <translation id="3625008969091706597">మీరు వెనుకకు వెళ్లడానికి అంచును స్వైప్ చేయవచ్చు.</translation>
 <translation id="362709345066740529">మీ కార్డ్‌లు, ఫీడ్, అలాగే మరిన్నింటిని ఇక్కడ అనుకూలంగా మార్చండి</translation>
@@ -964,7 +965,6 @@
 <translation id="4979397965658815378">మీ బుక్‌మార్క్‌లు, పాస్‌వర్డ్‌లు, హిస్టరీ మరియు ఇతర సెట్టింగ్‌లను మీ అన్ని పరికరాలలో పొందడానికి మీ Google ఖాతాతో సైన్ ఇన్ చేయండి</translation>
 <translation id="4985921635659180565">ఒక ఫైల్‌ను తొలగించడానికి షెడ్యూల్ చేసిన తర్వాత, దానిని రద్దు చేయడం సాధ్యం కాదు.</translation>
 <translation id="498624032394115435">లింక్ ఉన్న వారు ఎవరైనా అన్ని ట్యాబ్‌లను ఎడిట్ చేయగలరు.</translation>
-<translation id="4989065233040279145"><ph name="FILENAME" />ను ఎక్కడ సేవ్ చేయాలో ఎంచుకోండి</translation>
 <translation id="499122600724363620"><ph name="NAME" />, <ph name="EMAIL" /> మీ సంస్థ ద్వారా మేనేజ్ చేయబడుతోంది.</translation>
 <translation id="4992255726304765516">ట్యాబ్ గ్రూప్ రంగు <ph name="COLOR" /></translation>
 <translation id="5005498671520578047">పాస్‌వర్డ్ కాపీచేయడం</translation>
@@ -1064,6 +1064,7 @@
 <translation id="5431252637281434233">మీరు సైన్ అవుట్ అవుతారు</translation>
 <translation id="543338862236136125">పాస్‌వర్డ్‌ను ఎడిట్ చేయండి</translation>
 <translation id="5433691172869980887">వినియోగదారు పేరు కాపీ చేయబడింది</translation>
+<translation id="5437480232219631455">మీరు ఇక్కడ Geminiను తెరవవచ్చు</translation>
 <translation id="5439618055789623719"><ph name="USER_EMAIL" />‌గా సైన్ ఇన్ చేశారు</translation>
 <translation id="5443636120437209490">ఆటోమేటిక్‌గా మెరుగైన బ్రౌజింగ్ అందించబడుతుంది</translation>
 <translation id="5444892875087332195">బుక్‌మార్క్‌లు</translation>
@@ -1650,7 +1651,6 @@
 <translation id="7724085059277147439">{count,plural, =1{మీ Google ఖాతా, {email}‌లో ఐటెమ్ సేవ్ చేయబడింది}other{మీ Google ఖాతా, {email}‌లో ఐటెమ్‌లు సేవ్ చేయబడ్డాయి}}</translation>
 <translation id="7729458878441927652">మీ ఇతర పరికరాల నుండి ట్యాబ్‌లను చూడటానికి, మీ ట్యాబ్‌లను, హిస్టరీని సింక్ చేయండి.</translation>
 <translation id="7730020510075123961">లేదు, డేటాను విలీనం చేయండి</translation>
-<translation id="7730973429297233609"><ph name="FILENAME" /> - <ph name="FILESIZE" />ని సేవ్ చేయడానికి మీరు ఉపయోగించాలనుకుంటున్న ఖాతాను ఎంచుకోండి</translation>
 <translation id="7733646263819020771"><ph name="BOOKMRK_NAME" />. ఈ పరికరంలో మాత్రమే ఉంది.</translation>
 <translation id="7744192722284567281">డేటా ఉల్లంఘనలో కనుగొనబడింది</translation>
 <translation id="7749790401023484470">మీరు ఏ టెక్స్ట్‌నూ ఎంచుకోలేదు.</translation>
@@ -1834,7 +1834,6 @@
 <translation id="8428045167754449968">నగరం / పట్టణం</translation>
 <translation id="8428213095426709021">సెట్టింగ్‌లు</translation>
 <translation id="8428634594422941299">అర్థమైంది</translation>
-<translation id="8430694217306051839"><ph name="FILENAME" /> (<ph name="FILE_SIZE" />)ను ఎక్కడ సేవ్ చేయాలో ఎంచుకోండి</translation>
 <translation id="8434837876193928924">ట్యాబ్ గ్రూప్ వివరాలు</translation>
 <translation id="8438566539970814960">సెర్చ్‌లను, బ్రౌజింగ్‌ను మెరుగుపరచండి</translation>
 <translation id="8439758443371991593">'చదవాల్సిన లిస్ట్‌కు జోడించండి'ని దాచండి</translation>
diff --git a/ios/chrome/app/strings/resources/ios_strings_th.xtb b/ios/chrome/app/strings/resources/ios_strings_th.xtb
index d3e24f61..e50e9cae 100644
--- a/ios/chrome/app/strings/resources/ios_strings_th.xtb
+++ b/ios/chrome/app/strings/resources/ios_strings_th.xtb
@@ -965,7 +965,6 @@
 <translation id="4979397965658815378">ลงชื่อเข้าใช้บัญชี Google เพื่อรับบุ๊กมาร์ก รหัสผ่าน ประวัติการเข้าชม และการตั้งค่าอื่นๆ บนอุปกรณ์ทั้งหมดของคุณ</translation>
 <translation id="4985921635659180565">เมื่อตั้งเวลาลบไฟล์แล้ว จะยกเลิกไม่ได้</translation>
 <translation id="498624032394115435">ทุกคนที่มีลิงก์จะแก้ไขแท็บทั้งหมดได้</translation>
-<translation id="4989065233040279145">เลือกตำแหน่งที่จะบันทึก <ph name="FILENAME" /></translation>
 <translation id="499122600724363620"><ph name="NAME" />, <ph name="EMAIL" /> จัดการโดยองค์กร</translation>
 <translation id="4992255726304765516">สีของกลุ่มแท็บ <ph name="COLOR" /></translation>
 <translation id="5005498671520578047">คัดลอกรหัสผ่าน</translation>
@@ -1652,7 +1651,6 @@
 <translation id="7724085059277147439">{count,plural, =1{บันทึกรายการไว้ในบัญชี Google {email} แล้ว}other{บันทึกรายการไว้ในบัญชี Google {email} แล้ว}}</translation>
 <translation id="7729458878441927652">หากต้องการดูแท็บจากอุปกรณ์อื่นๆ ให้ซิงค์แท็บและประวัติการเข้าชม</translation>
 <translation id="7730020510075123961">ไม่ ผสานรวมข้อมูล</translation>
-<translation id="7730973429297233609">เลือกบัญชีที่ต้องการใช้เพื่อบันทึก <ph name="FILENAME" /> - <ph name="FILESIZE" /></translation>
 <translation id="7733646263819020771"><ph name="BOOKMRK_NAME" /> เฉพาะในอุปกรณ์นี้</translation>
 <translation id="7744192722284567281">พบในการละเมิดข้อมูล</translation>
 <translation id="7749790401023484470">คุณไม่ได้เลือกข้อความใดๆ</translation>
@@ -1836,7 +1834,6 @@
 <translation id="8428045167754449968">อำเภอ</translation>
 <translation id="8428213095426709021">การตั้งค่า</translation>
 <translation id="8428634594422941299">รับทราบ</translation>
-<translation id="8430694217306051839">เลือกตำแหน่งที่จะบันทึก <ph name="FILENAME" /> (<ph name="FILE_SIZE" />)</translation>
 <translation id="8434837876193928924">รายละเอียดกลุ่มแท็บ</translation>
 <translation id="8438566539970814960">ปรับปรุงการค้นหาและการท่องเว็บให้ดียิ่งขึ้น</translation>
 <translation id="8439758443371991593">ซ่อน "เพิ่มไปยังเรื่องรออ่าน"</translation>
diff --git a/ios/chrome/app/strings/resources/ios_strings_tr.xtb b/ios/chrome/app/strings/resources/ios_strings_tr.xtb
index 410cf662..541014a 100644
--- a/ios/chrome/app/strings/resources/ios_strings_tr.xtb
+++ b/ios/chrome/app/strings/resources/ios_strings_tr.xtb
@@ -623,6 +623,7 @@
 <translation id="3596414637720633074">Gizli modda üçüncü taraf çerezlerini engelle</translation>
 <translation id="3602260545951981695">"Gelişmiş Koruma"yı seçin</translation>
 <translation id="3608436266458100337">Okuyucu modu</translation>
+<translation id="3610041351087301930">Okuyucu'yu gizle</translation>
 <translation id="3622175633937495219">Geçmişte arayın (<ph name="COUNT" /> sonuç)</translation>
 <translation id="3625008969091706597">Geri gitmek için kenarı kaydırabilirsiniz.</translation>
 <translation id="362709345066740529">Kartlarınızı, feed'inizi ve diğer öğelerinizi burada özelleştirebilirsiniz</translation>
@@ -964,7 +965,6 @@
 <translation id="4979397965658815378">Yer işaretleri, şifreler, geçmiş ve diğer ayarlarınıza tüm cihazlarınızdan erişmek için Google Hesabınızla oturum açın.</translation>
 <translation id="4985921635659180565">Silinmesi planlanan bir dosyanın silme işlemi iptal edilemez.</translation>
 <translation id="498624032394115435">Bağlantıya sahip olan herkes tüm sekmeleri düzenleyebilir.</translation>
-<translation id="4989065233040279145"><ph name="FILENAME" /> dosyasının nereye kaydedileceğini seçin</translation>
 <translation id="499122600724363620"><ph name="NAME" />, <ph name="EMAIL" />, kuruluşunuz tarafından yönetiliyor.</translation>
 <translation id="4992255726304765516">Sekme grubu rengi <ph name="COLOR" /></translation>
 <translation id="5005498671520578047">Şifreyi kopyalayın</translation>
@@ -1064,6 +1064,7 @@
 <translation id="5431252637281434233">Oturumunuz kapatılacak</translation>
 <translation id="543338862236136125">Şifreyi düzenle</translation>
 <translation id="5433691172869980887">Kullanıcı adı kopyalandı</translation>
+<translation id="5437480232219631455">Gemini'ı burada açabilirsiniz</translation>
 <translation id="5439618055789623719"><ph name="USER_EMAIL" /> olarak oturum açıldı</translation>
 <translation id="5443636120437209490">Varsayılan olarak daha iyi tarama deneyimi</translation>
 <translation id="5444892875087332195">Yer İşaretleri</translation>
@@ -1650,7 +1651,6 @@
 <translation id="7724085059277147439">{count,plural, =1{Öğe, Google Hesabınıza ({email}) kaydedildi}other{Öğeler, Google Hesabınıza ({email}) kaydedildi}}</translation>
 <translation id="7729458878441927652">Diğer cihazlarınızdaki sekmeleri görmek için sekmelerinizi ve geçmişinizi senkronize edin.</translation>
 <translation id="7730020510075123961">Hayır, verileri birleştir</translation>
-<translation id="7730973429297233609"><ph name="FILESIZE" /> boyutundaki <ph name="FILENAME" /> dosyasını kaydetmek için kullanmak istediğiniz hesabı seçin</translation>
 <translation id="7733646263819020771"><ph name="BOOKMRK_NAME" />. Yalnızca bu cihazda.</translation>
 <translation id="7744192722284567281">Veri ihlali kapsamında bulundu</translation>
 <translation id="7749790401023484470">Metin seçmediniz.</translation>
@@ -1834,7 +1834,6 @@
 <translation id="8428045167754449968">İl / İlçe</translation>
 <translation id="8428213095426709021">Ayarlar</translation>
 <translation id="8428634594422941299">Anladım</translation>
-<translation id="8430694217306051839"><ph name="FILENAME" /> dosyasının (<ph name="FILE_SIZE" />) nereye kaydedileceğini seçin</translation>
 <translation id="8434837876193928924">Sekme grubu ayrıntıları</translation>
 <translation id="8438566539970814960">Aramaları ve göz atmayı daha iyi yap</translation>
 <translation id="8439758443371991593">Okuma Listesine Ele Seçeneğini Gizle</translation>
diff --git a/ios/chrome/app/strings/resources/ios_strings_uk.xtb b/ios/chrome/app/strings/resources/ios_strings_uk.xtb
index 824b51f3..32005f2 100644
--- a/ios/chrome/app/strings/resources/ios_strings_uk.xtb
+++ b/ios/chrome/app/strings/resources/ios_strings_uk.xtb
@@ -623,6 +623,7 @@
 <translation id="3596414637720633074">Блокувати сторонні файли cookie в анонімному режимі</translation>
 <translation id="3602260545951981695">Виберіть "Покращений захист"</translation>
 <translation id="3608436266458100337">Режим читання</translation>
+<translation id="3610041351087301930">Сховати режим читання</translation>
 <translation id="3622175633937495219">Історія пошуку (знайдено: <ph name="COUNT" />)</translation>
 <translation id="3625008969091706597">Щоб повернутися, проведіть пальцем за край.</translation>
 <translation id="362709345066740529">Тут можна налаштувати картки, стрічку тощо</translation>
@@ -964,7 +965,6 @@
 <translation id="4979397965658815378">Увійдіть в обліковий запис Google, щоб мати доступ до закладок, паролів, історії й інших налаштувань на всіх своїх пристроях</translation>
 <translation id="4985921635659180565">Якщо запланувати видалення файлу, цю дію не можна буде скасувати.</translation>
 <translation id="498624032394115435">Кожен, хто має посилання, може редагувати всі вкладки.</translation>
-<translation id="4989065233040279145">Виберіть, де зберегти <ph name="FILENAME" /></translation>
 <translation id="499122600724363620">Обліковим записом користувача <ph name="NAME" /> (<ph name="EMAIL" />) керує ваша організація.</translation>
 <translation id="4992255726304765516">Колір групи вкладок: <ph name="COLOR" /></translation>
 <translation id="5005498671520578047">Копіювати пароль</translation>
@@ -1064,6 +1064,7 @@
 <translation id="5431252637281434233">Ви вийдете з облікового запису</translation>
 <translation id="543338862236136125">Змінити пароль</translation>
 <translation id="5433691172869980887">Ім’я користувача скопійовано</translation>
+<translation id="5437480232219631455">Тут можна відкрити Gemini</translation>
 <translation id="5439618055789623719">Ви ввійшли в обліковий запис <ph name="USER_EMAIL" /></translation>
 <translation id="5443636120437209490">Зручніший вебперегляд за умовчанням</translation>
 <translation id="5444892875087332195">Закладки</translation>
@@ -1650,7 +1651,6 @@
 <translation id="7724085059277147439">{count,plural, =1{Об’єкт збережено у вашому обліковому записі Google ({email})}one{Об’єкти збережено у вашому обліковому записі Google ({email})}few{Об’єкти збережено у вашому обліковому записі Google ({email})}many{Об’єкти збережено у вашому обліковому записі Google ({email})}other{Об’єкти збережено у вашому обліковому записі Google ({email})}}</translation>
 <translation id="7729458878441927652">Увімкніть синхронізацію вкладок і історії, щоб переглядати вкладки з інших ваших пристроїв.</translation>
 <translation id="7730020510075123961">Ні, об’єднати дані</translation>
-<translation id="7730973429297233609">Виберіть обліковий запис, у якому ви хочете зберегти файл "<ph name="FILENAME" />" (<ph name="FILESIZE" />)</translation>
 <translation id="7733646263819020771"><ph name="BOOKMRK_NAME" />. Лише на цьому пристрої.</translation>
 <translation id="7744192722284567281">Знайдено в порушеннях безпеки даних</translation>
 <translation id="7749790401023484470">Ви не вибрали текст.</translation>
@@ -1834,7 +1834,6 @@
 <translation id="8428045167754449968">Місто</translation>
 <translation id="8428213095426709021">Налаштування</translation>
 <translation id="8428634594422941299">Зрозуміло</translation>
-<translation id="8430694217306051839">Виберіть, де зберегти <ph name="FILENAME" /> (<ph name="FILE_SIZE" />)</translation>
 <translation id="8434837876193928924">Відомості про групу вкладок</translation>
 <translation id="8438566539970814960">Покращувати пошук і вебперегляд</translation>
 <translation id="8439758443371991593">Сховати опцію "Додати в список читання"</translation>
diff --git a/ios/chrome/app/strings/resources/ios_strings_ur.xtb b/ios/chrome/app/strings/resources/ios_strings_ur.xtb
index e1ce4e7..eec86b1 100644
--- a/ios/chrome/app/strings/resources/ios_strings_ur.xtb
+++ b/ios/chrome/app/strings/resources/ios_strings_ur.xtb
@@ -623,6 +623,7 @@
 <translation id="3596414637720633074">پوشیدگی میں فریق ثالث کوکیز کو بلاک کریں</translation>
 <translation id="3602260545951981695">"بہتر کردہ حفاظت" منتخب کریں</translation>
 <translation id="3608436266458100337">ریڈر وض‏ع</translation>
+<translation id="3610041351087301930">ریڈر موڈ چھپائیں</translation>
 <translation id="3622175633937495219">تلاش کی سرگزشت (<ph name="COUNT" /> ملے)</translation>
 <translation id="3625008969091706597">آپ پیچھے جانے کے لیے کنارے کو سوائپ کر سکتے ہیں۔</translation>
 <translation id="362709345066740529">یہاں اپنے کارڈز، فیڈ اور مزید کو حسب ضرورت بنائیں</translation>
@@ -964,7 +965,6 @@
 <translation id="4979397965658815378">‏اپنے سبھی آلات پر اپنے بُک مارکس، پاس ورڈز، سرگزشت اور دیگر ترتیبات حاصل کرنے کیلئے اپنے Google اکاؤنٹ کے ساتھ سائن ان کریں</translation>
 <translation id="4985921635659180565">اگر کوئی فائل حذف کرنے کے لیے شیڈول کر دی جاتی ہے تو اسے منسوخ نہیں کیا جا سکتا۔</translation>
 <translation id="498624032394115435">لنک کا حامل کوئی بھی شخص تمام ٹیبز میں ترمیم کر سکتا ہے۔</translation>
-<translation id="4989065233040279145"><ph name="FILENAME" /> محفوظ کرنے کی جگہ کا انتخاب کریں</translation>
 <translation id="499122600724363620"><ph name="NAME" />، <ph name="EMAIL" />، آپ کی تنظیم کے زیر انتظام ہے۔</translation>
 <translation id="4992255726304765516">ٹیب گروپ کا رنگ <ph name="COLOR" /></translation>
 <translation id="5005498671520578047">پاس ورڈ کاپی کریں</translation>
@@ -1064,6 +1064,7 @@
 <translation id="5431252637281434233">آپ سائن آؤٹ ہو جائیں گے</translation>
 <translation id="543338862236136125">پاس ورڈ میں ترمیم کریں</translation>
 <translation id="5433691172869980887">صارف نام کاپی ہو گیا</translation>
+<translation id="5437480232219631455">‏آپ یہاں Gemini کھول سکتے ہیں</translation>
 <translation id="5439618055789623719"><ph name="USER_EMAIL" /> کے بطور سائن ان ہیں</translation>
 <translation id="5443636120437209490">بطور ڈیفالٹ بہتر براؤزنگ</translation>
 <translation id="5444892875087332195">بُک مارکس</translation>
@@ -1650,7 +1651,6 @@
 <translation id="7724085059277147439">{count,plural, =1{‏آپ کے Google اکاؤنٹ میں محفوظ کردہ آئٹم، {email}}other{‏آپ کے Google اکاؤنٹ میں محفوظ کردہ آئٹمز، {email}}}</translation>
 <translation id="7729458878441927652">اپنے دیگر آلات سے ٹیبز کو دیکھنے کے لیے، اپنے ٹیبز اور سرگزشت کو مطابقت پذیر بنائیں۔</translation>
 <translation id="7730020510075123961">نہیں، ڈیٹا ضم کریں</translation>
-<translation id="7730973429297233609"><ph name="FILENAME" /> - <ph name="FILESIZE" /> کو محفوظ کرنے کے لیے آپ جس اکاؤنٹ کا استعمال کرنا چاہتے ہیں اسے منتخب کریں</translation>
 <translation id="7733646263819020771"><ph name="BOOKMRK_NAME" />۔ صرف اس آلہ پر۔</translation>
 <translation id="7744192722284567281">ڈیٹا کی خلاف ورزی میں ملا</translation>
 <translation id="7749790401023484470">آپ نے کوئی ٹیکسٹ منتخب نہیں کیا۔</translation>
@@ -1834,7 +1834,6 @@
 <translation id="8428045167754449968">شہر / قصبہ</translation>
 <translation id="8428213095426709021">ترتیبات</translation>
 <translation id="8428634594422941299">سمجھ آ گئی</translation>
-<translation id="8430694217306051839"><ph name="FILENAME" /> (<ph name="FILE_SIZE" />) محفوظ کرنے کی جگہ کا انتخاب کریں</translation>
 <translation id="8434837876193928924">ٹیب گروپ کی تفصیلات</translation>
 <translation id="8438566539970814960">تلاشوں اور براؤزنگ کو بہتر بنائیں</translation>
 <translation id="8439758443371991593">'پڑھنے کی فہرست میں شامل کریں' کو چھپائیں</translation>
diff --git a/ios/chrome/app/strings/resources/ios_strings_uz.xtb b/ios/chrome/app/strings/resources/ios_strings_uz.xtb
index 1e0d98a4..ecccdab0 100644
--- a/ios/chrome/app/strings/resources/ios_strings_uz.xtb
+++ b/ios/chrome/app/strings/resources/ios_strings_uz.xtb
@@ -965,7 +965,6 @@
 <translation id="4979397965658815378">Xatcho‘plar, tarix, parollar va boshqa sozlamalarni barcha qurilmalaringizda sinxronlash uchun Google hisobingizga kiring.</translation>
 <translation id="4985921635659180565">Faylning oʻchirilishi reja qilinganidan keyin bekor qilinmaydi.</translation>
 <translation id="498624032394115435">Havolaga ega har kim barcha varaqlarni tahrirlashi mumkin.</translation>
-<translation id="4989065233040279145"><ph name="FILENAME" /> uchun saqlash joyini tanlang</translation>
 <translation id="499122600724363620"><ph name="NAME" />, <ph name="EMAIL" /> hisobi tashkilot boshqaruvida.</translation>
 <translation id="4992255726304765516">Varaqlar guruhi rangi: <ph name="COLOR" /></translation>
 <translation id="5005498671520578047">Parolni nusxalash</translation>
@@ -1652,7 +1651,6 @@
 <translation id="7724085059277147439">{count,plural, =1{Obyekt Google hisobingizga ({email}) saqlangan}other{Obyektlar Google hisobingizga ({email}) saqlangan}}</translation>
 <translation id="7729458878441927652">Boshqa qurilmalarda ochilgan sahifalarni koʻrish uchun varaqlar va tarixni sinxronlang.</translation>
 <translation id="7730020510075123961">Yoʻq, birlashtirilmasin</translation>
-<translation id="7730973429297233609"><ph name="FILENAME" /> (<ph name="FILESIZE" />) faylini saqlash uchun foydalanmoqchi boʻlgan hisobni tanlang</translation>
 <translation id="7733646263819020771"><ph name="BOOKMRK_NAME" />. Faqat shu qurilmada.</translation>
 <translation id="7744192722284567281">Oshkor qilingan axborotlarda bor</translation>
 <translation id="7749790401023484470">Matn tanlang.</translation>
@@ -1836,7 +1834,6 @@
 <translation id="8428045167754449968">Shahar / tuman</translation>
 <translation id="8428213095426709021">Sozlamalar</translation>
 <translation id="8428634594422941299">OK</translation>
-<translation id="8430694217306051839"><ph name="FILENAME" /> (<ph name="FILE_SIZE" />) uchun saqlash joyini tanlang</translation>
 <translation id="8434837876193928924">Varaqlar guruhi tafsilotlari</translation>
 <translation id="8438566539970814960">Sahifalarni kezish va qidiruvni yaxshilash</translation>
 <translation id="8439758443371991593">Saqlangan sahifalarga kiritishni berkitish</translation>
diff --git a/ios/chrome/app/strings/resources/ios_strings_vi.xtb b/ios/chrome/app/strings/resources/ios_strings_vi.xtb
index bafda23b..bf3d6d3 100644
--- a/ios/chrome/app/strings/resources/ios_strings_vi.xtb
+++ b/ios/chrome/app/strings/resources/ios_strings_vi.xtb
@@ -623,6 +623,7 @@
 <translation id="3596414637720633074">Chặn cookie của bên thứ ba ở Chế độ ẩn danh</translation>
 <translation id="3602260545951981695">Chọn "Bảo vệ nâng cao"</translation>
 <translation id="3608436266458100337">Chế độ đọc</translation>
+<translation id="3610041351087301930">Ẩn Chế độ đọc</translation>
 <translation id="3622175633937495219">Nhật ký tìm kiếm (Đã tìm thấy <ph name="COUNT" /> kết quả)</translation>
 <translation id="3625008969091706597">Bạn có thể vuốt từ mép này để quay lại mục trước.</translation>
 <translation id="362709345066740529">Tuỳ chỉnh thẻ, nguồn cấp dữ liệu và nhiều nội dung khác tại đây</translation>
@@ -964,7 +965,6 @@
 <translation id="4979397965658815378">Đăng nhập bằng Tài khoản Google để nhận dấu trang, mật khẩu, lịch sử và các cài đặt khác trên tất cả thiết bị của bạn</translation>
 <translation id="4985921635659180565">Sau khi lên lịch xoá, bạn không thể huỷ tệp.</translation>
 <translation id="498624032394115435">Bất cứ ai có đường liên kết này đều có thể chỉnh sửa tất cả các thẻ.</translation>
-<translation id="4989065233040279145">Chọn vị trí bạn muốn lưu <ph name="FILENAME" /></translation>
 <translation id="499122600724363620"><ph name="NAME" />, <ph name="EMAIL" />, do tổ chức của bạn quản lý.</translation>
 <translation id="4992255726304765516">Màu của nhóm thẻ <ph name="COLOR" /></translation>
 <translation id="5005498671520578047">Sao chép mật khẩu</translation>
@@ -1064,6 +1064,7 @@
 <translation id="5431252637281434233">Hệ thống sẽ đăng xuất bạn</translation>
 <translation id="543338862236136125">Chỉnh sửa mật khẩu</translation>
 <translation id="5433691172869980887">Đã sao chép tên người dùng</translation>
+<translation id="5437480232219631455">Bạn có thể mở Gemini tại đây</translation>
 <translation id="5439618055789623719">Đã đăng nhập bằng <ph name="USER_EMAIL" /></translation>
 <translation id="5443636120437209490">Trải nghiệm duyệt web tốt hơn theo mặc định</translation>
 <translation id="5444892875087332195">Dấu trang</translation>
@@ -1650,7 +1651,6 @@
 <translation id="7724085059277147439">{count,plural, =1{Đã lưu mục vào tài khoản Google {email} của bạn}other{Đã lưu mục vào tài khoản Google {email} của bạn}}</translation>
 <translation id="7729458878441927652">Để xem thẻ từ các thiết bị khác của bạn, hãy đồng bộ hoá các thẻ và nhật ký.</translation>
 <translation id="7730020510075123961">Không, hợp nhất dữ liệu</translation>
-<translation id="7730973429297233609">Chọn tài khoản bạn muốn dùng để lưu <ph name="FILENAME" /> – <ph name="FILESIZE" /></translation>
 <translation id="7733646263819020771"><ph name="BOOKMRK_NAME" />. Chỉ trên thiết bị này.</translation>
 <translation id="7744192722284567281">Phát hiện thấy trong một sự cố rò rỉ dữ liệu</translation>
 <translation id="7749790401023484470">Bạn chưa chọn văn bản nào.</translation>
@@ -1834,7 +1834,6 @@
 <translation id="8428045167754449968">Thành phố/thị trấn</translation>
 <translation id="8428213095426709021">Cài đặt</translation>
 <translation id="8428634594422941299">Tôi hiểu</translation>
-<translation id="8430694217306051839">Chọn vị trí bạn muốn lưu <ph name="FILENAME" /> (<ph name="FILE_SIZE" />)</translation>
 <translation id="8434837876193928924">Thông tin về nhóm thẻ</translation>
 <translation id="8438566539970814960">Cải thiện tính năng tìm kiếm và duyệt web</translation>
 <translation id="8439758443371991593">Ẩn tuỳ chọn Thêm vào danh sách đọc</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 5519d71..73fbfce4 100644
--- a/ios/chrome/app/strings/resources/ios_strings_zh-CN.xtb
+++ b/ios/chrome/app/strings/resources/ios_strings_zh-CN.xtb
@@ -965,7 +965,6 @@
 <translation id="4979397965658815378">登录 Google 账号,即可获取您在任何登录过的设备上的书签、密码、历史记录及其他设置</translation>
 <translation id="4985921635659180565">一旦安排删除文件,便无法取消。</translation>
 <translation id="498624032394115435">知道链接的任何人都能修改所有标签页。</translation>
-<translation id="4989065233040279145">选择保存 <ph name="FILENAME" /> 的位置</translation>
 <translation id="499122600724363620"><ph name="NAME" />,<ph name="EMAIL" />,由组织管理。</translation>
 <translation id="4992255726304765516">标签页分组颜色为<ph name="COLOR" /></translation>
 <translation id="5005498671520578047">复制密码</translation>
@@ -1652,7 +1651,6 @@
 <translation id="7724085059277147439">{count,plural, =1{这项内容已保存到您的 Google 账号 {email}}other{这些内容已保存到您的 Google 账号 {email}}}</translation>
 <translation id="7729458878441927652">如需查看您在其他设备中打开的标签页,请同步您的标签页和历史记录。</translation>
 <translation id="7730020510075123961">不,合并数据</translation>
-<translation id="7730973429297233609">选择您要使用哪个账号来保存“<ph name="FILENAME" />”- <ph name="FILESIZE" /></translation>
 <translation id="7733646263819020771"><ph name="BOOKMRK_NAME" />。仅在该设备上。</translation>
 <translation id="7744192722284567281">遭遇了数据泄露</translation>
 <translation id="7749790401023484470">您未选择任何文字。</translation>
@@ -1836,7 +1834,6 @@
 <translation id="8428045167754449968">市/镇</translation>
 <translation id="8428213095426709021">设置</translation>
 <translation id="8428634594422941299">知道了</translation>
-<translation id="8430694217306051839">选择保存 <ph name="FILENAME" /> (<ph name="FILE_SIZE" />) 的位置</translation>
 <translation id="8434837876193928924">标签页分组详情</translation>
 <translation id="8438566539970814960">改善搜索和浏览体验</translation>
 <translation id="8439758443371991593">隐藏“添加到阅读清单”</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 314d800e..59ac0ee 100644
--- a/ios/chrome/app/strings/resources/ios_strings_zh-HK.xtb
+++ b/ios/chrome/app/strings/resources/ios_strings_zh-HK.xtb
@@ -965,7 +965,6 @@
 <translation id="4979397965658815378">登入 Google 帳戶後,您即可在任何裝置上存取自己的書籤、密碼、記錄和其他設定</translation>
 <translation id="4985921635659180565">檔案預定刪除後,便無法取消操作。</translation>
 <translation id="498624032394115435">任何擁有連結的人均可編輯所有分頁。</translation>
-<translation id="4989065233040279145">選擇「<ph name="FILENAME" />」的儲存位置</translation>
 <translation id="499122600724363620"><ph name="NAME" />,<ph name="EMAIL" />,該帳戶由你的機構管理。</translation>
 <translation id="4992255726304765516">分頁群組顏色係<ph name="COLOR" /></translation>
 <translation id="5005498671520578047">複製密碼</translation>
@@ -1652,7 +1651,6 @@
 <translation id="7724085059277147439">{count,plural, =1{這個項目已儲存到 Google 帳戶 ({email})}other{這些項目已儲存到 Google 帳戶 ({email})}}</translation>
 <translation id="7729458878441927652">如要查看其他裝置上的分頁,請同步處理分頁和記錄。</translation>
 <translation id="7730020510075123961">否,請合併資料</translation>
-<translation id="7730973429297233609">選取要用來儲存 <ph name="FILENAME" /> (<ph name="FILESIZE" />) 的帳戶</translation>
 <translation id="7733646263819020771"><ph name="BOOKMRK_NAME" />。只係喺呢部裝置上面。</translation>
 <translation id="7744192722284567281">發生資料外洩事件</translation>
 <translation id="7749790401023484470">未選取任何文字。</translation>
@@ -1836,7 +1834,6 @@
 <translation id="8428045167754449968">城市/鄉鎮</translation>
 <translation id="8428213095426709021">設定</translation>
 <translation id="8428634594422941299">知道了</translation>
-<translation id="8430694217306051839">選擇「<ph name="FILENAME" />」(<ph name="FILE_SIZE" />) 的儲存位置</translation>
 <translation id="8434837876193928924">分頁群組詳情</translation>
 <translation id="8438566539970814960">改善搜尋和瀏覽體驗</translation>
 <translation id="8439758443371991593">隱藏「加入閱讀清單」</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 b67f38c5..09553a2 100644
--- a/ios/chrome/app/strings/resources/ios_strings_zh-TW.xtb
+++ b/ios/chrome/app/strings/resources/ios_strings_zh-TW.xtb
@@ -623,6 +623,7 @@
 <translation id="3596414637720633074">在無痕模式中封鎖第三方 Cookie</translation>
 <translation id="3602260545951981695">選擇「強化防護」</translation>
 <translation id="3608436266458100337">閱讀器模式</translation>
+<translation id="3610041351087301930">隱藏閱讀器模式</translation>
 <translation id="3622175633937495219">搜尋歷史記錄 (找到 <ph name="COUNT" /> 項結果)</translation>
 <translation id="3625008969091706597">只要在邊緣滑動即可返回上一個畫面。</translation>
 <translation id="362709345066740529">在這裡自訂資訊卡、動態消息等</translation>
@@ -964,7 +965,6 @@
 <translation id="4979397965658815378">只要登入 Google 帳戶,即可在你的所有裝置上使用自己的書籤、密碼、歷史記錄和其他設定。</translation>
 <translation id="4985921635659180565">檔案排定刪除時間後就無法取消。</translation>
 <translation id="498624032394115435">知道連結的使用者都可以編輯所有分頁。</translation>
-<translation id="4989065233040279145">選擇「<ph name="FILENAME" />」的儲存位置</translation>
 <translation id="499122600724363620"><ph name="NAME" />,<ph name="EMAIL" />,該帳戶由貴機構管理。</translation>
 <translation id="4992255726304765516">分頁群組顏色:<ph name="COLOR" /></translation>
 <translation id="5005498671520578047">複製密碼</translation>
@@ -1064,6 +1064,7 @@
 <translation id="5431252637281434233">系統會將你登出</translation>
 <translation id="543338862236136125">修改密碼</translation>
 <translation id="5433691172869980887">已複製使用者名稱</translation>
+<translation id="5437480232219631455">這裡可以開啟 Gemini</translation>
 <translation id="5439618055789623719">目前的登入身分是 <ph name="USER_EMAIL" /></translation>
 <translation id="5443636120437209490">設為預設瀏覽器,上網體驗再進化</translation>
 <translation id="5444892875087332195">書籤</translation>
@@ -1650,7 +1651,6 @@
 <translation id="7724085059277147439">{count,plural, =1{這個項目已儲存到 Google 帳戶 ({email})}other{這些項目已儲存到 Google 帳戶 ({email})}}</translation>
 <translation id="7729458878441927652">如要查看其他裝置上的分頁,請同步處理分頁和歷史記錄。</translation>
 <translation id="7730020510075123961">否,合併資料</translation>
-<translation id="7730973429297233609">選取要用來儲存 <ph name="FILENAME" /> (<ph name="FILESIZE" />) 的帳戶</translation>
 <translation id="7733646263819020771"><ph name="BOOKMRK_NAME" />。僅在這部裝置上。</translation>
 <translation id="7744192722284567281">發生資料侵害事件</translation>
 <translation id="7749790401023484470">未選取任何文字。</translation>
@@ -1834,7 +1834,6 @@
 <translation id="8428045167754449968">鄉/鎮/市/區</translation>
 <translation id="8428213095426709021">設定</translation>
 <translation id="8428634594422941299">我知道了</translation>
-<translation id="8430694217306051839">選擇「<ph name="FILENAME" />」(<ph name="FILE_SIZE" />) 的儲存位置</translation>
 <translation id="8434837876193928924">分頁群組詳細資料</translation>
 <translation id="8438566539970814960">改善搜尋和瀏覽體驗</translation>
 <translation id="8439758443371991593">隱藏「加入閱讀清單」</translation>
diff --git a/ios/chrome/app/strings/resources/ios_strings_zu.xtb b/ios/chrome/app/strings/resources/ios_strings_zu.xtb
index ab7df77..b171d168 100644
--- a/ios/chrome/app/strings/resources/ios_strings_zu.xtb
+++ b/ios/chrome/app/strings/resources/ios_strings_zu.xtb
@@ -623,6 +623,7 @@
 <translation id="3596414637720633074">Vimba amakhukhi wenkampani yangaphandle ku-Incognito</translation>
 <translation id="3602260545951981695">Khetha "Ukuvikeleka Okuthuthukisiwe"</translation>
 <translation id="3608436266458100337">Imodi yesifundi</translation>
+<translation id="3610041351087301930">Fihla Isifundi</translation>
 <translation id="3622175633937495219">Umlando Wosesha (kutholakale okungu-<ph name="COUNT" />)</translation>
 <translation id="3625008969091706597">Ungaswayipha unqenqema ukuze ubuyele emuva.</translation>
 <translation id="362709345066740529">Yenza ngokwezifiso amakhadi akho, okuphakelayo, nokunye okwengeziwe lapha</translation>
@@ -964,7 +965,6 @@
 <translation id="4979397965658815378">Ngena ngemvume nge-akhawunti yakho ye-Google ukuze uthole amabhukhimakhi, amaphasiwedi, umlando nezinye izilungiselelo kuwo wonke amadivayisi akho</translation>
 <translation id="4985921635659180565">Uma ifayela selishejulelwe ukusulwa, alikwazi ukukhanselwa.</translation>
 <translation id="498624032394115435">Noma ngubani onelinki angahlela wonke amathebhu.</translation>
-<translation id="4989065233040279145">Khetha ukuthi ilondolozwe kuphi i-<ph name="FILENAME" /></translation>
 <translation id="499122600724363620"><ph name="NAME" />, <ph name="EMAIL" />, ilawulwa yinhlangano yakho.</translation>
 <translation id="4992255726304765516">Umbala weqembu lethebhu <ph name="COLOR" /></translation>
 <translation id="5005498671520578047">Kopisha iphasiwedi</translation>
@@ -1064,6 +1064,7 @@
 <translation id="5431252637281434233">Uzokhishwa ngemvume</translation>
 <translation id="543338862236136125">Hlela iphasiwedi</translation>
 <translation id="5433691172869980887">Igama lomsebenzisi likopishiwe</translation>
+<translation id="5437480232219631455">Ungavula iGemini lapha</translation>
 <translation id="5439618055789623719">Ungene ngemvume njengo-<ph name="USER_EMAIL" /></translation>
 <translation id="5443636120437209490">Ukubhrawuza okungcono ngokuzenzakalela</translation>
 <translation id="5444892875087332195">Amabhukhimakhi</translation>
@@ -1650,7 +1651,6 @@
 <translation id="7724085059277147439">{count,plural, =1{Into ilondolozwe ku-Google Account, {email}}one{Izinto ilondolozwe ku-Google Account, {email}}other{Izinto ilondolozwe ku-Google Account, {email}}}</translation>
 <translation id="7729458878441927652">Ukuze ubone amathebhu ukusuka kwamanye amadivayisi akho, vumelanisa amathebhu akho nomlando.</translation>
 <translation id="7730020510075123961">Cha, hlanganisa idatha</translation>
-<translation id="7730973429297233609">Khetha i-akhawunti ofuna ukuyisebenzisa ukuze ulondoloze okuthi <ph name="FILENAME" /> - <ph name="FILESIZE" /></translation>
 <translation id="7733646263819020771">I-<ph name="BOOKMRK_NAME" />. Kule divayisi kuphela</translation>
 <translation id="7744192722284567281">Kutholakele ekukhuphuleni isivumelwano sedatha</translation>
 <translation id="7749790401023484470">Awukhethanga noma yimuphi umbhalo.</translation>
@@ -1834,7 +1834,6 @@
 <translation id="8428045167754449968">Idolobhakazi / Idolobha</translation>
 <translation id="8428213095426709021">Izilungiselelo</translation>
 <translation id="8428634594422941299">Ngiyezwa</translation>
-<translation id="8430694217306051839">Khetha ukuthi ilondolozwe kuphi i-<ph name="FILENAME" /> (<ph name="FILE_SIZE" />)</translation>
 <translation id="8434837876193928924">Imininingwane yeqembu lethebhu</translation>
 <translation id="8438566539970814960">Yenza usesho nokuphequlula kube ngcono</translation>
 <translation id="8439758443371991593">Fihla okuthi Faka Ohlwini Lokufunda</translation>
diff --git a/ios/chrome/browser/authentication/ui_bundled/account_menu/account_menu_view_controller.mm b/ios/chrome/browser/authentication/ui_bundled/account_menu/account_menu_view_controller.mm
index e060343..80b53b1 100644
--- a/ios/chrome/browser/authentication/ui_bundled/account_menu/account_menu_view_controller.mm
+++ b/ios/chrome/browser/authentication/ui_bundled/account_menu/account_menu_view_controller.mm
@@ -751,7 +751,7 @@
 }
 
 - (void)keyCommand_close {
-  base::RecordAction(base::UserMetricsAction("MobileKeyCommandClose"));
+  base::RecordAction(base::UserMetricsAction(kMobileKeyCommandClose));
   [self.mutator viewControllerWantsToBeClosed:self];
 }
 
diff --git a/ios/chrome/browser/authentication/ui_bundled/enterprise/managed_profile_creation/learn_more_table_view_controller.mm b/ios/chrome/browser/authentication/ui_bundled/enterprise/managed_profile_creation/learn_more_table_view_controller.mm
index 55b773a..cbc7f9b 100644
--- a/ios/chrome/browser/authentication/ui_bundled/enterprise/managed_profile_creation/learn_more_table_view_controller.mm
+++ b/ios/chrome/browser/authentication/ui_bundled/enterprise/managed_profile_creation/learn_more_table_view_controller.mm
@@ -100,7 +100,7 @@
 }
 
 - (void)keyCommand_close {
-  base::RecordAction(base::UserMetricsAction("MobileKeyCommandClose"));
+  base::RecordAction(base::UserMetricsAction(kMobileKeyCommandClose));
   [self.presentationDelegate dismissLearnMoreTableViewController:self];
   // Request the coordinator to be stopped here
 }
diff --git a/ios/chrome/browser/authentication/ui_bundled/history_sync/history_sync_view_controller.mm b/ios/chrome/browser/authentication/ui_bundled/history_sync/history_sync_view_controller.mm
index 970f65b..60328fd5 100644
--- a/ios/chrome/browser/authentication/ui_bundled/history_sync/history_sync_view_controller.mm
+++ b/ios/chrome/browser/authentication/ui_bundled/history_sync/history_sync_view_controller.mm
@@ -137,7 +137,7 @@
 }
 
 - (void)keyCommand_close {
-  base::RecordAction(base::UserMetricsAction("MobileKeyCommandClose"));
+  base::RecordAction(base::UserMetricsAction(kMobileKeyCommandClose));
   // Closing behavior is the same as "No thanks". For consistency with
   // `presentationControllerDidDismiss:` behaviour.
   [self.delegate didTapSecondaryActionButton];
diff --git a/ios/chrome/browser/authentication/ui_bundled/identity_chooser/identity_chooser_view_controller.mm b/ios/chrome/browser/authentication/ui_bundled/identity_chooser/identity_chooser_view_controller.mm
index b5e12b3..8353f13 100644
--- a/ios/chrome/browser/authentication/ui_bundled/identity_chooser/identity_chooser_view_controller.mm
+++ b/ios/chrome/browser/authentication/ui_bundled/identity_chooser/identity_chooser_view_controller.mm
@@ -153,7 +153,7 @@
 }
 
 - (void)keyCommand_close {
-  base::RecordAction(base::UserMetricsAction("MobileKeyCommandClose"));
+  base::RecordAction(base::UserMetricsAction(kMobileKeyCommandClose));
   [self dismissViewControllerAnimated:YES completion:nil];
 }
 
diff --git a/ios/chrome/browser/authentication/ui_bundled/signin/consistency_promo_signin/consistency_account_chooser/BUILD.gn b/ios/chrome/browser/authentication/ui_bundled/signin/consistency_promo_signin/consistency_account_chooser/BUILD.gn
index 28be404..b52171b 100644
--- a/ios/chrome/browser/authentication/ui_bundled/signin/consistency_promo_signin/consistency_account_chooser/BUILD.gn
+++ b/ios/chrome/browser/authentication/ui_bundled/signin/consistency_promo_signin/consistency_account_chooser/BUILD.gn
@@ -28,6 +28,7 @@
     "//ios/chrome/browser/authentication/ui_bundled/enterprise:enterprise_utils",
     "//ios/chrome/browser/authentication/ui_bundled/signin/consistency_promo_signin:layout",
     "//ios/chrome/browser/authentication/ui_bundled/signin/consistency_promo_signin/consistency_sheet",
+    "//ios/chrome/browser/keyboard/ui_bundled",
     "//ios/chrome/browser/net/model:crurl",
     "//ios/chrome/browser/shared/coordinator/chrome_coordinator",
     "//ios/chrome/browser/shared/model/browser",
diff --git a/ios/chrome/browser/authentication/ui_bundled/signin/consistency_promo_signin/consistency_account_chooser/consistency_account_chooser_coordinator.h b/ios/chrome/browser/authentication/ui_bundled/signin/consistency_promo_signin/consistency_account_chooser/consistency_account_chooser_coordinator.h
index 0619c85..e97e476 100644
--- a/ios/chrome/browser/authentication/ui_bundled/signin/consistency_promo_signin/consistency_account_chooser/consistency_account_chooser_coordinator.h
+++ b/ios/chrome/browser/authentication/ui_bundled/signin/consistency_promo_signin/consistency_account_chooser/consistency_account_chooser_coordinator.h
@@ -22,6 +22,10 @@
 - (void)consistencyAccountChooserCoordinatorOpenAddAccount:
     (ConsistencyAccountChooserCoordinator*)coordinator;
 
+// Invoke add account SigninCoordinator.
+- (void)consistencyAccountChooserCoordinatorWantsToBeStopped:
+    (ConsistencyAccountChooserCoordinator*)coordinator;
+
 @end
 
 // This coordinator presents an entry point to the Chrome sign-in flow with the
diff --git a/ios/chrome/browser/authentication/ui_bundled/signin/consistency_promo_signin/consistency_account_chooser/consistency_account_chooser_coordinator.mm b/ios/chrome/browser/authentication/ui_bundled/signin/consistency_promo_signin/consistency_account_chooser/consistency_account_chooser_coordinator.mm
index a012a64..e1a1b7b 100644
--- a/ios/chrome/browser/authentication/ui_bundled/signin/consistency_promo_signin/consistency_account_chooser/consistency_account_chooser_coordinator.mm
+++ b/ios/chrome/browser/authentication/ui_bundled/signin/consistency_promo_signin/consistency_account_chooser/consistency_account_chooser_coordinator.mm
@@ -103,6 +103,13 @@
   [self.delegate consistencyAccountChooserCoordinatorOpenAddAccount:self];
 }
 
+- (void)consistencyAccountChooserTableViewControllerWantsToGoBack:
+    (ConsistencyAccountChooserViewController*)viewController {
+  CHECK_EQ(viewController, self.accountChooserViewController,
+           base::NotFatalUntil::M140);
+  [self.delegate consistencyAccountChooserCoordinatorWantsToBeStopped:self];
+}
+
 - (void)showManagementHelpPage {
   OpenNewTabCommand* command = [OpenNewTabCommand
       commandWithURLFromChrome:GURL(kManagementLearnMoreURL)];
diff --git a/ios/chrome/browser/authentication/ui_bundled/signin/consistency_promo_signin/consistency_account_chooser/consistency_account_chooser_table_view_controller.mm b/ios/chrome/browser/authentication/ui_bundled/signin/consistency_promo_signin/consistency_account_chooser/consistency_account_chooser_table_view_controller.mm
index f3b824f..f8cd011c 100644
--- a/ios/chrome/browser/authentication/ui_bundled/signin/consistency_promo_signin/consistency_account_chooser/consistency_account_chooser_table_view_controller.mm
+++ b/ios/chrome/browser/authentication/ui_bundled/signin/consistency_promo_signin/consistency_account_chooser/consistency_account_chooser_table_view_controller.mm
@@ -6,6 +6,7 @@
 
 #import "base/apple/foundation_util.h"
 #import "base/check.h"
+#import "base/metrics/user_metrics.h"
 #import "base/notreached.h"
 #import "ios/chrome/browser/authentication/ui_bundled/cells/table_view_identity_item.h"
 #import "ios/chrome/browser/authentication/ui_bundled/enterprise/enterprise_utils.h"
@@ -77,12 +78,16 @@
       TableViewIdentityItem* identityItem =
           base::apple::ObjCCastStrict<TableViewIdentityItem>(item);
       DCHECK(identityItem);
+      base::RecordAction(base::UserMetricsAction(
+          "Signin_BottomSheet_IdentityChooser_Selected"));
       [self.actionDelegate
           consistencyAccountChooserTableViewController:self
                            didSelectIdentityWithGaiaID:identityItem.gaiaID];
       break;
     }
     case AddAccountItemType:
+      base::RecordAction(base::UserMetricsAction(
+          "Signin_BottomSheet_IdentityChooser_AddAccount"));
       [self.actionDelegate
           consistencyAccountChooserTableViewControllerDidTapOnAddAccount:self];
       break;
@@ -178,6 +183,8 @@
 - (void)view:(TableViewLinkHeaderFooterView*)view didTapLinkURL:(CrURL*)URL {
   DCHECK(URL.gurl == GURL(kChromeUIManagementURL));
   DCHECK(self.actionDelegate);
+  base::RecordAction(base::UserMetricsAction(
+      "Signin_BottomSheet_IdentityChooser_ShowManagementHelpPage"));
   [self.actionDelegate showManagementHelpPage];
 }
 
diff --git a/ios/chrome/browser/authentication/ui_bundled/signin/consistency_promo_signin/consistency_account_chooser/consistency_account_chooser_table_view_controller_action_delegate.h b/ios/chrome/browser/authentication/ui_bundled/signin/consistency_promo_signin/consistency_account_chooser/consistency_account_chooser_table_view_controller_action_delegate.h
index 7fe2ee7..dcc655b 100644
--- a/ios/chrome/browser/authentication/ui_bundled/signin/consistency_promo_signin/consistency_account_chooser/consistency_account_chooser_table_view_controller_action_delegate.h
+++ b/ios/chrome/browser/authentication/ui_bundled/signin/consistency_promo_signin/consistency_account_chooser/consistency_account_chooser_table_view_controller_action_delegate.h
@@ -7,6 +7,7 @@
 
 #import <Foundation/Foundation.h>
 
+@class ConsistencyAccountChooserViewController;
 @class ConsistencyAccountChooserTableViewController;
 
 // Delegate protocol for ConsistencyAccountChooserTableViewController.
@@ -16,10 +17,15 @@
 - (void)consistencyAccountChooserTableViewController:
             (ConsistencyAccountChooserTableViewController*)viewController
                          didSelectIdentityWithGaiaID:(NSString*)gaiaID;
+
 // Invoked when the user taps on "Add account".
 - (void)consistencyAccountChooserTableViewControllerDidTapOnAddAccount:
     (ConsistencyAccountChooserTableViewController*)viewController;
 
+// Invoked when the user wants to go back to the previous view.
+- (void)consistencyAccountChooserTableViewControllerWantsToGoBack:
+    (ConsistencyAccountChooserViewController*)viewController;
+
 // Show management help page.
 - (void)showManagementHelpPage;
 
diff --git a/ios/chrome/browser/authentication/ui_bundled/signin/consistency_promo_signin/consistency_account_chooser/consistency_account_chooser_view_controller.mm b/ios/chrome/browser/authentication/ui_bundled/signin/consistency_promo_signin/consistency_account_chooser/consistency_account_chooser_view_controller.mm
index a939ec7..bd7ed75 100644
--- a/ios/chrome/browser/authentication/ui_bundled/signin/consistency_promo_signin/consistency_account_chooser/consistency_account_chooser_view_controller.mm
+++ b/ios/chrome/browser/authentication/ui_bundled/signin/consistency_promo_signin/consistency_account_chooser/consistency_account_chooser_view_controller.mm
@@ -5,8 +5,12 @@
 #import "ios/chrome/browser/authentication/ui_bundled/signin/consistency_promo_signin/consistency_account_chooser/consistency_account_chooser_view_controller.h"
 
 #import "base/check.h"
+#import "base/metrics/user_metrics.h"
+#import "base/metrics/user_metrics_action.h"
 #import "ios/chrome/browser/authentication/ui_bundled/signin/consistency_promo_signin/consistency_account_chooser/consistency_account_chooser_table_view_controller.h"
+#import "ios/chrome/browser/authentication/ui_bundled/signin/consistency_promo_signin/consistency_account_chooser/consistency_account_chooser_table_view_controller_action_delegate.h"
 #import "ios/chrome/browser/authentication/ui_bundled/signin/consistency_promo_signin/consistency_layout_delegate.h"
+#import "ios/chrome/browser/keyboard/ui_bundled/UIKeyCommand+Chrome.h"
 #import "ios/chrome/browser/shared/public/features/features.h"
 #import "ios/chrome/browser/shared/ui/table_view/table_view_utils.h"
 #import "ios/chrome/grit/ios_strings.h"
@@ -114,4 +118,22 @@
          kContentMargin + safeAreaInsetsHeight;
 }
 
+#pragma mark - UIResponder
+
+// To always be able to register key commands via -keyCommands, the VC must be
+// able to become first responder.
+- (BOOL)canBecomeFirstResponder {
+  return YES;
+}
+
+- (NSArray*)keyCommands {
+  return @[ UIKeyCommand.cr_close ];
+}
+
+- (void)keyCommand_close {
+  base::RecordAction(base::UserMetricsAction(kMobileKeyCommandClose));
+  [self.actionDelegate
+      consistencyAccountChooserTableViewControllerWantsToGoBack:self];
+}
+
 @end
diff --git a/ios/chrome/browser/authentication/ui_bundled/signin/consistency_promo_signin/consistency_default_account/consistency_default_account_view_controller.mm b/ios/chrome/browser/authentication/ui_bundled/signin/consistency_promo_signin/consistency_default_account/consistency_default_account_view_controller.mm
index b1f5770..398ccff 100644
--- a/ios/chrome/browser/authentication/ui_bundled/signin/consistency_promo_signin/consistency_default_account/consistency_default_account_view_controller.mm
+++ b/ios/chrome/browser/authentication/ui_bundled/signin/consistency_promo_signin/consistency_default_account/consistency_default_account_view_controller.mm
@@ -344,6 +344,13 @@
       l10n_util::GetNSString(IDS_IOS_CONSISTENCY_PROMO_SIGN_IN));
 }
 
+#pragma mark - UIAccessibilityAction
+
+- (BOOL)accessibilityPerformEscape {
+  [self.actionDelegate consistencyDefaultAccountViewControllerSkip:self];
+  return YES;
+}
+
 #pragma mark - UIResponder
 
 // To always be able to register key commands via -keyCommands, the VC must be
@@ -357,7 +364,7 @@
 }
 
 - (void)keyCommand_close {
-  base::RecordAction(base::UserMetricsAction("MobileKeyCommandClose"));
+  base::RecordAction(base::UserMetricsAction(kMobileKeyCommandClose));
   [self.actionDelegate consistencyDefaultAccountViewControllerSkip:self];
 }
 
diff --git a/ios/chrome/browser/authentication/ui_bundled/signin/consistency_promo_signin/consistency_promo_signin_coordinator.mm b/ios/chrome/browser/authentication/ui_bundled/signin/consistency_promo_signin/consistency_promo_signin_coordinator.mm
index 5dbd2c66..7eec5a0 100644
--- a/ios/chrome/browser/authentication/ui_bundled/signin/consistency_promo_signin/consistency_promo_signin_coordinator.mm
+++ b/ios/chrome/browser/authentication/ui_bundled/signin/consistency_promo_signin/consistency_promo_signin_coordinator.mm
@@ -408,6 +408,14 @@
   [self openAddAccountCoordinatorWithHasAccounts:YES];
 }
 
+- (void)consistencyAccountChooserCoordinatorWantsToBeStopped:
+    (ConsistencyAccountChooserCoordinator*)coordinator {
+  CHECK_EQ(coordinator, self.accountChooserCoordinator,
+           base::NotFatalUntil::M140);
+  [self stopAccountChooserCoordinator];
+  [self.navigationController popViewControllerAnimated:YES];
+}
+
 #pragma mark - ConsistencyDefaultAccountCoordinatorDelegate
 
 - (void)consistencyDefaultAccountCoordinatorSkip:
@@ -514,6 +522,8 @@
   if (self.navigationController.viewControllers.count == 1 &&
       self.accountChooserCoordinator) {
     // AccountChooserCoordinator has been removed by "Back" button.
+    base::RecordAction(base::UserMetricsAction(
+        "Signin_BottomSheet_IdentityChooser_ClosedByUser"));
     [self stopAccountChooserCoordinator];
   }
 }
diff --git a/ios/chrome/browser/autofill/ui_bundled/address_editor/autofill_country_selection_table_view_controller.mm b/ios/chrome/browser/autofill/ui_bundled/address_editor/autofill_country_selection_table_view_controller.mm
index 0d3d45c..9afe036 100644
--- a/ios/chrome/browser/autofill/ui_bundled/address_editor/autofill_country_selection_table_view_controller.mm
+++ b/ios/chrome/browser/autofill/ui_bundled/address_editor/autofill_country_selection_table_view_controller.mm
@@ -116,12 +116,10 @@
                      action:@selector(dismissViewController)
            forControlEvents:UIControlEventTouchUpInside];
 
-      if (@available(iOS 15.0, *)) {
-        UIButtonConfiguration* config = backButton.configuration;
-        config.contentInsets =
-            NSDirectionalEdgeInsetsMake(0, 8, 0, 0);  // Adjust values as needed
-        backButton.configuration = config;
-      }
+      UIButtonConfiguration* config = backButton.configuration;
+      config.contentInsets =
+          NSDirectionalEdgeInsetsMake(0, 8, 0, 0);  // Adjust values as needed
+      backButton.configuration = config;
 
       // Size the button to fit the content
       [backButton sizeToFit];
diff --git a/ios/chrome/browser/autofill/ui_bundled/manual_fill/password_view_controller_egtest.mm b/ios/chrome/browser/autofill/ui_bundled/manual_fill/password_view_controller_egtest.mm
index ac51164..972a614 100644
--- a/ios/chrome/browser/autofill/ui_bundled/manual_fill/password_view_controller_egtest.mm
+++ b/ios/chrome/browser/autofill/ui_bundled/manual_fill/password_view_controller_egtest.mm
@@ -987,7 +987,15 @@
 }
 
 // Tests password generation on manual fallback.
-- (void)testPasswordGenerationOnManualFallback {
+// TODO(crbug.com/424760140): Test fails on simulator.
+#if TARGET_IPHONE_SIMULATOR
+#define MAYBE_testPasswordGenerationOnManualFallback \
+  DISABLED_testPasswordGenerationOnManualFallback
+#else
+#define MAYBE_testPasswordGenerationOnManualFallback \
+  testPasswordGenerationOnManualFallback
+#endif
+- (void)MAYBE_testPasswordGenerationOnManualFallback {
   [SigninEarlGreyUI signinWithFakeIdentity:[FakeSystemIdentity fakeIdentity1]];
   [ChromeEarlGrey waitForSyncTransportStateActiveWithTimeout:base::Seconds(10)];
 
@@ -1016,7 +1024,15 @@
 }
 
 // Tests password generation on manual fallback for signed in users.
-- (void)testPasswordGenerationOnManualFallbackSignedInAccount {
+// TODO(crbug.com/424760140): Test fails on simulator.
+#if TARGET_IPHONE_SIMULATOR
+#define MAYBE_testPasswordGenerationOnManualFallbackSignedInAccount \
+  DISABLED_testPasswordGenerationOnManualFallbackSignedInAccount
+#else
+#define MAYBE_testPasswordGenerationOnManualFallbackSignedInAccount \
+  testPasswordGenerationOnManualFallbackSignedInAccount
+#endif
+- (void)MAYBE_testPasswordGenerationOnManualFallbackSignedInAccount {
   [SigninEarlGreyUI signinWithFakeIdentity:[FakeSystemIdentity fakeIdentity1]];
   [ChromeEarlGrey waitForSyncTransportStateActiveWithTimeout:base::Seconds(10)];
 
diff --git a/ios/chrome/browser/bookmarks/ui_bundled/editor/BUILD.gn b/ios/chrome/browser/bookmarks/ui_bundled/editor/BUILD.gn
index f9ca8c3..923073b 100644
--- a/ios/chrome/browser/bookmarks/ui_bundled/editor/BUILD.gn
+++ b/ios/chrome/browser/bookmarks/ui_bundled/editor/BUILD.gn
@@ -91,6 +91,7 @@
     "//ios/chrome/browser/bookmarks/model:test_support",
     "//ios/chrome/browser/bookmarks/ui_bundled:constants",
     "//ios/chrome/browser/bookmarks/ui_bundled:core",
+    "//ios/chrome/browser/keyboard/ui_bundled",
     "//ios/chrome/browser/shared/model/browser",
     "//ios/chrome/browser/shared/model/browser/test:test_support",
     "//ios/chrome/browser/shared/model/profile/test",
diff --git a/ios/chrome/browser/bookmarks/ui_bundled/editor/bookmarks_editor_view_controller.mm b/ios/chrome/browser/bookmarks/ui_bundled/editor/bookmarks_editor_view_controller.mm
index 4e82256..f3fa29d9 100644
--- a/ios/chrome/browser/bookmarks/ui_bundled/editor/bookmarks_editor_view_controller.mm
+++ b/ios/chrome/browser/bookmarks/ui_bundled/editor/bookmarks_editor_view_controller.mm
@@ -428,7 +428,7 @@
 }
 
 - (void)keyCommand_close {
-  base::RecordAction(base::UserMetricsAction("MobileKeyCommandClose"));
+  base::RecordAction(base::UserMetricsAction(kMobileKeyCommandClose));
   [self dismissBookmarkEditorView];
 }
 
diff --git a/ios/chrome/browser/bookmarks/ui_bundled/editor/bookmarks_editor_view_controller_unittest.mm b/ios/chrome/browser/bookmarks/ui_bundled/editor/bookmarks_editor_view_controller_unittest.mm
index f4e26b1..38aee3d 100644
--- a/ios/chrome/browser/bookmarks/ui_bundled/editor/bookmarks_editor_view_controller_unittest.mm
+++ b/ios/chrome/browser/bookmarks/ui_bundled/editor/bookmarks_editor_view_controller_unittest.mm
@@ -8,6 +8,7 @@
 #import "components/bookmarks/browser/bookmark_model.h"
 #import "ios/chrome/browser/bookmarks/model/bookmark_ios_unit_test_support.h"
 #import "ios/chrome/browser/bookmarks/ui_bundled/editor/bookmarks_editor_mediator.h"
+#import "ios/chrome/browser/keyboard/ui_bundled/UIKeyCommand+Chrome.h"
 #import "ios/chrome/browser/shared/model/profile/test/test_profile_ios.h"
 #import "ios/chrome/browser/signin/model/authentication_service.h"
 #import "ios/chrome/browser/signin/model/authentication_service_factory.h"
@@ -43,12 +44,11 @@
 // Checks that metrics are correctly reported.
 TEST_F(BookmarksEditorViewControllerTest, Metrics) {
   base::UserActionTester user_action_tester;
-  std::string user_action = "MobileKeyCommandClose";
-  ASSERT_EQ(user_action_tester.GetActionCount(user_action), 0);
+  ASSERT_EQ(user_action_tester.GetActionCount(kMobileKeyCommandClose), 0);
 
   [_controller keyCommand_close];
 
-  EXPECT_EQ(user_action_tester.GetActionCount(user_action), 1);
+  EXPECT_EQ(user_action_tester.GetActionCount(kMobileKeyCommandClose), 1);
 }
 
 // Regression test for See crbug.com/1429435
diff --git a/ios/chrome/browser/bookmarks/ui_bundled/home/BUILD.gn b/ios/chrome/browser/bookmarks/ui_bundled/home/BUILD.gn
index 69a38e7d..80f32f50 100644
--- a/ios/chrome/browser/bookmarks/ui_bundled/home/BUILD.gn
+++ b/ios/chrome/browser/bookmarks/ui_bundled/home/BUILD.gn
@@ -111,6 +111,7 @@
     "//ios/chrome/browser/bookmarks/model",
     "//ios/chrome/browser/bookmarks/model:test_support",
     "//ios/chrome/browser/bookmarks/ui_bundled/home",
+    "//ios/chrome/browser/keyboard/ui_bundled",
     "//ios/chrome/browser/shared/model/browser",
     "//ios/chrome/browser/shared/model/profile/test",
     "//ios/chrome/browser/shared/public/commands",
diff --git a/ios/chrome/browser/bookmarks/ui_bundled/home/bookmarks_home_mediator.mm b/ios/chrome/browser/bookmarks/ui_bundled/home/bookmarks_home_mediator.mm
index 98587f7..4899810 100644
--- a/ios/chrome/browser/bookmarks/ui_bundled/home/bookmarks_home_mediator.mm
+++ b/ios/chrome/browser/bookmarks/ui_bundled/home/bookmarks_home_mediator.mm
@@ -570,7 +570,7 @@
 - (void)willDeleteNode:(const BookmarkNode*)node
             fromFolder:(const BookmarkNode*)folder {
   DCHECK(node);
-  if (self.displayedNode == node) {
+  if (self.displayedNode->HasAncestor(node)) {
     [self.consumer closeThisFolder];
   }
 }
diff --git a/ios/chrome/browser/bookmarks/ui_bundled/home/bookmarks_home_view_controller.mm b/ios/chrome/browser/bookmarks/ui_bundled/home/bookmarks_home_view_controller.mm
index 415cf78..a716fca 100644
--- a/ios/chrome/browser/bookmarks/ui_bundled/home/bookmarks_home_view_controller.mm
+++ b/ios/chrome/browser/bookmarks/ui_bundled/home/bookmarks_home_view_controller.mm
@@ -530,7 +530,7 @@
 }
 
 - (void)keyCommand_close {
-  base::RecordAction(base::UserMetricsAction("MobileKeyCommandClose"));
+  base::RecordAction(base::UserMetricsAction(kMobileKeyCommandClose));
   [self navigationBarCancel:nil];
 }
 
diff --git a/ios/chrome/browser/bookmarks/ui_bundled/home/bookmarks_home_view_controller_unittest.mm b/ios/chrome/browser/bookmarks/ui_bundled/home/bookmarks_home_view_controller_unittest.mm
index 283d7bd..6484cdc 100644
--- a/ios/chrome/browser/bookmarks/ui_bundled/home/bookmarks_home_view_controller_unittest.mm
+++ b/ios/chrome/browser/bookmarks/ui_bundled/home/bookmarks_home_view_controller_unittest.mm
@@ -9,6 +9,7 @@
 #import "components/bookmarks/common/bookmark_features.h"
 #import "ios/chrome/browser/bookmarks/model/bookmark_ios_unit_test_support.h"
 #import "ios/chrome/browser/bookmarks/ui_bundled/home/bookmarks_home_mediator.h"
+#import "ios/chrome/browser/keyboard/ui_bundled/UIKeyCommand+Chrome.h"
 #import "ios/chrome/browser/shared/model/browser/browser.h"
 #import "ios/chrome/browser/shared/model/profile/test/test_profile_ios.h"
 #import "ios/chrome/browser/shared/public/commands/application_commands.h"
@@ -183,12 +184,11 @@
 
     controller.displayedFolderNode = bookmark_model_->mobile_node();
     base::UserActionTester user_action_tester;
-    std::string user_action = "MobileKeyCommandClose";
-    ASSERT_EQ(user_action_tester.GetActionCount(user_action), 0);
+    ASSERT_EQ(user_action_tester.GetActionCount(kMobileKeyCommandClose), 0);
 
     [controller keyCommand_close];
 
-    EXPECT_EQ(user_action_tester.GetActionCount(user_action), 1);
+    EXPECT_EQ(user_action_tester.GetActionCount(kMobileKeyCommandClose), 1);
     [controller shutdown];
   }
 }
diff --git a/ios/chrome/browser/collaboration/model/messaging/infobar/BUILD.gn b/ios/chrome/browser/collaboration/model/messaging/infobar/BUILD.gn
index 86b8728..c4d3d93 100644
--- a/ios/chrome/browser/collaboration/model/messaging/infobar/BUILD.gn
+++ b/ios/chrome/browser/collaboration/model/messaging/infobar/BUILD.gn
@@ -40,6 +40,7 @@
     "//components/collaboration/public",
     "//components/saved_tab_groups/test_support",
     "//ios/chrome/browser/infobars/model",
+    "//ios/chrome/browser/infobars/ui_bundled:test_support",
     "//ios/chrome/browser/saved_tab_groups/model",
     "//ios/chrome/browser/shared/model/browser",
     "//ios/chrome/browser/shared/model/browser/test:test_support",
diff --git a/ios/chrome/browser/collaboration/model/messaging/infobar/collaboration_group_infobar_delegate.mm b/ios/chrome/browser/collaboration/model/messaging/infobar/collaboration_group_infobar_delegate.mm
index e83960baf..06ca8b09 100644
--- a/ios/chrome/browser/collaboration/model/messaging/infobar/collaboration_group_infobar_delegate.mm
+++ b/ios/chrome/browser/collaboration/model/messaging/infobar/collaboration_group_infobar_delegate.mm
@@ -171,8 +171,16 @@
   const auto& infobars = infobar_manager->infobars();
   for (int i = static_cast<int>(infobars.size()) - 1; i >= 0; --i) {
     infobars::InfoBar* infobar = infobars[i];
+
+    InfoBarIOS* infobar_ios = static_cast<InfoBarIOS*>(infobar);
+    if (infobar_ios->infobar_type() !=
+        InfobarType::kInfobarTypeCollaborationGroup) {
+      continue;
+    }
+
     CollaborationGroupInfoBarDelegate* delegate =
-        static_cast<CollaborationGroupInfoBarDelegate*>(infobar->delegate());
+        static_cast<CollaborationGroupInfoBarDelegate*>(
+            infobar_ios->delegate());
     if (!delegate) {
       continue;
     }
diff --git a/ios/chrome/browser/collaboration/model/messaging/infobar/collaboration_group_infobar_delegate_unittest.mm b/ios/chrome/browser/collaboration/model/messaging/infobar/collaboration_group_infobar_delegate_unittest.mm
index 367bef0..7e03217 100644
--- a/ios/chrome/browser/collaboration/model/messaging/infobar/collaboration_group_infobar_delegate_unittest.mm
+++ b/ios/chrome/browser/collaboration/model/messaging/infobar/collaboration_group_infobar_delegate_unittest.mm
@@ -12,6 +12,7 @@
 #import "components/saved_tab_groups/test_support/saved_tab_group_test_utils.h"
 #import "ios/chrome/browser/infobars/model/infobar_ios.h"
 #import "ios/chrome/browser/infobars/model/infobar_manager_impl.h"
+#import "ios/chrome/browser/infobars/ui_bundled/test_infobar_delegate.h"
 #import "ios/chrome/browser/saved_tab_groups/model/tab_group_sync_service_factory.h"
 #import "ios/chrome/browser/shared/model/browser/browser_list.h"
 #import "ios/chrome/browser/shared/model/browser/browser_list_factory.h"
@@ -297,15 +298,22 @@
   CollaborationGroupInfoBarDelegate::Create(profile_.get(), message_1);
   CollaborationGroupInfoBarDelegate::Create(profile_.get(), message_2);
   CollaborationGroupInfoBarDelegate::Create(profile_.get(), message_3);
-  EXPECT_EQ(3U, infobar_manager()->infobars().size());
+
+  // Add another infobar to the infobar_manager with a different infobar type.
+  TestInfoBarDelegate* test_infobar_delegate =
+      new TestInfoBarDelegate(@"testInfobar");
+  test_infobar_delegate->Create(infobar_manager());
+
+  EXPECT_EQ(4U, infobar_manager()->infobars().size());
 
   // Try to clear `message_1` and `message_3`.
   CollaborationGroupInfoBarDelegate::ClearCollaborationGroupInfobars(
       profile_.get(), {message_1.attributions.front().id.value(),
                        message_3.attributions.front().id.value()});
-  EXPECT_EQ(1U, infobar_manager()->infobars().size());
+  EXPECT_EQ(2U, infobar_manager()->infobars().size());
 
-  // Check that the remaining infobar matches `message_2` identifier.
+  // Check that the remaining collaboration infobar matches `message_2`
+  // identifier.
   EXPECT_EQ(infobar_delegate()->GetInstantMessageIdentifier(),
             message_2.attributions.front().id.value());
 }
diff --git a/ios/chrome/browser/content_suggestions/ui_bundled/content_suggestions_coordinator.mm b/ios/chrome/browser/content_suggestions/ui_bundled/content_suggestions_coordinator.mm
index fc84c34b..9790368 100644
--- a/ios/chrome/browser/content_suggestions/ui_bundled/content_suggestions_coordinator.mm
+++ b/ios/chrome/browser/content_suggestions/ui_bundled/content_suggestions_coordinator.mm
@@ -1285,9 +1285,7 @@
                   base::RecordAction(base::UserMetricsAction(
                       "Commerce.PriceTracking.MagicStackPromo.Reenable.Allow"));
                   NSString* settingURL = UIApplicationOpenSettingsURLString;
-                  if (@available(iOS 15.4, *)) {
-                    settingURL = UIApplicationOpenNotificationSettingsURLString;
-                  }
+                  settingURL = UIApplicationOpenNotificationSettingsURLString;
 
                   [[UIApplication sharedApplication]
                       openURL:[NSURL URLWithString:settingURL]
diff --git a/ios/chrome/browser/credential_provider_promo/ui_bundled/credential_provider_promo_mediator.mm b/ios/chrome/browser/credential_provider_promo/ui_bundled/credential_provider_promo_mediator.mm
index 1d553d8..57dd7ff7 100644
--- a/ios/chrome/browser/credential_provider_promo/ui_bundled/credential_provider_promo_mediator.mm
+++ b/ios/chrome/browser/credential_provider_promo/ui_bundled/credential_provider_promo_mediator.mm
@@ -144,13 +144,6 @@
     case CredentialProviderPromoTrigger::RemindMeLater:
       source = [self promoOriginalSource];
 
-      // Reset the state. This case `RemindMeLater` implicitly means it is
-      // presented from and would be deregistered by the Promo Manager
-      // internally.
-      GetApplicationContext()->GetLocalState()->SetBoolean(
-          prefs::kIosCredentialProviderPromoHasRegisteredWithPromoManager,
-          false);
-
       [self setAnimation];
       break;
     case CredentialProviderPromoTrigger::SetUpList:
@@ -184,9 +177,6 @@
     self.tracker->NotifyEvent(
         feature_engagement::events::kCredentialProviderExtensionPromoSnoozed);
   }
-
-  GetApplicationContext()->GetLocalState()->SetBoolean(
-      prefs::kIosCredentialProviderPromoHasRegisteredWithPromoManager, true);
 }
 
 - (IOSCredentialProviderPromoSource)promoOriginalSource {
diff --git a/ios/chrome/browser/credential_provider_promo/ui_bundled/credential_provider_promo_scene_agent.mm b/ios/chrome/browser/credential_provider_promo/ui_bundled/credential_provider_promo_scene_agent.mm
index d092a42..4a8d14b 100644
--- a/ios/chrome/browser/credential_provider_promo/ui_bundled/credential_provider_promo_scene_agent.mm
+++ b/ios/chrome/browser/credential_provider_promo/ui_bundled/credential_provider_promo_scene_agent.mm
@@ -45,16 +45,9 @@
       // no-op.
       break;
     case SceneActivationLevelForegroundActive:
-      bool isPromoRegistered =
-          GetApplicationContext()->GetLocalState()->GetBoolean(
-              prefs::kIosCredentialProviderPromoHasRegisteredWithPromoManager);
-      bool shouldNotShowPromo = [self isCPEEnabled];
-      if (isPromoRegistered && shouldNotShowPromo) {
+      if ([self isCPEEnabled]) {
         _promosManager->DeregisterPromo(
             promos_manager::Promo::CredentialProviderExtension);
-        GetApplicationContext()->GetLocalState()->SetBoolean(
-            prefs::kIosCredentialProviderPromoHasRegisteredWithPromoManager,
-            false);
       }
       break;
   }
diff --git a/ios/chrome/browser/find_bar/ui_bundled/find_bar_view_controller.mm b/ios/chrome/browser/find_bar/ui_bundled/find_bar_view_controller.mm
index 3be4051b..6e473c2 100644
--- a/ios/chrome/browser/find_bar/ui_bundled/find_bar_view_controller.mm
+++ b/ios/chrome/browser/find_bar/ui_bundled/find_bar_view_controller.mm
@@ -53,7 +53,7 @@
 }
 
 - (void)keyCommand_close {
-  base::RecordAction(base::UserMetricsAction("MobileKeyCommandClose"));
+  base::RecordAction(base::UserMetricsAction(kMobileKeyCommandClose));
   [self.delegate dismiss];
 }
 
diff --git a/ios/chrome/browser/history/ui_bundled/base_history_view_controller.mm b/ios/chrome/browser/history/ui_bundled/base_history_view_controller.mm
index 52c8b5f..7a81884 100644
--- a/ios/chrome/browser/history/ui_bundled/base_history_view_controller.mm
+++ b/ios/chrome/browser/history/ui_bundled/base_history_view_controller.mm
@@ -998,7 +998,7 @@
 }
 
 - (void)keyCommand_close {
-  base::RecordAction(base::UserMetricsAction("MobileKeyCommandClose"));
+  base::RecordAction(base::UserMetricsAction(kMobileKeyCommandClose));
   [self.delegate dismissViewController:self];
 }
 
diff --git a/ios/chrome/browser/keyboard/ui_bundled/UIKeyCommand+Chrome.h b/ios/chrome/browser/keyboard/ui_bundled/UIKeyCommand+Chrome.h
index d0e782d..34e8d3c 100644
--- a/ios/chrome/browser/keyboard/ui_bundled/UIKeyCommand+Chrome.h
+++ b/ios/chrome/browser/keyboard/ui_bundled/UIKeyCommand+Chrome.h
@@ -10,6 +10,8 @@
 
 NS_ASSUME_NONNULL_BEGIN
 
+extern const char kMobileKeyCommandClose[];
+
 // Note: this is implemented as a category on UIKeyCommand because UIKeyCommand
 // can't be subclassed as of iOS 9 beta 4. http://crbug.com/510970
 @interface UIKeyCommand (Chrome)
diff --git a/ios/chrome/browser/keyboard/ui_bundled/UIKeyCommand+Chrome.mm b/ios/chrome/browser/keyboard/ui_bundled/UIKeyCommand+Chrome.mm
index afe75b1..5863c2c3 100644
--- a/ios/chrome/browser/keyboard/ui_bundled/UIKeyCommand+Chrome.mm
+++ b/ios/chrome/browser/keyboard/ui_bundled/UIKeyCommand+Chrome.mm
@@ -18,6 +18,8 @@
 
 }  // namespace
 
+const char kMobileKeyCommandClose[] = "MobileKeyCommandClose";
+
 @implementation UIKeyCommand (Chrome)
 
 #pragma mark - Specific Keyboard Commands
diff --git a/ios/chrome/browser/location_bar/ui_bundled/location_bar_view_controller.mm b/ios/chrome/browser/location_bar/ui_bundled/location_bar_view_controller.mm
index 4b0f218..5989d39 100644
--- a/ios/chrome/browser/location_bar/ui_bundled/location_bar_view_controller.mm
+++ b/ios/chrome/browser/location_bar/ui_bundled/location_bar_view_controller.mm
@@ -845,23 +845,13 @@
     if (GetApplicationContext()->GetLocalState()->GetBoolean(
             prefs::kBottomOmnibox)) {
       title = l10n_util::GetNSString(IDS_IOS_TOOLBAR_MENU_TOP_OMNIBOX);
-      if (@available(iOS 15.1, *)) {
-        image = DefaultSymbolWithPointSize(kMovePlatterToTopPhoneSymbol,
-                                           kSymbolActionPointSize);
-      } else {
-        image = CustomSymbolWithPointSize(kCustomMovePlatterToTopPhoneSymbol,
-                                          kSymbolActionPointSize);
-      }
+      image = DefaultSymbolWithPointSize(kMovePlatterToTopPhoneSymbol,
+                                         kSymbolActionPointSize);
       targetToolbarType = ToolbarType::kPrimary;
     } else {
       title = l10n_util::GetNSString(IDS_IOS_TOOLBAR_MENU_BOTTOM_OMNIBOX);
-      if (@available(iOS 15.1, *)) {
-        image = DefaultSymbolWithPointSize(kMovePlatterToBottomPhoneSymbol,
-                                           kSymbolActionPointSize);
-      } else {
-        image = CustomSymbolWithPointSize(kCustomMovePlatterToBottomPhoneSymbol,
-                                          kSymbolActionPointSize);
-      }
+      image = DefaultSymbolWithPointSize(kMovePlatterToBottomPhoneSymbol,
+                                         kSymbolActionPointSize);
       targetToolbarType = ToolbarType::kSecondary;
     }
     UIAction* moveAddressBarAction = [UIAction
diff --git a/ios/chrome/browser/overlays/ui_bundled/infobar_banner/save_card/save_card_infobar_banner_overlay_mediator_unittest.mm b/ios/chrome/browser/overlays/ui_bundled/infobar_banner/save_card/save_card_infobar_banner_overlay_mediator_unittest.mm
index 8dc87b1..a1600a2 100644
--- a/ios/chrome/browser/overlays/ui_bundled/infobar_banner/save_card/save_card_infobar_banner_overlay_mediator_unittest.mm
+++ b/ios/chrome/browser/overlays/ui_bundled/infobar_banner/save_card/save_card_infobar_banner_overlay_mediator_unittest.mm
@@ -45,7 +45,9 @@
 // Test fixture for SaveCardInfobarBannerOverlayMediator.
 class SaveCardInfobarBannerOverlayMediatorTest : public PlatformTest {
  public:
-  SaveCardInfobarBannerOverlayMediatorTest() {}
+  ~SaveCardInfobarBannerOverlayMediatorTest() override {
+    EXPECT_OCMOCK_VERIFY((id)mediator_);
+  }
 
   void InitInfobar(const bool for_upload) {
     autofill::CreditCard credit_card(
diff --git a/ios/chrome/browser/page_info/ui_bundled/page_info_security_view_controller.mm b/ios/chrome/browser/page_info/ui_bundled/page_info_security_view_controller.mm
index 6ae8b3b..15ffc4d5 100644
--- a/ios/chrome/browser/page_info/ui_bundled/page_info_security_view_controller.mm
+++ b/ios/chrome/browser/page_info/ui_bundled/page_info_security_view_controller.mm
@@ -148,7 +148,7 @@
 }
 
 - (void)keyCommand_close {
-  base::RecordAction(base::UserMetricsAction("MobileKeyCommandClose"));
+  base::RecordAction(base::UserMetricsAction(kMobileKeyCommandClose));
   [self.pageInfoCommandsHandler hidePageInfo];
 }
 
diff --git a/ios/chrome/browser/page_info/ui_bundled/page_info_view_controller.mm b/ios/chrome/browser/page_info/ui_bundled/page_info_view_controller.mm
index b84a42b3..e7201adf 100644
--- a/ios/chrome/browser/page_info/ui_bundled/page_info_view_controller.mm
+++ b/ios/chrome/browser/page_info/ui_bundled/page_info_view_controller.mm
@@ -287,7 +287,7 @@
 }
 
 - (void)keyCommand_close {
-  base::RecordAction(base::UserMetricsAction("MobileKeyCommandClose"));
+  base::RecordAction(base::UserMetricsAction(kMobileKeyCommandClose));
   [self.pageInfoCommandsHandler hidePageInfo];
 }
 
diff --git a/ios/chrome/browser/popup_menu/ui_bundled/public/popup_menu_view_controller.mm b/ios/chrome/browser/popup_menu/ui_bundled/public/popup_menu_view_controller.mm
index 4247dcf..66325c0 100644
--- a/ios/chrome/browser/popup_menu/ui_bundled/public/popup_menu_view_controller.mm
+++ b/ios/chrome/browser/popup_menu/ui_bundled/public/popup_menu_view_controller.mm
@@ -78,7 +78,7 @@
 }
 
 - (void)keyCommand_close {
-  base::RecordAction(base::UserMetricsAction("MobileKeyCommandClose"));
+  base::RecordAction(base::UserMetricsAction(kMobileKeyCommandClose));
   [self.delegate popupMenuViewControllerWillDismiss:self];
 }
 
diff --git a/ios/chrome/browser/price_insights/coordinator/price_insights_modulator.mm b/ios/chrome/browser/price_insights/coordinator/price_insights_modulator.mm
index 7dbadbf..5edbcd0 100644
--- a/ios/chrome/browser/price_insights/coordinator/price_insights_modulator.mm
+++ b/ios/chrome/browser/price_insights/coordinator/price_insights_modulator.mm
@@ -335,9 +335,7 @@
 // Callback invoked when the user chooses to open settings.
 - (void)onPushNotificationSettings {
   NSString* settingURL = UIApplicationOpenSettingsURLString;
-  if (@available(iOS 15.4, *)) {
-    settingURL = UIApplicationOpenNotificationSettingsURLString;
-  }
+  settingURL = UIApplicationOpenNotificationSettingsURLString;
 
   [[UIApplication sharedApplication] openURL:[NSURL URLWithString:settingURL]
                                      options:{}
diff --git a/ios/chrome/browser/price_notifications/ui_bundled/price_notifications_view_coordinator.mm b/ios/chrome/browser/price_notifications/ui_bundled/price_notifications_view_coordinator.mm
index 168f7105..778e50ef 100644
--- a/ios/chrome/browser/price_notifications/ui_bundled/price_notifications_view_coordinator.mm
+++ b/ios/chrome/browser/price_notifications/ui_bundled/price_notifications_view_coordinator.mm
@@ -170,9 +170,7 @@
 
 - (void)presentPushNotificationPermissionAlert {
   NSString* settingURL = UIApplicationOpenSettingsURLString;
-  if (@available(iOS 15.4, *)) {
-    settingURL = UIApplicationOpenNotificationSettingsURLString;
-  }
+  settingURL = UIApplicationOpenNotificationSettingsURLString;
   __weak PriceNotificationsViewCoordinator* weakSelf = self;
 
   NSString* alertTitle = l10n_util::GetNSString(
diff --git a/ios/chrome/browser/push_notification/ui_bundled/notifications_opt_in_alert_coordinator.mm b/ios/chrome/browser/push_notification/ui_bundled/notifications_opt_in_alert_coordinator.mm
index 5221480..e7a2ecc7 100644
--- a/ios/chrome/browser/push_notification/ui_bundled/notifications_opt_in_alert_coordinator.mm
+++ b/ios/chrome/browser/push_notification/ui_bundled/notifications_opt_in_alert_coordinator.mm
@@ -254,10 +254,8 @@
 - (void)openIOSNotificationSettings {
   __weak __typeof(self) weakSelf = self;
 
-  NSURL* url = [NSURL URLWithString:UIApplicationOpenSettingsURLString];
-  if (@available(iOS 15.4, *)) {
-    url = [NSURL URLWithString:UIApplicationOpenNotificationSettingsURLString];
-  }
+  NSURL* url =
+      [NSURL URLWithString:UIApplicationOpenNotificationSettingsURLString];
 
   [[UIApplication sharedApplication]
                 openURL:url
diff --git a/ios/chrome/browser/reading_list/ui_bundled/reading_list_table_view_controller.mm b/ios/chrome/browser/reading_list/ui_bundled/reading_list_table_view_controller.mm
index e13a970..d3e6042 100644
--- a/ios/chrome/browser/reading_list/ui_bundled/reading_list_table_view_controller.mm
+++ b/ios/chrome/browser/reading_list/ui_bundled/reading_list_table_view_controller.mm
@@ -436,7 +436,7 @@
 
 - (void)keyCommand_close {
   CHECK(self.delegate.canDismiss, base::NotFatalUntil::M145);
-  base::RecordAction(base::UserMetricsAction("MobileKeyCommandClose"));
+  base::RecordAction(base::UserMetricsAction(kMobileKeyCommandClose));
   [self.delegate dismissReadingListListViewController:self];
 }
 
diff --git a/ios/chrome/browser/recent_tabs/ui_bundled/recent_tabs_table_view_controller.mm b/ios/chrome/browser/recent_tabs/ui_bundled/recent_tabs_table_view_controller.mm
index 2d6f1036..daa5bb2b 100644
--- a/ios/chrome/browser/recent_tabs/ui_bundled/recent_tabs_table_view_controller.mm
+++ b/ios/chrome/browser/recent_tabs/ui_bundled/recent_tabs_table_view_controller.mm
@@ -1903,7 +1903,7 @@
 }
 
 - (void)keyCommand_close {
-  base::RecordAction(base::UserMetricsAction("MobileKeyCommandClose"));
+  base::RecordAction(base::UserMetricsAction(kMobileKeyCommandClose));
   [self.presentationDelegate showActiveRegularTabFromRecentTabs];
 }
 
diff --git a/ios/chrome/browser/safe_browsing/model/safe_browsing_egtest.mm b/ios/chrome/browser/safe_browsing/model/safe_browsing_egtest.mm
index 32b5f9d7..268a036 100644
--- a/ios/chrome/browser/safe_browsing/model/safe_browsing_egtest.mm
+++ b/ios/chrome/browser/safe_browsing/model/safe_browsing_egtest.mm
@@ -625,13 +625,6 @@
   [ChromeEarlGrey tapWebStateElementWithID:@"details-button"];
   [ChromeEarlGrey waitForWebStateContainingText:kMalwareWarningDetails];
 
-  if (@available(iOS 15.1, *)) {
-  } else {
-    // Workaround https://bugs.webkit.org/show_bug.cgi?id=226323, which can
-    // break loading the unsafe page below.
-    return;
-  }
-
   // Tap on the link to proceed to the unsafe page, and verify that this page is
   // loaded.
   [ChromeEarlGrey tapWebStateElementWithID:@"proceed-link"];
@@ -668,13 +661,6 @@
   [ChromeEarlGrey tapWebStateElementWithID:@"details-button"];
   [ChromeEarlGrey waitForWebStateContainingText:kMalwareWarningDetails];
 
-  if (@available(iOS 15.1, *)) {
-  } else {
-    // Workaround https://bugs.webkit.org/show_bug.cgi?id=226323, which can
-    // break loading the unsafe page below.
-    return;
-  }
-
   // Tap on the link to proceed to the unsafe page, and verify that this page is
   // loaded.
   [ChromeEarlGrey tapWebStateElementWithID:@"proceed-link"];
@@ -722,13 +708,6 @@
                     eventResult:EventResult::EVENT_RESULT_WARNED
                          reason:SafeBrowsingInterstitialEvent::MALWARE];
 
-  if (@available(iOS 15.1, *)) {
-  } else {
-    // Workaround https://bugs.webkit.org/show_bug.cgi?id=226323, which can
-    // break loading the unsafe page below.
-    return;
-  }
-
   // Tap on the link to proceed to the unsafe page, and verify that this page is
   // loaded.
   [ChromeEarlGrey tapWebStateElementWithID:@"proceed-link"];
diff --git a/ios/chrome/browser/search_engine_choice/ui_bundled/search_engine_choice_learn_more/search_engine_choice_learn_more_view_controller.mm b/ios/chrome/browser/search_engine_choice/ui_bundled/search_engine_choice_learn_more/search_engine_choice_learn_more_view_controller.mm
index 93e8b9f..289aa9a2e 100644
--- a/ios/chrome/browser/search_engine_choice/ui_bundled/search_engine_choice_learn_more/search_engine_choice_learn_more_view_controller.mm
+++ b/ios/chrome/browser/search_engine_choice/ui_bundled/search_engine_choice_learn_more/search_engine_choice_learn_more_view_controller.mm
@@ -286,7 +286,7 @@
 }
 
 - (void)keyCommand_close {
-  base::RecordAction(base::UserMetricsAction("MobileKeyCommandClose"));
+  base::RecordAction(base::UserMetricsAction(kMobileKeyCommandClose));
   [self.delegate learnMoreDone:self];
 }
 
diff --git a/ios/chrome/browser/settings/ui_bundled/BUILD.gn b/ios/chrome/browser/settings/ui_bundled/BUILD.gn
index 8d8207e..4a0dc88 100644
--- a/ios/chrome/browser/settings/ui_bundled/BUILD.gn
+++ b/ios/chrome/browser/settings/ui_bundled/BUILD.gn
@@ -350,6 +350,7 @@
     "//ios/chrome/browser/discover_feed/model:discover_feed_visibility_browser_agent",
     "//ios/chrome/browser/favicon/model",
     "//ios/chrome/browser/history/model",
+    "//ios/chrome/browser/keyboard/ui_bundled",
     "//ios/chrome/browser/passwords/model",
     "//ios/chrome/browser/photos/model:photos_service_factory",
     "//ios/chrome/browser/policy/model:policy_util",
diff --git a/ios/chrome/browser/settings/ui_bundled/clear_browsing_data/clear_browsing_data_table_view_controller.mm b/ios/chrome/browser/settings/ui_bundled/clear_browsing_data/clear_browsing_data_table_view_controller.mm
index ee122fe..274da771 100644
--- a/ios/chrome/browser/settings/ui_bundled/clear_browsing_data/clear_browsing_data_table_view_controller.mm
+++ b/ios/chrome/browser/settings/ui_bundled/clear_browsing_data/clear_browsing_data_table_view_controller.mm
@@ -354,7 +354,7 @@
 }
 
 - (void)keyCommand_close {
-  base::RecordAction(base::UserMetricsAction("MobileKeyCommandClose"));
+  base::RecordAction(base::UserMetricsAction(kMobileKeyCommandClose));
   [self dismiss];
 }
 
diff --git a/ios/chrome/browser/settings/ui_bundled/notifications/tracking_price/tracking_price_coordinator.mm b/ios/chrome/browser/settings/ui_bundled/notifications/tracking_price/tracking_price_coordinator.mm
index d6ed3b4..eb66c7c 100644
--- a/ios/chrome/browser/settings/ui_bundled/notifications/tracking_price/tracking_price_coordinator.mm
+++ b/ios/chrome/browser/settings/ui_bundled/notifications/tracking_price/tracking_price_coordinator.mm
@@ -84,9 +84,7 @@
 
 - (void)presentPushNotificationPermissionAlert {
   NSString* settingURL = UIApplicationOpenSettingsURLString;
-  if (@available(iOS 15.4, *)) {
-    settingURL = UIApplicationOpenNotificationSettingsURLString;
-  }
+  settingURL = UIApplicationOpenNotificationSettingsURLString;
 
   NSString* alertTitle =
       l10n_util::GetNSString(IDS_IOS_PRICE_NOTIFICATIONS_SETTINGS_ALERT_TITLE);
diff --git a/ios/chrome/browser/settings/ui_bundled/password/password_details/add_password_view_controller.mm b/ios/chrome/browser/settings/ui_bundled/password/password_details/add_password_view_controller.mm
index ec66830a..1235bd9 100644
--- a/ios/chrome/browser/settings/ui_bundled/password/password_details/add_password_view_controller.mm
+++ b/ios/chrome/browser/settings/ui_bundled/password/password_details/add_password_view_controller.mm
@@ -940,7 +940,7 @@
 }
 
 - (void)keyCommand_close {
-  base::RecordAction(base::UserMetricsAction("MobileKeyCommandClose"));
+  base::RecordAction(base::UserMetricsAction(kMobileKeyCommandClose));
   [self didTapCancelButton:nil];
 }
 
diff --git a/ios/chrome/browser/settings/ui_bundled/privacy/safe_browsing/safe_browsing_enhanced_protection_view_controller.mm b/ios/chrome/browser/settings/ui_bundled/privacy/safe_browsing/safe_browsing_enhanced_protection_view_controller.mm
index 4bcc1c7..6845bd7 100644
--- a/ios/chrome/browser/settings/ui_bundled/privacy/safe_browsing/safe_browsing_enhanced_protection_view_controller.mm
+++ b/ios/chrome/browser/settings/ui_bundled/privacy/safe_browsing/safe_browsing_enhanced_protection_view_controller.mm
@@ -227,7 +227,7 @@
 }
 
 - (void)keyCommand_close {
-  base::RecordAction(base::UserMetricsAction("MobileKeyCommandClose"));
+  base::RecordAction(base::UserMetricsAction(kMobileKeyCommandClose));
   [self dismissViewControllerAnimated:YES completion:nil];
 }
 
diff --git a/ios/chrome/browser/settings/ui_bundled/privacy/safe_browsing/safe_browsing_standard_protection_view_controller.mm b/ios/chrome/browser/settings/ui_bundled/privacy/safe_browsing/safe_browsing_standard_protection_view_controller.mm
index d48ae59..1c96431 100644
--- a/ios/chrome/browser/settings/ui_bundled/privacy/safe_browsing/safe_browsing_standard_protection_view_controller.mm
+++ b/ios/chrome/browser/settings/ui_bundled/privacy/safe_browsing/safe_browsing_standard_protection_view_controller.mm
@@ -145,7 +145,7 @@
 }
 
 - (void)keyCommand_close {
-  base::RecordAction(base::UserMetricsAction("MobileKeyCommandClose"));
+  base::RecordAction(base::UserMetricsAction(kMobileKeyCommandClose));
   [self dismissViewControllerAnimated:YES completion:nil];
 }
 
diff --git a/ios/chrome/browser/settings/ui_bundled/settings_navigation_controller.mm b/ios/chrome/browser/settings/ui_bundled/settings_navigation_controller.mm
index 1190960a..2fafb400a 100644
--- a/ios/chrome/browser/settings/ui_bundled/settings_navigation_controller.mm
+++ b/ios/chrome/browser/settings/ui_bundled/settings_navigation_controller.mm
@@ -1089,7 +1089,7 @@
 }
 
 - (void)keyCommand_close {
-  base::RecordAction(base::UserMetricsAction("MobileKeyCommandClose"));
+  base::RecordAction(base::UserMetricsAction(kMobileKeyCommandClose));
   [self closeSettings];
 }
 
diff --git a/ios/chrome/browser/settings/ui_bundled/settings_navigation_controller_unittest.mm b/ios/chrome/browser/settings/ui_bundled/settings_navigation_controller_unittest.mm
index fd5f2b4..fc1d216 100644
--- a/ios/chrome/browser/settings/ui_bundled/settings_navigation_controller_unittest.mm
+++ b/ios/chrome/browser/settings/ui_bundled/settings_navigation_controller_unittest.mm
@@ -15,6 +15,7 @@
 #import "components/password_manager/core/browser/password_store/test_password_store.h"
 #import "components/search_engines/template_url_service.h"
 #import "ios/chrome/browser/discover_feed/model/discover_feed_visibility_browser_agent.h"
+#import "ios/chrome/browser/keyboard/ui_bundled/UIKeyCommand+Chrome.h"
 #import "ios/chrome/browser/passwords/model/ios_chrome_profile_password_store_factory.h"
 #import "ios/chrome/browser/search_engines/model/template_url_service_factory.h"
 #import "ios/chrome/browser/shared/model/browser/test/test_browser.h"
@@ -194,12 +195,11 @@
           mainSettingsControllerForBrowser:browser_.get()
                                   delegate:mockDelegate_
                   hasDefaultBrowserBlueDot:NO];
-  std::string user_action = "MobileKeyCommandClose";
-  ASSERT_EQ(user_action_tester.GetActionCount(user_action), 0);
+  ASSERT_EQ(user_action_tester.GetActionCount(kMobileKeyCommandClose), 0);
 
   [settingsController keyCommand_close];
 
-  EXPECT_EQ(user_action_tester.GetActionCount(user_action), 1);
+  EXPECT_EQ(user_action_tester.GetActionCount(kMobileKeyCommandClose), 1);
   [settingsController cleanUpSettings];
 }
 
diff --git a/ios/chrome/browser/shared/model/prefs/browser_prefs.mm b/ios/chrome/browser/shared/model/prefs/browser_prefs.mm
index b21d3d9..a0e56db7 100644
--- a/ios/chrome/browser/shared/model/prefs/browser_prefs.mm
+++ b/ios/chrome/browser/shared/model/prefs/browser_prefs.mm
@@ -511,9 +511,6 @@
 
   registry->RegisterIntegerPref(prefs::kIosCredentialProviderPromoSource, 0);
 
-  registry->RegisterBooleanPref(
-      prefs::kIosCredentialProviderPromoHasRegisteredWithPromoManager, false);
-
   registry->RegisterBooleanPref(prefs::kIosCredentialProviderPromoPolicyEnabled,
                                 true);
 
@@ -681,6 +678,10 @@
   registry->RegisterUint64Pref(kVariationsLimitedEntropySyntheticTrialSeed, 0);
   registry->RegisterUint64Pref(kVariationsLimitedEntropySyntheticTrialSeedV2,
                                0);
+
+  // Deprecated 06/2025.
+  registry->RegisterBooleanPref(
+      prefs::kIosCredentialProviderPromoHasRegisteredWithPromoManager, false);
 }
 
 void RegisterProfilePrefs(user_prefs::PrefRegistrySyncable* registry) {
@@ -1131,6 +1132,10 @@
   // Added 06/2025.
   prefs->ClearPref(kVariationsLimitedEntropySyntheticTrialSeed);
   prefs->ClearPref(kVariationsLimitedEntropySyntheticTrialSeedV2);
+
+  // Added 06/2025.
+  prefs->ClearPref(
+      prefs::kIosCredentialProviderPromoHasRegisteredWithPromoManager);
 }
 
 // This method should be periodically pruned of year+ old migrations.
diff --git a/ios/chrome/browser/snapshots/model/BUILD.gn b/ios/chrome/browser/snapshots/model/BUILD.gn
index 2f79ed76..3bbf762 100644
--- a/ios/chrome/browser/snapshots/model/BUILD.gn
+++ b/ios/chrome/browser/snapshots/model/BUILD.gn
@@ -9,7 +9,6 @@
     "legacy_image_file_manager.h",
     "legacy_snapshot_generator.h",
     "legacy_snapshot_lru_cache.h",
-    "legacy_snapshot_storage+Testing.h",
     "legacy_snapshot_storage.h",
     "snapshot_browser_agent.h",
     "snapshot_storage_wrapper.h",
@@ -54,6 +53,7 @@
     "snapshot_id.h",
     "snapshot_id_wrapper.h",
     "snapshot_id_wrapper.mm",
+    "snapshot_kind.h",
     "snapshot_scale.h",
     "snapshot_scale.mm",
     "web_state_snapshot_info.h",
@@ -76,6 +76,7 @@
     "snapshot_lru_cache.swift",
     "snapshot_manager.swift",
     "snapshot_storage.swift",
+    "snapshot_storage_impl.swift",
     "snapshot_storage_observer.swift",
   ]
   deps = [
@@ -85,6 +86,7 @@
     "//ios/chrome/browser/shared/public/metrics:metrics_bridge",
     "//ios/chrome/browser/shared/ui/util:util_bridge",
   ]
+  public_deps = [ "//base" ]
 }
 
 source_set("test_utils") {
diff --git a/ios/chrome/browser/snapshots/model/legacy_snapshot_storage+Testing.h b/ios/chrome/browser/snapshots/model/legacy_snapshot_storage+Testing.h
deleted file mode 100644
index 3009450..0000000
--- a/ios/chrome/browser/snapshots/model/legacy_snapshot_storage+Testing.h
+++ /dev/null
@@ -1,29 +0,0 @@
-// Copyright 2023 The Chromium Authors
-// Use of this source code is governed by a BSD-style license that can be
-// found in the LICENSE file.
-
-#ifndef IOS_CHROME_BROWSER_SNAPSHOTS_MODEL_LEGACY_SNAPSHOT_STORAGE_TESTING_H_
-#define IOS_CHROME_BROWSER_SNAPSHOTS_MODEL_LEGACY_SNAPSHOT_STORAGE_TESTING_H_
-
-#import "ios/chrome/browser/snapshots/model/legacy_snapshot_storage.h"
-
-class SnapshotID;
-namespace base {
-class FilePath;
-}
-
-@class NSString;
-
-// Private methods that should only be used for tests.
-// TODO(crbug.com/40943236): Remove this class once the new implementation
-// written in Swift is used by default.
-@interface LegacySnapshotStorage (Testing)
-// Returns the file path to the color snapshot of `snapshotID`.
-- (base::FilePath)imagePathForSnapshotID:(SnapshotID)snapshotID;
-// Returns the max number of elements that the LRU cache can store.
-- (NSUInteger)lruCacheMaxSize;
-// Removes all elements in the LRU cache.
-- (void)clearCache;
-@end
-
-#endif  // IOS_CHROME_BROWSER_SNAPSHOTS_MODEL_LEGACY_SNAPSHOT_STORAGE_TESTING_H_
diff --git a/ios/chrome/browser/snapshots/model/legacy_snapshot_storage.h b/ios/chrome/browser/snapshots/model/legacy_snapshot_storage.h
index c9f08ad..5d56604 100644
--- a/ios/chrome/browser/snapshots/model/legacy_snapshot_storage.h
+++ b/ios/chrome/browser/snapshots/model/legacy_snapshot_storage.h
@@ -7,14 +7,13 @@
 
 #import <UIKit/UIKit.h>
 
-#include <vector>
+#import "ios/chrome/browser/snapshots/model/model_swift.h"
 
-class SnapshotID;
 namespace base {
 class FilePath;
-class Time;
 }  // namespace base
 
+@class LegacySnapshotLRUCache;
 @protocol SnapshotStorageObserver;
 
 // A class providing an in-memory and on-disk storage of tab snapshots.
@@ -24,7 +23,7 @@
 // Persists to disk on a background thread each time a snapshot changes.
 // TODO(crbug.com/40943236): Remove this class once the new implementation
 // written in Swift is used by default.
-@interface LegacySnapshotStorage : NSObject
+@interface LegacySnapshotStorage : NSObject <SnapshotStorage>
 
 // Designated initializer. `storagePath` is the file path where all images
 // managed by this LegacySnapshotStorage are stored. `storagePath` is not
@@ -37,61 +36,16 @@
 //
 // TODO(crbug.com/40942167): Remove when the storage for all users has been
 // migrated.
-- (instancetype)initWithStoragePath:(const base::FilePath&)storagePath
-                         legacyPath:(const base::FilePath&)legacyPath
+- (instancetype)initWithLRUCache:(LegacySnapshotLRUCache*)lruCache
+                     storagePath:(const base::FilePath&)storagePath
+                      legacyPath:(const base::FilePath&)legacyPath
     NS_DESIGNATED_INITIALIZER;
 
-// Convenience initializer that pass an empty `legacyPath`.
-- (instancetype)initWithStoragePath:(const base::FilePath&)storagePath;
+// Convenience initializer that uses a default `lruCache` .
+- (instancetype)initWithStoragePath:(const base::FilePath&)storagePath
+                         legacyPath:(const base::FilePath&)legacyPath;
 - (instancetype)init NS_UNAVAILABLE;
 
-// Retrieves a cached snapshot for the `snapshotID` and return it via the
-// callback if it exists. The callback is guaranteed to be called synchronously
-// if the image is in memory. It will be called asynchronously if the image is
-// on disk or with nil if the image is not present at all.
-- (void)retrieveImageForSnapshotID:(SnapshotID)snapshotID
-                          callback:(void (^)(UIImage*))callback;
-
-// Requests the grey snapshot for `snapshotID`. If the image is already loaded
-// in memory, this will immediately call back with `callback`.
-- (void)retrieveGreyImageForSnapshotID:(SnapshotID)snapshotID
-                              callback:(void (^)(UIImage*))callback;
-
-// Sets the image in both the LRU and disk.
-- (void)setImage:(UIImage*)image withSnapshotID:(SnapshotID)snapshotID;
-
-// Removes the image from both the LRU and disk.
-- (void)removeImageWithSnapshotID:(SnapshotID)snapshotID;
-
-// Removes all images from both the LRU and disk.
-- (void)removeAllImages;
-
-// Purges the storage of snapshots that are older than `date`. The snapshots for
-// `liveSnapshotIDs` will be kept. This will be done asynchronously on a
-// background thread.
-- (void)purgeImagesOlderThan:(base::Time)date
-                     keeping:(const std::vector<SnapshotID>&)liveSnapshotIDs;
-
-// Renames snapshots with names in `oldIDs` to names in `newIDs`. It is a
-// programmatic error if the two array do not have the same length.
-- (void)renameSnapshotsWithIDs:(NSArray<NSString*>*)oldIDs
-                         toIDs:(const std::vector<SnapshotID>&)newIDs;
-
-// Moves the on-disk tab snapshot from the receiver storage to the destination
-// on-disk storage. If the snapshot was also in-memory, it is moved as well.
-- (void)migrateImageWithSnapshotID:(SnapshotID)snapshotID
-                 toSnapshotStorage:(LegacySnapshotStorage*)destinationCache;
-
-// Adds an observer to this snapshot storage.
-- (void)addObserver:(id<SnapshotStorageObserver>)observer;
-
-// Removes an observer from this snapshot storage.
-- (void)removeObserver:(id<SnapshotStorageObserver>)observer;
-
-// Must be invoked before the instance is deallocated. It is needed to release
-// all references to C++ objects. The receiver will likely soon be deallocated.
-- (void)shutdown;
-
 @end
 
 #endif  // IOS_CHROME_BROWSER_SNAPSHOTS_MODEL_LEGACY_SNAPSHOT_STORAGE_H_
diff --git a/ios/chrome/browser/snapshots/model/legacy_snapshot_storage.mm b/ios/chrome/browser/snapshots/model/legacy_snapshot_storage.mm
index b363ce8..c3eda29 100644
--- a/ios/chrome/browser/snapshots/model/legacy_snapshot_storage.mm
+++ b/ios/chrome/browser/snapshots/model/legacy_snapshot_storage.mm
@@ -6,6 +6,7 @@
 
 #import <map>
 
+#import "base/apple/foundation_util.h"
 #import "base/containers/contains.h"
 #import "base/files/file_path.h"
 #import "base/files/file_util.h"
@@ -20,7 +21,6 @@
 #import "ios/chrome/browser/snapshots/model/features.h"
 #import "ios/chrome/browser/snapshots/model/legacy_image_file_manager.h"
 #import "ios/chrome/browser/snapshots/model/legacy_snapshot_lru_cache.h"
-#import "ios/chrome/browser/snapshots/model/legacy_snapshot_storage+Testing.h"
 #import "ios/chrome/browser/snapshots/model/model_swift.h"
 #import "ios/chrome/browser/snapshots/model/snapshot_id.h"
 #import "ios/chrome/browser/snapshots/model/snapshot_id_wrapper.h"
@@ -49,6 +49,28 @@
 // A tab group cell requests up to 7 snapshots from the first item.
 const NSUInteger kLRUCacheAdditionalCapacityForTabGroupEnabled = 7;
 
+// Convert `wrappers` to a vector of SnapshotID.
+std::vector<SnapshotID> ToSnapshotIDs(NSArray<SnapshotIDWrapper*>* wrappers) {
+  std::vector<SnapshotID> snapshot_ids;
+  snapshot_ids.reserve(wrappers.count);
+  for (SnapshotIDWrapper* wrapper in wrappers) {
+    snapshot_ids.push_back(wrapper.snapshot_id);
+  }
+  return snapshot_ids;
+}
+
+// Returns a default LegacySnapshotLRUCache instance.
+LegacySnapshotLRUCache<UIImage*>* CreateDefaultSnapshotLRUCache() {
+  NSUInteger cacheSize = kLRUCacheBaseCapacity;
+  if (IsPinnedTabsEnabled()) {
+    cacheSize += kLRUCacheAdditionalCapacityForPinnedTabsEnabled;
+  }
+  if (IsLargeCapacityInSnapshotLRUCacheEnabled()) {
+    cacheSize += kLRUCacheAdditionalCapacityForTabGroupEnabled;
+  }
+  return [[LegacySnapshotLRUCache alloc] initWithCacheSize:cacheSize];
+}
+
 }  // namespace
 
 // Protocol observers subclass that explicitly implements
@@ -78,18 +100,11 @@
   __strong LegacyImageFileManager* _fileManager;
 }
 
-- (instancetype)initWithStoragePath:(const base::FilePath&)storagePath
-                         legacyPath:(const base::FilePath&)legacyPath {
+- (instancetype)initWithLRUCache:(LegacySnapshotLRUCache*)lruCache
+                     storagePath:(const base::FilePath&)storagePath
+                      legacyPath:(const base::FilePath&)legacyPath {
   if ((self = [super init])) {
-    NSUInteger cacheSize = kLRUCacheBaseCapacity;
-    if (IsPinnedTabsEnabled()) {
-      cacheSize += kLRUCacheAdditionalCapacityForPinnedTabsEnabled;
-    }
-    if (IsLargeCapacityInSnapshotLRUCacheEnabled()) {
-      cacheSize += kLRUCacheAdditionalCapacityForTabGroupEnabled;
-    }
-    _lruCache = [[LegacySnapshotLRUCache alloc] initWithCacheSize:cacheSize];
-
+    _lruCache = lruCache;
     _fileManager =
         [[LegacyImageFileManager alloc] initWithStoragePath:storagePath
                                                  legacyPath:legacyPath];
@@ -107,9 +122,17 @@
                name:UIApplicationDidEnterBackgroundNotification
              object:nil];
   }
+
   return self;
 }
 
+- (instancetype)initWithStoragePath:(const base::FilePath&)storagePath
+                         legacyPath:(const base::FilePath&)legacyPath {
+  return [self initWithLRUCache:CreateDefaultSnapshotLRUCache()
+                    storagePath:storagePath
+                     legacyPath:legacyPath];
+}
+
 - (instancetype)initWithStoragePath:(const base::FilePath&)storagePath {
   return [self initWithStoragePath:storagePath legacyPath:base::FilePath()];
 }
@@ -125,8 +148,109 @@
               object:nil];
 }
 
-- (void)retrieveImageForSnapshotID:(SnapshotID)snapshotID
-                          callback:(void (^)(UIImage*))callback {
+#pragma mark - SnapshotStorage
+
+- (void)retrieveImageWithSnapshotID:(SnapshotIDWrapper*)snapshotID
+                       snapshotKind:(SnapshotKind)snapshotKind
+                         completion:(void (^)(UIImage*))completion {
+  switch (snapshotKind) {
+    case SnapshotKindColor:
+      [self retrieveColorImageForSnapshotID:snapshotID.snapshot_id
+                                   callback:completion];
+      break;
+
+    case SnapshotKindGreyscale:
+      [self retrieveGreyImageForSnapshotID:snapshotID.snapshot_id
+                                  callback:completion];
+      break;
+  }
+}
+
+- (void)setImage:(UIImage*)image
+    withSnapshotID:(SnapshotIDWrapper*)snapshotIDWrapper {
+  const SnapshotID snapshotID = snapshotIDWrapper.snapshot_id;
+  if (!image || !snapshotID.valid()) {
+    return;
+  }
+
+  [_lruCache setObject:image forKey:snapshotID];
+
+  [self.observers didUpdateSnapshotStorageWithSnapshotID:snapshotIDWrapper];
+
+  // Save the image to disk.
+  [_fileManager writeImage:image withSnapshotID:snapshotID];
+}
+
+- (void)removeImageWithSnapshotID:(SnapshotIDWrapper*)snapshotIDWrapper {
+  const SnapshotID snapshotID = snapshotIDWrapper.snapshot_id;
+  [_lruCache removeObjectForKey:snapshotID];
+
+  [self.observers
+      didUpdateSnapshotStorageWithSnapshotID:
+          [[SnapshotIDWrapper alloc] initWithSnapshotID:snapshotID]];
+
+  [_fileManager removeImageWithSnapshotID:snapshotID];
+}
+
+- (void)removeAllImages {
+  [_lruCache removeAllObjects];
+
+  [_fileManager removeAllImages];
+}
+
+- (void)purgeImagesOlderThanWithThresholdDate:(NSDate*)thresholdDate
+                              liveSnapshotIDs:(NSArray<SnapshotIDWrapper*>*)
+                                                  liveSnapshotIDs {
+  [_fileManager purgeImagesOlderThan:base::Time::FromNSDate(thresholdDate)
+                             keeping:ToSnapshotIDs(liveSnapshotIDs)];
+}
+
+- (void)renameSnapshotsWithOldIDs:(NSArray<NSString*>*)oldIDs
+                           newIDs:(NSArray<SnapshotIDWrapper*>*)newIDs {
+  DCHECK_EQ(oldIDs.count, newIDs.count);
+  [_fileManager renameSnapshotsWithIDs:oldIDs toIDs:ToSnapshotIDs(newIDs)];
+}
+
+- (void)migrateImageWithSnapshotID:(SnapshotIDWrapper*)snapshotIDWrapper
+                destinationStorage:(id<SnapshotStorage>)destinationStorage {
+  const SnapshotID snapshotID = snapshotIDWrapper.snapshot_id;
+  // Copy to the destination storage.
+  if (UIImage* image = [_lruCache objectForKey:snapshotID]) {
+    // Copy both on-disk and in-memory versions.
+    [destinationStorage setImage:image withSnapshotID:snapshotIDWrapper];
+  } else {
+    // Only copy on-disk.
+    [_fileManager copyImage:base::apple::NSURLToFilePath([self
+                                imagePathWithSnapshotID:snapshotIDWrapper])
+                  toNewPath:base::apple::NSURLToFilePath([destinationStorage
+                                imagePathWithSnapshotID:snapshotIDWrapper])];
+  }
+
+  // Remove the snapshot from this storage.
+  [self removeImageWithSnapshotID:snapshotIDWrapper];
+}
+
+- (void)addObserver:(id<SnapshotStorageObserver>)observer {
+  [self.observers addObserver:observer];
+}
+
+- (void)removeObserver:(id<SnapshotStorageObserver>)observer {
+  [self.observers removeObserver:observer];
+}
+
+- (NSURL*)imagePathWithSnapshotID:(SnapshotIDWrapper*)snapshotID {
+  return base::apple::FilePathToNSURL(
+      [_fileManager imagePathForSnapshotID:snapshotID.snapshot_id]);
+}
+
+- (void)shutdown {
+  [_fileManager shutdown];
+}
+
+#pragma mark - Private methods
+
+- (void)retrieveColorImageForSnapshotID:(SnapshotID)snapshotID
+                               callback:(void (^)(UIImage*))callback {
   DCHECK(snapshotID.valid());
   DCHECK(callback);
 
@@ -171,65 +295,6 @@
                              })];
 }
 
-- (void)setImage:(UIImage*)image withSnapshotID:(SnapshotID)snapshotID {
-  if (!image || !snapshotID.valid()) {
-    return;
-  }
-
-  [_lruCache setObject:image forKey:snapshotID];
-
-  [self.observers
-      didUpdateSnapshotStorageWithSnapshotID:
-          [[SnapshotIDWrapper alloc] initWithSnapshotID:snapshotID]];
-
-  // Save the image to disk.
-  [_fileManager writeImage:image withSnapshotID:snapshotID];
-}
-
-- (void)removeImageWithSnapshotID:(SnapshotID)snapshotID {
-  [_lruCache removeObjectForKey:snapshotID];
-
-  [self.observers
-      didUpdateSnapshotStorageWithSnapshotID:
-          [[SnapshotIDWrapper alloc] initWithSnapshotID:snapshotID]];
-
-  [_fileManager removeImageWithSnapshotID:snapshotID];
-}
-
-- (void)removeAllImages {
-  [_lruCache removeAllObjects];
-
-  [_fileManager removeAllImages];
-}
-
-- (void)purgeImagesOlderThan:(base::Time)date
-                     keeping:(const std::vector<SnapshotID>&)liveSnapshotIDs {
-  [_fileManager purgeImagesOlderThan:date keeping:liveSnapshotIDs];
-}
-
-- (void)renameSnapshotsWithIDs:(NSArray<NSString*>*)oldIDs
-                         toIDs:(const std::vector<SnapshotID>&)newIDs {
-  DCHECK_EQ(oldIDs.count, newIDs.size());
-  [_fileManager renameSnapshotsWithIDs:oldIDs toIDs:newIDs];
-}
-
-- (void)migrateImageWithSnapshotID:(SnapshotID)snapshotID
-                 toSnapshotStorage:(LegacySnapshotStorage*)destinationStorage {
-  // Copy to the destination storage.
-  if (UIImage* image = [_lruCache objectForKey:snapshotID]) {
-    // Copy both on-disk and in-memory versions.
-    [destinationStorage setImage:image withSnapshotID:snapshotID];
-  } else {
-    // Only copy on-disk.
-    [_fileManager
-        copyImage:[self imagePathForSnapshotID:snapshotID]
-        toNewPath:[destinationStorage imagePathForSnapshotID:snapshotID]];
-  }
-
-  // Remove the snapshot from this storage.
-  [self removeImageWithSnapshotID:snapshotID];
-}
-
 // Remove all UIImages from `lruCache_`.
 - (void)handleLowMemory {
   [_lruCache removeAllObjects];
@@ -240,30 +305,4 @@
   [_lruCache removeAllObjects];
 }
 
-- (void)addObserver:(id<SnapshotStorageObserver>)observer {
-  [self.observers addObserver:observer];
-}
-
-- (void)removeObserver:(id<SnapshotStorageObserver>)observer {
-  [self.observers removeObserver:observer];
-}
-
-- (void)shutdown {
-  [_fileManager shutdown];
-}
-
-#pragma mark - Testing
-
-- (base::FilePath)imagePathForSnapshotID:(SnapshotID)snapshotID {
-  return [_fileManager imagePathForSnapshotID:snapshotID];
-}
-
-- (NSUInteger)lruCacheMaxSize {
-  return [_lruCache maxCacheSize];
-}
-
-- (void)clearCache {
-  [_lruCache removeAllObjects];
-}
-
 @end
diff --git a/ios/chrome/browser/snapshots/model/snapshot_id_wrapper.h b/ios/chrome/browser/snapshots/model/snapshot_id_wrapper.h
index 28a0861..9e941f9 100644
--- a/ios/chrome/browser/snapshots/model/snapshot_id_wrapper.h
+++ b/ios/chrome/browser/snapshots/model/snapshot_id_wrapper.h
@@ -12,7 +12,7 @@
 #endif
 
 // A Objective-C wrapper for SnapshotID to make it usable from Swift.
-@interface SnapshotIDWrapper : NSObject
+@interface SnapshotIDWrapper : NSObject <NSCopying>
 
 #ifdef __cplusplus
 - (instancetype)initWithSnapshotID:(SnapshotID)snapshot_id
diff --git a/ios/chrome/browser/snapshots/model/snapshot_id_wrapper.mm b/ios/chrome/browser/snapshots/model/snapshot_id_wrapper.mm
index 660ec1be..b5c49b34 100644
--- a/ios/chrome/browser/snapshots/model/snapshot_id_wrapper.mm
+++ b/ios/chrome/browser/snapshots/model/snapshot_id_wrapper.mm
@@ -49,4 +49,15 @@
          base::apple::ObjCCastStrict<SnapshotIDWrapper>(other).snapshot_id;
 }
 
+#pragma mark - NSCopying
+
+// SnapshotIDWrapper is immutable, so copy can simply return self.
+- (id)copy {
+  return self;
+}
+
+- (id)copyWithZone:(NSZone*)zone {
+  return self;
+}
+
 @end
diff --git a/ios/chrome/browser/snapshots/model/snapshot_kind.h b/ios/chrome/browser/snapshots/model/snapshot_kind.h
new file mode 100644
index 0000000..d816236
--- /dev/null
+++ b/ios/chrome/browser/snapshots/model/snapshot_kind.h
@@ -0,0 +1,16 @@
+// Copyright 2025 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_SNAPSHOTS_MODEL_SNAPSHOT_KIND_H_
+#define IOS_CHROME_BROWSER_SNAPSHOTS_MODEL_SNAPSHOT_KIND_H_
+
+#import <Foundation/Foundation.h>
+
+// Represents the kind of snapshot.
+typedef NS_CLOSED_ENUM(NSInteger, SnapshotKind) {
+  SnapshotKindColor,
+  SnapshotKindGreyscale,
+};
+
+#endif  // IOS_CHROME_BROWSER_SNAPSHOTS_MODEL_SNAPSHOT_KIND_H_
diff --git a/ios/chrome/browser/snapshots/model/snapshot_manager.swift b/ios/chrome/browser/snapshots/model/snapshot_manager.swift
index 0145122..6071251 100644
--- a/ios/chrome/browser/snapshots/model/snapshot_manager.swift
+++ b/ios/chrome/browser/snapshots/model/snapshot_manager.swift
@@ -32,7 +32,8 @@
   // Invokes `completion` with nil if a snapshot does not exist.
   func retrieveSnapshot(completion: @escaping (UIImage?) -> Void) {
     if let storage = snapshotStorage {
-      storage.retrieveImage(snapshotID: snapshotID, completion: completion)
+      storage.retrieveImage(
+        snapshotID: snapshotID, snapshotKind: SnapshotKind.color, completion: completion)
     } else {
       completion(nil)
     }
@@ -47,7 +48,8 @@
     }
 
     if let storage = snapshotStorage {
-      storage.retrieveGreyImage(snapshotID: snapshotID, completion: wrappedCompletion)
+      storage.retrieveImage(
+        snapshotID: snapshotID, snapshotKind: SnapshotKind.greyscale, completion: wrappedCompletion)
     } else {
       wrappedCompletion(nil)
     }
@@ -110,7 +112,7 @@
     guard timestamp > latestCommitedTimestamp else { return }
 
     latestCommitedTimestamp = timestamp
-    snapshotStorage?.setImage(image, snapshotID: snapshotID)
+    snapshotStorage?.setImage(image, withSnapshotID: snapshotID)
   }
 
   // Helper method used to retrieve a grey snapshot.
diff --git a/ios/chrome/browser/snapshots/model/snapshot_storage.swift b/ios/chrome/browser/snapshots/model/snapshot_storage.swift
index 0f84dd8..5f94084 100644
--- a/ios/chrome/browser/snapshots/model/snapshot_storage.swift
+++ b/ios/chrome/browser/snapshots/model/snapshot_storage.swift
@@ -4,236 +4,51 @@
 
 import UIKit
 
-// Base size in number of elements that the LRU cache can hold before starting to evict elements.
-let kLRUCacheBaseCapacity = 6
-
-// Additional capacity of elements that the LRU cache can hold before starting to evict elements
-// when PinnedTabs feature is enabled.
+// A protocol providing abstraction for storing/retrieving snapshots.
 //
-// To calculate the cache size number we'll start with the assumption that currently snapshot
-// preloading feature "works fine". In the reality it might not be the case for large screen devices
-// such as iPad. Another assumption here is that pinned tabs feature requires on average 4 more
-// snapshots to be used. Based on that kLRUCacheMaxCapacityForPinnedTabsEnabled is
-// kLRUCacheMaxCapacity which "works fine" + on average 4 more snapshots needed for pinned tabs
-// feature.
-let kLRUCacheAdditionalCapacityForPinnedTabsEnabled = 4
-
-// Additional capacity of elements that the LRU cache can hold before starting to evict elements
-// when the Tab Group feature is enabled.
-//
-// A tab group cell requests up to 7 snapshots from the first item.
-let kLRUCacheAdditionalCapacityForTabGroupEnabled = 7
-
-// A class providing an in-memory and on-disk storage of tab snapshots.
 // A snapshot is a full-screen image of the contents of the page at the current scroll offset and
 // zoom level, used to stand in for the WKWebView if it has been purged from memory or when quickly
-// switching tabs. Persists to disk on a background thread each time a snapshot changes.
-@objcMembers public class SnapshotStorage: NSObject {
-  // Weak type to store the observers.
-  struct Weak<T: AnyObject> {
-    weak var value: T?
-  }
-
-  // Cache to hold color snapshots in memory. The gray snapshots are not kept in memory at all.
-  private let lruCache: SnapshotLRUCache
-
-  // File manager to read/write images from/to the disk.
-  private let fileManager: ImageFileManager
-
-  // List of observers to be notified of changes to the snapshot storage.
-  private var observers: [Weak<SnapshotStorageObserver>]
-
-  // Designated initializer. `storageDirectoryUrl` is the file path where all images managed by this
-  // SnapshotStorage are stored. `storageDirectoryUrl` is not guaranteed to exist. The contents of
-  // `storageDirectoryUrl` are entirely managed by this SnapshotStorage.
-  //
-  // To support renaming the directory where the snapshots are stored, it is possible to pass a
-  // non-empty path via `legacyDirectoryUrl`. If present, then it will be moved to
-  // `storageDirectoryUrl`.
-  //
-  // TODO(crbug.com/40942167): Remove `legacyDirectoryUrl` when the storage for all users has been
-  // migrated.
-  init(storageDirectoryUrl: URL, legacyDirectoryUrl: URL?) {
-    var cacheSize = kLRUCacheBaseCapacity
-    if UIDevice.current.userInterfaceIdiom != .pad {
-      // Add more capacity to LRUCache when the pinned tabs feature is enabled.
-      // The pinned tabs feature is fully enabled on iPhone and disabled on iPad. The condition to
-      // determine the cache size should sync with IsPinnedTabsEnabled() in
-      // ios/chrome/browser/tabs/model/features.h.
-      cacheSize += kLRUCacheAdditionalCapacityForPinnedTabsEnabled
-    }
-    if IsLargeCapacityInSnapshotLRUCacheEnabled() {
-      // Add more capacity to LRUCache when the feature flag is enabled. The feature depends on the tab group feature.
-      cacheSize += kLRUCacheAdditionalCapacityForTabGroupEnabled
-    }
-    self.lruCache = SnapshotLRUCache(size: cacheSize)
-    self.fileManager = ImageFileManager(
-      storageDirectoryUrl: storageDirectoryUrl, legacyDirectoryUrl: legacyDirectoryUrl)
-    self.observers = []
-
-    super.init()
-
-    NotificationCenter.default.addObserver(
-      self, selector: #selector(handleLowMemory),
-      name: UIApplication.didReceiveMemoryWarningNotification, object: nil)
-    NotificationCenter.default.addObserver(
-      self, selector: #selector(handleEnterBackground),
-      name: UIApplication.didEnterBackgroundNotification, object: nil)
-  }
-
-  // Unregisters observers from Notification Center.
-  deinit {
-    NotificationCenter.default.removeObserver(
-      self, name: UIApplication.didReceiveMemoryWarningNotification, object: nil)
-    NotificationCenter.default.removeObserver(
-      self, name: UIApplication.didEnterBackgroundNotification, object: nil)
-  }
-
+// switching tabs.
+@objc public protocol SnapshotStorage {
   // Retrieves a cached snapshot for the `snapshotID` and return it via the callback if it exists.
   // The callback is guaranteed to be called synchronously if the image is in memory. It will be
   // called asynchronously if the image is on the disk or with nil if the image is not present at
   // all.
-  func retrieveImage(snapshotID: SnapshotIDWrapper, completion: @escaping (UIImage?) -> Void) {
-    assert(snapshotID.valid(), "Snapshot ID should be valid")
-    if let image = self.lruCache.getObject(forKey: snapshotID) {
-      completion(image)
-      return
-    }
-
-    self.fileManager.readImage(snapshotID: snapshotID) { (image) -> Void in
-      guard let image = image else {
-        completion(nil)
-        return
-      }
-      self.lruCache.setObject(value: image, forKey: snapshotID)
-      completion(image)
-    }
-  }
-
-  // Retrieves a grey snapshot for `snapshotID`. If the color image is already loaded in memory,
-  // the grey snapshot will be generated and the callback will be called immediately. It will be
-  // called asynchronously if the color image doesn't exist in memory.
-  func retrieveGreyImage(snapshotID: SnapshotIDWrapper, completion: @escaping (UIImage?) -> Void) {
-    assert(snapshotID.valid(), "Snapshot ID should be valid")
-    if let colorImage = self.lruCache.getObject(forKey: snapshotID) {
-      completion(UiKitUtils.greyImage(colorImage))
-      return
-    }
-
-    // Fallback to reading a color image from the disk when there is no color image in the cache.
-    self.fileManager.readImage(snapshotID: snapshotID) { (image) -> Void in
-      guard let image = image else {
-        completion(nil)
-        return
-      }
-      completion(UiKitUtils.greyImage(image))
-    }
-  }
+  @objc func retrieveImage(
+    snapshotID: SnapshotIDWrapper, snapshotKind: SnapshotKind,
+    completion: @escaping (UIImage?) -> Void)
 
   // Sets the image in both the LRU cache and the disk.
-  func setImage(_ image: UIImage?, snapshotID: SnapshotIDWrapper) {
-    guard let image = image, snapshotID.valid() else {
-      return
-    }
-
-    lruCache.setObject(value: image, forKey: snapshotID)
-    fileManager.write(image: image, snapshotID: snapshotID)
-
-    for observer in observers {
-      observer.value?.didUpdateSnapshotStorage?(snapshotID: snapshotID)
-    }
-  }
+  @objc func setImage(_ image: UIImage?, withSnapshotID: SnapshotIDWrapper)
 
   // Removes the image from both the LRU cache and the disk.
-  func removeImage(snapshotID: SnapshotIDWrapper) {
-    lruCache.removeObject(forKey: snapshotID)
-    fileManager.removeImage(snapshotID: snapshotID)
+  @objc func removeImage(snapshotID: SnapshotIDWrapper)
 
-    for weakObserver in observers {
-      if let observer = weakObserver.value {
-        observer.didUpdateSnapshotStorage?(snapshotID: snapshotID)
-      }
-    }
-  }
-
-  // Removes all images from both the LRU cahce and the disk.
-  func removeAllImages() {
-    lruCache.removeAllObjects()
-    fileManager.removeAllImages()
-  }
+  // Removes all images from both the LRU cache and the disk.
+  @objc func removeAllImages()
 
   // Purges the storage of snapshots that are older than `thresholdDate`. The snapshots for
   // `liveSnapshotIDs` will be kept. This will be done asynchronously.
-  func purgeImagesOlderThan(thresholdDate: Date, liveSnapshotIDs: [SnapshotIDWrapper]) {
-    fileManager.purgeImagesOlderThan(thresholdDate: thresholdDate, liveSnapshotIDs: liveSnapshotIDs)
-  }
+  @objc func purgeImagesOlderThan(thresholdDate: Date, liveSnapshotIDs: [SnapshotIDWrapper])
 
   // Renames snapshots with names in `oldIDs` to names in `newIDs`. It is a programmatic error if
   // the two array do not have the same length.
-  func renameSnapshots(oldIDs: [String], newIDs: [SnapshotIDWrapper]) {
-    assert(
-      oldIDs.count == newIDs.count, "The number of old snapshot IDs and new IDs should be same")
-    fileManager.renameSnapshots(oldIDs: oldIDs, newIDs: newIDs)
-  }
+  @objc func renameSnapshots(oldIDs: [String], newIDs: [SnapshotIDWrapper])
 
   // Moves the on-disk snapshot from the receiver storage to the destination on-disk storage. If
   // the snapshot is also in-memory, it is moved as well.
-  func migrateImage(snapshotID: SnapshotIDWrapper, destinationStorage: SnapshotStorage) {
-    if let image = lruCache.getObject(forKey: snapshotID) {
-      // Copy both on-disk and in-memory versions.
-      destinationStorage.setImage(image, snapshotID: snapshotID)
-    } else {
-      // Copy on-disk.
-      guard let oldPath = imagePath(snapshotID: snapshotID) else {
-        return
-      }
-      guard let newPath = destinationStorage.imagePath(snapshotID: snapshotID) else {
-        return
-      }
-      fileManager.copyImage(oldPath: oldPath, newPath: newPath)
-    }
-
-    // Remove the snapshot from this storage.
-    removeImage(snapshotID: snapshotID)
-  }
+  @objc func migrateImage(snapshotID: SnapshotIDWrapper, destinationStorage: SnapshotStorage)
 
   // Adds an observer to this snapshot storage.
-  func addObserver(_ observer: SnapshotStorageObserver) {
-    if observers.contains(where: { $0.value === observer }) {
-      return
-    }
-    observers.append(Weak(value: observer))
-  }
+  @objc func addObserver(_ observer: SnapshotStorageObserver)
 
   // Removes an observer from this snapshot storage.
-  func removeObserver(_ observer: SnapshotStorageObserver) {
-    if let index = observers.firstIndex(where: { $0.value === observer }) {
-      observers.remove(at: index)
-    }
-  }
+  @objc func removeObserver(_ observer: SnapshotStorageObserver)
 
   // Returns the file path of the image for `snapshotID`.
-  func imagePath(snapshotID: SnapshotIDWrapper) -> URL? {
-    fileManager.imagePath(snapshotID: snapshotID)
-  }
+  @objc func imagePath(snapshotID: SnapshotIDWrapper) -> URL?
 
-  // Removes all UIImages from the cache.
-  func handleLowMemory() {
-    lruCache.removeAllObjects()
-  }
-
-  // Removes all UIImages from the cache.
-  func handleEnterBackground() {
-    lruCache.removeAllObjects()
-  }
-
-  // Returns the maximum size that the cache can have.
-  func lruCacheMaxSize() -> Int {
-    return lruCache.maxCacheSize()
-  }
-
-  // Clears all images from the cache.
-  func clearCache() {
-    lruCache.removeAllObjects()
-  }
+  // Must be invoked before the instance is deallocated. It is needed to release
+  // all references to C++ objects. The receiver will likely soon be deallocated.
+  @objc func shutdown()
 }
diff --git a/ios/chrome/browser/snapshots/model/snapshot_storage_impl.swift b/ios/chrome/browser/snapshots/model/snapshot_storage_impl.swift
new file mode 100644
index 0000000..414105d
--- /dev/null
+++ b/ios/chrome/browser/snapshots/model/snapshot_storage_impl.swift
@@ -0,0 +1,261 @@
+// Copyright 2025 The Chromium Authors
+// Use of this source code is governed by a BSD-style license that can be
+// found in the LICENSE file.
+
+// Base size in number of elements that the LRU cache can hold before starting to evict elements.
+let kLRUCacheBaseCapacity = 6
+
+// Additional capacity of elements that the LRU cache can hold before starting to evict elements
+// when PinnedTabs feature is enabled.
+//
+// To calculate the cache size number we'll start with the assumption that currently snapshot
+// preloading feature "works fine". In the reality it might not be the case for large screen devices
+// such as iPad. Another assumption here is that pinned tabs feature requires on average 4 more
+// snapshots to be used. Based on that kLRUCacheMaxCapacityForPinnedTabsEnabled is
+// kLRUCacheMaxCapacity which "works fine" + on average 4 more snapshots needed for pinned tabs
+// feature.
+let kLRUCacheAdditionalCapacityForPinnedTabsEnabled = 4
+
+// Additional capacity of elements that the LRU cache can hold before starting to evict elements
+// when the Tab Group feature is enabled.
+//
+// A tab group cell requests up to 7 snapshots from the first item.
+let kLRUCacheAdditionalCapacityForTabGroupEnabled = 7
+
+// A class providing an in-memory and on-disk storage of tab snapshots.
+// A snapshot is a full-screen image of the contents of the page at the current scroll offset and
+// zoom level, used to stand in for the WKWebView if it has been purged from memory or when quickly
+// switching tabs. Persists to disk on a background thread each time a snapshot changes.
+@objcMembers public class SnapshotStorageImpl: NSObject, SnapshotStorage {
+  // Weak type to store the observers.
+  struct Weak<T: AnyObject> {
+    weak var value: T?
+  }
+
+  // Cache to hold color snapshots in memory. The gray snapshots are not kept in memory at all.
+  private let lruCache: SnapshotLRUCache
+
+  // File manager to read/write images from/to the disk.
+  private let fileManager: ImageFileManager
+
+  // List of observers to be notified of changes to the snapshot storage.
+  private var observers: [Weak<SnapshotStorageObserver>]
+
+  // Designated initializer. `storageDirectoryUrl` is the file path where all images managed by this
+  // SnapshotStorage are stored. `storageDirectoryUrl` is not guaranteed to exist. The contents of
+  // `storageDirectoryUrl` are entirely managed by this SnapshotStorage.
+  //
+  // To support renaming the directory where the snapshots are stored, it is possible to pass a
+  // non-empty path via `legacyDirectoryUrl`. If present, then it will be moved to
+  // `storageDirectoryUrl`.
+  //
+  // TODO(crbug.com/40942167): Remove `legacyDirectoryUrl` when the storage for all users has been
+  // migrated.
+  init(lruCache: SnapshotLRUCache, storageDirectoryUrl: URL, legacyDirectoryUrl: URL?) {
+    self.lruCache = lruCache
+    self.fileManager = ImageFileManager(
+      storageDirectoryUrl: storageDirectoryUrl, legacyDirectoryUrl: legacyDirectoryUrl)
+    self.observers = []
+
+    super.init()
+
+    NotificationCenter.default.addObserver(
+      self, selector: #selector(handleLowMemory),
+      name: UIApplication.didReceiveMemoryWarningNotification, object: nil)
+    NotificationCenter.default.addObserver(
+      self, selector: #selector(handleEnterBackground),
+      name: UIApplication.didEnterBackgroundNotification, object: nil)
+  }
+
+  // Convenience initialize that uses a default `lruCache`.
+  convenience init(storageDirectoryUrl: URL, legacyDirectoryUrl: URL?) {
+    var cacheSize = kLRUCacheBaseCapacity
+    if UIDevice.current.userInterfaceIdiom != .pad {
+      // Add more capacity to LRUCache when the pinned tabs feature is enabled.
+      // The pinned tabs feature is fully enabled on iPhone and disabled on iPad. The condition to
+      // determine the cache size should sync with IsPinnedTabsEnabled() in
+      // ios/chrome/browser/tabs/model/features.h.
+      cacheSize += kLRUCacheAdditionalCapacityForPinnedTabsEnabled
+    }
+    if IsLargeCapacityInSnapshotLRUCacheEnabled() {
+      // Add more capacity to LRUCache when the feature flag is enabled. The feature depends on the tab group feature.
+      cacheSize += kLRUCacheAdditionalCapacityForTabGroupEnabled
+    }
+    self.init(
+      lruCache: SnapshotLRUCache(size: cacheSize), storageDirectoryUrl: storageDirectoryUrl,
+      legacyDirectoryUrl: legacyDirectoryUrl)
+  }
+
+  // Unregisters observers from Notification Center.
+  deinit {
+    NotificationCenter.default.removeObserver(
+      self, name: UIApplication.didReceiveMemoryWarningNotification, object: nil)
+    NotificationCenter.default.removeObserver(
+      self, name: UIApplication.didEnterBackgroundNotification, object: nil)
+  }
+
+  // Retrieves a cached snapshot for the `snapshotID` and return it via the callback if it exists.
+  // The callback is guaranteed to be called synchronously if the image is in memory. It will be
+  // called asynchronously if the image is on the disk or with nil if the image is not present at
+  // all.
+  public func retrieveImage(
+    snapshotID: SnapshotIDWrapper, snapshotKind: SnapshotKind,
+    completion: @escaping (UIImage?) -> Void
+  ) {
+    switch snapshotKind {
+    case SnapshotKind.color:
+      retrieveColorImage(snapshotID: snapshotID, completion: completion)
+      return
+
+    case SnapshotKind.greyscale:
+      retrieveGreyImage(snapshotID: snapshotID, completion: completion)
+      return
+    }
+  }
+
+  // Sets the image in both the LRU cache and the disk.
+  public func setImage(_ image: UIImage?, withSnapshotID snapshotID: SnapshotIDWrapper) {
+    guard let image = image, snapshotID.valid() else {
+      return
+    }
+
+    lruCache.setObject(value: image, forKey: snapshotID)
+    fileManager.write(image: image, snapshotID: snapshotID)
+
+    for observer in observers {
+      observer.value?.didUpdateSnapshotStorage?(snapshotID: snapshotID)
+    }
+  }
+
+  // Removes the image from both the LRU cache and the disk.
+  public func removeImage(snapshotID: SnapshotIDWrapper) {
+    lruCache.removeObject(forKey: snapshotID)
+    fileManager.removeImage(snapshotID: snapshotID)
+
+    for weakObserver in observers {
+      if let observer = weakObserver.value {
+        observer.didUpdateSnapshotStorage?(snapshotID: snapshotID)
+      }
+    }
+  }
+
+  // Removes all images from both the LRU cache and the disk.
+  public func removeAllImages() {
+    lruCache.removeAllObjects()
+    fileManager.removeAllImages()
+  }
+
+  // Purges the storage of snapshots that are older than `thresholdDate`. The snapshots for
+  // `liveSnapshotIDs` will be kept. This will be done asynchronously.
+  public func purgeImagesOlderThan(thresholdDate: Date, liveSnapshotIDs: [SnapshotIDWrapper]) {
+    fileManager.purgeImagesOlderThan(thresholdDate: thresholdDate, liveSnapshotIDs: liveSnapshotIDs)
+  }
+
+  // Renames snapshots with names in `oldIDs` to names in `newIDs`. It is a programmatic error if
+  // the two array do not have the same length.
+  public func renameSnapshots(oldIDs: [String], newIDs: [SnapshotIDWrapper]) {
+    assert(
+      oldIDs.count == newIDs.count, "The number of old snapshot IDs and new IDs should be same")
+    fileManager.renameSnapshots(oldIDs: oldIDs, newIDs: newIDs)
+  }
+
+  // Moves the on-disk snapshot from the receiver storage to the destination on-disk storage. If
+  // the snapshot is also in-memory, it is moved as well.
+  public func migrateImage(snapshotID: SnapshotIDWrapper, destinationStorage: SnapshotStorage) {
+    if let image = lruCache.getObject(forKey: snapshotID) {
+      // Copy both on-disk and in-memory versions.
+      destinationStorage.setImage(image, withSnapshotID: snapshotID)
+    } else {
+      // Copy on-disk.
+      guard let oldPath = imagePath(snapshotID: snapshotID) else {
+        return
+      }
+      guard let newPath = destinationStorage.imagePath(snapshotID: snapshotID) else {
+        return
+      }
+      fileManager.copyImage(oldPath: oldPath, newPath: newPath)
+    }
+
+    // Remove the snapshot from this storage.
+    removeImage(snapshotID: snapshotID)
+  }
+
+  // Adds an observer to this snapshot storage.
+  public func addObserver(_ observer: SnapshotStorageObserver) {
+    if observers.contains(where: { $0.value === observer }) {
+      return
+    }
+    observers.append(Weak(value: observer))
+  }
+
+  // Removes an observer from this snapshot storage.
+  public func removeObserver(_ observer: SnapshotStorageObserver) {
+    if let index = observers.firstIndex(where: { $0.value === observer }) {
+      observers.remove(at: index)
+    }
+  }
+
+  // Returns the file path of the image for `snapshotID`.
+  public func imagePath(snapshotID: SnapshotIDWrapper) -> URL? {
+    fileManager.imagePath(snapshotID: snapshotID)
+  }
+
+  // Must be invoked before the instance is deallocated. It is needed to release
+  // all references to C++ objects. The receiver will likely soon be deallocated.
+  public func shutdown() {}
+
+  // Retrieves a cached snapshot for the `snapshotID` and return it via the callback if it exists.
+  // The callback is guaranteed to be called synchronously if the image is in memory. It will be
+  // called asynchronously if the image is on the disk or with nil if the image is not present at
+  // all.
+  fileprivate func retrieveColorImage(
+    snapshotID: SnapshotIDWrapper, completion: @escaping (UIImage?) -> Void
+  ) {
+    assert(snapshotID.valid(), "Snapshot ID should be valid")
+    if let image = self.lruCache.getObject(forKey: snapshotID) {
+      completion(image)
+      return
+    }
+
+    self.fileManager.readImage(snapshotID: snapshotID) { (image) -> Void in
+      guard let image = image else {
+        completion(nil)
+        return
+      }
+      self.lruCache.setObject(value: image, forKey: snapshotID)
+      completion(image)
+    }
+  }
+
+  // Retrieves a grey snapshot for `snapshotID`. If the color image is already loaded in memory,
+  // the grey snapshot will be generated and the callback will be called immediately. It will be
+  // called asynchronously if the color image doesn't exist in memory.
+  fileprivate func retrieveGreyImage(
+    snapshotID: SnapshotIDWrapper, completion: @escaping (UIImage?) -> Void
+  ) {
+    assert(snapshotID.valid(), "Snapshot ID should be valid")
+    if let colorImage = self.lruCache.getObject(forKey: snapshotID) {
+      completion(UiKitUtils.greyImage(colorImage))
+      return
+    }
+
+    // Fallback to reading a color image from the disk when there is no color image in the cache.
+    self.fileManager.readImage(snapshotID: snapshotID) { (image) -> Void in
+      guard let image = image else {
+        completion(nil)
+        return
+      }
+      completion(UiKitUtils.greyImage(image))
+    }
+  }
+
+  // Removes all UIImages from the cache.
+  @objc fileprivate func handleLowMemory() {
+    lruCache.removeAllObjects()
+  }
+
+  // Removes all UIImages from the cache.
+  @objc fileprivate func handleEnterBackground() {
+    lruCache.removeAllObjects()
+  }
+}
diff --git a/ios/chrome/browser/snapshots/model/snapshot_storage_observer.swift b/ios/chrome/browser/snapshots/model/snapshot_storage_observer.swift
index 85a6097..0d8b5d5 100644
--- a/ios/chrome/browser/snapshots/model/snapshot_storage_observer.swift
+++ b/ios/chrome/browser/snapshots/model/snapshot_storage_observer.swift
@@ -3,7 +3,7 @@
 // found in the LICENSE file.
 
 // Interface for listening to events occurring to the SnapshotStorage.
-@objc protocol SnapshotStorageObserver {
+@objc public protocol SnapshotStorageObserver {
   // Tells the observing object that the storage was updated with a new snapshot corresponding to
   // `snapshotID`.
   @objc optional func didUpdateSnapshotStorage(snapshotID: SnapshotIDWrapper)
diff --git a/ios/chrome/browser/snapshots/model/snapshot_storage_unittest.mm b/ios/chrome/browser/snapshots/model/snapshot_storage_unittest.mm
index 8538943..9b1319cf9 100644
--- a/ios/chrome/browser/snapshots/model/snapshot_storage_unittest.mm
+++ b/ios/chrome/browser/snapshots/model/snapshot_storage_unittest.mm
@@ -12,13 +12,14 @@
 #import "components/sessions/core/session_id.h"
 #import "ios/chrome/browser/sessions/model/session_constants.h"
 #import "ios/chrome/browser/snapshots/model/features.h"
-#import "ios/chrome/browser/snapshots/model/legacy_snapshot_storage+Testing.h"
+#import "ios/chrome/browser/snapshots/model/legacy_snapshot_lru_cache.h"
 #import "ios/chrome/browser/snapshots/model/legacy_snapshot_storage.h"
 #import "ios/chrome/browser/snapshots/model/model_swift.h"
 #import "ios/chrome/browser/snapshots/model/snapshot_id.h"
 #import "ios/chrome/browser/snapshots/model/snapshot_id_wrapper.h"
 #import "ios/chrome/browser/snapshots/model/snapshot_scale.h"
 #import "ios/web/public/test/web_task_environment.h"
+#import "testing/gtest_mac.h"
 #import "testing/platform_test.h"
 
 @interface FakeSnapshotStorageObserver : NSObject <SnapshotStorageObserver>
@@ -33,17 +34,41 @@
 
 namespace {
 
+// Represents the possible SnapshotStorage implementations.
+enum class SnapshotStorageKind {
+  kLegacy,
+  kSwift,
+};
+
 const NSInteger kSnapshotCount = 10;
 const NSUInteger kSnapshotPixelSize = 8;
+const NSUInteger kSnapshotCacheSize = 3;
 
 // Constants used to construct path to test the storage migration.
 const base::FilePath::CharType kSnapshots[] = FILE_PATH_LITERAL("Snapshots");
 const base::FilePath::CharType kIdentifier[] = FILE_PATH_LITERAL("Identifier");
 const base::FilePath::CharType kFilename[] = FILE_PATH_LITERAL("Filename.txt");
 
-// TODO(crbug.com/40943236): Remove LegacySnapshotStorageTest once the new
-// implementation is enabled by default.
-class LegacySnapshotStorageTest : public PlatformTest {
+// Converts `snapshot_id` into a SnapshotIDWrapper.
+SnapshotIDWrapper* ToWrapper(SnapshotID snapshot_id) {
+  return [[SnapshotIDWrapper alloc] initWithSnapshotID:snapshot_id];
+}
+
+// Returns a new SnapshotIDWrapper instance.
+SnapshotIDWrapper* NewSnapshotID() {
+  return ToWrapper(SnapshotID(SessionID::NewUnique().id()));
+}
+
+// Returns an invalid SnapshotIDWrapper instance.
+SnapshotIDWrapper* InvalidSnapshotID() {
+  return ToWrapper(SnapshotID());
+}
+
+}  // namespace
+
+class SnapshotStorageTest
+    : public PlatformTest,
+      public testing::WithParamInterface<SnapshotStorageKind> {
  protected:
   void TearDown() override {
     ClearAllImages();
@@ -60,26 +85,53 @@
       return false;
     }
 
-    snapshot_storage_ = [[LegacySnapshotStorage alloc]
-        initWithStoragePath:scoped_temp_directory_.GetPath()];
+    const base::FilePath legacy_path;
+    const base::FilePath storage_path = scoped_temp_directory_.GetPath();
+    switch (GetParam()) {
+      case SnapshotStorageKind::kLegacy: {
+        legacy_lru_cache_ = [[LegacySnapshotLRUCache alloc]
+            initWithCacheSize:kSnapshotCacheSize];
+        snapshot_storage_ =
+            [[LegacySnapshotStorage alloc] initWithLRUCache:legacy_lru_cache_
+                                                storagePath:storage_path
+                                                 legacyPath:legacy_path];
+        break;
+      }
+
+      case SnapshotStorageKind::kSwift: {
+        using base::apple::FilePathToNSURL;
+        lru_cache_ = [[SnapshotLRUCache alloc] initWithSize:kSnapshotCacheSize];
+        snapshot_storage_ = [[SnapshotStorageImpl alloc]
+               initWithLruCache:lru_cache_
+            storageDirectoryUrl:FilePathToNSURL(storage_path)
+             legacyDirectoryUrl:FilePathToNSURL(legacy_path)];
+        break;
+      }
+    }
+    DCHECK(snapshot_storage_);
 
     CGFloat scale = [SnapshotImageScale floatImageScaleForDevice];
 
     srand(1);
 
+    test_images_ = [[NSMutableDictionary alloc] init];
     for (auto i = 0; i < kSnapshotCount; ++i) {
-      test_images_.insert(std::make_pair(
-          SnapshotID(SessionID::NewUnique().id()), GenerateRandomImage(scale)));
+      test_images_[NewSnapshotID()] = GenerateRandomImage(scale);
     }
 
     return true;
   }
 
-  LegacySnapshotStorage* GetSnapshotStorage() {
+  id<SnapshotStorage> GetSnapshotStorage() {
     DCHECK(snapshot_storage_);
     return snapshot_storage_;
   }
 
+  void ClearCache() {
+    [legacy_lru_cache_ removeAllObjects];
+    [lru_cache_ removeAllObjects];
+  }
+
   // Generates an image of `scale`, filled with a random color.
   UIImage* GenerateRandomImage(CGFloat scale) {
     CGSize size = CGSizeMake(kSnapshotPixelSize, kSnapshotPixelSize);
@@ -107,463 +159,10 @@
   // Flushes all the runloops internally used by the snapshot storage. This is
   // done by asking to retrieve a non-existent image from disk and blocking
   // until the callback is invoked.
-  void FlushRunLoops(LegacySnapshotStorage* storage) {
+  void FlushRunLoops(id<SnapshotStorage> storage) {
     base::RunLoop run_loop;
-    [storage retrieveImageForSnapshotID:SnapshotID(SessionID::NewUnique().id())
-                               callback:base::CallbackToBlock(
-                                            base::IgnoreArgs<UIImage*>(
-                                                run_loop.QuitClosure()))];
-    run_loop.Run();
-  }
-
-  // This function removes the snapshots both from dictionary and from disk.
-  void ClearAllImages() {
-    if (!snapshot_storage_) {
-      return;
-    }
-
-    for (auto [snapshot_id, _] : test_images_) {
-      [snapshot_storage_ removeImageWithSnapshotID:snapshot_id];
-    }
-
-    FlushRunLoops(snapshot_storage_);
-
-    __block BOOL foundImage = NO;
-    __block NSUInteger numCallbacks = 0;
-    for (auto [snapshot_id, _] : test_images_) {
-      const base::FilePath path =
-          [snapshot_storage_ imagePathForSnapshotID:snapshot_id];
-
-      // Checks that the snapshot is not on disk.
-      EXPECT_FALSE(base::PathExists(path));
-
-      // Check that the snapshot is not in the dictionary.
-      [snapshot_storage_ retrieveImageForSnapshotID:snapshot_id
-                                           callback:^(UIImage* image) {
-                                             ++numCallbacks;
-                                             if (image) {
-                                               foundImage = YES;
-                                             }
-                                           }];
-    }
-
-    // Expect that all the callbacks ran and that none retrieved an image.
-    FlushRunLoops(snapshot_storage_);
-
-    EXPECT_EQ(test_images_.size(), numCallbacks);
-    EXPECT_FALSE(foundImage);
-  }
-
-  // Loads kSnapshotCount color images into the storage.  If
-  // `waitForFilesOnDisk` is YES, will not return until the images have been
-  // written to disk.
-  void LoadAllColorImagesIntoCache(bool waitForFilesOnDisk) {
-    // Put color images in the storage.
-    for (auto [snapshot_id, image] : test_images_) {
-      @autoreleasepool {
-        [snapshot_storage_ setImage:image withSnapshotID:snapshot_id];
-      }
-    }
-    if (waitForFilesOnDisk) {
-      FlushRunLoops(snapshot_storage_);
-      for (auto [snapshot_id, _] : test_images_) {
-        // Check that images are on the disk.
-        const base::FilePath path =
-            [snapshot_storage_ imagePathForSnapshotID:snapshot_id];
-        EXPECT_TRUE(base::PathExists(path));
-      }
-    }
-  }
-
-  web::WebTaskEnvironment task_environment_;
-  base::ScopedTempDir scoped_temp_directory_;
-  LegacySnapshotStorage* snapshot_storage_;
-  std::map<SnapshotID, UIImage*> test_images_;
-};
-
-// This test simply put all snapshots in the storage and then gets them back.
-// As the snapshots are kept in memory, the same pointer can be retrieved.
-// This test also checks that images are correctly removed from the disk.
-TEST_F(LegacySnapshotStorageTest, ReadAndWriteCache) {
-  ASSERT_TRUE(CreateSnapshotStorage());
-  LegacySnapshotStorage* storage = GetSnapshotStorage();
-
-  NSUInteger expectedCacheSize = MIN(kSnapshotCount, [storage lruCacheMaxSize]);
-
-  // Put all images to the cache.
-  {
-    NSUInteger inserted_images = 0;
-    for (auto [snapshot_id, image] : test_images_) {
-      [storage setImage:image withSnapshotID:snapshot_id];
-      if (++inserted_images == expectedCacheSize) {
-        break;
-      }
-    }
-  }
-
-  // Get images back.
-  __block NSUInteger numberOfCallbacks = 0;
-  {
-    NSUInteger inserted_images = 0;
-    for (auto [snapshot_id, image] : test_images_) {
-      UIImage* expected_image = image;
-      [storage retrieveImageForSnapshotID:snapshot_id
-                                 callback:^(UIImage* retrieved_image) {
-                                   // Images have not been removed from the
-                                   // dictionnary. We expect the same pointer.
-                                   EXPECT_EQ(retrieved_image, expected_image);
-                                   ++numberOfCallbacks;
-                                 }];
-      if (++inserted_images == expectedCacheSize) {
-        break;
-      }
-    }
-  }
-
-  EXPECT_EQ(expectedCacheSize, numberOfCallbacks);
-}
-
-// This test puts all snapshots in the storage, clears the LRU cache and checks
-// if the image can be retrieved via disk.
-TEST_F(LegacySnapshotStorageTest, ReadAndWriteWithoutCache) {
-  ASSERT_TRUE(CreateSnapshotStorage());
-  LegacySnapshotStorage* storage = GetSnapshotStorage();
-
-  LoadAllColorImagesIntoCache(true);
-
-  // Remove color images from LRU cache.
-  [storage clearCache];
-
-  __block NSInteger numberOfCallbacks = 0;
-
-  for (auto [snapshot_id, _] : test_images_) {
-    // Check that images are on the disk.
-    const base::FilePath path = [storage imagePathForSnapshotID:snapshot_id];
-    EXPECT_TRUE(base::PathExists(path));
-
-    [storage retrieveImageForSnapshotID:snapshot_id
-                               callback:^(UIImage* image) {
-                                 EXPECT_TRUE(image);
-                                 ++numberOfCallbacks;
-                               }];
-  }
-
-  // Wait until all callbacks are called.
-  FlushRunLoops(storage);
-
-  EXPECT_EQ(numberOfCallbacks, kSnapshotCount);
-}
-
-// Tests that an image is immediately deleted when calling
-// `-removeImageWithSnapshotID:`.
-TEST_F(LegacySnapshotStorageTest, ImageDeleted) {
-  ASSERT_TRUE(CreateSnapshotStorage());
-  LegacySnapshotStorage* storage = GetSnapshotStorage();
-
-  UIImage* image = GenerateRandomImage(0);
-  const SnapshotID kSnapshotID(SessionID::NewUnique().id());
-  [storage setImage:image withSnapshotID:kSnapshotID];
-
-  base::FilePath image_path = [storage imagePathForSnapshotID:kSnapshotID];
-
-  // Remove the image and ensure the file is removed.
-  [storage removeImageWithSnapshotID:kSnapshotID];
-  FlushRunLoops(storage);
-
-  EXPECT_FALSE(base::PathExists(image_path));
-  [storage retrieveImageForSnapshotID:kSnapshotID
-                             callback:^(UIImage* retrievedImage) {
-                               EXPECT_FALSE(retrievedImage);
-                             }];
-}
-
-// Tests that all images are deleted when calling `-removeAllImages`.
-TEST_F(LegacySnapshotStorageTest, AllImagesDeleted) {
-  ASSERT_TRUE(CreateSnapshotStorage());
-  LegacySnapshotStorage* storage = GetSnapshotStorage();
-
-  UIImage* image = GenerateRandomImage(0);
-  const SnapshotID kSnapshotID1(SessionID::NewUnique().id());
-  const SnapshotID kSnapshotID2(SessionID::NewUnique().id());
-  [storage setImage:image withSnapshotID:kSnapshotID1];
-  [storage setImage:image withSnapshotID:kSnapshotID2];
-  base::FilePath image_1_path = [storage imagePathForSnapshotID:kSnapshotID1];
-  base::FilePath image_2_path = [storage imagePathForSnapshotID:kSnapshotID2];
-
-  // Remove all images and ensure the files are removed.
-  [storage removeAllImages];
-  FlushRunLoops(storage);
-
-  EXPECT_FALSE(base::PathExists(image_1_path));
-  EXPECT_FALSE(base::PathExists(image_2_path));
-  [storage retrieveImageForSnapshotID:kSnapshotID1
-                             callback:^(UIImage* retrievedImage1) {
-                               EXPECT_FALSE(retrievedImage1);
-                             }];
-  [storage retrieveImageForSnapshotID:kSnapshotID2
-                             callback:^(UIImage* retrievedImage2) {
-                               EXPECT_FALSE(retrievedImage2);
-                             }];
-}
-
-// Tests that observers are notified when a snapshot is storaged and removed.
-TEST_F(LegacySnapshotStorageTest, ObserversNotifiedOnSetAndRemoveImage) {
-  ASSERT_TRUE(CreateSnapshotStorage());
-  LegacySnapshotStorage* storage = GetSnapshotStorage();
-
-  FakeSnapshotStorageObserver* observer =
-      [[FakeSnapshotStorageObserver alloc] init];
-  [storage addObserver:observer];
-  EXPECT_FALSE(observer.lastUpdatedID.snapshot_id.valid());
-  ASSERT_TRUE(!test_images_.empty());
-
-  // Check if setting a new image is notified to the observer.
-  std::pair<SnapshotID, UIImage*> pair = *test_images_.begin();
-  [storage setImage:pair.second withSnapshotID:pair.first];
-  EXPECT_EQ(pair.first, observer.lastUpdatedID.snapshot_id);
-
-  // Check if removing an image is notified to the observer.
-  observer.lastUpdatedID =
-      [[SnapshotIDWrapper alloc] initWithSnapshotID:SnapshotID()];
-  [storage removeImageWithSnapshotID:pair.first];
-  EXPECT_EQ(pair.first, observer.lastUpdatedID.snapshot_id);
-  [storage removeObserver:observer];
-}
-
-// Tests that creating the SnapshotStorage migrates an existing legacy storage.
-TEST_F(LegacySnapshotStorageTest, MigrateCache) {
-  ASSERT_TRUE(scoped_temp_directory_.CreateUniqueTempDir());
-  const base::FilePath root = scoped_temp_directory_.GetPath();
-
-  const base::FilePath storage_path =
-      root.Append(kSnapshots).Append(kIdentifier);
-
-  const base::FilePath legacy_path = root.Append(kLegacySessionsDirname)
-                                         .Append(kIdentifier)
-                                         .Append(kSnapshots);
-
-  ASSERT_TRUE(base::CreateDirectory(legacy_path));
-  ASSERT_TRUE(base::WriteFile(legacy_path.Append(kFilename), ""));
-
-  LegacySnapshotStorage* storage =
-      [[LegacySnapshotStorage alloc] initWithStoragePath:storage_path
-                                              legacyPath:legacy_path];
-
-  FlushRunLoops(storage);
-
-  EXPECT_TRUE(base::DirectoryExists(storage_path));
-  EXPECT_FALSE(base::DirectoryExists(legacy_path));
-
-  // Check that the legacy directory content has been moved.
-  EXPECT_TRUE(base::PathExists(storage_path.Append(kFilename)));
-
-  [storage shutdown];
-}
-
-// Tests that creating the SnapshotStorage simply create the storage directory
-// if the legacy path is not specified.
-TEST_F(LegacySnapshotStorageTest, MigrateCache_EmptyLegacyPath) {
-  ASSERT_TRUE(scoped_temp_directory_.CreateUniqueTempDir());
-  const base::FilePath root = scoped_temp_directory_.GetPath();
-
-  const base::FilePath storage_path =
-      root.Append(kSnapshots).Append(kIdentifier);
-
-  LegacySnapshotStorage* storage =
-      [[LegacySnapshotStorage alloc] initWithStoragePath:storage_path
-                                              legacyPath:base::FilePath()];
-
-  FlushRunLoops(storage);
-
-  EXPECT_TRUE(base::DirectoryExists(storage_path));
-
-  [storage shutdown];
-}
-
-// Tests that creating the SnapshotStorage simply create the storage directory
-// if the legacy path does not exists.
-TEST_F(LegacySnapshotStorageTest, MigrateCache_NoLegacyStorage) {
-  ASSERT_TRUE(scoped_temp_directory_.CreateUniqueTempDir());
-  const base::FilePath root = scoped_temp_directory_.GetPath();
-
-  const base::FilePath storage_path =
-      root.Append(kSnapshots).Append(kIdentifier);
-
-  const base::FilePath legacy_path = root.Append(kLegacySessionsDirname)
-                                         .Append(kIdentifier)
-                                         .Append(kSnapshots);
-
-  ASSERT_FALSE(base::DirectoryExists(legacy_path));
-
-  LegacySnapshotStorage* storage =
-      [[LegacySnapshotStorage alloc] initWithStoragePath:storage_path
-                                              legacyPath:legacy_path];
-
-  FlushRunLoops(storage);
-
-  EXPECT_TRUE(base::DirectoryExists(storage_path));
-  EXPECT_FALSE(base::DirectoryExists(legacy_path));
-
-  [storage shutdown];
-}
-
-// Tests that creating the SnapshotStorage can fail to create the storage
-// directory and that the legacy directory is left untouch in that case.
-TEST_F(LegacySnapshotStorageTest, MigrateCache_FailCreatingCache) {
-  ASSERT_TRUE(scoped_temp_directory_.CreateUniqueTempDir());
-  const base::FilePath root = scoped_temp_directory_.GetPath();
-
-  const base::FilePath storage_path =
-      root.Append(kSnapshots).Append(kIdentifier);
-
-  const base::FilePath legacy_path = root.Append(kLegacySessionsDirname)
-                                         .Append(kIdentifier)
-                                         .Append(kSnapshots);
-
-  ASSERT_TRUE(base::CreateDirectory(legacy_path));
-  ASSERT_TRUE(base::WriteFile(legacy_path.Append(kFilename), ""));
-
-  // Create a file with the same name as the storage directory to
-  // simulate a failure (in real world the failure would be caused
-  // by a disk that is full).
-  ASSERT_TRUE(base::CreateDirectory(storage_path.DirName()));
-  ASSERT_TRUE(base::WriteFile(storage_path, ""));
-
-  LegacySnapshotStorage* storage =
-      [[LegacySnapshotStorage alloc] initWithStoragePath:storage_path
-                                              legacyPath:base::FilePath()];
-
-  FlushRunLoops(storage);
-
-  EXPECT_FALSE(base::DirectoryExists(storage_path));
-  EXPECT_TRUE(base::DirectoryExists(legacy_path));
-  EXPECT_TRUE(base::PathExists(legacy_path.Append(kFilename)));
-
-  [storage shutdown];
-}
-
-// Tests that retrieving grey snapshot images generated by color images stored
-// in cache.
-TEST_F(LegacySnapshotStorageTest, RetrieveGreyImageFromColorImageInMemory) {
-  ASSERT_TRUE(CreateSnapshotStorage());
-  LoadAllColorImagesIntoCache(true);
-
-  LegacySnapshotStorage* storage = GetSnapshotStorage();
-  __block NSInteger numberOfCallbacks = 0;
-  for (auto [snapshot_id, _] : test_images_) {
-    [storage retrieveGreyImageForSnapshotID:snapshot_id
-                                   callback:^(UIImage* image) {
-                                     EXPECT_TRUE(image);
-                                     ++numberOfCallbacks;
-                                   }];
-  }
-
-  // Wait until all callbacks are called.
-  FlushRunLoops(storage);
-
-  EXPECT_EQ(numberOfCallbacks, kSnapshotCount);
-}
-
-// Tests that retrieving grey snapshot images generated by color images stored
-// in disk.
-TEST_F(LegacySnapshotStorageTest, RetrieveGreyImageFromColorImageInDisk) {
-  ASSERT_TRUE(CreateSnapshotStorage());
-  LoadAllColorImagesIntoCache(true);
-
-  LegacySnapshotStorage* storage = GetSnapshotStorage();
-
-  // Remove color images from in-memory storage.
-  [storage clearCache];
-
-  __block NSInteger numberOfCallbacks = 0;
-  for (auto [snapshot_id, _] : test_images_) {
-    [storage retrieveGreyImageForSnapshotID:snapshot_id
-                                   callback:^(UIImage* image) {
-                                     EXPECT_TRUE(image);
-                                     ++numberOfCallbacks;
-                                   }];
-  }
-
-  // Wait until all callbacks are called.
-  FlushRunLoops(storage);
-
-  EXPECT_EQ(numberOfCallbacks, kSnapshotCount);
-}
-
-class SnapshotStorageTest : public PlatformTest {
- protected:
-  void TearDown() override {
-    ClearAllImages();
-    snapshot_storage_ = nil;
-    PlatformTest::TearDown();
-  }
-
-  // Builds an array of snapshot IDs and an array of UIImages filled with
-  // random colors.
-  [[nodiscard]] bool CreateSnapshotStorage() {
-    DCHECK(!snapshot_storage_);
-    if (!scoped_temp_directory_.CreateUniqueTempDir()) {
-      return false;
-    }
-
-    NSURL* storage_url =
-        base::apple::FilePathToNSURL(scoped_temp_directory_.GetPath());
-    NSURL* legacy_url = base::apple::FilePathToNSURL(base::FilePath());
-    snapshot_storage_ =
-        [[SnapshotStorage alloc] initWithStorageDirectoryUrl:storage_url
-                                          legacyDirectoryUrl:legacy_url];
-
-    CGFloat scale = [SnapshotImageScale floatImageScaleForDevice];
-
-    srand(1);
-
-    for (auto i = 0; i < kSnapshotCount; ++i) {
-      test_images_.insert(std::make_pair(
-          [[SnapshotIDWrapper alloc]
-              initWithSnapshotID:SnapshotID(SessionID::NewUnique().id())],
-          GenerateRandomImage(scale)));
-    }
-
-    return true;
-  }
-
-  SnapshotStorage* GetSnapshotStorage() {
-    DCHECK(snapshot_storage_);
-    return snapshot_storage_;
-  }
-
-  // Generates an image of `scale`, filled with a random color.
-  UIImage* GenerateRandomImage(CGFloat scale) {
-    CGSize size = CGSizeMake(kSnapshotPixelSize, kSnapshotPixelSize);
-    UIGraphicsImageRendererFormat* format =
-        [UIGraphicsImageRendererFormat preferredFormat];
-    format.scale = scale;
-    format.opaque = NO;
-
-    UIGraphicsImageRenderer* renderer =
-        [[UIGraphicsImageRenderer alloc] initWithSize:size format:format];
-
-    return [renderer
-        imageWithActions:^(UIGraphicsImageRendererContext* UIContext) {
-          CGContextRef context = UIContext.CGContext;
-          CGFloat r = rand() / CGFloat(RAND_MAX);
-          CGFloat g = rand() / CGFloat(RAND_MAX);
-          CGFloat b = rand() / CGFloat(RAND_MAX);
-          CGContextSetRGBStrokeColor(context, r, g, b, 1.0);
-          CGContextSetRGBFillColor(context, r, g, b, 1.0);
-          CGContextFillRect(context, CGRectMake(0.0, 0.0, kSnapshotPixelSize,
-                                                kSnapshotPixelSize));
-        }];
-  }
-
-  // Flushes all the runloops internally used by the snapshot storage. This is
-  // done by asking to retrieve a non-existent image from disk and blocking
-  // until the callback is invoked.
-  void FlushRunLoops(SnapshotStorage* storage) {
-    base::RunLoop run_loop;
-    [storage retrieveImageWithSnapshotID:
-                 [[SnapshotIDWrapper alloc]
-                     initWithSnapshotID:SnapshotID(SessionID::NewUnique().id())]
+    [storage retrieveImageWithSnapshotID:NewSnapshotID()
+                            snapshotKind:SnapshotKindColor
                               completion:base::CallbackToBlock(
                                              base::IgnoreArgs<UIImage*>(
                                                  run_loop.QuitClosure()))];
@@ -576,7 +175,7 @@
       return;
     }
 
-    for (auto [snapshot_id, _] : test_images_) {
+    for (SnapshotIDWrapper* snapshot_id in test_images_) {
       [snapshot_storage_ removeImageWithSnapshotID:snapshot_id];
     }
 
@@ -584,7 +183,7 @@
 
     __block BOOL foundImage = NO;
     __block NSUInteger numCallbacks = 0;
-    for (auto [snapshot_id, _] : test_images_) {
+    for (SnapshotIDWrapper* snapshot_id in test_images_) {
       const NSURL* url =
           [snapshot_storage_ imagePathWithSnapshotID:snapshot_id];
 
@@ -594,6 +193,7 @@
 
       // Check that the snapshot is not in the dictionary.
       [snapshot_storage_ retrieveImageWithSnapshotID:snapshot_id
+                                        snapshotKind:SnapshotKindColor
                                           completion:^(UIImage* image) {
                                             ++numCallbacks;
                                             if (image) {
@@ -605,7 +205,7 @@
     // Expect that all the callbacks ran and that none retrieved an image.
     FlushRunLoops(snapshot_storage_);
 
-    EXPECT_EQ(test_images_.size(), numCallbacks);
+    EXPECT_EQ(test_images_.count, numCallbacks);
     EXPECT_FALSE(foundImage);
   }
 
@@ -614,14 +214,15 @@
   // written to disk.
   void LoadAllColorImagesIntoCache(bool waitForFilesOnDisk) {
     // Put color images in the storage.
-    for (auto [snapshot_id, image] : test_images_) {
-      @autoreleasepool {
-        [snapshot_storage_ setImage:image snapshotID:snapshot_id];
+    @autoreleasepool {
+      for (SnapshotIDWrapper* snapshot_id in test_images_) {
+        UIImage* image = test_images_[snapshot_id];
+        [snapshot_storage_ setImage:image withSnapshotID:snapshot_id];
       }
     }
     if (waitForFilesOnDisk) {
       FlushRunLoops(snapshot_storage_);
-      for (auto [snapshot_id, _] : test_images_) {
+      for (SnapshotIDWrapper* snapshot_id in test_images_) {
         // Check that images are on the disk.
         const NSURL* url =
             [snapshot_storage_ imagePathWithSnapshotID:snapshot_id];
@@ -633,24 +234,30 @@
 
   web::WebTaskEnvironment task_environment_;
   base::ScopedTempDir scoped_temp_directory_;
-  SnapshotStorage* snapshot_storage_;
-  std::map<SnapshotIDWrapper*, UIImage*> test_images_;
+  id<SnapshotStorage> snapshot_storage_;
+  LegacySnapshotLRUCache* legacy_lru_cache_;
+  SnapshotLRUCache* lru_cache_;
+  NSMutableDictionary<SnapshotIDWrapper*, UIImage*>* test_images_;
 };
 
+INSTANTIATE_TEST_SUITE_P(,
+                         SnapshotStorageTest,
+                         testing::Values(SnapshotStorageKind::kLegacy,
+                                         SnapshotStorageKind::kSwift));
+
 // This test simply put all snapshots in the storage and then gets them back.
 // As the snapshots are kept in memory, the same pointer can be retrieved.
-TEST_F(SnapshotStorageTest, ReadAndWriteCache) {
+TEST_P(SnapshotStorageTest, ReadAndWriteCache) {
   ASSERT_TRUE(CreateSnapshotStorage());
-  SnapshotStorage* storage = GetSnapshotStorage();
-
-  NSUInteger expectedCacheSize = MIN(kSnapshotCount, [storage lruCacheMaxSize]);
+  id<SnapshotStorage> storage = GetSnapshotStorage();
 
   // Put all images to the cache.
   {
     NSUInteger inserted_images = 0;
-    for (auto [snapshot_id, image] : test_images_) {
-      [storage setImage:image snapshotID:snapshot_id];
-      if (++inserted_images == expectedCacheSize) {
+    for (SnapshotIDWrapper* snapshot_id in test_images_) {
+      UIImage* image = test_images_[snapshot_id];
+      [storage setImage:image withSnapshotID:snapshot_id];
+      if (++inserted_images == kSnapshotCacheSize) {
         break;
       }
     }
@@ -660,16 +267,17 @@
   __block NSUInteger numberOfCallbacks = 0;
   {
     NSUInteger inserted_images = 0;
-    for (auto [snapshot_id, image] : test_images_) {
-      UIImage* expected_image = image;
+    for (SnapshotIDWrapper* snapshot_id in test_images_) {
+      UIImage* expected_image = test_images_[snapshot_id];
       [storage retrieveImageWithSnapshotID:snapshot_id
+                              snapshotKind:SnapshotKindColor
                                 completion:^(UIImage* retrieved_image) {
                                   // Images have not been removed from the
-                                  // cahce. We expect the same pointer.
+                                  // cache. We expect the same pointer.
                                   EXPECT_EQ(retrieved_image, expected_image);
                                   ++numberOfCallbacks;
                                 }];
-      if (++inserted_images == expectedCacheSize) {
+      if (++inserted_images == kSnapshotCacheSize) {
         break;
       }
     }
@@ -678,28 +286,28 @@
   // Wait until all callbacks are called.
   FlushRunLoops(storage);
 
-  EXPECT_EQ(expectedCacheSize, numberOfCallbacks);
+  EXPECT_EQ(kSnapshotCacheSize, numberOfCallbacks);
 }
 
 // This test puts all snapshots in the storage, clears the LRU cache and checks
 // if the images can be retrieved from the disk.
-TEST_F(SnapshotStorageTest, ReadAndWriteWithoutCache) {
+TEST_P(SnapshotStorageTest, ReadAndWriteWithoutCache) {
   ASSERT_TRUE(CreateSnapshotStorage());
-  SnapshotStorage* storage = GetSnapshotStorage();
+  id<SnapshotStorage> storage = GetSnapshotStorage();
 
   LoadAllColorImagesIntoCache(true);
 
   // Remove color images from LRU cache.
-  [storage clearCache];
+  ClearCache();
 
   __block NSInteger numberOfCallbacks = 0;
-
-  for (auto [snapshot_id, _] : test_images_) {
+  for (SnapshotIDWrapper* snapshot_id in test_images_) {
     // Check that images are on the disk.
     const NSURL* url = [storage imagePathWithSnapshotID:snapshot_id];
     EXPECT_TRUE([[NSFileManager defaultManager] fileExistsAtPath:[url path]]);
 
     [storage retrieveImageWithSnapshotID:snapshot_id
+                            snapshotKind:SnapshotKindColor
                               completion:^(UIImage* image) {
                                 EXPECT_TRUE(image);
                                 ++numberOfCallbacks;
@@ -714,42 +322,40 @@
 
 // Tests that an image is immediately deleted when calling
 // `-removeImageWithSnapshotID:`.
-TEST_F(SnapshotStorageTest, ImageDeleted) {
+TEST_P(SnapshotStorageTest, ImageDeleted) {
   ASSERT_TRUE(CreateSnapshotStorage());
-  SnapshotStorage* storage = GetSnapshotStorage();
+  id<SnapshotStorage> storage = GetSnapshotStorage();
 
   UIImage* image = GenerateRandomImage(0);
-  SnapshotIDWrapper* kSnapshotID = [[SnapshotIDWrapper alloc]
-      initWithSnapshotID:SnapshotID(SessionID::NewUnique().id())];
-  [storage setImage:image snapshotID:kSnapshotID];
+  SnapshotIDWrapper* new_snapshot_id = NewSnapshotID();
+  [storage setImage:image withSnapshotID:new_snapshot_id];
 
-  NSURL* url = [storage imagePathWithSnapshotID:kSnapshotID];
+  NSURL* url = [storage imagePathWithSnapshotID:new_snapshot_id];
 
   // Remove the image and ensure the file is removed.
-  [storage removeImageWithSnapshotID:kSnapshotID];
+  [storage removeImageWithSnapshotID:new_snapshot_id];
   FlushRunLoops(storage);
 
   EXPECT_FALSE([[NSFileManager defaultManager] fileExistsAtPath:[url path]]);
-  [storage retrieveImageWithSnapshotID:kSnapshotID
+  [storage retrieveImageWithSnapshotID:new_snapshot_id
+                          snapshotKind:SnapshotKindColor
                             completion:^(UIImage* retrievedImage) {
                               EXPECT_FALSE(retrievedImage);
                             }];
 }
 
 // Tests that all images are deleted when calling `-removeAllImages`.
-TEST_F(SnapshotStorageTest, AllImagesDeleted) {
+TEST_P(SnapshotStorageTest, AllImagesDeleted) {
   ASSERT_TRUE(CreateSnapshotStorage());
-  SnapshotStorage* storage = GetSnapshotStorage();
+  id<SnapshotStorage> storage = GetSnapshotStorage();
 
   UIImage* image = GenerateRandomImage(0);
-  SnapshotIDWrapper* kSnapshotID1 = [[SnapshotIDWrapper alloc]
-      initWithSnapshotID:SnapshotID(SessionID::NewUnique().id())];
-  SnapshotIDWrapper* kSnapshotID2 = [[SnapshotIDWrapper alloc]
-      initWithSnapshotID:SnapshotID(SessionID::NewUnique().id())];
-  [storage setImage:image snapshotID:kSnapshotID1];
-  [storage setImage:image snapshotID:kSnapshotID2];
-  NSURL* url1 = [storage imagePathWithSnapshotID:kSnapshotID1];
-  NSURL* url2 = [storage imagePathWithSnapshotID:kSnapshotID2];
+  SnapshotIDWrapper* new_snapshot_id1 = NewSnapshotID();
+  SnapshotIDWrapper* new_snapshot_id2 = NewSnapshotID();
+  [storage setImage:image withSnapshotID:new_snapshot_id1];
+  [storage setImage:image withSnapshotID:new_snapshot_id2];
+  NSURL* url1 = [storage imagePathWithSnapshotID:new_snapshot_id1];
+  NSURL* url2 = [storage imagePathWithSnapshotID:new_snapshot_id2];
 
   // Remove all images and ensure the files are removed.
   [storage removeAllImages];
@@ -757,42 +363,45 @@
 
   EXPECT_FALSE([[NSFileManager defaultManager] fileExistsAtPath:[url1 path]]);
   EXPECT_FALSE([[NSFileManager defaultManager] fileExistsAtPath:[url2 path]]);
-  [storage retrieveImageWithSnapshotID:kSnapshotID1
+  [storage retrieveImageWithSnapshotID:new_snapshot_id1
+                          snapshotKind:SnapshotKindColor
                             completion:^(UIImage* retrievedImage1) {
                               EXPECT_FALSE(retrievedImage1);
                             }];
-  [storage retrieveImageWithSnapshotID:kSnapshotID2
+  [storage retrieveImageWithSnapshotID:new_snapshot_id2
+                          snapshotKind:SnapshotKindColor
                             completion:^(UIImage* retrievedImage2) {
                               EXPECT_FALSE(retrievedImage2);
                             }];
 }
 
 // Tests that observers are notified when a snapshot is storaged and removed.
-TEST_F(SnapshotStorageTest, ObserversNotifiedOnSetAndRemoveImage) {
+TEST_P(SnapshotStorageTest, ObserversNotifiedOnSetAndRemoveImage) {
   ASSERT_TRUE(CreateSnapshotStorage());
-  SnapshotStorage* storage = GetSnapshotStorage();
+  id<SnapshotStorage> storage = GetSnapshotStorage();
 
   FakeSnapshotStorageObserver* observer =
       [[FakeSnapshotStorageObserver alloc] init];
   [storage addObserver:observer];
   EXPECT_FALSE(observer.lastUpdatedID.snapshot_id.valid());
-  ASSERT_TRUE(!test_images_.empty());
+  ASSERT_NE(test_images_.count, 0u);
 
   // Check if setting a new image is notified to the observer.
-  std::pair<SnapshotIDWrapper*, UIImage*> pair = *test_images_.begin();
-  [storage setImage:pair.second snapshotID:pair.first];
-  EXPECT_EQ(pair.first, observer.lastUpdatedID);
+  SnapshotIDWrapper* snapshot_id = [[test_images_ keyEnumerator] nextObject];
+  ASSERT_NSNE(snapshot_id, nil);
+
+  [storage setImage:test_images_[snapshot_id] withSnapshotID:snapshot_id];
+  EXPECT_NSEQ(snapshot_id, observer.lastUpdatedID);
 
   // Check if removing an image is notified to the observer.
-  observer.lastUpdatedID =
-      [[SnapshotIDWrapper alloc] initWithSnapshotID:SnapshotID()];
-  [storage removeImageWithSnapshotID:pair.first];
-  EXPECT_EQ(pair.first, observer.lastUpdatedID);
+  observer.lastUpdatedID = InvalidSnapshotID();
+  [storage removeImageWithSnapshotID:snapshot_id];
+  EXPECT_NSEQ(snapshot_id, observer.lastUpdatedID);
   [storage removeObserver:observer];
 }
 
 // Tests that creating the SnapshotStorage migrates an existing legacy storage.
-TEST_F(SnapshotStorageTest, MigrateCache) {
+TEST_P(SnapshotStorageTest, MigrateCache) {
   ASSERT_TRUE(scoped_temp_directory_.CreateUniqueTempDir());
   const base::FilePath root = scoped_temp_directory_.GetPath();
 
@@ -808,9 +417,9 @@
 
   NSURL* storage_url = base::apple::FilePathToNSURL(storage_path);
   NSURL* legacy_url = base::apple::FilePathToNSURL(legacy_path);
-  SnapshotStorage* storage =
-      [[SnapshotStorage alloc] initWithStorageDirectoryUrl:storage_url
-                                        legacyDirectoryUrl:legacy_url];
+  id<SnapshotStorage> storage =
+      [[SnapshotStorageImpl alloc] initWithStorageDirectoryUrl:storage_url
+                                            legacyDirectoryUrl:legacy_url];
 
   FlushRunLoops(storage);
 
@@ -823,7 +432,7 @@
 
 // Tests that creating the SnapshotStorage simply create the storage directory
 // if the legacy path is not specified.
-TEST_F(SnapshotStorageTest, MigrateCache_EmptyLegacyPath) {
+TEST_P(SnapshotStorageTest, MigrateCache_EmptyLegacyPath) {
   ASSERT_TRUE(scoped_temp_directory_.CreateUniqueTempDir());
   const base::FilePath root = scoped_temp_directory_.GetPath();
 
@@ -832,9 +441,9 @@
 
   NSURL* storage_url = base::apple::FilePathToNSURL(storage_path);
   NSURL* legacy_url = base::apple::FilePathToNSURL(base::FilePath());
-  SnapshotStorage* storage =
-      [[SnapshotStorage alloc] initWithStorageDirectoryUrl:storage_url
-                                        legacyDirectoryUrl:legacy_url];
+  id<SnapshotStorage> storage =
+      [[SnapshotStorageImpl alloc] initWithStorageDirectoryUrl:storage_url
+                                            legacyDirectoryUrl:legacy_url];
 
   FlushRunLoops(storage);
 
@@ -843,7 +452,7 @@
 
 // Tests that creating the SnapshotStorage simply create the storage directory
 // if the legacy path does not exists.
-TEST_F(SnapshotStorageTest, MigrateCache_NoLegacyStorage) {
+TEST_P(SnapshotStorageTest, MigrateCache_NoLegacyStorage) {
   ASSERT_TRUE(scoped_temp_directory_.CreateUniqueTempDir());
   const base::FilePath root = scoped_temp_directory_.GetPath();
 
@@ -858,9 +467,9 @@
 
   NSURL* storage_url = base::apple::FilePathToNSURL(storage_path);
   NSURL* legacy_url = base::apple::FilePathToNSURL(legacy_path);
-  SnapshotStorage* storage =
-      [[SnapshotStorage alloc] initWithStorageDirectoryUrl:storage_url
-                                        legacyDirectoryUrl:legacy_url];
+  id<SnapshotStorage> storage =
+      [[SnapshotStorageImpl alloc] initWithStorageDirectoryUrl:storage_url
+                                            legacyDirectoryUrl:legacy_url];
 
   FlushRunLoops(storage);
 
@@ -870,7 +479,7 @@
 
 // Tests that creating the SnapshotStorage can fail to create the storage
 // directory and that the legacy directory is left untouch in that case.
-TEST_F(SnapshotStorageTest, MigrateCache_FailCreatingCache) {
+TEST_P(SnapshotStorageTest, MigrateCache_FailCreatingCache) {
   ASSERT_TRUE(scoped_temp_directory_.CreateUniqueTempDir());
   const base::FilePath root = scoped_temp_directory_.GetPath();
 
@@ -892,9 +501,9 @@
 
   NSURL* storage_url = base::apple::FilePathToNSURL(storage_path);
   NSURL* legacy_url = base::apple::FilePathToNSURL(base::FilePath());
-  SnapshotStorage* storage =
-      [[SnapshotStorage alloc] initWithStorageDirectoryUrl:storage_url
-                                        legacyDirectoryUrl:legacy_url];
+  id<SnapshotStorage> storage =
+      [[SnapshotStorageImpl alloc] initWithStorageDirectoryUrl:storage_url
+                                            legacyDirectoryUrl:legacy_url];
 
   FlushRunLoops(storage);
 
@@ -905,18 +514,19 @@
 
 // Tests that retrieving grey snapshot images generated by color images stored
 // in cache.
-TEST_F(SnapshotStorageTest, RetrieveGreyImageFromColorImageInMemory) {
+TEST_P(SnapshotStorageTest, RetrieveGreyImageFromColorImageInMemory) {
   ASSERT_TRUE(CreateSnapshotStorage());
   LoadAllColorImagesIntoCache(true);
 
-  SnapshotStorage* storage = GetSnapshotStorage();
+  id<SnapshotStorage> storage = GetSnapshotStorage();
   __block NSInteger numberOfCallbacks = 0;
-  for (auto [snapshot_id, _] : test_images_) {
-    [storage retrieveGreyImageWithSnapshotID:snapshot_id
-                                  completion:^(UIImage* image) {
-                                    EXPECT_TRUE(image);
-                                    ++numberOfCallbacks;
-                                  }];
+  for (SnapshotIDWrapper* snapshot_id in test_images_) {
+    [storage retrieveImageWithSnapshotID:snapshot_id
+                            snapshotKind:SnapshotKindGreyscale
+                              completion:^(UIImage* image) {
+                                EXPECT_TRUE(image);
+                                ++numberOfCallbacks;
+                              }];
   }
 
   // Wait until all callbacks are called.
@@ -927,22 +537,23 @@
 
 // Tests that retrieving grey snapshot images generated by color images stored
 // in disk.
-TEST_F(SnapshotStorageTest, RetrieveGreyImageFromColorImageInDisk) {
+TEST_P(SnapshotStorageTest, RetrieveGreyImageFromColorImageInDisk) {
   ASSERT_TRUE(CreateSnapshotStorage());
   LoadAllColorImagesIntoCache(true);
 
-  SnapshotStorage* storage = GetSnapshotStorage();
+  id<SnapshotStorage> storage = GetSnapshotStorage();
 
   // Remove color images from in-memory storage.
-  [storage clearCache];
+  ClearCache();
 
   __block NSInteger numberOfCallbacks = 0;
-  for (auto [snapshot_id, _] : test_images_) {
-    [storage retrieveGreyImageWithSnapshotID:snapshot_id
-                                  completion:^(UIImage* image) {
-                                    EXPECT_TRUE(image);
-                                    ++numberOfCallbacks;
-                                  }];
+  for (SnapshotIDWrapper* snapshot_id in test_images_) {
+    [storage retrieveImageWithSnapshotID:snapshot_id
+                            snapshotKind:SnapshotKindGreyscale
+                              completion:^(UIImage* image) {
+                                EXPECT_TRUE(image);
+                                ++numberOfCallbacks;
+                              }];
   }
 
   // Wait until all callbacks are called.
@@ -950,5 +561,3 @@
 
   EXPECT_EQ(numberOfCallbacks, kSnapshotCount);
 }
-
-}  // namespace
diff --git a/ios/chrome/browser/snapshots/model/snapshot_storage_wrapper.h b/ios/chrome/browser/snapshots/model/snapshot_storage_wrapper.h
index 4ca64ed9..223fadf 100644
--- a/ios/chrome/browser/snapshots/model/snapshot_storage_wrapper.h
+++ b/ios/chrome/browser/snapshots/model/snapshot_storage_wrapper.h
@@ -16,7 +16,7 @@
 }  // namespace base
 
 @protocol SnapshotStorageObserver;
-@class SnapshotStorage;
+@protocol SnapshotStorage;
 
 // The wrapper class for LegacySnapshotStorage and SnapshotStorage.
 // The APIs are exactly the same as LegacySnapshotStorage and the new
@@ -26,7 +26,7 @@
 // written in Swift is used by default.
 @interface SnapshotStorageWrapper : NSObject
 
-@property(readonly) SnapshotStorage* snapshotStorage;
+@property(readonly) id<SnapshotStorage> snapshotStorage;
 
 // Designated initializer. `storagePath` is the file path where all images
 // managed by this LegacySnapshotStorage are stored. `storagePath` is not
diff --git a/ios/chrome/browser/snapshots/model/snapshot_storage_wrapper.mm b/ios/chrome/browser/snapshots/model/snapshot_storage_wrapper.mm
index 7e379d2..885d0e6 100644
--- a/ios/chrome/browser/snapshots/model/snapshot_storage_wrapper.mm
+++ b/ios/chrome/browser/snapshots/model/snapshot_storage_wrapper.mm
@@ -12,9 +12,27 @@
 #import "ios/chrome/browser/snapshots/model/model_swift.h"
 #import "ios/chrome/browser/snapshots/model/snapshot_id_wrapper.h"
 
+namespace {
+
+// Converts `snapshot_id` to a SnapshotIDWrapper.
+SnapshotIDWrapper* ToWrapper(SnapshotID snapshot_id) {
+  return [[SnapshotIDWrapper alloc] initWithSnapshotID:snapshot_id];
+}
+
+// Converts `snapshot_ids` to an array of SnapshotIDWrappers.
+NSArray<SnapshotIDWrapper*>* ToWrappers(
+    const std::vector<SnapshotID> snapshot_ids) {
+  NSMutableArray<SnapshotIDWrapper*>* wrappers = [[NSMutableArray alloc] init];
+  for (SnapshotID snapshot_id : snapshot_ids) {
+    [wrappers addObject:ToWrapper(snapshot_id)];
+  }
+  return wrappers;
+}
+
+}  // namespace
+
 @implementation SnapshotStorageWrapper {
-  SnapshotStorage* _snapshotStorage;
-  LegacySnapshotStorage* _legacySnapshotStorage;
+  id<SnapshotStorage> _snapshotStorage;
 }
 
 - (instancetype)initWithStoragePath:(const base::FilePath&)storagePath
@@ -24,10 +42,10 @@
       NSURL* storageUrl = base::apple::FilePathToNSURL(storagePath);
       NSURL* legacyUrl = base::apple::FilePathToNSURL(legacyPath);
       _snapshotStorage =
-          [[SnapshotStorage alloc] initWithStorageDirectoryUrl:storageUrl
-                                            legacyDirectoryUrl:legacyUrl];
+          [[SnapshotStorageImpl alloc] initWithStorageDirectoryUrl:storageUrl
+                                                legacyDirectoryUrl:legacyUrl];
     } else {
-      _legacySnapshotStorage =
+      _snapshotStorage =
           [[LegacySnapshotStorage alloc] initWithStoragePath:storagePath
                                                   legacyPath:legacyPath];
     }
@@ -41,147 +59,71 @@
 
 - (void)retrieveImageForSnapshotID:(SnapshotID)snapshotID
                           callback:(void (^)(UIImage*))callback {
-  if (base::FeatureList::IsEnabled(kSnapshotInSwift)) {
-    CHECK(_snapshotStorage);
-    [_snapshotStorage
-        retrieveImageWithSnapshotID:[[SnapshotIDWrapper alloc]
-                                        initWithSnapshotID:snapshotID]
-                         completion:callback];
-  } else {
-    CHECK(_legacySnapshotStorage);
-    [_legacySnapshotStorage retrieveImageForSnapshotID:snapshotID
-                                              callback:callback];
-  }
+  CHECK(_snapshotStorage);
+  [_snapshotStorage retrieveImageWithSnapshotID:ToWrapper(snapshotID)
+                                   snapshotKind:SnapshotKindColor
+                                     completion:callback];
 }
 
 - (void)retrieveGreyImageForSnapshotID:(SnapshotID)snapshotID
                               callback:(void (^)(UIImage*))callback {
-  if (base::FeatureList::IsEnabled(kSnapshotInSwift)) {
-    CHECK(_snapshotStorage);
-    [_snapshotStorage
-        retrieveGreyImageWithSnapshotID:[[SnapshotIDWrapper alloc]
-                                            initWithSnapshotID:snapshotID]
-                             completion:callback];
-  } else {
-    CHECK(_legacySnapshotStorage);
-    [_legacySnapshotStorage retrieveGreyImageForSnapshotID:snapshotID
-                                                  callback:callback];
-  }
+  CHECK(_snapshotStorage);
+  [_snapshotStorage retrieveImageWithSnapshotID:ToWrapper(snapshotID)
+                                   snapshotKind:SnapshotKindGreyscale
+                                     completion:callback];
 }
 
 - (void)setImage:(UIImage*)image withSnapshotID:(SnapshotID)snapshotID {
-  if (base::FeatureList::IsEnabled(kSnapshotInSwift)) {
-    CHECK(_snapshotStorage);
-    [_snapshotStorage
-          setImage:image
-        snapshotID:[[SnapshotIDWrapper alloc] initWithSnapshotID:snapshotID]];
-  } else {
-    CHECK(_legacySnapshotStorage);
-    [_legacySnapshotStorage setImage:image withSnapshotID:snapshotID];
-  }
+  CHECK(_snapshotStorage);
+  [_snapshotStorage setImage:image withSnapshotID:ToWrapper(snapshotID)];
 }
 
 - (void)removeImageWithSnapshotID:(SnapshotID)snapshotID {
-  if (base::FeatureList::IsEnabled(kSnapshotInSwift)) {
-    CHECK(_snapshotStorage);
-    [_snapshotStorage
-        removeImageWithSnapshotID:[[SnapshotIDWrapper alloc]
-                                      initWithSnapshotID:snapshotID]];
-  } else {
-    CHECK(_legacySnapshotStorage);
-    [_legacySnapshotStorage removeImageWithSnapshotID:snapshotID];
-  }
+  CHECK(_snapshotStorage);
+  [_snapshotStorage removeImageWithSnapshotID:ToWrapper(snapshotID)];
 }
 
 - (void)removeAllImages {
-  if (base::FeatureList::IsEnabled(kSnapshotInSwift)) {
-    CHECK(_snapshotStorage);
-    [_snapshotStorage removeAllImages];
-  } else {
-    CHECK(_legacySnapshotStorage);
-    [_legacySnapshotStorage removeAllImages];
-  }
+  CHECK(_snapshotStorage);
+  [_snapshotStorage removeAllImages];
 }
 
 - (void)purgeImagesOlderThan:(base::Time)date
                      keeping:(const std::vector<SnapshotID>&)liveSnapshotIDs {
-  if (base::FeatureList::IsEnabled(kSnapshotInSwift)) {
-    CHECK(_snapshotStorage);
-    NSMutableArray<SnapshotIDWrapper*>* snapshotIDs =
-        [[NSMutableArray alloc] initWithCapacity:liveSnapshotIDs.size()];
-    for (auto& liveSnapshotID : liveSnapshotIDs) {
-      [snapshotIDs addObject:[[SnapshotIDWrapper alloc]
-                                 initWithSnapshotID:liveSnapshotID]];
-    }
-    [_snapshotStorage purgeImagesOlderThanWithThresholdDate:date.ToNSDate()
-                                            liveSnapshotIDs:snapshotIDs];
-  } else {
-    CHECK(_legacySnapshotStorage);
-    [_legacySnapshotStorage purgeImagesOlderThan:date keeping:liveSnapshotIDs];
-  }
+  CHECK(_snapshotStorage);
+  [_snapshotStorage
+      purgeImagesOlderThanWithThresholdDate:date.ToNSDate()
+                            liveSnapshotIDs:ToWrappers(liveSnapshotIDs)];
 }
 
 - (void)renameSnapshotsWithIDs:(NSArray<NSString*>*)oldIDs
                          toIDs:(const std::vector<SnapshotID>&)newIDs {
-  if (base::FeatureList::IsEnabled(kSnapshotInSwift)) {
-    CHECK(_snapshotStorage);
-    NSMutableArray<SnapshotIDWrapper*>* snapshotIDs =
-        [[NSMutableArray alloc] initWithCapacity:newIDs.size()];
-    for (auto& newID : newIDs) {
-      [snapshotIDs
-          addObject:[[SnapshotIDWrapper alloc] initWithSnapshotID:newID]];
-    }
-    [_snapshotStorage renameSnapshotsWithOldIDs:oldIDs newIDs:snapshotIDs];
-  } else {
-    CHECK(_legacySnapshotStorage);
-    [_legacySnapshotStorage renameSnapshotsWithIDs:oldIDs toIDs:newIDs];
-  }
+  CHECK(_snapshotStorage);
+  [_snapshotStorage renameSnapshotsWithOldIDs:oldIDs newIDs:ToWrappers(newIDs)];
 }
 
 - (void)migrateImageWithSnapshotID:(SnapshotID)snapshotID
                  toSnapshotStorage:(SnapshotStorageWrapper*)destinationStorage {
-  if (base::FeatureList::IsEnabled(kSnapshotInSwift)) {
-    CHECK(_snapshotStorage);
-    CHECK(destinationStorage->_snapshotStorage);
-    [_snapshotStorage
-        migrateImageWithSnapshotID:[[SnapshotIDWrapper alloc]
-                                       initWithSnapshotID:snapshotID]
-                destinationStorage:destinationStorage->_snapshotStorage];
-  } else {
-    CHECK(_legacySnapshotStorage);
-    CHECK(destinationStorage->_legacySnapshotStorage);
-    [_legacySnapshotStorage
-        migrateImageWithSnapshotID:snapshotID
-                 toSnapshotStorage:destinationStorage->_legacySnapshotStorage];
-  }
+  CHECK(_snapshotStorage);
+  CHECK(destinationStorage->_snapshotStorage);
+  [_snapshotStorage
+      migrateImageWithSnapshotID:ToWrapper(snapshotID)
+              destinationStorage:destinationStorage->_snapshotStorage];
 }
 
 - (void)addObserver:(id<SnapshotStorageObserver>)observer {
-  if (base::FeatureList::IsEnabled(kSnapshotInSwift)) {
-    CHECK(_snapshotStorage);
-    [_snapshotStorage addObserver:observer];
-  } else {
-    CHECK(_legacySnapshotStorage);
-    [_legacySnapshotStorage addObserver:observer];
-  }
+  CHECK(_snapshotStorage);
+  [_snapshotStorage addObserver:observer];
 }
 
 - (void)removeObserver:(id<SnapshotStorageObserver>)observer {
-  if (base::FeatureList::IsEnabled(kSnapshotInSwift)) {
-    CHECK(_snapshotStorage);
-    [_snapshotStorage removeObserver:observer];
-  } else {
-    CHECK(_legacySnapshotStorage);
-    [_legacySnapshotStorage removeObserver:observer];
-  }
+  CHECK(_snapshotStorage);
+  [_snapshotStorage removeObserver:observer];
 }
 
 - (void)shutdown {
-  // The new implementation doesn't have `-shutdown:`.
-  if (!base::FeatureList::IsEnabled(kSnapshotInSwift)) {
-    CHECK(_legacySnapshotStorage);
-    [_legacySnapshotStorage shutdown];
-  }
+  CHECK(_snapshotStorage);
+  [_snapshotStorage shutdown];
 }
 
 @end
diff --git a/ios/chrome/browser/snapshots/model/snapshot_swift_bridge.h b/ios/chrome/browser/snapshots/model/snapshot_swift_bridge.h
index 2408506..ff5ccbf 100644
--- a/ios/chrome/browser/snapshots/model/snapshot_swift_bridge.h
+++ b/ios/chrome/browser/snapshots/model/snapshot_swift_bridge.h
@@ -12,6 +12,7 @@
 #import "ios/chrome/browser/shared/ui/util/uikit_ui_util_bridge.h"
 #import "ios/chrome/browser/snapshots/model/features.h"
 #import "ios/chrome/browser/snapshots/model/snapshot_id_wrapper.h"
+#import "ios/chrome/browser/snapshots/model/snapshot_kind.h"
 #import "ios/chrome/browser/snapshots/model/snapshot_scale.h"
 #import "ios/chrome/browser/snapshots/model/web_state_snapshot_info.h"
 
diff --git a/ios/chrome/browser/snapshots/model/snapshot_tab_helper.mm b/ios/chrome/browser/snapshots/model/snapshot_tab_helper.mm
index 17493273..85199037 100644
--- a/ios/chrome/browser/snapshots/model/snapshot_tab_helper.mm
+++ b/ios/chrome/browser/snapshots/model/snapshot_tab_helper.mm
@@ -53,7 +53,7 @@
 void SnapshotTabHelper::SetSnapshotStorage(SnapshotStorageWrapper* wrapper) {
   if (base::FeatureList::IsEnabled(kSnapshotInSwift)) {
     CHECK(snapshot_manager_);
-    SnapshotStorage* storage = nil;
+    id<SnapshotStorage> storage = nil;
     // `wrapper` is nil when a WebState is detached.
     if (wrapper) {
       storage = wrapper.snapshotStorage;
diff --git a/ios/chrome/browser/tab_switcher/ui_bundled/tab_grid/tab_groups/create_tab_group_view_controller.mm b/ios/chrome/browser/tab_switcher/ui_bundled/tab_grid/tab_groups/create_tab_group_view_controller.mm
index 9b7970f..792c419b 100644
--- a/ios/chrome/browser/tab_switcher/ui_bundled/tab_grid/tab_groups/create_tab_group_view_controller.mm
+++ b/ios/chrome/browser/tab_switcher/ui_bundled/tab_grid/tab_groups/create_tab_group_view_controller.mm
@@ -899,7 +899,7 @@
 }
 
 - (void)keyCommand_close {
-  base::RecordAction(base::UserMetricsAction("MobileKeyCommandClose"));
+  base::RecordAction(base::UserMetricsAction(kMobileKeyCommandClose));
   [self dismissViewController];
 }
 
diff --git a/ios/chrome/browser/tab_switcher/ui_bundled/tab_grid/tab_groups/tab_group_view_controller.mm b/ios/chrome/browser/tab_switcher/ui_bundled/tab_grid/tab_groups/tab_group_view_controller.mm
index bb7d18f3..8d9f919c 100644
--- a/ios/chrome/browser/tab_switcher/ui_bundled/tab_grid/tab_groups/tab_group_view_controller.mm
+++ b/ios/chrome/browser/tab_switcher/ui_bundled/tab_grid/tab_groups/tab_group_view_controller.mm
@@ -1354,7 +1354,7 @@
 }
 
 - (void)keyCommand_close {
-  base::RecordAction(base::UserMetricsAction("MobileKeyCommandClose"));
+  base::RecordAction(base::UserMetricsAction(kMobileKeyCommandClose));
   [self didTapCloseButton];
 }
 
diff --git a/ios/chrome/browser/tab_switcher/ui_bundled/tab_grid/toolbars/BUILD.gn b/ios/chrome/browser/tab_switcher/ui_bundled/tab_grid/toolbars/BUILD.gn
index 3cf9fa6..dd3694e1 100644
--- a/ios/chrome/browser/tab_switcher/ui_bundled/tab_grid/toolbars/BUILD.gn
+++ b/ios/chrome/browser/tab_switcher/ui_bundled/tab_grid/toolbars/BUILD.gn
@@ -81,6 +81,7 @@
     ":toolbars_ui",
     "//base/test:test_support",
     "//ios/chrome/app/strings",
+    "//ios/chrome/browser/keyboard/ui_bundled",
     "//testing/gtest",
     "//ui/base",
   ]
diff --git a/ios/chrome/browser/tab_switcher/ui_bundled/tab_grid/toolbars/tab_grid_bottom_toolbar.mm b/ios/chrome/browser/tab_switcher/ui_bundled/tab_grid/toolbars/tab_grid_bottom_toolbar.mm
index 8683cb1e..56a64df 100644
--- a/ios/chrome/browser/tab_switcher/ui_bundled/tab_grid/toolbars/tab_grid_bottom_toolbar.mm
+++ b/ios/chrome/browser/tab_switcher/ui_bundled/tab_grid/toolbars/tab_grid_bottom_toolbar.mm
@@ -590,7 +590,7 @@
 }
 
 - (void)keyCommand_close {
-  base::RecordAction(base::UserMetricsAction("MobileKeyCommandClose"));
+  base::RecordAction(base::UserMetricsAction(kMobileKeyCommandClose));
   [self doneButtonTapped:nil];
 }
 
diff --git a/ios/chrome/browser/tab_switcher/ui_bundled/tab_grid/toolbars/tab_grid_toolbars_view_controllers_unittest.mm b/ios/chrome/browser/tab_switcher/ui_bundled/tab_grid/toolbars/tab_grid_toolbars_view_controllers_unittest.mm
index 4ea51759..935488b8 100644
--- a/ios/chrome/browser/tab_switcher/ui_bundled/tab_grid/toolbars/tab_grid_toolbars_view_controllers_unittest.mm
+++ b/ios/chrome/browser/tab_switcher/ui_bundled/tab_grid/toolbars/tab_grid_toolbars_view_controllers_unittest.mm
@@ -3,6 +3,7 @@
 // found in the LICENSE file.
 
 #import "base/test/metrics/user_action_tester.h"
+#import "ios/chrome/browser/keyboard/ui_bundled/UIKeyCommand+Chrome.h"
 #import "ios/chrome/browser/tab_switcher/ui_bundled/tab_grid/toolbars/tab_grid_bottom_toolbar.h"
 #import "ios/chrome/browser/tab_switcher/ui_bundled/tab_grid/toolbars/tab_grid_top_toolbar.h"
 #import "ios/chrome/grit/ios_strings.h"
@@ -88,7 +89,7 @@
   std::ignore = bottom_toolbar_;
   ExpectUMA(@"keyCommand_closeAll", "MobileKeyCommandCloseAll");
   ExpectUMA(@"keyCommand_undo", "MobileKeyCommandUndo");
-  ExpectUMA(@"keyCommand_close", "MobileKeyCommandClose");
+  ExpectUMA(@"keyCommand_close", kMobileKeyCommandClose);
 
   // Check only top toolbar.
   ExpectUMA(@"keyCommand_find", "MobileKeyCommandSearchTabs", top_toolbar_);
diff --git a/ios/chrome/browser/tab_switcher/ui_bundled/tab_grid/toolbars/tab_grid_top_toolbar.mm b/ios/chrome/browser/tab_switcher/ui_bundled/tab_grid/toolbars/tab_grid_top_toolbar.mm
index 8b57e9b..dae2664 100644
--- a/ios/chrome/browser/tab_switcher/ui_bundled/tab_grid/toolbars/tab_grid_top_toolbar.mm
+++ b/ios/chrome/browser/tab_switcher/ui_bundled/tab_grid/toolbars/tab_grid_top_toolbar.mm
@@ -638,7 +638,7 @@
 }
 
 - (void)keyCommand_close {
-  base::RecordAction(base::UserMetricsAction("MobileKeyCommandClose"));
+  base::RecordAction(base::UserMetricsAction(kMobileKeyCommandClose));
   if (_mode == TabGridMode::kSearch) {
     [self cancelSearchButtonTapped:nil];
   } else {
diff --git a/ios/chrome/browser/toolbar/ui_bundled/primary_toolbar_view_controller.mm b/ios/chrome/browser/toolbar/ui_bundled/primary_toolbar_view_controller.mm
index 60411422..1e73700 100644
--- a/ios/chrome/browser/toolbar/ui_bundled/primary_toolbar_view_controller.mm
+++ b/ios/chrome/browser/toolbar/ui_bundled/primary_toolbar_view_controller.mm
@@ -219,7 +219,7 @@
 }
 
 - (void)keyCommand_close {
-  base::RecordAction(base::UserMetricsAction("MobileKeyCommandClose"));
+  base::RecordAction(base::UserMetricsAction(kMobileKeyCommandClose));
   [self.delegate close];
 }
 
diff --git a/ios/chrome/browser/web/model/lookalike_url_app_interface.mm b/ios/chrome/browser/web/model/lookalike_url_app_interface.mm
index c581375..406112af 100644
--- a/ios/chrome/browser/web/model/lookalike_url_app_interface.mm
+++ b/ios/chrome/browser/web/model/lookalike_url_app_interface.mm
@@ -46,14 +46,6 @@
     if (response_url.path() == kLookalikePagePathForTesting) {
       GURL::Replacements safeReplacements;
       safeReplacements.SetPathStr("echo");
-      if (@available(iOS 15.1, *)) {
-      } else {
-        // Workaround https://bugs.webkit.org/show_bug.cgi?id=226323, which
-        // breaks some back/forward navigations between pages that share a
-        // renderer process. Use 'localhost' instead of '127.0.0.1' for the
-        // safe URL to prevent sharing renderer processes with unsafe URLs.
-        safeReplacements.SetHostStr("localhost");
-      }
       lookalike_container->SetLookalikeUrlInfo(
           response_url.ReplaceComponents(safeReplacements), response_url,
           lookalikes::LookalikeUrlMatchType::kSkeletonMatchTop5k);
diff --git a/ios/chrome/browser/web/model/lookalike_url_egtest.mm b/ios/chrome/browser/web/model/lookalike_url_egtest.mm
index 2caf294..44c01dc 100644
--- a/ios/chrome/browser/web/model/lookalike_url_egtest.mm
+++ b/ios/chrome/browser/web/model/lookalike_url_egtest.mm
@@ -87,17 +87,6 @@
       l10n_util::GetStringUTF8(IDS_LOOKALIKE_URL_PRIMARY_PARAGRAPH);
   _lookalikeBlockingPageNoSuggestionContent = l10n_util::GetStringUTF8(
       IDS_LOOKALIKE_URL_PRIMARY_PARAGRAPH_NO_SUGGESTED_URL);
-
-  if (@available(iOS 15.1, *)) {
-  } else {
-    // Workaround https://bugs.webkit.org/show_bug.cgi?id=226323, which breaks
-    // some back/forward navigations between pages that share a renderer
-    // process. Use 'localhost' instead of '127.0.0.1' for the safe URL to
-    // prevent sharing renderer processes with unsafe URLs.
-    GURL::Replacements replacements;
-    replacements.SetHostStr("localhost");
-    _safeURL = _safeURL.ReplaceComponents(replacements);
-  }
 }
 
 - (void)tearDownHelper {
diff --git a/ios/chrome/browser/widget_kit/model/widget_metrics_logger.swift b/ios/chrome/browser/widget_kit/model/widget_metrics_logger.swift
index 21aaf6e..61db97e 100644
--- a/ios/chrome/browser/widget_kit/model/widget_metrics_logger.swift
+++ b/ios/chrome/browser/widget_kit/model/widget_metrics_logger.swift
@@ -39,11 +39,9 @@
   /// This method is safe to call from any thread.
   @objc(logInstalledWidgets)
   public static func logInstalledWidgets() {
-    if #available(iOS 14, *) {
-      // To avoid blocking startup, perform work on a background queue.
-      queue.async {
-        logInstalledWidgets(fetcher: WidgetCenter.shared, store: UserDefaultsWidgetStore())
-      }
+    // To avoid blocking startup, perform work on a background queue.
+    queue.async {
+      logInstalledWidgets(fetcher: WidgetCenter.shared, store: UserDefaultsWidgetStore())
     }
   }
 
diff --git a/ios/chrome/common/ui/util/button_util.mm b/ios/chrome/common/ui/util/button_util.mm
index 148f764..30f8c2a 100644
--- a/ios/chrome/common/ui/util/button_util.mm
+++ b/ios/chrome/common/ui/util/button_util.mm
@@ -16,26 +16,24 @@
   UIButton* primary_blue_button = [UIButton buttonWithType:UIButtonTypeSystem];
   primary_blue_button.translatesAutoresizingMaskIntoConstraints = NO;
 
-  if (@available(iOS 15.0, *)) {
-    UIButtonConfiguration* buttonConfiguration =
-        [UIButtonConfiguration plainButtonConfiguration];
-    buttonConfiguration.contentInsets = NSDirectionalEdgeInsetsMake(
-        kButtonVerticalInsets, 0, kButtonVerticalInsets, 0);
-    buttonConfiguration.background.backgroundColor =
-        [UIColor colorNamed:kBlueColor];
-    buttonConfiguration.baseForegroundColor =
-        [UIColor colorNamed:kSolidButtonTextColor];
-    buttonConfiguration.background.cornerRadius = kPrimaryButtonCornerRadius;
+  UIButtonConfiguration* buttonConfiguration =
+      [UIButtonConfiguration plainButtonConfiguration];
+  buttonConfiguration.contentInsets = NSDirectionalEdgeInsetsMake(
+      kButtonVerticalInsets, 0, kButtonVerticalInsets, 0);
+  buttonConfiguration.background.backgroundColor =
+      [UIColor colorNamed:kBlueColor];
+  buttonConfiguration.baseForegroundColor =
+      [UIColor colorNamed:kSolidButtonTextColor];
+  buttonConfiguration.background.cornerRadius = kPrimaryButtonCornerRadius;
 
-    UIFont* font = [UIFont preferredFontForTextStyle:UIFontTextStyleHeadline];
-    NSDictionary* attributes = @{NSFontAttributeName : font};
-    NSMutableAttributedString* string =
-        [[NSMutableAttributedString alloc] initWithString:@" "];
-    [string addAttributes:attributes range:NSMakeRange(0, string.length)];
-    buttonConfiguration.attributedTitle = string;
+  UIFont* font = [UIFont preferredFontForTextStyle:UIFontTextStyleHeadline];
+  NSDictionary* attributes = @{NSFontAttributeName : font};
+  NSMutableAttributedString* string =
+      [[NSMutableAttributedString alloc] initWithString:@" "];
+  [string addAttributes:attributes range:NSMakeRange(0, string.length)];
+  buttonConfiguration.attributedTitle = string;
 
-    primary_blue_button.configuration = buttonConfiguration;
-  }
+  primary_blue_button.configuration = buttonConfiguration;
 
   if (pointer_interaction_enabled) {
     primary_blue_button.pointerInteractionEnabled = YES;
@@ -47,49 +45,43 @@
 }
 
 void SetConfigurationTitle(UIButton* button, NSString* newString) {
-  if (@available(iOS 15.0, *)) {
-    UIButtonConfiguration* buttonConfiguration = button.configuration;
-    NSMutableAttributedString* attributedString =
-        [[NSMutableAttributedString alloc]
-            initWithAttributedString:buttonConfiguration.attributedTitle];
-    [attributedString.mutableString setString:newString ? newString : @""];
-    buttonConfiguration.attributedTitle = attributedString;
-    button.configuration = buttonConfiguration;
-  }
+  UIButtonConfiguration* buttonConfiguration = button.configuration;
+  NSMutableAttributedString* attributedString =
+      [[NSMutableAttributedString alloc]
+          initWithAttributedString:buttonConfiguration.attributedTitle];
+  [attributedString.mutableString setString:newString ? newString : @""];
+  buttonConfiguration.attributedTitle = attributedString;
+  button.configuration = buttonConfiguration;
 }
 
 void SetConfigurationFont(UIButton* button, UIFont* font) {
-  if (@available(iOS 15.0, *)) {
-    UIButtonConfiguration* buttonConfiguration = button.configuration;
-    NSString* configurationString = buttonConfiguration.attributedTitle.string;
+  UIButtonConfiguration* buttonConfiguration = button.configuration;
+  NSString* configurationString = buttonConfiguration.attributedTitle.string;
 
-    if (configurationString) {
-      NSDictionary* attributes = @{NSFontAttributeName : font};
-      NSMutableAttributedString* string = [[NSMutableAttributedString alloc]
-          initWithString:configurationString];
-      [string addAttributes:attributes range:NSMakeRange(0, string.length)];
-      buttonConfiguration.attributedTitle = string;
-      button.configuration = buttonConfiguration;
-    }
+  if (configurationString) {
+    NSDictionary* attributes = @{NSFontAttributeName : font};
+    NSMutableAttributedString* string =
+        [[NSMutableAttributedString alloc] initWithString:configurationString];
+    [string addAttributes:attributes range:NSMakeRange(0, string.length)];
+    buttonConfiguration.attributedTitle = string;
+    button.configuration = buttonConfiguration;
   }
 }
 
 void UpdateButtonColorOnEnableDisable(UIButton* button) {
-  if (@available(iOS 15.0, *)) {
-    UIButtonConfiguration* buttonConfiguration = button.configuration;
-    if (button.enabled) {
-      buttonConfiguration.background.backgroundColor =
-          [UIColor colorNamed:kBlueColor];
-      buttonConfiguration.baseForegroundColor =
-          [UIColor colorNamed:kSolidButtonTextColor];
-    } else {
-      buttonConfiguration.background.backgroundColor =
-          [buttonConfiguration.background.backgroundColor
-              colorWithAlphaComponent:kDisabledButtonAlpha];
-      buttonConfiguration.baseForegroundColor =
-          [buttonConfiguration.baseForegroundColor
-              colorWithAlphaComponent:kDisabledButtonAlpha];
-    }
-    button.configuration = buttonConfiguration;
+  UIButtonConfiguration* buttonConfiguration = button.configuration;
+  if (button.enabled) {
+    buttonConfiguration.background.backgroundColor =
+        [UIColor colorNamed:kBlueColor];
+    buttonConfiguration.baseForegroundColor =
+        [UIColor colorNamed:kSolidButtonTextColor];
+  } else {
+    buttonConfiguration.background.backgroundColor =
+        [buttonConfiguration.background.backgroundColor
+            colorWithAlphaComponent:kDisabledButtonAlpha];
+    buttonConfiguration.baseForegroundColor =
+        [buttonConfiguration.baseForegroundColor
+            colorWithAlphaComponent:kDisabledButtonAlpha];
   }
+  button.configuration = buttonConfiguration;
 }
diff --git a/ios/web/navigation/navigation_manager_impl_unittest.mm b/ios/web/navigation/navigation_manager_impl_unittest.mm
index 91b02158..ca04f2e 100644
--- a/ios/web/navigation/navigation_manager_impl_unittest.mm
+++ b/ios/web/navigation/navigation_manager_impl_unittest.mm
@@ -41,6 +41,7 @@
 #import "testing/gtest_mac.h"
 #import "testing/platform_test.h"
 #import "third_party/ocmock/OCMock/OCMock.h"
+#import "third_party/ocmock/gtest_support.h"
 #import "url/scheme_host_port.h"
 #import "url/url_util.h"
 
@@ -85,9 +86,13 @@
 // Mock class for NavigationManagerDelegate.
 class MockNavigationManagerDelegate : public NavigationManagerDelegate {
  public:
-  void SetWKWebView(id web_view) { mock_web_view_ = web_view; }
+  void SetWKWebView(id web_view) {
+    EXPECT_OCMOCK_VERIFY(mock_web_view_);
+    mock_web_view_ = web_view;
+  }
   void SetWebState(WebState* web_state) { web_state_ = web_state; }
   void RemoveWebView() override {
+    EXPECT_OCMOCK_VERIFY(mock_web_view_);
     // Simulate removing the web view.
     mock_web_view_ = nil;
   }
@@ -145,6 +150,8 @@
         std::make_unique<NavigationManagerImpl>(&browser_state_, &delegate_);
   }
 
+  ~NavigationManagerTest() override { EXPECT_OCMOCK_VERIFY(mock_web_view_); }
+
   NavigationManagerImpl* navigation_manager() { return manager_.get(); }
 
   MockNavigationManagerDelegate& navigation_manager_delegate() {
@@ -2531,7 +2538,7 @@
 
   [mock_wk_list_ setCurrentURL:@"http://www.2.com"];
   manager_->CommitPendingItem();
-  OCMExpect([mock_web_view_ URL])
+  OCMStub([mock_web_view_ URL])
       .andReturn([[NSURL alloc] initWithString:@"http://www.2.com"]);
 
   const NavigationItem* last_committed_item_2 =
diff --git a/ios/web/web_state/ui/crw_web_controller.mm b/ios/web/web_state/ui/crw_web_controller.mm
index fc435831..8a09931 100644
--- a/ios/web/web_state/ui/crw_web_controller.mm
+++ b/ios/web/web_state/ui/crw_web_controller.mm
@@ -83,14 +83,6 @@
              base::FEATURE_DISABLED_BY_DEFAULT);
 }  // namespace
 
-// TODO(crbug.com/40746865): Allow usage of iOS15 interactionState on iOS 14 SDK
-// based builds.
-#if !defined(__IPHONE_15_0) || __IPHONE_OS_VERSION_MAX_ALLOWED < __IPHONE_15_0
-@interface WKWebView (Additions)
-@property(nonatomic, nullable, copy) id interactionState;
-@end
-#endif
-
 @interface CRWWebController () <CRWWKNavigationHandlerDelegate,
                                 CRWEditMenuBuilder,
                                 CRWInputViewProvider,
diff --git a/ios/web/web_state/ui/crw_web_view_scroll_view_proxy_unittest.mm b/ios/web/web_state/ui/crw_web_view_scroll_view_proxy_unittest.mm
index 10955df..ac6f0ef 100644
--- a/ios/web/web_state/ui/crw_web_view_scroll_view_proxy_unittest.mm
+++ b/ios/web/web_state/ui/crw_web_view_scroll_view_proxy_unittest.mm
@@ -69,12 +69,20 @@
 class CRWWebViewScrollViewProxyTest : public PlatformTest {
  protected:
   void SetUp() override {
+    PlatformTest::SetUp();
     mock_underlying_scroll_view_ = OCMClassMock([UIScrollView class]);
     web_view_scroll_view_proxy_ = [[CRWWebViewScrollViewProxy alloc] init];
   }
+
+  void TearDown() override {
+    EXPECT_OCMOCK_VERIFY(mock_underlying_scroll_view_);
+    PlatformTest::TearDown();
+  }
+
   ~CRWWebViewScrollViewProxyTest() override {
     [web_view_scroll_view_proxy_ setScrollView:nil];
   }
+
   id mock_underlying_scroll_view_;
   CRWWebViewScrollViewProxy* web_view_scroll_view_proxy_;
 };
@@ -84,7 +92,7 @@
   OCMExpect([static_cast<UIScrollView*>(mock_underlying_scroll_view_)
       setDelegate:web_view_scroll_view_proxy_.delegateProxy]);
   [web_view_scroll_view_proxy_ setScrollView:mock_underlying_scroll_view_];
-  EXPECT_OCMOCK_VERIFY(mock_underlying_scroll_view_);
+  EXPECT_OCMOCK_VERIFY((id)mock_underlying_scroll_view_);
 }
 
 // Tests that setting 2 scroll views consecutively, clears the delegate of the
@@ -250,7 +258,7 @@
 
   [web_view_scroll_view_proxy_ setScrollView:mock_underlying_scroll_view_];
 
-  EXPECT_OCMOCK_VERIFY(mock_underlying_scroll_view_);
+  EXPECT_OCMOCK_VERIFY((id)mock_underlying_scroll_view_);
 }
 
 // Tests that CRWWebViewScrollViewProxy returns the correct property values when
@@ -271,7 +279,7 @@
 
   [web_view_scroll_view_proxy_ setScrollView:mock_underlying_scroll_view_];
 
-  EXPECT_OCMOCK_VERIFY(mock_underlying_scroll_view_);
+  EXPECT_OCMOCK_VERIFY((id)mock_underlying_scroll_view_);
 }
 
 // Tests releasing a scroll view when none is owned by the
@@ -290,7 +298,7 @@
           UIScrollViewContentInsetAdjustmentNever]);
   [web_view_scroll_view_proxy_ setContentInsetAdjustmentBehavior:
                                    UIScrollViewContentInsetAdjustmentNever];
-  EXPECT_OCMOCK_VERIFY(mock_underlying_scroll_view_);
+  EXPECT_OCMOCK_VERIFY((id)mock_underlying_scroll_view_);
 }
 
 // Tests that -setContentInsetAdjustmentBehavior: works even if it is called
@@ -306,7 +314,7 @@
                                    UIScrollViewContentInsetAdjustmentNever];
   [web_view_scroll_view_proxy_ setScrollView:mock_underlying_scroll_view_];
 
-  EXPECT_OCMOCK_VERIFY(mock_underlying_scroll_view_);
+  EXPECT_OCMOCK_VERIFY((id)mock_underlying_scroll_view_);
 }
 
 // Tests that -setClipsToBounds: works even if it is called before setting the
@@ -318,7 +326,7 @@
   [web_view_scroll_view_proxy_ setClipsToBounds:YES];
   [web_view_scroll_view_proxy_ setScrollView:mock_underlying_scroll_view_];
 
-  EXPECT_OCMOCK_VERIFY(mock_underlying_scroll_view_);
+  EXPECT_OCMOCK_VERIFY((id)mock_underlying_scroll_view_);
 }
 
 // Tests that frame changes are communicated to observers.
@@ -336,8 +344,9 @@
   OCMExpect([mock_delegate
       webViewScrollViewFrameDidChange:web_view_scroll_view_proxy_]);
   underlying_scroll_view.frame = CGRectMake(1, 2, 3, 4);
-  EXPECT_OCMOCK_VERIFY(mock_delegate);
+  EXPECT_OCMOCK_VERIFY((id)mock_delegate);
   [web_view_scroll_view_proxy_ setScrollView:nil];
+  EXPECT_OCMOCK_VERIFY((id)mock_delegate);
 }
 
 // Tests that contentInset changes are communicated to observers.
@@ -355,8 +364,9 @@
   OCMExpect([mock_delegate
       webViewScrollViewDidResetContentInset:web_view_scroll_view_proxy_]);
   underlying_scroll_view.contentInset = UIEdgeInsetsMake(0, 1, 2, 3);
-  EXPECT_OCMOCK_VERIFY(mock_delegate);
+  EXPECT_OCMOCK_VERIFY((id)mock_delegate);
   [web_view_scroll_view_proxy_ setScrollView:nil];
+  EXPECT_OCMOCK_VERIFY((id)mock_delegate);
 }
 
 // Verifies that method calls to -asUIScrollView are simply forwarded to the
@@ -382,6 +392,7 @@
   EXPECT_OCMOCK_VERIFY((id)mock_underlying_scroll_view_);
 
   [web_view_scroll_view_proxy_ setScrollView:nil];
+  EXPECT_OCMOCK_VERIFY((id)print_formatter_mock);
 }
 
 // Verifies that method calls to -asUIScrollView are no-op if the underlying
@@ -470,6 +481,7 @@
 
   EXPECT_OCMOCK_VERIFY(static_cast<id>(mock_proxy_delegate));
   [web_view_scroll_view_proxy_ setScrollView:nil];
+  EXPECT_OCMOCK_VERIFY((id)mock_view);
 }
 
 // Tests delegate method forwarding to [web_view_scroll_view_proxy_
@@ -501,6 +513,7 @@
 
   EXPECT_OCMOCK_VERIFY(static_cast<id>(mock_proxy_delegate));
   [web_view_scroll_view_proxy_ setScrollView:nil];
+  EXPECT_OCMOCK_VERIFY((id)mock_view);
 }
 
 // Tests delegate method forwarding to [web_view_scroll_view_proxy_
@@ -526,6 +539,7 @@
                         withView:mock_view];
 
   [web_view_scroll_view_proxy_ setScrollView:nil];
+  EXPECT_OCMOCK_VERIFY((id)mock_view);
 }
 
 // Tests delegate method forwarding to [web_view_scroll_view_proxy_
@@ -582,6 +596,7 @@
   EXPECT_OCMOCK_VERIFY(static_cast<id>(observer));
   [web_view_scroll_view_proxy_ removeObserver:observer
                                    forKeyPath:@"contentOffset"];
+  EXPECT_OCMOCK_VERIFY((id)observer);
 }
 
 // Verifies that a key-value observer is kept after the underlying scroll view
diff --git a/ios_internal b/ios_internal
index 9359be0..e8a7152 160000
--- a/ios_internal
+++ b/ios_internal
@@ -1 +1 @@
-Subproject commit 9359be07f1fa746ee3d0332c9292639e6c5effcf
+Subproject commit e8a715242397f0240c9fbf1a0e3724167a78d435
diff --git a/net/quic/quic_context.h b/net/quic/quic_context.h
index e2c1caa..15a5ead 100644
--- a/net/quic/quic_context.h
+++ b/net/quic/quic_context.h
@@ -227,7 +227,7 @@
   bool delay_main_job_with_available_spdy_session = false;
 
   // If true, ALPS uses new codepoint to negotiates application settings.
-  bool use_new_alps_codepoint = false;
+  bool use_new_alps_codepoint = true;
 
   // If true, parse received ORIGIN frame.
   bool enable_origin_frame = true;
diff --git a/net/server/http_server_unittest.cc b/net/server/http_server_unittest.cc
index 5119baa..6be49f25 100644
--- a/net/server/http_server_unittest.cc
+++ b/net/server/http_server_unittest.cc
@@ -2,11 +2,6 @@
 // Use of this source code is governed by a BSD-style license that can be
 // found in the LICENSE file.
 
-#ifdef UNSAFE_BUFFERS_BUILD
-// TODO(crbug.com/40284755): Remove this and spanify to fix the errors.
-#pragma allow_unsafe_buffers
-#endif
-
 #include "net/server/http_server.h"
 
 #include <stdint.h>
@@ -1044,9 +1039,10 @@
       return ERR_IO_PENDING;
     }
     DCHECK_GT(buf_len, 0);
-    int read_len =
-        std::min(static_cast<int>(pending_read_data_.size()), buf_len);
-    memcpy(buf->data(), pending_read_data_.data(), read_len);
+    size_t read_len =
+        std::min(pending_read_data_.size(), static_cast<size_t>(buf_len));
+    buf->span().copy_prefix_from(
+        base::as_byte_span(pending_read_data_).first(read_len));
     pending_read_data_.erase(0, read_len);
     return read_len;
   }
@@ -1062,17 +1058,20 @@
   }
   int SetSendBufferSize(int32_t size) override { return ERR_NOT_IMPLEMENTED; }
 
-  void DidRead(const char* data, int data_len) {
+  void DidRead(base::span<const char> data) {
     if (!read_buf_.get()) {
-      pending_read_data_.append(data, data_len);
+      pending_read_data_.append(data.begin(), data.end());
       return;
     }
-    int read_len = std::min(data_len, read_buf_len_);
-    memcpy(read_buf_->data(), data, read_len);
-    pending_read_data_.assign(data + read_len, data_len - read_len);
+    size_t read_len =
+        std::min(data.size(), base::checked_cast<size_t>(read_buf_len_));
+    base::span<const uint8_t> callback_portion =
+        base::as_bytes(data.take_first(read_len));
+    read_buf_->span().copy_prefix_from(callback_portion);
+    pending_read_data_.assign(data.begin(), data.end());
     read_buf_ = nullptr;
     read_buf_len_ = 0;
-    std::move(read_callback_).Run(read_len);
+    std::move(read_callback_).Run(base::checked_cast<int>(read_len));
   }
 
  private:
@@ -1094,9 +1093,12 @@
       "SomeHeader: 1\r\n"
       "Content-Length: %" PRIuS "\r\n\r\n%s",
       body.length(), body.c_str());
-  socket_ptr->DidRead(request_text.c_str(), request_text.length() - 2);
+  base::span<const char> request_span(request_text);
+  auto [before_blankline, blankline] =
+      request_span.split_at(request_span.size() - 2);
+  socket_ptr->DidRead(before_blankline);
   ASSERT_FALSE(HasRequest());
-  socket_ptr->DidRead(request_text.c_str() + request_text.length() - 2, 2);
+  socket_ptr->DidRead(blankline);
   ASSERT_TRUE(HasRequest());
   ASSERT_EQ(body, WaitForRequest().info.data);
 }
diff --git a/net/test/spawned_test_server/local_test_server_posix.cc b/net/test/spawned_test_server/local_test_server_posix.cc
index e82e95d..7a0e629 100644
--- a/net/test/spawned_test_server/local_test_server_posix.cc
+++ b/net/test/spawned_test_server/local_test_server_posix.cc
@@ -2,18 +2,15 @@
 // Use of this source code is governed by a BSD-style license that can be
 // found in the LICENSE file.
 
-#ifdef UNSAFE_BUFFERS_BUILD
-// TODO(crbug.com/40284755): Remove this and spanify to fix the errors.
-#pragma allow_unsafe_buffers
-#endif
-
 #include "net/test/spawned_test_server/local_test_server.h"
 
 #include <poll.h>
+#include <stdint.h>
 
 #include <vector>
 
 #include "base/command_line.h"
+#include "base/containers/span.h"
 #include "base/files/file_util.h"
 #include "base/files/scoped_file.h"
 #include "base/logging.h"
@@ -61,12 +58,11 @@
   std::string port_string_;
 };
 
-// Given a file descriptor, reads into |buffer| until |bytes_max|
-// bytes has been read or an error has been encountered.  Returns true
-// if the read was successful.
-bool ReadData(int fd, ssize_t bytes_max, uint8_t* buffer) {
-  ssize_t bytes_read = 0;
-  while (bytes_read < bytes_max) {
+// Given a file descriptor, reads into |buffer| until it's full or an error has
+// been encountered.  Returns true if the read was successful.
+bool ReadData(int fd, base::span<uint8_t> buffer) {
+  size_t initial_size = buffer.size();
+  while (!buffer.empty()) {
     struct pollfd poll_fds[1];
 
     poll_fds[0].fd = fd;
@@ -76,19 +72,19 @@
     // Each test itself has its own timeout, so no need to use one here.
     int rv = HANDLE_EINTR(poll(poll_fds, 1, -1));
     if (rv == 0) {
-      LOG(ERROR) << "poll() timed out; bytes_read=" << bytes_read;
+      LOG(ERROR) << "poll() timed out; bytes_read="
+                 << (initial_size - buffer.size());
       return false;
     } else if (rv < 0) {
       PLOG(ERROR) << "poll() failed for child file descriptor; bytes_read="
-                  << bytes_read;
+                  << (initial_size - buffer.size());
       return false;
     }
 
-    ssize_t num_bytes = HANDLE_EINTR(read(fd, buffer + bytes_read,
-                                          bytes_max - bytes_read));
+    ssize_t num_bytes = HANDLE_EINTR(read(fd, buffer.data(), buffer.size()));
     if (num_bytes <= 0)
       return false;
-    bytes_read += num_bytes;
+    buffer.take_first(static_cast<size_t>(num_bytes));
   }
   return true;
 }
@@ -158,14 +154,12 @@
   base::ScopedFD our_fd(child_fd_.release());
 
   uint32_t server_data_len = 0;
-  if (!ReadData(our_fd.get(), sizeof(server_data_len),
-                reinterpret_cast<uint8_t*>(&server_data_len))) {
+  if (!ReadData(our_fd.get(), base::byte_span_from_ref(server_data_len))) {
     LOG(ERROR) << "Could not read server_data_len";
     return false;
   }
   std::string server_data(server_data_len, '\0');
-  if (!ReadData(our_fd.get(), server_data_len,
-                reinterpret_cast<uint8_t*>(&server_data[0]))) {
+  if (!ReadData(our_fd.get(), base::as_writable_byte_span(server_data))) {
     LOG(ERROR) << "Could not read server_data (" << server_data_len
                << " bytes)";
     return false;
diff --git a/net/test/test_doh_server.cc b/net/test/test_doh_server.cc
index 9ea8373..63b012c 100644
--- a/net/test/test_doh_server.cc
+++ b/net/test/test_doh_server.cc
@@ -2,11 +2,6 @@
 // Use of this source code is governed by a BSD-style license that can be
 // found in the LICENSE file.
 
-#ifdef UNSAFE_BUFFERS_BUILD
-// TODO(crbug.com/390223051): Remove C-library calls to fix the errors.
-#pragma allow_unsafe_libc_calls
-#endif
-
 #include "net/test/test_doh_server.h"
 
 #include <string.h>
@@ -189,7 +184,7 @@
 
   // Parse the DNS query.
   auto query_buf = base::MakeRefCounted<IOBufferWithSize>(query.size());
-  memcpy(query_buf->data(), query.data(), query.size());
+  query_buf->span().copy_from(base::as_byte_span(query));
   DnsQuery dns_query(std::move(query_buf));
   if (!dns_query.Parse(query.size())) {
     return MakeHttpErrorResponse(HTTP_BAD_REQUEST, "invalid DNS query");
diff --git a/services/preferences/tracked/interceptable_pref_filter_unittest.cc b/services/preferences/tracked/interceptable_pref_filter_unittest.cc
index b3cb426d..38bd960 100644
--- a/services/preferences/tracked/interceptable_pref_filter_unittest.cc
+++ b/services/preferences/tracked/interceptable_pref_filter_unittest.cc
@@ -32,6 +32,8 @@
         .Run(std::move(pref_store_contents), prefs_altered);
   }
 
+  void SetPrefService(PrefService* pref_service) override {}
+
   base::WeakPtr<InterceptablePrefFilter> AsWeakPtr() override {
     return weak_ptr_factory_.GetWeakPtr();
   }
diff --git a/services/preferences/tracked/pref_hash_filter.cc b/services/preferences/tracked/pref_hash_filter.cc
index 38611ec..d1c1c4e 100644
--- a/services/preferences/tracked/pref_hash_filter.cc
+++ b/services/preferences/tracked/pref_hash_filter.cc
@@ -136,6 +136,13 @@
   DCHECK(changed_paths_.empty());
 }
 
+void PrefHashFilter::SetPrefService(PrefService* pref_service) {
+  DCHECK_CALLED_ON_VALID_SEQUENCE(sequence_checker_);
+  // This should only be set once, shortly after construction.
+  DCHECK(!pref_service_);
+  pref_service_ = pref_service;
+}
+
 // static
 void PrefHashFilter::RegisterProfilePrefs(
     user_prefs::PrefRegistrySyncable* registry) {
diff --git a/services/preferences/tracked/pref_hash_filter.h b/services/preferences/tracked/pref_hash_filter.h
index 046541d9..ff7dcbd 100644
--- a/services/preferences/tracked/pref_hash_filter.h
+++ b/services/preferences/tracked/pref_hash_filter.h
@@ -105,6 +105,10 @@
   static void SetDeprecatedPrefsForTesting(
       const std::vector<const char*>& deprecated_prefs);
 
+  // Sets the PrefService that owns this filter. This must be called after
+  // construction and before any deferred tasks can run that might need it.
+  void SetPrefService(PrefService* pref_service) override;
+
  private:
   // InterceptablePrefFilter implementation.
   void FinalizeFilterOnLoad(
@@ -167,7 +171,13 @@
   // FilterSerializeData.
   ChangedPathsMap changed_paths_;
 
-  base::WeakPtrFactory<InterceptablePrefFilter> weak_ptr_factory_{this};
+  SEQUENCE_CHECKER(sequence_checker_);
+
+  // A raw pointer to the PrefService that owns this filter. This is safe
+  // because the PrefService is guaranteed to outlive this filter.
+  raw_ptr<PrefService> pref_service_ = nullptr;
+
+  base::WeakPtrFactory<PrefHashFilter> weak_ptr_factory_{this};
 };
 
 #endif  // SERVICES_PREFERENCES_TRACKED_PREF_HASH_FILTER_H_
diff --git a/services/preferences/tracked/tracked_preferences_migration_unittest.cc b/services/preferences/tracked/tracked_preferences_migration_unittest.cc
index 4abfcf36..7b65cfe 100644
--- a/services/preferences/tracked/tracked_preferences_migration_unittest.cc
+++ b/services/preferences/tracked/tracked_preferences_migration_unittest.cc
@@ -55,6 +55,8 @@
                           base::OnceCallback<void(bool success)>());
   }
 
+  void SetPrefService(PrefService* pref_service) override {}
+
  private:
   // InterceptablePrefFilter implementation.
   void FinalizeFilterOnLoad(
diff --git a/services/tracing/perfetto/consumer_host_unittest.cc b/services/tracing/perfetto/consumer_host_unittest.cc
index 8ec64b9c..b5588c07 100644
--- a/services/tracing/perfetto/consumer_host_unittest.cc
+++ b/services/tracing/perfetto/consumer_host_unittest.cc
@@ -453,7 +453,6 @@
         trace_config.add_data_sources()->mutable_config();
     trace_event_config->set_name(data_source_name);
     trace_event_config->set_target_buffer(0);
-    trace_event_config->mutable_chrome_config()->set_client_priority(priority);
 
     return trace_config;
   }
diff --git a/services/tracing/public/mojom/chrome_config_mojom_traits.cc b/services/tracing/public/mojom/chrome_config_mojom_traits.cc
index c8963318..69f0382 100644
--- a/services/tracing/public/mojom/chrome_config_mojom_traits.cc
+++ b/services/tracing/public/mojom/chrome_config_mojom_traits.cc
@@ -19,20 +19,8 @@
   out->set_trace_config(std::move(config));
   out->set_privacy_filtering_enabled(data.privacy_filtering_enabled());
   out->set_convert_to_legacy_json(data.convert_to_legacy_json());
-  switch (data.client_priority()) {
-    case tracing::mojom::TracingClientPriority::kBackground:
-      out->set_client_priority(perfetto::protos::gen::ChromeConfig::BACKGROUND);
-      break;
-    case tracing::mojom::TracingClientPriority::kUserInitiated:
-      out->set_client_priority(
-          perfetto::protos::gen::ChromeConfig::USER_INITIATED);
-      break;
-    case tracing::mojom::TracingClientPriority::kUnknown:
-      out->set_client_priority(perfetto::protos::gen::ChromeConfig::UNKNOWN);
-      break;
-    default:
-      NOTREACHED();
-  }
+  out->set_event_package_name_filter_enabled(
+      data.event_package_name_filter_enabled());
 
   return true;
 }
diff --git a/services/tracing/public/mojom/chrome_config_mojom_traits.h b/services/tracing/public/mojom/chrome_config_mojom_traits.h
index 2f22c5a..9c381cbe 100644
--- a/services/tracing/public/mojom/chrome_config_mojom_traits.h
+++ b/services/tracing/public/mojom/chrome_config_mojom_traits.h
@@ -32,18 +32,9 @@
     return src.convert_to_legacy_json();
   }
 
-  static tracing::mojom::TracingClientPriority client_priority(
+  static bool event_package_name_filter_enabled(
       const perfetto::ChromeConfig& src) {
-    switch (src.client_priority()) {
-      case perfetto::protos::gen::ChromeConfig::BACKGROUND:
-        return tracing::mojom::TracingClientPriority::kBackground;
-      case perfetto::protos::gen::ChromeConfig::USER_INITIATED:
-        return tracing::mojom::TracingClientPriority::kUserInitiated;
-      case perfetto::protos::gen::ChromeConfig::UNKNOWN:
-        return tracing::mojom::TracingClientPriority::kUnknown;
-      default:
-        NOTREACHED();
-    }
+    return src.event_package_name_filter_enabled();
   }
 
   static bool Read(tracing::mojom::ChromeConfigDataView data,
diff --git a/services/tracing/public/mojom/perfetto_service.mojom b/services/tracing/public/mojom/perfetto_service.mojom
index 017cd638..49398697 100644
--- a/services/tracing/public/mojom/perfetto_service.mojom
+++ b/services/tracing/public/mojom/perfetto_service.mojom
@@ -101,8 +101,8 @@
   // format.
   bool convert_to_legacy_json;
 
-  // Priority of the tracing session.
-  TracingClientPriority client_priority;
+  //  When enabled, event names should not contain package names.
+  bool event_package_name_filter_enabled;
 };
 
 enum ConsoleOutput {
diff --git a/services/viz/public/cpp/gpu/BUILD.gn b/services/viz/public/cpp/gpu/BUILD.gn
index 5c18e3d..8e7f63d 100644
--- a/services/viz/public/cpp/gpu/BUILD.gn
+++ b/services/viz/public/cpp/gpu/BUILD.gn
@@ -28,7 +28,6 @@
 
   deps = [
     "//base",
-    "//gpu",
     "//gpu/command_buffer/client",
     "//gpu/command_buffer/client:gles2_cmd_helper",
     "//gpu/command_buffer/client:gles2_implementation",
diff --git a/services/viz/public/cpp/gpu/context_provider_command_buffer.cc b/services/viz/public/cpp/gpu/context_provider_command_buffer.cc
index 1dd94b5..509dc6bb 100644
--- a/services/viz/public/cpp/gpu/context_provider_command_buffer.cc
+++ b/services/viz/public/cpp/gpu/context_provider_command_buffer.cc
@@ -39,7 +39,6 @@
 #include "gpu/command_buffer/client/webgpu_implementation.h"
 #include "gpu/command_buffer/common/constants.h"
 #include "gpu/command_buffer/common/skia_utils.h"
-#include "gpu/command_buffer/service/gpu_switches.h"
 #include "gpu/config/skia_limits.h"
 #include "gpu/ipc/client/client_shared_image_interface.h"
 #include "gpu/ipc/client/command_buffer_proxy_impl.h"
diff --git a/testing/buildbot/filters/ozone-linux.browser_tests_mutter.filter b/testing/buildbot/filters/ozone-linux.browser_tests_mutter.filter
index 6cd7119..bc9cfca 100644
--- a/testing/buildbot/filters/ozone-linux.browser_tests_mutter.filter
+++ b/testing/buildbot/filters/ozone-linux.browser_tests_mutter.filter
@@ -63,3 +63,8 @@
 -ServiceWorkerSubScopeWorkerTrackingBrowserTest.StoppingSubScopeWorkerDoesNotAffectExtensionWorker
 
 -TabRestoreTest.RestoreGroupWithUnloadHandlerRejected
+
+# TODO(crbug.com/334413759) The test fails due to a DCHECK in
+# wm::FocusController only on the try bots with OzoneBubblesUsePlatformWidgets
+# enabled.
+-PermissionElementBrowserTest.TabSwitchingClosesPrompt
diff --git a/testing/buildbot/filters/ozone-linux.interactive_ui_tests_wayland.filter b/testing/buildbot/filters/ozone-linux.interactive_ui_tests_wayland.filter
index 87d0c53..dc0c336 100644
--- a/testing/buildbot/filters/ozone-linux.interactive_ui_tests_wayland.filter
+++ b/testing/buildbot/filters/ozone-linux.interactive_ui_tests_wayland.filter
@@ -81,3 +81,16 @@
 
 # TODO(crbug.com/40800718): Enable once the xdg desktop portal backed implementation is in place.
 -EyeDropperViewAuraInteractiveTest.*
+
+# TODO(crbug.com/334413759) The following tests fail only on weston (and not
+# mutter) with OzoneBubblesUsePlatformWidgets enabled.
+-InteractiveBrowserTestHoverUiTest.MoveMouseHoverMultipleViews
+-InteractiveBrowserTestHoverUiTest.MoveMouseHoversView
+-MediaDialogViewBrowserTest.ClickingOnItemGoesBackToTab
+-MediaDialogViewBrowserTest.LiveCaption
+-MediaDialogViewBrowserTest.LiveCaptionProgressUpdate
+-MediaDialogViewBrowserTest.LiveCaptionShowLanguage
+-MediaDialogViewBrowserTest.LiveTranslate
+-MediaDialogViewBrowserTest.ShowsMetadataAndControlsMedia
+-MediaDialogViewBrowserTest.ShowsMetadataAndControlsMediaInRTL
+-MediaDialogViewBrowserTest.TargetLanguageDropdown
diff --git a/testing/buildbot/filters/ozone-linux.wayland_browser_tests.filter b/testing/buildbot/filters/ozone-linux.wayland_browser_tests.filter
index 379626f..99da60b1 100644
--- a/testing/buildbot/filters/ozone-linux.wayland_browser_tests.filter
+++ b/testing/buildbot/filters/ozone-linux.wayland_browser_tests.filter
@@ -41,3 +41,8 @@
 -PageInfoBubbleViewBrowserTest.FocusDoesNotReturnToContentsOnReloadPrompt
 -PageInfoBubbleViewBrowserTest.FocusReturnsToContentOnClose
 -PrintBrowserTest.PDFPluginNotKeyboardFocusable
+
+# TODO(crbug.com/334413759) The test fails due to a DCHECK in
+# wm::FocusController only on the try bots with OzoneBubblesUsePlatformWidgets
+# enabled.
+-PermissionElementBrowserTest.TabSwitchingClosesPrompt
diff --git a/testing/variations/fieldtrial_testing_config.json b/testing/variations/fieldtrial_testing_config.json
index 2598697..829a86f 100644
--- a/testing/variations/fieldtrial_testing_config.json
+++ b/testing/variations/fieldtrial_testing_config.json
@@ -9154,6 +9154,23 @@
             ]
         }
     ],
+    "EnterpriseBadgingForNtpFooter": [
+        {
+            "platforms": [
+                "linux",
+                "mac",
+                "windows"
+            ],
+            "experiments": [
+                {
+                    "name": "Enabled",
+                    "enable_features": [
+                        "EnterpriseBadgingForNtpFooter"
+                    ]
+                }
+            ]
+        }
+    ],
     "EnterpriseFileObfuscation": [
         {
             "platforms": [
@@ -12087,6 +12104,21 @@
             ]
         }
     ],
+    "IOSEnablePasswordManagerTrustedVaultWidget": [
+        {
+            "platforms": [
+                "ios"
+            ],
+            "experiments": [
+                {
+                    "name": "Enabled",
+                    "enable_features": [
+                        "IOSEnablePasswordManagerTrustedVaultWidget"
+                    ]
+                }
+            ]
+        }
+    ],
     "IOSEnterpriseRealtimeEventReporting": [
         {
             "platforms": [
@@ -24379,6 +24411,21 @@
             ]
         }
     ],
+    "TriggerPasswordResyncWhenUndecryptablePasswordsDetected": [
+        {
+            "platforms": [
+                "windows"
+            ],
+            "experiments": [
+                {
+                    "name": "Enabled",
+                    "enable_features": [
+                        "TriggerPasswordResyncWhenUndecryptablePasswordsDetected"
+                    ]
+                }
+            ]
+        }
+    ],
     "TrustSafetySentimentSurvey": [
         {
             "platforms": [
@@ -25877,26 +25924,6 @@
             ]
         }
     ],
-    "WebGPUEnableRangeAnalysisForRobustness": [
-        {
-            "platforms": [
-                "android",
-                "android_webview",
-                "chromeos",
-                "linux",
-                "mac",
-                "windows"
-            ],
-            "experiments": [
-                {
-                    "name": "Enabled",
-                    "enable_features": [
-                        "WebGPUEnableRangeAnalysisForRobustness"
-                    ]
-                }
-            ]
-        }
-    ],
     "WebGPUSupportMetrics": [
         {
             "platforms": [
diff --git a/third_party/angle b/third_party/angle
index ce156f3..10b7414 160000
--- a/third_party/angle
+++ b/third_party/angle
@@ -1 +1 @@
-Subproject commit ce156f3bc3547d7467a4b9db047b13c54e47cffd
+Subproject commit 10b7414fb5862014f6db047133fcdec0307eaa2c
diff --git a/third_party/blink/public/strings/translations/blink_strings_ca.xtb b/third_party/blink/public/strings/translations/blink_strings_ca.xtb
index 924c29a7..6be7ce5 100644
--- a/third_party/blink/public/strings/translations/blink_strings_ca.xtb
+++ b/third_party/blink/public/strings/translations/blink_strings_ca.xtb
@@ -8,7 +8,7 @@
 <translation id="1311894908970423688">El valor ha de ser <ph name="VALUE_DATE_OR_TIME" />.</translation>
 <translation id="1588438908519853928">Normal</translation>
 <translation id="1591562245178063882">Aquest mes</translation>
-<translation id="1637811476055996098">Trieu els fitxers</translation>
+<translation id="1637811476055996098">Tria els fitxers</translation>
 <translation id="1729654308190250600">Introduïu una adreça electrònica.</translation>
 <translation id="1758486001363313524">Altres...</translation>
 <translation id="1921819250265091946">dd</translation>
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 d1714b6f..f4603b9 100644
--- a/third_party/blink/renderer/core/css/style_property_serializer.cc
+++ b/third_party/blink/renderer/core/css/style_property_serializer.cc
@@ -169,7 +169,7 @@
 
   const CSSPropertyValue& property = property_set_->PropertyAt(all_index_);
   return StylePropertySerializer::PropertyValueForSerializer(
-      CSSProperty::Get(property_id).GetCSSPropertyName(), &property.Value(),
+      CSSProperty::Get(property_id).GetCSSPropertyName(), property.Value(),
       property.IsImportant());
 }
 
@@ -242,7 +242,7 @@
     return nullptr;
   }
   StylePropertySerializer::PropertyValueForSerializer value = PropertyAt(index);
-  return value.Value();
+  return &value.Value();
 }
 
 bool StylePropertySerializer::CSSPropertyValueSetForSerializer::
@@ -263,11 +263,11 @@
   if (is_not_first_decl) {
     result.Append(' ');
   }
-  const CSSValue* value = property.Value();
+  const CSSValue& value = property.Value();
   SerializeIdentifier(property.Name().ToAtomicString(), result,
                       is_not_first_decl);
   result.Append(": ");
-  result.Append(value->CssText());
+  result.Append(value.CssText());
   if (property.IsImportant()) {
     result.Append(" !important");
   }
@@ -330,7 +330,7 @@
         result.Append(GetCustomPropertyText(property, num_decls++));
         continue;
       case CSSPropertyID::kAll:
-        result.Append(GetPropertyText(name, property.Value()->CssText(),
+        result.Append(GetPropertyText(name, property.Value().CssText(),
                                       property.IsImportant(), num_decls++));
         continue;
       default:
@@ -389,7 +389,7 @@
       continue;
     }
 
-    result.Append(GetPropertyText(name, property.Value()->CssText(),
+    result.Append(GetPropertyText(name, property.Value().CssText(),
                                   property.IsImportant(), num_decls++));
   }
 
@@ -462,7 +462,7 @@
 
     has_important |= value.IsImportant();
     has_non_important |= !value.IsImportant();
-    longhands[i] = value.Value();
+    longhands[i] = &value.Value();
   }
 
   if (has_important && has_non_important) {
@@ -795,7 +795,7 @@
   int found_property_index = property_set_.FindPropertyIndex(property);
   DCHECK_NE(found_property_index, -1);
 
-  const CSSValue* val = property_set_.PropertyAt(found_property_index).Value();
+  const CSSValue* val = &property_set_.PropertyAt(found_property_index).Value();
   if (property.IDEquals(CSSPropertyID::kFontStretch)) {
     const CSSValue* keyword = GetFontStretchKeyword(val);
     if (!keyword) {
@@ -1181,12 +1181,12 @@
 
   // Check that non-initial font-variant subproperties are not conflicting with
   // this serialization.
-  const CSSValue* ligatures_value = font_variant_ligatures_property.Value();
-  const CSSValue* numeric_value = font_variant_numeric_property.Value();
-  const CSSValue* east_asian_value = font_variant_east_asian_property.Value();
-  const CSSValue* feature_settings_value =
+  const CSSValue& ligatures_value = font_variant_ligatures_property.Value();
+  const CSSValue& numeric_value = font_variant_numeric_property.Value();
+  const CSSValue& east_asian_value = font_variant_east_asian_property.Value();
+  const CSSValue& feature_settings_value =
       font_feature_settings_property.Value();
-  const CSSValue* variation_settings_value =
+  const CSSValue& variation_settings_value =
       font_variation_settings_property.Value();
 
   auto IsPropertyNonInitial = [](const CSSValue& value,
@@ -1196,34 +1196,34 @@
             identifier_value->GetValueID() != initial_value_id);
   };
 
-  if (IsPropertyNonInitial(*ligatures_value, CSSValueID::kNormal) ||
-      ligatures_value->IsValueList()) {
+  if (IsPropertyNonInitial(ligatures_value, CSSValueID::kNormal) ||
+      ligatures_value.IsValueList()) {
     return g_empty_string;
   }
 
-  if (IsPropertyNonInitial(*numeric_value, CSSValueID::kNormal) ||
-      numeric_value->IsValueList()) {
+  if (IsPropertyNonInitial(numeric_value, CSSValueID::kNormal) ||
+      numeric_value.IsValueList()) {
     return g_empty_string;
   }
 
-  if (IsPropertyNonInitial(*east_asian_value, CSSValueID::kNormal) ||
-      east_asian_value->IsValueList()) {
+  if (IsPropertyNonInitial(east_asian_value, CSSValueID::kNormal) ||
+      east_asian_value.IsValueList()) {
     return g_empty_string;
   }
 
-  if (IsPropertyNonInitial(*font_kerning_property.Value(), CSSValueID::kAuto) ||
-      IsPropertyNonInitial(*font_optical_sizing_property.Value(),
+  if (IsPropertyNonInitial(font_kerning_property.Value(), CSSValueID::kAuto) ||
+      IsPropertyNonInitial(font_optical_sizing_property.Value(),
                            CSSValueID::kAuto)) {
     return g_empty_string;
   }
 
-  if (IsPropertyNonInitial(*variation_settings_value, CSSValueID::kNormal) ||
-      variation_settings_value->IsValueList()) {
+  if (IsPropertyNonInitial(variation_settings_value, CSSValueID::kNormal) ||
+      variation_settings_value.IsValueList()) {
     return g_empty_string;
   }
 
-  if (IsPropertyNonInitial(*feature_settings_value, CSSValueID::kNormal) ||
-      feature_settings_value->IsValueList()) {
+  if (IsPropertyNonInitial(feature_settings_value, CSSValueID::kNormal) ||
+      feature_settings_value.IsValueList()) {
     return g_empty_string;
   }
 
@@ -1232,9 +1232,9 @@
   DCHECK_NE(font_variant_alternates_property_index, -1);
   PropertyValueForSerializer font_variant_alternates_property =
       property_set_.PropertyAt(font_variant_alternates_property_index);
-  const CSSValue* alternates_value = font_variant_alternates_property.Value();
-  if (IsPropertyNonInitial(*alternates_value, CSSValueID::kNormal) ||
-      alternates_value->IsValueList()) {
+  const CSSValue& alternates_value = font_variant_alternates_property.Value();
+  if (IsPropertyNonInitial(alternates_value, CSSValueID::kNormal) ||
+      alternates_value.IsValueList()) {
     return g_empty_string;
   }
 
@@ -1243,7 +1243,7 @@
   DCHECK_NE(font_variant_position_property_index, -1);
   PropertyValueForSerializer font_variant_position_property =
       property_set_.PropertyAt(font_variant_position_property_index);
-  if (IsPropertyNonInitial(*font_variant_position_property.Value(),
+  if (IsPropertyNonInitial(font_variant_position_property.Value(),
                            CSSValueID::kNormal)) {
     return g_empty_string;
   }
@@ -1253,7 +1253,7 @@
     DCHECK_NE(font_variant_emoji_property_index, -1);
     PropertyValueForSerializer font_variant_emoji_property =
         property_set_.PropertyAt(font_variant_emoji_property_index);
-    if (IsPropertyNonInitial(*font_variant_emoji_property.Value(),
+    if (IsPropertyNonInitial(font_variant_emoji_property.Value(),
                              CSSValueID::kNormal)) {
       return g_empty_string;
     }
@@ -1264,9 +1264,9 @@
     DCHECK_NE(font_size_adjust_property_index, -1);
     PropertyValueForSerializer font_size_adjust_property =
         property_set_.PropertyAt(font_size_adjust_property_index);
-    const CSSValue* size_adjust_value = font_size_adjust_property.Value();
-    if (IsPropertyNonInitial(*size_adjust_value, CSSValueID::kNone) ||
-        size_adjust_value->IsNumericLiteralValue()) {
+    const CSSValue& size_adjust_value = font_size_adjust_property.Value();
+    if (IsPropertyNonInitial(size_adjust_value, CSSValueID::kNone) ||
+        size_adjust_value.IsNumericLiteralValue()) {
       return g_empty_string;
     }
   }
@@ -1295,7 +1295,7 @@
   StringBuilder result;
   AppendFontLonghandValueIfNotNormal(GetCSSPropertyFontStyle(), result);
 
-  const CSSValue* val = font_variant_caps_property.Value();
+  const CSSValue& val = font_variant_caps_property.Value();
   auto* identifier_value = DynamicTo<CSSIdentifierValue>(val);
   if (identifier_value &&
       (identifier_value->GetValueID() != CSSValueID::kSmallCaps &&
@@ -1313,12 +1313,12 @@
   if (!result.empty()) {
     result.Append(' ');
   }
-  result.Append(font_size_property.Value()->CssText());
+  result.Append(font_size_property.Value().CssText());
   AppendFontLonghandValueIfNotNormal(GetCSSPropertyLineHeight(), result);
   if (!result.empty()) {
     result.Append(' ');
   }
-  result.Append(font_family_property.Value()->CssText());
+  result.Append(font_family_property.Value().CssText());
   return result.ReleaseString();
 }
 
@@ -1381,11 +1381,11 @@
   PropertyValueForSerializer font_synthesis_small_caps_property =
       property_set_.PropertyAt(font_synthesis_small_caps_property_index);
 
-  const CSSValue* font_synthesis_weight_value =
+  const CSSValue& font_synthesis_weight_value =
       font_synthesis_weight_property.Value();
-  const CSSValue* font_synthesis_style_value =
+  const CSSValue& font_synthesis_style_value =
       font_synthesis_style_property.Value();
-  const CSSValue* font_synthesis_small_caps_value =
+  const CSSValue& font_synthesis_small_caps_value =
       font_synthesis_small_caps_property.Value();
 
   auto* font_synthesis_weight_identifier_value =
diff --git a/third_party/blink/renderer/core/css/style_property_serializer.h b/third_party/blink/renderer/core/css/style_property_serializer.h
index 257a205..24c8ce2e 100644
--- a/third_party/blink/renderer/core/css/style_property_serializer.h
+++ b/third_party/blink/renderer/core/css/style_property_serializer.h
@@ -127,23 +127,21 @@
 
    public:
     explicit PropertyValueForSerializer(const CSSPropertyValue& property)
-        : value_(&property.Value()),
+        : value_(property.Value()),
           name_(property.Name()),
           is_important_(property.IsImportant()) {}
 
-    // TODO(sashab): Make this take a const CSSValue&.
     PropertyValueForSerializer(const CSSPropertyName& name,
-                               const CSSValue* value,
+                               const CSSValue& value,
                                bool is_important)
         : value_(value), name_(name), is_important_(is_important) {}
 
     const CSSPropertyName& Name() const { return name_; }
-    const CSSValue* Value() const { return value_; }
+    const CSSValue& Value() const { return value_; }
     bool IsImportant() const { return is_important_; }
-    bool IsValid() const { return value_; }
 
    private:
-    const CSSValue* value_;
+    const CSSValue& value_;
     CSSPropertyName name_;
     bool is_important_;
   };
diff --git a/third_party/blink/renderer/modules/mediastream/processed_local_audio_source.cc b/third_party/blink/renderer/modules/mediastream/processed_local_audio_source.cc
index bf4c4e6d..74940bd 100644
--- a/third_party/blink/renderer/modules/mediastream/processed_local_audio_source.cc
+++ b/third_party/blink/renderer/modules/mediastream/processed_local_audio_source.cc
@@ -524,6 +524,12 @@
 void ProcessedLocalAudioSource::ChangeSourceImpl(
     const MediaStreamDevice& new_device) {
   DCHECK(GetTaskRunner()->BelongsToCurrentThread());
+
+  // Source changes are not supported for microphone audio capture.
+  CHECK_NE(new_device.type,
+           mojom::blink::MediaStreamType::DEVICE_AUDIO_CAPTURE);
+  CHECK_NE(device().type, mojom::blink::MediaStreamType::DEVICE_AUDIO_CAPTURE);
+
   WebRtcLogMessage("ProcessedLocalAudioSource::ChangeSourceImpl(new_device = " +
                    new_device.id + ")");
   EnsureSourceIsStopped();
diff --git a/third_party/blink/renderer/modules/peerconnection/peer_connection_util.cc b/third_party/blink/renderer/modules/peerconnection/peer_connection_util.cc
index 6639a32..9cf8167a 100644
--- a/third_party/blink/renderer/modules/peerconnection/peer_connection_util.cc
+++ b/third_party/blink/renderer/modules/peerconnection/peer_connection_util.cc
@@ -17,6 +17,12 @@
 
 namespace {
 
+// Time between the NTP and Unix epochs.
+//   unix_time = ntp_time - kNtpUnixEpochOffset
+//   ntp_time = unix_time + kNtpUnixEpochOffset
+constexpr base::TimeDelta kNtpUnixEpochOffset =
+    base::Milliseconds(2208988800000);
+
 Performance* GetPerformanceFromExecutionContext(ExecutionContext* context) {
   if (auto* window = DynamicTo<LocalDOMWindow>(context)) {
     return DOMWindowPerformance::performance(*window);
@@ -26,9 +32,18 @@
   NOTREACHED();
 }
 
+DOMHighResTimeStamp RTCEncodedFrameTimestampFromUnixRealClock(
+    ExecutionContext* context,
+    base::TimeDelta time_since_unix_epoch) {
+  Performance* performance = GetPerformanceFromExecutionContext(context);
+  return Performance::ClampTimeResolution(
+      time_since_unix_epoch - base::Milliseconds(performance->timeOrigin()),
+      performance->CrossOriginIsolatedCapability());
+}
+
 }  // namespace
 
-DOMHighResTimeStamp CalculateRTCEncodedFrameTimestamp(
+DOMHighResTimeStamp RTCEncodedFrameTimestampFromTimeTicks(
     ExecutionContext* context,
     base::TimeTicks timestamp) {
   Performance* performance = GetPerformanceFromExecutionContext(context);
@@ -38,11 +53,35 @@
       performance->CrossOriginIsolatedCapability());
 }
 
-base::TimeTicks RTCEncodedFrameTimestampToTimeTicks(
+DOMHighResTimeStamp RTCEncodedFrameTimestampFromCaptureTimeInfo(
     ExecutionContext* context,
-    DOMHighResTimeStamp timestamp) {
+    CaptureTimeInfo capture_time_info) {
+  switch (capture_time_info.clock_type) {
+    case CaptureTimeInfo::ClockType::kTimeTicks:
+      return RTCEncodedFrameTimestampFromTimeTicks(
+          context, base::TimeTicks() + capture_time_info.capture_time);
+    case CaptureTimeInfo::ClockType::kNtpRealClock:
+      base::TimeDelta time_since_unix_epoch =
+          capture_time_info.capture_time - kNtpUnixEpochOffset;
+      return RTCEncodedFrameTimestampFromUnixRealClock(context,
+                                                       time_since_unix_epoch);
+  }
+}
+
+base::TimeDelta RTCEncodedFrameTimestampToCaptureTime(
+    ExecutionContext* context,
+    DOMHighResTimeStamp timestamp,
+    CaptureTimeInfo::ClockType clock_type) {
   Performance* performance = GetPerformanceFromExecutionContext(context);
-  return performance->GetTimeOriginInternal() + base::Milliseconds(timestamp);
+  switch (clock_type) {
+    case CaptureTimeInfo::ClockType::kTimeTicks:
+      return (performance->GetTimeOriginInternal() +
+              base::Milliseconds(timestamp))
+          .since_origin();
+    case CaptureTimeInfo::ClockType::kNtpRealClock:
+      return kNtpUnixEpochOffset +
+             base::Milliseconds(performance->timeOrigin() + timestamp);
+  }
 }
 
 DOMHighResTimeStamp CalculateRTCEncodedFrameTimeDelta(
diff --git a/third_party/blink/renderer/modules/peerconnection/peer_connection_util.h b/third_party/blink/renderer/modules/peerconnection/peer_connection_util.h
index 34d8ff1..563c0a6 100644
--- a/third_party/blink/renderer/modules/peerconnection/peer_connection_util.h
+++ b/third_party/blink/renderer/modules/peerconnection/peer_connection_util.h
@@ -7,23 +7,51 @@
 
 #include <stdint.h>
 
+#include "base/time/time.h"
 #include "third_party/blink/renderer/core/dom/dom_high_res_time_stamp.h"
 #include "third_party/blink/renderer/core/execution_context/execution_context.h"
 #include "third_party/blink/renderer/modules/modules_export.h"
 
 namespace blink {
 
+// This structure represents a capture time as a timestamp together with the
+// type of clock from where there timestamp comes.
+// Different sources of frames use different clocks (e.g., monotonic pausable
+// vs. adjustable wall clock), with different epochs (e.g., Unix, NTP,
+// system startup).
+struct CaptureTimeInfo {
+  enum class ClockType {
+    // The timestamp uses a monotonic base::TimeTicks clock and is relative to
+    // the same platform-dependent epoch as base::TimeTicks::Now().
+    kTimeTicks,
+
+    // The timestamp uses a real-world clock and is relative to the NTP epoch
+    // (1900-01-01). Commonly used by incoming frames using the the
+    // abs-capture-time RTP Header extension.
+    kNtpRealClock
+  };
+
+  base::TimeDelta capture_time;
+  ClockType clock_type;
+};
+
 // Returns a DOMHighResTimeStamp relative to Performance.timeOrigin.
 MODULES_EXPORT DOMHighResTimeStamp
-CalculateRTCEncodedFrameTimestamp(ExecutionContext*, base::TimeTicks);
+RTCEncodedFrameTimestampFromTimeTicks(ExecutionContext*, base::TimeTicks);
 
-// Converts DOMHighResTimeStamp relative to Performance.timeOrigin to a
-// base::TimeTicks.
-MODULES_EXPORT base::TimeTicks RTCEncodedFrameTimestampToTimeTicks(
+// Returns a DOMHighResTimeStamp relative to Performance.timeOrigin.
+MODULES_EXPORT DOMHighResTimeStamp
+RTCEncodedFrameTimestampFromCaptureTimeInfo(ExecutionContext*, CaptureTimeInfo);
+
+// Converts a DOMHighResTimeStamp relative to Performance.timeOrigin to a
+// base::TimeDelta representing the time elapsed since the epoch associated
+// with the given clock type.
+MODULES_EXPORT base::TimeDelta RTCEncodedFrameTimestampToCaptureTime(
     ExecutionContext*,
-    DOMHighResTimeStamp);
+    DOMHighResTimeStamp,
+    CaptureTimeInfo::ClockType);
 
-// Returns a DOMHighResTimeStamp equivalent to the given delta
+// Returns a DOMHighResTimeStamp equivalent to the given delta.
 MODULES_EXPORT DOMHighResTimeStamp
 CalculateRTCEncodedFrameTimeDelta(ExecutionContext*, base::TimeDelta);
 
diff --git a/third_party/blink/renderer/modules/peerconnection/peer_connection_util_test.cc b/third_party/blink/renderer/modules/peerconnection/peer_connection_util_test.cc
index bb09792f..5f6b5c5e 100644
--- a/third_party/blink/renderer/modules/peerconnection/peer_connection_util_test.cc
+++ b/third_party/blink/renderer/modules/peerconnection/peer_connection_util_test.cc
@@ -6,6 +6,8 @@
 
 #include <cstdint>
 #include <cstdlib>
+#include <ctime>
+#include <vector>
 
 #include "base/time/time.h"
 #include "testing/gtest/include/gtest/gtest.h"
@@ -18,73 +20,110 @@
 
 namespace {
 
-base::TimeTicks GetTimeOrigin(V8TestingScope& v8_scope) {
+base::TimeTicks GetTimeOriginTimeTicks(V8TestingScope& v8_scope) {
   return DOMWindowPerformance::performance(v8_scope.GetWindow())
       ->GetTimeOriginInternal();
 }
 
+DOMHighResTimeStamp GetTimeOriginNtp(V8TestingScope& v8_scope) {
+  return DOMWindowPerformance::performance(v8_scope.GetWindow())->timeOrigin() +
+         2208988800000.0;
+}
+
 }  // namespace
 
-TEST(PeerConnectionUtilTest, RTCEncodedFrameTimestampToTimeTicks) {
+TEST(PeerConnectionUtilTest, RTCEncodedFrameTimestampFromTimeTicks) {
   test::TaskEnvironment task_environment;
   V8TestingScope v8_scope;
-  EXPECT_EQ(RTCEncodedFrameTimestampToTimeTicks(v8_scope.GetExecutionContext(),
-                                                123.456),
-            GetTimeOrigin(v8_scope) + base::Microseconds(123456));
-}
-
-TEST(PeerConnectionUtilTest, RTCEncodedFrameTimestampToTimeTicksNegative) {
-  test::TaskEnvironment task_environment;
-  V8TestingScope v8_scope;
-  EXPECT_EQ(RTCEncodedFrameTimestampToTimeTicks(v8_scope.GetExecutionContext(),
-                                                -123.456),
-            GetTimeOrigin(v8_scope) + base::Microseconds(-123456));
-}
-
-TEST(PeerConnectionUtilTest, CalculateRTCEncodedFrameTimestamp) {
-  test::TaskEnvironment task_environment;
-  V8TestingScope v8_scope;
-  // Use a timestamp precise to 0.1ms, since that is the precision of
+  // Use timestamps precise to 0.1ms, since that is the precision of
   // DOMHighResTimeStamp without cross-origin isolation.
-  DOMHighResTimeStamp timestamp = CalculateRTCEncodedFrameTimestamp(
-      v8_scope.GetExecutionContext(),
-      GetTimeOrigin(v8_scope) + base::Microseconds(123400));
-  // Use 0.2ms as tolerance to account for the 0.1ms precision.
-  EXPECT_LE(std::abs(timestamp - 123.4), 0.2);
-}
-
-TEST(PeerConnectionUtilTest, CalculateRTCEncodedFrameTimestampNegative) {
-  test::TaskEnvironment task_environment;
-  V8TestingScope v8_scope;
-  // Use a timestamp precise to 0.1ms, since that is the precision of
-  // DOMHighResTimeStamp without cross-origin isolation.
-  DOMHighResTimeStamp timestamp = CalculateRTCEncodedFrameTimestamp(
-      v8_scope.GetExecutionContext(),
-      GetTimeOrigin(v8_scope) + base::Microseconds(-123400));
-  // Use 0.2ms as tolerance to account for the 0.1ms precision.
-  EXPECT_LE(timestamp - -123.4, 0.2);
+  std::vector<double> timestamps_ms = {123.4, -123.4};
+  for (double timestamp_ms : timestamps_ms) {
+    DOMHighResTimeStamp timestamp = RTCEncodedFrameTimestampFromTimeTicks(
+        v8_scope.GetExecutionContext(),
+        GetTimeOriginTimeTicks(v8_scope) + base::Milliseconds(timestamp_ms));
+    // Use 0.2ms as tolerance to account for the 0.1ms precision.
+    EXPECT_LE(std::abs(timestamp - timestamp_ms), 0.2);
+  }
 }
 
 TEST(PeerConnectionUtilTest, CalculateRTCEncodedFrameTimeDelta) {
   test::TaskEnvironment task_environment;
   V8TestingScope v8_scope;
-  // Use a timestamp precise to 0.1ms, since that is the precision of
+  // Use timestamps precise to 0.1ms, since that is the precision of
   // DOMHighResTimeStamp without cross-origin isolation.
-  DOMHighResTimeStamp timestamp = CalculateRTCEncodedFrameTimeDelta(
-      v8_scope.GetExecutionContext(), base::Microseconds(123400));
-  // Use 0.2ms as tolerance to account for the 0.1ms precision.
-  EXPECT_LE(timestamp - 123.4, 0.2);
+  std::vector<double> timedeltas_ms = {123.4, -123.4};
+  for (double timedelta_ms : timedeltas_ms) {
+    DOMHighResTimeStamp timestamp = CalculateRTCEncodedFrameTimeDelta(
+        v8_scope.GetExecutionContext(), base::Milliseconds(timedelta_ms));
+    // Use 0.2ms as tolerance to account for the 0.1ms precision.
+    EXPECT_LE(std::abs(timestamp - timedelta_ms), 0.2);
+  }
 }
 
-TEST(PeerConnectionUtilTest, CalculateRTCEncodedFrameTimeDeltaNegative) {
+TEST(PeerConnectionUtilTest,
+     RTCEncodedFrameTimestampFromCaptureTimeInfoTimeTicks) {
   test::TaskEnvironment task_environment;
   V8TestingScope v8_scope;
-  // Use a timestamp precise to 0.1ms, since that is the precision of
-  // DOMHighResTimeStamp without cross-origin isolation.
-  DOMHighResTimeStamp timestamp = CalculateRTCEncodedFrameTimeDelta(
-      v8_scope.GetExecutionContext(), base::Microseconds(-123400));
-  // Use 0.2ms as tolerance to account for the 0.1ms precision.
-  EXPECT_LE(timestamp - -123.4, 0.2);
+  std::vector<double> timestamps_ms = {123.4, -123.4};
+  for (double timestamp_ms : timestamps_ms) {
+    DOMHighResTimeStamp timestamp = RTCEncodedFrameTimestampFromCaptureTimeInfo(
+        v8_scope.GetExecutionContext(),
+        {.capture_time = (GetTimeOriginTimeTicks(v8_scope) +
+                          base::Milliseconds(timestamp_ms))
+                             .since_origin(),
+         .clock_type = CaptureTimeInfo::ClockType::kTimeTicks});
+    // Use 0.2ms as tolerance to account for the 0.1ms precision.
+    EXPECT_LE(std::abs(timestamp - timestamp_ms), 0.2);
+  }
+}
+
+TEST(PeerConnectionUtilTest, RTCEncodedFrameTimestampFromCaptureTimeInfoNtp) {
+  test::TaskEnvironment task_environment;
+  V8TestingScope v8_scope;
+  std::vector<double> timestamps_ms = {123.4, -123.4};
+  for (double timestamp_ms : timestamps_ms) {
+    DOMHighResTimeStamp timestamp = RTCEncodedFrameTimestampFromCaptureTimeInfo(
+        v8_scope.GetExecutionContext(),
+        {.capture_time = base::Milliseconds(timestamp_ms),
+         .clock_type = CaptureTimeInfo::ClockType::kNtpRealClock});
+    DOMHighResTimeStamp expected_timestamp =
+        timestamp_ms - GetTimeOriginNtp(v8_scope);
+    // Use 0.2ms as tolerance to account for the 0.1ms precision.
+    EXPECT_LE(std::abs(timestamp - expected_timestamp), 0.2);
+  }
+}
+
+TEST(PeerConnectionUtilTest, RTCEncodedFrameTimestampToCaptureTimeTimeTicks) {
+  test::TaskEnvironment task_environment;
+  V8TestingScope v8_scope;
+  std::vector<double> timestamps_ms = {123.456, -123.456};
+  for (double timestamp_ms : timestamps_ms) {
+    base::TimeDelta capture_time = RTCEncodedFrameTimestampToCaptureTime(
+        v8_scope.GetExecutionContext(), timestamp_ms,
+        CaptureTimeInfo::ClockType::kTimeTicks);
+    base::TimeDelta expected_time =
+        GetTimeOriginTimeTicks(v8_scope).since_origin() +
+        base::Milliseconds(timestamp_ms);
+    EXPECT_LE((capture_time - expected_time).magnitude(),
+              base::Milliseconds(0.2));
+  }
+}
+
+TEST(PeerConnectionUtilTest, RTCEncodedFrameTimestampToCaptureTimeNtp) {
+  test::TaskEnvironment task_environment;
+  V8TestingScope v8_scope;
+  std::vector<double> timestamps_ms = {123.456, -123.456};
+  for (double timestamp_ms : timestamps_ms) {
+    base::TimeDelta capture_time = RTCEncodedFrameTimestampToCaptureTime(
+        v8_scope.GetExecutionContext(), timestamp_ms,
+        CaptureTimeInfo::ClockType::kNtpRealClock);
+    base::TimeDelta expected_time =
+        base::Milliseconds(GetTimeOriginNtp(v8_scope)) +
+        base::Milliseconds(timestamp_ms);
+    EXPECT_LE((capture_time - expected_time).magnitude(),
+              base::Milliseconds(0.2));
+  }
 }
 
 TEST(PeerConnectionUtilTest, AudioLevelConversionRangeEndpoints) {
diff --git a/third_party/blink/renderer/modules/peerconnection/rtc_encoded_audio_frame.cc b/third_party/blink/renderer/modules/peerconnection/rtc_encoded_audio_frame.cc
index 53efc3ab..b43b730 100644
--- a/third_party/blink/renderer/modules/peerconnection/rtc_encoded_audio_frame.cc
+++ b/third_party/blink/renderer/modules/peerconnection/rtc_encoded_audio_frame.cc
@@ -171,13 +171,13 @@
   if (RuntimeEnabledFeatures::RTCEncodedFrameTimestampsEnabled()) {
     if (std::optional<base::TimeTicks> receive_time =
             delegate_->ReceiveTime()) {
-      metadata->setReceiveTime(
-          CalculateRTCEncodedFrameTimestamp(execution_context, *receive_time));
+      metadata->setReceiveTime(RTCEncodedFrameTimestampFromTimeTicks(
+          execution_context, *receive_time));
     }
-    if (std::optional<base::TimeTicks> capture_time =
+    if (std::optional<CaptureTimeInfo> capture_time_info =
             delegate_->CaptureTime()) {
-      metadata->setCaptureTime(
-          CalculateRTCEncodedFrameTimestamp(execution_context, *capture_time));
+      metadata->setCaptureTime(RTCEncodedFrameTimestampFromCaptureTimeInfo(
+          execution_context, *capture_time_info));
     }
     if (std::optional<base::TimeDelta> sender_capture_time_offset =
             delegate_->SenderCaptureTimeOffset()) {
@@ -202,27 +202,7 @@
         validation.error_msg);
   }
 
-  std::optional<uint8_t> payload_type;
-  if (metadata->hasPayloadType()) {
-    payload_type = metadata->payloadType();
-  }
-
-  std::optional<webrtc::Timestamp> capture_time;
-  if (metadata->hasCaptureTime()) {
-    capture_time = webrtc::Timestamp::Micros(
-        RTCEncodedFrameTimestampToTimeTicks(execution_context,
-                                            metadata->captureTime())
-            .since_origin()
-            .InMicroseconds());
-  }
-
-  std::optional<double> linear_audio_level;
-  if (metadata->hasAudioLevel()) {
-    linear_audio_level = metadata->audioLevel();
-  }
-
-  return delegate_->SetWebRtcFrameMetadata(
-      metadata->rtpTimestamp(), payload_type, capture_time, linear_audio_level);
+  return delegate_->SetWebRtcFrameMetadata(execution_context, metadata);
 }
 
 void RTCEncodedAudioFrame::setMetadata(ExecutionContext* execution_context,
diff --git a/third_party/blink/renderer/modules/peerconnection/rtc_encoded_audio_frame_delegate.cc b/third_party/blink/renderer/modules/peerconnection/rtc_encoded_audio_frame_delegate.cc
index fe89f8f..2dfb2c4 100644
--- a/third_party/blink/renderer/modules/peerconnection/rtc_encoded_audio_frame_delegate.cc
+++ b/third_party/blink/renderer/modules/peerconnection/rtc_encoded_audio_frame_delegate.cc
@@ -16,6 +16,8 @@
 #include "third_party/blink/renderer/platform/bindings/v8_binding.h"
 #include "third_party/blink/renderer/platform/peerconnection/webrtc_util.h"
 #include "third_party/webrtc/api/frame_transformer_factory.h"
+#include "third_party/webrtc/api/frame_transformer_interface.h"
+#include "third_party/webrtc/api/units/timestamp.h"
 
 namespace blink {
 
@@ -74,10 +76,8 @@
 
 base::expected<void, String>
 RTCEncodedAudioFrameDelegate::SetWebRtcFrameMetadata(
-    uint32_t rtp_timestamp,
-    std::optional<uint8_t> payload_type,
-    std::optional<webrtc::Timestamp> capture_time,
-    std::optional<double> linear_audio_level) {
+    ExecutionContext* context,
+    const RTCEncodedAudioFrameMetadata* metadata) {
   base::AutoLock lock(lock_);
   if (!webrtc_frame_) {
     return base::unexpected("Underlying webrtc frame doesn't exist.");
@@ -85,29 +85,55 @@
 
   // Payload type always has a current value. The new metadata must match it if
   // SetPayloadType is not supported.
-  if (payload_type.has_value() &&
-      payload_type != webrtc_frame_->GetPayloadType() &&
-      !webrtc_frame_->CanSetPayloadType()) {
-    return base::unexpected("payloadType cannot be modified");
-  }
-
-  if (capture_time != webrtc_frame_->CaptureTime() &&
-      !webrtc_frame_->CanSetCaptureTime()) {
-    return base::unexpected("captureTime cannot be modified");
+  if (metadata->hasPayloadType()) {
+    if (metadata->payloadType() != webrtc_frame_->GetPayloadType() &&
+        !webrtc_frame_->CanSetPayloadType()) {
+      return base::unexpected("payloadType cannot be modified");
+    }
+    // Payload types must be in the [0,127] range, but values in the [64,95]
+    // range are reserved for RCTP. For additional details, see
+    // https://tools.ietf.org/html/rfc5761#section-4
+    if ((metadata->payloadType() >= 64u && metadata->payloadType() <= 95u) ||
+        metadata->payloadType() > 127u) {
+      return base::unexpected("invalid payloadType value");
+    }
   }
 
   std::optional<uint8_t> audio_level_dbov;
-  if (linear_audio_level.has_value()) {
-    audio_level_dbov = FromLinearAudioLevel(*linear_audio_level);
+  if (metadata->hasAudioLevel()) {
+    audio_level_dbov = FromLinearAudioLevel(metadata->audioLevel());
   }
   if (audio_level_dbov != webrtc_frame_->AudioLevel() &&
       !webrtc_frame_->CanSetAudioLevel()) {
     return base::unexpected("audioLevel cannot be modified");
   }
 
-  webrtc_frame_->SetRTPTimestamp(rtp_timestamp);
-  if (payload_type.has_value() && webrtc_frame_->CanSetPayloadType()) {
-    webrtc_frame_->SetPayloadType(*payload_type);
+  std::optional<webrtc::Timestamp> capture_time;
+  if (metadata->hasCaptureTime()) {
+    CaptureTimeInfo::ClockType clock_type;
+    switch (webrtc_frame_->GetDirection()) {
+      case webrtc::TransformableFrameInterface::Direction::kReceiver:
+        clock_type = CaptureTimeInfo::ClockType::kNtpRealClock;
+        break;
+      case webrtc::TransformableFrameInterface::Direction::kSender:
+        clock_type = CaptureTimeInfo::ClockType::kTimeTicks;
+        break;
+      case webrtc::TransformableFrameInterface::Direction::kUnknown:
+        return base::unexpected("captureTime not supported for this frame");
+    }
+    base::TimeDelta capture_time_delta = RTCEncodedFrameTimestampToCaptureTime(
+        context, metadata->captureTime(), clock_type);
+    capture_time =
+        webrtc::Timestamp::Micros(capture_time_delta.InMicroseconds());
+  }
+  if (capture_time != webrtc_frame_->CaptureTime() &&
+      !webrtc_frame_->CanSetCaptureTime()) {
+    return base::unexpected("captureTime cannot be modified");
+  }
+
+  webrtc_frame_->SetRTPTimestamp(metadata->rtpTimestamp());
+  if (metadata->hasPayloadType() && webrtc_frame_->CanSetPayloadType()) {
+    webrtc_frame_->SetPayloadType(metadata->payloadType());
   }
   if (webrtc_frame_->CanSetCaptureTime()) {
     webrtc_frame_->SetCaptureTime(capture_time);
@@ -154,17 +180,26 @@
   return ConvertToOptionalTimeTicks(webrtc_frame_->ReceiveTime());
 }
 
-std::optional<base::TimeTicks> RTCEncodedAudioFrameDelegate::CaptureTime()
+std::optional<CaptureTimeInfo> RTCEncodedAudioFrameDelegate::CaptureTime()
     const {
   base::AutoLock lock(lock_);
-  if (!webrtc_frame_) {
+  if (!webrtc_frame_ || !webrtc_frame_->CaptureTime()) {
     return std::nullopt;
   }
-  return (webrtc_frame_->GetDirection() ==
-          webrtc::TransformableFrameInterface::Direction::kReceiver)
-             ? ConvertToOptionalTimeTicks(webrtc_frame_->CaptureTime(),
-                                          WebRTCFrameNtpEpoch())
-             : ConvertToOptionalTimeTicks(webrtc_frame_->CaptureTime());
+  CaptureTimeInfo::ClockType clock_type;
+  switch (webrtc_frame_->GetDirection()) {
+    case webrtc::TransformableFrameInterface::Direction::kReceiver:
+      clock_type = CaptureTimeInfo::ClockType::kNtpRealClock;
+      break;
+    case webrtc::TransformableFrameInterface::Direction::kSender:
+      clock_type = CaptureTimeInfo::ClockType::kTimeTicks;
+      break;
+    case webrtc::TransformableFrameInterface::Direction::kUnknown:
+      return std::nullopt;
+  }
+  return CaptureTimeInfo(
+      {.capture_time = base::Microseconds(webrtc_frame_->CaptureTime()->us()),
+       .clock_type = clock_type});
 }
 
 std::optional<base::TimeDelta>
diff --git a/third_party/blink/renderer/modules/peerconnection/rtc_encoded_audio_frame_delegate.h b/third_party/blink/renderer/modules/peerconnection/rtc_encoded_audio_frame_delegate.h
index eb526dd..f958ee2 100644
--- a/third_party/blink/renderer/modules/peerconnection/rtc_encoded_audio_frame_delegate.h
+++ b/third_party/blink/renderer/modules/peerconnection/rtc_encoded_audio_frame_delegate.h
@@ -13,7 +13,10 @@
 #include "base/time/time.h"
 #include "base/types/expected.h"
 #include "third_party/blink/renderer/bindings/core/v8/serialization/serialized_script_value.h"
+#include "third_party/blink/renderer/bindings/modules/v8/v8_rtc_encoded_audio_frame_metadata.h"
+#include "third_party/blink/renderer/core/execution_context/execution_context.h"
 #include "third_party/blink/renderer/modules/modules_export.h"
+#include "third_party/blink/renderer/modules/peerconnection/peer_connection_util.h"
 #include "third_party/blink/renderer/platform/wtf/thread_safe_ref_counted.h"
 #include "third_party/webrtc/api/frame_transformer_interface.h"
 #include "third_party/webrtc/api/units/timestamp.h"
@@ -36,18 +39,19 @@
   uint32_t RtpTimestamp() const;
   DOMArrayBuffer* CreateDataBuffer(v8::Isolate* isolate) const;
   void SetData(const DOMArrayBuffer* data);
+
+  // This method can only be called from the main thread.
   base::expected<void, String> SetWebRtcFrameMetadata(
-      uint32_t rtp_timestamp,
-      std::optional<uint8_t> payload_type,
-      std::optional<webrtc::Timestamp> capture_time,
-      std::optional<double> linear_audio_level);
+      ExecutionContext*,
+      const RTCEncodedAudioFrameMetadata*);
+
   std::optional<uint32_t> Ssrc() const;
   std::optional<uint8_t> PayloadType() const;
   std::optional<std::string> MimeType() const;
   std::optional<uint16_t> SequenceNumber() const;
   Vector<uint32_t> ContributingSources() const;
   std::optional<base::TimeTicks> ReceiveTime() const;
-  std::optional<base::TimeTicks> CaptureTime() const;
+  std::optional<CaptureTimeInfo> CaptureTime() const;
   std::optional<base::TimeDelta> SenderCaptureTimeOffset() const;
   std::optional<double> AudioLevel() const;
   std::unique_ptr<webrtc::TransformableAudioFrameInterface> PassWebRtcFrame();
diff --git a/third_party/blink/renderer/modules/peerconnection/rtc_encoded_audio_frame_test.cc b/third_party/blink/renderer/modules/peerconnection/rtc_encoded_audio_frame_test.cc
index 9cb96b3..ed2c1f3 100644
--- a/third_party/blink/renderer/modules/peerconnection/rtc_encoded_audio_frame_test.cc
+++ b/third_party/blink/renderer/modules/peerconnection/rtc_encoded_audio_frame_test.cc
@@ -4,6 +4,8 @@
 
 #include "third_party/blink/renderer/modules/peerconnection/rtc_encoded_audio_frame.h"
 
+#include <cstdint>
+
 #include "base/test/scoped_feature_list.h"
 #include "base/time/time.h"
 #include "testing/gmock/include/gmock/gmock.h"
@@ -20,6 +22,8 @@
 #include "third_party/blink/renderer/core/typed_arrays/dom_array_buffer.h"
 #include "third_party/blink/renderer/modules/peerconnection/peer_connection_util.h"
 #include "third_party/blink/renderer/modules/peerconnection/rtc_encoded_audio_frame_delegate.h"
+#include "third_party/blink/renderer/platform/bindings/exception_code.h"
+#include "third_party/blink/renderer/platform/bindings/exception_state.h"
 #include "third_party/blink/renderer/platform/peerconnection/webrtc_util.h"
 #include "third_party/blink/renderer/platform/testing/task_environment.h"
 #include "third_party/webrtc/api/test/mock_transformable_audio_frame.h"
@@ -35,6 +39,7 @@
 using webrtc::MockTransformableAudioFrame;
 
 namespace blink {
+namespace {
 
 class RTCEncodedAudioFrameTest : public testing::Test {
   test::TaskEnvironment task_environment_;
@@ -46,6 +51,11 @@
           .InMicroseconds());
 }
 
+DOMHighResTimeStamp GetTimeOriginNtp(V8TestingScope& v8_scope) {
+  return DOMWindowPerformance::performance(v8_scope.GetWindow())->timeOrigin() +
+         2208988800000.0;
+}
+
 constexpr uint32_t kSsrc = 7;
 constexpr std::array<uint32_t, 2> kCsrcs{6, 4};
 constexpr uint8_t kPayloadType = 13;
@@ -111,9 +121,10 @@
   new_metadata->setPayloadType(kPayloadType2);
   new_metadata->setAudioLevel(ToLinearAudioLevel(kAudioLevel_dBov2));
   if (execution_context) {
-    new_metadata->setCaptureTime(CalculateRTCEncodedFrameTimestamp(
+    new_metadata->setCaptureTime(RTCEncodedFrameTimestampFromCaptureTimeInfo(
         execution_context,
-        base::TimeTicks() + base::Milliseconds(kCaptureTimeMillis2)));
+        {.capture_time = base::Milliseconds(kCaptureTimeMillis2),
+         .clock_type = CaptureTimeInfo::ClockType::kTimeTicks}));
   }
   return new_metadata;
 }
@@ -364,9 +375,73 @@
             new_frame->getMetadata(execution_context)->audioLevel());
 }
 
-double ToDOMHighResTimestamp(ExecutionContext* execution_context, int millis) {
-  return CalculateRTCEncodedFrameTimestamp(
-      execution_context, base::TimeTicks() + base::Milliseconds(millis));
+TEST_F(RTCEncodedAudioFrameTest, ConstructorWithInvalidPayloadTypeFails) {
+  V8TestingScope v8_scope;
+  std::unique_ptr<MockTransformableAudioFrame> frame =
+      std::make_unique<NiceMock<MockTransformableAudioFrame>>();
+  MockMetadata(frame.get());
+  RTCEncodedAudioFrame* encoded_frame =
+      MakeGarbageCollected<RTCEncodedAudioFrame>(std::move(frame));
+  ExecutionContext* execution_context = v8_scope.GetExecutionContext();
+  std::vector<uint8_t> invalid_payload_types;
+  // This range is reserved for RCTP.
+  // See https://tools.ietf.org/html/rfc5761#section-4
+  for (int i = 64; i <= 95; i++) {
+    invalid_payload_types.push_back(i);
+  }
+  // PayloadType is a 7-bit field, so anything > 127 is invalid.
+  for (int i = 128; i <= 255; i++) {
+    invalid_payload_types.push_back(i);
+  }
+  for (auto invalid_pt : invalid_payload_types) {
+    RTCEncodedAudioFrameMetadata* new_metadata =
+        encoded_frame->getMetadata(execution_context);
+    new_metadata->setPayloadType(invalid_pt);
+    RTCEncodedAudioFrameOptions* frame_options =
+        RTCEncodedAudioFrameOptions::Create();
+    frame_options->setMetadata(new_metadata);
+
+    DummyExceptionStateForTesting exception_state;
+    RTCEncodedAudioFrame::Create(execution_context, encoded_frame,
+                                 frame_options, exception_state);
+    EXPECT_TRUE(exception_state.HadException());
+    EXPECT_EQ(exception_state.Code(),
+              static_cast<int>(DOMExceptionCode::kInvalidModificationError));
+  }
+}
+
+TEST_F(RTCEncodedAudioFrameTest, ConstructorWithValidPayloadTypeSucceeds) {
+  V8TestingScope v8_scope;
+  std::unique_ptr<MockTransformableAudioFrame> frame =
+      std::make_unique<NiceMock<MockTransformableAudioFrame>>();
+  MockMetadata(frame.get());
+  RTCEncodedAudioFrame* encoded_frame =
+      MakeGarbageCollected<RTCEncodedAudioFrame>(std::move(frame));
+  ExecutionContext* execution_context = v8_scope.GetExecutionContext();
+  std::vector<uint8_t> valid_payload_types;
+  // This range is reserved for RCTP.
+  // See https://tools.ietf.org/html/rfc5761#section-4
+  for (int i = 0; i <= 63; i++) {
+    valid_payload_types.push_back(i);
+  }
+  for (int i = 96; i <= 127; i++) {
+    valid_payload_types.push_back(i);
+  }
+  for (auto pt : valid_payload_types) {
+    RTCEncodedAudioFrameMetadata* new_metadata =
+        encoded_frame->getMetadata(execution_context);
+    new_metadata->setPayloadType(pt);
+    RTCEncodedAudioFrameOptions* frame_options =
+        RTCEncodedAudioFrameOptions::Create();
+    frame_options->setMetadata(new_metadata);
+
+    DummyExceptionStateForTesting exception_state;
+    RTCEncodedAudioFrame* new_frame = RTCEncodedAudioFrame::Create(
+        execution_context, encoded_frame, frame_options, exception_state);
+    EXPECT_FALSE(exception_state.HadException());
+    EXPECT_TRUE(new_frame->getMetadata(execution_context)->hasPayloadType());
+    EXPECT_EQ(new_frame->getMetadata(execution_context)->payloadType(), pt);
+  }
 }
 
 TEST_F(RTCEncodedAudioFrameTest, ConstructorCopiesMetadata) {
@@ -395,9 +470,11 @@
   EXPECT_EQ("image", new_frame_metadata->mimeType());
   EXPECT_EQ(kSequenceNumber, new_frame_metadata->sequenceNumber());
   EXPECT_EQ(kRtpTimestamp, new_frame_metadata->rtpTimestamp());
-  EXPECT_EQ(
-      ToDOMHighResTimestamp(v8_scope.GetExecutionContext(), kCaptureTimeMillis),
-      new_frame_metadata->captureTime());
+  EXPECT_EQ(RTCEncodedFrameTimestampFromCaptureTimeInfo(
+                v8_scope.GetExecutionContext(),
+                {.capture_time = base::Milliseconds(kCaptureTimeMillis),
+                 .clock_type = CaptureTimeInfo::ClockType::kTimeTicks}),
+            new_frame_metadata->captureTime());
   EXPECT_EQ(ToLinearAudioLevel(kAudioLevel_dBov),
             new_frame_metadata->audioLevel());
   EXPECT_FALSE(new_frame_metadata->hasReceiveTime());
@@ -484,7 +561,7 @@
 
 TEST_F(RTCEncodedAudioFrameTest, FrameWithSenderCaptureTimeOffset) {
   V8TestingScope v8_scope;
-  double sender_capture_offsets_in_millis[] = {12, -34};
+  int sender_capture_offsets_in_millis[] = {12, -34};
   for (int offset : sender_capture_offsets_in_millis) {
     std::unique_ptr<MockTransformableAudioFrame> frame =
         std::make_unique<NiceMock<MockTransformableAudioFrame>>();
@@ -500,19 +577,14 @@
   }
 }
 
-TEST_F(RTCEncodedAudioFrameTest, FrameWithCaptureTime) {
+TEST_F(RTCEncodedAudioFrameTest, ReceiverFrameWithCaptureTime) {
   V8TestingScope v8_scope;
-  auto* performance = DOMWindowPerformance::performance(v8_scope.GetWindow());
-  const base::TimeTicks window_time_origin =
-      performance->GetTimeOriginInternal();
-  const double capture_times_in_millis[] = {12, -34};
+  const int capture_times_in_millis[] = {12, -34};
   for (int capture_time : capture_times_in_millis) {
-    base::TimeDelta ntp_capture_time = base::Milliseconds(capture_time) +
-                                       window_time_origin.since_origin() -
-                                       WebRTCFrameNtpEpoch().since_origin();
+    base::TimeDelta ntp_capture_time =
+        base::Milliseconds(GetTimeOriginNtp(v8_scope) + capture_time);
     std::unique_ptr<MockTransformableAudioFrame> frame =
         std::make_unique<NiceMock<MockTransformableAudioFrame>>();
-    // Currently, only receiver frames expose captureTime.
     ON_CALL(*frame, GetDirection)
         .WillByDefault(
             Return(webrtc::TransformableFrameInterface::Direction::kReceiver));
@@ -525,8 +597,31 @@
     RTCEncodedAudioFrameMetadata* metadata =
         encoded_frame->getMetadata(v8_scope.GetExecutionContext());
     EXPECT_TRUE(metadata->hasCaptureTime());
-    // The error is slightly more than 0.1; use 0.11 to avoid flakes.
-    EXPECT_LE(std::abs(metadata->getCaptureTimeOr(0.0) - capture_time), 0.11);
+    // The error is slightly more than 0.1; use 0.2 to avoid flakes.
+    EXPECT_LE(std::abs(metadata->captureTime() - capture_time), 0.2);
+  }
+}
+
+TEST_F(RTCEncodedAudioFrameTest, SenderFrameWithCaptureTime) {
+  V8TestingScope v8_scope;
+  const int capture_times_in_millis[] = {12, -34};
+  for (int capture_time : capture_times_in_millis) {
+    std::unique_ptr<MockTransformableAudioFrame> frame =
+        std::make_unique<NiceMock<MockTransformableAudioFrame>>();
+    ON_CALL(*frame, GetDirection)
+        .WillByDefault(
+            Return(webrtc::TransformableFrameInterface::Direction::kSender));
+    ON_CALL(*frame, CaptureTime)
+        .WillByDefault(Return(GetWebRTCTimeOrigin(&v8_scope.GetWindow()) +
+                              webrtc::TimeDelta::Millis(capture_time)));
+
+    RTCEncodedAudioFrame* encoded_frame =
+        MakeGarbageCollected<RTCEncodedAudioFrame>(std::move(frame));
+    RTCEncodedAudioFrameMetadata* metadata =
+        encoded_frame->getMetadata(v8_scope.GetExecutionContext());
+    EXPECT_TRUE(metadata->hasCaptureTime());
+    // The error is slightly more than 0.1; use 0.2 to avoid flakes.
+    EXPECT_LE(std::abs(metadata->captureTime() - capture_time), 0.2);
   }
 }
 
@@ -544,4 +639,5 @@
   EXPECT_EQ(metadata->audioLevel(), ToLinearAudioLevel(kAudioLevel_dBov));
 }
 
+}  // namespace
 }  // namespace blink
diff --git a/third_party/blink/renderer/modules/peerconnection/rtc_encoded_video_frame.cc b/third_party/blink/renderer/modules/peerconnection/rtc_encoded_video_frame.cc
index cce98a4..48ad830 100644
--- a/third_party/blink/renderer/modules/peerconnection/rtc_encoded_video_frame.cc
+++ b/third_party/blink/renderer/modules/peerconnection/rtc_encoded_video_frame.cc
@@ -6,6 +6,7 @@
 
 #include <utility>
 
+#include "base/time/time.h"
 #include "base/unguessable_token.h"
 #include "third_party/blink/public/common/features.h"
 #include "third_party/blink/renderer/bindings/modules/v8/v8_rtc_codec_specifics_vp_8.h"
@@ -214,12 +215,12 @@
     if (std::optional<base::TimeTicks> receive_time =
             delegate_->ReceiveTime()) {
       metadata->setReceiveTime(
-          CalculateRTCEncodedFrameTimestamp(context, *receive_time));
+          RTCEncodedFrameTimestampFromTimeTicks(context, *receive_time));
     }
-    if (std::optional<base::TimeTicks> capture_time =
+    if (std::optional<CaptureTimeInfo> capture_time_info =
             delegate_->CaptureTime()) {
-      metadata->setCaptureTime(
-          CalculateRTCEncodedFrameTimestamp(context, *capture_time));
+      metadata->setCaptureTime(RTCEncodedFrameTimestampFromCaptureTimeInfo(
+          context, *capture_time_info));
     }
     if (std::optional<base::TimeDelta> sender_capture_time_offset =
             delegate_->SenderCaptureTimeOffset()) {
diff --git a/third_party/blink/renderer/modules/peerconnection/rtc_encoded_video_frame_delegate.cc b/third_party/blink/renderer/modules/peerconnection/rtc_encoded_video_frame_delegate.cc
index bc474bb..0cc16cd 100644
--- a/third_party/blink/renderer/modules/peerconnection/rtc_encoded_video_frame_delegate.cc
+++ b/third_party/blink/renderer/modules/peerconnection/rtc_encoded_video_frame_delegate.cc
@@ -9,6 +9,7 @@
 
 #include "base/time/time.h"
 #include "third_party/blink/renderer/core/typed_arrays/dom_array_buffer.h"
+#include "third_party/blink/renderer/modules/peerconnection/peer_connection_util.h"
 #include "third_party/blink/renderer/platform/bindings/exception_code.h"
 #include "third_party/blink/renderer/platform/bindings/exception_state.h"
 #include "third_party/blink/renderer/platform/bindings/v8_binding.h"
@@ -112,16 +113,17 @@
   return ConvertToOptionalTimeTicks(webrtc_frame_->ReceiveTime());
 }
 
-std::optional<base::TimeTicks> RTCEncodedVideoFrameDelegate::CaptureTime()
+std::optional<CaptureTimeInfo> RTCEncodedVideoFrameDelegate::CaptureTime()
     const {
   base::AutoLock lock(lock_);
-  if (!webrtc_frame_ ||
+  if (!webrtc_frame_ || !webrtc_frame_->CaptureTime() ||
       webrtc_frame_->GetDirection() !=
           webrtc::TransformableFrameInterface::Direction::kReceiver) {
     return std::nullopt;
   }
-  return ConvertToOptionalTimeTicks(webrtc_frame_->CaptureTime(),
-                                    WebRTCFrameNtpEpoch());
+  return CaptureTimeInfo(
+      {.capture_time = base::Microseconds(webrtc_frame_->CaptureTime()->us()),
+       .clock_type = CaptureTimeInfo::ClockType::kNtpRealClock});
 }
 
 std::optional<base::TimeDelta>
diff --git a/third_party/blink/renderer/modules/peerconnection/rtc_encoded_video_frame_delegate.h b/third_party/blink/renderer/modules/peerconnection/rtc_encoded_video_frame_delegate.h
index fd82c247..5ddbcfa 100644
--- a/third_party/blink/renderer/modules/peerconnection/rtc_encoded_video_frame_delegate.h
+++ b/third_party/blink/renderer/modules/peerconnection/rtc_encoded_video_frame_delegate.h
@@ -15,6 +15,7 @@
 #include "third_party/blink/renderer/bindings/core/v8/serialization/serialized_script_value.h"
 #include "third_party/blink/renderer/bindings/modules/v8/v8_rtc_encoded_video_frame_type.h"
 #include "third_party/blink/renderer/modules/modules_export.h"
+#include "third_party/blink/renderer/modules/peerconnection/peer_connection_util.h"
 #include "third_party/blink/renderer/platform/wtf/text/wtf_string.h"
 #include "third_party/blink/renderer/platform/wtf/thread_safe_ref_counted.h"
 #include "third_party/webrtc/api/frame_transformer_interface.h"
@@ -42,7 +43,7 @@
   std::optional<std::string> MimeType() const;
   std::optional<webrtc::VideoFrameMetadata> GetMetadata() const;
   std::optional<base::TimeTicks> ReceiveTime() const;
-  std::optional<base::TimeTicks> CaptureTime() const;
+  std::optional<CaptureTimeInfo> CaptureTime() const;
   std::optional<base::TimeDelta> SenderCaptureTimeOffset() const;
   base::expected<void, String> SetMetadata(
       const webrtc::VideoFrameMetadata& metadata,
diff --git a/third_party/blink/renderer/modules/peerconnection/rtc_encoded_video_frame_test.cc b/third_party/blink/renderer/modules/peerconnection/rtc_encoded_video_frame_test.cc
index 4c276c3..46db085e 100644
--- a/third_party/blink/renderer/modules/peerconnection/rtc_encoded_video_frame_test.cc
+++ b/third_party/blink/renderer/modules/peerconnection/rtc_encoded_video_frame_test.cc
@@ -32,11 +32,17 @@
 using webrtc::MockTransformableVideoFrame;
 
 namespace blink {
+namespace {
 
 class RTCEncodedVideoFrameTest : public testing::Test {
   test::TaskEnvironment task_environment_;
 };
 
+DOMHighResTimeStamp GetTimeOriginNtp(V8TestingScope& v8_scope) {
+  return DOMWindowPerformance::performance(v8_scope.GetWindow())->timeOrigin() +
+         2208988800000.0;
+}
+
 webrtc::VideoFrameMetadata MockVP9Metadata(MockTransformableVideoFrame* frame) {
   webrtc::VideoFrameMetadata webrtc_metadata;
   std::vector<webrtc::DecodeTargetIndication> decode_target_indications;
@@ -822,7 +828,7 @@
 
 TEST_F(RTCEncodedVideoFrameTest, FrameWithSenderCaptureTimeOffset) {
   V8TestingScope v8_scope;
-  double sender_capture_offsets_in_millis[] = {12, -34};
+  int sender_capture_offsets_in_millis[] = {12, -34};
   for (int offset : sender_capture_offsets_in_millis) {
     std::unique_ptr<MockTransformableVideoFrame> frame =
         std::make_unique<NiceMock<MockTransformableVideoFrame>>();
@@ -838,19 +844,16 @@
   }
 }
 
-TEST_F(RTCEncodedVideoFrameTest, FrameWithCaptureTime) {
+// TODO(https://crbug.com/343870500): Add SenderFrameWithCaptureTime test once
+// the corresponding support is added to sender video frames.
+TEST_F(RTCEncodedVideoFrameTest, ReceiverFrameWithCaptureTime) {
   V8TestingScope v8_scope;
-  auto* performance = DOMWindowPerformance::performance(v8_scope.GetWindow());
-  const base::TimeTicks window_time_origin =
-      performance->GetTimeOriginInternal();
-  const double capture_times_in_millis[] = {12, -34};
+  const int capture_times_in_millis[] = {12, -34};
   for (int capture_time : capture_times_in_millis) {
-    base::TimeDelta ntp_capture_time = base::Milliseconds(capture_time) +
-                                       window_time_origin.since_origin() -
-                                       WebRTCFrameNtpEpoch().since_origin();
+    base::TimeDelta ntp_capture_time =
+        base::Milliseconds(GetTimeOriginNtp(v8_scope) + capture_time);
     std::unique_ptr<MockTransformableVideoFrame> frame =
         std::make_unique<NiceMock<MockTransformableVideoFrame>>();
-    // Currently, only receiver frames expose captureTime.
     ON_CALL(*frame, GetDirection)
         .WillByDefault(
             Return(webrtc::TransformableFrameInterface::Direction::kReceiver));
@@ -863,9 +866,10 @@
     RTCEncodedVideoFrameMetadata* metadata =
         encoded_frame->getMetadata(v8_scope.GetExecutionContext());
     EXPECT_TRUE(metadata->hasCaptureTime());
-    // The error is slightly more than 0.1; use 0.11 to avoid flakes.
-    EXPECT_LE(std::abs(metadata->getCaptureTimeOr(0.0) - capture_time), 0.11);
+    // The error is slightly more than 0.1; use 0.2 to avoid flakes.
+    EXPECT_LE(std::abs(metadata->getCaptureTimeOr(0.0) - capture_time), 0.2);
   }
 }
 
+}  // namespace
 }  // namespace blink
diff --git a/third_party/blink/renderer/platform/peerconnection/webrtc_util.cc b/third_party/blink/renderer/platform/peerconnection/webrtc_util.cc
index 945bbc9..2a14e80 100644
--- a/third_party/blink/renderer/platform/peerconnection/webrtc_util.cc
+++ b/third_party/blink/renderer/platform/peerconnection/webrtc_util.cc
@@ -100,12 +100,6 @@
   return std::nullopt;
 }
 
-base::TimeTicks WebRTCFrameNtpEpoch() {
-  static base::TimeTicks ntp_epoch =
-      base::TimeTicks::UnixEpoch() - base::Milliseconds(2208988800000);
-  return ntp_epoch;
-}
-
 std::optional<base::TimeTicks> PLATFORM_EXPORT
 ConvertToOptionalTimeTicks(std::optional<webrtc::Timestamp> time,
                            std::optional<base::TimeTicks> offset) {
diff --git a/third_party/blink/renderer/platform/peerconnection/webrtc_util.h b/third_party/blink/renderer/platform/peerconnection/webrtc_util.h
index 2efef46..4f59ee4 100644
--- a/third_party/blink/renderer/platform/peerconnection/webrtc_util.h
+++ b/third_party/blink/renderer/platform/peerconnection/webrtc_util.h
@@ -32,15 +32,6 @@
 std::optional<media::VideoCodecProfile> PLATFORM_EXPORT
 WebRTCFormatToCodecProfile(const webrtc::SdpVideoFormat& sdp);
 
-// Returns an estimate of the TimeTick value at the time of the NTP epoch
-// (Jan 1, 1900). It is based on base::TimeTicks::UnixEpoch(), so look at its
-// documentation to understand the issues with this approach.
-// Restrict usage to convert timestamps of WebRTC media frames that are
-// expressed relative to the NTP epoch.
-// Use as follows:
-//  FrameTimeTicks = WebRTCFrameNtpEpoch() + FrameTimeDeltaRelativeToNtpEpoch()
-base::TimeTicks PLATFORM_EXPORT WebRTCFrameNtpEpoch();
-
 // Converts an optional webrtc::Timestamp into an optional TimeTicks and
 // optionally adds an offset to the result.
 std::optional<base::TimeTicks> PLATFORM_EXPORT ConvertToOptionalTimeTicks(
diff --git a/third_party/blink/renderer/platform/peerconnection/webrtc_video_track_source.cc b/third_party/blink/renderer/platform/peerconnection/webrtc_video_track_source.cc
index c256c8fe..2296252 100644
--- a/third_party/blink/renderer/platform/peerconnection/webrtc_video_track_source.cc
+++ b/third_party/blink/renderer/platform/peerconnection/webrtc_video_track_source.cc
@@ -514,10 +514,10 @@
     return false;
   }
 
-  // The remote end will assume REC709 if not instructed otherwise, so there's
+  // The remote end will assume REC601 if not instructed otherwise, so there's
   // no need to pass this information on the wire.
   return color_space.IsValid() &&
-         color_space != gfx::ColorSpace::CreateREC709();
+         color_space != gfx::ColorSpace::CreateREC601();
 }
 
 void WebRtcVideoTrackSource::Dispose() {
diff --git a/third_party/blink/renderer/platform/peerconnection/webrtc_video_track_source_test.cc b/third_party/blink/renderer/platform/peerconnection/webrtc_video_track_source_test.cc
index 511c1d5..1191bfe 100644
--- a/third_party/blink/renderer/platform/peerconnection/webrtc_video_track_source_test.cc
+++ b/third_party/blink/renderer/platform/peerconnection/webrtc_video_track_source_test.cc
@@ -346,7 +346,7 @@
   EXPECT_CALL(mock_sink_, OnFrame(_))
       .InSequence(s)
       .WillOnce(Invoke([](const webrtc::VideoFrame& frame) {
-        ASSERT_FALSE(frame.color_space().has_value());
+        EXPECT_FALSE(frame.color_space().has_value());
       }));
 
   gfx::ColorSpace color_range_limited(
@@ -359,10 +359,11 @@
       gfx::ColorSpace::MatrixID::BT709, gfx::ColorSpace::RangeID::FULL);
   SendTestFrameWithColorSpace(frame_parameters, color_range_full);
 
-  gfx::ColorSpace default_bt709_color_space(
-      gfx::ColorSpace::PrimaryID::BT709, gfx::ColorSpace::TransferID::BT709,
-      gfx::ColorSpace::MatrixID::BT709, gfx::ColorSpace::RangeID::LIMITED);
-  SendTestFrameWithColorSpace(frame_parameters, default_bt709_color_space);
+  gfx::ColorSpace default_bt601_color_space(
+      gfx::ColorSpace::PrimaryID::SMPTE170M,
+      gfx::ColorSpace::TransferID::SMPTE170M,
+      gfx::ColorSpace::MatrixID::SMPTE170M, gfx::ColorSpace::RangeID::LIMITED);
+  SendTestFrameWithColorSpace(frame_parameters, default_bt601_color_space);
 }
 
 TEST_P(WebRtcVideoTrackSourceTest, SetsFeedback) {
diff --git a/third_party/blink/web_tests/TestExpectations b/third_party/blink/web_tests/TestExpectations
index 4637f50..774c460 100644
--- a/third_party/blink/web_tests/TestExpectations
+++ b/third_party/blink/web_tests/TestExpectations
@@ -8504,9 +8504,6 @@
 crbug.com/325441197 http/tests/devtools/elements/event-listeners-about-blank.js [ Failure Pass ]
 crbug.com/325441197 http/tests/devtools/elements/event-listeners-framework-with-service-worker.js [ Failure Pass ]
 
-# Temporarily disable to land Changes panel changes (crrev.com/c/6632913)
-crbug.com/412968300 http/tests/devtools/a11y-axe-core/changes/changes-a11y-test.js [ Failure Pass ]
-
 # Gardener 2024-04-24
 crbug.com/336691003 [ Linux ] external/wpt/long-animation-frame/tentative/loaf-source-location-inline-classic-script.html [ Failure ]
 
diff --git a/third_party/blink/web_tests/http/tests/devtools/a11y-axe-core/changes/changes-a11y-test-expected.txt b/third_party/blink/web_tests/http/tests/devtools/a11y-axe-core/changes/changes-a11y-test-expected.txt
deleted file mode 100644
index e9e2853..0000000
--- a/third_party/blink/web_tests/http/tests/devtools/a11y-axe-core/changes/changes-a11y-test-expected.txt
+++ /dev/null
@@ -1,6 +0,0 @@
-Tests accessibility in the Changes drawer.
-Showing the Changes drawer.
-Running aXe on the Changes drawer.
-aXe violations: []
-
-
diff --git a/third_party/blink/web_tests/http/tests/devtools/a11y-axe-core/changes/changes-a11y-test.js b/third_party/blink/web_tests/http/tests/devtools/a11y-axe-core/changes/changes-a11y-test.js
deleted file mode 100644
index 4851e74..0000000
--- a/third_party/blink/web_tests/http/tests/devtools/a11y-axe-core/changes/changes-a11y-test.js
+++ /dev/null
@@ -1,30 +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 {TestRunner} from 'test_runner';
-import {AxeCoreTestRunner} from 'axe_core_test_runner';
-
-import * as Diff from "devtools/third_party/diff/diff.js";
-import * as UI from 'devtools/ui/legacy/legacy.js';
-
-(async function() {
-  TestRunner.addResult('Tests accessibility in the Changes drawer.');
-
-  const diff = [
-    {0: Diff.Diff.Operation.Insert, 1: ['line 1 inserted']},
-    {0: Diff.Diff.Operation.Delete, 1: ['line 2 deleted']},
-  ];
-  const uiSourceCodeMock = {mimeType: () => {}};
-
-  TestRunner.addResult('Showing the Changes drawer.');
-  await UI.ViewManager.ViewManager.instance().showView('changes.changes');
-  const changesWidget = await UI.ViewManager.ViewManager.instance().view('changes.changes').widget();
-  changesWidget.selectedUISourceCode = uiSourceCodeMock;
-  changesWidget.renderDiffRows(diff);
-
-  TestRunner.addResult('Running aXe on the Changes drawer.');
-  await AxeCoreTestRunner.runValidation(changesWidget.contentElement);
-
-  TestRunner.completeTest();
-})();
diff --git a/third_party/compiler-rt/src b/third_party/compiler-rt/src
index 629e5d1..c42b47b 160000
--- a/third_party/compiler-rt/src
+++ b/third_party/compiler-rt/src
@@ -1 +1 @@
-Subproject commit 629e5d165d4fd74cae28f3e3a590f97b6721c1fc
+Subproject commit c42b47bdaf0d795cbd636e758a0d0080eb07c3d2
diff --git a/third_party/cros_system_api b/third_party/cros_system_api
index bf8111c..349c5cb 160000
--- a/third_party/cros_system_api
+++ b/third_party/cros_system_api
@@ -1 +1 @@
-Subproject commit bf8111c8d68156e9df5f63e4213d0222a127062b
+Subproject commit 349c5cb547162b967df40a336fc08bb18819a5e1
diff --git a/third_party/devtools-frontend/src b/third_party/devtools-frontend/src
index 3a4bfd6..a33be4f 160000
--- a/third_party/devtools-frontend/src
+++ b/third_party/devtools-frontend/src
@@ -1 +1 @@
-Subproject commit 3a4bfd655bb875cee25ff21160dce79479f9f4fb
+Subproject commit a33be4fe83a7d21f1ddf94937c49a3f1f6b24d18
diff --git a/third_party/fuzztest/BUILD.gn b/third_party/fuzztest/BUILD.gn
index 77e4731f..4819b7e9 100644
--- a/third_party/fuzztest/BUILD.gn
+++ b/third_party/fuzztest/BUILD.gn
@@ -280,9 +280,13 @@
     "src/fuzztest/internal/domains/protobuf_domain_impl.h",
     "src/fuzztest/internal/domains/regexp_dfa.cc",
     "src/fuzztest/internal/domains/regexp_dfa.h",
+    "src/fuzztest/internal/domains/rune.cc",
+    "src/fuzztest/internal/domains/rune.h",
     "src/fuzztest/internal/domains/serialization_helpers.h",
     "src/fuzztest/internal/domains/smart_pointer_of_impl.h",
     "src/fuzztest/internal/domains/unique_elements_container_of_impl.h",
+    "src/fuzztest/internal/domains/utf.cc",
+    "src/fuzztest/internal/domains/utf.h",
     "src/fuzztest/internal/domains/value_mutation_helpers.h",
     "src/fuzztest/internal/domains/variant_of_impl.h",
     "src/fuzztest/internal/escaping.cc",
diff --git a/third_party/ipcz/src/ipcz/router.h b/third_party/ipcz/src/ipcz/router.h
index f3bebcc..7416965 100644
--- a/third_party/ipcz/src/ipcz/router.h
+++ b/third_party/ipcz/src/ipcz/router.h
@@ -35,7 +35,7 @@
 // Before a Router can participate in any actual routing, it must have an
 // outward link to another Router (see SetOutwardLink()). To establish a locally
 // connected pair of Routers, pass both to LocalRouterLink::Create() and pass
-// each returned link to the coresponding router:
+// each returned link to the corresponding router:
 //
 //     Router::Pair routers = {MakeRefCounted<Router>(),
 //                             MakeRefCounted<Router>()};
@@ -150,7 +150,7 @@
   // similar to route closure, except no effort can realistically be made to
   // deliver the complete sequence of parcels transmitted from that end of the
   // route. `link_type` specifies the type of link which is propagating the
-  // notification to this rouer.
+  // notification to this router.
   bool AcceptRouteDisconnectedFrom(LinkType link_type);
 
   // Attempts to install a new trap on this Router, to invoke `handler` as soon
@@ -164,7 +164,7 @@
 
   // Attempts to merge this Router's route with the route terminated by `other`.
   // Both `other` and this Router must be terminal routers on their own separate
-  // routes, and neither Router must have transmitted or retreived any parcels
+  // routes, and neither Router must have transmitted or retrieved any parcels
   // via Put or Get APIs.
   IpczResult MergeRoute(const Ref<Router>& other);
 
@@ -297,13 +297,11 @@
   // The specified FlushBehavior determines whether the Flush() operation will
   // unconditionally attempt to initiate bypass of this Router or its outward
   // peer after performing all other flushing operations. By default, bypass
-  // progress is only attempted if the flush iteslf resulted in an unstable
+  // progress is only attempted if the flush itself resulted in an unstable
   // central link becoming potentially stable. But various operations which
   // invoke Flush() may also elicit state changes that can unblock a bypass
-  // operation. These operatoins may specify kForceProxyBypassAttempt in such
+  // operation. These operations may specify kForceProxyBypassAttempt in such
   // cases.
-  //
-  // `source` indicates why the flush is occurring.
   enum FlushBehavior { kDefault, kForceProxyBypassAttempt };
   void Flush(FlushBehavior behavior = kDefault);
 
diff --git a/third_party/ipcz/src/ipcz/router_link.h b/third_party/ipcz/src/ipcz/router_link.h
index 3ceaf04..ee097c21 100644
--- a/third_party/ipcz/src/ipcz/router_link.h
+++ b/third_party/ipcz/src/ipcz/router_link.h
@@ -68,7 +68,7 @@
                                   Parcel& parcel) = 0;
 
   // Passes a parcel to the Router on the other side of this link to be queued
-  // and/or router further.
+  // and/or routed further.
   virtual void AcceptParcel(std::unique_ptr<Parcel> parcel) = 0;
 
   // Notifies the Router on the other side of the link that the route has been
diff --git a/third_party/lit/v3_0/BUILD.gn b/third_party/lit/v3_0/BUILD.gn
index 2b6d99b2..abc50e6 100644
--- a/third_party/lit/v3_0/BUILD.gn
+++ b/third_party/lit/v3_0/BUILD.gn
@@ -118,6 +118,7 @@
     "//ui/webui/resources/cr_components/managed_dialog:build_ts",
     "//ui/webui/resources/cr_components/managed_footnote:build_ts",
     "//ui/webui/resources/cr_components/most_visited:build_ts",
+    "//ui/webui/resources/cr_components/searchbox:build_ts",
     "//ui/webui/resources/cr_components/theme_color_picker:build_ts",
     "//ui/webui/resources/cr_elements:build_ts",
   ]
diff --git a/third_party/perfetto b/third_party/perfetto
index e93a2c7..8c8de44 160000
--- a/third_party/perfetto
+++ b/third_party/perfetto
@@ -1 +1 @@
-Subproject commit e93a2c7998dee72ddcacff7cf54d001051205ce4
+Subproject commit 8c8de4407f78895894119066404a2deaa92fd866
diff --git a/third_party/protobuf/BUILD.gn b/third_party/protobuf/BUILD.gn
index 3d6c4b70..19e90ba 100644
--- a/third_party/protobuf/BUILD.gn
+++ b/third_party/protobuf/BUILD.gn
@@ -142,6 +142,10 @@
 
       # The Cast Core gRPC generator tool.
       "//third_party/cast_core/public/src/build/chromium:cast_core_grpc_generator",
+
+      # The proto_extras plugin generates code that some of the above fuzzers
+      # use, and thus needs to know the full types.
+      "//components/proto_extras:protobuf_full_support",
     ]
   }
 
diff --git a/third_party/search_engines_data/OWNERS b/third_party/search_engines_data/OWNERS
index 4651819..91345f64 100644
--- a/third_party/search_engines_data/OWNERS
+++ b/third_party/search_engines_data/OWNERS
@@ -1,5 +1,6 @@
 dgn@chromium.org
 ender@google.com
 jdonnelly@chromium.org
+mahmadi@chromium.org
 orinj@chromium.org
 tedchoc@chromium.org
diff --git a/third_party/webrtc b/third_party/webrtc
index 47b9d92..cf71427 160000
--- a/third_party/webrtc
+++ b/third_party/webrtc
@@ -1 +1 @@
-Subproject commit 47b9d928a9e4c0f2dbe48909a37ec4d9c71ac1f6
+Subproject commit cf714279e2a0d54e03b4065f14748dea1dc24606
diff --git a/tools/android/native_lib_memory/process_residency.py b/tools/android/native_lib_memory/process_residency.py
deleted file mode 100755
index 9a12619..0000000
--- a/tools/android/native_lib_memory/process_residency.py
+++ /dev/null
@@ -1,131 +0,0 @@
-#!/usr/bin/env python
-# 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.
-
-"""From a native code residency dump created by log_residency.cc, generate a
-visual timeline, and serialize the parsed data to JSON.
-"""
-
-import argparse
-import json
-import logging
-from matplotlib import collections as mc
-from matplotlib import pylab as plt
-import numpy as np
-
-
-def CreateArgumentParser():
-  """Creates and returns an argument parser."""
-  parser = argparse.ArgumentParser(
-      description='Reads and shows native library residency data.')
-  parser.add_argument('--dump', type=str, required=True, help='Residency dump')
-  parser.add_argument('--output', type=str, required=True,
-                      help='Output filename in text format')
-  parser.add_argument('--json', type=str, help='Output filename in JSON output')
-  return parser
-
-
-def ParseDump(filename):
-  """Parses a residency dump, as generated from orderfile_instrumentation.cc.
-
-  Args:
-    filename: (str) dump filename.
-
-  Returns:
-    {"start": offset, "end": offset,
-     "residency": {timestamp (int): data ([bool])}}
-  """
-  result = {}
-  with open(filename, 'r') as f:
-    (start, end) = f.readline().strip().split(' ')
-    result = {'start': int(start), 'end': int(end), 'residency': {}}
-    for line in f:
-      line = line.strip()
-      timestamp, data = line.split(' ')
-      data_array = [x == '1' for x in data]
-      result['residency'][int(timestamp)] = data_array
-  return result
-
-
-def WriteJsonOutput(data, filename):
-  """Serializes the parsed data to JSON.
-
-  Args:
-    data: (dict) As returned by ParseDump()
-    filename: (str) output filename.
-
-  JSON format:
-  {'offset': int, 'data': {
-    relative_timestamp: [{'page_offset': int, 'resident': bool}]}}
-
-  Where:
-    - offset is the code start offset into its page
-    - relative_timestamp is the offset in ns since the first measurement
-    - page_offset is the page offset in bytes
-  """
-  result = {'offset': data['start'], 'data': {}}
-  start_timestamp = min(data['residency'].keys())
-  for timestamp in data['residency']:
-    adjusted_timestamp = timestamp - start_timestamp
-    result[adjusted_timestamp] = []
-    residency = data['residency'][timestamp]
-    for (index, resident) in enumerate(residency):
-      result[adjusted_timestamp].append(
-          {'offset': index * (1 << 12), 'resident': resident})
-  with open(filename, 'w') as f:
-    json.dump(result, f)
-
-
-def PlotResidency(data, output_filename):
-  """Creates a graph of residency.
-
-  Args:
-    data: (dict) As returned by ParseDump().
-    output_filename: (str) Output filename.
-  """
-  residency = data['residency']
-  max_percentage = max((100. * sum(d)) / len(d) for d in residency.values())
-  logging.info('Max residency = %.2f%%', max_percentage)
-
-  start = data['start']
-  end = data['end']
-  _, ax = plt.subplots(figsize=(20, 10))
-  timestamps = sorted(residency.keys())
-  x_max = len(list(residency.values())[0]) * 4096
-  for t in timestamps:
-    offset_ms = (t - timestamps[0]) / 1e6
-    incore = [i * 4096 for (i, x) in enumerate(residency[t]) if x]
-    outcore = [i * 4096 for (i, x) in enumerate(residency[t]) if not x]
-    percentage = 100. * len(incore) / (len(incore) + len(outcore))
-    plt.text(x_max, offset_ms, '%.1f%%' % percentage)
-    for (d, color) in ((incore, (.2, .6, .05, 1)), (outcore, (1, 0, 0, 1))):
-      segments = [[(x, offset_ms), (x + 4096, offset_ms)] for x in d]
-      colors = np.array([color] * len(segments))
-      lc = mc.LineCollection(segments, colors=colors, linewidths=8)
-      ax.add_collection(lc)
-
-  plt.axvline(start)
-  plt.axvline(end)
-  plt.title('Code residency vs time since startup.')
-  plt.xlabel('Code page offset (bytes)')
-  plt.ylabel('Time since startup (ms)')
-  plt.ylim(0, ymax=(timestamps[-1] - timestamps[0]) / 1e6)
-  plt.xlim(xmin=0, xmax=x_max)
-  plt.savefig(output_filename, bbox_inches='tight', dpi=300)
-
-
-def main():
-  parser = CreateArgumentParser()
-  args = parser.parse_args()
-  logging.basicConfig(level=logging.INFO)
-  logging.info('Parsing the data')
-  data = ParseDump(args.dump)
-  if args.json:
-    WriteJsonOutput(data, args.json)
-  logging.info('Plotting the results')
-  PlotResidency(data, args.output)
-
-
-if __name__ == '__main__':
-  main()
diff --git a/tools/clang/scripts/update.py b/tools/clang/scripts/update.py
index 316567b..339ebe62 100755
--- a/tools/clang/scripts/update.py
+++ b/tools/clang/scripts/update.py
@@ -39,7 +39,7 @@
 # These fields are written by //tools/clang/scripts/upload_revision.py, and
 # should not be changed manually.
 # They are also read by build/config/compiler/BUILD.gn.
-CLANG_REVISION = 'llvmorg-21-init-11777-gfd3fecfc'
+CLANG_REVISION = 'llvmorg-21-init-15009-g841a7f08'
 CLANG_SUB_REVISION = 1
 
 PACKAGE_VERSION = '%s-%s' % (CLANG_REVISION, CLANG_SUB_REVISION)
diff --git a/tools/metrics/actions/actions.xml b/tools/metrics/actions/actions.xml
index 07048562..55d369d 100644
--- a/tools/metrics/actions/actions.xml
+++ b/tools/metrics/actions/actions.xml
@@ -39469,12 +39469,31 @@
   </description>
 </action>
 
+<action name="Signin_BottomSheet_IdentityChooser_AddAccount">
+  <owner>arthurmilchior@chromium.org</owner>
+  <owner>chrome-signin-mobile-team@google.com</owner>
+  <description>
+    Recorded when the user taps on AddAccount in the identity chooser dialog.
+    Recorded for iOS only.
+  </description>
+</action>
+
 <action name="Signin_BottomSheet_IdentityChooser_Closed">
   <owner>jlebel@chromium.org</owner>
   <owner>chrome-signin-mobile-team@google.com</owner>
   <description>
-    Recorded when the identity chooser dialog from the bottom sheet is closed by
-    the user. Recorded for iOS only.
+    Recorded when the identity chooser dialog from the bottom sheet is closed.
+    This might be caused by an explicit user action or any other event that
+    closes the UI. Recorded for iOS only.
+  </description>
+</action>
+
+<action name="Signin_BottomSheet_IdentityChooser_ClosedByUser">
+  <owner>arthurmilchior@chromium.org</owner>
+  <owner>chrome-signin-mobile-team@google.com</owner>
+  <description>
+    Recorded when the user closed the identity chooser dialog from the bottom
+    sheet with the back button or voice-over Z move. Recorded for iOS only.
   </description>
 </action>
 
@@ -39487,6 +39506,24 @@
   </description>
 </action>
 
+<action name="Signin_BottomSheet_IdentityChooser_Selected">
+  <owner>arthurmilchior@chromium.org</owner>
+  <owner>chrome-signin-mobile-team@google.com</owner>
+  <description>
+    Recorded when the user selects an identity in the identity chooser dialog.
+    Recorded for iOS only.
+  </description>
+</action>
+
+<action name="Signin_BottomSheet_IdentityChooser_ShowManagementHelpPage">
+  <owner>arthurmilchior@chromium.org</owner>
+  <owner>chrome-signin-mobile-team@google.com</owner>
+  <description>
+    Recorded when the user taps on the &quot;management help&quot; link in the
+    footer of the identity chooser dialog. Recorded for iOS only.
+  </description>
+</action>
+
 <action name="Signin_BottomSheet_Opened">
   <owner>jlebel@chromium.org</owner>
   <owner>chrome-signin-mobile-team@google.com</owner>
@@ -44713,36 +44750,6 @@
   </description>
 </action>
 
-<action name="TabGroups.ArchivedTabGroupManualCloseOnInactiveSurface">
-  <owner>wylieb@google.com</owner>
-  <owner>evanluo@google.com</owner>
-  <owner>clank-tab-dev@google.com</owner>
-  <description>
-    Recorded when archived tab group is closed due to user manually clicking the
-    X button of the tab group in the inactive pane.
-  </description>
-</action>
-
-<action name="TabGroups.RestoreFromTabGroupPane">
-  <owner>wylieb@google.com</owner>
-  <owner>evanluo@google.com</owner>
-  <owner>clank-tab-dev@google.com</owner>
-  <description>
-    Recorded when an archived tab group is restored when the user opens the same
-    tab group from the tab group pane.
-  </description>
-</action>
-
-<action name="TabGroups.RestoreSingleTabGroup">
-  <owner>wylieb@google.com</owner>
-  <owner>evanluo@google.com</owner>
-  <owner>clank-tab-dev@google.com</owner>
-  <description>
-    Recorded when archived tab group is restored due to user manually clicking
-    into the tab group in the inactive pane.
-  </description>
-</action>
-
 <action name="TabGroups.Shared.SwitchGroupedTab">
   <owner>dljames@chromium.org</owner>
   <owner>top-chrome-desktop-ui@google.com</owner>
@@ -46016,6 +46023,30 @@
   </description>
 </action>
 
+<action name="TrackingProtections.Bubble.ProtectionsActive.Opened">
+  <owner>michelleabreo@google.com</owner>
+  <owner>koilos@google.com</owner>
+  <description>
+    User bypass is opened when tracking protections are active.
+  </description>
+</action>
+
+<action name="TrackingProtections.Bubble.ProtectionsPaused.Opened">
+  <owner>michelleabreo@google.com</owner>
+  <owner>koilos@google.com</owner>
+  <description>
+    User bypass is opened when tracking protections are paused.
+  </description>
+</action>
+
+<action name="TrackingProtections.Bubble.SendFeedback">
+  <owner>michelleabreo@google.com</owner>
+  <owner>koilos@google.com</owner>
+  <description>
+    Send Feedback triggered from tracking protections bubble.
+  </description>
+</action>
+
 <action name="TrackpadScroll">
   <obsolete>
     Not needed as of 05/2018 since performance metrics for ScrollBegin show the
diff --git a/tools/metrics/histograms/enums.xml b/tools/metrics/histograms/enums.xml
index 91e5f22..465b0d8a 100644
--- a/tools/metrics/histograms/enums.xml
+++ b/tools/metrics/histograms/enums.xml
@@ -4493,6 +4493,8 @@
   <int value="2" label="The report is corrupt or invalid and was dropped"/>
 </enum>
 
+<!--LINT.IfChange(FeedbackSource) -->
+
 <enum name="FeedbackSource">
   <int value="0" label="Arc App"/>
   <int value="1" label="Ash"/>
@@ -4540,8 +4542,11 @@
   <int value="43" label="Borealis"/>
   <int value="44" label="Sunfish"/>
   <int value="45" label="Boca App"/>
+  <int value="46" label="Tracking Protections"/>
 </enum>
 
+<!--LINT.ThenChange(//chrome/browser/feedback/public/feedback_source.h:FeedbackSource) -->
+
 <enum name="FetchKeepAliveRequestMetricType">
   <int value="0" label="kFetch"/>
   <int value="1" label="kBeacon"/>
diff --git a/tools/metrics/histograms/metadata/gpu/histograms.xml b/tools/metrics/histograms/metadata/gpu/histograms.xml
index cf31cbe..dfa7eb0 100644
--- a/tools/metrics/histograms/metadata/gpu/histograms.xml
+++ b/tools/metrics/histograms/metadata/gpu/histograms.xml
@@ -576,6 +576,20 @@
   </summary>
 </histogram>
 
+<histogram name="GPU.DirectComposition.CommitAndClearPendingOverlaysDuration"
+    units="microseconds" expires_after="2025-12-09">
+  <owner>vasilyt@chromium.org</owner>
+  <owner>tangm@microsoft.com</owner>
+  <summary>
+    Records the duration of CommitAndClearPendingOverlays, which contains the
+    work to update the DCLayerTree's visual contents, visual tree, and commit.
+    This estimates the amount of work DCLayerTree needs to do per frame and can
+    be used to compare incremental tree updating algorithms.
+
+    Only reported on systems which have high resolution timers.
+  </summary>
+</histogram>
+
 <histogram name="GPU.DirectComposition.CompositionMode2.VideoOrCanvas"
     enum="DxgiFramePresentationMode" expires_after="2025-02-04">
   <owner>sunnyps@chromium.org</owner>
diff --git a/tools/metrics/histograms/metadata/mobile/enums.xml b/tools/metrics/histograms/metadata/mobile/enums.xml
index bf9cc9971..026fd41 100644
--- a/tools/metrics/histograms/metadata/mobile/enums.xml
+++ b/tools/metrics/histograms/metadata/mobile/enums.xml
@@ -563,6 +563,7 @@
   <int value="38" label="Report as safe notification button"/>
   <int value="39" label="Report warned notification as spam button."/>
   <int value="40" label="Report unwarned notification as spam button."/>
+  <int value="41" label="Download removed from history"/>
 </enum>
 
 <enum name="SystemNotificationType">
diff --git a/tools/metrics/histograms/metadata/page/enums.xml b/tools/metrics/histograms/metadata/page/enums.xml
index ed1ca88..846585f 100644
--- a/tools/metrics/histograms/metadata/page/enums.xml
+++ b/tools/metrics/histograms/metadata/page/enums.xml
@@ -297,7 +297,7 @@
   <int value="30" label="Discounts"/>
   <int value="31" label="Optimization Guide"/>
   <int value="32" label="Collaboration Messaging"/>
-  <int value="33" label="Change Password"/>
+  <int value="33" label="(Deprecated) Change Password"/>
   <int value="34" label="Lens Overlay Homework"/>
 </enum>
 
diff --git a/tools/metrics/histograms/metadata/sync/enums.xml b/tools/metrics/histograms/metadata/sync/enums.xml
index c144cd7a..16917197 100644
--- a/tools/metrics/histograms/metadata/sync/enums.xml
+++ b/tools/metrics/histograms/metadata/sync/enums.xml
@@ -108,6 +108,33 @@
 
 <!-- LINT.ThenChange(/components/sync/engine/bookmark_update_preprocessing.cc:BookmarkGUIDSource) -->
 
+<!-- LINT.IfChange(BookmarkSetComparisonOutcome) -->
+
+<enum name="BookmarkSetComparisonOutcome">
+  <int value="0" label="Both datasets empty"/>
+  <int value="1" label="Local data empty (account data non-empty)"/>
+  <int value="2" label="Account data empty (local data non-empty)"/>
+  <int value="3" label="Both datasets equal and non-empty"/>
+  <int value="4"
+      label="Local data non-empty and a strict subset of account data"/>
+  <int value="5"
+      label="Intersection of local and account data [99%, 100%) of the total"/>
+  <int value="6"
+      label="Intersection of local and account data [95%, 99%) of the total"/>
+  <int value="7"
+      label="Intersection of local and account data [90%, 95%) of the total"/>
+  <int value="8"
+      label="Intersection of local and account data [50%, 90%) of the total"/>
+  <int value="9"
+      label="Intersection of local and account data [10%, 50%) of the total"/>
+  <int value="10"
+      label="Intersection of local and account data (0%, 10%) of the total"/>
+  <int value="11"
+      label="Local and account datasets are non-empty but do not intersect"/>
+</enum>
+
+<!-- LINT.ThenChange(/components/sync_bookmarks/bookmark_model_merger_comparison_metrics.h:BookmarkSetComparisonOutcome) -->
+
 <!-- LINT.IfChange(BookmarksGUIDDuplicates) -->
 
 <enum name="BookmarksGUIDDuplicates">
diff --git a/tools/metrics/histograms/metadata/sync/histograms.xml b/tools/metrics/histograms/metadata/sync/histograms.xml
index c7839414..555219b 100644
--- a/tools/metrics/histograms/metadata/sync/histograms.xml
+++ b/tools/metrics/histograms/metadata/sync/histograms.xml
@@ -364,8 +364,8 @@
 </histogram>
 
 <histogram
-    name="Sync.BookmarkModelMerger.Comparison{OptionalPreviouslySyncingGaiaId}.{SubtreeSelection}.{GroupingKey}{OptionalBookmarkCount}"
-    enum="LegacyBookmarkSetComparisonOutcome" expires_after="2025-11-23">
+    name="Sync.BookmarkModelMerger.Comparison2{OptionalPreviouslySyncingGaiaId}.{SubtreeSelection}.{GroupingKey}{OptionalBookmarkCount}"
+    enum="BookmarkSetComparisonOutcome" expires_after="2025-11-23">
   <owner>mastiz@chromium.org</owner>
   <owner>droger@chromium.org</owner>
   <summary>
@@ -445,6 +445,77 @@
 
 </histogram>
 
+<histogram
+    name="Sync.BookmarkModelMerger.Comparison{OptionalPreviouslySyncingGaiaId}.{SubtreeSelection}.{GroupingKey}{OptionalBookmarkCount}"
+    enum="LegacyBookmarkSetComparisonOutcome" expires_after="2025-11-23">
+  <owner>mastiz@chromium.org</owner>
+  <owner>droger@chromium.org</owner>
+  <summary>
+    NOTE: Prefer analyzing analogous metrics whose name starts with
+    Sync.BookmarkModelMerger.Comparison2 for newer browser versions, starting
+    with M138. This histogram is analogous but the buckets are slightly
+    different, as a result of a bug in the original implementation.
+
+    Records the result of comparing URL bookmarks stored locally with those
+    downloaded from the Sync server. This particular metric variant considers
+    {SubtreeSelection} using {GroupingKey} as uniqueness key when finding
+    matches across local and account bookmarks.
+
+    Recorded on desktop platforms (excluding ChromeOS) only when bookmark sync
+    (legacy Full Sync) is turned on and after account bookmarks are downloaded
+    from the Sync
+    server{OptionalPreviouslySyncingGaiaId}{OptionalBookmarkCount}.
+  </summary>
+  <token key="OptionalPreviouslySyncingGaiaId">
+    <variant name="" summary=""/>
+    <variant name=".DiffersPreviousGaiaId"
+        summary=", for the case where the user (gaia ID) currently turning on
+                 bookmark sync is different to the one that had previously
+                 turned sync on"/>
+    <variant name=".MatchesPreviousGaiaId"
+        summary=", for the case where the user (gaia ID) currently turning on
+                 bookmark sync is the same as the one that had previously
+                 turned sync on"/>
+    <variant name=".NoPreviousGaiaId"
+        summary=", for the case where sync was never turned on before in the
+                 current browser profile"/>
+  </token>
+  <token key="SubtreeSelection">
+    <variant name="ConsideringAllBookmarks" summary="the entire bookmark tree"/>
+    <variant name="UnderBookmarksBar"
+        summary="desdendants of the Bookmarks Bar"/>
+  </token>
+  <token key="GroupingKey">
+    <variant name="ByUrl" summary="the bookmark's URL"/>
+    <variant name="ByUrlAndTitle" summary="&lt;URL, title&gt;"/>
+    <variant name="ByUrlAndTitleAndPath"
+        summary="&lt;URL, title, path&gt; (where the path contains ancestor's
+                 titles)"/>
+    <variant name="ByUrlAndTitleAndPathAndUuid"
+        summary="&lt;URL, title, path, UUID&gt; (where the path contains
+                 ancestor's titles)"/>
+    <variant name="ByUrlAndUuid" summary="&lt;URL, UUID&gt;"/>
+  </token>
+  <token key="OptionalBookmarkCount">
+    <variant name="" summary=""/>
+    <variant name=".1000OrMoreLocalUrlBookmarks"
+        summary=", only if there were 1,000 or more URL bookmarks stored
+                 locally and relevant in this metric variant (prior to any
+                 grouping based on uniqueness keys)"/>
+    <variant name=".Between1And19LocalUrlBookmarks"
+        summary=", only if there were between 1 and 19 (both inclusive) URL
+                 bookmarks stored locally and relevant in this metric variant
+                 (prior to any grouping based on uniqueness keys)"/>
+    <variant name=".Between20and999LocalUrlBookmarks"
+        summary=", only if there were between 20 and 999 (both inclusive) URL
+                 bookmarks stored locally and relevant in this metric variant
+                 (prior to any grouping based on uniqueness keys)"/>
+    <variant name=".ZeroLocalUrlBookmarks"
+        summary=", only if there were no URL bookmarks stored locally that
+                 are relevant in this metric variant"/>
+  </token>
+</histogram>
+
 <histogram name="Sync.BookmarkModelMerger.PreviouslySyncingGaiaId"
     enum="PreviouslySyncingGaiaIdInfoForMetrics" expires_after="2025-10-11">
   <owner>mastiz@chromium.org</owner>
diff --git a/tools/metrics/histograms/metadata/tab/histograms.xml b/tools/metrics/histograms/metadata/tab/histograms.xml
index 89160436..ab3a7af 100644
--- a/tools/metrics/histograms/metadata/tab/histograms.xml
+++ b/tools/metrics/histograms/metadata/tab/histograms.xml
@@ -798,74 +798,6 @@
   </summary>
 </histogram>
 
-<histogram
-    name="TabGroups.ArchivedTabGroupManualCloseOnInactiveSurface.TabGroupTabCount"
-    units="tabs" expires_after="2025-11-09">
-  <owner>wylieb@google.com</owner>
-  <owner>evanluo@google.com</owner>
-  <owner>clank-tab-dev@google.com</owner>
-  <summary>
-    Records number of tabs within an archived tab group closed by pressing the X
-    button on the tab group in the inactive surface.
-  </summary>
-</histogram>
-
-<histogram name="TabGroups.CloseAllArchivedTabGroups.TabGroupCount"
-    units="groups" expires_after="2025-11-09">
-  <owner>wylieb@google.com</owner>
-  <owner>evanluo@google.com</owner>
-  <owner>clank-tab-dev@google.com</owner>
-  <summary>
-    Records when archived tab groups are closed through the &quot;Close all
-    inactive tabs&quot; button in inactive pane.
-  </summary>
-</histogram>
-
-<histogram name="TabGroups.CloseAllArchivedTabGroups.TabGroupTabCount"
-    units="tabs" expires_after="2025-11-09">
-  <owner>wylieb@google.com</owner>
-  <owner>evanluo@google.com</owner>
-  <owner>clank-tab-dev@google.com</owner>
-  <summary>
-    Records number of tabs within archived tab groups closed through the
-    &quot;Close all inactive tabs&quot; button in inactive pane.
-  </summary>
-</histogram>
-
-<histogram name="TabGroups.CloseArchivedTabsMenuItem.TabGroupCount"
-    units="groups" expires_after="2025-11-09">
-  <owner>wylieb@google.com</owner>
-  <owner>evanluo@google.com</owner>
-  <owner>clank-tab-dev@google.com</owner>
-  <summary>
-    Records when archived tab groups are closed through the &quot;Close
-    tab&quot; menu item after user selects which tab groups to be closed.
-  </summary>
-</histogram>
-
-<histogram name="TabGroups.CloseArchivedTabsMenuItem.TabGroupTabCount"
-    units="tabs" expires_after="2025-11-09">
-  <owner>wylieb@google.com</owner>
-  <owner>evanluo@google.com</owner>
-  <owner>clank-tab-dev@google.com</owner>
-  <summary>
-    Records number of tabs within archived tab groups closed through the
-    &quot;Close tab&quot; menu item after user selects which tab groups to be
-    closed.
-  </summary>
-</histogram>
-
-<histogram name="TabGroups.CloseTabGroupsDeletedRemotely" units="groups"
-    expires_after="2025-11-09">
-  <owner>wylieb@google.com</owner>
-  <owner>evanluo@google.com</owner>
-  <owner>clank-tab-dev@google.com</owner>
-  <summary>
-    Records when tab groups are closed locally due to the synced tab group being
-    deleted elsewhere (e.g. another device logged into same account).
-  </summary>
-</histogram>
-
 <histogram name="TabGroups.CollapsedGroupCountPerLoad" units="groups"
     expires_after="2025-09-28">
   <owner>dpenning@chromium.org</owner>
@@ -932,72 +864,6 @@
   </summary>
 </histogram>
 
-<histogram name="TabGroups.RestoreAllArchivedTabsMenuItem.TabGroupCount"
-    units="groups" expires_after="2025-11-09">
-  <owner>wylieb@google.com</owner>
-  <owner>evanluo@google.com</owner>
-  <owner>clank-tab-dev@google.com</owner>
-  <summary>
-    Records when archived tab groups are restored through the &quot;Restore
-    all&quot; option menu item.
-  </summary>
-</histogram>
-
-<histogram name="TabGroups.RestoreAllArchivedTabsMenuItem.TabGroupTabCount"
-    units="tabs" expires_after="2025-11-09">
-  <owner>wylieb@google.com</owner>
-  <owner>evanluo@google.com</owner>
-  <owner>clank-tab-dev@google.com</owner>
-  <summary>
-    Records number of tabs within archived tab groups restored by the
-    &quot;Restore all&quot; option menu item.
-  </summary>
-</histogram>
-
-<histogram name="TabGroups.RestoreArchivedTabsMenuItem.TabGroupCount"
-    units="groups" expires_after="2025-11-09">
-  <owner>wylieb@google.com</owner>
-  <owner>evanluo@google.com</owner>
-  <owner>clank-tab-dev@google.com</owner>
-  <summary>
-    Records when archived tab groups are restored through the &quot;Restore
-    tab&quot; menu option after user selects which tab groups to restore.
-  </summary>
-</histogram>
-
-<histogram name="TabGroups.RestoreArchivedTabsMenuItem.TabGroupTabCount"
-    units="tabs" expires_after="2025-11-09">
-  <owner>wylieb@google.com</owner>
-  <owner>evanluo@google.com</owner>
-  <owner>clank-tab-dev@google.com</owner>
-  <summary>
-    Records number of tabs within archived tab groups restored by user selecting
-    tab groups and using the &quot;Restore tab&quot; menu option.
-  </summary>
-</histogram>
-
-<histogram name="TabGroups.RestoreFromTabGroupPane.TabCount" units="tabs"
-    expires_after="2025-11-09">
-  <owner>wylieb@google.com</owner>
-  <owner>evanluo@google.com</owner>
-  <owner>clank-tab-dev@google.com</owner>
-  <summary>
-    Records number of tabs within an archived tab group restored by user opening
-    the synced tab group from the tab group pane.
-  </summary>
-</histogram>
-
-<histogram name="TabGroups.RestoreSingleTabGroup.TabGroupTabCount" units="tabs"
-    expires_after="2025-11-09">
-  <owner>wylieb@google.com</owner>
-  <owner>evanluo@google.com</owner>
-  <owner>clank-tab-dev@google.com</owner>
-  <summary>
-    Records number of tabs within archived tab groups restored by user manually
-    clicking into the tab group in the inactive surface.
-  </summary>
-</histogram>
-
 <histogram name="TabGroups.SavedTabGroupActiveCount" units="groups"
     expires_after="2025-10-26">
   <owner>dljames@chromium.org</owner>
@@ -1713,27 +1579,6 @@
   </summary>
 </histogram>
 
-<histogram name="TabGroups.TabGroupDeclutter.ArchivedTabGroups" units="groups"
-    expires_after="2025-11-09">
-  <owner>wylieb@google.com</owner>
-  <owner>evanluo@google.com</owner>
-  <owner>clank-tab-dev@google.com</owner>
-  <summary>
-    Records number of tab groups that are archived due to tab group declutter.
-  </summary>
-</histogram>
-
-<histogram name="TabGroups.TabGroupDeclutter.ArchivedTabGroupTabCount"
-    units="tabs" expires_after="2025-11-09">
-  <owner>wylieb@google.com</owner>
-  <owner>evanluo@google.com</owner>
-  <owner>clank-tab-dev@google.com</owner>
-  <summary>
-    Records number of tabs within each archived tab group that are archived when
-    the tab group is archived.
-  </summary>
-</histogram>
-
 <histogram name="TabGroups.TabsPerGroupCountAtStartup" units="tabs"
     expires_after="2025-10-26">
   <owner>gambard@chromium.org</owner>
diff --git a/tools/perf/core/perfetto_binary_roller/binary_deps.json b/tools/perf/core/perfetto_binary_roller/binary_deps.json
index 59f6929..c61ecd0 100644
--- a/tools/perf/core/perfetto_binary_roller/binary_deps.json
+++ b/tools/perf/core/perfetto_binary_roller/binary_deps.json
@@ -5,8 +5,8 @@
             "full_remote_path": "perfetto-luci-artifacts/v50.1/linux-arm64/trace_processor_shell"
         },
         "win": {
-            "hash": "2f70d385ac25c97f50daeba79b32f7965fa0cedc",
-            "full_remote_path": "chromium-telemetry/perfetto_binaries/trace_processor_shell/win/fbed4ffaccc0e754779134993ae8212091582aa9/trace_processor_shell.exe"
+            "hash": "8a9791273ee872e0b1e5da8549a94fd4d85c2706",
+            "full_remote_path": "chromium-telemetry/perfetto_binaries/trace_processor_shell/win/e93a2c7998dee72ddcacff7cf54d001051205ce4/trace_processor_shell.exe"
         },
         "linux_arm": {
             "hash": "99f971ca131f6d11c73f4b918099d434bdd8093c",
@@ -21,8 +21,8 @@
             "full_remote_path": "perfetto-luci-artifacts/v50.1/mac-arm64/trace_processor_shell"
         },
         "linux": {
-            "hash": "b4977483ac603343f03adf009a6afb2c93736090",
-            "full_remote_path": "chromium-telemetry/perfetto_binaries/trace_processor_shell/linux/fbed4ffaccc0e754779134993ae8212091582aa9/trace_processor_shell"
+            "hash": "0a8858dbb7cf80b87ad27fcf5211ad54aa189f90",
+            "full_remote_path": "chromium-telemetry/perfetto_binaries/trace_processor_shell/linux/01decf560e45d5c6f5c93562f0c454ea407fe73c/trace_processor_shell"
         }
     },
     "power_profile.sql": {
diff --git a/tools/rust/update_rust.py b/tools/rust/update_rust.py
index 805a9c6e..381a807 100755
--- a/tools/rust/update_rust.py
+++ b/tools/rust/update_rust.py
@@ -32,7 +32,7 @@
 # These fields are written by //tools/clang/scripts/upload_revision.py, and
 # should not be changed manually.
 # They are also read by build/config/compiler/BUILD.gn.
-RUST_REVISION = '4a0969e06dbeaaa43914d2d00b2e843d49aa3886'
+RUST_REVISION = '0b65d0db5f77c44bf37b4a25489562d68c14aecf'
 RUST_SUB_REVISION = 1
 
 # The revision of Crubit to use from https://github.com/google/crubit
@@ -47,7 +47,7 @@
 # Hash of src/stage0.json, which itself contains the stage0 toolchain hashes.
 # We trust the Rust build system checks, but to ensure it is not tampered with
 # itself check the hash.
-STAGE0_JSON_SHA256 = '981bcaeac1c5f7035166cd59941e4a8e2070c9eb977bc9ef881e656b60c79055'
+STAGE0_JSON_SHA256 = 'f16e14ffdc41c439ce3d802c25add79cdb20d624e83a555e3835bd6eba71c833'
 
 THIS_DIR = os.path.abspath(os.path.dirname(__file__))
 CHROMIUM_DIR = os.path.abspath(os.path.join(THIS_DIR, '..', '..'))
diff --git a/ui/base/l10n/l10n_util.cc b/ui/base/l10n/l10n_util.cc
index 0358befde..9f386c7 100644
--- a/ui/base/l10n/l10n_util.cc
+++ b/ui/base/l10n/l10n_util.cc
@@ -31,6 +31,7 @@
 #include "base/logging.h"
 #include "base/no_destructor.h"
 #include "base/notreached.h"
+#include "base/strings/strcat.h"
 #include "base/strings/string_number_conversions.h"
 #include "base/strings/string_split.h"
 #include "base/strings/string_util.h"
@@ -708,9 +709,10 @@
   return display_name;
 }
 
-std::u16string GetDisplayNameForCountry(const std::string& country_code,
-                                        const std::string& display_locale) {
-  return GetDisplayNameForLocale("_" + country_code, display_locale, false);
+std::u16string GetDisplayNameForCountry(std::string_view country_code,
+                                        std::string_view display_locale) {
+  return GetDisplayNameForLocale(base::StrCat({"_", country_code}),
+                                 display_locale, false);
 }
 
 std::string NormalizeLocale(const std::string& locale) {
diff --git a/ui/base/l10n/l10n_util.h b/ui/base/l10n/l10n_util.h
index 8b519ee..5fbf2dd 100644
--- a/ui/base/l10n/l10n_util.h
+++ b/ui/base/l10n/l10n_util.h
@@ -100,10 +100,10 @@
                                        bool is_for_ui,
                                        bool disallow_default = false);
 
-// Returns the display name of the |country_code| in |display_locale|.
+// Returns the display name of the `country_code` in `display_locale.
 COMPONENT_EXPORT(UI_BASE)
-std::u16string GetDisplayNameForCountry(const std::string& country_code,
-                                        const std::string& display_locale);
+std::u16string GetDisplayNameForCountry(std::string_view country_code,
+                                        std::string_view display_locale);
 
 // Converts all - into _, to be consistent with ICU and file system names.
 COMPONENT_EXPORT(UI_BASE)
diff --git a/ui/base/ui_base_features.cc b/ui/base/ui_base_features.cc
index 19f4980..e3fc76ee 100644
--- a/ui/base/ui_base_features.cc
+++ b/ui/base/ui_base_features.cc
@@ -108,8 +108,7 @@
 #if BUILDFLAG(IS_OZONE)
 BASE_FEATURE(kOzoneBubblesUsePlatformWidgets,
              "OzoneBubblesUsePlatformWidgets",
-             base::FEATURE_DISABLED_BY_DEFAULT
-);
+             base::FEATURE_ENABLED_BY_DEFAULT);
 
 // Controls whether support for Wayland's linux-drm-syncobj is enabled.
 BASE_FEATURE(kWaylandLinuxDrmSyncobj,
diff --git a/ui/gl/dc_layer_tree.cc b/ui/gl/dc_layer_tree.cc
index a221177..64689a1 100644
--- a/ui/gl/dc_layer_tree.cc
+++ b/ui/gl/dc_layer_tree.cc
@@ -1196,6 +1196,10 @@
   TRACE_EVENT1("gpu", "DCLayerTree::CommitAndClearPendingOverlays",
                "num_overlays", overlays.size());
 
+  base::ScopedUmaHistogramTimer scoped_timer(
+      "GPU.DirectComposition.CommitAndClearPendingOverlaysDuration",
+      base::ScopedUmaHistogramTimer::ScopedHistogramTiming::kMicrosecondTimes);
+
   // If delegated ink metadata exists for this frame, attempt to make an overlay
   // so that a visual subtree can be created for a delegated ink visual.
   // TODO(crbug.com/335553727) Consider clearing ink_renderer_ when there's no
diff --git a/ui/ozone/platform/x11/ozone_platform_x11.cc b/ui/ozone/platform/x11/ozone_platform_x11.cc
index 4f00f630..c638d69 100644
--- a/ui/ozone/platform/x11/ozone_platform_x11.cc
+++ b/ui/ozone/platform/x11/ozone_platform_x11.cc
@@ -213,7 +213,7 @@
       // called on the gpu process side.
       properties.supports_native_pixmaps = true;
     }
-    properties.supports_subwindows_as_accelerated_widgets = true;
+    properties.supports_subwindows_as_accelerated_widgets = false;
     properties.supports_system_tray_windowing = true;
     properties.supports_server_window_menus =
         x11::Connection::Get()->WmSupportsHint(
diff --git a/ui/strings/translations/ax_strings_pt-BR.xtb b/ui/strings/translations/ax_strings_pt-BR.xtb
index 09e10a14..8d49170 100644
--- a/ui/strings/translations/ax_strings_pt-BR.xtb
+++ b/ui/strings/translations/ax_strings_pt-BR.xtb
@@ -129,7 +129,7 @@
 <translation id="576709008726043716">introdução</translation>
 <translation id="5786442179789148008">mostrar menu de velocidade da reprodução</translation>
 <translation id="5787939484346677755">expandido, opções de preenchimento automático disponíveis.</translation>
-<translation id="5860033963881614850">Desativada</translation>
+<translation id="5860033963881614850">Desativado</translation>
 <translation id="591047860372322273">caixa de pesquisa</translation>
 <translation id="5916664084637901428">Ativado</translation>
 <translation id="5966707198760109579">Semana</translation>
diff --git a/ui/strings/translations/ui_strings_af.xtb b/ui/strings/translations/ui_strings_af.xtb
index 939e0a1..7a04e1a 100644
--- a/ui/strings/translations/ui_strings_af.xtb
+++ b/ui/strings/translations/ui_strings_af.xtb
@@ -9,6 +9,7 @@
 <translation id="1178017578188974117">{DAYS,plural, =1{1 dag gelede}other{# dae gelede}}</translation>
 <translation id="1181037720776840403">Verwyder</translation>
 <translation id="1243314992276662751">Laai op</translation>
+<translation id="1253734725326687145">Raakteiken is regs bo geskuif. Tik hier.</translation>
 <translation id="1266864766717917324">Kon nie <ph name="CONTENT_TYPE" /> deel nie.</translation>
 <translation id="1269641567813814718">Windows</translation>
 <translation id="1291104554099683393">Probeer die teks in kleiner stukkies deel.</translation>
@@ -56,6 +57,7 @@
 <translation id="2435457462613246316">Wys wagwoord</translation>
 <translation id="24452542372838207">Vou kennisgewing uit</translation>
 <translation id="2445449901874883781">Gebruik hoë digtheid</translation>
+<translation id="2448407890032181691">Raakteiken is regs onder geskuif. Tik hier.</translation>
 <translation id="2482878487686419369">Kennisgewings</translation>
 <translation id="2497284189126895209">Alle lêers</translation>
 <translation id="2515586267016047495">Alt</translation>
@@ -141,6 +143,7 @@
 <translation id="5606865426897221650">Oortjie</translation>
 <translation id="5613020302032141669">Linkerpyltjie</translation>
 <translation id="5633029987065897167">Leeg</translation>
+<translation id="5651438382973553530">Raakteiken is links onder geskuif. Tik hier.</translation>
 <translation id="5754277640426581776">{MINUTES,plural, =1{1 min.}other{# min.}}</translation>
 <translation id="5763338081255973061">{DAYS,plural, =0{Aktief vandag}=1{1 dag gelede aktief}other{# dae gelede aktief}}</translation>
 <translation id="5768079895599174203">{DAYS,plural, =1{1 dag en }other{# dae en }}</translation>
diff --git a/ui/strings/translations/ui_strings_am.xtb b/ui/strings/translations/ui_strings_am.xtb
index e0a7bbdc..c5847f2 100644
--- a/ui/strings/translations/ui_strings_am.xtb
+++ b/ui/strings/translations/ui_strings_am.xtb
@@ -9,6 +9,7 @@
 <translation id="1178017578188974117">{DAYS,plural, =1{ከ1 ቀን በፊት}one{ከ# ቀን በፊት}other{ከ# ቀናት በፊት}}</translation>
 <translation id="1181037720776840403">አስወግድ</translation>
 <translation id="1243314992276662751">ስቀል</translation>
+<translation id="1253734725326687145">የንክኪ ዒላማ በቀኝ በኩል ወደ ላይ ተንቀሳቅሷል። እዚህ መታ ያድርጉ።</translation>
 <translation id="1266864766717917324"><ph name="CONTENT_TYPE" /> ን ማጋራት አልተቻለም።</translation>
 <translation id="1269641567813814718">ማሸነፍ</translation>
 <translation id="1291104554099683393">በትናንሽ ክፍሎች ጽሑፉን ለማጋራት ይሞክሩ።</translation>
@@ -56,6 +57,7 @@
 <translation id="2435457462613246316">የይለፍ ቃል አሳይ</translation>
 <translation id="24452542372838207">ማሳወቂያን ዘርጋ</translation>
 <translation id="2445449901874883781">ከፍተኛ ትፍገትን ተጠቀም</translation>
+<translation id="2448407890032181691">የንክኪ ዒላማ በቀኝ በኩል ወደ ታች ተንቀሳቅሷል። እዚህ መታ ያድርጉ።</translation>
 <translation id="2482878487686419369">ማስታወቂያዎች</translation>
 <translation id="2497284189126895209">ሁሉም ፋይሎች</translation>
 <translation id="2515586267016047495">Alt</translation>
@@ -141,6 +143,7 @@
 <translation id="5606865426897221650">ትር</translation>
 <translation id="5613020302032141669">ግራ ቀስት</translation>
 <translation id="5633029987065897167">ባዶ</translation>
+<translation id="5651438382973553530">የንክኪ ዒላማ በግራ በኩል ወደ ታች ተንቀሳቅሷል። እዚህ መታ ያድርጉ።</translation>
 <translation id="5754277640426581776">{MINUTES,plural, =1{1 ደቂቃ}one{# ደቂቃዎች}other{# ደቂቃዎች}}</translation>
 <translation id="5763338081255973061">{DAYS,plural, =0{ዛሬ ንቁ}=1{ከ1 ቀን በፊት ንቁ ነበር}one{ከ# ቀኖች በፊት ንቁ ነበር}other{ከ# ቀኖች በፊት ንቁ ነበር}}</translation>
 <translation id="5768079895599174203">{DAYS,plural, =1{1 ቀን እና }one{# ቀኖች እና }other{# ቀኖች እና }}</translation>
diff --git a/ui/strings/translations/ui_strings_as.xtb b/ui/strings/translations/ui_strings_as.xtb
index b131f8f..7cfdc0c 100644
--- a/ui/strings/translations/ui_strings_as.xtb
+++ b/ui/strings/translations/ui_strings_as.xtb
@@ -9,6 +9,7 @@
 <translation id="1178017578188974117">{DAYS,plural, =1{১ দিন পূৰ্বে}one{# দিন পূৰ্বে}other{# দিন পূৰ্বে}}</translation>
 <translation id="1181037720776840403">আঁতৰাওক</translation>
 <translation id="1243314992276662751">আপল’ড কৰক</translation>
+<translation id="1253734725326687145">স্পৰ্শৰ লক্ষ্য সোঁফালে ওপৰলৈ নিয়া হৈছে। ইয়াত টিপক।</translation>
 <translation id="1266864766717917324"><ph name="CONTENT_TYPE" /> শ্বেয়াৰ কৰিব পৰা নগ’ল</translation>
 <translation id="1269641567813814718">Win</translation>
 <translation id="1291104554099683393">পাঠখিনি সৰু সৰুকৈ ভাগ কৰি শ্বেয়াৰ কৰিবলৈ চেষ্টা কৰক।</translation>
@@ -56,6 +57,7 @@
 <translation id="2435457462613246316">পাছৱৰ্ড দেখুৱাওক</translation>
 <translation id="24452542372838207">জাননী বিস্তাৰ কৰক</translation>
 <translation id="2445449901874883781">উচ্চ ঘনত্ব ব্যৱহাৰ কৰক</translation>
+<translation id="2448407890032181691">স্পৰ্শৰ লক্ষ্য সোঁফালে তললৈ নিয়া হৈছে। ইয়াত টিপক।</translation>
 <translation id="2482878487686419369">জাননী</translation>
 <translation id="2497284189126895209">সকলো ফাইল</translation>
 <translation id="2515586267016047495">Alt</translation>
@@ -141,6 +143,7 @@
 <translation id="5606865426897221650">টেব</translation>
 <translation id="5613020302032141669">বাওঁমুৱা কাঁড়</translation>
 <translation id="5633029987065897167">খালী</translation>
+<translation id="5651438382973553530">স্পৰ্শৰ লক্ষ্য বাওঁফালে তললৈ নিয়া হৈছে। ইয়াত টিপক।</translation>
 <translation id="5754277640426581776">{MINUTES,plural, =1{১ মিনিট}one{# মিনিট}other{# মিনিট}}</translation>
 <translation id="5763338081255973061">{DAYS,plural, =0{আজি সক্ৰিয় হৈছে}=1{১দিনৰ পূৰ্বে সক্ৰিয় আছিল}one{#দিনৰ পূৰ্বে সক্ৰিয় আছিল}other{#দিনৰ পূৰ্বে সক্ৰিয় আছিল}}</translation>
 <translation id="5768079895599174203">{DAYS,plural, =1{১দিন আৰু }one{# দিন আৰু }other{# দিন আৰু }}</translation>
diff --git a/ui/strings/translations/ui_strings_be.xtb b/ui/strings/translations/ui_strings_be.xtb
index 6cbf2c3..d5b8d43 100644
--- a/ui/strings/translations/ui_strings_be.xtb
+++ b/ui/strings/translations/ui_strings_be.xtb
@@ -9,6 +9,7 @@
 <translation id="1178017578188974117">{DAYS,plural, =1{1 дзень таму}one{# дзень таму}few{# дні таму}many{# дзён таму}other{# дня таму}}</translation>
 <translation id="1181037720776840403">Выдаліць</translation>
 <translation id="1243314992276662751">Запампаваць</translation>
+<translation id="1253734725326687145">Мэтавая зона дотыку перамешчана ў правы верхні вугал. Дакраніцеся тут.</translation>
 <translation id="1266864766717917324">Не ўдалося абагуліць змесціва наступнага тыпу: <ph name="CONTENT_TYPE" /></translation>
 <translation id="1269641567813814718">Win</translation>
 <translation id="1291104554099683393">Паспрабуйце абагуліць тэкст меншымі кавалкамі.</translation>
@@ -56,6 +57,7 @@
 <translation id="2435457462613246316">Паказаць пароль</translation>
 <translation id="24452542372838207">Разгарнуць апавяшчэнне</translation>
 <translation id="2445449901874883781">Выкарыстоўваць высокую шчыльнасць</translation>
+<translation id="2448407890032181691">Мэтавая зона дотыку перамешчана ў правы ніжні вугал. Дакраніцеся тут.</translation>
 <translation id="2482878487686419369">Апавяшчэнні</translation>
 <translation id="2497284189126895209">Усе файлы</translation>
 <translation id="2515586267016047495">Alt</translation>
@@ -141,6 +143,7 @@
 <translation id="5606865426897221650">Tab</translation>
 <translation id="5613020302032141669">Стрэлка ўлева</translation>
 <translation id="5633029987065897167">Змесціва няма</translation>
+<translation id="5651438382973553530">Мэтавая зона дотыку перамешчана ў левы ніжні вугал. Дакраніцеся тут.</translation>
 <translation id="5754277640426581776">{MINUTES,plural, =1{1 хв}one{# хв}few{# хв}many{# хв}other{# хв}}</translation>
 <translation id="5763338081255973061">{DAYS,plural, =0{Апошнія дзеянні адбываліся сёння}=1{Апошнія дзеянні: дзень таму}one{Апошнія дзеянні: # дзень таму}few{Апошнія дзеянні: # дні таму}many{Апошнія дзеянні: # дзён таму}other{Апошнія дзеянні: # дня таму}}</translation>
 <translation id="5768079895599174203">{DAYS,plural, =1{1 дзень і }one{# дзень і }few{# дні і }many{# дзён і }other{# дня і }}</translation>
diff --git a/ui/strings/translations/ui_strings_bg.xtb b/ui/strings/translations/ui_strings_bg.xtb
index aee0370..d17ba9b2 100644
--- a/ui/strings/translations/ui_strings_bg.xtb
+++ b/ui/strings/translations/ui_strings_bg.xtb
@@ -9,6 +9,7 @@
 <translation id="1178017578188974117">{DAYS,plural, =1{Преди 1 ден}other{Преди # дни}}</translation>
 <translation id="1181037720776840403">Премахване</translation>
 <translation id="1243314992276662751">Качване</translation>
+<translation id="1253734725326687145">Целта за докосване бе преместена горе вдясно. Докоснете тук.</translation>
 <translation id="1266864766717917324">Споделянето на <ph name="CONTENT_TYPE" /> не бе възможно</translation>
 <translation id="1269641567813814718">Win</translation>
 <translation id="1291104554099683393">Опитайте да споделите текста на по-малки части.</translation>
@@ -56,6 +57,7 @@
 <translation id="2435457462613246316">Показване на паролата</translation>
 <translation id="24452542372838207">Разгъване на известието</translation>
 <translation id="2445449901874883781">Използване на висока плътност</translation>
+<translation id="2448407890032181691">Целта за докосване бе преместена долу вдясно. Докоснете тук.</translation>
 <translation id="2482878487686419369">Известия</translation>
 <translation id="2497284189126895209">Всички файлове</translation>
 <translation id="2515586267016047495">Alt</translation>
@@ -141,6 +143,7 @@
 <translation id="5606865426897221650">Tab</translation>
 <translation id="5613020302032141669">Стрелка наляво</translation>
 <translation id="5633029987065897167">Празно</translation>
+<translation id="5651438382973553530">Целта за докосване бе преместена долу вляво. Докоснете тук.</translation>
 <translation id="5754277640426581776">{MINUTES,plural, =1{1 мин}other{# мин}}</translation>
 <translation id="5763338081255973061">{DAYS,plural, =0{Активно днес}=1{Активно преди 1 ден}other{Активно преди # дни}}</translation>
 <translation id="5768079895599174203">{DAYS,plural, =1{1 ден и }other{# дни и }}</translation>
diff --git a/ui/strings/translations/ui_strings_ca.xtb b/ui/strings/translations/ui_strings_ca.xtb
index f168fb3..7ad09eeb3 100644
--- a/ui/strings/translations/ui_strings_ca.xtb
+++ b/ui/strings/translations/ui_strings_ca.xtb
@@ -9,6 +9,7 @@
 <translation id="1178017578188974117">{DAYS,plural, =1{Fa 1 dia}other{Fa # dies}}</translation>
 <translation id="1181037720776840403">Suprimeix</translation>
 <translation id="1243314992276662751">Penja</translation>
+<translation id="1253734725326687145">L'objectiu tàctil s'ha mogut a la part superior dreta. Toca aquí.</translation>
 <translation id="1266864766717917324">No s'ha pogut compartir <ph name="CONTENT_TYPE" />.</translation>
 <translation id="1269641567813814718">Win</translation>
 <translation id="1291104554099683393">Prova de compartir el text en fragments més petits.</translation>
@@ -56,6 +57,7 @@
 <translation id="2435457462613246316">Mostra la contrasenya</translation>
 <translation id="24452542372838207">Desplega la notificació</translation>
 <translation id="2445449901874883781">Utilitza una densitat alta</translation>
+<translation id="2448407890032181691">L'objectiu tàctil s'ha mogut a la part inferior dreta. Toca aquí.</translation>
 <translation id="2482878487686419369">Notificacions</translation>
 <translation id="2497284189126895209">Tots els fitxers</translation>
 <translation id="2515586267016047495">Alt</translation>
@@ -141,6 +143,7 @@
 <translation id="5606865426897221650">Tab</translation>
 <translation id="5613020302032141669">Fletxa esquerra</translation>
 <translation id="5633029987065897167">Buit</translation>
+<translation id="5651438382973553530">L'objectiu tàctil s'ha mogut a la part inferior esquerra. Toca aquí.</translation>
 <translation id="5754277640426581776">{MINUTES,plural, =1{1 min}other{# min}}</translation>
 <translation id="5763338081255973061">{DAYS,plural, =0{Actiu avui}=1{Actiu fa 1 dia}other{Actiu fa # dies}}</translation>
 <translation id="5768079895599174203">{DAYS,plural, =1{1 dia i }other{# dies i }}</translation>
diff --git a/ui/strings/translations/ui_strings_cy.xtb b/ui/strings/translations/ui_strings_cy.xtb
index fc0c9aa..ddec417 100644
--- a/ui/strings/translations/ui_strings_cy.xtb
+++ b/ui/strings/translations/ui_strings_cy.xtb
@@ -9,6 +9,7 @@
 <translation id="1178017578188974117">{DAYS,plural, =1{1 Diwrnod yn Ôl}zero{# Diwrnod yn Ôl}two{# Ddiwrnod yn Ôl}few{# Diwrnod yn Ôl}many{# Diwrnod yn Ôl}other{# Diwrnod yn Ôl}}</translation>
 <translation id="1181037720776840403">Dileu</translation>
 <translation id="1243314992276662751">Uwchlwytho</translation>
+<translation id="1253734725326687145">Symudwyd y targed cyffwrdd i'r dde uchaf. Tapiwch yma.</translation>
 <translation id="1266864766717917324">Ni ellid rhannu <ph name="CONTENT_TYPE" /></translation>
 <translation id="1269641567813814718">Ennill</translation>
 <translation id="1291104554099683393">Rhowch gynnig ar rannu'r testun mewn darnau llai.</translation>
@@ -56,6 +57,7 @@
 <translation id="2435457462613246316">Dangos y cyfrinair</translation>
 <translation id="24452542372838207">Ehangu'r hysbysiad</translation>
 <translation id="2445449901874883781">Defnyddio dwysedd uchel</translation>
+<translation id="2448407890032181691">Symudwyd y targed cyffwrdd i'r gwaelod ar y dde. Tapiwch yma.</translation>
 <translation id="2482878487686419369">Hysbysiadau</translation>
 <translation id="2497284189126895209">Pob Ffeil</translation>
 <translation id="2515586267016047495">Alt</translation>
@@ -141,6 +143,7 @@
 <translation id="5606865426897221650">Tab</translation>
 <translation id="5613020302032141669">Saeth Chwith</translation>
 <translation id="5633029987065897167">Gwag</translation>
+<translation id="5651438382973553530">Symudwyd y targed cyffwrdd i'r gwaelod ar y chwith. Tapiwch yma.</translation>
 <translation id="5754277640426581776">{MINUTES,plural, =1{1 fun}zero{# mun}two{# fun}few{# mun}many{# mun}other{# mun}}</translation>
 <translation id="5763338081255973061">{DAYS,plural, =0{Yma heddiw}=1{Yma 1 diwrnod yn ôl}two{Yma # ddiwrnod yn ôl}few{Yma # diwrnod yn ôl}many{Yma # diwrnod yn ôl}other{Yma # diwrnod yn ôl}}</translation>
 <translation id="5768079895599174203">{DAYS,plural, =1{1 diwrnod a }zero{# diwrnod a }two{# ddiwrnod a }few{# diwrnod a }many{# diwrnod a }other{# diwrnod a }}</translation>
diff --git a/ui/strings/translations/ui_strings_da.xtb b/ui/strings/translations/ui_strings_da.xtb
index 69f40e4..c04b609 100644
--- a/ui/strings/translations/ui_strings_da.xtb
+++ b/ui/strings/translations/ui_strings_da.xtb
@@ -9,6 +9,7 @@
 <translation id="1178017578188974117">{DAYS,plural, =1{1 dag siden}one{# dag siden}other{# dage siden}}</translation>
 <translation id="1181037720776840403">Fjern</translation>
 <translation id="1243314992276662751">Upload</translation>
+<translation id="1253734725326687145">Berøringsområdet er flyttet til øverste højre hjørne. Tryk her.</translation>
 <translation id="1266864766717917324">Det var ikke muligt at dele <ph name="CONTENT_TYPE" /></translation>
 <translation id="1269641567813814718">Win</translation>
 <translation id="1291104554099683393">Prøv at dele kortere stykker tekst.</translation>
@@ -56,6 +57,7 @@
 <translation id="2435457462613246316">Vis adgangskode</translation>
 <translation id="24452542372838207">Udvid notifikation</translation>
 <translation id="2445449901874883781">Brug høj tæthed</translation>
+<translation id="2448407890032181691">Berøringsområdet er flyttet til nederste højre hjørne. Tryk her.</translation>
 <translation id="2482878487686419369">Notifikationer</translation>
 <translation id="2497284189126895209">Alle filer</translation>
 <translation id="2515586267016047495">Alt</translation>
@@ -141,6 +143,7 @@
 <translation id="5606865426897221650">Tab</translation>
 <translation id="5613020302032141669">Venstrepil</translation>
 <translation id="5633029987065897167">Tom</translation>
+<translation id="5651438382973553530">Berøringsområdet er flyttet til nederste venstre hjørne. Tryk her.</translation>
 <translation id="5754277640426581776">{MINUTES,plural, =1{1 min.}one{# min.}other{# min.}}</translation>
 <translation id="5763338081255973061">{DAYS,plural, =0{Aktiv i dag}=1{Aktiv for 1 dag siden}one{Aktiv for # dag siden}other{Aktiv for # dage siden}}</translation>
 <translation id="5768079895599174203">{DAYS,plural, =1{1 dag og }one{# dage og }other{# dage og }}</translation>
diff --git a/ui/strings/translations/ui_strings_de.xtb b/ui/strings/translations/ui_strings_de.xtb
index 934a6823..9197367 100644
--- a/ui/strings/translations/ui_strings_de.xtb
+++ b/ui/strings/translations/ui_strings_de.xtb
@@ -9,6 +9,7 @@
 <translation id="1178017578188974117">{DAYS,plural, =1{vor 1 Tag}other{vor # Tagen}}</translation>
 <translation id="1181037720776840403">Entfernen</translation>
 <translation id="1243314992276662751">Hochladen</translation>
+<translation id="1253734725326687145">Berührungsziel wurde nach oben rechts verschoben. Hier tippen.</translation>
 <translation id="1266864766717917324"><ph name="CONTENT_TYPE" /> konnte nicht geteilt werden</translation>
 <translation id="1269641567813814718">Win</translation>
 <translation id="1291104554099683393">Bitte teile den Text in mehrere Abschnitte ein.</translation>
@@ -56,6 +57,7 @@
 <translation id="2435457462613246316">Passwort anzeigen</translation>
 <translation id="24452542372838207">Benachrichtigung erweitern</translation>
 <translation id="2445449901874883781">Hohe Anzeigedichte verwenden</translation>
+<translation id="2448407890032181691">Berührungsziel wurde nach rechts unten verschoben. Hier tippen.</translation>
 <translation id="2482878487686419369">Benachrichtigungen</translation>
 <translation id="2497284189126895209">Alle Dateien</translation>
 <translation id="2515586267016047495">Alt</translation>
@@ -141,6 +143,7 @@
 <translation id="5606865426897221650">Tab</translation>
 <translation id="5613020302032141669">Linkspfeil</translation>
 <translation id="5633029987065897167">Leer</translation>
+<translation id="5651438382973553530">Berührungszielbereich wurde nach links unten verschoben. Hier tippen.</translation>
 <translation id="5754277640426581776">{MINUTES,plural, =1{1 min}other{# min}}</translation>
 <translation id="5763338081255973061">{DAYS,plural, =0{Heute aktiv}=1{Vor 1 Tag aktiv}other{Vor # Tagen aktiv}}</translation>
 <translation id="5768079895599174203">{DAYS,plural, =1{1 Tag und  }other{# Tage und  }}</translation>
diff --git a/ui/strings/translations/ui_strings_el.xtb b/ui/strings/translations/ui_strings_el.xtb
index e65c1dd..eb1209b2 100644
--- a/ui/strings/translations/ui_strings_el.xtb
+++ b/ui/strings/translations/ui_strings_el.xtb
@@ -9,6 +9,7 @@
 <translation id="1178017578188974117">{DAYS,plural, =1{Πριν από 1 ημέρα}other{Πριν από # ημέρες}}</translation>
 <translation id="1181037720776840403">Κατάργηση</translation>
 <translation id="1243314992276662751">Μεταφόρτωση</translation>
+<translation id="1253734725326687145">Ο στόχος αφής μετακινήθηκε επάνω δεξιά. Πατήστε εδώ.</translation>
 <translation id="1266864766717917324">Δεν ήταν δυνατή η κοινοποίηση <ph name="CONTENT_TYPE" /></translation>
 <translation id="1269641567813814718">Win</translation>
 <translation id="1291104554099683393">Δοκιμάστε να μοιραστείτε το κείμενο σε μικρότερα τμήματα.</translation>
@@ -56,6 +57,7 @@
 <translation id="2435457462613246316">Εμφάνιση κωδικού πρόσβασης</translation>
 <translation id="24452542372838207">Ανάπτυξη ειδοποίησης</translation>
 <translation id="2445449901874883781">Χρήση υψηλής πυκνότητας</translation>
+<translation id="2448407890032181691">Ο στόχος αφής μετακινήθηκε κάτω δεξιά. Πατήστε εδώ.</translation>
 <translation id="2482878487686419369">Ειδοποιήσεις</translation>
 <translation id="2497284189126895209">Όλα τα αρχεία</translation>
 <translation id="2515586267016047495">Alt</translation>
@@ -141,6 +143,7 @@
 <translation id="5606865426897221650">Καρτέλα</translation>
 <translation id="5613020302032141669">Αριστερό βέλος</translation>
 <translation id="5633029987065897167">Κενό</translation>
+<translation id="5651438382973553530">Ο στόχος αφής μετακινήθηκε κάτω αριστερά. Πατήστε εδώ.</translation>
 <translation id="5754277640426581776">{MINUTES,plural, =1{1 λεπτό}other{# λεπτά}}</translation>
 <translation id="5763338081255973061">{DAYS,plural, =0{Ενεργή σήμερα}=1{Ενεργή 1 ημέρα πριν}other{Ενεργή # ημέρες πριν}}</translation>
 <translation id="5768079895599174203">{DAYS,plural, =1{1 ημέρα και }other{# ημέρες και }}</translation>
diff --git a/ui/strings/translations/ui_strings_en-GB.xtb b/ui/strings/translations/ui_strings_en-GB.xtb
index 39fbc167..f994ca0 100644
--- a/ui/strings/translations/ui_strings_en-GB.xtb
+++ b/ui/strings/translations/ui_strings_en-GB.xtb
@@ -9,6 +9,7 @@
 <translation id="1178017578188974117">{DAYS,plural, =1{1 Day Ago}other{# Days Ago}}</translation>
 <translation id="1181037720776840403">Remove</translation>
 <translation id="1243314992276662751">Upload</translation>
+<translation id="1253734725326687145">Touch target moved to top right. Tap here.</translation>
 <translation id="1266864766717917324">Couldn't share <ph name="CONTENT_TYPE" /></translation>
 <translation id="1269641567813814718">Win</translation>
 <translation id="1291104554099683393">Try sharing the text in smaller chunks.</translation>
@@ -56,6 +57,7 @@
 <translation id="2435457462613246316">Show password</translation>
 <translation id="24452542372838207">Expand notification</translation>
 <translation id="2445449901874883781">Use high density</translation>
+<translation id="2448407890032181691">Touch target moved to bottom right. Tap here.</translation>
 <translation id="2482878487686419369">Notifications</translation>
 <translation id="2497284189126895209">All Files</translation>
 <translation id="2515586267016047495">Alt</translation>
@@ -141,6 +143,7 @@
 <translation id="5606865426897221650">Tab</translation>
 <translation id="5613020302032141669">Left arrow</translation>
 <translation id="5633029987065897167">Empty</translation>
+<translation id="5651438382973553530">Touch target moved to bottom left. Tap here.</translation>
 <translation id="5754277640426581776">{MINUTES,plural, =1{1 min}other{# mins}}</translation>
 <translation id="5763338081255973061">{DAYS,plural, =0{Active today}=1{Active 1 day ago}other{Active # days ago}}</translation>
 <translation id="5768079895599174203">{DAYS,plural, =1{1 day and }other{# days and }}</translation>
diff --git a/ui/strings/translations/ui_strings_es.xtb b/ui/strings/translations/ui_strings_es.xtb
index d81d879..03cc48c 100644
--- a/ui/strings/translations/ui_strings_es.xtb
+++ b/ui/strings/translations/ui_strings_es.xtb
@@ -9,6 +9,7 @@
 <translation id="1178017578188974117">{DAYS,plural, =1{hace 1 día}other{hace # días}}</translation>
 <translation id="1181037720776840403">Quitar</translation>
 <translation id="1243314992276662751">Subir</translation>
+<translation id="1253734725326687145">El área táctil se ha movido a la parte superior derecha. Toca aquí.</translation>
 <translation id="1266864766717917324">No se ha podido compartir: <ph name="CONTENT_TYPE" /></translation>
 <translation id="1269641567813814718">Win</translation>
 <translation id="1291104554099683393">Prueba a compartir el texto dividiéndolo en partes más pequeñas.</translation>
@@ -56,6 +57,7 @@
 <translation id="2435457462613246316">Mostrar contraseña</translation>
 <translation id="24452542372838207">Mostrar notificación</translation>
 <translation id="2445449901874883781">Usar alta densidad</translation>
+<translation id="2448407890032181691">El área táctil se ha movido a la parte inferior derecha. Toca aquí.</translation>
 <translation id="2482878487686419369">Notificaciones</translation>
 <translation id="2497284189126895209">Todos los archivos</translation>
 <translation id="2515586267016047495">Alt</translation>
@@ -141,6 +143,7 @@
 <translation id="5606865426897221650">Tabulador</translation>
 <translation id="5613020302032141669">Flecha izquierda</translation>
 <translation id="5633029987065897167">Vacío</translation>
+<translation id="5651438382973553530">El área táctil se ha movido a la parte inferior izquierda. Toca aquí.</translation>
 <translation id="5754277640426581776">{MINUTES,plural, =1{1 min}other{# min}}</translation>
 <translation id="5763338081255973061">{DAYS,plural, =0{Activo hoy}=1{Activo hace 1 día}other{Activo hace # días}}</translation>
 <translation id="5768079895599174203">{DAYS,plural, =1{1 día y }other{# días y }}</translation>
diff --git a/ui/strings/translations/ui_strings_et.xtb b/ui/strings/translations/ui_strings_et.xtb
index f71c2f4..3753ff0 100644
--- a/ui/strings/translations/ui_strings_et.xtb
+++ b/ui/strings/translations/ui_strings_et.xtb
@@ -9,6 +9,7 @@
 <translation id="1178017578188974117">{DAYS,plural, =1{1 päev tagasi}other{# päeva tagasi}}</translation>
 <translation id="1181037720776840403">Eemalda</translation>
 <translation id="1243314992276662751">Laadi üles</translation>
+<translation id="1253734725326687145">Puute sihtmärk liikus paremasse ülanurka. Puudutage siin.</translation>
 <translation id="1266864766717917324">Üksust <ph name="CONTENT_TYPE" /> ei õnnestunud jagada</translation>
 <translation id="1269641567813814718">Win</translation>
 <translation id="1291104554099683393">Proovige teksti jagada väiksemate lõikudena.</translation>
@@ -56,6 +57,7 @@
 <translation id="2435457462613246316">Kuva parool</translation>
 <translation id="24452542372838207">Laienda märguannet</translation>
 <translation id="2445449901874883781">Kasuta kõrget tihedust</translation>
+<translation id="2448407890032181691">Puute sihtmärk liikus paremasse alanurka. Puudutage siin.</translation>
 <translation id="2482878487686419369">Märguanded</translation>
 <translation id="2497284189126895209">Kõik failid</translation>
 <translation id="2515586267016047495">Alt</translation>
@@ -141,6 +143,7 @@
 <translation id="5606865426897221650">Tabulaator</translation>
 <translation id="5613020302032141669">Vasaknool</translation>
 <translation id="5633029987065897167">Tühi</translation>
+<translation id="5651438382973553530">Puute sihtmärk liikus vasakusse alanurka. Puudutage siin.</translation>
 <translation id="5754277640426581776">{MINUTES,plural, =1{1 min}other{# min}}</translation>
 <translation id="5763338081255973061">{DAYS,plural, =0{Aktiivne täna}=1{Aktiivne 1 päev tagasi}other{Aktiivne # päeva tagasi}}</translation>
 <translation id="5768079895599174203">{DAYS,plural, =1{1 päev ja }other{# päeva ja }}</translation>
diff --git a/ui/strings/translations/ui_strings_fi.xtb b/ui/strings/translations/ui_strings_fi.xtb
index f451c0af..67140cd 100644
--- a/ui/strings/translations/ui_strings_fi.xtb
+++ b/ui/strings/translations/ui_strings_fi.xtb
@@ -9,6 +9,7 @@
 <translation id="1178017578188974117">{DAYS,plural, =1{1 päivä sitten}other{# päivää sitten}}</translation>
 <translation id="1181037720776840403">Poista</translation>
 <translation id="1243314992276662751">Lähetä</translation>
+<translation id="1253734725326687145">Kosketusalue siirretty oikeaan yläkulmaan. Napauta tästä.</translation>
 <translation id="1266864766717917324">Jakaminen epäonnistui: <ph name="CONTENT_TYPE" /></translation>
 <translation id="1269641567813814718">Win</translation>
 <translation id="1291104554099683393">Kokeile jakaa teksti pienempinä pätkinä.</translation>
@@ -56,6 +57,7 @@
 <translation id="2435457462613246316">Näytä salasana</translation>
 <translation id="24452542372838207">Laajenna ilmoitus</translation>
 <translation id="2445449901874883781">Korkea tiheys</translation>
+<translation id="2448407890032181691">Kosketusalue siirretty oikeaan alakulmaan. Napauta tästä.</translation>
 <translation id="2482878487686419369">Ilmoitukset</translation>
 <translation id="2497284189126895209">Kaikki tiedostot</translation>
 <translation id="2515586267016047495">Alt</translation>
@@ -141,6 +143,7 @@
 <translation id="5606865426897221650">Sarkain</translation>
 <translation id="5613020302032141669">Nuoli vas.</translation>
 <translation id="5633029987065897167">Tyhjä</translation>
+<translation id="5651438382973553530">Kosketusalue siirretty vasempaan alakulmaan. Napauta tästä.</translation>
 <translation id="5754277640426581776">{MINUTES,plural, =1{1 min}other{# min}}</translation>
 <translation id="5763338081255973061">{DAYS,plural, =0{Aktiivinen tänään}=1{Aktiivinen 1 päivä sitten}other{Aktiivinen # päivää sitten}}</translation>
 <translation id="5768079895599174203">{DAYS,plural, =1{1 päivä ja }other{# päivää ja }}</translation>
diff --git a/ui/strings/translations/ui_strings_fil.xtb b/ui/strings/translations/ui_strings_fil.xtb
index 3965b14..43ced37 100644
--- a/ui/strings/translations/ui_strings_fil.xtb
+++ b/ui/strings/translations/ui_strings_fil.xtb
@@ -9,6 +9,7 @@
 <translation id="1178017578188974117">{DAYS,plural, =1{1 Araw ang Nakalipas}one{# Araw ang Nakalipas}other{# na Araw ang Nakalipas}}</translation>
 <translation id="1181037720776840403">Alisin</translation>
 <translation id="1243314992276662751">I-upload</translation>
+<translation id="1253734725326687145">Inilipat ang pipindutin sa kanang bahagi sa itaas. Mag-tap dito.</translation>
 <translation id="1266864766717917324">Hindi maibahagi ang <ph name="CONTENT_TYPE" /></translation>
 <translation id="1269641567813814718">Win</translation>
 <translation id="1291104554099683393">Subukang ibahagi ang text sa mas maliliit na bahagi.</translation>
@@ -56,6 +57,7 @@
 <translation id="2435457462613246316">Ipakita ang password</translation>
 <translation id="24452542372838207">Palawakin ang notification</translation>
 <translation id="2445449901874883781">Gumamit ng mataas na density</translation>
+<translation id="2448407890032181691">Inilipat ang pipindutin sa kanang bahagi sa ibaba. Mag-tap dito.</translation>
 <translation id="2482878487686419369">Mga Abiso</translation>
 <translation id="2497284189126895209">Lahat ng Mga File</translation>
 <translation id="2515586267016047495">Alt</translation>
@@ -141,6 +143,7 @@
 <translation id="5606865426897221650">Tab</translation>
 <translation id="5613020302032141669">KAliwang  Arrow</translation>
 <translation id="5633029987065897167">Walang laman</translation>
+<translation id="5651438382973553530">Inilipat ang pipindutin sa kaliwang bahagi sa ibaba. Mag-tap dito.</translation>
 <translation id="5754277640426581776">{MINUTES,plural, =1{1 minuto}one{# minuto}other{# na minuto}}</translation>
 <translation id="5763338081255973061">{DAYS,plural, =0{Aktibo ngayong araw}=1{Aktibo 1 araw ang nakalipas}one{Aktibo # araw ang nakalipas}other{Aktibo # na araw ang nakalipas}}</translation>
 <translation id="5768079895599174203">{DAYS,plural, =1{1 araw at }one{# araw at }other{# na araw at }}</translation>
diff --git a/ui/strings/translations/ui_strings_fr-CA.xtb b/ui/strings/translations/ui_strings_fr-CA.xtb
index 95827256..ec64c05 100644
--- a/ui/strings/translations/ui_strings_fr-CA.xtb
+++ b/ui/strings/translations/ui_strings_fr-CA.xtb
@@ -9,6 +9,7 @@
 <translation id="1178017578188974117">{DAYS,plural, =1{Il y a 1 jour}one{Il y a # jour}other{Il y a # jours}}</translation>
 <translation id="1181037720776840403">Supprimer</translation>
 <translation id="1243314992276662751">Téléverser</translation>
+<translation id="1253734725326687145">La cible tactile a été déplacée en haut à droite. Touchez ici.</translation>
 <translation id="1266864766717917324">Partage impossible du contenu suivant : <ph name="CONTENT_TYPE" /></translation>
 <translation id="1269641567813814718">Win</translation>
 <translation id="1291104554099683393">Essayez de partager le texte en plusieurs parties plus petites.</translation>
@@ -56,6 +57,7 @@
 <translation id="2435457462613246316">Affich. mot de passe</translation>
 <translation id="24452542372838207">Développer la notification</translation>
 <translation id="2445449901874883781">Utiliser haute densité</translation>
+<translation id="2448407890032181691">La cible tactile a été déplacée en bas à droite. Touchez ici.</translation>
 <translation id="2482878487686419369">Notifications</translation>
 <translation id="2497284189126895209">Tous les fichiers</translation>
 <translation id="2515586267016047495">Alt</translation>
@@ -141,6 +143,7 @@
 <translation id="5606865426897221650">Onglet</translation>
 <translation id="5613020302032141669">Flèche gauche</translation>
 <translation id="5633029987065897167">Vide</translation>
+<translation id="5651438382973553530">La cible tactile a été déplacée en bas à gauche. Touchez ici.</translation>
 <translation id="5754277640426581776">{MINUTES,plural, =1{1 min}one{# min}other{# min}}</translation>
 <translation id="5763338081255973061">{DAYS,plural, =0{Actif aujourd'hui}=1{Actif il y a 1 jour}one{Actif il y a # jour}other{Actif il y a # jours}}</translation>
 <translation id="5768079895599174203">{DAYS,plural, =1{1 jour et }one{# jour et }other{# jours et }}</translation>
diff --git a/ui/strings/translations/ui_strings_fr.xtb b/ui/strings/translations/ui_strings_fr.xtb
index aa7a2c3..346a0805 100644
--- a/ui/strings/translations/ui_strings_fr.xtb
+++ b/ui/strings/translations/ui_strings_fr.xtb
@@ -9,6 +9,7 @@
 <translation id="1178017578188974117">{DAYS,plural, =1{il y a 1 jour}one{il y a # jour}other{il y a # jours}}</translation>
 <translation id="1181037720776840403">Supprimer</translation>
 <translation id="1243314992276662751">Importer</translation>
+<translation id="1253734725326687145">Cible tactile déplacée en haut à droite. Appuyez ici.</translation>
 <translation id="1266864766717917324">Impossible de partager le contenu suivant : <ph name="CONTENT_TYPE" /></translation>
 <translation id="1269641567813814718">Windows</translation>
 <translation id="1291104554099683393">Essayez de le partager en plusieurs fois.</translation>
@@ -56,6 +57,7 @@
 <translation id="2435457462613246316">Afficher le mot de passe</translation>
 <translation id="24452542372838207">Développer la notification</translation>
 <translation id="2445449901874883781">Utiliser une densité élevée</translation>
+<translation id="2448407890032181691">Cible tactile déplacée en bas à droite. Appuyez ici.</translation>
 <translation id="2482878487686419369">Notifications</translation>
 <translation id="2497284189126895209">Tous les fichiers</translation>
 <translation id="2515586267016047495">Alt</translation>
@@ -141,6 +143,7 @@
 <translation id="5606865426897221650">Tabulation</translation>
 <translation id="5613020302032141669">Gauche</translation>
 <translation id="5633029987065897167">Vide</translation>
+<translation id="5651438382973553530">Cible tactile déplacée en bas à gauche. Appuyez ici.</translation>
 <translation id="5754277640426581776">{MINUTES,plural, =1{1 min}one{# min}other{# min}}</translation>
 <translation id="5763338081255973061">{DAYS,plural, =0{Actif aujourd'hui}=1{Actif il y a 1 jour}one{Actif il y a # jour}other{Actif il y a # jours}}</translation>
 <translation id="5768079895599174203">{DAYS,plural, =1{1 jour et  }one{# jour et  }other{# jours et  }}</translation>
diff --git a/ui/strings/translations/ui_strings_gl.xtb b/ui/strings/translations/ui_strings_gl.xtb
index db8ff42..c6fbf40 100644
--- a/ui/strings/translations/ui_strings_gl.xtb
+++ b/ui/strings/translations/ui_strings_gl.xtb
@@ -9,6 +9,7 @@
 <translation id="1178017578188974117">{DAYS,plural, =1{Hai 1 día}other{Hai # días}}</translation>
 <translation id="1181037720776840403">Eliminar</translation>
 <translation id="1243314992276662751">Cargar</translation>
+<translation id="1253734725326687145">A área táctil moveuse á parte superior dereita. Toca aquí.</translation>
 <translation id="1266864766717917324">Non se puido compartir este contido: <ph name="CONTENT_TYPE" /></translation>
 <translation id="1269641567813814718">Win</translation>
 <translation id="1291104554099683393">Proba a compartilo dividíndoo en fragmentos máis pequenos.</translation>
@@ -56,6 +57,7 @@
 <translation id="2435457462613246316">Mostrar contrasinal</translation>
 <translation id="24452542372838207">Despregar notificación</translation>
 <translation id="2445449901874883781">Utilizar alta densidade</translation>
+<translation id="2448407890032181691">A área táctil moveuse á parte inferior dereita. Toca aquí.</translation>
 <translation id="2482878487686419369">Notificacións</translation>
 <translation id="2497284189126895209">Todos os ficheiros</translation>
 <translation id="2515586267016047495">Alt</translation>
@@ -141,6 +143,7 @@
 <translation id="5606865426897221650">Tabulador</translation>
 <translation id="5613020302032141669">Frecha para a esquerda</translation>
 <translation id="5633029987065897167">Baleiro</translation>
+<translation id="5651438382973553530">A área táctil moveuse á parte inferior esquerda. Toca aquí.</translation>
 <translation id="5754277640426581776">{MINUTES,plural, =1{Un minuto}other{# minutos}}</translation>
 <translation id="5763338081255973061">{DAYS,plural, =0{Dispositivo activo hoxe}=1{Dispositivo activo hai 1 día}other{Dispositivo activo hai # días}}</translation>
 <translation id="5768079895599174203">{DAYS,plural, =1{Un día e }other{# días e }}</translation>
diff --git a/ui/strings/translations/ui_strings_gu.xtb b/ui/strings/translations/ui_strings_gu.xtb
index 0ca278b1..077e894 100644
--- a/ui/strings/translations/ui_strings_gu.xtb
+++ b/ui/strings/translations/ui_strings_gu.xtb
@@ -9,6 +9,7 @@
 <translation id="1178017578188974117">{DAYS,plural, =1{1 દિવસ પહેલાં}one{# દિવસ પહેલાં}other{# દિવસ પહેલાં}}</translation>
 <translation id="1181037720776840403">કાઢી નાખો</translation>
 <translation id="1243314992276662751">અપલોડ કરો</translation>
+<translation id="1253734725326687145">ટચ માટેનું લક્ષ્ય સૌથી ઉપર જમણી બાજુએ ખસેડવામાં આવ્યું. અહીં ટૅપ કરો.</translation>
 <translation id="1266864766717917324"><ph name="CONTENT_TYPE" /> શેર કરી શકાયો નથી</translation>
 <translation id="1269641567813814718">Win</translation>
 <translation id="1291104554099683393">ટેક્સ્ટને નાના-નાના ટૂકડામાં શેર કરી જુઓ.</translation>
@@ -56,6 +57,7 @@
 <translation id="2435457462613246316">પાસવર્ડ બતાવો</translation>
 <translation id="24452542372838207">નોટિફિકેશન વિસ્તૃત કરો</translation>
 <translation id="2445449901874883781">વધારે ઘનતાનો ઉપયોગ કરો</translation>
+<translation id="2448407890032181691">ટચ માટેનું લક્ષ્ય સૌથી નીચે જમણી બાજુએ ખસેડવામાં આવ્યું. અહીં ટૅપ કરો.</translation>
 <translation id="2482878487686419369">નોટિફિકેશનો</translation>
 <translation id="2497284189126895209">બધી ફાઇલો</translation>
 <translation id="2515586267016047495">Alt</translation>
@@ -141,6 +143,7 @@
 <translation id="5606865426897221650">ટૅબ</translation>
 <translation id="5613020302032141669">ડાબો એરો</translation>
 <translation id="5633029987065897167">ખાલી</translation>
+<translation id="5651438382973553530">ટચ માટેનું લક્ષ્ય સૌથી નીચે ડાબી બાજુએ ખસેડવામાં આવ્યું. અહીં ટૅપ કરો.</translation>
 <translation id="5754277640426581776">{MINUTES,plural, =1{1 મિનિટ}one{# મિનિટ}other{# મિનિટ}}</translation>
 <translation id="5763338081255973061">{DAYS,plural, =0{આજે સક્રિય છે}=1{1 દિવસ પહેલાં સક્રિય હતું}one{# દિવસ પહેલાં સક્રિય હતું}other{# દિવસ પહેલાં સક્રિય હતું}}</translation>
 <translation id="5768079895599174203">{DAYS,plural, =1{1 દિવસ અને }one{# દિવસ અને }other{# દિવસ અને }}</translation>
diff --git a/ui/strings/translations/ui_strings_hi.xtb b/ui/strings/translations/ui_strings_hi.xtb
index 05de581..02412650 100644
--- a/ui/strings/translations/ui_strings_hi.xtb
+++ b/ui/strings/translations/ui_strings_hi.xtb
@@ -9,6 +9,7 @@
 <translation id="1178017578188974117">{DAYS,plural, =1{एक दिन पहले}one{# दिन पहले}other{# दिन पहले}}</translation>
 <translation id="1181037720776840403">हटाएं</translation>
 <translation id="1243314992276662751">अपलोड करें</translation>
+<translation id="1253734725326687145">टच टारगेट (स्क्रीन के वे हिस्से जहां छूने पर कोई कार्रवाई होती है) को सबसे ऊपर दाईं ओर ले जाया गया. यहां टैप करें.</translation>
 <translation id="1266864766717917324"><ph name="CONTENT_TYPE" /> शेयर नहीं किया जा सका</translation>
 <translation id="1269641567813814718">Win</translation>
 <translation id="1291104554099683393">टेक्स्ट को छोटे-छोटे हिस्सों में शेयर करने की कोशिश करें.</translation>
@@ -56,6 +57,7 @@
 <translation id="2435457462613246316">पासवर्ड दिखाएं</translation>
 <translation id="24452542372838207">पूरी सूचना दिखाएं</translation>
 <translation id="2445449901874883781">ज़्यादा सघनता का इस्तेमाल करें</translation>
+<translation id="2448407890032181691">टच टारगेट (स्क्रीन के वे हिस्से जहां छूने पर कोई कार्रवाई होती है) को सबसे नीचे दाईं ओर ले जाया गया. यहां टैप करें.</translation>
 <translation id="2482878487686419369">सूचनाएं</translation>
 <translation id="2497284189126895209">सभी फ़ाइलें</translation>
 <translation id="2515586267016047495">Alt</translation>
@@ -119,7 +121,7 @@
 <translation id="4729257764711776855">नंबर</translation>
 <translation id="4746179598275229723">एक्सटेंशन अनपिन किया गया</translation>
 <translation id="4788285488841504513">{MONTHS,plural, =1{1 माह शेष}one{# माह शेष}other{# माह शेष}}</translation>
-<translation id="4816695657735045067">{COUNT,plural, =1{गुप्त मोड का इस्तेमाल करने के लिए, आपके संगठन के पास कोई एक्सटेंशन होना चाहिए}one{गुप्त मोड का इस्तेमाल करने के लिए, आपके संगठन के पास कोई एक्सटेंशन होना चाहिए}other{गुप्त मोड का इस्तेमाल करने के लिए, आपके संगठन के पास कुछ एक्सटेंशन होने चाहिए}}</translation>
+<translation id="4816695657735045067">{COUNT,plural, =1{गुप्त मोड का इस्तेमाल करने के लिए, आपके संगठन को एक्सटेंशन की ज़रूरत है}one{गुप्त मोड का इस्तेमाल करने के लिए, आपके संगठन को एक्सटेंशन की ज़रूरत है}other{गुप्त मोड का इस्तेमाल करने के लिए, आपके संगठन को एक्सटेंशन की ज़रूरत है}}</translation>
 <translation id="482932175346970750">अपने ब्राउज़र में <ph name="BEGIN_BOLD" />chrome://extensions<ph name="END_BOLD" /> टाइप करें</translation>
 <translation id="4888938634149558681">कॉल करें</translation>
 <translation id="4895877746940133817"><ph name="TYPE_1" />, <ph name="TYPE_2" />, <ph name="TYPE_3" /></translation>
@@ -141,6 +143,7 @@
 <translation id="5606865426897221650">टैब</translation>
 <translation id="5613020302032141669">बायां तीर</translation>
 <translation id="5633029987065897167">कोई भी एंट्री मौजूद नहीं है</translation>
+<translation id="5651438382973553530">टच टारगेट (स्क्रीन के वे हिस्से जहां छूने पर कोई कार्रवाई होती है) को सबसे नीचे बाईं ओर ले जाया गया. यहां टैप करें.</translation>
 <translation id="5754277640426581776">{MINUTES,plural, =1{1 मिनट}one{# मिनट}other{# मिनट}}</translation>
 <translation id="5763338081255973061">{DAYS,plural, =0{आज चालू है}=1{1 दिन पहले चालू किया गया}one{# दिन पहले चालू किया गया}other{# दिन पहले चालू किया गया}}</translation>
 <translation id="5768079895599174203">{DAYS,plural, =1{1 दिन और }one{# दिन और }other{# दिन और }}</translation>
diff --git a/ui/strings/translations/ui_strings_hy.xtb b/ui/strings/translations/ui_strings_hy.xtb
index 3135108..01ed50f 100644
--- a/ui/strings/translations/ui_strings_hy.xtb
+++ b/ui/strings/translations/ui_strings_hy.xtb
@@ -9,6 +9,7 @@
 <translation id="1178017578188974117">{DAYS,plural, =1{1 օր առաջ}one{# օր առաջ}other{# օր առաջ}}</translation>
 <translation id="1181037720776840403">Ջնջել</translation>
 <translation id="1243314992276662751">Վերբեռնել</translation>
+<translation id="1253734725326687145">Հպման թիրախը տեղափոխվեց վերևի աջ անկյուն։ Հպեք այստեղ։</translation>
 <translation id="1266864766717917324">Չհաջողվեց ուղարկել բովանդակությունը (<ph name="CONTENT_TYPE" />)</translation>
 <translation id="1269641567813814718">Win</translation>
 <translation id="1291104554099683393">Փորձեք ուղարկել տեքստը մաս-մաս։</translation>
@@ -56,6 +57,7 @@
 <translation id="2435457462613246316">Ցույց տալ գաղտնաբառը</translation>
 <translation id="24452542372838207">Ընդարձակել</translation>
 <translation id="2445449901874883781">Ցույց տալ ավելի շատ պատուհաններ</translation>
+<translation id="2448407890032181691">Հպման թիրախը տեղափոխվեց ներքևի աջ անկյուն։ Հպեք այստեղ։</translation>
 <translation id="2482878487686419369">Ծանուցումներ</translation>
 <translation id="2497284189126895209">Բոլոր ֆայլերը</translation>
 <translation id="2515586267016047495">Alt</translation>
@@ -141,6 +143,7 @@
 <translation id="5606865426897221650">Ներդիր</translation>
 <translation id="5613020302032141669">Ձախ սլաք</translation>
 <translation id="5633029987065897167">Դատարկ</translation>
+<translation id="5651438382973553530">Հպման թիրախը տեղափոխվեց ներքևի ձախ անկյուն։ Հպեք այստեղ։</translation>
 <translation id="5754277640426581776">{MINUTES,plural, =1{1 րոպե}one{# րոպե}other{# րոպե}}</translation>
 <translation id="5763338081255973061">{DAYS,plural, =0{Այսօր ակտիվ է եղել}=1{Ակտիվ է եղել 1 օր առաջ}one{Ակտիվ է եղել # օր առաջ}other{Ակտիվ է եղել # օր առաջ}}</translation>
 <translation id="5768079895599174203">{DAYS,plural, =1{1 օր }one{# օր }other{# օր }}</translation>
diff --git a/ui/strings/translations/ui_strings_id.xtb b/ui/strings/translations/ui_strings_id.xtb
index fdc7cfc..d0da5a76 100644
--- a/ui/strings/translations/ui_strings_id.xtb
+++ b/ui/strings/translations/ui_strings_id.xtb
@@ -9,6 +9,7 @@
 <translation id="1178017578188974117">{DAYS,plural, =1{1 Hari Lalu}other{# Hari Lalu}}</translation>
 <translation id="1181037720776840403">Hapus</translation>
 <translation id="1243314992276662751">Upload</translation>
+<translation id="1253734725326687145">Target sentuh dipindahkan ke kanan atas. Ketuk di sini.</translation>
 <translation id="1266864766717917324">Tidak dapat membagikan <ph name="CONTENT_TYPE" /></translation>
 <translation id="1269641567813814718">Win</translation>
 <translation id="1291104554099683393">Coba bagikan teks dalam potongan yang lebih kecil.</translation>
@@ -56,6 +57,7 @@
 <translation id="2435457462613246316">Tampilkan sandi</translation>
 <translation id="24452542372838207">Luaskan notifikasi</translation>
 <translation id="2445449901874883781">Gunakan kepadatan tinggi</translation>
+<translation id="2448407890032181691">Target sentuh dipindahkan ke kanan bawah. Ketuk di sini.</translation>
 <translation id="2482878487686419369">Notifikasi</translation>
 <translation id="2497284189126895209">Semua Jenis File</translation>
 <translation id="2515586267016047495">Alt</translation>
@@ -141,6 +143,7 @@
 <translation id="5606865426897221650">Tab</translation>
 <translation id="5613020302032141669">Panah Kiri</translation>
 <translation id="5633029987065897167">Kosong</translation>
+<translation id="5651438382973553530">Target sentuh dipindahkan ke kiri bawah. Ketuk di sini.</translation>
 <translation id="5754277640426581776">{MINUTES,plural, =1{1 mnt}other{# mnt}}</translation>
 <translation id="5763338081255973061">{DAYS,plural, =0{Aktif hari ini}=1{Aktif 1 hari yang lalu}other{Aktif # hari yang lalu}}</translation>
 <translation id="5768079895599174203">{DAYS,plural, =1{1 hari dan }other{# hari dan }}</translation>
diff --git a/ui/strings/translations/ui_strings_is.xtb b/ui/strings/translations/ui_strings_is.xtb
index 93df17f..9d4e5db 100644
--- a/ui/strings/translations/ui_strings_is.xtb
+++ b/ui/strings/translations/ui_strings_is.xtb
@@ -9,6 +9,7 @@
 <translation id="1178017578188974117">{DAYS,plural, =1{Fyrir 1 degi}one{Fyrir # degi}other{Fyrir # dögum}}</translation>
 <translation id="1181037720776840403">Fjarlægja</translation>
 <translation id="1243314992276662751">Hlaða inn</translation>
+<translation id="1253734725326687145">Snertimið fært efst til hægri. Ýttu hér.</translation>
 <translation id="1266864766717917324">Ekki tókst að deila <ph name="CONTENT_TYPE" /></translation>
 <translation id="1269641567813814718">Win</translation>
 <translation id="1291104554099683393">Prófaðu að deila textanum í smærri hluta.</translation>
@@ -56,6 +57,7 @@
 <translation id="2435457462613246316">Sýna aðgangsorð</translation>
 <translation id="24452542372838207">Stækka tilkynningu</translation>
 <translation id="2445449901874883781">Nota mikinn þéttleika</translation>
+<translation id="2448407890032181691">Snertimið fært neðst til hægri. Ýttu hér.</translation>
 <translation id="2482878487686419369">Tilkynningar</translation>
 <translation id="2497284189126895209">Allar skrár</translation>
 <translation id="2515586267016047495">Alt</translation>
@@ -141,6 +143,7 @@
 <translation id="5606865426897221650">Dálkalykill</translation>
 <translation id="5613020302032141669">Ör til vinstri</translation>
 <translation id="5633029987065897167">Autt</translation>
+<translation id="5651438382973553530">Snertimið fært neðst til vinstri. Ýttu hér.</translation>
 <translation id="5754277640426581776">{MINUTES,plural, =1{1 mín.}one{# mín.}other{# mín.}}</translation>
 <translation id="5763338081255973061">{DAYS,plural, =0{Virkt í dag}=1{Virkt fyrir 1 degi}one{Virkt fyrir # degi}other{Virkt fyrir # dögum}}</translation>
 <translation id="5768079895599174203">{DAYS,plural, =1{1 dagur og }one{# dagur og }other{# dagar og }}</translation>
diff --git a/ui/strings/translations/ui_strings_kk.xtb b/ui/strings/translations/ui_strings_kk.xtb
index 38881ee8..49a2fbe 100644
--- a/ui/strings/translations/ui_strings_kk.xtb
+++ b/ui/strings/translations/ui_strings_kk.xtb
@@ -9,6 +9,7 @@
 <translation id="1178017578188974117">{DAYS,plural, =1{1 күн бұрын}other{# күн бұрын}}</translation>
 <translation id="1181037720776840403">Өшіру</translation>
 <translation id="1243314992276662751">Жүктеп салу</translation>
+<translation id="1253734725326687145">Түрту аумағы жоғарғы оң жаққа жылжытылды. Осы жерді түртіңіз.</translation>
 <translation id="1266864766717917324"><ph name="CONTENT_TYPE" /> бөлісу мүмкін болмады.</translation>
 <translation id="1269641567813814718">Win</translation>
 <translation id="1291104554099683393">Мәтін тым үлкен, аз-аздан бөлісіп көріңіз.</translation>
@@ -56,6 +57,7 @@
 <translation id="2435457462613246316">Құпия сөзді көрсету</translation>
 <translation id="24452542372838207">Хабарландыруды жаю</translation>
 <translation id="2445449901874883781">Жоғары тығыздықты пайдалану</translation>
+<translation id="2448407890032181691">Түрту аумағы төменгі оң жаққа жылжытылды. Осы жерді түртіңіз.</translation>
 <translation id="2482878487686419369">Хабарландырулар</translation>
 <translation id="2497284189126895209">Барлық файлдар</translation>
 <translation id="2515586267016047495">Alt</translation>
@@ -141,6 +143,7 @@
 <translation id="5606865426897221650">Қойынды</translation>
 <translation id="5613020302032141669">Сол жақ көрсеткісі</translation>
 <translation id="5633029987065897167">Бос</translation>
+<translation id="5651438382973553530">Түрту аумағы төменгі сол жаққа жылжытылды. Осы жерді түртіңіз.</translation>
 <translation id="5754277640426581776">{MINUTES,plural, =1{1 мин}other{# мин}}</translation>
 <translation id="5763338081255973061">{DAYS,plural, =0{Бүгін қосылды.}=1{1 күн бұрын қосылды.}other{# күн бұрын қосылды.}}</translation>
 <translation id="5768079895599174203">{DAYS,plural, =1{1 күн және }other{# күн және }}</translation>
diff --git a/ui/strings/translations/ui_strings_ko.xtb b/ui/strings/translations/ui_strings_ko.xtb
index fda0ddd..9a66319 100644
--- a/ui/strings/translations/ui_strings_ko.xtb
+++ b/ui/strings/translations/ui_strings_ko.xtb
@@ -9,6 +9,7 @@
 <translation id="1178017578188974117">{DAYS,plural, =1{1일 전}other{#일 전}}</translation>
 <translation id="1181037720776840403">삭제</translation>
 <translation id="1243314992276662751">업로드</translation>
+<translation id="1253734725326687145">터치 영역이 오른쪽 위로 이동했습니다. 여기를 탭하세요.</translation>
 <translation id="1266864766717917324"><ph name="CONTENT_TYPE" /> 공유할 수 없음</translation>
 <translation id="1269641567813814718">Win</translation>
 <translation id="1291104554099683393">좀 더 짧은 길이로 텍스트를 쪼갠 다음 공유해 보세요.</translation>
@@ -56,6 +57,7 @@
 <translation id="2435457462613246316">비밀번호 표시</translation>
 <translation id="24452542372838207">알림 펼치기</translation>
 <translation id="2445449901874883781">고밀도 사용</translation>
+<translation id="2448407890032181691">터치 영역이 오른쪽 아래로 이동했습니다. 여기를 탭하세요.</translation>
 <translation id="2482878487686419369">알림</translation>
 <translation id="2497284189126895209">모든 파일</translation>
 <translation id="2515586267016047495">Alt</translation>
@@ -141,6 +143,7 @@
 <translation id="5606865426897221650">Tab</translation>
 <translation id="5613020302032141669">왼쪽 화살표</translation>
 <translation id="5633029987065897167">비어 있음</translation>
+<translation id="5651438382973553530">터치 영역이 왼쪽 아래로 이동했습니다. 여기를 탭하세요.</translation>
 <translation id="5754277640426581776">{MINUTES,plural, =1{1분}other{#분}}</translation>
 <translation id="5763338081255973061">{DAYS,plural, =0{오늘 사용}=1{1일 전에 사용}other{#일 전에 사용}}</translation>
 <translation id="5768079895599174203">{DAYS,plural, =1{1일 }other{#일 }}</translation>
diff --git a/ui/strings/translations/ui_strings_ky.xtb b/ui/strings/translations/ui_strings_ky.xtb
index 9a232f7..accfa38 100644
--- a/ui/strings/translations/ui_strings_ky.xtb
+++ b/ui/strings/translations/ui_strings_ky.xtb
@@ -9,6 +9,7 @@
 <translation id="1178017578188974117">{DAYS,plural, =1{1 күн мурун}other{# күн мурун}}</translation>
 <translation id="1181037720776840403">Алып салуу</translation>
 <translation id="1243314992276662751">Жүктөп берүү</translation>
+<translation id="1253734725326687145">Сенсордук бөлүк жогорку оң жакка жылды. Бул жерди таптаңыз.</translation>
 <translation id="1266864766717917324"><ph name="CONTENT_TYPE" /> менен бөлүшүлгөн жок</translation>
 <translation id="1269641567813814718">Win</translation>
 <translation id="1291104554099683393">Текстти бир нече бөлүккө бөлүп анан бөлүшүп көрүңүз.</translation>
@@ -56,6 +57,7 @@
 <translation id="2435457462613246316">Сырсөздү көрсөтүү</translation>
 <translation id="24452542372838207">Эскертмени жайып көрсөтүү</translation>
 <translation id="2445449901874883781">Терезелерди көп көрсөтүү</translation>
+<translation id="2448407890032181691">Сенсордук бөлүк төмөнкү оң жакка жылды. Бул жерди таптаңыз.</translation>
 <translation id="2482878487686419369">Билдирмелер</translation>
 <translation id="2497284189126895209">Бардык файлдар</translation>
 <translation id="2515586267016047495">Alt</translation>
@@ -141,6 +143,7 @@
 <translation id="5606865426897221650">Өтмөк</translation>
 <translation id="5613020302032141669">Сол жебе</translation>
 <translation id="5633029987065897167">Бош</translation>
+<translation id="5651438382973553530">Сенсордук бөлүк төмөнкү сол жакка жылды. Бул жерди таптаңыз.</translation>
 <translation id="5754277640426581776">{MINUTES,plural, =1{1 мүн.}other{# мүн.}}</translation>
 <translation id="5763338081255973061">{DAYS,plural, =0{Соңку аракеттер: бүгүн}=1{Соңку аракеттер: 1 күн мурун}other{Соңку аракеттер: # күн мурун}}</translation>
 <translation id="5768079895599174203">{DAYS,plural, =1{1 күн жана }other{# күн жана }}</translation>
diff --git a/ui/strings/translations/ui_strings_lo.xtb b/ui/strings/translations/ui_strings_lo.xtb
index 1ed4779..11a73c9 100644
--- a/ui/strings/translations/ui_strings_lo.xtb
+++ b/ui/strings/translations/ui_strings_lo.xtb
@@ -9,6 +9,7 @@
 <translation id="1178017578188974117">{DAYS,plural, =1{1 ມື້ກ່ອນ}other{# ມື້ກ່ອນ}}</translation>
 <translation id="1181037720776840403">ລຶບອອກ</translation>
 <translation id="1243314992276662751">ອັບ​ໂຫຼດ</translation>
+<translation id="1253734725326687145">ຍ້າຍເປົ້າໝາຍສຳຜັດໄປເບື້ອງຂວາເທິງສຸດແລ້ວ. ແຕະບ່ອນນີ້.</translation>
 <translation id="1266864766717917324">ບໍ່ສາມາດແບ່ງປັນ <ph name="CONTENT_TYPE" /> ໄດ້</translation>
 <translation id="1269641567813814718">Win</translation>
 <translation id="1291104554099683393">ລອງແບ່ງປັນຂໍ້ຄວາມໃນຈຳນວນທີ່ໜ້ອຍກວ່າ.</translation>
@@ -56,6 +57,7 @@
 <translation id="2435457462613246316">ສະ​ແດງ​ລະ​ຫັດ​ຜ່ານ</translation>
 <translation id="24452542372838207">ຂະຫຍາຍການແຈ້ງເຕືອນ</translation>
 <translation id="2445449901874883781">ໃຊ້ຄວາມເຂັ້ມສູງ</translation>
+<translation id="2448407890032181691">ຍ້າຍເປົ້າໝາຍສຳຜັດໄປເບື້ອງຂວາລຸ່ມສຸດແລ້ວ. ແຕະບ່ອນນີ້.</translation>
 <translation id="2482878487686419369">ການແຈ້ງເຕືອນ</translation>
 <translation id="2497284189126895209">ທຸກໄຟລ໌</translation>
 <translation id="2515586267016047495">Alt</translation>
@@ -141,6 +143,7 @@
 <translation id="5606865426897221650">ແຖບ</translation>
 <translation id="5613020302032141669">ລູກສອນຊ້າຍ</translation>
 <translation id="5633029987065897167">ຫວ່າງເປົ່າ</translation>
+<translation id="5651438382973553530">ຍ້າຍເປົ້າໝາຍສຳຜັດໄປເບື້ອງຊ້າຍລຸ່ມສຸດແລ້ວ. ແຕະບ່ອນນີ້.</translation>
 <translation id="5754277640426581776">{MINUTES,plural, =1{1 ນາ​ທີ}other{# ນາ​ທີ}}</translation>
 <translation id="5763338081255973061">{DAYS,plural, =0{ເປີດນຳໃຊ້ມື້ນີ້}=1{ເປີດນຳໃຊ້ເມື່ອ 1 ມື້ກ່ອນ}other{ເປີດນຳໃຊ້ເມື່ອ # ມື້ກ່ອນ}}</translation>
 <translation id="5768079895599174203">{DAYS,plural, =1{1 ວັນ​ ແລະ }other{# ວັນ ແລະ }}</translation>
diff --git a/ui/strings/translations/ui_strings_lt.xtb b/ui/strings/translations/ui_strings_lt.xtb
index d7184ce..c43c02e 100644
--- a/ui/strings/translations/ui_strings_lt.xtb
+++ b/ui/strings/translations/ui_strings_lt.xtb
@@ -9,6 +9,7 @@
 <translation id="1178017578188974117">{DAYS,plural, =1{prieš 1 dieną}one{prieš # dieną}few{prieš # dienas}many{prieš # dienos}other{prieš # dienų}}</translation>
 <translation id="1181037720776840403">Pašalinti</translation>
 <translation id="1243314992276662751">Įkelti</translation>
+<translation id="1253734725326687145">Jutiklinė sritis perkelta į viršų dešinėn. Palieskite čia.</translation>
 <translation id="1266864766717917324">Nepavyko bendrinti turinio: <ph name="CONTENT_TYPE" /></translation>
 <translation id="1269641567813814718">Win</translation>
 <translation id="1291104554099683393">Pabandykite bendrinti teksto pranešimą mažesnėmis dalimis.</translation>
@@ -56,6 +57,7 @@
 <translation id="2435457462613246316">Rodyti slaptažodį</translation>
 <translation id="24452542372838207">Išskleisti pranešimą</translation>
 <translation id="2445449901874883781">Naudoti didelį tankį</translation>
+<translation id="2448407890032181691">Jutiklinė sritis perkelta į apačią dešinėn. Palieskite čia.</translation>
 <translation id="2482878487686419369">Pranešimai</translation>
 <translation id="2497284189126895209">Visi failai</translation>
 <translation id="2515586267016047495">Alt</translation>
@@ -141,6 +143,7 @@
 <translation id="5606865426897221650">Tabuliavimo klavišas</translation>
 <translation id="5613020302032141669">Rodyklė į kairę</translation>
 <translation id="5633029987065897167">Tuščia</translation>
+<translation id="5651438382973553530">Jutiklinė sritis perkelta į apačią kairėn. Palieskite čia.</translation>
 <translation id="5754277640426581776">{MINUTES,plural, =1{1 min.}one{# min.}few{# min.}many{# min.}other{# min.}}</translation>
 <translation id="5763338081255973061">{DAYS,plural, =0{Aktyvus šiandien}=1{Aktyvus prieš 1 d.}one{Aktyvus prieš # d.}few{Aktyvus prieš # d.}many{Aktyvus prieš # d.}other{Aktyvus prieš # d.}}</translation>
 <translation id="5768079895599174203">{DAYS,plural, =1{1 diena ir }one{# diena ir }few{# dienos ir }many{# dienos ir }other{# dienų ir }}</translation>
diff --git a/ui/strings/translations/ui_strings_lv.xtb b/ui/strings/translations/ui_strings_lv.xtb
index 09e44760..4f2c653c 100644
--- a/ui/strings/translations/ui_strings_lv.xtb
+++ b/ui/strings/translations/ui_strings_lv.xtb
@@ -9,6 +9,7 @@
 <translation id="1178017578188974117">{DAYS,plural, =1{pirms 1 dienas}zero{pirms # dienām}one{pirms # dienas}other{pirms # dienām}}</translation>
 <translation id="1181037720776840403">Noņemt</translation>
 <translation id="1243314992276662751">Augšupielādēt</translation>
+<translation id="1253734725326687145">Skāriena mērķis ir pārvietots uz augšējo labo stūri. Pieskarieties šeit.</translation>
 <translation id="1266864766717917324">Nevarēja kopīgot: <ph name="CONTENT_TYPE" /></translation>
 <translation id="1269641567813814718">Windows</translation>
 <translation id="1291104554099683393">Kopīgojiet mazākus teksta fragmentus.</translation>
@@ -56,6 +57,7 @@
 <translation id="2435457462613246316">Rādīt paroli</translation>
 <translation id="24452542372838207">Izvērst paziņojumu</translation>
 <translation id="2445449901874883781">Izmantot lielu blīvumu</translation>
+<translation id="2448407890032181691">Skāriena mērķis ir pārvietots uz apakšējo labo stūri. Pieskarieties šeit.</translation>
 <translation id="2482878487686419369">Paziņojumi</translation>
 <translation id="2497284189126895209">Visi faili</translation>
 <translation id="2515586267016047495">Alt</translation>
@@ -141,6 +143,7 @@
 <translation id="5606865426897221650">Tabulēšanas taustiņš</translation>
 <translation id="5613020302032141669">Kreisā bulta</translation>
 <translation id="5633029987065897167">Tukša</translation>
+<translation id="5651438382973553530">Skāriena mērķis ir pārvietots uz apakšējo kreiso stūri. Pieskarieties šeit.</translation>
 <translation id="5754277640426581776">{MINUTES,plural, =1{1 min}zero{# min}one{# min}other{# min}}</translation>
 <translation id="5763338081255973061">{DAYS,plural, =0{Aktīva šodien}=1{Aktīva pirms 1 dienas}zero{Aktīva pirms # dienām}one{Aktīva pirms # dienas}other{Aktīva pirms # dienām}}</translation>
 <translation id="5768079895599174203">{DAYS,plural, =1{1 diena un }zero{# dienas un }one{# diena un }other{# dienas un }}</translation>
diff --git a/ui/strings/translations/ui_strings_mn.xtb b/ui/strings/translations/ui_strings_mn.xtb
index fad40a23..51077752 100644
--- a/ui/strings/translations/ui_strings_mn.xtb
+++ b/ui/strings/translations/ui_strings_mn.xtb
@@ -9,6 +9,7 @@
 <translation id="1178017578188974117">{DAYS,plural, =1{1 хоногийн өмнө}other{# хоногийн өмнө}}</translation>
 <translation id="1181037720776840403">Хасах</translation>
 <translation id="1243314992276662751">Байршуул</translation>
+<translation id="1253734725326687145">Хүрэх талбайг баруун дээш зөөсөн. Энд товшино уу.</translation>
 <translation id="1266864766717917324"><ph name="CONTENT_TYPE" />-г хуваалцаж чадсангүй</translation>
 <translation id="1269641567813814718">Win</translation>
 <translation id="1291104554099683393">Текстийг жижиг хэсгээр хуваалцахыг оролдоно уу.</translation>
@@ -56,6 +57,7 @@
 <translation id="2435457462613246316">Нууц үг харуулах</translation>
 <translation id="24452542372838207">Мэдэгдлийг дэлгэх</translation>
 <translation id="2445449901874883781">Өндөр нягтралыг ашиглах</translation>
+<translation id="2448407890032181691">Хүрэх талбайг баруун доош зөөсөн. Энд товшино уу.</translation>
 <translation id="2482878487686419369">Мэдэгдэл</translation>
 <translation id="2497284189126895209">Бүх файлууд</translation>
 <translation id="2515586267016047495">Alt</translation>
@@ -141,6 +143,7 @@
 <translation id="5606865426897221650">Tab</translation>
 <translation id="5613020302032141669">Зүүн талын сум</translation>
 <translation id="5633029987065897167">Хоосон</translation>
+<translation id="5651438382973553530">Хүрэх талбайг зүүн доош зөөсөн. Энд товшино уу.</translation>
 <translation id="5754277640426581776">{MINUTES,plural, =1{1 мин}other{# мин}}</translation>
 <translation id="5763338081255973061">{DAYS,plural, =0{Өнөөдөр идэвхтэй байсан}=1{1 өдрийн өмнө идэвхтэй байсан}other{# өдрийн өмнө идэвхтэй байсан}}</translation>
 <translation id="5768079895599174203">{DAYS,plural, =1{1 өдөр ба }other{# өдөр ба }}</translation>
diff --git a/ui/strings/translations/ui_strings_mr.xtb b/ui/strings/translations/ui_strings_mr.xtb
index 6e5b087..d01f52c5 100644
--- a/ui/strings/translations/ui_strings_mr.xtb
+++ b/ui/strings/translations/ui_strings_mr.xtb
@@ -9,6 +9,7 @@
 <translation id="1178017578188974117">{DAYS,plural, =1{एक दिवसापूर्वी}other{# दिवसांपूर्वी}}</translation>
 <translation id="1181037720776840403">काढून टाका</translation>
 <translation id="1243314992276662751">अपलोड करा</translation>
+<translation id="1253734725326687145">टच टार्गेट सर्वात वरती उजवीकडे हलवले आहे. इथे टॅप करा.</translation>
 <translation id="1266864766717917324"><ph name="CONTENT_TYPE" /> शेअर करू शकलो नाही</translation>
 <translation id="1269641567813814718">Win</translation>
 <translation id="1291104554099683393">मजकूर लहान भागांमध्ये शेअर करून पहा.</translation>
@@ -56,6 +57,7 @@
 <translation id="2435457462613246316">पासवर्ड दर्शवा</translation>
 <translation id="24452542372838207">सूचना विस्तार करा</translation>
 <translation id="2445449901874883781">उच्च घनता वापरा</translation>
+<translation id="2448407890032181691">टच टार्गेट तळाशी उजवीकडे हलवले आहे. इथे टॅप करा.</translation>
 <translation id="2482878487686419369">सूचना</translation>
 <translation id="2497284189126895209">सर्व फाइल</translation>
 <translation id="2515586267016047495">Alt</translation>
@@ -141,6 +143,7 @@
 <translation id="5606865426897221650">टॅब</translation>
 <translation id="5613020302032141669">Left Arrow</translation>
 <translation id="5633029987065897167">रिक्त आहे</translation>
+<translation id="5651438382973553530">टच टार्गेट तळाशी डावीकडे हलवले आहे. इथे टॅप करा.</translation>
 <translation id="5754277640426581776">{MINUTES,plural, =1{1 मिनिट}other{# मिनिटे}}</translation>
 <translation id="5763338081255973061">{DAYS,plural, =0{आज ॲक्टिव्ह होते}=1{एका दिवसापूर्वी ॲक्टिव्ह होते}other{# दिवसांपूर्वी ॲक्टिव्ह होते}}</translation>
 <translation id="5768079895599174203">{DAYS,plural, =1{1 दिवस आणि }other{# दिवस आणि }}</translation>
diff --git a/ui/strings/translations/ui_strings_my.xtb b/ui/strings/translations/ui_strings_my.xtb
index 83b5f878..9b61d12 100644
--- a/ui/strings/translations/ui_strings_my.xtb
+++ b/ui/strings/translations/ui_strings_my.xtb
@@ -9,6 +9,7 @@
 <translation id="1178017578188974117">{DAYS,plural, =1{ပြီးခဲ့သော ၁ ရက်}other{ပြီးခဲ့သော # ရက်}}</translation>
 <translation id="1181037720776840403">ဖယ်ရှားရန်</translation>
 <translation id="1243314992276662751">အာပ်လုဒ် လုပ်ရန်</translation>
+<translation id="1253734725326687145">တို့ထိရမည့် နေရာသည် ညာဘက်အပေါ်သို့ ရွေ့သွားပါပြီ။ ဤနေရာကို တို့ပါ။</translation>
 <translation id="1266864766717917324"><ph name="CONTENT_TYPE" /> ကို မျှဝေ၍မရပါ။</translation>
 <translation id="1269641567813814718">Win</translation>
 <translation id="1291104554099683393">စာသားကို ပိုသေးသော အပိုင်းများအဖြစ် မျှဝေကြည့်ပါ။</translation>
@@ -56,6 +57,7 @@
 <translation id="2435457462613246316">စကားဝှက်ကို ပြပါ</translation>
 <translation id="24452542372838207">အကြောင်းကြားချက်ကို ချဲ့ရန်</translation>
 <translation id="2445449901874883781">သိပ်သည်းဆအမြင့် သုံးရန်</translation>
+<translation id="2448407890032181691">တို့ထိရမည့် နေရာသည် ညာဘက်အောက်ခြေသို့ ရွေ့သွားပါပြီ။ ဤနေရာကို တို့ပါ။</translation>
 <translation id="2482878487686419369">အကြောင်းကြားစာ</translation>
 <translation id="2497284189126895209">ဖိုင်များ အားလုံး</translation>
 <translation id="2515586267016047495">Alt</translation>
@@ -141,6 +143,7 @@
 <translation id="5606865426897221650">တဘ်</translation>
 <translation id="5613020302032141669">ဘယ်မြှား</translation>
 <translation id="5633029987065897167">မရှိပါ</translation>
+<translation id="5651438382973553530">တို့ထိရမည့် နေရာသည် ဘယ်ဘက်အောက်ခြေသို့ ရွေ့သွားပါပြီ။ ဤနေရာကို တို့ပါ။</translation>
 <translation id="5754277640426581776">{MINUTES,plural, =1{၁ မိနစ်}other{# မိနစ်}}</translation>
 <translation id="5763338081255973061">{DAYS,plural, =0{ယနေ့ အသုံးပြုထားသည်}=1{ပြီးခဲ့သော ၁ ရက်က အသုံးပြုထားသည်}other{ပြီးခဲ့သော # ရက်က အသုံးပြုထားသည်}}</translation>
 <translation id="5768079895599174203">{DAYS,plural, =1{၁ ရက်နှင့် }other{# ရက်နှင့် }}</translation>
diff --git a/ui/strings/translations/ui_strings_ne.xtb b/ui/strings/translations/ui_strings_ne.xtb
index bdd49a03..af58e7b6 100644
--- a/ui/strings/translations/ui_strings_ne.xtb
+++ b/ui/strings/translations/ui_strings_ne.xtb
@@ -9,6 +9,7 @@
 <translation id="1178017578188974117">{DAYS,plural, =1{१ दिनअघि}other{# दिनअघि}}</translation>
 <translation id="1181037720776840403">हटाउनुहोस्</translation>
 <translation id="1243314992276662751">अपलोड गर्नुहोस्</translation>
+<translation id="1253734725326687145">टच गरिने स्थान सारेर सिरानको दायाँतिर लगिएको छ। यहाँ ट्याप गर्नुहोस्।</translation>
 <translation id="1266864766717917324"><ph name="CONTENT_TYPE" /> आदान प्रदान गर्न सकिएन</translation>
 <translation id="1269641567813814718">Win</translation>
 <translation id="1291104554099683393">पाठलाई विभाजन गरी साना खण्ड बनाएर आदान प्रदान गरी हेर्नुहोस्।</translation>
@@ -56,6 +57,7 @@
 <translation id="2435457462613246316">पासवर्ड देखाउनुहोस्</translation>
 <translation id="24452542372838207">सूचना विस्तृत गर्नुहोस्‌</translation>
 <translation id="2445449901874883781">उच्च घनत्व भएको डिस्प्ले प्रयोग गर्नुहोस्</translation>
+<translation id="2448407890032181691">टच गरिने स्थान सारेर पुछारको दायाँतिर लगिएको छ। यहाँ ट्याप गर्नुहोस्।</translation>
 <translation id="2482878487686419369">नोटिफिकेसनहरू</translation>
 <translation id="2497284189126895209">सबै फाइलहरू</translation>
 <translation id="2515586267016047495">Alt</translation>
@@ -141,6 +143,7 @@
 <translation id="5606865426897221650">ट्याब</translation>
 <translation id="5613020302032141669">बायाँ तीर</translation>
 <translation id="5633029987065897167">खाली छ</translation>
+<translation id="5651438382973553530">टच गरिने स्थान सारेर पुछारको बायाँतिर लगिएको छ। यहाँ ट्याप गर्नुहोस्।</translation>
 <translation id="5754277640426581776">{MINUTES,plural, =1{ १ मिनेट}other{ # मिनेट}}</translation>
 <translation id="5763338081255973061">{DAYS,plural, =0{आज सक्रिय रहेको}=1{१ दिनअघि सक्रिय रहेको}other{# दिनअघि सक्रिय रहेको}}</translation>
 <translation id="5768079895599174203">{DAYS,plural, =1{ १ दिन र }other{ # दिन र }}</translation>
diff --git a/ui/strings/translations/ui_strings_nl.xtb b/ui/strings/translations/ui_strings_nl.xtb
index eb293d67..a3ecb76 100644
--- a/ui/strings/translations/ui_strings_nl.xtb
+++ b/ui/strings/translations/ui_strings_nl.xtb
@@ -9,6 +9,7 @@
 <translation id="1178017578188974117">{DAYS,plural, =1{1 dag geleden}other{# dagen geleden}}</translation>
 <translation id="1181037720776840403">Verwijderen</translation>
 <translation id="1243314992276662751">Uploaden</translation>
+<translation id="1253734725326687145">Aanraakdoel verplaatst naar rechtsboven. Tik hier.</translation>
 <translation id="1266864766717917324">Kan <ph name="CONTENT_TYPE" /> niet delen</translation>
 <translation id="1269641567813814718">Win</translation>
 <translation id="1291104554099683393">Verdeel de tekst in kleinere stukken en deel in meerdere keren.</translation>
@@ -56,6 +57,7 @@
 <translation id="2435457462613246316">Wachtwoord bekijken</translation>
 <translation id="24452542372838207">Melding uitvouwen</translation>
 <translation id="2445449901874883781">Hoge dichtheid gebruiken</translation>
+<translation id="2448407890032181691">Aanraakdoel verplaatst naar rechtsonder. Tik hier.</translation>
 <translation id="2482878487686419369">Meldingen</translation>
 <translation id="2497284189126895209">Alle bestanden</translation>
 <translation id="2515586267016047495">Alt</translation>
@@ -141,6 +143,7 @@
 <translation id="5606865426897221650">Tab</translation>
 <translation id="5613020302032141669">Pijl-links</translation>
 <translation id="5633029987065897167">Leeg</translation>
+<translation id="5651438382973553530">Aanraakdoel verplaatst naar linksonder. Tik hier.</translation>
 <translation id="5754277640426581776">{MINUTES,plural, =1{1 min.}other{# min.}}</translation>
 <translation id="5763338081255973061">{DAYS,plural, =0{Vandaag actief}=1{1 dag geleden actief}other{# dagen geleden actief}}</translation>
 <translation id="5768079895599174203">{DAYS,plural, =1{1 dag en }other{# dagen en }}</translation>
diff --git a/ui/strings/translations/ui_strings_or.xtb b/ui/strings/translations/ui_strings_or.xtb
index 33d58a63..a1a01b2f 100644
--- a/ui/strings/translations/ui_strings_or.xtb
+++ b/ui/strings/translations/ui_strings_or.xtb
@@ -9,6 +9,7 @@
 <translation id="1178017578188974117">{DAYS,plural, =1{1 ଦିନ ପୂର୍ବେ}other{# ଦିନ ପୂର୍ବେ}}</translation>
 <translation id="1181037720776840403">କାଢ଼ି ଦିଅନ୍ତୁ</translation>
 <translation id="1243314992276662751">ଅପ୍‌ଲୋଡ୍ କରନ୍ତୁ</translation>
+<translation id="1253734725326687145">ଟଚ ଟାର୍ଗେଟ ଉପର ଡାହାଣପଟକୁ ମୁଭ କରାଯାଇଛି। ଏଠାରେ ଟାପ କରନ୍ତୁ।</translation>
 <translation id="1266864766717917324"><ph name="CONTENT_TYPE" />ସେୟାର୍ କରିହେଲା ନାହିଁ</translation>
 <translation id="1269641567813814718">Win</translation>
 <translation id="1291104554099683393">ଛୋଟ ଛୋଟ ଭାଗରେ ଟେକ୍ସଟ୍ ସେୟାର୍ କରିବାକୁ ଚେଷ୍ଟା କରନ୍ତୁ।</translation>
@@ -56,6 +57,7 @@
 <translation id="2435457462613246316">ପାସୱାର୍ଡ ଦେଖାନ୍ତୁ</translation>
 <translation id="24452542372838207">ବିଜ୍ଞପ୍ତି ସଂପ୍ରସାରଣ କରନ୍ତୁ</translation>
 <translation id="2445449901874883781">ଉଚ୍ଚ ସାନ୍ଧ୍ରତା ବ୍ୟବହାର କରନ୍ତୁ</translation>
+<translation id="2448407890032181691">ଟଚ ଟାର୍ଗେଟ ତଳ ଡାହାଣପଟକୁ ମୁଭ କରାଯାଇଛି। ଏଠାରେ ଟାପ କରନ୍ତୁ।</translation>
 <translation id="2482878487686419369">ବିଜ୍ଞପ୍ତି</translation>
 <translation id="2497284189126895209">ସମସ୍ତ ଫାଇଲଗୁଡିକ</translation>
 <translation id="2515586267016047495">Alt</translation>
@@ -141,6 +143,7 @@
 <translation id="5606865426897221650">ଟାବ</translation>
 <translation id="5613020302032141669">ବାମ ତୀର</translation>
 <translation id="5633029987065897167">ଖାଲି</translation>
+<translation id="5651438382973553530">ଟଚ ଟାର୍ଗେଟ ତଳ ବାମପଟକୁ ମୁଭ କରାଯାଇଛି। ଏଠାରେ ଟାପ କରନ୍ତୁ।</translation>
 <translation id="5754277640426581776">{MINUTES,plural, =1{1 ମିନିଟ୍}other{# ମିନିଟ୍}}</translation>
 <translation id="5763338081255973061">{DAYS,plural, =0{ଆଜି ସକ୍ରିୟ ଅଛି}=1{1 ଦିନ ପୂର୍ବେ ସକ୍ରିୟ ଥିଲା}other{# ଦିନ ପୂର୍ବେ ସକ୍ରିୟ ଥିଲା}}</translation>
 <translation id="5768079895599174203">{DAYS,plural, =1{1 ଦିନ ଏବଂ }other{# ଦିନ ଏବଂ }}</translation>
diff --git a/ui/strings/translations/ui_strings_pt-BR.xtb b/ui/strings/translations/ui_strings_pt-BR.xtb
index 393ae82..fe18a2b3 100644
--- a/ui/strings/translations/ui_strings_pt-BR.xtb
+++ b/ui/strings/translations/ui_strings_pt-BR.xtb
@@ -9,6 +9,7 @@
 <translation id="1178017578188974117">{DAYS,plural, =1{1 dia atrás}one{# dia atrás}other{# dias atrás}}</translation>
 <translation id="1181037720776840403">Remover</translation>
 <translation id="1243314992276662751">Fazer upload</translation>
+<translation id="1253734725326687145">O área de toque foi movida para o canto superior direito. Toque aqui.</translation>
 <translation id="1266864766717917324">Falha no compartilhamento de <ph name="CONTENT_TYPE" /></translation>
 <translation id="1269641567813814718">Win</translation>
 <translation id="1291104554099683393">Tente dividir o texto em partes menores.</translation>
@@ -56,6 +57,7 @@
 <translation id="2435457462613246316">Mostrar senha</translation>
 <translation id="24452542372838207">Expandir notificação</translation>
 <translation id="2445449901874883781">Usar alta densidade</translation>
+<translation id="2448407890032181691">A área de toque foi movida para o canto inferior direito. Toque aqui.</translation>
 <translation id="2482878487686419369">Notificações</translation>
 <translation id="2497284189126895209">Todos os arquivos</translation>
 <translation id="2515586267016047495">Alt</translation>
@@ -141,6 +143,7 @@
 <translation id="5606865426897221650">Tab</translation>
 <translation id="5613020302032141669">Seta para a esquerda</translation>
 <translation id="5633029987065897167">Vazio</translation>
+<translation id="5651438382973553530">A área de toque foi movida para o canto inferior esquerdo. Toque aqui.</translation>
 <translation id="5754277640426581776">{MINUTES,plural, =1{1 minuto}one{# minutos}other{# minutos}}</translation>
 <translation id="5763338081255973061">{DAYS,plural, =0{Ativo hoje}=1{Ativo há um dia}one{Ativo há # dia}other{Ativo há # dias}}</translation>
 <translation id="5768079895599174203">{DAYS,plural, =1{Um dia e }one{# dias e }other{# dias e }}</translation>
diff --git a/ui/strings/translations/ui_strings_ro.xtb b/ui/strings/translations/ui_strings_ro.xtb
index 8979e4f9..316dc58 100644
--- a/ui/strings/translations/ui_strings_ro.xtb
+++ b/ui/strings/translations/ui_strings_ro.xtb
@@ -9,6 +9,7 @@
 <translation id="1178017578188974117">{DAYS,plural, =1{Acum o zi}few{acum # zile}other{acum # de zile}}</translation>
 <translation id="1181037720776840403">Elimină</translation>
 <translation id="1243314992276662751">Încărcați</translation>
+<translation id="1253734725326687145">Ținta de atins s-a mutat în dreapta sus. Atinge aici.</translation>
 <translation id="1266864766717917324">Nu s-a trimis <ph name="CONTENT_TYPE" /></translation>
 <translation id="1269641567813814718">Win</translation>
 <translation id="1291104554099683393">Împarte textul în fragmente mai mici.</translation>
@@ -56,6 +57,7 @@
 <translation id="2435457462613246316">Afișați parola</translation>
 <translation id="24452542372838207">Extinde notificarea</translation>
 <translation id="2445449901874883781">Folosește densitatea ridicată</translation>
+<translation id="2448407890032181691">Ținta de atins s-a mutat în dreapta jos. Atinge aici.</translation>
 <translation id="2482878487686419369">Notificări</translation>
 <translation id="2497284189126895209">Toate fișierele</translation>
 <translation id="2515586267016047495">Alt</translation>
@@ -141,6 +143,7 @@
 <translation id="5606865426897221650">Tab</translation>
 <translation id="5613020302032141669">Săgeată stânga</translation>
 <translation id="5633029987065897167">Gol</translation>
+<translation id="5651438382973553530">Ținta de atins s-a mutat în stânga jos. Atinge aici.</translation>
 <translation id="5754277640426581776">{MINUTES,plural, =1{Un min.}few{# min.}other{# min.}}</translation>
 <translation id="5763338081255973061">{DAYS,plural, =0{Activ astăzi}=1{Activ acum o zi}few{Activ acum # zile}other{Activ acum # de zile}}</translation>
 <translation id="5768079895599174203">{DAYS,plural, =1{O zi și  }few{# zile și  }other{# de zile și  }}</translation>
diff --git a/ui/strings/translations/ui_strings_sk.xtb b/ui/strings/translations/ui_strings_sk.xtb
index 9afcc85..cecc2a1 100644
--- a/ui/strings/translations/ui_strings_sk.xtb
+++ b/ui/strings/translations/ui_strings_sk.xtb
@@ -9,6 +9,7 @@
 <translation id="1178017578188974117">{DAYS,plural, =1{Pred 1 dňom}few{Pred # dňami}many{Pred # dňa}other{Pred # dňami}}</translation>
 <translation id="1181037720776840403">Odstrániť</translation>
 <translation id="1243314992276662751">Nahrať</translation>
+<translation id="1253734725326687145">Miesto dotyku bolo presunuté vpravo hore. Klepnite tu.</translation>
 <translation id="1266864766717917324"><ph name="CONTENT_TYPE" /> sa nepodarilo zdieľať</translation>
 <translation id="1269641567813814718">Win</translation>
 <translation id="1291104554099683393">Skúste text zdieľať po menších častiach.</translation>
@@ -56,6 +57,7 @@
 <translation id="2435457462613246316">Zobraziť heslo</translation>
 <translation id="24452542372838207">Rozbaliť upozornenie</translation>
 <translation id="2445449901874883781">Použiť vysokú hustotu</translation>
+<translation id="2448407890032181691">Miesto dotyku bolo presunuté vpravo dole. Klepnite tu.</translation>
 <translation id="2482878487686419369">Upozornenia</translation>
 <translation id="2497284189126895209">Všetky súbory</translation>
 <translation id="2515586267016047495">Alt</translation>
@@ -141,6 +143,7 @@
 <translation id="5606865426897221650">Tab</translation>
 <translation id="5613020302032141669">Šípka doľava</translation>
 <translation id="5633029987065897167">Prázdne</translation>
+<translation id="5651438382973553530">Miesto dotyku bolo presunuté vľavo dole Klepnite tu.</translation>
 <translation id="5754277640426581776">{MINUTES,plural, =1{1 min}few{# min}many{# min}other{# min}}</translation>
 <translation id="5763338081255973061">{DAYS,plural, =0{Aktívne dnes}=1{Aktívne včera}few{Aktívne pred # dňami}many{Aktívne pred # dňa}other{Aktívne pred # dňami}}</translation>
 <translation id="5768079895599174203">{DAYS,plural, =1{1 deň a }few{# dni a }many{# dňa a }other{# dní a }}</translation>
diff --git a/ui/strings/translations/ui_strings_sl.xtb b/ui/strings/translations/ui_strings_sl.xtb
index be332c4..154aed5 100644
--- a/ui/strings/translations/ui_strings_sl.xtb
+++ b/ui/strings/translations/ui_strings_sl.xtb
@@ -9,6 +9,7 @@
 <translation id="1178017578188974117">{DAYS,plural, =1{pred 1 dnevom}one{pred # dnevom}two{pred # dnevoma}few{pred # dnevi}other{pred # dnevi}}</translation>
 <translation id="1181037720776840403">Odstrani</translation>
 <translation id="1243314992276662751">Prenesi</translation>
+<translation id="1253734725326687145">Ciljno območje dotika je premaknjeno v zgornji desni kot. Dotaknite se tukaj.</translation>
 <translation id="1266864766717917324">Ni bilo mogoče deliti tega: <ph name="CONTENT_TYPE" /></translation>
 <translation id="1269641567813814718">Win</translation>
 <translation id="1291104554099683393">Poskusite deliti besedilo v manjših kosih.</translation>
@@ -56,6 +57,7 @@
 <translation id="2435457462613246316">Pokaži geslo</translation>
 <translation id="24452542372838207">Razširi obvestilo</translation>
 <translation id="2445449901874883781">Uporabi veliko gostoto</translation>
+<translation id="2448407890032181691">Ciljno območje dotika je premaknjeno v spodnji desni kot. Dotaknite se tukaj.</translation>
 <translation id="2482878487686419369">Obvestila</translation>
 <translation id="2497284189126895209">Vse datoteke</translation>
 <translation id="2515586267016047495">Alt</translation>
@@ -140,6 +142,7 @@
 <translation id="5606865426897221650">Tabulatorka</translation>
 <translation id="5613020302032141669">Puščica levo</translation>
 <translation id="5633029987065897167">Prazno</translation>
+<translation id="5651438382973553530">Ciljno območje dotika je premaknjeno v spodnji levi kot. Dotaknite se tukaj.</translation>
 <translation id="5754277640426581776">{MINUTES,plural, =1{1 min}one{# min}two{# min}few{# min}other{# min}}</translation>
 <translation id="5763338081255973061">{DAYS,plural, =0{Aktivna danes}=1{Aktivna pred 1 dnevom}one{Aktivna pred # dnevom}two{Aktivna pred # dnevoma}few{Aktivna pred # dnevi}other{Aktivna pred # dnevi}}</translation>
 <translation id="5768079895599174203">{DAYS,plural, =1{1 dan in }one{# dan in }two{# dneva in }few{# dni in }other{# dni in }}</translation>
diff --git a/ui/strings/translations/ui_strings_sq.xtb b/ui/strings/translations/ui_strings_sq.xtb
index 87eabfd..4ea659f8 100644
--- a/ui/strings/translations/ui_strings_sq.xtb
+++ b/ui/strings/translations/ui_strings_sq.xtb
@@ -9,6 +9,7 @@
 <translation id="1178017578188974117">{DAYS,plural, =1{1 ditë më parë}other{# ditë më parë}}</translation>
 <translation id="1181037720776840403">Hiq</translation>
 <translation id="1243314992276662751">Ngarko</translation>
+<translation id="1253734725326687145">Objektivi i prekjes u lëviz në krye djathtas. Trokit këtu</translation>
 <translation id="1266864766717917324">Nuk mund të ndahet <ph name="CONTENT_TYPE" /></translation>
 <translation id="1269641567813814718">Win</translation>
 <translation id="1291104554099683393">Provo ta ndash tekstin në copëza më të vogla.</translation>
@@ -56,6 +57,7 @@
 <translation id="2435457462613246316">Shfaq fjalëkalimin</translation>
 <translation id="24452542372838207">Zgjero njoftimin</translation>
 <translation id="2445449901874883781">Përdor dendësi të lartë</translation>
+<translation id="2448407890032181691">Objektivi i prekjes u lëviz në fund djathtas. Trokit këtu</translation>
 <translation id="2482878487686419369">Njoftimet</translation>
 <translation id="2497284189126895209">Të gjithë skedarët</translation>
 <translation id="2515586267016047495">Alt</translation>
@@ -141,6 +143,7 @@
 <translation id="5606865426897221650">Skeda</translation>
 <translation id="5613020302032141669">Shigjeta majtas</translation>
 <translation id="5633029987065897167">Bosh</translation>
+<translation id="5651438382973553530">Objektivi i prekjes u lëviz në fund majtas. Trokit këtu</translation>
 <translation id="5754277640426581776">{MINUTES,plural, =1{1 min.}other{# min.}}</translation>
 <translation id="5763338081255973061">{DAYS,plural, =0{Aktive sot}=1{Aktive 1 ditë më parë}other{Aktive # ditë më parë}}</translation>
 <translation id="5768079895599174203">{DAYS,plural, =1{1 ditë e }other{# ditë e }}</translation>
diff --git a/ui/strings/translations/ui_strings_sv.xtb b/ui/strings/translations/ui_strings_sv.xtb
index fe0940c..6d0b9fec 100644
--- a/ui/strings/translations/ui_strings_sv.xtb
+++ b/ui/strings/translations/ui_strings_sv.xtb
@@ -9,6 +9,7 @@
 <translation id="1178017578188974117">{DAYS,plural, =1{För 1 dag sedan}other{För # dagar sedan}}</translation>
 <translation id="1181037720776840403">Ta bort</translation>
 <translation id="1243314992276662751">Ladda upp</translation>
+<translation id="1253734725326687145">Tryckområdet har flyttats till det övre högra hörnet. Tryck här.</translation>
 <translation id="1266864766717917324">Det gick inte att dela <ph name="CONTENT_TYPE" /></translation>
 <translation id="1269641567813814718">Win</translation>
 <translation id="1291104554099683393">Testa att dela upp texten i mindre bitar.</translation>
@@ -56,6 +57,7 @@
 <translation id="2435457462613246316">Visa lösenord</translation>
 <translation id="24452542372838207">Utöka avisering</translation>
 <translation id="2445449901874883781">Använd hög densitet</translation>
+<translation id="2448407890032181691">Tryckområdet har flyttats till det nedre högra hörnet. Tryck här.</translation>
 <translation id="2482878487686419369">Aviseringar</translation>
 <translation id="2497284189126895209">Alla filer</translation>
 <translation id="2515586267016047495">Alt</translation>
@@ -141,6 +143,7 @@
 <translation id="5606865426897221650">Tabb</translation>
 <translation id="5613020302032141669">Vänsterpil</translation>
 <translation id="5633029987065897167">Tom</translation>
+<translation id="5651438382973553530">Tryckområdet har flyttats till det nedre vänstra hörnet. Tryck här.</translation>
 <translation id="5754277640426581776">{MINUTES,plural, =1{1 min}other{# min}}</translation>
 <translation id="5763338081255973061">{DAYS,plural, =0{Aktiv i dag}=1{Aktiv för 1 dag sedan}other{Aktiv för # dagar sedan}}</translation>
 <translation id="5768079895599174203">{DAYS,plural, =1{1 dag och }other{# dagar och }}</translation>
diff --git a/ui/strings/translations/ui_strings_ta.xtb b/ui/strings/translations/ui_strings_ta.xtb
index 1a8c292..ace341b 100644
--- a/ui/strings/translations/ui_strings_ta.xtb
+++ b/ui/strings/translations/ui_strings_ta.xtb
@@ -9,6 +9,7 @@
 <translation id="1178017578188974117">{DAYS,plural, =1{1 நாளுக்கு முன்பு}other{# நாட்களுக்கு முன்பு}}</translation>
 <translation id="1181037720776840403">அகற்று</translation>
 <translation id="1243314992276662751">பதிவேற்று</translation>
+<translation id="1253734725326687145">டச் டார்கெட் மேல் வலதுபுறத்திற்கு நகர்த்தப்பட்டது. இங்கே தட்டவும்.</translation>
 <translation id="1266864766717917324"><ph name="CONTENT_TYPE" />ஐப் பகிர முடியவில்லை</translation>
 <translation id="1269641567813814718">Win</translation>
 <translation id="1291104554099683393">சிறுசிறு பகுதிகளாக உரையைப் பகிர முயலவும்.</translation>
@@ -56,6 +57,7 @@
 <translation id="2435457462613246316">கடவுச்சொல்லைக் காண்பி</translation>
 <translation id="24452542372838207">அறிவிப்பை விரிவாக்கு</translation>
 <translation id="2445449901874883781">அதிக அடர்த்தியைப் பயன்படுத்து</translation>
+<translation id="2448407890032181691">டச் டார்கெட் கீழ் வலதுபுறத்திற்கு நகர்த்தப்பட்டது. இங்கே தட்டவும்.</translation>
 <translation id="2482878487686419369">அறிவிப்புகள்</translation>
 <translation id="2497284189126895209">அனைத்து கோப்புகளும்</translation>
 <translation id="2515586267016047495">Alt</translation>
@@ -141,6 +143,7 @@
 <translation id="5606865426897221650">Tab</translation>
 <translation id="5613020302032141669">இடது அம்பு</translation>
 <translation id="5633029987065897167">எதுவுமில்லை</translation>
+<translation id="5651438382973553530">டச் டார்கெட் கீழ் இடதுபுறத்திற்கு நகர்த்தப்பட்டது. இங்கே தட்டவும்.</translation>
 <translation id="5754277640426581776">{MINUTES,plural, =1{1 நிமிடம்}other{# நிமிடங்கள்}}</translation>
 <translation id="5763338081255973061">{DAYS,plural, =0{இன்று பயன்படுத்தியுள்ளார்}=1{நேற்று பயன்படுத்தியுள்ளார்}other{# நாட்களுக்கு முன்பு பயன்படுத்தியுள்ளார்}}</translation>
 <translation id="5768079895599174203">{DAYS,plural, =1{1 நாள், }other{# நாட்கள், }}</translation>
diff --git a/ui/strings/translations/ui_strings_th.xtb b/ui/strings/translations/ui_strings_th.xtb
index a4b56d8..83c3d685 100644
--- a/ui/strings/translations/ui_strings_th.xtb
+++ b/ui/strings/translations/ui_strings_th.xtb
@@ -9,6 +9,7 @@
 <translation id="1178017578188974117">{DAYS,plural, =1{1 วันที่ผ่านมา}other{# วันที่ผ่านมา}}</translation>
 <translation id="1181037720776840403">นำออก</translation>
 <translation id="1243314992276662751">อัปโหลด</translation>
+<translation id="1253734725326687145">ย้ายเป้าหมายการสัมผัสไปที่ด้านขวาบนแล้ว แตะที่นี่</translation>
 <translation id="1266864766717917324">แชร์<ph name="CONTENT_TYPE" />ไม่ได้</translation>
 <translation id="1269641567813814718">Win</translation>
 <translation id="1291104554099683393">ลองแชร์ข้อความทีละส่วนแทน</translation>
@@ -56,6 +57,7 @@
 <translation id="2435457462613246316">แสดงรหัสผ่าน</translation>
 <translation id="24452542372838207">ขยายการแจ้งเตือน</translation>
 <translation id="2445449901874883781">ใช้ความหนาแน่นสูง</translation>
+<translation id="2448407890032181691">ย้ายเป้าหมายการสัมผัสไปที่ด้านขวาล่างแล้ว แตะที่นี่</translation>
 <translation id="2482878487686419369">การแจ้งเตือน</translation>
 <translation id="2497284189126895209">ไฟล์ทั้งหมด</translation>
 <translation id="2515586267016047495">Alt</translation>
@@ -141,6 +143,7 @@
 <translation id="5606865426897221650">Tab</translation>
 <translation id="5613020302032141669">ลูกศรซ้าย</translation>
 <translation id="5633029987065897167">ว่าง</translation>
+<translation id="5651438382973553530">ย้ายเป้าหมายการสัมผัสไปที่ด้านซ้ายล่างแล้ว แตะที่นี่</translation>
 <translation id="5754277640426581776">{MINUTES,plural, =1{1 นาที}other{# นาที}}</translation>
 <translation id="5763338081255973061">{DAYS,plural, =0{ใช้งานวันนี้}=1{ใช้งานเมื่อ 1 วันที่ผ่านมา}other{ใช้งานเมื่อ # วันที่ผ่านมา}}</translation>
 <translation id="5768079895599174203">{DAYS,plural, =1{1 วันกับอีก }other{# วันกับอีก }}</translation>
diff --git a/ui/strings/translations/ui_strings_tr.xtb b/ui/strings/translations/ui_strings_tr.xtb
index c619a67f..8439b5f 100644
--- a/ui/strings/translations/ui_strings_tr.xtb
+++ b/ui/strings/translations/ui_strings_tr.xtb
@@ -9,6 +9,7 @@
 <translation id="1178017578188974117">{DAYS,plural, =1{1 gün önce}other{# Gün Önce}}</translation>
 <translation id="1181037720776840403">Kaldır</translation>
 <translation id="1243314992276662751">Yükle</translation>
+<translation id="1253734725326687145">Dokunma hedefi sağ üst köşeye taşındı. Buraya dokunun.</translation>
 <translation id="1266864766717917324"><ph name="CONTENT_TYPE" /> paylaşılamadı</translation>
 <translation id="1269641567813814718">Win</translation>
 <translation id="1291104554099683393">Metni daha küçük parçalar halinde paylaşmayı deneyin.</translation>
@@ -56,6 +57,7 @@
 <translation id="2435457462613246316">Şifreyi göster</translation>
 <translation id="24452542372838207">Bildirimi genişlet</translation>
 <translation id="2445449901874883781">Yüksek yoğunluk kullan</translation>
+<translation id="2448407890032181691">Dokunma hedefi sağ alt köşeye taşındı. Buraya dokunun.</translation>
 <translation id="2482878487686419369">Bildirimler</translation>
 <translation id="2497284189126895209">Tüm Dosyalar</translation>
 <translation id="2515586267016047495">Alt</translation>
@@ -141,6 +143,7 @@
 <translation id="5606865426897221650">Sekme</translation>
 <translation id="5613020302032141669">Sol Ok</translation>
 <translation id="5633029987065897167">Boş</translation>
+<translation id="5651438382973553530">Dokunma hedefi sol alt köşeye taşındı. Buraya dokunun.</translation>
 <translation id="5754277640426581776">{MINUTES,plural, =1{1 dk.}other{# dk.}}</translation>
 <translation id="5763338081255973061">{DAYS,plural, =0{Bugün etkindi}=1{1 gün önce etkindi}other{# gün önce etkindi}}</translation>
 <translation id="5768079895599174203">{DAYS,plural, =1{1 gün ve }other{# gün ve }}</translation>
diff --git a/ui/strings/translations/ui_strings_uk.xtb b/ui/strings/translations/ui_strings_uk.xtb
index 3812dfb..60b2c3ce 100644
--- a/ui/strings/translations/ui_strings_uk.xtb
+++ b/ui/strings/translations/ui_strings_uk.xtb
@@ -9,6 +9,7 @@
 <translation id="1178017578188974117">{DAYS,plural, =1{1 день тому}one{# день тому}few{# дні тому}many{# днів тому}other{# дня тому}}</translation>
 <translation id="1181037720776840403">Видалити</translation>
 <translation id="1243314992276662751">Завантажити</translation>
+<translation id="1253734725326687145">Область дотику переміщено у верхній правий кут. Натисніть тут.</translation>
 <translation id="1266864766717917324">Не вдалося надіслати: <ph name="CONTENT_TYPE" /></translation>
 <translation id="1269641567813814718">Win</translation>
 <translation id="1291104554099683393">Спробуйте надіслати його меншими частинами.</translation>
@@ -56,6 +57,7 @@
 <translation id="2435457462613246316">Показати пароль</translation>
 <translation id="24452542372838207">Розгорнути сповіщення</translation>
 <translation id="2445449901874883781">Використовувати високу щільність</translation>
+<translation id="2448407890032181691">Область дотику переміщено в нижній правий кут. Натисніть тут.</translation>
 <translation id="2482878487686419369">Сповіщення</translation>
 <translation id="2497284189126895209">Усі файли</translation>
 <translation id="2515586267016047495">Alt</translation>
@@ -141,6 +143,7 @@
 <translation id="5606865426897221650">Tab</translation>
 <translation id="5613020302032141669">Курсор ліворуч</translation>
 <translation id="5633029987065897167">Пусто</translation>
+<translation id="5651438382973553530">Область дотику переміщено в нижній лівий кут. Натисніть тут.</translation>
 <translation id="5754277640426581776">{MINUTES,plural, =1{1 хв}one{# хв}few{# хв}many{# хв}other{# хв}}</translation>
 <translation id="5763338081255973061">{DAYS,plural, =0{Остання активність: сьогодні}=1{Остання активність: 1 день тому}one{Остання активність: # день тому}few{Остання активність: # дні тому}many{Остання активність: # днів тому}other{Остання активність: # дня тому}}</translation>
 <translation id="5768079895599174203">{DAYS,plural, =1{1 день і }one{# день і }few{# дні та }many{# днів і }other{# дня та }}</translation>
diff --git a/ui/strings/translations/ui_strings_zh-CN.xtb b/ui/strings/translations/ui_strings_zh-CN.xtb
index ddc5a773..4f2f15a 100644
--- a/ui/strings/translations/ui_strings_zh-CN.xtb
+++ b/ui/strings/translations/ui_strings_zh-CN.xtb
@@ -9,6 +9,7 @@
 <translation id="1178017578188974117">{DAYS,plural, =1{1 天前}other{# 天前}}</translation>
 <translation id="1181037720776840403">移除</translation>
 <translation id="1243314992276662751">上传</translation>
+<translation id="1253734725326687145">触摸目标已移至右上角。点按此处。</translation>
 <translation id="1266864766717917324">无法分享<ph name="CONTENT_TYPE" /></translation>
 <translation id="1269641567813814718">Win 键</translation>
 <translation id="1291104554099683393">请尝试使用较小的文本块进行分享。</translation>
@@ -56,6 +57,7 @@
 <translation id="2435457462613246316">显示密码</translation>
 <translation id="24452542372838207">展开通知</translation>
 <translation id="2445449901874883781">使用高密度</translation>
+<translation id="2448407890032181691">触摸目标已移至右下角。点按此处。</translation>
 <translation id="2482878487686419369">通知</translation>
 <translation id="2497284189126895209">所有文件</translation>
 <translation id="2515586267016047495">Alt</translation>
@@ -141,6 +143,7 @@
 <translation id="5606865426897221650">Tab 键</translation>
 <translation id="5613020302032141669">向左箭头</translation>
 <translation id="5633029987065897167">空白</translation>
+<translation id="5651438382973553530">触摸目标已移至左下角。点按此处。</translation>
 <translation id="5754277640426581776">{MINUTES,plural, =1{1 分钟}other{# 分钟}}</translation>
 <translation id="5763338081255973061">{DAYS,plural, =0{今天曾有活动}=1{1 天前曾有活动}other{# 天前曾有活动}}</translation>
 <translation id="5768079895599174203">{DAYS,plural, =1{1 天 }other{# 天 }}</translation>
diff --git a/ui/strings/translations/ui_strings_zh-HK.xtb b/ui/strings/translations/ui_strings_zh-HK.xtb
index 2b27baf..ac4c419 100644
--- a/ui/strings/translations/ui_strings_zh-HK.xtb
+++ b/ui/strings/translations/ui_strings_zh-HK.xtb
@@ -9,6 +9,7 @@
 <translation id="1178017578188974117">{DAYS,plural, =1{1 天前}other{# 天前}}</translation>
 <translation id="1181037720776840403">移除</translation>
 <translation id="1243314992276662751">上載</translation>
+<translation id="1253734725326687145">觸控目標移咗去右上方。㩒一下呢度。</translation>
 <translation id="1266864766717917324">無法分享<ph name="CONTENT_TYPE" /></translation>
 <translation id="1269641567813814718">Win 鍵</translation>
 <translation id="1291104554099683393">請嘗試將要分享的文字分為數個簡短片段。</translation>
@@ -56,6 +57,7 @@
 <translation id="2435457462613246316">顯示密碼</translation>
 <translation id="24452542372838207">展開通知</translation>
 <translation id="2445449901874883781">使用高密度</translation>
+<translation id="2448407890032181691">觸控目標移咗去右下方。㩒一下呢度。</translation>
 <translation id="2482878487686419369">通知</translation>
 <translation id="2497284189126895209">所有檔案</translation>
 <translation id="2515586267016047495">Alt</translation>
@@ -141,6 +143,7 @@
 <translation id="5606865426897221650">Tab 鍵</translation>
 <translation id="5613020302032141669">向左鍵</translation>
 <translation id="5633029987065897167">沒有項目</translation>
+<translation id="5651438382973553530">觸控目標移咗去左下方。㩒一下呢度。</translation>
 <translation id="5754277640426581776">{MINUTES,plural, =1{1 分鐘}other{# 分鐘}}</translation>
 <translation id="5763338081255973061">{DAYS,plural, =0{上次使用時間:今天}=1{上次使用時間:1 天前}other{上次使用時間:# 天前}}</translation>
 <translation id="5768079895599174203">{DAYS,plural, =1{1 天和}other{# 天和}}</translation>
diff --git a/ui/strings/translations/ui_strings_zh-TW.xtb b/ui/strings/translations/ui_strings_zh-TW.xtb
index 15b0137..5428b15 100644
--- a/ui/strings/translations/ui_strings_zh-TW.xtb
+++ b/ui/strings/translations/ui_strings_zh-TW.xtb
@@ -9,6 +9,7 @@
 <translation id="1178017578188974117">{DAYS,plural, =1{1 天前}other{# 天前}}</translation>
 <translation id="1181037720776840403">移除</translation>
 <translation id="1243314992276662751">上傳</translation>
+<translation id="1253734725326687145">觸控目標已移至右上方。輕觸這裡。</translation>
 <translation id="1266864766717917324">無法分享<ph name="CONTENT_TYPE" /></translation>
 <translation id="1269641567813814718">Windows 鍵</translation>
 <translation id="1291104554099683393">請嘗試將要分享的文字分成多個片段。</translation>
@@ -56,6 +57,7 @@
 <translation id="2435457462613246316">顯示密碼</translation>
 <translation id="24452542372838207">展開通知</translation>
 <translation id="2445449901874883781">使用高密度模式</translation>
+<translation id="2448407890032181691">觸控目標已移至右下方。輕觸這裡。</translation>
 <translation id="2482878487686419369">通知</translation>
 <translation id="2497284189126895209">所有檔案</translation>
 <translation id="2515586267016047495">Alt</translation>
@@ -141,6 +143,7 @@
 <translation id="5606865426897221650">Tab 鍵</translation>
 <translation id="5613020302032141669">向左鍵</translation>
 <translation id="5633029987065897167">空白</translation>
+<translation id="5651438382973553530">觸控目標已移至左下方。輕觸這裡。</translation>
 <translation id="5754277640426581776">{MINUTES,plural, =1{1 分鐘}other{# 分鐘}}</translation>
 <translation id="5763338081255973061">{DAYS,plural, =0{上次使用時間:今天}=1{上次使用時間:1 天前}other{上次使用時間:# 天前}}</translation>
 <translation id="5768079895599174203">{DAYS,plural, =1{1 天 }other{# 天 }}</translation>
diff --git a/ui/strings/translations/ui_strings_zu.xtb b/ui/strings/translations/ui_strings_zu.xtb
index a08fdc7e..1f3ebd65 100644
--- a/ui/strings/translations/ui_strings_zu.xtb
+++ b/ui/strings/translations/ui_strings_zu.xtb
@@ -9,6 +9,7 @@
 <translation id="1178017578188974117">{DAYS,plural, =1{Usuku Olu-1 Olwedlule}one{Izinsuku Ezingu-# Ezedlule}other{Izinsuku Ezingu-# Ezedlule}}</translation>
 <translation id="1181037720776840403">Susa</translation>
 <translation id="1243314992276662751">Layisha</translation>
+<translation id="1253734725326687145">Impokophelo yokuthinta iyiswe phezulu ngakwesokudla. Thepha lapha.</translation>
 <translation id="1266864766717917324">Ayikwazanga ukwabelana nge-<ph name="CONTENT_TYPE" /></translation>
 <translation id="1269641567813814718">Win</translation>
 <translation id="1291104554099683393">Zama ukwabelana umbhalo ngezigaxa ezincane.</translation>
@@ -56,6 +57,7 @@
 <translation id="2435457462613246316">Bonisa iphasiwedi</translation>
 <translation id="24452542372838207">Nweba isaziso</translation>
 <translation id="2445449901874883781">Sebenzisa ukuminyana okuphezulu</translation>
+<translation id="2448407890032181691">Impokophelo yokuthinta iyiswe phansi ngakwesokudla. Thepha lapha.</translation>
 <translation id="2482878487686419369">Izaziso</translation>
 <translation id="2497284189126895209">Wonke amafayela</translation>
 <translation id="2515586267016047495">I-Alt</translation>
@@ -141,6 +143,7 @@
 <translation id="5606865426897221650">Ithebhu</translation>
 <translation id="5613020302032141669">Umcibisholo ongakwesokunxele</translation>
 <translation id="5633029987065897167">Akunalutho</translation>
+<translation id="5651438382973553530">Impokophelo yokuthinta iyiswe phansi ngakwesokunxele. Thepha lapha.</translation>
 <translation id="5754277640426581776">{MINUTES,plural, =1{1 iminithi}one{# amaminithi}other{# amaminithi}}</translation>
 <translation id="5763338081255973061">{DAYS,plural, =0{Iyasebenza namhlanje}=1{Isebenze ngosuku olungu-1 oludlule}one{Isebenze ngezinsuku ezingu-# ezedlule}other{Isebenze ngezinsuku ezingu-# ezedlule}}</translation>
 <translation id="5768079895599174203">{DAYS,plural, =1{1 usuku ne- }one{# izinsuku ne- }other{# izinsuku ne- }}</translation>
diff --git a/ui/webui/resources/cr_components/searchbox/BUILD.gn b/ui/webui/resources/cr_components/searchbox/BUILD.gn
index 098c048..42ab072d 100644
--- a/ui/webui/resources/cr_components/searchbox/BUILD.gn
+++ b/ui/webui/resources/cr_components/searchbox/BUILD.gn
@@ -24,6 +24,7 @@
   web_component_files = [
     "searchbox.ts",
     "searchbox_action.ts",
+    "searchbox_compose_button.ts",
     "searchbox_dropdown.ts",
     "searchbox_icon.ts",
     "searchbox_match.ts",
@@ -33,7 +34,10 @@
     "searchbox_browser_proxy.ts",
     "utils.ts",
   ]
-  css_files = [ "searchbox_dropdown_shared_style.css" ]
+  css_files = [
+    "searchbox_compose_button.css",
+    "searchbox_dropdown_shared_style.css",
+  ]
 
   mojo_files_deps = [
     ":mojo_bindings_ts__generator",
@@ -48,6 +52,7 @@
   ts_composite = true
   ts_definitions = [ "//tools/typescript/definitions/metrics_private.d.ts" ]
   ts_deps = [
+    "//third_party/lit/v3_0:build_ts",
     "//third_party/polymer/v3_0:library",
     "//ui/webui/resources/cr_elements:build_ts",
     "//ui/webui/resources/js:build_ts",
diff --git a/ui/webui/resources/cr_components/searchbox/searchbox.html b/ui/webui/resources/cr_components/searchbox/searchbox.html
index 4f6dbc0..007aa7d 100644
--- a/ui/webui/resources/cr_components/searchbox/searchbox.html
+++ b/ui/webui/resources/cr_components/searchbox/searchbox.html
@@ -8,7 +8,7 @@
     --cr-searchbox-voice-icon-offset: 16px;
     --cr-searchbox-voice-search-button-width: 0px;
     --cr-searchbox-match-padding-inline-start: 12px;
-    --cr-compose-button-width: 110px;
+    --cr-compose-button-width: 104px;
     --cr-searchbox-icon-spacing: 11px;
     border-radius: var(--cr-searchbox-border-radius);
     box-shadow: var(--cr-searchbox-shadow);
@@ -242,7 +242,6 @@
     box-shadow: var(--ntp-focus-shadow);
   }
 
-
   :host(:not([searchbox-chrome-refresh-theming])) #voiceSearchButton {
     background-image: url(//resources/cr_components/searchbox/icons/mic.svg);
   }
@@ -251,16 +250,7 @@
     background-image: url(//resources/cr_components/searchbox/icons/camera.svg);
   }
 
-  :host(:not([searchbox-chrome-refresh-theming])) #composeButton {
-   background-color: #F3F5F6;
-   color:#1F1F1F;
-   font-weight: 400;
-   border: none;
-   position: absolute;
- }
-
   :host([searchbox-chrome-refresh-theming]:not([color-source-is-baseline])) #voiceSearchButton,
-  :host([searchbox-chrome-refresh-theming]:not([color-source-is-baseline])) #composeButton,
   :host([searchbox-chrome-refresh-theming]:not([color-source-is-baseline])) #lensSearchButton {
     -webkit-mask-position: center;
     -webkit-mask-repeat: no-repeat;
@@ -289,10 +279,6 @@
     right: unset;
   }
 
-  :host {
-    --cr-searchbox-voice-icon-offset: 16px;
-  }
-
   :host([searchbox-lens-search-enabled_]) #voiceSearchButton {
     right: var(--cr-searchbox-voice-icon-offset);
   }
@@ -360,24 +346,6 @@
     inset-inline-start: 16px;
   }
 
-  :host([enable-compose-button]) #composeButton{
-    position: absolute;
-    right: 10px;
-    top: 5px;
-  }
-
-  .compose-container {
-    right: 10px;
-    top: 50%;
-    transform: translateY(-50%);
-    z-index: 100;
-  }
-
-.compose-icon {
-  filter:invert(1);
-  vertical-align: text-bottom;
-}
-
 </style>
 <div id="inputWrapper" on-focusout=onInputWrapperFocusout_
     on-keydown="onInputWrapperKeydown_">
@@ -439,10 +407,10 @@
       </button>
     </template>
     <template is="dom-if" if="[[composeButtonEnabled]]">
-      <cr-button on-click="onComposeButtonClick_"  id="composeButton" class="compose-container" title="[[i18n('searchboxComposeButtonText')]]">
-        <img slot="prefix-icon" src="[[composeIcon]]" class="compose-icon"></img>
-        $i18n{searchboxComposeButtonText}
-      </cr-button>
+      <cr-searchbox-compose-button
+        id="composeButton"
+        on-compose-click="onComposeButtonClick_">
+      </cr-searchbox-compose-button>
     </template>
   </template>
   <cr-searchbox-dropdown id="matches" part="searchbox-dropdown"
diff --git a/ui/webui/resources/cr_components/searchbox/searchbox.ts b/ui/webui/resources/cr_components/searchbox/searchbox.ts
index 7dae8ed..1dda9368 100644
--- a/ui/webui/resources/cr_components/searchbox/searchbox.ts
+++ b/ui/webui/resources/cr_components/searchbox/searchbox.ts
@@ -2,6 +2,7 @@
 // Use of this source code is governed by a BSD-style license that can be
 // found in the LICENSE file.
 
+import './searchbox_compose_button.js';
 import './searchbox_dropdown.js';
 import './searchbox_icon.js';
 import './searchbox_thumbnail.js';
@@ -39,6 +40,13 @@
   moveCursorToEnd?: boolean;
 }
 
+interface ComposeClickEventDetail {
+  button: number;
+  ctrlKey: boolean;
+  metaKey: boolean;
+  shiftKey: boolean;
+}
+
 export interface SearchboxElement {
   $: {
     icon: SearchboxIconElement,
@@ -150,13 +158,6 @@
         type: Boolean,
       },
 
-      composeIcon: {
-        type: String,
-        value: () =>
-            '//resources/cr_components/searchbox/icons/search_spark.svg',
-        reflectToAttribute: true,
-      },
-
       //========================================================================
       // Private properties
       //========================================================================
@@ -303,7 +304,6 @@
   declare searchboxSteadyStateShadow: boolean;
   declare composeboxEnabled: boolean;
   declare composeButtonEnabled: boolean;
-  declare composeIcon: string;
   declare showThumbnail: boolean;
   declare private inputAriaLive_: string;
   declare private isLensSearchbox_: boolean;
@@ -834,7 +834,7 @@
     this.dispatchEvent(new Event('open-lens-search'));
   }
 
-  private onComposeButtonClick_(e: MouseEvent) {
+  private onComposeButtonClick_(e: CustomEvent<ComposeClickEventDetail>) {
     if (!this.composeboxEnabled) {
       // Construct navigation url.
       const searchParams = new URLSearchParams();
@@ -854,10 +854,9 @@
           !this.isInputEmpty());
 
       // Handle mouse events.
-      e.preventDefault();
-      if (e.ctrlKey || e.metaKey) {
+      if (e.detail.ctrlKey || e.detail.metaKey) {
         window.open(href, '_blank');
-      } else if (e.shiftKey) {
+      } else if (e.detail.shiftKey) {
         window.open(href, '_blank', 'noopener');
       } else {
         window.open(href, '_self');
diff --git a/ui/webui/resources/cr_components/searchbox/searchbox_compose_button.css b/ui/webui/resources/cr_components/searchbox/searchbox_compose_button.css
new file mode 100644
index 0000000..5c1f19f
--- /dev/null
+++ b/ui/webui/resources/cr_components/searchbox/searchbox_compose_button.css
@@ -0,0 +1,161 @@
+/* Copyright 2025 The Chromium Authors
+ * Use of this source code is governed by a BSD-style license that can be
+ * found in the LICENSE file. */
+
+/* #css_wrapper_metadata_start
+ * #type=style-lit
+ * #scheme=relative
+ * #css_wrapper_metadata_end */
+
+#composeButton {
+  background-color: #F3F5F6;
+  color: #1F1F1F;
+  font-weight: 400;
+  border: none;
+  position: relative;
+}
+
+.compose-container {
+  z-index: 100;
+  position: relative;
+}
+
+.compose-icon {
+  filter: invert(1);
+  vertical-align: text-bottom;
+}
+
+#glowAnimationWrapper {
+  --anim-duration: 2s;
+  --glif-angle-start: 99deg;
+  --glif-angle-range: 245deg;
+  --mask-angle-start: -150deg;
+  --mask-angle-range: 355deg;
+
+  --acceleration: cubic-bezier(0.4, 0, 0.2, 1);
+
+  --glif-gradient: conic-gradient(
+    rgba(52, 168, 82, 0) 0deg,
+    rgba(52, 168, 82, 1) 38.9738deg,
+    rgba(255, 211, 20, 1) 62.3678deg,
+    rgba(255, 70, 65, 1) 87.0062deg,
+    rgba(49, 134, 255, 1) 107.428deg,
+    rgba(49, 134, 255, 0.5) 204.48deg,
+    rgba(49, 134, 255, 0) 308.88deg,
+    rgba(52, 168, 82, 0) 360deg
+  );
+
+  --mask-gradient: conic-gradient(
+    transparent,
+    16.56deg,
+    273.24deg,
+    transparent 333.36deg,
+    transparent 360deg
+  );
+}
+
+@keyframes rotate-glif-anim {
+  from {
+    rotate: var(--glif-angle-start);
+  }
+  to {
+    rotate: calc(var(--glif-angle-start) + var(--glif-angle-range));
+  }
+}
+
+@keyframes rotate-mask-anim {
+  from {
+    rotate: var(--mask-angle-start);
+  }
+  to {
+    rotate: calc(var(--mask-angle-start) + var(--mask-angle-range));
+  }
+}
+
+@keyframes fade-in-out {
+  0% {
+    opacity: 0;
+  }
+  10% {
+    opacity: 1;
+  }
+  60% {
+    opacity: 1;
+  }
+  100% {
+    opacity: 0;
+  }
+}
+
+/**
+ * .glow-container contains both the button and the GLIF gradients used as part
+ * of the animation. There are 2 masked gradients to create the animation: one
+ * outer blurred glow that extends past the button and one conal gradient that
+ * sits on the border of the button.
+ */
+.glow-container {
+  height: 40px;
+  padding: 0 2px;
+  display: flex;
+  align-items: center;
+  border-radius: 100px;
+  position: absolute;
+  right: 6px;
+  top: 50%;
+  transform: translateY(-50%);
+  z-index: 100;
+}
+
+/* A wrapper class to hold each gradient and its mask. */
+.gradient-and-mask-wrapper {
+  overflow: hidden;
+  position: absolute;
+  inset: 0;
+  border-radius: 100px;
+}
+
+/* The outer blurred glow. */
+.outer-glow {
+  filter: blur(40px);
+}
+
+/* Containers used to position the gradient and masks correctly. The gradient
+ * and masks themselves are created using pseudo-elements. */
+ .gradient,
+.mask {
+  position: absolute;
+  inset: 0;
+  transform-origin: center;
+  translate: 0 -50%;
+  top: 50%;
+  scale: 1.1 0.6;
+  border-radius: 50%;
+  aspect-ratio: 1/1;
+}
+
+ .gradient:before,
+.mask:before {
+  content: '';
+  position: absolute;
+  inset: 0;
+  transform-origin: center;
+}
+
+.gradient:before {
+  background: var(--glif-gradient);
+  rotate: var(--glif-angle-start);
+}
+
+.play .gradient:before {
+  animation: rotate-glif-anim var(--anim-duration) var(--acceleration) forwards,
+             fade-in-out var(--anim-duration) linear forwards;
+}
+
+.mask:before {
+  background: var(--mask-gradient);
+  rotate: var(--mask-angle-start);
+}
+
+.play .mask:before {
+  animation: rotate-mask-anim var(--anim-duration) var(--acceleration) forwards;
+}
diff --git a/ui/webui/resources/cr_components/searchbox/searchbox_compose_button.html b/ui/webui/resources/cr_components/searchbox/searchbox_compose_button.html
new file mode 100644
index 0000000..382f2cf
--- /dev/null
+++ b/ui/webui/resources/cr_components/searchbox/searchbox_compose_button.html
@@ -0,0 +1,16 @@
+<div id="glowAnimationWrapper" class="glow-container play">
+  <div class="gradient-and-mask-wrapper outer-glow">
+    <div class="gradient"></div>
+    <div class="mask"></div>
+  </div>
+  <div class="gradient-and-mask-wrapper">
+    <div class="gradient"></div>
+    <div class="mask"></div>
+  </div>
+  <cr-button @click="${this.onClick_}" id="composeButton"
+      class="compose-container"
+      title="$i18n{searchboxComposeButtonText}">
+    <img slot="prefix-icon" src="${this.composeIcon_}" class="compose-icon">
+    $i18n{searchboxComposeButtonText}
+  </cr-button>
+</div>
\ No newline at end of file
diff --git a/ui/webui/resources/cr_components/searchbox/searchbox_compose_button.ts b/ui/webui/resources/cr_components/searchbox/searchbox_compose_button.ts
new file mode 100644
index 0000000..ca3347ba
--- /dev/null
+++ b/ui/webui/resources/cr_components/searchbox/searchbox_compose_button.ts
@@ -0,0 +1,55 @@
+// Copyright 2025 The Chromium Authors
+// Use of this source code is governed by a BSD-style license that can be
+// found in the LICENSE file.
+
+import '//resources/cr_elements/cr_button/cr_button.js';
+
+import {CrLitElement} from '//resources/lit/v3_0/lit.rollup.js';
+
+import {getCss} from './searchbox_compose_button.css.js';
+import {getHtml} from './searchbox_compose_button.html.js';
+
+export class SearchboxComposeButtonElement extends CrLitElement {
+  static get is() {
+    return 'cr-searchbox-compose-button';
+  }
+
+  static override get styles() {
+    return getCss();
+  }
+
+  override render() {
+    return getHtml.bind(this)();
+  }
+
+  static override get properties() {
+    return {
+      composeIcon_: {
+        type: String,
+        reflect: true,
+      },
+    };
+  }
+
+  protected accessor composeIcon_: string =
+      '//resources/cr_components/searchbox/icons/search_spark.svg';
+
+  protected onClick_(e: MouseEvent) {
+    e.preventDefault();
+    this.fire('compose-click', {
+      button: e.button,
+      ctrlKey: e.ctrlKey,
+      metaKey: e.metaKey,
+      shiftKey: e.shiftKey,
+    });
+  }
+}
+
+declare global {
+  interface HTMLElementTagNameMap {
+    'cr-searchbox-compose-button': SearchboxComposeButtonElement;
+  }
+}
+
+customElements.define(
+    SearchboxComposeButtonElement.is, SearchboxComposeButtonElement);
diff --git a/v8 b/v8
index 41aacdd..e75523e 160000
--- a/v8
+++ b/v8
@@ -1 +1 @@
-Subproject commit 41aacdda71ed37cbaf84d7c138a0be8297d2fb85
+Subproject commit e75523e79fa33acd0fbba0efea735ef20b4baebf