diff --git a/DEPS b/DEPS
index 9b9b53a..8a94133 100644
--- a/DEPS
+++ b/DEPS
@@ -245,15 +245,15 @@
   # Three lines of non-changing comments so that
   # the commit queue can handle CLs rolling Skia
   # and whatever else without interference from each other.
-  'skia_revision': '2c2e4313adca2fb9ed85df0218c738cf52bf57d7',
+  'skia_revision': 'a2672102702d7b11cbd70c465fceb3fb9e58f88f',
   # 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': '0a12473af5dfeabb6626bd558d5dc866f16cdb6a',
+  'v8_revision': 'fe6e3df471e24517f098e874d505b1728c332915',
   # 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': '322d118fca1fde1439dfac9a234a791ac610c54b',
+  'angle_revision': '602b957b88365a9cd34ab73efca4c96675bbb149',
   # Three lines of non-changing comments so that
   # the commit queue can handle CLs rolling SwiftShader
   # and whatever else without interference from each other.
@@ -292,7 +292,7 @@
   # Three lines of non-changing comments so that
   # the commit queue can handle CLs rolling freetype
   # and whatever else without interference from each other.
-  'freetype_revision': '837f0345a9a6f3f64c94a41d944b097ffa359e5a',
+  'freetype_revision': 'ab1c98ac183d07e2ac0e38c5a2a6ec607f14aeb0',
   # Three lines of non-changing comments so that
   # the commit queue can handle CLs rolling freetype
   # and whatever else without interference from each other.
@@ -320,7 +320,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': 'd2b8719629b8aecb383f5644542b3bdf7d31a7cc',
+  'devtools_frontend_revision': 'f5cdbdfb498c834043f5426a2887af970ad4b188',
   # 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.
@@ -360,7 +360,7 @@
   # Three lines of non-changing comments so that
   # the commit queue can handle CLs rolling feed
   # and whatever else without interference from each other.
-  'dawn_revision': '913e158429f49b6291e07775a63bb340b2f09c60',
+  'dawn_revision': '209b1ebdd2caa41e8c2c1e769a037d05babcbe6d',
   # Three lines of non-changing comments so that
   # the commit queue can handle CLs rolling feed
   # and whatever else without interference from each other.
@@ -768,7 +768,7 @@
       'packages': [
         {
           'package': 'chromium/rts/model/linux-amd64',
-          'version': 'gMwPUVXKNKWaOUCXWzRPHLptnnqj3iex4pZxKzsoISgC',
+          'version': 'VWfOxZd4pTaExqAmsZz94qfKjBLgKD8BjMGwC6JW-PoC',
         },
       ],
       'dep_type': 'cipd',
@@ -779,7 +779,7 @@
       'packages': [
         {
           'package': 'chromium/rts/model/mac-amd64',
-          'version': 'bmUYb7_DPlq3u0dziiBNI8E4ymVfsSLPSyPFdhYERfMC',
+          'version': 'PC3DoAxLPEYrnJ3p1m6F6J6z163Udjgb49vIG2CmtLcC',
         },
       ],
       'dep_type': 'cipd',
@@ -790,7 +790,7 @@
       'packages': [
         {
           'package': 'chromium/rts/model/windows-amd64',
-          'version': 'UnqZMEXgh1uq69vnM-Q9ItMq6CDvW7DBZ75tQZLgyXYC',
+          'version': 'j-NxgToD1sSpoDn4Cc1Lv5GuI7KPnfVruxtxVG39Fl4C',
         },
       ],
       'dep_type': 'cipd',
@@ -1070,7 +1070,7 @@
   # Tools used when building Chrome for Chrome OS. This affects both the Simple
   # Chrome workflow, as well as the chromeos-chrome ebuild.
   'src/third_party/chromite': {
-      'url': Var('chromium_git') + '/chromiumos/chromite.git' + '@' + 'fad651133fb0c6de63c1c6e9b0ec4b00830bc462',
+      'url': Var('chromium_git') + '/chromiumos/chromite.git' + '@' + 'f77c10e839b3585b2c8a43c690e674b36c2cd5e1',
       'condition': 'checkout_chromeos',
   },
 
@@ -1473,7 +1473,7 @@
   },
 
   'src/third_party/perfetto':
-    Var('android_git') + '/platform/external/perfetto.git' + '@' + '383df8c3092e183e0335ba3f1c502cc660c523dc',
+    Var('android_git') + '/platform/external/perfetto.git' + '@' + '448ab50107d2f6382e413564e51e8130e92c4e09',
 
   'src/third_party/perl': {
       'url': Var('chromium_git') + '/chromium/deps/perl.git' + '@' + '6f3e5028eb65d0b4c5fdd792106ac4c84eee1eb3',
@@ -1576,7 +1576,7 @@
       'packages': [
           {
               'package': 'chromium/third_party/r8',
-              'version': 'KOlWWUU4CAY1EqgiZ6iljOP7ycIjceTEFcwWxL14HFoC',
+              'version': 'tamyW0-567_CaEZt2m7Pwy2NSUKeocbxdkoGsf-z3F0C',
           },
       ],
       'condition': 'checkout_android',
@@ -1764,7 +1764,7 @@
     Var('chromium_git') + '/v8/v8.git' + '@' +  Var('v8_revision'),
 
   'src-internal': {
-    'url': 'https://chrome-internal.googlesource.com/chrome/src-internal.git@9a6b4cc0b53de057dc9857c0d4bbda024e925d86',
+    'url': 'https://chrome-internal.googlesource.com/chrome/src-internal.git@13bf51fd202bc3a8253df69f36b6b517fefa84c2',
     'condition': 'checkout_src_internal',
   },
 
@@ -1794,7 +1794,7 @@
     'packages': [
       {
         'package': 'chromeos_internal/apps/help_app/app',
-        'version': 'bfprPzS01s_y6khNEnSc1AQhOo0dnCLwbGbm3cCj73gC',
+        'version': '--teeCXAegR-oRj-_GHKWa9rxYgfxyiqZRo35ERpxREC',
       },
     ],
     'condition': 'checkout_chromeos and checkout_src_internal',
@@ -1805,7 +1805,7 @@
     'packages': [
       {
         'package': 'chromeos_internal/apps/media_app/app',
-        'version': '4wNg2rSxrx6K9nCbrmMndt7JX2VL_9EVh0vbhQ3_XFYC',
+        'version': 'ROUfPh37wfuSM5ttBlMLYXQWAWs36YQaULFPhhzjePcC',
       },
     ],
     'condition': 'checkout_chromeos and checkout_src_internal',
diff --git a/android_webview/java/src/org/chromium/android_webview/common/ProductionSupportedFlagList.java b/android_webview/java/src/org/chromium/android_webview/common/ProductionSupportedFlagList.java
index 8f91fea5..45a03b6 100644
--- a/android_webview/java/src/org/chromium/android_webview/common/ProductionSupportedFlagList.java
+++ b/android_webview/java/src/org/chromium/android_webview/common/ProductionSupportedFlagList.java
@@ -187,6 +187,8 @@
             Flag.commandLine(AwSwitches.WEBVIEW_DISABLE_APPS_PACKAGE_NAMES_ALLOWLIST_COMPONENT,
                     "Disable downloading the apps package names allowlist component by the "
                             + "component updater."),
+            Flag.baseFeature(AwFeatures.WEBVIEW_EMPTY_COMPONENT,
+                    "Enables loading a fake empty (no-op) component during WebView startup."),
             Flag.commandLine(AwSwitches.WEBVIEW_SELECTIVE_IMAGE_INVERSION_DARKENING,
                     "Enables use selective image inversion to automatically darken page, it will be"
                             + " used when WebView is in dark mode, but website doesn't provide dark"
diff --git a/ash/strings/ash_strings_as.xtb b/ash/strings/ash_strings_as.xtb
index c21b448..9e3a681 100644
--- a/ash/strings/ash_strings_as.xtb
+++ b/ash/strings/ash_strings_as.xtb
@@ -82,6 +82,7 @@
 <translation id="1346748346194534595">সোঁ</translation>
 <translation id="1351937230027495976">মেনু সংকোচন কৰক</translation>
 <translation id="1364382257761975320">আপোনাৰ Chromebook আনলক কৰিবলৈ, নিজৰ ফিংগাৰপ্ৰিণ্ট ব্যৱহাৰ কৰক</translation>
+<translation id="1364618750746929654">ট্ৰেন্সক্ৰিপশ্বন সৃষ্টি কৰিব পৰা নাই</translation>
 <translation id="1383597849754832576">কথন ফাইল ডাউনল’ড কৰিব নোৱাৰি। পাছত পুনৰ চেষ্টা কৰক।</translation>
 <translation id="1383876407941801731">Search</translation>
 <translation id="1391102559483454063">অন আছে</translation>
@@ -679,6 +680,7 @@
 <translation id="54609108002486618">পৰিচালিত</translation>
 <translation id="5465662442746197494">সহায় লাগিবনে?</translation>
 <translation id="547979256943495781">শ্বেল্ফ সোঁফালে আছে</translation>
+<translation id="5491186829646618080">ফাৰ্মৱেৰ আপডে’ট উপলব্ধ</translation>
 <translation id="5519195206574732858">এলটিই</translation>
 <translation id="5520229639206813572">আপোনাৰ প্ৰশাসকে আটাইবোৰ ই-ছিমৰ প্ৰ’ফাইল আঁতৰাইছে। অধিক তথ্যৰ বাবে আপোনাৰ প্ৰশাসকৰ সৈতে যোগাযোগ কৰক।</translation>
 <translation id="5523434445161341166"><ph name="FEATURE_NAME" />এ সংযোগ কৰি আছে।</translation>
@@ -1177,6 +1179,7 @@
 <translation id="8876661425082386199">আপোনাৰ ইণ্টাৰনেট সংযোগ পৰীক্ষা কৰক</translation>
 <translation id="8877788021141246043">ৰিমাইণ্ডাৰ ছেট কৰক</translation>
 <translation id="8878886163241303700">বিস্তাৰিত স্ক্ৰীণ</translation>
+<translation id="888982883502837004">আপোনাৰ ডিভাইচটোৰ বাবে ফাৰ্মৱেৰ আপডে’ট উপলব্ধ। পৰ্যালোচনা আৰু আপডে’ট কৰিবলৈ ক্লিক কৰক।</translation>
 <translation id="8896630965521842259"><ph name="DESK_TEMPLATE_NAME" /> স্থায়ীভাৱে মচা হ’ব</translation>
 <translation id="890616557918890486">উৎস সলনি কৰক</translation>
 <translation id="8909138438987180327">বেটাৰী <ph name="PERCENTAGE" /> শতাংশত আছে।</translation>
diff --git a/ash/strings/ash_strings_cs.xtb b/ash/strings/ash_strings_cs.xtb
index 390f0ee..6e4c8fc 100644
--- a/ash/strings/ash_strings_cs.xtb
+++ b/ash/strings/ash_strings_cs.xtb
@@ -82,6 +82,7 @@
 <translation id="1346748346194534595">Doprava</translation>
 <translation id="1351937230027495976">Sbalit nabídku</translation>
 <translation id="1364382257761975320">Pokud chcete Chromebook odemknout, použijte otisk prstu</translation>
+<translation id="1364618750746929654">Přepis nelze vytvořit</translation>
 <translation id="1383597849754832576">Stažení řečových souborů se nezdařilo. Zkuste to znovu později.</translation>
 <translation id="1383876407941801731">Vyhledávání</translation>
 <translation id="1391102559483454063">Zapnuto</translation>
@@ -679,6 +680,7 @@
 <translation id="54609108002486618">Spravovaný</translation>
 <translation id="5465662442746197494">Potřebujete pomoc?</translation>
 <translation id="547979256943495781">Polička vpravo</translation>
+<translation id="5491186829646618080">K dispozici jsou aktualizace firmwaru</translation>
 <translation id="5519195206574732858">LTE</translation>
 <translation id="5520229639206813572">Váš administrátor odstranil všechny profily eSIM. O další informace požádejte administrátora.</translation>
 <translation id="5523434445161341166">Probíhá připojování funkce <ph name="FEATURE_NAME" />.</translation>
@@ -1177,6 +1179,7 @@
 <translation id="8876661425082386199">Zkontrolujte připojení</translation>
 <translation id="8877788021141246043">Nastavit připomenutí</translation>
 <translation id="8878886163241303700">Rozšíření obrazovky</translation>
+<translation id="888982883502837004">Pro zařízení jsou k dispozici aktualizace firmwaru. Kliknutím je můžete zobrazit a provést aktualizaci.</translation>
 <translation id="8896630965521842259">Šablona <ph name="DESK_TEMPLATE_NAME" /> bude trvale smazána</translation>
 <translation id="890616557918890486">Změnit zdroj</translation>
 <translation id="8909138438987180327">Baterie je nabitá na <ph name="PERCENTAGE" /> %.</translation>
diff --git a/ash/strings/ash_strings_da.xtb b/ash/strings/ash_strings_da.xtb
index fe9ddc1..f0741c0 100644
--- a/ash/strings/ash_strings_da.xtb
+++ b/ash/strings/ash_strings_da.xtb
@@ -82,6 +82,7 @@
 <translation id="1346748346194534595">Højre</translation>
 <translation id="1351937230027495976">Skjul menu</translation>
 <translation id="1364382257761975320">Hvis du vil låse din Chromebook op, skal du bruge dit fingeraftryk</translation>
+<translation id="1364618750746929654">Transskriptionen kunne ikke genereres</translation>
 <translation id="1383597849754832576">Talefilerne kan ikke downloades. Prøv igen senere.</translation>
 <translation id="1383876407941801731">Søg</translation>
 <translation id="1391102559483454063">Til</translation>
@@ -679,6 +680,7 @@
 <translation id="54609108002486618">Administreret</translation>
 <translation id="5465662442746197494">Har du brug for hjælp?</translation>
 <translation id="547979256943495781">Hylden er til højre</translation>
+<translation id="5491186829646618080">Der er nye firmwareopdateringer</translation>
 <translation id="5519195206574732858">LTE</translation>
 <translation id="5520229639206813572">Din administrator har fjernet alle eSIM-profiler. Kontakt din administrator for at få flere oplysninger.</translation>
 <translation id="5523434445161341166"><ph name="FEATURE_NAME" /> opretter forbindelse.</translation>
@@ -1177,6 +1179,7 @@
 <translation id="8876661425082386199">Tjek din forbindelse</translation>
 <translation id="8877788021141246043">Opret en påmindelse</translation>
 <translation id="8878886163241303700">Udvider skærm</translation>
+<translation id="888982883502837004">Der er tilgængelige firmwareopdateringer til din enhed. Klik for at gennemgå dem og opdatere.</translation>
 <translation id="8896630965521842259"><ph name="DESK_TEMPLATE_NAME" /> slettes permanent</translation>
 <translation id="890616557918890486">Skift kilde</translation>
 <translation id="8909138438987180327">Batteriet er på <ph name="PERCENTAGE" /> procent.</translation>
diff --git a/ash/strings/ash_strings_id.xtb b/ash/strings/ash_strings_id.xtb
index 9b3a35e..a42a575 100644
--- a/ash/strings/ash_strings_id.xtb
+++ b/ash/strings/ash_strings_id.xtb
@@ -82,6 +82,7 @@
 <translation id="1346748346194534595">Kanan</translation>
 <translation id="1351937230027495976">Ciutkan menu</translation>
 <translation id="1364382257761975320">Untuk membuka kunci Chromebook, gunakan sidik jari</translation>
+<translation id="1364618750746929654">Tidak dapat membuat transkripsi</translation>
 <translation id="1383597849754832576">Tidak dapat mendownload file ucapan. Coba lagi nanti.</translation>
 <translation id="1383876407941801731">Telusuri</translation>
 <translation id="1391102559483454063">Aktif</translation>
@@ -679,6 +680,7 @@
 <translation id="54609108002486618">Terkelola</translation>
 <translation id="5465662442746197494">Butuh bantuan?</translation>
 <translation id="547979256943495781">Rak di bagian kanan</translation>
+<translation id="5491186829646618080">Update firmware tersedia</translation>
 <translation id="5519195206574732858">LTE</translation>
 <translation id="5520229639206813572">Administrator Anda telah menghapus semua profil eSIM. Hubungi administrator untuk mendapatkan info selengkapnya.</translation>
 <translation id="5523434445161341166"><ph name="FEATURE_NAME" /> sedang dihubungkan.</translation>
@@ -1177,6 +1179,7 @@
 <translation id="8876661425082386199">Periksa koneksi Anda</translation>
 <translation id="8877788021141246043">Setel pengingat</translation>
 <translation id="8878886163241303700">Memperluas layar</translation>
+<translation id="888982883502837004">Update firmware tersedia untuk perangkat Anda. Klik untuk meninjau dan mengupdate.</translation>
 <translation id="8896630965521842259"><ph name="DESK_TEMPLATE_NAME" /> akan dihapus secara permanen</translation>
 <translation id="890616557918890486">Ubah sumber</translation>
 <translation id="8909138438987180327">Baterai <ph name="PERCENTAGE" /> persen.</translation>
diff --git a/ash/strings/ash_strings_it.xtb b/ash/strings/ash_strings_it.xtb
index af92267..5a8e5723 100644
--- a/ash/strings/ash_strings_it.xtb
+++ b/ash/strings/ash_strings_it.xtb
@@ -79,6 +79,7 @@
 <translation id="1346748346194534595">Destra</translation>
 <translation id="1351937230027495976">Comprimi il menu</translation>
 <translation id="1364382257761975320">Per sbloccare Chromebook, utilizza la tua impronta</translation>
+<translation id="1364618750746929654">Impossibile generare la trascrizione</translation>
 <translation id="1383597849754832576">Impossibile scaricare i file di contenuti vocali. Riprova più tardi.</translation>
 <translation id="1383876407941801731">Cerca</translation>
 <translation id="1391102559483454063">On</translation>
@@ -677,6 +678,7 @@
 <translation id="54609108002486618">Gestito</translation>
 <translation id="5465662442746197494">Hai bisogno di assistenza?</translation>
 <translation id="547979256943495781">Barra delle app a destra</translation>
+<translation id="5491186829646618080">Aggiornamenti firmware disponibili</translation>
 <translation id="5519195206574732858">LTE</translation>
 <translation id="5520229639206813572">L'amministratore ha rimosso tutti i profili eSIM. Per ulteriori informazioni al riguardo rivolgiti all’amministratore.</translation>
 <translation id="5523434445161341166">La funzionalità <ph name="FEATURE_NAME" /> sta cercando di connettersi.</translation>
@@ -1174,6 +1176,7 @@
 <translation id="8876661425082386199">Controlla la connessione</translation>
 <translation id="8877788021141246043">Imposta un promemoria</translation>
 <translation id="8878886163241303700">Estensione schermo</translation>
+<translation id="888982883502837004">Sono disponibili degli aggiornamenti del firmware per il tuo dispositivo. Fai clic per esaminarli ed eseguire gli aggiornamenti.</translation>
 <translation id="8896630965521842259">Il modello <ph name="DESK_TEMPLATE_NAME" /> verrà eliminato definitivamente</translation>
 <translation id="890616557918890486">Cambia origine</translation>
 <translation id="8909138438987180327">Livello batteria: <ph name="PERCENTAGE" />%.</translation>
diff --git a/ash/strings/ash_strings_ml.xtb b/ash/strings/ash_strings_ml.xtb
index c352e77..994125dd 100644
--- a/ash/strings/ash_strings_ml.xtb
+++ b/ash/strings/ash_strings_ml.xtb
@@ -82,6 +82,7 @@
 <translation id="1346748346194534595">ശരി</translation>
 <translation id="1351937230027495976">മെനു ചുരുക്കുക</translation>
 <translation id="1364382257761975320">Chromebook അൺലോക്ക് ചെയ്യാൻ നിങ്ങളുടെ ഫിംഗർപ്രിന്റ് ഉപയോഗിക്കുക</translation>
+<translation id="1364618750746929654">ട്രാൻസ്‌ക്രിപ്ഷൻ സൃഷ്ടിക്കാനാകുന്നില്ല</translation>
 <translation id="1383597849754832576">സംഭാഷണ ഫയലുകൾ ഡൗൺലോഡ് ചെയ്യാനായില്ല. പിന്നീട് വീണ്ടും ശ്രമിക്കുക.</translation>
 <translation id="1383876407941801731">Search</translation>
 <translation id="1391102559483454063">ഓണാണ്</translation>
@@ -679,6 +680,7 @@
 <translation id="54609108002486618">നിയന്ത്രിതം</translation>
 <translation id="5465662442746197494">സഹായം ആവശ്യമാണോ?</translation>
 <translation id="547979256943495781">സ്‌ക്രീനിൻ്റെ വലതുഭാഗത്താണ് ഷെൽഫ്</translation>
+<translation id="5491186829646618080">ഫേംവെയർ അപ്‌ഡേറ്റുകൾ ലഭ്യമാണ്</translation>
 <translation id="5519195206574732858">LTE</translation>
 <translation id="5520229639206813572">നിങ്ങളുടെ അഡ്‌മിൻ എല്ലാ eSIM പ്രൊഫൈലുകളും നീക്കം ചെയ്തു. കൂടുതൽ വിവരങ്ങൾക്ക് നിങ്ങളുടെ അഡ്‌മിനെ ബന്ധപ്പെടുക.</translation>
 <translation id="5523434445161341166"><ph name="FEATURE_NAME" /> കണക്റ്റ് ചെയ്യുന്നു.</translation>
@@ -1177,6 +1179,7 @@
 <translation id="8876661425082386199">നിങ്ങളുടെ കണക്ഷൻ പരിശോധിക്കുക</translation>
 <translation id="8877788021141246043">ഒരു റിമൈൻഡർ സജ്ജീകരിക്കുക</translation>
 <translation id="8878886163241303700">സ്‌ക്രീൻ വിപുലീകരിക്കുന്നു</translation>
+<translation id="888982883502837004">നിങ്ങളുടെ ഉപകരണത്തിന് ഫേം‌വെയർ അപ്ഡേറ്റുകൾ ലഭ്യമാണ്. അവലോകനം ചെയ്ത് അപ്ഡേറ്റ് ചെയ്യാൻ ക്ലിക്ക് ചെയ്യുക.</translation>
 <translation id="8896630965521842259"><ph name="DESK_TEMPLATE_NAME" /> ശാശ്വതമായി ഇല്ലാതാക്കും</translation>
 <translation id="890616557918890486">ഉറവിടം മാറ്റുക</translation>
 <translation id="8909138438987180327">ബാറ്ററി <ph name="PERCENTAGE" /> ശതമാനം ഉണ്ട്..</translation>
diff --git a/ash/strings/ash_strings_nl.xtb b/ash/strings/ash_strings_nl.xtb
index c10aa9e1..6003a48f 100644
--- a/ash/strings/ash_strings_nl.xtb
+++ b/ash/strings/ash_strings_nl.xtb
@@ -79,6 +79,7 @@
 <translation id="1346748346194534595">Rechts</translation>
 <translation id="1351937230027495976">Menu samenvouwen</translation>
 <translation id="1364382257761975320">Gebruik je vingerafdruk om je Chromebook te ontgrendelen</translation>
+<translation id="1364618750746929654">Kan geen transcriptie genereren</translation>
 <translation id="1383597849754832576">Kan spraakbestanden niet downloaden. Probeer het later opnieuw.</translation>
 <translation id="1383876407941801731">Zoeken</translation>
 <translation id="1391102559483454063">Aan</translation>
@@ -676,6 +677,7 @@
 <translation id="54609108002486618">Beheerd</translation>
 <translation id="5465662442746197494">Heb je hulp nodig?</translation>
 <translation id="547979256943495781">Plank aan rechterkant</translation>
+<translation id="5491186829646618080">Firmware-updates beschikbaar</translation>
 <translation id="5519195206574732858">LTE</translation>
 <translation id="5520229639206813572">Je beheerder heeft alle e-simkaartprofielen verwijderd. Neem contact op met je beheerder voor meer informatie.</translation>
 <translation id="5523434445161341166"><ph name="FEATURE_NAME" /> maakt verbinding.</translation>
@@ -1173,6 +1175,7 @@
 <translation id="8876661425082386199">Je verbinding checken</translation>
 <translation id="8877788021141246043">Stel een herinnering in</translation>
 <translation id="8878886163241303700">Uitgebreid scherm</translation>
+<translation id="888982883502837004">Firmware-updates zijn beschikbaar voor je apparaat. Klik om te bekijken en te updaten.</translation>
 <translation id="8896630965521842259"><ph name="DESK_TEMPLATE_NAME" /> wordt definitief verwijderd</translation>
 <translation id="890616557918890486">Bron wijzigen</translation>
 <translation id="8909138438987180327">Batterij op <ph name="PERCENTAGE" /> procent.</translation>
diff --git a/ash/strings/ash_strings_pt-BR.xtb b/ash/strings/ash_strings_pt-BR.xtb
index c4a1ea57..8367177 100644
--- a/ash/strings/ash_strings_pt-BR.xtb
+++ b/ash/strings/ash_strings_pt-BR.xtb
@@ -82,6 +82,7 @@
 <translation id="1346748346194534595">À direita</translation>
 <translation id="1351937230027495976">Recolher menu</translation>
 <translation id="1364382257761975320">Para desbloquear o Chromebook, use sua impressão digital</translation>
+<translation id="1364618750746929654">Falha ao gerar transcrição</translation>
 <translation id="1383597849754832576">Não foi possível fazer o download dos arquivos de fala. Tente novamente mais tarde.</translation>
 <translation id="1383876407941801731">Pesquisar</translation>
 <translation id="1391102559483454063">Ativado</translation>
@@ -679,6 +680,7 @@
 <translation id="54609108002486618">Gerenciado</translation>
 <translation id="5465662442746197494">Precisa de ajuda?</translation>
 <translation id="547979256943495781">Estante à direita</translation>
+<translation id="5491186829646618080">Atualizações de firmware disponíveis</translation>
 <translation id="5519195206574732858">LTE</translation>
 <translation id="5520229639206813572">Seu administrador removeu todos os perfis de eSIM. Entre em contato com ele para saber mais.</translation>
 <translation id="5523434445161341166">O recurso <ph name="FEATURE_NAME" /> está se conectando.</translation>
@@ -1177,6 +1179,7 @@
 <translation id="8876661425082386199">Verifique sua conexão</translation>
 <translation id="8877788021141246043">Definir um lembrete</translation>
 <translation id="8878886163241303700">Tela ampla</translation>
+<translation id="888982883502837004">Há atualizações de firmware disponíveis para seu dispositivo. Clique para revisar e atualizar.</translation>
 <translation id="8896630965521842259">O modelo <ph name="DESK_TEMPLATE_NAME" /> será excluído permanentemente</translation>
 <translation id="890616557918890486">Alterar origem</translation>
 <translation id="8909138438987180327">Bateria em <ph name="PERCENTAGE" /> por cento.</translation>
diff --git a/ash/strings/ash_strings_ru.xtb b/ash/strings/ash_strings_ru.xtb
index a85aa93..1485cc7 100644
--- a/ash/strings/ash_strings_ru.xtb
+++ b/ash/strings/ash_strings_ru.xtb
@@ -172,7 +172,7 @@
 <translation id="2034971124472263449">Все равно сохранить</translation>
 <translation id="2047639699071423250">Добавить основную идею</translation>
 <translation id="2049240716062114887">Название рабочего стола изменилось на "<ph name="DESK_NAME" />"</translation>
-<translation id="2050339315714019657">Книжная</translation>
+<translation id="2050339315714019657">Вертикальное расположение</translation>
 <translation id="2066708475850724665">Выключить лупу</translation>
 <translation id="2067602449040652523">Яркость клавиатуры</translation>
 <translation id="2078034614700056995">Чтобы перейти на следующий рабочий стол, проведите четырьмя пальцами вправо.</translation>
@@ -1206,7 +1206,7 @@
 <translation id="9080132581049224423">Чтобы перейти на главный экран, проведите вверх.</translation>
 <translation id="9080206825613744995">Микрофон используется</translation>
 <translation id="9084606467167974638">Переместить меню</translation>
-<translation id="9089416786594320554">Методы ввода</translation>
+<translation id="9089416786594320554">Способы ввода</translation>
 <translation id="9091626656156419976">Удален экран "<ph name="DISPLAY_NAME" />"</translation>
 <translation id="9098969848082897657">Отключить звук на телефоне</translation>
 <translation id="9099154003160514616">Доступно обновление Lacros</translation>
diff --git a/ash/strings/ash_strings_ta.xtb b/ash/strings/ash_strings_ta.xtb
index 40b1b11d..a220c0f 100644
--- a/ash/strings/ash_strings_ta.xtb
+++ b/ash/strings/ash_strings_ta.xtb
@@ -82,6 +82,7 @@
 <translation id="1346748346194534595">வலது</translation>
 <translation id="1351937230027495976">மெனுவைச் சுருக்கு</translation>
 <translation id="1364382257761975320">Chromebookகை அன்லாக் செய்ய, உங்கள் கைரேகையைப் பயன்படுத்தவும்</translation>
+<translation id="1364618750746929654">டிரான்ஸ்கிரிப்ஷனை உருவாக்க முடியவில்லை</translation>
 <translation id="1383597849754832576">உடனடி வசனத்தின் ஃபைல்களைப் பதிவிறக்க முடியவில்லை. பிறகு முயலவும்.</translation>
 <translation id="1383876407941801731">Search</translation>
 <translation id="1391102559483454063">இயக்கப்பட்டுள்ளது</translation>
@@ -679,6 +680,7 @@
 <translation id="54609108002486618">நிர்வகிக்கப்பட்டது</translation>
 <translation id="5465662442746197494">உதவி தேவையா?</translation>
 <translation id="547979256943495781">ஷெல்ஃப் வலப்புறம் உள்ளது</translation>
+<translation id="5491186829646618080">நிலைபொருள் புதுப்பிப்புகள் உள்ளன</translation>
 <translation id="5519195206574732858">LTE</translation>
 <translation id="5520229639206813572">eSIM சுயவிவரங்கள் அனைத்தையும் உங்கள் நிர்வாகி அகற்றிவிட்டார். கூடுதல் தகவல்களுக்கு, நிர்வாகியைத் தொடர்புகொள்ளவும்.</translation>
 <translation id="5523434445161341166"><ph name="FEATURE_NAME" /> இணைக்கப்படுகிறது.</translation>
@@ -1177,6 +1179,7 @@
 <translation id="8876661425082386199">இணைய இணைப்பைச் சரிபார்க்கவும்</translation>
 <translation id="8877788021141246043">நினைவூட்டலை அமை</translation>
 <translation id="8878886163241303700">திரையை விரிவாக்குகிறது</translation>
+<translation id="888982883502837004">உங்கள் சாதனத்திற்கு நிலைபொருள் புதுப்பிப்புகள் கிடைக்கின்றன. பார்த்துவிட்டு புதுப்பிக்க, கிளிக் செய்யவும்.</translation>
 <translation id="8896630965521842259"><ph name="DESK_TEMPLATE_NAME" /> நிரந்தரமாக நீக்கப்படும்</translation>
 <translation id="890616557918890486">மூலத்தை மாற்று</translation>
 <translation id="8909138438987180327">பேட்டரி: <ph name="PERCENTAGE" /> சதவீதம்.</translation>
diff --git a/ash/strings/ash_strings_tr.xtb b/ash/strings/ash_strings_tr.xtb
index a8b35ab..a76e7107 100644
--- a/ash/strings/ash_strings_tr.xtb
+++ b/ash/strings/ash_strings_tr.xtb
@@ -82,6 +82,7 @@
 <translation id="1346748346194534595">Sağa</translation>
 <translation id="1351937230027495976">Menüyü daralt</translation>
 <translation id="1364382257761975320">Chromebook'unuzun kilidini açmak için parmak izinizi kullanın</translation>
+<translation id="1364618750746929654">Metne dönüştürme işlemi gerçekleştirilemiyor</translation>
 <translation id="1383597849754832576">Canlı Altyazı dosyaları indirilemiyor. Daha sonra tekrar deneyin.</translation>
 <translation id="1383876407941801731">Ara</translation>
 <translation id="1391102559483454063">Açık</translation>
@@ -679,6 +680,7 @@
 <translation id="54609108002486618">Yönetilen</translation>
 <translation id="5465662442746197494">Yardıma mı ihtiyacınız var?</translation>
 <translation id="547979256943495781">Raf, ekranın sağ tarafında</translation>
+<translation id="5491186829646618080">Donanım yazılımı güncellemeleri mevcut</translation>
 <translation id="5519195206574732858">LTE</translation>
 <translation id="5520229639206813572">Yöneticiniz tüm eSIM profillerini kaldırdı. Daha fazla bilgi için yöneticinizle iletişime geçin.</translation>
 <translation id="5523434445161341166"><ph name="FEATURE_NAME" /> bağlanıyor.</translation>
@@ -1177,6 +1179,7 @@
 <translation id="8876661425082386199">Bağlantınızı denetleyin</translation>
 <translation id="8877788021141246043">Hatırlatıcı oluştur</translation>
 <translation id="8878886163241303700">Genişletilmiş ekran</translation>
+<translation id="888982883502837004">Donanım yazılımı güncellemeleri cihazınızda kullanılabilir. İnceleyip güncellemek için tıklayın.</translation>
 <translation id="8896630965521842259"><ph name="DESK_TEMPLATE_NAME" /> kalıcı olarak silinecek</translation>
 <translation id="890616557918890486">Kaynağı değiştir</translation>
 <translation id="8909138438987180327">Pil yüzde <ph name="PERCENTAGE" /> dolu.</translation>
diff --git a/ash/strings/ash_strings_uk.xtb b/ash/strings/ash_strings_uk.xtb
index 78eae6ff..ceced0e 100644
--- a/ash/strings/ash_strings_uk.xtb
+++ b/ash/strings/ash_strings_uk.xtb
@@ -82,6 +82,7 @@
 <translation id="1346748346194534595">Праворуч</translation>
 <translation id="1351937230027495976">Згорнути меню</translation>
 <translation id="1364382257761975320">Щоб розблокувати Chromebook, скористайтеся відбитком пальця</translation>
+<translation id="1364618750746929654">Не вдається створити транскрипцію</translation>
 <translation id="1383597849754832576">Не вдалося завантажити файли живих субтитрів. Повторіть спробу пізніше.</translation>
 <translation id="1383876407941801731">Пошук</translation>
 <translation id="1391102559483454063">Увімкнено</translation>
@@ -679,6 +680,7 @@
 <translation id="54609108002486618">Керований</translation>
 <translation id="5465662442746197494">Потрібна допомога?</translation>
 <translation id="547979256943495781">Полицю розташовано праворуч</translation>
+<translation id="5491186829646618080">Доступні оновлення мікропрограми</translation>
 <translation id="5519195206574732858">LTE</translation>
 <translation id="5520229639206813572">Ваш адміністратор вилучив усі профілі eSIM. Щоб дізнатися більше, зверніться до нього.</translation>
 <translation id="5523434445161341166"><ph name="FEATURE_NAME" /> підключається.</translation>
@@ -1177,6 +1179,7 @@
 <translation id="8876661425082386199">Перевірте з'єднання</translation>
 <translation id="8877788021141246043">Налаштуй нагадування</translation>
 <translation id="8878886163241303700">Розширення екрана</translation>
+<translation id="888982883502837004">Для вашого пристрою доступні оновлення мікропрограми. Натисніть, щоб переглянути й оновити.</translation>
 <translation id="8896630965521842259">Шаблон <ph name="DESK_TEMPLATE_NAME" /> буде видалено назавжди</translation>
 <translation id="890616557918890486">Змінити джерело</translation>
 <translation id="8909138438987180327">Акумулятор заряджено на <ph name="PERCENTAGE" />.</translation>
diff --git a/ash/strings/ash_strings_zh-HK.xtb b/ash/strings/ash_strings_zh-HK.xtb
index b5444f00..7920baa 100644
--- a/ash/strings/ash_strings_zh-HK.xtb
+++ b/ash/strings/ash_strings_zh-HK.xtb
@@ -82,7 +82,7 @@
 <translation id="1346748346194534595">向右</translation>
 <translation id="1351937230027495976">摺埋選單</translation>
 <translation id="1364382257761975320">如要解鎖 Chromebook,請使用指紋</translation>
-<translation id="1364618750746929654">無法產生語音轉錄</translation>
+<translation id="1364618750746929654">無法產生轉錄文字</translation>
 <translation id="1383597849754832576">無法下載即時字幕檔案,請稍後再試。</translation>
 <translation id="1383876407941801731">搜尋</translation>
 <translation id="1391102559483454063">已開啟</translation>
diff --git a/ash/system/cast/cast_notification_controller.cc b/ash/system/cast/cast_notification_controller.cc
index 0c68fc7d..10f20e1 100644
--- a/ash/system/cast/cast_notification_controller.cc
+++ b/ash/system/cast/cast_notification_controller.cc
@@ -111,7 +111,7 @@
   }
 }
 
-void CastNotificationController::StopCasting() {
+void CastNotificationController::StopCasting(absl::optional<int> button_index) {
   CastConfigController::Get()->StopCasting(displayed_route_id_);
   Shell::Get()->metrics()->RecordUserMetricsAction(
       UMA_STATUS_AREA_CAST_STOP_CAST);
diff --git a/ash/system/cast/cast_notification_controller.h b/ash/system/cast/cast_notification_controller.h
index 8841b616..f3252219 100644
--- a/ash/system/cast/cast_notification_controller.h
+++ b/ash/system/cast/cast_notification_controller.h
@@ -8,6 +8,7 @@
 #include "ash/public/cpp/cast_config_controller.h"
 
 #include "base/memory/weak_ptr.h"
+#include "third_party/abseil-cpp/absl/types/optional.h"
 
 namespace ash {
 
@@ -25,7 +26,7 @@
   void OnDevicesUpdated(const std::vector<SinkAndRoute>& devices) override;
 
  private:
-  void StopCasting();
+  void StopCasting(absl::optional<int> button_index);
 
   // The cast activity id that we are displaying. If the user stops a cast, we
   // send this value to the config delegate so that we stop the right cast.
diff --git a/ash/system/network/network_list_view.cc b/ash/system/network/network_list_view.cc
index fd080ca..6750368 100644
--- a/ash/system/network/network_list_view.cc
+++ b/ash/system/network/network_list_view.cc
@@ -558,9 +558,8 @@
         return connection_status;
       }
       if (IsManagedByPolicy(info)) {
-        return l10n_util::GetStringFUTF16(
-            IDS_ASH_STATUS_TRAY_ETHERNET_A11Y_DESC_MANAGED, info.label,
-            connection_status);
+        return l10n_util::GetStringUTF16(
+            IDS_ASH_STATUS_TRAY_ETHERNET_A11Y_DESC_MANAGED);
       }
       return info.label;
     case NetworkType::kWiFi: {
diff --git a/ash/webui/camera_app_ui/resources/strings/camera_strings_ru.xtb b/ash/webui/camera_app_ui/resources/strings/camera_strings_ru.xtb
index 6ccb223..1914f09 100644
--- a/ash/webui/camera_app_ui/resources/strings/camera_strings_ru.xtb
+++ b/ash/webui/camera_app_ui/resources/strings/camera_strings_ru.xtb
@@ -25,7 +25,7 @@
 <translation id="1925845977604399247">Перейти в галерею</translation>
 <translation id="2022953316617983419">QR-код</translation>
 <translation id="2036868001356139588">Длительность таймера</translation>
-<translation id="2050339315714019657">Книжная</translation>
+<translation id="2050339315714019657">Вертикальное расположение</translation>
 <translation id="2064538373111010176">Камера <ph name="CAMERA" /> активна</translation>
 <translation id="2144806332417375165">Свои параметры видео</translation>
 <translation id="2175927920773552910">QR-код</translation>
diff --git a/ash/webui/diagnostics_ui/backend/BUILD.gn b/ash/webui/diagnostics_ui/backend/BUILD.gn
index 6527b935..99abf73 100644
--- a/ash/webui/diagnostics_ui/backend/BUILD.gn
+++ b/ash/webui/diagnostics_ui/backend/BUILD.gn
@@ -73,7 +73,6 @@
     "//ui/events/ozone/layout",
     "//ui/gfx",
     "//ui/shell_dialogs",
-    "//ui/web_dialogs",
     "//ui/webui",
   ]
 }
@@ -131,7 +130,6 @@
     "//ui/events/ozone/evdev:event_device_info_test_utils",
     "//ui/gfx",
     "//ui/shell_dialogs",
-    "//ui/views:test_support",
     "//ui/webui",
   ]
 }
diff --git a/ash/webui/diagnostics_ui/backend/diagnostics_manager.cc b/ash/webui/diagnostics_ui/backend/diagnostics_manager.cc
index 69d986f..35a4bec7 100644
--- a/ash/webui/diagnostics_ui/backend/diagnostics_manager.cc
+++ b/ash/webui/diagnostics_ui/backend/diagnostics_manager.cc
@@ -4,7 +4,6 @@
 
 #include "ash/webui/diagnostics_ui/backend/diagnostics_manager.h"
 
-#include <ui/aura/window.h>
 #include "ash/constants/ash_features.h"
 #include "ash/webui/diagnostics_ui/backend/input_data_provider.h"
 #include "ash/webui/diagnostics_ui/backend/network_health_provider.h"
@@ -15,17 +14,19 @@
 namespace ash {
 namespace diagnostics {
 
-DiagnosticsManager::DiagnosticsManager(SessionLogHandler* session_log_handler,
-                                       content::WebUI* webui)
+DiagnosticsManager::DiagnosticsManager(SessionLogHandler* session_log_handler)
     : system_data_provider_(std::make_unique<SystemDataProvider>(
           session_log_handler->GetTelemetryLog())),
       system_routine_controller_(std::make_unique<SystemRoutineController>(
-          session_log_handler->GetRoutineLog())),
-      webui_(webui) {
+          session_log_handler->GetRoutineLog())) {
   if (features::IsNetworkingInDiagnosticsAppEnabled()) {
     network_health_provider_ = std::make_unique<NetworkHealthProvider>(
         session_log_handler->GetNetworkingLog());
   }
+
+  if (features::IsInputInDiagnosticsAppEnabled()) {
+    input_data_provider_ = std::make_unique<InputDataProvider>();
+  }
 }
 
 DiagnosticsManager::~DiagnosticsManager() = default;
@@ -44,14 +45,7 @@
   return system_routine_controller_.get();
 }
 
-InputDataProvider* DiagnosticsManager::GetInputDataProvider() {
-  // Do not construct the InputDataProvider until it is requested;
-  // performing this in the constructor is too early, and the native
-  // window will not be available.
-  if (features::IsInputInDiagnosticsAppEnabled() && !input_data_provider_) {
-    input_data_provider_ = std::make_unique<InputDataProvider>(
-        webui_->GetWebContents()->GetTopLevelNativeWindow());
-  }
+InputDataProvider* DiagnosticsManager::GetInputDataProvider() const {
   return input_data_provider_.get();
 }
 
diff --git a/ash/webui/diagnostics_ui/backend/diagnostics_manager.h b/ash/webui/diagnostics_ui/backend/diagnostics_manager.h
index fe39d57..ca7805e 100644
--- a/ash/webui/diagnostics_ui/backend/diagnostics_manager.h
+++ b/ash/webui/diagnostics_ui/backend/diagnostics_manager.h
@@ -7,8 +7,6 @@
 
 #include <memory>
 
-#include "ui/web_dialogs/web_dialog_ui.h"
-
 namespace ash {
 namespace diagnostics {
 
@@ -22,8 +20,7 @@
 // used by the Diagnostics SWA.
 class DiagnosticsManager {
  public:
-  DiagnosticsManager(SessionLogHandler* session_log_handler,
-                     content::WebUI* webui);
+  explicit DiagnosticsManager(SessionLogHandler* session_log_handler);
   ~DiagnosticsManager();
 
   DiagnosticsManager(const DiagnosticsManager&) = delete;
@@ -32,14 +29,13 @@
   NetworkHealthProvider* GetNetworkHealthProvider() const;
   SystemDataProvider* GetSystemDataProvider() const;
   SystemRoutineController* GetSystemRoutineController() const;
-  InputDataProvider* GetInputDataProvider();
+  InputDataProvider* GetInputDataProvider() const;
 
  private:
   std::unique_ptr<NetworkHealthProvider> network_health_provider_;
   std::unique_ptr<SystemDataProvider> system_data_provider_;
   std::unique_ptr<SystemRoutineController> system_routine_controller_;
   std::unique_ptr<InputDataProvider> input_data_provider_;
-  content::WebUI* webui_;
 };
 
 }  // namespace diagnostics
diff --git a/ash/webui/diagnostics_ui/backend/input_data_provider.cc b/ash/webui/diagnostics_ui/backend/input_data_provider.cc
index f425a30..7dfe99c1 100644
--- a/ash/webui/diagnostics_ui/backend/input_data_provider.cc
+++ b/ash/webui/diagnostics_ui/backend/input_data_provider.cc
@@ -8,16 +8,23 @@
 #include <linux/input.h>
 #include <vector>
 
+#include "ash/constants/ash_switches.h"
+#include "base/command_line.h"
+#include "base/files/scoped_file.h"
 #include "base/logging.h"
-#include "base/message_loop/message_pump_for_ui.h"
 #include "base/ranges/algorithm.h"
 #include "base/run_loop.h"
-#include "base/strings/stringprintf.h"
-#include "base/task/current_thread.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"
+#include "chromeos/system/statistics_provider.h"
 #include "ui/base/ime/ash/input_method_manager.h"
 #include "ui/events/devices/device_util_linux.h"
 #include "ui/events/devices/input_device.h"
+#include "ui/events/event_constants.h"
 #include "ui/events/keycodes/dom/keycode_converter.h"
+#include "ui/events/ozone/evdev/event_device_info.h"
 
 namespace ash {
 namespace diagnostics {
@@ -42,166 +49,8 @@
            !device_info->event_device_info.HasStylus()));
 }
 
-const int kKeyReleaseValue = 0;
-
 }  // namespace
 
-// Class for dispatching relevant events from evdev to the input_data_provider.
-// While it would be nice to re-use EventConverterEvdevImpl for this purpose,
-// it has a lot of connections (ui::Cursor, full ui::DeviceEventDispatcherEvdev
-// interface) that take more room to stub out rather than just implementing
-// another evdev FdWatcher from scratch.
-class InputDataEventWatcherImpl : public InputDataEventWatcher,
-                                  base::MessagePumpForUI::FdWatcher {
- public:
-  InputDataEventWatcherImpl(
-      uint32_t id,
-      base::WeakPtr<InputDataEventWatcher::Dispatcher> dispatcher);
-  ~InputDataEventWatcherImpl() override;
-  void ConvertKeyEvent(uint32_t key_code,
-                       uint32_t key_state,
-                       uint32_t scan_code);
-  void ProcessEvent(const input_event& input);
-  void Start();
-  void Stop();
-
- protected:
-  // base::MessagePumpForUI::FdWatcher:
-  void OnFileCanReadWithoutBlocking(int fd) override;
-  void OnFileCanWriteWithoutBlocking(int fd) override;
-
-  // Device id
-  const uint32_t id_;
-
-  // Path to input device.
-  const base::FilePath path_;
-
-  // File descriptor to read.
-  const int fd_;
-
-  // Scoped auto-closer for FD.
-  const base::ScopedFD input_device_fd_;
-
-  // Whether we're polling for input on the device.
-  bool watching_ = false;
-
-  // EV_ information pending for SYN_REPORT to dispatch.
-  uint32_t pending_scan_code_;
-  uint32_t pending_key_code_;
-  uint32_t pending_key_state_;
-
-  base::WeakPtr<InputDataEventWatcher::Dispatcher> dispatcher_;
-
-  // Controller for watching the input fd.
-  base::MessagePumpForUI::FdWatchController controller_;
-};
-
-class InputDataEventWatcherFactoryImpl : public InputDataEventWatcher::Factory {
- public:
-  InputDataEventWatcherFactoryImpl() = default;
-  InputDataEventWatcherFactoryImpl(const InputDataEventWatcherFactoryImpl&) =
-      delete;
-  InputDataEventWatcherFactoryImpl& operator=(
-      const InputDataEventWatcherFactoryImpl&) = delete;
-  ~InputDataEventWatcherFactoryImpl() override = default;
-
-  std::unique_ptr<InputDataEventWatcher> MakeWatcher(
-      uint32_t id,
-      base::WeakPtr<InputDataEventWatcher::Dispatcher> dispatcher) override {
-    return std::make_unique<InputDataEventWatcherImpl>(id,
-                                                       std::move(dispatcher));
-  }
-};
-
-InputDataEventWatcher::~InputDataEventWatcher() = default;
-InputDataEventWatcher::Factory::~Factory() = default;
-
-InputDataEventWatcherImpl::InputDataEventWatcherImpl(
-    uint32_t id,
-    base::WeakPtr<InputDataEventWatcher::Dispatcher> dispatcher)
-    : id_(id),
-      path_(base::FilePath(base::StringPrintf("/dev/input/event%d", id_))),
-      fd_(open(path_.value().c_str(), O_RDWR | O_NONBLOCK)),
-      input_device_fd_(fd_),
-      dispatcher_(dispatcher),
-      controller_(FROM_HERE) {
-  if (fd_ == -1) {
-    PLOG(ERROR) << "Unable to open event device " << id_
-                << ", not forwarding events for input diagnostics.";
-    // Leave un-Started(), so we never enable the fd watcher.
-    return;
-  }
-
-  Start();
-}
-
-InputDataEventWatcherImpl::~InputDataEventWatcherImpl() = default;
-
-void InputDataEventWatcherImpl::Start() {
-  base::CurrentUIThread::Get()->WatchFileDescriptor(
-      fd_, true, base::MessagePumpForUI::WATCH_READ, &controller_, this);
-  watching_ = true;
-}
-
-void InputDataEventWatcherImpl::Stop() {
-  controller_.StopWatchingFileDescriptor();
-  watching_ = false;
-}
-
-void InputDataEventWatcherImpl::OnFileCanReadWithoutBlocking(int fd) {
-  while (true) {
-    input_event input;
-    ssize_t read_size = read(fd, &input, sizeof(input));
-    if (read_size != sizeof(input)) {
-      if (errno == EINTR || errno == EAGAIN)
-        return;
-      if (errno != ENODEV)
-        PLOG(ERROR) << "error reading device " << path_.value();
-      Stop();
-      return;
-    }
-
-    ProcessEvent(input);
-  }
-}
-
-void InputDataEventWatcherImpl::OnFileCanWriteWithoutBlocking(int fd) {}
-
-// Once we have an entire keypress/release, dispatch it.
-void InputDataEventWatcherImpl::ConvertKeyEvent(uint32_t key_code,
-                                                uint32_t key_state,
-                                                uint32_t scan_code) {
-  bool down = key_state != kKeyReleaseValue;
-  if (dispatcher_)
-    dispatcher_->SendInputKeyEvent(id_, key_code, scan_code, down);
-}
-
-// Process evdev event structures directly from the kernel.
-void InputDataEventWatcherImpl::ProcessEvent(const input_event& input) {
-  // Accumulate relevant data about an event until a SYN_REPORT event releases
-  // the full report. For more information, see kernel documentation for
-  // input/event-codes.rst.
-  switch (input.type) {
-    case EV_MSC:
-      if (input.code == MSC_SCAN)
-        pending_scan_code_ = input.value;
-      break;
-    case EV_KEY:
-      pending_key_code_ = input.code;
-      pending_key_state_ = input.value;
-      break;
-    case EV_SYN:
-      if (input.code == SYN_REPORT)
-        ConvertKeyEvent(pending_key_code_, pending_key_state_,
-                        pending_scan_code_);
-
-      pending_key_code_ = 0;
-      pending_key_state_ = 0;
-      pending_scan_code_ = 0;
-      break;
-  }
-}
-
 // All blockings calls for identifying hardware need to go here: both
 // EventDeviceInfo::Initialize and ui::GetInputPathInSys can block in
 // base::MakeAbsoluteFilePath.
@@ -210,14 +59,14 @@
     base::FilePath path) {
   base::ScopedFD fd(open(path.value().c_str(), O_RDWR | O_NONBLOCK));
   if (fd.get() < 0) {
-    PLOG(ERROR) << "Couldn't open device path " << path << ".";
+    LOG(ERROR) << "Couldn't open device path " << path;
     return nullptr;
   }
 
   auto info = std::make_unique<InputDeviceInformation>();
 
   if (!info->event_device_info.Initialize(fd.get(), path)) {
-    LOG(ERROR) << "Failed to get device info for " << path << ".";
+    LOG(ERROR) << "Failed to get device info for " << path;
     return nullptr;
   }
 
@@ -242,24 +91,19 @@
   return info;
 }
 
-InputDataProvider::InputDataProvider(aura::Window* window)
-    : device_manager_(ui::CreateDeviceManager()),
-      watcher_factory_(std::make_unique<InputDataEventWatcherFactoryImpl>()) {
-  Initialize(window);
+InputDataProvider::InputDataProvider()
+    : device_manager_(ui::CreateDeviceManager()) {
+  Initialize();
 }
 
 InputDataProvider::InputDataProvider(
-    aura::Window* window,
-    std::unique_ptr<ui::DeviceManager> device_manager_for_test,
-    std::unique_ptr<InputDataEventWatcher::Factory> watcher_factory)
-    : device_manager_(std::move(device_manager_for_test)),
-      watcher_factory_(std::move(watcher_factory)) {
-  Initialize(window);
+    std::unique_ptr<ui::DeviceManager> device_manager_for_test)
+    : device_manager_(std::move(device_manager_for_test)) {
+  Initialize();
 }
 
 InputDataProvider::~InputDataProvider() {
   device_manager_->RemoveObserver(this);
-  widget_->RemoveObserver(this);
 }
 
 // static
@@ -277,15 +121,9 @@
   }
 }
 
-void InputDataProvider::Initialize(aura::Window* window) {
-  // Window and widget are needed for security enforcement.
-  CHECK(window);
-  widget_ = views::Widget::GetWidgetForNativeWindow(window);
-  CHECK(widget_);
+void InputDataProvider::Initialize() {
   device_manager_->AddObserver(this);
   device_manager_->ScanDevices(this);
-  widget_->AddObserver(this);
-  UpdateMaySendEvents();
 }
 
 void InputDataProvider::BindInterface(
@@ -336,135 +174,12 @@
     GetKeyboardVisualLayoutCallback callback) {
   if (!keyboards_.contains(id)) {
     LOG(ERROR) << "Couldn't find keyboard with ID " << id
-               << " when retrieving visual layout.";
+               << "when retrieving visual layout.";
     return;
   }
 
-  keyboard_helper_.GetKeyboardVisualLayout(keyboards_[id], std::move(callback));
-}
-
-void InputDataProvider::OnWidgetVisibilityChanged(views::Widget* widget,
-                                                  bool visible) {
-  UpdateEventObservers();
-}
-
-void InputDataProvider::OnWidgetActivationChanged(views::Widget* widget,
-                                                  bool active) {
-  UpdateEventObservers();
-}
-
-void InputDataProvider::UpdateMaySendEvents() {
-  const bool widget_open = !widget_->IsClosed();
-  const bool widget_active = widget_->IsActive();
-  const bool widget_visible = widget_->IsVisible();
-
-  may_send_events_ = widget_open && widget_visible && widget_active;
-}
-
-void InputDataProvider::UpdateEventObservers() {
-  const bool previous = may_send_events_;
-  UpdateMaySendEvents();
-
-  if (previous != may_send_events_) {
-    if (!may_send_events_)
-      SendPauseEvents();
-    else
-      SendResumeEvents();
-  }
-}
-
-void InputDataProvider::ForwardKeyboardInput(uint32_t id) {
-  if (!keyboards_.contains(id)) {
-    LOG(ERROR) << "Couldn't find keyboard with ID " << id
-               << " when trying to forward input.";
-    return;
-  }
-
-  keyboard_watchers_[id] =
-      watcher_factory_->MakeWatcher(id, weak_factory_.GetWeakPtr());
-}
-
-void InputDataProvider::UnforwardKeyboardInput(uint32_t id) {
-  if (!keyboards_.contains(id)) {
-    LOG(ERROR) << "Couldn't find keyboard with ID " << id
-               << " when trying to unforward input.";
-  }
-  if (!keyboard_watchers_.erase(id)) {
-    LOG(ERROR) << "Couldn't find keyboard watcher with ID " << id
-               << " when trying to unforward input.";
-  }
-}
-
-void InputDataProvider::OnObservedKeyboardInputDisconnect(
-    uint32_t id,
-    mojo::RemoteSetElementId) {
-  if (!keyboard_observers_.contains(id)) {
-    LOG(ERROR) << "received keyboard observer disconnect for ID " << id
-               << " without observer.";
-    return;
-  }
-
-  // When the last observer has been disconnected, stop forwarding events.
-  if (keyboard_observers_[id]->empty()) {
-    UnforwardKeyboardInput(id);
-
-    // The observer RemoteSet remains empty at this point; if a new
-    // observer comes in, we will Forward it again.
-  }
-}
-
-void InputDataProvider::ObserveKeyEvents(
-    uint32_t id,
-    mojo::PendingRemote<mojom::KeyboardObserver> observer) {
-  CHECK(widget_) << "Observing Key Events for input diagnostics not allowed "
-                    "without widget to track focus.";
-
-  if (!keyboards_.contains(id)) {
-    LOG(ERROR) << "Couldn't find keyboard with ID " << id
-               << " when trying to receive input.";
-    return;
-  }
-
-  // When keyboard observer remote set is constructed, establish the disconnect
-  // handler.
-  if (!keyboard_observers_.contains(id)) {
-    keyboard_observers_[id] =
-        std::make_unique<mojo::RemoteSet<mojom::KeyboardObserver>>();
-    keyboard_observers_[id]->set_disconnect_handler(base::BindRepeating(
-        &InputDataProvider::OnObservedKeyboardInputDisconnect,
-        base::Unretained(this), id));
-  }
-
-  auto& observers = *keyboard_observers_[id];
-
-  const auto observer_id = observers.Add(std::move(observer));
-
-  // Ensure first callback is 'Paused' if we do not currently have focus
-  if (!may_send_events_)
-    observers.Get(observer_id)->OnKeyEventsPaused();
-
-  // When we are adding the first observer, start forwarding events.
-  if (observers.size() == 1)
-    ForwardKeyboardInput(id);
-}
-
-void InputDataProvider::SendPauseEvents() {
-  for (const auto& keyboard : keyboard_observers_) {
-    for (const auto& observer : *keyboard.second) {
-      observer->OnKeyEventsPaused();
-    }
-  }
-
-  // Re-arm our log message for future events.
-  logged_not_dispatching_key_events_ = false;
-}
-
-void InputDataProvider::SendResumeEvents() {
-  for (const auto& keyboard : keyboard_observers_) {
-    for (const auto& observer : *keyboard.second) {
-      observer->OnKeyEventsResumed();
-    }
-  }
+  keyboard_helper_.GetKeyboardVisualLayout(keyboards_[id]->Clone(),
+                                           std::move(callback));
 }
 
 void InputDataProvider::OnDeviceEvent(const ui::DeviceEvent& event) {
@@ -488,21 +203,13 @@
   } else {
     DCHECK(event.action_type() == ui::DeviceEvent::ActionType::REMOVE);
     if (keyboards_.contains(id)) {
-      if (keyboard_observers_.erase(id)) {
-        // Unref'ing the observers does not trigger their
-        // OnObservedKeyboardInputDisconnect handlers (which would normally
-        // clean up any watchers), so we must explicitly release the watchers
-        // here.
-        keyboard_watchers_.erase(id);
-      }
       keyboards_.erase(id);
-      keyboard_aux_data_.erase(id);
-      for (const auto& observer : connected_devices_observers_) {
+      for (auto& observer : connected_devices_observers_) {
         observer->OnKeyboardDisconnected(id);
       }
     } else if (touch_devices_.contains(id)) {
       touch_devices_.erase(id);
-      for (const auto& observer : connected_devices_observers_) {
+      for (auto& observer : connected_devices_observers_) {
         observer->OnTouchDeviceDisconnected(id);
       }
     }
@@ -530,56 +237,20 @@
   touch_devices_[device_info->evdev_id] =
       touch_helper_.ConstructTouchDevice(device_info);
 
-  for (const auto& observer : connected_devices_observers_) {
+  for (auto& observer : connected_devices_observers_) {
     observer->OnTouchDeviceConnected(
         touch_devices_[device_info->evdev_id]->Clone());
   }
 }
 
 void InputDataProvider::AddKeyboard(const InputDeviceInformation* device_info) {
-  auto aux_data = std::make_unique<InputDataProviderKeyboard::AuxData>();
-
   keyboards_[device_info->evdev_id] =
-      keyboard_helper_.ConstructKeyboard(device_info, aux_data.get());
-  keyboard_aux_data_[device_info->evdev_id] = std::move(aux_data);
+      keyboard_helper_.ConstructKeyboard(device_info);
 
-  for (const auto& observer : connected_devices_observers_) {
+  for (auto& observer : connected_devices_observers_) {
     observer->OnKeyboardConnected(keyboards_[device_info->evdev_id]->Clone());
   }
 }
 
-void InputDataProvider::SendInputKeyEvent(uint32_t id,
-                                          uint32_t key_code,
-                                          uint32_t scan_code,
-                                          bool down) {
-  CHECK(widget_) << "Sending Key Events for input diagnostics not allowed "
-                    "without widget to track focus.";
-
-  if (!keyboard_observers_.contains(id)) {
-    LOG(ERROR) << "Couldn't find keyboard observer with ID " << id
-               << " when trying to dispatch key.";
-    return;
-  }
-
-  if (!may_send_events_) {
-    if (!logged_not_dispatching_key_events_) {
-      // Note: this will be common if the input diagnostics window is opened,
-      // but not focused, so just log once.
-      LOG(ERROR) << "Will not dispatch keys when diagnostics window does not "
-                    "have focus.";
-      logged_not_dispatching_key_events_ = true;
-    }
-    return;
-  }
-
-  mojom::KeyEventPtr event = keyboard_helper_.ConstructInputKeyEvent(
-      keyboards_[id], keyboard_aux_data_[id].get(), key_code, scan_code, down);
-
-  const auto& observers = *keyboard_observers_[id];
-  for (const auto& observer : observers) {
-    observer->OnKeyEvent(event->Clone());
-  }
-}
-
 }  // namespace diagnostics
 }  // namespace ash
diff --git a/ash/webui/diagnostics_ui/backend/input_data_provider.h b/ash/webui/diagnostics_ui/backend/input_data_provider.h
index 4d43827..3c57eeb 100644
--- a/ash/webui/diagnostics_ui/backend/input_data_provider.h
+++ b/ash/webui/diagnostics_ui/backend/input_data_provider.h
@@ -18,41 +18,15 @@
 #include "mojo/public/cpp/bindings/pending_remote.h"
 #include "mojo/public/cpp/bindings/receiver.h"
 #include "mojo/public/cpp/bindings/remote_set.h"
-#include "ui/aura/window.h"
+#include "ui/chromeos/events/event_rewriter_chromeos.h"
 #include "ui/events/ozone/device/device_event.h"
 #include "ui/events/ozone/device/device_event_observer.h"
 #include "ui/events/ozone/device/device_manager.h"
 #include "ui/events/ozone/evdev/event_device_info.h"
-#include "ui/views/widget/widget.h"
-#include "ui/views/widget/widget_observer.h"
 
 namespace ash {
 namespace diagnostics {
 
-// Interfaces for watching and dispatching relevant events from evdev to the
-// input_data_provider.
-class InputDataEventWatcher {
- public:
-  class Dispatcher {
-   public:
-    virtual void SendInputKeyEvent(uint32_t id,
-                                   uint32_t key_code,
-                                   uint32_t scan_code,
-                                   bool down) = 0;
-  };
-
-  class Factory {
-   public:
-    virtual ~Factory() = 0;
-
-    virtual std::unique_ptr<InputDataEventWatcher> MakeWatcher(
-        uint32_t evdev_id,
-        base::WeakPtr<Dispatcher> dispatcher) = 0;
-  };
-
-  virtual ~InputDataEventWatcher() = 0;
-};
-
 // Wrapper for tracking several pieces of information about an evdev-backed
 // device.
 class InputDeviceInformation {
@@ -76,7 +50,7 @@
       keyboard_scan_code_map;
 };
 
-// Class for running GetDeviceInfo in its own sequence, to allow it to block.
+// Class for running GetDeviceInfo in its own sequence that can block.
 class InputDeviceInfoHelper {
  public:
   InputDeviceInfoHelper() {}
@@ -88,18 +62,13 @@
 };
 
 // Provides information about input devices connected to the system. Implemented
-// in the browser process, constructed within the Diagnostics_UI in the browser
-// process, and eventually called by the Diagnostics SWA (a renderer process).
+// in the browser process and called by the Diagnostics SWA (a renderer
+// process).
 class InputDataProvider : public mojom::InputDataProvider,
-                          public ui::DeviceEventObserver,
-                          public InputDataEventWatcher::Dispatcher,
-                          public views::WidgetObserver {
+                          public ui::DeviceEventObserver {
  public:
-  explicit InputDataProvider(aura::Window* window);
-  explicit InputDataProvider(
-      aura::Window* window,
-      std::unique_ptr<ui::DeviceManager> device_manager,
-      std::unique_ptr<InputDataEventWatcher::Factory> watcher_factory);
+  InputDataProvider();
+  explicit InputDataProvider(std::unique_ptr<ui::DeviceManager> device_manager);
   InputDataProvider(const InputDataProvider&) = delete;
   InputDataProvider& operator=(const InputDataProvider&) = delete;
   ~InputDataProvider() override;
@@ -109,16 +78,9 @@
   // Handler for when remote attached to |receiver_| disconnects.
   void OnBoundInterfaceDisconnect();
   bool ReceiverIsBound();
-
   static mojom::ConnectionType ConnectionTypeFromInputDeviceType(
       ui::InputDeviceType type);
 
-  // InputDataEventWatcher::Dispatcher:
-  void SendInputKeyEvent(uint32_t id,
-                         uint32_t key_code,
-                         uint32_t scan_code,
-                         bool down) override;
-
   // mojom::InputDataProvider:
   void GetConnectedDevices(GetConnectedDevicesCallback callback) override;
 
@@ -129,72 +91,34 @@
       uint32_t id,
       GetKeyboardVisualLayoutCallback callback) override;
 
-  void ObserveKeyEvents(
-      uint32_t id,
-      mojo::PendingRemote<mojom::KeyboardObserver> observer) override;
-
   // ui::DeviceEventObserver:
   void OnDeviceEvent(const ui::DeviceEvent& event) override;
 
-  // views::WidgetObserver:
-  void OnWidgetVisibilityChanged(views::Widget* widget, bool visible) override;
-  void OnWidgetActivationChanged(views::Widget* widget, bool active) override;
-
  protected:
   base::SequenceBound<InputDeviceInfoHelper> info_helper_{
       base::ThreadPool::CreateSequencedTaskRunner({base::MayBlock()})};
 
  private:
-  void Initialize(aura::Window* window);
+  void Initialize();
 
   void ProcessDeviceInfo(std::unique_ptr<InputDeviceInformation> device_info);
 
   void AddTouchDevice(const InputDeviceInformation* device_info);
   void AddKeyboard(const InputDeviceInformation* device_info);
 
-  bool may_send_events_ = false;
-
-  // Review widget state to determine whether it is safe to send events.
-  void UpdateMaySendEvents();
-  // Pass on pause or resume events to observers if that state has changed.
-  void UpdateEventObservers();
-
-  void SendPauseEvents();
-  void SendResumeEvents();
-
   InputDataProviderKeyboard keyboard_helper_;
   InputDataProviderTouch touch_helper_;
 
-  // Handle destroyed KeyboardObservers.
-  void OnObservedKeyboardInputDisconnect(uint32_t evdev_id,
-                                         mojo::RemoteSetElementId observer_id);
-  // Manage watchers that read an evdev and process events for observers.
-  void ForwardKeyboardInput(uint32_t id);
-  void UnforwardKeyboardInput(uint32_t id);
-
-  // Map by evdev ids to information blocks.
+  // Map by evdev ids to information blocks
   base::flat_map<int, mojom::KeyboardInfoPtr> keyboards_;
-  base::flat_map<int, std::unique_ptr<InputDataProviderKeyboard::AuxData>>
-      keyboard_aux_data_;
   base::flat_map<int, mojom::TouchDeviceInfoPtr> touch_devices_;
 
-  // Map by evdev ids to remote observers and event watchers.
-  base::flat_map<int, std::unique_ptr<mojo::RemoteSet<mojom::KeyboardObserver>>>
-      keyboard_observers_;
-  base::flat_map<int, std::unique_ptr<InputDataEventWatcher>>
-      keyboard_watchers_;
-
-  bool logged_not_dispatching_key_events_ = false;
-  views::Widget* widget_ = nullptr;
-
   mojo::RemoteSet<mojom::ConnectedDevicesObserver> connected_devices_observers_;
 
   mojo::Receiver<mojom::InputDataProvider> receiver_{this};
 
   std::unique_ptr<ui::DeviceManager> device_manager_;
 
-  std::unique_ptr<InputDataEventWatcher::Factory> watcher_factory_;
-
   base::WeakPtrFactory<InputDataProvider> weak_factory_{this};
 };
 
diff --git a/ash/webui/diagnostics_ui/backend/input_data_provider_keyboard.cc b/ash/webui/diagnostics_ui/backend/input_data_provider_keyboard.cc
index d4ed5498..3ff6e11 100644
--- a/ash/webui/diagnostics_ui/backend/input_data_provider_keyboard.cc
+++ b/ash/webui/diagnostics_ui/backend/input_data_provider_keyboard.cc
@@ -23,6 +23,7 @@
 #include "base/strings/string_util.h"
 #include "chromeos/system/statistics_provider.h"
 #include "ui/base/ime/ash/input_method_manager.h"
+#include "ui/chromeos/events/event_rewriter_chromeos.h"
 #include "ui/events/devices/device_util_linux.h"
 #include "ui/events/devices/input_device.h"
 #include "ui/events/event_constants.h"
@@ -52,35 +53,16 @@
   kFKey15
 };
 
-// Numeric values of evdev KEY_F# are non-contiguous, making this mapping
-// non-trivial.
-constexpr auto kFKeyOrder =
-    base::MakeFixedFlatMap<uint32_t, unsigned int>({{KEY_F1, kFKey1},
-                                                    {KEY_F2, kFKey2},
-                                                    {KEY_F3, kFKey3},
-                                                    {KEY_F4, kFKey4},
-                                                    {KEY_F5, kFKey5},
-                                                    {KEY_F6, kFKey6},
-                                                    {KEY_F7, kFKey7},
-                                                    {KEY_F8, kFKey8},
-                                                    {KEY_F9, kFKey9},
-                                                    {KEY_F10, kFKey10},
-                                                    {KEY_F11, kFKey11},
-                                                    {KEY_F12, kFKey12},
-                                                    {KEY_F13, kFKey13},
-                                                    {KEY_F14, kFKey14},
-                                                    {KEY_F15, kFKey15}});
-
 // Mapping from keyboard scancodes to TopRowKeys (must be in scancode-sorted
-// order) for keyboards with custom top row layouts (vivaldi). This replicates
-// and should be identical to the mapping behaviour of ChromeOS: changes will
-// be needed if new AT scancodes or HID mappings are used in a top-row key,
-// likely added in ui/events/keycodes/dom/dom_code_data.inc.
+// order). This replicates and should be identical to the mapping behaviour
+// of ChromeOS: changes will be needed if new AT scancodes or HID mappings
+// are used in a top-row key, likely added in
+// ui/events/keycodes/dom/dom_code_data.inc
 //
-// Note that there are currently no dedicated scancodes for kScreenMirror.
-constexpr auto kCustomScancodeMapping =
+// Note that there are no dedicated scancodes for kScreenMirror.
+constexpr auto kScancodeMapping =
     base::MakeFixedFlatMap<uint32_t, mojom::TopRowKey>({
-        // Vivaldi-specific extended Set-1 AT-style scancodes.
+        // Vivaldi extended Set-1 AT-style scancodes
         {0x90, mojom::TopRowKey::kPreviousTrack},
         {0x91, mojom::TopRowKey::kFullscreen},
         {0x92, mojom::TopRowKey::kOverview},
@@ -95,6 +77,7 @@
         {0xA0, mojom::TopRowKey::kVolumeMute},
         {0xAE, mojom::TopRowKey::kVolumeDown},
         {0xB0, mojom::TopRowKey::kVolumeUp},
+        {0xD3, mojom::TopRowKey::kDelete},  // Only relevant for Drallion.
         {0xE9, mojom::TopRowKey::kForward},
         {0xEA, mojom::TopRowKey::kBack},
         {0xE7, mojom::TopRowKey::kRefresh},
@@ -181,19 +164,6 @@
     mojom::TopRowKey::kDelete  // Just a normal Delete key, but in the top row.
 };
 
-// Wilco and Drallion have unique 'action' scancodes for their top rows,
-// that are different from the vivaldi mappings. These scancodes are generated
-// when a top-tow key is pressed without the /Fn/ modifier.
-constexpr uint32_t kScancodesWilco[] = {
-    0xEA, 0xE7, 0xD5, 0xD6, 0x95, 0x91, 0xA0,
-    0xAE, 0xB0, 0x44, 0x57, 0x8B, 0xD3,
-};
-
-constexpr uint32_t kScancodesDrallion[] = {
-    0xEA, 0xE7, 0xD5, 0xD6, 0x95, 0x91, 0xA0,
-    0xAE, 0xB0, 0x44, 0x57, 0xd7, 0x8B, 0xD3,
-};
-
 mojom::MechanicalLayout GetSystemMechanicalLayout() {
   chromeos::system::StatisticsProvider* stats_provider =
       chromeos::system::StatisticsProvider::GetInstance();
@@ -233,14 +203,10 @@
     : xkb_layout_engine_(xkb_evdev_codes_) {}
 InputDataProviderKeyboard::~InputDataProviderKeyboard() {}
 
-InputDataProviderKeyboard::AuxData::AuxData() = default;
-InputDataProviderKeyboard::AuxData::~AuxData() = default;
-
 void InputDataProviderKeyboard::GetKeyboardVisualLayout(
-    const mojom::KeyboardInfoPtr& keyboard,
+    mojom::KeyboardInfoPtr keyboard,
     mojom::InputDataProvider::GetKeyboardVisualLayoutCallback callback) {
   std::string layout_name;
-
   if (keyboard->connection_type == mojom::ConnectionType::kInternal) {
     chromeos::system::StatisticsProvider* stats_provider =
         chromeos::system::StatisticsProvider::GetInstance();
@@ -329,38 +295,24 @@
     ui::EventRewriterChromeOS::KeyboardTopRowLayout top_row_layout,
     const base::flat_map<uint32_t, ui::EventRewriterChromeOS::MutableKeyState>&
         scan_code_map,
-    std::vector<mojom::TopRowKey>* out_top_row_keys,
-    AuxData* out_aux_data) {
+    std::vector<mojom::TopRowKey>* out_top_row_keys) {
   ui::InputDevice input_device = device_info->input_device;
 
   // Simple array in physical order from left to right
   std::vector<mojom::TopRowKey> top_row_keys = {};
 
-  // Map of scan-code -> index within tow_row_keys: 0 is first key to the
-  // right of Escape, 1 is next key to the right of it, etc.
-  base::flat_map<uint32_t, uint32_t> top_row_key_scancode_indexes;
-
   switch (top_row_layout) {
     case ui::EventRewriterChromeOS::kKbdTopRowLayoutWilco:
       top_row_keys.assign(std::begin(kSystemKeysWilco),
                           std::end(kSystemKeysWilco));
-
-      for (size_t i = 0; i < top_row_keys.size(); i++)
-        top_row_key_scancode_indexes[kScancodesWilco[i]] = i;
       break;
 
     case ui::EventRewriterChromeOS::kKbdTopRowLayoutDrallion:
       top_row_keys.assign(std::begin(kSystemKeysDrallion),
                           std::end(kSystemKeysDrallion));
 
-      for (size_t i = 0; i < top_row_keys.size(); i++)
-        top_row_key_scancode_indexes[kScancodesDrallion[i]] = i;
-
       // On some Drallion devices, the F12 key is used for the Privacy Screen.
 
-      // The scancode for F12 does not need to be modified, it is the same on
-      // all Drallion devices, only the interpretation of the key is different.
-
       // This should be the same logic as in
       // EventRewriterControllerImpl::Initialize. This is a historic device, and
       // this logic should not need to be updated, as newer devices will use
@@ -376,7 +328,7 @@
 
       // Process scan-code map generated from custom top-row key layout: it maps
       // from physical scan codes to several things, including VKEY key-codes,
-      // which we will use to derive a linear index.
+      // which we will use to produce indexes.
 
       for (auto iter = scan_code_map.begin(); iter != scan_code_map.end();
            iter++) {
@@ -386,43 +338,27 @@
         if (top_row_keys.size() < fn_key_number + 1)
           top_row_keys.resize(fn_key_number + 1, mojom::TopRowKey::kNone);
 
-        if (kCustomScancodeMapping.contains(scancode))
-          top_row_keys[fn_key_number] = kCustomScancodeMapping.at(scancode);
+        if (kScancodeMapping.contains(scancode))
+          top_row_keys[fn_key_number] = kScancodeMapping.at(scancode);
         else
           top_row_keys[fn_key_number] = mojom::TopRowKey::kUnknown;
-
-        top_row_key_scancode_indexes[scancode] = fn_key_number;
       }
       break;
 
     case ui::EventRewriterChromeOS::kKbdTopRowLayout2:
       top_row_keys.assign(std::begin(kSystemKeys2), std::end(kSystemKeys2));
-      // No specific top_row_key_scancode_indexes are needed
-      // for classic ChromeOS keyboards, as they do not have an /Fn/ key and
-      // only emit /F[0-9]+/ keys.
       break;
 
     case ui::EventRewriterChromeOS::kKbdTopRowLayout1:
     default:
       top_row_keys.assign(std::begin(kSystemKeys1), std::end(kSystemKeys1));
-      // No specific top_row_key_scancode_indexes are needed for classic
-      // ChromeOS keyboards, as they do not have an /Fn/ key and only emit
-      // /F[0-9]+/ keys.
-      //
-      // If this is an unknown keyboard and we are just using Layout1 as
-      // the default, we also do not want to assign any scancode or keycode
-      // indexes, as we do not know whether the keyboard can generate special
-      // keys, or their location relative to the top row.
   }
 
   *out_top_row_keys = std::move(top_row_keys);
-  out_aux_data->top_row_key_scancode_indexes =
-      std::move(top_row_key_scancode_indexes);
 }
 
 mojom::KeyboardInfoPtr InputDataProviderKeyboard::ConstructKeyboard(
-    const InputDeviceInformation* device_info,
-    AuxData* out_aux_data) {
+    const InputDeviceInformation* device_info) {
   mojom::KeyboardInfoPtr result = mojom::KeyboardInfo::New();
 
   result->id = device_info->evdev_id;
@@ -434,7 +370,7 @@
 
   ProcessKeyboardTopRowLayout(device_info, device_info->keyboard_top_row_layout,
                               device_info->keyboard_scan_code_map,
-                              &result->top_row_keys, out_aux_data);
+                              &result->top_row_keys);
 
   // Work out the physical layout.
   if (device_info->keyboard_type ==
@@ -503,35 +439,5 @@
   return result;
 }
 
-mojom::KeyEventPtr InputDataProviderKeyboard::ConstructInputKeyEvent(
-    const mojom::KeyboardInfoPtr& keyboard,
-    const AuxData* aux_data,
-    uint32_t key_code,
-    uint32_t scan_code,
-    bool down) {
-  mojom::KeyEventPtr event = mojom::KeyEvent::New();
-  event->id = keyboard->id;
-  event->type =
-      down ? mojom::KeyEventType::kPress : mojom::KeyEventType::kRelease;
-  event->key_code = key_code;    // evdev code
-  event->scan_code = scan_code;  // scan code
-  event->top_row_position = -1;
-
-  // If a top row action key was pressed, note its physical index in the row.
-  const auto iter =
-      aux_data->top_row_key_scancode_indexes.find(event->scan_code);
-  if (iter != aux_data->top_row_key_scancode_indexes.end()) {
-    event->top_row_position = iter->second;
-  }
-
-  // Do the same if F1-F15 was pressed.
-  const auto* jter = kFKeyOrder.find(event->key_code);
-  if (event->top_row_position == -1 && jter != kFKeyOrder.end()) {
-    event->top_row_position = jter->second;
-  }
-
-  return event;
-}
-
 }  // namespace diagnostics
 }  // namespace ash
diff --git a/ash/webui/diagnostics_ui/backend/input_data_provider_keyboard.h b/ash/webui/diagnostics_ui/backend/input_data_provider_keyboard.h
index d5437f13..cda2dc58 100644
--- a/ash/webui/diagnostics_ui/backend/input_data_provider_keyboard.h
+++ b/ash/webui/diagnostics_ui/backend/input_data_provider_keyboard.h
@@ -5,11 +5,10 @@
 #ifndef ASH_WEBUI_DIAGNOSTICS_UI_BACKEND_INPUT_DATA_PROVIDER_KEYBOARD_H_
 #define ASH_WEBUI_DIAGNOSTICS_UI_BACKEND_INPUT_DATA_PROVIDER_KEYBOARD_H_
 
-#include <vector>
-
 #include "ash/webui/diagnostics_ui/mojom/input_data_provider.mojom.h"
 #include "base/memory/weak_ptr.h"
 #include "ui/chromeos/events/event_rewriter_chromeos.h"
+#include "ui/events/ozone/evdev/event_device_info.h"
 #include "ui/events/ozone/layout/xkb/xkb_evdev_codes.h"
 #include "ui/events/ozone/layout/xkb/xkb_keyboard_layout_engine.h"
 
@@ -22,20 +21,6 @@
 // keyboard-specific logic.
 class InputDataProviderKeyboard {
  public:
-  // Holder for any data that needs to be persisted per keyboard, that
-  // does not need to be exposed in the mojo::KeyboardInfo.
-  class AuxData {
-   public:
-    AuxData();
-    AuxData(const AuxData&) = delete;
-    AuxData& operator=(const AuxData&) = delete;
-    ~AuxData();
-
-    // Map of scancodes that map to particular indexes within the top_row_keys
-    // for that evdev. May contain AT and HID-style scancodes.
-    base::flat_map<uint32_t, uint32_t> top_row_key_scancode_indexes;
-  };
-
   InputDataProviderKeyboard();
   InputDataProviderKeyboard(const InputDataProviderKeyboard&) = delete;
   InputDataProviderKeyboard& operator=(const InputDataProviderKeyboard&) =
@@ -43,19 +28,11 @@
   ~InputDataProviderKeyboard();
 
   void GetKeyboardVisualLayout(
-      const mojom::KeyboardInfoPtr& keyboard,
+      mojom::KeyboardInfoPtr keyboard,
       mojom::InputDataProvider::GetKeyboardVisualLayoutCallback callback);
 
   mojom::KeyboardInfoPtr ConstructKeyboard(
-      const InputDeviceInformation* device_info,
-      AuxData* out_aux_data);
-
-  mojom::KeyEventPtr ConstructInputKeyEvent(
-      const mojom::KeyboardInfoPtr& keyboard,
-      const AuxData* aux_data,
-      uint32_t key_code,
-      uint32_t scan_code,
-      bool down);
+      const InputDeviceInformation* device_info);
 
  private:
   void ProcessXkbLayout(
@@ -68,8 +45,7 @@
       const base::flat_map<uint32_t,
                            ui::EventRewriterChromeOS::MutableKeyState>&
           scan_code_map,
-      std::vector<mojom::TopRowKey>* out_top_row_keys,
-      AuxData* out_aux_data);
+      std::vector<mojom::TopRowKey>* out_top_row_keys);
 
   ui::XkbEvdevCodes xkb_evdev_codes_;
   ui::XkbKeyboardLayoutEngine xkb_layout_engine_;
diff --git a/ash/webui/diagnostics_ui/backend/input_data_provider_touch.cc b/ash/webui/diagnostics_ui/backend/input_data_provider_touch.cc
index 854b6f2..48b05e87 100644
--- a/ash/webui/diagnostics_ui/backend/input_data_provider_touch.cc
+++ b/ash/webui/diagnostics_ui/backend/input_data_provider_touch.cc
@@ -4,6 +4,7 @@
 
 #include "ash/webui/diagnostics_ui/backend/input_data_provider_touch.h"
 #include "ash/webui/diagnostics_ui/backend/input_data_provider.h"
+#include "base/logging.h"
 #include "ui/events/ozone/evdev/event_device_info.h"
 
 namespace ash {
diff --git a/ash/webui/diagnostics_ui/backend/input_data_provider_touch.h b/ash/webui/diagnostics_ui/backend/input_data_provider_touch.h
index 7cf17e4..5fe7db2 100644
--- a/ash/webui/diagnostics_ui/backend/input_data_provider_touch.h
+++ b/ash/webui/diagnostics_ui/backend/input_data_provider_touch.h
@@ -6,6 +6,7 @@
 #define ASH_WEBUI_DIAGNOSTICS_UI_BACKEND_INPUT_DATA_PROVIDER_TOUCH_H_
 
 #include "ash/webui/diagnostics_ui/mojom/input_data_provider.mojom.h"
+#include "ui/events/ozone/evdev/event_device_info.h"
 
 namespace ash {
 namespace diagnostics {
diff --git a/ash/webui/diagnostics_ui/backend/input_data_provider_unittest.cc b/ash/webui/diagnostics_ui/backend/input_data_provider_unittest.cc
index 37b3c66..c4eab92 100644
--- a/ash/webui/diagnostics_ui/backend/input_data_provider_unittest.cc
+++ b/ash/webui/diagnostics_ui/backend/input_data_provider_unittest.cc
@@ -4,24 +4,18 @@
 
 #include "ash/webui/diagnostics_ui/backend/input_data_provider.h"
 
-#include <iostream>
-#include <map>
 #include <vector>
 
-#include "base/bind.h"
 #include "base/command_line.h"
 #include "base/containers/flat_map.h"
-#include "base/message_loop/message_pump_for_ui.h"
 #include "base/run_loop.h"
 #include "base/strings/stringprintf.h"
+#include "base/test/bind.h"
 #include "base/test/task_environment.h"
 #include "base/test/test_future.h"
 #include "chromeos/system/fake_statistics_provider.h"
 #include "chromeos/system/statistics_provider.h"
-#include "content/public/test/browser_task_environment.h"
 #include "device/udev_linux/fake_udev_loader.h"
-#include "mojo/public/cpp/bindings/pending_receiver.h"
-#include "mojo/public/cpp/bindings/pending_remote.h"
 #include "testing/gtest/include/gtest/gtest.h"
 #include "ui/chromeos/events/event_rewriter_chromeos.h"
 #include "ui/events/keycodes/dom/dom_code.h"
@@ -29,16 +23,6 @@
 #include "ui/events/ozone/device/device_event_observer.h"
 #include "ui/events/ozone/device/device_manager.h"
 #include "ui/events/ozone/evdev/event_device_test_util.h"
-#include "ui/views/test/views_test_base.h"
-#include "ui/views/widget/widget.h"
-
-// Note: this is not a recommended pattern, but works and allows cleanly
-// formatted invocations for this test set.
-#define EXPECT_KEY_EVENTS(observerptr, id, ...)    \
-  do {                                             \
-    SCOPED_TRACE("EXPECT_KEY_EVENTS invocation");  \
-    ExpectKeyEvents(observerptr, id, __VA_ARGS__); \
-  } while (0);
 
 namespace ash {
 namespace diagnostics {
@@ -112,61 +96,6 @@
 
 constexpr char kInvalidMechnicalLayout[] = "Not ANSI, JIS, or ISO";
 
-// Privacy Screen replaced with unknown 0xC4 scancode.
-constexpr char kModifiedJinlonDescriptor[] =
-    "EA E7 91 92 93 94 95 C4 97 98 A0 AE B0";
-constexpr uint32_t kUnknownScancode = 0xC4;
-constexpr int kUnknownScancodeIndex = 7;
-
-struct KeyDefinition {
-  uint32_t key_code;
-  uint32_t at_scan_code;
-  uint32_t usb_scan_code;
-};
-
-// TODO(b/211780758): we should acquire these tuples from dom_code_data.inc,
-// where feasible.
-constexpr KeyDefinition kKeyA = {KEY_A, 0x1E, 0x70004};
-constexpr KeyDefinition kKeyB = {KEY_B, 0x30, 0x70005};
-constexpr KeyDefinition kKeyEsc = {KEY_ESC, 0x30, 0x70005};
-constexpr KeyDefinition kKeyF1 = {KEY_F1, 0x3B, 0x7003A};
-constexpr KeyDefinition kKeyF8 = {KEY_F8, 0x42, 0x70041};
-constexpr KeyDefinition kKeyF10 = {KEY_F10, 0x44, 0x70043};
-// Drallion AT codes for F11-F12; not standardized
-constexpr KeyDefinition kKeyF11 = {KEY_F11, 0x57, 0x700044};
-constexpr KeyDefinition kKeyF12 = {KEY_F12, 0xD7, 0x700045};
-constexpr KeyDefinition kKeyDelete = {KEY_DELETE, 0xD3, 0x7004C};
-// Eve AT code; unknown if this is standard
-constexpr KeyDefinition kKeyMenu = {KEY_CONTROLPANEL, 0x5D, 0};
-// Jinlon AT code; unknown if this is standard
-constexpr KeyDefinition kKeySleep = {KEY_SLEEP, 0x5D, 0};
-constexpr KeyDefinition kKeyActionBack = {KEY_BACK, 0xEA, 0x0C0224};
-constexpr KeyDefinition kKeyActionRefresh = {KEY_REFRESH, 0xE7, 0x0C0227};
-constexpr KeyDefinition kKeyActionFullscreen = {KEY_ZOOM, 0x91, 0x0C0232};
-constexpr KeyDefinition kKeyActionOverview = {KEY_SCALE, 0x92, 0x0C029F};
-constexpr KeyDefinition kKeyActionScreenshot = {KEY_SYSRQ, 0x93, 0x070046};
-constexpr KeyDefinition kKeyActionScreenBrightnessDown = {KEY_BRIGHTNESSDOWN,
-                                                          0x94, 0x0C0070};
-constexpr KeyDefinition kKeyActionScreenBrightnessUp = {KEY_BRIGHTNESSUP, 0x95,
-                                                        0x0C006F};
-constexpr KeyDefinition kKeyActionKeyboardBrightnessDown = {KEY_KBDILLUMDOWN,
-                                                            0x97, 0x0C007A};
-constexpr KeyDefinition kKeyActionKeyboardBrightnessUp = {KEY_KBDILLUMUP, 0x98,
-                                                          0x0C0079};
-constexpr KeyDefinition kKeyActionKeyboardVolumeMute = {KEY_MUTE, 0xA0,
-                                                        0x0C00E2};
-constexpr KeyDefinition kKeyActionKeyboardVolumeDown = {KEY_VOLUMEDOWN, 0xAE,
-                                                        0x0C00EA};
-constexpr KeyDefinition kKeyActionKeyboardVolumeUp = {KEY_VOLUMEUP, 0xB0,
-                                                      0x0C00E9};
-#if 0
-// TODO(b/208729519): Not useful until we can test Drallion keyboards.
-// Drallion, no HID equivalent
-constexpr KeyDefinition kKeySwitchVideoMode = {KEY_SWITCHVIDEOMODE, 0x8B, 0};
-constexpr KeyDefinition kKeyActionPrivacyScreenToggle =
-   {KEY_PRIVACY_SCREEN_TOGGLE, 0x96, 0x0C02D0};
-#endif
-
 // NOTE: This is only creates a simple ui::InputDevice based on a device
 // capabilities report; it is not suitable for subclasses of ui::InputDevice.
 ui::InputDevice InputDeviceFromCapabilities(
@@ -186,22 +115,6 @@
 
 }  // namespace
 
-namespace mojom {
-
-std::ostream& operator<<(std::ostream& os, const KeyEvent& event) {
-  os << "KeyEvent{ id=" << event.id << ", ";
-  os << "type=" << event.type << ", ";
-  os << "key_code=" << event.key_code << ", ";
-  os << "scan_code=" << event.scan_code << ", ";
-  os << "top_row_position=" << event.top_row_position;
-  os << "}";
-  return os;
-}
-
-}  // namespace mojom
-
-// Fake device manager that lets us control the input devices that
-// an InputDataProvider can see.
 class FakeDeviceManager : public ui::DeviceManager {
  public:
   FakeDeviceManager() {}
@@ -215,62 +128,6 @@
   void RemoveObserver(ui::DeviceEventObserver* observer) override {}
 };
 
-class FakeInputDataEventWatcher;
-typedef std::map<uint32_t, FakeInputDataEventWatcher*> watchers_t;
-
-// Fake evdev watcher class that lets us manually post input
-// events into an InputDataProvider; this keeps an external
-// map of watchers updated so that instances can easily be found.
-class FakeInputDataEventWatcher : public InputDataEventWatcher {
- public:
-  FakeInputDataEventWatcher(
-      uint32_t id,
-      base::WeakPtr<InputDataEventWatcher::Dispatcher> dispatcher,
-      watchers_t& watchers)
-      : id_(id), dispatcher_(dispatcher), watchers_(watchers) {
-    EXPECT_EQ(0u, watchers_.count(id_));
-    watchers_[id_] = this;
-  }
-  ~FakeInputDataEventWatcher() override {
-    EXPECT_EQ(watchers_[id_], this);
-    watchers_.erase(id_);
-  }
-
-  void PostKeyEvent(bool down, uint32_t evdev_code, uint32_t scan_code) {
-    if (dispatcher_)
-      dispatcher_->SendInputKeyEvent(id_, evdev_code, scan_code, down);
-  }
-
- private:
-  uint32_t id_;
-  base::WeakPtr<InputDataEventWatcher::Dispatcher> dispatcher_;
-  watchers_t& watchers_;
-};
-
-// Utility to construct FakeInputDataEventWatcher for InputDataProvider.
-class FakeInputDataEventWatcherFactory : public InputDataEventWatcher::Factory {
- public:
-  FakeInputDataEventWatcherFactory(watchers_t& watchers)
-      : watchers_(watchers) {}
-  FakeInputDataEventWatcherFactory(const FakeInputDataEventWatcherFactory&) =
-      delete;
-  FakeInputDataEventWatcherFactory& operator=(
-      const FakeInputDataEventWatcherFactory&) = delete;
-  ~FakeInputDataEventWatcherFactory() override = default;
-
-  std::unique_ptr<InputDataEventWatcher> MakeWatcher(
-      uint32_t id,
-      base::WeakPtr<InputDataEventWatcher::Dispatcher> dispatcher) override {
-    return std::make_unique<FakeInputDataEventWatcher>(
-        id, std::move(dispatcher), watchers_);
-  }
-
- private:
-  watchers_t& watchers_;
-};
-
-// A mock observer that records device change events emitted from an
-// InputDataProvider.
 class FakeConnectedDevicesObserver : public mojom::ConnectedDevicesObserver {
  public:
   // mojom::ConnectedDevicesObserver:
@@ -296,29 +153,6 @@
   mojo::Receiver<mojom::ConnectedDevicesObserver> receiver{this};
 };
 
-// A mock observer that records key event events emitted from an
-// InputDataProvider.
-class FakeKeyboardObserver : public mojom::KeyboardObserver {
- public:
-  enum EventType {
-    kEvent = 1,
-    kPause = 2,
-    kResume = 3,
-  };
-
-  // mojom::KeyboardObserver:
-  void OnKeyEvent(mojom::KeyEventPtr key_event) override {
-    events_.push_back({kEvent, std::move(key_event)});
-  }
-  void OnKeyEventsPaused() override { events_.push_back({kPause, nullptr}); }
-  void OnKeyEventsResumed() override { events_.push_back({kResume, nullptr}); }
-
-  std::vector<std::pair<EventType, mojom::KeyEventPtr>> events_;
-
-  mojo::Receiver<mojom::KeyboardObserver> receiver{this};
-};
-
-// A utility class that fakes obtaining information about an evdev.
 class FakeInputDeviceInfoHelper : public InputDeviceInfoHelper {
  public:
   FakeInputDeviceInfoHelper() {}
@@ -391,22 +225,6 @@
       info->keyboard_top_row_layout = ui::EventRewriterChromeOS::
           KeyboardTopRowLayout::kKbdTopRowLayoutDefault;
       EXPECT_EQ(9, id);
-    } else if (base_name == "event10") {
-      device_caps = ui::kDrallionKeyboard;
-      EXPECT_EQ(10, id);
-    } else if (base_name == "event11") {
-      // Used for customized top row layout.
-      device_caps = ui::kJinlonKeyboard;
-      device_caps.kbd_function_row_physmap = kModifiedJinlonDescriptor;
-      info->keyboard_type =
-          ui::EventRewriterChromeOS::DeviceType::kDeviceInternalKeyboard;
-      info->keyboard_top_row_layout = ui::EventRewriterChromeOS::
-          KeyboardTopRowLayout::kKbdTopRowLayoutCustom;
-      info->keyboard_scan_code_map = kInternalJinlonScanCodeMap;
-      info->keyboard_scan_code_map.erase(0x96);
-      info->keyboard_scan_code_map[0xC4] = {ui::EF_NONE, ui::DomCode::F8,
-                                            ui::DomKey::F8, ui::VKEY_F8};
-      EXPECT_EQ(11, id);
     } else if (base_name == kSillyDeviceName) {
       // Simulate a device that is properly described, but has a malformed
       // device name.
@@ -433,62 +251,31 @@
   }
 };
 
-// Our modifications to InputDataProvider that carries around its own
-// widget (representing the window that needs to be visible for key events
-// to be observed), the needed factories for our fake utilities, and a
-// reference to the current event watchers.
 class TestInputDataProvider : public InputDataProvider {
  public:
-  TestInputDataProvider(std::unique_ptr<views::Widget> widget,
-                        watchers_t& watchers)
-      : InputDataProvider(
-            widget->GetNativeWindow(),
-            std::make_unique<FakeDeviceManager>(),
-            std::make_unique<FakeInputDataEventWatcherFactory>(watchers)),
-        attached_widget_(std::move(widget)),
-        watchers_(watchers) {
+  TestInputDataProvider(std::unique_ptr<ui::DeviceManager> device_manager)
+      : InputDataProvider(std::move(device_manager)) {
     info_helper_ = base::SequenceBound<FakeInputDeviceInfoHelper>(
         base::ThreadPool::CreateSequencedTaskRunner({base::MayBlock()}));
   }
   explicit TestInputDataProvider(const TestInputDataProvider&) = delete;
   TestInputDataProvider& operator=(const TestInputDataProvider&) = delete;
-
-  // The widget represents the tab that input diagnostics would normally be
-  // shown in.
-  std::unique_ptr<views::Widget> attached_widget_;
-  // Keep a list of watchers for each evdev in the provider. This is a
-  // reference to an instance outside of this class, as the lifetime of the list
-  // needs to exceed the destruction of this test class, and can only be cleaned
-  // up once all watchers have been destroyed by the base InputDataProvider,
-  // which occurs after our destruction.
-  watchers_t& watchers_;
 };
 
-class InputDataProviderTest : public views::ViewsTestBase {
+class InputDataProviderTest : public testing::Test {
  public:
-  InputDataProviderTest()
-      : views::ViewsTestBase(std::unique_ptr<base::test::TaskEnvironment>(
-            std::make_unique<content::BrowserTaskEnvironment>(
-                content::BrowserTaskEnvironment::MainThreadType::UI,
-                content::BrowserTaskEnvironment::TimeSource::MOCK_TIME))) {}
-
-  void SetUp() override {
-    views::ViewsTestBase::SetUp();
-
-    // Note: some init for creating widgets is performed in base SetUp
-    // instead of the constructor, so our init must also be delayed until SetUp,
-    // so we can safely invoke CreateTestWidget().
-
+  InputDataProviderTest() {
     statistics_provider_.SetMachineStatistic(
         chromeos::system::kKeyboardMechanicalLayoutKey, "ANSI");
     chromeos::system::StatisticsProvider::SetTestProvider(
         &statistics_provider_);
 
+    auto manager = std::make_unique<FakeDeviceManager>();
+    manager_ = manager.get();
     fake_udev_ = std::make_unique<testing::FakeUdevLoader>();
-    provider_ =
-        std::make_unique<TestInputDataProvider>(CreateTestWidget(), watchers_);
+    provider_ = std::make_unique<TestInputDataProvider>(std::move(manager));
 
-    // Apply these early, in SetUp; delaying until
+    // Apply these early; delaying until
     // FakeInputDeviceInfoHelper::GetDeviceInfo() is not appropriate, as
     // fake_udev is not thread safe. (If multiple devices are constructed in a
     // row, then GetDeviceInfo() invocation can overlap with
@@ -496,64 +283,15 @@
     UdevAddFakeDeviceCapabilities("/dev/input/event5", ui::kSarienKeyboard);
     UdevAddFakeDeviceCapabilities("/dev/input/event6", ui::kEveKeyboard);
     UdevAddFakeDeviceCapabilities("/dev/input/event7", ui::kJinlonKeyboard);
-    UdevAddFakeDeviceCapabilities("/dev/input/event10", ui::kDrallionKeyboard);
-    // Tweak top row keys for event11.
-    auto device_caps = ui::kJinlonKeyboard;
-    device_caps.kbd_function_row_physmap = kModifiedJinlonDescriptor;
-    UdevAddFakeDeviceCapabilities("/dev/input/event11", device_caps);
-  }
-
-  InputDataProviderTest(const InputDataProviderTest&) = delete;
-  InputDataProviderTest& operator=(const InputDataProviderTest&) = delete;
-  ~InputDataProviderTest() override {
-    provider_.reset();
-    base::RunLoop().RunUntilIdle();
-  }
-
- protected:
-  struct ExpectedKeyEvent {
-    KeyDefinition key;
-    int position;
-    bool down = true;
-  };
-
-  void ExpectKeyEvents(FakeKeyboardObserver* fake_observer,
-                       uint32_t id,
-                       std::initializer_list<ExpectedKeyEvent> list) {
-    // Make sure the test does something...
-    EXPECT_TRUE(std::size(list) > 0);
-
-    size_t i;
-
-    i = 0;
-    for (auto* iter = list.begin(); iter != list.end(); iter++, i++) {
-      provider_->watchers_[id]->PostKeyEvent(iter->down, iter->key.key_code,
-                                             iter->key.at_scan_code);
-    }
-    base::RunLoop().RunUntilIdle();
-
-    ASSERT_EQ(std::size(list), fake_observer->events_.size());
-
-    i = 0;
-    for (auto* iter = list.begin(); iter != list.end(); iter++, i++) {
-      EXPECT_EQ(*fake_observer->events_[i].second,
-                mojom::KeyEvent(/*id=*/id, /*type=*/iter->down
-                                               ? mojom::KeyEventType::kPress
-                                               : mojom::KeyEventType::kRelease,
-                                /*key_code=*/iter->key.key_code,
-                                /*scan_code=*/iter->key.at_scan_code,
-                                /*top_row_position=*/iter->position))
-          << " which is EXPECT_KEY_EVENTS item #" << i;
-    }
   }
 
   void UdevAddFakeDeviceCapabilities(
       const std::string& device_name,
       const ui::DeviceCapabilities& device_caps) {
     std::map<std::string, std::string>
-        sysfs_properties;  // Old style numeric tags.
+        sysfs_properties;  // Old style numeric tags
     std::map<std::string, std::string>
-        sysfs_attributes;  // New style vivaldi scancode layouts.
+        sysfs_attributes;  // New style vivaldi scancode layouts
 
     if (device_caps.kbd_function_row_physmap &&
         strlen(device_caps.kbd_function_row_physmap) > 0) {
@@ -566,10 +304,7 @@
       sysfs_properties[kKbdTopRowPropertyName] = device_caps.kbd_top_row_layout;
     }
 
-    // Each device needs a unique sys path; many of the ones embedded in
-    // capabilities are the same, so uniquify them with the event device name.
-    // These aren't actual valid paths, but nothing in the testing logic needs
-    // them to be real.
+    // Each device needs a unique sys path
     const std::string sys_path = device_name + "-" + device_caps.path;
 
     fake_udev_->AddFakeDevice(device_caps.name, sys_path.c_str(),
@@ -579,11 +314,17 @@
                               std::move(sysfs_properties));
   }
 
+  ~InputDataProviderTest() override {
+    provider_.reset();
+    base::RunLoop().RunUntilIdle();
+  }
+
+ protected:
+  base::test::TaskEnvironment task_environment_;
+  FakeDeviceManager* manager_;
   std::unique_ptr<testing::FakeUdevLoader> fake_udev_;
   chromeos::system::FakeStatisticsProvider statistics_provider_;
-  // All evdev watchers in use by provider_.
-  watchers_t watchers_;
-  std::unique_ptr<TestInputDataProvider> provider_;
+  std::unique_ptr<InputDataProvider> provider_;
 };
 
 TEST_F(InputDataProviderTest, GetConnectedDevices_DeviceInfoMapping) {
@@ -603,7 +344,7 @@
   provider_->OnDeviceEvent(event1);
   provider_->OnDeviceEvent(event2);
   provider_->OnDeviceEvent(event3);
-  base::RunLoop().RunUntilIdle();
+  task_environment_.RunUntilIdle();
 
   base::test::TestFuture<std::vector<mojom::KeyboardInfoPtr>,
                          std::vector<mojom::TouchDeviceInfoPtr>>
@@ -652,7 +393,7 @@
                         ui::DeviceEvent::ActionType::ADD,
                         base::FilePath("/dev/input/event4"));
   provider_->OnDeviceEvent(event);
-  base::RunLoop().RunUntilIdle();
+  task_environment_.RunUntilIdle();
 
   {
     base::test::TestFuture<std::vector<mojom::KeyboardInfoPtr>,
@@ -674,8 +415,6 @@
 }
 
 TEST_F(InputDataProviderTest, GetConnectedDevices_AddUnusualDevices) {
-  // Add two devices with unusual bus types, and verify connection types.
-
   ui::DeviceEvent event0(ui::DeviceEvent::DeviceType::INPUT,
                          ui::DeviceEvent::ActionType::ADD,
                          base::FilePath("/dev/input/event8"));
@@ -684,7 +423,7 @@
                          base::FilePath("/dev/input/event9"));
   provider_->OnDeviceEvent(event0);
   provider_->OnDeviceEvent(event1);
-  base::RunLoop().RunUntilIdle();
+  task_environment_.RunUntilIdle();
 
   base::test::TestFuture<std::vector<mojom::KeyboardInfoPtr>,
                          std::vector<mojom::TouchDeviceInfoPtr>>
@@ -695,6 +434,7 @@
   const auto& touch_devices = future.Get<1>();
 
   ASSERT_EQ(2ul, keyboards.size());
+  // The stylus device should be filtered out, hence only 2 touch devices.
   ASSERT_EQ(0ul, touch_devices.size());
 
   const mojom::KeyboardInfoPtr& keyboard1 = keyboards[0];
@@ -717,7 +457,7 @@
                                 ui::DeviceEvent::ActionType::ADD,
                                 base::FilePath("/dev/input/event4"));
   provider_->OnDeviceEvent(add_kbd_event);
-  base::RunLoop().RunUntilIdle();
+  task_environment_.RunUntilIdle();
 
   {
     base::test::TestFuture<std::vector<mojom::KeyboardInfoPtr>,
@@ -743,7 +483,7 @@
                                    ui::DeviceEvent::ActionType::REMOVE,
                                    base::FilePath("/dev/input/event4"));
   provider_->OnDeviceEvent(remove_kbd_event);
-  base::RunLoop().RunUntilIdle();
+  task_environment_.RunUntilIdle();
 
   {
     base::test::TestFuture<std::vector<mojom::KeyboardInfoPtr>,
@@ -779,7 +519,7 @@
   provider_->OnDeviceEvent(event1);
   provider_->OnDeviceEvent(event2);
   provider_->OnDeviceEvent(event3);
-  base::RunLoop().RunUntilIdle();
+  task_environment_.RunUntilIdle();
 
   base::test::TestFuture<std::vector<mojom::KeyboardInfoPtr>,
                          std::vector<mojom::TouchDeviceInfoPtr>>
@@ -851,7 +591,7 @@
                             base::FilePath("/dev/input/event6"));
   provider_->OnDeviceEvent(link_event);
   provider_->OnDeviceEvent(eve_event);
-  base::RunLoop().RunUntilIdle();
+  task_environment_.RunUntilIdle();
 
   base::test::TestFuture<std::vector<mojom::KeyboardInfoPtr>,
                          std::vector<mojom::TouchDeviceInfoPtr>>
@@ -879,7 +619,7 @@
                              ui::DeviceEvent::ActionType::ADD,
                              base::FilePath("/dev/input/event0"));
   provider_->OnDeviceEvent(link_event);
-  base::RunLoop().RunUntilIdle();
+  task_environment_.RunUntilIdle();
 
   base::test::TestFuture<std::vector<mojom::KeyboardInfoPtr>,
                          std::vector<mojom::TouchDeviceInfoPtr>>
@@ -904,7 +644,7 @@
                                      ui::DeviceEvent::ActionType::ADD,
                                      base::FilePath("/dev/input/event4"));
   provider_->OnDeviceEvent(add_keyboard_event);
-  base::RunLoop().RunUntilIdle();
+  task_environment_.RunUntilIdle();
   ASSERT_EQ(1ul, fake_observer.keyboards_connected.size());
   EXPECT_EQ(4u, fake_observer.keyboards_connected[0]->id);
 
@@ -912,7 +652,7 @@
                                         ui::DeviceEvent::ActionType::REMOVE,
                                         base::FilePath("/dev/input/event4"));
   provider_->OnDeviceEvent(remove_keyboard_event);
-  base::RunLoop().RunUntilIdle();
+  task_environment_.RunUntilIdle();
   ASSERT_EQ(1ul, fake_observer.keyboards_disconnected.size());
   EXPECT_EQ(4u, fake_observer.keyboards_disconnected[0]);
 }
@@ -926,7 +666,7 @@
                                   ui::DeviceEvent::ActionType::ADD,
                                   base::FilePath("/dev/input/event1"));
   provider_->OnDeviceEvent(add_touch_event);
-  base::RunLoop().RunUntilIdle();
+  task_environment_.RunUntilIdle();
   ASSERT_EQ(1ul, fake_observer.touch_devices_connected.size());
   EXPECT_EQ(1u, fake_observer.touch_devices_connected[0]->id);
 
@@ -934,7 +674,7 @@
                                      ui::DeviceEvent::ActionType::REMOVE,
                                      base::FilePath("/dev/input/event1"));
   provider_->OnDeviceEvent(remove_touch_event);
-  base::RunLoop().RunUntilIdle();
+  task_environment_.RunUntilIdle();
   ASSERT_EQ(1ul, fake_observer.touch_devices_disconnected.size());
   EXPECT_EQ(1u, fake_observer.touch_devices_disconnected[0]);
 }
@@ -947,18 +687,18 @@
                                       ui::DeviceEvent::ActionType::CHANGE,
                                       base::FilePath("/dev/input/event1"));
   provider_->OnDeviceEvent(add_device_event);
-  base::RunLoop().RunUntilIdle();
+  task_environment_.RunUntilIdle();
   provider_->OnDeviceEvent(change_device_event);
-  base::RunLoop().RunUntilIdle();
+  task_environment_.RunUntilIdle();
 }
 
 TEST_F(InputDataProviderTest, BadDeviceDoesNotCrash) {
-  // Try a device that specifically fails to be processed.
+  // Try a device that specifically fails to be processed
   ui::DeviceEvent add_bad_device_event(ui::DeviceEvent::DeviceType::INPUT,
                                        ui::DeviceEvent::ActionType::ADD,
                                        base::FilePath("/dev/input/event99"));
   provider_->OnDeviceEvent(add_bad_device_event);
-  base::RunLoop().RunUntilIdle();
+  task_environment_.RunUntilIdle();
 }
 
 TEST_F(InputDataProviderTest, SillyDeviceDoesNotCrash) {
@@ -967,7 +707,7 @@
                                          ui::DeviceEvent::ActionType::ADD,
                                          base::FilePath(kSillyDeviceName));
   provider_->OnDeviceEvent(add_silly_device_event);
-  base::RunLoop().RunUntilIdle();
+  task_environment_.RunUntilIdle();
 }
 
 TEST_F(InputDataProviderTest, GetKeyboardVisualLayout_AmericanEnglish) {
@@ -978,7 +718,7 @@
                                      ui::DeviceEvent::ActionType::ADD,
                                      base::FilePath("/dev/input/event6"));
   provider_->OnDeviceEvent(add_keyboard_event);
-  base::RunLoop().RunUntilIdle();
+  task_environment_.RunUntilIdle();
 
   base::test::TestFuture<base::flat_map<uint32_t, mojom::KeyGlyphSetPtr>>
       future;
@@ -1009,7 +749,7 @@
                                      ui::DeviceEvent::ActionType::ADD,
                                      base::FilePath("/dev/input/event6"));
   provider_->OnDeviceEvent(add_keyboard_event);
-  base::RunLoop().RunUntilIdle();
+  task_environment_.RunUntilIdle();
 
   base::test::TestFuture<base::flat_map<uint32_t, mojom::KeyGlyphSetPtr>>
       future;
@@ -1039,7 +779,7 @@
                                      ui::DeviceEvent::ActionType::ADD,
                                      base::FilePath("/dev/input/event6"));
   provider_->OnDeviceEvent(add_keyboard_event);
-  base::RunLoop().RunUntilIdle();
+  task_environment_.RunUntilIdle();
 
   {
     base::test::TestFuture<std::vector<mojom::KeyboardInfoPtr>,
@@ -1069,7 +809,7 @@
                                      ui::DeviceEvent::ActionType::ADD,
                                      base::FilePath("/dev/input/event6"));
   provider_->OnDeviceEvent(add_keyboard_event);
-  base::RunLoop().RunUntilIdle();
+  task_environment_.RunUntilIdle();
 
   {
     base::test::TestFuture<std::vector<mojom::KeyboardInfoPtr>,
@@ -1110,671 +850,5 @@
   ASSERT_TRUE(provider_->ReceiverIsBound());
 }
 
-TEST_F(InputDataProviderTest, KeyObservationBasic) {
-  std::unique_ptr<FakeKeyboardObserver> fake_observer =
-      std::make_unique<FakeKeyboardObserver>();
-
-  // Widget must be active and visible.
-  provider_->attached_widget_->Show();
-  provider_->attached_widget_->Activate();
-
-  // Construct a keyboard.
-  const ui::DeviceEvent event0(ui::DeviceEvent::DeviceType::INPUT,
-                               ui::DeviceEvent::ActionType::ADD,
-                               base::FilePath("/dev/input/event6"));
-  provider_->OnDeviceEvent(event0);
-  base::RunLoop().RunUntilIdle();
-
-  EXPECT_EQ(0u, fake_observer->events_.size());
-  EXPECT_EQ(0u, provider_->watchers_.size());
-
-  // Attach a key observer.
-  provider_->ObserveKeyEvents(
-      6u, fake_observer->receiver.BindNewPipeAndPassRemote());
-  base::RunLoop().RunUntilIdle();
-
-  // Ensure an event watcher was constructed for the observer,
-  // but has not posted any events.
-  EXPECT_EQ(0u, fake_observer->events_.size());
-  EXPECT_EQ(1u, provider_->watchers_.size());
-  ASSERT_TRUE(provider_->watchers_[6]);
-
-  // Post a key event through the watcher that
-  // was created for the observer.
-  provider_->watchers_[6]->PostKeyEvent(true, kKeyA.key_code,
-                                        kKeyA.at_scan_code);
-  base::RunLoop().RunUntilIdle();
-
-  // Ensure the event came through.
-  EXPECT_EQ(1u, fake_observer->events_.size());
-  EXPECT_EQ(FakeKeyboardObserver::kEvent, fake_observer->events_[0].first);
-  ASSERT_TRUE(fake_observer->events_[0].second);
-
-  EXPECT_EQ(*fake_observer->events_[0].second,
-            mojom::KeyEvent(/*id=*/6u, /*type=*/mojom::KeyEventType::kPress,
-                            /*key_code=*/kKeyA.key_code,
-                            /*scan_code=*/kKeyA.at_scan_code,
-                            /*top_row_position=*/-1));
-}
-
-TEST_F(InputDataProviderTest, KeyObservationRemoval) {
-  std::unique_ptr<FakeKeyboardObserver> fake_observer =
-      std::make_unique<FakeKeyboardObserver>();
-
-  // Widget must be active and visible.
-  provider_->attached_widget_->Show();
-  provider_->attached_widget_->Activate();
-
-  // Construct a keyboard.
-  const ui::DeviceEvent event0(ui::DeviceEvent::DeviceType::INPUT,
-                               ui::DeviceEvent::ActionType::ADD,
-                               base::FilePath("/dev/input/event6"));
-  provider_->OnDeviceEvent(event0);
-  base::RunLoop().RunUntilIdle();
-
-  EXPECT_EQ(0u, fake_observer->events_.size());
-  EXPECT_EQ(0u, provider_->watchers_.size());
-
-  bool disconnected = false;
-
-  // Attach a key observer.
-  provider_->ObserveKeyEvents(
-      6u, fake_observer->receiver.BindNewPipeAndPassRemote());
-  base::RunLoop().RunUntilIdle();
-
-  fake_observer->receiver.set_disconnect_handler(
-      base::BindOnce([](bool* disconnected) { *disconnected = true; },
-                     base::Unretained(&disconnected)));
-
-  base::RunLoop().RunUntilIdle();
-
-  // Ensure an event watcher was constructed for the observer,
-  // but has not posted any events.
-  EXPECT_EQ(0u, fake_observer->events_.size());
-  EXPECT_EQ(1u, provider_->watchers_.size());
-  EXPECT_FALSE(disconnected);
-  ASSERT_TRUE(provider_->watchers_[6]);
-
-  // Test a key event.
-  EXPECT_KEY_EVENTS(fake_observer.get(), 6u, {{kKeyA, -1}});
-
-  // Disconnect keyboard while it is being observed.
-  ui::DeviceEvent remove_kbd_event(ui::DeviceEvent::DeviceType::INPUT,
-                                   ui::DeviceEvent::ActionType::REMOVE,
-                                   base::FilePath("/dev/input/event6"));
-  provider_->OnDeviceEvent(remove_kbd_event);
-  base::RunLoop().RunUntilIdle();
-
-  // Watcher should have been shut down, and receiver disconnected.
-  EXPECT_FALSE(provider_->watchers_[6]);
-  EXPECT_TRUE(disconnected);
-}
-
-TEST_F(InputDataProviderTest, KeyObservationMultiple) {
-  std::unique_ptr<FakeKeyboardObserver> fake_observer =
-      std::make_unique<FakeKeyboardObserver>();
-
-  // Widget must be active and visible.
-  provider_->attached_widget_->Show();
-  provider_->attached_widget_->Activate();
-
-  // Construct a keyboard.
-  const ui::DeviceEvent event0(ui::DeviceEvent::DeviceType::INPUT,
-                               ui::DeviceEvent::ActionType::ADD,
-                               base::FilePath("/dev/input/event6"));
-  provider_->OnDeviceEvent(event0);
-  base::RunLoop().RunUntilIdle();
-
-  // Attach a key observer.
-  provider_->ObserveKeyEvents(
-      6u, fake_observer->receiver.BindNewPipeAndPassRemote());
-  base::RunLoop().RunUntilIdle();
-
-  ASSERT_TRUE(provider_->watchers_[6]);
-
-  EXPECT_KEY_EVENTS(fake_observer.get(), 6u,
-                    {{kKeyA, -1, true},
-                     {kKeyB, -1, true},
-                     {kKeyA, -1, false},
-                     {kKeyB, -1, false}});
-}
-
-TEST_F(InputDataProviderTest, KeyObservationObeysFocus) {
-  std::unique_ptr<FakeKeyboardObserver> fake_observer =
-      std::make_unique<FakeKeyboardObserver>();
-
-  provider_->attached_widget_->Deactivate();
-  provider_->attached_widget_->Hide();
-
-  const ui::DeviceEvent event0(ui::DeviceEvent::DeviceType::INPUT,
-                               ui::DeviceEvent::ActionType::ADD,
-                               base::FilePath("/dev/input/event6"));
-  provider_->OnDeviceEvent(event0);
-  base::RunLoop().RunUntilIdle();
-
-  provider_->ObserveKeyEvents(
-      6u, fake_observer->receiver.BindNewPipeAndPassRemote());
-  base::RunLoop().RunUntilIdle();
-
-  // Verify we got the pause event from hiding the window.
-  ASSERT_EQ(1u, fake_observer->events_.size());
-  ASSERT_TRUE(provider_->watchers_[6]);
-
-  EXPECT_EQ(FakeKeyboardObserver::kPause, fake_observer->events_[0].first);
-
-  // Post a key event through the watcher that
-  // was created for the observer.
-  provider_->watchers_[6]->PostKeyEvent(true, kKeyA.key_code,
-                                        kKeyA.at_scan_code);
-  base::RunLoop().RunUntilIdle();
-
-  // Ensure the event did not come through, as the widget was not visible and
-  // focused.
-  ASSERT_EQ(1u, fake_observer->events_.size());
-  EXPECT_EQ(FakeKeyboardObserver::kPause, fake_observer->events_[0].first);
-}
-
-TEST_F(InputDataProviderTest, KeyObservationDisconnect) {
-  std::unique_ptr<FakeKeyboardObserver> fake_observer =
-      std::make_unique<FakeKeyboardObserver>();
-
-  // Widget must be active and visible.
-  provider_->attached_widget_->Show();
-  provider_->attached_widget_->Activate();
-
-  const ui::DeviceEvent event0(ui::DeviceEvent::DeviceType::INPUT,
-                               ui::DeviceEvent::ActionType::ADD,
-                               base::FilePath("/dev/input/event6"));
-  provider_->OnDeviceEvent(event0);
-  base::RunLoop().RunUntilIdle();
-
-  provider_->ObserveKeyEvents(
-      6u, fake_observer->receiver.BindNewPipeAndPassRemote());
-  base::RunLoop().RunUntilIdle();
-
-  EXPECT_EQ(0u, fake_observer->events_.size());
-  ASSERT_TRUE(provider_->watchers_[6]);
-
-  fake_observer->receiver.reset();
-  base::RunLoop().RunUntilIdle();
-
-  EXPECT_EQ(0u, fake_observer->events_.size());
-  ASSERT_FALSE(provider_->watchers_[6]);
-}
-
-TEST_F(InputDataProviderTest, KeyObservationObeysFocusSwitching) {
-  std::unique_ptr<FakeKeyboardObserver> fake_observer =
-      std::make_unique<FakeKeyboardObserver>();
-  std::unique_ptr<views::Widget> other_widget = CreateTestWidget();
-
-  // Provider's widget must be active and visible.
-  provider_->attached_widget_->Show();
-
-  // Construct a keyboard.
-  const ui::DeviceEvent event0(ui::DeviceEvent::DeviceType::INPUT,
-                               ui::DeviceEvent::ActionType::ADD,
-                               base::FilePath("/dev/input/event6"));
-  provider_->OnDeviceEvent(event0);
-  base::RunLoop().RunUntilIdle();
-
-  EXPECT_EQ(0u, fake_observer->events_.size());
-  EXPECT_EQ(0u, provider_->watchers_.size());
-
-  // Attach a key observer.
-  provider_->ObserveKeyEvents(
-      6u, fake_observer->receiver.BindNewPipeAndPassRemote());
-  base::RunLoop().RunUntilIdle();
-
-  // Ensure an event watcher was constructed for the observer,
-  // but has not posted any events.
-  EXPECT_EQ(0u, fake_observer->events_.size());
-  EXPECT_EQ(1u, provider_->watchers_.size());
-  ASSERT_TRUE(provider_->watchers_[6]);
-
-  // Focus on the other window.
-  other_widget->Show();
-  other_widget->Activate();
-  base::RunLoop().RunUntilIdle();
-
-  EXPECT_FALSE(provider_->attached_widget_->IsActive());
-  EXPECT_TRUE(other_widget->IsVisible());
-  EXPECT_TRUE(other_widget->IsActive());
-
-  EXPECT_EQ(1u, fake_observer->events_.size());
-  EXPECT_EQ(FakeKeyboardObserver::kPause, fake_observer->events_[0].first);
-  ASSERT_FALSE(fake_observer->events_[0].second);
-
-  // Post a key event through the watcher that
-  // was created for the observer.
-  provider_->watchers_[6]->PostKeyEvent(true, kKeyA.key_code,
-                                        kKeyA.at_scan_code);
-  base::RunLoop().RunUntilIdle();
-
-  // Ensure the event did not come through.
-  EXPECT_EQ(1u, fake_observer->events_.size());
-  EXPECT_EQ(FakeKeyboardObserver::kPause, fake_observer->events_[0].first);
-
-  // Clear events for next round.
-  fake_observer->events_.clear();
-
-  // Switch windows back.
-  provider_->attached_widget_->Show();
-  base::RunLoop().RunUntilIdle();
-
-  EXPECT_TRUE(provider_->attached_widget_->IsActive());
-  EXPECT_FALSE(other_widget->IsActive());
-
-  // Post another key event.
-  provider_->watchers_[6]->PostKeyEvent(true, kKeyB.key_code,
-                                        kKeyB.at_scan_code);
-  base::RunLoop().RunUntilIdle();
-
-  EXPECT_EQ(2u, fake_observer->events_.size());
-  EXPECT_EQ(FakeKeyboardObserver::kResume, fake_observer->events_[0].first);
-  EXPECT_EQ(FakeKeyboardObserver::kEvent, fake_observer->events_[1].first);
-  ASSERT_TRUE(fake_observer->events_[1].second);
-
-  EXPECT_EQ(*fake_observer->events_[1].second,
-            mojom::KeyEvent(/*id=*/6u, /*type=*/mojom::KeyEventType::kPress,
-                            /*key_code=*/kKeyB.key_code,
-                            /*scan_code=*/kKeyB.at_scan_code,
-                            /*top_row_position=*/-1));
-}
-
-// Test overlapping lifetimes of separate observers of one device.
-TEST_F(InputDataProviderTest, KeyObservationOverlappingeObserversOfDevice) {
-  std::unique_ptr<FakeKeyboardObserver> fake_observer1 =
-      std::make_unique<FakeKeyboardObserver>();
-
-  provider_->attached_widget_->Show();
-
-  const ui::DeviceEvent event0(ui::DeviceEvent::DeviceType::INPUT,
-                               ui::DeviceEvent::ActionType::ADD,
-                               base::FilePath("/dev/input/event6"));
-  provider_->OnDeviceEvent(event0);
-  base::RunLoop().RunUntilIdle();
-
-  provider_->ObserveKeyEvents(
-      6u, fake_observer1->receiver.BindNewPipeAndPassRemote());
-  base::RunLoop().RunUntilIdle();
-
-  EXPECT_EQ(0u, fake_observer1->events_.size());
-  EXPECT_EQ(1u, provider_->watchers_.size());
-  EXPECT_TRUE(provider_->watchers_[6]);
-
-  std::unique_ptr<FakeKeyboardObserver> fake_observer2 =
-      std::make_unique<FakeKeyboardObserver>();
-
-  provider_->ObserveKeyEvents(
-      6u, fake_observer2->receiver.BindNewPipeAndPassRemote());
-  base::RunLoop().RunUntilIdle();
-
-  EXPECT_EQ(0u, fake_observer1->events_.size());
-  EXPECT_EQ(0u, fake_observer2->events_.size());
-  EXPECT_TRUE(provider_->watchers_[6]);
-
-  fake_observer1.reset();
-  base::RunLoop().RunUntilIdle();
-
-  EXPECT_EQ(0u, fake_observer2->events_.size());
-  ASSERT_TRUE(provider_->watchers_[6]);
-
-  // And send an event through to check functionality.
-  provider_->watchers_[6]->PostKeyEvent(true, kKeyA.key_code,
-                                        kKeyA.at_scan_code);
-  base::RunLoop().RunUntilIdle();
-
-  // Ensure an event comes through properly after all that.
-  EXPECT_EQ(1u, fake_observer2->events_.size());
-  EXPECT_EQ(FakeKeyboardObserver::kEvent, fake_observer2->events_[0].first);
-  ASSERT_TRUE(fake_observer2->events_[0].second);
-  EXPECT_EQ(*fake_observer2->events_[0].second,
-            mojom::KeyEvent(/*id=*/6u, /*type=*/mojom::KeyEventType::kPress,
-                            /*key_code=*/kKeyA.key_code,
-                            /*scan_code=*/kKeyA.at_scan_code,
-                            /*top_row_position=*/-1));
-
-  fake_observer2.reset();
-  base::RunLoop().RunUntilIdle();
-
-  EXPECT_EQ(0u, provider_->watchers_.count(6));
-}
-
-// Double-check security model and ensure that multiple instances
-// do not interfere with each other, and that key observations obey
-// individual window focus combined with multiple instances.
-TEST_F(InputDataProviderTest, KeyObservationMultipleProviders) {
-  // Create a second InputDataProvider, with a separate window/widget,
-  // as would happen if multiple instances of the SWA were created.
-  watchers_t provider2_watchers;
-  std::unique_ptr<TestInputDataProvider> provider2_ =
-      std::make_unique<TestInputDataProvider>(CreateTestWidget(),
-                                              provider2_watchers);
-  auto& provider1_ = provider_;
-
-  std::unique_ptr<FakeKeyboardObserver> fake_observer1 =
-      std::make_unique<FakeKeyboardObserver>();
-  std::unique_ptr<FakeKeyboardObserver> fake_observer2 =
-      std::make_unique<FakeKeyboardObserver>();
-
-  // Show and activate first window.
-  provider1_->attached_widget_->Show();
-  // Show and activate second window; this will deactivate the first window.
-  provider2_->attached_widget_->Show();
-
-  EXPECT_FALSE(provider1_->attached_widget_->IsActive());
-  EXPECT_TRUE(provider2_->attached_widget_->IsActive());
-
-  // Construct a keyboard.
-  const ui::DeviceEvent event0(ui::DeviceEvent::DeviceType::INPUT,
-                               ui::DeviceEvent::ActionType::ADD,
-                               base::FilePath("/dev/input/event6"));
-  provider1_->OnDeviceEvent(event0);
-  provider2_->OnDeviceEvent(event0);
-  base::RunLoop().RunUntilIdle();
-
-  EXPECT_TRUE(provider1_->watchers_.empty());
-  EXPECT_TRUE(provider2_->watchers_.empty());
-
-  // Connected observer 1 to provider 1.
-  provider1_->ObserveKeyEvents(
-      6u, fake_observer1->receiver.BindNewPipeAndPassRemote());
-  base::RunLoop().RunUntilIdle();
-
-  EXPECT_FALSE(provider1_->watchers_.empty());
-  EXPECT_TRUE(provider2_->watchers_.empty());
-  EXPECT_EQ(1u, fake_observer1->events_.size());
-  EXPECT_EQ(FakeKeyboardObserver::kPause, fake_observer1->events_[0].first);
-  EXPECT_EQ(1u, provider1_->watchers_.count(6));
-
-  EXPECT_EQ(0u, fake_observer2->events_.size());
-  EXPECT_EQ(0u, provider2_->watchers_.count(6));
-
-  // Connected observer 2 to provider 2.
-
-  provider2_->ObserveKeyEvents(
-      6u, fake_observer2->receiver.BindNewPipeAndPassRemote());
-  base::RunLoop().RunUntilIdle();
-
-  EXPECT_FALSE(provider1_->watchers_.empty());
-  EXPECT_FALSE(provider2_->watchers_.empty());
-  EXPECT_EQ(1u, fake_observer1->events_.size());
-  EXPECT_EQ(FakeKeyboardObserver::kPause, fake_observer1->events_[0].first);
-  EXPECT_EQ(1u, provider1_->watchers_.size());
-  EXPECT_EQ(1u, provider1_->watchers_.size());
-  ASSERT_TRUE(provider1_->watchers_[6]);
-  ASSERT_TRUE(provider2_->watchers_[6]);
-
-  EXPECT_EQ(0u, fake_observer2->events_.size());
-  EXPECT_EQ(1u, provider2_->watchers_.size());
-  EXPECT_TRUE(provider2_->watchers_[6]);
-  // Providers should have distinct Watcher instances.
-  EXPECT_NE(provider1_->watchers_[6], provider2_->watchers_[6]);
-
-  // Reset event logs for next round.
-  fake_observer1->events_.clear();
-  fake_observer2->events_.clear();
-
-  // Post two separate key events.
-  provider1_->watchers_[6]->PostKeyEvent(true, kKeyA.key_code,
-                                         kKeyA.at_scan_code);
-  provider2_->watchers_[6]->PostKeyEvent(true, kKeyB.key_code,
-                                         kKeyB.at_scan_code);
-  base::RunLoop().RunUntilIdle();
-
-  // Ensure the events came through to expected targets.
-  EXPECT_EQ(0u, fake_observer1->events_.size());
-
-  EXPECT_EQ(1u, fake_observer2->events_.size());
-  EXPECT_EQ(FakeKeyboardObserver::kEvent, fake_observer2->events_[0].first);
-  ASSERT_TRUE(fake_observer2->events_[0].second);
-  EXPECT_EQ(*fake_observer2->events_[0].second,
-            mojom::KeyEvent(/*id=*/6u, /*type=*/mojom::KeyEventType::kPress,
-                            /*key_code=*/kKeyB.key_code,
-                            /*scan_code=*/kKeyB.at_scan_code,
-                            /*top_row_position=*/-1));
-
-  // Reset event logs for next round.
-  fake_observer1->events_.clear();
-  fake_observer2->events_.clear();
-
-  // Switch active window.
-  provider1_->attached_widget_->Activate();
-  base::RunLoop().RunUntilIdle();
-
-  EXPECT_TRUE(provider1_->attached_widget_->IsActive());
-  EXPECT_TRUE(provider1_->attached_widget_->IsVisible());
-  EXPECT_FALSE(provider2_->attached_widget_->IsActive());
-
-  provider1_->watchers_[6]->PostKeyEvent(true, kKeyA.key_code,
-                                         kKeyA.at_scan_code);
-  provider2_->watchers_[6]->PostKeyEvent(true, kKeyB.key_code,
-                                         kKeyB.at_scan_code);
-  base::RunLoop().RunUntilIdle();
-
-  // Ensure the events came through to expected targets.
-
-  EXPECT_EQ(2u, fake_observer1->events_.size());
-  EXPECT_EQ(FakeKeyboardObserver::kResume, fake_observer1->events_[0].first);
-  EXPECT_FALSE(fake_observer1->events_[0].second);
-  EXPECT_EQ(FakeKeyboardObserver::kEvent, fake_observer1->events_[1].first);
-  ASSERT_TRUE(fake_observer1->events_[1].second);
-  EXPECT_EQ(*fake_observer1->events_[1].second,
-            mojom::KeyEvent(/*id=*/6u, /*type=*/mojom::KeyEventType::kPress,
-                            /*key_code=*/kKeyA.key_code,
-                            /*scan_code=*/kKeyA.at_scan_code,
-                            /*top_row_position=*/-1));
-
-  EXPECT_EQ(1u, fake_observer2->events_.size());
-  EXPECT_EQ(FakeKeyboardObserver::kPause, fake_observer2->events_[0].first);
-  EXPECT_FALSE(fake_observer2->events_[0].second);
-
-  // Reset event logs for next round.
-  fake_observer1->events_.clear();
-  fake_observer2->events_.clear();
-
-  // Activate a new widget, ensuring neither previous window is active.
-  auto widget3 = CreateTestWidget();
-  widget3->Activate();
-  base::RunLoop().RunUntilIdle();
-
-  EXPECT_FALSE(provider1_->attached_widget_->IsActive());
-  EXPECT_FALSE(provider2_->attached_widget_->IsActive());
-
-  // Event should show key paused from previously active window.
-  EXPECT_EQ(1u, fake_observer1->events_.size());
-  EXPECT_EQ(FakeKeyboardObserver::kPause, fake_observer1->events_[0].first);
-  EXPECT_FALSE(fake_observer1->events_[0].second);
-
-  // Reset event logs for next round.
-  fake_observer1->events_.clear();
-  fake_observer2->events_.clear();
-
-  // Deliver keys to both.
-  provider1_->watchers_[6]->PostKeyEvent(true, kKeyA.key_code,
-                                         kKeyA.at_scan_code);
-  provider2_->watchers_[6]->PostKeyEvent(true, kKeyB.key_code,
-                                         kKeyB.at_scan_code);
-  base::RunLoop().RunUntilIdle();
-
-  // Neither window is visible and active, no events should be received.
-  EXPECT_FALSE(provider1_->attached_widget_->IsVisible() &&
-               provider1_->attached_widget_->IsActive());
-  EXPECT_FALSE(provider2_->attached_widget_->IsVisible() &&
-               provider2_->attached_widget_->IsActive());
-  EXPECT_EQ(0u, fake_observer1->events_.size());
-  EXPECT_EQ(0u, fake_observer2->events_.size());
-}
-
-TEST_F(InputDataProviderTest, KeyObservationTopRowBasic) {
-  // Test with Eve keyboard: [Escape, Back, ..., Louder, Menu]
-  std::unique_ptr<FakeKeyboardObserver> fake_observer =
-      std::make_unique<FakeKeyboardObserver>();
-
-  // Widget must be active and visible.
-  provider_->attached_widget_->Show();
-  provider_->attached_widget_->Activate();
-
-  // Construct a keyboard.
-  const ui::DeviceEvent event0(ui::DeviceEvent::DeviceType::INPUT,
-                               ui::DeviceEvent::ActionType::ADD,
-                               base::FilePath("/dev/input/event6"));
-  provider_->OnDeviceEvent(event0);
-  base::RunLoop().RunUntilIdle();
-
-  // Attach a key observer.
-  provider_->ObserveKeyEvents(
-      6u, fake_observer->receiver.BindNewPipeAndPassRemote());
-  base::RunLoop().RunUntilIdle();
-
-  ASSERT_TRUE(provider_->watchers_[6]);
-
-  EXPECT_KEY_EVENTS(fake_observer.get(), 6u,
-                    {{kKeyEsc, -1},
-                     {kKeyF1, 0},
-                     {kKeyF10, 9},
-                     {kKeyMenu, -1},
-                     {kKeyDelete, -1}});
-}
-
-TEST_F(InputDataProviderTest, KeyObservationTopRowUnknownAction) {
-  // Test for Vivaldi descriptor having an unrecognized scan-code;
-  // most likely due to external keyboard being newer than OS image.
-
-  std::unique_ptr<FakeKeyboardObserver> fake_observer =
-      std::make_unique<FakeKeyboardObserver>();
-
-  // Widget must be active and visible.
-  provider_->attached_widget_->Show();
-  provider_->attached_widget_->Activate();
-
-  std::vector<mojom::TopRowKey> modified_top_row_keys =
-      std::vector(std::begin(kInternalJinlonTopRowKeys),
-                  std::end(kInternalJinlonTopRowKeys));
-  modified_top_row_keys[kUnknownScancodeIndex] = mojom::TopRowKey::kUnknown;
-
-  // Construct a keyboard.
-  const ui::DeviceEvent event0(ui::DeviceEvent::DeviceType::INPUT,
-                               ui::DeviceEvent::ActionType::ADD,
-                               base::FilePath("/dev/input/event11"));
-  provider_->OnDeviceEvent(event0);
-  base::RunLoop().RunUntilIdle();
-
-  base::test::TestFuture<std::vector<mojom::KeyboardInfoPtr>,
-                         std::vector<mojom::TouchDeviceInfoPtr>>
-      future;
-  provider_->GetConnectedDevices(future.GetCallback());
-
-  const auto& keyboards = future.Get<0>();
-
-  ASSERT_EQ(1ul, keyboards.size());
-  const mojom::KeyboardInfoPtr& keyboard = keyboards[0];
-  EXPECT_EQ(11u, keyboard->id);
-  EXPECT_EQ(modified_top_row_keys, keyboard->top_row_keys);
-
-  // Attach a key observer.
-  provider_->ObserveKeyEvents(
-      11u, fake_observer->receiver.BindNewPipeAndPassRemote());
-  base::RunLoop().RunUntilIdle();
-
-  ASSERT_TRUE(provider_->watchers_[11]);
-
-  EXPECT_KEY_EVENTS(fake_observer.get(), 11u,
-                    {{kKeyEsc, -1},
-                     {kKeyActionBack, 0},
-                     {kKeyF1, 0},
-                     {kKeyActionRefresh, 1},
-                     {kKeyActionFullscreen, 2},
-                     {kKeyActionOverview, 3},
-                     {kKeyActionScreenshot, 4},
-                     {kKeyActionScreenBrightnessDown, 5},
-                     {kKeyActionScreenBrightnessUp, 6},
-                     {{0, kUnknownScancode, 0}, kUnknownScancodeIndex},
-                     {kKeyF8, 7},
-                     {kKeyActionKeyboardBrightnessDown, 8},
-                     {kKeyActionKeyboardBrightnessUp, 9},
-                     {kKeyActionKeyboardVolumeMute, 10},
-                     {kKeyF10, 9},
-                     {kKeyActionKeyboardVolumeDown, 11},
-                     {kKeyActionKeyboardVolumeUp, 12},
-                     {kKeySleep, -1}});
-}
-
-// TODO(b/208729519): Not available until we can test Drallion keyboards.
-#if 0
-TEST_F(InputDataProviderTest, KeyObservationTopRowDrallion) {
-  // Test with Drallion keyboard:
-  //  [Escape, Back, ..., Louder, F10, F11, F12, Mirror, Delete]
-  // ...
-
-  // Construct a keyboard
-  const ui::DeviceEvent event0(ui::DeviceEvent::DeviceType::INPUT,
-                               ui::DeviceEvent::ActionType::ADD,
-                               base::FilePath("/dev/input/event10"));
-  // ...
-  struct {
-    KeyDefinition key;
-    int position;
-  } keys[] = {
-      {kKeyA, -1},
-      {kKeyB, -1},
-      {kKeyEsc, -1},
-      {kKeyF1, 0},
-      {kKeyF10, 9},
-      {kKeyF11, 10},
-      {kKeyF12, 11},
-      {kKeySwitchVideoMode, 12},
-      {kKeyDelete, 13},
-  };
-
-  for (size_t i = 0; i < std::size(keys); i++) {
-    auto item = keys[i];
-    provider_->watchers_[10]->PostKeyEvent(true, item.key.key_code,
-         item.key.at_scan_code);
-  }
-  base::RunLoop().RunUntilIdle();
-
-  // ...
-}
-#endif  // 0
-
-TEST_F(InputDataProviderTest, KeyObservationTopRowExternalUSB) {
-  std::unique_ptr<FakeKeyboardObserver> fake_observer =
-      std::make_unique<FakeKeyboardObserver>();
-
-  // Widget must be active and visible.
-  provider_->attached_widget_->Show();
-  provider_->attached_widget_->Activate();
-
-  // Construct a keyboard.
-  const ui::DeviceEvent event0(ui::DeviceEvent::DeviceType::INPUT,
-                               ui::DeviceEvent::ActionType::ADD,
-                               base::FilePath("/dev/input/event9"));
-  provider_->OnDeviceEvent(event0);
-  base::RunLoop().RunUntilIdle();
-
-  // Attach a key observer.
-  provider_->ObserveKeyEvents(
-      9u, fake_observer->receiver.BindNewPipeAndPassRemote());
-  base::RunLoop().RunUntilIdle();
-
-  ASSERT_TRUE(provider_->watchers_[9]);
-
-  // Test with generic external keyboard.
-  EXPECT_KEY_EVENTS(fake_observer.get(), 9u,
-                    {{kKeyA, -1},
-                     {kKeyB, -1},
-                     {kKeyMenu, -1},
-                     {kKeyDelete, -1},
-                     {kKeyEsc, -1},
-                     {kKeyF1, 0},
-                     {kKeyF10, 9},
-                     {kKeyF11, 10},
-                     {kKeyF12, 11}});
-}
-
-// TODO(b/211780758): Test all Fx scancodes using
-// ui/events/keycodes/dom/dom_code_data.inc as source of truth.
-
 }  // namespace diagnostics
 }  // namespace ash
diff --git a/ash/webui/diagnostics_ui/diagnostics_ui.cc b/ash/webui/diagnostics_ui/diagnostics_ui.cc
index b65b6362..e85cc908 100644
--- a/ash/webui/diagnostics_ui/diagnostics_ui.cc
+++ b/ash/webui/diagnostics_ui/diagnostics_ui.cc
@@ -391,7 +391,7 @@
   auto session_log_handler = std::make_unique<diagnostics::SessionLogHandler>(
       select_file_policy_creator, holding_space_client, log_directory_path);
   diagnostics_manager_ = std::make_unique<diagnostics::DiagnosticsManager>(
-      session_log_handler.get(), web_ui);
+      session_log_handler.get());
   web_ui->AddMessageHandler(std::move(session_log_handler));
 
   AddDiagnosticsStrings(html_source.get());
diff --git a/ash/webui/diagnostics_ui/diagnostics_ui.h b/ash/webui/diagnostics_ui/diagnostics_ui.h
index 4808a756..b04038da 100644
--- a/ash/webui/diagnostics_ui/diagnostics_ui.h
+++ b/ash/webui/diagnostics_ui/diagnostics_ui.h
@@ -27,7 +27,6 @@
 
 namespace diagnostics {
 class DiagnosticsManager;
-class InputDataProvider;
 }  // namespace diagnostics
 
 // The WebDialogUI for chrome://diagnostics.
@@ -68,7 +67,6 @@
   std::unique_ptr<diagnostics::DiagnosticsManager> diagnostics_manager_;
   std::unique_ptr<diagnostics::metrics::DiagnosticsMetrics>
       diagnostics_metrics_;
-  std::unique_ptr<diagnostics::InputDataProvider> input_data_provider_;
 };
 
 }  // namespace ash
diff --git a/ash/webui/diagnostics_ui/mojom/input_data_provider.mojom b/ash/webui/diagnostics_ui/mojom/input_data_provider.mojom
index 74c4c80..cb76da5 100644
--- a/ash/webui/diagnostics_ui/mojom/input_data_provider.mojom
+++ b/ash/webui/diagnostics_ui/mojom/input_data_provider.mojom
@@ -82,53 +82,12 @@
   PhysicalLayout physical_layout;
   MechanicalLayout mechanical_layout;
   NumberPadPresence number_pad_present;
-  // List of ChromeOS specific action keys in the top row. This list excludes
-  // the left-most Escape key, and right-most key (usually Power/Lock).
-  // If a keyboard has F11-F15 keys beyond the rightmost action key, they may
-  // not be included in this list (even as kNone).
+  // Excludes left-most Escape key, and right-most key (usually Power/Lock).
   array<TopRowKey> top_row_keys;
   // Only applicable to CrOS keyboards.
   bool has_assistant_key;
 };
 
-enum KeyEventType {
-  kPress,
-  kRelease,
-};
-
-// Describes an event on a connected keyboard.
-struct KeyEvent {
-  // The number of the keyboard's /dev/input/event* node.
-  uint32 id;
-  KeyEventType type;
-  // The evdev key code
-  uint32 key_code;
-  // The kernel-reported 'physical' scancode; this may be a 32-bit Usage for
-  // USB and Bluetooth HID devices, or an AT-style scancode for some internal
-  // keyboards.
-  uint32 scan_code;
-  // Position of the key on the top row after escape (0 is leftmost, 1 is next
-  // to the right, etc.), or -1 for keys not on the top row. Generally, 0 is F1,
-  // in some fashion.
-  // NOTE: This position may exceed the length of top_row_keys, for external
-  // keyboards with keys in the F11-F15 range.
-  int32 top_row_position;
-};
-
-// Implemented by clients that wish to be updated when input devices have keys
-// pressed or released, while the client has focus and is visible; pause and
-// resume events will be generated if focus/visibility changes.
-interface KeyboardObserver {
-  // Called when a key is pressed or released on the observed device, and
-  // events to this observer have not been paused.
-  OnKeyEvent(KeyEvent event);
-  // Called when delivery of events to the app are paused temporarily for
-  // security reasons. While paused, events will be discarded.
-  OnKeyEventsPaused();
-  // Called when delivery of events resumes.
-  OnKeyEventsResumed();
-};
-
 // Describes the glyphs that appear on a single key.
 struct KeyGlyphSet {
   // Glyph if pressed without modifiers. Displayed in the centre or on the lower
@@ -177,18 +136,9 @@
   GetConnectedDevices() =>
     (array<KeyboardInfo> keyboards,
      array<TouchDeviceInfo> touch_devices);
-
-  // Registers an observer for changes to the connected input devices.
+  // Registers an observer of connected input devices.
   ObserveConnectedDevices(pending_remote<ConnectedDevicesObserver> observer);
 
-  // id is the number of the keyboard device's /dev/input/event* node.
-  // Observation is cancelled when KeyboardObserver (or InputDataProvider)
-  // is destroyed.
-  // The native implementation of InputDataProvider has a reference to the
-  // target SWA window, and enforces the security policy of only forwarding
-  // key events to the observer when that window is visible and has focus.
-  ObserveKeyEvents(uint32 id, pending_remote<KeyboardObserver> observer);
-
   // Returns the visual layout for the keyboard with the given ID. For external
   // keyboards where we can't be sure of their layout, this will default to the
   // system layout.
diff --git a/ash/webui/diagnostics_ui/resources/diagnostics_types.js b/ash/webui/diagnostics_ui/resources/diagnostics_types.js
index 3f291f3..4b0e379 100644
--- a/ash/webui/diagnostics_ui/resources/diagnostics_types.js
+++ b/ash/webui/diagnostics_ui/resources/diagnostics_types.js
@@ -521,33 +521,6 @@
 export const ConnectedDevicesObserverReceiver =
     ash.diagnostics.mojom.ConnectedDevicesObserverReceiver;
 
-/**
- * Type alias for KeyboardObserver.
- * @typedef {ash.diagnostics.mojom.KeyboardObserver}
- */
-export const KeyboardObserver = ash.diagnostics.mojom.CpuUsageObserver;
-
-/**
- * Type alias for KeyboardObserverRemote.
- * @typedef {ash.diagnostics.mojom.KeyboardObserverRemote}
- */
-export const KeyboardObserverRemote =
-    ash.diagnostics.mojom.KeyboardObserverRemote;
-
-/**
- * Type alias for KeyboardObserverInterface.
- * @typedef {ash.diagnostics.mojom.KeyboardObserverInterface}
- */
-export const KeyboardObserverInterface =
-    ash.diagnostics.mojom.KeyboardObserverInterface;
-
-/**
- * Type alias for KeyboardObserverReceiver.
- * @typedef {ash.diagnostics.mojom.KeyboardObserverReceiver}
- */
-export const KeyboardObserverReceiver =
-    ash.diagnostics.mojom.KeyboardObserverReceiver;
-
 
 /**
  * Type alias for the the response from InputDataProvider.GetConnectedDevices.
diff --git a/ash/webui/diagnostics_ui/resources/fake_input_data_provider.js b/ash/webui/diagnostics_ui/resources/fake_input_data_provider.js
index 1936e77d..7db7417e 100644
--- a/ash/webui/diagnostics_ui/resources/fake_input_data_provider.js
+++ b/ash/webui/diagnostics_ui/resources/fake_input_data_provider.js
@@ -2,10 +2,9 @@
 // Use of this source code is governed by a BSD-style license that can be
 // found in the LICENSE file.
 
+import {ConnectedDevicesObserverRemote, ConnectionType, GetConnectedDevicesResponse, GetKeyboardVisualLayoutResponse, InputDataProviderInterface, KeyboardInfo, TouchDeviceInfo, TouchDeviceType} from './diagnostics_types.js';
 import {FakeMethodResolver} from 'chrome://resources/ash/common/fake_method_resolver.js';
 
-import {ConnectedDevicesObserverRemote, ConnectionType, GetConnectedDevicesResponse, GetKeyboardVisualLayoutResponse, InputDataProviderInterface, KeyboardInfo, KeyboardObserverRemote, TouchDeviceInfo, TouchDeviceType} from './diagnostics_types.js';
-
 /**
  * @fileoverview
  * Implements a fake version of the InputDataProvider Mojo interface.
@@ -19,8 +18,6 @@
     this.observers_ = [];
     /** @private {!Array<!KeyboardInfo>} */
     this.keyboards_ = [];
-    /** @private {!Array<!Array<!KeyboardObserverRemote>>} */
-    this.keyboard_observers_ = [];
     /** @private {!Array<!TouchDeviceInfo>} */
     this.touchDevices_ = [];
 
@@ -43,7 +40,6 @@
   registerMethods() {
     this.methods_.register('getConnectedDevices');
     this.methods_.register('getKeyboardVisualLayout');
-    this.methods_.register('observeKeyEvents');
   }
 
   /**
@@ -54,18 +50,6 @@
   }
 
   /**
-   * Registers an observer for key events on the specific device.
-   * @param {number} id The ID of the keyboard to observe
-   * @param {!KeyboardObserverRemote} remote
-   */
-  observeKeyEvents(id, remote) {
-    if (!this.keyboard_observers_[id]) {
-      return;
-    }
-    this.keyboard_observers_[id].push(remote);
-  }
-
-  /**
    * Sets the values that will be returned when calling getConnectedDevices(),
    * but does not notify connected device observers of the changes.
    * @param {!Array<!KeyboardInfo>} keyboards
@@ -94,7 +78,6 @@
    */
   addFakeConnectedKeyboard(keyboard) {
     this.keyboards_.push(keyboard);
-    this.keyboard_observers_[keyboard.id] = [];
     this.methods_.setResult('getConnectedDevices',
                             {keyboards: [...this.keyboards_],
                              touchDevices: [...this.touchDevices_]});
@@ -111,7 +94,6 @@
    */
   removeFakeConnectedKeyboardById(id) {
     this.keyboards_ = this.keyboards_.filter((device) => device.id !== id);
-    delete this.keyboard_observers_[id];
 
     for (const observer of this.observers_) {
       observer.onKeyboardDisconnected(id);
diff --git a/base/BUILD.gn b/base/BUILD.gn
index c411550..8a3a284 100644
--- a/base/BUILD.gn
+++ b/base/BUILD.gn
@@ -26,6 +26,7 @@
 import("//build/config/chromeos/ui_mode.gni")
 import("//build/config/compiler/compiler.gni")
 import("//build/config/dcheck_always_on.gni")
+import("//build/config/ios/config.gni")
 import("//build/config/logging.gni")
 import("//build/config/nacl/config.gni")
 import("//build/config/profiling/profiling.gni")
@@ -166,6 +167,12 @@
   }
 }
 
+buildflag_header("ios_cronet_buildflags") {
+  header = "ios_cronet_buildflags.h"
+  header_dir = "base/message_loop"
+  flags = [ "CRONET_BUILD=$is_cronet_build" ]
+}
+
 # Base and everything it depends on should be a static library rather than
 # a source set. Base is more of a "library" in the classic sense in that many
 # small parts of it are used in many different contexts. This combined with a
@@ -1280,14 +1287,23 @@
       "ios/ns_range.h",
       "ios/scoped_critical_action.h",
       "ios/scoped_critical_action.mm",
-      "message_loop/message_pump_io_ios.cc",
-      "message_loop/message_pump_io_ios.h",
       "native_library_ios.mm",
       "process/launch_ios.cc",
       "process/process_metrics_ios.cc",
       "profiler/module_cache_mac.cc",
       "profiler/stack_sampler_ios.cc",
     ]
+    if (is_cronet_build) {
+      sources += [
+        "message_loop/message_pump_io_ios.cc",
+        "message_loop/message_pump_io_ios.h",
+      ]
+    } else {
+      sources += [
+        "message_loop/message_pump_kqueue.cc",
+        "message_loop/message_pump_kqueue.h",
+      ]
+    }
 
     if (ios_stack_profiler_enabled) {
       sources += [
@@ -1444,6 +1460,7 @@
     ":clang_profiling_buildflags",
     ":debugging_buildflags",
     ":feature_list_buildflags",
+    ":ios_cronet_buildflags",
     ":logging_buildflags",
     ":orderfile_buildflags",
     ":parsing_buildflags",
@@ -3611,9 +3628,14 @@
     sources += [
       "ios/device_util_unittest.mm",
       "ios/weak_nsobject_unittest.mm",
-      "message_loop/message_pump_io_ios_unittest.cc",
     ]
 
+    if (is_cronet_build) {
+      sources += [ "message_loop/message_pump_io_ios_unittest.cc" ]
+    } else {
+      sources += [ "message_loop/message_pump_kqueue_unittest.cc" ]
+    }
+
     # ios does not use test_launcher to run gtests.
     sources -= [
       "files/file_path_watcher_unittest.cc",
diff --git a/base/message_loop/message_pump_for_io.h b/base/message_loop/message_pump_for_io.h
index 9a9b9df..224d7e15 100644
--- a/base/message_loop/message_pump_for_io.h
+++ b/base/message_loop/message_pump_for_io.h
@@ -8,13 +8,14 @@
 // This header is a forwarding header to coalesce the various platform specific
 // types representing MessagePumpForIO.
 
+#include "base/message_loop/ios_cronet_buildflags.h"
 #include "build/build_config.h"
 
 #if BUILDFLAG(IS_WIN)
 #include "base/message_loop/message_pump_win.h"
-#elif BUILDFLAG(IS_IOS)
+#elif BUILDFLAG(IS_IOS) && BUILDFLAG(CRONET_BUILD)
 #include "base/message_loop/message_pump_io_ios.h"
-#elif BUILDFLAG(IS_MAC)
+#elif BUILDFLAG(IS_APPLE)
 #include "base/message_loop/message_pump_kqueue.h"
 #elif BUILDFLAG(IS_NACL)
 #include "base/message_loop/message_pump_default.h"
@@ -29,9 +30,9 @@
 #if BUILDFLAG(IS_WIN)
 // Windows defines it as-is.
 using MessagePumpForIO = MessagePumpForIO;
-#elif BUILDFLAG(IS_IOS)
+#elif BUILDFLAG(IS_IOS) && BUILDFLAG(CRONET_BUILD)
 using MessagePumpForIO = MessagePumpIOSForIO;
-#elif BUILDFLAG(IS_MAC)
+#elif BUILDFLAG(IS_APPLE)
 using MessagePumpForIO = MessagePumpKqueue;
 #elif BUILDFLAG(IS_NACL)
 using MessagePumpForIO = MessagePumpDefault;
diff --git a/base/message_loop/message_pump_kqueue.cc b/base/message_loop/message_pump_kqueue.cc
index 21d0580..ab437895 100644
--- a/base/message_loop/message_pump_kqueue.cc
+++ b/base/message_loop/message_pump_kqueue.cc
@@ -23,8 +23,12 @@
 // port sets. MessagePumpKqueue will directly use Mach ports in the kqueue if
 // it is possible.
 bool KqueueNeedsPortSet() {
+#if BUILDFLAG(IS_MAC)
   static const bool kqueue_needs_port_set = mac::IsAtMostOS10_11();
   return kqueue_needs_port_set;
+#else
+  return false;
+#endif
 }
 
 #if DCHECK_IS_ON()
@@ -34,8 +38,13 @@
 // Note that updating a kqueue timer from one thread while another thread is
 // waiting in a kevent64 invocation is still (inherently) racy.
 bool KqueueTimersSpuriouslyWakeUp() {
+#if BUILDFLAG(IS_MAC)
   static const bool kqueue_timers_spuriously_wakeup = mac::IsAtMostOS10_13();
   return kqueue_timers_spuriously_wakeup;
+#else
+  // This still happens on iOS15.
+  return true;
+#endif
 }
 #endif
 
diff --git a/build/android/gyp/dex.py b/build/android/gyp/dex.py
index c849519..e45555d 100755
--- a/build/android/gyp/dex.py
+++ b/build/android/gyp/dex.py
@@ -200,6 +200,18 @@
     #   Error message #1 indented here.
     #   Error message #2 indented here.
     output = re.sub(r'^Warning in .*?:\n(?!  )', '', output, flags=re.MULTILINE)
+
+    # Caused by protobuf runtime using -identifiernamestring in a way that
+    # doesn't work with R8. Looks like:
+    # Rule matches ... (very long line) {
+    #   static java.lang.String CONTAINING_TYPE_*;
+    # }
+    output = re.sub(
+        r'Rule matches the static final field `java\.lang\.String '
+        'com\.google\.protobuf.*\{\n.*?\n\}\n?',
+        '',
+        output,
+        flags=re.DOTALL)
     return output
 
   return filter_stderr
diff --git a/build/fuchsia/linux.sdk.sha1 b/build/fuchsia/linux.sdk.sha1
index 6e6d7c0..6c29ff6 100644
--- a/build/fuchsia/linux.sdk.sha1
+++ b/build/fuchsia/linux.sdk.sha1
@@ -1 +1 @@
-7.20220127.0.1
+7.20220127.1.1
diff --git a/build/fuchsia/mac.sdk.sha1 b/build/fuchsia/mac.sdk.sha1
index 4499ee8a..6c29ff6 100644
--- a/build/fuchsia/mac.sdk.sha1
+++ b/build/fuchsia/mac.sdk.sha1
@@ -1 +1 @@
-7.20220126.3.1
+7.20220127.1.1
diff --git a/cc/benchmarks/rasterize_and_record_benchmark.cc b/cc/benchmarks/rasterize_and_record_benchmark.cc
index ac3d34ce..198eaa70 100644
--- a/cc/benchmarks/rasterize_and_record_benchmark.cc
+++ b/cc/benchmarks/rasterize_and_record_benchmark.cc
@@ -119,7 +119,7 @@
 void RasterizeAndRecordBenchmark::RunOnLayer(PictureLayer* layer) {
   DCHECK(layer_tree_host_);
 
-  if (!layer->DrawsContent())
+  if (!layer->draws_content())
     return;
 
   ContentLayerClient* painter = layer->client();
diff --git a/cc/layers/heads_up_display_layer.cc b/cc/layers/heads_up_display_layer.cc
index ba21681..f23a3dd4 100644
--- a/cc/layers/heads_up_display_layer.cc
+++ b/cc/layers/heads_up_display_layer.cc
@@ -25,7 +25,7 @@
   }
   DCHECK(typeface_.get());
   SetIsDrawable(true);
-  UpdateDrawsContent(HasDrawableContent());
+  SetDrawsContent(HasDrawableContent());
 }
 
 HeadsUpDisplayLayer::~HeadsUpDisplayLayer() = default;
diff --git a/cc/layers/layer.cc b/cc/layers/layer.cc
index db89127c..296f923 100644
--- a/cc/layers/layer.cc
+++ b/cc/layers/layer.cc
@@ -107,14 +107,7 @@
       // Layer IDs start from 1.
       layer_id_(g_next_layer_id.GetNext() + 1),
       ignore_set_needs_commit_(false),
-      draws_content_(false),
-      should_check_backface_visibility_(false),
-      cache_render_surface_(false),
-      force_render_surface_for_testing_(false),
-      may_contain_video_(false),
-      has_transform_node_(false),
-      has_clip_node_(false),
-      subtree_has_copy_request_(false),
+      bitflags_(0u),
       subtree_property_changed_(false) {}
 
 Layer::~Layer() {
@@ -265,7 +258,7 @@
   DCHECK(IsPropertyChangeAllowed());
   child->RemoveFromParent();
   AddDrawableDescendants(child->NumDescendantsThatDrawContent() +
-                         (child->DrawsContent() ? 1 : 0));
+                         (child->draws_content() ? 1 : 0));
   child->SetParent(this);
   child->SetSubtreePropertyChanged();
 
@@ -301,13 +294,36 @@
 
     child->SetParent(nullptr);
     AddDrawableDescendants(-child->NumDescendantsThatDrawContent() -
-                           (child->DrawsContent() ? 1 : 0));
+                           (child->draws_content() ? 1 : 0));
     inputs.children.erase(iter);
     SetNeedsFullTreeSync();
     return;
   }
 }
 
+bool Layer::GetBitFlag(uint8_t mask) const {
+  return bitflags_.Read(*this) & mask;
+}
+
+bool Layer::SetBitFlag(bool new_value,
+                       uint8_t mask,
+                       bool invalidate,
+                       bool needs_push) {
+  if (GetBitFlag(mask) == new_value)
+    return false;
+  if (new_value)
+    bitflags_.Write(*this) |= mask;
+  else
+    bitflags_.Write(*this) &= ~mask;
+  if (invalidate) {
+    SetPropertyTreesNeedRebuild();
+    SetNeedsCommit();
+  }
+  if (needs_push)
+    SetNeedsPushProperties();
+  return true;
+}
+
 void Layer::ReorderChildren(LayerList* new_children_order) {
   auto& inputs = inputs_.Write(*this);
 #if DCHECK_IS_ON()
@@ -425,7 +441,7 @@
     for (auto* child : children_to_remove) {
       child->SetParent(nullptr);
       AddDrawableDescendants(-child->NumDescendantsThatDrawContent() -
-                             (child->DrawsContent() ? 1 : 0));
+                             (child->draws_content() ? 1 : 0));
     }
   }
 
@@ -447,7 +463,7 @@
     if (child->parent() != this) {
       child->RemoveFromParent();
       AddDrawableDescendants(child->NumDescendantsThatDrawContent() +
-                             (child->DrawsContent() ? 1 : 0));
+                             (child->draws_content() ? 1 : 0));
       child->SetParent(this);
       child->SetSubtreePropertyChanged();
     }
@@ -488,18 +504,6 @@
     layer_tree_host()->SetHasCopyRequest(true);
 }
 
-void Layer::SetSubtreeHasCopyRequest(bool subtree_has_copy_request) {
-  subtree_has_copy_request_ = subtree_has_copy_request;
-}
-
-bool Layer::SubtreeHasCopyRequest() const {
-  DCHECK(IsAttached());
-  // When the copy request is pushed to effect tree, we reset layer tree host's
-  // has_copy_request but do not clear subtree_has_copy_request on individual
-  // layers.
-  return layer_tree_host()->has_copy_request() && subtree_has_copy_request_;
-}
-
 void Layer::SetBackgroundColor(SkColor background_color) {
   DCHECK(IsPropertyChangeAllowed());
   auto& inputs = inputs_.Write(*this);
@@ -575,7 +579,7 @@
   inputs.clip_rect = clip_rect;
 
   // If the clip bounds have been cleared, the property trees needs a rebuild.
-  const bool force_rebuild = clip_rect.IsEmpty() || !has_clip_node_;
+  const bool force_rebuild = clip_rect.IsEmpty() || !has_clip_node();
 
   SetSubtreePropertyChanged();
   if (clip_tree_index() != ClipTree::kInvalidNodeId && !force_rebuild) {
@@ -875,7 +879,7 @@
 
   SetSubtreePropertyChanged();
 
-  if (has_transform_node_) {
+  if (has_transform_node()) {
     TransformNode* transform_node =
         layer_tree_host()->property_trees()->transform_tree.Node(
             transform_tree_index_);
@@ -916,7 +920,7 @@
 
   SetSubtreePropertyChanged();
   if (IsAttached()) {
-    if (has_transform_node_) {
+    if (has_transform_node()) {
       TransformNode* transform_node =
           layer_tree_host()->property_trees()->transform_tree.Node(
               transform_tree_index_);
@@ -954,7 +958,7 @@
 
   SetSubtreePropertyChanged();
 
-  if (has_transform_node_) {
+  if (has_transform_node()) {
     TransformNode* transform_node =
         layer_tree_host()->property_trees()->transform_tree.Node(
             transform_tree_index_);
@@ -1158,15 +1162,6 @@
   SetNeedsCommit();
 }
 
-void Layer::SetCacheRenderSurface(bool cache) {
-  DCHECK(IsPropertyChangeAllowed());
-  if (cache_render_surface_ == cache)
-    return;
-  cache_render_surface_ = cache;
-  SetPropertyTreesNeedRebuild();
-  SetNeedsCommit();
-}
-
 RenderSurfaceReason Layer::GetRenderSurfaceReason() const {
   if (!IsAttached())
     return RenderSurfaceReason::kNone;
@@ -1185,21 +1180,11 @@
   return effect_node->render_surface_reason;
 }
 
-void Layer::SetForceRenderSurfaceForTesting(bool force) {
-  DCHECK(IsPropertyChangeAllowed());
-  if (force_render_surface_for_testing_ == force)
-    return;
-  force_render_surface_for_testing_ = force;
-  SetPropertyTreesNeedRebuild();
-  SetNeedsCommit();
-}
-
 void Layer::SetTransformTreeIndex(int index) {
   DCHECK(IsPropertyChangeAllowed());
   if (transform_tree_index_ == index)
     return;
-  if (index == TransformTree::kInvalidNodeId)
-    has_transform_node_ = false;
+  SetHasTransformNode(index != TransformTree::kInvalidNodeId);
   transform_tree_index_ = index;
   SetNeedsPushProperties();
 }
@@ -1365,21 +1350,13 @@
       effect_tree_index(), scroll_tree_index(), transform_tree_index());
 }
 
-void Layer::SetShouldCheckBackfaceVisibility(
-    bool should_check_backface_visibility) {
-  if (should_check_backface_visibility_ == should_check_backface_visibility)
-    return;
-  should_check_backface_visibility_ = should_check_backface_visibility;
-  SetNeedsPushProperties();
-}
-
 void Layer::SetIsDrawable(bool is_drawable) {
   DCHECK(IsPropertyChangeAllowed());
   if (inputs_.Read(*this).is_drawable == is_drawable)
     return;
 
   inputs_.Write(*this).is_drawable = is_drawable;
-  UpdateDrawsContent(HasDrawableContent());
+  SetDrawsContent(HasDrawableContent());
 }
 
 void Layer::SetHideLayerAndSubtree(bool hide) {
@@ -1401,7 +1378,7 @@
   SetNeedsPushProperties();
   update_rect_.Write(*this).Union(dirty_rect);
 
-  if (DrawsContent() && IsAttached() && !ignore_set_needs_commit_)
+  if (draws_content() && IsAttached() && !ignore_set_needs_commit_)
     layer_tree_host()->SetNeedsUpdateLayers();
 }
 
@@ -1423,7 +1400,7 @@
   // deprecated. http://crbug.com/709137
   const auto& inputs = inputs_.Read(*this);
   layer->SetElementId(inputs.element_id);
-  layer->SetHasTransformNode(has_transform_node_);
+  layer->SetHasTransformNode(has_transform_node());
   layer->SetBackgroundColor(inputs.background_color);
   layer->SetSafeOpaqueBackgroundColor(
       SafeOpaqueBackgroundColor(commit_state.background_color));
@@ -1433,17 +1410,17 @@
   layer->SetClipTreeIndex(clip_tree_index(property_trees));
   layer->SetScrollTreeIndex(scroll_tree_index(property_trees));
   layer->SetOffsetToTransformParent(offset_to_transform_parent_);
-  layer->SetDrawsContent(DrawsContent());
+  layer->SetDrawsContent(draws_content());
   layer->SetHitTestable(HitTestable());
   // subtree_property_changed_ is propagated to all descendants while building
   // property trees. So, it is enough to check it only for the current layer.
   if (subtree_property_changed_.Read(*this))
     layer->NoteLayerPropertyChanged();
-  layer->set_may_contain_video(may_contain_video_);
+  layer->set_may_contain_video(may_contain_video());
   layer->SetTouchActionRegion(inputs.touch_action_region);
   layer->SetContentsOpaque(inputs.contents_opaque);
   layer->SetContentsOpaqueForText(inputs.contents_opaque_for_text);
-  layer->SetShouldCheckBackfaceVisibility(should_check_backface_visibility_);
+  layer->SetShouldCheckBackfaceVisibility(should_check_backface_visibility());
 
   layer->UpdateScrollable();
 
@@ -1509,26 +1486,16 @@
   return LayerImpl::Create(tree_impl, id());
 }
 
-bool Layer::DrawsContent() const {
-  return draws_content_;
-}
-
 bool Layer::HasDrawableContent() const {
   return inputs_.Read(*this).is_drawable;
 }
 
-void Layer::UpdateDrawsContent(bool has_drawable_content) {
-  bool draws_content = has_drawable_content;
-  DCHECK(inputs_.Read(*this).is_drawable || !has_drawable_content);
-  if (draws_content == draws_content_)
+void Layer::SetDrawsContent(bool value) {
+  DCHECK(inputs_.Read(*this).is_drawable || !value);
+  if (!SetBitFlag(value, kDrawsContentFlagMask, /*invalidate=*/true))
     return;
-
   if (parent())
-    mutable_parent()->AddDrawableDescendants(draws_content ? 1 : -1);
-
-  draws_content_ = draws_content;
-  SetPropertyTreesNeedRebuild();
-  SetNeedsCommit();
+    mutable_parent()->AddDrawableDescendants(value ? 1 : -1);
 }
 
 int Layer::NumDescendantsThatDrawContent() const {
@@ -1547,13 +1514,6 @@
   SetNeedsPushProperties();
 }
 
-void Layer::SetMayContainVideo(bool yes) {
-  if (may_contain_video_ == yes)
-    return;
-  may_contain_video_ = yes;
-  SetNeedsPushProperties();
-}
-
 bool Layer::IsOwnerThread() const {
   return !IsAttached() || layer_tree_host_->IsOwnerThread();
 }
diff --git a/cc/layers/layer.h b/cc/layers/layer.h
index dbbbd6fc..4bad33b 100644
--- a/cc/layers/layer.h
+++ b/cc/layers/layer.h
@@ -546,8 +546,13 @@
   // used when paying the cost of creating an intermediate texture is worth it,
   // even when the layer's subtree may be occluded, or not visible in the final
   // output.
-  void SetCacheRenderSurface(bool cache_render_surface);
-  bool cache_render_surface() const { return cache_render_surface_; }
+  void SetCacheRenderSurface(bool value) {
+    DCHECK(IsPropertyChangeAllowed());
+    SetBitFlag(value, kCacheRenderSurfaceFlagMask, /*invalidate=*/true);
+  }
+  bool cache_render_surface() const {
+    return GetBitFlag(kCacheRenderSurfaceFlagMask);
+  }
 
   // If the layer induces a render surface, this returns the cause for the
   // render surface. If the layer does not induce a render surface, this returns
@@ -558,9 +563,13 @@
   // intermediate texture, called a RenderSurface. This mimics the need
   // for a RenderSurface that is caused by compositing effects such as masks
   // without needing to set up such effects.
-  void SetForceRenderSurfaceForTesting(bool force_render_surface);
+  void SetForceRenderSurfaceForTesting(bool value) {
+    DCHECK(IsPropertyChangeAllowed());
+    SetBitFlag(value, kForceRenderSurfaceForTestingFlagMask,
+               /*invalidate=*/true);
+  }
   bool force_render_surface_for_testing() const {
-    return force_render_surface_for_testing_;
+    return GetBitFlag(kForceRenderSurfaceForTestingFlagMask);
   }
 
   // When true the layer may contribute to the compositor's output. When false,
@@ -573,7 +582,8 @@
   // Will be false if SetIsDrawable(false) is called. But will also be false if
   // the layer itself has no content to contribute, even though the layer was
   // given SetIsDrawable(true).
-  bool DrawsContent() const;
+  bool draws_content() const { return GetBitFlag(kDrawsContentFlagMask); }
+  void SetDrawsContent(bool value);
 
   // Returns the number of layers in this layers subtree (excluding itself) for
   // which DrawsContent() is true.
@@ -608,18 +618,29 @@
 
   // While all layers have an index into the transform tree, this value
   // indicates whether the transform tree node was created for this layer.
-  void SetHasTransformNode(bool val) { has_transform_node_ = val; }
-  bool has_transform_node() const { return has_transform_node_; }
+  void SetHasTransformNode(bool value) {
+    SetBitFlag(value, kHasTransformNodeFlagMask);
+  }
+  bool has_transform_node() const {
+    return GetBitFlag(kHasTransformNodeFlagMask);
+  }
 
   // This value indicates whether a clip node was created for |this| layer.
-  void SetHasClipNode(bool val) { has_clip_node_ = val; }
+  void SetHasClipNode(bool val) { SetBitFlag(val, kHasClipNodeFlagMask); }
+  bool has_clip_node() const { return GetBitFlag(kHasClipNodeFlagMask); }
 
   // Sets that the content shown in this layer may be a video. This may be used
   // by the system compositor to distinguish between animations updating the
   // screen and video, which the user would be watching. This allows
   // optimizations like turning off the display when video is not playing,
   // without interfering with video playback.
-  void SetMayContainVideo(bool yes);
+  void SetMayContainVideo(bool value) {
+    SetBitFlag(value, kMayContainVideoFlagMask, /*invalidate=*/false,
+               /*needs_push=*/true);
+  }
+  bool may_contain_video() const {
+    return GetBitFlag(kMayContainVideoFlagMask);
+  }
 
   // Stable identifier for clients. See comment in cc/trees/element_id.h.
   void SetElementId(ElementId id);
@@ -767,10 +788,13 @@
   // For layer tree mode only.
   // Internal to property tree construction. Set to true if this layer or any
   // layer below it in the tree has a CopyOutputRequest pending commit.
-  void SetSubtreeHasCopyRequest(bool subtree_has_copy_request);
-  // Internal to property tree construction. Returns true if this layer or any
-  // layer below it in the tree has a CopyOutputRequest pending commit.
-  bool SubtreeHasCopyRequest() const;
+  // This flag is valid only when LayerTreeHost::has_copy_request() is true
+  void SetSubtreeHasCopyRequest(bool value) {
+    SetBitFlag(value, kSubtreeHasCopyRequestFlagMask);
+  }
+  bool subtree_has_copy_request() const {
+    return GetBitFlag(kSubtreeHasCopyRequestFlagMask);
+  }
   // Internal to property tree construction. Removes all CopyOutputRequests from
   // this layer, moving them into |requests|.
   void TakeCopyRequests(
@@ -779,9 +803,12 @@
   // Internal to property tree construction. Set if the layer should not be
   // shown when its back face is visible to the user. This is a derived value
   // from SetDoubleSided().
-  void SetShouldCheckBackfaceVisibility(bool should_check_backface_visibility);
+  void SetShouldCheckBackfaceVisibility(bool value) {
+    SetBitFlag(value, kShouldCheckBackfaceVisibilityFlagMask,
+               /*invalidate=*/false, /*needs_push=*/true);
+  }
   bool should_check_backface_visibility() const {
-    return should_check_backface_visibility_;
+    return GetBitFlag(kShouldCheckBackfaceVisibilityFlagMask);
   }
 
   // For debugging, containing information about the associated DOM, etc.
@@ -818,9 +845,6 @@
   // (the full tree is synced over).
   void SetNeedsFullTreeSync();
 
-  // Will recalculate whether the layer draws content and set draws_content_
-  // appropriately.
-  void UpdateDrawsContent(bool has_drawable_content);
   // May be overridden by subclasses if they have optional content, to return
   // false if there is no content to be displayed. If they do have content, then
   // they should return the value from this base class method.
@@ -880,6 +904,19 @@
   // This should only be called from RemoveFromParent().
   void RemoveChild(Layer* child);
 
+  bool GetBitFlag(uint8_t mask) const;
+
+  // invalidate: if true and the flag's value changes, the host is marked as
+  //     needing a property tree update and commit.
+  // needs_push: if true and the flag's value changes, the layer is marked as
+  //     needing to push its properties to its corresponding LayerImpl, but
+  //     without marking the host as needing a property update or commit.
+  // return value: 'true' if the flag's value changes.
+  bool SetBitFlag(bool new_value,
+                  uint8_t mask,
+                  bool invalidate = false,
+                  bool needs_push = false);
+
   // When we detach or attach layer to new LayerTreeHost, all property trees'
   // indices becomes invalid.
   void InvalidatePropertyTreesIndices();
@@ -1040,16 +1077,18 @@
   // because it's used in base::AutoReset.
   bool ignore_set_needs_commit_;
 
-  bool draws_content_ : 1;
-  bool should_check_backface_visibility_ : 1;
-  // Force use of and cache render surface.
-  bool cache_render_surface_ : 1;
-  bool force_render_surface_for_testing_ : 1;
-  bool may_contain_video_ : 1;
-  bool has_transform_node_ : 1;
-  bool has_clip_node_ : 1;
-  // This value is valid only when LayerTreeHost::has_copy_request() is true
-  bool subtree_has_copy_request_ : 1;
+  enum : uint8_t {
+    kDrawsContentFlagMask = 1 << 0,
+    kShouldCheckBackfaceVisibilityFlagMask = 1 << 1,
+    kCacheRenderSurfaceFlagMask = 1 << 2,
+    kForceRenderSurfaceForTestingFlagMask = 1 << 3,
+    kMayContainVideoFlagMask = 1 << 4,
+    kHasTransformNodeFlagMask = 1 << 5,
+    kHasClipNodeFlagMask = 1 << 6,
+    kSubtreeHasCopyRequestFlagMask = 1 << 7
+  };
+  ProtectedSequenceReadable<uint8_t> bitflags_;
+
   ProtectedSequenceWritable<bool> subtree_property_changed_;
 
   std::unique_ptr<LayerDebugInfo> debug_info_;
diff --git a/cc/layers/layer_impl.cc b/cc/layers/layer_impl.cc
index ed6d47c..4f5b9f95 100644
--- a/cc/layers/layer_impl.cc
+++ b/cc/layers/layer_impl.cc
@@ -689,7 +689,7 @@
 
   state->SetInteger("sorting_context_id", GetSortingContextId());
 
-  state->SetInteger("draws_content", DrawsContent());
+  state->SetInteger("draws_content", draws_content());
   state->SetInteger("gpu_memory_usage",
                     base::saturated_cast<int>(GPUMemoryUsageInBytes()));
 
diff --git a/cc/layers/layer_impl.h b/cc/layers/layer_impl.h
index c737fa7..0602fcc46 100644
--- a/cc/layers/layer_impl.h
+++ b/cc/layers/layer_impl.h
@@ -157,7 +157,7 @@
 
   // Returns true if this layer has content to draw.
   void SetDrawsContent(bool draws_content);
-  bool DrawsContent() const { return draws_content_; }
+  bool draws_content() const { return draws_content_; }
 
   // Make the layer hit testable.
   void SetHitTestable(bool should_hit_test);
diff --git a/cc/layers/layer_unittest.cc b/cc/layers/layer_unittest.cc
index 5ae59581..44d4ed3c 100644
--- a/cc/layers/layer_unittest.cc
+++ b/cc/layers/layer_unittest.cc
@@ -1398,7 +1398,7 @@
 
   void SetFakeDrawsContent(bool fake_draws_content) {
     fake_draws_content_ = fake_draws_content;
-    UpdateDrawsContent(HasDrawableContent());
+    SetDrawsContent(HasDrawableContent());
   }
 
  private:
@@ -1438,7 +1438,7 @@
   root_layer->SetIsDrawable(true);
   root_layer->SetHitTestable(true);
   CommitAndPushProperties(root_layer.get(), impl_layer.get());
-  EXPECT_TRUE(impl_layer->DrawsContent());
+  EXPECT_TRUE(impl_layer->draws_content());
   EXPECT_TRUE(impl_layer->HitTestable());
 
   // A layer that does not draw content and does not hit test without drawing
@@ -1446,14 +1446,14 @@
   root_layer->SetIsDrawable(false);
   root_layer->SetHitTestable(false);
   CommitAndPushProperties(root_layer.get(), impl_layer.get());
-  EXPECT_FALSE(impl_layer->DrawsContent());
+  EXPECT_FALSE(impl_layer->draws_content());
   EXPECT_FALSE(impl_layer->HitTestable());
 
   // |SetHitTestableWithoutDrawsContent| should cause a layer to become hit
   // testable even though it does not draw content.
   root_layer->SetHitTestable(true);
   CommitAndPushProperties(root_layer.get(), impl_layer.get());
-  EXPECT_FALSE(impl_layer->DrawsContent());
+  EXPECT_FALSE(impl_layer->draws_content());
   EXPECT_TRUE(impl_layer->HitTestable());
 }
 
diff --git a/cc/layers/nine_patch_layer_unittest.cc b/cc/layers/nine_patch_layer_unittest.cc
index 8707c98..08c5067 100644
--- a/cc/layers/nine_patch_layer_unittest.cc
+++ b/cc/layers/nine_patch_layer_unittest.cc
@@ -54,7 +54,7 @@
 
   test_layer->Update();
 
-  EXPECT_FALSE(test_layer->DrawsContent());
+  EXPECT_FALSE(test_layer->draws_content());
 
   bool is_opaque = false;
   std::unique_ptr<ScopedUIResource> resource =
@@ -67,7 +67,7 @@
   test_layer->SetFillCenter(fill_center);
   test_layer->Update();
 
-  EXPECT_TRUE(test_layer->DrawsContent());
+  EXPECT_TRUE(test_layer->draws_content());
 }
 
 }  // namespace
diff --git a/cc/layers/picture_layer.cc b/cc/layers/picture_layer.cc
index 2e52d1f..5911367 100644
--- a/cc/layers/picture_layer.cc
+++ b/cc/layers/picture_layer.cc
@@ -188,7 +188,7 @@
 }
 
 sk_sp<const SkPicture> PictureLayer::GetPicture() const {
-  if (!DrawsContent() || bounds().IsEmpty())
+  if (!draws_content() || bounds().IsEmpty())
     return nullptr;
 
   scoped_refptr<DisplayItemList> display_list =
@@ -204,7 +204,7 @@
 void PictureLayer::ClearClient() {
   DCHECK(IsMutationAllowed());
   picture_layer_inputs_.client = nullptr;
-  UpdateDrawsContent(HasDrawableContent());
+  SetDrawsContent(HasDrawableContent());
 }
 
 void PictureLayer::SetNearestNeighbor(bool nearest_neighbor) {
@@ -235,7 +235,7 @@
 
 void PictureLayer::CaptureContent(const gfx::Rect& rect,
                                   std::vector<NodeInfo>* content) const {
-  if (!DrawsContent())
+  if (!draws_content())
     return;
 
   const DisplayItemList* display_item_list = GetDisplayItemList();
diff --git a/cc/layers/picture_layer_impl.cc b/cc/layers/picture_layer_impl.cc
index 9f8bfda..9003c9e8e 100644
--- a/cc/layers/picture_layer_impl.cc
+++ b/cc/layers/picture_layer_impl.cc
@@ -1759,7 +1759,7 @@
     return false;
   if (raster_source_->IsSolidColor())
     return false;
-  if (!DrawsContent())
+  if (!draws_content())
     return false;
   if (!raster_source_->HasRecordings())
     return false;
@@ -1913,7 +1913,7 @@
   state->SetBoolean("can_have_tilings", CanHaveTilings());
   state->SetBoolean("raster_source_solid_color",
                     raster_source_->IsSolidColor());
-  state->SetBoolean("draws_content", DrawsContent());
+  state->SetBoolean("draws_content", draws_content());
   state->SetBoolean("raster_source_has_recordings",
                     raster_source_->HasRecordings());
   state->SetDouble("max_contents_scale", MaximumTilingContentsScale());
diff --git a/cc/layers/picture_layer_impl_unittest.cc b/cc/layers/picture_layer_impl_unittest.cc
index b0ac24a..ecb7c76b 100644
--- a/cc/layers/picture_layer_impl_unittest.cc
+++ b/cc/layers/picture_layer_impl_unittest.cc
@@ -2660,14 +2660,14 @@
   SetupDefaultTrees(gfx::Size(10, 10));
   SetContentsScaleOnBothLayers(1.f, 1.f, 1.f);
   pending_layer()->PushPropertiesTo(active_layer());
-  EXPECT_TRUE(pending_layer()->DrawsContent());
+  EXPECT_TRUE(pending_layer()->draws_content());
   EXPECT_TRUE(pending_layer()->CanHaveTilings());
   EXPECT_GE(pending_layer()->num_tilings(), 0u);
   EXPECT_GE(active_layer()->num_tilings(), 0u);
 
   // Set content to false, which should make CanHaveTilings return false.
   pending_layer()->SetDrawsContent(false);
-  EXPECT_FALSE(pending_layer()->DrawsContent());
+  EXPECT_FALSE(pending_layer()->draws_content());
   EXPECT_FALSE(pending_layer()->CanHaveTilings());
 
   // No tilings should be pushed to active layer.
@@ -4715,7 +4715,7 @@
       host_impl()->pending_tree()->LayerById(active_occluding_layer->id());
   ASSERT_EQ(active_occluding_layer->bounds(),
             pending_occluding_layer->bounds());
-  ASSERT_TRUE(pending_occluding_layer->DrawsContent());
+  ASSERT_TRUE(pending_occluding_layer->draws_content());
   ASSERT_TRUE(pending_occluding_layer->contents_opaque());
   pending_occluding_layer->SetOffsetToTransformParent(
       pending_occluding_layer_position);
diff --git a/cc/layers/render_surface_impl.cc b/cc/layers/render_surface_impl.cc
index b3b5794..9110c586 100644
--- a/cc/layers/render_surface_impl.cc
+++ b/cc/layers/render_surface_impl.cc
@@ -309,7 +309,7 @@
 
 void RenderSurfaceImpl::AccumulateContentRectFromContributingLayer(
     LayerImpl* layer) {
-  DCHECK(layer->DrawsContent());
+  DCHECK(layer->draws_content());
   DCHECK_EQ(this, layer->render_target());
 
   // Root render surface doesn't accumulate content rect, it always uses
@@ -455,7 +455,7 @@
       OwningEffectNode()->surface_contents_scale;
   // Resourceless mode does not support masks.
   if (draw_mode != DRAW_MODE_RESOURCELESS_SOFTWARE && mask_layer &&
-      mask_layer->DrawsContent() && !mask_layer->bounds().IsEmpty()) {
+      mask_layer->draws_content() && !mask_layer->bounds().IsEmpty()) {
     // The software renderer applies mask layer and blending in the wrong
     // order but kDstIn doesn't commute with masking. It is okay to not
     // support this configuration because kDstIn was introduced to replace
diff --git a/cc/layers/surface_layer.cc b/cc/layers/surface_layer.cc
index 808c577..994d888 100644
--- a/cc/layers/surface_layer.cc
+++ b/cc/layers/surface_layer.cc
@@ -66,7 +66,7 @@
   } else if (!deadline_policy.use_existing_deadline()) {
     deadline_in_frames_ = deadline_policy.deadline_in_frames();
   }
-  UpdateDrawsContent(HasDrawableContent());
+  SetDrawsContent(HasDrawableContent());
   SetNeedsCommit();
 }
 
diff --git a/cc/layers/texture_layer.cc b/cc/layers/texture_layer.cc
index 938e772..0d21b62 100644
--- a/cc/layers/texture_layer.cc
+++ b/cc/layers/texture_layer.cc
@@ -35,7 +35,7 @@
   DCHECK(IsMutationAllowed());
   client_ = nullptr;
   ClearTexture();
-  UpdateDrawsContent(HasDrawableContent());
+  SetDrawsContent(HasDrawableContent());
 }
 
 void TextureLayer::ClearTexture() {
@@ -121,7 +121,7 @@
   else
     SetNeedsPushProperties();
 
-  UpdateDrawsContent(HasDrawableContent());
+  SetDrawsContent(HasDrawableContent());
 }
 
 void TextureLayer::SetTransferableResource(
diff --git a/cc/layers/ui_resource_layer.cc b/cc/layers/ui_resource_layer.cc
index 1661158..692ac36 100644
--- a/cc/layers/ui_resource_layer.cc
+++ b/cc/layers/ui_resource_layer.cc
@@ -72,7 +72,7 @@
   // Recreate the resource held against the new LTH.
   RecreateUIResourceIdFromBitmap();
 
-  UpdateDrawsContent(HasDrawableContent());
+  SetDrawsContent(HasDrawableContent());
 }
 
 void UIResourceLayer::SetBitmap(const SkBitmap& bitmap) {
@@ -126,7 +126,7 @@
 
 void UIResourceLayer::SetUIResourceIdInternal(UIResourceId resource_id) {
   resource_id_ = resource_id;
-  UpdateDrawsContent(HasDrawableContent());
+  SetDrawsContent(HasDrawableContent());
   SetNeedsCommit();
 }
 
diff --git a/cc/layers/ui_resource_layer_unittest.cc b/cc/layers/ui_resource_layer_unittest.cc
index 8345c6f3b..88569c1 100644
--- a/cc/layers/ui_resource_layer_unittest.cc
+++ b/cc/layers/ui_resource_layer_unittest.cc
@@ -60,7 +60,7 @@
 
   test_layer->Update();
 
-  EXPECT_FALSE(test_layer->DrawsContent());
+  EXPECT_FALSE(test_layer->draws_content());
 
   SkBitmap bitmap;
   bitmap.allocN32Pixels(10, 10);
@@ -69,7 +69,7 @@
   test_layer->SetBitmap(bitmap);
   test_layer->Update();
 
-  EXPECT_TRUE(test_layer->DrawsContent());
+  EXPECT_TRUE(test_layer->draws_content());
 }
 
 TEST_F(UIResourceLayerTest, SetUIResourceId) {
@@ -83,7 +83,7 @@
 
   test_layer->Update();
 
-  EXPECT_FALSE(test_layer->DrawsContent());
+  EXPECT_FALSE(test_layer->draws_content());
 
   bool is_opaque = false;
   std::unique_ptr<ScopedUIResource> resource =
@@ -92,7 +92,7 @@
   test_layer->SetUIResourceId(resource->id());
   test_layer->Update();
 
-  EXPECT_TRUE(test_layer->DrawsContent());
+  EXPECT_TRUE(test_layer->draws_content());
 
   // ID is preserved even when you set ID first and attach it to the tree.
   layer_tree_host()->SetRootLayer(nullptr);
@@ -102,7 +102,7 @@
   test_layer->SetUIResourceId(shared_resource->id());
   layer_tree_host()->SetRootLayer(test_layer);
   EXPECT_EQ(shared_resource->id(), test_layer->resource_id());
-  EXPECT_TRUE(test_layer->DrawsContent());
+  EXPECT_TRUE(test_layer->draws_content());
 }
 
 TEST_F(UIResourceLayerTest, BitmapClearedOnSetUIResourceId) {
@@ -159,7 +159,7 @@
   layer1->SetBitmap(bitmap);
   bitmap.reset();
   layer1->Update();
-  EXPECT_TRUE(layer1->DrawsContent());
+  EXPECT_TRUE(layer1->draws_content());
   const auto resource_id = layer1->resource_id();
 
   // Second layer, same LTH. Resource is shared (has same ID).
@@ -167,7 +167,7 @@
   layer_tree_host()->SetRootLayer(layer2);
   layer2->SetBitmap(bitmap_copy);
   layer2->Update();
-  EXPECT_TRUE(layer2->DrawsContent());
+  EXPECT_TRUE(layer2->draws_content());
   EXPECT_EQ(resource_id, layer2->resource_id());
 
   // Change bitmap, different resource id.
@@ -184,7 +184,7 @@
   LayerTreeImplTestBase impl;
   impl.host()->SetRootLayer(layer1);
   layer1->Update();
-  EXPECT_TRUE(layer1->DrawsContent());
+  EXPECT_TRUE(layer1->draws_content());
   const auto other_lth_resource_id = layer1->resource_id();
   layer1->SetBitmap(other_bitmap);
   EXPECT_NE(other_lth_resource_id, layer1->resource_id());
diff --git a/cc/metrics/lcd_text_metrics_reporter.cc b/cc/metrics/lcd_text_metrics_reporter.cc
index 3949639..b3183f0 100644
--- a/cc/metrics/lcd_text_metrics_reporter.cc
+++ b/cc/metrics/lcd_text_metrics_reporter.cc
@@ -74,7 +74,7 @@
 
   for (const auto* layer :
        layer_tree_host_impl_->active_tree()->picture_layers()) {
-    if (!layer->DrawsContent() || !layer->GetRasterSource())
+    if (!layer->draws_content() || !layer->GetRasterSource())
       continue;
     const scoped_refptr<DisplayItemList>& display_item_list =
         layer->GetRasterSource()->GetDisplayItemList();
diff --git a/cc/trees/debug_rect_history.cc b/cc/trees/debug_rect_history.cc
index 107602b..67cc341f 100644
--- a/cc/trees/debug_rect_history.cc
+++ b/cc/trees/debug_rect_history.cc
@@ -90,7 +90,7 @@
   // list.
   for (auto* layer : *tree_impl) {
     Region invalidation_region = layer->GetInvalidationRegionForDebugging();
-    if (invalidation_region.IsEmpty() || !layer->DrawsContent())
+    if (invalidation_region.IsEmpty() || !layer->draws_content())
       continue;
 
     for (gfx::Rect rect : invalidation_region) {
diff --git a/cc/trees/draw_property_utils.cc b/cc/trees/draw_property_utils.cc
index 1702c698..2b1258c 100644
--- a/cc/trees/draw_property_utils.cc
+++ b/cc/trees/draw_property_utils.cc
@@ -480,7 +480,7 @@
   if (!layer_is_drawn)
     return false;
 
-  if (!layer->DrawsContent() || layer->bounds().IsEmpty())
+  if (!layer->draws_content() || layer->bounds().IsEmpty())
     return false;
 
   // The layer should not be drawn if (1) it is not double-sided and (2) the
diff --git a/cc/trees/layer_tree_host_impl.cc b/cc/trees/layer_tree_host_impl.cc
index 2c6e923..eb847be 100644
--- a/cc/trees/layer_tree_host_impl.cc
+++ b/cc/trees/layer_tree_host_impl.cc
@@ -3142,7 +3142,7 @@
     // into Layer::HitTestable, so we make sure we don't skip surface layers
     // that draws content but has pointer-events: none property.
     if (!(layer->HitTestable() ||
-          (layer->is_surface_layer() && layer->DrawsContent())))
+          (layer->is_surface_layer() && layer->draws_content())))
       continue;
 
     if (layer->is_surface_layer()) {
diff --git a/cc/trees/layer_tree_host_unittest.cc b/cc/trees/layer_tree_host_unittest.cc
index dc24171..95ccb4bf 100644
--- a/cc/trees/layer_tree_host_unittest.cc
+++ b/cc/trees/layer_tree_host_unittest.cc
@@ -879,7 +879,7 @@
   void VerifyBeforeValues(Layer* layer) {
     EXPECT_EQ(gfx::Size(10, 10).ToString(), layer->bounds().ToString());
     EXPECT_FALSE(layer->hide_layer_and_subtree());
-    EXPECT_FALSE(layer->DrawsContent());
+    EXPECT_FALSE(layer->draws_content());
   }
 
   void SetBeforeValues(Layer* layer) {
@@ -902,7 +902,7 @@
         EXPECT_EQ(tree.EffectiveOpacity(node), 0.f);
         break;
       case DRAWS_CONTENT:
-        EXPECT_TRUE(layer->DrawsContent());
+        EXPECT_TRUE(layer->draws_content());
         break;
     }
   }
diff --git a/cc/trees/property_tree_builder.cc b/cc/trees/property_tree_builder.cc
index 78d01df..9a541c5 100644
--- a/cc/trees/property_tree_builder.cc
+++ b/cc/trees/property_tree_builder.cc
@@ -362,7 +362,7 @@
   // layers draw content for this subtree.
   bool at_least_two_layers_in_subtree_draw_content =
       num_descendants_that_draw_content > 0 &&
-      (layer->DrawsContent() || num_descendants_that_draw_content > 1);
+      (layer->draws_content() || num_descendants_that_draw_content > 1);
 
   bool may_have_transparency =
       layer->EffectiveOpacity() != 1.f ||
@@ -494,7 +494,7 @@
       OpacityIsAnimating(mutator_host_, layer);
   node->is_currently_animating_filter = FilterIsAnimating(mutator_host_, layer);
   node->effect_changed = layer->subtree_property_changed();
-  node->subtree_has_copy_request = layer->SubtreeHasCopyRequest();
+  node->subtree_has_copy_request = layer->subtree_has_copy_request();
   node->render_surface_reason = render_surface_reason;
   node->closest_ancestor_with_cached_render_surface_id =
       layer->cache_render_surface()
@@ -720,8 +720,7 @@
   property_trees_.is_main_thread = true;
   property_trees_.is_active = false;
 
-  if (layer_tree_host_->has_copy_request())
-    UpdateSubtreeHasCopyRequestRecursive(root_layer_);
+  UpdateSubtreeHasCopyRequestRecursive(root_layer_);
 
   if (!property_trees_.needs_rebuild) {
     clip_tree_.SetViewportClip(
diff --git a/chrome/VERSION b/chrome/VERSION
index 29e909f..0be47e9 100644
--- a/chrome/VERSION
+++ b/chrome/VERSION
@@ -1,4 +1,4 @@
 MAJOR=100
 MINOR=0
-BUILD=4856
+BUILD=4857
 PATCH=0
diff --git a/chrome/android/features/autofill_assistant/BUILD.gn b/chrome/android/features/autofill_assistant/BUILD.gn
index d173293..9ee5e6c6 100644
--- a/chrome/android/features/autofill_assistant/BUILD.gn
+++ b/chrome/android/features/autofill_assistant/BUILD.gn
@@ -227,6 +227,7 @@
 
 generate_jni("jni_headers_public") {
   sources = [
+    "public/java/src/org/chromium/chrome/browser/autofill_assistant/AssistantAutofillCreditCard.java",
     "public/java/src/org/chromium/chrome/browser/autofill_assistant/AssistantAutofillProfile.java",
     "public/java/src/org/chromium/chrome/browser/autofill_assistant/AssistantDependencies.java",
     "public/java/src/org/chromium/chrome/browser/autofill_assistant/AssistantFeatures.java",
diff --git a/chrome/android/features/autofill_assistant/java/src/org/chromium/chrome/browser/autofill_assistant/user_data/AssistantCollectUserDataBinder.java b/chrome/android/features/autofill_assistant/java/src/org/chromium/chrome/browser/autofill_assistant/user_data/AssistantCollectUserDataBinder.java
index a4c11c8..c1f63c6ca 100644
--- a/chrome/android/features/autofill_assistant/java/src/org/chromium/chrome/browser/autofill_assistant/user_data/AssistantCollectUserDataBinder.java
+++ b/chrome/android/features/autofill_assistant/java/src/org/chromium/chrome/browser/autofill_assistant/user_data/AssistantCollectUserDataBinder.java
@@ -535,6 +535,7 @@
             view.mContactDetailsSection.setEditor(null);
             view.mPaymentMethodSection.setEditor(null);
             view.mShippingAddressSection.setEditor(null);
+            view.mPaymentMethodSection.setWebContents(null);
             return true;
         }
 
@@ -576,6 +577,7 @@
 
         view.mShippingAddressSection.setEditor(addressEditor);
         view.mPaymentMethodSection.setEditor(cardEditor);
+        view.mPaymentMethodSection.setWebContents(webContents);
         return true;
     }
 
diff --git a/chrome/android/features/autofill_assistant/java/src/org/chromium/chrome/browser/autofill_assistant/user_data/AssistantCollectUserDataModel.java b/chrome/android/features/autofill_assistant/java/src/org/chromium/chrome/browser/autofill_assistant/user_data/AssistantCollectUserDataModel.java
index c77e0df..546348b 100644
--- a/chrome/android/features/autofill_assistant/java/src/org/chromium/chrome/browser/autofill_assistant/user_data/AssistantCollectUserDataModel.java
+++ b/chrome/android/features/autofill_assistant/java/src/org/chromium/chrome/browser/autofill_assistant/user_data/AssistantCollectUserDataModel.java
@@ -4,7 +4,6 @@
 
 package org.chromium.chrome.browser.autofill_assistant.user_data;
 
-import android.content.Context;
 import android.view.View;
 
 import androidx.annotation.Nullable;
@@ -12,19 +11,16 @@
 
 import org.chromium.base.annotations.CalledByNative;
 import org.chromium.base.annotations.JNINamespace;
-import org.chromium.chrome.browser.autofill.PersonalDataManager;
+import org.chromium.chrome.browser.autofill_assistant.AssistantAutofillCreditCard;
 import org.chromium.chrome.browser.autofill_assistant.AssistantAutofillProfile;
 import org.chromium.chrome.browser.autofill_assistant.AssistantInfoPopup;
+import org.chromium.chrome.browser.autofill_assistant.AssistantPaymentInstrument;
 import org.chromium.chrome.browser.autofill_assistant.user_data.additional_sections.AssistantAdditionalSectionFactory;
 import org.chromium.chrome.browser.autofill_assistant.user_data.additional_sections.AssistantPopupListSection;
 import org.chromium.chrome.browser.autofill_assistant.user_data.additional_sections.AssistantStaticTextSection;
 import org.chromium.chrome.browser.autofill_assistant.user_data.additional_sections.AssistantTextInputSection;
 import org.chromium.chrome.browser.autofill_assistant.user_data.additional_sections.AssistantTextInputSection.TextInputFactory;
 import org.chromium.chrome.browser.autofill_assistant.user_data.additional_sections.AssistantTextInputType;
-import org.chromium.chrome.browser.payments.AutofillAddress;
-import org.chromium.chrome.browser.payments.AutofillAddress.CompletenessCheckType;
-import org.chromium.chrome.browser.payments.AutofillPaymentInstrument;
-import org.chromium.components.payments.MethodStrings;
 import org.chromium.content_public.browser.WebContents;
 import org.chromium.ui.modelutil.PropertyModel;
 
@@ -50,7 +46,7 @@
      * Model wrapper for a data item to contain errors.
      *
      * @param <T> The type that an instance of this class is created for, such as
-     *            |AssistantAutofillProfile|, |AutofillPaymentMethod|, etc.
+     *            {@link AssistantAutofillProfile}, {@link AssistantPaymentInstrument}, etc.
      */
     public static class OptionModel<T> {
         public T mOption;
@@ -90,25 +86,25 @@
         }
     }
 
-    /** Model wrapper for an {@code AutofillAddress}. */
-    public static class AddressModel extends OptionModel<AutofillAddress> {
-        public AddressModel(AutofillAddress address, List<String> errors) {
+    /** Model wrapper for an {@code AssistantAutofillProfile}. */
+    public static class AddressModel extends OptionModel<AssistantAutofillProfile> {
+        public AddressModel(AssistantAutofillProfile address, List<String> errors) {
             super(address, errors);
         }
 
-        public AddressModel(AutofillAddress address) {
+        public AddressModel(AssistantAutofillProfile address) {
             super(address);
         }
     }
 
-    /** Model wrapper for an {@code AutofillPaymentInstrument}. */
-    public static class PaymentInstrumentModel extends OptionModel<AutofillPaymentInstrument> {
+    /** Model wrapper for an {@code AssistantPaymentInstrument}. */
+    public static class PaymentInstrumentModel extends OptionModel<AssistantPaymentInstrument> {
         public PaymentInstrumentModel(
-                AutofillPaymentInstrument paymentInstrument, List<String> errors) {
+                AssistantPaymentInstrument paymentInstrument, List<String> errors) {
             super(paymentInstrument, errors);
         }
 
-        public PaymentInstrumentModel(AutofillPaymentInstrument paymentInstrument) {
+        public PaymentInstrumentModel(AssistantPaymentInstrument paymentInstrument) {
             super(paymentInstrument);
         }
     }
@@ -179,7 +175,7 @@
     public static final WritableBooleanPropertyKey REQUEST_LOGIN_CHOICE =
             new WritableBooleanPropertyKey();
 
-    public static final WritableObjectPropertyKey<List<AutofillAddress>>
+    public static final WritableObjectPropertyKey<List<AssistantAutofillProfile>>
             AVAILABLE_BILLING_ADDRESSES = new WritableObjectPropertyKey<>();
 
     public static final WritableObjectPropertyKey<List<ContactModel>> AVAILABLE_CONTACTS =
@@ -365,18 +361,18 @@
 
     @CalledByNative
     private void setSelectedShippingAddress(
-            @Nullable AutofillAddress shippingAddress, String[] errors) {
+            @Nullable AssistantAutofillProfile shippingAddress, String[] errors) {
         set(SELECTED_SHIPPING_ADDRESS,
                 shippingAddress == null ? null
                                         : new AddressModel(shippingAddress, Arrays.asList(errors)));
     }
 
     @CalledByNative
-    private void setSelectedPaymentInstrument(WebContents webContents,
-            @Nullable PersonalDataManager.CreditCard card,
-            @Nullable PersonalDataManager.AutofillProfile billingProfile, String[] errors) {
-        AutofillPaymentInstrument paymentInstrument =
-                createAutofillPaymentInstrument(webContents, card, billingProfile);
+    private void setSelectedPaymentInstrument(@Nullable AssistantAutofillCreditCard creditCard,
+            @Nullable AssistantAutofillProfile billingProfile, String[] errors) {
+        @Nullable
+        AssistantPaymentInstrument paymentInstrument =
+                createAssistantPaymentInstrument(creditCard, billingProfile);
         set(SELECTED_PAYMENT_INSTRUMENT,
                 paymentInstrument == null
                         ? null
@@ -505,39 +501,28 @@
 
     @CalledByNative
     private static void addShippingAddress(
-            List<AddressModel> addresses, AutofillAddress address, String[] errors) {
+            List<AddressModel> addresses, AssistantAutofillProfile address, String[] errors) {
         addresses.add(new AddressModel(address, Arrays.asList(errors)));
     }
 
-    @VisibleForTesting
-    @CalledByNative
-    @Nullable
-    public static AutofillAddress createAutofillAddress(
-            Context context, @Nullable PersonalDataManager.AutofillProfile profile) {
-        if (profile == null) {
-            return null;
-        }
-        return new AutofillAddress(context, profile, CompletenessCheckType.IGNORE_PHONE);
-    }
-
     @CalledByNative
     private void setAvailableShippingAddresses(List<AddressModel> addresses) {
         set(AVAILABLE_SHIPPING_ADDRESSES, addresses);
     }
 
     @CalledByNative
-    private static List<AutofillAddress> createBillingAddressList() {
+    private static List<AssistantAutofillProfile> createBillingAddressList() {
         return new ArrayList<>();
     }
 
     @CalledByNative
     private static void addBillingAddress(
-            List<AutofillAddress> addresses, AutofillAddress address) {
+            List<AssistantAutofillProfile> addresses, AssistantAutofillProfile address) {
         addresses.add(address);
     }
 
     @CalledByNative
-    private void setAvailableBillingAddresses(List<AutofillAddress> addresses) {
+    private void setAvailableBillingAddresses(List<AssistantAutofillProfile> addresses) {
         set(AVAILABLE_BILLING_ADDRESSES, addresses);
     }
 
@@ -548,31 +533,11 @@
 
     @CalledByNative
     private static void addAutofillPaymentInstrument(
-            List<PaymentInstrumentModel> paymentInstruments, WebContents webContents,
-            @Nullable PersonalDataManager.CreditCard card,
-            @Nullable PersonalDataManager.AutofillProfile billingProfile, String[] errors) {
-        AutofillPaymentInstrument paymentInstrument =
-                createAutofillPaymentInstrument(webContents, card, billingProfile);
-        if (paymentInstrument != null) {
-            paymentInstruments.add(
-                    new PaymentInstrumentModel(paymentInstrument, Arrays.asList(errors)));
-        }
-    }
-
-    // TODO(b/144005336): Call from native instead.
-    @VisibleForTesting
-    @Nullable
-    public static AutofillPaymentInstrument createAutofillPaymentInstrument(WebContents webContents,
-            @Nullable PersonalDataManager.CreditCard card,
-            @Nullable PersonalDataManager.AutofillProfile billingProfile) {
-        if (webContents == null) {
-            return null;
-        }
-        if (card == null) {
-            return null;
-        }
-        return new AutofillPaymentInstrument(
-                webContents, card, billingProfile, MethodStrings.BASIC_CARD);
+            List<PaymentInstrumentModel> paymentInstruments, AssistantAutofillCreditCard creditCard,
+            @Nullable AssistantAutofillProfile billingProfile, String[] errors) {
+        paymentInstruments.add(new PaymentInstrumentModel(
+                createAssistantPaymentInstrument(creditCard, billingProfile),
+                Arrays.asList(errors)));
     }
 
     @CalledByNative
@@ -580,6 +545,17 @@
         set(AVAILABLE_PAYMENT_INSTRUMENTS, paymentInstruments);
     }
 
+    @VisibleForTesting
+    @Nullable
+    public static AssistantPaymentInstrument createAssistantPaymentInstrument(
+            @Nullable AssistantAutofillCreditCard creditCard,
+            @Nullable AssistantAutofillProfile billingProfile) {
+        if (creditCard == null) {
+            return null;
+        }
+        return new AssistantPaymentInstrument(creditCard, billingProfile);
+    }
+
     @CalledByNative
     private void setGenericUserInterfacePrepended(@Nullable View userInterface) {
         set(GENERIC_USER_INTERFACE_PREPENDED, userInterface);
diff --git a/chrome/android/features/autofill_assistant/java/src/org/chromium/chrome/browser/autofill_assistant/user_data/AssistantCollectUserDataNativeDelegate.java b/chrome/android/features/autofill_assistant/java/src/org/chromium/chrome/browser/autofill_assistant/user_data/AssistantCollectUserDataNativeDelegate.java
index 6d969ef1..fa882b8c 100644
--- a/chrome/android/features/autofill_assistant/java/src/org/chromium/chrome/browser/autofill_assistant/user_data/AssistantCollectUserDataNativeDelegate.java
+++ b/chrome/android/features/autofill_assistant/java/src/org/chromium/chrome/browser/autofill_assistant/user_data/AssistantCollectUserDataNativeDelegate.java
@@ -9,7 +9,7 @@
 import org.chromium.base.annotations.CalledByNative;
 import org.chromium.base.annotations.JNINamespace;
 import org.chromium.base.annotations.NativeMethods;
-import org.chromium.chrome.browser.autofill.PersonalDataManager;
+import org.chromium.chrome.browser.autofill_assistant.AssistantAutofillCreditCard;
 import org.chromium.chrome.browser.autofill_assistant.AssistantAutofillProfile;
 import org.chromium.chrome.browser.autofill_assistant.generic_ui.AssistantValue;
 
@@ -48,7 +48,7 @@
             AssistantCollectUserDataNativeDelegateJni.get().onShippingAddressChanged(
                     mNativeAssistantCollectUserDataDelegate,
                     AssistantCollectUserDataNativeDelegate.this,
-                    addressModel == null ? null : addressModel.mOption.getProfile(), eventType);
+                    addressModel == null ? null : addressModel.mOption, eventType);
         }
     }
 
@@ -61,10 +61,10 @@
                     mNativeAssistantCollectUserDataDelegate,
                     AssistantCollectUserDataNativeDelegate.this,
                     paymentInstrumentModel == null ? null
-                                                   : paymentInstrumentModel.mOption.getCard(),
+                                                   : paymentInstrumentModel.mOption.getCreditCard(),
                     paymentInstrumentModel == null
                             ? null
-                            : paymentInstrumentModel.mOption.getBillingProfile(),
+                            : paymentInstrumentModel.mOption.getBillingAddress(),
                     eventType);
         }
     }
@@ -130,11 +130,11 @@
                 @Nullable AssistantAutofillProfile contactProfile, int eventType);
         void onShippingAddressChanged(long nativeAssistantCollectUserDataDelegate,
                 AssistantCollectUserDataNativeDelegate caller,
-                @Nullable PersonalDataManager.AutofillProfile address, int eventType);
+                @Nullable AssistantAutofillProfile address, int eventType);
         void onCreditCardChanged(long nativeAssistantCollectUserDataDelegate,
                 AssistantCollectUserDataNativeDelegate caller,
-                @Nullable PersonalDataManager.CreditCard card,
-                @Nullable PersonalDataManager.AutofillProfile billingProfile, int eventType);
+                @Nullable AssistantAutofillCreditCard card,
+                @Nullable AssistantAutofillProfile billingProfile, int eventType);
         void onTermsAndConditionsChanged(long nativeAssistantCollectUserDataDelegate,
                 AssistantCollectUserDataNativeDelegate caller, int state);
         void onTextLinkClicked(long nativeAssistantCollectUserDataDelegate,
diff --git a/chrome/android/features/autofill_assistant/java/src/org/chromium/chrome/browser/autofill_assistant/user_data/AssistantCollectUserDataSection.java b/chrome/android/features/autofill_assistant/java/src/org/chromium/chrome/browser/autofill_assistant/user_data/AssistantCollectUserDataSection.java
index 89f2adc..9f248ad5 100644
--- a/chrome/android/features/autofill_assistant/java/src/org/chromium/chrome/browser/autofill_assistant/user_data/AssistantCollectUserDataSection.java
+++ b/chrome/android/features/autofill_assistant/java/src/org/chromium/chrome/browser/autofill_assistant/user_data/AssistantCollectUserDataSection.java
@@ -28,7 +28,7 @@
  * This is the generic superclass for all autofill-assistant payment request sections.
  *
  * @param <T> The type of entry that a concrete instance of this class is created for,
- *            such as |AssistantAutofillProfile|, |AutofillPaymentMethod|, etc.
+ *            such as {@link AssistantAutofillProfile}, {@link AssistantPaymentInstrument}, etc.
  */
 public abstract class AssistantCollectUserDataSection<T extends OptionModel> {
     interface Delegate<T> {
diff --git a/chrome/android/features/autofill_assistant/java/src/org/chromium/chrome/browser/autofill_assistant/user_data/AssistantPaymentMethodSection.java b/chrome/android/features/autofill_assistant/java/src/org/chromium/chrome/browser/autofill_assistant/user_data/AssistantPaymentMethodSection.java
index 94c3205..1f09c5ff 100644
--- a/chrome/android/features/autofill_assistant/java/src/org/chromium/chrome/browser/autofill_assistant/user_data/AssistantPaymentMethodSection.java
+++ b/chrome/android/features/autofill_assistant/java/src/org/chromium/chrome/browser/autofill_assistant/user_data/AssistantPaymentMethodSection.java
@@ -15,15 +15,16 @@
 import androidx.annotation.DrawableRes;
 import androidx.annotation.Nullable;
 
+import org.chromium.base.Callback;
 import org.chromium.chrome.autofill_assistant.R;
-import org.chromium.chrome.browser.autofill.PersonalDataManager;
-import org.chromium.chrome.browser.autofill.PersonalDataManager.AutofillProfile;
-import org.chromium.chrome.browser.autofill.PersonalDataManager.CreditCard;
 import org.chromium.chrome.browser.autofill.settings.CardEditor;
+import org.chromium.chrome.browser.autofill_assistant.AssistantAutofillCreditCard;
+import org.chromium.chrome.browser.autofill_assistant.AssistantAutofillProfile;
+import org.chromium.chrome.browser.autofill_assistant.AssistantPaymentInstrument;
 import org.chromium.chrome.browser.autofill_assistant.user_data.AssistantCollectUserDataModel.PaymentInstrumentModel;
 import org.chromium.chrome.browser.payments.AutofillAddress;
-import org.chromium.chrome.browser.payments.AutofillAddress.CompletenessCheckType;
 import org.chromium.chrome.browser.payments.AutofillPaymentInstrument;
+import org.chromium.content_public.browser.WebContents;
 
 import java.util.List;
 
@@ -33,6 +34,7 @@
 public class AssistantPaymentMethodSection
         extends AssistantCollectUserDataSection<PaymentInstrumentModel> {
     private CardEditor mEditor;
+    private WebContents mWebContents;
     private boolean mIgnorePaymentMethodsChangeNotifications;
 
     AssistantPaymentMethodSection(Context context, ViewGroup parent) {
@@ -52,26 +54,41 @@
         }
 
         for (PaymentInstrumentModel item : getItems()) {
-            AutofillProfile profile = item.mOption.getBillingProfile();
+            AssistantAutofillProfile profile = item.mOption.getBillingAddress();
             if (profile != null) {
-                addAutocompleteInformationToEditor(
-                        new AutofillAddress(mContext, profile, CompletenessCheckType.IGNORE_PHONE));
+                addAutocompleteInformationToEditor(profile);
             }
         }
     }
 
+    public void setWebContents(WebContents webContents) {
+        mWebContents = webContents;
+    }
+
     @Override
     protected void createOrEditItem(@Nullable PaymentInstrumentModel oldItem) {
-        if (mEditor == null) {
+        if (mEditor == null || mWebContents == null) {
             return;
         }
-        mEditor.edit(oldItem == null ? null : oldItem.mOption, paymentInstrument -> {
-            assert (paymentInstrument != null && paymentInstrument.isComplete());
+
+        AutofillPaymentInstrument oldPaymentInstrument = oldItem == null
+                ? null
+                : AutofillUtilChrome.assistantPaymentInstrumentToAutofillPaymentInstrument(
+                        oldItem.mOption, mWebContents);
+        Callback<AutofillPaymentInstrument> doneCallback = paymentInstrument -> {
+            assert (paymentInstrument != null && paymentInstrument.isComplete()
+                    && paymentInstrument.getCard() != null);
             mIgnorePaymentMethodsChangeNotifications = true;
-            addOrUpdateItem(new PaymentInstrumentModel(paymentInstrument), /* select= */ true,
+            addOrUpdateItem(new PaymentInstrumentModel(
+                                    AutofillUtilChrome
+                                            .autofillPaymentInstrumentToAssistantPaymentInstrument(
+                                                    paymentInstrument)),
+                    /* select= */ true,
                     /* notify= */ true);
             mIgnorePaymentMethodsChangeNotifications = false;
-        }, cancel -> {});
+        };
+        Callback<AutofillPaymentInstrument> cancelCallback = paymentInstrument -> {};
+        mEditor.edit(oldPaymentInstrument, doneCallback, cancelCallback);
     }
 
     @Override
@@ -83,7 +100,7 @@
         updateView(fullView, model);
 
         TextView cardNameView = fullView.findViewById(R.id.credit_card_name);
-        cardNameView.setText(model.mOption.getCard().getName());
+        cardNameView.setText(model.mOption.getCreditCard().getName());
         hideIfEmpty(cardNameView);
 
         TextView errorView = fullView.findViewById(R.id.incomplete_error);
@@ -109,11 +126,11 @@
     }
 
     private void updateView(View view, PaymentInstrumentModel model) {
-        AutofillPaymentInstrument method = model.mOption;
+        AssistantPaymentInstrument method = model.mOption;
         ImageView cardIssuerImageView = view.findViewById(R.id.credit_card_issuer_icon);
         try {
-            cardIssuerImageView.setImageDrawable(
-                    view.getContext().getDrawable(method.getCard().getIssuerIconDrawableId()));
+            cardIssuerImageView.setImageDrawable(view.getContext().getDrawable(
+                    method.getCreditCard().getIssuerIconDrawableId()));
         } catch (Resources.NotFoundException e) {
             cardIssuerImageView.setImageDrawable(null);
         }
@@ -121,7 +138,7 @@
         // By default, the obfuscated number contains the issuer (e.g., 'Visa'). This is needlessly
         // verbose, so we strip it away. See |PersonalDataManagerTest::testAddAndEditCreditCards|
         // for explanation of "\u0020...\u2060".
-        String obfuscatedNumber = method.getCard().getObfuscatedNumber();
+        String obfuscatedNumber = method.getCreditCard().getObfuscatedNumber();
         int beginningOfObfuscatedNumber =
                 Math.max(obfuscatedNumber.indexOf("\u0020\u202A\u2022\u2060"), 0);
         obfuscatedNumber = obfuscatedNumber.substring(beginningOfObfuscatedNumber);
@@ -130,7 +147,7 @@
         hideIfEmpty(cardNumberView);
 
         TextView cardExpirationView = view.findViewById(R.id.credit_card_expiration);
-        cardExpirationView.setText(method.getCard().getFormattedExpirationDate(view.getContext()));
+        cardExpirationView.setText(method.getCreditCard().getFormattedExpirationDate(mContext));
         hideIfEmpty(cardExpirationView);
     }
 
@@ -155,33 +172,25 @@
         if (modelA == null || modelB == null) {
             return modelA == modelB;
         }
-        AutofillPaymentInstrument optionA = modelA.mOption;
-        AutofillPaymentInstrument optionB = modelB.mOption;
-        if (TextUtils.equals(optionA.getIdentifier(), optionB.getIdentifier())) {
-            return true;
-        }
-        return areEqualCards(optionA.getCard(), optionB.getCard())
+        return areEqualCards(modelA.mOption.getCreditCard(), modelB.mOption.getCreditCard())
                 && areEqualBillingProfiles(
-                        optionA.getBillingProfile(), optionB.getBillingProfile());
+                        modelA.mOption.getBillingAddress(), modelB.mOption.getBillingAddress());
     }
-    private boolean areEqualCards(CreditCard cardA, CreditCard cardB) {
-        // TODO(crbug.com/806868): Implement better check for the case where PDM is disabled, we
-        //  won't have IDs.
+    private boolean areEqualCards(
+            AssistantAutofillCreditCard cardA, AssistantAutofillCreditCard cardB) {
         return TextUtils.equals(cardA.getGUID(), cardB.getGUID());
     }
-    private boolean areEqualBillingProfiles(
-            @Nullable AutofillProfile profileA, @Nullable AutofillProfile profileB) {
+    private boolean areEqualBillingProfiles(@Nullable AssistantAutofillProfile profileA,
+            @Nullable AssistantAutofillProfile profileB) {
         if (profileA == null || profileB == null) {
             return profileA == profileB;
         }
-        // TODO(crbug.com/806868): Implement better check for the case where PDM is disabled, we
-        //  won't have IDs.
         return TextUtils.equals(profileA.getGUID(), profileB.getGUID());
     }
 
-    void onAddressesChanged(List<AutofillAddress> addresses) {
+    void onAddressesChanged(List<AssistantAutofillProfile> addresses) {
         // TODO(crbug.com/806868): replace suggested billing addresses (remove if necessary).
-        for (AutofillAddress address : addresses) {
+        for (AssistantAutofillProfile address : addresses) {
             addAutocompleteInformationToEditor(address);
         }
     }
@@ -209,14 +218,16 @@
         setItems(paymentMethods, selectedMethodIndex);
     }
 
-    private void addAutocompleteInformationToEditor(AutofillAddress address) {
+    private void addAutocompleteInformationToEditor(AssistantAutofillProfile profile) {
         if (mEditor == null) {
             return;
         }
+        // TODO(sandromaggi): Find a way to abstract this, such that we can remove the
+        //  AutofillAddress.
+        AutofillAddress address =
+                AutofillUtilChrome.assistantAutofillProfileToAutofillAddress(profile, mContext);
         if (address.getProfile().getLabel() == null) {
-            address.getProfile().setLabel(
-                    PersonalDataManager.getInstance().getBillingAddressLabelForPaymentRequest(
-                            address.getProfile()));
+            address.getProfile().setLabel(AutofillUtilChrome.getBillingAddressLabel(profile));
         }
         mEditor.updateBillingAddressIfComplete(address);
     }
diff --git a/chrome/android/features/autofill_assistant/java/src/org/chromium/chrome/browser/autofill_assistant/user_data/AssistantShippingAddressSection.java b/chrome/android/features/autofill_assistant/java/src/org/chromium/chrome/browser/autofill_assistant/user_data/AssistantShippingAddressSection.java
index eeddcd8e..71495247 100644
--- a/chrome/android/features/autofill_assistant/java/src/org/chromium/chrome/browser/autofill_assistant/user_data/AssistantShippingAddressSection.java
+++ b/chrome/android/features/autofill_assistant/java/src/org/chromium/chrome/browser/autofill_assistant/user_data/AssistantShippingAddressSection.java
@@ -13,8 +13,8 @@
 import androidx.annotation.DrawableRes;
 import androidx.annotation.Nullable;
 
+import org.chromium.base.Callback;
 import org.chromium.chrome.autofill_assistant.R;
-import org.chromium.chrome.browser.autofill.PersonalDataManager;
 import org.chromium.chrome.browser.autofill.settings.AddressEditor;
 import org.chromium.chrome.browser.autofill_assistant.user_data.AssistantCollectUserDataModel.AddressModel;
 import org.chromium.chrome.browser.payments.AutofillAddress;
@@ -46,12 +46,25 @@
         if (mEditor == null) {
             return;
         }
-        mEditor.edit(oldItem == null ? null : oldItem.mOption, address -> {
-            assert (address != null && address.isComplete());
+
+        AutofillAddress oldAddress = oldItem == null
+                ? null
+                : AutofillUtilChrome.assistantAutofillProfileToAutofillAddress(
+                        oldItem.mOption, mContext);
+
+        Callback<AutofillAddress> doneCallback = address -> {
+            assert (address != null && address.isComplete() && address.getProfile() != null);
             mIgnoreProfileChangeNotifications = true;
-            addOrUpdateItem(new AddressModel(address), /* select= */ true, /* notify= */ true);
+            addOrUpdateItem(
+                    new AddressModel(AutofillUtilChrome.autofillProfileToAssistantAutofillProfile(
+                            address.getProfile())),
+                    /* select= */ true, /* notify= */ true);
             mIgnoreProfileChangeNotifications = false;
-        }, cancel -> {});
+        };
+
+        Callback<AutofillAddress> cancelCallback = address -> {};
+
+        mEditor.edit(oldAddress, doneCallback, cancelCallback);
     }
 
     @Override
@@ -60,13 +73,12 @@
             return;
         }
         TextView fullNameView = fullView.findViewById(R.id.full_name);
-        fullNameView.setText(model.mOption.getProfile().getFullName());
+        fullNameView.setText(model.mOption.getFullName());
         hideIfEmpty(fullNameView);
 
         TextView fullAddressView = fullView.findViewById(R.id.full_address);
-        fullAddressView.setText(PersonalDataManager.getInstance()
-                                        .getShippingAddressLabelWithCountryForPaymentRequest(
-                                                model.mOption.getProfile()));
+        fullAddressView.setText(
+                AutofillUtilChrome.getShippingAddressLabel(model.mOption, /* withCountry= */ true));
         hideIfEmpty(fullAddressView);
 
         TextView errorView = fullView.findViewById(R.id.incomplete_error);
@@ -85,13 +97,12 @@
             return;
         }
         TextView fullNameView = summaryView.findViewById(R.id.full_name);
-        fullNameView.setText(model.mOption.getProfile().getFullName());
+        fullNameView.setText(model.mOption.getFullName());
         hideIfEmpty(fullNameView);
 
         TextView shortAddressView = summaryView.findViewById(R.id.short_address);
-        shortAddressView.setText(PersonalDataManager.getInstance()
-                                         .getShippingAddressLabelWithoutCountryForPaymentRequest(
-                                                 model.mOption.getProfile()));
+        shortAddressView.setText(AutofillUtilChrome.getShippingAddressLabel(
+                model.mOption, /* withCountry= */ false));
         hideIfEmpty(shortAddressView);
 
         TextView errorView = summaryView.findViewById(R.id.incomplete_error);
@@ -118,17 +129,7 @@
         if (modelA == null || modelB == null) {
             return modelA == modelB;
         }
-        AutofillAddress optionA = modelA.mOption;
-        AutofillAddress optionB = modelB.mOption;
-        if (TextUtils.equals(optionA.getIdentifier(), optionB.getIdentifier())) {
-            return true;
-        }
-        if (optionA.getProfile() == null || optionB.getProfile() == null) {
-            return optionA.getProfile() == optionB.getProfile();
-        }
-        // TODO(crbug.com/806868): Implement better check for the case where PDM is disabled, we
-        //  won't have IDs.
-        return TextUtils.equals(optionA.getProfile().getGUID(), optionB.getProfile().getGUID());
+        return TextUtils.equals(modelA.mOption.getGUID(), modelB.mOption.getGUID());
     }
 
     /**
@@ -153,9 +154,4 @@
         // Replace current set of items, keep selection if possible.
         setItems(addresses, selectedAddressIndex);
     }
-
-    @Override
-    protected void addOrUpdateItem(AddressModel model, boolean select, boolean notify) {
-        super.addOrUpdateItem(model, select, notify);
-    }
 }
\ No newline at end of file
diff --git a/chrome/android/features/autofill_assistant/java/src/org/chromium/chrome/browser/autofill_assistant/user_data/AutofillUtilChrome.java b/chrome/android/features/autofill_assistant/java/src/org/chromium/chrome/browser/autofill_assistant/user_data/AutofillUtilChrome.java
index 32fe4951..8e0e10e6 100644
--- a/chrome/android/features/autofill_assistant/java/src/org/chromium/chrome/browser/autofill_assistant/user_data/AutofillUtilChrome.java
+++ b/chrome/android/features/autofill_assistant/java/src/org/chromium/chrome/browser/autofill_assistant/user_data/AutofillUtilChrome.java
@@ -6,10 +6,21 @@
 
 import android.content.Context;
 
+import androidx.annotation.Nullable;
+
+import org.chromium.chrome.browser.autofill.PersonalDataManager;
 import org.chromium.chrome.browser.autofill.PersonalDataManager.AutofillProfile;
+import org.chromium.chrome.browser.autofill.PersonalDataManager.CreditCard;
+import org.chromium.chrome.browser.autofill_assistant.AssistantAutofillCreditCard;
 import org.chromium.chrome.browser.autofill_assistant.AssistantAutofillProfile;
+import org.chromium.chrome.browser.autofill_assistant.AssistantPaymentInstrument;
+import org.chromium.chrome.browser.payments.AutofillAddress;
+import org.chromium.chrome.browser.payments.AutofillAddress.CompletenessCheckType;
 import org.chromium.chrome.browser.payments.AutofillContact;
+import org.chromium.chrome.browser.payments.AutofillPaymentInstrument;
 import org.chromium.chrome.browser.payments.ContactEditor;
+import org.chromium.components.payments.MethodStrings;
+import org.chromium.content_public.browser.WebContents;
 
 /**
  * Utility class for Chrome to handle Autofill / Assistant conversions.
@@ -66,4 +77,106 @@
                 editor.getRequestPayerName(), editor.getRequestPayerPhone(),
                 editor.getRequestPayerEmail());
     }
+
+    /**
+     * Transform an {@link AssistantAutofillProfile} into an {@link AutofillAddress}.
+     *
+     * @param profile The {@link AssistantAutofillProfile} to transform.
+     * @param context The context the app is currently run as.
+     * @return The equivalent {@link AutofillAddress}.
+     */
+    public static AutofillAddress assistantAutofillProfileToAutofillAddress(
+            AssistantAutofillProfile profile, Context context) {
+        return new AutofillAddress(context, assistantAutofillProfileToAutofillProfile(profile),
+                CompletenessCheckType.IGNORE_PHONE);
+    }
+
+    /**
+     * Get the label for an {@link AssistantAutofillProfile} used as a shipping address.
+     *
+     * @param profile The {@link AssistantAutofillProfile}.
+     * @param withCountry Flag to add country.
+     * @return The label.
+     */
+    public static String getShippingAddressLabel(
+            AssistantAutofillProfile profile, boolean withCountry) {
+        if (withCountry) {
+            return PersonalDataManager.getInstance()
+                    .getShippingAddressLabelWithCountryForPaymentRequest(
+                            assistantAutofillProfileToAutofillProfile(profile));
+        } else {
+            return PersonalDataManager.getInstance()
+                    .getShippingAddressLabelWithoutCountryForPaymentRequest(
+                            assistantAutofillProfileToAutofillProfile(profile));
+        }
+    }
+
+    private static CreditCard assistantAutofillCreditCardToAutofillCreditCard(
+            AssistantAutofillCreditCard creditCard) {
+        return new CreditCard(creditCard.getGUID(), creditCard.getOrigin(), creditCard.getIsLocal(),
+                creditCard.getIsCached(), creditCard.getName(), creditCard.getNumber(),
+                creditCard.getObfuscatedNumber(), creditCard.getMonth(), creditCard.getYear(),
+                creditCard.getBasicCardIssuerNetwork(), creditCard.getIssuerIconDrawableId(),
+                creditCard.getBillingAddressId(), creditCard.getServerId(),
+                creditCard.getInstrumentId(), /* cardLabel= */ "", creditCard.getNickname(),
+                creditCard.getCardArtUrl());
+    }
+
+    /**
+     * Transform an {@link AssistantPaymentInstrument} into an {@link AutofillPaymentInstrument}.
+     *
+     * @param paymentInstrument The {@link AssistantPaymentInstrument} to transform.
+     * @param webContents The {@link WebContents} associated with this run.
+     * @return The equivalent {@link AutofillPaymentInstrument}.
+     */
+    public static AutofillPaymentInstrument assistantPaymentInstrumentToAutofillPaymentInstrument(
+            AssistantPaymentInstrument paymentInstrument, WebContents webContents) {
+        @Nullable
+        AssistantAutofillProfile assistantBillingProfile = paymentInstrument.getBillingAddress();
+        return new AutofillPaymentInstrument(webContents,
+                assistantAutofillCreditCardToAutofillCreditCard(paymentInstrument.getCreditCard()),
+                assistantBillingProfile == null
+                        ? null
+                        : assistantAutofillProfileToAutofillProfile(assistantBillingProfile),
+                MethodStrings.BASIC_CARD);
+    }
+
+    private static AssistantAutofillCreditCard autofillCreditCardToAssistantAutofillCreditCard(
+            CreditCard creditCard) {
+        return new AssistantAutofillCreditCard(creditCard.getGUID(), creditCard.getOrigin(),
+                creditCard.getIsLocal(), creditCard.getIsCached(), creditCard.getName(),
+                creditCard.getNumber(), creditCard.getObfuscatedNumber(), creditCard.getMonth(),
+                creditCard.getYear(), creditCard.getBasicCardIssuerNetwork(),
+                creditCard.getIssuerIconDrawableId(), creditCard.getBillingAddressId(),
+                creditCard.getServerId(), creditCard.getInstrumentId(), creditCard.getNickname(),
+                creditCard.getCardArtUrl());
+    }
+
+    /**
+     * Transform an {@link AutofillPaymentInstrument} into an {@link AssistantPaymentInstrument}.
+     *
+     * @param paymentInstrument The {@link AutofillPaymentInstrument} to transform.
+     * @return The equivalent {@link AssistantPaymentInstrument}.
+     */
+    public static AssistantPaymentInstrument autofillPaymentInstrumentToAssistantPaymentInstrument(
+            AutofillPaymentInstrument paymentInstrument) {
+        @Nullable
+        AutofillProfile autofillBillingProfile = paymentInstrument.getBillingProfile();
+        return new AssistantPaymentInstrument(
+                autofillCreditCardToAssistantAutofillCreditCard(paymentInstrument.getCard()),
+                autofillBillingProfile == null
+                        ? null
+                        : autofillProfileToAssistantAutofillProfile(autofillBillingProfile));
+    }
+
+    /**
+     * Get the label for an {@link AssistantAutofillProfile} used as a billing address.
+     *
+     * @param profile The {@link AssistantAutofillProfile}.
+     * @return The label.
+     */
+    public static String getBillingAddressLabel(AssistantAutofillProfile profile) {
+        return PersonalDataManager.getInstance().getBillingAddressLabelForPaymentRequest(
+                assistantAutofillProfileToAutofillProfile(profile));
+    }
 }
diff --git a/chrome/android/features/autofill_assistant/javatests/src/org/chromium/chrome/browser/autofill_assistant/AutofillAssistantCollectUserDataTestHelper.java b/chrome/android/features/autofill_assistant/javatests/src/org/chromium/chrome/browser/autofill_assistant/AutofillAssistantCollectUserDataTestHelper.java
index f6cf159..579b10a 100644
--- a/chrome/android/features/autofill_assistant/javatests/src/org/chromium/chrome/browser/autofill_assistant/AutofillAssistantCollectUserDataTestHelper.java
+++ b/chrome/android/features/autofill_assistant/javatests/src/org/chromium/chrome/browser/autofill_assistant/AutofillAssistantCollectUserDataTestHelper.java
@@ -28,8 +28,6 @@
 import org.chromium.chrome.browser.autofill_assistant.user_data.AssistantUserDataEventType;
 import org.chromium.chrome.browser.autofill_assistant.user_data.AssistantVerticalExpander;
 import org.chromium.chrome.browser.autofill_assistant.user_data.AssistantVerticalExpanderAccordion;
-import org.chromium.chrome.browser.payments.AutofillAddress;
-import org.chromium.chrome.browser.payments.AutofillPaymentInstrument;
 import org.chromium.content_public.browser.test.util.TestThreadUtils;
 
 import java.util.HashMap;
@@ -97,8 +95,8 @@
      */
     static class MockDelegate implements AssistantCollectUserDataDelegate {
         AssistantAutofillProfile mContact;
-        AutofillAddress mAddress;
-        AutofillPaymentInstrument mPaymentMethod;
+        AssistantAutofillProfile mShippingAddress;
+        AssistantPaymentInstrument mPaymentInstrument;
         AssistantLoginChoice mLoginChoice;
 
         @AssistantTermsAndConditionsState
@@ -118,14 +116,15 @@
         public void onShippingAddressChanged(
                 @Nullable AssistantCollectUserDataModel.AddressModel addressModel,
                 @AssistantUserDataEventType int eventType) {
-            mAddress = addressModel == null ? null : addressModel.mOption;
+            mShippingAddress = addressModel == null ? null : addressModel.mOption;
         }
 
         @Override
         public void onPaymentMethodChanged(@Nullable AssistantCollectUserDataModel
                                                    .PaymentInstrumentModel paymentInstrumentModel,
                 @AssistantUserDataEventType int eventType) {
-            mPaymentMethod = paymentInstrumentModel == null ? null : paymentInstrumentModel.mOption;
+            mPaymentInstrument =
+                    paymentInstrumentModel == null ? null : paymentInstrumentModel.mOption;
         }
 
         @Override
diff --git a/chrome/android/features/autofill_assistant/javatests/src/org/chromium/chrome/browser/autofill_assistant/AutofillAssistantCollectUserDataUiTest.java b/chrome/android/features/autofill_assistant/javatests/src/org/chromium/chrome/browser/autofill_assistant/AutofillAssistantCollectUserDataUiTest.java
index 8769cbcd..4900d6a 100644
--- a/chrome/android/features/autofill_assistant/javatests/src/org/chromium/chrome/browser/autofill_assistant/AutofillAssistantCollectUserDataUiTest.java
+++ b/chrome/android/features/autofill_assistant/javatests/src/org/chromium/chrome/browser/autofill_assistant/AutofillAssistantCollectUserDataUiTest.java
@@ -67,8 +67,6 @@
 import org.chromium.chrome.browser.customtabs.CustomTabActivityTestRule;
 import org.chromium.chrome.browser.customtabs.CustomTabsTestUtils;
 import org.chromium.chrome.browser.flags.ChromeSwitches;
-import org.chromium.chrome.browser.payments.AutofillAddress;
-import org.chromium.chrome.browser.payments.AutofillPaymentInstrument;
 import org.chromium.chrome.test.ChromeJUnit4ClassRunner;
 import org.chromium.content_public.browser.test.util.TestThreadUtils;
 
@@ -343,9 +341,9 @@
         });
 
         /* Test delegate status. */
-        assertThat(delegate.mPaymentMethod, nullValue());
+        assertThat(delegate.mPaymentInstrument, nullValue());
         assertThat(delegate.mContact, nullValue());
-        assertThat(delegate.mAddress, nullValue());
+        assertThat(delegate.mShippingAddress, nullValue());
         assertThat(delegate.mTermsStatus, is(AssistantTermsAndConditionsState.NOT_SELECTED));
         assertThat(delegate.mLoginChoice, nullValue());
     }
@@ -455,9 +453,9 @@
         PersonalDataManager.CreditCard creditCard = mHelper.createDummyCreditCard(billingAddressId);
 
         TestThreadUtils.runOnUiThreadBlocking(() -> {
-            AutofillPaymentInstrument paymentInstrument =
-                    AssistantCollectUserDataModel.createAutofillPaymentInstrument(
-                            mTestRule.getWebContents(), creditCard, billingAddress);
+            AssistantPaymentInstrument paymentInstrument =
+                    AssistantCollectUserDataModel.createAssistantPaymentInstrument(
+                            createDummyCreditCard(creditCard), createDummyAddress(billingAddress));
             model.set(AssistantCollectUserDataModel.AVAILABLE_PAYMENT_INSTRUMENTS,
                     Collections.singletonList(new PaymentInstrumentModel(paymentInstrument)));
             model.set(AssistantCollectUserDataModel.SELECTED_PAYMENT_INSTRUMENT,
@@ -510,9 +508,9 @@
             model.set(AssistantCollectUserDataModel.WEB_CONTENTS, mTestRule.getWebContents());
             model.set(AssistantCollectUserDataModel.REQUEST_PAYMENT, true);
             model.set(AssistantCollectUserDataModel.VISIBLE, true);
-            AutofillPaymentInstrument paymentInstrument =
-                    AssistantCollectUserDataModel.createAutofillPaymentInstrument(
-                            mTestRule.getWebContents(), creditCard, billingAddress);
+            AssistantPaymentInstrument paymentInstrument =
+                    AssistantCollectUserDataModel.createAssistantPaymentInstrument(
+                            createDummyCreditCard(creditCard), createDummyAddress(billingAddress));
             model.set(AssistantCollectUserDataModel.AVAILABLE_PAYMENT_INSTRUMENTS,
                     Collections.singletonList(new PaymentInstrumentModel(paymentInstrument)));
             model.set(AssistantCollectUserDataModel.SELECTED_PAYMENT_INSTRUMENT,
@@ -578,7 +576,6 @@
 
         // Request all PR sections.
         TestThreadUtils.runOnUiThreadBlocking(() -> {
-            // WEB_CONTENTS are necessary for the creation of AutofillPaymentInstrument.
             model.set(AssistantCollectUserDataModel.WEB_CONTENTS, mTestRule.getWebContents());
             model.set(AssistantCollectUserDataModel.DELEGATE, delegate);
             model.set(AssistantCollectUserDataModel.REQUEST_NAME, true);
@@ -595,15 +592,14 @@
                     Collections.singletonList(new ContactModel(contact)));
             model.set(AssistantCollectUserDataModel.SELECTED_CONTACT_DETAILS,
                     new ContactModel(contact));
-            AutofillAddress address = AssistantCollectUserDataModel.createAutofillAddress(
-                    mTestRule.getActivity(), profile);
+            AssistantAutofillProfile address = createDummyAddress(profile);
             model.set(AssistantCollectUserDataModel.AVAILABLE_SHIPPING_ADDRESSES,
                     Collections.singletonList(new AddressModel(address)));
             model.set(AssistantCollectUserDataModel.SELECTED_SHIPPING_ADDRESS,
                     new AddressModel(address));
-            AutofillPaymentInstrument paymentInstrument =
-                    AssistantCollectUserDataModel.createAutofillPaymentInstrument(
-                            mTestRule.getWebContents(), creditCard, profile);
+            AssistantPaymentInstrument paymentInstrument =
+                    AssistantCollectUserDataModel.createAssistantPaymentInstrument(
+                            createDummyCreditCard(creditCard), createDummyAddress(profile));
             model.set(AssistantCollectUserDataModel.AVAILABLE_PAYMENT_INSTRUMENTS,
                     Collections.singletonList(new PaymentInstrumentModel(paymentInstrument)));
             model.set(AssistantCollectUserDataModel.SELECTED_PAYMENT_INSTRUMENT,
@@ -670,9 +666,9 @@
         // Check delegate status. The selections set in the model have not been sent to the
         // delegate. |setItems()| has been called first (without selection) and selecting the item
         // does not trigger a notification.
-        assertThat(delegate.mPaymentMethod, is(nullValue()));
+        assertThat(delegate.mPaymentInstrument, is(nullValue()));
         assertThat(delegate.mContact, is(nullValue()));
-        assertThat(delegate.mAddress, is(nullValue()));
+        assertThat(delegate.mShippingAddress, is(nullValue()));
         assertThat(delegate.mTermsStatus, is(AssistantTermsAndConditionsState.NOT_SELECTED));
         assertThat(delegate.mLoginChoice, is(nullValue()));
 
@@ -680,13 +676,11 @@
             AssistantAutofillProfile contact = createDummyContact(profile);
             model.set(AssistantCollectUserDataModel.AVAILABLE_CONTACTS,
                     Collections.singletonList(new ContactModel(contact)));
-            AutofillAddress address = AssistantCollectUserDataModel.createAutofillAddress(
-                    mTestRule.getActivity(), profile);
             model.set(AssistantCollectUserDataModel.AVAILABLE_SHIPPING_ADDRESSES,
-                    Collections.singletonList(new AddressModel(address)));
-            AutofillPaymentInstrument paymentInstrument =
-                    AssistantCollectUserDataModel.createAutofillPaymentInstrument(
-                            mTestRule.getWebContents(), creditCard, profile);
+                    Collections.singletonList(new AddressModel(createDummyAddress(profile))));
+            AssistantPaymentInstrument paymentInstrument =
+                    AssistantCollectUserDataModel.createAssistantPaymentInstrument(
+                            createDummyCreditCard(creditCard), createDummyAddress(profile));
             model.set(AssistantCollectUserDataModel.AVAILABLE_PAYMENT_INSTRUMENTS,
                     Collections.singletonList(new PaymentInstrumentModel(paymentInstrument)));
             model.set(AssistantCollectUserDataModel.AVAILABLE_LOGINS,
@@ -695,9 +689,9 @@
         });
 
         // Check delegate status. Setting items again will not send a notification to the delegate.
-        assertThat(delegate.mPaymentMethod, is(nullValue()));
+        assertThat(delegate.mPaymentInstrument, is(nullValue()));
         assertThat(delegate.mContact, is(nullValue()));
-        assertThat(delegate.mAddress, is(nullValue()));
+        assertThat(delegate.mShippingAddress, is(nullValue()));
         assertThat(delegate.mTermsStatus, is(AssistantTermsAndConditionsState.NOT_SELECTED));
         assertThat(delegate.mLoginChoice, is(nullValue()));
     }
@@ -1173,4 +1167,25 @@
                 /* dependentLocality= */ "", /* postalCode= */ "", /* sortingCode= */ "",
                 /* countryCode= */ "", phone, email, /* languageCode= */ "en-US");
     }
+
+    private AssistantAutofillProfile createDummyAddress(
+            PersonalDataManager.AutofillProfile profile) {
+        return new AssistantAutofillProfile(profile.getGUID(), profile.getOrigin(),
+                profile.getIsLocal(), profile.getHonorificPrefix(), profile.getFullName(),
+                profile.getCompanyName(), profile.getStreetAddress(), profile.getRegion(),
+                profile.getLocality(), profile.getDependentLocality(), profile.getPostalCode(),
+                profile.getSortingCode(), profile.getCountryCode(), profile.getPhoneNumber(),
+                profile.getEmailAddress(), profile.getLanguageCode());
+    }
+
+    private AssistantAutofillCreditCard createDummyCreditCard(
+            PersonalDataManager.CreditCard creditCard) {
+        return new AssistantAutofillCreditCard(creditCard.getGUID(), creditCard.getOrigin(),
+                creditCard.getIsLocal(), creditCard.getIsCached(), creditCard.getName(),
+                creditCard.getNumber(), creditCard.getObfuscatedNumber(), creditCard.getMonth(),
+                creditCard.getYear(), creditCard.getBasicCardIssuerNetwork(),
+                creditCard.getIssuerIconDrawableId(), creditCard.getBillingAddressId(),
+                creditCard.getServerId(), creditCard.getInstrumentId(), creditCard.getNickname(),
+                creditCard.getCardArtUrl());
+    }
 }
diff --git a/chrome/android/features/autofill_assistant/public/java/src/org/chromium/chrome/browser/autofill_assistant/AssistantAutofillCreditCard.java b/chrome/android/features/autofill_assistant/public/java/src/org/chromium/chrome/browser/autofill_assistant/AssistantAutofillCreditCard.java
new file mode 100644
index 0000000..082f3644
--- /dev/null
+++ b/chrome/android/features/autofill_assistant/public/java/src/org/chromium/chrome/browser/autofill_assistant/AssistantAutofillCreditCard.java
@@ -0,0 +1,175 @@
+// Copyright 2022 The Chromium Authors. All rights reserved.
+// Use of this source code is governed by a BSD-style license that can be
+// found in the LICENSE file.
+
+package org.chromium.chrome.browser.autofill_assistant;
+
+import android.content.Context;
+
+import org.chromium.base.annotations.CalledByNative;
+import org.chromium.base.annotations.JNINamespace;
+import org.chromium.chrome.R;
+import org.chromium.url.GURL;
+
+import java.util.HashMap;
+import java.util.Map;
+
+/**
+ * A credit card, similar to the one used by the PersonalDataManager.
+ */
+@JNINamespace("autofill_assistant")
+public class AssistantAutofillCreditCard {
+    // Mappings from name: chrome/browser/ui/autofill/autofill_popup_controller_utils.cc
+    // Mappings to resource: chrome/browser/android/resource_id.h
+    private static final Map<String, Integer> sResourceMap = new HashMap<String, Integer>() {
+        {
+            put("americanExpressCC", R.drawable.amex_card);
+            put("dinersCC", R.drawable.diners_card);
+            put("discoverCC", R.drawable.discover_card);
+            put("eloCC", R.drawable.elo_card);
+            put("genericCC", R.drawable.ic_credit_card_black);
+            put("jcbCC", R.drawable.jcb_card);
+            put("masterCardCC", R.drawable.mc_card);
+            put("mirCC", R.drawable.mir_card);
+            put("troyCC", R.drawable.troy_card);
+            put("unionPayCC", R.drawable.unionpay_card);
+            put("visaCC", R.drawable.visa_card);
+            put("googleIssuedCC", R.drawable.google_pay_plex);
+            put("googlePay", R.drawable.google_pay);
+        }
+    };
+
+    @CalledByNative
+    private static int getIssuerIconDrawableId(String issuerIconDrawable) {
+        if (sResourceMap.containsKey(issuerIconDrawable)) {
+            return sResourceMap.get(issuerIconDrawable);
+        } else {
+            return R.drawable.ic_credit_card_black;
+        }
+    }
+
+    private final String mGUID;
+    private final String mOrigin;
+    private final boolean mIsLocal;
+    private final boolean mIsCached;
+    private final String mName;
+    private final String mNumber;
+    private final String mObfuscatedNumber;
+    private final String mMonth;
+    private final String mYear;
+    private final String mBasicCardIssuerNetwork;
+    private final int mIssuerIconDrawableId;
+    private final String mBillingAddressId;
+    private final String mServerId;
+    private final long mInstrumentId;
+    private final String mNickname;
+    private final GURL mCardArtUrl;
+
+    @CalledByNative
+    public AssistantAutofillCreditCard(String guid, String origin, boolean isLocal,
+            boolean isCached, String name, String number, String obfuscatedNumber, String month,
+            String year, String basicCardIssuerNetwork, int issuerIconDrawableId,
+            String billingAddressId, String serverId, long instrumentId, String nickname,
+            GURL cardArtUrl) {
+        mGUID = guid;
+        mOrigin = origin;
+        mIsLocal = isLocal;
+        mIsCached = isCached;
+        mName = name;
+        mNumber = number;
+        mObfuscatedNumber = obfuscatedNumber;
+        mMonth = month;
+        mYear = year;
+        mBasicCardIssuerNetwork = basicCardIssuerNetwork;
+        mIssuerIconDrawableId = issuerIconDrawableId;
+        mBillingAddressId = billingAddressId;
+        mServerId = serverId;
+        mInstrumentId = instrumentId;
+        mNickname = nickname;
+        mCardArtUrl = cardArtUrl;
+    }
+
+    @CalledByNative
+    public String getGUID() {
+        return mGUID;
+    }
+
+    @CalledByNative
+    public String getOrigin() {
+        return mOrigin;
+    }
+
+    @CalledByNative
+    public boolean getIsLocal() {
+        return mIsLocal;
+    }
+
+    @CalledByNative
+    public boolean getIsCached() {
+        return mIsCached;
+    }
+
+    @CalledByNative
+    public String getName() {
+        return mName;
+    }
+
+    @CalledByNative
+    public String getNumber() {
+        return mNumber;
+    }
+
+    public String getObfuscatedNumber() {
+        return mObfuscatedNumber;
+    }
+
+    @CalledByNative
+    public String getMonth() {
+        return mMonth;
+    }
+
+    @CalledByNative
+    public String getYear() {
+        return mYear;
+    }
+
+    public String getFormattedExpirationDate(Context context) {
+        return getMonth()
+                + context.getResources().getString(R.string.autofill_expiration_date_separator)
+                + getYear();
+    }
+
+    @CalledByNative
+    public String getBasicCardIssuerNetwork() {
+        return mBasicCardIssuerNetwork;
+    }
+
+    public int getIssuerIconDrawableId() {
+        return mIssuerIconDrawableId;
+    }
+
+    @CalledByNative
+    public String getBillingAddressId() {
+        return mBillingAddressId;
+    }
+
+    @CalledByNative
+    public String getServerId() {
+        return mServerId;
+    }
+
+    @CalledByNative
+    public long getInstrumentId() {
+        return mInstrumentId;
+    }
+
+    @CalledByNative
+    public String getNickname() {
+        return mNickname;
+    }
+
+    @CalledByNative
+    public GURL getCardArtUrl() {
+        return mCardArtUrl;
+    }
+}
diff --git a/chrome/android/features/autofill_assistant/public/java/src/org/chromium/chrome/browser/autofill_assistant/AssistantPaymentInstrument.java b/chrome/android/features/autofill_assistant/public/java/src/org/chromium/chrome/browser/autofill_assistant/AssistantPaymentInstrument.java
new file mode 100644
index 0000000..ca0cd3af
--- /dev/null
+++ b/chrome/android/features/autofill_assistant/public/java/src/org/chromium/chrome/browser/autofill_assistant/AssistantPaymentInstrument.java
@@ -0,0 +1,31 @@
+// Copyright 2022 The Chromium Authors. All rights reserved.
+// Use of this source code is governed by a BSD-style license that can be
+// found in the LICENSE file.
+
+package org.chromium.chrome.browser.autofill_assistant;
+
+import androidx.annotation.Nullable;
+
+/**
+ * A payment instrument, wrapping a {@link AssistantAutofillCreditCard} and an {@link
+ * AssistantAutofillProfile}.
+ */
+public class AssistantPaymentInstrument {
+    private final AssistantAutofillCreditCard mCreditCard;
+    private final @Nullable AssistantAutofillProfile mBillingAddress;
+
+    public AssistantPaymentInstrument(AssistantAutofillCreditCard creditCard,
+            @Nullable AssistantAutofillProfile billingAddress) {
+        mCreditCard = creditCard;
+        mBillingAddress = billingAddress;
+    }
+
+    public AssistantAutofillCreditCard getCreditCard() {
+        return mCreditCard;
+    }
+
+    @Nullable
+    public AssistantAutofillProfile getBillingAddress() {
+        return mBillingAddress;
+    }
+}
diff --git a/chrome/android/features/autofill_assistant/public/java_sources.gni b/chrome/android/features/autofill_assistant/public/java_sources.gni
index 8f0fecc..e730039 100644
--- a/chrome/android/features/autofill_assistant/public/java_sources.gni
+++ b/chrome/android/features/autofill_assistant/public/java_sources.gni
@@ -5,6 +5,7 @@
 public_autofill_assistant_java_sources = [
   "//chrome/android/features/autofill_assistant/public/java/src/org/chromium/chrome/browser/autofill_assistant/AssistantAccessTokenUtil.java",
   "//chrome/android/features/autofill_assistant/public/java/src/org/chromium/chrome/browser/autofill_assistant/AssistantAccessTokenUtilChrome.java",
+  "//chrome/android/features/autofill_assistant/public/java/src/org/chromium/chrome/browser/autofill_assistant/AssistantAutofillCreditCard.java",
   "//chrome/android/features/autofill_assistant/public/java/src/org/chromium/chrome/browser/autofill_assistant/AssistantAutofillProfile.java",
   "//chrome/android/features/autofill_assistant/public/java/src/org/chromium/chrome/browser/autofill_assistant/AssistantBrowserControls.java",
   "//chrome/android/features/autofill_assistant/public/java/src/org/chromium/chrome/browser/autofill_assistant/AssistantBrowserControlsChrome.java",
@@ -22,6 +23,7 @@
   "//chrome/android/features/autofill_assistant/public/java/src/org/chromium/chrome/browser/autofill_assistant/AssistantModuleInstallUi.java",
   "//chrome/android/features/autofill_assistant/public/java/src/org/chromium/chrome/browser/autofill_assistant/AssistantModuleInstallUiProviderChrome.java",
   "//chrome/android/features/autofill_assistant/public/java/src/org/chromium/chrome/browser/autofill_assistant/AssistantOnboardingHelper.java",
+  "//chrome/android/features/autofill_assistant/public/java/src/org/chromium/chrome/browser/autofill_assistant/AssistantPaymentInstrument.java",
   "//chrome/android/features/autofill_assistant/public/java/src/org/chromium/chrome/browser/autofill_assistant/AssistantProfileImageUtil.java",
   "//chrome/android/features/autofill_assistant/public/java/src/org/chromium/chrome/browser/autofill_assistant/AssistantProfileImageUtilChrome.java",
   "//chrome/android/features/autofill_assistant/public/java/src/org/chromium/chrome/browser/autofill_assistant/AssistantSnackbar.java",
diff --git a/chrome/android/features/tab_ui/java/strings/translations/android_chrome_tab_ui_strings_am.xtb b/chrome/android/features/tab_ui/java/strings/translations/android_chrome_tab_ui_strings_am.xtb
index c6cef40..ff861ba 100644
--- a/chrome/android/features/tab_ui/java/strings/translations/android_chrome_tab_ui_strings_am.xtb
+++ b/chrome/android/features/tab_ui/java/strings/translations/android_chrome_tab_ui_strings_am.xtb
@@ -34,12 +34,14 @@
 <translation id="3882834874697329510">በክፍት ትር ውስጥ ዝቅተኛ ዋጋ ሲኖር ማንቂያ ለማግኘት በቅንብሮች ውስጥ ማሳወቂያዎችን ያብሩ።</translation>
 <translation id="3940195383040445971">በትሮች ላይ ዋጋዎችን ይከታተሉ</translation>
 <translation id="3996880007329611795">ማሳወቂያ ይድረሰዎት</translation>
+<translation id="4095555372828143870">ሁሉንም ትሮች ዘግተው ማንኛውም ያልተቀመጠ ውሂብ ይጥፋ?</translation>
 <translation id="4133493477912226187"><ph name="NUMBER_OF_TABS" /> ትሮች የሚዛመዱ ይመስላሉ ይቦደኑ?</translation>
 <translation id="4212246570487010370">ማሰሱን ይቀጥሉ</translation>
 <translation id="4450893287417543264">ዳግም አታሳይ</translation>
 <translation id="4648718555153979859">የእርስዎ ትሮች እዚህ አብረው ይቦደናሉ</translation>
 <translation id="4788280460033928884">{REVIEWS,plural, =1{(<ph name="REVIEWS_COUNT_ONE" /> ግምገማ)}one{(<ph name="REVIEWS_COUNT_MANY" /> ግምገማዎች)}other{(<ph name="REVIEWS_COUNT_MANY" /> ግምገማዎች)}}</translation>
 <translation id="4850886885716139402">አሳይ</translation>
+<translation id="4870911314065352661">ሁሉም ትሮች ይዘጉ?</translation>
 <translation id="492284538114688557">የዋጋ ቅነሳ ታይቷል</translation>
 <translation id="5007392906805964215">ገምግም</translation>
 <translation id="5073204694187207510">የሙሉ ማያ ፍርግርግን ደብቅ</translation>
@@ -68,6 +70,7 @@
 <translation id="7204204600596740190">ባለብዙ ምርጫ ሁነታ</translation>
 <translation id="7326879924029668159">የመመለሻ መመሪያን እና ሌሎችንም ይመልከቱ</translation>
 <translation id="7352298686197644113">በክፍት ትሮችዎ ውስጥ የትኛው ንጥል የተሻለ ዋጋ እንዳለው ይመልከቱ</translation>
+<translation id="7475676397080516143">ማስጠንቀቂያ፦ ይህ እርምጃ ሊቀለበስ አይችልም። ሁሉንም ትሮች ዘግተው ማንኛውም ያልተቀመጠ ውሂብ ይጥፋ?</translation>
 <translation id="753732157349120914">የትር መቀያየሪያ</translation>
 <translation id="7559245342362162951">የቡድን ትሮች በሙሉ ማያ ፍርግርግ አሳይ</translation>
 <translation id="7792771145871471484">ጥቆማ ሐሳቦችን ይገምግሙ።</translation>
diff --git a/chrome/android/features/tab_ui/java/strings/translations/android_chrome_tab_ui_strings_as.xtb b/chrome/android/features/tab_ui/java/strings/translations/android_chrome_tab_ui_strings_as.xtb
index 4e02dd8..1cd297a 100644
--- a/chrome/android/features/tab_ui/java/strings/translations/android_chrome_tab_ui_strings_as.xtb
+++ b/chrome/android/features/tab_ui/java/strings/translations/android_chrome_tab_ui_strings_as.xtb
@@ -34,12 +34,14 @@
 <translation id="3882834874697329510">খোলা থকা কোনো টেবত কম মূল্যৰ তথ্য উপলব্ধ হ’লে সতৰ্কবাৰ্তা লাভ কৰিবলৈ ছেটিঙলৈ গৈ জাননী অন কৰক।</translation>
 <translation id="3940195383040445971">টেবত মূল্য ট্ৰেক কৰক</translation>
 <translation id="3996880007329611795">জাননী পাওক</translation>
+<translation id="4095555372828143870">আটাইবোৰ টেব বন্ধ কৰি ছেভ নকৰা কোনো ডেটা হেৰুৱাবনে?</translation>
 <translation id="4133493477912226187"><ph name="NUMBER_OF_TABS" /> টা টেব জড়িত যেন লাগিছে। সেইকেইটা একগোট কৰিবনে?</translation>
 <translation id="4212246570487010370">ব্ৰাউজ কৰা অব্যাহত ৰাখক</translation>
 <translation id="4450893287417543264">পুনৰ নেদেখুৱাব</translation>
 <translation id="4648718555153979859">আপোনাৰ টেবসমূহ ইয়াত একগোট কৰা হৈছে</translation>
 <translation id="4788280460033928884">{REVIEWS,plural, =1{(<ph name="REVIEWS_COUNT_ONE" /> টা পৰ্যালোচনা)}one{(<ph name="REVIEWS_COUNT_MANY" /> টা পৰ্যালোচনা)}other{(<ph name="REVIEWS_COUNT_MANY" /> টা পৰ্যালোচনা)}}</translation>
 <translation id="4850886885716139402">চাওক</translation>
+<translation id="4870911314065352661">আটাইবোৰ টেব বন্ধ কৰিবনে?</translation>
 <translation id="492284538114688557">মূল্য কমা বুলি ধৰা পৰিছে</translation>
 <translation id="5007392906805964215">পৰ্যালোচনা কৰক</translation>
 <translation id="5073204694187207510">সম্পূৰ্ণ স্ক্রীণৰ গ্ৰিড লুকুৱাওক</translation>
@@ -68,6 +70,7 @@
 <translation id="7204204600596740190">একাধিক বাছনি কৰা ম’ড</translation>
 <translation id="7326879924029668159">উভতাই দিয়াৰ নীতি আৰু অন্য বহুতো চাওক</translation>
 <translation id="7352298686197644113">আপোনাৰ খোলা থকা টেবসমূহত কোনটো বস্তুৰ মূল্য কম সেয়া চাওক</translation>
+<translation id="7475676397080516143">সকীয়নি: এই কাৰ্যটো আনডু কৰিব নোৱাৰি। আটাইবোৰ টেব বন্ধ কৰি ছেভ নকৰা কোনো ডেটা হেৰুৱাবনে?</translation>
 <translation id="753732157349120914">টেব সলনি কৰোঁতা</translation>
 <translation id="7559245342362162951">গোটৰ টেব সম্পূৰ্ণ স্ক্রীণৰ গ্রিডত দেখুৱাওক</translation>
 <translation id="7792771145871471484">পৰামৰ্শসমূহ পৰ্যালোচনা কৰক।</translation>
diff --git a/chrome/android/features/tab_ui/java/strings/translations/android_chrome_tab_ui_strings_az.xtb b/chrome/android/features/tab_ui/java/strings/translations/android_chrome_tab_ui_strings_az.xtb
index 10c1010..1ea5a26 100644
--- a/chrome/android/features/tab_ui/java/strings/translations/android_chrome_tab_ui_strings_az.xtb
+++ b/chrome/android/features/tab_ui/java/strings/translations/android_chrome_tab_ui_strings_az.xtb
@@ -34,12 +34,14 @@
 <translation id="3882834874697329510">Qiymət endirildikdə açıq tabda bildiriş almaq üçün Ayarlarda bildirişləri aktiv edin.</translation>
 <translation id="3940195383040445971">Tablarda qiymətləri izləyin</translation>
 <translation id="3996880007329611795">Bildiriş alın</translation>
+<translation id="4095555372828143870">Bütün tablar bağlansın və yadda saxlanmamış data itirilsin?</translation>
 <translation id="4133493477912226187"><ph name="NUMBER_OF_TABS" /> tab əlaqəli görünür. Onlar qruplaşdırılsın?</translation>
 <translation id="4212246570487010370">Axtarmağa davam edin</translation>
 <translation id="4450893287417543264">Göstərilməsin</translation>
 <translation id="4648718555153979859">Tablar burada qruplaşdırılır</translation>
 <translation id="4788280460033928884">{REVIEWS,plural, =1{(<ph name="REVIEWS_COUNT_ONE" /> rəy)}other{(<ph name="REVIEWS_COUNT_MANY" /> rəy)}}</translation>
 <translation id="4850886885716139402">Görünüş</translation>
+<translation id="4870911314065352661">Bütün tablar bağlansın?</translation>
 <translation id="492284538114688557">Qiymət endirimi aşkarlandı</translation>
 <translation id="5007392906805964215">Nəzərdən keçirin</translation>
 <translation id="5073204694187207510">Tam ekran cədvəlini gizlədin</translation>
@@ -68,6 +70,7 @@
 <translation id="7204204600596740190">Çoxsaylı seçim rejimi</translation>
 <translation id="7326879924029668159">Qaytarma siyasətinə və digər məlumatlara baxın</translation>
 <translation id="7352298686197644113">Açıq tablarda hansı əşyanın qiymətinin daha aşağı olduğuna baxın</translation>
+<translation id="7475676397080516143">XƏBƏRDARLIQ: Bu əməliyyat geri qaytarıla bilməz. Bütün tablar bağlansın və yadda saxlanmamış data itirilsin?</translation>
 <translation id="753732157349120914">Tab Keçiricisi</translation>
 <translation id="7559245342362162951">Qrup tabını tam ekran cədvəlində göstərin</translation>
 <translation id="7792771145871471484">Təklifləri nəzərdən keçirin.</translation>
diff --git a/chrome/android/features/tab_ui/java/strings/translations/android_chrome_tab_ui_strings_ka.xtb b/chrome/android/features/tab_ui/java/strings/translations/android_chrome_tab_ui_strings_ka.xtb
index 4b17dcfb..fc39aa9 100644
--- a/chrome/android/features/tab_ui/java/strings/translations/android_chrome_tab_ui_strings_ka.xtb
+++ b/chrome/android/features/tab_ui/java/strings/translations/android_chrome_tab_ui_strings_ka.xtb
@@ -34,12 +34,14 @@
 <translation id="3882834874697329510">იმისთვის, რომ მიიღოთ გაფრთხილება, როცა გახსნილ ჩანართში უფრო დაბალი ფასი იქნება, ჩართეთ შეტყობინების ფუნქცია პარამეტრებიდან.</translation>
 <translation id="3940195383040445971">ფასებისთვის თვალის მიდევნება ჩანართებზე</translation>
 <translation id="3996880007329611795">შეტყობინებების მიღება</translation>
+<translation id="4095555372828143870">გსურთ, ყველა ჩანართი დაიხუროს და შეუნახავი მონაცემები წაიშალოს?</translation>
 <translation id="4133493477912226187">როგორც ჩანს, <ph name="NUMBER_OF_TABS" /> ჩანართი დაკავშირებულია. გსურთ მათი დაჯგუფება?</translation>
 <translation id="4212246570487010370">დათვალიერების გაგრძელება</translation>
 <translation id="4450893287417543264">აღარ გამოჩნდეს</translation>
 <translation id="4648718555153979859">თქვენი ჩანართები აქ დაჯგუფებულია</translation>
 <translation id="4788280460033928884">{REVIEWS,plural, =1{(<ph name="REVIEWS_COUNT_ONE" /> მიმოხილვა)}other{(<ph name="REVIEWS_COUNT_MANY" /> მიმოხილვა)}}</translation>
 <translation id="4850886885716139402">გადახედვა</translation>
+<translation id="4870911314065352661">გსურთ, ყველა ჩანართი დაიხუროს?</translation>
 <translation id="492284538114688557">აღმოჩენილია ფასის დაწევა</translation>
 <translation id="5007392906805964215">გადახედვა</translation>
 <translation id="5073204694187207510">სრულეკრანიანი ბადის დამალვა</translation>
@@ -68,6 +70,7 @@
 <translation id="7204204600596740190">რამდენიმეარჩევანიანი რეჟიმი</translation>
 <translation id="7326879924029668159">იხილეთ დაბრუნების წესები და სხვა ინფორმაცია</translation>
 <translation id="7352298686197644113">იხილეთ, რომელ ერთეულს აქვს უფრო დაბალი ფასი თქვენს გახსნილ ჩანართებში</translation>
+<translation id="7475676397080516143">ყურადღება! ამ მოქმედების გაუქმება ვერ მოხერხდება. გსურთ, ყველა ჩანართი დაიხუროს და შეუნახავი მონაცემები წაიშალოს?</translation>
 <translation id="753732157349120914">ჩანართების გადამრთველი</translation>
 <translation id="7559245342362162951">ჯგუფის ჩანართების სრულეკრანიან ბადეში ჩვენება</translation>
 <translation id="7792771145871471484">შემოთავაზებების გადახედვა.</translation>
diff --git a/chrome/android/features/tab_ui/java/strings/translations/android_chrome_tab_ui_strings_kk.xtb b/chrome/android/features/tab_ui/java/strings/translations/android_chrome_tab_ui_strings_kk.xtb
index 2285f70..9f1da6c 100644
--- a/chrome/android/features/tab_ui/java/strings/translations/android_chrome_tab_ui_strings_kk.xtb
+++ b/chrome/android/features/tab_ui/java/strings/translations/android_chrome_tab_ui_strings_kk.xtb
@@ -34,12 +34,14 @@
 <translation id="3882834874697329510">Ашық қойындыда төмен баға болған кезде, хабарландыру алу үшін "Параметрлер" бөлімінен хабарландыруларды қосыңыз.</translation>
 <translation id="3940195383040445971">Бағаны қойындыларда бақылау</translation>
 <translation id="3996880007329611795">Хабарландыру алу</translation>
+<translation id="4095555372828143870">Барлық қойынды жабылып, сақталмаған барлық дерек жойылсын ба?</translation>
 <translation id="4133493477912226187"><ph name="NUMBER_OF_TABS" /> қойынды өзара қатысты сияқты. Олар топтастырылсын ба?</translation>
 <translation id="4212246570487010370">Үздіксіз көру</translation>
 <translation id="4450893287417543264">Қайта көрсетілмесін</translation>
 <translation id="4648718555153979859">Қойындылар осы жерге топтастырылады.</translation>
 <translation id="4788280460033928884">{REVIEWS,plural, =1{(<ph name="REVIEWS_COUNT_ONE" /> пікір)}other{(<ph name="REVIEWS_COUNT_MANY" /> пікір)}}</translation>
 <translation id="4850886885716139402">Көрініс</translation>
+<translation id="4870911314065352661">Барлық қойынды жабылсын ба?</translation>
 <translation id="492284538114688557">Бағасы арзандады</translation>
 <translation id="5007392906805964215">Көру</translation>
 <translation id="5073204694187207510">Толық экрандық торды жасыру</translation>
@@ -68,6 +70,7 @@
 <translation id="7204204600596740190">Бірнеше нұсқа таңдау режимі</translation>
 <translation id="7326879924029668159">Қайтару саясаты мен басқа да ақпаратты көріңіз.</translation>
 <translation id="7352298686197644113">Ашық тұрған қойындылардағы қай тауардың бағасы арзан екенін көріңіз.</translation>
+<translation id="7475676397080516143">ЕСКЕРТУ: бұл әрекетті кері қайтару мүмкін емес. Барлық қойынды жабылып, сақталмаған барлық дерек жойылсын ба?</translation>
 <translation id="753732157349120914">Қойынды ауыстырғышы</translation>
 <translation id="7559245342362162951">Топ қойындыларын толық экранда тор түрінде көрсету</translation>
 <translation id="7792771145871471484">Ұсыныстарды көріңіз.</translation>
diff --git a/chrome/android/features/tab_ui/java/strings/translations/android_chrome_tab_ui_strings_kn.xtb b/chrome/android/features/tab_ui/java/strings/translations/android_chrome_tab_ui_strings_kn.xtb
index 2943a3b0..90c42814 100644
--- a/chrome/android/features/tab_ui/java/strings/translations/android_chrome_tab_ui_strings_kn.xtb
+++ b/chrome/android/features/tab_ui/java/strings/translations/android_chrome_tab_ui_strings_kn.xtb
@@ -34,12 +34,14 @@
 <translation id="3882834874697329510">ತೆರೆದ ಟ್ಯಾಬ್‌ನಲ್ಲಿ ಬೆಲೆ ಕಡಿಮೆಯಿದ್ದಾಗ ನೀವು ಎಚ್ಚರಿಕೆಯನ್ನು ಪಡೆಯಲು, ಸೆಟ್ಟಿಂಗ್‌ಗಳಲ್ಲಿ ಅಧಿಸೂಚನೆಗಳನ್ನು ತೆರೆಯಿರಿ.</translation>
 <translation id="3940195383040445971">ಟ್ಯಾಬ್‌ಗಳಲ್ಲಿ ಬೆಲೆಗಳನ್ನು ಟ್ರ್ಯಾಕ್ ಮಾಡಿ</translation>
 <translation id="3996880007329611795">ಸೂಚನೆ ಪಡೆಯಿರಿ</translation>
+<translation id="4095555372828143870">ಎಲ್ಲಾ ಟ್ಯಾಬ್‌ಗಳನ್ನು ಮುಚ್ಚಿ, ಉಳಿಸದಿರುವ ಡೇಟಾ ಕಳೆದುಕೊಳ್ಳಬೇಕೇ?</translation>
 <translation id="4133493477912226187"><ph name="NUMBER_OF_TABS" /> ಟ್ಯಾಬ್‌ಗಳು ಸಂಬಂಧಿಸಿರುವ ಹಾಗೆ ಕಾಣುತ್ತಿದೆ. ಅವುಗಳನ್ನು ಗುಂಪು ಮಾಡುವುದೇ?</translation>
 <translation id="4212246570487010370">ಬ್ರೌಸಿಂಗ್ ಮುಂದುವರಿಸಿ</translation>
 <translation id="4450893287417543264">ಮತ್ತೊಮ್ಮೆ ತೋರಿಸಬೇಡಿ</translation>
 <translation id="4648718555153979859">ಟ್ಯಾಬ್‌ಗಳನ್ನು ಇಲ್ಲಿ ಒಟ್ಟಿಗೆ ಗುಂಪುಗೂಡಿಸಲಾಗಿದೆ</translation>
 <translation id="4788280460033928884">{REVIEWS,plural, =1{(<ph name="REVIEWS_COUNT_ONE" /> ವಿಮರ್ಶೆ)}one{(<ph name="REVIEWS_COUNT_MANY" /> ವಿಮರ್ಶೆಗಳು)}other{(<ph name="REVIEWS_COUNT_MANY" /> ವಿಮರ್ಶೆಗಳು)}}</translation>
 <translation id="4850886885716139402">ವೀಕ್ಷಣೆ</translation>
+<translation id="4870911314065352661">ಎಲ್ಲಾ ಟ್ಯಾಬ್‌ಗಳನ್ನು ಮುಚ್ಚಬೇಕೇ?</translation>
 <translation id="492284538114688557">ದರ ಇಳಿಕೆ ಕಂಡುಬಂದಿದೆ</translation>
 <translation id="5007392906805964215">ಪರಿಶೀಲಿಸಿ</translation>
 <translation id="5073204694187207510">ಪೂರ್ಣ ಸ್ಕ್ರೀನ್ ಗ್ರಿಡ್‌ ಅನ್ನು ಮರೆಮಾಡಿ</translation>
@@ -68,6 +70,7 @@
 <translation id="7204204600596740190">ಬಹು ಆಯ್ಕೆ ಮೋಡ್</translation>
 <translation id="7326879924029668159">ಹಿಂತಿರುಗಿಸುವಿಕೆ ನೀತಿ ಹಾಗೂ ಮುಂತಾದವುಗಳನ್ನು ನೋಡಿ</translation>
 <translation id="7352298686197644113">ನೀವು ತೆರೆದಿರುವ ಟ್ಯಾಬ್‌ಗಳಲ್ಲಿ ಯಾವ ಐಟಂ ಕಡಿಮೆ ಬೆಲೆಯನ್ನು ಹೊಂದಿದೆ ಎಂಬುದನ್ನು ನೋಡಿ</translation>
+<translation id="7475676397080516143">ಎಚ್ಚರಿಕೆ: ಈ ಕ್ರಿಯೆಯನ್ನು ರದ್ದುಗೊಳಿಸಲು ಸಾಧ್ಯವಿಲ್ಲ. ಎಲ್ಲಾ ಟ್ಯಾಬ್‌ಗಳನ್ನು ಮುಚ್ಚಿ, ಉಳಿಸದಿರುವ ಡೇಟಾ ಕಳೆದುಕೊಳ್ಳಬೇಕೇ?</translation>
 <translation id="753732157349120914">ಟ್ಯಾಬ್ ಸ್ವಿಚರ್</translation>
 <translation id="7559245342362162951">ಗುಂಪಿನ ಟ್ಯಾಬ್‌ಗಳನ್ನು ಪೂರ್ಣ ಸ್ಕ್ರೀನ್‌ ಗ್ರಿಡ್‌ನಲ್ಲಿ ತೋರಿಸಿ</translation>
 <translation id="7792771145871471484">ಸಲಹೆಗಳನ್ನು ಪರಿಶೀಲಿಸಿ.</translation>
diff --git a/chrome/android/features/tab_ui/java/strings/translations/android_chrome_tab_ui_strings_mk.xtb b/chrome/android/features/tab_ui/java/strings/translations/android_chrome_tab_ui_strings_mk.xtb
index 15b6439..6ab27f21 100644
--- a/chrome/android/features/tab_ui/java/strings/translations/android_chrome_tab_ui_strings_mk.xtb
+++ b/chrome/android/features/tab_ui/java/strings/translations/android_chrome_tab_ui_strings_mk.xtb
@@ -34,12 +34,14 @@
 <translation id="3882834874697329510">За да добиете известување ако има пониска цена во некоја отворена картичка, вклучете ги известувањата во „Поставки“.</translation>
 <translation id="3940195383040445971">Следете ги цените на картичките</translation>
 <translation id="3996880007329611795">Добивајте известувања</translation>
+<translation id="4095555372828143870">Да се затворат сите картички и да се изгубат сите незачувани податоци?</translation>
 <translation id="4133493477912226187"><ph name="NUMBER_OF_TABS" /> картички изгледаат поврзани. Да се групираат?</translation>
 <translation id="4212246570487010370">Продолжете да прелистувате</translation>
 <translation id="4450893287417543264">Не прикажувај повторно</translation>
 <translation id="4648718555153979859">Картичките тука се групирани заедно</translation>
 <translation id="4788280460033928884">{REVIEWS,plural, =1{(<ph name="REVIEWS_COUNT_ONE" /> рецензија)}one{(<ph name="REVIEWS_COUNT_MANY" /> рецензија)}other{(<ph name="REVIEWS_COUNT_MANY" /> рецензии)}}</translation>
 <translation id="4850886885716139402">Приказ</translation>
+<translation id="4870911314065352661">Да се затворат сите картички?</translation>
 <translation id="492284538114688557">Забележано е намалување на цената</translation>
 <translation id="5007392906805964215">Прегледајте</translation>
 <translation id="5073204694187207510">Сокриј ја табелата на цел екран</translation>
@@ -68,6 +70,7 @@
 <translation id="7204204600596740190">Режим на повеќекратен избор</translation>
 <translation id="7326879924029668159">Погледнете ја политиката за враќање производи и друго</translation>
 <translation id="7352298686197644113">Видете која ставка на отворените картички има пониска цена</translation>
+<translation id="7475676397080516143">ПРЕДУПРЕДУВАЊЕ: дејствово не може да се врати. Да се затворат сите картички и да се изгубат сите незачувани податоци?</translation>
 <translation id="753732157349120914">Менувач на картички</translation>
 <translation id="7559245342362162951">Прикажи ги картичките од групата во табела на цел екран</translation>
 <translation id="7792771145871471484">Прегледајте ги предлозите.</translation>
diff --git a/chrome/android/features/tab_ui/java/strings/translations/android_chrome_tab_ui_strings_mr.xtb b/chrome/android/features/tab_ui/java/strings/translations/android_chrome_tab_ui_strings_mr.xtb
index 013c91d..6d99ef6 100644
--- a/chrome/android/features/tab_ui/java/strings/translations/android_chrome_tab_ui_strings_mr.xtb
+++ b/chrome/android/features/tab_ui/java/strings/translations/android_chrome_tab_ui_strings_mr.xtb
@@ -34,12 +34,14 @@
 <translation id="3882834874697329510">कमी किंमत उपलब्ध असताना उघड्या टॅबमध्ये सूचना मिळवण्यासाठी, सेंटिंग्ज मध्ये सूचना सुरू करा.</translation>
 <translation id="3940195383040445971">टॅबवर किमती ट्रॅक करा</translation>
 <translation id="3996880007329611795">सूचना मिळवा</translation>
+<translation id="4095555372828143870">सर्व टॅब बंद करायचे आहेत का आणि सेव्ह न केलेला कोणताही डेटा गमवायचा आहे का?</translation>
 <translation id="4133493477912226187"><ph name="NUMBER_OF_TABS" /> टॅब संबंधित वाटतात. त्यांचा गट बनवायचा का?</translation>
 <translation id="4212246570487010370">ब्राउझ करणे सुरू ठेवा</translation>
 <translation id="4450893287417543264">पुन्हा दाखवू नका</translation>
 <translation id="4648718555153979859">तुमचे टॅब येथे एकत्रित केले आहेत</translation>
 <translation id="4788280460033928884">{REVIEWS,plural, =1{(<ph name="REVIEWS_COUNT_ONE" /> परीक्षण)}other{(<ph name="REVIEWS_COUNT_MANY" /> परीक्षणे)}}</translation>
 <translation id="4850886885716139402">पहा</translation>
+<translation id="4870911314065352661">सर्व टॅब बंद करायचे आहेत का?</translation>
 <translation id="492284538114688557">किमतीतील घट आढळली</translation>
 <translation id="5007392906805964215">पुनरावलोकन करा</translation>
 <translation id="5073204694187207510">फुलस्क्रीन ग्रिड लपवा</translation>
@@ -68,6 +70,7 @@
 <translation id="7204204600596740190">एकाहून अधिक निवड मोड</translation>
 <translation id="7326879924029668159">रिटर्न धोरण आणि आणखी बरेच काही पहा</translation>
 <translation id="7352298686197644113">तुमच्या उघड्या असलेल्या टॅबमध्ये कोणत्या आयटमची किंमत आणखी कमी आहे ते पहा</translation>
+<translation id="7475676397080516143">चेतावणी: ही कृती पहिल्यासारखी केली जाऊ शकत नाही. सर्व टॅब बंद करायचे आहेत का आणि सेव्ह न केलेला कोणताही डेटा गमवायचा आहे का?</translation>
 <translation id="753732157349120914">टॅब स्विचर</translation>
 <translation id="7559245342362162951">फुलस्क्रीन ग्रिडमध्ये गटाचे टॅब दाखवा</translation>
 <translation id="7792771145871471484">सूचनांचे पुनरावलोकन करा.</translation>
diff --git a/chrome/android/features/tab_ui/java/strings/translations/android_chrome_tab_ui_strings_ms.xtb b/chrome/android/features/tab_ui/java/strings/translations/android_chrome_tab_ui_strings_ms.xtb
index 312a898..514ed753 100644
--- a/chrome/android/features/tab_ui/java/strings/translations/android_chrome_tab_ui_strings_ms.xtb
+++ b/chrome/android/features/tab_ui/java/strings/translations/android_chrome_tab_ui_strings_ms.xtb
@@ -34,12 +34,14 @@
 <translation id="3882834874697329510">Untuk mendapatkan makluman apabila terdapat harga yang lebih murah dalam tab yang terbuka, hidupkan pemberitahuan dalam Tetapan.</translation>
 <translation id="3940195383040445971">Jejaki harga pada tab</translation>
 <translation id="3996880007329611795">Dapatkan pemberitahuan</translation>
+<translation id="4095555372828143870">Tutup semua tab dan kehilangan sebarang data yang tidak disimpan?</translation>
 <translation id="4133493477912226187"><ph name="NUMBER_OF_TABS" /> tab kelihatan berkaitan. Himpunkan semua tab itu?</translation>
 <translation id="4212246570487010370">Teruskan penyemakan imbas</translation>
 <translation id="4450893287417543264">Jangan tunjukkan lagi</translation>
 <translation id="4648718555153979859">Tab anda dikumpulkan bersama di sini</translation>
 <translation id="4788280460033928884">{REVIEWS,plural, =1{(<ph name="REVIEWS_COUNT_ONE" /> ulasan)}other{(<ph name="REVIEWS_COUNT_MANY" /> ulasan)}}</translation>
 <translation id="4850886885716139402">Lihat</translation>
+<translation id="4870911314065352661">Tutup semua tab?</translation>
 <translation id="492284538114688557">Penurunan harga dikesan</translation>
 <translation id="5007392906805964215">Semak</translation>
 <translation id="5073204694187207510">Sembunyikan grid skrin penuh</translation>
@@ -68,6 +70,7 @@
 <translation id="7204204600596740190">Mod berbilang pilihan</translation>
 <translation id="7326879924029668159">Lihat dasar pemulangan dan pelbagai lagi</translation>
 <translation id="7352298686197644113">Lihat item yang lebih murah dalam tab yang terbuka</translation>
+<translation id="7475676397080516143">AMARAN: Tindakan ini tidak boleh dibuat asal. Tutup semua tab dan kehilangan sebarang data yang tidak disimpan?</translation>
 <translation id="753732157349120914">Penukar Tab</translation>
 <translation id="7559245342362162951">Tunjukkan tab kumpulan dalam grid skrin penuh</translation>
 <translation id="7792771145871471484">Semak cadangan.</translation>
diff --git a/chrome/android/features/tab_ui/java/strings/translations/android_chrome_tab_ui_strings_my.xtb b/chrome/android/features/tab_ui/java/strings/translations/android_chrome_tab_ui_strings_my.xtb
index 8868af60..7ffc0ee 100644
--- a/chrome/android/features/tab_ui/java/strings/translations/android_chrome_tab_ui_strings_my.xtb
+++ b/chrome/android/features/tab_ui/java/strings/translations/android_chrome_tab_ui_strings_my.xtb
@@ -34,12 +34,14 @@
 <translation id="3882834874697329510">ဖွင့်ထားသောတဘ်တွင် ဈေးကျသွားသည့်အခါ သတိပေးချက်ရရှိရန် ‘ဆက်တင်များ’ တွင် အကြောင်းကြားချက်များကို ဖွင့်ပါ။</translation>
 <translation id="3940195383040445971">တဘ်များတွင် ဈေးနှုန်းများစောင့်ကြည့်ရန်</translation>
 <translation id="3996880007329611795">အကြောင်းကြားချက် ရယူရန်</translation>
+<translation id="4095555372828143870">တဘ်အားလုံးပိတ်ပြီး သိမ်းမထားသောဒေတာတိုင်းကို ဆုံးရှုံးခံပါမလား။</translation>
 <translation id="4133493477912226187">တဘ် <ph name="NUMBER_OF_TABS" /> ခုက ဆက်စပ်ပုံပေါ်သည်။ ၎င်းတို့ကို အုပ်စုဖွဲ့မလား။</translation>
 <translation id="4212246570487010370">ဆက်တိုက် ရှာကြည့်ခြင်း</translation>
 <translation id="4450893287417543264">ထပ်မပြပါနှင့်</translation>
 <translation id="4648718555153979859">သင့်တဘ်များကို ဤနေရာတွင် အုပ်စုဖွဲ့ထားသည်</translation>
 <translation id="4788280460033928884">{REVIEWS,plural, =1{(သုံးသပ်ချက် <ph name="REVIEWS_COUNT_ONE" /> ခု)}other{(သုံးသပ်ချက် <ph name="REVIEWS_COUNT_MANY" /> ခု)}}</translation>
 <translation id="4850886885716139402">မြင်ကွင်း</translation>
+<translation id="4870911314065352661">တဘ်အားလုံး ပိတ်မလား။</translation>
 <translation id="492284538114688557">ဈေးကျသွားသည်ကို တွေ့သည်</translation>
 <translation id="5007392906805964215">ပြန်ကြည့်ရန်</translation>
 <translation id="5073204694187207510">မျက်နှာပြင်ပြည့် ဇယားကွက်ကို ဝှက်ရန်</translation>
@@ -68,6 +70,7 @@
 <translation id="7204204600596740190">မျိုးစုံရွေးမုဒ်</translation>
 <translation id="7326879924029668159">ပြန်ပို့သည့်မူဝါဒနှင့် အခြားအရာများ ကြည့်နိုင်သည်</translation>
 <translation id="7352298686197644113">သင်ဖွင့်ထားသောတဘ်များတွင် မည်သည့်အရာက ဈေးကျသွားကြောင်း ကြည့်နိုင်သည်</translation>
+<translation id="7475676397080516143">သတိပေးချက်- ဤလုပ်ဆောင်ချက်ကို ပြန်ပြင်၍မရပါ။ တဘ်အားလုံးပိတ်ပြီး သိမ်းမထားသောဒေတာတိုင်းကို ဆုံးရှုံးခံပါမလား။</translation>
 <translation id="753732157349120914">တဘ်ပြောင်းခလုတ်</translation>
 <translation id="7559245342362162951">မျက်နှာပြင်ပြည့် ဇယားကွက်အတွင်း အုပ်စု၏ တဘ်များကို ပြရန်</translation>
 <translation id="7792771145871471484">အကြံပြုချက်များကို စစ်ဆေးရန်။</translation>
diff --git a/chrome/android/features/tab_ui/java/strings/translations/android_chrome_tab_ui_strings_ne.xtb b/chrome/android/features/tab_ui/java/strings/translations/android_chrome_tab_ui_strings_ne.xtb
index bd117cb2..4f7bda8 100644
--- a/chrome/android/features/tab_ui/java/strings/translations/android_chrome_tab_ui_strings_ne.xtb
+++ b/chrome/android/features/tab_ui/java/strings/translations/android_chrome_tab_ui_strings_ne.xtb
@@ -34,12 +34,14 @@
 <translation id="3882834874697329510">तपाईंले खोल्नुभएको ट्याबमा कुनै वस्तुको मूल्य घट्दा अलर्ट प्राप्त गर्न सेटिङमा गई सूचना प्राप्त गर्ने सुविधा अन गर्नुहोस्।</translation>
 <translation id="3940195383040445971">ट्याबहरूमा मूल्य ट्र्याक गर्नुहोस्</translation>
 <translation id="3996880007329611795">सूचना प्राप्त गर्नुहोस्</translation>
+<translation id="4095555372828143870">सबै ट्याब बन्द गर्ने तथा सेभ गर्न बाँकी डेटा गुमाउने हो?</translation>
 <translation id="4133493477912226187"><ph name="NUMBER_OF_TABS" /> ट्याबहरू एकअर्कासँग सम्बन्धित देखिन्छन्। यिनलाई एउटै समूहमा राख्ने हो?</translation>
 <translation id="4212246570487010370">ब्राउजिङ जारी राख्नुहोस्</translation>
 <translation id="4450893287417543264">फेरि नदेखाउनुहोस्</translation>
 <translation id="4648718555153979859">तपाईंका ट्याबहरू यहाँ एकै ठाउँमा समूहबद्ध गरिएको छन्</translation>
 <translation id="4788280460033928884">{REVIEWS,plural, =1{(<ph name="REVIEWS_COUNT_ONE" /> समीक्षा)}other{(<ph name="REVIEWS_COUNT_MANY" /> वटा समीक्षा)}}</translation>
 <translation id="4850886885716139402">हेर्नुहोस्</translation>
+<translation id="4870911314065352661">सबै ट्याबहरू बन्द गर्ने हो?</translation>
 <translation id="492284538114688557">मूल्य घटेको कुरा पत्ता लाग्यो</translation>
 <translation id="5007392906805964215">समीक्षा गर्नुहोस्</translation>
 <translation id="5073204694187207510">फुल स्क्रिन ग्रिड लुकाउनुहोस्</translation>
@@ -68,6 +70,7 @@
 <translation id="7204204600596740190">एकभन्दा बढी ट्याब चयन गर्ने मोड</translation>
 <translation id="7326879924029668159">सामान फिर्ता गर्नेसम्बन्धी नीतिका साथै थप जानकारी हेर्नुहोस्</translation>
 <translation id="7352298686197644113">तपाईंले खोल्नुभएका ट्याबहरूमा भएको कुन चाहिँ वस्तुको मूल्य कम छ भन्ने कुरा हेर्नुहोस्</translation>
+<translation id="7475676397080516143">चेतावनी: यो कार्य अन्डू गर्न सकिँदैन। सबै ट्याब बन्द गर्ने तथा सेभ गर्न बाँकी डेटा गुमाउने हो?</translation>
 <translation id="753732157349120914">ट्याब स्विचर</translation>
 <translation id="7559245342362162951">समूहका ट्याबहरूलाई फुल स्क्रिन ग्रिडमा देखाउनुहोस्</translation>
 <translation id="7792771145871471484">सुझावहरूको समीक्षा गर्नुहोस्।</translation>
diff --git a/chrome/android/features/tab_ui/java/strings/translations/android_chrome_tab_ui_strings_or.xtb b/chrome/android/features/tab_ui/java/strings/translations/android_chrome_tab_ui_strings_or.xtb
index 7d4c00ef..39ce3977 100644
--- a/chrome/android/features/tab_ui/java/strings/translations/android_chrome_tab_ui_strings_or.xtb
+++ b/chrome/android/features/tab_ui/java/strings/translations/android_chrome_tab_ui_strings_or.xtb
@@ -34,12 +34,14 @@
 <translation id="3882834874697329510">ଖୋଲା ଥିବା ଏକ ଟାବରେ କମ୍ ମୂଲ୍ୟ ସମ୍ବନ୍ଧିତ ସୂଚନା ଉପଲବ୍ଧ ହେଲେ ଆଲର୍ଟ ପାଇବାକୁ ସେଟିଂସରେ "ବିଜ୍ଞପ୍ତିଗୁଡ଼ିକ" ଚାଲୁ କରନ୍ତୁ।</translation>
 <translation id="3940195383040445971">ଟାବଗୁଡ଼ିକରେ ମୂଲ୍ୟଗୁଡ଼ିକୁ ଟ୍ରାକ୍ କରନ୍ତୁ</translation>
 <translation id="3996880007329611795">ସୂଚନା ପାଆନ୍ତୁ</translation>
+<translation id="4095555372828143870">ସମସ୍ତ ଟାବକୁ ବନ୍ଦ କରି ସେଭ ହୋଇନଥିବା ଯେ କୌଣସି ଡାଟା ହରାଇବେ?</translation>
 <translation id="4133493477912226187"><ph name="NUMBER_OF_TABS" />ଟି ଟାବ୍ ସମ୍ବନ୍ଧିତ ଥିଲା ପରି ଲାଗୁଛି। ସେଗୁଡ଼ିକୁ ଗ୍ରୁପ୍ କରିବେ?</translation>
 <translation id="4212246570487010370">ବ୍ରାଉଜ୍ କରିବା ଜାରି ରଖନ୍ତୁ</translation>
 <translation id="4450893287417543264">ଆଉ ଦେଖାନ୍ତୁ ନାହିଁ</translation>
 <translation id="4648718555153979859">ଆପଣଙ୍କର ଟାବ୍‌ଗୁଡ଼ିକ, ଏଠାରେ ଏକାଠି କରାଯାଇଛି</translation>
 <translation id="4788280460033928884">{REVIEWS,plural, =1{(<ph name="REVIEWS_COUNT_ONE" />ଟି ସମୀକ୍ଷା)}other{(<ph name="REVIEWS_COUNT_MANY" />ଟି ସମୀକ୍ଷା)}}</translation>
 <translation id="4850886885716139402">ଦେଖନ୍ତୁ</translation>
+<translation id="4870911314065352661">ସମସ୍ତ ଟାବକୁ ବନ୍ଦ କରିବେ?</translation>
 <translation id="492284538114688557">ମୂଲ୍ୟରେ ହ୍ରାସର ଚିହ୍ନଟ କରାଯାଇଛି</translation>
 <translation id="5007392906805964215">ସମୀକ୍ଷା କରନ୍ତୁ</translation>
 <translation id="5073204694187207510">ପୂର୍ଣ୍ଣସ୍କ୍ରିନ୍‌ ଗ୍ରୀଡ୍‌କୁ ଲୁଚାନ୍ତୁ</translation>
@@ -68,6 +70,7 @@
 <translation id="7204204600596740190">ଏକାଧିକ-ଚୟନ ମୋଡ୍</translation>
 <translation id="7326879924029668159">ରିଟର୍ଣ୍ଣ ନୀତି ଏବଂ ଆହୁରି ଅନେକ କିଛି ଦେଖନ୍ତୁ</translation>
 <translation id="7352298686197644113">ଆପଣଙ୍କ ଖୋଲା ଥିବା ଟାବଗୁଡ଼ିକରେ କେଉଁ ଆଇଟମର ମୂଲ୍ୟ କମ୍ ତାହା ଦେଖନ୍ତୁ</translation>
+<translation id="7475676397080516143">ଚେତାବନୀ: ଏହି କାର୍ଯ୍ୟକୁ ପୂର୍ବବତ୍ କରାଯାଇପାରିବ ନାହିଁ। ସମସ୍ତ ଟାବକୁ ବନ୍ଦ କରି ସେଭ ହୋଇନଥିବା ଯେ କୌଣସି ଡାଟା ହରାଇବେ?</translation>
 <translation id="753732157349120914">ଟାବ୍ ସ୍ୱିଚର୍</translation>
 <translation id="7559245342362162951">ପୂର୍ଣ୍ଣ ସ୍କ୍ରିନ୍‌ ଗ୍ରୀଡ୍‌ରେ ଗୋଷ୍ଠୀର ଟାବ୍‌ଗୁଡ଼ିକ ଦେଖାନ୍ତୁ</translation>
 <translation id="7792771145871471484">ପ୍ରସ୍ତାବଗୁଡ଼ିକର ସମୀକ୍ଷା କରନ୍ତୁ।</translation>
diff --git a/chrome/android/features/tab_ui/java/strings/translations/android_chrome_tab_ui_strings_ro.xtb b/chrome/android/features/tab_ui/java/strings/translations/android_chrome_tab_ui_strings_ro.xtb
index 844cf549..48015b6 100644
--- a/chrome/android/features/tab_ui/java/strings/translations/android_chrome_tab_ui_strings_ro.xtb
+++ b/chrome/android/features/tab_ui/java/strings/translations/android_chrome_tab_ui_strings_ro.xtb
@@ -34,12 +34,14 @@
 <translation id="3882834874697329510">Pentru a primi o alertă atunci când scade prețul dintr-o filă deschisă, activează notificările în Setări.</translation>
 <translation id="3940195383040445971">Urmărește prețurile din file</translation>
 <translation id="3996880007329611795">Primește notificări</translation>
+<translation id="4095555372828143870">Închizi toate filele și pierzi datele nesalvate?</translation>
 <translation id="4133493477912226187"><ph name="NUMBER_OF_TABS" /> file par similare. Vrei să le grupezi?</translation>
 <translation id="4212246570487010370">Continuă navigarea</translation>
 <translation id="4450893287417543264">Nu mai afișa</translation>
 <translation id="4648718555153979859">Filele tale sunt grupate aici</translation>
 <translation id="4788280460033928884">{REVIEWS,plural, =1{(<ph name="REVIEWS_COUNT_ONE" /> recenzie)}few{(<ph name="REVIEWS_COUNT_MANY" /> recenzii)}other{(<ph name="REVIEWS_COUNT_MANY" /> de recenzii)}}</translation>
 <translation id="4850886885716139402">Afișează</translation>
+<translation id="4870911314065352661">Închizi toate filele?</translation>
 <translation id="492284538114688557">S-a detectat o scădere de preț</translation>
 <translation id="5007392906805964215">Examinează</translation>
 <translation id="5073204694187207510">Ascunde grila pe ecran complet</translation>
@@ -68,6 +70,7 @@
 <translation id="7204204600596740190">Modul de selectare multiplă</translation>
 <translation id="7326879924029668159">Vezi politica privind returnarea și altele</translation>
 <translation id="7352298686197644113">Vezi care dintre articolele din filele deschise are un preț mai mic</translation>
+<translation id="7475676397080516143">AVERTISMENT: acțiunea nu poate fi anulată. Închizi toate filele și pierzi datele nesalvate?</translation>
 <translation id="753732157349120914">Comutator de file</translation>
 <translation id="7559245342362162951">Arată filele grupului în grilă pe ecran complet</translation>
 <translation id="7792771145871471484">Examinează sugestiile.</translation>
diff --git a/chrome/android/features/tab_ui/java/strings/translations/android_chrome_tab_ui_strings_si.xtb b/chrome/android/features/tab_ui/java/strings/translations/android_chrome_tab_ui_strings_si.xtb
index 2356628f..94f3953 100644
--- a/chrome/android/features/tab_ui/java/strings/translations/android_chrome_tab_ui_strings_si.xtb
+++ b/chrome/android/features/tab_ui/java/strings/translations/android_chrome_tab_ui_strings_si.xtb
@@ -34,12 +34,14 @@
 <translation id="3882834874697329510">විවෘත ටැබ් එකක අඩු මිලක් ඇති විට ඇඟවීමක් ලබා ගැනීමට, සැකසීම්වල දැනුම්දීම් ක්‍රියාත්මක කරන්න.</translation>
 <translation id="3940195383040445971">ටැබවල මිල ගණන් හඹා යන්න</translation>
 <translation id="3996880007329611795">දැනුම්දීම් ලබන්න</translation>
+<translation id="4095555372828143870">සියලු ටැබ වසා නොසුරකින ලද කිනම් හෝ දත්ත අහිමි කර ගන්නවාද?</translation>
 <translation id="4133493477912226187">පටිති <ph name="NUMBER_OF_TABS" /> ක් අදාළ බව පෙනේ. ඒවා සමූහ කරන්නද?</translation>
 <translation id="4212246570487010370">දිගටම බ්‍රවුස් කරන්න</translation>
 <translation id="4450893287417543264">නැවත නොපෙන්වන්න</translation>
 <translation id="4648718555153979859">ඔබේ පටිති මෙහි එකට කණ්ඩායම් කෙරේ</translation>
 <translation id="4788280460033928884">{REVIEWS,plural, =1{(සමාලෝචන <ph name="REVIEWS_COUNT_ONE" />)}one{(සමාලෝචන <ph name="REVIEWS_COUNT_MANY" />)}other{(සමාලෝචන <ph name="REVIEWS_COUNT_MANY" />)}}</translation>
 <translation id="4850886885716139402">දසුන</translation>
+<translation id="4870911314065352661">සියලු ටැබ වසන්නද?</translation>
 <translation id="492284538114688557">මිල පහත වැටීමක් හඳුනා ගන්නා ලදි</translation>
 <translation id="5007392906805964215">සමාලෝචන කරන්න</translation>
 <translation id="5073204694187207510">පූර්ණ තිර ජාලකය සඟවන්න</translation>
@@ -68,6 +70,7 @@
 <translation id="7204204600596740190">බහු-තේරීම් ප්‍රකාරය</translation>
 <translation id="7326879924029668159">ආපසු යැවීමේ ප්‍රතිපත්තිය සහ තවත් දේ බලන්න</translation>
 <translation id="7352298686197644113">ඔබගේ විවෘත ටැබවල වඩා අඩු මිලක් ඇති අයිතමය බලන්න</translation>
+<translation id="7475676397080516143">අවවාදයයි: මෙම ක්‍රියාව පසුගමනය කළ නොහැකිය. සියලු ටැබ වසා නොසුරකින ලද කිනම් හෝ දත්ත අහිමි කර ගන්නවාද?</translation>
 <translation id="753732157349120914">ටැබ මාරුව</translation>
 <translation id="7559245342362162951">පූර්ණ තිර ජාලකයේ සමූහයේ පටිති පෙන්වන්න</translation>
 <translation id="7792771145871471484">යෝජනා සමාලෝචන කරන්න.</translation>
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 71a5f3b..71119d48 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
@@ -34,12 +34,14 @@
 <translation id="3882834874697329510">திறந்திருக்கும் தாவலில் குறைவான விலை இருக்கும்போது விழிப்பூட்டலைப் பெற, அமைப்புகளில் அறிவிப்புகளை இயக்குங்கள்.</translation>
 <translation id="3940195383040445971">தாவல்களில் விலையைக் கண்காணித்தல்</translation>
 <translation id="3996880007329611795">அறிவிப்பைப் பெறுக</translation>
+<translation id="4095555372828143870">அனைத்து உலாவிப் பக்கங்களையும் மூடுவதால் ஏதேனும் சேமிக்கப்படாத தரவை இழக்க நேரிடலாம்?</translation>
 <translation id="4133493477912226187"><ph name="NUMBER_OF_TABS" /> தாவல்கள் தொடர்புடையவையாகத் தெரிகின்றன. அவற்றைக் குழுவாக்கவா?</translation>
 <translation id="4212246570487010370">உலாவலைத் தொடர்க</translation>
 <translation id="4450893287417543264">மீண்டும் காட்டாதே</translation>
 <translation id="4648718555153979859">உங்கள் தாவல்கள் இங்கு குழுவாக்கப்பட்டுள்ளன</translation>
 <translation id="4788280460033928884">{REVIEWS,plural, =1{(<ph name="REVIEWS_COUNT_ONE" /> மதிப்புரை)}other{(<ph name="REVIEWS_COUNT_MANY" /> மதிப்புரைகள்)}}</translation>
 <translation id="4850886885716139402">காட்சி</translation>
+<translation id="4870911314065352661">அனைத்து உலாவிப் பக்கங்களையும் மூடவா?</translation>
 <translation id="492284538114688557">விலைச் சரிவு கண்டறியப்பட்டது</translation>
 <translation id="5007392906805964215">சரிபார்</translation>
 <translation id="5073204694187207510">முழுத்திரை கட்டத்தை மூடு</translation>
@@ -68,6 +70,7 @@
 <translation id="7204204600596740190">பல தேர்வுப் பயன்முறை</translation>
 <translation id="7326879924029668159">திருப்பியளித்தல் கொள்கை மற்றும் பலவற்றைப் பார்க்கலாம்</translation>
 <translation id="7352298686197644113">திறந்திருக்கும் தாவல்களில் எந்தப் பொருள் குறைவான விலையில் கிடைக்கிறது எனப் பார்க்கலாம்</translation>
+<translation id="7475676397080516143">எச்சரிக்கை: இதைச் செயல்தவிர்க்க முடியாது. அனைத்து உலாவிப் பக்கங்களையும் மூடுவதால் ஏதேனும் சேமிக்கப்படாத தரவை இழக்க நேரிடலாம்?</translation>
 <translation id="753732157349120914">தாவல் மாற்றி</translation>
 <translation id="7559245342362162951">குழு தாவல்களை முழுத்திரை கட்டத்தில் காட்டு</translation>
 <translation id="7792771145871471484">பரிந்துரைகளை சரிபார்க்கும்.</translation>
diff --git a/chrome/android/features/tab_ui/java/strings/translations/android_chrome_tab_ui_strings_ur.xtb b/chrome/android/features/tab_ui/java/strings/translations/android_chrome_tab_ui_strings_ur.xtb
index e95018e..ee0417b 100644
--- a/chrome/android/features/tab_ui/java/strings/translations/android_chrome_tab_ui_strings_ur.xtb
+++ b/chrome/android/features/tab_ui/java/strings/translations/android_chrome_tab_ui_strings_ur.xtb
@@ -34,12 +34,14 @@
 <translation id="3882834874697329510">کھلے ہوئے ٹیب میں کم قیمت ہونے پر الرٹ حاصل کرنے کے لئے، ترتیبات میں موجود اطلاعات آن کریں۔</translation>
 <translation id="3940195383040445971">ٹیبز پر قیمتیں ٹریک کریں</translation>
 <translation id="3996880007329611795">اطلاع حاصل کریں</translation>
+<translation id="4095555372828143870">سبھی ٹیبز بند کریں اور غیر محفوظ کردہ کسی بھی ڈیٹا سے محروم ہوں؟</translation>
 <translation id="4133493477912226187"><ph name="NUMBER_OF_TABS" /> ٹیبز متعلقہ معلوم ہوتے ہیں۔ ان کی گروپ بندی کریں؟</translation>
 <translation id="4212246570487010370">براؤز کرنا جاری رکھیں</translation>
 <translation id="4450893287417543264">دوبارہ نہ دکھائیں</translation>
 <translation id="4648718555153979859">آپ کے ٹیبز کو ایک ساتھ یہاں گروپ بند کیا گیا ہے</translation>
 <translation id="4788280460033928884">{REVIEWS,plural, =1{(<ph name="REVIEWS_COUNT_ONE" /> جائزہ)}other{(<ph name="REVIEWS_COUNT_MANY" /> جائزے)}}</translation>
 <translation id="4850886885716139402">دیکھیں</translation>
+<translation id="4870911314065352661">سبھی ٹیبز بند کریں؟</translation>
 <translation id="492284538114688557">قیمت میں کمی ہوئی</translation>
 <translation id="5007392906805964215">جائزہ لیں</translation>
 <translation id="5073204694187207510">پوری اسکرین گرڈ کو چھپائیں</translation>
@@ -68,6 +70,7 @@
 <translation id="7204204600596740190">متعدد انتخاب کی وضع</translation>
 <translation id="7326879924029668159">واپسی کی پالیسی اور مزید دیکھیں</translation>
 <translation id="7352298686197644113">دیکھیں کہ آپ کے کھلے ٹیبز میں کون سے آئٹم کی قیمت کم ہے</translation>
+<translation id="7475676397080516143">وارننگ: اس عمل کو کالعدم نہیں کیا جا سکتا۔ سبھی ٹیبز بند کریں اور غیر محفوظ کردہ کسی بھی ڈیٹا سے محروم ہوں؟</translation>
 <translation id="753732157349120914">ٹیب سوئچر</translation>
 <translation id="7559245342362162951">پوری اسکرین گرڈ میں گروپ کے ٹیبز دکھائیں</translation>
 <translation id="7792771145871471484">تجاویز کا جائزہ لیں۔</translation>
diff --git a/chrome/android/features/tab_ui/java/strings/translations/android_chrome_tab_ui_strings_zh-CN.xtb b/chrome/android/features/tab_ui/java/strings/translations/android_chrome_tab_ui_strings_zh-CN.xtb
index 5af0b12..0668005 100644
--- a/chrome/android/features/tab_ui/java/strings/translations/android_chrome_tab_ui_strings_zh-CN.xtb
+++ b/chrome/android/features/tab_ui/java/strings/translations/android_chrome_tab_ui_strings_zh-CN.xtb
@@ -34,12 +34,14 @@
 <translation id="3882834874697329510">如果想在某个已打开的标签页中有商品降价时收到提醒,请在“设置”中开启通知功能。</translation>
 <translation id="3940195383040445971">跟踪标签页上的价格</translation>
 <translation id="3996880007329611795">接收通知</translation>
+<translation id="4095555372828143870">要关闭所有标签页并舍弃所有未保存的数据吗?</translation>
 <translation id="4133493477912226187">有 <ph name="NUMBER_OF_TABS" /> 个标签页似乎彼此相关。为它们建组?</translation>
 <translation id="4212246570487010370">继续浏览</translation>
 <translation id="4450893287417543264">不再显示</translation>
 <translation id="4648718555153979859">您的标签页会按组列在此处</translation>
 <translation id="4788280460033928884">{REVIEWS,plural, =1{(共有 <ph name="REVIEWS_COUNT_ONE" /> 条评价)}other{(共有 <ph name="REVIEWS_COUNT_MANY" /> 条评价)}}</translation>
 <translation id="4850886885716139402">视图</translation>
+<translation id="4870911314065352661">要关闭所有标签页吗?</translation>
 <translation id="492284538114688557">发现了降价商品</translation>
 <translation id="5007392906805964215">查看</translation>
 <translation id="5073204694187207510">隐藏“全屏网格状视图”按钮</translation>
@@ -68,6 +70,7 @@
 <translation id="7204204600596740190">多选模式</translation>
 <translation id="7326879924029668159">查看退货政策及其他信息</translation>
 <translation id="7352298686197644113">查看您打开的标签页中哪件商品降价了</translation>
+<translation id="7475676397080516143">警告:此操作无法撤消。要关闭所有标签页并舍弃所有未保存的数据吗?</translation>
 <translation id="753732157349120914">标签页切换器</translation>
 <translation id="7559245342362162951">以全屏网格状视图显示组中的标签页</translation>
 <translation id="7792771145871471484">查看建议。</translation>
diff --git a/chrome/android/features/tab_ui/java/strings/translations/android_chrome_tab_ui_strings_zh-HK.xtb b/chrome/android/features/tab_ui/java/strings/translations/android_chrome_tab_ui_strings_zh-HK.xtb
index 3b700bc2..60d8ce7 100644
--- a/chrome/android/features/tab_ui/java/strings/translations/android_chrome_tab_ui_strings_zh-HK.xtb
+++ b/chrome/android/features/tab_ui/java/strings/translations/android_chrome_tab_ui_strings_zh-HK.xtb
@@ -34,12 +34,14 @@
 <translation id="3882834874697329510">如要在開啟的分頁有降價產品時收到通知,請在「設定」中啟用通知功能。</translation>
 <translation id="3940195383040445971">在分頁上追蹤價格</translation>
 <translation id="3996880007329611795">接收通知</translation>
+<translation id="4095555372828143870">要關閉所有分頁並捨棄所有尚未儲存的資料嗎?</translation>
 <translation id="4133493477912226187">似乎有 <ph name="NUMBER_OF_TABS" /> 個相關的分頁。要唔要將佢哋分組?</translation>
 <translation id="4212246570487010370">繼續瀏覽</translation>
 <translation id="4450893287417543264">不要再顯示</translation>
 <translation id="4648718555153979859">您的分頁在這裡分組顯示</translation>
 <translation id="4788280460033928884">{REVIEWS,plural, =1{(<ph name="REVIEWS_COUNT_ONE" /> 則評論)}other{(<ph name="REVIEWS_COUNT_MANY" /> 則評論)}}</translation>
 <translation id="4850886885716139402">檢視</translation>
+<translation id="4870911314065352661">要關閉所有分頁嗎?</translation>
 <translation id="492284538114688557">有商品降價</translation>
 <translation id="5007392906805964215">查看</translation>
 <translation id="5073204694187207510">隱藏全螢幕網格</translation>
@@ -68,6 +70,7 @@
 <translation id="7204204600596740190">多重選取模式</translation>
 <translation id="7326879924029668159">查看退貨政策等資料</translation>
 <translation id="7352298686197644113">查看已開啟分頁中有哪項產品降價</translation>
+<translation id="7475676397080516143">警告:這項操作無法復原。要關閉所有分頁並捨棄所有尚未儲存的資料嗎?</translation>
 <translation id="753732157349120914">分頁切換工具</translation>
 <translation id="7559245342362162951">用全螢幕網格顯示群組嘅分頁</translation>
 <translation id="7792771145871471484">睇下建議。</translation>
diff --git a/chrome/android/features/tab_ui/java/strings/translations/android_chrome_tab_ui_strings_zh-TW.xtb b/chrome/android/features/tab_ui/java/strings/translations/android_chrome_tab_ui_strings_zh-TW.xtb
index f3a1fd38..cce45ec 100644
--- a/chrome/android/features/tab_ui/java/strings/translations/android_chrome_tab_ui_strings_zh-TW.xtb
+++ b/chrome/android/features/tab_ui/java/strings/translations/android_chrome_tab_ui_strings_zh-TW.xtb
@@ -34,12 +34,14 @@
 <translation id="3882834874697329510">如要在開啟的分頁有降價商品時收到通知,請在設定中啟用通知功能。</translation>
 <translation id="3940195383040445971">在分頁上追蹤價格</translation>
 <translation id="3996880007329611795">接收通知</translation>
+<translation id="4095555372828143870">要關閉所有分頁並捨棄所有尚未儲存的資料嗎?</translation>
 <translation id="4133493477912226187">似乎有 <ph name="NUMBER_OF_TABS" /> 個相關的分頁。要將這些分頁加入群組嗎?</translation>
 <translation id="4212246570487010370">繼續瀏覽</translation>
 <translation id="4450893287417543264">不要再顯示</translation>
 <translation id="4648718555153979859">你的分頁都集中顯示在這裡</translation>
 <translation id="4788280460033928884">{REVIEWS,plural, =1{(<ph name="REVIEWS_COUNT_ONE" /> 則評論)}other{(<ph name="REVIEWS_COUNT_MANY" /> 則評論)}}</translation>
 <translation id="4850886885716139402">檢視</translation>
+<translation id="4870911314065352661">要關閉所有分頁嗎?</translation>
 <translation id="492284538114688557">有商品降價了</translation>
 <translation id="5007392906805964215">查看</translation>
 <translation id="5073204694187207510">隱藏全螢幕格狀檢視</translation>
@@ -68,6 +70,7 @@
 <translation id="7204204600596740190">多選模式</translation>
 <translation id="7326879924029668159">查看退貨政策等資訊</translation>
 <translation id="7352298686197644113">查看已開啟分頁中的降價商品</translation>
+<translation id="7475676397080516143">警告:這項操作無法復原。要關閉所有分頁並捨棄所有尚未儲存的資料嗎?</translation>
 <translation id="753732157349120914">分頁切換工具</translation>
 <translation id="7559245342362162951">以全螢幕格狀檢視顯示群組的分頁</translation>
 <translation id="7792771145871471484">查看建議項目。</translation>
diff --git a/chrome/android/javatests/src/org/chromium/chrome/browser/omnibox/voice/VoiceRecognitionHandlerTest.java b/chrome/android/javatests/src/org/chromium/chrome/browser/omnibox/voice/VoiceRecognitionHandlerTest.java
index 33ace7f..e2608101 100644
--- a/chrome/android/javatests/src/org/chromium/chrome/browser/omnibox/voice/VoiceRecognitionHandlerTest.java
+++ b/chrome/android/javatests/src/org/chromium/chrome/browser/omnibox/voice/VoiceRecognitionHandlerTest.java
@@ -668,6 +668,7 @@
     @After
     public void tearDown() {
         TestThreadUtils.runOnUiThreadBlocking(() -> {
+            setAudioCapturePref(true);
             mHandler.removeObserver(mObserver);
             VoiceRecognitionHandler.setIsRecognitionIntentPresentForTesting(null);
             mWindowAndroid.destroy();
diff --git a/chrome/android/javatests/src/org/chromium/chrome/browser/sync/ManageSyncSettingsTest.java b/chrome/android/javatests/src/org/chromium/chrome/browser/sync/ManageSyncSettingsTest.java
index 8e4027c..2b3495f3 100644
--- a/chrome/android/javatests/src/org/chromium/chrome/browser/sync/ManageSyncSettingsTest.java
+++ b/chrome/android/javatests/src/org/chromium/chrome/browser/sync/ManageSyncSettingsTest.java
@@ -605,6 +605,9 @@
         final ManageSyncSettings fragment = startManageSyncPreferencesFromSyncConsentFlow();
         TestThreadUtils.runOnUiThreadBlocking(() -> {
             RecyclerView recyclerView = fragment.getView().findViewById(R.id.recycler_view);
+            // Sometimes the rendered image may not contain the scrollbar and cause flakiness.
+            // Hide the scrollbar altogether to reduce flakiness.
+            recyclerView.setVerticalScrollBarEnabled(false);
             recyclerView.scrollToPosition(recyclerView.getAdapter().getItemCount() - 1);
         });
         InstrumentationRegistry.getInstrumentation().waitForIdleSync();
diff --git a/chrome/app/chromeos_strings.grdp b/chrome/app/chromeos_strings.grdp
index 3a16bb8..3a488dc 100644
--- a/chrome/app/chromeos_strings.grdp
+++ b/chrome/app/chromeos_strings.grdp
@@ -5537,6 +5537,9 @@
   <message name="IDS_ACCOUNT_MANAGER_DIALOG_ARC_ACCOUNT_PICKER_BODY" desc="" translateable="false">
     You can select an existing account to use with Android apps or add a new Google Account. Once you sign in to an Android app, your account can be used with other Android apps. You can change Android apps access in <ph name="LINK_BEGIN">&lt;a id="osSettingsLink" href="$1<ex>https://google.com/</ex>"&gt;</ph>Settings > Accounts<ph name="LINK_END">&lt;/a&gt;</ph>.
   </message>
+  <message name="IDS_ACCOUNT_MANAGER_DIALOG_ADD_ACCOUNT_LABEL" desc="Label of the Add account button on Account picker screen.">
+    Add Google Account
+  </message>
   <message name="IDS_ACCOUNT_MANAGER_DIALOG_WELCOME_CHECKBOX" desc="Checkbox text for the Welcome screen in Chrome OS 'Add account' dialog. If user checks this checkbox, this screen will not be shown the next time they open the dialog.">
     Don't remind me next time
   </message>
diff --git a/chrome/app/chromeos_strings_grdp/IDS_ACCOUNT_MANAGER_DIALOG_ADD_ACCOUNT_LABEL.png.sha1 b/chrome/app/chromeos_strings_grdp/IDS_ACCOUNT_MANAGER_DIALOG_ADD_ACCOUNT_LABEL.png.sha1
new file mode 100644
index 0000000..2e7487a3
--- /dev/null
+++ b/chrome/app/chromeos_strings_grdp/IDS_ACCOUNT_MANAGER_DIALOG_ADD_ACCOUNT_LABEL.png.sha1
@@ -0,0 +1 @@
+43ef77f190f419674f8d6dedb1fdcc7d7236214a
\ No newline at end of file
diff --git a/chrome/app/resources/chromium_strings_ru.xtb b/chrome/app/resources/chromium_strings_ru.xtb
index 82e9e14dd..1bdf62d 100644
--- a/chrome/app/resources/chromium_strings_ru.xtb
+++ b/chrome/app/resources/chromium_strings_ru.xtb
@@ -14,7 +14,7 @@
 <translation id="1524282610922162960">Откройте доступ к вкладке Chromium</translation>
 <translation id="1553461853655228091">Chromium запрашивает доступ к камере, чтобы создавать 3D-карты места, в котором вы находитесь.</translation>
 <translation id="1607715478322902680">{COUNT,plural, =0{Администратор требует перезапустить Chromium для установки обновления.}=1{Администратор требует перезапустить Chromium для установки обновления. Окно в режиме инкогнито не будет открыто повторно.}one{Администратор требует перезапустить Chromium для установки обновления. # окно в режиме инкогнито не будет открыто повторно.}few{Администратор требует перезапустить Chromium для установки обновления. # окна в режиме инкогнито не будут открыты повторно.}many{Администратор требует перезапустить Chromium для установки обновления. # окон в режиме инкогнито не будут открыты повторно.}other{Администратор требует перезапустить Chromium для установки обновления. # окна в режиме инкогнито не будут открыты повторно.}}</translation>
-<translation id="1625909126243026060">Проверка основных настроек конфиденциальности и безопасности в Chromium.</translation>
+<translation id="1625909126243026060">Проверьте основные настройки конфиденциальности и безопасности в Chromium.</translation>
 <translation id="1708666629004767631">Доступна новая, еще более быстрая версия Chromium.</translation>
 <translation id="1774152462503052664">Разрешить Chromium работать в фоновом режиме</translation>
 <translation id="1779356040007214683">Чтобы обеспечить безопасность ваших данных, некоторые расширения Chromium были отключены, так как <ph name="IDS_EXTENSION_WEB_STORE_TITLE" /> не содержит сведений о них, то есть эти компоненты могли быть установлены без вашего ведома.</translation>
diff --git a/chrome/app/resources/generated_resources_af.xtb b/chrome/app/resources/generated_resources_af.xtb
index 94c62ac..0df4cd0 100644
--- a/chrome/app/resources/generated_resources_af.xtb
+++ b/chrome/app/resources/generated_resources_af.xtb
@@ -4190,6 +4190,7 @@
 <translation id="526622169288322445">Meer handelinge vir <ph name="ADDRESS_SUMMARY" /></translation>
 <translation id="5269977353971873915">Kon nie uitdruk nie</translation>
 <translation id="5275352920323889391">Hond</translation>
+<translation id="527605719918376753">Demp oortjie</translation>
 <translation id="527605982717517565">Laat JavaScript altyd op <ph name="HOST" /> toe.</translation>
 <translation id="5277127016695466621">Wys kantpaneel</translation>
 <translation id="5278823018825269962">Status-ID</translation>
diff --git a/chrome/app/resources/generated_resources_am.xtb b/chrome/app/resources/generated_resources_am.xtb
index 0fbf8e3..342d6296 100644
--- a/chrome/app/resources/generated_resources_am.xtb
+++ b/chrome/app/resources/generated_resources_am.xtb
@@ -1702,6 +1702,7 @@
 <translation id="2684004000387153598">ለመቀጠል እሺን ጠቅ ያድርጉ፣ ከዚያ ለኢሜይል አድራሻዎ አዲስ መገለጫ ለመፍጠር ሰው አክልን ጠቅ ያድርጉ።</translation>
 <translation id="2687403674020088961">ሁሉንም ኩኪዎች አግድ (አይመከርም)</translation>
 <translation id="2687407218262674387">የGoogle አገልግሎት ውል</translation>
+<translation id="2687621393791886981">በኋላ ጠይቀኝ</translation>
 <translation id="2688196195245426394">መሣሪያውን በዚህ አገልጋይ ላይ በመመዝገብ ላይ ሳለ ስህተት፦ <ph name="CLIENT_ERROR" />።</translation>
 <translation id="2690024944919328218">የቋንቋ አማራጮችን ይጠቀሙ</translation>
 <translation id="2691385045260836588">ሞዴል</translation>
@@ -4180,6 +4181,7 @@
 <translation id="526622169288322445">ለ<ph name="ADDRESS_SUMMARY" /> ተጨማሪ እርምጃዎች</translation>
 <translation id="5269977353971873915">ማተም አልተሳካም</translation>
 <translation id="5275352920323889391">ውሻ</translation>
+<translation id="527605719918376753">ትር ላይ ድምጸ-ከል አድርግ</translation>
 <translation id="527605982717517565">ሁልጊዜ በ<ph name="HOST" /> ላይ ጃቫስክሪፕት ፍቀድ</translation>
 <translation id="5277127016695466621">የጎን ፓነልን አሳይ</translation>
 <translation id="5278823018825269962">የሁኔታ መታወቂያ</translation>
@@ -7222,6 +7224,7 @@
 <translation id="8410775397654368139">Google Play</translation>
 <translation id="8412136526970428322">የተፈቀዱ <ph name="PERMISSION" /> እና <ph name="COUNT" /> ተጨማሪ</translation>
 <translation id="8413385045638830869">በመጀመሪያ ጠይቅ (የሚመከር)</translation>
+<translation id="8414249071344507766">ትውስታዎች ለሁለት ቀናት ተደብቀዋል</translation>
 <translation id="8416730306157376817"><ph name="BATTERY_PERCENTAGE" />% (መያዣ)</translation>
 <translation id="8417548266957501132">የወላጅ ይለፍ ቃል</translation>
 <translation id="8418445294933751433">&amp;በትር አሳይ</translation>
diff --git a/chrome/app/resources/generated_resources_ar.xtb b/chrome/app/resources/generated_resources_ar.xtb
index 12a6683..019cc01e 100644
--- a/chrome/app/resources/generated_resources_ar.xtb
+++ b/chrome/app/resources/generated_resources_ar.xtb
@@ -73,6 +73,11 @@
 <translation id="1071917609930274619">ترميز البيانات</translation>
 <translation id="1072700771426194907">‏تم التعرّف على جهاز USB</translation>
 <translation id="107278043869924952">استخدام رقم التعريف الشخصي بالإضافة إلى كلمة المرور</translation>
+<translation id="1073264809281558926">‏<ph name="BEGIN_PARAGRAPH1" />إنّ السماح للأجهزة التي تعمل بنظام التشغيل Chrome بإرسال تقارير تلقائية إلينا يساعدنا في التركيز على ما يجب إصلاحه وتحسينه في نظام التشغيل Chrome. ويمكن أن تتضمّن هذه التقارير بيانات مثل الميزات التي تم استخدامها وحجم الذاكرة الذي تم استخدامه عادة وبيانات تشخيص تطبيقات Android واستخدامها. ستساعد أيضًا بعض البيانات المجمّعة في تحسين تطبيقات Google ومنتجات شركائها، مثل مطوّري برامج Android.<ph name="END_PARAGRAPH1" />
+    <ph name="BEGIN_PARAGRAPH2" />يمكنك بدء السماح بإرسال هذه التقارير أو إيقافها في أي وقت من خلال إعدادات جهاز طفلك الذي يعمل بنظام التشغيل Chrome. إذا كنت أحد مشرفي النطاق، يمكنك تغيير هذا الإعداد في وحدة تحكُّم المشرف.<ph name="END_PARAGRAPH2" />
+    <ph name="BEGIN_PARAGRAPH3" />لن يؤثّر إيقاف هذه الميزة في قدرة هذا الجهاز على إرسال المعلومات المطلوبة للحصول على خدمات ضرورية مثل تحديثات النظام والأمان.<ph name="END_PARAGRAPH3" />
+    <ph name="BEGIN_PARAGRAPH4" />إذا كان الإعداد "النشاط على الويب وفي التطبيقات" مفعّلاً لحساب طفلك على Google، قد يتم حفظ بيانات طفلك في حسابه على Google. تعرّف على المزيد من المعلومات حول هذه الإعدادات وطريقة ضبطها من خلال families.google.com.<ph name="END_PARAGRAPH4" />
+    <ph name="BEGIN_PARAGRAPH4" />إذا فعَّل مالك الجهاز الخيار "إرسال بيانات الاستخدام والتشخيص"، قد يتم تحميل تقارير الأعطال أيضًا إلى Google.<ph name="END_PARAGRAPH3" /></translation>
 <translation id="1076176485976385390">التنقُّل بين الصفحات باستخدام مؤشر النص</translation>
 <translation id="1076698951459398590">تفعيل المظهر</translation>
 <translation id="1076766328672150609">يمكن لطفلك استخدام رقم تعريف شخصي لفتح قفل الجهاز.</translation>
@@ -1345,6 +1350,10 @@
 <translation id="2328561734797404498">يُرجى إعادة تشغيل الجهاز للتمكّن من استخدام <ph name="APP_NAME" />.</translation>
 <translation id="2328636661627946415">عند التصفُّح باستخدام "وضع التصفُّح المتخفي"، لا يمكن للمواقع الإلكترونية استخدام ملفات تعريف الارتباط إلا للاطّلاع على نشاط التصفُّح على تلك المواقع الإلكترونية. يتم حذف ملفات تعريف الارتباط في نهاية جلسة التصفُّح المتخفي.</translation>
 <translation id="2329597144923131178">سجّل الدخول للحصول على الإشارات المرجعية، والسجل، وكلمات المرور، والإعدادات الأخرى على كل أجهزتك.</translation>
+<translation id="2330878972945412956">‏<ph name="BEGIN_PARAGRAPH1" />إنّ السماح للأجهزة التي تعمل بنظام التشغيل Chrome بإرسال تقارير تلقائية إلينا يساعدنا في التركيز على ما يجب إصلاحه وتحسينه في نظام التشغيل Chrome. ويمكن أن تتضمن هذه التقارير بيانات مثل الميزات التي تستخدمها وحجم الذاكرة المستخدَم عادة وبيانات تشخيص تطبيقات Android واستخدامها والأخطاء. ستساعد أيضًا بعض البيانات المجمّعة في تحسين تطبيقات Google ومنتجات شركائها، مثل مطوّري برامج Android.<ph name="END_PARAGRAPH1" />
+    <ph name="BEGIN_PARAGRAPH2" />يمكنك بدء السماح بهذه التقارير أو إيقافها في أي وقت من خلال إعدادات جهازك الذي يعمل بنظام التشغيل Chrome. إذا كنت أحد مشرفي النطاق، يمكنك تغيير هذا الإعداد في وحدة تحكُّم المشرف.<ph name="END_PARAGRAPH2" />
+    <ph name="BEGIN_PARAGRAPH3" />إذا كان الإعداد "النشاط على الويب وفي التطبيقات" مفعّلاً في حسابك على Google، قد يتم حفظ بياناتك على Android في حسابك على Google. يمكنك الاطّلاع على بياناتك وحذفها وتغيير إعدادات حسابك من خلال account.google.com.<ph name="END_PARAGRAPH3" />
+    <ph name="BEGIN_PARAGRAPH4" />إذا فعَّل مالك الجهاز الخيار "إرسال بيانات الاستخدام والتشخيص"، قد يتم تحميل تقارير الأعطال أيضًا إلى Google.<ph name="END_PARAGRAPH3" /></translation>
 <translation id="2332131598580221120">عرض في المتجر</translation>
 <translation id="2332192922827071008">فتح الإعدادات المفضَّلة</translation>
 <translation id="2332515770639153015">ميزة "الحماية المُحسَّنة للتصفّح الآمن" مفعَّلة</translation>
@@ -2058,6 +2067,7 @@
 <translation id="3030967311408872958">من غروب الشمس إلى شروقها</translation>
 <translation id="3031417829280473749">‏الوكيل X</translation>
 <translation id="3031557471081358569">اختيار العناصر المراد استيرادها:</translation>
+<translation id="3032587662022429783">مزيد من المعلومات عن بيانات التشخيص والاستخدام</translation>
 <translation id="3033348223765101500">التحكّم في بياناتك</translation>
 <translation id="3036327949511794916">لقد انتهت مهلة إرجاع جهاز <ph name="DEVICE_TYPE" /> هذا.</translation>
 <translation id="3036546437875325427">‏تفعيل Flash</translation>
@@ -2608,6 +2618,9 @@
 <translation id="3629631988386925734">‏يُرجى إدخال كلمة المرور لتفعيل Smart Lock. وفي المرة القادمة، سيفتح هاتفك قفل جهاز <ph name="DEVICE_TYPE" />. يمكنك إيقاف Smart Lock في "الإعدادات".</translation>
 <translation id="3630132874740063857">هاتفك</translation>
 <translation id="3630995161997703415">أضف الموقع الإلكتروني هذا إلى الرف لاستخدامه في أي وقت.</translation>
+<translation id="3631680145967006828">‏<ph name="BEGIN_PARAGRAPH1" />إنّ السماح للأجهزة التي تعمل بنظام التشغيل Chrome بإرسال تقارير تلقائية إلينا يساعدنا في التركيز على ما يجب إصلاحه وتحسينه في نظام التشغيل Chrome. ويمكن أن تتضمن هذه التقارير بيانات مثل أوقات تعطّل نظام التشغيل Chrome والميزات التي تستخدمها وحجم الذاكرة المستخدَم عادة.<ph name="END_PARAGRAPH1" />
+    <ph name="BEGIN_PARAGRAPH2" />يمكنك بدء السماح بإرسال هذه التقارير أو إيقافها في أي وقت من خلال إعدادات جهاز Chrome. إذا كنت أحد مشرفي النطاق، يمكنك تغيير هذا الإعداد في وحدة تحكُّم المشرف.<ph name="END_PARAGRAPH2" />
+    <ph name="BEGIN_PARAGRAPH3" />لن يؤثّر إيقاف هذه الميزة في قدرة جهازك على إرسال المعلومات اللازمة للحصول على خدمات ضرورية مثل تحديثات النظام والأمان.<ph name="END_PARAGRAPH3" /></translation>
 <translation id="3634652306074934350">انتهت صلاحية طلب الإذن.</translation>
 <translation id="3635199270495525546">‏تم رصد وحدة نظام أساسي موثوق به (TPM)</translation>
 <translation id="3635353578505343390">‏إرسال تعليقات إلى Google</translation>
@@ -2628,6 +2641,10 @@
 <translation id="3651488188562686558">‏قطع الاتصال بشبكة Wi-Fi</translation>
 <translation id="3652817283076144888">تجري التهيئة</translation>
 <translation id="3653160965917900914">مشاركات ملفات الشبكة</translation>
+<translation id="3653411319514369774">‏<ph name="BEGIN_PARAGRAPH1" />إنّ السماح للأجهزة التي تعمل بنظام التشغيل Chrome بإرسال تقارير تلقائية إلينا يساعدنا في التركيز على ما يجب إصلاحه وتحسينه في نظام التشغيل Chrome. ويمكن أن تتضمّن هذه التقارير بيانات مثل الميزات التي تم استخدامها وحجم الذاكرة المستخدَم عادة.<ph name="END_PARAGRAPH1" />
+    <ph name="BEGIN_PARAGRAPH2" />يمكنك بدء السماح بإرسال هذه التقارير أو إيقافها في أي وقت من خلال إعدادات جهاز طفلك الذي يعمل بنظام التشغيل Chrome. إذا كنت أحد مشرفي النطاق، يمكنك تغيير هذا الإعداد في وحدة تحكُّم المشرف.<ph name="END_PARAGRAPH2" />
+    <ph name="BEGIN_PARAGRAPH3" />لن يؤثّر إيقاف هذه الميزة في قدرة هذا الجهاز على إرسال المعلومات المطلوبة للحصول على خدمات ضرورية مثل تحديثات النظام والأمان.<ph name="END_PARAGRAPH3" />
+    <ph name="BEGIN_PARAGRAPH4" />إذا فعَّل مالك الجهاز الخيار "إرسال بيانات الاستخدام والتشخيص"، قد يتم تحميل تقارير الأعطال أيضًا إلى Google.<ph name="END_PARAGRAPH3" /></translation>
 <translation id="3653999333232393305">مواصلة السماح لـ <ph name="HOST" /> بالدخول إلى الميكروفون</translation>
 <translation id="3654045516529121250">الاطّلاع على إعدادات إمكانية الوصول</translation>
 <translation id="3655712721956801464">{NUM_FILES,plural, =1{لديه حق الوصول الدائم إلى ملف واحد.}zero{لديه حق الوصول الدائم إلى # من الملفات.}two{لديه حق الوصول الدائم إلى ملفين (#).}few{ لديه حق الوصول الدائم إلى # ملفات.}many{لديه حق الوصول الدائم إلى # ملفًا.}other{لديه حق الوصول الدائم إلى # من الملفات.}}</translation>
@@ -3120,6 +3137,7 @@
 <translation id="4132183752438206707">‏البحث عن تطبيقات على "متجر Google Play" وتنزيلها</translation>
 <translation id="4132364317545104286">‏إعادة تسمية الملف الشخصي لشريحة eSIM</translation>
 <translation id="4133076602192971179">فتح التطبيق لتغيير كلمة المرور</translation>
+<translation id="4135746311382563554">‏بنود الخدمة الإضافية لكلٍ من متصفِّح Google Chrome ونظام التشغيل Chrome</translation>
 <translation id="4136203100490971508">سيتم إيقاف الإضاءة الليلية تلقائيًا عند شروق الشمس.</translation>
 <translation id="41365691917097717">‏ستؤدي المواصلة إلى تفعيل خيار "تصحيح الأخطاء عبر ADB" لإنشاء تطبيقات متوافقة مع Android واختبارها. ويُرجى ملاحظة أن هذا الإجراء يتيح تثبيت تطبيقات متوافقة مع Android لم تتحقَّق منها Google، ويتطلب أيضًا إعادة ضبط على الإعدادات الأصلية لإيقافه.</translation>
 <translation id="4138267921960073861">عرض أسماء المستخدمين والصور على شاشة تسجيل الدخول</translation>
@@ -3823,6 +3841,7 @@
 <translation id="4900652253009739885">تتعذّر إزالة مفتاح التحكّم الوحيد المخصَّص للإجراء "اختيار". اضغط على أي مفتاح من أجل <ph name="RESPONSE" />.</translation>
 <translation id="4901309472892185668">يمكنك اختيار حالة للتجربة <ph name="EXPERIMENT_NAME" />.</translation>
 <translation id="49027928311173603">السياسة التي تم تنزيلها من الخادم غير صالحة: <ph name="VALIDATION_ERROR" />.</translation>
+<translation id="4904511036057277323">‏يمكنك المساهمة في تحسين ميزات وأداء متصفّح Chrome ونظام التشغيل Chrome من خلال إرسال بيانات التشخيص والاستخدام إلى Google تلقائيًا. وتساعد أيضًا بعض البيانات المجمّعة في تحسين تطبيقات Android ومنتجات شركاء Google. إذا كان الإعداد "النشاط على الويب وفي التطبيقات" مفعّلاً لحساب طفلك على Google، قد يتم حفظ بيانات طفلك على Android في حسابه على Google.</translation>
 <translation id="4906490889887219338">إعداد خوادم مشاركة الملفات على الشبكة أو إدارتها <ph name="LINK_BEGIN" />مزيد من المعلومات<ph name="LINK_END" /></translation>
 <translation id="4907129260985716018">اختيار الوقت الذي يمكن للإضافة فيه قراءة بيانات الموقع الإلكتروني وتغييرها</translation>
 <translation id="4907161631261076876">لا يتم تنزيل هذا الملف بشكل شائع وقد يكون ضارًا.</translation>
@@ -3992,6 +4011,7 @@
 <translation id="5093569275467863761">الإطار الفرعي المخزّن من خلال ميزة "التخزين المؤقت للصفحات" في وضع "التصفّح المتخفي": <ph name="BACK_FORWARD_CACHE_INCOGNITO_PAGE_URL" /></translation>
 <translation id="5094721898978802975">الاتصال بتطبيقات التعاون الأصلية</translation>
 <translation id="5097002363526479830">تعذّر الاتصال بشبكة "<ph name="NAME" />": <ph name="DETAILS" /></translation>
+<translation id="5097306410549350357">مزيد من المعلومات حول استخدام الموقع الجغرافي</translation>
 <translation id="5097649414558628673">الأداة: <ph name="PRINT_NAME" /></translation>
 <translation id="5097874180538493929">النقر تلقائيًا عند توقف المؤشر</translation>
 <translation id="5101839224773798795">النقر تلقائيًا عند توقف المؤشر</translation>
@@ -4156,6 +4176,7 @@
 <translation id="526622169288322445">مزيد من الإجراءات للعنوان <ph name="ADDRESS_SUMMARY" /></translation>
 <translation id="5269977353971873915">تعذّرت الطباعة</translation>
 <translation id="5275352920323889391">كلب</translation>
+<translation id="527605719918376753">تجاهل علامة التبويب</translation>
 <translation id="527605982717517565">‏السماح بتشغيل JavaScript على الموقع <ph name="HOST" /> دومًا</translation>
 <translation id="5277127016695466621">إظهار اللوحة الجانبية</translation>
 <translation id="5278823018825269962">رقم تعريف الحالة</translation>
@@ -4281,6 +4302,7 @@
 <translation id="5407167491482639988">صوت غير واضح</translation>
 <translation id="5408750356094797285">تكبير/تصغير: <ph name="PERCENT" /></translation>
 <translation id="5409044712155737325">‏من حسابك على Google</translation>
+<translation id="5413640305322530561">مزيد من المعلومات عن بيانات التشخيص والاستخدام</translation>
 <translation id="5414198321558177633">جارٍ إعادة تحميل قائمة الملفات الشخصية. قد تستغرق هذه العملية بضع دقائق.</translation>
 <translation id="5414566801737831689">قراءة رموز المواقع الإلكترونية التي تزورها</translation>
 <translation id="5417312524372586921">مظاهر المتصفح</translation>
@@ -5209,6 +5231,10 @@
 <translation id="63849924261838903">{NUM_TABS,plural, =1{مجموعة لم تتم تسميتها تحتوي على علامة تبويب واحدة}zero{مجموعة لم تتم تسميتها تحتوي على # علامة تبويب}two{مجموعة لم تتم تسميتها تحتوي على علامتَي تبويب}few{مجموعة لم تتم تسميتها تحتوي على # علامات تبويب}many{مجموعة لم تتم تسميتها تحتوي على # علامة تبويب}other{مجموعة لم تتم تسميتها تحتوي على # علامة تبويب}}</translation>
 <translation id="6385149369087767061">يُرجى الاتصال بالإنترنت والمحاولة مرة أخرى.</translation>
 <translation id="6385543213911723544">يمكن للمواقع أن تحفظ وتقرأ بيانات تعريف ملف الارتباط.</translation>
+<translation id="6385599849914981574">‏<ph name="BEGIN_PARAGRAPH1" />إنّ السماح للأجهزة التي تعمل بنظام التشغيل Chrome بإرسال تقارير تلقائية إلينا يساعدنا في التركيز على ما يجب إصلاحه وتحسينه في نظام التشغيل Chrome. ويمكن أن تتضمن هذه التقارير بيانات مثل الميزات التي تستخدمها وحجم الذاكرة المستخدَم عادة.<ph name="END_PARAGRAPH1" />
+    <ph name="BEGIN_PARAGRAPH2" />يمكنك بدء السماح بإرسال هذه التقارير أو إيقافها في أي وقت من خلال إعدادات جهاز Chrome. إذا كنت أحد مشرفي النطاق، يمكنك تغيير هذا الإعداد في وحدة تحكُّم المشرف.<ph name="END_PARAGRAPH2" />
+    <ph name="BEGIN_PARAGRAPH3" />لن يؤثّر إيقاف هذه الميزة في قدرة جهازك على إرسال المعلومات اللازمة للحصول على خدمات ضرورية مثل تحديثات النظام والأمان.<ph name="END_PARAGRAPH3" />
+    <ph name="BEGIN_PARAGRAPH4" />إذا فعَّل مالك الجهاز الخيار "إرسال بيانات الاستخدام والتشخيص"، قد يتم تحميل تقارير الأعطال أيضًا إلى Google.<ph name="END_PARAGRAPH3" /></translation>
 <translation id="6385994920693662133">‏تحذير: تم تفعيل تسجيل البيانات بالتفصيل، وقد تتضمن السجلات أدناه عناوين URL أو معلومات أخرى حساسة. يُرجى مراجعتها والتأكد من رغبتك في إرسال هذه المعلومات.</translation>
 <translation id="6387674443318562538">تقسيم رأسي</translation>
 <translation id="6388429472088318283">البحث عن اللغات</translation>
@@ -5325,6 +5351,7 @@
 <translation id="6504601948739128893">المواقع الإلكترونية التي لا يُسمح لها باستخدام أشكال الخط المثبَّتة على جهازك</translation>
 <translation id="6504611359718185067">الاتصال بالإنترنت لإضافة طابعة</translation>
 <translation id="6506374932220792071">‏توقيع X9.62 ECDSA باستخدام SHA-256</translation>
+<translation id="6507936476364432879">‏يمكنك المساهمة في تحسين ميزات وأداء متصفّح Chrome ونظام التشغيل Chrome من خلال إرسال بيانات التشخيص والاستخدام إلى Google تلقائيًا.</translation>
 <translation id="6508248480704296122">ذات صلة بـ <ph name="NAME_PH" /></translation>
 <translation id="6508261954199872201">التطبيق: <ph name="APP_NAME" /></translation>
 <translation id="6509207748479174212">ترخيص الوسائط</translation>
@@ -6588,6 +6615,7 @@
 <translation id="7807711621188256451">السماح دائمًا لـ <ph name="HOST" /> بالدخول إلى الكاميرا</translation>
 <translation id="7810202088502699111">تم منع عرض النوافذ المنبثقة في هذه الصفحة.</translation>
 <translation id="781167124805380294">إرسال <ph name="FILE_NAME" /></translation>
+<translation id="7811886112806886172">‏يمكنك المساهمة في تحسين ميزات وأداء متصفّح Chrome ونظام التشغيل Chrome من خلال إرسال بيانات التشخيص والاستخدام إلى Google تلقائيًا. وتساعد أيضًا بعض البيانات المجمّعة في تحسين تطبيقات Android ومنتجات شركاء Google. إذا كان الإعداد "النشاط على الويب وفي التطبيقات" مفعّلاً في حسابك على Google، قد يتم حفظ بياناتك على Android في حسابك على Google.</translation>
 <translation id="7814277578404816512">الاطّلاع على الميزات الجديدة على جهاز <ph name="DEVICE_TYPE" /></translation>
 <translation id="7814458197256864873">&amp;نسخ</translation>
 <translation id="7815680994978050279">تم حظر تنزيل خطير</translation>
@@ -6640,6 +6668,9 @@
 <translation id="7847212883280406910">‏اضغط على Ctrl + Alt + S للتبديل إلى <ph name="IDS_SHORT_PRODUCT_OS_NAME" /></translation>
 <translation id="7849264908733290972">فتح ال&amp;صورة في علامة تبويب جديدة</translation>
 <translation id="784934925303690534">النطاق الزمني</translation>
+<translation id="7850717413915978159">‏<ph name="BEGIN_PARAGRAPH1" />إنّ السماح للأجهزة التي تعمل بنظام التشغيل Chrome بإرسال تقارير تلقائية إلينا يساعدنا في التركيز على ما يجب إصلاحه وتحسينه في نظام التشغيل Chrome. ويمكن أن تتضمن هذه التقارير بيانات مثل أوقات تعطّل نظام التشغيل Chrome والميزات التي تستخدمها وحجم الذاكرة المستخدَم عادة وبيانات تشخيص تطبيقات Android واستخدامها. ستساعد أيضًا بعض البيانات المجمّعة في تحسين تطبيقات Google ومنتجات شركائها، مثل مطوّري برامج Android.<ph name="END_PARAGRAPH1" />
+    <ph name="BEGIN_PARAGRAPH2" />يمكنك بدء السماح بهذه التقارير أو إيقافها في أي وقت من خلال إعدادات جهازك الذي يعمل بنظام التشغيل Chrome. إذا كنت أحد مشرفي النطاق، يمكنك تغيير هذا الإعداد في وحدة تحكُّم المشرف.<ph name="END_PARAGRAPH2" />
+    <ph name="BEGIN_PARAGRAPH3" />إذا كان الإعداد "النشاط على الويب وفي التطبيقات" مفعّلاً في حسابك على Google، قد يتم حفظ بياناتك على Android في حسابك على Google. يمكنك الاطّلاع على بياناتك وحذفها وتغيير إعدادات حسابك من خلال account.google.com.<ph name="END_PARAGRAPH3" /></translation>
 <translation id="7851021205959621355">‏<ph name="BEGIN_BOLD" />ملاحظة<ph name="END_BOLD" />: يمكن الوصول إلى نتائجك الشخصية أو إلى خدمة "مساعد Google" الخاصة بك باستخدام صوت مماثل لصوتك أو باستخدام تسجيل لصوتك. لتوفير طاقة البطارية، انتقِل إلى إعدادات "مساعد Google" واختَر تفعيل عبارة Ok Google فقط عندما يكون هذا الجهاز متصلاً بمصدر للطاقة.</translation>
 <translation id="7851457902707056880">تم تقييد تسجيل الدخول على مالك الحساب فقط. يُرجى إعادة التشغيل وتسجيل الدخول باستخدام حساب المالك. ستتم إعادة تشغيل الجهاز خلال 30 ثانية.</translation>
 <translation id="7851716364080026749">حظر الدخول إلى الكاميرا والميكروفون دومًا</translation>
@@ -7947,6 +7978,7 @@
 <translation id="9186963452600581158">‏تسجيل الدخول باستخدام حساب طفل على Google</translation>
 <translation id="9187967020623675250">مفاتيح التحكّم غير متطابقة. يمكنك الضغط على أي مفتاح لاختيار <ph name="RESPONSE" />.</translation>
 <translation id="9188732951356337132">‏يمكنك إرسال بيانات الاستخدام والتشخيص. يرسل هذا الجهاز حاليًا بيانات استخدام التطبيق والجهاز والتشخيص تلقائيًا إلى Google. لن يتم استخدام هذا لتعريف حسابك الفرعي وسيساعد في استقرار عمل النظام والتطبيقات، بالإضافة إلى التحسينات الأخرى. كما ستساعد بعض البيانات المجمّعة تطبيقات Google وشركائها، مثل مطوّري برامج نظام التشغيل Android. في حال تفعيل إعداد "النشاط الإضافي على الويب وفي التطبيقات" لحسابك الفرعي، قد يتم حفظ هذه البيانات في حسابك على Google. <ph name="BEGIN_LINK2" />مزيد من المعلومات<ph name="END_LINK2" /></translation>
+<translation id="919686179725692564">مزيد من المعلومات عن الاحتفاظ بنسخة احتياطية من بيانات تطبيقاتك</translation>
 <translation id="9198090666959937775">‏استخدام هاتفك الذي يعمل بنظام التشغيل Android كمفتاح أمان</translation>
 <translation id="9200339982498053969">سيتمكّن <ph name="ORIGIN" /> من تعديل الملفات في <ph name="FOLDERNAME" />.</translation>
 <translation id="920045321358709304">البحث في <ph name="SEARCH_ENGINE" /></translation>
diff --git a/chrome/app/resources/generated_resources_as.xtb b/chrome/app/resources/generated_resources_as.xtb
index 58b3a5a..ccaa3319 100644
--- a/chrome/app/resources/generated_resources_as.xtb
+++ b/chrome/app/resources/generated_resources_as.xtb
@@ -510,6 +510,7 @@
 <translation id="1521442365706402292">প্ৰমাণপত্ৰ পৰিচালনা কৰক</translation>
 <translation id="1521774566618522728">আজি সক্ৰিয় হৈছে</translation>
 <translation id="152234381334907219">কেতিয়াও ছেভ কৰা নহয়</translation>
+<translation id="1523279371236772909">যোৱা মাহত চোৱা হৈছে</translation>
 <translation id="1523978563989812243">পাঠৰ পৰা কথনৰ ইঞ্জিনসমূহ</translation>
 <translation id="1524430321211440688">কীব'ৰ্ড</translation>
 <translation id="1524563461097350801">নালাগে, ধন্যবাদ</translation>
@@ -1032,6 +1033,7 @@
 <translation id="2022395138980869975">ছাইড ছাৰ্চ ট’গল কৰক</translation>
 <translation id="2023167225947895179">পিনটো অনুমান কৰাত সহজ হ'ব পাৰে</translation>
 <translation id="202352106777823113">ডাউনল’ডৰ বাবে অতি বেছি সময় লাগিছে আৰু নেটৱর্ক সম্পর্কীয় সমস্যাৰ বাবে ই বাধাপ্ৰাপ্ত হৈছে।</translation>
+<translation id="2024195579772565064">সন্ধানৰ ইঞ্জিন মচক</translation>
 <translation id="2025632980034333559"><ph name="APP_NAME" /> ক্রেশ্ব হ'ল। এক্সটেনশ্বনটো পুনৰ ল'ড কৰিবলৈ এই বেলুনটোত ক্লিক কৰক।</translation>
 <translation id="2028449514182362831">ম'শ্বন ছেন্সৰ আৱশ্যক হোৱা সুবিধাসমূহে কাম নকৰিব</translation>
 <translation id="202918510990975568">সুৰক্ষা আৰু ছাইন ইন কনফিগাৰ কৰিবলৈ আপোনাৰ পাছৱৰ্ডটো দিয়ক</translation>
@@ -1173,6 +1175,7 @@
 <translation id="2159488579268505102">ইউএছবি-চি</translation>
 <translation id="216169395504480358">ৱাই-ফাই যোগ কৰক…</translation>
 <translation id="2162155940152307086">আপুনি ছিংকৰ ছেটিংসমূহৰ পৰা আঁতৰি যোৱাৰ লগে লগে ছিংক আৰম্ভ হ‘ব</translation>
+<translation id="2162926944953615670">কোনো ই-ছিমৰ প্ৰ’ফাইল উপলব্ধ নহয়</translation>
 <translation id="2163470535490402084">আপোনাৰ <ph name="DEVICE_TYPE" />ত ছাইন ইন কৰিবলৈ ইণ্টাৰনেট সংযোগ কৰক।</translation>
 <translation id="2163937499206714165">গাঢ় ম’ড ম’ডটো অন কৰক</translation>
 <translation id="2164131635608782358"><ph name="FIRST_SWITCH" />, <ph name="SECOND_SWITCH" />, <ph name="THIRD_SWITCH" /> আৰু অন্য ১ টা ছুইচ</translation>
@@ -1250,6 +1253,7 @@
 <translation id="2232876851878324699">ফাইলটোত আমদানি নকৰা এখন প্ৰমাণপত্ৰ আছে:</translation>
 <translation id="2233502537820838181">&amp;অধিক তথ্য</translation>
 <translation id="223356358902285214">ৱেব আৰু এপৰ কাৰ্যকলাপ</translation>
+<translation id="2234827758954819389">গোপনীয়তা সম্পৰ্কীয় নিৰ্দেশনা</translation>
 <translation id="2234876718134438132">ছিংক আৰু Google সেৱা</translation>
 <translation id="2235344399760031203">তৃতীয় পক্ষৰ কুকিসমূহ অৱৰোধ কৰা হৈছে</translation>
 <translation id="2238379619048995541">সঘনতাৰ স্থিতি ডেটা</translation>
@@ -1702,6 +1706,7 @@
 <translation id="2684004000387153598">অব্যাহত ৰাখিবলৈ ঠিক আছে-ত ক্লিক কৰক আৰু তাৰপাছত আপোনাৰ ইমেইল ঠিকনাৰ বাবে এটা নতুন প্ৰ'ফাইল সৃষ্টি কৰিবলৈ 'কোনো লোকক যোগ কৰক'-ত ক্লিক কৰক।</translation>
 <translation id="2687403674020088961">সকলো কুকি অৱৰোধ কৰক (চুপাৰিছ কৰা নহয়)</translation>
 <translation id="2687407218262674387">Googleৰ সেৱাৰ চৰ্তাৱলী</translation>
+<translation id="2687621393791886981">মোক পাছত সুধিব</translation>
 <translation id="2688196195245426394">ডিভাইচটো ছার্ভাৰৰ সৈতে পঞ্জীয়ন কৰোঁতে আসোঁৱাহ হৈছে: <ph name="CLIENT_ERROR" />।</translation>
 <translation id="2690024944919328218">ভাষাৰ বিকল্প দেখুৱাওক</translation>
 <translation id="2691385045260836588">ম’ডেল</translation>
@@ -1867,6 +1872,7 @@
 <translation id="2828650939514476812">ৱাই-ফাই নেটৱৰ্কৰ সৈতে সংযোগ কৰক</translation>
 <translation id="2831430281393059038">ডিভাইচটো সমৰ্থিত</translation>
 <translation id="2832124733806557606">ডিভাইচটোত ছাইন ইন কৰিবলৈ অথবা সেইটো আনলক কৰিবলৈ আপোনাৰ শিশুৱে এটা পিন ব্যৱহাৰ কৰিব পাৰে।</translation>
+<translation id="2835177225987815960">যিকোনো আবণ্টন কৰা ছুইচ আৰু স্বয়ংক্ৰিয় স্কেনৰ গতিৰ অগ্ৰাধিকাৰসমূহকে ধৰি আপোনাৰ বৰ্তমানৰ স্কেনিঙৰ ছেটআপটো ৰিছেট কৰা হ’ব।</translation>
 <translation id="2835547721736623118">কণ্ঠস্বৰ চিনাক্তকৰণ সেৱা</translation>
 <translation id="2836269494620652131">ক্ৰেশ্ব</translation>
 <translation id="2836635946302913370">আপোনাৰ প্ৰশাসকে এই ব্যৱহাৰকাৰীৰ নামটোৰে ছাইন ইন কৰাটো অক্ষম কৰি থৈছে।</translation>
@@ -3103,6 +3109,7 @@
 <translation id="4095264805865317199">চেলুলাৰ সক্ৰিয়কৰণৰ UI খোলক</translation>
 <translation id="4095507791297118304">মুখ্য ডিছপ্লে’</translation>
 <translation id="4096508467498758490">বিকাশকর্তাৰ ম’ড এক্সটেনশ্বন অক্ষম কৰক</translation>
+<translation id="4096797685681362305">যোৱা সপ্তাহত চোৱা হৈছে</translation>
 <translation id="4097406557126260163">এপ্‌ আৰু এক্সটেনশ্বনসমূহ</translation>
 <translation id="409742781329613461">Chromeৰ বাবে পৰামৰ্শ</translation>
 <translation id="4097560579602855702">Googleত সন্ধান কৰক</translation>
@@ -3511,6 +3518,7 @@
 <translation id="4547659257713117923">অন্য ডিভাইচৰ কোনো টেব নাই</translation>
 <translation id="4547672827276975204">স্বয়ংক্ৰিয়াভাৱে ছেট কৰক</translation>
 <translation id="4549791035683739768">আপোনাৰ সুৰক্ষা চাবিটোত কোনো ফিংগাৰপ্ৰিণ্ট ষ্ট’ৰ হৈ নাই</translation>
+<translation id="4550926046134589611"><ph name="APP_NAME" />ত কিছুমান সমৰ্থিত লিংক তথাপিও খুলিব।</translation>
 <translation id="4551763574344810652">আনডু কৰিবলৈ <ph name="MODIFIER_KEY_DESCRIPTION" /> টিপক</translation>
 <translation id="4553526521109675518">আপুনি ডিভাইচটোৰ ভাষা সলনি কৰিবলৈ আপোনাৰ Chromebook ৰিষ্টাৰ্ট কৰিব লাগিব। <ph name="BEGIN_LINK_LEARN_MORE" />অধিক জানক<ph name="END_LINK_LEARN_MORE" /></translation>
 <translation id="4554491709904933912"><ph name="VISUAL_SEARCH_PROVIDER" />ৰ জৰিয়তে সন্ধান কৰিবলৈ প্ৰতিচ্ছবিসমূহৰ ওপৰেৰে আনক</translation>
@@ -3659,6 +3667,7 @@
 <translation id="4699172675775169585">কেশ্ব প্ৰতিচ্ছবি আৰু ফাইল</translation>
 <translation id="4699357559218762027">(স্বয়ংক্ৰিয়ভাৱে-লঞ্চ হোৱা)</translation>
 <translation id="4701025263201366865">অভিভাৱকৰ ছাইন-ইন</translation>
+<translation id="4701335814944566468">কালি চোৱা হৈছে</translation>
 <translation id="4708794300267213770">সুপ্ত ম’ডৰ সক্ৰিয় হ’লে লক স্ক্ৰীণ দেখুৱাওক</translation>
 <translation id="4708849949179781599"><ph name="PRODUCT_NAME" /> বাহিৰ হওক</translation>
 <translation id="4711638718396952945">ছেটিংসমূহ পুনঃস্থাপন কৰক</translation>
@@ -3726,6 +3735,7 @@
 <translation id="479536056609751218">ৱেবপৃষ্ঠা, কেৱল HTML</translation>
 <translation id="4796142525425001238">সদায় পুনঃস্থাপন কৰক</translation>
 <translation id="4798236378408895261"><ph name="BEGIN_LINK" />ব্লুটুথ লগ<ph name="END_LINK" /> (Google অভ্যন্তৰীণ) সংলগ্ন কৰক</translation>
+<translation id="479863874072008121">ডিভাইচসমূহ পৰিচালনা কৰক</translation>
 <translation id="4800839971935185386">নাম আৰু চিহ্নৰ আপডে’ট পৰ্যালোচনা কৰক</translation>
 <translation id="4801448226354548035">একাউণ্ট লুকুৱাওক</translation>
 <translation id="4801512016965057443">ম'বাইল ডেটা ৰ'মিঙৰ অনুমতি দিয়ক</translation>
@@ -3799,6 +3809,7 @@
 <translation id="48704129375571883">অতিৰিক্ত সুবিধা যোগ কৰক</translation>
 <translation id="4870758487381879312">কনফিগাৰেশ্বনৰ তথ্য পাবলৈ প্ৰশাসকে দিয়া পাছৱর্ডটো দিয়ক</translation>
 <translation id="4870903493621965035">যোৰা লগোৱা কোনো ডিভাইচ নাই</translation>
+<translation id="4870995365819149457"><ph name="APP_NAME" />, <ph name="APP_NAME_2" />, <ph name="APP_NAME_3" /> আৰু অন্য ১ টা এপত কিছুমান সমৰ্থিত লিংক তথাপিও খুলিব।</translation>
 <translation id="4871308555310586478">Chrome ৱেব ষ্ট’ৰৰ নহয়৷</translation>
 <translation id="4871322859485617074">পিনত অমান্য বৰ্ণ আছে</translation>
 <translation id="4871370605780490696">বুকমাৰ্ক যোগ কৰক</translation>
@@ -4175,6 +4186,7 @@
 <translation id="526622169288322445"><ph name="ADDRESS_SUMMARY" />ৰ বাবে আৰু অধিক কাৰ্য</translation>
 <translation id="5269977353971873915">প্ৰিণ্ট কৰিব পৰা নগ'ল</translation>
 <translation id="5275352920323889391">কুকুৰ</translation>
+<translation id="527605719918376753">টেব মিউট কৰক</translation>
 <translation id="527605982717517565"><ph name="HOST" />ত সদায় JavaScriptক অনুমতি দিয়ক</translation>
 <translation id="5277127016695466621">ছাইডৰ পেনেল দেখুৱাওক</translation>
 <translation id="5278823018825269962">স্থিতিৰ আইডি</translation>
@@ -4834,6 +4846,7 @@
 <translation id="5969728632630673489">কীব’র্ডৰ শ্বৰ্টকাটৰ জাননী অগ্ৰাহ্য কৰা হ'ল</translation>
 <translation id="5971037678316050792">ব্লুটুথ এড’প্টাৰৰ স্থিতি আৰু যোৰা লগোৱা সুবিধাটো নিয়ন্ত্ৰণ কৰক</translation>
 <translation id="597235323114979258">অধিক প্ৰিণ্টাৰ চাওক</translation>
+<translation id="5972543790327947908"><ph name="APP_NAME" />, <ph name="APP_NAME_2" /> অথবা <ph name="APP_NAME_3" />ত কিছুমান সমৰ্থিত লিংক তথাপিও খুলিব।</translation>
 <translation id="5972666587303800813">ব্যৱহাৰত নথকা সেৱা</translation>
 <translation id="5972708806901999743">ওপৰলৈ যাওক</translation>
 <translation id="5972826969634861500"><ph name="PRODUCT_NAME" /> আৰম্ভ কৰক</translation>
@@ -5204,6 +5217,7 @@
 <translation id="6355789186038748882">পৰীক্ষামূলক (গুণগত মান আলফা) ব্ৰাউজাৰ! কিছুমান সুবিধা নাই অথবা সম্পূৰ্ণ নহয়। ইয়াৰ জৰিয়তে সমস্যাৰ অভিযোগ দিয়ক: সহায় &gt; "সমস্যাৰ অভিযোগ দিয়ক…"।</translation>
 <translation id="635609604405270300">ডিভাইচ অন কৰি ৰাখক</translation>
 <translation id="63566973648609420">আপোনাৰ পাছফ্ৰেজ জনা কোনোবাইহে আপুনি এনক্ৰিপ্ট কৰি থোৱা ডেটা পঢ়িব পাৰে। পাছফ্ৰেজটো ক’লৈকো পঠিওৱা নহয় আৰু সেইটোGoogleত সঞ্চিত নাথাকে। আপুনি যদি নিজৰ পাছফ্ৰেজটো পাহৰে বা এই ছেটিংটো সলাব বিচাৰে, <ph name="BEGIN_LINK" />ছিংক ৰিছেট<ph name="END_LINK" /> কৰিব লাগিব।</translation>
+<translation id="6357305427698525450"><ph name="APP_NAME" /> অথবা  <ph name="APP_NAME_2" />ত কিছুমান সমৰ্থিত লিংক তথাপিও খুলিব।</translation>
 <translation id="6358884629796491903">ড্ৰেগন</translation>
 <translation id="6359706544163531585">পাতল ৰঙৰ থীম অক্ষম কৰক</translation>
 <translation id="6361850914223837199">আসোঁৱাহৰ সবিশেষ:</translation>
@@ -5722,6 +5736,7 @@
 <translation id="6900284862687837908">নেপথ্যৰ এপ্‌: <ph name="BACKGROUND_APP_URL" /></translation>
 <translation id="6900532703269623216">বৰ্ধিত সুৰক্ষা</translation>
 <translation id="6900651018461749106"><ph name="USER_EMAIL" />ক আপডে'ট কৰিবলৈ পুনৰ ছাইন ইন কৰক</translation>
+<translation id="6900654715912436255">আপুনি এই সন্ধানৰ ইঞ্জিনটো মচিবলৈ বিচাৰে বুলি নিশ্চিতনে?</translation>
 <translation id="6902066522699286937">পূৰ্বদৰ্শনৰ বাবে কণ্ঠস্বৰ</translation>
 <translation id="6902336033320348843">শাখাটো সমর্থিত নহয়: <ph name="ERROR_LINE" /></translation>
 <translation id="6902837902700739466">ডিভাইচটো ড’মেইনত যোগ কৰক</translation>
@@ -5993,6 +6008,7 @@
 <translation id="7189234443051076392">আপোনাৰ ডিভাইচত পর্যাপ্ত পৰিমাণে খালী ঠাই থকাটো নিশ্চিত কৰক</translation>
 <translation id="7189451821249468368">এই ডিভাইচটো পঞ্জীয়ন কৰিবলৈ আপোনাৰ পৰ্যাপ্ত আপগ্ৰে’ড নাই। অধিক ক্ৰয় কৰিবলৈ অনুগ্ৰহ কৰি ক্ৰয় বিভাগৰ সৈতে যোগাযোগ কৰক। আপুনি যদি এই বাৰ্তাটো কোনো আসোঁৱাহৰ বাবে দেখা পাইছে বুলি বিশ্বাস কৰে, তেন্তে অনুগ্ৰহ কৰি সহায় কেন্দ্ৰৰ সৈতে যোগাযোগ কৰক।</translation>
 <translation id="7189965711416741966">ফিংগাৰপ্ৰিণ্ট যোগ কৰা হ’ল।</translation>
+<translation id="7191063546666816478"><ph name="APP_NAME" />, <ph name="APP_NAME_2" />, <ph name="APP_NAME_3" /> আৰু অন্য <ph name="NUMBER_OF_OTHER_APPS" /> টা এপত কিছুমান সমৰ্থিত লিংক তথাপিও খুলিব।</translation>
 <translation id="7191159667348037">অজ্ঞাত প্ৰিণ্টাৰ (ইউএছবি)</translation>
 <translation id="7193051357671784796">এই এপ্‌টো আপোনাৰ প্ৰতিষ্ঠানে যোগ কৰিছে। এপ্‌টোৰ ইনষ্টল কৰা প্ৰক্ৰিয়া সম্পূর্ণ কৰিবলৈ এপ্‌টো ৰিষ্টার্ট কৰক।</translation>
 <translation id="7193374945610105795"><ph name="ORIGIN" />ৰ কাৰণে কোনো পাছৱৰ্ড ছেভ কৰা হোৱা নাই</translation>
@@ -6448,6 +6464,7 @@
 <translation id="7658239707568436148">বাতিল কৰক</translation>
 <translation id="7659154729610375585">যি হ’লেও ইনক’গনিট’ ম’ডৰ পৰা বাহিৰ হ’বনে?</translation>
 <translation id="7659297516559011665">কেৱল এই ডিভাইচটোত থকা পাছৱৰ্ডসমূহ</translation>
+<translation id="7659336857671800422">গোপনীয়তা সম্পৰ্কীয় নিৰ্দেশনা লাভ কৰক</translation>
 <translation id="7659584679870740384">আপোনাৰ এই ডিভাইচটো ব্যৱহাৰ কৰাৰ কৰ্তৃত্ব নাই। ছাইন ইন কৰাৰ অনুমতিৰ বাবে অনুগ্ৰহ কৰি প্ৰশাসকৰ সৈতে যোগাযোগ কৰক।</translation>
 <translation id="7661259717474717992">ছাইটসমূহক কুকি ডেটা ছেভ কৰিবলৈ আৰু পঢ়িবলৈ অনুমতি দিয়ক</translation>
 <translation id="7661451191293163002">পঞ্জীয়নৰ প্ৰমাণপত্ৰ আহৰণ কৰিব পৰা নগ'ল।</translation>
@@ -7205,6 +7222,7 @@
 <translation id="8410775397654368139">Google Play</translation>
 <translation id="8412136526970428322"><ph name="PERMISSION" />ক আৰু <ph name="COUNT" /> টাক অনুমতি দিয়া হৈছে</translation>
 <translation id="8413385045638830869">প্ৰথমে সোধক (চুপাৰিছ কৰা)</translation>
+<translation id="8414249071344507766">মেম’ৰি দুদিনৰ বাবে লুকুওৱা হৈছে</translation>
 <translation id="8416730306157376817"><ph name="BATTERY_PERCENTAGE" />% (কে’ছ)</translation>
 <translation id="8417548266957501132">অভিভাৱকৰ পাছৱৰ্ড</translation>
 <translation id="8418445294933751433">টেব হিচাপে &amp;দেখুৱাওক</translation>
@@ -7969,6 +7987,7 @@
 <translation id="9200339982498053969"><ph name="ORIGIN" />এ <ph name="FOLDERNAME" />ত ফাইল সম্পাদনা কৰিব পাৰিব</translation>
 <translation id="920045321358709304"><ph name="SEARCH_ENGINE" />ত সন্ধান কৰক</translation>
 <translation id="9201023452444595544">সকলো অফলাইন ডেটা মচা হ’ব</translation>
+<translation id="9201117361710210082">পূৰ্বে চোৱা হৈছে</translation>
 <translation id="9201220332032049474">স্ক্ৰীণ লক সম্পৰ্কীয় বিকল্প</translation>
 <translation id="9201842707396338580">কিবা ভুল হ’ল। অনুগ্ৰহ কৰি আপোনাৰ ডিভাইচৰ গৰাকী অথবা প্ৰশাসকৰ সৈতে যোগাযোগ কৰক। আসোঁৱাহ ক’ড: <ph name="ERROR_CODE" />।</translation>
 <translation id="9203398526606335860">&amp;প্ৰ’ফিলিং সক্ষম কৰা হৈছে</translation>
diff --git a/chrome/app/resources/generated_resources_az.xtb b/chrome/app/resources/generated_resources_az.xtb
index 8b1c107..de0c723 100644
--- a/chrome/app/resources/generated_resources_az.xtb
+++ b/chrome/app/resources/generated_resources_az.xtb
@@ -1692,6 +1692,7 @@
 <translation id="2684004000387153598">Davam etmək üçün "OK" seçiminə klikləyin, sonra e-poçt ünvanında yeni profil yaratmaq üçün "Şəxs Əlavə Edin" əmrini seçin.</translation>
 <translation id="2687403674020088961">Bütün kukiləri bloklayın (tövsiyə edilmir)</translation>
 <translation id="2687407218262674387">Google xidmət şərtləri</translation>
+<translation id="2687621393791886981">Sonra soruşun</translation>
 <translation id="2688196195245426394">Cihazı server ilə qeydiyyat edərkən xəta: <ph name="CLIENT_ERROR" />.</translation>
 <translation id="2690024944919328218">Dil seçimlərini göstərin</translation>
 <translation id="2691385045260836588">Model</translation>
@@ -4169,6 +4170,7 @@
 <translation id="526622169288322445"><ph name="ADDRESS_SUMMARY" /> üçün digər əməliyyatlar</translation>
 <translation id="5269977353971873915">Çap alınmadı</translation>
 <translation id="5275352920323889391">İt</translation>
+<translation id="527605719918376753">Tabı susdurun</translation>
 <translation id="527605982717517565"><ph name="HOST" /> hostunda həmişə JavaScript'ə icazə verin</translation>
 <translation id="5277127016695466621">Yan paneli göstərin</translation>
 <translation id="5278823018825269962">Status Id'si</translation>
@@ -7202,6 +7204,7 @@
 <translation id="8410775397654368139">Google Play</translation>
 <translation id="8412136526970428322"><ph name="PERMISSION" /> və daha <ph name="COUNT" /> üçün icazə verilib</translation>
 <translation id="8413385045638830869">Öncə soruşun (tövsiyə olunur)</translation>
+<translation id="8414249071344507766">Xatirələr iki günlük gizlədilib</translation>
 <translation id="8416730306157376817"><ph name="BATTERY_PERCENTAGE" />% (Keys)</translation>
 <translation id="8417548266957501132">Valideyn parolu</translation>
 <translation id="8418445294933751433">Panel kimi göstərin</translation>
diff --git a/chrome/app/resources/generated_resources_be.xtb b/chrome/app/resources/generated_resources_be.xtb
index a9c0978..fbbdbfe7f 100644
--- a/chrome/app/resources/generated_resources_be.xtb
+++ b/chrome/app/resources/generated_resources_be.xtb
@@ -1025,6 +1025,7 @@
 <translation id="2022395138980869975">Адкрыць або закрыць бакавую панэль пошуку</translation>
 <translation id="2023167225947895179">Такі PIN-код можна лёгка падабраць</translation>
 <translation id="202352106777823113">Спампоўванне ішло занадта доўга і было спынена сеткай.</translation>
+<translation id="2024195579772565064">Выдаленне пошукавай сістэмы</translation>
 <translation id="2025632980034333559">Збой праграмы "<ph name="APP_NAME" />". Націсніце на гэта выплыўное папярэджанне, каб перазагрузіць пашырэнне.</translation>
 <translation id="2028449514182362831">Функцыі, якім патрэбны датчыкі руху, не будуць працаваць</translation>
 <translation id="202918510990975568">Каб наладзіць сістэму бяспекі і працэдуру ўваходу, увядзіце пароль</translation>
@@ -1166,6 +1167,7 @@
 <translation id="2159488579268505102">USB-C</translation>
 <translation id="216169395504480358">Дадаць сетку Wi-Fi...</translation>
 <translation id="2162155940152307086">Сінхранізацыя пачнецца, як толькі вы закрыеце старонку налад сінхранізацыі</translation>
+<translation id="2162926944953615670">Даступных профіляў eSIM-карты няма</translation>
 <translation id="2163470535490402084">Каб увайсці на прыладу <ph name="DEVICE_TYPE" />, падключыцеся да інтэрнэту.</translation>
 <translation id="2163937499206714165">Уключыць цёмны рэжым</translation>
 <translation id="2164131635608782358"><ph name="FIRST_SWITCH" />, <ph name="SECOND_SWITCH" />, <ph name="THIRD_SWITCH" /> і яшчэ 1 пераключальнік</translation>
@@ -1857,6 +1859,7 @@
 <translation id="2828650939514476812">Падключэнне да сеткі Wi-Fi</translation>
 <translation id="2831430281393059038">Прылада падтрымліваецца</translation>
 <translation id="2832124733806557606">Ваша дзіця можа выкарыстоўваць PIN-код для ўваходу ва ўліковы запіс і разблакіроўкі прылады.</translation>
+<translation id="2835177225987815960">Бягучыя налады сканіравання, у тым ліку ўсе прызначаныя пераключальнікі і хуткасць аўтаматычнага сканіравання, будуць скінуты.</translation>
 <translation id="2835547721736623118">Сэрвіс распазнавання маўлення</translation>
 <translation id="2836269494620652131">Збой</translation>
 <translation id="2836635946302913370">Уваход пад гэтым іменем карыстальніка выключаны адміністратарам.</translation>
@@ -3501,6 +3504,7 @@
 <translation id="4547659257713117923">Няма ўкладак з іншых прылад</translation>
 <translation id="4547672827276975204">Вызначаць аўтаматычна</translation>
 <translation id="4549791035683739768">На вашым ключы бяспекі няма захаваных адбіткаў пальцаў</translation>
+<translation id="4550926046134589611">Некаторыя спасылкі, якія падтрымліваюцца, па-ранейшаму будуць адкрывацца ў праграме "<ph name="APP_NAME" />".</translation>
 <translation id="4551763574344810652">Каб адрабіць, націсніце <ph name="MODIFIER_KEY_DESCRIPTION" /></translation>
 <translation id="4553526521109675518">Каб змяніць мову прылады, трэба перазапусціць Chromebook. <ph name="BEGIN_LINK_LEARN_MORE" />Даведацца больш<ph name="END_LINK_LEARN_MORE" /></translation>
 <translation id="4554491709904933912">Вылучыць частку відарыса для пошуку з дапамогай <ph name="VISUAL_SEARCH_PROVIDER" /></translation>
@@ -3789,6 +3793,7 @@
 <translation id="48704129375571883">Дадаць дадатковыя функцыі</translation>
 <translation id="4870758487381879312">Каб атрымаць звесткі пра канфігурацыю, увядзіце атрыманы ад адміністратара пароль</translation>
 <translation id="4870903493621965035">Няма спалучаных прылад</translation>
+<translation id="4870995365819149457">Некаторыя спасылкі, якія падтрымліваюцца, па-ранейшаму будуць адкрывацца ў праграмах "<ph name="APP_NAME" />", "<ph name="APP_NAME_2" />", "<ph name="APP_NAME_3" />" і яшчэ адной праграме.</translation>
 <translation id="4871308555310586478">Не з Вэб-крамы Chrome.</translation>
 <translation id="4871322859485617074">PIN-код змяшчае недапушчальныя сімвалы</translation>
 <translation id="4871370605780490696">Дадаць закладку</translation>
@@ -4163,6 +4168,7 @@
 <translation id="526622169288322445">Іншыя дзеянні ў дачыненні да атрымальніка <ph name="ADDRESS_SUMMARY" /></translation>
 <translation id="5269977353971873915">Збой друку</translation>
 <translation id="5275352920323889391">Сабака</translation>
+<translation id="527605719918376753">Выключыць гук укладкі</translation>
 <translation id="527605982717517565">Заўсёды дазваляць сайту <ph name="HOST" /> выкарыстоўваць JavaScript</translation>
 <translation id="5277127016695466621">Паказаць бакавую панэль</translation>
 <translation id="5278823018825269962">Ідэнтыфікатар стану</translation>
@@ -4822,6 +4828,7 @@
 <translation id="5969728632630673489">Апавяшчэнне пра спалучэнні клавіш закрыта</translation>
 <translation id="5971037678316050792">Кіраванне станам і спалучэннем Bluetooth-адаптара</translation>
 <translation id="597235323114979258">Паказаць больш варыянтаў</translation>
+<translation id="5972543790327947908">Некаторыя спасылкі, якія падтрымліваюцца, па-ранейшаму будуць адкрывацца ў праграме "<ph name="APP_NAME" />", "<ph name="APP_NAME_2" />" або "<ph name="APP_NAME_3" />".</translation>
 <translation id="5972666587303800813">Сэрвіс фіктыўных каманд</translation>
 <translation id="5972708806901999743">Перамясціць наверх</translation>
 <translation id="5972826969634861500">Запусціць <ph name="PRODUCT_NAME" /></translation>
@@ -5192,6 +5199,7 @@
 <translation id="6355789186038748882">Гэта эксперыментальны браўзер (яго альфа-версія)! Некаторыя функцыі могуць адсутнічаць або падтрымлівацца не поўнасцю. Паведамляйце пра праблемы праз меню "Даведка &gt; Паведаміць аб праблеме...".</translation>
 <translation id="635609604405270300">Не выключайце прыладу.</translation>
 <translation id="63566973648609420">Толькі карыстальнікі, якія ведаюць фразу-пароль, могуць чытаць вашы зашыфраваныя даныя. Google не адпраўляе і не захоўвае фразу-пароль. Калі вы не памятаеце фразу-пароль або хочаце змяніць гэту наладу, вам трэба <ph name="BEGIN_LINK" />скінуць сінхранізацыю<ph name="END_LINK" />.</translation>
+<translation id="6357305427698525450">Некаторыя спасылкі, якія падтрымліваюцца, па-ранейшаму будуць адкрывацца ў праграме "<ph name="APP_NAME" />" або "<ph name="APP_NAME_2" />".</translation>
 <translation id="6358884629796491903">Дракон</translation>
 <translation id="6359706544163531585">Адключыць светлую тэму</translation>
 <translation id="6361850914223837199">Падрабязныя звесткі аб памылцы:</translation>
@@ -5710,6 +5718,7 @@
 <translation id="6900284862687837908">Фонавая праграма: <ph name="BACKGROUND_APP_URL" /></translation>
 <translation id="6900532703269623216">Палепшаная абарона</translation>
 <translation id="6900651018461749106">Увайдзіце яшчэ раз, каб абнавіць <ph name="USER_EMAIL" /></translation>
+<translation id="6900654715912436255">Вы ўпэўненыя, што хочаце выдаліць гэту пошукавую сістэму?</translation>
 <translation id="6902066522699286937">Голас для праслухоўвання</translation>
 <translation id="6902336033320348843">Раздзел не падтрымліваецца: <ph name="ERROR_LINE" /></translation>
 <translation id="6902837902700739466">Далучэнне прылады да дамена</translation>
@@ -5981,6 +5990,7 @@
 <translation id="7189234443051076392">Праверце, ці дастаткова месца на прыладзе</translation>
 <translation id="7189451821249468368">У вас недастаткова ліцэнзій, каб зарэгістраваць гэту прыладу. Каб купіць дадатковыя ліцэнзіі, звярніцеся ў аддзел продажу. Калі вы лічыце, што гэта паведамленне паказваецца вам памылкова, звярніцеся ў службу падтрымкі.</translation>
 <translation id="7189965711416741966">Адбітак пальца дададзены.</translation>
+<translation id="7191063546666816478">Некаторыя спасылкі, якія падтрымліваюцца, па-ранейшаму будуць адкрывацца ў праграмах "<ph name="APP_NAME" />", "<ph name="APP_NAME_2" />", "<ph name="APP_NAME_3" />" і некалькіх іншых (<ph name="NUMBER_OF_OTHER_APPS" />).</translation>
 <translation id="7191159667348037">Невядомы прынтар (USB)</translation>
 <translation id="7193051357671784796">Гэта праграма была дададзена вашай арганізацыяй. Каб завяршыць усталяванне праграмы, перазапусціце яе.</translation>
 <translation id="7193374945610105795">Няма захаваных пароляў для <ph name="ORIGIN" /></translation>
diff --git a/chrome/app/resources/generated_resources_bg.xtb b/chrome/app/resources/generated_resources_bg.xtb
index 2046721..23d6332 100644
--- a/chrome/app/resources/generated_resources_bg.xtb
+++ b/chrome/app/resources/generated_resources_bg.xtb
@@ -1030,6 +1030,7 @@
 <translation id="2022395138980869975">Превключване на страничното търсене</translation>
 <translation id="2023167225947895179">Възможно е този ПИН да е лесен за отгатване</translation>
 <translation id="202352106777823113">Изтеглянето отнемаше твърде дълго време и бе спряно от мрежата.</translation>
+<translation id="2024195579772565064">Изтриване на търсещата машина</translation>
 <translation id="2025632980034333559"><ph name="APP_NAME" /> претърпя срив. Кликнете върху това балонче, за да презаредите разширението.</translation>
 <translation id="2028449514182362831">Функциите, които изискват достъп до сензорите за движение, няма да работят</translation>
 <translation id="202918510990975568">Въведете паролата си, за да конфигурирате функциите за сигурност и влизане в профила</translation>
@@ -1171,6 +1172,7 @@
 <translation id="2159488579268505102">USB-C</translation>
 <translation id="216169395504480358">Добавяне на Wi-Fi...</translation>
 <translation id="2162155940152307086">Синхронизирането ще започне, след като излезете от страницата с настройките му</translation>
+<translation id="2162926944953615670">Няма налични потребителски профили за електронни SIM карти</translation>
 <translation id="2163470535490402084">Моля, свържете се с интернет, за да влезте в устройството си <ph name="DEVICE_TYPE" />.</translation>
 <translation id="2163937499206714165">Включване на тъмния режим</translation>
 <translation id="2164131635608782358"><ph name="FIRST_SWITCH" />, <ph name="SECOND_SWITCH" />, <ph name="THIRD_SWITCH" /> и още 1 превключвател</translation>
@@ -1866,6 +1868,7 @@
 <translation id="2828650939514476812">Свързване с Wi-Fi мрежата</translation>
 <translation id="2831430281393059038">Устройството се поддържа</translation>
 <translation id="2832124733806557606">Детето ви може да използва ПИН код, за да влиза в профила си или да отключва устройството.</translation>
+<translation id="2835177225987815960">Текущите ви настройки за сканиране ще бъдат нулирани, включително зададените превключватели и предпочитанията за скорост на автоматичното сканиране.</translation>
 <translation id="2835547721736623118">Услуга за разпознаване на говор</translation>
 <translation id="2836269494620652131">Срив</translation>
 <translation id="2836635946302913370">Влизането с това потребителско име е деактивирано от администратора ви.</translation>
@@ -3512,6 +3515,7 @@
 <translation id="4547659257713117923">Няма раздели от други устройства</translation>
 <translation id="4547672827276975204">Автоматично задаване</translation>
 <translation id="4549791035683739768">В ключа ви за сигурност няма съхранени отпечатъци</translation>
+<translation id="4550926046134589611">Някои поддържани връзки ще продължат да се отварят в(ъв) <ph name="APP_NAME" />.</translation>
 <translation id="4551763574344810652">Натиснете <ph name="MODIFIER_KEY_DESCRIPTION" /> за отмяна</translation>
 <translation id="4553526521109675518">Трябва да рестартирате своя Chromebook, за да промените езика на устройството. <ph name="BEGIN_LINK_LEARN_MORE" />Научете повече<ph name="END_LINK_LEARN_MORE" /></translation>
 <translation id="4554491709904933912">Плъзгане върху изображения с цел търсене посредством <ph name="VISUAL_SEARCH_PROVIDER" /></translation>
@@ -3800,6 +3804,7 @@
 <translation id="48704129375571883">Добавяне на допълнителни функции</translation>
 <translation id="4870758487381879312">Въведете паролата, предоставена от администратора, за да получите информация за конфигуриране</translation>
 <translation id="4870903493621965035">Няма сдвоени устройства</translation>
+<translation id="4870995365819149457">Някои поддържани връзки ще продължат да се отварят в(ъв) <ph name="APP_NAME" />, <ph name="APP_NAME_2" />, <ph name="APP_NAME_3" /> и още 1 приложение</translation>
 <translation id="4871308555310586478">Извън уеб магазина на Chrome.</translation>
 <translation id="4871322859485617074">ПИН кодът съдържа невалидни знаци</translation>
 <translation id="4871370605780490696">Добавяне на отметка</translation>
@@ -4176,6 +4181,7 @@
 <translation id="526622169288322445">Още действия за „<ph name="ADDRESS_SUMMARY" />“</translation>
 <translation id="5269977353971873915">Отпечатването не бе успешно</translation>
 <translation id="5275352920323889391">Куче</translation>
+<translation id="527605719918376753">Спиране на звука на раздела</translation>
 <translation id="527605982717517565">Да се разреши на <ph name="HOST" /> винаги да изпълнява JavaScript</translation>
 <translation id="5277127016695466621">Показване на страничния панел</translation>
 <translation id="5278823018825269962">ID на състоянието</translation>
@@ -4836,6 +4842,7 @@
 <translation id="5969728632630673489">Известието за клавишни комбинации е отхвърлено</translation>
 <translation id="5971037678316050792">Контролиране на състоянието и сдвояването на адаптера за Bluetooth</translation>
 <translation id="597235323114979258">Преглед на още дестинации</translation>
+<translation id="5972543790327947908">Някои поддържани връзки ще продължат да се отварят в(ъв) <ph name="APP_NAME" />, <ph name="APP_NAME_2" /> или <ph name="APP_NAME_3" />.</translation>
 <translation id="5972666587303800813">Услуга без функции</translation>
 <translation id="5972708806901999743">Преместване най-горе</translation>
 <translation id="5972826969634861500">Стартиране на <ph name="PRODUCT_NAME" /></translation>
@@ -5206,6 +5213,7 @@
 <translation id="6355789186038748882">Експериментален браузър (алфа-версия)! Някои функции липсват или не са завършени. Отворете „Помощ &gt; Подаване на сигнал за проблем...“, за да сигнализирате за проблеми.</translation>
 <translation id="635609604405270300">Не изключвайте устройството</translation>
 <translation id="63566973648609420">Само някой с пропуска ви може да прочете шифрованите ви данни – той не се изпраща до Google, нито се съхранява от нас. Ако го забравите или искате да промените тази настройка, ще се наложи <ph name="BEGIN_LINK" />да нулирате синхронизирането<ph name="END_LINK" />.</translation>
+<translation id="6357305427698525450">Някои поддържани връзки ще продължат да се отварят в(ъв) <ph name="APP_NAME" /> или <ph name="APP_NAME_2" />.</translation>
 <translation id="6358884629796491903">Дракон</translation>
 <translation id="6359706544163531585">Деактивиране на светлата тема</translation>
 <translation id="6361850914223837199">Подробности за грешката:</translation>
@@ -5724,6 +5732,7 @@
 <translation id="6900284862687837908">Приложение на заден план: <ph name="BACKGROUND_APP_URL" /></translation>
 <translation id="6900532703269623216">Подобрена защита</translation>
 <translation id="6900651018461749106">Влезте отново в профила <ph name="USER_EMAIL" />, за да го актуализирате</translation>
+<translation id="6900654715912436255">Наистина ли искате да изтриете тази търсеща машина?</translation>
 <translation id="6902066522699286937">Глас за изпробване</translation>
 <translation id="6902336033320348843">Секцията не се поддържа: <ph name="ERROR_LINE" /></translation>
 <translation id="6902837902700739466">Присъединяване на устройството към домейна</translation>
@@ -5995,6 +6004,7 @@
 <translation id="7189234443051076392">Уверете се, че има достатъчно място на устройството ви.</translation>
 <translation id="7189451821249468368">Нямате достатъчно надстройки, за да запишете това устройство. Моля, свържете се с екипа за продажби, за да купите още. Ако смятате, че виждате това съобщение по погрешка, обърнете се към екипа за поддръжка.</translation>
 <translation id="7189965711416741966">Отпечатъкът е добавен.</translation>
+<translation id="7191063546666816478">Някои поддържани връзки ще продължат да се отварят в(ъв) <ph name="APP_NAME" />, <ph name="APP_NAME_2" />, <ph name="APP_NAME_3" /> и още <ph name="NUMBER_OF_OTHER_APPS" /> приложения.</translation>
 <translation id="7191159667348037">Неизвестен принтер (USB)</translation>
 <translation id="7193051357671784796">Това приложение бе добавено от организацията ви. Рестартирайте го, за да завършите инсталирането му.</translation>
 <translation id="7193374945610105795">Няма запазени пароли за <ph name="ORIGIN" /></translation>
diff --git a/chrome/app/resources/generated_resources_bn.xtb b/chrome/app/resources/generated_resources_bn.xtb
index e63e208b..0fc7761 100644
--- a/chrome/app/resources/generated_resources_bn.xtb
+++ b/chrome/app/resources/generated_resources_bn.xtb
@@ -4188,6 +4188,7 @@
 <translation id="526622169288322445"><ph name="ADDRESS_SUMMARY" />-এর জন্য আরও অ্যাকশন</translation>
 <translation id="5269977353971873915">প্রিন্ট করা যায়নি</translation>
 <translation id="5275352920323889391">কুকুর</translation>
+<translation id="527605719918376753">ট্যাব মিউট করুন</translation>
 <translation id="527605982717517565">সর্বদা <ph name="HOST" />-এ জাভাস্ক্রিপ্ট মঞ্জুর করুন</translation>
 <translation id="5277127016695466621">সাইড প্যানেল দেখুন</translation>
 <translation id="5278823018825269962">স্ট্যাটাস আইডি</translation>
diff --git a/chrome/app/resources/generated_resources_bs.xtb b/chrome/app/resources/generated_resources_bs.xtb
index fca91c4..950fef7 100644
--- a/chrome/app/resources/generated_resources_bs.xtb
+++ b/chrome/app/resources/generated_resources_bs.xtb
@@ -4188,6 +4188,7 @@
 <translation id="526622169288322445">Više radnji za adresu <ph name="ADDRESS_SUMMARY" /></translation>
 <translation id="5269977353971873915">Štampanje nije uspjelo</translation>
 <translation id="5275352920323889391">Pas</translation>
+<translation id="527605719918376753">Isključi zvuk kartice</translation>
 <translation id="527605982717517565">Uvijek omogući JavaScript na web lokaciji <ph name="HOST" /></translation>
 <translation id="5277127016695466621">Prikaz bočne ploče</translation>
 <translation id="5278823018825269962">ID statusa</translation>
diff --git a/chrome/app/resources/generated_resources_ca.xtb b/chrome/app/resources/generated_resources_ca.xtb
index 7b5784b..ef348de 100644
--- a/chrome/app/resources/generated_resources_ca.xtb
+++ b/chrome/app/resources/generated_resources_ca.xtb
@@ -1022,6 +1022,7 @@
 <translation id="2022395138980869975">Commuta la cerca lateral</translation>
 <translation id="2023167225947895179">El PIN sembla fàcil d'endevinar</translation>
 <translation id="202352106777823113">La baixada trigava massa i la xarxa l'ha aturat.</translation>
+<translation id="2024195579772565064">Suprimeix el motor de cerca</translation>
 <translation id="2025632980034333559"><ph name="APP_NAME" /> ha deixat de funcionar. Feu clic en aquest globus per tornar a carregar l'extensió.</translation>
 <translation id="2028449514182362831">Les funcions que necessiten un sensor de moviment no funcionaran</translation>
 <translation id="202918510990975568">Introdueix la contrasenya per configurar la seguretat i l'inici de sessió</translation>
@@ -1162,6 +1163,7 @@
 <translation id="2159488579268505102">USB-C</translation>
 <translation id="216169395504480358">Afegeix una Wi-Fi...</translation>
 <translation id="2162155940152307086">La sincronització començarà quan surtis de la configuració de la sincronització</translation>
+<translation id="2162926944953615670">No hi ha cap perfil d'eSIM disponible</translation>
 <translation id="2163470535490402084">Connecteu-vos a Internet per iniciar la sessió al dispositiu <ph name="DEVICE_TYPE" />.</translation>
 <translation id="2163937499206714165">Activa el mode fosc</translation>
 <translation id="2164131635608782358"><ph name="FIRST_SWITCH" />, <ph name="SECOND_SWITCH" />, <ph name="THIRD_SWITCH" /> i 1 interruptor més</translation>
@@ -1854,6 +1856,7 @@
 <translation id="2828650939514476812">Connectar a una xarxa Wi-Fi</translation>
 <translation id="2831430281393059038">El dispositiu s'admet</translation>
 <translation id="2832124733806557606">El teu fill pot utilitzar un PIN per iniciar la sessió o desbloquejar el dispositiu.</translation>
+<translation id="2835177225987815960">Es restablirà la teva configuració actual de cerca, la qual inclou tots els interruptors assignats i les preferències de velocitat per a la cerca automàtica.</translation>
 <translation id="2835547721736623118">Servei de reconeixement de parla</translation>
 <translation id="2836269494620652131">Bloqueig</translation>
 <translation id="2836635946302913370">L'administrador ha desactivat l'inici de sessió amb aquest nom d'usuari.</translation>
@@ -3497,6 +3500,7 @@
 <translation id="4547659257713117923">Cap pestanya d'altres dispositius</translation>
 <translation id="4547672827276975204">Defineix automàticament</translation>
 <translation id="4549791035683739768">La clau de seguretat no té empremtes digitals emmagatzemades</translation>
+<translation id="4550926046134589611">Alguns enllaços admesos es continuaran obrint a <ph name="APP_NAME" />.</translation>
 <translation id="4551763574344810652">Prem <ph name="MODIFIER_KEY_DESCRIPTION" /> per desfer l'acció</translation>
 <translation id="4553526521109675518">Has de reiniciar el Chromebook per canviar-ne l'idioma. <ph name="BEGIN_LINK_LEARN_MORE" />Més informació<ph name="END_LINK_LEARN_MORE" /></translation>
 <translation id="4554491709904933912">Arrossega imatges per cercar amb <ph name="VISUAL_SEARCH_PROVIDER" /></translation>
@@ -3785,6 +3789,7 @@
 <translation id="48704129375571883">Afegeix funcions addicionals</translation>
 <translation id="4870758487381879312">Introdueix la contrasenya proporcionada per l'administrador a fi d'obtenir informació de configuració</translation>
 <translation id="4870903493621965035">No hi ha cap dispositiu vinculat</translation>
+<translation id="4870995365819149457">Alguns enllaços admesos es continuaran obrint a <ph name="APP_NAME" />, <ph name="APP_NAME_2" />, <ph name="APP_NAME_3" /> i en 1 aplicació més.</translation>
 <translation id="4871308555310586478">No des de Chrome Web Store.</translation>
 <translation id="4871322859485617074">El PIN conté caràcters que no són vàlids</translation>
 <translation id="4871370605780490696">Afegeix una adreça d'interès</translation>
@@ -4162,6 +4167,7 @@
 <translation id="526622169288322445">Més accions per a <ph name="ADDRESS_SUMMARY" /></translation>
 <translation id="5269977353971873915">Error d'impressió</translation>
 <translation id="5275352920323889391">Gos</translation>
+<translation id="527605719918376753">Silencia la pestanya</translation>
 <translation id="527605982717517565">Permet sempre JavaScript a <ph name="HOST" /></translation>
 <translation id="5277127016695466621">Mostra el tauler lateral</translation>
 <translation id="5278823018825269962">Identificador d'estat</translation>
@@ -4822,6 +4828,7 @@
 <translation id="5969728632630673489">S'ha ignorat l'avís sobre les tecles de drecera</translation>
 <translation id="5971037678316050792">Controlar l'estat i l'emparellament de l'adaptador Bluetooth</translation>
 <translation id="597235323114979258">Mostra més destinacions</translation>
+<translation id="5972543790327947908">Alguns enllaços admesos es continuaran obrint a <ph name="APP_NAME" />, <ph name="APP_NAME_2" /> o <ph name="APP_NAME_3" />.</translation>
 <translation id="5972666587303800813">Servei no operatiu</translation>
 <translation id="5972708806901999743">Mou a la part superior</translation>
 <translation id="5972826969634861500">Inicia <ph name="PRODUCT_NAME" /></translation>
@@ -5192,6 +5199,7 @@
 <translation id="6355789186038748882">Navegador experimental (amb qualitat alfa). Pot ser que faltin algunes funcions o que no estiguin completes. Informa de qualsevol problema des d'Ajuda &gt; Informa d'un problema...</translation>
 <translation id="635609604405270300">Mantén el dispositiu activat</translation>
 <translation id="63566973648609420">Només els usuaris que sàpiguen la teva frase de contrasenya poden llegir les dades que encriptis. La frase de contrasenya no s'envia a Google, ni Google l'emmagatzema. Si l'oblides o vols canviar aquesta configuració, hauràs de <ph name="BEGIN_LINK" />restablir la sincronització<ph name="END_LINK" />.</translation>
+<translation id="6357305427698525450">Alguns enllaços admesos es continuaran obrint a <ph name="APP_NAME" /> o <ph name="APP_NAME_2" />.</translation>
 <translation id="6358884629796491903">Drac</translation>
 <translation id="6359706544163531585">Desactiva el tema clar</translation>
 <translation id="6361850914223837199">Detalls de l'error:</translation>
@@ -5710,6 +5718,7 @@
 <translation id="6900284862687837908">Aplicació en segon pla: <ph name="BACKGROUND_APP_URL" /></translation>
 <translation id="6900532703269623216">Protecció millorada</translation>
 <translation id="6900651018461749106">Torna a iniciar la sessió per actualitzar l'adreça <ph name="USER_EMAIL" /></translation>
+<translation id="6900654715912436255">Confirmes que vols suprimir aquest motor de cerca?</translation>
 <translation id="6902066522699286937">Veu de prova</translation>
 <translation id="6902336033320348843">Secció no admesa: <ph name="ERROR_LINE" /></translation>
 <translation id="6902837902700739466">Connecta el dispositiu al domini</translation>
@@ -5981,6 +5990,7 @@
 <translation id="7189234443051076392">Comprova que hi hagi prou espai al dispositiu</translation>
 <translation id="7189451821249468368">No tens prou actualitzacions per inscriure aquest dispositiu. Contacta amb l'equip de vendes per comprar-ne més. Si creus que veus aquest missatge per error, posa't en contacte amb el servei d'assistència.</translation>
 <translation id="7189965711416741966">S'ha afegit l'empremta digital.</translation>
+<translation id="7191063546666816478">Alguns enllaços admesos es continuaran obrint a <ph name="APP_NAME" />, <ph name="APP_NAME_2" />, <ph name="APP_NAME_3" /> i en <ph name="NUMBER_OF_OTHER_APPS" /> aplicacions més.</translation>
 <translation id="7191159667348037">Impressora desconeguda (USB)</translation>
 <translation id="7193051357671784796">La teva organització ha afegit aquesta aplicació. Reinicia-la perquè s'acabi d'instal·lar.</translation>
 <translation id="7193374945610105795">No hi ha cap contrasenya desada per a <ph name="ORIGIN" /></translation>
diff --git a/chrome/app/resources/generated_resources_cs.xtb b/chrome/app/resources/generated_resources_cs.xtb
index 2965a2d..b4b43c0 100644
--- a/chrome/app/resources/generated_resources_cs.xtb
+++ b/chrome/app/resources/generated_resources_cs.xtb
@@ -511,6 +511,7 @@
 <translation id="1521442365706402292">Správa certifikátů</translation>
 <translation id="1521774566618522728">Aktivní dnes</translation>
 <translation id="152234381334907219">Neuloženo</translation>
+<translation id="1523279371236772909">Zobrazeno minulý měsíc</translation>
 <translation id="1523978563989812243">Moduly převodu textu na řeč</translation>
 <translation id="1524430321211440688">Klávesnice</translation>
 <translation id="1524563461097350801">Ne, díky</translation>
@@ -1024,6 +1025,7 @@
 <translation id="2022395138980869975">Přepnout postranní vyhledávání</translation>
 <translation id="2023167225947895179">PIN může být snadné uhodnout.</translation>
 <translation id="202352106777823113">Stahování trvalo příliš dlouho a bylo sítí zastaveno.</translation>
+<translation id="2024195579772565064">Smazání vyhledávače</translation>
 <translation id="2025632980034333559">Rozšíření <ph name="APP_NAME" /> selhalo. Kliknutím na tuto bublinu rozšíření obnovíte.</translation>
 <translation id="2028449514182362831">Funkce vyžadující senzory pohybu nebudou k dispozici</translation>
 <translation id="202918510990975568">Chcete-li nakonfigurovat zabezpečení a přihlášení, zadejte heslo</translation>
@@ -1165,6 +1167,7 @@
 <translation id="2159488579268505102">USB-C</translation>
 <translation id="216169395504480358">Přidat Wi-Fi...</translation>
 <translation id="2162155940152307086">Synchronizace bude zahájena, až opustíte nastavení</translation>
+<translation id="2162926944953615670">Nejsou k dispozici žádné profily eSIM</translation>
 <translation id="2163470535490402084">Chcete-li se přihlásit do zařízení <ph name="DEVICE_TYPE" />, připojte se k internetu.</translation>
 <translation id="2163937499206714165">Zapnout tmavý režim</translation>
 <translation id="2164131635608782358"><ph name="FIRST_SWITCH" />, <ph name="SECOND_SWITCH" />, <ph name="THIRD_SWITCH" /> a 1 další přepínač</translation>
@@ -1242,6 +1245,7 @@
 <translation id="2232876851878324699">Soubor obsahoval jeden certifikát, který nebyl importován:</translation>
 <translation id="2233502537820838181">&amp;Další informace</translation>
 <translation id="223356358902285214">Aktivita na webu a v aplikacích</translation>
+<translation id="2234827758954819389">Průvodce ochranou soukromí</translation>
 <translation id="2234876718134438132">Synchronizace a služby Google</translation>
 <translation id="2235344399760031203">Soubory cookie třetích stran jsou blokovány</translation>
 <translation id="2238379619048995541">Data o stavu frekvence</translation>
@@ -1856,6 +1860,7 @@
 <translation id="2828650939514476812">Připojit k síti Wi-Fi</translation>
 <translation id="2831430281393059038">Zařízení je podporováno</translation>
 <translation id="2832124733806557606">Dítě může používat k odemykání zařízení a přihlašování se do něj kód PIN.</translation>
+<translation id="2835177225987815960">Aktuální nastavení bude resetováno (včetně přiřazených přepínačů a nastavení rychlosti automatického prohledávání).</translation>
 <translation id="2835547721736623118">Služba rozpoznávání řeči</translation>
 <translation id="2836269494620652131">Selhání</translation>
 <translation id="2836635946302913370">Přihlášení pomocí tohoto uživatelského jména bylo správcem zakázáno.</translation>
@@ -3092,6 +3097,7 @@
 <translation id="4095264805865317199">Otevřít uživatelské rozhraní k aktivaci mobilní sítě</translation>
 <translation id="4095507791297118304">Primární obrazovka</translation>
 <translation id="4096508467498758490">Deaktivovat rozšíření v režimu pro vývojáře</translation>
+<translation id="4096797685681362305">Zobrazeno minulý týden</translation>
 <translation id="4097406557126260163">Aplikace a rozšíření</translation>
 <translation id="409742781329613461">Tipy pro Chrome</translation>
 <translation id="4097560579602855702">Vyhledávat na Googlu</translation>
@@ -3499,6 +3505,7 @@
 <translation id="4547659257713117923">Žádné karty z jiných zařízení</translation>
 <translation id="4547672827276975204">Nastavit automaticky</translation>
 <translation id="4549791035683739768">V bezpečnostním klíči nejsou uloženy žádné otisky</translation>
+<translation id="4550926046134589611">Některé podporované odkazy se budou nadále otevírat v aplikaci <ph name="APP_NAME" />.</translation>
 <translation id="4551763574344810652">Stisknutím <ph name="MODIFIER_KEY_DESCRIPTION" /> vrátíte provedenou akci zpět</translation>
 <translation id="4553526521109675518">Pokud chcete změnit jazyk Chromebooku, musíte ho restartovat. <ph name="BEGIN_LINK_LEARN_MORE" />Další informace<ph name="END_LINK_LEARN_MORE" /></translation>
 <translation id="4554491709904933912">Přetáhnutím přes obrázky vyhledávat pomocí <ph name="VISUAL_SEARCH_PROVIDER" /></translation>
@@ -3647,6 +3654,7 @@
 <translation id="4699172675775169585">Obrázky a soubory v mezipaměti</translation>
 <translation id="4699357559218762027">(spuštěno automaticky)</translation>
 <translation id="4701025263201366865">Přihlášení rodiče</translation>
+<translation id="4701335814944566468">Zobrazeno včera</translation>
 <translation id="4708794300267213770">Při probuzení z režimu spánku zobrazit obrazovku uzamčení</translation>
 <translation id="4708849949179781599">Ukončit <ph name="PRODUCT_NAME" /></translation>
 <translation id="4711638718396952945">Obnovit nastavení</translation>
@@ -3714,6 +3722,7 @@
 <translation id="479536056609751218">Webová stránka, pouze HTML</translation>
 <translation id="4796142525425001238">Vždy obnovit</translation>
 <translation id="4798236378408895261">Připojit <ph name="BEGIN_LINK" />Protokoly rozhraní Bluetooth<ph name="END_LINK" /> (interní funkce Google)</translation>
+<translation id="479863874072008121">Spravovat zařízení</translation>
 <translation id="4800839971935185386">Zkontrolujte změny ikon a názvů</translation>
 <translation id="4801448226354548035">Skrýt účty</translation>
 <translation id="4801512016965057443">Povolit roaming pro mobilní data</translation>
@@ -3787,6 +3796,7 @@
 <translation id="48704129375571883">Přidat další funkce</translation>
 <translation id="4870758487381879312">Chcete-li získat informace o konfiguraci, zadejte heslo poskytnuté administrátorem</translation>
 <translation id="4870903493621965035">Žádná spárovaná zařízení</translation>
+<translation id="4870995365819149457">Některé podporované odkazy se budou nadále otevírat v aplikaci <ph name="APP_NAME" />, <ph name="APP_NAME_2" />, <ph name="APP_NAME_3" /> a 1 další aplikaci.</translation>
 <translation id="4871308555310586478">Nepochází z Internetového obchodu Chrome.</translation>
 <translation id="4871322859485617074">PIN obsahuje neplatné znaky</translation>
 <translation id="4871370605780490696">Přidat záložku</translation>
@@ -4163,6 +4173,7 @@
 <translation id="526622169288322445">Další akce: <ph name="ADDRESS_SUMMARY" /></translation>
 <translation id="5269977353971873915">Tisk se nezdařil</translation>
 <translation id="5275352920323889391">Pes</translation>
+<translation id="527605719918376753">Vypnout zvuk karty</translation>
 <translation id="527605982717517565">Vždy povolovat JavaScript z webu <ph name="HOST" /></translation>
 <translation id="5277127016695466621">Zobrazit boční panel</translation>
 <translation id="5278823018825269962">ID stavu</translation>
@@ -4822,6 +4833,7 @@
 <translation id="5969728632630673489">Oznámení o klávesové zkratce bylo zavřeno</translation>
 <translation id="5971037678316050792">Ovládání stavu a párování adaptéru Bluetooth</translation>
 <translation id="597235323114979258">Zobrazit další cíle</translation>
+<translation id="5972543790327947908">Některé podporované odkazy se budou nadále otevírat v aplikaci <ph name="APP_NAME" />, <ph name="APP_NAME_2" /> nebo <ph name="APP_NAME_3" />.</translation>
 <translation id="5972666587303800813">Prázdná služba</translation>
 <translation id="5972708806901999743">Přesunout nahoru</translation>
 <translation id="5972826969634861500">Spustit <ph name="PRODUCT_NAME" /></translation>
@@ -5192,6 +5204,7 @@
 <translation id="6355789186038748882">Experimentální prohlížeč (verze alfa)! Některé funkce chybí nebo nejsou úplné. Problémy hlaste v sekci Nápověda &gt; Nahlásit problém…</translation>
 <translation id="635609604405270300">Ponechat zařízení zapnuté</translation>
 <translation id="63566973648609420">Vaše šifrovaná data mohou číst pouze uživatelé, kteří mají vaši heslovou frázi. Heslová fráze se neodesílá do Googlu a není na Googlu uložena. Pokud heslovou frázi zapomenete nebo toto nastavení budete chtít změnit, budete muset <ph name="BEGIN_LINK" />synchronizaci resetovat<ph name="END_LINK" />.</translation>
+<translation id="6357305427698525450">Některé podporované odkazy se budou nadále otevírat v aplikaci <ph name="APP_NAME" /> nebo <ph name="APP_NAME_2" />.</translation>
 <translation id="6358884629796491903">Drak</translation>
 <translation id="6359706544163531585">Deaktivovat světlý motiv</translation>
 <translation id="6361850914223837199">Podrobnosti o chybě:</translation>
@@ -5710,6 +5723,7 @@
 <translation id="6900284862687837908">Aplikace na pozadí: <ph name="BACKGROUND_APP_URL" /></translation>
 <translation id="6900532703269623216">Vylepšená ochrana</translation>
 <translation id="6900651018461749106">Chcete-li uživatele <ph name="USER_EMAIL" /> aktualizovat, přihlaste se znovu</translation>
+<translation id="6900654715912436255">Opravdu chcete tento vyhledávač smazat?</translation>
 <translation id="6902066522699286937">Hlas k náhledu</translation>
 <translation id="6902336033320348843">Sekce není podporována: <ph name="ERROR_LINE" /></translation>
 <translation id="6902837902700739466">Přidat zařízení do domény</translation>
@@ -5981,6 +5995,7 @@
 <translation id="7189234443051076392">V zařízení musí být dost místa</translation>
 <translation id="7189451821249468368">Nemáte dostatečný počet upgradů k registraci tohoto zařízení. Kontaktujte obchodní oddělení a kupte si další. Pokud se domníváte, že se jedná o chybu, kontaktujte podporu.</translation>
 <translation id="7189965711416741966">Otisk byl přidán.</translation>
+<translation id="7191063546666816478">Některé podporované odkazy se budou nadále otevírat v aplikaci <ph name="APP_NAME" />, <ph name="APP_NAME_2" />, <ph name="APP_NAME_3" /> a dalších aplikacích (<ph name="NUMBER_OF_OTHER_APPS" />).</translation>
 <translation id="7191159667348037">Neznámá tiskárna (USB)</translation>
 <translation id="7193051357671784796">Tuto aplikaci přidala vaše organizace. Chcete-li její instalaci dokončit, restartujte ji.</translation>
 <translation id="7193374945610105795">Pro web <ph name="ORIGIN" /> nejsou uložena žádná hesla</translation>
@@ -6436,6 +6451,7 @@
 <translation id="7658239707568436148">Zrušit</translation>
 <translation id="7659154729610375585">Přesto anonymní režim ukončit?</translation>
 <translation id="7659297516559011665">Pouze hesla na tomto zařízení</translation>
+<translation id="7659336857671800422">Spustit průvodce ochranou soukromí</translation>
 <translation id="7659584679870740384">Nemáte oprávnění používat toto zařízení. Kontaktujte administrátora a požádejte jej o oprávnění k přihlášení.</translation>
 <translation id="7661259717474717992">Povolit webům ukládat a číst data souborů cookie</translation>
 <translation id="7661451191293163002">Nepodařilo se získat registrační certifikát.</translation>
@@ -7959,6 +7975,7 @@
 <translation id="9200339982498053969"><ph name="ORIGIN" /> bude moci upravit soubory ve složce <ph name="FOLDERNAME" /></translation>
 <translation id="920045321358709304">Hledat pomocí vyhledávače <ph name="SEARCH_ENGINE" /></translation>
 <translation id="9201023452444595544">Veškerá data offline budou vymazána</translation>
+<translation id="9201117361710210082">Zobrazeno dříve</translation>
 <translation id="9201220332032049474">Možnosti zámku obrazovky</translation>
 <translation id="9201842707396338580">Došlo k chybě. Kontaktujte vlastníka nebo administrátora zařízení. Kód chyby: <ph name="ERROR_CODE" />.</translation>
 <translation id="9203398526606335860">&amp;Profilování povoleno</translation>
diff --git a/chrome/app/resources/generated_resources_da.xtb b/chrome/app/resources/generated_resources_da.xtb
index a251c1db..1c3a8b9 100644
--- a/chrome/app/resources/generated_resources_da.xtb
+++ b/chrome/app/resources/generated_resources_da.xtb
@@ -513,6 +513,7 @@
 <translation id="1521442365706402292">Administrer certifikater</translation>
 <translation id="1521774566618522728">Aktiv i dag</translation>
 <translation id="152234381334907219">Gemmes aldrig</translation>
+<translation id="1523279371236772909">Set inden for den seneste måned</translation>
 <translation id="1523978563989812243">Maskiner til oplæsning</translation>
 <translation id="1524430321211440688">Tastatur</translation>
 <translation id="1524563461097350801">Nej tak</translation>
@@ -1035,6 +1036,7 @@
 <translation id="2022395138980869975">Slå sideløbende søgning til/fra</translation>
 <translation id="2023167225947895179">Pinkoden kan være nem at gætte</translation>
 <translation id="202352106777823113">Overførslen tog for lang tid og blev stoppet af netværket.</translation>
+<translation id="2024195579772565064">Slet søgemaskine</translation>
 <translation id="2025632980034333559"><ph name="APP_NAME" /> er gået ned. Klik her for at genstarte udvidelsen.</translation>
 <translation id="2028449514182362831">Funktioner, der skal bruge bevægelsessensorer, fungerer ikke</translation>
 <translation id="202918510990975568">Angiv din adgangskode for at konfigurere sikkerhed og login</translation>
@@ -1176,6 +1178,7 @@
 <translation id="2159488579268505102">USB-C</translation>
 <translation id="216169395504480358">Tilføj Wi-Fi...</translation>
 <translation id="2162155940152307086">Synkroniseringen starter, når du forlader indstillingerne for synkronisering</translation>
+<translation id="2162926944953615670">Der er ingen tilgængelige eSIM-profiler</translation>
 <translation id="2163470535490402084">Du skal oprette forbindelse til internettet for at kunne logge ind på din <ph name="DEVICE_TYPE" />.</translation>
 <translation id="2163937499206714165">Aktivér mørkt tilstand</translation>
 <translation id="2164131635608782358"><ph name="FIRST_SWITCH" />, <ph name="SECOND_SWITCH" />, <ph name="THIRD_SWITCH" /> og 1 anden kontakt</translation>
@@ -1253,6 +1256,7 @@
 <translation id="2232876851878324699">Filen indeholdt ét certifikat, der ikke blev importeret:</translation>
 <translation id="2233502537820838181">&amp;Flere oplysninger</translation>
 <translation id="223356358902285214">Web- og appaktivitet</translation>
+<translation id="2234827758954819389">Guide til privatlivsindstillinger</translation>
 <translation id="2234876718134438132">Synkronisering og Google-tjenester</translation>
 <translation id="2235344399760031203">Tredjepartscookies er blokeret</translation>
 <translation id="2238379619048995541">Data for frekvenstilstand</translation>
@@ -1871,6 +1875,7 @@
 <translation id="2828650939514476812">Opret forbindelse til Wi-Fi-netværk</translation>
 <translation id="2831430281393059038">Enheden understøttes</translation>
 <translation id="2832124733806557606">Dit barn kan bruge en pinkode til at logge ind på enheden eller låse den op.</translation>
+<translation id="2835177225987815960">Din aktuelle konfiguration af scanning nulstilles, herunder præferencerne for tildelte kontakter og hastigheden ved automatisk scanning.</translation>
 <translation id="2835547721736623118">Tjeneste til talegenkendelse</translation>
 <translation id="2836269494620652131">Nedbrud</translation>
 <translation id="2836635946302913370">Login med dette brugernavn er blevet deaktiveret af din administrator.</translation>
@@ -3108,6 +3113,7 @@
 <translation id="4095264805865317199">Åbn brugerflade for aktivering af mobildata</translation>
 <translation id="4095507791297118304">Primær skærm</translation>
 <translation id="4096508467498758490">Deaktiver udvidelser, der kører i udviklertilstand</translation>
+<translation id="4096797685681362305">Set inden for den seneste uge</translation>
 <translation id="4097406557126260163">Apps og udvidelser</translation>
 <translation id="409742781329613461">Tips til Chrome</translation>
 <translation id="4097560579602855702">Søg på Google</translation>
@@ -3516,6 +3522,7 @@
 <translation id="4547659257713117923">Ingen faner fra andre enheder</translation>
 <translation id="4547672827276975204">Indstil automatisk</translation>
 <translation id="4549791035683739768">Der er ikke gemt nogen fingeraftryk i din sikkerhedsnøgle</translation>
+<translation id="4550926046134589611">Nogle understøttede links åbnes fortsat i <ph name="APP_NAME" />.</translation>
 <translation id="4551763574344810652">Tryk på <ph name="MODIFIER_KEY_DESCRIPTION" /> for at fortryde</translation>
 <translation id="4553526521109675518">Du skal genstarte din Chromebook for at ændre enhedens sprog. <ph name="BEGIN_LINK_LEARN_MORE" />Få flere oplysninger<ph name="END_LINK_LEARN_MORE" /></translation>
 <translation id="4554491709904933912">Træk over billeder for at søge med <ph name="VISUAL_SEARCH_PROVIDER" /></translation>
@@ -3664,6 +3671,7 @@
 <translation id="4699172675775169585">Billeder og filer, der er gemt i cache</translation>
 <translation id="4699357559218762027">(automatisk opstart)</translation>
 <translation id="4701025263201366865">Forældrelogin</translation>
+<translation id="4701335814944566468">Set i går</translation>
 <translation id="4708794300267213770">Vis låseskærmen, når enheden vågner fra dvale</translation>
 <translation id="4708849949179781599">Afslut <ph name="PRODUCT_NAME" /></translation>
 <translation id="4711638718396952945">Gendan indstillinger</translation>
@@ -3731,6 +3739,7 @@
 <translation id="479536056609751218">Webside, kun HTML</translation>
 <translation id="4796142525425001238">Gendan altid</translation>
 <translation id="4798236378408895261">Vedhæft <ph name="BEGIN_LINK" />Bluetooth-logfiler<ph name="END_LINK" /> (internt hos Google)</translation>
+<translation id="479863874072008121">Administrer enheder</translation>
 <translation id="4800839971935185386">Gennemgå navne- og ikonopdateringer</translation>
 <translation id="4801448226354548035">Skjul konti</translation>
 <translation id="4801512016965057443">Tillad dataroaming for mobil</translation>
@@ -3804,6 +3813,7 @@
 <translation id="48704129375571883">Tilføj yderligere funktioner</translation>
 <translation id="4870758487381879312">Angiv adgangskoden fra administratoren for at få konfigurationsoplysninger</translation>
 <translation id="4870903493621965035">Ingen parrede enheder</translation>
+<translation id="4870995365819149457">Nogle understøttede links åbnes fortsat i <ph name="APP_NAME" />, <ph name="APP_NAME_2" />, <ph name="APP_NAME_3" /> og 1 anden app.</translation>
 <translation id="4871308555310586478">Den er ikke fra Chrome Webshop.</translation>
 <translation id="4871322859485617074">Pinkoden indeholder ugyldige tegn</translation>
 <translation id="4871370605780490696">Tilføj bogmærke</translation>
@@ -4180,6 +4190,7 @@
 <translation id="526622169288322445">Flere handlinger for <ph name="ADDRESS_SUMMARY" /></translation>
 <translation id="5269977353971873915">Udskrift mislykkedes</translation>
 <translation id="5275352920323889391">Hund</translation>
+<translation id="527605719918376753">Slå fanens lyd fra</translation>
 <translation id="527605982717517565">Tillad altid JavaScript på <ph name="HOST" /></translation>
 <translation id="5277127016695466621">Vis sidepanel</translation>
 <translation id="5278823018825269962">Status-id</translation>
@@ -4839,6 +4850,7 @@
 <translation id="5969728632630673489">Meddelelsen med tastaturgenveje blev lukket</translation>
 <translation id="5971037678316050792">Kontrollere tilstand og parring af Bluetooth-adaptere</translation>
 <translation id="597235323114979258">Se flere destinationer</translation>
+<translation id="5972543790327947908">Nogle understøttede links åbnes fortsat i <ph name="APP_NAME" />, <ph name="APP_NAME_2" /> eller <ph name="APP_NAME_3" />.</translation>
 <translation id="5972666587303800813">Selvkørende tjeneste</translation>
 <translation id="5972708806901999743">Flyt til toppen</translation>
 <translation id="5972826969634861500">Start <ph name="PRODUCT_NAME" /></translation>
@@ -5209,6 +5221,7 @@
 <translation id="6355789186038748882">Eksperimentel browser (i alfakvalitet). Nogle funktioner mangler eller er ufuldstændige. Du kan rapportere problemer ved at gå til Hjælp &gt; "Rapportér et problem...".</translation>
 <translation id="635609604405270300">Lad enheden være tændt</translation>
 <translation id="63566973648609420">Det er kun personer med din adgangssætning, der kan læse dine krypterede data. Adgangssætningen sendes ikke til og gemmes ikke af Google. Hvis du glemmer din adgangssætning eller vil ændre denne indstilling, skal du <ph name="BEGIN_LINK" />nulstille synkroniseringen<ph name="END_LINK" />.</translation>
+<translation id="6357305427698525450">Nogle understøttede links åbnes fortsat i <ph name="APP_NAME" /> eller <ph name="APP_NAME_2" />.</translation>
 <translation id="6358884629796491903">Drage</translation>
 <translation id="6359706544163531585">Deaktiver Lyst tema</translation>
 <translation id="6361850914223837199">Info om fejl:</translation>
@@ -5727,6 +5740,7 @@
 <translation id="6900284862687837908">Baggrundsapp: <ph name="BACKGROUND_APP_URL" /></translation>
 <translation id="6900532703269623216">Forbedret beskyttelse</translation>
 <translation id="6900651018461749106">Log ind igen for at opdatere <ph name="USER_EMAIL" /></translation>
+<translation id="6900654715912436255">Er du sikker på, at du vil slette denne søgemaskine?</translation>
 <translation id="6902066522699286937">Eksempel på stemme</translation>
 <translation id="6902336033320348843">Sektionen understøttes ikke: <ph name="ERROR_LINE" /></translation>
 <translation id="6902837902700739466">Føj enheden til domænet</translation>
@@ -5998,6 +6012,7 @@
 <translation id="7189234443051076392">Sørg for, at der er nok ledig plads på din enhed</translation>
 <translation id="7189451821249468368">Du har ikke nok opgraderinger til at tilmelde denne enhed. Kontakt salgsafdelingen for at købe flere. Hvis du mener, at du får denne meddelelse ved en fejl, skal du kontakte support.</translation>
 <translation id="7189965711416741966">Fingeraftrykket er tilføjet.</translation>
+<translation id="7191063546666816478">Nogle understøttede links åbnes fortsat i <ph name="APP_NAME" />, <ph name="APP_NAME_2" />, <ph name="APP_NAME_3" /> og <ph name="NUMBER_OF_OTHER_APPS" /> andre apps.</translation>
 <translation id="7191159667348037">Ukendt printer (USB)</translation>
 <translation id="7193051357671784796">Din app blev tilføjet af din organisation. Genstart appen for at afslutte installationen.</translation>
 <translation id="7193374945610105795">Der er ikke gemt nogen adgangskoder til <ph name="ORIGIN" /></translation>
@@ -6453,6 +6468,7 @@
 <translation id="7658239707568436148">Annuller</translation>
 <translation id="7659154729610375585">Vil du afslutte inkognitotilstand alligevel?</translation>
 <translation id="7659297516559011665">Kun adgangskoder på denne enhed</translation>
+<translation id="7659336857671800422">Kig nærmere på guiden til privatlivsindstillinger</translation>
 <translation id="7659584679870740384">Du har ikke tilladelse til at bruge denne enhed. Kontakt administratoren for at få tilladelse til at logge ind.</translation>
 <translation id="7661259717474717992">Tillad, at websites gemmer og læser cookiedata</translation>
 <translation id="7661451191293163002">Det var ikke muligt at hente et registreringscertifikat.</translation>
@@ -7976,6 +7992,7 @@
 <translation id="9200339982498053969"><ph name="ORIGIN" /> vil kunne redigere filer i <ph name="FOLDERNAME" /></translation>
 <translation id="920045321358709304">Søg via <ph name="SEARCH_ENGINE" /></translation>
 <translation id="9201023452444595544">Alle offlinedata ryddes</translation>
+<translation id="9201117361710210082">Set for nylig</translation>
 <translation id="9201220332032049474">Valgmuligheder for skærmlås</translation>
 <translation id="9201842707396338580">Noget gik galt. Kontakt enhedens ejer eller administrator. Fejlkode: <ph name="ERROR_CODE" />.</translation>
 <translation id="9203398526606335860">&amp;Profilering aktiveret</translation>
diff --git a/chrome/app/resources/generated_resources_de.xtb b/chrome/app/resources/generated_resources_de.xtb
index e98b3b8..fcde5ea0 100644
--- a/chrome/app/resources/generated_resources_de.xtb
+++ b/chrome/app/resources/generated_resources_de.xtb
@@ -1019,6 +1019,7 @@
 <translation id="2022395138980869975">Seitensuche ein-/ausschalten</translation>
 <translation id="2023167225947895179">Diese PIN kann leicht erraten werden</translation>
 <translation id="202352106777823113">Der Download hat zu lange gedauert und wurde vom Netzwerk gestoppt.</translation>
+<translation id="2024195579772565064">Suchmaschine löschen</translation>
 <translation id="2025632980034333559"><ph name="APP_NAME" /> ist abgestürzt. Klicken Sie auf dieses Fenster, um die Erweiterung erneut zu laden.</translation>
 <translation id="2028449514182362831">Funktionen, die Bewegungssensoren benötigen, funktionieren dann nicht</translation>
 <translation id="202918510990975568">Geben Sie Ihr Passwort ein, um die Sicherheits- und Anmeldungseinstellungen zu konfigurieren</translation>
@@ -1160,6 +1161,7 @@
 <translation id="2159488579268505102">USB-C</translation>
 <translation id="216169395504480358">WLAN hinzufügen...</translation>
 <translation id="2162155940152307086">Die Synchronisierung wird gestartet, sobald Sie die Synchronisierungseinstellungen verlassen</translation>
+<translation id="2162926944953615670">Keine verfügbaren eSIM-Profile</translation>
 <translation id="2163470535490402084">Stellen Sie eine Internetverbindung her, um sich auf Ihrem Gerät (<ph name="DEVICE_TYPE" />) anzumelden.</translation>
 <translation id="2163937499206714165">Dunklen Modus einschalten</translation>
 <translation id="2164131635608782358"><ph name="FIRST_SWITCH" />, <ph name="SECOND_SWITCH" />, <ph name="THIRD_SWITCH" /> und ein weiterer Schalter</translation>
@@ -1852,6 +1854,7 @@
 <translation id="2828650939514476812">Mit WLAN verbinden</translation>
 <translation id="2831430281393059038">Gerät wird unterstützt</translation>
 <translation id="2832124733806557606">Ihr Kind kann eine PIN verwenden, um sich anzumelden oder das Gerät zu entsperren.</translation>
+<translation id="2835177225987815960">Ihre aktuelle Scankonfiguration wird zurückgesetzt, einschließlich aller Einstellungen für zugewiesene Schalter und für die Geschwindigkeit des automatischen Scans.</translation>
 <translation id="2835547721736623118">Spracherkennungsservice</translation>
 <translation id="2836269494620652131">Absturz</translation>
 <translation id="2836635946302913370">Die Anmeldung mit diesem Nutzernamen wurde von Ihrem Administrator deaktiviert.</translation>
@@ -3496,6 +3499,7 @@
 <translation id="4547659257713117923">Keine Tabs von anderen Geräten</translation>
 <translation id="4547672827276975204">Automatisch festlegen</translation>
 <translation id="4549791035683739768">Auf Ihrem Sicherheitsschlüssel sind keine Fingerabdrücke gespeichert</translation>
+<translation id="4550926046134589611">Einige unterstützte Links werden weiterhin in <ph name="APP_NAME" /> geöffnet.</translation>
 <translation id="4551763574344810652">"<ph name="MODIFIER_KEY_DESCRIPTION" />" drücken, um Aktion rückgängig zu machen</translation>
 <translation id="4553526521109675518">Sie müssen Ihr Chromebook neu starten, um die Gerätesprache zu ändern. <ph name="BEGIN_LINK_LEARN_MORE" />Weitere Informationen<ph name="END_LINK_LEARN_MORE" /></translation>
 <translation id="4554491709904933912">Zum Suchen mit <ph name="VISUAL_SEARCH_PROVIDER" /> Maus über Bilder ziehen</translation>
@@ -3784,6 +3788,7 @@
 <translation id="48704129375571883">Zusätzliche Funktionen hinzufügen</translation>
 <translation id="4870758487381879312">Zum Abrufen von Konfigurationsinformationen das vom Administrator vergebene Passwort eingeben</translation>
 <translation id="4870903493621965035">Keine gekoppelten Geräte</translation>
+<translation id="4870995365819149457">Einige unterstützte Links werden weiterhin in <ph name="APP_NAME" />, <ph name="APP_NAME_2" />, <ph name="APP_NAME_3" /> und 1 anderen App geöffnet.</translation>
 <translation id="4871308555310586478">Nicht aus dem Chrome Web Store</translation>
 <translation id="4871322859485617074">PIN enthält ungültige Zeichen</translation>
 <translation id="4871370605780490696">Lesezeichen hinzufügen</translation>
@@ -4158,6 +4163,7 @@
 <translation id="526622169288322445">Weitere Aktionen für <ph name="ADDRESS_SUMMARY" /></translation>
 <translation id="5269977353971873915">Fehler beim Drucken</translation>
 <translation id="5275352920323889391">Hund</translation>
+<translation id="527605719918376753">Stummschalten</translation>
 <translation id="527605982717517565">JavaScript auf <ph name="HOST" /> immer zulassen</translation>
 <translation id="5277127016695466621">Seitenleiste einblenden</translation>
 <translation id="5278823018825269962">Status-ID</translation>
@@ -4817,6 +4823,7 @@
 <translation id="5969728632630673489">Benachrichtigung zu Tastenkombinationen wurde geschlossen</translation>
 <translation id="5971037678316050792">Bluetooth-Adapterstatus und -Kopplung steuern</translation>
 <translation id="597235323114979258">Weitere Ziele anzeigen</translation>
+<translation id="5972543790327947908">Einige unterstützte Links werden weiterhin in <ph name="APP_NAME" />, <ph name="APP_NAME_2" /> oder <ph name="APP_NAME_3" /> geöffnet.</translation>
 <translation id="5972666587303800813">Managementfreier Dienst</translation>
 <translation id="5972708806901999743">An den Anfang verschieben</translation>
 <translation id="5972826969634861500"><ph name="PRODUCT_NAME" /> starten</translation>
@@ -5187,6 +5194,7 @@
 <translation id="6355789186038748882">Dies ist ein experimenteller Browser (Alpha). Einige Funktionen sind möglicherweise nicht verfügbar oder unvollständig. Melden Sie Probleme über „Hilfe“ &gt; „Problem melden…“.</translation>
 <translation id="635609604405270300">Gerät eingeschaltet lassen</translation>
 <translation id="63566973648609420">Nur Personen mit Ihrer Passphrase können Ihre verschlüsselten Daten lesen. Die Passphrase wird nicht an Google gesendet oder von Google gespeichert. Falls Sie sie vergessen oder diese Einstellung ändern möchten, müssen Sie die <ph name="BEGIN_LINK" />Synchronisierung zurücksetzen<ph name="END_LINK" />.</translation>
+<translation id="6357305427698525450">Einige unterstützte Links werden weiterhin in <ph name="APP_NAME" /> oder <ph name="APP_NAME_2" /> geöffnet.</translation>
 <translation id="6358884629796491903">Drache</translation>
 <translation id="6359706544163531585">Helles Design deaktivieren</translation>
 <translation id="6361850914223837199">Fehlerdetails:</translation>
@@ -5705,6 +5713,7 @@
 <translation id="6900284862687837908">Hintergrund-App: <ph name="BACKGROUND_APP_URL" /></translation>
 <translation id="6900532703269623216">Erweitertes Safe Browsing</translation>
 <translation id="6900651018461749106">Zum Aktualisieren von <ph name="USER_EMAIL" /> noch einmal anmelden</translation>
+<translation id="6900654715912436255">Möchten Sie diese Suchmaschine wirklich löschen?</translation>
 <translation id="6902066522699286937">Stimme zum Anhören</translation>
 <translation id="6902336033320348843">Abschnitt nicht unterstützt: <ph name="ERROR_LINE" /></translation>
 <translation id="6902837902700739466">Gerät bei Domain registrieren</translation>
@@ -5976,6 +5985,7 @@
 <translation id="7189234443051076392">Achten Sie darauf, dass auf Ihrem Gerät ausreichend Speicherplatz vorhanden ist</translation>
 <translation id="7189451821249468368">Sie haben nicht genügend Upgrades zum Anmelden dieses Geräts. Weitere Upgrades können Sie beim Vertrieb erwerben. Wenn Sie glauben, dass Sie diese Meldung fälschlicherweise erhalten, kontaktieren Sie bitte den Support.</translation>
 <translation id="7189965711416741966">Fingerabdruck hinzugefügt.</translation>
+<translation id="7191063546666816478">Einige unterstützte Links werden weiterhin in <ph name="APP_NAME" />, <ph name="APP_NAME_2" />, <ph name="APP_NAME_3" /> und <ph name="NUMBER_OF_OTHER_APPS" /> anderen Apps geöffnet.</translation>
 <translation id="7191159667348037">Unbekannter Drucker (USB)</translation>
 <translation id="7193051357671784796">Diese App wurde von Ihrer Organisation hinzugefügt. Starten Sie die App neu, um die Installation abzuschließen.</translation>
 <translation id="7193374945610105795">Für <ph name="ORIGIN" /> sind keine Passwörter gespeichert</translation>
diff --git a/chrome/app/resources/generated_resources_el.xtb b/chrome/app/resources/generated_resources_el.xtb
index 2f9a4229..cee8f9f 100644
--- a/chrome/app/resources/generated_resources_el.xtb
+++ b/chrome/app/resources/generated_resources_el.xtb
@@ -4184,6 +4184,7 @@
 <translation id="526622169288322445">Περισσότερες ενέργειες για <ph name="ADDRESS_SUMMARY" /></translation>
 <translation id="5269977353971873915">Η εκτύπωση απέτυχε</translation>
 <translation id="5275352920323889391">Σκύλος</translation>
+<translation id="527605719918376753">Σίγαση καρτέλας</translation>
 <translation id="527605982717517565">Να επιτρέπεται πάντα το JavaScript στο <ph name="HOST" /></translation>
 <translation id="5277127016695466621">Εμφάνιση πλαϊνού πλαισίου</translation>
 <translation id="5278823018825269962">Αναγνωριστικό κατάστασης</translation>
diff --git a/chrome/app/resources/generated_resources_en-GB.xtb b/chrome/app/resources/generated_resources_en-GB.xtb
index ea5832f..c4f532f 100644
--- a/chrome/app/resources/generated_resources_en-GB.xtb
+++ b/chrome/app/resources/generated_resources_en-GB.xtb
@@ -4189,6 +4189,7 @@
 <translation id="526622169288322445">More actions for <ph name="ADDRESS_SUMMARY" /></translation>
 <translation id="5269977353971873915">Print Failed</translation>
 <translation id="5275352920323889391">Dog</translation>
+<translation id="527605719918376753">Mute tab</translation>
 <translation id="527605982717517565">Always allow JavaScript on <ph name="HOST" /></translation>
 <translation id="5277127016695466621">Show side panel</translation>
 <translation id="5278823018825269962">Status ID</translation>
diff --git a/chrome/app/resources/generated_resources_es-419.xtb b/chrome/app/resources/generated_resources_es-419.xtb
index 303d4f2..bcae0264 100644
--- a/chrome/app/resources/generated_resources_es-419.xtb
+++ b/chrome/app/resources/generated_resources_es-419.xtb
@@ -1019,6 +1019,7 @@
 <translation id="2022395138980869975">Activar o desactivar la búsqueda lateral</translation>
 <translation id="2023167225947895179">Es posible que el PIN sea fácil de adivinar</translation>
 <translation id="202352106777823113">La descarga estaba tardando demasiado y fue detenida por la red.</translation>
+<translation id="2024195579772565064">Borrar el motor de búsqueda</translation>
 <translation id="2025632980034333559"><ph name="APP_NAME" /> se ha bloqueado. Haz clic en este globo para volver a cargar la extensión.</translation>
 <translation id="2028449514182362831">No se habilitarán las funciones que necesitan sensores de movimiento.</translation>
 <translation id="202918510990975568">Ingresa tu contraseña para configurar la seguridad y el acceso</translation>
@@ -1160,6 +1161,7 @@
 <translation id="2159488579268505102">USB-C</translation>
 <translation id="216169395504480358">Agregar Wi-Fi</translation>
 <translation id="2162155940152307086">La sincronización volverá a comenzar cuando salgas de la configuración</translation>
+<translation id="2162926944953615670">No hay perfiles de eSIM disponibles</translation>
 <translation id="2163470535490402084">Conéctate a Internet para acceder a tu <ph name="DEVICE_TYPE" />.</translation>
 <translation id="2163937499206714165">Activar el modo oscuro</translation>
 <translation id="2164131635608782358"><ph name="FIRST_SWITCH" />, <ph name="SECOND_SWITCH" />, <ph name="THIRD_SWITCH" /> y 1 interruptor más</translation>
@@ -1852,6 +1854,7 @@
 <translation id="2828650939514476812">Conectarse a la red Wi-Fi</translation>
 <translation id="2831430281393059038">El dispositivo es compatible</translation>
 <translation id="2832124733806557606">Tu hijo puede usar un PIN para acceder al dispositivo o desbloquearlo.</translation>
+<translation id="2835177225987815960">Se restablecerá la configuración actual de escaneo, incluidos los interruptores asignados y las preferencias de velocidad de escaneo automático.</translation>
 <translation id="2835547721736623118">Servicio de reconocimiento de voz</translation>
 <translation id="2836269494620652131">Fallo</translation>
 <translation id="2836635946302913370">El administrador ha inhabilitado el inicio de sesión para este nombre de usuario.</translation>
@@ -3496,6 +3499,7 @@
 <translation id="4547659257713117923">No hay pestañas de otros dispositivos</translation>
 <translation id="4547672827276975204">Establecer automáticamente</translation>
 <translation id="4549791035683739768">Tu llave de seguridad no tiene huellas digitales almacenadas</translation>
+<translation id="4550926046134589611">Algunos vínculos compatibles se seguirán abriendo en <ph name="APP_NAME" />.</translation>
 <translation id="4551763574344810652">Presiona <ph name="MODIFIER_KEY_DESCRIPTION" /> para deshacer</translation>
 <translation id="4553526521109675518">Para cambiar el idioma del dispositivo, debes reiniciar la Chromebook. <ph name="BEGIN_LINK_LEARN_MORE" />Más información<ph name="END_LINK_LEARN_MORE" /></translation>
 <translation id="4554491709904933912">Arrastrar imágenes para buscar con <ph name="VISUAL_SEARCH_PROVIDER" /></translation>
@@ -3784,6 +3788,7 @@
 <translation id="48704129375571883">Agregar funciones adicionales</translation>
 <translation id="4870758487381879312">Ingresar la contraseña que proporcionó el administrador para obtener información sobre la configuración</translation>
 <translation id="4870903493621965035">Sin dispositivos sincronizados</translation>
+<translation id="4870995365819149457">Algunos vínculos compatibles se seguirán abriendo en <ph name="APP_NAME" />, <ph name="APP_NAME_2" />, <ph name="APP_NAME_3" /> y una app más.</translation>
 <translation id="4871308555310586478">No se obtuvo en Chrome Web Store.</translation>
 <translation id="4871322859485617074">El PIN contiene caracteres no válidos</translation>
 <translation id="4871370605780490696">Agregar marcador</translation>
@@ -4160,6 +4165,7 @@
 <translation id="526622169288322445">Más acciones para <ph name="ADDRESS_SUMMARY" /></translation>
 <translation id="5269977353971873915">Error de impresión</translation>
 <translation id="5275352920323889391">Perro</translation>
+<translation id="527605719918376753">Silenciar pestaña</translation>
 <translation id="527605982717517565">Siempre permitir JavaScript en <ph name="HOST" /></translation>
 <translation id="5277127016695466621">Mostrar panel lateral</translation>
 <translation id="5278823018825269962">ID de estado</translation>
@@ -4819,6 +4825,7 @@
 <translation id="5969728632630673489">Se descartó la notificación de combinaciones de teclas</translation>
 <translation id="5971037678316050792">Controlar el estado y la sincronización del adaptador Bluetooth</translation>
 <translation id="597235323114979258">Ver más destinos</translation>
+<translation id="5972543790327947908">Algunos vínculos compatibles se seguirán abriendo en <ph name="APP_NAME" />, <ph name="APP_NAME_2" /> o <ph name="APP_NAME_3" />.</translation>
 <translation id="5972666587303800813">Servicio sin funcionamiento</translation>
 <translation id="5972708806901999743">Mover al principio</translation>
 <translation id="5972826969634861500">Comienzo <ph name="PRODUCT_NAME" /></translation>
@@ -5189,6 +5196,7 @@
 <translation id="6355789186038748882">Este navegador es experimental (calidad alfa). Faltan algunas funciones o están incompletas. Para informar problemas, usa la opción Ayuda &gt; "Informar un problema…".</translation>
 <translation id="635609604405270300">No apagues el dispositivo</translation>
 <translation id="63566973648609420">Solo las personas que tengan tu frase de contraseña pueden leer los datos encriptados. Google no envía ni almacena la frase de contraseña. Si la olvidas o quieres cambiar esta configuración, deberás <ph name="BEGIN_LINK" />restablecer la sincronización<ph name="END_LINK" />.</translation>
+<translation id="6357305427698525450">Algunos vínculos compatibles se seguirán abriendo en <ph name="APP_NAME" /> o <ph name="APP_NAME_2" />.</translation>
 <translation id="6358884629796491903">Dragón</translation>
 <translation id="6359706544163531585">Inhabilitar el tema claro</translation>
 <translation id="6361850914223837199">Detalles del error:</translation>
@@ -5707,6 +5715,7 @@
 <translation id="6900284862687837908">Aplicación en segundo plano: <ph name="BACKGROUND_APP_URL" /></translation>
 <translation id="6900532703269623216">Protección mejorada</translation>
 <translation id="6900651018461749106">Vuelve a acceder para actualizar <ph name="USER_EMAIL" /></translation>
+<translation id="6900654715912436255">¿Estás seguro de que deseas borrar este motor de búsqueda?</translation>
 <translation id="6902066522699286937">Voz de prueba</translation>
 <translation id="6902336033320348843">La sección no es compatible: <ph name="ERROR_LINE" /></translation>
 <translation id="6902837902700739466">Une el dispositivo al dominio</translation>
@@ -5978,6 +5987,7 @@
 <translation id="7189234443051076392">Asegúrate de que haya espacio suficiente en tu dispositivo</translation>
 <translation id="7189451821249468368">No tienes suficientes actualizaciones para inscribir este dispositivo; comunícate con el vendedor para adquirir más. Si crees que recibiste este mensaje por error, comunícate con el servicio de asistencia.</translation>
 <translation id="7189965711416741966">Se agregó una huella dactilar.</translation>
+<translation id="7191063546666816478">Algunos vínculos compatibles se seguirán abriendo en <ph name="APP_NAME" />, <ph name="APP_NAME_2" />, <ph name="APP_NAME_3" /> y otras <ph name="NUMBER_OF_OTHER_APPS" /> apps.</translation>
 <translation id="7191159667348037">Impresora desconocida (USB)</translation>
 <translation id="7193051357671784796">Tu organización agregó esta app. Para finalizar la instalación, restablece la app.</translation>
 <translation id="7193374945610105795">No se guardó ninguna contraseña para <ph name="ORIGIN" /></translation>
diff --git a/chrome/app/resources/generated_resources_es.xtb b/chrome/app/resources/generated_resources_es.xtb
index 95603a4..a9ed8549 100644
--- a/chrome/app/resources/generated_resources_es.xtb
+++ b/chrome/app/resources/generated_resources_es.xtb
@@ -1022,6 +1022,7 @@
 <translation id="2022395138980869975">Activar o desactivar búsqueda lateral</translation>
 <translation id="2023167225947895179">Es posible que el PIN sea fácil de averiguar</translation>
 <translation id="202352106777823113">La descarga estaba tardando demasiado y la red la ha detenido.</translation>
+<translation id="2024195579772565064">Eliminar buscador</translation>
 <translation id="2025632980034333559"><ph name="APP_NAME" /> ha dejado de funcionar. Haz clic en este globo a para volver a cargar la extensión.</translation>
 <translation id="2028449514182362831">Las funciones que necesiten sensores de movimiento no se podrán utilizar</translation>
 <translation id="202918510990975568">Introduce tu contraseña para configurar la seguridad y el inicio de sesión</translation>
@@ -1163,6 +1164,7 @@
 <translation id="2159488579268505102">USB-C</translation>
 <translation id="216169395504480358">Añadir Wi-Fi...</translation>
 <translation id="2162155940152307086">La sincronización empezará cuando salgas de la configuración</translation>
+<translation id="2162926944953615670">No hay perfiles de eSIM disponibles</translation>
 <translation id="2163470535490402084">Conéctate a Internet para iniciar sesión en tu <ph name="DEVICE_TYPE" />.</translation>
 <translation id="2163937499206714165">Activar modo oscuro</translation>
 <translation id="2164131635608782358"><ph name="FIRST_SWITCH" />, <ph name="SECOND_SWITCH" />, <ph name="THIRD_SWITCH" /> y 1 interruptor más</translation>
@@ -1855,6 +1857,7 @@
 <translation id="2828650939514476812">Conectar a la red Wi-Fi</translation>
 <translation id="2831430281393059038">Dispositivo admitido</translation>
 <translation id="2832124733806557606">Tu hijo/a puede usar el PIN para iniciar sesión en el dispositivo o para desbloquearlo.</translation>
+<translation id="2835177225987815960">Se borrará la configuración de búsqueda actual, incluyendo todos los interruptores asignados y las preferencias de velocidad de la búsqueda automática.</translation>
 <translation id="2835547721736623118">Servicio de reconocimiento de voz</translation>
 <translation id="2836269494620652131">Error</translation>
 <translation id="2836635946302913370">El administrador ha inhabilitado el inicio de sesión para este nombre de usuario.</translation>
@@ -3498,6 +3501,7 @@
 <translation id="4547659257713117923">No hay pestañas de otros dispositivos</translation>
 <translation id="4547672827276975204">Definir automáticamente</translation>
 <translation id="4549791035683739768">No hay ninguna huella digital almacenada en tu llave de seguridad</translation>
+<translation id="4550926046134589611">Algunos enlaces compatibles se seguirán abriendo en <ph name="APP_NAME" />.</translation>
 <translation id="4551763574344810652">Pulsa <ph name="MODIFIER_KEY_DESCRIPTION" /> para deshacer</translation>
 <translation id="4553526521109675518">Debes reiniciar tu Chromebook para cambiar el idioma del dispositivo. <ph name="BEGIN_LINK_LEARN_MORE" />Más información<ph name="END_LINK_LEARN_MORE" /></translation>
 <translation id="4554491709904933912">Seleccionar la parte de una imagen para buscar con <ph name="VISUAL_SEARCH_PROVIDER" /></translation>
@@ -3786,6 +3790,7 @@
 <translation id="48704129375571883">Añadir funciones adicionales</translation>
 <translation id="4870758487381879312">Introduce una contraseña proporcionada por el administrador para obtener la información de configuración</translation>
 <translation id="4870903493621965035">No hay dispositivos vinculados</translation>
+<translation id="4870995365819149457">Algunos enlaces compatibles se seguirán abriendo en <ph name="APP_NAME" />, <ph name="APP_NAME_2" />, <ph name="APP_NAME_3" /> y en otra aplicación más.</translation>
 <translation id="4871308555310586478">No procede de Chrome Web Store.</translation>
 <translation id="4871322859485617074">El PIN contiene caracteres no válidos</translation>
 <translation id="4871370605780490696">Añadir marcador</translation>
@@ -4162,6 +4167,7 @@
 <translation id="526622169288322445">Más acciones de <ph name="ADDRESS_SUMMARY" /></translation>
 <translation id="5269977353971873915">Error de impresión</translation>
 <translation id="5275352920323889391">Perro</translation>
+<translation id="527605719918376753">Silenciar pestaña</translation>
 <translation id="527605982717517565">Permitir siempre JavaScript en <ph name="HOST" /></translation>
 <translation id="5277127016695466621">Mostrar panel lateral</translation>
 <translation id="5278823018825269962">ID de estado</translation>
@@ -4821,6 +4827,7 @@
 <translation id="5969728632630673489">Notificación de combinación de teclas cerrada</translation>
 <translation id="5971037678316050792">Controlar el estado y la vinculación del adaptador de Bluetooth</translation>
 <translation id="597235323114979258">Ver más destinos</translation>
+<translation id="5972543790327947908">Algunos enlaces compatibles se seguirán abriendo en <ph name="APP_NAME" />, <ph name="APP_NAME_2" /> o <ph name="APP_NAME_3" />.</translation>
 <translation id="5972666587303800813">Servicio No-op</translation>
 <translation id="5972708806901999743">Mover al principio</translation>
 <translation id="5972826969634861500">Iniciar <ph name="PRODUCT_NAME" /></translation>
@@ -5191,6 +5198,7 @@
 <translation id="6355789186038748882">Navegador en fase experimental con la calidad de una versión alfa. Es posible que algunas funciones no estén disponibles o estén incompletas. Para informar de cualquier problema, ve a Ayuda &gt; Notificar un problema.</translation>
 <translation id="635609604405270300">No apagues el dispositivo</translation>
 <translation id="63566973648609420">Solo alguien que tenga tu frase de contraseña puede leer tus datos cifrados. Google no envía ni almacena la frase de contraseña. Si la olvidas o quieres cambiar estos ajustes, deberás <ph name="BEGIN_LINK" />restablecer la sincronización<ph name="END_LINK" />.</translation>
+<translation id="6357305427698525450">Algunos enlaces compatibles se seguirán abriendo en <ph name="APP_NAME" /> o <ph name="APP_NAME_2" />.</translation>
 <translation id="6358884629796491903">Dragón</translation>
 <translation id="6359706544163531585">Inhabilitar tema claro</translation>
 <translation id="6361850914223837199">Detalles del error:</translation>
@@ -5709,6 +5717,7 @@
 <translation id="6900284862687837908">Aplicación en segundo plano: <ph name="BACKGROUND_APP_URL" /></translation>
 <translation id="6900532703269623216">Protección mejorada</translation>
 <translation id="6900651018461749106">Vuelve a iniciar sesión para actualizar <ph name="USER_EMAIL" /></translation>
+<translation id="6900654715912436255">¿Seguro que quieres eliminar este buscador?</translation>
 <translation id="6902066522699286937">Voz de vista previa</translation>
 <translation id="6902336033320348843">Sección no admitida: <ph name="ERROR_LINE" /></translation>
 <translation id="6902837902700739466">Vincular dispositivo con el dominio</translation>
@@ -5980,6 +5989,7 @@
 <translation id="7189234443051076392">Deja suficiente espacio en tu dispositivo</translation>
 <translation id="7189451821249468368">No tienes las licencias necesarias para registrar este dispositivo. Ponte en contacto con el departamento de ventas para comprar más. Si crees que este mensaje ha aparecido por error, ponte en contacto con el servicio de asistencia.</translation>
 <translation id="7189965711416741966">Huella digital añadida.</translation>
+<translation id="7191063546666816478">Algunos enlaces compatibles se seguirán abriendo en <ph name="APP_NAME" />, <ph name="APP_NAME_2" />, <ph name="APP_NAME_3" /> y en otras <ph name="NUMBER_OF_OTHER_APPS" /> aplicaciones.</translation>
 <translation id="7191159667348037">Impresora desconocida (USB)</translation>
 <translation id="7193051357671784796">Tu organización ha añadido esta aplicación. Reinicia la aplicación para terminar de instalarla.</translation>
 <translation id="7193374945610105795">No hay contraseñas guardadas de <ph name="ORIGIN" /></translation>
diff --git a/chrome/app/resources/generated_resources_et.xtb b/chrome/app/resources/generated_resources_et.xtb
index 61448aa..f98f6ed5 100644
--- a/chrome/app/resources/generated_resources_et.xtb
+++ b/chrome/app/resources/generated_resources_et.xtb
@@ -1025,6 +1025,7 @@
 <translation id="2022395138980869975">Kõrvalotsingu lülitamine</translation>
 <translation id="2023167225947895179">PIN-koodi võib olla lihtne ära arvata</translation>
 <translation id="202352106777823113">Allalaadimine võttis liiga kaua aega ja võrk katkestas selle.</translation>
+<translation id="2024195579772565064">Otsingumootori kustutamine</translation>
 <translation id="2025632980034333559"><ph name="APP_NAME" /> läks krahhi. Laienduse uuesti laadimiseks klõpsake sellel jutumullil.</translation>
 <translation id="2028449514182362831">Liikumisandureid vajavad funktsioonid ei tööta</translation>
 <translation id="202918510990975568">Turvalisuse ja sisselogimise seadistamiseks sisestage parool</translation>
@@ -1166,6 +1167,7 @@
 <translation id="2159488579268505102">USB-C</translation>
 <translation id="216169395504480358">Lisa WiFi ...</translation>
 <translation id="2162155940152307086">Sünkroonimine algab, kui sünkroonimisseadetest väljute</translation>
+<translation id="2162926944953615670">Saadaval ei ole ühtki eSIM-i profiili</translation>
 <translation id="2163470535490402084">Seadmesse <ph name="DEVICE_TYPE" /> sisselogimiseks looge ühendus Internetiga.</translation>
 <translation id="2163937499206714165">Tumeda režiimi sisselülitamine</translation>
 <translation id="2164131635608782358"><ph name="FIRST_SWITCH" />, <ph name="SECOND_SWITCH" />, <ph name="THIRD_SWITCH" /> ja veel 1 lüliti</translation>
@@ -1861,6 +1863,7 @@
 <translation id="2828650939514476812">WiFi-võrguga ühendamine</translation>
 <translation id="2831430281393059038">Seadet toetatakse</translation>
 <translation id="2832124733806557606">Teie laps saab sisselogimiseks või seadme avamiseks kasutada PIN-koodi.</translation>
+<translation id="2835177225987815960">Teie praegune skannimise seadistus lähtestatakse (sh kõik määratud lülitid ja automaatse skannimise kiiruse eelistused).</translation>
 <translation id="2835547721736623118">Kõnetuvastuse teenus</translation>
 <translation id="2836269494620652131">Krahh</translation>
 <translation id="2836635946302913370">Teie administraator on keelanud selle kasutajanimega sisselogimise.</translation>
@@ -3505,6 +3508,7 @@
 <translation id="4547659257713117923">Muudest seadmetest pärinevaid vahelehti ei ole</translation>
 <translation id="4547672827276975204">Määra automaatselt</translation>
 <translation id="4549791035683739768">Teie turvavõtmele ei ole sõrmejälgi salvestatud</translation>
+<translation id="4550926046134589611">Mõned toetatud lingid avanevad endiselt rakenduses <ph name="APP_NAME" />.</translation>
 <translation id="4551763574344810652">Tagasivõtmiseks vajutage klahvi <ph name="MODIFIER_KEY_DESCRIPTION" /></translation>
 <translation id="4553526521109675518">Seadme keele muutmiseks peate oma Chromebooki taaskäivitama. <ph name="BEGIN_LINK_LEARN_MORE" />Lisateave<ph name="END_LINK_LEARN_MORE" /></translation>
 <translation id="4554491709904933912">Pukseerige piltide peale, et otsida rakendusega <ph name="VISUAL_SEARCH_PROVIDER" /></translation>
@@ -3793,6 +3797,7 @@
 <translation id="48704129375571883">Lisafunktsioonide lisamine</translation>
 <translation id="4870758487381879312">Seadistusteabe hankimiseks sisestage administraatorilt saadud parool</translation>
 <translation id="4870903493621965035">Seotud seadmeid pole</translation>
+<translation id="4870995365819149457">Mõned toetatud lingid avanevad endiselt rakendustes <ph name="APP_NAME" />, <ph name="APP_NAME_2" />, <ph name="APP_NAME_3" /> ja veel 1 rakenduses.</translation>
 <translation id="4871308555310586478">See ei pärine Chrome'i veebipoest.</translation>
 <translation id="4871322859485617074">PIN-kood sisaldab sobimatuid tähemärke</translation>
 <translation id="4871370605780490696">Järjehoidja lisamine</translation>
@@ -4169,6 +4174,7 @@
 <translation id="526622169288322445">Rohkem toiminguid: <ph name="ADDRESS_SUMMARY" /></translation>
 <translation id="5269977353971873915">Printimine nurjus</translation>
 <translation id="5275352920323889391">Koer</translation>
+<translation id="527605719918376753">Summuta vahekaart</translation>
 <translation id="527605982717517565">Luba alati JavaScript saidil <ph name="HOST" /></translation>
 <translation id="5277127016695466621">Kuva külgpaneel</translation>
 <translation id="5278823018825269962">Oleku ID</translation>
@@ -4828,6 +4834,7 @@
 <translation id="5969728632630673489">Klaviatuuri otsetee teatisest loobuti</translation>
 <translation id="5971037678316050792">Bluetoothi adapteri oleku ja sidumise juhtimine</translation>
 <translation id="597235323114979258">Kuva rohkem sihtkohti</translation>
+<translation id="5972543790327947908">Mõned toetatud lingid avanevad endiselt rakenduses <ph name="APP_NAME" />, <ph name="APP_NAME_2" /> või <ph name="APP_NAME_3" />.</translation>
 <translation id="5972666587303800813">Toiminguta teenus</translation>
 <translation id="5972708806901999743">Teisalda ülaossa</translation>
 <translation id="5972826969634861500">Käivita <ph name="PRODUCT_NAME" /></translation>
@@ -5198,6 +5205,7 @@
 <translation id="6355789186038748882">Katseline (alfa-kvaliteediga) brauser! Mõni funktsioon on puudu või poolik. Teavitage probleemidest valikutega Abi &gt; „Probleemist teavitamine …”.</translation>
 <translation id="635609604405270300">Hoidke seade sisselülitatuna</translation>
 <translation id="63566973648609420">Teie krüpteeritud andmeid saavad lugeda vaid need, kes teavad teie parooli – seda ei saadeta Google'ile ja Google ei talleta seda. Kui unustate parooli või soovite seda seadet muuta, tuleb teil <ph name="BEGIN_LINK" />sünkroonimine lähtestada<ph name="END_LINK" />.</translation>
+<translation id="6357305427698525450">Mõned toetatud lingid avanevad endiselt rakenduses <ph name="APP_NAME" /> või <ph name="APP_NAME_2" />.</translation>
 <translation id="6358884629796491903">Draakon</translation>
 <translation id="6359706544163531585">Heleda teema keelamine</translation>
 <translation id="6361850914223837199">Vea üksikasjad:</translation>
@@ -5716,6 +5724,7 @@
 <translation id="6900284862687837908">Taustarakendus: <ph name="BACKGROUND_APP_URL" /></translation>
 <translation id="6900532703269623216">Parem kaitse</translation>
 <translation id="6900651018461749106">E-posti aadressi <ph name="USER_EMAIL" /> värskendamiseks logige uuesti sisse</translation>
+<translation id="6900654715912436255">Kas soovite selle otsingumootori kindlasti kustutada?</translation>
 <translation id="6902066522699286937">Eelvaate hääl</translation>
 <translation id="6902336033320348843">Jaotist ei toetata: <ph name="ERROR_LINE" /></translation>
 <translation id="6902837902700739466">Ühendage seade domeeniga</translation>
@@ -5987,6 +5996,7 @@
 <translation id="7189234443051076392">Veenduge, et seadmes oleks piisavalt ruumi</translation>
 <translation id="7189451821249468368">Teil ei ole piisavalt täiendusi selle seadme registreerimiseks. Täienduste ostmiseks võtke ühendust müügiosakonnaga. Kui arvate, et saite selle sõnumi ekslikult, võtke ühendust toega.</translation>
 <translation id="7189965711416741966">Sõrmejälg lisati.</translation>
+<translation id="7191063546666816478">Mõned toetatud lingid avanevad endiselt rakendustes <ph name="APP_NAME" />, <ph name="APP_NAME_2" />, <ph name="APP_NAME_3" /> ja veel <ph name="NUMBER_OF_OTHER_APPS" /> rakenduses.</translation>
 <translation id="7191159667348037">Tundmatu printer (USB)</translation>
 <translation id="7193051357671784796">Selle rakenduse lisas teie organisatsioon. Taaskäivitage rakendus, et selle installimine lõpule viia.</translation>
 <translation id="7193374945610105795">Allika <ph name="ORIGIN" /> jaoks ei ole salvestatud ühtki parooli</translation>
diff --git a/chrome/app/resources/generated_resources_eu.xtb b/chrome/app/resources/generated_resources_eu.xtb
index 07864d4..d24927a 100644
--- a/chrome/app/resources/generated_resources_eu.xtb
+++ b/chrome/app/resources/generated_resources_eu.xtb
@@ -4167,6 +4167,7 @@
 <translation id="526622169288322445"><ph name="ADDRESS_SUMMARY" /> enpresa-profilean egin daitezkeen ekintza gehiago</translation>
 <translation id="5269977353971873915">Inprimatzeak huts egin du</translation>
 <translation id="5275352920323889391">Txakurra</translation>
+<translation id="527605719918376753">Desaktibatu fitxaren audioa</translation>
 <translation id="527605982717517565">Eman beti JavaScript <ph name="HOST" /> ostalarian erabiltzeko baimena</translation>
 <translation id="5277127016695466621">Erakutsi alboko panela</translation>
 <translation id="5278823018825269962">Egoeraren IDa</translation>
diff --git a/chrome/app/resources/generated_resources_fa.xtb b/chrome/app/resources/generated_resources_fa.xtb
index 0404a56..c681cc9 100644
--- a/chrome/app/resources/generated_resources_fa.xtb
+++ b/chrome/app/resources/generated_resources_fa.xtb
@@ -4186,6 +4186,7 @@
 <translation id="526622169288322445">کنش‌های بیشتر برای <ph name="ADDRESS_SUMMARY" /></translation>
 <translation id="5269977353971873915">چاپ نشد</translation>
 <translation id="5275352920323889391">سگ</translation>
+<translation id="527605719918376753">بی‌صدا کردن برگه</translation>
 <translation id="527605982717517565">همیشه جاوا اسکریپت در <ph name="HOST" /> مجاز باشد</translation>
 <translation id="5277127016695466621">نمایش پانل کناری</translation>
 <translation id="5278823018825269962">شناسه وضعیت</translation>
diff --git a/chrome/app/resources/generated_resources_fi.xtb b/chrome/app/resources/generated_resources_fi.xtb
index df68e22..cad5e0b 100644
--- a/chrome/app/resources/generated_resources_fi.xtb
+++ b/chrome/app/resources/generated_resources_fi.xtb
@@ -1033,6 +1033,7 @@
 <translation id="2022395138980869975">Laita reunan hakuikkuna päälle tai pois päältä</translation>
 <translation id="2023167225947895179">PIN-koodi voi olla helppo arvata.</translation>
 <translation id="202352106777823113">Lataus kesti liian kauan, joten verkko pysäytti sen.</translation>
+<translation id="2024195579772565064">Poista hakukone</translation>
 <translation id="2025632980034333559"><ph name="APP_NAME" /> on kaatunut. Käynnistä laajennus uudelleen klikkaamalla tätä kuplaa.</translation>
 <translation id="2028449514182362831">Liiketunnistimia edellyttävät ominaisuudet eivät enää toimi</translation>
 <translation id="202918510990975568">Lisää salasana määrittääksesi suojauksen ja sisäänkirjautumisen</translation>
@@ -1174,6 +1175,7 @@
 <translation id="2159488579268505102">USB-C</translation>
 <translation id="216169395504480358">Lisää Wi-Fi-yhteys...</translation>
 <translation id="2162155940152307086">Synkronointi alkaa, kun poistut synkronointiasetuksista</translation>
+<translation id="2162926944953615670">Ei eSIM-profiileja saatavilla</translation>
 <translation id="2163470535490402084">Kirjaudu laitteelle <ph name="DEVICE_TYPE" /> muodostamalla verkkoyhteys.</translation>
 <translation id="2163937499206714165">Ota tumma tila käyttöön</translation>
 <translation id="2164131635608782358"><ph name="FIRST_SWITCH" />, <ph name="SECOND_SWITCH" />, <ph name="THIRD_SWITCH" /> ja 1 muu kytkin</translation>
@@ -1869,6 +1871,7 @@
 <translation id="2828650939514476812">Yhdistä Wi-Fi-verkkoon</translation>
 <translation id="2831430281393059038">Laitetta tuetaan</translation>
 <translation id="2832124733806557606">Lapsi voi avata tämän laitteen tai kirjautua sille PIN-koodilla.</translation>
+<translation id="2835177225987815960">Nykyiset skannausmääritykset nollataan, mukaan lukien kaikki määritetyt kytkimet ja automaattisen skannauksen nopeusasetukset.</translation>
 <translation id="2835547721736623118">Puheentunnistuspalvelu</translation>
 <translation id="2836269494620652131">Kaatuminen</translation>
 <translation id="2836635946302913370">Järjestelmänvalvoja on estänyt tällä käyttäjänimellä kirjautumisen.</translation>
@@ -3511,6 +3514,7 @@
 <translation id="4547659257713117923">Ei välilehtiä muista laitteista</translation>
 <translation id="4547672827276975204">Aseta automaattisesti</translation>
 <translation id="4549791035683739768">Suojausavaimeesi ei ole tallennettu sormenjälkiä.</translation>
+<translation id="4550926046134589611">Jotkin tuetut linkit avautuvat edelleen tässä sovelluksessa: <ph name="APP_NAME" />.</translation>
 <translation id="4551763574344810652">Kumoa painamalla <ph name="MODIFIER_KEY_DESCRIPTION" /></translation>
 <translation id="4553526521109675518">Chromebook on käynnistettävä uudelleen, jotta laitteen kieli vaihtuu. <ph name="BEGIN_LINK_LEARN_MORE" />Lue lisää<ph name="END_LINK_LEARN_MORE" /></translation>
 <translation id="4554491709904933912">Hae vetämällä hiirellä kuvien päällä: <ph name="VISUAL_SEARCH_PROVIDER" /></translation>
@@ -3799,6 +3803,7 @@
 <translation id="48704129375571883">Lisää ominaisuuksia</translation>
 <translation id="4870758487381879312">Syötä ylläpitäjältä saatu salasana hakeaksesi kokoonpanotiedot</translation>
 <translation id="4870903493621965035">Ei laitepareja</translation>
+<translation id="4870995365819149457">Jotkin tuetut linkit avautuvat edelleen näissä sovelluksissa: <ph name="APP_NAME" />, <ph name="APP_NAME_2" />, <ph name="APP_NAME_3" /> ja 1 muussa sovelluksessa.</translation>
 <translation id="4871308555310586478">Ei peräisin Chrome Web Storesta.</translation>
 <translation id="4871322859485617074">PIN-koodi sisältää virheellisiä merkkejä</translation>
 <translation id="4871370605780490696">Lisää kirjanmerkki</translation>
@@ -4175,6 +4180,7 @@
 <translation id="526622169288322445"><ph name="ADDRESS_SUMMARY" />: lisää toimintoja</translation>
 <translation id="5269977353971873915">Tulostus epäonnistui</translation>
 <translation id="5275352920323889391">Koira</translation>
+<translation id="527605719918376753">Mykistä välilehti</translation>
 <translation id="527605982717517565">Salli aina JavaScript sivustossa <ph name="HOST" /></translation>
 <translation id="5277127016695466621">Näytä sivupaneeli</translation>
 <translation id="5278823018825269962">Tilatunnus</translation>
@@ -4834,6 +4840,7 @@
 <translation id="5969728632630673489">Pikanäppäinilmoitus ohitettu</translation>
 <translation id="5971037678316050792">Hallinnoida Bluetooth-sovittimen tilaa ja laiteparin muodostusta.</translation>
 <translation id="597235323114979258">Katso lisää kohteita</translation>
+<translation id="5972543790327947908">Jotkin tuetut linkit avautuvat edelleen näissä sovelluksissa: <ph name="APP_NAME" />, <ph name="APP_NAME_2" /> tai <ph name="APP_NAME_3" />.</translation>
 <translation id="5972666587303800813">Automatisoitu palvelu</translation>
 <translation id="5972708806901999743">Siirrä alkuun</translation>
 <translation id="5972826969634861500">Käynnistä <ph name="PRODUCT_NAME" /></translation>
@@ -5204,6 +5211,7 @@
 <translation id="6355789186038748882">Kokeellinen (alfa-tasoinen) selain! Jotkin ominaisuudet puuttuvat tai eivät ole valmiita. Ilmoita ongelmista kohdassa Ohje &gt; "Ilmoita ongelmasta…".</translation>
 <translation id="635609604405270300">Pidä laite päällä</translation>
 <translation id="63566973648609420">Salattuja tietojasi voi lukea vain tunnuslauseesi avulla. Tunnuslausetta ei lähetetä Googlelle eikä Google tallenna sitä. Jos unohdat tunnuslauseesi tai haluat muokata tätä asetusta, <ph name="BEGIN_LINK" />synkronointi on nollattava<ph name="END_LINK" />.</translation>
+<translation id="6357305427698525450">Jotkin tuetut linkit avautuvat edelleen näissä sovelluksissa: <ph name="APP_NAME" /> tai <ph name="APP_NAME_2" />.</translation>
 <translation id="6358884629796491903">Lohikäärme</translation>
 <translation id="6359706544163531585">Poista vaalea teema käytöstä</translation>
 <translation id="6361850914223837199">Virheen tiedot:</translation>
@@ -5722,6 +5730,7 @@
 <translation id="6900284862687837908">Taustasovellus: <ph name="BACKGROUND_APP_URL" /></translation>
 <translation id="6900532703269623216">Parannettu suojaus</translation>
 <translation id="6900651018461749106">Kirjaudu uudelleen sisään tai päivitä <ph name="USER_EMAIL" /></translation>
+<translation id="6900654715912436255">Haluatko varmasti poistaa tämän hakukoneen?</translation>
 <translation id="6902066522699286937">Esikatselun ääni</translation>
 <translation id="6902336033320348843">Osiota ei tueta: <ph name="ERROR_LINE" /></translation>
 <translation id="6902837902700739466">Liitä laite verkkotunnukseen</translation>
@@ -5993,6 +6002,7 @@
 <translation id="7189234443051076392">Varmista, että laitteellasi on tarpeeksi tilaa.</translation>
 <translation id="7189451821249468368">Sinulla ei ole tarpeeksi päivityksiä tämän laitteen rekisteröintiä varten. Osta niitä lisää ottamalla yhteyttä myyntitiimiin. Jos sinun ei mielestäsi pitäisi nähdä tätä viestiä, ota yhteyttä tukeen.</translation>
 <translation id="7189965711416741966">Sormenjälki lisätty</translation>
+<translation id="7191063546666816478">Jotkin tuetut linkit avautuvat edelleen näissä sovelluksissa: <ph name="APP_NAME" />, <ph name="APP_NAME_2" />, <ph name="APP_NAME_3" /> ja <ph name="NUMBER_OF_OTHER_APPS" /> muussa sovelluksessa.</translation>
 <translation id="7191159667348037">Tuntematon tulostin (USB)</translation>
 <translation id="7193051357671784796">Organisaatiosi lisäsi tämän sovelluksen. Suorita sovelluksen asennus loppuun käynnistämällä se uudelleen.</translation>
 <translation id="7193374945610105795">Sivustolla <ph name="ORIGIN" /> ei ole tallennettuja salasanoja</translation>
diff --git a/chrome/app/resources/generated_resources_fil.xtb b/chrome/app/resources/generated_resources_fil.xtb
index c56d5473..e42257d3 100644
--- a/chrome/app/resources/generated_resources_fil.xtb
+++ b/chrome/app/resources/generated_resources_fil.xtb
@@ -4185,6 +4185,7 @@
 <translation id="526622169288322445">Higit pang aksyon para sa <ph name="ADDRESS_SUMMARY" /></translation>
 <translation id="5269977353971873915">Nabigo ang Pag-print</translation>
 <translation id="5275352920323889391">Aso</translation>
+<translation id="527605719918376753">I-mute ang tab</translation>
 <translation id="527605982717517565">Palaging hayaan ang JavaScript sa <ph name="HOST" /></translation>
 <translation id="5277127016695466621">Ipakita ang panel sa gilid</translation>
 <translation id="5278823018825269962">Status Id</translation>
diff --git a/chrome/app/resources/generated_resources_fr-CA.xtb b/chrome/app/resources/generated_resources_fr-CA.xtb
index 4fc7e33..02e5387 100644
--- a/chrome/app/resources/generated_resources_fr-CA.xtb
+++ b/chrome/app/resources/generated_resources_fr-CA.xtb
@@ -4165,6 +4165,7 @@
 <translation id="526622169288322445">Autres actions pour <ph name="ADDRESS_SUMMARY" /></translation>
 <translation id="5269977353971873915">Échec de l'impression</translation>
 <translation id="5275352920323889391">Chien</translation>
+<translation id="527605719918376753">Couper le son de l'onglet</translation>
 <translation id="527605982717517565">Toujours autoriser l'utilisation de JavaScript sur <ph name="HOST" /></translation>
 <translation id="5277127016695466621">Afficher le panneau latéral</translation>
 <translation id="5278823018825269962">Identifiant d'état</translation>
diff --git a/chrome/app/resources/generated_resources_fr.xtb b/chrome/app/resources/generated_resources_fr.xtb
index 3d4399b..6c599ae 100644
--- a/chrome/app/resources/generated_resources_fr.xtb
+++ b/chrome/app/resources/generated_resources_fr.xtb
@@ -1023,6 +1023,7 @@
 <translation id="2022395138980869975">Activer/Désactiver le panneau latéral de recherche</translation>
 <translation id="2023167225947895179">Ce code est facile à deviner</translation>
 <translation id="202352106777823113">Le téléchargement a été trop long et a été interrompu par le réseau.</translation>
+<translation id="2024195579772565064">Supprimer le moteur de recherche</translation>
 <translation id="2025632980034333559"><ph name="APP_NAME" /> a planté. Cliquez sur cette info-bulle pour actualiser l'extension.</translation>
 <translation id="2028449514182362831">Les fonctionnalités qui nécessitent l'accès aux capteurs de mouvement ne seront pas disponibles</translation>
 <translation id="202918510990975568">Saisissez votre mot de passe pour configurer la sécurité et la connexion</translation>
@@ -1164,6 +1165,7 @@
 <translation id="2159488579268505102">USB-C</translation>
 <translation id="216169395504480358">Ajouter un réseau Wi-Fi…</translation>
 <translation id="2162155940152307086">La synchronisation commencera une fois que vous aurez quitté les paramètres de synchronisation</translation>
+<translation id="2162926944953615670">Aucun profil eSIM disponible</translation>
 <translation id="2163470535490402084">Veuillez vous connecter à Internet pour vous connecter à votre <ph name="DEVICE_TYPE" />.</translation>
 <translation id="2163937499206714165">Appliquer le mode sombre</translation>
 <translation id="2164131635608782358"><ph name="FIRST_SWITCH" />, <ph name="SECOND_SWITCH" />, <ph name="THIRD_SWITCH" /> et 1 autre contacteur</translation>
@@ -1856,6 +1858,7 @@
 <translation id="2828650939514476812">Se connecter au réseau Wi-Fi</translation>
 <translation id="2831430281393059038">Appareil accepté</translation>
 <translation id="2832124733806557606">Votre enfant peut l'utiliser pour se connecter ou déverrouiller l'appareil.</translation>
+<translation id="2835177225987815960">La configuration actuelle de l'analyse sera réinitialisée, y compris les contacteurs associés et les paramètres liés à la vitesse d'exploration automatique.</translation>
 <translation id="2835547721736623118">Service de reconnaissance vocale</translation>
 <translation id="2836269494620652131">Blocage</translation>
 <translation id="2836635946302913370">Impossible de se connecter avec ce nom d'utilisateur, car il a été désactivé par votre administrateur.</translation>
@@ -3500,6 +3503,7 @@
 <translation id="4547659257713117923">Aucun onglet issu d'autres appareils</translation>
 <translation id="4547672827276975204">Définir automatiquement</translation>
 <translation id="4549791035683739768">Aucune empreinte digitale n'est stockée dans votre clé de sécurité</translation>
+<translation id="4550926046134589611">Certains liens compatibles continueront à s'ouvrir dans <ph name="APP_NAME" />.</translation>
 <translation id="4551763574344810652">Appuyez sur <ph name="MODIFIER_KEY_DESCRIPTION" /> pour annuler</translation>
 <translation id="4553526521109675518">Vous devez redémarrer votre Chromebook pour changer la langue de l'appareil. <ph name="BEGIN_LINK_LEARN_MORE" />En savoir plus<ph name="END_LINK_LEARN_MORE" /></translation>
 <translation id="4554491709904933912">Faire glisser sur les images pour rechercher avec <ph name="VISUAL_SEARCH_PROVIDER" /></translation>
@@ -3788,6 +3792,7 @@
 <translation id="48704129375571883">Ajouter des fonctionnalités</translation>
 <translation id="4870758487381879312">Saisissez le mot de passe fourni par l'administrateur pour accéder aux informations de configuration</translation>
 <translation id="4870903493621965035">Aucun appareil associé</translation>
+<translation id="4870995365819149457">Certains liens compatibles continueront à s'ouvrir dans <ph name="APP_NAME" />, <ph name="APP_NAME_2" />, <ph name="APP_NAME_3" /> et une autre appli.</translation>
 <translation id="4871308555310586478">Pas depuis le Chrome Web Store</translation>
 <translation id="4871322859485617074">Ce code contient des caractères non valides</translation>
 <translation id="4871370605780490696">Ajouter aux favoris</translation>
@@ -4164,6 +4169,7 @@
 <translation id="526622169288322445">Plus d'actions pour <ph name="ADDRESS_SUMMARY" /></translation>
 <translation id="5269977353971873915">Échec de l'impression</translation>
 <translation id="5275352920323889391">Chien</translation>
+<translation id="527605719918376753">Couper le son de l'onglet</translation>
 <translation id="527605982717517565">Toujours exécuter JavaScript sur <ph name="HOST" /></translation>
 <translation id="5277127016695466621">Afficher le panneau latéral</translation>
 <translation id="5278823018825269962">ID d'état</translation>
@@ -4824,6 +4830,7 @@
 <translation id="5969728632630673489">Message sur les raccourcis clavier fermé</translation>
 <translation id="5971037678316050792">Contrôler l'état et l'association de l'adaptateur Bluetooth</translation>
 <translation id="597235323114979258">Voir plus de destinations</translation>
+<translation id="5972543790327947908">Certains liens compatibles continueront à s'ouvrir dans <ph name="APP_NAME" />, <ph name="APP_NAME_2" /> ou <ph name="APP_NAME_3" />.</translation>
 <translation id="5972666587303800813">Service expérimental</translation>
 <translation id="5972708806901999743">Placer en premier</translation>
 <translation id="5972826969634861500">Lancer <ph name="PRODUCT_NAME" /></translation>
@@ -5194,6 +5201,7 @@
 <translation id="6355789186038748882">Navigateur expérimental (version alpha). Certaines fonctionnalités sont manquantes ou incomplètes. Si vous relevez un problème, sélectionnez Aide &gt; Signaler un problème.</translation>
 <translation id="635609604405270300">N'éteignez pas l'appareil</translation>
 <translation id="63566973648609420">Seule une personne connaissant votre phrase secrète peut lire vos données chiffrées. La phrase secrète ne nous est pas envoyée et nous ne la stockons pas. Si vous l'oubliez ou si vous voulez modifier ce paramètre, vous devrez <ph name="BEGIN_LINK" />réinitialiser la synchronisation<ph name="END_LINK" />.</translation>
+<translation id="6357305427698525450">Certains liens compatibles continueront à s'ouvrir dans <ph name="APP_NAME" /> ou <ph name="APP_NAME_2" />.</translation>
 <translation id="6358884629796491903">Dragon</translation>
 <translation id="6359706544163531585">Désactiver le thème clair</translation>
 <translation id="6361850914223837199">Informations sur l'erreur :</translation>
@@ -5712,6 +5720,7 @@
 <translation id="6900284862687837908">Application en arrière-plan : <ph name="BACKGROUND_APP_URL" /></translation>
 <translation id="6900532703269623216">Protection renforcée</translation>
 <translation id="6900651018461749106">Reconnectez-vous pour mettre à jour le compte <ph name="USER_EMAIL" /></translation>
+<translation id="6900654715912436255">Voulez-vous vraiment supprimer ce moteur de recherche ?</translation>
 <translation id="6902066522699286937">Voix à écouter</translation>
 <translation id="6902336033320348843">Section non compatible : <ph name="ERROR_LINE" /></translation>
 <translation id="6902837902700739466">Associer l'appareil au domaine</translation>
@@ -5983,6 +5992,7 @@
 <translation id="7189234443051076392">Assurez-vous de disposer de suffisamment d'espace sur votre appareil</translation>
 <translation id="7189451821249468368">Vous n'avez pas suffisamment de licences de mise à niveau pour enregistrer cet appareil. Veuillez contacter le service commercial pour en acheter d'autres. Si vous pensez que ce message s'affiche par erreur, veuillez contacter l'assistance technique.</translation>
 <translation id="7189965711416741966">Empreinte digitale ajoutée.</translation>
+<translation id="7191063546666816478">Certains liens compatibles continueront à s'ouvrir dans <ph name="APP_NAME" />, <ph name="APP_NAME_2" />, <ph name="APP_NAME_3" /> et <ph name="NUMBER_OF_OTHER_APPS" /> autres applis.</translation>
 <translation id="7191159667348037">Imprimante inconnue (USB)</translation>
 <translation id="7193051357671784796">Cette application a été ajoutée par votre organisation. Redémarrez-la pour terminer l'installation.</translation>
 <translation id="7193374945610105795">Aucun mot de passe enregistré pour <ph name="ORIGIN" /></translation>
diff --git a/chrome/app/resources/generated_resources_gl.xtb b/chrome/app/resources/generated_resources_gl.xtb
index 3782758..977083f9c 100644
--- a/chrome/app/resources/generated_resources_gl.xtb
+++ b/chrome/app/resources/generated_resources_gl.xtb
@@ -4166,6 +4166,7 @@
 <translation id="526622169288322445">Máis accións para <ph name="ADDRESS_SUMMARY" /></translation>
 <translation id="5269977353971873915">Non se puido efectuar a impresión</translation>
 <translation id="5275352920323889391">Can</translation>
+<translation id="527605719918376753">Ignorar pestana</translation>
 <translation id="527605982717517565">Permitir sempre JavaScript en <ph name="HOST" /></translation>
 <translation id="5277127016695466621">Mostrar panel lateral</translation>
 <translation id="5278823018825269962">Identificador de estado</translation>
diff --git a/chrome/app/resources/generated_resources_gu.xtb b/chrome/app/resources/generated_resources_gu.xtb
index 2c095c9..0c38947a 100644
--- a/chrome/app/resources/generated_resources_gu.xtb
+++ b/chrome/app/resources/generated_resources_gu.xtb
@@ -4171,6 +4171,7 @@
 <translation id="526622169288322445"><ph name="ADDRESS_SUMMARY" /> માટે વધુ ક્રિયાઓ</translation>
 <translation id="5269977353971873915">પ્રિન્ટ કાઢવામાં નિષ્ફળ</translation>
 <translation id="5275352920323889391">કૂતરું</translation>
+<translation id="527605719918376753">ટૅબ મ્યૂટ કરો</translation>
 <translation id="527605982717517565"><ph name="HOST" /> પર JavaScript ને હંમેશા મંજૂરી આપો </translation>
 <translation id="5277127016695466621">બાજુની પૅનલ બતાવો</translation>
 <translation id="5278823018825269962">સ્ટેટસ ID</translation>
diff --git a/chrome/app/resources/generated_resources_hi.xtb b/chrome/app/resources/generated_resources_hi.xtb
index bcc806f..3abf69a 100644
--- a/chrome/app/resources/generated_resources_hi.xtb
+++ b/chrome/app/resources/generated_resources_hi.xtb
@@ -4184,6 +4184,7 @@
 <translation id="526622169288322445"><ph name="ADDRESS_SUMMARY" /> से जुड़ी और कार्रवाइयां</translation>
 <translation id="5269977353971873915">प्रिंट विफल</translation>
 <translation id="5275352920323889391">श्‍वान</translation>
+<translation id="527605719918376753">टैब म्यूट करें</translation>
 <translation id="527605982717517565"><ph name="HOST" /> पर JavaScript को हमेशा अनुमति दें</translation>
 <translation id="5277127016695466621">साइड पैनल दिखाएं</translation>
 <translation id="5278823018825269962">स्थिति का आईडी</translation>
diff --git a/chrome/app/resources/generated_resources_hr.xtb b/chrome/app/resources/generated_resources_hr.xtb
index 904d63db..dca1dbf 100644
--- a/chrome/app/resources/generated_resources_hr.xtb
+++ b/chrome/app/resources/generated_resources_hr.xtb
@@ -4171,6 +4171,7 @@
 <translation id="526622169288322445">Više radnji za: <ph name="ADDRESS_SUMMARY" /></translation>
 <translation id="5269977353971873915">Ispis nije uspio</translation>
 <translation id="5275352920323889391">Pas</translation>
+<translation id="527605719918376753">Isključi zvuk kartice</translation>
 <translation id="527605982717517565">Uvijek dopusti JavaScript na web-lokaciji <ph name="HOST" /></translation>
 <translation id="5277127016695466621">Prikaži bočnu ploču</translation>
 <translation id="5278823018825269962">ID statusa</translation>
diff --git a/chrome/app/resources/generated_resources_hu.xtb b/chrome/app/resources/generated_resources_hu.xtb
index 636f2e16..10e6c241 100644
--- a/chrome/app/resources/generated_resources_hu.xtb
+++ b/chrome/app/resources/generated_resources_hu.xtb
@@ -1033,6 +1033,7 @@
 <translation id="2022395138980869975">Párhuzamos keresés bekapcsolása</translation>
 <translation id="2023167225947895179">A PIN-kód könnyen kitalálható</translation>
 <translation id="202352106777823113">A letöltés túl sokáig tartott, ezért a hálózat leállította.</translation>
+<translation id="2024195579772565064">Keresőmotor törlése</translation>
 <translation id="2025632980034333559">A(z) <ph name="APP_NAME" /> összeomlott. A bővítmény ismételt betöltéséhez kattintson erre a buborékra.</translation>
 <translation id="2028449514182362831">A mozgásérzékelőket igénylő funkciók nem működnek</translation>
 <translation id="202918510990975568">Adja meg jelszavát a biztonság és a bejelentkezés beállításához</translation>
@@ -1174,6 +1175,7 @@
 <translation id="2159488579268505102">USB-C</translation>
 <translation id="216169395504480358">Wi-Fi hozzáadása...</translation>
 <translation id="2162155940152307086">A szinkronizálás akkor kezdődik el, amikor Ön kilép a szinkronizálási beállításokból.</translation>
+<translation id="2162926944953615670">Nincsenek rendelkezésre álló eSIM-profilok</translation>
 <translation id="2163470535490402084">Csatlakozzon az internethez, hogy be tudjon jelentkezni <ph name="DEVICE_TYPE" /> eszközére.</translation>
 <translation id="2163937499206714165">Sötét mód bekapcsolása</translation>
 <translation id="2164131635608782358"><ph name="FIRST_SWITCH" />, <ph name="SECOND_SWITCH" />, <ph name="THIRD_SWITCH" /> és 1 további kapcsoló</translation>
@@ -1868,6 +1870,7 @@
 <translation id="2828650939514476812">Csatlakozás Wi-Fi-hálózathoz</translation>
 <translation id="2831430281393059038">Nem támogatott eszköz</translation>
 <translation id="2832124733806557606">A PIN-kóddal bejelentkezhet, és feloldhatja az eszközt a gyermeke.</translation>
+<translation id="2835177225987815960">Az aktuális keresési beállítások visszaállításra kerülnek, beleértve a hozzárendelt kapcsolókat és az automatikus keresés sebességbeállításait is.</translation>
 <translation id="2835547721736623118">Beszédfelismerési szolgáltatás</translation>
 <translation id="2836269494620652131">Összeomlás</translation>
 <translation id="2836635946302913370">A rendszergazdája letiltotta a bejelentkezést ezzel a felhasználónévvel.</translation>
@@ -3512,6 +3515,7 @@
 <translation id="4547659257713117923">Nincs más eszközről származó lap</translation>
 <translation id="4547672827276975204">Automatikus beállítás</translation>
 <translation id="4549791035683739768">A biztonsági kulcs nem tárol ujjlenyomatokat</translation>
+<translation id="4550926046134589611">Egyes támogatott linkek továbbra is a(z) <ph name="APP_NAME" /> alkalmazásban nyílnak meg.</translation>
 <translation id="4551763574344810652">Nyomja meg a <ph name="MODIFIER_KEY_DESCRIPTION" /> billentyűparancsot a visszavonáshoz</translation>
 <translation id="4553526521109675518">Az eszköz nyelvének módosításához újra kell indítani a Chromebookot. <ph name="BEGIN_LINK_LEARN_MORE" />További információ<ph name="END_LINK_LEARN_MORE" />.</translation>
 <translation id="4554491709904933912">Húzás képek fölé a(z) <ph name="VISUAL_SEARCH_PROVIDER" /> segítségével való kereséshez</translation>
@@ -3800,6 +3804,7 @@
 <translation id="48704129375571883">További funkciók hozzáadása</translation>
 <translation id="4870758487381879312">A konfigurációs információkhoz adja meg a rendszergazdától kapott jelszót</translation>
 <translation id="4870903493621965035">Nincsenek párosított eszközök</translation>
+<translation id="4870995365819149457">Egyes támogatott linkek továbbra is a(z) <ph name="APP_NAME" />, <ph name="APP_NAME_2" />, <ph name="APP_NAME_3" /> és 1 további alkalmazásban nyílnak meg.</translation>
 <translation id="4871308555310586478">Nem a Chrome Internetes áruházból származik.</translation>
 <translation id="4871322859485617074">A PIN-kód érvénytelen karaktereket tartalmaz</translation>
 <translation id="4871370605780490696">Könyvjelzõ hozzáadása</translation>
@@ -4176,6 +4181,7 @@
 <translation id="526622169288322445">További műveletek a következőhöz: <ph name="ADDRESS_SUMMARY" /></translation>
 <translation id="5269977353971873915">A nyomtatás nem sikerült</translation>
 <translation id="5275352920323889391">Kutya</translation>
+<translation id="527605719918376753">Lap némítása</translation>
 <translation id="527605982717517565">Mindig engedélyezze a JavaScriptet itt: <ph name="HOST" /></translation>
 <translation id="5277127016695466621">Oldalsó panel megjelenítése</translation>
 <translation id="5278823018825269962">Állapotazonosító</translation>
@@ -4837,6 +4843,7 @@
 <translation id="5969728632630673489">Billentyűparancsról szóló értesítés elvetése</translation>
 <translation id="5971037678316050792">Bluetooth-adapter állapotának és párosításának vezérlése</translation>
 <translation id="597235323114979258">További célhelyek</translation>
+<translation id="5972543790327947908">Egyes támogatott linkek továbbra is a(z) <ph name="APP_NAME" />, <ph name="APP_NAME_2" /> vagy <ph name="APP_NAME_3" /> alkalmazásban nyílnak meg.</translation>
 <translation id="5972666587303800813">Hatásmentes szolgáltatás</translation>
 <translation id="5972708806901999743">Mozgatás a lista tetejére</translation>
 <translation id="5972826969634861500"><ph name="PRODUCT_NAME" /> indítása</translation>
@@ -5207,6 +5214,7 @@
 <translation id="6355789186038748882">Kísérleti (alfa minőségű) böngésző! Bizonyos funkciók hiányoznak vagy hiányosak. A hibákat a Súgó „Probléma bejelentése…” pontjában jelentheti be.</translation>
 <translation id="635609604405270300">Az eszköz bekapcsolva tartása</translation>
 <translation id="63566973648609420">Titkosított adatait csak az olvashatja el, aki rendelkezik összetett jelszavával. Az összetett jelszót a Google nem kapja meg, és nem is tárolja. Ha elfelejtette összetett jelszavát, vagy módosítani szeretné ezt a beállítást, <ph name="BEGIN_LINK" />alaphelyzetbe kell állítania a szinkronizálást<ph name="END_LINK" />.</translation>
+<translation id="6357305427698525450">Egyes támogatott linkek továbbra is a(z) <ph name="APP_NAME" /> vagy a(z) <ph name="APP_NAME_2" /> alkalmazásban nyílnak meg.</translation>
 <translation id="6358884629796491903">Sárkány</translation>
 <translation id="6359706544163531585">Világos téma kikapcsolása</translation>
 <translation id="6361850914223837199">Hiba részletei:</translation>
@@ -5725,6 +5733,7 @@
 <translation id="6900284862687837908">Háttéralkalmazás: <ph name="BACKGROUND_APP_URL" /></translation>
 <translation id="6900532703269623216">Speciális védelem</translation>
 <translation id="6900651018461749106">Jelentkezzen be ismét a(z) <ph name="USER_EMAIL" /> frissítéséhez</translation>
+<translation id="6900654715912436255">Biztosan törölni szeretné ezt a keresőmotort?</translation>
 <translation id="6902066522699286937">Meghallgatni kívánt hang</translation>
 <translation id="6902336033320348843">Nem támogatott szakasz: <ph name="ERROR_LINE" /></translation>
 <translation id="6902837902700739466">Eszköz csatlakoztatása domainhez</translation>
@@ -5996,6 +6005,7 @@
 <translation id="7189234443051076392">Győződjön meg arról, hogy elegendő tárhely áll rendelkezésre az eszközön</translation>
 <translation id="7189451821249468368">Ön nem rendelkezik elegendő bővítéssel az eszköz regisztrálásához. Kérjük, vegye fel a kapcsolatot az értékesítéssel továbbiak vásárlásához. Ha úgy gondolja, ezt az üzenetet tévesen kapta meg, forduljon az ügyfélszolgálathoz.</translation>
 <translation id="7189965711416741966">Ujjlenyomat hozzáadva.</translation>
+<translation id="7191063546666816478">Egyes támogatott linkek továbbra is a(z) <ph name="APP_NAME" />, <ph name="APP_NAME_2" />, <ph name="APP_NAME_3" /> és <ph name="NUMBER_OF_OTHER_APPS" /> további alkalmazásban nyílnak meg.</translation>
 <translation id="7191159667348037">Ismeretlen nyomtató (USB)</translation>
 <translation id="7193051357671784796">Ezt az alkalmazást a szervezete adta hozzá. A telepítés befejezéséhez indítsa újra az alkalmazást.</translation>
 <translation id="7193374945610105795">Nincsenek mentett jelszavak a(z) <ph name="ORIGIN" /> webhelyhez</translation>
diff --git a/chrome/app/resources/generated_resources_hy.xtb b/chrome/app/resources/generated_resources_hy.xtb
index cf74e80..1a13efa7 100644
--- a/chrome/app/resources/generated_resources_hy.xtb
+++ b/chrome/app/resources/generated_resources_hy.xtb
@@ -4175,6 +4175,7 @@
 <translation id="526622169288322445">«<ph name="ADDRESS_SUMMARY" />» հասցեին առնչվող այլ գործողություններ</translation>
 <translation id="5269977353971873915">Չհաջողվեց տպել</translation>
 <translation id="5275352920323889391">Շուն</translation>
+<translation id="527605719918376753">Անջատել ներդիրի ձայնը</translation>
 <translation id="527605982717517565">Միշտ թույլ տալ JavaScript-ը <ph name="HOST" />-ում</translation>
 <translation id="5277127016695466621">Ցուցադրել կողային վահանակը</translation>
 <translation id="5278823018825269962">Կարգավիճակի նույնացուցիչ</translation>
diff --git a/chrome/app/resources/generated_resources_id.xtb b/chrome/app/resources/generated_resources_id.xtb
index c00ead7..a6b333a 100644
--- a/chrome/app/resources/generated_resources_id.xtb
+++ b/chrome/app/resources/generated_resources_id.xtb
@@ -512,6 +512,7 @@
 <translation id="1521442365706402292">Kelola sertifikat</translation>
 <translation id="1521774566618522728">Aktif hari ini</translation>
 <translation id="152234381334907219">Jangan Pernah Disimpan</translation>
+<translation id="1523279371236772909">Dilihat dalam sebulan terakhir</translation>
 <translation id="1523978563989812243">Mesin text-to-speech</translation>
 <translation id="1524430321211440688">Keyboard</translation>
 <translation id="1524563461097350801">Lain Kali</translation>
@@ -1034,6 +1035,7 @@
 <translation id="2022395138980869975">Tombol kotak penelusuran samping</translation>
 <translation id="2023167225947895179">PIN mungkin mudah ditebak</translation>
 <translation id="202352106777823113">Download terlalu lama, jadi dihentikan oleh jaringan.</translation>
+<translation id="2024195579772565064">Hapus mesin telusur</translation>
 <translation id="2025632980034333559"><ph name="APP_NAME" /> ngadat. Klik balon ini untuk memuat ulang ekstensi.</translation>
 <translation id="2028449514182362831">Fitur yang memerlukan sensor gerakan tidak akan berfungsi</translation>
 <translation id="202918510990975568">Masukkan sandi Anda untuk mengonfigurasi keamanan dan login</translation>
@@ -1175,6 +1177,7 @@
 <translation id="2159488579268505102">USB-C</translation>
 <translation id="216169395504480358">Tambahkan Wi-Fi...</translation>
 <translation id="2162155940152307086">Sinkronisasi akan dimulai setelah Anda meninggalkan setelan sinkronisasi</translation>
+<translation id="2162926944953615670">Tidak ada profil eSIM yang tersedia</translation>
 <translation id="2163470535490402084">Sambungkan ke internet untuk masuk ke <ph name="DEVICE_TYPE" /> Anda.</translation>
 <translation id="2163937499206714165">Aktifkan mode gelap</translation>
 <translation id="2164131635608782358"><ph name="FIRST_SWITCH" />, <ph name="SECOND_SWITCH" />, <ph name="THIRD_SWITCH" />, dan 1 tombol lainnya</translation>
@@ -1252,6 +1255,7 @@
 <translation id="2232876851878324699">File berisi satu sertifikat, yang tidak diimpor:</translation>
 <translation id="2233502537820838181">Infor&amp;masi selengkapnya</translation>
 <translation id="223356358902285214">Aktivitas Web &amp; Aplikasi</translation>
+<translation id="2234827758954819389">Panduan Privasi</translation>
 <translation id="2234876718134438132">Sinkronisasi dan layanan Google</translation>
 <translation id="2235344399760031203">Cookie pihak ketiga diblokir</translation>
 <translation id="2238379619048995541">Data Status Frekuensi</translation>
@@ -1870,6 +1874,7 @@
 <translation id="2828650939514476812">Terhubung ke jaringan Wi-Fi</translation>
 <translation id="2831430281393059038">Perangkat didukung</translation>
 <translation id="2832124733806557606">Anak Anda dapat menggunakan PIN untuk login atau membuka kunci perangkat.</translation>
+<translation id="2835177225987815960">Penyiapan pemindaian saat ini akan direset, termasuk semua preferensi tombol akses yang ditetapkan dan kecepatan pemindaian otomatis.</translation>
 <translation id="2835547721736623118">Layanan pengenalan ucapan</translation>
 <translation id="2836269494620652131">Kerusakan</translation>
 <translation id="2836635946302913370">Login dengan nama pengguna ini telah dinonaktifkan oleh administrator Anda.</translation>
@@ -3107,6 +3112,7 @@
 <translation id="4095264805865317199">Buka UI Aktivasi Seluler</translation>
 <translation id="4095507791297118304">Tampilan utama</translation>
 <translation id="4096508467498758490">Nonaktifkan ekstensi mode pengembang</translation>
+<translation id="4096797685681362305">Dilihat dalam seminggu terakhir</translation>
 <translation id="4097406557126260163">Aplikasi dan ekstensi</translation>
 <translation id="409742781329613461">Tips untuk Chrome</translation>
 <translation id="4097560579602855702">Telusuri Google</translation>
@@ -3515,6 +3521,7 @@
 <translation id="4547659257713117923">Tidak Ada Tab dari Perangkat Lainnya</translation>
 <translation id="4547672827276975204">Setel otomatis</translation>
 <translation id="4549791035683739768">Tidak ada sidik jari yang tersimpan di kunci keamanan Anda</translation>
+<translation id="4550926046134589611">Beberapa link yang didukung akan tetap dibuka di <ph name="APP_NAME" />.</translation>
 <translation id="4551763574344810652">Tekan <ph name="MODIFIER_KEY_DESCRIPTION" /> untuk mengurungkan</translation>
 <translation id="4553526521109675518">Anda perlu memulai ulang Chromebook untuk mengubah bahasa perangkat. <ph name="BEGIN_LINK_LEARN_MORE" />Pelajari lebih lanjut<ph name="END_LINK_LEARN_MORE" /></translation>
 <translation id="4554491709904933912">Tarik gambar untuk menelusuri dengan <ph name="VISUAL_SEARCH_PROVIDER" /></translation>
@@ -3663,6 +3670,7 @@
 <translation id="4699172675775169585">Gambar dan file dalam cache</translation>
 <translation id="4699357559218762027">(diluncurkan otomatis)</translation>
 <translation id="4701025263201366865">Login orang tua</translation>
+<translation id="4701335814944566468">Dilihat kemarin</translation>
 <translation id="4708794300267213770">Tampilkan layar kunci saat keluar dari mode tidur</translation>
 <translation id="4708849949179781599">Berhenti <ph name="PRODUCT_NAME" /></translation>
 <translation id="4711638718396952945">Pulihkan setelan</translation>
@@ -3730,6 +3738,7 @@
 <translation id="479536056609751218">Halaman Web, HTML Saja</translation>
 <translation id="4796142525425001238">Selalu pulihkan</translation>
 <translation id="4798236378408895261">Lampirkan <ph name="BEGIN_LINK" />Log Bluetooth<ph name="END_LINK" /> (internal Google)</translation>
+<translation id="479863874072008121">Kelola perangkat</translation>
 <translation id="4800839971935185386">Tinjau pembaruan nama &amp; ikon</translation>
 <translation id="4801448226354548035">Sembunyikan akun</translation>
 <translation id="4801512016965057443">Izinkan roaming data seluler</translation>
@@ -3803,6 +3812,7 @@
 <translation id="48704129375571883">Tambahkan fitur tambahan</translation>
 <translation id="4870758487381879312">Masukkan sandi yang disediakan admin untuk mendapatkan info konfigurasi</translation>
 <translation id="4870903493621965035">Tidak ada perangkat yang dihubungkan</translation>
+<translation id="4870995365819149457">Beberapa link yang didukung akan tetap dibuka di <ph name="APP_NAME" />, <ph name="APP_NAME_2" />, <ph name="APP_NAME_3" />, dan 1 aplikasi lainnya.</translation>
 <translation id="4871308555310586478">Bukan dari Chrome Webstore.</translation>
 <translation id="4871322859485617074">PIN berisi karakter yang tidak valid</translation>
 <translation id="4871370605780490696">Tambahkan bookmark</translation>
@@ -4179,6 +4189,7 @@
 <translation id="526622169288322445">Tindakan lainnya untuk <ph name="ADDRESS_SUMMARY" /></translation>
 <translation id="5269977353971873915">Gagal Mencetak</translation>
 <translation id="5275352920323889391">Anjing</translation>
+<translation id="527605719918376753">Nonaktifkan tab</translation>
 <translation id="527605982717517565">Selalu izinkan JavaScript di <ph name="HOST" /></translation>
 <translation id="5277127016695466621">Tampilkan panel samping</translation>
 <translation id="5278823018825269962">ID Status</translation>
@@ -4838,6 +4849,7 @@
 <translation id="5969728632630673489">Notifikasi pintasan keyboard ditutup</translation>
 <translation id="5971037678316050792">Mengontrol penyandingan dan keadaan adaptor Bluetooth</translation>
 <translation id="597235323114979258">Lihat tujuan lainnya</translation>
+<translation id="5972543790327947908">Beberapa link yang didukung akan tetap dibuka di <ph name="APP_NAME" />, <ph name="APP_NAME_2" />, atau <ph name="APP_NAME_3" />.</translation>
 <translation id="5972666587303800813">Layanan Tanpa Operasi</translation>
 <translation id="5972708806901999743">Pindahkan ke atas</translation>
 <translation id="5972826969634861500">Mulai <ph name="PRODUCT_NAME" /></translation>
@@ -5208,6 +5220,7 @@
 <translation id="6355789186038748882">Browser eksperimental (kualitas alfa). Beberapa fitur mungkin tidak ada atau tidak lengkap. Laporkan masalah melalui: Bantuan &gt; "Laporkan masalah ...".</translation>
 <translation id="635609604405270300">Jaga perangkat tetap menyala</translation>
 <translation id="63566973648609420">Hanya orang yang memiliki frasa sandi Anda yang dapat membaca data terenkripsi. Frasa sandi tidak dikirim ke atau disimpan oleh Google. Jika lupa frasa sandi atau ingin mengubah setelan ini, Anda perlu <ph name="BEGIN_LINK" />menyetel ulang sinkronisasi<ph name="END_LINK" />.</translation>
+<translation id="6357305427698525450">Beberapa link yang didukung akan tetap dibuka di <ph name="APP_NAME" /> atau <ph name="APP_NAME_2" />.</translation>
 <translation id="6358884629796491903">Naga</translation>
 <translation id="6359706544163531585">Nonaktifkan tema terang</translation>
 <translation id="6361850914223837199">Detail kesalahan:</translation>
@@ -5726,6 +5739,7 @@
 <translation id="6900284862687837908">Aplikasi Latar Belakang: <ph name="BACKGROUND_APP_URL" /></translation>
 <translation id="6900532703269623216">Perlindungan yang ditingkatkan</translation>
 <translation id="6900651018461749106">Login lagi untuk memperbarui <ph name="USER_EMAIL" /></translation>
+<translation id="6900654715912436255">Yakin ingin menghapus mesin telusur ini?</translation>
 <translation id="6902066522699286937">Suara untuk dipratinjau</translation>
 <translation id="6902336033320348843">Bagian tidak didukung: <ph name="ERROR_LINE" /></translation>
 <translation id="6902837902700739466">Gabungkan perangkat ke domain</translation>
@@ -5997,6 +6011,7 @@
 <translation id="7189234443051076392">Pastikan ruang di perangkat Anda mencukupi</translation>
 <translation id="7189451821249468368">Anda tidak memiliki cukup upgrade untuk mendaftarkan perangkat ini. Hubungi pihak penjualan untuk membeli yang lainnya. Jika Anda yakin Anda tidak seharusnya mendapatkan pesan ini, hubungi dukungan.</translation>
 <translation id="7189965711416741966">Sidik jari ditambahkan.</translation>
+<translation id="7191063546666816478">Beberapa link yang didukung akan tetap dibuka di <ph name="APP_NAME" />, <ph name="APP_NAME_2" />, <ph name="APP_NAME_3" />, dan <ph name="NUMBER_OF_OTHER_APPS" /> aplikasi lainnya.</translation>
 <translation id="7191159667348037">Printer Tidak Dikenal (USB)</translation>
 <translation id="7193051357671784796">Aplikasi ini ditambahkan oleh organisasi Anda. Mulai ulang aplikasi untuk menyelesaikan penginstalannya.</translation>
 <translation id="7193374945610105795">Tidak ada sandi yang tersimpan untuk <ph name="ORIGIN" /></translation>
@@ -6452,6 +6467,7 @@
 <translation id="7658239707568436148">Batal</translation>
 <translation id="7659154729610375585">Tetap keluar dari mode Samaran?</translation>
 <translation id="7659297516559011665">Sandi di perangkat ini saja</translation>
+<translation id="7659336857671800422">Lihat Panduan Privasi</translation>
 <translation id="7659584679870740384">Anda tidak diizinkan untuk menggunakan perangkat ini. Untuk izin masuk, hubungi administrator perangkat.</translation>
 <translation id="7661259717474717992">Izinkan situs menyimpan dan membaca data cookie</translation>
 <translation id="7661451191293163002">Sertifikat pendaftaran tidak dapat diperoleh.</translation>
@@ -7974,6 +7990,7 @@
 <translation id="9200339982498053969"><ph name="ORIGIN" /> akan dapat mengedit file di <ph name="FOLDERNAME" /></translation>
 <translation id="920045321358709304">Penelusuran <ph name="SEARCH_ENGINE" /></translation>
 <translation id="9201023452444595544">Semua data offline akan dihapus</translation>
+<translation id="9201117361710210082">Dilihat sebelumnya</translation>
 <translation id="9201220332032049474">Opsi kunci layar</translation>
 <translation id="9201842707396338580">Terjadi error. Hubungi pemilik atau administrator perangkat Anda. Kode error: <ph name="ERROR_CODE" />.</translation>
 <translation id="9203398526606335860">&amp;Penyidikan diaktifkan</translation>
diff --git a/chrome/app/resources/generated_resources_is.xtb b/chrome/app/resources/generated_resources_is.xtb
index 1471f218..88eab32 100644
--- a/chrome/app/resources/generated_resources_is.xtb
+++ b/chrome/app/resources/generated_resources_is.xtb
@@ -1035,6 +1035,7 @@
 <translation id="2022395138980869975">Kveikja/slökkva á hliðarleit</translation>
 <translation id="2023167225947895179">Hugsanlega er auðvelt að giska á PIN-númerið</translation>
 <translation id="202352106777823113">Niðurhalið tók of langan tíma og netið stöðvaði það.</translation>
+<translation id="2024195579772565064">Eyða leitarvél</translation>
 <translation id="2025632980034333559"><ph name="APP_NAME" /> hrundi. Smelltu á þessa blöðru að endurhlaða viðbótina.</translation>
 <translation id="2028449514182362831">Eiginleikar sem þurfa hreyfiskynjara virka ekki</translation>
 <translation id="202918510990975568">Færðu inn aðgangsorðið til að stilla öryggi og innskráningu</translation>
@@ -1176,6 +1177,7 @@
 <translation id="2159488579268505102">USB-C</translation>
 <translation id="216169395504480358">Bæta við Wi-Fi...</translation>
 <translation id="2162155940152307086">Samstilling hefst þegar þú lokar samstillingarkostum</translation>
+<translation id="2162926944953615670">Engir eSIM-prófílar í boði</translation>
 <translation id="2163470535490402084">Tengstu netinu til að skrá þig inn á <ph name="DEVICE_TYPE" />.</translation>
 <translation id="2163937499206714165">Kveikja á dökku þema</translation>
 <translation id="2164131635608782358"><ph name="FIRST_SWITCH" />, <ph name="SECOND_SWITCH" />, <ph name="THIRD_SWITCH" /> og 1 rofi í viðbót</translation>
@@ -1870,6 +1872,7 @@
 <translation id="2828650939514476812">Tengjast Wi-Fi neti</translation>
 <translation id="2831430281393059038">Tæki er stutt</translation>
 <translation id="2832124733806557606">Barnið getur notað PIN-númer til að skrá sig inn í tækið eða taka það úr lás.</translation>
+<translation id="2835177225987815960">Núverandi uppsetning skönnunar verður endurstillt, þ.m.t. úthlutaðir rofar og hraðastillingar sjálfvirkrar skönnunar.</translation>
 <translation id="2835547721736623118">Raddgreiningarþjónusta</translation>
 <translation id="2836269494620652131">Hrun</translation>
 <translation id="2836635946302913370">Kerfisstjóri hefur lokað á innskráningu með þessu notandanafni.</translation>
@@ -3515,6 +3518,7 @@
 <translation id="4547659257713117923">Engir flipar frá öðrum tækjum</translation>
 <translation id="4547672827276975204">Stilla sjálfkrafa</translation>
 <translation id="4549791035683739768">Engin fingraför eru vistuð í öryggislyklinum þínum</translation>
+<translation id="4550926046134589611">Sumir studdir tenglar munu áfram opnast í <ph name="APP_NAME" />.</translation>
 <translation id="4551763574344810652">Ýttu á <ph name="MODIFIER_KEY_DESCRIPTION" /> til að afturkalla</translation>
 <translation id="4553526521109675518">Endurræsa þarf Chromebook til að breyta tungumáli tækisins. <ph name="BEGIN_LINK_LEARN_MORE" />Frekari upplýsingar<ph name="END_LINK_LEARN_MORE" /></translation>
 <translation id="4554491709904933912">Dragðu yfir myndir til að leita með <ph name="VISUAL_SEARCH_PROVIDER" /></translation>
@@ -3803,6 +3807,7 @@
 <translation id="48704129375571883">Bæta við frekari eiginleikum</translation>
 <translation id="4870758487381879312">Sláðu inn aðgangsorð frá kerfisstjóra til að fá stillingaupplýsingar</translation>
 <translation id="4870903493621965035">Engin pöruð tæki</translation>
+<translation id="4870995365819149457">Sumir studdir tenglar munu áfram opnast í <ph name="APP_NAME" />, <ph name="APP_NAME_2" />, <ph name="APP_NAME_3" /> og 1 forriti í viðbót.</translation>
 <translation id="4871308555310586478">Ekki úr vefverslun Chrome.</translation>
 <translation id="4871322859485617074">PIN-númerið inniheldur ógilda stafi</translation>
 <translation id="4871370605780490696">Bæta við bókamerki</translation>
@@ -4179,6 +4184,7 @@
 <translation id="526622169288322445">Fleiri aðgerðir fyrir <ph name="ADDRESS_SUMMARY" /></translation>
 <translation id="5269977353971873915">Prentun mistókst</translation>
 <translation id="5275352920323889391">Hundur</translation>
+<translation id="527605719918376753">Slökkva á hljóði flipa</translation>
 <translation id="527605982717517565">Leyfa alltaf JavaScript á <ph name="HOST" /></translation>
 <translation id="5277127016695466621">Sýna hliðarglugga</translation>
 <translation id="5278823018825269962">Stöðukenni</translation>
@@ -4838,6 +4844,7 @@
 <translation id="5969728632630673489">Tilkynning um flýtilykil hunsuð</translation>
 <translation id="5971037678316050792">Athuga stöðu og pörun Bluetooth-millistykkis</translation>
 <translation id="597235323114979258">Sjá fleiri áfangastaði</translation>
+<translation id="5972543790327947908">Sumir studdir tenglar munu áfram opnast í <ph name="APP_NAME" />, <ph name="APP_NAME_2" /> eða <ph name="APP_NAME_3" />.</translation>
 <translation id="5972666587303800813">Þjónusta án starfsemi</translation>
 <translation id="5972708806901999743">Færa efst</translation>
 <translation id="5972826969634861500">Ræsa <ph name="PRODUCT_NAME" /></translation>
@@ -5208,6 +5215,7 @@
 <translation id="6355789186038748882">Tilraunaútgáfa (í tilraunagæðum) vafra! Sumir eiginleikar eru ekki til staðar eða eru óvirkir. Tilkynntu vandamál með: Hjálp &gt; „Tilkynna vandamál…“.</translation>
 <translation id="635609604405270300">Hafðu kveikt á tækinu</translation>
 <translation id="63566973648609420">Aðeins þeir sem vita aðgangsorðið geta lesið dulkóðuðu gögnin þín. Aðgangsorðið er ekki sent til Google eða vistað þar. Ef þú gleymir aðgangsorðinu eða þig langar að breyta þessari stillingu þarftu að <ph name="BEGIN_LINK" />endurstilla samstillingu<ph name="END_LINK" />.</translation>
+<translation id="6357305427698525450">Sumir studdir tenglar munu áfram opnast í <ph name="APP_NAME" /> eða  <ph name="APP_NAME_2" />.</translation>
 <translation id="6358884629796491903">Dreki</translation>
 <translation id="6359706544163531585">Slökkva á ljósu þema</translation>
 <translation id="6361850914223837199">Villuupplýsingar:</translation>
@@ -5726,6 +5734,7 @@
 <translation id="6900284862687837908">Bakgrunnsforrit: <ph name="BACKGROUND_APP_URL" /></translation>
 <translation id="6900532703269623216">Aukin vörn</translation>
 <translation id="6900651018461749106">Skráðu þig inn aftur til að uppfæra <ph name="USER_EMAIL" /></translation>
+<translation id="6900654715912436255">Viltu örugglega eyða þessari leitarvél?</translation>
 <translation id="6902066522699286937">Rödd til að nota sem sýnishorn</translation>
 <translation id="6902336033320348843">Hluti ekki studdur: <ph name="ERROR_LINE" /></translation>
 <translation id="6902837902700739466">Tengja tæki við lén</translation>
@@ -5997,6 +6006,7 @@
 <translation id="7189234443051076392">Gakktu úr skugga um að það sé nóg pláss á tækinu</translation>
 <translation id="7189451821249468368">Þú ert ekki með tilskildar uppfærslur til að skrá þetta tæki. Hafðu samband við söludeild til að kaupa uppfærslur. Ef þú telur að þessi villuboð ættu ekki að birtast þér skaltu hafa samband við þjónustudeild.</translation>
 <translation id="7189965711416741966">Fingrafari bætt við.</translation>
+<translation id="7191063546666816478">Sumir studdir tenglar munu áfram opnast í <ph name="APP_NAME" />, <ph name="APP_NAME_2" />, <ph name="APP_NAME_3" /> og <ph name="NUMBER_OF_OTHER_APPS" /> forritum í viðbót.</translation>
 <translation id="7191159667348037">Óþekktur prentari (USB)</translation>
 <translation id="7193051357671784796">Fyrirtækið þitt bætti þessu forriti við. Endurræstu forritið til að ljúka uppsetningu þess.</translation>
 <translation id="7193374945610105795">Engin aðgangsorð hafa verið vistuð fyrir <ph name="ORIGIN" /></translation>
diff --git a/chrome/app/resources/generated_resources_it.xtb b/chrome/app/resources/generated_resources_it.xtb
index fd78515..13b4eef 100644
--- a/chrome/app/resources/generated_resources_it.xtb
+++ b/chrome/app/resources/generated_resources_it.xtb
@@ -510,6 +510,7 @@
 <translation id="1521442365706402292">Gestisci certificati</translation>
 <translation id="1521774566618522728">Attivo oggi</translation>
 <translation id="152234381334907219">Mai salvate</translation>
+<translation id="1523279371236772909">Visualizzato nell'ultimo mese</translation>
 <translation id="1523978563989812243">Motori di sintesi vocale</translation>
 <translation id="1524430321211440688">Tastiera</translation>
 <translation id="1524563461097350801">No, grazie</translation>
@@ -1023,6 +1024,7 @@
 <translation id="2022395138980869975">Attiva/Disattiva ricerca laterale</translation>
 <translation id="2023167225947895179">Il PIN potrebbe essere facile da scoprire</translation>
 <translation id="202352106777823113">Il download stava richiedendo troppo tempo ed è stato interrotto dalla rete.</translation>
+<translation id="2024195579772565064">Elimina motore di ricerca</translation>
 <translation id="2025632980034333559">Arresto anomalo di <ph name="APP_NAME" />. Fai clic su questo fumetto per riavviare l'estensione.</translation>
 <translation id="2028449514182362831">Le funzionalità che richiedono sensori di movimento non funzioneranno</translation>
 <translation id="202918510990975568">Inserisci la password per configurare sicurezza e accesso</translation>
@@ -1164,6 +1166,7 @@
 <translation id="2159488579268505102">USB-C</translation>
 <translation id="216169395504480358">Aggiungi Wi-Fi...</translation>
 <translation id="2162155940152307086">La sincronizzazione inizierà quando esci dalle impostazioni di sincronizzazione</translation>
+<translation id="2162926944953615670">Nessun profilo eSIM disponibile</translation>
 <translation id="2163470535490402084">Connettiti a Internet per accedere al tuo <ph name="DEVICE_TYPE" />.</translation>
 <translation id="2163937499206714165">Attiva la modalità Buio</translation>
 <translation id="2164131635608782358"><ph name="FIRST_SWITCH" />, <ph name="SECOND_SWITCH" />, <ph name="THIRD_SWITCH" /> e 1 altro sensore</translation>
@@ -1241,6 +1244,7 @@
 <translation id="2232876851878324699">Il file conteneva un certificato, che non è stato importato:</translation>
 <translation id="2233502537820838181">Ulteriori infor&amp;mazioni</translation>
 <translation id="223356358902285214">Attività web e app</translation>
+<translation id="2234827758954819389">Guida alla privacy</translation>
 <translation id="2234876718134438132">Sincronizzazione e servizi Google</translation>
 <translation id="2235344399760031203">I cookie di terze parti sono bloccati</translation>
 <translation id="2238379619048995541">Dati sullo stato di frequenza</translation>
@@ -1856,6 +1860,7 @@
 <translation id="2828650939514476812">Collegati alla rete Wi-Fi</translation>
 <translation id="2831430281393059038">Il dispositivo è supportato</translation>
 <translation id="2832124733806557606">Tuo figlio può usare il PIN per accedere al dispositivo o per sbloccarlo.</translation>
+<translation id="2835177225987815960">Se ripeti la configurazione della scansione, tutte le assegnazioni verranno reimpostate, compresi eventuali sensori assegnati e le preferenze di velocità per la scansione automatica.</translation>
 <translation id="2835547721736623118">Servizio di riconoscimento vocale</translation>
 <translation id="2836269494620652131">Interruzione anomala</translation>
 <translation id="2836635946302913370">L'accesso con questo nome utente è stato disattivato dall'amministratore.</translation>
@@ -3093,6 +3098,7 @@
 <translation id="4095264805865317199">Apri UI di attivazione rete mobile</translation>
 <translation id="4095507791297118304">Display principale</translation>
 <translation id="4096508467498758490">Disattiva estensioni in modalità sviluppatore</translation>
+<translation id="4096797685681362305">Visualizzato nell'ultima settimana</translation>
 <translation id="4097406557126260163">App ed estensioni</translation>
 <translation id="409742781329613461">Suggerimenti per Chrome</translation>
 <translation id="4097560579602855702">Cerca su Google</translation>
@@ -3500,6 +3506,7 @@
 <translation id="4547659257713117923">Nessuna scheda di altri dispositivi</translation>
 <translation id="4547672827276975204">Imposta automaticamente</translation>
 <translation id="4549791035683739768">Nel token di sicurezza non sono archiviate impronte</translation>
+<translation id="4550926046134589611">Alcuni link supportati saranno comunque aperti nell'app <ph name="APP_NAME" />.</translation>
 <translation id="4551763574344810652">Premi <ph name="MODIFIER_KEY_DESCRIPTION" /> per annullare</translation>
 <translation id="4553526521109675518">Per cambiare la lingua del dispositivo, devi riavviare il Chromebook. <ph name="BEGIN_LINK_LEARN_MORE" />Ulteriori informazioni<ph name="END_LINK_LEARN_MORE" /></translation>
 <translation id="4554491709904933912">Trascina il puntatore del mouse sulle immagini per eseguire ricerche con <ph name="VISUAL_SEARCH_PROVIDER" /></translation>
@@ -3648,6 +3655,7 @@
 <translation id="4699172675775169585">Immagini e file memorizzati nella cache</translation>
 <translation id="4699357559218762027">(avviata automaticamente)</translation>
 <translation id="4701025263201366865">Accesso per i genitori</translation>
+<translation id="4701335814944566468">Visualizzato ieri</translation>
 <translation id="4708794300267213770">Mostra la schermata di blocco quando il dispositivo viene riattivato dopo la sospensione</translation>
 <translation id="4708849949179781599">Esci da <ph name="PRODUCT_NAME" /></translation>
 <translation id="4711638718396952945">Ripristina impostazioni</translation>
@@ -3715,6 +3723,7 @@
 <translation id="479536056609751218">Pagina web, solo HTML</translation>
 <translation id="4796142525425001238">Ripristina sempre</translation>
 <translation id="4798236378408895261">Allega <ph name="BEGIN_LINK" />log Bluetooth<ph name="END_LINK" /> (interno di Google)</translation>
+<translation id="479863874072008121">Gestisci dispositivi</translation>
 <translation id="4800839971935185386">Controlla gli aggiornamenti del nome e dell'icona</translation>
 <translation id="4801448226354548035">Nascondi account</translation>
 <translation id="4801512016965057443">Consenti roaming dati mobile</translation>
@@ -3788,6 +3797,7 @@
 <translation id="48704129375571883">Aggiungi altre funzioni</translation>
 <translation id="4870758487381879312">Inserisci la password fornita dall'amministratore per ricevere informazioni sulla configurazione</translation>
 <translation id="4870903493621965035">Nessun dispositivo accoppiato</translation>
+<translation id="4870995365819149457">Alcuni link supportati saranno comunque aperti in <ph name="APP_NAME" />, <ph name="APP_NAME_2" />, <ph name="APP_NAME_3" /> e in un'altra app.</translation>
 <translation id="4871308555310586478">Non dal Chrome Web Store.</translation>
 <translation id="4871322859485617074">Il PIN contiene caratteri non validi</translation>
 <translation id="4871370605780490696">Aggiungi preferito</translation>
@@ -4164,6 +4174,7 @@
 <translation id="526622169288322445">Altre azioni per <ph name="ADDRESS_SUMMARY" /></translation>
 <translation id="5269977353971873915">Stampa non riuscita</translation>
 <translation id="5275352920323889391">Cane</translation>
+<translation id="527605719918376753">Disattiva audio scheda</translation>
 <translation id="527605982717517565">Consenti sempre JavaScript su <ph name="HOST" /></translation>
 <translation id="5277127016695466621">Mostra pannello laterale</translation>
 <translation id="5278823018825269962">ID stato</translation>
@@ -4823,6 +4834,7 @@
 <translation id="5969728632630673489">Notifica relativa a scorciatoie da tastiera ignorata</translation>
 <translation id="5971037678316050792">Controllo dello stato e dell'accoppiamento dell'adattatore Bluetooth</translation>
 <translation id="597235323114979258">Mostra altre destinazioni</translation>
+<translation id="5972543790327947908">Alcuni link supportati saranno comunque aperti nelle app <ph name="APP_NAME" />, <ph name="APP_NAME_2" /> o <ph name="APP_NAME_3" />.</translation>
 <translation id="5972666587303800813">Servizio autonomo</translation>
 <translation id="5972708806901999743">Sposta in alto</translation>
 <translation id="5972826969634861500">Avvia <ph name="PRODUCT_NAME" /></translation>
@@ -5193,6 +5205,7 @@
 <translation id="6355789186038748882">Browser sperimentale (qualità alpha). Alcune funzionalità potrebbero essere assenti o incomplete. Segnala eventuali problemi selezionando Guida &gt; "Segnala un problema…".</translation>
 <translation id="635609604405270300">Tieni accesi i dispositivi</translation>
 <translation id="63566973648609420">Soltanto chi conosce la tua passphrase può leggere i tuoi dati criptati. La passphrase non viene inviata a Google né memorizzata. Se dimentichi la passphrase o vuoi modificare questa impostazione, dovrai <ph name="BEGIN_LINK" />reimpostare la sincronizzazione<ph name="END_LINK" />.</translation>
+<translation id="6357305427698525450">Alcuni link supportati saranno comunque aperti nelle app <ph name="APP_NAME" /> o  <ph name="APP_NAME_2" />.</translation>
 <translation id="6358884629796491903">Drago</translation>
 <translation id="6359706544163531585">Disabilita il tema chiaro</translation>
 <translation id="6361850914223837199">Dettagli errore:</translation>
@@ -5711,6 +5724,7 @@
 <translation id="6900284862687837908">App in background: <ph name="BACKGROUND_APP_URL" /></translation>
 <translation id="6900532703269623216">Protezione avanzata</translation>
 <translation id="6900651018461749106">Accedi nuovamente per aggiornare <ph name="USER_EMAIL" /></translation>
+<translation id="6900654715912436255">Vuoi eliminare questo motore di ricerca?</translation>
 <translation id="6902066522699286937">Voce per l'anteprima</translation>
 <translation id="6902336033320348843">Sezione non supportata: <ph name="ERROR_LINE" /></translation>
 <translation id="6902837902700739466">Aggiungi il dispositivo al dominio</translation>
@@ -5982,6 +5996,7 @@
 <translation id="7189234443051076392">Assicurati di avere spazio sufficiente sul dispositivo</translation>
 <translation id="7189451821249468368">Non disponi di licenze Upgrade sufficienti per registrare questo dispositivo. Contatta l'ufficio vendite per acquistarne altre. Se ritieni che questo messaggio sia stato visualizzato per sbaglio, contatta l'assistenza.</translation>
 <translation id="7189965711416741966">Impronta digitale aggiunta.</translation>
+<translation id="7191063546666816478">Alcuni link supportati saranno comunque aperti in <ph name="APP_NAME" />, <ph name="APP_NAME_2" />, <ph name="APP_NAME_3" /> e altre <ph name="NUMBER_OF_OTHER_APPS" /> app.</translation>
 <translation id="7191159667348037">Stampante sconosciuta (USB)</translation>
 <translation id="7193051357671784796">Questa app è stata aggiunta dalla tua organizzazione. Riavvia l'app per terminarne l'installazione.</translation>
 <translation id="7193374945610105795">Nessuna password salvata per il sito <ph name="ORIGIN" /></translation>
@@ -6437,6 +6452,7 @@
 <translation id="7658239707568436148">Annulla</translation>
 <translation id="7659154729610375585">Vuoi uscire comunque dalla modalità di navigazione in incognito?</translation>
 <translation id="7659297516559011665">Password memorizzate soltanto su questo dispositivo</translation>
+<translation id="7659336857671800422">Ottieni la Guida alla privacy</translation>
 <translation id="7659584679870740384">Non sei autorizzato a utilizzare questo dispositivo. Per ottenere l'autorizzazione di accesso contatta l'amministratore.</translation>
 <translation id="7661259717474717992">Consenti ai siti di salvare e leggere i dati dei cookie</translation>
 <translation id="7661451191293163002">Impossibile ottenere un certificato di registrazione.</translation>
@@ -7960,6 +7976,7 @@
 <translation id="9200339982498053969"><ph name="ORIGIN" /> potrà modificare i file nella cartella <ph name="FOLDERNAME" /></translation>
 <translation id="920045321358709304">Cerca su <ph name="SEARCH_ENGINE" /></translation>
 <translation id="9201023452444595544">I dati offline verranno cancellati</translation>
+<translation id="9201117361710210082">Visualizzato in precedenza</translation>
 <translation id="9201220332032049474">Opzioni di blocco schermo</translation>
 <translation id="9201842707396338580">Si è verificato un problema. Contatta l'amministratore o il proprietario del dispositivo. Codice di errore: <ph name="ERROR_CODE" />.</translation>
 <translation id="9203398526606335860">&amp;Profiling attivato</translation>
diff --git a/chrome/app/resources/generated_resources_iw.xtb b/chrome/app/resources/generated_resources_iw.xtb
index 4ab8fee..653e7b0 100644
--- a/chrome/app/resources/generated_resources_iw.xtb
+++ b/chrome/app/resources/generated_resources_iw.xtb
@@ -1033,6 +1033,7 @@
 <translation id="2022395138980869975">לחצן להחלפת מצב החיפוש בצד הדף</translation>
 <translation id="2023167225947895179">‏ייתכן שיהיה קל לנחש את ה-PIN</translation>
 <translation id="202352106777823113">ההורדה נמשכה זמן רב מדי, והיא נעצרה על ידי הרשת.</translation>
+<translation id="2024195579772565064">מחיקת מנוע החיפוש</translation>
 <translation id="2025632980034333559"><ph name="APP_NAME" /> קרס. יש ללחוץ על בלון זה כדי לטעון מחדש את התוסף.</translation>
 <translation id="2028449514182362831">תכונות שצריכות חיישני תנועה לא יפעלו</translation>
 <translation id="202918510990975568">יש להזין את הסיסמה כדי לקבוע את הגדרות האבטחה ולהיכנס לחשבון</translation>
@@ -1174,6 +1175,7 @@
 <translation id="2159488579268505102">USB-C</translation>
 <translation id="216169395504480358">‏הוספת רשת Wi-Fi...</translation>
 <translation id="2162155940152307086">הסנכרון יתחיל מיד לאחר היציאה מהגדרות הסנכרון</translation>
+<translation id="2162926944953615670">‏אין פרופילים זמינים של eSIM</translation>
 <translation id="2163470535490402084">צריך להתחבר לאינטרנט כדי להיכנס אל ה-<ph name="DEVICE_TYPE" />.</translation>
 <translation id="2163937499206714165">הפעלת המצב הכהה</translation>
 <translation id="2164131635608782358"><ph name="FIRST_SWITCH" />, <ph name="SECOND_SWITCH" />, <ph name="THIRD_SWITCH" /> ועוד מתג אחד</translation>
@@ -1870,6 +1872,7 @@
 <translation id="2828650939514476812">‏התחברות אל רשת Wi-Fi</translation>
 <translation id="2831430281393059038">המכשיר נתמך</translation>
 <translation id="2832124733806557606">לילד או לילדה שלך יש אפשרות להשתמש בקוד אימות כדי להיכנס למכשיר הזה או לבטל את הנעילה שלו.</translation>
+<translation id="2835177225987815960">הגדרת הסריקה הנוכחית שלך תאופס, לרבות העדפות למהירות הסריקה האוטומטית ומתגים שהוקצו.</translation>
 <translation id="2835547721736623118">שירות של זיהוי דיבור</translation>
 <translation id="2836269494620652131">קריסה</translation>
 <translation id="2836635946302913370">הכניסה עם שם משתמש זה הושבתה על ידי מנהל המערכת.</translation>
@@ -3515,6 +3518,7 @@
 <translation id="4547659257713117923">אין כרטיסיות ממכשירים אחרים</translation>
 <translation id="4547672827276975204">הגדרה באופן אוטומטי</translation>
 <translation id="4549791035683739768">לא נשמרו טביעות אצבעות במפתח האבטחה</translation>
+<translation id="4550926046134589611">חלק מהקישורים הנתמכים ימשיכו להיפתח ב-<ph name="APP_NAME" />.</translation>
 <translation id="4551763574344810652">אפשר לבטל את הפעולה בהקשה על <ph name="MODIFIER_KEY_DESCRIPTION" /></translation>
 <translation id="4553526521109675518">‏כדי לשנות את שפת המכשיר, עליך להפעיל את Chromebook מחדש. <ph name="BEGIN_LINK_LEARN_MORE" />מידע נוסף<ph name="END_LINK_LEARN_MORE" /></translation>
 <translation id="4554491709904933912">גוררים את סמן העכבר מעל תמונות כדי לחפש באמצעות <ph name="VISUAL_SEARCH_PROVIDER" /></translation>
@@ -3803,6 +3807,7 @@
 <translation id="48704129375571883">הוספת תכונות נוספות</translation>
 <translation id="4870758487381879312">כדי לקבל פרטי תצורה, צריך להזין סיסמה שהתקבלה ממנהל המערכת</translation>
 <translation id="4870903493621965035">אין מכשירים מותאמים</translation>
+<translation id="4870995365819149457">חלק מהקישורים הנתמכים ימשיכו להיפתח באפליקציות <ph name="APP_NAME" />,‏ <ph name="APP_NAME_2" />,‏ <ph name="APP_NAME_3" /> ובעוד אפליקציה אחת.</translation>
 <translation id="4871308555310586478">‏לא מחנות האינטרנט של Chrome.</translation>
 <translation id="4871322859485617074">קוד האימות מכיל תווים לא חוקיים</translation>
 <translation id="4871370605780490696">הוספת סימנייה</translation>
@@ -4179,6 +4184,7 @@
 <translation id="526622169288322445">עוד פעולות לגבי <ph name="ADDRESS_SUMMARY" /></translation>
 <translation id="5269977353971873915">ההדפסה נכשלה</translation>
 <translation id="5275352920323889391">כלב</translation>
+<translation id="527605719918376753">השתקת כרטיסייה</translation>
 <translation id="527605982717517565">‏לאפשר תמיד JavaScript ב-<ph name="HOST" /></translation>
 <translation id="5277127016695466621">הצגת החלונית הצדדית</translation>
 <translation id="5278823018825269962">מזהה סטטוס</translation>
@@ -4838,6 +4844,7 @@
 <translation id="5969728632630673489">ההודעה לגבי מקשי הקיצור נסגרה</translation>
 <translation id="5971037678316050792">‏הגדרת מצב ושליטה בהתאמה עבור מתאם Bluetooth</translation>
 <translation id="597235323114979258">הצגת יעדים נוספים</translation>
+<translation id="5972543790327947908">חלק מהקישורים הנתמכים ימשיכו להיפתח באפליקציות <ph name="APP_NAME" />,‏ <ph name="APP_NAME_2" /> או <ph name="APP_NAME_3" />.</translation>
 <translation id="5972666587303800813">‏שירות ללא תפעול (no-ops)</translation>
 <translation id="5972708806901999743">העברה למעלה</translation>
 <translation id="5972826969634861500">הפעלת <ph name="PRODUCT_NAME" /></translation>
@@ -5208,6 +5215,7 @@
 <translation id="6355789186038748882">דפדפן ניסיוני (באיכות אלפא)! כמה מהתכונות חסרות או חלקיות. אפשר לדווח על בעיות דרך 'עזרה' &gt; "דיווח על בעיה…".</translation>
 <translation id="635609604405270300">אין לכבות את המכשיר</translation>
 <translation id="63566973648609420">‏רק מי שיודע את ביטוי הסיסמה יכול לקרוא את הנתונים המוצפנים. ביטוי הסיסמה לא נשלח אל Google והיא אינה מאחסנת אותו. אם לא זוכרים את ביטוי הסיסמה או אם רוצים לשנות את ההגדרה הזו, יש <ph name="BEGIN_LINK" />לאפס את הסנכרון<ph name="END_LINK" />.</translation>
+<translation id="6357305427698525450">חלק מהקישורים הנתמכים ימשיכו להיפתח ב-<ph name="APP_NAME" /> או ב-<ph name="APP_NAME_2" />.</translation>
 <translation id="6358884629796491903">דרקון</translation>
 <translation id="6359706544163531585">השבתת העיצוב הבהיר</translation>
 <translation id="6361850914223837199">פרטי השגיאה:</translation>
@@ -5726,6 +5734,7 @@
 <translation id="6900284862687837908">יישום רקע: <ph name="BACKGROUND_APP_URL" /></translation>
 <translation id="6900532703269623216">הגנה משופרת</translation>
 <translation id="6900651018461749106">יש להיכנס שוב כדי לעדכן את <ph name="USER_EMAIL" /></translation>
+<translation id="6900654715912436255">בחרת למחוק את מנוע החיפוש הזה. להמשיך?</translation>
 <translation id="6902066522699286937">קול להשמעה מקדימה</translation>
 <translation id="6902336033320348843">הקטע לא נתמך: <ph name="ERROR_LINE" /></translation>
 <translation id="6902837902700739466">צירוף המכשיר לדומיין</translation>
@@ -5997,6 +6006,7 @@
 <translation id="7189234443051076392">צריך לוודא שיש מספיק מקום פנוי במכשיר</translation>
 <translation id="7189451821249468368">אין לך מספיק שדרוגים כדי לרשום את המכשיר הזה. ניתן לרכוש עוד שדרוגים דרך מחלקת המכירות. אם לדעתך ההודעה הזו מוצגת לך בטעות, אפשר לפנות לתמיכה.</translation>
 <translation id="7189965711416741966">טביעת האצבע נוספה.</translation>
+<translation id="7191063546666816478">חלק מהקישורים הנתמכים ימשיכו להיפתח באפליקציות <ph name="APP_NAME" />,‏ <ph name="APP_NAME_2" />,‏ <ph name="APP_NAME_3" /> ובעוד <ph name="NUMBER_OF_OTHER_APPS" /> אפליקציות.</translation>
 <translation id="7191159667348037">‏מדפסת לא ידועה (USB)</translation>
 <translation id="7193051357671784796">אפליקציה זו נוספה על-ידי הארגון שלך. עליך להפעיל מחדש את האפליקציה כדי לסיים את ההתקנה שלה.</translation>
 <translation id="7193374945610105795">לא נשמרו סיסמאות בשביל <ph name="ORIGIN" /></translation>
diff --git a/chrome/app/resources/generated_resources_ja.xtb b/chrome/app/resources/generated_resources_ja.xtb
index 77a9992..de0e45f0 100644
--- a/chrome/app/resources/generated_resources_ja.xtb
+++ b/chrome/app/resources/generated_resources_ja.xtb
@@ -4158,6 +4158,7 @@
 <translation id="526622169288322445"><ph name="ADDRESS_SUMMARY" /> に対するその他の操作</translation>
 <translation id="5269977353971873915">印刷の失敗</translation>
 <translation id="5275352920323889391">犬</translation>
+<translation id="527605719918376753">タブをミュート</translation>
 <translation id="527605982717517565"><ph name="HOST" /> の JavaScript を常に許可する</translation>
 <translation id="5277127016695466621">サイドパネルを表示</translation>
 <translation id="5278823018825269962">ステータス ID</translation>
diff --git a/chrome/app/resources/generated_resources_ka.xtb b/chrome/app/resources/generated_resources_ka.xtb
index 9e5cb41..0faa598 100644
--- a/chrome/app/resources/generated_resources_ka.xtb
+++ b/chrome/app/resources/generated_resources_ka.xtb
@@ -295,6 +295,7 @@
 <translation id="1293264513303784526">USB-C მოწყობილობა (მარცხენა პორტი)</translation>
 <translation id="1293556467332435079">ფაილები</translation>
 <translation id="1294807885394205587">ამას შეიძლება რამდენიმე წუთი დასჭირდეს. მიმდინარეობს კონტეინერების მმართველის გაშვება.</translation>
+<translation id="1296046226918222533">Linux-ის ვერსიის განახლება ვერ მოხერხდა შეფერხების გამო. აღნიშნულის შესახებ დამატებითი ინფორმაცია ხელმისაწვდომია ჟურნალებში. ჟურნალები შენახულია <ph name="LOG_FILE" />-ში</translation>
 <translation id="1296911687402551044">არჩეული ჩანართის ჩამაგრება</translation>
 <translation id="1297175357211070620">დანიშნულება</translation>
 <translation id="129770436432446029">გამოგვეხმაურეთ, როგორია <ph name="EXPERIMENT_NAME" /></translation>
@@ -1691,6 +1692,7 @@
 <translation id="2684004000387153598">გასაგრძელებლად დაწკაპუნებით აირჩიეთ „კარგი“, ხოლო შემდეგ — „მომხმარებლის დამატება“, რათა შექმნათ ახალი პროფილი თქვენი ელფოსტის მისამართისთვის.</translation>
 <translation id="2687403674020088961">ყველა ქუქი-ჩანაწერის დაბლოკვა (არარეკომენდებული)</translation>
 <translation id="2687407218262674387">Google-ის მომსახურების პირობები</translation>
+<translation id="2687621393791886981">მოგვიანებით მკითხეთ</translation>
 <translation id="2688196195245426394">შეცდომა სერვერზე მოწყობილობის დარეგისტრირებისას: <ph name="CLIENT_ERROR" />.</translation>
 <translation id="2690024944919328218">ენის ვარიანტების ჩვენება</translation>
 <translation id="2691385045260836588">მოდელი</translation>
@@ -2787,6 +2789,7 @@
 <translation id="3799128412641261490">გადამრთველით წვდომის პარამეტრები</translation>
 <translation id="3800806661949714323">ყველას ჩვენება (რეკომენდებულია)</translation>
 <translation id="3800828618615365228">Google Chrome-ისა და ChromeOS-ის დამატებითი პირობები</translation>
+<translation id="3802486193901166966">ეს გაფართოება არ საჭიროებს სპეციალურ ნებართვებს და მას არ აქვს რაიმე სახის დამატებითი წვდომა საიტზე</translation>
 <translation id="380329542618494757">სახელი</translation>
 <translation id="3803345858388753269">ვიდეოს ხარისხი</translation>
 <translation id="380408572480438692">ეფექტურობის მონაცემების შეგროვების ჩართვის შემთხვევაში თქვენ დაეხმარებით Google-ს სისტემის გაუმჯობესებაში. მონაცემები არ გაიგზავნება, სანამ არ გაგზავნით შეფასების მოხსენებას (Alt-Shift-I) ეფექტურობის მონაცემებით. შეგიძლიათ ნებისმიერ დროს გამორთოთ შეგროვების ფუნქცია ამ ფანჯარაში.</translation>
@@ -3813,6 +3816,7 @@
 <translation id="4883436287898674711">ყველა <ph name="WEBSITE_1" /> ვებგვერდები</translation>
 <translation id="48838266408104654">&amp;ამოცანების მმართველი</translation>
 <translation id="4884987973312178454">6x</translation>
+<translation id="4885692421645694729">ამ გაფართოებას არ აქვს საიტზე დამატებითი წვდომა</translation>
 <translation id="4887424188275796356">გახსნა სისტემის მაჩვენებლით</translation>
 <translation id="488785315393301722">დეტალების ჩვენება</translation>
 <translation id="4890773143211625964">პრინტერის დამატებითი პარამეტრების ჩვენება</translation>
@@ -3987,6 +3991,7 @@
 <translation id="5075910247684008552">დაუცველი კონტენტი ნაგულისხმევად დაბლოკილია დაცულ საიტებზე</translation>
 <translation id="5078638979202084724">ყველა ჩანართის სანიშნეებში ჩამატება</translation>
 <translation id="5078796286268621944">არასწორი პინი</translation>
+<translation id="5079010647467150187">ჩაშენებული VPN-ის დამატება...</translation>
 <translation id="5079950360618752063">შემოთავაზებული პაროლის გამოყენება</translation>
 <translation id="508059534790499809">Kerberos ბილეთის განახლება</translation>
 <translation id="5084230410268011727">საიტებისთვის მოძრაობისა და განათების სენსორების გამოყენების დაშვება</translation>
@@ -4168,6 +4173,7 @@
 <translation id="526622169288322445">სხვა ქმედებები „<ph name="ADDRESS_SUMMARY" />“-სთვის</translation>
 <translation id="5269977353971873915">ბეჭვდის შეცდომა</translation>
 <translation id="5275352920323889391">ძაღლი</translation>
+<translation id="527605719918376753">ჩანართების დადუმება</translation>
 <translation id="527605982717517565">ყოველთვის დაუშვით JavaScript <ph name="HOST" />-ზე</translation>
 <translation id="5277127016695466621">გვერდითი პანელის ჩვენება</translation>
 <translation id="5278823018825269962">სტატუსის ID</translation>
@@ -5538,6 +5544,7 @@
 <translation id="6709133671862442373">ახალი ამბები</translation>
 <translation id="6709357832553498500"><ph name="EXTENSIONNAME" />-ით დაკავშირება</translation>
 <translation id="6710213216561001401">წინა</translation>
+<translation id="6710973041022512889">ვერსიის განახლება წარმატებით დასრულდა. აღნიშნულის შესახებ დამატებითი ინფორმაცია ხელმისაწვდომია ჟურნალებში, რომლებიც შენახულია <ph name="LOG_FILE" />-ში</translation>
 <translation id="6711146141291425900">მიაბით <ph name="WEB_DRIVE" /> ანგარიში ჩამოტვირთვებისთვის</translation>
 <translation id="6712943853047024245">თქვენ უკვე შეინახეთ პაროლი ამ მომხმარებლის სახელით <ph name="WEBSITE" />-ისთვის</translation>
 <translation id="6713233729292711163">სამსახურის პროფილის დამატება</translation>
@@ -7202,6 +7209,7 @@
 <translation id="8410775397654368139">Google Play</translation>
 <translation id="8412136526970428322">დაშვებულია <ph name="PERMISSION" /> და <ph name="COUNT" /> სხვა</translation>
 <translation id="8413385045638830869">ჯერ მკითხეთ (რეკომენდებულია)</translation>
+<translation id="8414249071344507766">მოგონებები დამალულია ორი დღით</translation>
 <translation id="8416730306157376817"><ph name="BATTERY_PERCENTAGE" />% (სათავსო)</translation>
 <translation id="8417548266957501132">მშობლის პაროლი</translation>
 <translation id="8418445294933751433">ჩ&amp;ვენება ჩანართის სახით</translation>
diff --git a/chrome/app/resources/generated_resources_kk.xtb b/chrome/app/resources/generated_resources_kk.xtb
index 5e3e96d..c27fe38 100644
--- a/chrome/app/resources/generated_resources_kk.xtb
+++ b/chrome/app/resources/generated_resources_kk.xtb
@@ -1677,6 +1677,7 @@
 <translation id="2684004000387153598">Жалғастыру үшін "Жарайды" түймесін түртіп, электрондық пошта мекенжайыңызбен байланысты жаңа профиль жасау үшін "Адамды қосу" тармағын түртіңіз.</translation>
 <translation id="2687403674020088961">Барлық cookie файлын бөгеу (ұсынылмайды)</translation>
 <translation id="2687407218262674387">Google қызмет көрсету шарттары</translation>
+<translation id="2687621393791886981">Кейінірек сұралсын</translation>
 <translation id="2688196195245426394">Сервер арқылы құрылғыны тіркеу кезіндегі қате: <ph name="CLIENT_ERROR" />.</translation>
 <translation id="2690024944919328218">Тіл опцияларын көрсету</translation>
 <translation id="2691385045260836588">Моделі</translation>
@@ -4139,6 +4140,7 @@
 <translation id="526622169288322445">"<ph name="ADDRESS_SUMMARY" />" бойынша қосымша әрекеттер</translation>
 <translation id="5269977353971873915">Басып шығару сәтсіз аяқталды</translation>
 <translation id="5275352920323889391">Ит</translation>
+<translation id="527605719918376753">Қойынды дыбысын өшіру</translation>
 <translation id="527605982717517565"><ph name="HOST" /> үшін JavaScript қосуға әрдайым рұқсат беру</translation>
 <translation id="5277127016695466621">Бүйірлік панельді көрсету</translation>
 <translation id="5278823018825269962">Күй идентификаторы</translation>
@@ -7159,6 +7161,7 @@
 <translation id="8410775397654368139">Google Play</translation>
 <translation id="8412136526970428322"><ph name="PERMISSION" /> және тағы <ph name="COUNT" /> рұқсат етілді.</translation>
 <translation id="8413385045638830869">Алдымен сұрау (ең дұрысы)</translation>
+<translation id="8414249071344507766">Естеліктер екі күн көрсетілмейді.</translation>
 <translation id="8416730306157376817"><ph name="BATTERY_PERCENTAGE" />% (қап)</translation>
 <translation id="8417548266957501132">Ата-ана құпия сөзі</translation>
 <translation id="8418445294933751433">&amp;Қойынды ретінде көрсету</translation>
diff --git a/chrome/app/resources/generated_resources_km.xtb b/chrome/app/resources/generated_resources_km.xtb
index 4d902de..eeacb4b2 100644
--- a/chrome/app/resources/generated_resources_km.xtb
+++ b/chrome/app/resources/generated_resources_km.xtb
@@ -297,6 +297,7 @@
 <translation id="1293264513303784526">ឧបករណ៍ USB-C (រន្ធខាងឆ្វេង)</translation>
 <translation id="1293556467332435079">ឯកសារ</translation>
 <translation id="1294807885394205587">ដំណើរការនេះអាចចំណាយពេលពីរបីនាទី។ កំពុងចាប់ផ្ដើមកម្មវិធីគ្រប់គ្រងទម្រង់ផ្ទុក។</translation>
+<translation id="1296046226918222533">មានអ្វីមួយ​ខុសប្រក្រតី ដែលធ្វើឱ្យ​ការដំឡើងកំណែ Linux មិនបានសម្រេច។ អាចរកមើល​ព័ត៌មានបន្ថែម​អំពីបញ្ហានេះ​បាននៅក្នុង​កំណត់​ហេតុ។ កំណត់ហេតុ​ត្រូវបាន​រក្សាទុក​នៅក្នុង <ph name="LOG_FILE" /></translation>
 <translation id="1296911687402551044">ខ្ទាស់ផ្ទាំងដែលបានជ្រើសរើស</translation>
 <translation id="1297175357211070620">គោលដៅ</translation>
 <translation id="129770436432446029">ផ្ញើមតិកែលម្អ​សម្រាប់ <ph name="EXPERIMENT_NAME" /></translation>
@@ -2804,6 +2805,7 @@
 <translation id="3799128412641261490">ការកំណត់​ការប្រើប៊ូតុងចុច</translation>
 <translation id="3800806661949714323">បង្ហាញទាំងអស់ (បានណែនាំ)</translation>
 <translation id="3800828618615365228">លក្ខខណ្ឌបន្ថែម​របស់ Google Chrome និង ChromeOS</translation>
+<translation id="3802486193901166966">កម្មវិធីបន្ថែមនេះ​មិនតម្រូវឱ្យមាន​ការអនុញ្ញាត​ពិសេស និង​មិនមាន​សិទ្ធិចូលប្រើ​គេហទំព័រ​បន្ថែមទេ</translation>
 <translation id="380329542618494757">ឈ្មោះ</translation>
 <translation id="3803345858388753269">គុណភាពវីដេអូ</translation>
 <translation id="380408572480438692">ការបើកដំណើរការការប្រមូលទិន្នន័យប្រតិបត្តិការនឹងជួយឲ្យ Google ធ្វើឲ្យប្រព័ន្ធប្រសើរឡើងមានពេលខាងមុខ។ គ្មានទិន្នន័យណាមួយត្រូវបានផ្ញើទេ លុះត្រាអ្នកផ្ញើរបាយការណ៍មតិ  (Alt-Shift-I) ហើយរាប់បញ្ចូលទាំងទិន្នន័យប្រតិបត្តិការរបស់អ្នក។ អ្នកអាចត្រលប់ទៅអេក្រង់នេះដើម្បីបិទដំណើរការការប្រមូលទិន្នន័យគ្រប់ពេល។</translation>
@@ -3834,6 +3836,7 @@
 <translation id="4883436287898674711">គេហទំព័រ <ph name="WEBSITE_1" /> ទាំងអស់</translation>
 <translation id="48838266408104654">កម្មវិធីគ្រប់គ្រងភារកិច្ច</translation>
 <translation id="4884987973312178454">6x</translation>
+<translation id="4885692421645694729">កម្មវិធីបន្ថែមនេះ​មិនមានសិទ្ធិចូលប្រើ​គេហទំព័របន្ថែមទេ</translation>
 <translation id="4887424188275796356">បើកជាមួយឧបករណ៍មើលប្រព័ន្ធ</translation>
 <translation id="488785315393301722">បង្ហាញព័ត៌មានលំអិត</translation>
 <translation id="4890773143211625964">បង្ហាញជម្រើសម៉ាស៊ីនបោះពុម្ពកម្រិតខ្ពស់</translation>
@@ -4008,6 +4011,7 @@
 <translation id="5075910247684008552">ខ្លឹមសារ​ដែលគ្មាន​សុវត្ថិភាព​ត្រូវបាន​ទប់ស្កាត់​តាម​លំនាំដើម​នៅលើ​គេហទំព័រដែលមានសុវត្ថិភាព</translation>
 <translation id="5078638979202084724">ចំណាំផ្ទាំងទាំងអស់</translation>
 <translation id="5078796286268621944">លេខសម្គាល់មិនត្រឹមត្រូវ</translation>
+<translation id="5079010647467150187">បញ្ចូល VPN ដែលភ្ជាប់​មកជាមួយស្រាប់...</translation>
 <translation id="5079950360618752063">ប្រើពាក្យសម្ងាត់​ដែល​បាន​ណែនាំ</translation>
 <translation id="508059534790499809">ផ្ទុកសំបុត្រ Kerberos ឡើងវិញ</translation>
 <translation id="5084230410268011727">អនុញ្ញាត​ឱ្យ​ទំព័រ​ប្រើ​ឧបករណ៍​ចាប់សញ្ញា​ពន្លឺ និងចលនា</translation>
@@ -4189,6 +4193,7 @@
 <translation id="526622169288322445">សកម្មភាព​ច្រើន​ទៀត​សម្រាប់ <ph name="ADDRESS_SUMMARY" /></translation>
 <translation id="5269977353971873915">ការបោះពុម្ពបានបរាជ័យ</translation>
 <translation id="5275352920323889391">ឆ្កែ</translation>
+<translation id="527605719918376753">បិទសម្លេងផ្ទាំង</translation>
 <translation id="527605982717517565">អនុញ្ញាតឲ្យ JavaScript នៅលើ <ph name="HOST" /> ជានិច្ច</translation>
 <translation id="5277127016695466621">បង្ហាញ​ផ្ទាំង​ចំហៀង</translation>
 <translation id="5278823018825269962">លេខសម្គាល់​ស្ថានភាព</translation>
@@ -5560,6 +5565,7 @@
 <translation id="6709133671862442373">ព័ត៌មាន</translation>
 <translation id="6709357832553498500">ភ្ជាប់ដោយប្រើ <ph name="EXTENSIONNAME" /></translation>
 <translation id="6710213216561001401">មុន</translation>
+<translation id="6710973041022512889">ការដំឡើងកំណែ​បានបញ្ចប់​ដោយជោគជ័យហើយ។ កំណត់ហេតុ​ត្រូវបាន​រក្សាទុក​នៅក្នុង <ph name="LOG_FILE" /> សម្រាប់ជា​ព័ត៌មានលម្អិត​អំពីការដំឡើងកំណែ</translation>
 <translation id="6711146141291425900">ភ្ជាប់​គណនី <ph name="WEB_DRIVE" /> សម្រាប់​ការទាញយក</translation>
 <translation id="6712943853047024245">អ្នកបាន​រក្សាទុក​ពាក្យសម្ងាត់​ជាមួយឈ្មោះអ្នកប្រើប្រាស់​នេះសម្រាប់ <ph name="WEBSITE" /> រួចហើយ</translation>
 <translation id="6713233729292711163">បញ្ចូលកម្រងព័ត៌មានការងារ</translation>
diff --git a/chrome/app/resources/generated_resources_kn.xtb b/chrome/app/resources/generated_resources_kn.xtb
index b020ec53..a6018b6 100644
--- a/chrome/app/resources/generated_resources_kn.xtb
+++ b/chrome/app/resources/generated_resources_kn.xtb
@@ -1701,6 +1701,7 @@
 <translation id="2684004000387153598">ಮುಂದುವರಿಸಲು, ಸರಿ ಎಂಬುದನ್ನು ಕ್ಲಿಕ್ ಮಾಡಿ. ಆಮೇಲೆ, ನಿಮ್ಮ ಇಮೇಲ್ ವಿಳಾಸಕ್ಕಾಗಿ ಹೊಸ ಪ್ರೊಫೈಲ್ ಅನ್ನು ರಚಿಸಲು, ವ್ಯಕ್ತಿಯನ್ನು ಸೇರಿಸಿ ಎಂಬುದನ್ನು ಕ್ಲಿಕ್ ಮಾಡಿ.</translation>
 <translation id="2687403674020088961">ಎಲ್ಲಾ ಕುಕೀಗಳನ್ನು ನಿರ್ಬಂಧಿಸಿ (ಇದನ್ನು ನಾವು ಶಿಫಾರಸು ಮಾಡುವುದಿಲ್ಲ)</translation>
 <translation id="2687407218262674387">Google ಸೇವಾ ನಿಯಮಗಳು</translation>
+<translation id="2687621393791886981">ನನ್ನನ್ನು ಆನಂತರ ಕೇಳಿ</translation>
 <translation id="2688196195245426394">ಸರ್ವರ್‌ನೊಂದಿಗೆ ಸಾಧನವನ್ನು ನೋಂದಾಯಿಸುವಾಗ ದೋಷ: <ph name="CLIENT_ERROR" />.</translation>
 <translation id="2690024944919328218">ಭಾಷೆ ಆಯ್ಕೆಗಳನ್ನು ತೋರಿಸು</translation>
 <translation id="2691385045260836588">ಮಾದರಿ</translation>
@@ -4182,6 +4183,7 @@
 <translation id="526622169288322445"><ph name="ADDRESS_SUMMARY" /> ಗಾಗಿ ಇನ್ನಷ್ಟು ಕ್ರಿಯೆಗಳು</translation>
 <translation id="5269977353971873915">ಮುದ್ರಣ ವಿಫಲಗೊಂಡಿದೆ</translation>
 <translation id="5275352920323889391">ನಾಯಿ</translation>
+<translation id="527605719918376753">ಟ್ಯಾಬ್ ಮ್ಯೂಟ್ ಮಾಡಿ</translation>
 <translation id="527605982717517565"><ph name="HOST" /> ನಲ್ಲಿ JavaScript ಅನ್ನು ಯಾವಾಗಲೂ ಅನುಮತಿಸಿ</translation>
 <translation id="5277127016695466621">ಪಾರ್ಶ್ವ ಫಲಕವನ್ನು ತೋರಿಸಿ</translation>
 <translation id="5278823018825269962">ಸ್ಥಿತಿಯ ಐಡಿ</translation>
@@ -7217,6 +7219,7 @@
 <translation id="8410775397654368139">Google Play</translation>
 <translation id="8412136526970428322"><ph name="PERMISSION" /> ಮತ್ತು <ph name="COUNT" /> ಕ್ಕೂ ಹೆಚ್ಚಿನವುಗಳನ್ನು ಅನುಮತಿಸಲಾಗಿದೆ</translation>
 <translation id="8413385045638830869">ಮೊದಲು ಕೇಳಿ (ಶಿಫಾರಸು ಮಾಡಲಾಗಿದೆ)</translation>
+<translation id="8414249071344507766">ಎರಡು ದಿನಗಳ ಮಟ್ಟಿಗೆ ನೆನಪುಗಳನ್ನು ಮರೆಮಾಡಲಾಗಿದೆ</translation>
 <translation id="8416730306157376817"><ph name="BATTERY_PERCENTAGE" />% (ಕೇಸ್)</translation>
 <translation id="8417548266957501132">ಪೋಷಕರ ಪಾಸ್‌ವರ್ಡ್</translation>
 <translation id="8418445294933751433">ಟ್ಯಾಬ್‌ನಂತೆ &amp;ತೋರಿಸಿ</translation>
diff --git a/chrome/app/resources/generated_resources_ko.xtb b/chrome/app/resources/generated_resources_ko.xtb
index 66739ac..43328a2 100644
--- a/chrome/app/resources/generated_resources_ko.xtb
+++ b/chrome/app/resources/generated_resources_ko.xtb
@@ -77,7 +77,7 @@
     <ph name="BEGIN_PARAGRAPH2" />자녀의 ChromeOS 기기 설정에서 언제든 보고서 전송을 허용하거나 중지할 수 있습니다. 도메인 관리자는 관리 콘솔에서 이 설정을 변경할 수 있습니다.<ph name="END_PARAGRAPH2" />
     <ph name="BEGIN_PARAGRAPH3" />기능을 사용 중지해도 이 기기에서 시스템 업데이트 및 보안과 같은 필수 서비스에 필요한 정보를 전송하는 기능에는 영향을 미치지 않습니다.<ph name="END_PARAGRAPH3" />
     <ph name="BEGIN_PARAGRAPH4" />자녀의 Google 계정에 웹 및 앱 활동이 사용 설정되어 있다면 관련 데이터가 자녀의 Google 계정에 저장될 수 있습니다. families.google.com에서 이러한 설정과 설정을 조정하는 방법을 자세히 알아보세요.<ph name="END_PARAGRAPH4" />
-    <ph name="BEGIN_PARAGRAPH4" />기기 소유자가 '사용 및 진단 데이터 보내기'를 켜면 비정상 종료 보고서도 Google에 업로드될 수 있습니다.<ph name="END_PARAGRAPH3" /></translation>
+    <ph name="BEGIN_PARAGRAPH4" />기기 소유자가 "사용 및 진단 데이터 보내기"를 켜면 비정상 종료 보고서도 Google에 업로드될 수 있습니다.<ph name="END_PARAGRAPH3" /></translation>
 <translation id="1076176485976385390">텍스트 커서로 페이지 탐색</translation>
 <translation id="1076698951459398590">테마 사용</translation>
 <translation id="1076766328672150609">자녀가 PIN을 사용해 기기를 잠금 해제할 수 있습니다</translation>
@@ -1362,7 +1362,7 @@
 <translation id="2330878972945412956"><ph name="BEGIN_PARAGRAPH1" />ChromeOS 기기에서 자동 보고서를 전송하도록 허용하면 Google이 ChromeOS에서 해결할 문제와 개선할 기능의 우선순위를 정하는 데 도움이 됩니다. 자동 보고서에는 사용하는 기능, 일반적인 메모리 사용량, Android 앱 진단 및 사용 데이터, 오류 등이 포함될 수 있습니다. 일부 합산 데이터는 Google 앱과 파트너(Android 개발자 등)에게도 도움이 됩니다.<ph name="END_PARAGRAPH1" />
     <ph name="BEGIN_PARAGRAPH2" />언제든지 ChromeOS 기기 설정에서 보고서 전송을 허용하거나 중지할 수 있습니다. 도메인 관리자는 관리 콘솔에서 이 설정을 변경할 수 있습니다.<ph name="END_PARAGRAPH2" />
     <ph name="BEGIN_PARAGRAPH3" />Google 계정에 이미 웹 및 앱 활동이 사용 설정되어 있다면 Android 데이터가 Google 계정에 저장될 수 있습니다. account.google.com에서 내 데이터를 보고 삭제하거나 계정 설정을 변경할 수 있습니다.<ph name="END_PARAGRAPH3" />
-    <ph name="BEGIN_PARAGRAPH4" />기기 소유자가 '사용 및 진단 데이터 보내기'를 켜면 비정상 종료 보고서도 Google에 업로드될 수 있습니다.<ph name="END_PARAGRAPH3" /></translation>
+    <ph name="BEGIN_PARAGRAPH4" />기기 소유자가 "사용 및 진단 데이터 보내기"를 켜면 비정상 종료 보고서도 Google에 업로드될 수 있습니다.<ph name="END_PARAGRAPH3" /></translation>
 <translation id="2332131598580221120">스토어에서 보기</translation>
 <translation id="2332192922827071008">환경설정 열기</translation>
 <translation id="2332515770639153015">향상된 세이프 브라우징 사용 설정됨</translation>
@@ -2651,7 +2651,7 @@
 <translation id="3653411319514369774"><ph name="BEGIN_PARAGRAPH1" />ChromeOS 기기에서 자동 보고서를 전송하도록 허용하면 Google이 ChromeOS에서 해결할 문제와 개선할 기능의 우선순위를 정하는 데 도움이 됩니다. 보고서에는 언제 어떤 기능이 사용되었는지, 일반적인 메모리 사용량은 얼마나 되는지 등의 정보가 포함될 수 있습니다.<ph name="END_PARAGRAPH1" />
     <ph name="BEGIN_PARAGRAPH2" />자녀의 ChromeOS 기기 설정에서 언제든 보고서 전송을 허용하거나 중지할 수 있습니다. 도메인 관리자는 관리 콘솔에서 이 설정을 변경할 수 있습니다.<ph name="END_PARAGRAPH2" />
     <ph name="BEGIN_PARAGRAPH3" />기능을 사용 중지해도 이 기기에서 시스템 업데이트 및 보안과 같은 필수 서비스에 필요한 정보를 전송하는 기능에는 영향을 미치지 않습니다.<ph name="END_PARAGRAPH3" />
-    <ph name="BEGIN_PARAGRAPH4" />기기 소유자가 '사용 및 진단 데이터 보내기'를 켜면 비정상 종료 보고서도 Google에 업로드될 수 있습니다.<ph name="END_PARAGRAPH3" /></translation>
+    <ph name="BEGIN_PARAGRAPH4" />기기 소유자가 "사용 및 진단 데이터 보내기"를 켜면 비정상 종료 보고서도 Google에 업로드될 수 있습니다.<ph name="END_PARAGRAPH3" /></translation>
 <translation id="3653999333232393305"><ph name="HOST" />에서 마이크에 액세스하도록 계속 허용</translation>
 <translation id="3654045516529121250">접근성 설정 확인</translation>
 <translation id="3655712721956801464">{NUM_FILES,plural, =1{파일 1개에 영구적으로 액세스할 수 있습니다.}other{파일 #개에 영구적으로 액세스할 수 있습니다.}}</translation>
@@ -4181,6 +4181,7 @@
 <translation id="526622169288322445"><ph name="ADDRESS_SUMMARY" />의 작업 메뉴 더보기</translation>
 <translation id="5269977353971873915">인쇄 실패</translation>
 <translation id="5275352920323889391">개</translation>
+<translation id="527605719918376753">탭 음소거</translation>
 <translation id="527605982717517565"><ph name="HOST" />에서 자바스크립트 항상 허용</translation>
 <translation id="5277127016695466621">측면 패널 표시</translation>
 <translation id="5278823018825269962">상태 ID</translation>
@@ -5238,7 +5239,7 @@
 <translation id="6385599849914981574"><ph name="BEGIN_PARAGRAPH1" />ChromeOS 기기에서 자동 보고서를 전송하도록 허용하면 Google이 ChromeOS에서 해결할 문제와 개선할 기능의 우선순위를 정하는 데 도움이 됩니다. 보고서에는 사용한 기능, 일반적인 메모리 사용량 등의 정보가 포함될 수 있습니다.<ph name="END_PARAGRAPH1" />
     <ph name="BEGIN_PARAGRAPH2" />언제든지 Chrome 기기 설정에서 이 보고서의 전송을 허용하거나 중지할 수 있습니다. 도메인 관리자는 관리 콘솔에서 이 설정을 변경할 수 있습니다.<ph name="END_PARAGRAPH2" />
     <ph name="BEGIN_PARAGRAPH3" />이 기능을 사용 중지해도 기기에서 시스템 업데이트 및 보안과 같은 필수 서비스에 필요한 정보를 전송하는 기능에는 영향을 미치지 않습니다.<ph name="END_PARAGRAPH3" />
-    <ph name="BEGIN_PARAGRAPH4" />기기 소유자가 '사용 및 진단 데이터 보내기'를 켜면 비정상 종료 보고서도 Google에 업로드될 수 있습니다.<ph name="END_PARAGRAPH3" /></translation>
+    <ph name="BEGIN_PARAGRAPH4" />기기 소유자가 "사용 및 진단 데이터 보내기"를 켜면 비정상 종료 보고서도 Google에 업로드될 수 있습니다.<ph name="END_PARAGRAPH3" /></translation>
 <translation id="6385994920693662133">경고 - 자세한 로깅이 사용 설정되었으며 아래의 로그에 URL 또는 기타 민감한 정보가 포함될 수 있습니다. 정보를 제출해도 되는지 검토하고 확인하시기 바랍니다.</translation>
 <translation id="6387674443318562538">수직 분할</translation>
 <translation id="6388429472088318283">언어 검색</translation>
diff --git a/chrome/app/resources/generated_resources_ky.xtb b/chrome/app/resources/generated_resources_ky.xtb
index 5337c5a..2280b39 100644
--- a/chrome/app/resources/generated_resources_ky.xtb
+++ b/chrome/app/resources/generated_resources_ky.xtb
@@ -2127,7 +2127,7 @@
 <translation id="3088052000289932193">Сайт MIDI'ни колдонууда</translation>
 <translation id="3088128611727407543">Колдонмонун профили даярдалууда...</translation>
 <translation id="3088325635286126843">&amp;Аталышын өзгөртүү…</translation>
-<translation id="3089137131053189723">Издөө таржымалы тазаланды</translation>
+<translation id="3089137131053189723">Изделген нерселер өчүрүлдү</translation>
 <translation id="3090589793601454425">Өткөрүлбөсүн</translation>
 <translation id="3090819949319990166">Тышкы crx файлы <ph name="TEMP_CRX_FILE" /> ичине көчүрүлбөй жатат.</translation>
 <translation id="3090871774332213558">"<ph name="DEVICE_NAME" />" жупташты</translation>
@@ -4190,6 +4190,7 @@
 <translation id="526622169288322445"><ph name="ADDRESS_SUMMARY" /> боюнча башка аракеттер</translation>
 <translation id="5269977353971873915">Басылып чыкпай калды</translation>
 <translation id="5275352920323889391">Ит</translation>
+<translation id="527605719918376753">Өтмөктүн үнүн басуу</translation>
 <translation id="527605982717517565"><ph name="HOST" /> ичинде JavaScript'ке ар дайым уруксат берилсин</translation>
 <translation id="5277127016695466621">Капталдагы тилкени көрсөтүү</translation>
 <translation id="5278823018825269962">Абалынын идентификатору</translation>
diff --git a/chrome/app/resources/generated_resources_lo.xtb b/chrome/app/resources/generated_resources_lo.xtb
index 92a0e04..6611867 100644
--- a/chrome/app/resources/generated_resources_lo.xtb
+++ b/chrome/app/resources/generated_resources_lo.xtb
@@ -4187,6 +4187,7 @@
 <translation id="526622169288322445">ຄຳສັ່ງເພີ່ມເຕີມສຳລັບ <ph name="ADDRESS_SUMMARY" /></translation>
 <translation id="5269977353971873915">ພິມບໍ່ສໍາເລັດ</translation>
 <translation id="5275352920323889391">ໝາ</translation>
+<translation id="527605719918376753">ປິດສຽງແຖບ</translation>
 <translation id="527605982717517565">ອະ​ນຸ​ຍາດ​ JavaScript ຢູ່ເທິງ <ph name="HOST" /> ຢູ່ສະເໝີ</translation>
 <translation id="5277127016695466621">ສະແດງແຜງຄວບຄຸມດ້ານຂ້າງ</translation>
 <translation id="5278823018825269962">ID ສະຖານະ</translation>
diff --git a/chrome/app/resources/generated_resources_lt.xtb b/chrome/app/resources/generated_resources_lt.xtb
index 05de08c3..ef65155 100644
--- a/chrome/app/resources/generated_resources_lt.xtb
+++ b/chrome/app/resources/generated_resources_lt.xtb
@@ -1037,6 +1037,7 @@
 <translation id="2022395138980869975">Perjungti šoninę paiešką</translation>
 <translation id="2023167225947895179">PIN kodas gali būti lengvai atspėjamas</translation>
 <translation id="202352106777823113">Atsisiuntimas truko per ilgai ir buvo sustabdytas tinklo.</translation>
+<translation id="2024195579772565064">Paieškos variklio ištrynimas</translation>
 <translation id="2025632980034333559">„<ph name="APP_NAME" />“ užstrigo. Jei norite iš naujo įkelti plėtinį, spustelėkite šį debesėlį.</translation>
 <translation id="2028449514182362831">Funkcijos, kurioms reikalingi judesio jutikliai, neveiks</translation>
 <translation id="202918510990975568">Įveskite slaptažodį ir konfigūruokite saugos bei prisijungimo nustatymus</translation>
@@ -1178,6 +1179,7 @@
 <translation id="2159488579268505102">USB-C</translation>
 <translation id="216169395504480358">Pridėti „Wi-Fi“...</translation>
 <translation id="2162155940152307086">Sinchronizavimas bus pradėtas, kai išeisite iš sinchronizavimo nustatymų</translation>
+<translation id="2162926944953615670">Nėra pasiekiamų „eSIM“ kortelės profilių</translation>
 <translation id="2163470535490402084">Prisijunkite prie interneto, kad galėtumėte prisijungti prie „<ph name="DEVICE_TYPE" />“.</translation>
 <translation id="2163937499206714165">Įjungti tamsų režimą</translation>
 <translation id="2164131635608782358"><ph name="FIRST_SWITCH" />, <ph name="SECOND_SWITCH" />, <ph name="THIRD_SWITCH" /> ir dar vienas jungiklis</translation>
@@ -1873,6 +1875,7 @@
 <translation id="2828650939514476812">Prisijungti prie „Wi-Fi“ tinklo</translation>
 <translation id="2831430281393059038">Įrenginys palaikomas</translation>
 <translation id="2832124733806557606">Vaikas gali prisijungti prie įrenginio arba jį atrakinti PIN kodu.</translation>
+<translation id="2835177225987815960">Dabartinė nuskaitymo sąranka bus nustatyta iš naujo, įskaitant visus priskirtus jungiklius ir automatinio nuskaitymo spartos nuostatas.</translation>
 <translation id="2835547721736623118">Kalbos atpažinimo paslauga</translation>
 <translation id="2836269494620652131">Strigtis</translation>
 <translation id="2836635946302913370">Prisijungimas šiuo naudotojo vardu neleidžiamas administratoriaus.</translation>
@@ -3518,6 +3521,7 @@
 <translation id="4547659257713117923">Nėra skirtukų iš kitų įrenginių</translation>
 <translation id="4547672827276975204">Nustatyti automatiškai</translation>
 <translation id="4549791035683739768">Saugos rakte nėra išsaugota kontrolinių kodų</translation>
+<translation id="4550926046134589611">Kai kurios palaikomos nuorodos vis tiek bus atidarytos „<ph name="APP_NAME" />“.</translation>
 <translation id="4551763574344810652">Paspauskite „<ph name="MODIFIER_KEY_DESCRIPTION" />“, kad anuliuotumėte</translation>
 <translation id="4553526521109675518">Turite iš naujo paleisti „Chromebook“, kad pakeistumėte įrenginio kalbą. <ph name="BEGIN_LINK_LEARN_MORE" />Sužinokite daugiau<ph name="END_LINK_LEARN_MORE" /></translation>
 <translation id="4554491709904933912">Paieška velkant vaizdus naudojant „<ph name="VISUAL_SEARCH_PROVIDER" />“</translation>
@@ -3806,6 +3810,7 @@
 <translation id="48704129375571883">Pridėti papildomų funkcijų</translation>
 <translation id="4870758487381879312">Kad gautumėte konfigūravimo informacijos, įveskite administratoriaus suteiktą slaptažodį</translation>
 <translation id="4870903493621965035">Nėra jokių susietų įrenginių</translation>
+<translation id="4870995365819149457">Kai kurios palaikomos nuorodos vis tiek bus atidarytos „<ph name="APP_NAME" />“, „<ph name="APP_NAME_2" />“, „<ph name="APP_NAME_3" />“ ir dar vienoje programoje.</translation>
 <translation id="4871308555310586478">Ne iš „Chrome“ internetinės parduotuvės.</translation>
 <translation id="4871322859485617074">PIN kodą sudaro netinkami simboliai</translation>
 <translation id="4871370605780490696">Žymės pridėjimas</translation>
@@ -4182,6 +4187,7 @@
 <translation id="526622169288322445">Daugiau veiksmų (<ph name="ADDRESS_SUMMARY" />)</translation>
 <translation id="5269977353971873915">Spausdinant įvyko klaida</translation>
 <translation id="5275352920323889391">Šuo</translation>
+<translation id="527605719918376753">Nutildyti skirtuko garsą</translation>
 <translation id="527605982717517565">Visada leisti „JavaScript“ <ph name="HOST" /></translation>
 <translation id="5277127016695466621">Rodyti šoninį skydelį</translation>
 <translation id="5278823018825269962">Būsenos ID</translation>
@@ -4842,6 +4848,7 @@
 <translation id="5969728632630673489">Sparčiųjų klavišų pranešimo atsisakyta</translation>
 <translation id="5971037678316050792">Valdyti „Bluetooth“ adapterio būseną ir susiejimą</translation>
 <translation id="597235323114979258">Žr. daugiau paskirties vietų</translation>
+<translation id="5972543790327947908">Kai kurios palaikomos nuorodos vis tiek bus atidarytos „<ph name="APP_NAME" />“, „<ph name="APP_NAME_2" />“ arba „<ph name="APP_NAME_3" />“.</translation>
 <translation id="5972666587303800813">Neveikianti paslauga</translation>
 <translation id="5972708806901999743">Perkelti į viršų</translation>
 <translation id="5972826969634861500">Paleisti „<ph name="PRODUCT_NAME" />“</translation>
@@ -5212,6 +5219,7 @@
 <translation id="6355789186038748882">Eksperimentinė (alfa versijos kokybės) naršyklė! Kai kurių funkcijų nėra arba jos neužbaigtos. Praneškite, jei kils problemų, skiltyje „Pagalba“ &gt; „Pranešti apie problemą...“</translation>
 <translation id="635609604405270300">Neišjunkite įrenginio</translation>
 <translation id="63566973648609420">Tik jūsų slaptafrazę žinantis asmuo gali skaityti šifruotus duomenis. Slaptafrazė nesiunčiama į sistemą „Google“ ir joje nesaugoma. Pamiršę slaptafrazę arba norėdami pakeisti šį nustatymą turėsite <ph name="BEGIN_LINK" />iš naujo nustatyti sinchronizavimą<ph name="END_LINK" />.</translation>
+<translation id="6357305427698525450">Kai kurios palaikomos nuorodos vis tiek bus atidarytos „<ph name="APP_NAME" />“ arba „<ph name="APP_NAME_2" />“.</translation>
 <translation id="6358884629796491903">Drakonas</translation>
 <translation id="6359706544163531585">Išjungti šviesiąją temą</translation>
 <translation id="6361850914223837199">Išsami klaidos informacija:</translation>
@@ -5730,6 +5738,7 @@
 <translation id="6900284862687837908">Foninė programa: <ph name="BACKGROUND_APP_URL" /></translation>
 <translation id="6900532703269623216">Sustiprinta apsauga</translation>
 <translation id="6900651018461749106">Prisijunkite dar kartą, kad atnaujintumėte <ph name="USER_EMAIL" /></translation>
+<translation id="6900654715912436255">Ar tikrai norite ištrinti šį paieškos variklį?</translation>
 <translation id="6902066522699286937">Balsas, kurio galite paklausyti</translation>
 <translation id="6902336033320348843">Skiltis nepalaikoma: <ph name="ERROR_LINE" /></translation>
 <translation id="6902837902700739466">Prijunkite įrenginį prie domeno</translation>
@@ -6001,6 +6010,7 @@
 <translation id="7189234443051076392">Įsitikinkite, kad įrenginyje yra pakankamai vietos</translation>
 <translation id="7189451821249468368">Neturite pakankamai licencijų naujovinimų, kad galėtumėte užregistruoti šį įrenginį. Susisiekite su pardavimo atstovu, kad įsigytumėte daugiau. Jei manote, kad šį pranešimą gavote per klaidą, susisiekite su palaikymo komanda.</translation>
 <translation id="7189965711416741966">Piršto antspaudas pridėtas.</translation>
+<translation id="7191063546666816478">Kai kurios palaikomos nuorodos vis tiek bus atidarytos „<ph name="APP_NAME" />“, „<ph name="APP_NAME_2" />“, „<ph name="APP_NAME_3" />“ ir dar tiek programų: <ph name="NUMBER_OF_OTHER_APPS" />.</translation>
 <translation id="7191159667348037">Nežinomas spausdintuvas (USB)</translation>
 <translation id="7193051357671784796">Šią programą pridėjo jūsų organizacija. Paleiskite programą iš naujo, kad baigtumėte ją diegti.</translation>
 <translation id="7193374945610105795">Nėra išsaugotų <ph name="ORIGIN" /> slaptažodžių</translation>
diff --git a/chrome/app/resources/generated_resources_lv.xtb b/chrome/app/resources/generated_resources_lv.xtb
index c7a7db0..cd4050b 100644
--- a/chrome/app/resources/generated_resources_lv.xtb
+++ b/chrome/app/resources/generated_resources_lv.xtb
@@ -1024,6 +1024,7 @@
 <translation id="2022395138980869975">Pārslēgt sānu meklēšanas joslu</translation>
 <translation id="2023167225947895179">PIN var viegli uzminēt.</translation>
 <translation id="202352106777823113">Lejupielāde tika veikta pārāk ilgi, un to apturēja tīkls.</translation>
+<translation id="2024195579772565064">Dzēst meklētājprogrammu</translation>
 <translation id="2025632980034333559"><ph name="APP_NAME" /> nobruka. Noklikšķiniet uz šī balona, lai atkārtoti ielādētu paplašinājumu.</translation>
 <translation id="2028449514182362831">Funkcijas, kurām nepieciešama piekļuve kustību sensoriem, nedarbosies</translation>
 <translation id="202918510990975568">Ievadiet paroli, lai konfigurētu drošību un pierakstīšanos.</translation>
@@ -1165,6 +1166,7 @@
 <translation id="2159488579268505102">USB-C</translation>
 <translation id="216169395504480358">Pievienot Wi-Fi...</translation>
 <translation id="2162155940152307086">Sinhronizācija tiks sākta, tiklīdz aizvērsiet sinhronizācijas iestatījumus.</translation>
+<translation id="2162926944953615670">Nav pieejamu eSIM profilu</translation>
 <translation id="2163470535490402084">Lai pierakstītos savā <ph name="DEVICE_TYPE" /> ierīcē, lūdzu, izveidojiet savienojumu ar internetu.</translation>
 <translation id="2163937499206714165">Ieslēgt tumšo režīmu</translation>
 <translation id="2164131635608782358"><ph name="FIRST_SWITCH" />, <ph name="SECOND_SWITCH" />, <ph name="THIRD_SWITCH" /> un vēl 1 slēdža taustiņš</translation>
@@ -1857,6 +1859,7 @@
 <translation id="2828650939514476812">Izveidojiet savienojumu ar Wi-Fi tīklu</translation>
 <translation id="2831430281393059038">Ierīce tiek atbalstīta</translation>
 <translation id="2832124733806557606">Jūsu bērns var izmantot PIN, lai pierakstītos ierīcē vai to atbloķētu.</translation>
+<translation id="2835177225987815960">Tiks atiestatīti pašreizējie pārlūkošanas iestatījumi, tostarp piešķirtie slēdži un automātiskās pārlūkošanas ātruma preferences.</translation>
 <translation id="2835547721736623118">Runas atpazīšanas pakalpojums</translation>
 <translation id="2836269494620652131">Avārija</translation>
 <translation id="2836635946302913370">Administrators ir atspējojis iespēju pierakstīties, izmantojot šo lietotājvārdu.</translation>
@@ -3501,6 +3504,7 @@
 <translation id="4547659257713117923">Nav ciļņu no citām ierīcēm</translation>
 <translation id="4547672827276975204">Iestatīt automātiski</translation>
 <translation id="4549791035683739768">Jūsu drošības atslēgā nav saglabātu pirkstu nospiedumu</translation>
+<translation id="4550926046134589611">Dažas atbalstītas saites joprojām tiks atvērtas lietotnē <ph name="APP_NAME" />.</translation>
 <translation id="4551763574344810652">Lai atsauktu, nospiediet <ph name="MODIFIER_KEY_DESCRIPTION" /></translation>
 <translation id="4553526521109675518">Lai mainītu ierīces valodu, jums ir jārestartē Chromebook dators. <ph name="BEGIN_LINK_LEARN_MORE" />Uzzināt vairāk<ph name="END_LINK_LEARN_MORE" /></translation>
 <translation id="4554491709904933912">Vilkt kursoru pār attēliem, lai meklēšanai izmantotu <ph name="VISUAL_SEARCH_PROVIDER" /></translation>
@@ -3789,6 +3793,7 @@
 <translation id="48704129375571883">Pievienot papildu funkcijas</translation>
 <translation id="4870758487381879312">Ievadiet administratora piešķirto paroli, lai iegūtu konfigurācijas informāciju</translation>
 <translation id="4870903493621965035">Nav pārī savienotu ierīču</translation>
+<translation id="4870995365819149457">Dažas atbalstītas saites joprojām tiks atvērtas lietotnē <ph name="APP_NAME" />, <ph name="APP_NAME_2" />, <ph name="APP_NAME_3" /> un vienā citā lietotnē.</translation>
 <translation id="4871308555310586478">Nav iegūts no Chrome interneta veikala.</translation>
 <translation id="4871322859485617074">PIN satur nederīgas rakstzīmes</translation>
 <translation id="4871370605780490696">Pievienot grāmatzīmi</translation>
@@ -4165,6 +4170,7 @@
 <translation id="526622169288322445"><ph name="ADDRESS_SUMMARY" />: citas darbības</translation>
 <translation id="5269977353971873915">Drukāšana neizdevās</translation>
 <translation id="5275352920323889391">Suns</translation>
+<translation id="527605719918376753">Izslēgt cilnes skaņu</translation>
 <translation id="527605982717517565">Vienmēr atļaut izmantot JavaScript vietnē <ph name="HOST" /></translation>
 <translation id="5277127016695466621">Rādīt sānu paneli</translation>
 <translation id="5278823018825269962">Statusa ID</translation>
@@ -4824,6 +4830,7 @@
 <translation id="5969728632630673489">Paziņojums par īsinājumtaustiņiem ir noraidīts.</translation>
 <translation id="5971037678316050792">Kontrolēt Bluetooth adaptera statusu un savienošanu pārī</translation>
 <translation id="597235323114979258">Skatīt citus galamērķus</translation>
+<translation id="5972543790327947908">Dažas atbalstītas saites joprojām tiks atvērtas lietotnē <ph name="APP_NAME" />, <ph name="APP_NAME_2" /> vai <ph name="APP_NAME_3" />.</translation>
 <translation id="5972666587303800813">Pakalpojums, kas nedarbojas</translation>
 <translation id="5972708806901999743">Pārvietot uz augšu</translation>
 <translation id="5972826969634861500">Sākt <ph name="PRODUCT_NAME" /></translation>
@@ -5194,6 +5201,7 @@
 <translation id="6355789186038748882">Šis ir eksperimentāls (alfa kvalitātes) pārlūks! Dažu funkciju nav vai tās nav pabeigtas. Ziņojiet par problēmām šeit: Palīdzība &gt; Ziņot par problēmu…</translation>
 <translation id="635609604405270300">Neizslēdziet ierīci</translation>
 <translation id="63566973648609420">Jūsu šifrētos datus var lasīt tikai personas, kurām ir zināma jūsu ieejas frāze. Ieejas frāze netiek sūtīta Google serveriem un netiek tajos glabāta. Ja aizmirsīsiet ieejas frāzi vai vēlēsieties mainīt šo iestatījumu, jums būs <ph name="BEGIN_LINK" />jāatiestata sinhronizācija<ph name="END_LINK" />.</translation>
+<translation id="6357305427698525450">Dažas atbalstītas saites joprojām tiks atvērtas lietotnē <ph name="APP_NAME" /> vai <ph name="APP_NAME_2" />.</translation>
 <translation id="6358884629796491903">Pūķis</translation>
 <translation id="6359706544163531585">Atspējot gaišo motīvu</translation>
 <translation id="6361850914223837199">Sīkāka informācija par kļūdu:</translation>
@@ -5712,6 +5720,7 @@
 <translation id="6900284862687837908">Fona lietotne: <ph name="BACKGROUND_APP_URL" /></translation>
 <translation id="6900532703269623216">Uzlabota aizsardzība</translation>
 <translation id="6900651018461749106">Lai atjauninātu <ph name="USER_EMAIL" />, pierakstieties atkārtoti</translation>
+<translation id="6900654715912436255">Vai tiešām vēlaties dzēst šo meklētājprogrammu?</translation>
 <translation id="6902066522699286937">Balss priekšskatīšanai</translation>
 <translation id="6902336033320348843">Sadaļa netiek atbalstīta: <ph name="ERROR_LINE" /></translation>
 <translation id="6902837902700739466">Saistiet ierīci ar domēnu</translation>
@@ -5983,6 +5992,7 @@
 <translation id="7189234443051076392">Ierīcē ir jābūt pietiekami daudz vietas.</translation>
 <translation id="7189451821249468368">Jums nav pietiekami daudz jauninātu licenču, lai reģistrētu šo ierīci. Lūdzu, sazinieties ar tirdzniecības nodaļu, lai iegādātos vairāk licenču. Ja uzskatāt, ka šis ziņojums tiek rādīts kļūdas dēļ, lūdzu, sazinieties ar atbalsta dienestu.</translation>
 <translation id="7189965711416741966">Pirksta nospiedums tika pievienots.</translation>
+<translation id="7191063546666816478">Dažas atbalstītas saites joprojām tiks atvērtas lietotnē <ph name="APP_NAME" />, <ph name="APP_NAME_2" />, <ph name="APP_NAME_3" /> un citās lietotnēs (vēl <ph name="NUMBER_OF_OTHER_APPS" />).</translation>
 <translation id="7191159667348037">Nezināms printeris (USB)</translation>
 <translation id="7193051357671784796">Šo lietotni pievienoja jūsu organizācija. Lai pabeigtu instalēšanu, restartējiet lietotni.</translation>
 <translation id="7193374945610105795">Vietnei <ph name="ORIGIN" /> nav saglabāta neviena parole</translation>
diff --git a/chrome/app/resources/generated_resources_mk.xtb b/chrome/app/resources/generated_resources_mk.xtb
index e6faefce..8a93cba 100644
--- a/chrome/app/resources/generated_resources_mk.xtb
+++ b/chrome/app/resources/generated_resources_mk.xtb
@@ -1709,6 +1709,7 @@
 <translation id="2684004000387153598">За да продолжите, кликнете „Во ред“, а потоа кликнете „Додај лице“ за да создадете нов профил за адресата на е-пошта.</translation>
 <translation id="2687403674020088961">Блокирај ги сите колачиња (не се препорачува)</translation>
 <translation id="2687407218262674387">Услови за користење на Google</translation>
+<translation id="2687621393791886981">Прашај ме подоцна</translation>
 <translation id="2688196195245426394">Грешка при регистрирање на уредот на серверот: <ph name="CLIENT_ERROR" />.</translation>
 <translation id="2690024944919328218">Покажи ги опциите за јазик</translation>
 <translation id="2691385045260836588">Модел</translation>
@@ -4190,6 +4191,7 @@
 <translation id="526622169288322445">Повеќе дејства за <ph name="ADDRESS_SUMMARY" /></translation>
 <translation id="5269977353971873915">Печатењето не успеа</translation>
 <translation id="5275352920323889391">Куче</translation>
+<translation id="527605719918376753">Исклучи звук на картичка</translation>
 <translation id="527605982717517565">Секогаш дозволи JavaScript на <ph name="HOST" /></translation>
 <translation id="5277127016695466621">Прикажи ја страничната табла</translation>
 <translation id="5278823018825269962">ID на статусот</translation>
@@ -7229,6 +7231,7 @@
 <translation id="8410775397654368139">Google Play</translation>
 <translation id="8412136526970428322">Дозволени: <ph name="PERMISSION" /> и уште <ph name="COUNT" /></translation>
 <translation id="8413385045638830869">Прашај прво (препорачано)</translation>
+<translation id="8414249071344507766">Спомените ќе бидат сокриени два дена</translation>
 <translation id="8416730306157376817"><ph name="BATTERY_PERCENTAGE" /> % (футрола за полнење)</translation>
 <translation id="8417548266957501132">Лозинка на родител</translation>
 <translation id="8418445294933751433">&amp;Прикажи како картичка</translation>
diff --git a/chrome/app/resources/generated_resources_ml.xtb b/chrome/app/resources/generated_resources_ml.xtb
index c47b03a..8d4eee8 100644
--- a/chrome/app/resources/generated_resources_ml.xtb
+++ b/chrome/app/resources/generated_resources_ml.xtb
@@ -297,6 +297,7 @@
 <translation id="1293264513303784526">USB-C ഉപകരണം (ഇടത് പോർട്ട്)</translation>
 <translation id="1293556467332435079">Files</translation>
 <translation id="1294807885394205587">ഈ പ്രക്രിയയ്ക്ക് കുറച്ച് സമയമെടുത്തേക്കാം. കണ്ടെയ്‌നർ മാനേജർ ആരംഭിക്കുന്നു.</translation>
+<translation id="1296046226918222533">എന്തോ കുഴപ്പമുണ്ടായതിനാൽ Linux അപ്ഗ്രേഡ് ചെയ്യാനായില്ല. പരാജയപ്പെട്ടതിനെ കുറിച്ചുള്ള കൂടുതൽ വിവരങ്ങൾ 'ലോഗുകളിൽ' കണ്ടെത്താനാകും. <ph name="LOG_FILE" /> എന്നതിൽ ലോഗുകൾ സംരക്ഷിച്ചിരിക്കുന്നു</translation>
 <translation id="1296911687402551044">തിരഞ്ഞെടുത്ത ടാബ് പിൻ ചെയ്യുക</translation>
 <translation id="1297175357211070620">ഉദ്ദിഷ്ടസ്ഥാനം</translation>
 <translation id="129770436432446029"><ph name="EXPERIMENT_NAME" /> എന്നതിനെക്കുറിച്ചുള്ള ഫീഡ്ബാക്ക് അയയ്ക്കുക</translation>
@@ -508,6 +509,7 @@
 <translation id="1521442365706402292">സര്‍ട്ടിഫിക്കറ്റുകള്‍ മാനേജ് ചെയ്യുക</translation>
 <translation id="1521774566618522728">ഇന്ന് സജീവമായിരുന്നു</translation>
 <translation id="152234381334907219">ഒരിക്കലും സംരക്ഷിച്ചില്ല</translation>
+<translation id="1523279371236772909">കഴിഞ്ഞ മാസം കണ്ടു</translation>
 <translation id="1523978563989812243">ടെക്‌സ്റ്റ് ടു സ്‌പീച്ച് എഞ്ചിനുകൾ</translation>
 <translation id="1524430321211440688">കീബോർഡ്</translation>
 <translation id="1524563461097350801">വേണ്ട</translation>
@@ -1241,6 +1243,7 @@
 <translation id="2232876851878324699">ഫയലില്‍ ഒരു സർട്ടിഫിക്കറ്റ് ഉണ്ടായിരുന്നു, അത് ഇമ്പോർട്ട് ചെയ്തിട്ടില്ല:</translation>
 <translation id="2233502537820838181">&amp;കൂടുതൽ വിവരങ്ങൾ</translation>
 <translation id="223356358902285214">വെബ്, ആപ്പ് ആക്റ്റിവിറ്റി</translation>
+<translation id="2234827758954819389">സ്വകാര്യതാ ഗൈഡ്</translation>
 <translation id="2234876718134438132">സമന്വയവും Google സേവനങ്ങളും</translation>
 <translation id="2235344399760031203">മൂന്നാം കക്ഷി കുക്കികൾ ബ്ലോക്ക് ചെയ്‍തു</translation>
 <translation id="2238379619048995541">ആവൃത്തി നില ഡാറ്റ</translation>
@@ -2787,6 +2790,7 @@
 <translation id="3799128412641261490">സ്വിച്ച് ആക്‌സസ് ക്രമീകരണം</translation>
 <translation id="3800806661949714323">എല്ലാം കാണിക്കുക (ശുപാർശ ചെയ്‌തിരിക്കുന്നു)</translation>
 <translation id="3800828618615365228">Google Chrome, ChromeOS അധിക നിബന്ധനകൾ</translation>
+<translation id="3802486193901166966">ഈ വിപുലീകരണത്തിന് പ്രത്യേക അനുമതികളൊന്നും ആവശ്യമില്ല, അധിക സൈറ്റ് ആക്‌സസുമില്ല</translation>
 <translation id="380329542618494757">പേര്</translation>
 <translation id="3803345858388753269">വീഡിയോ നിലവാരം</translation>
 <translation id="380408572480438692">പ്രകടന ഡാറ്റയുടെ ശേഖരം പ്രവർത്തനക്ഷമമാക്കുന്നത് കാലാന്തരത്തിൽ സിസ്റ്റം മെച്ചപ്പെടുത്താൻ Google-നെ സഹായിക്കും. നിങ്ങൾ ഒരു ഫീഡ്‌ബാക്ക് റിപ്പോർട്ട് ഫയൽ ചെയ്യുന്നതുവരെയും (Alt-Shift-I) പ്രകടന ഡാറ്റ ഉൾപ്പെടുത്തുന്നതുവരെയും ഡാറ്റയൊന്നും അയയ്‌ക്കില്ല. ശേഖരം പ്രവർത്തനരഹിതമാക്കാനായി നിങ്ങൾക്ക് എപ്പോൾ വേണമെങ്കിലും ഈ സ്‌ക്രീനിലേക്ക് തിരിച്ചുവരാനാകും.</translation>
@@ -3094,6 +3098,7 @@
 <translation id="4095264805865317199">Cellular Activation UI തുറക്കുക</translation>
 <translation id="4095507791297118304">പ്രാഥമിക ഡിസ്‌പ്ലേ</translation>
 <translation id="4096508467498758490">ഡെവലപ്പർ മോഡ് വിപുലീകരണങ്ങൾ പ്രവർത്തനരഹിതമാക്കുക</translation>
+<translation id="4096797685681362305">കഴിഞ്ഞ ആഴ്‌ച കണ്ടു</translation>
 <translation id="4097406557126260163">ആപ്പുകളും വിപുലീകരണങ്ങളും</translation>
 <translation id="409742781329613461">Chrome-നുള്ള നുറുങ്ങുകൾ</translation>
 <translation id="4097560579602855702">Google-ൽ തിരയുക</translation>
@@ -3650,6 +3655,7 @@
 <translation id="4699172675775169585">കാഷെ ചെയ്‌ത ചിത്രങ്ങളും ഫയലുകളും</translation>
 <translation id="4699357559218762027">(സ്വയമേവ-സമാരംഭിച്ചു)</translation>
 <translation id="4701025263201366865">രക്ഷിതാവിനുള്ള സൈൻ ഇൻ</translation>
+<translation id="4701335814944566468">ഇന്നലെ കണ്ടു</translation>
 <translation id="4708794300267213770">സുഷുപ്‌തിയിൽ നിന്നുണരുമ്പോൾ ലോക്ക് സ്‌ക്രീൻ കാണിക്കുക</translation>
 <translation id="4708849949179781599"><ph name="PRODUCT_NAME" /> പുറത്തുകടക്കുക</translation>
 <translation id="4711638718396952945">ക്രമീകരണങ്ങൾ പുനഃസ്ഥാപിക്കുക</translation>
@@ -3717,6 +3723,7 @@
 <translation id="479536056609751218">വെബ്‌പേജുകൾ, HTML മാത്രം</translation>
 <translation id="4796142525425001238">എപ്പോഴും പുനഃസ്ഥാപിക്കുക</translation>
 <translation id="4798236378408895261"><ph name="BEGIN_LINK" />Bluetooth ലോഗുകൾ<ph name="END_LINK" /> (Google-ൽ ഉള്ളത് മാത്രം) അറ്റാച്ച് ചെയ്യുക</translation>
+<translation id="479863874072008121">ഉപകരണങ്ങൾ മാനേജ് ചെയ്യുക</translation>
 <translation id="4800839971935185386">പേരുമായും ഐക്കണുമായും ബന്ധപ്പെട്ട അപ്‌ഡേറ്റുകൾ അവലോകനം ചെയ്യുക</translation>
 <translation id="4801448226354548035">അക്കൗണ്ടുകൾ മറയ്‌ക്കുക</translation>
 <translation id="4801512016965057443">മൊബൈല്‍ ഡാറ്റ റോമിംഗ് അനുവദിക്കുക</translation>
@@ -3812,6 +3819,7 @@
 <translation id="4883436287898674711">എല്ലാ <ph name="WEBSITE_1" /> സൈറ്റുകളും</translation>
 <translation id="48838266408104654">&amp;ടാസ്‌ക് മാനേജര്‍</translation>
 <translation id="4884987973312178454">6x</translation>
+<translation id="4885692421645694729">ഈ വിപുലീകരണത്തിന് അധിക സൈറ്റ് ആക്‌സസ് ഇല്ല</translation>
 <translation id="4887424188275796356">സിസ്റ്റം വ്യൂവർ ഉപയോഗിച്ച് തുറക്കുക</translation>
 <translation id="488785315393301722">വിശദാംശങ്ങൾ‌ കാണിക്കുക</translation>
 <translation id="4890773143211625964">വിപുലമായ പ്രിന്റർ ഓപ്‌ഷനുകൾ കാണിക്കുക</translation>
@@ -3986,6 +3994,7 @@
 <translation id="5075910247684008552">സുരക്ഷിതമല്ലാത്ത ഉള്ളടക്കം, സുരക്ഷിത സൈറ്റുകളിൽ ഡിഫോൾട്ടായി ബ്ലോക്ക് ചെയ്തിരിക്കുന്നു</translation>
 <translation id="5078638979202084724">എല്ലാ ടാബുകളും ബുക്ക്‌മാര്‍ക്ക് ചെയ്യുക</translation>
 <translation id="5078796286268621944">തെറ്റായ PIN</translation>
+<translation id="5079010647467150187">ബിൽറ്റ് ഇൻ VPN ചേർക്കുക...</translation>
 <translation id="5079950360618752063">നിർദ്ദേശിച്ച പാസ്‌വേഡ് ഉപയോഗിക്കുക</translation>
 <translation id="508059534790499809">Kerberos ടിക്കറ്റ് റീഫ്രഷ് ചെയ്യുക</translation>
 <translation id="5084230410268011727">ചലന സെൻസറുകളും വെളിച്ച സെൻസറുകളും ഉപയോഗിക്കാൻ സൈറ്റുകളെ അനുവദിക്കുക</translation>
@@ -4167,6 +4176,7 @@
 <translation id="526622169288322445"><ph name="ADDRESS_SUMMARY" /> എന്നയാൾക്കുള്ള കൂടുതൽ പ്രവർത്തനങ്ങൾ</translation>
 <translation id="5269977353971873915">പ്രിന്‍റ് ചെയ്യൽ പരാജയപ്പെട്ടു</translation>
 <translation id="5275352920323889391">നായ</translation>
+<translation id="527605719918376753">ടാബ് മ്യൂട്ട് ചെയ്യുക</translation>
 <translation id="527605982717517565"><ph name="HOST" /> ല്‍‌ എപ്പോഴുംJavaScript അനുവദിക്കുക</translation>
 <translation id="5277127016695466621">സൈഡ് പാനൽ കാണിക്കുക</translation>
 <translation id="5278823018825269962">സ്‌റ്റാറ്റസ് ഐഡി</translation>
@@ -5539,6 +5549,7 @@
 <translation id="6709133671862442373">News</translation>
 <translation id="6709357832553498500"><ph name="EXTENSIONNAME" /> ഉപയോഗിച്ച് കണക്റ്റുചെയ്യുക</translation>
 <translation id="6710213216561001401">മുമ്പത്തേത്</translation>
+<translation id="6710973041022512889">അപ്ഗ്രേഡ് ചെയ്യൽ പൂർത്തിയായി. അപ്ഗ്രേഡിനെ കുറിച്ചുള്ള കൂടുതൽ വിവരങ്ങൾക്ക് <ph name="LOG_FILE" /> എന്നതിൽ ലോഗുകൾ സംരക്ഷിച്ചിരിക്കുന്നു</translation>
 <translation id="6711146141291425900">ഡൗൺലോഡുകൾക്കായി <ph name="WEB_DRIVE" /> അക്കൗണ്ട് ലിങ്ക് ചെയ്യുക</translation>
 <translation id="6712943853047024245">ഈ ഉപയോക്തൃനാമത്തിനുള്ള പാസ്‍വേഡ് നിങ്ങൾ <ph name="WEBSITE" /> എന്നതിനായി മുമ്പേ സംരക്ഷിച്ചിട്ടുണ്ട്</translation>
 <translation id="6713233729292711163">ഔദ്യോഗിക പ്രൊഫൈൽ ചേർക്കുക</translation>
@@ -6446,6 +6457,7 @@
 <translation id="7658239707568436148">റദ്ദാക്കൂ</translation>
 <translation id="7659154729610375585">അദൃശ്യ മോഡിൽ നിന്ന് എന്തായാലും പുറത്തുകടക്കണോ?</translation>
 <translation id="7659297516559011665">ഈ ഉപകരണത്തിലുള്ള പാസ്‌വേഡുകൾ മാത്രം</translation>
+<translation id="7659336857671800422">സ്വകാര്യതാ ഗൈഡ് അവലോകനം ചെയ്യുക</translation>
 <translation id="7659584679870740384">ഈ ഉപകരണം ഉപയോഗിക്കാൻ നിങ്ങൾക്ക് അനുമതിയില്ല. സൈൻ ഇൻ അനുമതിയ്‌ക്കായി അഡ്‌മിനിസ്‌ട്രേറ്ററെ ബന്ധപ്പെടുക.</translation>
 <translation id="7661259717474717992">കുക്കി ഡാറ്റ സംരക്ഷിക്കുന്നതിനും വായിക്കുന്നതിനും സൈറ്റുകളെ അനുവദിക്കുക</translation>
 <translation id="7661451191293163002">ഒരു രജിസ്‌ട്രേഷൻ സർട്ടിഫിക്കറ്റ് ലഭ്യമാക്കാനായില്ല.</translation>
@@ -7967,6 +7979,7 @@
 <translation id="9200339982498053969"><ph name="ORIGIN" /> എന്നതിന് <ph name="FOLDERNAME" /> എന്ന ഫോൾഡറിലെ ഫയലുകൾ എഡിറ്റ് ചെയ്യാനാകും</translation>
 <translation id="920045321358709304"><ph name="SEARCH_ENGINE" /> തിരയുക</translation>
 <translation id="9201023452444595544">എല്ലാ ഓഫ്‍ലൈൻ ഡാറ്റയും മായ്‌ക്കും</translation>
+<translation id="9201117361710210082">മുമ്പ് കണ്ടു</translation>
 <translation id="9201220332032049474">സ്‌ക്രീൻ ലോക്ക് ഓപ്ഷനുകള്‍</translation>
 <translation id="9201842707396338580">എന്തോ കുഴപ്പം സംഭവിച്ചു. നിങ്ങളുടെ ഉപകരണത്തിന്റെ ഉടമയെയോ അഡ്‌മിനെയോ ബന്ധപ്പെടുക. പിശക് കോഡ്: <ph name="ERROR_CODE" />.</translation>
 <translation id="9203398526606335860">&amp;പ്രൊഫൈലിംഗ് പ്രാപ്തമാക്കി</translation>
diff --git a/chrome/app/resources/generated_resources_mn.xtb b/chrome/app/resources/generated_resources_mn.xtb
index a2e811a..edb1099 100644
--- a/chrome/app/resources/generated_resources_mn.xtb
+++ b/chrome/app/resources/generated_resources_mn.xtb
@@ -4184,6 +4184,7 @@
 <translation id="526622169288322445"><ph name="ADDRESS_SUMMARY" />-н бусад үйлдэл</translation>
 <translation id="5269977353971873915">Хэвлэх үйлдэл амжилтгүй болсон байна</translation>
 <translation id="5275352920323889391">Нохой</translation>
+<translation id="527605719918376753">Дууг хаах таб</translation>
 <translation id="527605982717517565"><ph name="HOST" />-д байгаа JavaScript-ийг үргэлж зөвшөөрөх</translation>
 <translation id="5277127016695466621">Хажуугийн самбарыг харуулах</translation>
 <translation id="5278823018825269962">Төлөвийн Id</translation>
diff --git a/chrome/app/resources/generated_resources_mr.xtb b/chrome/app/resources/generated_resources_mr.xtb
index fd4f0bb..154914d9 100644
--- a/chrome/app/resources/generated_resources_mr.xtb
+++ b/chrome/app/resources/generated_resources_mr.xtb
@@ -1707,6 +1707,7 @@
 <translation id="2684004000387153598">पुढे सुरू ठेवण्यासाठी ठीक आहे वर क्लिक करा, नंतर तुम्हाला ईमेल ॲड्रेससाठी नवीन प्रोफाइल तयार करण्याकरता व्यक्तीला जोडावर क्लिक करा.</translation>
 <translation id="2687403674020088961">सर्व कुकी ब्लॉक करा (शिफारस केली जात नाही)</translation>
 <translation id="2687407218262674387">Google सेवा अटी</translation>
+<translation id="2687621393791886981">मला नंतर विचारा</translation>
 <translation id="2688196195245426394">सर्व्हरवर डिव्हाइसची नोंदणी करताना एरर: <ph name="CLIENT_ERROR" />.</translation>
 <translation id="2690024944919328218">भाषा पर्याय दर्शवा</translation>
 <translation id="2691385045260836588">मॉडेल</translation>
@@ -4186,6 +4187,7 @@
 <translation id="526622169288322445"><ph name="ADDRESS_SUMMARY" /> साठी आणखी कृती</translation>
 <translation id="5269977353971873915">प्रिंट अयशस्वी</translation>
 <translation id="5275352920323889391">कुत्रा</translation>
+<translation id="527605719918376753">टॅब म्यूट करा</translation>
 <translation id="527605982717517565"><ph name="HOST" /> वर JavaScript ला नेहमी परवानगी द्या</translation>
 <translation id="5277127016695466621">साइड पॅनल दाखवा</translation>
 <translation id="5278823018825269962">स्थिती आयडी</translation>
@@ -7222,6 +7224,7 @@
 <translation id="8410775397654368139">Google Play</translation>
 <translation id="8412136526970428322">अनुमती असलेले <ph name="PERMISSION" /> आणि आणखी <ph name="COUNT" /></translation>
 <translation id="8413385045638830869">प्रथम विचारा (शिफारस केलेले)</translation>
+<translation id="8414249071344507766">मेमरी दोन दिवसांसाठी लपवल्या गेल्या</translation>
 <translation id="8416730306157376817"><ph name="BATTERY_PERCENTAGE" />% (केस)</translation>
 <translation id="8417548266957501132">पालकाचा पासवर्ड</translation>
 <translation id="8418445294933751433">टॅब म्हणून &amp;दर्शवा</translation>
diff --git a/chrome/app/resources/generated_resources_ms.xtb b/chrome/app/resources/generated_resources_ms.xtb
index c4c1075..f4c24f31 100644
--- a/chrome/app/resources/generated_resources_ms.xtb
+++ b/chrome/app/resources/generated_resources_ms.xtb
@@ -1035,6 +1035,7 @@
 <translation id="2022395138980869975">Togol carian sisi</translation>
 <translation id="2023167225947895179">PIN mungkin mudah untuk diteka</translation>
 <translation id="202352106777823113">Muat turun mengambil masa terlalu lama dan telah diberhentikan oleh rangkaian.</translation>
+<translation id="2024195579772565064">Padamkan enjin carian</translation>
 <translation id="2025632980034333559"><ph name="APP_NAME" /> telah mengalami nahas. Klik belon ini untuk memuatkan semula sambungan.</translation>
 <translation id="2028449514182362831">Ciri yang memerlukan penderia gerakan tidak akan berfungsi</translation>
 <translation id="202918510990975568">Masukkan kata laluan anda untuk mengkonfigurasikan keselamatan dan log masuk</translation>
@@ -1176,6 +1177,7 @@
 <translation id="2159488579268505102">USB-C</translation>
 <translation id="216169395504480358">Tambah Wi-Fi...</translation>
 <translation id="2162155940152307086">Penyegerakan akan bermula selepas anda meninggalkan tetapan penyegerakan</translation>
+<translation id="2162926944953615670">Tiada profil eSIM tersedia</translation>
 <translation id="2163470535490402084">Sila sambung ke Internet untuk melog masuk ke <ph name="DEVICE_TYPE" /> anda.</translation>
 <translation id="2163937499206714165">Hidupkan mod gelap</translation>
 <translation id="2164131635608782358"><ph name="FIRST_SWITCH" />, <ph name="SECOND_SWITCH" />, <ph name="THIRD_SWITCH" /> dan 1 lagi suis</translation>
@@ -1706,6 +1708,7 @@
 <translation id="2684004000387153598">Klik OK untuk meneruskan, kemudian klik Tambah Orang untuk membuat profil baharu untuk alamat e-mel anda.</translation>
 <translation id="2687403674020088961">Sekat semua kuki (tidak disyorkan)</translation>
 <translation id="2687407218262674387">Syarat perkhidmatan Google</translation>
+<translation id="2687621393791886981">Tanya saya kemudian</translation>
 <translation id="2688196195245426394">Ralat semasa mendaftarkan peranti dengan pelayan: <ph name="CLIENT_ERROR" />.</translation>
 <translation id="2690024944919328218">Tunjukkan pilihan bahasa</translation>
 <translation id="2691385045260836588">Model</translation>
@@ -1872,6 +1875,7 @@
 <translation id="2828650939514476812">Sambung ke rangkaian Wi-Fi</translation>
 <translation id="2831430281393059038">Peranti disokong</translation>
 <translation id="2832124733806557606">Anak anda boleh menggunakan PIN untuk log masuk atau membuka kunci peranti.</translation>
+<translation id="2835177225987815960">Persediaan pengimbasan semasa anda akan ditetapkan semula, termasuk sebarang suis yang ditetapkan dan keutamaan kelajuan autoimbas.</translation>
 <translation id="2835547721736623118">Perkhidmatan pengecaman pertuturan</translation>
 <translation id="2836269494620652131">Ranap</translation>
 <translation id="2836635946302913370">Log masuk dengan nama pengguna ini telah dilumpuhkan oleh pentadbir anda.</translation>
@@ -3518,6 +3522,7 @@
 <translation id="4547659257713117923">Tiada Tab daripada Peranti Lain</translation>
 <translation id="4547672827276975204">Tetapkan secara automatik</translation>
 <translation id="4549791035683739768">Kunci keselamatan anda tidak menyimpan cap jari.</translation>
+<translation id="4550926046134589611">Sesetengah pautan yang disokong masih akan dibuka dalam <ph name="APP_NAME" />.</translation>
 <translation id="4551763574344810652">Tekan <ph name="MODIFIER_KEY_DESCRIPTION" /> untuk buat asal</translation>
 <translation id="4553526521109675518">Anda perlu memulakan semula Chromebook anda untuk menukar bahasa peranti. <ph name="BEGIN_LINK_LEARN_MORE" />Ketahui lebih lanjut<ph name="END_LINK_LEARN_MORE" /></translation>
 <translation id="4554491709904933912">Seret imej untuk mencari dengan <ph name="VISUAL_SEARCH_PROVIDER" /></translation>
@@ -3808,6 +3813,7 @@
 <translation id="48704129375571883">Tambah ciri tambahan</translation>
 <translation id="4870758487381879312">Masukkan kata laluan yang disediakan oleh pentadbir untuk mendapatkan maklumat konfigurasi</translation>
 <translation id="4870903493621965035">Tiada peranti digandingkan</translation>
+<translation id="4870995365819149457">Sesetengah pautan yang disokong masih akan dibuka dalam <ph name="APP_NAME" />, <ph name="APP_NAME_2" />, <ph name="APP_NAME_3" /> dan 1 apl lain.</translation>
 <translation id="4871308555310586478">Bukan dari Kedai Web Chrome.</translation>
 <translation id="4871322859485617074">PIN mengandungi aksara tidak sah</translation>
 <translation id="4871370605780490696">Tambah penanda halaman</translation>
@@ -4184,6 +4190,7 @@
 <translation id="526622169288322445">Lagi tindakan untuk <ph name="ADDRESS_SUMMARY" /></translation>
 <translation id="5269977353971873915">Cetakan Gagal</translation>
 <translation id="5275352920323889391">Anjing</translation>
+<translation id="527605719918376753">Redam tab</translation>
 <translation id="527605982717517565">Sentiasa benarkan JavaScript di <ph name="HOST" /></translation>
 <translation id="5277127016695466621">Tunjukkan panel sisi</translation>
 <translation id="5278823018825269962">ID Status</translation>
@@ -4843,6 +4850,7 @@
 <translation id="5969728632630673489">Notis pintasan papan kekunci diketepikan</translation>
 <translation id="5971037678316050792">Kawal keadaan dan gandingan penyesuai Bluetooth</translation>
 <translation id="597235323114979258">Lihat lagi destinasi</translation>
+<translation id="5972543790327947908">Sesetengah pautan yang disokong masih akan dibuka dalam <ph name="APP_NAME" />, <ph name="APP_NAME_2" /> atau <ph name="APP_NAME_3" />.</translation>
 <translation id="5972666587303800813">Perkhidmatan Tanpa Pengendalian</translation>
 <translation id="5972708806901999743">Alihkan ke bahagian atas</translation>
 <translation id="5972826969634861500">Mula <ph name="PRODUCT_NAME" /></translation>
@@ -5213,6 +5221,7 @@
 <translation id="6355789186038748882">Penyemak imbas percubaan (kualiti alfa)! Sesetengah ciri tiada atau tidak lengkap. Laporkan isu pada: Bantuan &gt; "Laporkan isu...".</translation>
 <translation id="635609604405270300">Sentiasa hidupkan peranti</translation>
 <translation id="63566973648609420">Hanya orang yang tahu ungkapan laluan anda boleh membaca data anda yang disulitkan. Ungkapan laluan tidak dihantar atau disimpan oleh Google. Jika anda terlupa ungkapan laluan atau ingin menukar tetapan ini, anda perlu <ph name="BEGIN_LINK" />menetapkan semula penyegerakan<ph name="END_LINK" />.</translation>
+<translation id="6357305427698525450">Sesetengah pautan yang disokong masih akan dibuka dalam <ph name="APP_NAME" /> atau <ph name="APP_NAME_2" />.</translation>
 <translation id="6358884629796491903">Naga</translation>
 <translation id="6359706544163531585">Lumpuhkan tema cerah</translation>
 <translation id="6361850914223837199">Butiran ralat:</translation>
@@ -5731,6 +5740,7 @@
 <translation id="6900284862687837908">Apl Latar Belakang: <ph name="BACKGROUND_APP_URL" /></translation>
 <translation id="6900532703269623216">Perlindungan dipertingkat</translation>
 <translation id="6900651018461749106">Log masuk sekali lagi untuk mengemas kini <ph name="USER_EMAIL" /></translation>
+<translation id="6900654715912436255">Adakah anda pasti mahu memadamkan enjin carian ini?</translation>
 <translation id="6902066522699286937">Suara untuk dipratonton</translation>
 <translation id="6902336033320348843">Seksyen tidak disokong: <ph name="ERROR_LINE" /></translation>
 <translation id="6902837902700739466">Hubungkan peranti kepada domain</translation>
@@ -6002,6 +6012,7 @@
 <translation id="7189234443051076392">Pastikan ruang pada peranti anda mencukupi</translation>
 <translation id="7189451821249468368">Anda tidak mempunyai peningkatan yang mencukupi untuk mendaftarkan peranti ini. Sila hubungi bahagian jualan untuk membeli lagi. Jika anda percaya mesej ini merupakan satu kesilapan, sila hubungi sokongan.</translation>
 <translation id="7189965711416741966">Cap jari ditambahkan.</translation>
+<translation id="7191063546666816478">Sesetengah pautan yang disokong masih akan dibuka dalam <ph name="APP_NAME" />, <ph name="APP_NAME_2" />, <ph name="APP_NAME_3" /> dan <ph name="NUMBER_OF_OTHER_APPS" /> apl lain.</translation>
 <translation id="7191159667348037">Pencetak Tidak Diketahui (USB)</translation>
 <translation id="7193051357671784796">Apl ini ditambahkan oleh organisasi anda. Mulakan semula apl untuk menyelesaikan pemasangan.</translation>
 <translation id="7193374945610105795">Tiada kata laluan disimpan untuk <ph name="ORIGIN" /></translation>
@@ -7218,6 +7229,7 @@
 <translation id="8410775397654368139">Google Play</translation>
 <translation id="8412136526970428322"><ph name="PERMISSION" /> dan <ph name="COUNT" /> lagi dibenarkan</translation>
 <translation id="8413385045638830869">Tanya dahulu (disyorkan)</translation>
+<translation id="8414249071344507766">Memori disembunyikan selama dua hari</translation>
 <translation id="8416730306157376817"><ph name="BATTERY_PERCENTAGE" />% (Bekas)</translation>
 <translation id="8417548266957501132">Kata laluan ibu bapa</translation>
 <translation id="8418445294933751433">&amp;Paparkan sebagai tab</translation>
diff --git a/chrome/app/resources/generated_resources_my.xtb b/chrome/app/resources/generated_resources_my.xtb
index 4c6de12..c126d1e1 100644
--- a/chrome/app/resources/generated_resources_my.xtb
+++ b/chrome/app/resources/generated_resources_my.xtb
@@ -1706,6 +1706,7 @@
 <translation id="2684004000387153598">ရှေ့ဆက်ရန်အတွက် OK ကို နှိပ်ပြီး သင့်အီးမေးလ်လိပ်စာအတွက် ပရိုဖိုင်အသစ် ပြုလုပ်ရန် 'လူထည့်ရန်' ကို နှိပ်ပါ။</translation>
 <translation id="2687403674020088961">ကွတ်ကီးများအားလုံးကို ပိတ်ရန် (အကြံမပြုပါ)</translation>
 <translation id="2687407218262674387">Google ဝန်ဆောင်မှု စည်းမျဉ်းများ</translation>
+<translation id="2687621393791886981">နောက်မှ မေးရန်</translation>
 <translation id="2688196195245426394">ကိရိယာကို ဆာဗာမှာ မှတ်ပုံတင်စဉ် အမှား: <ph name="CLIENT_ERROR" />။</translation>
 <translation id="2690024944919328218">ဘာသာစကားဆိုင်ရာ ရွေးစရာများကို ပြရန်</translation>
 <translation id="2691385045260836588">အမျိုးအစား</translation>
@@ -4186,6 +4187,7 @@
 <translation id="526622169288322445"><ph name="ADDRESS_SUMMARY" /> အတွက် နောက်ထပ်လုပ်ဆောင်ချက်များ</translation>
 <translation id="5269977353971873915">ပရင်ထုတ်ရန် မအောင်မြင်ပါ</translation>
 <translation id="5275352920323889391">ခွေး</translation>
+<translation id="527605719918376753">တဘ်အား အသံပိတ်ရန်</translation>
 <translation id="527605982717517565"><ph name="HOST" /> တွင် အမြဲတမ်း JavaScript ခွင့်ပြုရန်</translation>
 <translation id="5277127016695466621">ဘေးအကန့် ပြသရန်</translation>
 <translation id="5278823018825269962">အခြေအနေ Id</translation>
@@ -7220,6 +7222,7 @@
 <translation id="8410775397654368139">Google Play</translation>
 <translation id="8412136526970428322"><ph name="PERMISSION" /> နှင့် နောက်ထပ် <ph name="COUNT" /> ခုကို ခွင့်ပြုထားသည်</translation>
 <translation id="8413385045638830869">ဦးစွာ မေးပါ (အကြံပြုထား)</translation>
+<translation id="8414249071344507766">နှစ်ရက်အတွက် မှတ်ဉာဏ်များ ဖျောက်ထားသည်</translation>
 <translation id="8416730306157376817"><ph name="BATTERY_PERCENTAGE" />% (နားကြပ်ဘူး)</translation>
 <translation id="8417548266957501132">မိဘ၏ စကားဝှက်</translation>
 <translation id="8418445294933751433">တဲပ် အနေဖြင့် &amp;ပြ</translation>
diff --git a/chrome/app/resources/generated_resources_ne.xtb b/chrome/app/resources/generated_resources_ne.xtb
index 3ea16d8..df1d0cd 100644
--- a/chrome/app/resources/generated_resources_ne.xtb
+++ b/chrome/app/resources/generated_resources_ne.xtb
@@ -293,6 +293,7 @@
 <translation id="1293264513303784526">USB-C यन्त्र (बायाँ पोर्ट)</translation>
 <translation id="1293556467332435079">फाइलहरू</translation>
 <translation id="1294807885394205587">यो प्रक्रिया पूरा हुन केही बेर लाग्न सक्छ। कन्टेनर म्यानेजर सुरु गरिँदै छ।</translation>
+<translation id="1296046226918222533">केही चिज गडबड भयो र Linux अपग्रेड गर्न सकिएन। तपाईं लगहरूमा गई अपग्रेड गर्न नसक्नुको कारणसम्बन्धी थप जानकारी हेर्न सक्नुहुन्छ। लगहरू <ph name="LOG_FILE" /> मा सेभ गरिएको छ</translation>
 <translation id="1296911687402551044">चयन गरिएको ट्याब पिन गर्नुहोस्</translation>
 <translation id="1297175357211070620">गन्तव्य</translation>
 <translation id="129770436432446029"><ph name="EXPERIMENT_NAME" /> बारे प्रतिक्रिया पठाउनुहोस्</translation>
@@ -1690,6 +1691,7 @@
 <translation id="2684004000387153598">जारी राख्न, ठिक छ नामक बटनमा क्लिक गर्नुहोस्, त्यसपछि आफ्नो इमेल ठेगानाको नयाँ प्रोफाइल सिर्जना गर्न व्यक्ति थप्नुहोस् नामक बटनमा क्लिक गर्नुहोस्।</translation>
 <translation id="2687403674020088961">सबै कुकीहरूमाथि रोक लगाउनुहोस् (सिफारिस गरिँदैन)</translation>
 <translation id="2687407218262674387">Google का सेवाका सर्तहरू</translation>
+<translation id="2687621393791886981">मलाई पछि सोध्नुहोस्</translation>
 <translation id="2688196195245426394">यन्त्रलाई सर्भरसँग दर्ता गर्नमा त्रुटि: <ph name="CLIENT_ERROR" />।</translation>
 <translation id="2690024944919328218">भाषा सम्बन्धी विकल्पहरू देखाउनुहोस्</translation>
 <translation id="2691385045260836588">मोडेल</translation>
@@ -2787,6 +2789,7 @@
 <translation id="3799128412641261490">स्विचमार्फत पहुँच राख्ने सुविधासम्बन्धी सेटिङ</translation>
 <translation id="3800806661949714323">सबै देखाउनुहोस् (सिफारिस गरिएको)</translation>
 <translation id="3800828618615365228">Google Chrome र ChromeOS का अतिरिक्त सर्तहरू</translation>
+<translation id="3802486193901166966">यो एक्स्टेन्सनलाई कुनै विशेष अनुमति दिनु पर्दैन र यसलाई साइटसम्बन्धी थप अनुमति दिइएको छैन</translation>
 <translation id="380329542618494757">नाम</translation>
 <translation id="3803345858388753269">भिडियोको गुणस्तर</translation>
 <translation id="380408572480438692">प्रस्तुतीकरण लगतको सङ्कलन सक्षम गर्नाले Google लाई समय बित्दै जाँदा प्रणाली सुधार्न मद्दत गर्छ। तपाइँले एक पृष्ठपोषण प्रतिवेदन (Alt-Shift-I) फाइल र प्रस्तुीकरण लगत समावेश नगरेसम्म कुनै पनि लगत पठाइनेछैन। तपाइँले कुनै समयमा पनि सङ्कलन असक्षम गर्न यस स्क्रिनमा फिर्ता आउन सक्नुहुन्छ।</translation>
@@ -3815,6 +3818,7 @@
 <translation id="4883436287898674711">सबै <ph name="WEBSITE_1" /> साइटहरू</translation>
 <translation id="48838266408104654">&amp;काम प्रबन्धक</translation>
 <translation id="4884987973312178454">६ गुणा</translation>
+<translation id="4885692421645694729">यो एक्स्टेन्सनलाई साइटसम्बन्धी थप अनुमति दिइएको छैन</translation>
 <translation id="4887424188275796356">सिस्टम दर्शक मार्फत खोल्नुहोस्</translation>
 <translation id="488785315393301722">विवरणहरू देखाउनुहोस्</translation>
 <translation id="4890773143211625964">प्रिन्टरका उन्नत विकल्पहरू देखाउनुहोस्</translation>
@@ -3989,6 +3993,7 @@
 <translation id="5075910247684008552">सुरक्षित साइटहरूमा असुरक्षित सामग्रीलाई डिफल्ट रूपमा रोक लगाइन्छ</translation>
 <translation id="5078638979202084724">सबै ट्याबहरू पृष्ठमञ्जूषा गर्नुहोस्</translation>
 <translation id="5078796286268621944">गलत PIN</translation>
+<translation id="5079010647467150187">अन्तर्निर्मित VPN हाल्नुहोस्...</translation>
 <translation id="5079950360618752063">सिफारिस गरिएको पासवर्ड प्रयोग गर्नहोस्</translation>
 <translation id="508059534790499809">Kerberos को टिक पुन: ताजा गर्नुहोस्</translation>
 <translation id="5084230410268011727">साइटहरूलाई चाल र प्रकाशसम्बन्धी सेन्सरहरू प्रयोग गर्ने अनुमति दिनुहोस्</translation>
@@ -4170,6 +4175,7 @@
 <translation id="526622169288322445"><ph name="ADDRESS_SUMMARY" /> का सम्बन्धमा गर्न सकिने थप कारबाहीहरू</translation>
 <translation id="5269977353971873915">प्रिन्टिङ असफल भयो</translation>
 <translation id="5275352920323889391">कुकुर</translation>
+<translation id="527605719918376753">ट्याब म्युट गर्दै</translation>
 <translation id="527605982717517565"><ph name="HOST" /> मा सँधै जाभास्क्रिप्टको लागि अनुम</translation>
 <translation id="5277127016695466621">किनाराको प्यानल देखाइयोस्</translation>
 <translation id="5278823018825269962">स्ट्याटस Id</translation>
@@ -5539,6 +5545,7 @@
 <translation id="6709133671862442373">समाचार</translation>
 <translation id="6709357832553498500"><ph name="EXTENSIONNAME" /> प्रयोग गरेर कनेक्ट गर्नुहोस्</translation>
 <translation id="6710213216561001401">अघिल्लो</translation>
+<translation id="6710973041022512889">अपग्रेड गरिएको छ। तपाईं अपग्रेडसम्बन्धी विस्तृत जानकारी प्राप्त गर्न चाहनुहुन्छ भने <ph name="LOG_FILE" /> मा सेभ गरिएका लगहरू हेर्नुहोस्</translation>
 <translation id="6711146141291425900">डाउनलोड गर्नका निम्ति <ph name="WEB_DRIVE" /> खाता लिंक गर्नुहोस्</translation>
 <translation id="6712943853047024245">तपाईंले <ph name="WEBSITE" /> मा यो युजरनेमको पासवर्ड सेभ गरिसक्नुभएको छ</translation>
 <translation id="6713233729292711163">कार्य प्रोफाइल हाल्नुहोस्</translation>
@@ -7205,6 +7212,7 @@
 <translation id="8410775397654368139">Google Play</translation>
 <translation id="8412136526970428322">तपाईंले हालसालै <ph name="PERMISSION" /> सम्बन्धी अनुमति र अन्य <ph name="COUNT" /> वटा अनुमति दिनुभएको छ</translation>
 <translation id="8413385045638830869">पहिलो (सिफारिस गरिएको) सोध्नुहोस्</translation>
+<translation id="8414249071344507766">"स्मरणीय क्षणहरू" दुई दिनका लागि लुकाइएका छन्</translation>
 <translation id="8416730306157376817"><ph name="BATTERY_PERCENTAGE" />% (केस)</translation>
 <translation id="8417548266957501132">अभिभावकको पासवर्ड</translation>
 <translation id="8418445294933751433">&amp;ट्याबको रूपमा देखाउनुहोस्</translation>
diff --git a/chrome/app/resources/generated_resources_nl.xtb b/chrome/app/resources/generated_resources_nl.xtb
index 14607d6..9cbf057 100644
--- a/chrome/app/resources/generated_resources_nl.xtb
+++ b/chrome/app/resources/generated_resources_nl.xtb
@@ -509,6 +509,7 @@
 <translation id="1521442365706402292">Certificaten beheren</translation>
 <translation id="1521774566618522728">Vandaag actief</translation>
 <translation id="152234381334907219">Nooit opgeslagen</translation>
+<translation id="1523279371236772909">Bekeken in de afgelopen maand</translation>
 <translation id="1523978563989812243">Machines voor tekst-naar-spraak</translation>
 <translation id="1524430321211440688">Toetsenbord</translation>
 <translation id="1524563461097350801">Nee, bedankt</translation>
@@ -1242,6 +1243,7 @@
 <translation id="2232876851878324699">Het bestand bevat één certificaat. Dit certificaat is niet geïmporteerd:</translation>
 <translation id="2233502537820838181">&amp;Meer informatie</translation>
 <translation id="223356358902285214">Web- en app-activiteit</translation>
+<translation id="2234827758954819389">Privacygids</translation>
 <translation id="2234876718134438132">Synchronisatie en Google-services</translation>
 <translation id="2235344399760031203">Cookies van derden worden geblokkeerd</translation>
 <translation id="2238379619048995541">Gegevens van frequentiestatus</translation>
@@ -3094,6 +3096,7 @@
 <translation id="4095264805865317199">UI voor mobiele activering openen</translation>
 <translation id="4095507791297118304">Primair scherm</translation>
 <translation id="4096508467498758490">Extensies van ontwikkelaarsmodus uitzetten</translation>
+<translation id="4096797685681362305">Bekeken in de afgelopen week</translation>
 <translation id="4097406557126260163">Apps en extensies</translation>
 <translation id="409742781329613461">Tips voor Chrome</translation>
 <translation id="4097560579602855702">Zoeken op Google</translation>
@@ -3650,6 +3653,7 @@
 <translation id="4699172675775169585">Gecachte afbeeldingen en bestanden</translation>
 <translation id="4699357559218762027">(automatisch gestart)</translation>
 <translation id="4701025263201366865">Inloggen voor ouders</translation>
+<translation id="4701335814944566468">Gisteren bekeken</translation>
 <translation id="4708794300267213770">Vergrendelscherm bekijken bij activering vanuit de slaapstand</translation>
 <translation id="4708849949179781599">Stop <ph name="PRODUCT_NAME" /></translation>
 <translation id="4711638718396952945">Instellingen herstellen</translation>
@@ -3717,6 +3721,7 @@
 <translation id="479536056609751218">Webpagina, alleen HTML</translation>
 <translation id="4796142525425001238">Altijd herstellen</translation>
 <translation id="4798236378408895261"><ph name="BEGIN_LINK" />Bluetooth-logboeken<ph name="END_LINK" /> toevoegen (voor intern Google-gebruik)</translation>
+<translation id="479863874072008121">Apparaten beheren</translation>
 <translation id="4800839971935185386">Updates voor namen en iconen bekijken</translation>
 <translation id="4801448226354548035">Accounts verbergen</translation>
 <translation id="4801512016965057443">Mobiele dataroaming toestaan</translation>
@@ -4165,6 +4170,7 @@
 <translation id="526622169288322445">Meer acties voor <ph name="ADDRESS_SUMMARY" /></translation>
 <translation id="5269977353971873915">Afdrukken mislukt</translation>
 <translation id="5275352920323889391">Hond</translation>
+<translation id="527605719918376753">Tabblad dempen</translation>
 <translation id="527605982717517565">JavaScript altijd toestaan op <ph name="HOST" /></translation>
 <translation id="5277127016695466621">Zijvenster bekijken</translation>
 <translation id="5278823018825269962">Status-ID</translation>
@@ -6442,6 +6448,7 @@
 <translation id="7658239707568436148">Annuleren</translation>
 <translation id="7659154729610375585">Incognitomodus toch afsluiten?</translation>
 <translation id="7659297516559011665">Alleen wachtwoorden op dit apparaat</translation>
+<translation id="7659336857671800422">Privacygids doorlopen</translation>
 <translation id="7659584679870740384">Je beschikt niet over de rechten om dit apparaat te gebruiken. Neem contact op met de beheerder voor toestemming om in te loggen.</translation>
 <translation id="7661259717474717992">Sites toestaan cookiegegevens op te slaan en te lezen</translation>
 <translation id="7661451191293163002">Er kan geen registratiecertificaat worden opgehaald.</translation>
@@ -7963,6 +7970,7 @@
 <translation id="9200339982498053969"><ph name="ORIGIN" /> kan bestanden in <ph name="FOLDERNAME" /> bewerken</translation>
 <translation id="920045321358709304">Zoeken op <ph name="SEARCH_ENGINE" /></translation>
 <translation id="9201023452444595544">Alle offline gegevens worden gewist</translation>
+<translation id="9201117361710210082">Eerder bekeken</translation>
 <translation id="9201220332032049474">Schermvergrendelingsopties</translation>
 <translation id="9201842707396338580">Er is iets misgegaan. Neem contact op met de eigenaar of beheerder van het apparaat. Foutcode: <ph name="ERROR_CODE" />.</translation>
 <translation id="9203398526606335860">&amp;Profiling staat aan</translation>
diff --git a/chrome/app/resources/generated_resources_no.xtb b/chrome/app/resources/generated_resources_no.xtb
index fb428c4c..39e4b477 100644
--- a/chrome/app/resources/generated_resources_no.xtb
+++ b/chrome/app/resources/generated_resources_no.xtb
@@ -4180,6 +4180,7 @@
 <translation id="526622169288322445">Flere handlinger for <ph name="ADDRESS_SUMMARY" /></translation>
 <translation id="5269977353971873915">Utskrift mislyktes</translation>
 <translation id="5275352920323889391">Hund</translation>
+<translation id="527605719918376753">Slå av lyden for fanen</translation>
 <translation id="527605982717517565">Tillat alltid JavaScript på <ph name="HOST" /></translation>
 <translation id="5277127016695466621">Vis sidepanelet</translation>
 <translation id="5278823018825269962">Status-ID</translation>
diff --git a/chrome/app/resources/generated_resources_or.xtb b/chrome/app/resources/generated_resources_or.xtb
index 2f927db4..21c5612 100644
--- a/chrome/app/resources/generated_resources_or.xtb
+++ b/chrome/app/resources/generated_resources_or.xtb
@@ -1020,6 +1020,7 @@
 <translation id="2022395138980869975">ସାଇଡ ସନ୍ଧାନ ଟୋଗଲ କରନ୍ତୁ</translation>
 <translation id="2023167225947895179">ପିନ୍‍କୁ ଅନୁମାନ କରିବା ସହଜ ହୋଇପାରେ</translation>
 <translation id="202352106777823113">ଡାଉନ୍‌ଲୋଡ୍‌ ଅଧିକ ସମୟ ନେଉଥିଲା ଏବଂ ନେଟ୍‍ୱାର୍କ ଦ୍ୱାରା ବନ୍ଦ କରାଯାଇଥିଲା।</translation>
+<translation id="2024195579772565064">ସନ୍ଧାନ ଇଞ୍ଜିନକୁ ଡିଲିଟ କରନ୍ତୁ</translation>
 <translation id="2025632980034333559"><ph name="APP_NAME" /> କ୍ରାସ୍ ହୋଇଯାଇଛି। ଏକ୍ସଟେନ୍‌ସନ୍‌କୁ ରିଲୋଡ୍ କରିବା ପାଇଁ ଏହି ବେଲୁନ୍‌ରେ କ୍ଲିକ୍ କରନ୍ତୁ।</translation>
 <translation id="2028449514182362831">ମୋସନ୍ ସେନ୍ସର୍ ଆବଶ୍ୟକ କରୁଥିବା ଫିଚରଗୁଡ଼ିକ କାମ କରିବ ନାହିଁ</translation>
 <translation id="202918510990975568">ସୁରକ୍ଷା କନଫିଗର୍ କରିବା ଏବଂ ସାଇନ୍-ଇନ୍ କରିବା ପାଇଁ ଆପଣଙ୍କର ପାସୱାର୍ଡ ଲେଖନ୍ତୁ</translation>
@@ -1161,6 +1162,7 @@
 <translation id="2159488579268505102">USB-C</translation>
 <translation id="216169395504480358">Wi-Fi ଯୋଗ କରନ୍ତୁ...</translation>
 <translation id="2162155940152307086">ଥରେ ଆପଣ ସିଙ୍କ୍ ସେଟିଂସ୍‌କୁ ଛାଡ଼ିବା କ୍ଷଣି ସିଙ୍କ୍‌ର କାର୍ଯ୍ୟ ଆରମ୍ଭ ହୋଇଯିବ</translation>
+<translation id="2162926944953615670">କୌଣସି eSIM ପ୍ରୋଫାଇଲ ଉପଲବ୍ଧ ନାହିଁ</translation>
 <translation id="2163470535490402084">ଆପଣଙ୍କର <ph name="DEVICE_TYPE" />ରେ ସାଇନ୍-ଇନ୍ କରିବା ପାଇଁ ଦୟାକରି ଇଣ୍ଟର୍ନେଟ୍ ସହିତ ସଂଯୋଗ କରନ୍ତୁ।</translation>
 <translation id="2163937499206714165">ଡାର୍କ ମୋଡ୍ ଚାଲୁ କରନ୍ତୁ</translation>
 <translation id="2164131635608782358"><ph name="FIRST_SWITCH" />, <ph name="SECOND_SWITCH" />, <ph name="THIRD_SWITCH" />, ଏବଂ ଅଧିକ 1ଟି ସ୍ୱିଚ୍</translation>
@@ -1689,6 +1691,7 @@
 <translation id="2684004000387153598">ଜାରି ରଖିବାକୁ 'OK'ରେ କ୍ଲିକ୍ କରନ୍ତୁ ତା'ପରେ ଆପଣଙ୍କର ଇମେଲ୍ ଠିକଣା ପାଇଁ ଏକ ନୂତନ ପ୍ରୋଫାଇଲ୍ ତିଆରି କରିବା ନିମନ୍ତେ 'ବ୍ୟକ୍ତି ଯୋଗ କରନ୍ତୁ'ରେ କ୍ଲିକ୍ କରନ୍ତୁ।</translation>
 <translation id="2687403674020088961">ସମସ୍ତ କୁକୀ ବ୍ଲକ୍ କରନ୍ତୁ (ସୁପାରିଶ କରାଯାଇ ନାହିଁ)</translation>
 <translation id="2687407218262674387">Google ସେବାର ସର୍ତ୍ତାବଳୀ</translation>
+<translation id="2687621393791886981">ମୋତେ ପରେ ପଚାରନ୍ତୁ</translation>
 <translation id="2688196195245426394">ସର୍ଭର୍‌ ସହ ଡିଭାଇସ୍‌ ପଞ୍ଜିକରଣ କରିବା ସମୟରେ ତ୍ରୁଟି: <ph name="CLIENT_ERROR" />।</translation>
 <translation id="2690024944919328218">ଭାଷାର ବିକଳ୍ପଗୁଡ଼ିକ ଦେଖାନ୍ତୁ</translation>
 <translation id="2691385045260836588">ମଡେଲ୍</translation>
@@ -1855,6 +1858,7 @@
 <translation id="2828650939514476812">ୱାଇ-ଫାଇ ନେଟ୍‌ୱାର୍କ ସହିତ ସଂଯୋଗ କରନ୍ତୁ</translation>
 <translation id="2831430281393059038">ଡିଭାଇସ୍ ସମର୍ଥିତ ଅଟେ</translation>
 <translation id="2832124733806557606">ଆପଣଙ୍କ ପିଲା ଡିଭାଇସରେ ସାଇନ୍ ଇନ୍ କରିବାକୁ କିମ୍ବା ଏହାକୁ ଅନଲକ୍ କରିବାକୁ ଏକ PIN ବ୍ୟବହାର କରିପାରିବ।</translation>
+<translation id="2835177225987815960">ଆସାଇନ କରାଯାଇଥିବା ଯେ କୌଣସି ସ୍ୱିଚ ଏବଂ ଅଟୋ-ସ୍କାନର ସ୍ପିଡ ସମ୍ବନ୍ଧିତ ପସନ୍ଦଗୁଡ଼ିକ ସମେତ ଆପଣଙ୍କ ବର୍ତ୍ତମାନର ସ୍କାନିଂ ସେଟଅପ ରିସେଟ ହୋଇଯିବ।</translation>
 <translation id="2835547721736623118">ସ୍ପିଚ୍ ଚିହ୍ନଟକରଣ ସେବା</translation>
 <translation id="2836269494620652131">କ୍ରାଶ୍</translation>
 <translation id="2836635946302913370">ଆପଣଙ୍କ ବ୍ୟବସ୍ଥାପକଙ୍କ ଦ୍ୱାରା ଏହି ଉପଯୋଗକର୍ତ୍ତାନାମରେ ସାଇନ୍‌ ଇନ୍‌ କରିବା ଅକ୍ଷମ କରାଯାଇଛି।</translation>
@@ -3500,6 +3504,7 @@
 <translation id="4547659257713117923">ଅନ୍ୟ ଡିଭାଇସ୍‌ରୁ କୌଣସି ଟାବ୍ ନାହିଁ</translation>
 <translation id="4547672827276975204">ସ୍ଵଚାଳିତ ଭାବେ ସେଟ୍ କରନ୍ତୁ</translation>
 <translation id="4549791035683739768">ଆପଣଙ୍କର ସୁରକ୍ଷା କୀରେ କୌଣସି ଟିପଚିହ୍ନ ଷ୍ଟୋର୍ କରାଯାଇନାହିଁ</translation>
+<translation id="4550926046134589611">କିଛି ସମର୍ଥିତ ଲିଙ୍କ ଏବେ ବି <ph name="APP_NAME" />ରେ ଖୋଲିବ।</translation>
 <translation id="4551763574344810652">ପୂର୍ବବତ୍ କରିବା ପାଇଁ <ph name="MODIFIER_KEY_DESCRIPTION" /> ଦବାନ୍ତୁ</translation>
 <translation id="4553526521109675518">ଡିଭାଇସର ଭାଷା ବଦଳାଇବା ପାଇଁ ଆପଣଙ୍କୁ ଆପଣଙ୍କ Chromebook ରିଷ୍ଟାର୍ଟ କରିବାକୁ ହେବ। <ph name="BEGIN_LINK_LEARN_MORE" />ଅଧିକ ଜାଣନ୍ତୁ<ph name="END_LINK_LEARN_MORE" /></translation>
 <translation id="4554491709904933912"><ph name="VISUAL_SEARCH_PROVIDER" /> ମାଧ୍ୟମରେ ସନ୍ଧାନ କରିବାକୁ ଇମେଜଗୁଡ଼ିକ ଉପରେ ଡ୍ରାଗ୍ କରନ୍ତୁ</translation>
@@ -3790,6 +3795,7 @@
 <translation id="48704129375571883">ଅତିରିକ୍ତ ବୈଶିଷ୍ଟ୍ୟଗୁଡ଼ିକ ଯୋଗ କରନ୍ତୁ</translation>
 <translation id="4870758487381879312">କନଫିଗ୍‍‍ରେସନ୍ ସୂଚନା ପ୍ରାପ୍ତ କରିବାକୁ ବ୍ୟବସ୍ଥାପକଙ୍କ ଦ୍ୱାରା ପ୍ରଦାନ କରାଯାଇଥିବା ପାସ୍‌ୱର୍ଡ ଲେଖନ୍ତୁ</translation>
 <translation id="4870903493621965035">କୌଣସି ପେୟାର୍‌ ହୋ‍ଇଥିବା ଡିଭାଇସ୍‌ ନାହିଁ</translation>
+<translation id="4870995365819149457">କିଛି ସମର୍ଥିତ ଲିଙ୍କ ଏବେ ବି <ph name="APP_NAME" />, <ph name="APP_NAME_2" />, <ph name="APP_NAME_3" /> ଏବଂ ଅନ୍ୟ 1ଟି ଆପରେ ଖୋଲିବ।</translation>
 <translation id="4871308555310586478">Chrome ୱେବ୍ ଷ୍ଟୋର୍‌ରୁ ନୁହେଁ।</translation>
 <translation id="4871322859485617074">ପିନ୍‌ରେ ଅବୈଧ ଅକ୍ଷରଗୁଡ଼ିକ ଅଛି</translation>
 <translation id="4871370605780490696">ବୁକ୍‌ମାର୍କ ଯୋଗ କରନ୍ତୁ</translation>
@@ -4166,6 +4172,7 @@
 <translation id="526622169288322445"><ph name="ADDRESS_SUMMARY" /> ପାଇଁ ଅଧିକ ପଦକ୍ଷେପ</translation>
 <translation id="5269977353971873915">ପ୍ରିଣ୍ଟ ହେଲାନାହିଁ</translation>
 <translation id="5275352920323889391">ଶ୍ୱାନ</translation>
+<translation id="527605719918376753">ଟାବ୍ ମ୍ୟୁଟ୍ କରନ୍ତୁ</translation>
 <translation id="527605982717517565">ସର୍ବଦା <ph name="HOST" />ରେ JavaScriptକୁ ଅନୁମତି ଦିଅନ୍ତୁ</translation>
 <translation id="5277127016695466621">ସାଇଡ୍ ପ୍ୟାନେଲ୍ ଦେଖାନ୍ତୁ</translation>
 <translation id="5278823018825269962">ସ୍ଥିତି Id</translation>
@@ -4825,6 +4832,7 @@
 <translation id="5969728632630673489">କୀବୋର୍ଡ ସର୍ଟକଟ୍ ନୋଟିସକୁ ଖାରଜ କରାଯାଇଛି</translation>
 <translation id="5971037678316050792">ବ୍ଲୁଟୁଥ୍ ଆଡାପ୍ଟର୍ ସ୍ଥିତି ଓ ପେୟାରିଂ ନିୟନ୍ତ୍ରଣ କରନ୍ତୁ</translation>
 <translation id="597235323114979258">ପ୍ରିଣ୍ଟ କରିବା ପାଇଁ ଅଧିକ ଡିଭାଇସ୍ ଦେଖନ୍ତୁ</translation>
+<translation id="5972543790327947908">କିଛି ସମର୍ଥିତ ଲିଙ୍କ ଏବେ ବି <ph name="APP_NAME" />, <ph name="APP_NAME_2" /> କିମ୍ବା <ph name="APP_NAME_3" />ରେ ଖୋଲିବ।</translation>
 <translation id="5972666587303800813">ସେବାରେ ନାହିଁ</translation>
 <translation id="5972708806901999743">ଶୀର୍ଷକୁ ଘୁଞ୍ଚାନ୍ତୁ</translation>
 <translation id="5972826969634861500"><ph name="PRODUCT_NAME" /> ଆରମ୍ଭ କରନ୍ତୁ</translation>
@@ -5195,6 +5203,7 @@
 <translation id="6355789186038748882">ପରୀକ୍ଷାମୂଳକ (ଆଲଫା-ଗୁଣବତ୍ତା) ବ୍ରାଉଜର୍! କିଛି ଫିଚର୍ ଉପଲବ୍ଧ ନାହିଁ କିମ୍ବା ଅସମ୍ପୂର୍ଣ୍ଣ ଅଛି। ସମସ୍ୟାଗୁଡ଼ିକ ବିଷୟରେ ଏଠାରେ ରିପୋର୍ଟ କରନ୍ତୁ: ସହାୟତା &gt; "ଏକ ସମସ୍ୟା ବିଷୟରେ ରିପୋର୍ଟ କରନ୍ତୁ..."।</translation>
 <translation id="635609604405270300">ଡିଭାଇସ୍‌କୁ ଚାଲୁ ଅବସ୍ଥାରେ ରଖନ୍ତୁ</translation>
 <translation id="63566973648609420">ଆପଣଙ୍କ ଏନ୍‌କ୍ରିପ୍ଟ ହୋଇଥିବା ଡାଟାକୁ କେବଳ ଆପଣଙ୍କ ପାସ୍‍‍ଫ୍ରେଜ୍ ଥିବା ଜଣେ ବ୍ୟକ୍ତି ପଢ଼ିପାରିବେ। Google ଦ୍ବାରା ପାସ୍‍‍ଫ୍ରେଜ୍ ପଠାଯାଏ ନାହିଁ ବା ଷ୍ଟୋର୍ କରାଯାଏନାହିଁ। ଯଦି ଆପଣ ନିଜର ପାସ୍‍‍ଫ୍ରେଜ୍ ଭୁଲିଯାଇଛନ୍ତି କିମ୍ବା ଏହି ସେଟିଂ ପରିବର୍ତ୍ତନ କରିବାକୁ ଚାହୁଁଛନ୍ତି, ତେବେ ଆପଣଙ୍କୁ <ph name="BEGIN_LINK" />ସିଙ୍କ୍ ରିସେଟ୍<ph name="END_LINK" /> କରିବାକୁ ହେବ।</translation>
+<translation id="6357305427698525450">କିଛି ସମର୍ଥିତ ଲିଙ୍କ ଏବେ ବି <ph name="APP_NAME" /> କିମ୍ବା <ph name="APP_NAME_2" />ରେ ଖୋଲିବ।</translation>
 <translation id="6358884629796491903">ଡ୍ରାଗନ୍</translation>
 <translation id="6359706544163531585">ହାଲୁକା ଥିମକୁ ଅକ୍ଷମ କରନ୍ତୁ</translation>
 <translation id="6361850914223837199">ତ୍ରୁଟି ବିବରଣୀ:</translation>
@@ -5715,6 +5724,7 @@
 <translation id="6900284862687837908">ପୃଷ୍ଠଭୂମି ଆପ୍: <ph name="BACKGROUND_APP_URL" /></translation>
 <translation id="6900532703269623216">ଉନ୍ନତ ସୁରକ୍ଷା</translation>
 <translation id="6900651018461749106"><ph name="USER_EMAIL" /> ଅପ୍‌ଡେଟ୍ କରିବା ପାଇଁ ସାଇନ୍ ଇନ୍ କରନ୍ତୁ</translation>
+<translation id="6900654715912436255">ଆପଣ ଏହି ସନ୍ଧାନ ଇଞ୍ଜିନକୁ ଡିଲିଟ କରିବାକୁ ଚାହୁଁଥିବା ନିଶ୍ଚିତ?</translation>
 <translation id="6902066522699286937">ପୂର୍ବାବଲୋକନ ପାଇଁ ଭଏସ୍‌</translation>
 <translation id="6902336033320348843">ବିଭାଗ ସମର୍ଥିତ ନୁହେଁ: <ph name="ERROR_LINE" /></translation>
 <translation id="6902837902700739466">ଡିଭାଇସ୍‍କୁ ଡୋମେନ୍‌ ସହ ଯୋଡ଼ନ୍ତୁ</translation>
@@ -5986,6 +5996,7 @@
 <translation id="7189234443051076392">ଏହା ସୁନିଶ୍ଚିତ କରନ୍ତୁ ଯେ ଆପଣଙ୍କର ଡିଭାଇସ୍‌ରେ ଯଥେଷ୍ଟ ସ୍ଥାନ ଅଛି।</translation>
 <translation id="7189451821249468368">ଏହି ଡିଭାଇସକୁ ପଞ୍ଜିକରଣ କରିବା ପାଇଁ ଆପଣଙ୍କ ପାଖରେ ପର୍ଯ୍ୟାପ୍ତ ଅପଗ୍ରେଡ୍ ନାହିଁ। ଅଧିକ କ୍ରୟ କରିବା ପାଇଁ, ଦୟାକରି ବିକ୍ରୟ ବିଭାଗ ସହିତ ଯୋଗାଯୋଗ କରନ୍ତୁ। ଯଦି ଆପଣ ଏହି ମେସେଜକୁ ଭୁଲବଶତଃ ଦେଖିଛନ୍ତି ବୋଲି ଭାବୁଛନ୍ତି, ତେବେ ସହାୟତା କେନ୍ଦ୍ର ସହ ଯୋଗାଯୋଗ କରନ୍ତୁ।</translation>
 <translation id="7189965711416741966">ଟିପଚିହ୍ନ ଯୋଗ କରାଯାଇଛି।</translation>
+<translation id="7191063546666816478">କିଛି ସମର୍ଥିତ ଲିଙ୍କ ଏବେ ବି <ph name="APP_NAME" />, <ph name="APP_NAME_2" />, <ph name="APP_NAME_3" /> ଏବଂ ଅନ୍ୟ <ph name="NUMBER_OF_OTHER_APPS" />ଟି ଆପରେ ଖୋଲିବ।</translation>
 <translation id="7191159667348037">ଅଜଣା ପ୍ରିଣ୍ଟର୍ (USB)</translation>
 <translation id="7193051357671784796">ଏହି ଆପ୍ ଆପଣଙ୍କର ସଂସ୍ଥା ଦ୍ୱାରା ଯୋଗ କରାଯାଇଥିଲା। ଇନ୍‌ଷ୍ଟଲ୍ କରିବା ସମାପ୍ତ କରିବା ପାଇଁ ଆପ୍‌କୁ ରିଷ୍ଟାର୍ଟ କରନ୍ତୁ।</translation>
 <translation id="7193374945610105795"><ph name="ORIGIN" /> ପାଇଁ କୌଣସି ପାସ୍‍ୱର୍ଡ ସେଭ୍ ହୋଇନାହିଁ</translation>
@@ -7198,6 +7209,7 @@
 <translation id="8410775397654368139">Google Play</translation>
 <translation id="8412136526970428322"><ph name="PERMISSION" /> ଏବଂ ଅଧିକ <ph name="COUNT" />ଟିକୁ ଅନୁମତି ଦିଆଯାଇଛି</translation>
 <translation id="8413385045638830869">ପ୍ରଥମେ ପଚାରନ୍ତୁ (ସୁପାରିଶ କରାଯାଇଛି)</translation>
+<translation id="8414249071344507766">ଦୁଇ ଦିନ ପାଇଁ ମେମୋରୀ ଲୁଚାଯାଇଛି</translation>
 <translation id="8416730306157376817"><ph name="BATTERY_PERCENTAGE" />% (କେସ)</translation>
 <translation id="8417548266957501132">ବାପାମାଙ୍କ ପାସୱାର୍ଡ</translation>
 <translation id="8418445294933751433">&amp;ଟ୍ୟାବ୍ ଭାବେ ଦେଖାନ୍ତୁ</translation>
diff --git a/chrome/app/resources/generated_resources_pa.xtb b/chrome/app/resources/generated_resources_pa.xtb
index 69307007..a9dc288 100644
--- a/chrome/app/resources/generated_resources_pa.xtb
+++ b/chrome/app/resources/generated_resources_pa.xtb
@@ -4185,6 +4185,7 @@
 <translation id="526622169288322445"><ph name="ADDRESS_SUMMARY" /> ਲਈ ਹੋਰ ਕਾਰਵਾਈਆਂ</translation>
 <translation id="5269977353971873915">ਪ੍ਰਿੰਟ ਲੈਣਾ ਅਸਫਲ ਰਿਹਾ</translation>
 <translation id="5275352920323889391">ਕੁੱਤਾ</translation>
+<translation id="527605719918376753">ਟੈਬ ਮਿਊਟ ਕਰੋ</translation>
 <translation id="527605982717517565">ਹਮੇਸ਼ਾਂ <ph name="HOST" /> ਤੇ JavaScript ਦੀ ਆਗਿਆ ਦਿਓ</translation>
 <translation id="5277127016695466621">ਸਾਈਡ ਪੈਨਲ ਦਿਖਾਓ</translation>
 <translation id="5278823018825269962">ਸਥਿਤੀ ਦੀ ਆਈਡੀ</translation>
diff --git a/chrome/app/resources/generated_resources_pl.xtb b/chrome/app/resources/generated_resources_pl.xtb
index f39974bd..05f9497 100644
--- a/chrome/app/resources/generated_resources_pl.xtb
+++ b/chrome/app/resources/generated_resources_pl.xtb
@@ -4165,6 +4165,7 @@
 <translation id="526622169288322445">Więcej działań dotyczących: <ph name="ADDRESS_SUMMARY" /></translation>
 <translation id="5269977353971873915">Niepowodzenie drukowania</translation>
 <translation id="5275352920323889391">Pies</translation>
+<translation id="527605719918376753">Wycisz kartę</translation>
 <translation id="527605982717517565">Zawsze zezwalaj na wykonywanie kodu JavaScript w witrynie <ph name="HOST" /></translation>
 <translation id="5277127016695466621">Pokaż panel boczny</translation>
 <translation id="5278823018825269962">Identyfikator stanu</translation>
diff --git a/chrome/app/resources/generated_resources_pt-BR.xtb b/chrome/app/resources/generated_resources_pt-BR.xtb
index 57cdd13b..fad6deff 100644
--- a/chrome/app/resources/generated_resources_pt-BR.xtb
+++ b/chrome/app/resources/generated_resources_pt-BR.xtb
@@ -513,6 +513,7 @@
 <translation id="1521442365706402292">Gerenciar certificados</translation>
 <translation id="1521774566618522728">Ativado hoje</translation>
 <translation id="152234381334907219">Nunca salvas</translation>
+<translation id="1523279371236772909">Visualizado no último mês</translation>
 <translation id="1523978563989812243">Mecanismos da conversão de texto em voz</translation>
 <translation id="1524430321211440688">Teclado</translation>
 <translation id="1524563461097350801">Agora não</translation>
@@ -1255,6 +1256,7 @@
 <translation id="2232876851878324699">O arquivo continha um certificado que não foi importado:</translation>
 <translation id="2233502537820838181">&amp;Mais informações</translation>
 <translation id="223356358902285214">Atividade na Web e de apps</translation>
+<translation id="2234827758954819389">Guia de privacidade</translation>
 <translation id="2234876718134438132">Serviços do Google e de sincronização</translation>
 <translation id="2235344399760031203">Cookies de terceiros foram bloqueados</translation>
 <translation id="2238379619048995541">Dados do estado de frequência</translation>
@@ -3112,6 +3114,7 @@
 <translation id="4095264805865317199">Abrir IU de ativação da rede celular</translation>
 <translation id="4095507791297118304">Tela principal</translation>
 <translation id="4096508467498758490">Desativar extensões no modo de desenvolvedor</translation>
+<translation id="4096797685681362305">Visualizado na última semana</translation>
 <translation id="4097406557126260163">Apps e extensões</translation>
 <translation id="409742781329613461">Dicas para o Chrome</translation>
 <translation id="4097560579602855702">Pesquisar no Google</translation>
@@ -3669,6 +3672,7 @@
 <translation id="4699172675775169585">Imagens e arquivos armazenados em cache</translation>
 <translation id="4699357559218762027">(aberto automaticamente)</translation>
 <translation id="4701025263201366865">Login do pai/mãe</translation>
+<translation id="4701335814944566468">Visualizado ontem</translation>
 <translation id="4708794300267213770">Mostrar tela de bloqueio ao sair do modo de suspensão</translation>
 <translation id="4708849949179781599">Encerrar o <ph name="PRODUCT_NAME" /></translation>
 <translation id="4711638718396952945">Restaurar configurações</translation>
@@ -3736,6 +3740,7 @@
 <translation id="479536056609751218">Página da web, somente HTML</translation>
 <translation id="4796142525425001238">Sempre restaurar</translation>
 <translation id="4798236378408895261">Anexar <ph name="BEGIN_LINK" />registros de Bluetooth<ph name="END_LINK" /> (interno do Google)</translation>
+<translation id="479863874072008121">Gerenciar dispositivos</translation>
 <translation id="4800839971935185386">Revisar atualizações de nome e ícone</translation>
 <translation id="4801448226354548035">Ocultar contas</translation>
 <translation id="4801512016965057443">Permitir roaming de dados móveis</translation>
@@ -4186,6 +4191,7 @@
 <translation id="526622169288322445">Mais ações para <ph name="ADDRESS_SUMMARY" /></translation>
 <translation id="5269977353971873915">Falha ao imprimir</translation>
 <translation id="5275352920323889391">Cachorro</translation>
+<translation id="527605719918376753">Desativar som da guia</translation>
 <translation id="527605982717517565">Sempre permitir JavaScript em <ph name="HOST" /></translation>
 <translation id="5277127016695466621">Mostrar painel lateral</translation>
 <translation id="5278823018825269962">ID de status</translation>
@@ -6464,6 +6470,7 @@
 <translation id="7658239707568436148">Cancelar</translation>
 <translation id="7659154729610375585">Sair do modo de navegação anônima mesmo assim?</translation>
 <translation id="7659297516559011665">Senhas apenas neste dispositivo</translation>
+<translation id="7659336857671800422">Consultar o Guia de privacidade</translation>
 <translation id="7659584679870740384">Você não tem autorização para usar este dispositivo. Para permissão de login, entre em contato com o administrador.</translation>
 <translation id="7661259717474717992">Permitir que os sites salvem e leiam os dados de arquivos "cookies" - que armazenam temporariamente o que você visitou na rede.</translation>
 <translation id="7661451191293163002">Não foi possível adquirir um certificado de registro.</translation>
@@ -7987,6 +7994,7 @@
 <translation id="9200339982498053969"><ph name="ORIGIN" /> poderá editar arquivos na pasta <ph name="FOLDERNAME" /></translation>
 <translation id="920045321358709304">Pesquisar <ph name="SEARCH_ENGINE" /></translation>
 <translation id="9201023452444595544">Todos os dados off-line serão removidos</translation>
+<translation id="9201117361710210082">Visualizado anteriormente</translation>
 <translation id="9201220332032049474">Opções de bloqueio de tela</translation>
 <translation id="9201842707396338580">Algo deu errado. Entre em contato com o proprietário ou administrador do dispositivo. Código do erro: <ph name="ERROR_CODE" />.</translation>
 <translation id="9203398526606335860">&amp;Criação de perfil ativada</translation>
diff --git a/chrome/app/resources/generated_resources_pt-PT.xtb b/chrome/app/resources/generated_resources_pt-PT.xtb
index 4754d5e..74993e2 100644
--- a/chrome/app/resources/generated_resources_pt-PT.xtb
+++ b/chrome/app/resources/generated_resources_pt-PT.xtb
@@ -4171,6 +4171,7 @@
 <translation id="526622169288322445">Mais ações para <ph name="ADDRESS_SUMMARY" /></translation>
 <translation id="5269977353971873915">Falha de Impressão</translation>
 <translation id="5275352920323889391">Cão</translation>
+<translation id="527605719918376753">Desativar som do separador</translation>
 <translation id="527605982717517565">Permitir sempre JavaScript em <ph name="HOST" /></translation>
 <translation id="5277127016695466621">Mostre o painel lateral</translation>
 <translation id="5278823018825269962">ID de estado</translation>
diff --git a/chrome/app/resources/generated_resources_ro.xtb b/chrome/app/resources/generated_resources_ro.xtb
index 9f15abd..0a873cb4 100644
--- a/chrome/app/resources/generated_resources_ro.xtb
+++ b/chrome/app/resources/generated_resources_ro.xtb
@@ -1694,6 +1694,7 @@
 <translation id="2684004000387153598">Pentru a continua, dă clic pe OK, apoi pe Adaugă o persoană pentru a crea un profil nou pentru adresa de e-mail.</translation>
 <translation id="2687403674020088961">Blochează toate cookie-urile (nu este recomandat)</translation>
 <translation id="2687407218262674387">Termenii și condițiile Google</translation>
+<translation id="2687621393791886981">Întreabă-mă mai târziu</translation>
 <translation id="2688196195245426394">Eroare la înregistrarea gadgetului pe server: <ph name="CLIENT_ERROR" />.</translation>
 <translation id="2690024944919328218">Afișează opțiunile de limbă</translation>
 <translation id="2691385045260836588">Model</translation>
@@ -4174,6 +4175,7 @@
 <translation id="526622169288322445">Mai multe acțiuni pentru <ph name="ADDRESS_SUMMARY" /></translation>
 <translation id="5269977353971873915">Printarea a eșuat</translation>
 <translation id="5275352920323889391">Câine</translation>
+<translation id="527605719918376753">Dezactivează sunetul filei</translation>
 <translation id="527605982717517565">Permite întotdeauna JavaScript pe <ph name="HOST" /></translation>
 <translation id="5277127016695466621">Afișează panoul lateral</translation>
 <translation id="5278823018825269962">Cod de stare</translation>
@@ -7210,6 +7212,7 @@
 <translation id="8410775397654368139">Google Play</translation>
 <translation id="8412136526970428322">Permisiuni acordate: <ph name="PERMISSION" /> și încă <ph name="COUNT" /></translation>
 <translation id="8413385045638830869">Mai întâi întreabă (recomandat)</translation>
+<translation id="8414249071344507766">Amintirile sunt ascunse timp de două zile</translation>
 <translation id="8416730306157376817"><ph name="BATTERY_PERCENTAGE" /> % (carcasă)</translation>
 <translation id="8417548266957501132">Parola părintelui</translation>
 <translation id="8418445294933751433">&amp;Afișează ca filă</translation>
diff --git a/chrome/app/resources/generated_resources_ru.xtb b/chrome/app/resources/generated_resources_ru.xtb
index 44efae8..fb9b7e8 100644
--- a/chrome/app/resources/generated_resources_ru.xtb
+++ b/chrome/app/resources/generated_resources_ru.xtb
@@ -1024,6 +1024,7 @@
 <translation id="2022395138980869975">Показать или скрыть боковую панель поиска</translation>
 <translation id="2023167225947895179">PIN-код слишком простой</translation>
 <translation id="202352106777823113">Скачивание остановлено, так как превышено время ожидания.</translation>
+<translation id="2024195579772565064">Удалить поисковую систему?</translation>
 <translation id="2025632980034333559">Произошел сбой <ph name="APP_NAME" />. Нажмите на это сообщение, чтобы вновь загрузить это расширение.</translation>
 <translation id="2028449514182362831">Функции, которые используют датчики движения, не будут работать</translation>
 <translation id="202918510990975568">Чтобы настроить параметры безопасности и входа, введите пароль.</translation>
@@ -1052,7 +1053,7 @@
 <translation id="2048554637254265991">Не удалось запустить менеджер контейнеров. Повторите попытку.</translation>
 <translation id="2048653237708779538">Действие недоступно</translation>
 <translation id="204914487372604757">Создать ярлык</translation>
-<translation id="2050339315714019657">Книжная</translation>
+<translation id="2050339315714019657">Вертикальное расположение</translation>
 <translation id="2053312383184521053">Данные о состоянии бездействия</translation>
 <translation id="2054240652864153171">Удалить данные <ph name="SITE_NAME" />, секционированные на сайте <ph name="PARTITION_SITE_NAME" />?</translation>
 <translation id="2055585478631012616">Вы автоматически выйдете из аккаунта на этих сайтах (в том числе на открытых вкладках).</translation>
@@ -1165,6 +1166,7 @@
 <translation id="2159488579268505102">USB-C</translation>
 <translation id="216169395504480358">Добавить подключение по Wi-Fi...</translation>
 <translation id="2162155940152307086">Синхронизация начнется, когда вы покинете страницу с настройками синхронизации.</translation>
+<translation id="2162926944953615670">Нет доступных профилей eSIM.</translation>
 <translation id="2163470535490402084">Чтобы войти в аккаунт на устройстве <ph name="DEVICE_TYPE" />, требуется подключение к Интернету.</translation>
 <translation id="2163937499206714165">Включить тёмную тему</translation>
 <translation id="2164131635608782358"><ph name="FIRST_SWITCH" />, <ph name="SECOND_SWITCH" />, <ph name="THIRD_SWITCH" /> и ещё 1 переключатель</translation>
@@ -1856,6 +1858,7 @@
 <translation id="2828650939514476812">Подключитесь к сети Wi-Fi</translation>
 <translation id="2831430281393059038">Устройство поддерживается.</translation>
 <translation id="2832124733806557606">Ребенок может использовать PIN-код для входа в аккаунт или разблокировки устройства.</translation>
+<translation id="2835177225987815960">Текущие настройки сканирования будут сброшены, включая назначенные переключатели и скорость автосканирования.</translation>
 <translation id="2835547721736623118">Сервис распознавания речи</translation>
 <translation id="2836269494620652131">Сбой</translation>
 <translation id="2836635946302913370">Вход с этим именем пользователя запрещен администратором.</translation>
@@ -3500,6 +3503,7 @@
 <translation id="4547659257713117923">Нет вкладок с других устройств</translation>
 <translation id="4547672827276975204">Автоматическое определение</translation>
 <translation id="4549791035683739768">На вашем электронном ключе нет сохраненных отпечатков пальцев.</translation>
+<translation id="4550926046134589611">Некоторые поддерживаемые ссылки будут по-прежнему открываться в приложении "<ph name="APP_NAME" />".</translation>
 <translation id="4551763574344810652">Чтобы отменить действие, нажмите <ph name="MODIFIER_KEY_DESCRIPTION" /></translation>
 <translation id="4553526521109675518">Чтобы изменить язык устройства, нужно перезапустить Chromebook. <ph name="BEGIN_LINK_LEARN_MORE" />Подробнее…<ph name="END_LINK_LEARN_MORE" /></translation>
 <translation id="4554491709904933912">Выделять изображения перетаскиванием курсора для поиска с помощью функции "<ph name="VISUAL_SEARCH_PROVIDER" />"</translation>
@@ -3788,6 +3792,7 @@
 <translation id="48704129375571883">Добавить ещё функции</translation>
 <translation id="4870758487381879312">Чтобы просмотреть сведения о конфигурации, введите пароль, полученный от администратора</translation>
 <translation id="4870903493621965035">Нет подключенных устройств</translation>
+<translation id="4870995365819149457">Некоторые поддерживаемые ссылки будут по-прежнему открываться в приложениях "<ph name="APP_NAME" />", "<ph name="APP_NAME_2" />", "<ph name="APP_NAME_3" />" и ещё в 1 сервисе.</translation>
 <translation id="4871308555310586478">Не из Интернет-магазина Chrome.</translation>
 <translation id="4871322859485617074">PIN-код содержит недопустимые символы.</translation>
 <translation id="4871370605780490696">Добавить закладку</translation>
@@ -4164,6 +4169,7 @@
 <translation id="526622169288322445">Другие действия с адресом <ph name="ADDRESS_SUMMARY" /></translation>
 <translation id="5269977353971873915">Печать не выполнена</translation>
 <translation id="5275352920323889391">Собака</translation>
+<translation id="527605719918376753">Отключение звука на вкладке</translation>
 <translation id="527605982717517565">Всегда разрешать JavaScript для сайта <ph name="HOST" /></translation>
 <translation id="5277127016695466621">Показать боковую панель</translation>
 <translation id="5278823018825269962">Идентификатор состояния</translation>
@@ -4823,6 +4829,7 @@
 <translation id="5969728632630673489">Уведомление о сочетаниях клавиш закрыто</translation>
 <translation id="5971037678316050792">Управление состоянием адаптера Bluetooth и подключением</translation>
 <translation id="597235323114979258">Другие места назначения печати</translation>
+<translation id="5972543790327947908">Некоторые поддерживаемые ссылки будут по-прежнему открываться в приложениях "<ph name="APP_NAME" />", "<ph name="APP_NAME_2" />" и "<ph name="APP_NAME_3" />".</translation>
 <translation id="5972666587303800813">No-op</translation>
 <translation id="5972708806901999743">К началу</translation>
 <translation id="5972826969634861500">Запустить <ph name="PRODUCT_NAME" /></translation>
@@ -5193,6 +5200,7 @@
 <translation id="6355789186038748882">Это экспериментальный браузер (альфа-версия). Некоторые функции в нем могут отсутствовать или работать в ограниченном режиме. Чтобы сообщить о проблемах, нажмите "Справка &gt; Сообщить о проблеме".</translation>
 <translation id="635609604405270300">Не выключайте устройство.</translation>
 <translation id="63566973648609420">Ваши зашифрованные данные может прочитать только тот, кто знает кодовую фразу. Она не пересылается и не хранится в Google. Если вы забудете фразу или решите изменить эту настройку, вам придется <ph name="BEGIN_LINK" />сбросить параметры синхронизации<ph name="END_LINK" />.</translation>
+<translation id="6357305427698525450">Некоторые поддерживаемые ссылки будут по-прежнему открываться в приложениях "<ph name="APP_NAME" />" и "<ph name="APP_NAME_2" />".</translation>
 <translation id="6358884629796491903">Дракон</translation>
 <translation id="6359706544163531585">Отключить светлую тему</translation>
 <translation id="6361850914223837199">Сведения об ошибке:</translation>
@@ -5263,7 +5271,7 @@
 <translation id="6430814529589430811">Единый сертификат ASCII с кодировкой Base64</translation>
 <translation id="6431347207794742960"><ph name="PRODUCT_NAME" /> настроит автоматические обновления для всех пользователей на этом компьютере.</translation>
 <translation id="6434104957329207050">Скорость точечного сканирования</translation>
-<translation id="6434309073475700221">Закрыть</translation>
+<translation id="6434309073475700221">Отменить</translation>
 <translation id="6434325376267409267">Чтобы использовать <ph name="APP_NAME" />, установите на устройство обновление системы.</translation>
 <translation id="6436164536244065364">Просмотреть в Интернет-магазине</translation>
 <translation id="6436610005579237680">Чтобы получать более точные ответы, предоставьте Google Ассистенту доступ к содержимому экрана, в том числе к сведениям о воспроизводимых композициях и видеороликах.</translation>
@@ -5711,6 +5719,7 @@
 <translation id="6900284862687837908">Фоновое приложение: <ph name="BACKGROUND_APP_URL" /></translation>
 <translation id="6900532703269623216">Улучшенная защита</translation>
 <translation id="6900651018461749106">Чтобы обновить аккаунт <ph name="USER_EMAIL" />, войдите ещё раз</translation>
+<translation id="6900654715912436255">Удалить эту поисковую систему?</translation>
 <translation id="6902066522699286937">Образец голоса</translation>
 <translation id="6902336033320348843">Раздел не поддерживается: <ph name="ERROR_LINE" />.</translation>
 <translation id="6902837902700739466">Подключите устройство к домену</translation>
@@ -5982,6 +5991,7 @@
 <translation id="7189234443051076392">Убедитесь, что на вашем устройстве достаточно свободного места.</translation>
 <translation id="7189451821249468368">Недостаточно лицензий для регистрации устройства. Чтобы решить эту проблему, свяжитесь с отделом продаж. Если вы считаете, что произошла ошибка, обратитесь в службу поддержки.</translation>
 <translation id="7189965711416741966">Отпечаток добавлен.</translation>
+<translation id="7191063546666816478">Некоторые поддерживаемые ссылки будут по-прежнему открываться в приложениях "<ph name="APP_NAME" />", "<ph name="APP_NAME_2" />", "<ph name="APP_NAME_3" />" и ещё в нескольких сервисах (<ph name="NUMBER_OF_OTHER_APPS" />).</translation>
 <translation id="7191159667348037">Неизвестный принтер (USB)</translation>
 <translation id="7193051357671784796">Это приложение добавила ваша организация. Перезапустите его, чтобы завершить установку.</translation>
 <translation id="7193374945610105795">Для сайта <ph name="ORIGIN" /> нет сохраненных паролей</translation>
@@ -7851,7 +7861,7 @@
 <translation id="9088234649737575428">Плагин "<ph name="PLUGIN_NAME" />" заблокирован в соответствии с корпоративной политикой</translation>
 <translation id="9088446193279799727">Не удалось настроить Linux. Подключитесь к Интернету и повторите попытку.</translation>
 <translation id="9088917181875854783">Подтвердите ключ доступа, отображенный на экране "<ph name="DEVICE_NAME" />":</translation>
-<translation id="9089416786594320554">Методы ввода</translation>
+<translation id="9089416786594320554">Способы ввода</translation>
 <translation id="9090044809052745245">Под этим названием устройство будет отображаться у других.</translation>
 <translation id="9094033019050270033">Обновить пароль</translation>
 <translation id="9094038138851891550">Недопустимое имя пользователя.</translation>
diff --git a/chrome/app/resources/generated_resources_si.xtb b/chrome/app/resources/generated_resources_si.xtb
index eb45cab6..ca8c9e7ae 100644
--- a/chrome/app/resources/generated_resources_si.xtb
+++ b/chrome/app/resources/generated_resources_si.xtb
@@ -1023,6 +1023,7 @@
 <translation id="2022395138980869975">පැති සෙවීම ටොගල කරන්න</translation>
 <translation id="2023167225947895179">PIN අංකය පහසුවෙන් අනුමාන කළ හැක</translation>
 <translation id="202352106777823113">මෙම බාගැනීමට විශාල කාලයක් ගතවූ බැවින් ජාලය වෙතින් නවතා දමන ලදී.</translation>
+<translation id="2024195579772565064">සෙවීම් යාන්ත්‍රණය මකන්න</translation>
 <translation id="2025632980034333559"><ph name="APP_NAME" /> පුපුරා ඇත. දිගුව නැවත පැටවීමට මෙම බැලූනය ක්ලික් කරන්න.</translation>
 <translation id="2028449514182362831">චලන සංවේදක අවශ්‍ය විශේෂාංග ක්‍රියා නොකරනු ඇත</translation>
 <translation id="202918510990975568">සුරක්‍ෂිතතාව වින්‍යාස කර පුරනය වීමට ඔබගේ මුරපදය ඇතුළු කරන්න</translation>
@@ -1164,6 +1165,7 @@
 <translation id="2159488579268505102">USB-C</translation>
 <translation id="216169395504480358">Wi-Fi එක් කරන්න...</translation>
 <translation id="2162155940152307086">ඔබ සමමුහුර්ත සැකසීම් හැර ගිය පසු සමමුහුර්තය ඇරඹෙනු ඇත</translation>
+<translation id="2162926944953615670">ලබා ගත හැකි eSIM පැතිකඩවල් නැත</translation>
 <translation id="2163470535490402084">ඔබේ <ph name="DEVICE_TYPE" /> වෙත පිරීමට කරුණාකර අන්තර්ජාලයට සබඳින්න.</translation>
 <translation id="2163937499206714165">අඳුරු ප්‍රකාරය ක්‍රියාත්මක කරන්න</translation>
 <translation id="2164131635608782358"><ph name="FIRST_SWITCH" />, <ph name="SECOND_SWITCH" />, <ph name="THIRD_SWITCH" />, සහ තවත් ස්විච 1</translation>
@@ -1693,6 +1695,7 @@
 <translation id="2684004000387153598">ඉදිරියට යාමට, හරි ක්ලික් කරන්න, අනතුරුව ඔබේ ඊ-තැපැල් ලිපිනය සඳහා නව පැතිකඩක් සෑදීමට පුද්ගලයා එක් කරන්න ක්ලික් කරන්න.</translation>
 <translation id="2687403674020088961">සියලුම කුකී අවහිර කරන්න (නිර්දේශ නොකෙරේ)</translation>
 <translation id="2687407218262674387">Google සේවා නියමයන්</translation>
+<translation id="2687621393791886981">පසුව මගෙන් අසන්න</translation>
 <translation id="2688196195245426394">සේවාදායකය සමඟ උපාංගය ලියාපදිංචි කිරීමේ දෝශයක්: <ph name="CLIENT_ERROR" />.</translation>
 <translation id="2690024944919328218">භාෂා විකල්ප පෙන්වන්න</translation>
 <translation id="2691385045260836588">මාදිලිය</translation>
@@ -1858,6 +1861,7 @@
 <translation id="2828650939514476812">Wi-Fi ජාලයකට සම්බන්ධ වන්න</translation>
 <translation id="2831430281393059038">උපාංගයට සහාය දක්වයි</translation>
 <translation id="2832124733806557606">උපාංගයට පිරීමට හෝ අගුලු හැරීමට ඔබගේ දරුවාට PIN එකක් භාවිත කළ හැකිය.</translation>
+<translation id="2835177225987815960">ඔබගේ වත්මන් ස්කෑන් කිරීමේ පිහිටුම, පවරා ඇති ඕනෑම ස්විචයක් සහ ස්වයංක්‍රීය ස්කෑන් කිරීම් වේග මනාප ඇතුළුව යළි සකසනු ඇත.</translation>
 <translation id="2835547721736623118">කථන හඳුනා ගැනීමේ සේවය</translation>
 <translation id="2836269494620652131">බිඳවැටීම</translation>
 <translation id="2836635946302913370">මෙම භාවිතනම සමඟ එවීම ඔබේ පරිපාලක විසින් අක්‍රිය කරන ලදි.</translation>
@@ -3503,6 +3507,7 @@
 <translation id="4547659257713117923">වෙනත් උපාංග වෙතින් පටිති නොමැත</translation>
 <translation id="4547672827276975204">ස්වයංක්‍රීයව සකසන්න</translation>
 <translation id="4549791035683739768">ඔබේ ආරක්‍ෂක යතුරට ගබඩ කළ ඇඟිලි සලකුණු නැත</translation>
+<translation id="4550926046134589611">සමහර සහාය දක්වන සබැඳි තවම <ph name="APP_NAME" /> තුළ විවෘතව තිබෙනු ඇත.</translation>
 <translation id="4551763574344810652">අස් කිරීමට <ph name="MODIFIER_KEY_DESCRIPTION" /> ඔබන්න</translation>
 <translation id="4553526521109675518">උපාංග භාෂාව වෙනස් කිරීමට ඔබ ඔබේ Chromebook යළි ඇරඹීමට අවශ්‍යයි. <ph name="BEGIN_LINK_LEARN_MORE" />තවත් දැන ගන්න<ph name="END_LINK_LEARN_MORE" /></translation>
 <translation id="4554491709904933912"><ph name="VISUAL_SEARCH_PROVIDER" /> සමග සෙවීමට රූපවලට උඩින් අදින්න</translation>
@@ -3791,6 +3796,7 @@
 <translation id="48704129375571883">අතිරේක විශේෂාංග එක් කරන්න</translation>
 <translation id="4870758487381879312">වින්‍යාස තොරතුරු ලබා ගැනීමට පරිපාලකයා ලබා දුන් මුරපදය ඇතුළත් කරන්න</translation>
 <translation id="4870903493621965035">යුගල කළ උපාංග නැත</translation>
+<translation id="4870995365819149457">සමහර සහාය දක්වන සබැඳි තවම <ph name="APP_NAME" />, <ph name="APP_NAME_2" />, <ph name="APP_NAME_3" /> සහ තවත් යෙදුම් 1ක් තුළ විවෘතව තිබෙනු ඇත.</translation>
 <translation id="4871308555310586478">Chrome Web Store වෙතින් නොවේ.</translation>
 <translation id="4871322859485617074">රහස් අංකයේ අවලංගු අනුලකුණු අඩංගු ය</translation>
 <translation id="4871370605780490696">පිටු සලකුණ එක් කරන්න</translation>
@@ -4167,6 +4173,7 @@
 <translation id="526622169288322445"><ph name="ADDRESS_SUMMARY" /> සඳහා තවත් ක්‍රියා</translation>
 <translation id="5269977353971873915">මුදණය අසාර්ථක විය</translation>
 <translation id="5275352920323889391">බල්ලා</translation>
+<translation id="527605719918376753">ටැබය නිහඬ කරන්න</translation>
 <translation id="527605982717517565"><ph name="HOST" /> මත සැමවිට JavaScript ඉඩ දෙන්න</translation>
 <translation id="5277127016695466621">පැති පැනලය පෙන්වන්න</translation>
 <translation id="5278823018825269962">තත්ත්ව හැඳුනුම</translation>
@@ -4827,6 +4834,7 @@
 <translation id="5969728632630673489">යතුරු පුවරු කෙටි මං දැන්වීම ඉවත ලන ලදි</translation>
 <translation id="5971037678316050792">Bluetooth ඇඩැප්ටර තත්වය හා යුගල කිරීම</translation>
 <translation id="597235323114979258">තවත් ගමනාන්ත බලන්න</translation>
+<translation id="5972543790327947908">සමහර සහාය දක්වන සබැඳි තවම <ph name="APP_NAME" />, <ph name="APP_NAME_2" /> හෝ <ph name="APP_NAME_3" /> තුළ විවෘතව තිබෙනු ඇත.</translation>
 <translation id="5972666587303800813">ඇතුළු නොවීම් සේවය</translation>
 <translation id="5972708806901999743">මුදුනට ගෙන යන්න</translation>
 <translation id="5972826969634861500">ආරම්භ කරන්න <ph name="PRODUCT_NAME" /></translation>
@@ -5197,6 +5205,7 @@
 <translation id="6355789186038748882">අත්හදා බැලීමේ (ඇල්ෆා-ගුණත්ව) බ්‍රව්සරය! සමහර විශේෂාංග අස්ථානගත හෝ අසම්පූර්ණයි. ගැටලු මෙලෙස වාර්තා කරන්න: උදවු &gt; "ගැටලුවක් වාර්තා කරන්න...".</translation>
 <translation id="635609604405270300">උපාංගය සක්‍රීයව තබන්න</translation>
 <translation id="63566973648609420">සංකේතනය කළ දත්ත කියවිය හැක්කේ ඔබේ මුරවැකිකඩ සහිත අයකුට පමණි. මෙම මුරවැකිකඩ Google වෙත යැවීම හෝ ගබඩා කර ගැනීම නොකෙරේ. ඔබට ඔබේ මුරවැකිකඩ අමතක නම් හෝ මෙම සැකසීම් වෙනස් කිරීමට අවශ්‍ය නම්, ඔබ <ph name="BEGIN_LINK" />සමමුහුර්ත කිරීම යළි සැකසීම<ph name="END_LINK" /> අවශ්‍ය වනු ඇත.</translation>
+<translation id="6357305427698525450">සමහර සහාය දක්වන සබැඳි තවම <ph name="APP_NAME" /> හෝ  <ph name="APP_NAME_2" /> තුළ විවෘතව තිබෙනු ඇත.</translation>
 <translation id="6358884629796491903">මකරා</translation>
 <translation id="6359706544163531585">ආලෝක තේමාව අබල කරන්න</translation>
 <translation id="6361850914223837199">දෝශ විස්තර:</translation>
@@ -5713,6 +5722,7 @@
 <translation id="6900284862687837908">පසුබිම් යෙදුම: <ph name="BACKGROUND_APP_URL" /></translation>
 <translation id="6900532703269623216">වැඩිදියුණු කළ ආරක්ෂාව</translation>
 <translation id="6900651018461749106"><ph name="USER_EMAIL" /> යාවත්කාලීන කිරීමට නැවත පුරන්න</translation>
+<translation id="6900654715912436255">ඔබට මෙම සෙවීම් යාන්ත්‍රණය මැකීමට අවශ්‍ය බව විශ්වාසද?</translation>
 <translation id="6902066522699286937">පෙරදසුන සඳහා කටහඬ</translation>
 <translation id="6902336033320348843">සහය නොදැක්වෙන කොටස: <ph name="ERROR_LINE" /></translation>
 <translation id="6902837902700739466">උපාංගය වසමට එකතු කරන්න</translation>
@@ -5984,6 +5994,7 @@
 <translation id="7189234443051076392">ඔබේ උපාංගයේ ප්‍රමාණවත් ඉඩක් ඇති බවට වග බලා ගන්න</translation>
 <translation id="7189451821249468368">මෙම උපාංගය ඇතුළත් කිරීමට ඔබට ප්‍රමාණවත් තරම් උත්ශ්‍රේණි කිරීම් නොමැත. තව මිල දී ගැනීමට විකුණුම් සම්බන්ධ කර ගන්න. ඔබ මෙම පණිවිඩය වැරදීමකින් දකින බව විශ්වාස කරන්නේ නම්, සහාය සම්බන්ධ කර ගන්න.</translation>
 <translation id="7189965711416741966">ඇඟිලි සලකුණ එක් කරන ලදි!</translation>
+<translation id="7191063546666816478">සමහර සහාය දක්වන සබැඳි තවම <ph name="APP_NAME" />, <ph name="APP_NAME_2" />, <ph name="APP_NAME_3" /> සහ තවත් යෙදුම් <ph name="NUMBER_OF_OTHER_APPS" />ක් තුළ විවෘතව තිබෙනු ඇත.</translation>
 <translation id="7191159667348037">නොදන්නා මුද්‍රකය (USB)</translation>
 <translation id="7193051357671784796">මෙම යෙදුම එක් කරනු ලැබුවේ ඔබේ සංවිධානය විසිනි. එය ස්ථාපන කිරීම අවසන් කිරීමට යළි අරඹන්න.</translation>
 <translation id="7193374945610105795"><ph name="ORIGIN" /> සඳහා මුරපද කිසිවක් සුරැකුවේ නැත</translation>
@@ -7195,6 +7206,7 @@
 <translation id="8410775397654368139">Google Play</translation>
 <translation id="8412136526970428322"><ph name="PERMISSION" /> සහ තවත් <ph name="COUNT" />ක් ඉඩ දේ</translation>
 <translation id="8413385045638830869">පළමුව අසන්න (නිර්දේශිතයි)</translation>
+<translation id="8414249071344507766">මතක දින දෙකක් සඟවනු ලැබේ</translation>
 <translation id="8416730306157376817"><ph name="BATTERY_PERCENTAGE" />% (කොපුව)</translation>
 <translation id="8417548266957501132">මාපිය මුරපදය</translation>
 <translation id="8418445294933751433">ටැබයක් ලෙස පෙන්වන්න</translation>
diff --git a/chrome/app/resources/generated_resources_sk.xtb b/chrome/app/resources/generated_resources_sk.xtb
index 46406c2..27cfa6e 100644
--- a/chrome/app/resources/generated_resources_sk.xtb
+++ b/chrome/app/resources/generated_resources_sk.xtb
@@ -1025,6 +1025,7 @@
 <translation id="2022395138980869975">Prepnúť bočné vyhľadávanie</translation>
 <translation id="2023167225947895179">PIN sa dá ľahko uhádnuť</translation>
 <translation id="202352106777823113">Sťahovanie trvalo príliš dlho a bolo zastavené sieťou.</translation>
+<translation id="2024195579772565064">Odstránenie vyhľadávača</translation>
 <translation id="2025632980034333559"><ph name="APP_NAME" /> zlyhalo. Rozšírenie obnovíte kliknutím na túto bublinu.</translation>
 <translation id="2028449514182362831">Funkcie vyžadujúce senzory pohybu nebudú fungovať</translation>
 <translation id="202918510990975568">Ak chcete konfigurovať zabezpečenie a prihlásenie, zadajte heslo</translation>
@@ -1166,6 +1167,7 @@
 <translation id="2159488579268505102">USB‑C</translation>
 <translation id="216169395504480358">Pridať Wi‑Fi…</translation>
 <translation id="2162155940152307086">Synchronizácia sa spustí, keď opustíte nastavenia synchronizácie</translation>
+<translation id="2162926944953615670">Nie sú k dispozícii žiadne profily eSIM</translation>
 <translation id="2163470535490402084">Ak sa chcete prihlásiť do zariadenia <ph name="DEVICE_TYPE" />, pripojte sa k internetu.</translation>
 <translation id="2163937499206714165">Zapnúť tmavý režim</translation>
 <translation id="2164131635608782358"><ph name="FIRST_SWITCH" />, <ph name="SECOND_SWITCH" />, <ph name="THIRD_SWITCH" /> a 1 ďalší prepínač</translation>
@@ -1860,6 +1862,7 @@
 <translation id="2828650939514476812">Pripojenie k sieti Wi‑Fi</translation>
 <translation id="2831430281393059038">Zariadenie je podporované</translation>
 <translation id="2832124733806557606">Vaše dieťa sa môže prihlásiť do zariadenia alebo ho odomknúť kódom PIN.</translation>
+<translation id="2835177225987815960">Aktuálne nastavenie prehľadávania bude resetované vrátane všetkých pridelených prepínačov a predvolieb rýchlosti automatického prehľadávania.</translation>
 <translation id="2835547721736623118">Služba rozpoznávania reči</translation>
 <translation id="2836269494620652131">Zrútenie</translation>
 <translation id="2836635946302913370">Správca zakázal prihlasovanie pomocou tohto používateľského mena.</translation>
@@ -3505,6 +3508,7 @@
 <translation id="4547659257713117923">Žiadne karty z iných zariadení</translation>
 <translation id="4547672827276975204">Nastaviť automaticky</translation>
 <translation id="4549791035683739768">V bezpečnostnom kľúči nie sú uložené žiadne odtlačky prstov</translation>
+<translation id="4550926046134589611">Niektoré podporované odkazy sa budú stále otvárať v aplikácii <ph name="APP_NAME" />.</translation>
 <translation id="4551763574344810652">Stlačením skratky <ph name="MODIFIER_KEY_DESCRIPTION" /> vrátite akciu späť</translation>
 <translation id="4553526521109675518">Ak chcete zmeniť jazyk zariadenia, musíte svoj Chromebook reštartovať. <ph name="BEGIN_LINK_LEARN_MORE" />Ďalšie informácie<ph name="END_LINK_LEARN_MORE" /></translation>
 <translation id="4554491709904933912">Presunutím cez obrázky spustiť vyhľadávanie pomocou funkcie <ph name="VISUAL_SEARCH_PROVIDER" /></translation>
@@ -3795,6 +3799,7 @@
 <translation id="48704129375571883">Pridať ďalšie funkcie</translation>
 <translation id="4870758487381879312">Ak chcete získať informácie o konfigurácii, zadajte heslo od správcu</translation>
 <translation id="4870903493621965035">Žiadne spárované zariadenia</translation>
+<translation id="4870995365819149457">Niektoré podporované odkazy sa budú stále otvárať v aplikáciách <ph name="APP_NAME" />, <ph name="APP_NAME_2" />, <ph name="APP_NAME_3" /> a 1 ďalšej.</translation>
 <translation id="4871308555310586478">Nepochádza z Internetového obchodu Chrome.</translation>
 <translation id="4871322859485617074">Kód PIN obsahuje neplatné znaky</translation>
 <translation id="4871370605780490696">Pridanie záložky</translation>
@@ -4171,6 +4176,7 @@
 <translation id="526622169288322445">Ďalšie akcie: <ph name="ADDRESS_SUMMARY" /></translation>
 <translation id="5269977353971873915">Zlyhanie tlače</translation>
 <translation id="5275352920323889391">Pes</translation>
+<translation id="527605719918376753">Stlmiť kartu</translation>
 <translation id="527605982717517565">Vždy povoliť jazyk JavaScript na stránkach <ph name="HOST" /></translation>
 <translation id="5277127016695466621">Zobraziť bočný panel</translation>
 <translation id="5278823018825269962">Identifikátor stavu</translation>
@@ -4830,6 +4836,7 @@
 <translation id="5969728632630673489">Upozornenie na klávesové skratky bolo zavreté</translation>
 <translation id="5971037678316050792">Ovládanie stavu a párovania adaptéra Bluetooth</translation>
 <translation id="597235323114979258">Zobraziť ďalšie cieľové tlačiarne</translation>
+<translation id="5972543790327947908">Niektoré podporované odkazy sa budú stále otvárať v aplikácii <ph name="APP_NAME" />, <ph name="APP_NAME_2" /> alebo <ph name="APP_NAME_3" />.</translation>
 <translation id="5972666587303800813">Neprevádzkovaná služba</translation>
 <translation id="5972708806901999743">Presunúť na začiatok</translation>
 <translation id="5972826969634861500">Spustiť <ph name="PRODUCT_NAME" /></translation>
@@ -5200,6 +5207,7 @@
 <translation id="6355789186038748882">Experimentálny (alfa kvalita) prehliadač. Niektoré funkcie chýbajú alebo sú neúplné. Problémy nahláste v sekcii Pomocník &gt; Nahlásiť problém…</translation>
 <translation id="635609604405270300">Ponechajte zariadenie zapnuté</translation>
 <translation id="63566973648609420">Šifrované údaje môže čítať iba používateľ s prístupovou frázou. Prístupová fráza sa do Googlu neodosiela a Google ju ani neukladá. Ak zabudnete prístupovú frázu alebo budete chcieť zmeniť toto nastavenie zmeniť, musíte <ph name="BEGIN_LINK" />resetovať synchronizáciu<ph name="END_LINK" />.</translation>
+<translation id="6357305427698525450">Niektoré podporované odkazy sa budú stále otvárať v aplikácii <ph name="APP_NAME" /> alebo <ph name="APP_NAME_2" />.</translation>
 <translation id="6358884629796491903">Drak</translation>
 <translation id="6359706544163531585">Vypnúť svetlý motív</translation>
 <translation id="6361850914223837199">Podrobnosti chyby:</translation>
@@ -5718,6 +5726,7 @@
 <translation id="6900284862687837908">Aplikácia na pozadí: <ph name="BACKGROUND_APP_URL" /></translation>
 <translation id="6900532703269623216">Rozšírená ochrana</translation>
 <translation id="6900651018461749106">Prihláste sa znova a aktualizujte účet <ph name="USER_EMAIL" /></translation>
+<translation id="6900654715912436255">Naozaj chcete odstrániť tento vyhľadávač?</translation>
 <translation id="6902066522699286937">Hlas, ktorého ukážku si chcete vypočuť</translation>
 <translation id="6902336033320348843">Sekcia nie je podporovaná: <ph name="ERROR_LINE" /></translation>
 <translation id="6902837902700739466">Pripojte zariadenie k doméne</translation>
@@ -5989,6 +5998,7 @@
 <translation id="7189234443051076392">Uistite sa, či máte v zariadení dosť miesta</translation>
 <translation id="7189451821249468368">Nemáte dostatočný počet inovácií na registráciu tohto zariadenia. Kontaktujte obchodné oddelenie a kúpte si ďalšie. Ak sa domnievate, že ide o chybu, kontaktujte podporu.</translation>
 <translation id="7189965711416741966">Odtlačok prsta bol pridaný.</translation>
+<translation id="7191063546666816478">Niektoré podporované odkazy sa budú stále otvárať v aplikáciách <ph name="APP_NAME" />, <ph name="APP_NAME_2" />, <ph name="APP_NAME_3" /> a <ph name="NUMBER_OF_OTHER_APPS" /> ďalších aplikáciách</translation>
 <translation id="7191159667348037">Neznáma tlačiareň (USB)</translation>
 <translation id="7193051357671784796">Túto aplikáciu pridala vaša organizácia. Ak chcete dokončiť jej inštaláciu, reštartujte ju.</translation>
 <translation id="7193374945610105795">Žiadne uložené heslá pre <ph name="ORIGIN" /></translation>
diff --git a/chrome/app/resources/generated_resources_sl.xtb b/chrome/app/resources/generated_resources_sl.xtb
index 5767660..db82620 100644
--- a/chrome/app/resources/generated_resources_sl.xtb
+++ b/chrome/app/resources/generated_resources_sl.xtb
@@ -4187,6 +4187,7 @@
 <translation id="526622169288322445">Več dejanj za <ph name="ADDRESS_SUMMARY" /></translation>
 <translation id="5269977353971873915">Tiskanje ni uspelo</translation>
 <translation id="5275352920323889391">Pes</translation>
+<translation id="527605719918376753">Izklop zvoka zavihka</translation>
 <translation id="527605982717517565">Vedno dovoli JavaScript na mestu <ph name="HOST" /></translation>
 <translation id="5277127016695466621">Pokaži stransko podokno</translation>
 <translation id="5278823018825269962">ID stanja</translation>
diff --git a/chrome/app/resources/generated_resources_sq.xtb b/chrome/app/resources/generated_resources_sq.xtb
index 6a1509c6..32f8f32e 100644
--- a/chrome/app/resources/generated_resources_sq.xtb
+++ b/chrome/app/resources/generated_resources_sq.xtb
@@ -1019,6 +1019,7 @@
 <translation id="2022395138980869975">Shfaq/fshih kërkimin anësor</translation>
 <translation id="2023167225947895179">Kodi PIN mund të jetë i lehtë për t'u gjetur</translation>
 <translation id="202352106777823113">Shkarkimi po vonohej dhe u ndalua nga rrjeti.</translation>
+<translation id="2024195579772565064">Fshi motorin e kërkimit</translation>
 <translation id="2025632980034333559"><ph name="APP_NAME" /> është ndërprerë aksidentalisht. Kliko te kjo balonë për të ngarkuar përsëri shtesën.</translation>
 <translation id="2028449514182362831">Veçoritë që kanë nevojë për sensorët e lëvizjes nuk do të funksionojnë</translation>
 <translation id="202918510990975568">Fut fjalëkalimin për të konfiguruar sigurinë dhe identifikimin</translation>
@@ -1160,6 +1161,7 @@
 <translation id="2159488579268505102">USB-C</translation>
 <translation id="216169395504480358">Shto Wi-Fi...</translation>
 <translation id="2162155940152307086">Sinkronizimi do të fillojë pasi të largohesh nga cilësimet e sinkronizimit</translation>
+<translation id="2162926944953615670">Nuk ofrohet asnjë profil karte eSIM</translation>
 <translation id="2163470535490402084">Lidhu në internet për t'u futur te pajisja <ph name="DEVICE_TYPE" />.</translation>
 <translation id="2163937499206714165">Aktivizo modalitetin e errët</translation>
 <translation id="2164131635608782358"><ph name="FIRST_SWITCH" />, <ph name="SECOND_SWITCH" />, <ph name="THIRD_SWITCH" /> dhe 1 çelës tjetër</translation>
@@ -1852,6 +1854,7 @@
 <translation id="2828650939514476812">Lidhu me rrjetin Wi-Fi</translation>
 <translation id="2831430281393059038">Pajisja mbështetet</translation>
 <translation id="2832124733806557606">Fëmija yt mund të përdorë një PIN për t'u identifikuar ose për të shkyçur pajisjen.</translation>
+<translation id="2835177225987815960">Konfigurimi yt aktual i skanimit do të rivendoset, duke përfshirë çdo çelës të caktuar dhe preferencë të shpejtësisë së skanimit automatik.</translation>
 <translation id="2835547721736623118">Shërbimi i njohjes së ligjërimit</translation>
 <translation id="2836269494620652131">Ndërprerje aksidentale</translation>
 <translation id="2836635946302913370">Identifikimi me këtë emër përdoruesi është çaktivizuar nga administratori yt.</translation>
@@ -3496,6 +3499,7 @@
 <translation id="4547659257713117923">Asnjë skedë nga pajisjet e tjera</translation>
 <translation id="4547672827276975204">Cakto automatikisht</translation>
 <translation id="4549791035683739768">Çelësi yt i sigurisë nuk ka gjurmë gishtash të ruajtura</translation>
+<translation id="4550926046134589611">Disa lidhje të mbështetura do të vazhdojnë të hapen në <ph name="APP_NAME" />.</translation>
 <translation id="4551763574344810652">Shtyp <ph name="MODIFIER_KEY_DESCRIPTION" /> për ta zhbërë</translation>
 <translation id="4553526521109675518">Duhet të rinisësh pajisjen tënde Chromebook për të ndryshuar gjuhën e pajisjes. <ph name="BEGIN_LINK_LEARN_MORE" />Mëso më shumë<ph name="END_LINK_LEARN_MORE" /></translation>
 <translation id="4554491709904933912">Zvarrit mbi imazhe për të kërkuar me <ph name="VISUAL_SEARCH_PROVIDER" /></translation>
@@ -3784,6 +3788,7 @@
 <translation id="48704129375571883">Shto funksione të tjera</translation>
 <translation id="4870758487381879312">Fut fjalëkalimin e dhënë nga administratori për të marrë informacionin e konfigurimit</translation>
 <translation id="4870903493621965035">Nuk ka pajisje të çiftuara</translation>
+<translation id="4870995365819149457">Disa lidhje të mbështetura do të vazhdojnë të hapen në <ph name="APP_NAME" />, <ph name="APP_NAME_2" />, <ph name="APP_NAME_3" /> dhe 1 aplikacion tjetër.</translation>
 <translation id="4871308555310586478">Nuk është nga "Dyqani i uebit i Chrome"</translation>
 <translation id="4871322859485617074">Kodi PIN përmban karaktere të pavlefshme</translation>
 <translation id="4871370605780490696">Shto faqeshënues</translation>
@@ -4160,6 +4165,7 @@
 <translation id="526622169288322445">Më shumë veprime për "<ph name="ADDRESS_SUMMARY" />"</translation>
 <translation id="5269977353971873915">Printimi dështoi</translation>
 <translation id="5275352920323889391">Qen</translation>
+<translation id="527605719918376753">Çaktivizo zërin e skedës</translation>
 <translation id="527605982717517565">Lejo gjithmonë JavaScript në <ph name="HOST" /></translation>
 <translation id="5277127016695466621">Shfaq panelin anësor</translation>
 <translation id="5278823018825269962">ID-ja e statusit</translation>
@@ -4819,6 +4825,7 @@
 <translation id="5969728632630673489">Njoftimi për shkurtoren e tastierës u shpërfill</translation>
 <translation id="5971037678316050792">Kontrollo gjendjen dhe çiftimin e përshtatësit me Bluetooth</translation>
 <translation id="597235323114979258">Shiko më shumë destinacione</translation>
+<translation id="5972543790327947908">Disa lidhje të mbështetura do të vazhdojnë të hapen në <ph name="APP_NAME" />, <ph name="APP_NAME_2" /> ose <ph name="APP_NAME_3" />.</translation>
 <translation id="5972666587303800813">Shërbim pa veprim</translation>
 <translation id="5972708806901999743">Zhvendose në krye</translation>
 <translation id="5972826969634861500">Nis <ph name="PRODUCT_NAME" /></translation>
@@ -5189,6 +5196,7 @@
 <translation id="6355789186038748882">Shfletuesi eksperimental (cilësia alfa)! Disa veçori mungojnë ose nuk janë të plota. Raporto problemet me: Ndihma &gt; "Raporto një problem...".</translation>
 <translation id="635609604405270300">Mbaje pajisjen të aktivizuar</translation>
 <translation id="63566973648609420">Vetëm dikush me frazën tënde të kalimit mund të lexojë të dhënat e tua të koduara. Kjo frazë kalimi nuk dërgohet te Google dhe as nuk ruhet nga ai. Nëse e harron frazën tënde të kalimit apo dëshiron të ndryshosh këtë cilësim, duhet që të <ph name="BEGIN_LINK" />rivendosësh sinkronizimin<ph name="END_LINK" />.</translation>
+<translation id="6357305427698525450">Disa lidhje të mbështetura do të vazhdojnë të hapen në <ph name="APP_NAME" /> ose <ph name="APP_NAME_2" />.</translation>
 <translation id="6358884629796491903">Dragua</translation>
 <translation id="6359706544163531585">Çaktivizo temën e ndriçuar</translation>
 <translation id="6361850914223837199">Detajet e gabimit:</translation>
@@ -5707,6 +5715,7 @@
 <translation id="6900284862687837908">Aplikacioni i sfondit: <ph name="BACKGROUND_APP_URL" /></translation>
 <translation id="6900532703269623216">Mbrojtja e përmirësuar</translation>
 <translation id="6900651018461749106">Identifikohu përsëri për të përditësuar <ph name="USER_EMAIL" /></translation>
+<translation id="6900654715912436255">E konfirmon që dëshiron ta fshish këtë motor kërkimi?</translation>
 <translation id="6902066522699286937">Zëri për të shikuar paraprakisht</translation>
 <translation id="6902336033320348843">Seksioni nuk mbështetet: <ph name="ERROR_LINE" /></translation>
 <translation id="6902837902700739466">Bashko pajisjen me domenin</translation>
@@ -5978,6 +5987,7 @@
 <translation id="7189234443051076392">Sigurohu që ka hapësirë ​​të mjaftueshme në pajisjen tënde</translation>
 <translation id="7189451821249468368">Nuk ke përmirësime të mjaftueshme për të regjistruar këtë pajisje. Kontakto me ekipin e shitjeve për të blerë më shumë. Nëse beson se po e shikon gabimisht këtë mesazh, kontakto me ekipin e mbështetjes.</translation>
 <translation id="7189965711416741966">Gjurma e gishtit u shtua.</translation>
+<translation id="7191063546666816478">Disa lidhje të mbështetura do të vazhdojnë të hapen në <ph name="APP_NAME" />, <ph name="APP_NAME_2" />, <ph name="APP_NAME_3" /> dhe <ph name="NUMBER_OF_OTHER_APPS" /> aplikacione të tjera.</translation>
 <translation id="7191159667348037">Printer i panjohur (USB)</translation>
 <translation id="7193051357671784796">Ky aplikacion është shtuar nga organizata jote. Rinis aplikacionin për të përfunduar instalimin e tij.</translation>
 <translation id="7193374945610105795">Nuk ka asnjë fjalëkalim të ruajtur për <ph name="ORIGIN" /></translation>
diff --git a/chrome/app/resources/generated_resources_sr-Latn.xtb b/chrome/app/resources/generated_resources_sr-Latn.xtb
index ce51928..b52899a2 100644
--- a/chrome/app/resources/generated_resources_sr-Latn.xtb
+++ b/chrome/app/resources/generated_resources_sr-Latn.xtb
@@ -4173,6 +4173,7 @@
 <translation id="526622169288322445">Još radnji za <ph name="ADDRESS_SUMMARY" /></translation>
 <translation id="5269977353971873915">Štampanje nije uspelo</translation>
 <translation id="5275352920323889391">Pas</translation>
+<translation id="527605719918376753">Isključi zvuk kartice</translation>
 <translation id="527605982717517565">Uvek dozvoli JavaScript na sajtu <ph name="HOST" /></translation>
 <translation id="5277127016695466621">Prikaži bočnu tablu</translation>
 <translation id="5278823018825269962">ID statusa</translation>
diff --git a/chrome/app/resources/generated_resources_sr.xtb b/chrome/app/resources/generated_resources_sr.xtb
index c4ad1c7..de95aa7 100644
--- a/chrome/app/resources/generated_resources_sr.xtb
+++ b/chrome/app/resources/generated_resources_sr.xtb
@@ -4173,6 +4173,7 @@
 <translation id="526622169288322445">Још радњи за <ph name="ADDRESS_SUMMARY" /></translation>
 <translation id="5269977353971873915">Штампање није успело</translation>
 <translation id="5275352920323889391">Пас</translation>
+<translation id="527605719918376753">Искључи звук картице</translation>
 <translation id="527605982717517565">Увек дозволи JavaScript на сајту <ph name="HOST" /></translation>
 <translation id="5277127016695466621">Прикажи бочну таблу</translation>
 <translation id="5278823018825269962">ИД статуса</translation>
diff --git a/chrome/app/resources/generated_resources_sv.xtb b/chrome/app/resources/generated_resources_sv.xtb
index cc51181..0677d4e82 100644
--- a/chrome/app/resources/generated_resources_sv.xtb
+++ b/chrome/app/resources/generated_resources_sv.xtb
@@ -1034,6 +1034,7 @@
 <translation id="2022395138980869975">Aktivera och inaktivera sökningen på sidan</translation>
 <translation id="2023167225947895179">Pinkoden kan vara lätt att lista ut</translation>
 <translation id="202352106777823113">Nedladdningen tog för lång tid och avbröts av nätverket.</translation>
+<translation id="2024195579772565064">Ta bort sökmotor</translation>
 <translation id="2025632980034333559"><ph name="APP_NAME" /> har kraschat. Klicka på ballongen för att ladda om tillägget.</translation>
 <translation id="2028449514182362831">Funktioner som kräver rörelsesensorer slutar fungera</translation>
 <translation id="202918510990975568">Ange lösenordet om du vill konfigurera säkerhet och inloggning</translation>
@@ -1175,6 +1176,7 @@
 <translation id="2159488579268505102">USB-C</translation>
 <translation id="216169395504480358">Lägg till wifi ...</translation>
 <translation id="2162155940152307086">Synkroniseringen startar när du lämnar synkroniseringsinställningarna</translation>
+<translation id="2162926944953615670">Det finns inga tillgängliga eSIM-profiler</translation>
 <translation id="2163470535490402084">Anslut till internet om du vill logga in på din <ph name="DEVICE_TYPE" />.</translation>
 <translation id="2163937499206714165">Aktivera mörkt läge</translation>
 <translation id="2164131635608782358"><ph name="FIRST_SWITCH" />, <ph name="SECOND_SWITCH" />, <ph name="THIRD_SWITCH" /> och 1 till brytare</translation>
@@ -1870,6 +1872,7 @@
 <translation id="2828650939514476812">Anslut till ett wifi-nätverk</translation>
 <translation id="2831430281393059038">Enheten stöds</translation>
 <translation id="2832124733806557606">Ditt barn kan logga in på enheten eller låsa upp den med en pinkod.</translation>
+<translation id="2835177225987815960">Din nuvarande konfiguration för genomsökning återställs, inklusive brytartilldelningar och hastighetsinställning för automatisk genomsökning.</translation>
 <translation id="2835547721736623118">Tjänst för taligenkänning</translation>
 <translation id="2836269494620652131">Krasch</translation>
 <translation id="2836635946302913370">Inloggningar med detta användarnamn har inaktiverats av administratören.</translation>
@@ -3515,6 +3518,7 @@
 <translation id="4547659257713117923">Inga flikar från andra enheter</translation>
 <translation id="4547672827276975204">Ange automatiskt</translation>
 <translation id="4549791035683739768">Det finns inga sparade fingeravtryck på säkerhetsnyckeln.</translation>
+<translation id="4550926046134589611">Vissa länkar som stöds öppnas fortfarande i <ph name="APP_NAME" />.</translation>
 <translation id="4551763574344810652">Tryck på <ph name="MODIFIER_KEY_DESCRIPTION" /> för att ångra</translation>
 <translation id="4553526521109675518">Om du vill byta språk på Chromebook måste du starta om enheten. <ph name="BEGIN_LINK_LEARN_MORE" />Läs mer<ph name="END_LINK_LEARN_MORE" /></translation>
 <translation id="4554491709904933912">Tryck och dra över bilder för att söka med <ph name="VISUAL_SEARCH_PROVIDER" /></translation>
@@ -3803,6 +3807,7 @@
 <translation id="48704129375571883">Lägg till ytterligare funktioner</translation>
 <translation id="4870758487381879312">Ange lösenordet du fick från administratören för att visa konfigurationsinformationen</translation>
 <translation id="4870903493621965035">Inga kopplade enheter</translation>
+<translation id="4870995365819149457">Vissa länkar som stöds öppnas fortfarande i <ph name="APP_NAME" />, <ph name="APP_NAME_2" />, <ph name="APP_NAME_3" /> och en annan app.</translation>
 <translation id="4871308555310586478">Inte från Chrome Web Store.</translation>
 <translation id="4871322859485617074">Pinkoden innehåller ogiltiga tecken</translation>
 <translation id="4871370605780490696">Lägg till bokmärke</translation>
@@ -4179,6 +4184,7 @@
 <translation id="526622169288322445">Fler åtgärder för <ph name="ADDRESS_SUMMARY" /></translation>
 <translation id="5269977353971873915">Det gick inte att skriva ut dokumentet</translation>
 <translation id="5275352920323889391">Hund</translation>
+<translation id="527605719918376753">Stäng av ljud från flik</translation>
 <translation id="527605982717517565">Tillåt alltid JavaScript på <ph name="HOST" /></translation>
 <translation id="5277127016695466621">Visa sidopanel</translation>
 <translation id="5278823018825269962">Status-id</translation>
@@ -4838,6 +4844,7 @@
 <translation id="5969728632630673489">Aviseringen om kortkommandon ignorerades</translation>
 <translation id="5971037678316050792">Styr status och koppling för Bluetooth-adaptern</translation>
 <translation id="597235323114979258">Se fler utskriftsmål</translation>
+<translation id="5972543790327947908">Vissa länkar som stöds öppnas fortfarande i <ph name="APP_NAME" />, <ph name="APP_NAME_2" /> eller <ph name="APP_NAME_3" />.</translation>
 <translation id="5972666587303800813">Testtjänst utan funktion</translation>
 <translation id="5972708806901999743">Flytta högst upp</translation>
 <translation id="5972826969634861500">Starta <ph name="PRODUCT_NAME" /></translation>
@@ -5208,6 +5215,7 @@
 <translation id="6355789186038748882">Detta är en experimentell webbläsare (alfakvalitet) Vissa funktioner saknas eller är ofullständiga. Rapportera problem via Hjälp &gt; Rapportera ett problem …</translation>
 <translation id="635609604405270300">Stäng inte av enheten</translation>
 <translation id="63566973648609420">Endast personer som har ditt lösenord kan läsa dina krypterade uppgifter. Lösenordet skickas inte till och sparas inte av Google. Om du glömmer lösenordet måste du <ph name="BEGIN_LINK" />återställa synkroniseringen<ph name="END_LINK" />.</translation>
+<translation id="6357305427698525450">Vissa länkar som stöds öppnas fortfarande i <ph name="APP_NAME" /> eller <ph name="APP_NAME_2" />.</translation>
 <translation id="6358884629796491903">Drake</translation>
 <translation id="6359706544163531585">Inaktivera ljust tema</translation>
 <translation id="6361850914223837199">Information om felet:</translation>
@@ -5726,6 +5734,7 @@
 <translation id="6900284862687837908">Bakgrundsapp: <ph name="BACKGROUND_APP_URL" /></translation>
 <translation id="6900532703269623216">Förbättrat skydd</translation>
 <translation id="6900651018461749106">Logga in igen om du vill uppdatera <ph name="USER_EMAIL" /></translation>
+<translation id="6900654715912436255">Vill du radera den här sökmotorn?</translation>
 <translation id="6902066522699286937">Röst att förhandsgranska</translation>
 <translation id="6902336033320348843">Avsnittet stöds inte: <ph name="ERROR_LINE" /></translation>
 <translation id="6902837902700739466">Anslut enheten till domänen</translation>
@@ -5997,6 +6006,7 @@
 <translation id="7189234443051076392">Kontrollera att det finns tillräckligt mycket utrymme på enheten</translation>
 <translation id="7189451821249468368">Du har inte tillräckligt med uppgraderingar för att registrera enheten. Kontakta säljavdelningen om du vill köpa fler. Om du anser att detta meddelande visas på felaktig grund kontaktar du supporten.</translation>
 <translation id="7189965711416741966">Fingeravtrycket har lagts till.</translation>
+<translation id="7191063546666816478">Vissa länkar som stöds öppnas fortfarande i <ph name="APP_NAME" />, <ph name="APP_NAME_2" />, <ph name="APP_NAME_3" /> och <ph name="NUMBER_OF_OTHER_APPS" /> andra appar.</translation>
 <translation id="7191159667348037">Okänd skrivare (USB)</translation>
 <translation id="7193051357671784796">Appen lades till av din organisation. Starta om appen för att slutföra installationen.</translation>
 <translation id="7193374945610105795">Inga lösenord har sparats för <ph name="ORIGIN" /></translation>
diff --git a/chrome/app/resources/generated_resources_sw.xtb b/chrome/app/resources/generated_resources_sw.xtb
index 80ad7e95..c32b237b 100644
--- a/chrome/app/resources/generated_resources_sw.xtb
+++ b/chrome/app/resources/generated_resources_sw.xtb
@@ -4178,6 +4178,7 @@
 <translation id="526622169288322445">Vitendo zaidi kwa ajili ya <ph name="ADDRESS_SUMMARY" /></translation>
 <translation id="5269977353971873915">Uchapishaji Haukufanikiwa</translation>
 <translation id="5275352920323889391">Mbwa</translation>
+<translation id="527605719918376753">Nyamazisha kichupo</translation>
 <translation id="527605982717517565">Ruhusu <ph name="HOST" /> iendeshe JavaScript kila wakati</translation>
 <translation id="5277127016695466621">Onyesha kidirisha cha pembeni</translation>
 <translation id="5278823018825269962">Kitambulisho cha Hali</translation>
diff --git a/chrome/app/resources/generated_resources_ta.xtb b/chrome/app/resources/generated_resources_ta.xtb
index 7048e550..ebbbb4e 100644
--- a/chrome/app/resources/generated_resources_ta.xtb
+++ b/chrome/app/resources/generated_resources_ta.xtb
@@ -512,6 +512,7 @@
 <translation id="1521442365706402292">சான்றிதழ்களை நிர்வகி</translation>
 <translation id="1521774566618522728">இன்று பயன்படுத்தியுள்ளார்</translation>
 <translation id="152234381334907219">எப்போதும் சேமிக்காதவை</translation>
+<translation id="1523279371236772909">கடந்த மாதத்தில் பார்வையிடப்பட்டது</translation>
 <translation id="1523978563989812243">’உரையிலிருந்து பேச்சு’ இன்ஜின்கள்</translation>
 <translation id="1524430321211440688">கீபோர்டு</translation>
 <translation id="1524563461097350801">வேண்டாம்</translation>
@@ -1034,6 +1035,7 @@
 <translation id="2022395138980869975">பக்கவாட்டுத் தேடலுக்கு மாறும்</translation>
 <translation id="2023167225947895179">பின்னானது எளிதாக யூகிக்கும்படி உள்ளது</translation>
 <translation id="202352106777823113">பதிவிறக்கம் அதிக நேரத்தை எடுத்துக்கொண்டதால், நெட்வொர்க் அதை நிறுத்திவிட்டது.</translation>
+<translation id="2024195579772565064">தேடல் இன்ஜினை நீக்குதல்</translation>
 <translation id="2025632980034333559"><ph name="APP_NAME" /> செயலிழந்தது. நீட்டிப்பை ரெஃப்ரெஷ் செய்ய இந்த பலூனைக் கிளிக் செய்க.</translation>
 <translation id="2028449514182362831">மோஷன் சென்சார்களின் உதவியுடன் இயங்கும் அம்சங்கள் செயல்படாது</translation>
 <translation id="202918510990975568">பாதுகாப்பையும் உள்நுழைவையும் உள்ளமைக்க உங்கள் கடவுச்சொல்லை உள்ளிடவும்</translation>
@@ -1175,6 +1177,7 @@
 <translation id="2159488579268505102">USB-C</translation>
 <translation id="216169395504480358">வைஃபை ஐச் சேர்...</translation>
 <translation id="2162155940152307086">நீங்கள் ஒத்திசைவு அமைப்புகளை விட்டு வெளியேறியவுடன் ஒத்திசைவு தொடங்கும்</translation>
+<translation id="2162926944953615670">eSIM சுயவிவரங்கள் கிடைக்கவில்லை</translation>
 <translation id="2163470535490402084">உங்கள் <ph name="DEVICE_TYPE" /> இல் உள்நுழைய இணையத்துடன் இணைக்கவும்.</translation>
 <translation id="2163937499206714165">டார்க் பயன்முறையை இயக்குதல்</translation>
 <translation id="2164131635608782358"><ph name="FIRST_SWITCH" />, <ph name="SECOND_SWITCH" />, <ph name="THIRD_SWITCH" />, மேலும் 1 ஸ்விட்ச்</translation>
@@ -1252,6 +1255,7 @@
 <translation id="2232876851878324699">ஃபைலில் ஒரு இறக்குமதி செய்யப்படாத சான்றிதழ் உள்ளது:</translation>
 <translation id="2233502537820838181">&amp;மேலும் தகவல்</translation>
 <translation id="223356358902285214">இணையம் மற்றும் ஆப்ஸ் செயல்பாடு</translation>
+<translation id="2234827758954819389">தனியுரிமை வழிகாட்டி</translation>
 <translation id="2234876718134438132">ஒத்திசைவு &amp; Google சேவைகள்</translation>
 <translation id="2235344399760031203">மூன்றாம் தரப்புக் குக்கீகள் தடுக்கப்பட்டுள்ளன</translation>
 <translation id="2238379619048995541">காலஇடைவெளி நிலையின் தரவு</translation>
@@ -1704,6 +1708,7 @@
 <translation id="2684004000387153598">தொடர, சரி என்பதைக் கிளிக் செய்யவும், உங்கள் மின்னஞ்சல் முகவரிக்குப் புதிய சுயவிவரத்தை உருவாக்க, நபரைச் சேர் என்பதைக் கிளிக் செய்யவும்.</translation>
 <translation id="2687403674020088961">அனைத்துக் குக்கீகளையும் தடுக்கும் (பரிந்துரைக்கப்படவில்லை)</translation>
 <translation id="2687407218262674387">Google சேவை விதிமுறைகள்</translation>
+<translation id="2687621393791886981">பின்னர் கேள்</translation>
 <translation id="2688196195245426394">வேறு சேவையகத்துடன் சாதனத்தைப் பதிவுசெய்யும்போது பிழை: <ph name="CLIENT_ERROR" />.</translation>
 <translation id="2690024944919328218">மொழி விருப்பங்களைக் காட்டு</translation>
 <translation id="2691385045260836588">மாடல்</translation>
@@ -1870,6 +1875,7 @@
 <translation id="2828650939514476812">வைஃபை நெட்வொர்க்குடன் இணை</translation>
 <translation id="2831430281393059038">இந்தச் சாதனத்தில் பயன்படுத்தலாம்</translation>
 <translation id="2832124733806557606">பின்னைப் (PIN) பயன்படுத்தி சாதனத்தில் உங்கள் பிள்ளை உள்நுழையலாம் அன்லாக் செய்யலாம்.</translation>
+<translation id="2835177225987815960">ஒதுக்கப்பட்ட ஸ்விட்ச் அணுகல், தானியங்கு ஸ்கேனின் வேக விருப்பத்தேர்வுகள் உட்பட உங்கள் தற்போதைய ஸ்கேன் செய்யும் அமைவு மீட்டமைக்கப்படும்.</translation>
 <translation id="2835547721736623118">பேச்சு அறிதல் சேவை</translation>
 <translation id="2836269494620652131">செயலிழப்பு</translation>
 <translation id="2836635946302913370">இந்தப் பயனர்பெயரில் உள்நுழைவது, உங்களின் நிர்வாகியால் முடக்கப்பட்டுள்ளது.</translation>
@@ -3107,6 +3113,7 @@
 <translation id="4095264805865317199">செல்லுலார் செயல்படுத்தலுக்கான UIயைத் திற</translation>
 <translation id="4095507791297118304">முதன்மைத் திரை</translation>
 <translation id="4096508467498758490">டெவெலப்பர் பயன்முறை நீட்டிப்புகளை முடக்கவும்</translation>
+<translation id="4096797685681362305">கடந்த வாரத்தில் பார்வையிடப்பட்டது</translation>
 <translation id="4097406557126260163">ஆப்ஸும் நீட்டிப்புகளும்</translation>
 <translation id="409742781329613461">Chrome உதவிக்குறிப்புகள்</translation>
 <translation id="4097560579602855702">Googleளில் தேடுக</translation>
@@ -3515,6 +3522,7 @@
 <translation id="4547659257713117923">பிற சாதனங்களின் தாவல்கள் எதுவுமில்லை</translation>
 <translation id="4547672827276975204">தானாக அமை</translation>
 <translation id="4549791035683739768">பாதுகாப்பு விசையில் கைரேகைகள் எதுவும் சேமிக்கப்படவில்லை</translation>
+<translation id="4550926046134589611"><ph name="APP_NAME" /> ஆப்ஸில் சில ஆதரிக்கப்படும் இணைப்புகள் இப்போதும் திறக்கும்.</translation>
 <translation id="4551763574344810652">செயல்தவிர்க்க <ph name="MODIFIER_KEY_DESCRIPTION" />ஐ அழுத்தவும்</translation>
 <translation id="4553526521109675518">சாதனத்தின் மொழியை மாற்ற உங்கள் Chromebookகை மீண்டும் தொடங்கவும். <ph name="BEGIN_LINK_LEARN_MORE" />மேலும் அறிக<ph name="END_LINK_LEARN_MORE" /></translation>
 <translation id="4554491709904933912"><ph name="VISUAL_SEARCH_PROVIDER" /> மூலம் தேட, படங்களைக் கிளிக் செய்து இழுக்கவும்</translation>
@@ -3663,6 +3671,7 @@
 <translation id="4699172675775169585">தற்காலிகமாகச் சேமிக்கப்பட்ட படங்கள் மற்றும் ஃபைல்கள் </translation>
 <translation id="4699357559218762027">(தானாக துவக்கப்பட்டது)</translation>
 <translation id="4701025263201366865">பெற்றோர் உள்நுழைதல்</translation>
+<translation id="4701335814944566468">நேற்று பார்வையிடப்பட்டது</translation>
 <translation id="4708794300267213770">உறக்கநிலையிலிருந்து விழிக்கும் போது, லாக் ஸ்கிரீனைக் காட்டு</translation>
 <translation id="4708849949179781599"><ph name="PRODUCT_NAME" /> இலிருந்து வெளியேறு</translation>
 <translation id="4711638718396952945">அமைப்புகளை மீட்டெடு</translation>
@@ -3730,6 +3739,7 @@
 <translation id="479536056609751218">வலைப்பக்கம், HTML மட்டும்</translation>
 <translation id="4796142525425001238">எப்போதும் மீட்டெடு</translation>
 <translation id="4798236378408895261"><ph name="BEGIN_LINK" />புளூடூத் பதிவுகளை<ph name="END_LINK" /> இணை (Google அகப் பயன்பாட்டிற்காக)</translation>
+<translation id="479863874072008121">சாதனங்களை நிர்வகிக்கவும்</translation>
 <translation id="4800839971935185386">பெயர் &amp; ஐகான் மாற்றங்களைப் பாருங்கள்</translation>
 <translation id="4801448226354548035">கணக்குகளை மறை</translation>
 <translation id="4801512016965057443">மொபைல் டேட்டா ரோமிங்கை அனுமதி</translation>
@@ -3803,6 +3813,7 @@
 <translation id="48704129375571883">கூடுதல் அம்சங்களைச் சேர்</translation>
 <translation id="4870758487381879312">உள்ளமைவுத் தகவலைப் பெற நிர்வாகி வழங்கிய கடவுச்சொல்லை உள்ளிடவும்</translation>
 <translation id="4870903493621965035">இணைத்த சாதனங்கள் இல்லை</translation>
+<translation id="4870995365819149457"><ph name="APP_NAME" />, <ph name="APP_NAME_2" />, <ph name="APP_NAME_3" /> மற்றும் மேலும் ஒரு ஆப்ஸில் சில ஆதரிக்கப்படும் இணைப்புகள் இப்போதும் திறக்கும்.</translation>
 <translation id="4871308555310586478">Chrome இணைய அங்காடியில் இருந்து அல்ல.</translation>
 <translation id="4871322859485617074">பின்னில் செல்லாத எழுத்துக்கள் உள்ளன</translation>
 <translation id="4871370605780490696">புக்மார்க்குகளைச் சேர்</translation>
@@ -4179,6 +4190,7 @@
 <translation id="526622169288322445"><ph name="ADDRESS_SUMMARY" /> என்ற முகவரிக்கான கூடுதல் செயல்கள்</translation>
 <translation id="5269977353971873915">அச்சிடுதல் தோல்வி</translation>
 <translation id="5275352920323889391">நாய்</translation>
+<translation id="527605719918376753">ஒலி வேண்டாம்</translation>
 <translation id="527605982717517565"><ph name="HOST" /> இல் JavaScript ஐ எப்போதும் அனுமதி</translation>
 <translation id="5277127016695466621">பக்கவாட்டுப் பேனலைக் காட்டும்</translation>
 <translation id="5278823018825269962">நிலை ஐடி</translation>
@@ -4839,6 +4851,7 @@
 <translation id="5969728632630673489">கீபோர்டு ஷார்ட்கட் குறித்த அறிவிப்பு மூடப்பட்டது</translation>
 <translation id="5971037678316050792">புளூடூத் அடாப்டரின் நிலையையும், இணைத்தலையும் கட்டுப்படுத்துதல்</translation>
 <translation id="597235323114979258">மேலும் பிரிண்டர்களைக் காட்டு</translation>
+<translation id="5972543790327947908"><ph name="APP_NAME" />, <ph name="APP_NAME_2" /> அல்லது <ph name="APP_NAME_3" /> ஆப்ஸில் சில ஆதரிக்கப்படும் இணைப்புகள் இப்போதும் திறக்கும்.</translation>
 <translation id="5972666587303800813">No-op Service</translation>
 <translation id="5972708806901999743">மேலே நகர்த்து</translation>
 <translation id="5972826969634861500"><ph name="PRODUCT_NAME" /> ஐத் தொடங்கு</translation>
@@ -5209,6 +5222,7 @@
 <translation id="6355789186038748882">சோதனை (ஆல்ஃபா பதிப்பு) உலாவி! சில அம்சங்கள் விடுபட்டிருக்கலாம் அல்லது முழுமை பெறாமல் இருக்கலாம். சிக்கல்கள் இருந்தால் உதவி &gt; "சிக்கலைப் புகாரளி..." என்பதற்குச் சென்று புகாரளிக்கவும்.</translation>
 <translation id="635609604405270300">சாதனத்தை இயக்கத்தில் வைத்திருக்கவும்</translation>
 <translation id="63566973648609420">உங்கள் கடவுச்சொற்றொடரை அறிந்தவரால் மட்டுமே என்கிரிப்ட் செய்யப்பட்ட உங்கள் தரவைப் படிக்க முடியும். கடவுச்சொற்றொடரானது Googleக்கு அனுப்பப்படுவதில்லை அல்லது Google அதைச் சேமிப்பதில்லை. கடவுச்சொற்றொடரை மறந்துவிட்டால் அல்லது இந்த அமைப்பை மாற்ற விரும்பினால், நீங்கள் <ph name="BEGIN_LINK" />ஒத்திசைவை மீட்டமைக்க வேண்டும்<ph name="END_LINK" />.</translation>
+<translation id="6357305427698525450"><ph name="APP_NAME" /> அல்லது <ph name="APP_NAME_2" /> ஆப்ஸில் சில ஆதரிக்கப்படும் இணைப்புகள் இப்போதும் திறக்கும்.</translation>
 <translation id="6358884629796491903">டிராகன்</translation>
 <translation id="6359706544163531585">லைட் தீமினை முடக்குதல்</translation>
 <translation id="6361850914223837199">பிழை விவரங்கள்:</translation>
@@ -5727,6 +5741,7 @@
 <translation id="6900284862687837908">பின்னணிப் ஆப்ஸ்: <ph name="BACKGROUND_APP_URL" /></translation>
 <translation id="6900532703269623216">மேம்பட்ட பாதுகாப்பு</translation>
 <translation id="6900651018461749106"><ph name="USER_EMAIL" />ஐ மாற்ற மீண்டும் உள்நுழையவும்</translation>
+<translation id="6900654715912436255">இந்த தேடல் இன்ஜினை நீக்க விரும்புகிறீர்களா?</translation>
 <translation id="6902066522699286937">மாதிரிக்காட்சிக் குரல்</translation>
 <translation id="6902336033320348843">இந்தப் பிரிவு ஆதரிக்கப்படவில்லை: <ph name="ERROR_LINE" /></translation>
 <translation id="6902837902700739466">சாதனத்தை டொமைனில் சேர்க்கவும்</translation>
@@ -5998,6 +6013,7 @@
 <translation id="7189234443051076392">சாதனத்தில் போதுமான சேமிப்பிடம் இருப்பதை உறுதிப்படுத்திக்கொள்ளவும்</translation>
 <translation id="7189451821249468368">இந்தச் சாதனத்தைப் பதிவுசெய்ய போதுமான மேம்படுத்தல்கள் உங்களிடம் இல்லை. மேலும் வாங்குவதற்கு விற்பனையாளரைத் தொடர்புகொள்ளவும். பிழை காரணமாக இந்த மெசேஜைப் பார்க்கிறீர்கள் எனக் கருதினால் உதவிக் குழுவைத் தொடர்புகொள்ளவும்.</translation>
 <translation id="7189965711416741966">கைரேகை சேர்க்கப்பட்டது.</translation>
+<translation id="7191063546666816478"><ph name="APP_NAME" />, <ph name="APP_NAME_2" />, <ph name="APP_NAME_3" /> மற்றும் மேலும் <ph name="NUMBER_OF_OTHER_APPS" /> ஆப்ஸில் சில ஆதரிக்கப்படும் இணைப்புகள் இப்போதும் திறக்கும்.</translation>
 <translation id="7191159667348037">அறியப்படாத பிரிண்டர் (USB)</translation>
 <translation id="7193051357671784796">இந்த ஆப்ஸை உங்கள் நிறுவனம் சேர்த்துள்ளது. ஆப்ஸை நிறுவி முடிக்க அதை மீண்டும் தொடங்கவும்.</translation>
 <translation id="7193374945610105795"><ph name="ORIGIN" />க்குக் கடவுச்சொற்கள் எதுவும் சேமிக்கப்படவில்லை</translation>
@@ -6453,6 +6469,7 @@
 <translation id="7658239707568436148">ரத்து செய்</translation>
 <translation id="7659154729610375585">மறைநிலைப் பயன்முறையை விட்டு நிச்சயமாக வெளியேறவா?</translation>
 <translation id="7659297516559011665">இந்தச் சாதனத்தில் சேமிக்கப்பட்டுள்ள கடவுச்சொற்கள் மட்டும்</translation>
+<translation id="7659336857671800422">தனியுரிமை வழிகாட்டிக்குச் செல்</translation>
 <translation id="7659584679870740384">இந்தச் சாதனத்தைப் பயன்படுத்த உங்களுக்கு அங்கீகாரம் இல்லை. உள்நுழைவு அனுமதியைப் பெற, நிர்வாகியைத் தொடர்பு கொள்ளவும்.</translation>
 <translation id="7661259717474717992">குக்கீத் தரவைச் சேமிக்கவும், படிக்கவும் தளங்களை அனுமதி</translation>
 <translation id="7661451191293163002">பதிவுச் சான்றிதழைப் பெற முடியவில்லை.</translation>
@@ -7212,6 +7229,7 @@
 <translation id="8410775397654368139">Google Play</translation>
 <translation id="8412136526970428322"><ph name="PERMISSION" />, மேலும் <ph name="COUNT" /> அனுமதிகள் வழங்கப்பட்டுள்ளன</translation>
 <translation id="8413385045638830869">முதலில் கேள் (பரிந்துரைத்தது)</translation>
+<translation id="8414249071344507766">இரண்டு நாட்களுக்கு நினைவுகள் மறைக்கப்பட்டுள்ளன</translation>
 <translation id="8416730306157376817"><ph name="BATTERY_PERCENTAGE" />% (கேஸ்)</translation>
 <translation id="8417548266957501132">பெற்றோர் கடவுச்சொல்</translation>
 <translation id="8418445294933751433">தாவலாக &amp;காண்பி</translation>
@@ -7975,6 +7993,7 @@
 <translation id="9200339982498053969"><ph name="ORIGIN" /> டொமைனால் <ph name="FOLDERNAME" /> ஃபோல்டரில் உள்ள ஃபைல்களில் மாற்றங்களைச் செய்ய முடியும்</translation>
 <translation id="920045321358709304"><ph name="SEARCH_ENGINE" /> இல் தேடு</translation>
 <translation id="9201023452444595544">இருக்கும் ஆஃப்லைன் தரவு அழிக்கப்படும்</translation>
+<translation id="9201117361710210082">முன்னதாகப் பார்வையிடப்பட்டது</translation>
 <translation id="9201220332032049474">திரைப் பூட்டு விருப்பங்கள்</translation>
 <translation id="9201842707396338580">ஏதோ தவறாகிவிட்டது. உங்கள் சாதன உரிமையாளரையோ நிர்வாகியையோ தொடர்புகொள்ளவும். பிழைக் குறியீடு: <ph name="ERROR_CODE" />.</translation>
 <translation id="9203398526606335860">&amp;சுயவிவரமாக்கம் இயக்கப்பட்டது</translation>
diff --git a/chrome/app/resources/generated_resources_te.xtb b/chrome/app/resources/generated_resources_te.xtb
index c71c26db..3734e340 100644
--- a/chrome/app/resources/generated_resources_te.xtb
+++ b/chrome/app/resources/generated_resources_te.xtb
@@ -297,6 +297,7 @@
 <translation id="1293264513303784526">USB-C పరికరం (ఎడమ పోర్ట్)</translation>
 <translation id="1293556467332435079">Files</translation>
 <translation id="1294807885394205587">ఈ ప్రాసెస్‌కు కొన్ని నిమిషాలు పట్టవచ్చు. కంటైనర్ మేనేజర్‌ను ప్రారంభిస్తోంది.</translation>
+<translation id="1296046226918222533">ఏదో తప్పు జరిగింది, Linux అప్‌గ్రేడ్ విఫలమైంది. ఎందుకు విఫలమైంది అనే దాని గురించి మరింత సమాచారాన్ని లాగ్స్‌లో కనుగొనవచ్చు. లాగ్స్ <ph name="LOG_FILE" />లో సేవ్ చేయబడ్డాయి</translation>
 <translation id="1296911687402551044">ఎంపిక చేసిన ట్యాబ్‌ను పిన్ చేయండి</translation>
 <translation id="1297175357211070620">గమ్యం</translation>
 <translation id="129770436432446029"><ph name="EXPERIMENT_NAME" />‌పై మీ ఫీడ్‌బ్యాక్‌ను పంపండి</translation>
@@ -2804,6 +2805,7 @@
 <translation id="3799128412641261490">స్విచ్ యాక్సెస్ సెట్టింగ్‌లు</translation>
 <translation id="3800806661949714323">అన్నీ చూపు (సిఫార్సు చేయబడింది)</translation>
 <translation id="3800828618615365228">Google Chrome, ChromeOS అదనపు నియమాలు</translation>
+<translation id="3802486193901166966">ఈ ఎక్స్‌టెన్షన్‌కు ప్రత్యేక అనుమతులు ఏవీ అవసరం లేదు, అలాగే అదనపు సైట్ యాక్సెస్ కూడా లేదు</translation>
 <translation id="380329542618494757">పేరు</translation>
 <translation id="3803345858388753269">వీడియో క్వాలిటీ</translation>
 <translation id="380408572480438692">పనితీరు డేటా సేకరణను ప్రారంభించడం అనేది, సమయానుగుణంగా సిస్టమ్‌ను మెరుగుపరచడంలో Googleకు సహాయపడుతుంది. మీరు అభిప్రాయ రిపోర్ట్‌ (Alt-Shift-I)ను ఫైల్ చేసి, పనితీరు డేటాను చేర్చే వరకు డేటా పంపబడదు. మీరు ఎప్పుడైనా సేకరణను నిలిపివేయడానికి ఈ స్క్రీన్‌కు తిరిగి రావచ్చు.</translation>
@@ -3834,6 +3836,7 @@
 <translation id="4883436287898674711">అన్ని <ph name="WEBSITE_1" /> వెబ్‌సైట్‌లు</translation>
 <translation id="48838266408104654">విధి సంచాలకులు</translation>
 <translation id="4884987973312178454">6x</translation>
+<translation id="4885692421645694729">ఈ ఎక్స్‌టెన్షన్‌కు అదనపు సైట్ యాక్సెస్ లేదు</translation>
 <translation id="4887424188275796356">సిస్టమ్ వ్యూయర్‌తో తెరవండి</translation>
 <translation id="488785315393301722">వివరాలను చూపించు</translation>
 <translation id="4890773143211625964">అధునాతన ప్రింటర్ ఎంపికలను చూపు</translation>
@@ -4008,6 +4011,7 @@
 <translation id="5075910247684008552">సురక్షితమైన సైట్‌లలో డిఫాల్ట్‌గానే అసురక్షితమైన కంటెంట్ బ్లాక్ చేయబడుతుంది</translation>
 <translation id="5078638979202084724">అన్ని టాబ్‌లను బుక్‌మార్క్ చేయండి</translation>
 <translation id="5078796286268621944"> సరి కానటువంటి PIN</translation>
+<translation id="5079010647467150187">బిల్ట్-ఇన్ VPNని జోడించండి...</translation>
 <translation id="5079950360618752063">సూచించిన పాస్‌వర్డ్‌ని ఉపయోగించండి</translation>
 <translation id="508059534790499809">Kerberos టిక్కెట్‌ను రిఫ్రెష్ చేయండి</translation>
 <translation id="5084230410268011727">చలనం మరియు కాంతి సర్దుబాటు సెన్సార్‌లను ఉపయోగించడానికి సైట్‌లను అనుమతించు</translation>
@@ -4189,6 +4193,7 @@
 <translation id="526622169288322445"><ph name="ADDRESS_SUMMARY" /> కోసం మరిన్ని చర్యలు</translation>
 <translation id="5269977353971873915">ముద్రణ విఫలమైంది</translation>
 <translation id="5275352920323889391">కుక్క</translation>
+<translation id="527605719918376753">ట్యాబ్‌ను మ్యూట్ చేయి</translation>
 <translation id="527605982717517565"><ph name="HOST" />పై ఎల్లప్పుడూ JavaScriptను అనుమతించు</translation>
 <translation id="5277127016695466621">సైడ్ ప్యానెల్‌ను చూడండి</translation>
 <translation id="5278823018825269962">స్టేటస్ Id</translation>
@@ -5559,6 +5564,7 @@
 <translation id="6709133671862442373">News</translation>
 <translation id="6709357832553498500"><ph name="EXTENSIONNAME" />ని ఉపయోగించి కనెక్ట్ చేయి</translation>
 <translation id="6710213216561001401">మునుపటి</translation>
+<translation id="6710973041022512889">అప్‌గ్రేడ్ విజయవంతంగా పూర్తయింది. వివరణాత్మక అప్‌గ్రేడ్ సమాచారం కోసం, లాగ్స్ <ph name="LOG_FILE" />లో సేవ్ చేయబడ్డాయి</translation>
 <translation id="6711146141291425900">డౌన్‌లోడ్‌ల కోసం <ph name="WEB_DRIVE" /> ఖాతాను లింక్ చేయండి</translation>
 <translation id="6712943853047024245"><ph name="WEBSITE" /> కోసం మీరు ఇప్పటికే ఈ యూజర్‌నేమ్‌తో పాస్‌వర్డ్‌ను సేవ్ చేశారు</translation>
 <translation id="6713233729292711163">వర్క్ ప్రొఫైల్‌ను జోడించండి</translation>
diff --git a/chrome/app/resources/generated_resources_th.xtb b/chrome/app/resources/generated_resources_th.xtb
index 4dab265..abd6dd26 100644
--- a/chrome/app/resources/generated_resources_th.xtb
+++ b/chrome/app/resources/generated_resources_th.xtb
@@ -295,6 +295,7 @@
 <translation id="1293264513303784526">อุปกรณ์ USB-C (พอร์ตด้านซ้าย)</translation>
 <translation id="1293556467332435079">ไฟล์</translation>
 <translation id="1294807885394205587">ขั้นตอนนี้อาจใช้เวลาสักครู่ กำลังเริ่มต้นตัวจัดการคอนเทนเนอร์</translation>
+<translation id="1296046226918222533">เกิดข้อผิดพลาดขึ้นจึงอัปเกรด Linux ไม่สำเร็จ ดูข้อมูลเพิ่มเติมเกี่ยวกับการอัปเกรดที่ไม่สำเร็จได้ในบันทึก โดยระบบได้บันทึกข้อมูลดังกล่าวไว้ใน <ph name="LOG_FILE" /></translation>
 <translation id="1296911687402551044">ตรึงแท็บที่เลือก</translation>
 <translation id="1297175357211070620">ปลายทาง</translation>
 <translation id="129770436432446029">ส่งความคิดเห็นสำหรับ <ph name="EXPERIMENT_NAME" /></translation>
@@ -2786,6 +2787,7 @@
 <translation id="3799128412641261490">การตั้งค่าการเข้าถึงด้วยสวิตช์</translation>
 <translation id="3800806661949714323">แสดงทั้งหมด (แนะนำ)</translation>
 <translation id="3800828618615365228">ข้อกำหนดเพิ่มเติมของ Google Chrome และ Chrome OS</translation>
+<translation id="3802486193901166966">ส่วนขยายนี้ไม่จำเป็นต้องมีสิทธิ์พิเศษและไม่มีการเข้าถึงเว็บไซต์เพิ่มเติม</translation>
 <translation id="380329542618494757">ชื่อ</translation>
 <translation id="3803345858388753269">คุณภาพวิดีโอ</translation>
 <translation id="380408572480438692">การเปิดใช้งานการเก็บรวบรวมข้อมูลผลการปฏิบัติงานจะช่วยให้ Google สามารถปรับปรุงระบบตามกาลเวลา จะไม่มีข้อมูลถูกส่งไปจนกว่าคุณจะยื่นรายงานข้อเสนอแนะ (Alt + Shift-I) และใส่ข้อมูลผลการปฏิบัติงาน คุณสามารถกลับสู่หน้าจอนี้เพื่อปิดใช้งานการเก็บรวบรวมในเวลาใดก็ได้</translation>
@@ -3812,6 +3814,7 @@
 <translation id="4883436287898674711">ไซต์ <ph name="WEBSITE_1" /> ทั้งหมด</translation>
 <translation id="48838266408104654">&amp;ตัวจัดการงาน</translation>
 <translation id="4884987973312178454">6x</translation>
+<translation id="4885692421645694729">ส่วนขยายนี้ไม่มีการเข้าถึงเว็บไซต์เพิ่มเติม</translation>
 <translation id="4887424188275796356">เปิดด้วยเครื่องมือดูระบบ</translation>
 <translation id="488785315393301722">แสดงรายละเอียด</translation>
 <translation id="4890773143211625964">แสดงตัวเลือกเครื่องพิมพ์ขั้นสูง</translation>
@@ -3986,6 +3989,7 @@
 <translation id="5075910247684008552">เว็บไซต์ที่มีความปลอดภัยจะบล็อกเนื้อหาที่ไม่ปลอดภัยโดยค่าเริ่มต้น</translation>
 <translation id="5078638979202084724">บุ๊กมาร์กแท็บทั้งหมด</translation>
 <translation id="5078796286268621944">PIN ไม่ถูกต้อง</translation>
+<translation id="5079010647467150187">เพิ่ม VPN ในตัว…</translation>
 <translation id="5079950360618752063">ใช้รหัสผ่านที่แนะนำ</translation>
 <translation id="508059534790499809">รีเฟรชตั๋ว Kerberos</translation>
 <translation id="5084230410268011727">อนุญาตให้เว็บไซต์ใช้เซ็นเซอร์จับความเคลื่อนไหวและเซ็นเซอร์แสง</translation>
@@ -4167,6 +4171,7 @@
 <translation id="526622169288322445">การดำเนินการเพิ่มเติมสำหรับ <ph name="ADDRESS_SUMMARY" /></translation>
 <translation id="5269977353971873915">การพิมพ์ล้มเหลว</translation>
 <translation id="5275352920323889391">สุนัข</translation>
+<translation id="527605719918376753">ปิดเสียงแท็บ</translation>
 <translation id="527605982717517565">อนุญาตให้เรียกใช้ JavaScript บน <ph name="HOST" /> เสมอ</translation>
 <translation id="5277127016695466621">แสดงแผงด้านข้าง</translation>
 <translation id="5278823018825269962">รหัสสถานะ</translation>
@@ -5537,6 +5542,7 @@
 <translation id="6709133671862442373">ข่าวสาร</translation>
 <translation id="6709357832553498500">เชื่อมต่อโดยใช้ <ph name="EXTENSIONNAME" /></translation>
 <translation id="6710213216561001401">ก่อนหน้า</translation>
+<translation id="6710973041022512889">อัปเกรดเสร็จเรียบร้อยแล้ว หากต้องการข้อมูลการอัปเกรดโดยละเอียด ระบบได้บันทึกข้อมูลดังกล่าวไว้ใน <ph name="LOG_FILE" /></translation>
 <translation id="6711146141291425900">ลิงก์บัญชี <ph name="WEB_DRIVE" /> สำหรับไฟล์ดาวน์โหลด</translation>
 <translation id="6712943853047024245">คุณได้บันทึกรหัสผ่านไว้กับชื่อผู้ใช้นี้แล้วสำหรับ <ph name="WEBSITE" /></translation>
 <translation id="6713233729292711163">เพิ่มโปรไฟล์งาน</translation>
diff --git a/chrome/app/resources/generated_resources_tr.xtb b/chrome/app/resources/generated_resources_tr.xtb
index 9a9df41..e4cbe3d5 100644
--- a/chrome/app/resources/generated_resources_tr.xtb
+++ b/chrome/app/resources/generated_resources_tr.xtb
@@ -509,6 +509,7 @@
 <translation id="1521442365706402292">Sertifikaları yönet</translation>
 <translation id="1521774566618522728">Son etkin olduğu zaman:</translation>
 <translation id="152234381334907219">Hiç Kaydedilmeyenler</translation>
+<translation id="1523279371236772909">Geçen ay görüntülendi</translation>
 <translation id="1523978563989812243">Metin okuma motorları</translation>
 <translation id="1524430321211440688">Klavye</translation>
 <translation id="1524563461097350801">Hayır, teşekkürler</translation>
@@ -1241,6 +1242,7 @@
 <translation id="2232876851878324699">Dosya bir sertifika içeriyordu ve bu sertifika içe aktarılmadı:</translation>
 <translation id="2233502537820838181">&amp;Daha fazla bilgi</translation>
 <translation id="223356358902285214">Web ve Uygulama Etkinliği</translation>
+<translation id="2234827758954819389">Gizlilik Rehberi</translation>
 <translation id="2234876718134438132">Senkronizasyon ve Google hizmetleri</translation>
 <translation id="2235344399760031203">Üçüncü taraf çerezler engellendi</translation>
 <translation id="2238379619048995541">Frekans Durumu Verileri</translation>
@@ -3093,6 +3095,7 @@
 <translation id="4095264805865317199">Hücresel Etkinleştirme Kullanıcı Arayüzü'nü Aç</translation>
 <translation id="4095507791297118304">Birincil ekran</translation>
 <translation id="4096508467498758490">Geliştirici modu uzantılarını devre dışı bırakın</translation>
+<translation id="4096797685681362305">Geçen hafta görüntülendi</translation>
 <translation id="4097406557126260163">Uygulamalar ve uzantılar</translation>
 <translation id="409742781329613461">Chrome için ipuçları</translation>
 <translation id="4097560579602855702">Google’da Ara</translation>
@@ -3649,6 +3652,7 @@
 <translation id="4699172675775169585">Önbelleğe alınan resimler ve dosyalar</translation>
 <translation id="4699357559218762027">(otomatik başlatıldı)</translation>
 <translation id="4701025263201366865">Ebeveyn oturum açmalı</translation>
+<translation id="4701335814944566468">Dün görüntülendi</translation>
 <translation id="4708794300267213770">Uykudan uyanırken kilit ekranını göster</translation>
 <translation id="4708849949179781599"><ph name="PRODUCT_NAME" /> uygulamasından çık</translation>
 <translation id="4711638718396952945">Ayarları geri yükle</translation>
@@ -3716,6 +3720,7 @@
 <translation id="479536056609751218">Web sayfası, Sadece HTML</translation>
 <translation id="4796142525425001238">Her zaman geri yükle</translation>
 <translation id="4798236378408895261"><ph name="BEGIN_LINK" />Bluetooth Günlükleri<ph name="END_LINK" /> ekle (Google dahili)</translation>
+<translation id="479863874072008121">Cihazları yönet</translation>
 <translation id="4800839971935185386">Ad ve simge güncellemelerini inceleyin</translation>
 <translation id="4801448226354548035">Hesapları gizle</translation>
 <translation id="4801512016965057443">Mobil veri dolaşımına izin ver</translation>
@@ -4166,6 +4171,7 @@
 <translation id="526622169288322445"><ph name="ADDRESS_SUMMARY" /> ile ilgili diğer işlemler</translation>
 <translation id="5269977353971873915">Yazdırma Başarısız</translation>
 <translation id="5275352920323889391">Köpek</translation>
+<translation id="527605719918376753">Sekmenin sesini kapat</translation>
 <translation id="527605982717517565"><ph name="HOST" /> sitesinde JavaScript'e her zaman izin ver</translation>
 <translation id="5277127016695466621">Yan paneli göster</translation>
 <translation id="5278823018825269962">Durum kimliği</translation>
@@ -6444,6 +6450,7 @@
 <translation id="7658239707568436148">İptal</translation>
 <translation id="7659154729610375585">Yine de Gizli moddan çıkılsın mı?</translation>
 <translation id="7659297516559011665">Yalnızca bu cihazdaki şifreler</translation>
+<translation id="7659336857671800422">Gizlilik kılavuzuna göz at</translation>
 <translation id="7659584679870740384">Bu cihazı kullanma yetkiniz yok. Oturum açma izni almak için lütfen yöneticiyle iletişim kurun.</translation>
 <translation id="7661259717474717992">Sitelere, çerez verilerini kaydetme ve okuma izni ver</translation>
 <translation id="7661451191293163002">Kayıt sertifikası alınamadı.</translation>
@@ -7964,6 +7971,7 @@
 <translation id="9200339982498053969"><ph name="ORIGIN" />, <ph name="FOLDERNAME" /> klasöründeki dosyaları düzenleyebilir</translation>
 <translation id="920045321358709304"><ph name="SEARCH_ENGINE" /> üzerinde ara</translation>
 <translation id="9201023452444595544">Tüm çevrimdışı veriler temizlenecek</translation>
+<translation id="9201117361710210082">Daha önce görüntülendi</translation>
 <translation id="9201220332032049474">Ekran kilidi seçenekleri</translation>
 <translation id="9201842707396338580">Bir hata oluştu. Lütfen cihaz sahibiyle ya da yöneticisiyle iletişime geçin. Hata kodu: <ph name="ERROR_CODE" />.</translation>
 <translation id="9203398526606335860">&amp;Profil oluşturma etkin</translation>
diff --git a/chrome/app/resources/generated_resources_uk.xtb b/chrome/app/resources/generated_resources_uk.xtb
index b35206c7..6bf2409 100644
--- a/chrome/app/resources/generated_resources_uk.xtb
+++ b/chrome/app/resources/generated_resources_uk.xtb
@@ -515,6 +515,7 @@
 <translation id="1521442365706402292">Керування сертифікатами</translation>
 <translation id="1521774566618522728">У мережі сьогодні</translation>
 <translation id="152234381334907219">Ніколи не зберігалося</translation>
+<translation id="1523279371236772909">Переглянуто минулого місяця</translation>
 <translation id="1523978563989812243">Системи синтезу мовлення</translation>
 <translation id="1524430321211440688">Клавіатура</translation>
 <translation id="1524563461097350801">Ні, дякую</translation>
@@ -1257,6 +1258,7 @@
 <translation id="2232876851878324699">Файл містив сертифікат, який не було імпортовано:</translation>
 <translation id="2233502537820838181">&amp;Докладніше</translation>
 <translation id="223356358902285214">Історія додатків і веб-пошуку</translation>
+<translation id="2234827758954819389">Посібник щодо конфіденційності</translation>
 <translation id="2234876718134438132">Синхронізація та сервіси Google</translation>
 <translation id="2235344399760031203">Файли cookie третіх сторін блокуються</translation>
 <translation id="2238379619048995541">Дані про стан частоти</translation>
@@ -3113,6 +3115,7 @@
 <translation id="4095264805865317199">Відкрити інтерфейс активації мобільної мережі</translation>
 <translation id="4095507791297118304">Основний дисплей</translation>
 <translation id="4096508467498758490">Вимкнути розширення в режимі розробника</translation>
+<translation id="4096797685681362305">Переглянуто минулого тижня</translation>
 <translation id="4097406557126260163">Додатки та розширення</translation>
 <translation id="409742781329613461">Поради для Chrome</translation>
 <translation id="4097560579602855702">Пошук Google</translation>
@@ -3670,6 +3673,7 @@
 <translation id="4699172675775169585">Кешовані зображення та файли</translation>
 <translation id="4699357559218762027">(автозапуск)</translation>
 <translation id="4701025263201366865">Вхід для батьків</translation>
+<translation id="4701335814944566468">Переглянуто вчора</translation>
 <translation id="4708794300267213770">Показувати заблокований екран, коли пристрій виходить із режиму сну</translation>
 <translation id="4708849949179781599">Вийти з <ph name="PRODUCT_NAME" /></translation>
 <translation id="4711638718396952945">Відновити налаштування</translation>
@@ -3737,6 +3741,7 @@
 <translation id="479536056609751218">Веб-сторінка, тільки HTML</translation>
 <translation id="4796142525425001238">Завжди відновлювати</translation>
 <translation id="4798236378408895261">Вкласти <ph name="BEGIN_LINK" />журнали Bluetooth<ph name="END_LINK" /> (для внутрішнього використання в Google)</translation>
+<translation id="479863874072008121">Керувати пристроями</translation>
 <translation id="4800839971935185386">Перевірити змінені назву й значок</translation>
 <translation id="4801448226354548035">Сховати облікові записи</translation>
 <translation id="4801512016965057443">Дозволити роумінг мобільних даних</translation>
@@ -4187,6 +4192,7 @@
 <translation id="526622169288322445">Додаткові дії з адресою "<ph name="ADDRESS_SUMMARY" />"</translation>
 <translation id="5269977353971873915">Помилка друку</translation>
 <translation id="5275352920323889391">Собака</translation>
+<translation id="527605719918376753">Вимкнути звук на вкладці</translation>
 <translation id="527605982717517565">Завжди дозволяти JavaScript на хості <ph name="HOST" /></translation>
 <translation id="5277127016695466621">Показати бічну панель</translation>
 <translation id="5278823018825269962">Ідентифікатор статусу</translation>
@@ -6464,6 +6470,7 @@
 <translation id="7658239707568436148">Скасувати</translation>
 <translation id="7659154729610375585">Усе одно вимкнути режим анонімного перегляду?</translation>
 <translation id="7659297516559011665">Паролі лише на цьому пристрої</translation>
+<translation id="7659336857671800422">Перегляньте посібник щодо конфіденційності</translation>
 <translation id="7659584679870740384">Вам не маєте права використовувати цей пристрій. Зверніться до адміністратора, щоб отримати дозвіл на вхід.</translation>
 <translation id="7661259717474717992">Дозволити сайтам зберігати та переглядати дані файлів cookie</translation>
 <translation id="7661451191293163002">Не вдалось отримати сертифікат про реєстрацію.</translation>
@@ -7989,6 +7996,7 @@
 <translation id="9200339982498053969">Сайт <ph name="ORIGIN" /> зможе змінювати файли в папці <ph name="FOLDERNAME" /></translation>
 <translation id="920045321358709304">Пошук у <ph name="SEARCH_ENGINE" /></translation>
 <translation id="9201023452444595544">Усі дані, збережені офлайн, буде видалено</translation>
+<translation id="9201117361710210082">Уже переглянуто</translation>
 <translation id="9201220332032049474">Способи блокування екрана</translation>
 <translation id="9201842707396338580">Сталася помилка. Зв'яжіться з адміністратором або власником пристрою. Код помилки: <ph name="ERROR_CODE" />.</translation>
 <translation id="9203398526606335860">&amp;Профілювання ввімкнено</translation>
diff --git a/chrome/app/resources/generated_resources_ur.xtb b/chrome/app/resources/generated_resources_ur.xtb
index 3d061cd..e280a8fa 100644
--- a/chrome/app/resources/generated_resources_ur.xtb
+++ b/chrome/app/resources/generated_resources_ur.xtb
@@ -1693,6 +1693,7 @@
 <translation id="2684004000387153598">جاری رکھنے کے لیے،'ٹھیک ہے' پر کلک کریں، پھر اپنے ای میل پتہ کے لیے ایک نیا پروفائل تخلیق کرنے کی خاطر 'فرد شامل کریں' پر کلک کریں۔</translation>
 <translation id="2687403674020088961">سبھی کوکیز مسدود کریں (تجویز نہیں کی جاتی ہے)</translation>
 <translation id="2687407218262674387">‏Google کی سروس کی شرائط</translation>
+<translation id="2687621393791886981">مجھ سے بعد میں پوچھیں</translation>
 <translation id="2688196195245426394">سرور کے ساتھ آلہ رجسٹر کرتے وقت خرابی پیش آ گئی: <ph name="CLIENT_ERROR" />۔</translation>
 <translation id="2690024944919328218">زبان کے اختیارات دکھائیں</translation>
 <translation id="2691385045260836588">ماڈل</translation>
@@ -4172,6 +4173,7 @@
 <translation id="526622169288322445"><ph name="ADDRESS_SUMMARY" /> کے لیے مزید کارروائیاں</translation>
 <translation id="5269977353971873915">پرنٹ ناکام ہوگیا</translation>
 <translation id="5275352920323889391">کتا</translation>
+<translation id="527605719918376753">ٹیب خاموش کریں</translation>
 <translation id="527605982717517565">‏<ph name="HOST" /> پر ہمیشہ JavaScript کی اجازت دیں</translation>
 <translation id="5277127016695466621">سائیڈ پینل دکھائیں</translation>
 <translation id="5278823018825269962">‏اسٹیٹس Id</translation>
@@ -7207,6 +7209,7 @@
 <translation id="8410775397654368139">Google Play</translation>
 <translation id="8412136526970428322"><ph name="PERMISSION" /> اور مزید <ph name="COUNT" /> کی اجازت دی گئی</translation>
 <translation id="8413385045638830869">پہلے پوچھیں (تجویز کردہ)</translation>
+<translation id="8414249071344507766">دو دنوں کے لیے مخفی میموریز</translation>
 <translation id="8416730306157376817"><ph name="BATTERY_PERCENTAGE" />% (کیس)</translation>
 <translation id="8417548266957501132">والد/والدہ کا پاس ورڈ</translation>
 <translation id="8418445294933751433">ٹیب کے بطور &amp;دکھائیں</translation>
diff --git a/chrome/app/resources/generated_resources_uz.xtb b/chrome/app/resources/generated_resources_uz.xtb
index babf000..1f16ef3f 100644
--- a/chrome/app/resources/generated_resources_uz.xtb
+++ b/chrome/app/resources/generated_resources_uz.xtb
@@ -295,6 +295,7 @@
 <translation id="1293264513303784526">USB-C qurilma (chap port)</translation>
 <translation id="1293556467332435079">Fayllar</translation>
 <translation id="1294807885394205587">Bu jarayon bir necha daqiqa vaqt olishi mumkin. Konteynerlar menejeri ishga tushirilmoqda.</translation>
+<translation id="1296046226918222533">Xatolik yuz berdi va Linux tizimi yangilanmadi. Xatolik haqida batafsil axborotni jurnal qaydlaridan topish mumkin. Jurnal qaydlari <ph name="LOG_FILE" /> fayliga saqlandi</translation>
 <translation id="1296911687402551044">Tanlangan varaqni mahkamlash</translation>
 <translation id="1297175357211070620">Printer</translation>
 <translation id="129770436432446029"><ph name="EXPERIMENT_NAME" /> ilovasi haqida fikr-mulohaza yuborish</translation>
@@ -2792,6 +2793,7 @@
 <translation id="3799128412641261490">Switch Access sozlamalari</translation>
 <translation id="3800806661949714323">Hammasini ko‘rsatish (tavsiya etiladi)</translation>
 <translation id="3800828618615365228">Google Chrome va ChromeOS qoʻshimcha shartlari</translation>
+<translation id="3802486193901166966">Bu kengaytma hech qanday maxsus ruxsat talab qilmaydi va saytlarga qoʻshimcha ruxsati yoʻq</translation>
 <translation id="380329542618494757">Ism</translation>
 <translation id="3803345858388753269">Video sifati</translation>
 <translation id="380408572480438692">Unumdorlik ma’lumotlarini yig‘ish yordamida Google tizim faoliyatiga yaxshilanishlar kiritadi. Ma’lumotlar faqatgina foydalanuvchi fikr-mulohaza jo‘natish (Alt-Shift-I) vaqtida unumdorlik ma’lumotlarini biriktirsa jo‘natiladi. Xohlagan vaqtda bu sahifaga qaytib ma’lumotlarni yig‘ish funksiyasini o‘chirib qo‘yish mumkin.</translation>
@@ -3822,6 +3824,7 @@
 <translation id="4883436287898674711">Barcha <ph name="WEBSITE_1" /> saytlari</translation>
 <translation id="48838266408104654">&amp;Vazifalar menejeri</translation>
 <translation id="4884987973312178454">6x</translation>
+<translation id="4885692421645694729">Bu kengaytmaning saytlarga qoʻshimcha ruxsati yoʻq</translation>
 <translation id="4887424188275796356">Standart ko‘rish dasturida ochish</translation>
 <translation id="488785315393301722">Tafsilotlarini ko‘rsatish</translation>
 <translation id="4890773143211625964">Qo‘shimcha printer sozlamalarini ko‘rsatish</translation>
@@ -3996,6 +3999,7 @@
 <translation id="5075910247684008552">Himoyalangan saytlarda zararli kontent avtomatik bloklanadi</translation>
 <translation id="5078638979202084724">Barcha ichki oynalarni xatcho‘plarga qo‘shish</translation>
 <translation id="5078796286268621944">Noto‘g‘ri PIN-kod</translation>
+<translation id="5079010647467150187">Ichki oʻrnatilgan VPN kiritish...</translation>
 <translation id="5079950360618752063">Taklif qilingan parolni ishlatish</translation>
 <translation id="508059534790499809">Kerberos chiptasini yangilash</translation>
 <translation id="5084230410268011727">Saytlarga harakat va yorug‘lik sensorlaridan foydalanishga ruxsat berish</translation>
@@ -4177,6 +4181,7 @@
 <translation id="526622169288322445"><ph name="ADDRESS_SUMMARY" /> uchun boshqa amallar</translation>
 <translation id="5269977353971873915">Chop etib bo‘lmadi</translation>
 <translation id="5275352920323889391">Kuchuk</translation>
+<translation id="527605719918376753">Tabdagi ovozni o‘chirish</translation>
 <translation id="527605982717517565"><ph name="HOST" /> saytiga JavaScript ishga tushirishga har doim ruxsat berilsin</translation>
 <translation id="5277127016695466621">Yon panelni ochish</translation>
 <translation id="5278823018825269962">Holat identifikatori</translation>
@@ -5548,6 +5553,7 @@
 <translation id="6709133671862442373">Yangiliklar</translation>
 <translation id="6709357832553498500"><ph name="EXTENSIONNAME" /> orqali ulanish</translation>
 <translation id="6710213216561001401">Avvalgi</translation>
+<translation id="6710973041022512889">Tizim muvaffaqiyatli yangilandi. Tizim yangilanishi haqidagi batafsil jurnal qaydlari <ph name="LOG_FILE" /> fayliga saqlandi</translation>
 <translation id="6711146141291425900">Yuklanmalar uchun <ph name="WEB_DRIVE" /> hisobini ulash</translation>
 <translation id="6712943853047024245"><ph name="WEBSITE" /> uchun parol bu foydalanuvchi nomi bilan allaqachon saqlangan</translation>
 <translation id="6713233729292711163">Ish profilini kiritish</translation>
diff --git a/chrome/app/resources/generated_resources_vi.xtb b/chrome/app/resources/generated_resources_vi.xtb
index 5130f52..f923ce2e 100644
--- a/chrome/app/resources/generated_resources_vi.xtb
+++ b/chrome/app/resources/generated_resources_vi.xtb
@@ -1034,6 +1034,7 @@
 <translation id="2022395138980869975">Bật/tắt bảng tìm kiếm bên</translation>
 <translation id="2023167225947895179">Mã PIN có thể dễ đoán</translation>
 <translation id="202352106777823113">Quá trình tải xuống mất quá nhiều thời gian và đã bị ngừng bởi mạng.</translation>
+<translation id="2024195579772565064">Xoá công cụ tìm kiếm</translation>
 <translation id="2025632980034333559"><ph name="APP_NAME" /> đã xảy ra lỗi. Nhấp vào bong bóng này để tải lại tiện ích.</translation>
 <translation id="2028449514182362831">Các tính năng cần dùng cảm biến chuyển động sẽ không hoạt động</translation>
 <translation id="202918510990975568">Nhập mật khẩu để định cấu hình tùy chọn cài đặt bảo mật và đăng nhập</translation>
@@ -1175,6 +1176,7 @@
 <translation id="2159488579268505102">USB-C</translation>
 <translation id="216169395504480358">Thêm Wi-Fi...</translation>
 <translation id="2162155940152307086">Quá trình đồng bộ hóa sẽ bắt đầu sau khi bạn thoát khỏi trang cài đặt đồng bộ hóa</translation>
+<translation id="2162926944953615670">Không có hồ sơ eSIM nào</translation>
 <translation id="2163470535490402084">Vui lòng kết nối Internet để đăng nhập vào <ph name="DEVICE_TYPE" /> của bạn.</translation>
 <translation id="2163937499206714165">Bật chế độ tối</translation>
 <translation id="2164131635608782358"><ph name="FIRST_SWITCH" />, <ph name="SECOND_SWITCH" />, <ph name="THIRD_SWITCH" /> và 1 công tắc khác</translation>
@@ -1870,6 +1872,7 @@
 <translation id="2828650939514476812">Kết nối với mạng Wi-Fi</translation>
 <translation id="2831430281393059038">Thiết bị được hỗ trợ</translation>
 <translation id="2832124733806557606">Con bạn có thể dùng mã PIN để đăng nhập hoặc mở khóa thiết bị này.</translation>
+<translation id="2835177225987815960">Chế độ quét hiện tại của bạn sẽ được đặt lại, bao gồm cả mọi công tắc đã chỉ định và ưu tiên về tốc độ quét.</translation>
 <translation id="2835547721736623118">Dịch vụ nhận dạng lời nói</translation>
 <translation id="2836269494620652131">Lỗi</translation>
 <translation id="2836635946302913370">Đăng nhập bằng tên người dùng này đã bị quản trị viên của bạn vô hiệu hóa.</translation>
@@ -3515,6 +3518,7 @@
 <translation id="4547659257713117923">Không có thẻ nào từ thiết bị khác</translation>
 <translation id="4547672827276975204">Tự động đặt</translation>
 <translation id="4549791035683739768">Khóa bảo mật của bạn chưa lưu trữ vân tay nào</translation>
+<translation id="4550926046134589611">Một số đường liên kết được hỗ trợ vẫn sẽ mở trong <ph name="APP_NAME" />.</translation>
 <translation id="4551763574344810652">Nhấn <ph name="MODIFIER_KEY_DESCRIPTION" /> để hủy thao tác</translation>
 <translation id="4553526521109675518">Bạn cần khởi động lại Chromebook để thay đổi ngôn ngữ của thiết bị. <ph name="BEGIN_LINK_LEARN_MORE" />Tìm hiểu thêm<ph name="END_LINK_LEARN_MORE" /></translation>
 <translation id="4554491709904933912">Kéo qua phần hình ảnh để tìm kiếm bằng <ph name="VISUAL_SEARCH_PROVIDER" /></translation>
@@ -3803,6 +3807,7 @@
 <translation id="48704129375571883">Thêm tính năng bổ sung</translation>
 <translation id="4870758487381879312">Nhập mật khẩu do quản trị viên cung cấp để lấy thông tin cấu hình</translation>
 <translation id="4870903493621965035">Không có thiết bị nào được ghép nối</translation>
+<translation id="4870995365819149457">Một số đường liên kết được hỗ trợ vẫn sẽ mở trong <ph name="APP_NAME" />, <ph name="APP_NAME_2" />, <ph name="APP_NAME_3" /> và 1 ứng dụng khác.</translation>
 <translation id="4871308555310586478">Không phải từ Cửa hàng Chrome trực tuyến.</translation>
 <translation id="4871322859485617074">Mã PIN chứa ký tự không hợp lệ</translation>
 <translation id="4871370605780490696">Thêm dấu trang</translation>
@@ -4179,6 +4184,7 @@
 <translation id="526622169288322445">Thao tác khác cho <ph name="ADDRESS_SUMMARY" /></translation>
 <translation id="5269977353971873915">In không thành công</translation>
 <translation id="5275352920323889391">Cún</translation>
+<translation id="527605719918376753">Tắt tiếng thẻ</translation>
 <translation id="527605982717517565">Luôn cho phép JavaScript trên <ph name="HOST" /></translation>
 <translation id="5277127016695466621">Hiện bảng điều khiển bên</translation>
 <translation id="5278823018825269962">Mã trạng thái</translation>
@@ -4838,6 +4844,7 @@
 <translation id="5969728632630673489">Đã đóng thông báo phím tắt</translation>
 <translation id="5971037678316050792">Kiểm soát ghép nối và trạng thái bộ đổi nguồn Bluetooth</translation>
 <translation id="597235323114979258">Xem điểm đích khác</translation>
+<translation id="5972543790327947908">Một số đường liên kết được hỗ trợ vẫn sẽ mở trong <ph name="APP_NAME" />, <ph name="APP_NAME_2" /> hoặc <ph name="APP_NAME_3" />.</translation>
 <translation id="5972666587303800813">Dịch vụ không hoạt động</translation>
 <translation id="5972708806901999743">Chuyển lên trên cùng</translation>
 <translation id="5972826969634861500">Khởi động <ph name="PRODUCT_NAME" /></translation>
@@ -5208,6 +5215,7 @@
 <translation id="6355789186038748882">Trình duyệt thử nghiệm (phiên bản alpha)! Một số tính năng bị thiếu hoặc không đầy đủ. Vui lòng báo cáo sự cố tại phần: Trợ giúp &gt; "Báo cáo sự cố...".</translation>
 <translation id="635609604405270300">Luôn bật thiết bị</translation>
 <translation id="63566973648609420">Chỉ người có cụm mật khẩu mới có thể đọc dữ liệu được mã hóa của bạn. Cụm mật khẩu không được gửi tới hoặc được lưu trữ bởi Google. Nếu bạn quên cụm mật khẩu hoặc muốn thay đổi cài đặt này, bạn sẽ cần <ph name="BEGIN_LINK" />đặt lại đồng bộ hóa<ph name="END_LINK" />.</translation>
+<translation id="6357305427698525450">Một số đường liên kết được hỗ trợ vẫn sẽ mở trong <ph name="APP_NAME" /> hoặc <ph name="APP_NAME_2" />.</translation>
 <translation id="6358884629796491903">Rồng</translation>
 <translation id="6359706544163531585">Tắt giao diện sáng</translation>
 <translation id="6361850914223837199">Chi tiết lỗi:</translation>
@@ -5726,6 +5734,7 @@
 <translation id="6900284862687837908">Ứng dụng nền: <ph name="BACKGROUND_APP_URL" /></translation>
 <translation id="6900532703269623216">Chế độ bảo vệ nâng cao</translation>
 <translation id="6900651018461749106">Đăng nhập lại để cập nhật <ph name="USER_EMAIL" /></translation>
+<translation id="6900654715912436255">Bạn có chắc chắn muốn xoá công cụ tìm kiếm này không?</translation>
 <translation id="6902066522699286937">Giọng nói để nghe trước</translation>
 <translation id="6902336033320348843">Không hỗ trợ phần: <ph name="ERROR_LINE" /></translation>
 <translation id="6902837902700739466">Để thiết bị tham gia vào miền</translation>
@@ -5997,6 +6006,7 @@
 <translation id="7189234443051076392">Hãy đảm bảo thiết bị của bạn có đủ dung lượng</translation>
 <translation id="7189451821249468368">Bạn không có đủ bản nâng cấp để đăng ký thiết bị này. Vui lòng liên hệ với bộ phận bán hàng để mua thêm. Nếu bạn nhận được thư này do nhầm lẫn, vui lòng liên hệ với nhóm hỗ trợ.</translation>
 <translation id="7189965711416741966">Đã thêm vân tay.</translation>
+<translation id="7191063546666816478">Một số đường liên kết được hỗ trợ vẫn sẽ mở trong <ph name="APP_NAME" />, <ph name="APP_NAME_2" />, <ph name="APP_NAME_3" /> và <ph name="NUMBER_OF_OTHER_APPS" /> ứng dụng khác.</translation>
 <translation id="7191159667348037">Máy in không xác định (USB)</translation>
 <translation id="7193051357671784796">Tổ chức của bạn đã thêm ứng dụng này. Hãy khởi động lại ứng dụng này để hoàn tất quá trình cài đặt.</translation>
 <translation id="7193374945610105795">Không có mật khẩu nào được lưu cho <ph name="ORIGIN" /></translation>
diff --git a/chrome/app/resources/generated_resources_zh-CN.xtb b/chrome/app/resources/generated_resources_zh-CN.xtb
index 28bef4aa..b9b4b8d 100644
--- a/chrome/app/resources/generated_resources_zh-CN.xtb
+++ b/chrome/app/resources/generated_resources_zh-CN.xtb
@@ -1019,6 +1019,7 @@
 <translation id="2022395138980869975">开启/关闭侧边搜索</translation>
 <translation id="2023167225947895179">该 PIN 码可能很容易被猜到</translation>
 <translation id="202352106777823113">下载时间过长,网络已停止下载。</translation>
+<translation id="2024195579772565064">删除搜索引擎</translation>
 <translation id="2025632980034333559">“<ph name="APP_NAME" />”崩溃了。点击此信息框,以重新加载该扩展程序。</translation>
 <translation id="2028449514182362831">所有需要使用移动传感器的功能都将无法正常运行</translation>
 <translation id="202918510990975568">您必须输入密码,才能配置安全性和登录</translation>
@@ -1160,6 +1161,7 @@
 <translation id="2159488579268505102">USB-C</translation>
 <translation id="216169395504480358">添加 Wi-Fi...</translation>
 <translation id="2162155940152307086">一旦您离开同步设置页面,同步功能就会启动</translation>
+<translation id="2162926944953615670">无可用的 eSIM 卡配置文件</translation>
 <translation id="2163470535490402084">请连接到互联网,以便登录您的<ph name="DEVICE_TYPE" />。</translation>
 <translation id="2163937499206714165">开启深色模式</translation>
 <translation id="2164131635608782358"><ph name="FIRST_SWITCH" />、<ph name="SECOND_SWITCH" />、<ph name="THIRD_SWITCH" /> 和另外 1 个开关键</translation>
@@ -1686,6 +1688,7 @@
 <translation id="2684004000387153598">要想继续,请点击“确定”,然后点击“添加用户”为您的电子邮件地址创建一份新个人资料。</translation>
 <translation id="2687403674020088961">阻止所有 Cookie(不建议)</translation>
 <translation id="2687407218262674387">Google 服务条款</translation>
+<translation id="2687621393791886981">以后再说</translation>
 <translation id="2688196195245426394">向服务器注册设备时出错:<ph name="CLIENT_ERROR" />。</translation>
 <translation id="2690024944919328218">显示语言选项</translation>
 <translation id="2691385045260836588">型号</translation>
@@ -1851,6 +1854,7 @@
 <translation id="2828650939514476812">连接到 Wi-Fi 网络</translation>
 <translation id="2831430281393059038">所用设备必须受支持</translation>
 <translation id="2832124733806557606">您的孩子可以使用 PIN 码登录或解锁此设备。</translation>
+<translation id="2835177225987815960">您当前的扫描设置将被重置,包括已分配的所有开关以及自动扫描速度偏好设置。</translation>
 <translation id="2835547721736623118">语音识别服务</translation>
 <translation id="2836269494620652131">崩溃</translation>
 <translation id="2836635946302913370">管理员已禁止使用此用户名登录。</translation>
@@ -3494,6 +3498,7 @@
 <translation id="4547659257713117923">没有从其他设备打开的标签页</translation>
 <translation id="4547672827276975204">自动设置</translation>
 <translation id="4549791035683739768">您的安全密钥未存储任何指纹</translation>
+<translation id="4550926046134589611">部分受支持的链接仍会在“<ph name="APP_NAME" />”中打开。</translation>
 <translation id="4551763574344810652">按 <ph name="MODIFIER_KEY_DESCRIPTION" /> 即可撤消</translation>
 <translation id="4553526521109675518">您需要重启 Chromebook 才能更改设备语言。<ph name="BEGIN_LINK_LEARN_MORE" />了解详情<ph name="END_LINK_LEARN_MORE" /></translation>
 <translation id="4554491709904933912">在图片上拖动光标即可使用 <ph name="VISUAL_SEARCH_PROVIDER" />搜索</translation>
@@ -3782,6 +3787,7 @@
 <translation id="48704129375571883">添加其他功能</translation>
 <translation id="4870758487381879312">请输入管理员提供的密码以获取配置信息</translation>
 <translation id="4870903493621965035">没有已配对的设备</translation>
+<translation id="4870995365819149457">部分受支持的链接仍会在“<ph name="APP_NAME" />”、“<ph name="APP_NAME_2" />”、“<ph name="APP_NAME_3" />”和另外 1 款应用中打开。</translation>
 <translation id="4871308555310586478">并非来自 Chrome 网上应用店。</translation>
 <translation id="4871322859485617074">PIN 码包含无效字符</translation>
 <translation id="4871370605780490696">添加书签</translation>
@@ -4158,6 +4164,7 @@
 <translation id="526622169288322445">显示可对“<ph name="ADDRESS_SUMMARY" />”执行的更多操作</translation>
 <translation id="5269977353971873915">打印失败</translation>
 <translation id="5275352920323889391">狗</translation>
+<translation id="527605719918376753">将此标签页静音</translation>
 <translation id="527605982717517565">始终允许使用 <ph name="HOST" /> 上的 JavaScript</translation>
 <translation id="5277127016695466621">显示侧边栏</translation>
 <translation id="5278823018825269962">状态 ID</translation>
@@ -4817,6 +4824,7 @@
 <translation id="5969728632630673489">已关闭键盘快捷键通知</translation>
 <translation id="5971037678316050792">控制蓝牙适配器状态和配对</translation>
 <translation id="597235323114979258">查看更多目的地</translation>
+<translation id="5972543790327947908">部分受支持的链接仍会在“<ph name="APP_NAME" />”、“<ph name="APP_NAME_2" />”或“<ph name="APP_NAME_3" />”中打开。</translation>
 <translation id="5972666587303800813">无运维服务</translation>
 <translation id="5972708806901999743">移到顶部</translation>
 <translation id="5972826969634861500">启动<ph name="PRODUCT_NAME" /></translation>
@@ -5187,6 +5195,7 @@
 <translation id="6355789186038748882">实验性(Alpha 版)浏览器!部分功能缺失或不完整。若要报告问题,请使用“帮助”&gt;“报告问题…”。</translation>
 <translation id="635609604405270300">请勿关闭设备</translation>
 <translation id="63566973648609420">只有知道您密码的人才能读取您的已加密数据。系统不会将该密码发送给 Google,Google 也不会存储该密码。如果您忘记了密码或想更改此设置,则需<ph name="BEGIN_LINK" />重置同步<ph name="END_LINK" />。</translation>
+<translation id="6357305427698525450">部分受支持的链接仍会在“<ph name="APP_NAME" />”或“<ph name="APP_NAME_2" />”中打开。</translation>
 <translation id="6358884629796491903">龙</translation>
 <translation id="6359706544163531585">停用浅色主题</translation>
 <translation id="6361850914223837199">错误详情:</translation>
@@ -5705,6 +5714,7 @@
 <translation id="6900284862687837908">后台应用:<ph name="BACKGROUND_APP_URL" /></translation>
 <translation id="6900532703269623216">增强型保护</translation>
 <translation id="6900651018461749106">重新登录后即可更新 <ph name="USER_EMAIL" /></translation>
+<translation id="6900654715912436255">确定要删除此搜索引擎吗?</translation>
 <translation id="6902066522699286937">要试听的语音</translation>
 <translation id="6902336033320348843">有区段不受支持:<ph name="ERROR_LINE" /></translation>
 <translation id="6902837902700739466">将设备加入网域</translation>
@@ -5976,6 +5986,7 @@
 <translation id="7189234443051076392">确保您的设备上有足够的空间</translation>
 <translation id="7189451821249468368">您没有足够的升级许可来注册此设备。请与销售代表联系,以购买更多升级许可。如果您认为自己不应看到这条消息,请与支持人员联系。</translation>
 <translation id="7189965711416741966">已添加指纹。</translation>
+<translation id="7191063546666816478">部分受支持的链接仍会在“<ph name="APP_NAME" />”、“<ph name="APP_NAME_2" />”、“<ph name="APP_NAME_3" />”和另外 <ph name="NUMBER_OF_OTHER_APPS" /> 款应用中打开。</translation>
 <translation id="7191159667348037">未知打印机 (USB)</translation>
 <translation id="7193051357671784796">此应用由您所属的组织添加。请重启此应用以完成安装。</translation>
 <translation id="7193374945610105795">未保存任何用于登录 <ph name="ORIGIN" /> 的密码</translation>
@@ -7189,6 +7200,7 @@
 <translation id="8410775397654368139">Google Play</translation>
 <translation id="8412136526970428322">授予了“<ph name="PERMISSION" />”权限和另外 <ph name="COUNT" /> 项权限</translation>
 <translation id="8413385045638830869">先询问(推荐)</translation>
+<translation id="8414249071344507766">回忆集锦已设为隐藏两天</translation>
 <translation id="8416730306157376817"><ph name="BATTERY_PERCENTAGE" />%(保护套)</translation>
 <translation id="8417548266957501132">家长登录密码</translation>
 <translation id="8418445294933751433">显示为标签页(&amp;S)</translation>
diff --git a/chrome/app/resources/generated_resources_zh-HK.xtb b/chrome/app/resources/generated_resources_zh-HK.xtb
index c88c0e6..7fac9dc 100644
--- a/chrome/app/resources/generated_resources_zh-HK.xtb
+++ b/chrome/app/resources/generated_resources_zh-HK.xtb
@@ -512,7 +512,7 @@
 <translation id="1521442365706402292">管理憑證</translation>
 <translation id="1521774566618522728">今天已使用</translation>
 <translation id="152234381334907219">永不儲存</translation>
-<translation id="1523279371236772909">過去一個月看過</translation>
+<translation id="1523279371236772909">上個月看過</translation>
 <translation id="1523978563989812243">「文字轉語音」引擎</translation>
 <translation id="1524430321211440688">鍵盤</translation>
 <translation id="1524563461097350801">不用了,謝謝</translation>
@@ -1254,7 +1254,7 @@
 <translation id="2232876851878324699">檔案含有一個憑證,但無法匯入:</translation>
 <translation id="2233502537820838181">更多資料(&amp;M)</translation>
 <translation id="223356358902285214">網絡和應用程式活動記錄</translation>
-<translation id="2234827758954819389">隱私權指南</translation>
+<translation id="2234827758954819389">私隱權指南</translation>
 <translation id="2234876718134438132">同步處理和 Google 服務</translation>
 <translation id="2235344399760031203">已封鎖第三方 Cookie</translation>
 <translation id="2238379619048995541">頻率狀態數據</translation>
@@ -1707,6 +1707,7 @@
 <translation id="2684004000387153598">如要繼續操作,請按一下 [確定],然後按一下 [新增使用者],即可為您的電郵地址建立新的設定檔。</translation>
 <translation id="2687403674020088961">封鎖所有 Cookie (不建議)</translation>
 <translation id="2687407218262674387">Google 服務條款</translation>
+<translation id="2687621393791886981">稍後再詢問我</translation>
 <translation id="2688196195245426394">向伺服器註冊裝置時發生錯誤:<ph name="CLIENT_ERROR" />。</translation>
 <translation id="2690024944919328218">顯示語言選項</translation>
 <translation id="2691385045260836588">型號</translation>
@@ -3111,7 +3112,7 @@
 <translation id="4095264805865317199">開啟流動網絡啟用使用者介面</translation>
 <translation id="4095507791297118304">主要顯示屏</translation>
 <translation id="4096508467498758490">停用開發人員模式擴充功能</translation>
-<translation id="4096797685681362305">過去一週看過</translation>
+<translation id="4096797685681362305">上星期看過</translation>
 <translation id="4097406557126260163">應用程式和擴充程式</translation>
 <translation id="409742781329613461">Chrome 提示</translation>
 <translation id="4097560579602855702">搜尋 Google</translation>
@@ -4189,6 +4190,7 @@
 <translation id="526622169288322445">可以對「<ph name="ADDRESS_SUMMARY" />」執行嘅其他動作</translation>
 <translation id="5269977353971873915">列印失敗</translation>
 <translation id="5275352920323889391">狗</translation>
+<translation id="527605719918376753">將分頁設為靜音</translation>
 <translation id="527605982717517565">永遠允許在 <ph name="HOST" /> 執行 JavaScript</translation>
 <translation id="5277127016695466621">顯示側面板</translation>
 <translation id="5278823018825269962">狀態 ID</translation>
@@ -6466,7 +6468,7 @@
 <translation id="7658239707568436148">取消</translation>
 <translation id="7659154729610375585">仍要結束無痕模式嗎?</translation>
 <translation id="7659297516559011665">只儲存在此裝置上的密碼</translation>
-<translation id="7659336857671800422">查看隱私權指南</translation>
+<translation id="7659336857671800422">查看私隱權指南</translation>
 <translation id="7659584679870740384">您無權使用這部裝置。如需登入權限,請與管理員聯絡。</translation>
 <translation id="7661259717474717992">允許網站儲存及讀取 Cookie 資料</translation>
 <translation id="7661451191293163002">無法取得註冊憑證。</translation>
@@ -7226,6 +7228,7 @@
 <translation id="8410775397654368139">Google Play</translation>
 <translation id="8412136526970428322">已允許<ph name="PERMISSION" />和其他 <ph name="COUNT" /> 個項目</translation>
 <translation id="8413385045638830869">事先詢問 (建議)</translation>
+<translation id="8414249071344507766">回憶集錦已隱藏兩天</translation>
 <translation id="8416730306157376817"><ph name="BATTERY_PERCENTAGE" />% (充電盒)</translation>
 <translation id="8417548266957501132">家長密碼</translation>
 <translation id="8418445294933751433">顯示為分頁(&amp;S)</translation>
diff --git a/chrome/app/resources/generated_resources_zh-TW.xtb b/chrome/app/resources/generated_resources_zh-TW.xtb
index a64058be..33130e3 100644
--- a/chrome/app/resources/generated_resources_zh-TW.xtb
+++ b/chrome/app/resources/generated_resources_zh-TW.xtb
@@ -1692,6 +1692,7 @@
 <translation id="2684004000387153598">如要繼續操作,請依序點選 [確定] 和 [新增使用者],為你的電子郵件地址建立新的設定檔。</translation>
 <translation id="2687403674020088961">封鎖所有 Cookie (不建議)</translation>
 <translation id="2687407218262674387">Google 服務條款</translation>
+<translation id="2687621393791886981">稍後再詢問我</translation>
 <translation id="2688196195245426394">向伺服器註冊裝置時發生錯誤:<ph name="CLIENT_ERROR" />。</translation>
 <translation id="2690024944919328218">顯示語言選項</translation>
 <translation id="2691385045260836588">型號</translation>
@@ -4170,6 +4171,7 @@
 <translation id="526622169288322445">可對「<ph name="ADDRESS_SUMMARY" />」執行的其他動作</translation>
 <translation id="5269977353971873915">列印失敗</translation>
 <translation id="5275352920323889391">狗</translation>
+<translation id="527605719918376753">關閉分頁音訊</translation>
 <translation id="527605982717517565">永遠允許在 <ph name="HOST" /> 執行 JavaScript</translation>
 <translation id="5277127016695466621">顯示側邊面板</translation>
 <translation id="5278823018825269962">狀態 ID</translation>
@@ -7206,6 +7208,7 @@
 <translation id="8410775397654368139">Google Play</translation>
 <translation id="8412136526970428322">已允許:<ph name="PERMISSION" />和另外 <ph name="COUNT" /> 項</translation>
 <translation id="8413385045638830869">先詢問我 (建議)</translation>
+<translation id="8414249071344507766">回憶集錦已隱藏兩天</translation>
 <translation id="8416730306157376817"><ph name="BATTERY_PERCENTAGE" />% (充電盒)</translation>
 <translation id="8417548266957501132">家長帳戶密碼</translation>
 <translation id="8418445294933751433">顯示為分頁(&amp;S)</translation>
diff --git a/chrome/app/resources/generated_resources_zu.xtb b/chrome/app/resources/generated_resources_zu.xtb
index c8f77335..bd456fb4 100644
--- a/chrome/app/resources/generated_resources_zu.xtb
+++ b/chrome/app/resources/generated_resources_zu.xtb
@@ -4187,6 +4187,7 @@
 <translation id="526622169288322445">Izenzo ezengeziwe ze-<ph name="ADDRESS_SUMMARY" /></translation>
 <translation id="5269977353971873915">Ukuphrinta kuhlulekile</translation>
 <translation id="5275352920323889391">Inja</translation>
+<translation id="527605719918376753">Thulisa ithebhu</translation>
 <translation id="527605982717517565">Hlala uvumela i-JavaScript ku-<ph name="HOST" /></translation>
 <translation id="5277127016695466621">Bonisa iphaneli eseceleni</translation>
 <translation id="5278823018825269962">I-Id Yesimo</translation>
diff --git a/chrome/app/resources/google_chrome_strings_ru.xtb b/chrome/app/resources/google_chrome_strings_ru.xtb
index ee4a45c0..eac4112 100644
--- a/chrome/app/resources/google_chrome_strings_ru.xtb
+++ b/chrome/app/resources/google_chrome_strings_ru.xtb
@@ -157,7 +157,7 @@
 <translation id="4754614261631455953">Google Chrome Canary (mDNS-In)</translation>
 <translation id="4771048833395599659">Chrome заблокировал этот файл как потенциально опасный.</translation>
 <translation id="479167709087336770">Используется та же технология проверки правописания, что и в Google Поиске. Текст, который вы введете в браузере, будет отправлен в Google. Этот параметр можно изменить в настройках.</translation>
-<translation id="4873783916118289636">Проверка основных настроек конфиденциальности и безопасности в Chrome.</translation>
+<translation id="4873783916118289636">Проверьте основные настройки конфиденциальности и безопасности в Chrome.</translation>
 <translation id="4891791193823137474">Разрешить работу Google Chrome в фоновом режиме</translation>
 <translation id="4895437082222824641">Открыть ссылку в новой вкладке браузера Chrome</translation>
 <translation id="4953650215774548573">Сделать Google Chrome браузером по умолчанию</translation>
diff --git a/chrome/browser/BUILD.gn b/chrome/browser/BUILD.gn
index e88b6514..4e34e8d 100644
--- a/chrome/browser/BUILD.gn
+++ b/chrome/browser/BUILD.gn
@@ -5890,13 +5890,13 @@
 
   if (is_fuchsia) {
     sources += [
-      "chrome_browser_main_parts_fuchsia.cc",
-      "chrome_browser_main_parts_fuchsia.h",
       "crash_upload_list/crash_upload_list_fuchsia.cc",
       "crash_upload_list/crash_upload_list_fuchsia.h",
       "download/download_status_updater_fuchsia.cc",
       "first_run/first_run_internal_fuchsia.cc",
       "first_run/upgrade_util_fuchsia.cc",
+      "fuchsia/chrome_browser_main_parts_fuchsia.cc",
+      "fuchsia/chrome_browser_main_parts_fuchsia.h",
       "fullscreen_fuchsia.cc",
       "icon_loader_fuchsia.cc",
       "importer/firefox_profile_lock_fuchsia.cc",
diff --git a/chrome/browser/android/autofill_assistant/assistant_collect_user_data_delegate.cc b/chrome/browser/android/autofill_assistant/assistant_collect_user_data_delegate.cc
index d4bc1093..f6c578f 100644
--- a/chrome/browser/android/autofill_assistant/assistant_collect_user_data_delegate.cc
+++ b/chrome/browser/android/autofill_assistant/assistant_collect_user_data_delegate.cc
@@ -13,7 +13,6 @@
 #include "chrome/android/features/autofill_assistant/jni_headers/AssistantCollectUserDataNativeDelegate_jni.h"
 #include "chrome/browser/android/autofill_assistant/ui_controller_android.h"
 #include "chrome/browser/android/autofill_assistant/ui_controller_android_utils.h"
-#include "chrome/browser/autofill/android/personal_data_manager_android.h"
 #include "components/autofill/core/browser/autofill_data_util.h"
 
 using base::android::AttachCurrentThread;
@@ -64,8 +63,9 @@
   }
 
   auto shipping_address = std::make_unique<autofill::AutofillProfile>();
-  autofill::PersonalDataManagerAndroid::PopulateNativeProfileFromJava(
-      jaddress, env, shipping_address.get());
+  ui_controller_android_utils::PopulateAutofillProfileFromJava(
+      jaddress, env, shipping_address.get(),
+      base::android::GetDefaultLocaleString());
   ui_controller_->OnShippingAddressChanged(
       std::move(shipping_address), static_cast<UserDataEventType>(event_type));
 }
@@ -82,14 +82,15 @@
   }
 
   auto card = std::make_unique<autofill::CreditCard>();
-  autofill::PersonalDataManagerAndroid::PopulateNativeCreditCardFromJava(
-      jcard, env, card.get());
+  ui_controller_android_utils::PopulateAutofillCreditCardFromJava(
+      jcard, env, card.get(), base::android::GetDefaultLocaleString());
 
   std::unique_ptr<autofill::AutofillProfile> billing_profile;
   if (jbilling_profile) {
     billing_profile = std::make_unique<autofill::AutofillProfile>();
-    autofill::PersonalDataManagerAndroid::PopulateNativeProfileFromJava(
-        jbilling_profile, env, billing_profile.get());
+    ui_controller_android_utils::PopulateAutofillProfileFromJava(
+        jbilling_profile, env, billing_profile.get(),
+        base::android::GetDefaultLocaleString());
   }
 
   ui_controller_->OnCreditCardChanged(
diff --git a/chrome/browser/android/autofill_assistant/client_android.cc b/chrome/browser/android/autofill_assistant/client_android.cc
index 22185c3d..94fb95b 100644
--- a/chrome/browser/android/autofill_assistant/client_android.cc
+++ b/chrome/browser/android/autofill_assistant/client_android.cc
@@ -70,8 +70,9 @@
     const JavaParamRef<jobject>& jdependencies) {
   auto* web_contents = content::WebContents::FromJavaWebContents(jweb_contents);
   std::unique_ptr<Dependencies> dependencies =
-      Dependencies::CreateFromJavaObject(
+      Dependencies::CreateFromJavaDependencies(
           ScopedJavaGlobalRef<jobject>(jdependencies));
+
   ClientAndroid::CreateForWebContents(web_contents, std::move(dependencies));
   return ClientAndroid::FromWebContents(web_contents)->GetJavaObject();
 }
@@ -421,7 +422,7 @@
 base::android::ScopedJavaGlobalRef<jobject> ClientAndroid::GetDependencies(
     JNIEnv* env,
     const base::android::JavaParamRef<jobject>& jcaller) {
-  return dependencies_->GetJavaObject();
+  return dependencies_->GetJavaDependencies();
 }
 
 int ClientAndroid::FindDirectAction(const std::string& action_name) {
@@ -450,7 +451,8 @@
     const base::android::JavaRef<jobject>& joverlay_coordinator) {
   if (!ui_controller_android_) {
     ui_controller_android_ = UiControllerAndroid::CreateFromWebContents(
-        GetWebContents(), dependencies_->GetJavaObject(), joverlay_coordinator);
+        GetWebContents(), dependencies_->GetJavaDependencies(),
+        joverlay_coordinator);
     if (!ui_controller_android_) {
       // The activity is not or not yet in a mode where attaching the UI is
       // possible.
@@ -579,7 +581,7 @@
 
 bool ClientAndroid::IsAccessibilityEnabled() const {
   return Java_AutofillAssistantClient_isAccessibilityEnabled(
-      AttachCurrentThread(), dependencies_->GetJavaObject());
+      AttachCurrentThread(), dependencies_->GetJavaDependencies());
 }
 
 bool ClientAndroid::IsSpokenFeedbackAccessibilityServiceEnabled() const {
diff --git a/chrome/browser/android/autofill_assistant/dependencies.cc b/chrome/browser/android/autofill_assistant/dependencies.cc
index 7f10ab9b..5d034d4 100644
--- a/chrome/browser/android/autofill_assistant/dependencies.cc
+++ b/chrome/browser/android/autofill_assistant/dependencies.cc
@@ -16,32 +16,49 @@
 
 namespace autofill_assistant {
 
-std::unique_ptr<Dependencies> Dependencies::CreateFromJavaObject(
-    ScopedJavaGlobalRef<jobject> java_object) {
+std::unique_ptr<Dependencies> Dependencies::CreateFromJavaDependencies(
+    ScopedJavaGlobalRef<jobject> jdependencies) {
+  std::unique_ptr<Dependencies> dependencies =
+      CreateFromJavaStaticDependencies(jdependencies);
+  dependencies->SetJavaDependencies(jdependencies);
+  return dependencies;
+}
+
+std::unique_ptr<Dependencies> Dependencies::CreateFromJavaStaticDependencies(
+    ScopedJavaGlobalRef<jobject> jstatic_dependencies) {
   const jlong object_ptr = Java_AssistantStaticDependencies_getNativePointer(
-      AttachCurrentThread(), java_object);
+      AttachCurrentThread(), jstatic_dependencies);
   return base::WrapUnique(reinterpret_cast<Dependencies*>(object_ptr));
 }
 
 Dependencies::Dependencies(JNIEnv* env,
-                           const JavaParamRef<jobject>& java_object)
-    : java_object_(java_object) {}
+                           const JavaParamRef<jobject>& jstatic_dependencies)
+    : jstatic_dependencies_(jstatic_dependencies) {}
 
-ScopedJavaGlobalRef<jobject> Dependencies::GetJavaObject() const {
-  return java_object_;
+void Dependencies::SetJavaDependencies(
+    base::android::ScopedJavaGlobalRef<jobject> jdependencies) {
+  jdependencies_ = jdependencies;
+}
+
+ScopedJavaGlobalRef<jobject> Dependencies::GetJavaStaticDependencies() const {
+  return jstatic_dependencies_;
+}
+
+ScopedJavaGlobalRef<jobject> Dependencies::GetJavaDependencies() const {
+  return jdependencies_;
 }
 
 ScopedJavaGlobalRef<jobject> Dependencies::CreateInfoPageUtil(
-    const ScopedJavaGlobalRef<jobject>& java_object) {
+    const ScopedJavaGlobalRef<jobject>& jstatic_dependencies) {
   return ScopedJavaGlobalRef<jobject>(
-      Java_AssistantStaticDependencies_createInfoPageUtil(AttachCurrentThread(),
-                                                          java_object));
+      Java_AssistantStaticDependencies_createInfoPageUtil(
+          AttachCurrentThread(), jstatic_dependencies));
 }
 
 ScopedJavaGlobalRef<jobject> Dependencies::CreateAccessTokenUtil() const {
   return ScopedJavaGlobalRef<jobject>(
       Java_AssistantStaticDependencies_createAccessTokenUtil(
-          AttachCurrentThread(), java_object_));
+          AttachCurrentThread(), jstatic_dependencies_));
 }
 
 Dependencies::~Dependencies() = default;
diff --git a/chrome/browser/android/autofill_assistant/dependencies.h b/chrome/browser/android/autofill_assistant/dependencies.h
index 70bc6c34..f300e1e 100644
--- a/chrome/browser/android/autofill_assistant/dependencies.h
+++ b/chrome/browser/android/autofill_assistant/dependencies.h
@@ -20,13 +20,20 @@
 // and dependencies to the starter.
 class Dependencies {
  public:
-  static std::unique_ptr<Dependencies> CreateFromJavaObject(
-      base::android::ScopedJavaGlobalRef<jobject> java_object);
+  static std::unique_ptr<Dependencies> CreateFromJavaDependencies(
+      base::android::ScopedJavaGlobalRef<jobject> jdependencies);
 
-  base::android::ScopedJavaGlobalRef<jobject> GetJavaObject() const;
+  static std::unique_ptr<Dependencies> CreateFromJavaStaticDependencies(
+      base::android::ScopedJavaGlobalRef<jobject> jstatic_dependencies);
+
+  base::android::ScopedJavaGlobalRef<jobject> GetJavaStaticDependencies() const;
+  // Might not be null during initiation in starter_android.
+  base::android::ScopedJavaGlobalRef<jobject> GetJavaDependencies() const;
+
+  void SetJavaDependencies(base::android::ScopedJavaGlobalRef<jobject>);
 
   static base::android::ScopedJavaGlobalRef<jobject> CreateInfoPageUtil(
-      const base::android::ScopedJavaGlobalRef<jobject>& java_object);
+      const base::android::ScopedJavaGlobalRef<jobject>& jstatic_dependencies);
 
   base::android::ScopedJavaGlobalRef<jobject> CreateAccessTokenUtil() const;
 
@@ -44,11 +51,14 @@
       content::BrowserContext* browser_context) const = 0;
 
  protected:
-  Dependencies(JNIEnv* env,
-               const base::android::JavaParamRef<jobject>& java_object);
+  Dependencies(
+      JNIEnv* env,
+      const base::android::JavaParamRef<jobject>& jstatic_dependencies);
 
  private:
-  const base::android::ScopedJavaGlobalRef<jobject> java_object_;
+  const base::android::ScopedJavaGlobalRef<jobject> jstatic_dependencies_;
+  // Might be null during initiation in starter_android.
+  base::android::ScopedJavaGlobalRef<jobject> jdependencies_;
 };
 
 }  // namespace autofill_assistant
diff --git a/chrome/browser/android/autofill_assistant/dependencies_chrome.cc b/chrome/browser/android/autofill_assistant/dependencies_chrome.cc
index c4eaf02..f741d87 100644
--- a/chrome/browser/android/autofill_assistant/dependencies_chrome.cc
+++ b/chrome/browser/android/autofill_assistant/dependencies_chrome.cc
@@ -29,13 +29,17 @@
 
 static jlong JNI_AssistantStaticDependenciesChrome_Init(
     JNIEnv* env,
-    const JavaParamRef<jobject>& java_object) {
-  return reinterpret_cast<intptr_t>(new DependenciesChrome(env, java_object));
+    const JavaParamRef<jobject>& jstatic_dependencies) {
+  // The dynamic_cast is necessary here to safely cast the resulting intptr back
+  // to DependenciesAndroid using reinterpret_cast.
+  return reinterpret_cast<intptr_t>(dynamic_cast<Dependencies*>(
+      new DependenciesChrome(env, jstatic_dependencies)));
 }
 
-DependenciesChrome::DependenciesChrome(JNIEnv* env,
-                                       const JavaParamRef<jobject>& java_object)
-    : Dependencies(env, java_object) {}
+DependenciesChrome::DependenciesChrome(
+    JNIEnv* env,
+    const JavaParamRef<jobject>& jstatic_dependencies)
+    : Dependencies(env, jstatic_dependencies) {}
 
 class AssistantFieldTrialUtilChrome : public AssistantFieldTrialUtil {
   bool RegisterSyntheticFieldTrial(
diff --git a/chrome/browser/android/autofill_assistant/dependencies_chrome.h b/chrome/browser/android/autofill_assistant/dependencies_chrome.h
index db870f0..f3cd315 100644
--- a/chrome/browser/android/autofill_assistant/dependencies_chrome.h
+++ b/chrome/browser/android/autofill_assistant/dependencies_chrome.h
@@ -22,8 +22,9 @@
 // and dependencies to the starter.
 class DependenciesChrome : public Dependencies {
  public:
-  DependenciesChrome(JNIEnv* env,
-                     const base::android::JavaParamRef<jobject>& java_object);
+  DependenciesChrome(
+      JNIEnv* env,
+      const base::android::JavaParamRef<jobject>& jstatic_dependencies);
 
   std::unique_ptr<AssistantFieldTrialUtil> CreateFieldTrialUtil()
       const override;
diff --git a/chrome/browser/android/autofill_assistant/starter_android.cc b/chrome/browser/android/autofill_assistant/starter_android.cc
index 1365194d..bcc8dff 100644
--- a/chrome/browser/android/autofill_assistant/starter_android.cc
+++ b/chrome/browser/android/autofill_assistant/starter_android.cc
@@ -70,7 +70,8 @@
   CreateJavaDependenciesIfNecessary();
   return std::make_unique<TriggerScriptBridgeAndroid>(
       base::android::AttachCurrentThread(),
-      GetWebContents().GetJavaWebContents(), dependencies_->GetJavaObject());
+      GetWebContents().GetJavaWebContents(),
+      dependencies_->GetJavaDependencies());
 }
 
 std::unique_ptr<ServiceRequestSender>
@@ -256,10 +257,10 @@
     return;
   }
 
-  ScopedJavaGlobalRef<jobject> java_dependencies =
+  ScopedJavaGlobalRef<jobject> jdependencies =
       ScopedJavaGlobalRef<jobject>(*array.begin());
-  if (!java_dependencies.is_null()) {
-    dependencies_ = Dependencies::CreateFromJavaObject(java_dependencies);
+  if (!jdependencies.is_null()) {
+    dependencies_ = Dependencies::CreateFromJavaDependencies(jdependencies);
   }
 
   java_onboarding_helper_ = *(++array.begin());
diff --git a/chrome/browser/android/autofill_assistant/ui_controller_android.cc b/chrome/browser/android/autofill_assistant/ui_controller_android.cc
index 7c80107e..f79a7a5 100644
--- a/chrome/browser/android/autofill_assistant/ui_controller_android.cc
+++ b/chrome/browser/android/autofill_assistant/ui_controller_android.cc
@@ -34,7 +34,6 @@
 #include "chrome/browser/android/autofill_assistant/dependencies.h"
 #include "chrome/browser/android/autofill_assistant/generic_ui_root_controller_android.h"
 #include "chrome/browser/android/autofill_assistant/ui_controller_android_utils.h"
-#include "chrome/browser/autofill/android/personal_data_manager_android.h"
 #include "components/autofill/core/browser/data_model/autofill_profile.h"
 #include "components/autofill/core/browser/data_model/credit_card.h"
 #include "components/autofill_assistant/browser/bottom_sheet_state.h"
@@ -1298,7 +1297,6 @@
     UserData::FieldChange field_change) {
   DCHECK(execution_delegate_ != nullptr);
   DCHECK(ui_delegate_ != nullptr);
-  DCHECK(client_->GetWebContents() != nullptr);
   const CollectUserDataOptions* collect_user_data_options =
       ui_delegate_->GetCollectUserDataOptions();
   if (collect_user_data_options == nullptr) {
@@ -1310,9 +1308,6 @@
 
   JNIEnv* env = AttachCurrentThread();
   auto jmodel = GetCollectUserDataModel();
-  auto jcontext =
-      Java_AutofillAssistantUiController_getContext(env, java_object_);
-  auto web_contents = client_->GetWebContents()->GetJavaWebContents();
 
   if (field_change == UserData::FieldChange::ALL ||
       field_change == UserData::FieldChange::TERMS_AND_CONDITIONS) {
@@ -1338,11 +1333,9 @@
   auto jselected_shipping_address =
       selected_shipping_address == nullptr
           ? nullptr
-          : Java_AssistantCollectUserDataModel_createAutofillAddress(
-                env, jcontext,
-                autofill::PersonalDataManagerAndroid::
-                    CreateJavaProfileFromNative(env,
-                                                *selected_shipping_address));
+          : ui_controller_android_utils::CreateAssistantAutofillProfile(
+                env, *selected_shipping_address,
+                base::android::GetDefaultLocaleString());
   const auto& selected_shipping_address_errors =
       user_data::GetShippingAddressValidationErrors(selected_shipping_address,
                                                     *collect_user_data_options);
@@ -1377,14 +1370,10 @@
     auto jbillinglist =
         Java_AssistantCollectUserDataModel_createBillingAddressList(env);
     for (const auto& address : user_data.available_addresses_) {
-      auto jaddress = Java_AssistantCollectUserDataModel_createAutofillAddress(
-          env, jcontext,
-          autofill::PersonalDataManagerAndroid::CreateJavaProfileFromNative(
-              env, *address->profile));
-      if (jaddress) {
-        Java_AssistantCollectUserDataModel_addBillingAddress(env, jbillinglist,
-                                                             jaddress);
-      }
+      Java_AssistantCollectUserDataModel_addBillingAddress(
+          env, jbillinglist,
+          ui_controller_android_utils::CreateAssistantAutofillProfile(
+              env, *address->profile, base::android::GetDefaultLocaleString()));
     }
     Java_AssistantCollectUserDataModel_setAvailableBillingAddresses(
         env, jmodel, jbillinglist);
@@ -1395,18 +1384,15 @@
     auto address_indices = user_data::SortShippingAddressesByCompleteness(
         *collect_user_data_options, user_data.available_addresses_);
     for (int index : address_indices) {
-      auto jaddress = Java_AssistantCollectUserDataModel_createAutofillAddress(
-          env, jcontext,
-          autofill::PersonalDataManagerAndroid::CreateJavaProfileFromNative(
-              env, *user_data.available_addresses_[index]->profile));
-      if (jaddress) {
-        const auto& errors = user_data::GetShippingAddressValidationErrors(
-            user_data.available_addresses_[index]->profile.get(),
-            *collect_user_data_options);
-        Java_AssistantCollectUserDataModel_addShippingAddress(
-            env, jshippinglist, jaddress,
-            base::android::ToJavaArrayOfStrings(env, errors));
-      }
+      const auto& errors = user_data::GetShippingAddressValidationErrors(
+          user_data.available_addresses_[index]->profile.get(),
+          *collect_user_data_options);
+      Java_AssistantCollectUserDataModel_addShippingAddress(
+          env, jshippinglist,
+          ui_controller_android_utils::CreateAssistantAutofillProfile(
+              env, *user_data.available_addresses_[index]->profile,
+              base::android::GetDefaultLocaleString()),
+          base::android::ToJavaArrayOfStrings(env, errors));
     }
     Java_AssistantCollectUserDataModel_setAvailableShippingAddresses(
         env, jmodel, jshippinglist);
@@ -1439,13 +1425,14 @@
   auto jselected_card =
       selected_card == nullptr
           ? nullptr
-          : autofill::PersonalDataManagerAndroid::
-                CreateJavaCreditCardFromNative(env, *selected_card);
+          : ui_controller_android_utils::CreateAssistantAutofillCreditCard(
+                env, *selected_card, base::android::GetDefaultLocaleString());
   auto jselected_billing_address =
       selected_billing_address == nullptr
           ? nullptr
-          : autofill::PersonalDataManagerAndroid::CreateJavaProfileFromNative(
-                env, *selected_billing_address);
+          : ui_controller_android_utils::CreateAssistantAutofillProfile(
+                env, *selected_billing_address,
+                base::android::GetDefaultLocaleString());
   const auto& selected_payment_instrument_errors =
       user_data::GetPaymentInstrumentValidationErrors(
           selected_card, selected_billing_address, *collect_user_data_options);
@@ -1461,26 +1448,29 @@
             user_data.available_payment_instruments_);
     for (int index : sorted_payment_instrument_indices) {
       const auto& instrument = user_data.available_payment_instruments_[index];
+      if (instrument->card == nullptr) {
+        NOTREACHED();
+        continue;
+      }
       const auto& errors = user_data::GetPaymentInstrumentValidationErrors(
           instrument->card.get(), instrument->billing_address.get(),
           *collect_user_data_options);
       Java_AssistantCollectUserDataModel_addAutofillPaymentInstrument(
-          env, jlist, web_contents,
-          instrument->card == nullptr
-              ? nullptr
-              : autofill::PersonalDataManagerAndroid::
-                    CreateJavaCreditCardFromNative(env, *(instrument->card)),
+          env, jlist,
+          ui_controller_android_utils::CreateAssistantAutofillCreditCard(
+              env, *(instrument->card),
+              base::android::GetDefaultLocaleString()),
           instrument->billing_address == nullptr
               ? nullptr
-              : autofill::PersonalDataManagerAndroid::
-                    CreateJavaProfileFromNative(env,
-                                                *(instrument->billing_address)),
+              : ui_controller_android_utils::CreateAssistantAutofillProfile(
+                    env, *(instrument->billing_address),
+                    base::android::GetDefaultLocaleString()),
           base::android::ToJavaArrayOfStrings(env, errors));
     }
     Java_AssistantCollectUserDataModel_setAvailablePaymentInstruments(
         env, jmodel, jlist);
     Java_AssistantCollectUserDataModel_setSelectedPaymentInstrument(
-        env, jmodel, web_contents, jselected_card, jselected_billing_address,
+        env, jmodel, jselected_card, jselected_billing_address,
         base::android::ToJavaArrayOfStrings(
             env, selected_payment_instrument_errors));
   }
@@ -1490,7 +1480,7 @@
     // The selection is already known in Java, but it has no errors. The PDM
     // off case does not set updated payment instruments.
     Java_AssistantCollectUserDataModel_setSelectedPaymentInstrument(
-        env, jmodel, web_contents, jselected_card, jselected_billing_address,
+        env, jmodel, jselected_card, jselected_billing_address,
         base::android::ToJavaArrayOfStrings(
             env, selected_payment_instrument_errors));
   }
diff --git a/chrome/browser/android/autofill_assistant/ui_controller_android_utils.cc b/chrome/browser/android/autofill_assistant/ui_controller_android_utils.cc
index 060038c3..5d0ce5b 100644
--- a/chrome/browser/android/autofill_assistant/ui_controller_android_utils.cc
+++ b/chrome/browser/android/autofill_assistant/ui_controller_android_utils.cc
@@ -20,9 +20,11 @@
 #include "chrome/android/features/autofill_assistant/jni_headers/AssistantInfoPopup_jni.h"
 #include "chrome/android/features/autofill_assistant/jni_headers/AssistantValue_jni.h"
 #include "chrome/android/features/autofill_assistant/jni_headers/AutofillAssistantDependencyInjector_jni.h"
+#include "chrome/android/features/autofill_assistant/jni_headers_public/AssistantAutofillCreditCard_jni.h"
 #include "chrome/android/features/autofill_assistant/jni_headers_public/AssistantAutofillProfile_jni.h"
 #include "chrome/browser/android/autofill_assistant/client_android.h"
 #include "chrome/browser/android/tab_android.h"
+#include "components/autofill/core/browser/autofill_data_util.h"
 #include "components/autofill_assistant/browser/generic_ui_java_generated_enums.h"
 #include "components/autofill_assistant/browser/service/service.h"
 #include "components/autofill_assistant/browser/service/service_request_sender.h"
@@ -685,5 +687,100 @@
   profile->FinalizeAfterImport();
 }
 
+base::android::ScopedJavaLocalRef<jobject> CreateAssistantAutofillCreditCard(
+    JNIEnv* env,
+    const autofill::CreditCard& credit_card,
+    const std::string& locale) {
+  const autofill::data_util::PaymentRequestData& payment_request_data =
+      autofill::data_util::GetPaymentRequestData(credit_card.network());
+  return Java_AssistantAutofillCreditCard_Constructor(
+      env, ConvertUTF8ToJavaString(env, credit_card.guid()),
+      ConvertUTF8ToJavaString(env, credit_card.origin()),
+      credit_card.record_type() == autofill::CreditCard::LOCAL_CARD,
+      credit_card.record_type() == autofill::CreditCard::FULL_SERVER_CARD,
+      ConvertUTF16ToJavaString(
+          env, credit_card.GetRawInfo(autofill::CREDIT_CARD_NAME_FULL)),
+      ConvertUTF16ToJavaString(
+          env, credit_card.GetRawInfo(autofill::CREDIT_CARD_NUMBER)),
+      ConvertUTF16ToJavaString(env, credit_card.NetworkAndLastFourDigits()),
+      ConvertUTF16ToJavaString(
+          env, credit_card.GetRawInfo(autofill::CREDIT_CARD_EXP_MONTH)),
+      ConvertUTF16ToJavaString(
+          env, credit_card.GetRawInfo(autofill::CREDIT_CARD_EXP_4_DIGIT_YEAR)),
+      ConvertUTF8ToJavaString(env,
+                              payment_request_data.basic_card_issuer_network),
+      Java_AssistantAutofillCreditCard_getIssuerIconDrawableId(
+          env, ConvertUTF8ToJavaString(
+                   env, credit_card.CardIconStringForAutofillSuggestion())),
+      ConvertUTF8ToJavaString(env, credit_card.billing_address_id()),
+      ConvertUTF8ToJavaString(env, credit_card.server_id()),
+      credit_card.instrument_id(),
+      ConvertUTF16ToJavaString(env, credit_card.nickname()),
+      url::GURLAndroid::FromNativeGURL(env, credit_card.card_art_url()));
+}
+
+void PopulateAutofillCreditCardFromJava(
+    const base::android::JavaParamRef<jobject>& jcredit_card,
+    JNIEnv* env,
+    autofill::CreditCard* credit_card,
+    const std::string& locale) {
+  // Only set the guid if it is an existing card (java guid not empty).
+  // Otherwise, keep the generated one.
+  std::string guid = ConvertJavaStringToUTF8(
+      Java_AssistantAutofillCreditCard_getGUID(env, jcredit_card));
+  if (!guid.empty()) {
+    credit_card->set_guid(guid);
+  }
+
+  if (Java_AssistantAutofillCreditCard_getIsLocal(env, jcredit_card)) {
+    credit_card->set_record_type(autofill::CreditCard::LOCAL_CARD);
+  } else {
+    if (Java_AssistantAutofillCreditCard_getIsCached(env, jcredit_card)) {
+      credit_card->set_record_type(autofill::CreditCard::FULL_SERVER_CARD);
+    } else {
+      credit_card->set_record_type(autofill::CreditCard::MASKED_SERVER_CARD);
+      credit_card->SetNetworkForMaskedCard(
+          autofill::data_util::GetIssuerNetworkForBasicCardIssuerNetwork(
+              ConvertJavaStringToUTF8(
+                  env,
+                  Java_AssistantAutofillCreditCard_getBasicCardIssuerNetwork(
+                      env, jcredit_card))));
+    }
+  }
+
+  credit_card->set_origin(ConvertJavaStringToUTF8(
+      Java_AssistantAutofillCreditCard_getOrigin(env, jcredit_card)));
+  credit_card->SetRawInfo(
+      autofill::CREDIT_CARD_NAME_FULL,
+      ConvertJavaStringToUTF16(
+          Java_AssistantAutofillCreditCard_getName(env, jcredit_card)));
+  credit_card->SetRawInfo(
+      autofill::CREDIT_CARD_NUMBER,
+      ConvertJavaStringToUTF16(
+          Java_AssistantAutofillCreditCard_getNumber(env, jcredit_card)));
+  credit_card->SetRawInfo(
+      autofill::CREDIT_CARD_EXP_MONTH,
+      ConvertJavaStringToUTF16(
+          Java_AssistantAutofillCreditCard_getMonth(env, jcredit_card)));
+  credit_card->SetRawInfo(
+      autofill::CREDIT_CARD_EXP_4_DIGIT_YEAR,
+      ConvertJavaStringToUTF16(
+          Java_AssistantAutofillCreditCard_getYear(env, jcredit_card)));
+  credit_card->set_billing_address_id(ConvertJavaStringToUTF8(
+      Java_AssistantAutofillCreditCard_getBillingAddressId(env, jcredit_card)));
+  credit_card->set_server_id(ConvertJavaStringToUTF8(
+      Java_AssistantAutofillCreditCard_getServerId(env, jcredit_card)));
+  credit_card->set_instrument_id(
+      Java_AssistantAutofillCreditCard_getInstrumentId(env, jcredit_card));
+  credit_card->SetNickname(ConvertJavaStringToUTF16(
+      Java_AssistantAutofillCreditCard_getNickname(env, jcredit_card)));
+  base::android::ScopedJavaLocalRef<jobject> jcard_art_url =
+      Java_AssistantAutofillCreditCard_getCardArtUrl(env, jcredit_card);
+  if (!jcard_art_url.is_null()) {
+    credit_card->set_card_art_url(
+        *url::GURLAndroid::ToNativeGURL(env, jcard_art_url));
+  }
+}
+
 }  // namespace ui_controller_android_utils
 }  // namespace autofill_assistant
diff --git a/chrome/browser/android/autofill_assistant/ui_controller_android_utils.h b/chrome/browser/android/autofill_assistant/ui_controller_android_utils.h
index 2fe884a6..340b7b9 100644
--- a/chrome/browser/android/autofill_assistant/ui_controller_android_utils.h
+++ b/chrome/browser/android/autofill_assistant/ui_controller_android_utils.h
@@ -11,6 +11,7 @@
 #include "base/android/jni_android.h"
 #include "base/containers/flat_map.h"
 #include "components/autofill/core/browser/data_model/autofill_profile.h"
+#include "components/autofill/core/browser/data_model/credit_card.h"
 #include "components/autofill_assistant/browser/autofill_assistant_tts_controller.h"
 #include "components/autofill_assistant/browser/bottom_sheet_state.h"
 #include "components/autofill_assistant/browser/service.pb.h"
@@ -172,6 +173,21 @@
     autofill::AutofillProfile* profile,
     const std::string& locale);
 
+// Creates an AssistantAutofillCreditCard in Java. This is comparable to
+// PersonalDataManagerAndroid::CreateJavaCreditCardFromNative.
+base::android::ScopedJavaLocalRef<jobject> CreateAssistantAutofillCreditCard(
+    JNIEnv* env,
+    const autofill::CreditCard& credit_card,
+    const std::string& locale);
+
+// Populate the CreditCard from the Java AssistantAutofillCreditCard. This is
+// comparable to PersonalDataManagerAndroid::PopulateNativeCreditCardFromJava.
+void PopulateAutofillCreditCardFromJava(
+    const base::android::JavaParamRef<jobject>& jcredit_card,
+    JNIEnv* env,
+    autofill::CreditCard* credit_card,
+    const std::string& locale);
+
 }  // namespace ui_controller_android_utils
 }  //  namespace autofill_assistant
 
diff --git a/chrome/browser/android/compositor/layer/content_layer.cc b/chrome/browser/android/compositor/layer/content_layer.cc
index 9712692..d40948f8 100644
--- a/chrome/browser/android/compositor/layer/content_layer.cc
+++ b/chrome/browser/android/compositor/layer/content_layer.cc
@@ -42,7 +42,7 @@
   if (layer->opacity() == 0.0f)
     return nullptr;
 
-  if (layer->DrawsContent())
+  if (layer->draws_content())
     return layer.get();
 
   const cc::LayerList& children = layer->children();
diff --git a/chrome/browser/apps/app_service/intent_util.cc b/chrome/browser/apps/app_service/intent_util.cc
index 7f3eb99..dd039aa1 100644
--- a/chrome/browser/apps/app_service/intent_util.cc
+++ b/chrome/browser/apps/app_service/intent_util.cc
@@ -49,62 +49,12 @@
 #include "storage/browser/file_system/file_system_url.h"
 #endif
 
+namespace apps_util {
+
 namespace {
 
 constexpr char kTextPlain[] = "text/plain";
 
-apps::mojom::IntentFilterPtr CreateFileFilter(
-    const std::vector<std::string>& intent_actions,
-    const std::vector<std::string>& mime_types,
-    const std::vector<std::string>& file_extensions,
-    const std::string& activity_name = "",
-    bool include_directories = false) {
-  DCHECK(!mime_types.empty() || !file_extensions.empty());
-  auto intent_filter = apps::mojom::IntentFilter::New();
-
-  // kAction == View, Share etc.
-  std::vector<apps::mojom::ConditionValuePtr> action_condition_values;
-  for (auto& action : intent_actions) {
-    action_condition_values.push_back(apps_util::MakeConditionValue(
-        action, apps::mojom::PatternMatchType::kNone));
-  }
-  if (!action_condition_values.empty()) {
-    auto action_condition =
-        apps_util::MakeCondition(apps::mojom::ConditionType::kAction,
-                                 std::move(action_condition_values));
-    intent_filter->conditions.push_back(std::move(action_condition));
-  }
-
-  std::vector<apps::mojom::ConditionValuePtr> condition_values;
-  // Mime types.
-  for (auto& mime_type : mime_types) {
-    condition_values.push_back(apps_util::MakeConditionValue(
-        mime_type, apps::mojom::PatternMatchType::kMimeType));
-  }
-  // And file extensions.
-  for (const std::string& extension : file_extensions) {
-    condition_values.push_back(apps_util::MakeConditionValue(
-        extension, apps::mojom::PatternMatchType::kFileExtension));
-  }
-  if (include_directories) {
-    condition_values.push_back(apps_util::MakeConditionValue(
-        "", apps::mojom::PatternMatchType::kIsDirectory));
-  }
-
-  DCHECK(!condition_values.empty());
-  if (!condition_values.empty()) {
-    auto file_condition = apps_util::MakeCondition(
-        apps::mojom::ConditionType::kFile, std::move(condition_values));
-    intent_filter->conditions.push_back(std::move(file_condition));
-  }
-
-  if (!activity_name.empty()) {
-    intent_filter->activity_name = activity_name;
-  }
-
-  return intent_filter;
-}
-
 #if BUILDFLAG(IS_CHROMEOS_ASH)
 apps::mojom::IntentFilterPtr CreateFileURLFilter(
     const std::vector<std::string>& patterns,
@@ -115,20 +65,20 @@
 
   // kAction == View.
   std::vector<apps::mojom::ConditionValuePtr> action_condition_values;
-  action_condition_values.push_back(apps_util::MakeConditionValue(
-      apps_util::kIntentActionView, apps::mojom::PatternMatchType::kNone));
-  auto action_condition = apps_util::MakeCondition(
-      apps::mojom::ConditionType::kAction, std::move(action_condition_values));
+  action_condition_values.push_back(MakeConditionValue(
+      kIntentActionView, apps::mojom::PatternMatchType::kNone));
+  auto action_condition = MakeCondition(apps::mojom::ConditionType::kAction,
+                                        std::move(action_condition_values));
   intent_filter->conditions.push_back(std::move(action_condition));
 
   // URL patterns.
   std::vector<apps::mojom::ConditionValuePtr> condition_values;
   for (const std::string& pattern : patterns) {
-    condition_values.push_back(apps_util::MakeConditionValue(
-        pattern, apps::mojom::PatternMatchType::kGlob));
+    condition_values.push_back(
+        MakeConditionValue(pattern, apps::mojom::PatternMatchType::kGlob));
   }
-  auto file_condition = apps_util::MakeCondition(
-      apps::mojom::ConditionType::kFile, std::move(condition_values));
+  auto file_condition = MakeCondition(apps::mojom::ConditionType::kFile,
+                                      std::move(condition_values));
   intent_filter->conditions.push_back(std::move(file_condition));
 
   intent_filter->activity_name = activity_name;
@@ -144,19 +94,19 @@
   auto intent_filter = apps::mojom::IntentFilter::New();
 
   std::vector<apps::mojom::ConditionValuePtr> action_condition_values;
-  action_condition_values.push_back(apps_util::MakeConditionValue(
-      apps_util::kIntentActionSend, apps::mojom::PatternMatchType::kNone));
-  auto action_condition = apps_util::MakeCondition(
-      apps::mojom::ConditionType::kAction, std::move(action_condition_values));
+  action_condition_values.push_back(MakeConditionValue(
+      kIntentActionSend, apps::mojom::PatternMatchType::kNone));
+  auto action_condition = MakeCondition(apps::mojom::ConditionType::kAction,
+                                        std::move(action_condition_values));
   intent_filter->conditions.push_back(std::move(action_condition));
 
   std::vector<apps::mojom::ConditionValuePtr> condition_values;
   for (auto& mime_type : mime_types) {
-    condition_values.push_back(apps_util::MakeConditionValue(
+    condition_values.push_back(MakeConditionValue(
         mime_type, apps::mojom::PatternMatchType::kMimeType));
   }
-  auto mime_condition = apps_util::MakeCondition(
-      apps::mojom::ConditionType::kMimeType, std::move(condition_values));
+  auto mime_condition = MakeCondition(apps::mojom::ConditionType::kMimeType,
+                                      std::move(condition_values));
   intent_filter->conditions.push_back(std::move(mime_condition));
 
   return intent_filter;
@@ -191,7 +141,7 @@
 
   if (!content_types.empty()) {
     const std::vector<std::string> intent_actions(
-        {apps_util::kIntentActionSend, apps_util::kIntentActionSendMultiple});
+        {kIntentActionSend, kIntentActionSendMultiple});
     filters.push_back(CreateFileFilter(intent_actions, content_types, {}));
   }
 
@@ -213,9 +163,8 @@
         file_extensions.push_back(extension);
       }
     }
-    filters.push_back(CreateFileFilter({apps_util::kIntentActionView},
-                                       mime_types, file_extensions,
-                                       action_url));
+    filters.push_back(CreateFileFilter({kIntentActionView}, mime_types,
+                                       file_extensions, action_url));
   }
 
   return filters;
@@ -230,9 +179,9 @@
   DCHECK(IsNoteTakingWebApp(web_app));
 
   auto intent_filter = apps::mojom::IntentFilter::New();
-  apps_util::AddSingleValueCondition(
-      apps::mojom::ConditionType::kAction, apps_util::kIntentActionCreateNote,
-      apps::mojom::PatternMatchType::kNone, intent_filter);
+  AddSingleValueCondition(apps::mojom::ConditionType::kAction,
+                          kIntentActionCreateNote,
+                          apps::mojom::PatternMatchType::kNone, intent_filter);
   return intent_filter;
 }
 
@@ -246,13 +195,13 @@
 constexpr int kIntentPrefixLength = 2;
 
 const char* ConvertAppServiceToArcIntentAction(const std::string& action) {
-  if (action == apps_util::kIntentActionMain) {
+  if (action == kIntentActionMain) {
     return arc::kIntentActionMain;
-  } else if (action == apps_util::kIntentActionView) {
+  } else if (action == kIntentActionView) {
     return arc::kIntentActionView;
-  } else if (action == apps_util::kIntentActionSend) {
+  } else if (action == kIntentActionSend) {
     return arc::kIntentActionSend;
-  } else if (action == apps_util::kIntentActionSendMultiple) {
+  } else if (action == kIntentActionSendMultiple) {
     return arc::kIntentActionSendMultiple;
   } else if (action.compare(0, strlen(kIntentActionPrefix),
                             kIntentActionPrefix) == 0) {
@@ -299,28 +248,77 @@
       // cheaper.
       if (IsPrefixOnlyGlob(path.pattern())) {
         DCHECK(path.pattern().size() >= 2);
-        return apps_util::MakeConditionValue(
+        return MakeConditionValue(
             path.pattern().substr(0, path.pattern().size() - 2),
             apps::mojom::PatternMatchType::kPrefix);
       }
       break;
   }
 
-  return apps_util::MakeConditionValue(path.pattern(), match_type);
+  return MakeConditionValue(path.pattern(), match_type);
 }
 
 #endif  // BUILDFLAG(IS_CHROMEOS_ASH)
 
 }  // namespace
 
-namespace apps_util {
+apps::mojom::IntentFilterPtr CreateFileFilter(
+    const std::vector<std::string>& intent_actions,
+    const std::vector<std::string>& mime_types,
+    const std::vector<std::string>& file_extensions,
+    const std::string& activity_name,
+    bool include_directories) {
+  DCHECK(!mime_types.empty() || !file_extensions.empty());
+  auto intent_filter = apps::mojom::IntentFilter::New();
+
+  // kAction == View, Share etc.
+  std::vector<apps::mojom::ConditionValuePtr> action_condition_values;
+  for (auto& action : intent_actions) {
+    action_condition_values.push_back(
+        MakeConditionValue(action, apps::mojom::PatternMatchType::kNone));
+  }
+  if (!action_condition_values.empty()) {
+    auto action_condition = MakeCondition(apps::mojom::ConditionType::kAction,
+                                          std::move(action_condition_values));
+    intent_filter->conditions.push_back(std::move(action_condition));
+  }
+
+  std::vector<apps::mojom::ConditionValuePtr> condition_values;
+  // Mime types.
+  for (auto& mime_type : mime_types) {
+    condition_values.push_back(MakeConditionValue(
+        mime_type, apps::mojom::PatternMatchType::kMimeType));
+  }
+  // And file extensions.
+  for (const std::string& extension : file_extensions) {
+    condition_values.push_back(MakeConditionValue(
+        extension, apps::mojom::PatternMatchType::kFileExtension));
+  }
+  if (include_directories) {
+    condition_values.push_back(
+        MakeConditionValue("", apps::mojom::PatternMatchType::kIsDirectory));
+  }
+
+  DCHECK(!condition_values.empty());
+  if (!condition_values.empty()) {
+    auto file_condition = MakeCondition(apps::mojom::ConditionType::kFile,
+                                        std::move(condition_values));
+    intent_filter->conditions.push_back(std::move(file_condition));
+  }
+
+  if (!activity_name.empty()) {
+    intent_filter->activity_name = activity_name;
+  }
+
+  return intent_filter;
+}
 
 std::vector<apps::mojom::IntentFilterPtr> CreateWebAppIntentFilters(
     const web_app::WebApp& web_app,
     const GURL& scope) {
   std::vector<apps::mojom::IntentFilterPtr> filters;
   if (!scope.is_empty())
-    filters.push_back(apps_util::CreateIntentFilterForUrlScope(scope));
+    filters.push_back(CreateIntentFilterForUrlScope(scope));
 
   base::Extend(filters, CreateWebAppShareIntentFilters(web_app));
   base::Extend(filters, CreateWebAppFileHandlerIntentFilters(web_app));
@@ -360,8 +358,8 @@
                                         handler.types.end());
     std::vector<std::string> file_extensions(handler.extensions.begin(),
                                              handler.extensions.end());
-    filters.push_back(CreateFileFilter({apps_util::kIntentActionView},
-                                       mime_types, file_extensions, handler.id,
+    filters.push_back(CreateFileFilter({kIntentActionView}, mime_types,
+                                       file_extensions, handler.id,
                                        handler.include_directories));
     filters.back()->activity_label = extension->name();
   }
@@ -478,13 +476,13 @@
 
 const char* ConvertArcToAppServiceIntentAction(const std::string& arc_action) {
   if (arc_action == arc::kIntentActionMain) {
-    return apps_util::kIntentActionMain;
+    return kIntentActionMain;
   } else if (arc_action == arc::kIntentActionView) {
-    return apps_util::kIntentActionView;
+    return kIntentActionView;
   } else if (arc_action == arc::kIntentActionSend) {
-    return apps_util::kIntentActionSend;
+    return kIntentActionSend;
   } else if (arc_action == arc::kIntentActionSendMultiple) {
-    return apps_util::kIntentActionSendMultiple;
+    return kIntentActionSendMultiple;
   }
 
   return nullptr;
@@ -646,31 +644,29 @@
       continue;
     }
 
-    action_condition_values.push_back(apps_util::MakeConditionValue(
-        action, apps::mojom::PatternMatchType::kNone));
+    action_condition_values.push_back(
+        MakeConditionValue(action, apps::mojom::PatternMatchType::kNone));
   }
   if (!action_condition_values.empty()) {
-    auto action_condition =
-        apps_util::MakeCondition(apps::mojom::ConditionType::kAction,
-                                 std::move(action_condition_values));
+    auto action_condition = MakeCondition(apps::mojom::ConditionType::kAction,
+                                          std::move(action_condition_values));
     intent_filter->conditions.push_back(std::move(action_condition));
   }
 
   std::vector<apps::mojom::ConditionValuePtr> scheme_condition_values;
   for (auto& scheme : arc_intent_filter.schemes()) {
-    scheme_condition_values.push_back(apps_util::MakeConditionValue(
-        scheme, apps::mojom::PatternMatchType::kNone));
+    scheme_condition_values.push_back(
+        MakeConditionValue(scheme, apps::mojom::PatternMatchType::kNone));
   }
   if (!scheme_condition_values.empty()) {
-    auto scheme_condition =
-        apps_util::MakeCondition(apps::mojom::ConditionType::kScheme,
-                                 std::move(scheme_condition_values));
+    auto scheme_condition = MakeCondition(apps::mojom::ConditionType::kScheme,
+                                          std::move(scheme_condition_values));
     intent_filter->conditions.push_back(std::move(scheme_condition));
   }
 
   std::vector<apps::mojom::ConditionValuePtr> host_condition_values;
   for (auto& authority : arc_intent_filter.authorities()) {
-    host_condition_values.push_back(apps_util::MakeConditionValue(
+    host_condition_values.push_back(MakeConditionValue(
         authority.host(), apps::mojom::PatternMatchType::kNone));
   }
   if (!host_condition_values.empty()) {
@@ -681,8 +677,8 @@
         std::unique(host_condition_values.begin(), host_condition_values.end()),
         host_condition_values.end());
 
-    auto host_condition = apps_util::MakeCondition(
-        apps::mojom::ConditionType::kHost, std::move(host_condition_values));
+    auto host_condition = MakeCondition(apps::mojom::ConditionType::kHost,
+                                        std::move(host_condition_values));
     intent_filter->conditions.push_back(std::move(host_condition));
   }
 
@@ -698,24 +694,24 @@
   if (path_condition_values.empty() && has_view_action &&
       arc_intent_filter.authorities().size() > 0 &&
       arc_intent_filter.schemes().size() > 0) {
-    path_condition_values.push_back(apps_util::MakeConditionValue(
-        "/", apps::mojom::PatternMatchType::kPrefix));
+    path_condition_values.push_back(
+        MakeConditionValue("/", apps::mojom::PatternMatchType::kPrefix));
   }
   if (!path_condition_values.empty()) {
-    auto path_condition = apps_util::MakeCondition(
-        apps::mojom::ConditionType::kPattern, std::move(path_condition_values));
+    auto path_condition = MakeCondition(apps::mojom::ConditionType::kPattern,
+                                        std::move(path_condition_values));
     intent_filter->conditions.push_back(std::move(path_condition));
   }
 
   std::vector<apps::mojom::ConditionValuePtr> mime_type_condition_values;
   for (auto& mime_type : arc_intent_filter.mime_types()) {
-    mime_type_condition_values.push_back(apps_util::MakeConditionValue(
+    mime_type_condition_values.push_back(MakeConditionValue(
         mime_type, apps::mojom::PatternMatchType::kMimeType));
   }
   if (!mime_type_condition_values.empty()) {
     auto mime_type_condition =
-        apps_util::MakeCondition(apps::mojom::ConditionType::kMimeType,
-                                 std::move(mime_type_condition_values));
+        MakeCondition(apps::mojom::ConditionType::kMimeType,
+                      std::move(mime_type_condition_values));
     intent_filter->conditions.push_back(std::move(mime_type_condition));
   }
   if (!arc_intent_filter.activity_name().empty()) {
diff --git a/chrome/browser/apps/app_service/intent_util.h b/chrome/browser/apps/app_service/intent_util.h
index e5100e6..5169a2e 100644
--- a/chrome/browser/apps/app_service/intent_util.h
+++ b/chrome/browser/apps/app_service/intent_util.h
@@ -44,6 +44,15 @@
 }  // namespace web_app
 
 namespace apps_util {
+
+// Creates a file filter.
+apps::mojom::IntentFilterPtr CreateFileFilter(
+    const std::vector<std::string>& intent_actions,
+    const std::vector<std::string>& mime_types,
+    const std::vector<std::string>& file_extensions,
+    const std::string& activity_name = "",
+    bool include_directories = false);
+
 // Create intent filters for |web_app|.
 // The |scope| is needed because currently the correct app scope is not
 // provided through WebApp API for shortcuts.
diff --git a/chrome/browser/ash/child_accounts/time_limits/web_time_limit_enforcer_browsertest.cc b/chrome/browser/ash/child_accounts/time_limits/web_time_limit_enforcer_browsertest.cc
index 233d064..a3fd74e 100644
--- a/chrome/browser/ash/child_accounts/time_limits/web_time_limit_enforcer_browsertest.cc
+++ b/chrome/browser/ash/child_accounts/time_limits/web_time_limit_enforcer_browsertest.cc
@@ -429,7 +429,14 @@
   EXPECT_EQ(web_contents->GetTitle(), title);
 }
 
-IN_PROC_BROWSER_TEST_F(WebTimeLimitEnforcerThrottleTest, EnsureQueryIsCleared) {
+// TODO(crbug.com/1291093): Flaky on Linux.
+#if BUILDFLAG(IS_LINUX)
+#define MAYBE_EnsureQueryIsCleared DISABLED_EnsureQueryIsCleared
+#else
+#define MAYBE_EnsureQueryIsCleared EnsureQueryIsCleared
+#endif
+IN_PROC_BROWSER_TEST_F(WebTimeLimitEnforcerThrottleTest,
+                       MAYBE_EnsureQueryIsCleared) {
   AllowlistUrlRegx(kExampleHost);
   BlockWeb();
 
diff --git a/chrome/browser/ash/login/existing_user_controller.cc b/chrome/browser/ash/login/existing_user_controller.cc
index fd1790b..ae26d23 100644
--- a/chrome/browser/ash/login/existing_user_controller.cc
+++ b/chrome/browser/ash/login/existing_user_controller.cc
@@ -1500,10 +1500,9 @@
   UserContext new_user_context = user_context;
   std::string keyboard_layout;
   for (size_t i = 0; i < keyboard_layouts->GetList().size(); ++i) {
-    base::DictionaryValue* entry = nullptr;
-    keyboard_layouts->GetDictionary(i, &entry);
-    if (entry->FindBoolKey("selected").value_or(false)) {
-      const std::string* keyboard_layout_ptr = entry->FindStringKey("value");
+    base::Value& entry = keyboard_layouts->GetList()[i];
+    if (entry.FindBoolKey("selected").value_or(false)) {
+      const std::string* keyboard_layout_ptr = entry.FindStringKey("value");
       if (keyboard_layout_ptr)
         keyboard_layout = *keyboard_layout_ptr;
       break;
diff --git a/chrome/browser/ash/login/users/chrome_user_manager_impl.cc b/chrome/browser/ash/login/users/chrome_user_manager_impl.cc
index fef179f7..58f74c82 100644
--- a/chrome/browser/ash/login/users/chrome_user_manager_impl.cc
+++ b/chrome/browser/ash/login/users/chrome_user_manager_impl.cc
@@ -717,11 +717,10 @@
 
 void ChromeUserManagerImpl::LoadDeviceLocalAccounts(
     std::set<AccountId>* device_local_accounts_set) {
-  const base::ListValue* prefs_device_local_accounts =
-      &base::Value::AsListValue(
-          *GetLocalState()->GetList(kDeviceLocalAccountsWithSavedData));
+  const base::Value* prefs_device_local_accounts =
+      GetLocalState()->GetList(kDeviceLocalAccountsWithSavedData);
   std::vector<AccountId> device_local_accounts;
-  ParseUserList(*prefs_device_local_accounts, std::set<AccountId>(),
+  ParseUserList(prefs_device_local_accounts->GetList(), std::set<AccountId>(),
                 &device_local_accounts, device_local_accounts_set);
   for (const AccountId& account_id : device_local_accounts) {
     policy::DeviceLocalAccount::Type type;
diff --git a/chrome/browser/ash/web_applications/terminal_system_web_app_info.cc b/chrome/browser/ash/web_applications/terminal_system_web_app_info.cc
index 77ac00a..e3d928d 100644
--- a/chrome/browser/ash/web_applications/terminal_system_web_app_info.cc
+++ b/chrome/browser/ash/web_applications/terminal_system_web_app_info.cc
@@ -16,7 +16,6 @@
 #include "chrome/common/webui_url_constants.h"
 #include "chrome/grit/chrome_unscaled_resources.h"
 #include "chrome/grit/generated_resources.h"
-#include "extensions/browser/api/file_handlers/mime_util.h"
 #include "extensions/common/constants.h"
 #include "third_party/blink/public/mojom/manifest/display_mode.mojom.h"
 #include "ui/base/l10n/l10n_util.h"
@@ -43,13 +42,6 @@
       *info);
   info->background_color = 0xFF202124;
   info->display_mode = blink::mojom::DisplayMode::kStandalone;
-  {
-    apps::FileHandler handler;
-    handler.accept.emplace_back();
-    handler.accept.back().mime_type =
-        extensions::app_file_handler_util::kMimeTypeInodeDirectory;
-    info->file_handlers.push_back(std::move(handler));
-  }
   info->additional_search_terms = {
       "linux", "terminal", "crostini", "ssh",
       l10n_util::GetStringUTF8(IDS_CROSTINI_TERMINAL_APP_SEARCH_TERMS)};
diff --git a/chrome/browser/chrome_content_browser_client.cc b/chrome/browser/chrome_content_browser_client.cc
index a42f9c8..d31d5480 100644
--- a/chrome/browser/chrome_content_browser_client.cc
+++ b/chrome/browser/chrome_content_browser_client.cc
@@ -410,7 +410,7 @@
 #elif BUILDFLAG(IS_POSIX)
 #include "chrome/browser/chrome_browser_main_posix.h"
 #elif BUILDFLAG(IS_FUCHSIA)
-#include "chrome/browser/chrome_browser_main_parts_fuchsia.h"
+#include "chrome/browser/fuchsia/chrome_browser_main_parts_fuchsia.h"
 #endif
 
 #if !BUILDFLAG(IS_CHROMEOS_ASH)
diff --git a/chrome/browser/enterprise/connectors/connectors_service_browsertest.cc b/chrome/browser/enterprise/connectors/connectors_service_browsertest.cc
index 3c7620b6..d5c7070 100644
--- a/chrome/browser/enterprise/connectors/connectors_service_browsertest.cc
+++ b/chrome/browser/enterprise/connectors/connectors_service_browsertest.cc
@@ -85,6 +85,22 @@
 constexpr char kTestGaiaId[] = "123";
 #endif
 
+std::string ExpectedOsPlatform() {
+#if BUILDFLAG(IS_WIN)
+  return "Windows";
+#elif BUILDFLAG(IS_MAC)
+  return "Mac OS X";
+#elif BUILDFLAG(IS_CHROMEOS_ASH)
+#if BUILDFLAG(GOOGLE_CHROME_BRANDING)
+  return "Chrome OS";
+#else
+  return "Chromium OS";
+#endif
+#elif BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_CHROMEOS_LACROS)
+  return "Linux";
+#endif
+}
+
 }  // namespace
 
 // Profile DM token tests
@@ -405,6 +421,7 @@
                 *reporting_metadata.FindStringPath("device.osVersion"));
 
       ASSERT_TRUE(metadata.device().has_os_platform());
+      ASSERT_EQ(metadata.device().os_platform(), ExpectedOsPlatform());
       ASSERT_EQ(metadata.device().os_platform(),
                 *reporting_metadata.FindStringPath("device.osPlatform"));
 
diff --git a/chrome/browser/extensions/api/declarative/rules_registry_service_unittest.cc b/chrome/browser/extensions/api/declarative/rules_registry_service_unittest.cc
index 3638194..bccbd61 100644
--- a/chrome/browser/extensions/api/declarative/rules_registry_service_unittest.cc
+++ b/chrome/browser/extensions/api/declarative/rules_registry_service_unittest.cc
@@ -152,7 +152,7 @@
 
     ASSERT_EQ(test_case.expect_api_enabled,
               FeatureProvider::GetAPIFeature("declarativeWebRequest")
-                  ->IsAvailableToEnvironment()
+                  ->IsAvailableToEnvironment(kUnspecifiedContextId)
                   .is_available());
 
     TestingProfile profile;
diff --git a/chrome/browser/extensions/api/developer_private/developer_private_api.cc b/chrome/browser/extensions/api/developer_private/developer_private_api.cc
index 2a1f8b8..cadb8d2 100644
--- a/chrome/browser/extensions/api/developer_private/developer_private_api.cc
+++ b/chrome/browser/extensions/api/developer_private/developer_private_api.cc
@@ -91,6 +91,7 @@
 #include "extensions/browser/zipfile_installer.h"
 #include "extensions/common/extension_set.h"
 #include "extensions/common/feature_switch.h"
+#include "extensions/common/features/feature_developer_mode_only.h"
 #include "extensions/common/install_warning.h"
 #include "extensions/common/manifest.h"
 #include "extensions/common/manifest_constants.h"
@@ -900,6 +901,8 @@
       return RespondNow(Error(kCannotUpdateChildAccountProfileSettingsError));
     prefs->SetBoolean(prefs::kExtensionsUIDeveloperMode,
                       *update.in_developer_mode);
+    SetCurrentDeveloperMode(util::GetBrowserContextId(browser_context()),
+                            *update.in_developer_mode);
   }
 
   return RespondNow(NoArguments());
diff --git a/chrome/browser/extensions/api/extension_action/extension_action_api.cc b/chrome/browser/extensions/api/extension_action/extension_action_api.cc
index 888bb37b..5bb82d2 100644
--- a/chrome/browser/extensions/api/extension_action/extension_action_api.cc
+++ b/chrome/browser/extensions/api/extension_action/extension_action_api.cc
@@ -64,6 +64,8 @@
     "The color specification could not be parsed.";
 constexpr char kNoActiveWindowFound[] =
     "Could not find an active browser window.";
+constexpr char kNoActivePopup[] =
+    "Extension does not have a popup on the active tab.";
 
 bool g_report_error_for_invisible_icon = false;
 
@@ -93,6 +95,23 @@
   return nullptr;
 }
 
+// Returns true if the given `extension` has an active popup on the active tab
+// of `browser`.
+bool HasPopupOnActiveTab(Browser* browser,
+                         content::BrowserContext* browser_context,
+                         const Extension& extension) {
+  content::WebContents* web_contents =
+      browser->tab_strip_model()->GetActiveWebContents();
+  ExtensionAction* extension_action =
+      ExtensionActionManager::Get(browser_context)
+          ->GetExtensionAction(extension);
+  DCHECK(extension_action);
+  int tab_id = ExtensionTabUtil::GetTabId(web_contents);
+
+  return extension_action->HasPopup(tab_id) &&
+         extension_action->GetIsVisibleIgnoringDeclarative(tab_id);
+}
+
 // Attempts to open `extension`'s popup in the given `browser`. Returns true on
 // success; otherwise, populates `error` and returns false.
 bool OpenPopupInBrowser(Browser& browser,
@@ -670,18 +689,8 @@
     return RespondNow(Error(std::move(error)));
   }
 
-  content::WebContents* web_contents =
-      browser->tab_strip_model()->GetActiveWebContents();
-  ExtensionAction* extension_action =
-      ExtensionActionManager::Get(browser_context())
-          ->GetExtensionAction(*extension());
-  DCHECK(extension_action);
-  int tab_id = ExtensionTabUtil::GetTabId(web_contents);
-  if (!extension_action->HasPopup(tab_id) ||
-      !extension_action->GetIsVisible(tab_id)) {
-    return RespondNow(
-        Error("Extension does not have a popup on the active tab."));
-  }
+  if (!HasPopupOnActiveTab(browser, browser_context(), *extension()))
+    return RespondNow(Error(kNoActivePopup));
 
   if (!OpenPopupInBrowser(*browser, *extension(), &error)) {
     DCHECK(!error.empty());
@@ -741,6 +750,9 @@
   if (!browser)
     return RespondNow(Error(kNoActiveWindowFound));
 
+  if (!HasPopupOnActiveTab(browser, browser_context(), *extension()))
+    return RespondNow(Error(kNoActivePopup));
+
   std::string error;
   if (!OpenPopupInBrowser(*browser, *extension(), &error)) {
     DCHECK(!error.empty());
diff --git a/chrome/browser/extensions/api/extension_action/extension_action_api_interactive_uitest.cc b/chrome/browser/extensions/api/extension_action/extension_action_api_interactive_uitest.cc
index 30ccd1a..099a2264 100644
--- a/chrome/browser/extensions/api/extension_action/extension_action_api_interactive_uitest.cc
+++ b/chrome/browser/extensions/api/extension_action/extension_action_api_interactive_uitest.cc
@@ -14,6 +14,8 @@
 #include "components/version_info/channel.h"
 #include "content/public/test/browser_test.h"
 #include "extensions/browser/browsertest_util.h"
+#include "extensions/browser/extension_action.h"
+#include "extensions/browser/extension_action_manager.h"
 #include "extensions/browser/extension_host_registry.h"
 #include "extensions/common/features/feature_channel.h"
 #include "extensions/test/result_catcher.h"
@@ -179,4 +181,67 @@
   EXPECT_FALSE(BrowserHasPopup(browser()));
 }
 
+// Tests that openPopup() will not succeed if a popup is only visible on a tab
+// because of a declarative condition.
+// https://crbug.com/1289846.
+IN_PROC_BROWSER_TEST_F(ActionAPIInteractiveUITest,
+                       DontOpenPopupForDeclarativelyShownAction) {
+  ASSERT_TRUE(StartEmbeddedTestServer());
+
+  constexpr char kManifest[] =
+      R"({
+           "name": "My Extension",
+           "manifest_version": 3,
+           "version": "0.1",
+           "background": { "service_worker": "worker.js" },
+           "action": { "default_popup": "popup.html" },
+           "permissions": ["declarativeContent"]
+         })";
+  constexpr char kWorkerJs[] = "// Intentionally blank";
+  constexpr char kPopupHtml[] = "<html>Hello, World!</html>";
+
+  TestExtensionDir test_dir;
+  test_dir.WriteManifest(kManifest);
+  test_dir.WriteFile(FILE_PATH_LITERAL("worker.js"), kWorkerJs);
+  test_dir.WriteFile(FILE_PATH_LITERAL("popup.html"), kPopupHtml);
+
+  const Extension* extension = LoadExtension(test_dir.UnpackedPath());
+  ASSERT_TRUE(extension);
+
+  constexpr char kDisableActionAndSetRule[] =
+      R"(await chrome.action.disable();
+         await chrome.declarativeContent.onPageChanged.addRules([{
+             conditions: [
+               new chrome.declarativeContent.PageStateMatcher({
+                 pageUrl: {hostEquals: 'example.com'}
+               })
+             ],
+             actions: [
+               new chrome.declarativeContent.ShowAction(),
+             ]
+         }]);
+         chrome.test.succeed();)";
+
+  WrapAndRunScript(kDisableActionAndSetRule, *extension);
+
+  GURL url = embedded_test_server()->GetURL("example.com", "/simple.html");
+  ASSERT_TRUE(ui_test_utils::NavigateToURL(browser(), url));
+
+  int tab_id = ExtensionTabUtil::GetTabId(
+      browser()->tab_strip_model()->GetActiveWebContents());
+
+  const ExtensionAction* extension_action =
+      ExtensionActionManager::Get(profile())->GetExtensionAction(*extension);
+  ASSERT_TRUE(extension_action);
+  EXPECT_TRUE(extension_action->GetIsVisible(tab_id));
+  EXPECT_FALSE(extension_action->GetIsVisibleIgnoringDeclarative(tab_id));
+
+  constexpr char kTryOpenPopup[] =
+      R"(await chrome.test.assertPromiseRejects(
+             chrome.action.openPopup(),
+             'Error: Extension does not have a popup on the active tab.');
+         chrome.test.succeed();)";
+  WrapAndRunScript(kTryOpenPopup, *extension);
+}
+
 }  // namespace extensions
diff --git a/chrome/browser/extensions/extension_service.cc b/chrome/browser/extensions/extension_service.cc
index e56e1f2..7176608 100644
--- a/chrome/browser/extensions/extension_service.cc
+++ b/chrome/browser/extensions/extension_service.cc
@@ -69,6 +69,7 @@
 #include "chrome/common/chrome_switches.h"
 #include "chrome/common/crash_keys.h"
 #include "chrome/common/extensions/extension_constants.h"
+#include "chrome/common/pref_names.h"
 #include "chrome/common/url_constants.h"
 #include "components/crx_file/id_util.h"
 #include "components/favicon_base/favicon_url_parser.h"
@@ -99,6 +100,7 @@
 #include "extensions/browser/updater/manifest_fetch_data.h"
 #include "extensions/common/extension_messages.h"
 #include "extensions/common/extension_urls.h"
+#include "extensions/common/features/feature_developer_mode_only.h"
 #include "extensions/common/manifest_constants.h"
 #include "extensions/common/manifest_handlers/incognito_info.h"
 #include "extensions/common/manifest_handlers/shared_module_info.h"
@@ -434,6 +436,10 @@
   extension_action_storage_manager_ =
       std::make_unique<ExtensionActionStorageManager>(profile_);
 
+  SetCurrentDeveloperMode(
+      util::GetBrowserContextId(profile),
+      profile->GetPrefs()->GetBoolean(prefs::kExtensionsUIDeveloperMode));
+
   // How long is the path to the Extensions directory?
   UMA_HISTOGRAM_CUSTOM_COUNTS("Extensions.ExtensionRootPathLength",
                               install_directory_.value().length(), 1, 500, 100);
diff --git a/chrome/browser/flag-metadata.json b/chrome/browser/flag-metadata.json
index 5726097..ea15a0d 100644
--- a/chrome/browser/flag-metadata.json
+++ b/chrome/browser/flag-metadata.json
@@ -3387,7 +3387,7 @@
   {
     "name": "google-mobile-services-passwords",
     "owners": [ "fhorschig", "vasilii" ],
-    "expiry_milestone": 99
+    "expiry_milestone": 102
   },
   {
     "name": "grid-tab-switcher-for-tablets",
diff --git a/chrome/browser/chrome_browser_main_parts_fuchsia.cc b/chrome/browser/fuchsia/chrome_browser_main_parts_fuchsia.cc
similarity index 99%
rename from chrome/browser/chrome_browser_main_parts_fuchsia.cc
rename to chrome/browser/fuchsia/chrome_browser_main_parts_fuchsia.cc
index f179f7e1..5949a619 100644
--- a/chrome/browser/chrome_browser_main_parts_fuchsia.cc
+++ b/chrome/browser/fuchsia/chrome_browser_main_parts_fuchsia.cc
@@ -2,7 +2,7 @@
 // Use of this source code is governed by a BSD-style license that can be
 // found in the LICENSE file.
 
-#include "chrome/browser/chrome_browser_main_parts_fuchsia.h"
+#include "chrome/browser/fuchsia/chrome_browser_main_parts_fuchsia.h"
 
 #include <fuchsia/element/cpp/fidl.h>
 #include <fuchsia/ui/app/cpp/fidl.h>
diff --git a/chrome/browser/chrome_browser_main_parts_fuchsia.h b/chrome/browser/fuchsia/chrome_browser_main_parts_fuchsia.h
similarity index 86%
rename from chrome/browser/chrome_browser_main_parts_fuchsia.h
rename to chrome/browser/fuchsia/chrome_browser_main_parts_fuchsia.h
index adac9632..2c7a48f2 100644
--- a/chrome/browser/chrome_browser_main_parts_fuchsia.h
+++ b/chrome/browser/fuchsia/chrome_browser_main_parts_fuchsia.h
@@ -2,8 +2,8 @@
 // Use of this source code is governed by a BSD-style license that can be
 // found in the LICENSE file.
 
-#ifndef CHROME_BROWSER_CHROME_BROWSER_MAIN_PARTS_FUCHSIA_H_
-#define CHROME_BROWSER_CHROME_BROWSER_MAIN_PARTS_FUCHSIA_H_
+#ifndef CHROME_BROWSER_FUCHSIA_CHROME_BROWSER_MAIN_PARTS_FUCHSIA_H_
+#define CHROME_BROWSER_FUCHSIA_CHROME_BROWSER_MAIN_PARTS_FUCHSIA_H_
 
 #include <memory>
 
@@ -44,4 +44,4 @@
   std::unique_ptr<ViewProviderRouter> view_provider_;
 };
 
-#endif  // CHROME_BROWSER_CHROME_BROWSER_MAIN_PARTS_FUCHSIA_H_
+#endif  // CHROME_BROWSER_FUCHSIA_CHROME_BROWSER_MAIN_PARTS_FUCHSIA_H_
diff --git a/chrome/browser/password_manager/android/BUILD.gn b/chrome/browser/password_manager/android/BUILD.gn
index d22a9932..f252081c 100644
--- a/chrome/browser/password_manager/android/BUILD.gn
+++ b/chrome/browser/password_manager/android/BUILD.gn
@@ -162,6 +162,7 @@
   deps = [
     "//base:base_java",
     "//components/password_manager/core/browser:password_manager_java_enums",
+    "//third_party/android_deps:guava_android_java",
     "//third_party/androidx:androidx_annotation_annotation_java",
   ]
 
@@ -169,6 +170,8 @@
     "java/src/org/chromium/chrome/browser/password_manager/CredentialManagerLauncher.java",
     "java/src/org/chromium/chrome/browser/password_manager/CredentialManagerLauncherFactory.java",
     "java/src/org/chromium/chrome/browser/password_manager/CredentialManagerLauncherFactoryImpl.java",
+    "java/src/org/chromium/chrome/browser/password_manager/PasswordSettingsAccessor.java",
+    "java/src/org/chromium/chrome/browser/password_manager/PasswordSettingsAccessorFactory.java",
   ]
 
   # Add the actual implementation where necessary so that downstream targets
diff --git a/chrome/browser/password_manager/android/java/src/org/chromium/chrome/browser/password_manager/PasswordSettingsAccessor.java b/chrome/browser/password_manager/android/java/src/org/chromium/chrome/browser/password_manager/PasswordSettingsAccessor.java
new file mode 100644
index 0000000..ca491c2
--- /dev/null
+++ b/chrome/browser/password_manager/android/java/src/org/chromium/chrome/browser/password_manager/PasswordSettingsAccessor.java
@@ -0,0 +1,63 @@
+// Copyright 2022 The Chromium Authors. All rights reserved.
+// Use of this source code is governed by a BSD-style license that can be
+// found in the LICENSE file.
+package org.chromium.chrome.browser.password_manager;
+
+import android.accounts.Account;
+
+import com.google.common.base.Optional;
+
+import org.chromium.base.Callback;
+
+/**
+ * Interface for the object mediating access to the password settings.
+ */
+public interface PasswordSettingsAccessor {
+    /**
+     * Asynchronously retrieves the value of the "Offer to save passwords" setting.
+     *
+     * @param account the account from which to retrieve the value or no account if it should be
+     *        retrieved from local storage
+     * @param successCallback called if the retrieval succeeds with the value of the setting
+     *        or no value if none was set
+     * @param failureCallback called with an error if the retrieval did not succeed
+     */
+    void getOfferToSavePasswords(Optional<Account> account,
+            Callback<Optional<Boolean>> successCallback, Callback<Exception> failureCallback);
+
+    /**
+     * Asynchronously sets the value of the "Offer to save passwords" setting.
+     *
+     * @param offerToSavePasswordsEnabled the value to set for the setting.
+     * @param account the account from which to retrieve the value or no account if it should be
+     *        retrieved from local storage
+     * @param successCallback called if the modification was successful
+     * @param failureCallback called with an error if the modification did not succeed
+     */
+    void setOfferToSavePasswords(boolean offerToSavePasswordsEnabled, Optional<Account> account,
+            Callback<Void> successCallback, Callback<Exception> failureCallback);
+
+    /**
+     * Asynchronously retrieves the value of the "Auto Sign In" setting.
+     *
+     * @param account the account where to store the value the value or no account if it should be
+     *        stored in the local storage
+     * @param successCallback called if the retrieval succeeds with the value of the setting
+     *        or no value if none was set
+     * @param failureCallback called with an error if the retrieval did not succeed
+     */
+    void getAutoSignIn(Optional<Account> account, Callback<Optional<Boolean>> successCallback,
+            Callback<Exception> failureCallback);
+
+    /**
+     * Asynchronously sets the value of the "Auto Sign In" setting.
+     *
+     * @param autoSignInEnabled the value to set for the setting
+     * @param account the account where to store the value the value or no account if it should be
+     *        stored in the local storage
+     * @param successCallback called if the modification was successful
+     * @param failureCallback called with an error if the modification did not succeed
+     */
+    void setAutoSignIn(boolean autoSignInEnabled, Optional<Account> account,
+            Callback<Void> successCallback, Callback<Exception> failureCallback);
+}
diff --git a/chrome/browser/password_manager/android/java/src/org/chromium/chrome/browser/password_manager/PasswordSettingsAccessorFactory.java b/chrome/browser/password_manager/android/java/src/org/chromium/chrome/browser/password_manager/PasswordSettingsAccessorFactory.java
new file mode 100644
index 0000000..8e3e3e9
--- /dev/null
+++ b/chrome/browser/password_manager/android/java/src/org/chromium/chrome/browser/password_manager/PasswordSettingsAccessorFactory.java
@@ -0,0 +1,36 @@
+// Copyright 2022 The Chromium Authors. All rights reserved.
+// Use of this source code is governed by a BSD-style license that can be
+// found in the LICENSE file.
+
+package org.chromium.chrome.browser.password_manager;
+
+import static org.chromium.base.ThreadUtils.assertOnUiThread;
+
+/**
+ * This factory returns an implementation for the password settings accessor. The factory itself is
+ * also implemented downstream.
+ */
+public abstract class PasswordSettingsAccessorFactory {
+    private static PasswordSettingsAccessorFactory sInstance;
+
+    /**
+     * Returns a settings accessor factory to be invoked whenever {@link #createAccessor()} is
+     * called. If no factory was used yet, it is created.
+     *
+     * @return The shared {@link PasswordSettingsAccessorFactory} instance.
+     */
+    public static PasswordSettingsAccessorFactory getInstance() {
+        assertOnUiThread();
+        // TODO(crbug.com/1289700): Create an instance if it doesn't exist and return it.
+        return sInstance;
+    }
+
+    /**
+     * Returns the downstream implementation provided by subclasses.
+     *
+     * @return An implementation of the {@link PasswordSettingsAccessor} if one exists.
+     */
+    public PasswordSettingsAccessor createAccessor() {
+        return null;
+    }
+}
diff --git a/chrome/browser/policy/cloud/user_policy_signin_service.cc b/chrome/browser/policy/cloud/user_policy_signin_service.cc
index 26d0110..6a07536 100644
--- a/chrome/browser/policy/cloud/user_policy_signin_service.cc
+++ b/chrome/browser/policy/cloud/user_policy_signin_service.cc
@@ -16,7 +16,6 @@
 #include "chrome/browser/profiles/profile.h"
 #include "chrome/browser/profiles/profile_manager.h"
 #include "chrome/browser/signin/account_id_from_account_info.h"
-#include "chrome/browser/signin/signin_features.h"
 #include "chrome/browser/signin/signin_util.h"
 #include "chrome/common/pref_names.h"
 #include "components/policy/core/common/cloud/cloud_policy_client_registration_helper.h"
@@ -53,8 +52,7 @@
   // should always be created before the oauth token is available.
   DCHECK(!CanApplyPoliciesForSignedInUser(/*check_for_refresh_token=*/true));
   // Some tests don't have a profile manager.
-  if (base::FeatureList::IsEnabled(kAccountPoliciesLoadedWithoutSync) &&
-      g_browser_process->profile_manager()) {
+  if (g_browser_process->profile_manager()) {
     observed_profile_.Observe(
         &g_browser_process->profile_manager()->GetProfileAttributesStorage());
   }
@@ -68,8 +66,7 @@
   // in the destructor because we want to shutdown the registration helper
   // before UserCloudPolicyManager shuts down the CloudPolicyClient.
   registration_helper_.reset();
-  if (base::FeatureList::IsEnabled(kAccountPoliciesLoadedWithoutSync) &&
-      g_browser_process->profile_manager()) {
+  if (g_browser_process->profile_manager()) {
     observed_profile_.Reset();
   }
 
diff --git a/chrome/browser/policy/cloud/user_policy_signin_service_base.cc b/chrome/browser/policy/cloud/user_policy_signin_service_base.cc
index 880171b3..ccbb6bc 100644
--- a/chrome/browser/policy/cloud/user_policy_signin_service_base.cc
+++ b/chrome/browser/policy/cloud/user_policy_signin_service_base.cc
@@ -20,7 +20,6 @@
 #include "chrome/browser/profiles/profile_attributes_storage.h"
 #include "chrome/browser/profiles/profile_manager.h"
 #include "chrome/browser/signin/account_id_from_account_info.h"
-#include "chrome/browser/signin/signin_features.h"
 #include "chrome/common/chrome_content_client.h"
 #include "chrome/common/pref_names.h"
 #include "components/policy/core/browser/browser_policy_connector.h"
@@ -47,10 +46,7 @@
       local_state_(local_state),
       device_management_service_(device_management_service),
       system_url_loader_factory_(system_url_loader_factory),
-      consent_level_(
-          base::FeatureList::IsEnabled(kAccountPoliciesLoadedWithoutSync)
-              ? signin::ConsentLevel::kSignin
-              : signin::ConsentLevel::kSync) {
+      consent_level_(signin::ConsentLevel::kSignin) {
   // Register a listener to be called back once the current profile has finished
   // initializing, so we can startup/shutdown the UserCloudPolicyManager.
   registrar_.Add(this,
@@ -69,14 +65,6 @@
   UserCloudPolicyManager* manager = policy_manager();
   DCHECK(manager);
 
-#if DCHECK_IS_ON()
-  if (manager->core()->client()) {
-    DCHECK(base::FeatureList::IsEnabled(kAccountPoliciesLoadedWithoutSync))
-        << "The UserCloudPolicyManager can only be initialized with a client "
-           "if the feature AccountPoliciesLoadedWithoutSync is enabled";
-  }
-#endif
-
   // Initialize the cloud policy manager there was no prior initialization.
   if (!manager->core()->client()) {
     std::unique_ptr<CloudPolicyClient> client =
@@ -100,16 +88,14 @@
     const signin::PrimaryAccountChangeEvent& event) {
   if (event.GetEventTypeFor(signin::ConsentLevel::kSignin) ==
       signin::PrimaryAccountChangeEvent::Type::kCleared) {
-    if (base::FeatureList::IsEnabled(kAccountPoliciesLoadedWithoutSync)) {
-      ProfileManager* profile_manager = g_browser_process->profile_manager();
-      // Some tests do not have a profile manager.
-      if (profile_manager) {
-        ProfileAttributesEntry* entry =
-            profile_manager->GetProfileAttributesStorage()
-                .GetProfileAttributesWithPath(profile_->GetPath());
-        if (entry)
-          entry->SetUserAcceptedAccountManagement(false);
-      }
+    ProfileManager* profile_manager = g_browser_process->profile_manager();
+    // Some tests do not have a profile manager.
+    if (profile_manager) {
+      ProfileAttributesEntry* entry =
+          profile_manager->GetProfileAttributesStorage()
+              .GetProfileAttributesWithPath(profile_->GetPath());
+      if (entry)
+        entry->SetUserAcceptedAccountManagement(false);
       ShutdownUserCloudPolicyManager();
     } else if (event.GetEventTypeFor(signin::ConsentLevel::kSync) ==
                signin::PrimaryAccountChangeEvent::Type::kCleared) {
@@ -296,21 +282,13 @@
 
 bool UserPolicySigninServiceBase::CanApplyPoliciesForSignedInUser(
     bool check_for_refresh_token) {
-  if (base::FeatureList::IsEnabled(kAccountPoliciesLoadedWithoutSync)) {
-    return (check_for_refresh_token
-                ? identity_manager()->HasPrimaryAccountWithRefreshToken(
-                      signin::ConsentLevel::kSignin)
-                : identity_manager()->HasPrimaryAccount(
-                      signin::ConsentLevel::kSignin)) &&
-           (profile_can_be_managed_for_testing_ ||
-            chrome::enterprise_util::ProfileCanBeManaged(profile()));
-  }
-
-  return check_for_refresh_token
-             ? identity_manager()->HasPrimaryAccountWithRefreshToken(
-                   signin::ConsentLevel::kSync)
-             : identity_manager()->HasPrimaryAccount(
-                   signin::ConsentLevel::kSync);
+  return (check_for_refresh_token
+              ? identity_manager()->HasPrimaryAccountWithRefreshToken(
+                    signin::ConsentLevel::kSignin)
+              : identity_manager()->HasPrimaryAccount(
+                    signin::ConsentLevel::kSignin)) &&
+         (profile_can_be_managed_for_testing_ ||
+          chrome::enterprise_util::ProfileCanBeManaged(profile()));
 }
 
 }  // namespace policy
diff --git a/chrome/browser/policy/cloud/user_policy_signin_service_browsertest.cc b/chrome/browser/policy/cloud/user_policy_signin_service_browsertest.cc
index 4c4e1b0..d1eaa07e 100644
--- a/chrome/browser/policy/cloud/user_policy_signin_service_browsertest.cc
+++ b/chrome/browser/policy/cloud/user_policy_signin_service_browsertest.cc
@@ -8,7 +8,6 @@
 
 #include "base/callback_helpers.h"
 #include "base/command_line.h"
-#include "base/feature_list.h"
 #include "base/memory/raw_ptr.h"
 #include "base/values.h"
 #include "build/build_config.h"
@@ -18,7 +17,6 @@
 #include "chrome/browser/policy/chrome_browser_policy_connector.h"
 #include "chrome/browser/policy/profile_policy_connector.h"
 #include "chrome/browser/signin/identity_manager_factory.h"
-#include "chrome/browser/signin/signin_features.h"
 #include "chrome/browser/ui/browser.h"
 #include "chrome/browser/ui/webui/signin/dice_turn_sync_on_helper.h"
 #include "chrome/common/pref_names.h"
@@ -427,22 +425,6 @@
   EXPECT_TRUE(profile()->GetPrefs()->GetBoolean(prefs::kShowHomeButton));
 }
 
-class UserPolicySigninServiceSyncNotRequiredTest
-    : public UserPolicySigninServiceTest {
- public:
-  UserPolicySigninServiceSyncNotRequiredTest() {
-    DiceTurnSyncOnHelper::SetShowSyncEnabledUiForTesting(true);
-    feature_list.InitAndEnableFeature(kAccountPoliciesLoadedWithoutSync);
-  }
-
-  ~UserPolicySigninServiceSyncNotRequiredTest() override {
-    DiceTurnSyncOnHelper::SetShowSyncEnabledUiForTesting(false);
-  }
-
- private:
-  base::test::ScopedFeatureList feature_list;
-};
-
 // crbug.com/1230268 not working on Lacros.
 // TODO(crbug.com/1254962): flaky on Mac builders
 #if BUILDFLAG(IS_CHROMEOS_LACROS) || BUILDFLAG(IS_MAC)
@@ -450,8 +432,9 @@
 #else
 #define MAYBE_AcceptManagementDeclineSync AcceptManagementDeclineSync
 #endif
-IN_PROC_BROWSER_TEST_F(UserPolicySigninServiceSyncNotRequiredTest,
+IN_PROC_BROWSER_TEST_F(UserPolicySigninServiceTest,
                        MAYBE_AcceptManagementDeclineSync) {
+  DiceTurnSyncOnHelper::SetShowSyncEnabledUiForTesting(true);
   EXPECT_FALSE(profile()->GetPrefs()->GetBoolean(prefs::kShowHomeButton));
 
   // Signin and show sync confirmation dialog.
@@ -492,4 +475,5 @@
   EXPECT_FALSE(
       chrome::enterprise_util::UserAcceptedAccountManagement(profile()));
   EXPECT_FALSE(chrome::enterprise_util::ProfileCanBeManaged(profile()));
+  DiceTurnSyncOnHelper::SetShowSyncEnabledUiForTesting(false);
 }
diff --git a/chrome/browser/printing/print_backend_service_manager.cc b/chrome/browser/printing/print_backend_service_manager.cc
index db5a2ae..68463436 100644
--- a/chrome/browser/printing/print_backend_service_manager.cc
+++ b/chrome/browser/printing/print_backend_service_manager.cc
@@ -58,6 +58,22 @@
 
 PrintBackendServiceManager::~PrintBackendServiceManager() = default;
 
+// static
+void PrintBackendServiceManager::LogCallToRemote(
+    base::StringPiece name,
+    const CallbackContext& context) {
+  DVLOG(1) << "Sending " << name << " on remote `" << context.remote_id
+           << "`, saved callback ID of " << context.saved_callback_id;
+}
+
+// static
+void PrintBackendServiceManager::LogCallbackFromRemote(
+    base::StringPiece name,
+    const CallbackContext& context) {
+  DVLOG(1) << name << "completed for remote `" << context.remote_id
+           << "` saved callback ID " << context.saved_callback_id;
+}
+
 void PrintBackendServiceManager::SetCrashKeys(const std::string& printer_name) {
   if (sandboxed_service_remote_for_test_)
     return;
@@ -152,130 +168,93 @@
 
 void PrintBackendServiceManager::EnumeratePrinters(
     mojom::PrintBackendService::EnumeratePrintersCallback callback) {
-  // Need to be able to run the callback either after a successful return from
-  // the service or after the remote was disconnected, so save it here for
-  // either eventuality.
-  // Get a callback ID to represent this command.
-  auto saved_callback_id = base::UnguessableToken::Create();
+  CallbackContext context;
+  auto& service = GetServiceAndCallbackContext(kEmptyPrinterName, context);
 
-  std::string remote_id = GetRemoteIdForPrinterName(kEmptyPrinterName);
-  bool is_sandboxed;
-  auto& service = GetService(kEmptyPrinterName, &is_sandboxed);
+  SaveCallback(GetRemoteSavedEnumeratePrintersCallbacks(context.is_sandboxed),
+               context.remote_id, context.saved_callback_id,
+               std::move(callback));
 
-  SaveCallback(GetRemoteSavedEnumeratePrintersCallbacks(is_sandboxed),
-               remote_id, saved_callback_id, std::move(callback));
-
-  DVLOG(1) << "Sending EnumeratePrinters on remote `" << remote_id
-           << "`, saved callback ID of " << saved_callback_id;
-  service->EnumeratePrinters(base::BindOnce(
-      &PrintBackendServiceManager::EnumeratePrintersDone,
-      base::Unretained(this), is_sandboxed, remote_id, saved_callback_id));
+  LogCallToRemote("EnumeratePrinters", context);
+  service->EnumeratePrinters(
+      base::BindOnce(&PrintBackendServiceManager::EnumeratePrintersDone,
+                     base::Unretained(this), context));
 }
 
 void PrintBackendServiceManager::FetchCapabilities(
     const std::string& printer_name,
     mojom::PrintBackendService::FetchCapabilitiesCallback callback) {
-  // Need to be able to run the callback either after a successful return from
-  // the service or after the remote was disconnected, so save it here for
-  // either eventuality.
-  // Get a callback ID to represent this command.
-  auto saved_callback_id = base::UnguessableToken::Create();
+  CallbackContext context;
+  auto& service = GetServiceAndCallbackContext(printer_name, context);
 
-  std::string remote_id = GetRemoteIdForPrinterName(printer_name);
-  bool is_sandboxed;
-  auto& service = GetService(printer_name, &is_sandboxed);
-
-  SaveCallback(GetRemoteSavedFetchCapabilitiesCallbacks(is_sandboxed),
-               remote_id, saved_callback_id, std::move(callback));
+  SaveCallback(GetRemoteSavedFetchCapabilitiesCallbacks(context.is_sandboxed),
+               context.remote_id, context.saved_callback_id,
+               std::move(callback));
 
   SetCrashKeys(printer_name);
 
-  DVLOG(1) << "Sending FetchCapabilities on remote `" << remote_id
-           << "`, saved callback ID of " << saved_callback_id;
+  LogCallToRemote("FetchCapabilities", context);
   service->FetchCapabilities(
       printer_name,
       base::BindOnce(&PrintBackendServiceManager::FetchCapabilitiesDone,
-                     base::Unretained(this), is_sandboxed, remote_id,
-                     saved_callback_id));
+                     base::Unretained(this), context));
 }
 
 void PrintBackendServiceManager::GetDefaultPrinterName(
     mojom::PrintBackendService::GetDefaultPrinterNameCallback callback) {
-  // Need to be able to run the callback either after a successful return from
-  // the service or after the remote was disconnected, so save it here for
-  // either eventuality.
-  // Get a callback ID to represent this command.
-  auto saved_callback_id = base::UnguessableToken::Create();
+  CallbackContext context;
+  auto& service = GetServiceAndCallbackContext(kEmptyPrinterName, context);
 
-  std::string remote_id = GetRemoteIdForPrinterName(kEmptyPrinterName);
-  bool is_sandboxed;
-  auto& service = GetService(kEmptyPrinterName, &is_sandboxed);
+  SaveCallback(
+      GetRemoteSavedGetDefaultPrinterNameCallbacks(context.is_sandboxed),
+      context.remote_id, context.saved_callback_id, std::move(callback));
 
-  SaveCallback(GetRemoteSavedGetDefaultPrinterNameCallbacks(is_sandboxed),
-               remote_id, saved_callback_id, std::move(callback));
-
-  DVLOG(1) << "Sending GetDefaultPrinterName on remote `" << remote_id
-           << "`, saved callback ID of " << saved_callback_id;
-  service->GetDefaultPrinterName(base::BindOnce(
-      &PrintBackendServiceManager::GetDefaultPrinterNameDone,
-      base::Unretained(this), is_sandboxed, remote_id, saved_callback_id));
+  LogCallToRemote("GetDefaultPrinterName", context);
+  service->GetDefaultPrinterName(
+      base::BindOnce(&PrintBackendServiceManager::GetDefaultPrinterNameDone,
+                     base::Unretained(this), context));
 }
 
 void PrintBackendServiceManager::GetPrinterSemanticCapsAndDefaults(
     const std::string& printer_name,
     mojom::PrintBackendService::GetPrinterSemanticCapsAndDefaultsCallback
         callback) {
-  // Need to be able to run the callback either after a successful return from
-  // the service or after the remote was disconnected, so save it here for
-  // either eventuality.
-  // Get a callback ID to represent this command.
-  auto saved_callback_id = base::UnguessableToken::Create();
+  CallbackContext context;
+  auto& service = GetServiceAndCallbackContext(printer_name, context);
 
-  std::string remote_id = GetRemoteIdForPrinterName(printer_name);
-  bool is_sandboxed;
-  auto& service = GetService(printer_name, &is_sandboxed);
-
-  SaveCallback(
-      GetRemoteSavedGetPrinterSemanticCapsAndDefaultsCallbacks(is_sandboxed),
-      remote_id, saved_callback_id, std::move(callback));
+  SaveCallback(GetRemoteSavedGetPrinterSemanticCapsAndDefaultsCallbacks(
+                   context.is_sandboxed),
+               context.remote_id, context.saved_callback_id,
+               std::move(callback));
 
   SetCrashKeys(printer_name);
 
-  DVLOG(1) << "Sending GetPrinterSemanticCapsAndDefaults on remote `"
-           << remote_id << "`, saved callback ID of " << saved_callback_id;
+  LogCallToRemote("GetPrinterSemanticCapsAndDefaults", context);
   service->GetPrinterSemanticCapsAndDefaults(
       printer_name,
       base::BindOnce(
           &PrintBackendServiceManager::GetPrinterSemanticCapsAndDefaultsDone,
-          base::Unretained(this), is_sandboxed, remote_id, saved_callback_id));
+          base::Unretained(this), context));
 }
 
 void PrintBackendServiceManager::UpdatePrintSettings(
     const std::string& printer_name,
     base::flat_map<std::string, base::Value> job_settings,
     mojom::PrintBackendService::UpdatePrintSettingsCallback callback) {
-  // Need to be able to run the callback either after a successful return from
-  // the service or after the remote was disconnected, so save it here for
-  // either eventuality.
-  // Get a callback ID to represent this command.
-  auto saved_callback_id = base::UnguessableToken::Create();
+  CallbackContext context;
+  auto& service = GetServiceAndCallbackContext(printer_name, context);
 
-  std::string remote_id = GetRemoteIdForPrinterName(printer_name);
-  bool is_sandboxed;
-  auto& service = GetService(printer_name, &is_sandboxed);
-
-  SaveCallback(GetRemoteSavedUpdatePrintSettingsCallbacks(is_sandboxed),
-               remote_id, saved_callback_id, std::move(callback));
+  SaveCallback(GetRemoteSavedUpdatePrintSettingsCallbacks(context.is_sandboxed),
+               context.remote_id, context.saved_callback_id,
+               std::move(callback));
 
   SetCrashKeys(printer_name);
 
-  DVLOG(1) << "Sending UpdatePrintSettings on remote `" << remote_id
-           << "`, saved callback ID of " << saved_callback_id;
+  LogCallToRemote("UpdatePrintSettings", context);
   service->UpdatePrintSettings(
       std::move(job_settings),
       base::BindOnce(&PrintBackendServiceManager::UpdatePrintSettingsDone,
-                     base::Unretained(this), is_sandboxed, remote_id,
-                     saved_callback_id));
+                     base::Unretained(this), context));
 }
 
 void PrintBackendServiceManager::StartPrinting(
@@ -285,28 +264,20 @@
     mojom::PrintTargetType target_type,
     const PrintSettings& settings,
     mojom::PrintBackendService::StartPrintingCallback callback) {
-  // Need to be able to run the callback either after a successful return from
-  // the service or after the remote was disconnected, so save it here for
-  // either eventuality.
-  // Get a callback ID to represent this command.
-  auto saved_callback_id = base::UnguessableToken::Create();
+  CallbackContext context;
+  auto& service = GetServiceAndCallbackContext(printer_name, context);
 
-  std::string remote_id = GetRemoteIdForPrinterName(printer_name);
-  bool is_sandboxed;
-  auto& service = GetService(printer_name, &is_sandboxed);
-
-  SaveCallback(GetRemoteSavedStartPrintingCallbacks(is_sandboxed), remote_id,
-               saved_callback_id, std::move(callback));
+  SaveCallback(GetRemoteSavedStartPrintingCallbacks(context.is_sandboxed),
+               context.remote_id, context.saved_callback_id,
+               std::move(callback));
 
   SetCrashKeys(printer_name);
 
-  DVLOG(1) << "Sending StartPrinting on remote `" << remote_id
-           << "`, saved callback ID of " << saved_callback_id;
+  LogCallToRemote("StartPrinting", context);
   service->StartPrinting(
       document_cookie, document_name, target_type, settings,
       base::BindOnce(&PrintBackendServiceManager::StartPrintingDone,
-                     base::Unretained(this), is_sandboxed, remote_id,
-                     saved_callback_id));
+                     base::Unretained(this), context));
 }
 
 #if BUILDFLAG(IS_WIN)
@@ -317,34 +288,25 @@
     mojom::MetafileDataType page_data_type,
     base::ReadOnlySharedMemoryRegion serialized_page_data,
     mojom::PrintBackendService::RenderPrintedPageCallback callback) {
-  // Need to be able to run the callback either after a successful return from
-  // the service or after the remote was disconnected, so save it here for
-  // either eventuality.
-  // Get a callback ID to represent this command.
-  auto saved_callback_id = base::UnguessableToken::Create();
+  CallbackContext context;
+  auto& service = GetServiceAndCallbackContext(printer_name, context);
 
-  // Note that `GetService()` will set state internally if this is sandboxed.
-  std::string remote_id = GetRemoteIdForPrinterName(printer_name);
-  bool is_sandboxed;
-  auto& service = GetService(printer_name, &is_sandboxed);
-
-  SaveCallback(GetRemoteSavedRenderPrintedPageCallbacks(is_sandboxed),
-               remote_id, saved_callback_id, std::move(callback));
+  SaveCallback(GetRemoteSavedRenderPrintedPageCallbacks(context.is_sandboxed),
+               context.remote_id, context.saved_callback_id,
+               std::move(callback));
 
   SetCrashKeys(printer_name);
 
   // Page numbers are 0-based for the printing context.
   const uint32_t page_index = page.page_number() - 1;
 
-  DVLOG(1) << "Sending RenderPrintedPage on remote `" << remote_id
-           << "`, saved callback ID of " << saved_callback_id;
+  LogCallToRemote("RenderPrintedPage", context);
   service->RenderPrintedPage(
       document_cookie, page_index, page_data_type,
       std::move(serialized_page_data), page.page_size(),
       page.page_content_rect(), page.shrink_factor(),
       base::BindOnce(&PrintBackendServiceManager::RenderPrintedPageDone,
-                     base::Unretained(this), is_sandboxed, remote_id,
-                     saved_callback_id));
+                     base::Unretained(this), context));
 }
 #endif  // BUILDFLAG(IS_WIN)
 
@@ -631,6 +593,15 @@
 }
 #endif
 
+const mojo::Remote<printing::mojom::PrintBackendService>&
+PrintBackendServiceManager::GetServiceAndCallbackContext(
+    const std::string& printer_name,
+    CallbackContext& context) {
+  context.remote_id = GetRemoteIdForPrinterName(printer_name);
+  context.saved_callback_id = base::UnguessableToken::Create();
+  return GetService(printer_name, &context.is_sandboxed);
+}
+
 template <class T, class X>
 void PrintBackendServiceManager::SaveCallback(
     RemoteSavedCallbacks<T>& saved_callbacks,
@@ -661,90 +632,69 @@
 }
 
 void PrintBackendServiceManager::EnumeratePrintersDone(
-    bool sandboxed,
-    const std::string& remote_id,
-    const base::UnguessableToken& saved_callback_id,
+    const CallbackContext& context,
     mojom::PrinterListResultPtr printer_list) {
-  DVLOG(1) << "EnumeratePrinters completed for remote `" << remote_id
-           << "` saved callback ID " << saved_callback_id;
-
-  ServiceCallbackDone(GetRemoteSavedEnumeratePrintersCallbacks(sandboxed),
-                      remote_id, saved_callback_id, std::move(printer_list));
+  LogCallbackFromRemote("EnumeratePrinters", context);
+  ServiceCallbackDone(
+      GetRemoteSavedEnumeratePrintersCallbacks(context.is_sandboxed),
+      context.remote_id, context.saved_callback_id, std::move(printer_list));
 }
 
 void PrintBackendServiceManager::FetchCapabilitiesDone(
-    bool sandboxed,
-    const std::string& remote_id,
-    const base::UnguessableToken& saved_callback_id,
+    const CallbackContext& context,
     mojom::PrinterCapsAndInfoResultPtr printer_caps_and_info) {
-  DVLOG(1) << "FetchCapabilities completed for remote `" << remote_id
-           << "` saved callback ID " << saved_callback_id;
-
-  ServiceCallbackDone(GetRemoteSavedFetchCapabilitiesCallbacks(sandboxed),
-                      remote_id, saved_callback_id,
-                      std::move(printer_caps_and_info));
+  LogCallbackFromRemote("FetchCapabilities", context);
+  ServiceCallbackDone(
+      GetRemoteSavedFetchCapabilitiesCallbacks(context.is_sandboxed),
+      context.remote_id, context.saved_callback_id,
+      std::move(printer_caps_and_info));
 }
 
 void PrintBackendServiceManager::GetDefaultPrinterNameDone(
-    bool sandboxed,
-    const std::string& remote_id,
-    const base::UnguessableToken& saved_callback_id,
+    const CallbackContext& context,
     mojom::DefaultPrinterNameResultPtr printer_name) {
-  DVLOG(1) << "GetDefaultPrinterName completed for remote `" << remote_id
-           << "` saved callback ID " << saved_callback_id;
-
-  ServiceCallbackDone(GetRemoteSavedGetDefaultPrinterNameCallbacks(sandboxed),
-                      remote_id, saved_callback_id, std::move(printer_name));
+  LogCallbackFromRemote("GetDefaultPrinterName", context);
+  ServiceCallbackDone(
+      GetRemoteSavedGetDefaultPrinterNameCallbacks(context.is_sandboxed),
+      context.remote_id, context.saved_callback_id, std::move(printer_name));
 }
 
 void PrintBackendServiceManager::GetPrinterSemanticCapsAndDefaultsDone(
-    bool sandboxed,
-    const std::string& remote_id,
-    const base::UnguessableToken& saved_callback_id,
+    const CallbackContext& context,
     mojom::PrinterSemanticCapsAndDefaultsResultPtr printer_caps) {
-  DVLOG(1) << "GetPrinterSemanticCapsAndDefaults completed for remote `"
-           << remote_id << "` saved callback ID " << saved_callback_id;
-
-  ServiceCallbackDone(
-      GetRemoteSavedGetPrinterSemanticCapsAndDefaultsCallbacks(sandboxed),
-      remote_id, saved_callback_id, std::move(printer_caps));
+  LogCallbackFromRemote("GetPrinterSemanticCapsAndDefaults", context);
+  ServiceCallbackDone(GetRemoteSavedGetPrinterSemanticCapsAndDefaultsCallbacks(
+                          context.is_sandboxed),
+                      context.remote_id, context.saved_callback_id,
+                      std::move(printer_caps));
 }
 
 void PrintBackendServiceManager::UpdatePrintSettingsDone(
-    bool sandboxed,
-    const std::string& remote_id,
-    const base::UnguessableToken& saved_callback_id,
+    const CallbackContext& context,
     mojom::PrintSettingsResultPtr settings) {
-  DVLOG(1) << "UpdatePrintSettings completed for remote `" << remote_id
-           << "` saved callback ID " << saved_callback_id;
-
-  ServiceCallbackDone(GetRemoteSavedUpdatePrintSettingsCallbacks(sandboxed),
-                      remote_id, saved_callback_id, std::move(settings));
+  LogCallbackFromRemote("UpdatePrintSettings", context);
+  ServiceCallbackDone(
+      GetRemoteSavedUpdatePrintSettingsCallbacks(context.is_sandboxed),
+      context.remote_id, context.saved_callback_id, std::move(settings));
 }
 
 void PrintBackendServiceManager::StartPrintingDone(
-    bool sandboxed,
-    const std::string& remote_id,
-    const base::UnguessableToken& saved_callback_id,
+    const CallbackContext& context,
     mojom::ResultCode result) {
-  DVLOG(1) << "StartPrinting completed for remote `" << remote_id
-           << "` saved callback ID " << saved_callback_id;
-
-  ServiceCallbackDone(GetRemoteSavedStartPrintingCallbacks(sandboxed),
-                      remote_id, saved_callback_id, result);
+  LogCallbackFromRemote("StartPrinting", context);
+  ServiceCallbackDone(
+      GetRemoteSavedStartPrintingCallbacks(context.is_sandboxed),
+      context.remote_id, context.saved_callback_id, result);
 }
 
 #if BUILDFLAG(IS_WIN)
 void PrintBackendServiceManager::RenderPrintedPageDone(
-    bool sandboxed,
-    const std::string& remote_id,
-    const base::UnguessableToken& saved_callback_id,
+    const CallbackContext& context,
     mojom::ResultCode result) {
-  DVLOG(1) << "RenderPrintedPage completed for remote `" << remote_id
-           << "` saved callback ID " << saved_callback_id;
-
-  ServiceCallbackDone(GetRemoteSavedRenderPrintedPageCallbacks(sandboxed),
-                      remote_id, saved_callback_id, result);
+  LogCallbackFromRemote("RenderPrintedPage", context);
+  ServiceCallbackDone(
+      GetRemoteSavedRenderPrintedPageCallbacks(context.is_sandboxed),
+      context.remote_id, context.saved_callback_id, result);
 }
 #endif
 
diff --git a/chrome/browser/printing/print_backend_service_manager.h b/chrome/browser/printing/print_backend_service_manager.h
index 99e9bbb2..cdb8966 100644
--- a/chrome/browser/printing/print_backend_service_manager.h
+++ b/chrome/browser/printing/print_backend_service_manager.h
@@ -153,17 +153,31 @@
       base::flat_map<std::string,
                      mojo::Remote<printing::mojom::PrintBackendService>>;
 
+  // PrintBackendServiceManager needs to be able to run a callback either after
+  // a successful return from the service or after the remote was disconnected.
+  // This structure is used to save the callback's context.
+  struct CallbackContext {
+    bool is_sandboxed;
+    std::string remote_id;
+    base::UnguessableToken saved_callback_id;
+  };
+
   PrintBackendServiceManager();
   ~PrintBackendServiceManager();
 
+  static void LogCallToRemote(base::StringPiece name,
+                              const CallbackContext& context);
+  static void LogCallbackFromRemote(base::StringPiece name,
+                                    const CallbackContext& context);
+
   void SetCrashKeys(const std::string& printer_name);
 
   // Determine the remote ID that is used for the specified `printer_name`.
   std::string GetRemoteIdForPrinterName(const std::string& printer_name) const;
 
   // Acquires a remote handle to the Print Backend Service instance, launching a
-  // process to host the service if necessary. `is_sandboxed` is set if the
-  // service was launched within a sandbox.
+  // process to host the service if necessary. `is_sandboxed` is set to indicate
+  // if the service was launched within a sandbox.
   const mojo::Remote<printing::mojom::PrintBackendService>& GetService(
       const std::string& printer_name,
       bool* is_sandboxed);
@@ -202,6 +216,12 @@
   GetRemoteSavedRenderPrintedPageCallbacks(bool sandboxed);
 #endif
 
+  // Helper function to get the service and initialize a `context` for a given
+  // `printer_name`.
+  const mojo::Remote<printing::mojom::PrintBackendService>&
+  GetServiceAndCallbackContext(const std::string& printer_name,
+                               CallbackContext& context);
+
   // Helper function to save outstanding callbacks.
   template <class T, class X>
   void SaveCallback(RemoteSavedCallbacks<T>& saved_callbacks,
@@ -217,37 +237,23 @@
                            X data);
 
   // Local callback wrappers for mojom calls.
-  void EnumeratePrintersDone(bool sandboxed,
-                             const std::string& remote_id,
-                             const base::UnguessableToken& saved_callback_id,
+  void EnumeratePrintersDone(const CallbackContext& context,
                              mojom::PrinterListResultPtr printer_list);
   void FetchCapabilitiesDone(
-      bool sandboxed,
-      const std::string& remote_id,
-      const base::UnguessableToken& saved_callback_id,
+      const CallbackContext& context,
       mojom::PrinterCapsAndInfoResultPtr printer_caps_and_info);
   void GetDefaultPrinterNameDone(
-      bool sandboxed,
-      const std::string& remote_id,
-      const base::UnguessableToken& saved_callback_id,
+      const CallbackContext& context,
       mojom::DefaultPrinterNameResultPtr printer_name);
   void GetPrinterSemanticCapsAndDefaultsDone(
-      bool sandboxed,
-      const std::string& remote_id,
-      const base::UnguessableToken& saved_callback_id,
+      const CallbackContext& context,
       mojom::PrinterSemanticCapsAndDefaultsResultPtr printer_caps);
-  void UpdatePrintSettingsDone(bool sandboxed,
-                               const std::string& remote_id,
-                               const base::UnguessableToken& saved_callback_id,
+  void UpdatePrintSettingsDone(const CallbackContext& context,
                                mojom::PrintSettingsResultPtr printer_caps);
-  void StartPrintingDone(bool sandboxed,
-                         const std::string& remote_id,
-                         const base::UnguessableToken& saved_callback_id,
+  void StartPrintingDone(const CallbackContext& context,
                          mojom::ResultCode result);
 #if BUILDFLAG(IS_WIN)
-  void RenderPrintedPageDone(bool sandboxed,
-                             const std::string& remote_id,
-                             const base::UnguessableToken& saved_callback_id,
+  void RenderPrintedPageDone(const CallbackContext& context,
                              mojom::ResultCode result);
 #endif
 
diff --git a/chrome/browser/profiles/profile_attributes_entry.cc b/chrome/browser/profiles/profile_attributes_entry.cc
index ddb3e40..856a1bda 100644
--- a/chrome/browser/profiles/profile_attributes_entry.cc
+++ b/chrome/browser/profiles/profile_attributes_entry.cc
@@ -5,7 +5,6 @@
 #include <utility>
 #include <vector>
 
-#include "base/feature_list.h"
 #include "base/hash/hash.h"
 #include "base/logging.h"
 #include "base/notreached.h"
@@ -19,10 +18,8 @@
 #include "chrome/browser/profiles/profile_attributes_storage.h"
 #include "chrome/browser/profiles/profile_avatar_icon_util.h"
 #include "chrome/browser/profiles/profiles_state.h"
-#include "chrome/browser/signin/signin_features.h"
 #include "chrome/browser/signin/signin_util.h"
 #include "chrome/browser/ui/signin/profile_colors_util.h"
-#include "chrome/browser/ui/ui_features.h"
 #include "chrome/common/pref_names.h"
 #include "components/policy/core/browser/browser_policy_connector.h"
 #include "components/prefs/pref_registry_simple.h"
@@ -478,8 +475,7 @@
     case SigninState::kSignedInWithConsentedPrimaryAccount:
       return true;
     case SigninState::kSignedInWithUnconsentedPrimaryAccount:
-      return base::FeatureList::IsEnabled(kAccountPoliciesLoadedWithoutSync) &&
-             GetBool(kUserAcceptedAccountManagement);
+      return GetBool(kUserAcceptedAccountManagement);
     case SigninState::kNotSignedIn:
       return false;
   }
diff --git a/chrome/browser/profiles/profile_browsertest.cc b/chrome/browser/profiles/profile_browsertest.cc
index 73d727a2..114df0a0 100644
--- a/chrome/browser/profiles/profile_browsertest.cc
+++ b/chrome/browser/profiles/profile_browsertest.cc
@@ -481,7 +481,13 @@
 }
 
 // Test that a README file is created for profiles that didn't have it.
-IN_PROC_BROWSER_TEST_F(ProfileBrowserTest, ProfileReadmeCreated) {
+// TODO(https://crbug.com/1289754): Flaky on ChromeOS-Ash.
+#if BUILDFLAG(IS_CHROMEOS_ASH)
+#define MAYBE_ProfileReadmeCreated DISABLED_ProfileReadmeCreated
+#else
+#define MAYBE_ProfileReadmeCreated ProfileReadmeCreated
+#endif
+IN_PROC_BROWSER_TEST_F(ProfileBrowserTest, MAYBE_ProfileReadmeCreated) {
   base::ScopedAllowBlockingForTesting allow_blocking;
   base::ScopedTempDir temp_dir;
   ASSERT_TRUE(temp_dir.CreateUniqueTempDir());
diff --git a/chrome/browser/resources/chromeos/accessibility/chromevox/background/editing/editing.js b/chrome/browser/resources/chromeos/accessibility/chromevox/background/editing/editing.js
index 228b125..e1c1524 100644
--- a/chrome/browser/resources/chromeos/accessibility/chromevox/background/editing/editing.js
+++ b/chrome/browser/resources/chromeos/accessibility/chromevox/background/editing/editing.js
@@ -564,14 +564,7 @@
     }
 
     const curBase = baseLineOnStart ? endLine : startLine;
-    if (cur.text === '\u00a0' && cur.hasCollapsedSelection() &&
-        !cur.end.node.nextOnLine) {
-      // This is a specific pattern seen in Google Docs. A single node (static
-      // text/in line text box), containing a non-breaking-space signifies a new
-      // line.
-      ChromeVox.tts.speak('\n', QueueMode.CATEGORY_FLUSH);
-    } else if (
-        (cur.startContainer.role === RoleType.TEXT_FIELD ||
+    if ((cur.startContainer.role === RoleType.TEXT_FIELD ||
          (cur.startContainer === prev.startContainer &&
           cur.endContainer === prev.endContainer)) &&
         cur.startContainerValue !== prev.startContainerValue) {
diff --git a/chrome/browser/resources/chromeos/accessibility/chromevox/background/editing/editing_test.js b/chrome/browser/resources/chromeos/accessibility/chromevox/background/editing/editing_test.js
index 12d3455b..4942510 100644
--- a/chrome/browser/resources/chromeos/accessibility/chromevox/background/editing/editing_test.js
+++ b/chrome/browser/resources/chromeos/accessibility/chromevox/background/editing/editing_test.js
@@ -1520,30 +1520,6 @@
       });
 });
 
-TEST_F('ChromeVoxEditingTest', 'NonBreakingSpaceNewLine', function() {
-  const mockFeedback = this.createMockFeedback();
-  this.runWithLoadedTree(
-      `
-    <div contenteditable role="textbox">&nbsp</div>
-  `,
-      async function(root) {
-        await this.focusFirstTextField(root);
-
-        mockFeedback
-            .call(() => {
-              const node = root.find({role: RoleType.INLINE_TEXT_BOX});
-              const line = new editing.EditableLine(node, 0, node, 0);
-              const prev = new editing.EditableLine(node.root, 1, node.root, 1);
-              const editableHandler = DesktopAutomationHandler.instance
-                                          .textEditHandler_.editableText_;
-              editableHandler.handleSpeech_(
-                  line, prev, line, line, prev, prev, true, []);
-            })
-            .expectSpeech('\n')
-            .replay();
-      });
-});
-
 TEST_F('ChromeVoxEditingTest', 'InputEvents', function() {
   const site = `<input type="text"></input>`;
   this.runWithLoadedTree(site, async function(root) {
@@ -2253,3 +2229,53 @@
         .replay();
   });
 });
+
+TEST_F('ChromeVoxEditingTest', 'TablesWithEmptyCells', function() {
+  const mockFeedback = this.createMockFeedback();
+  const site = `
+    <div contenteditable="true" role="textbox">
+      <p>A</p>
+      <div><table>
+        <colgroup><col><col></colgroup>
+        <tbody>
+          <tr>
+            <td><div><span>&nbsp;</span></div></td>
+            <td><div><span>&nbsp;</span></div></td>
+          </tr>
+          <tr>
+            <td><div><span>&nbsp;</span></div></td>
+            <td><div><span>&nbsp;</span></div></td>
+          </tr>
+        </tbody>
+      </table>
+    </div><div></div></div>
+  `;
+  this.runWithLoadedTree(site, async function(root) {
+    await this.focusFirstTextField(root);
+
+    const textField = root.find({role: RoleType.TEXT_FIELD});
+    mockFeedback.expectSpeech('Text area')
+        .call(this.press(KeyCode.HOME, {ctrl: true}))
+        .call(this.press(KeyCode.RIGHT))
+        .call(this.press(KeyCode.RIGHT))
+        .call(this.press(KeyCode.RIGHT))
+        // Non-breaking spaces (\u00a0) get preprocessed later by TtsBackground
+        // to ' '. This comes as part of speak line output in
+        // AutomationRichEditableText.
+        .expectSpeech('\u00a0', 'row 1 column 1')
+        .call(this.press(KeyCode.RIGHT))
+        .expectSpeech('\u00a0')
+        .call(this.press(KeyCode.RIGHT))
+        .expectSpeech('\u00a0', 'row 1 column 2')
+        .call(this.press(KeyCode.RIGHT))
+        .expectSpeech('\u00a0')
+        .call(this.press(KeyCode.RIGHT))
+        .expectSpeech('\u00a0', 'row 2 column 1')
+        .call(this.press(KeyCode.RIGHT))
+        .expectSpeech('\u00a0')
+        .call(this.press(KeyCode.RIGHT))
+        .expectSpeech('\u00a0', 'row 2 column 2')
+
+        .replay();
+  });
+});
diff --git a/chrome/browser/resources/chromeos/accessibility/chromevox/background/editing/intent_handler.js b/chrome/browser/resources/chromeos/accessibility/chromevox/background/editing/intent_handler.js
index f7a786d..b8c35f8 100644
--- a/chrome/browser/resources/chromeos/accessibility/chromevox/background/editing/intent_handler.js
+++ b/chrome/browser/resources/chromeos/accessibility/chromevox/background/editing/intent_handler.js
@@ -11,6 +11,7 @@
 
 goog.require('constants');
 goog.require('editing.EditableLine');
+goog.require('Msgs');
 goog.require('Output');
 
 goog.scope(function() {
@@ -89,34 +90,6 @@
   static onMoveSelection(intent, cur, prev) {
     switch (intent.textBoundary) {
       case IntentTextBoundaryType.CHARACTER: {
-        const text = cur.text.substring(cur.startOffset, cur.startOffset + 1);
-
-        // First, handle the case where there is no text to the right of the
-        // cursor.
-        if (!text && prev) {
-          // Detect cases where |cur| is immediately before an abstractSpan.
-          const enteredAncestors =
-              AutomationUtil.getUniqueAncestors(prev.end.node, cur.end.node);
-          const exitedAncestors =
-              AutomationUtil.getUniqueAncestors(cur.end.node, prev.end.node);
-
-          // Scan up only to a root or the editable root.
-          let ancestor;
-          const ancestors = enteredAncestors.concat(exitedAncestors);
-          while ((ancestor = ancestors.pop()) &&
-                 !AutomationPredicate.rootOrEditableRoot(ancestor)) {
-            const roleInfo = OutputRoleInfo[ancestor.role];
-            if (roleInfo && roleInfo['inherits'] === 'abstractSpan') {
-              // Let the caller handle this case.
-              return false;
-            }
-          }
-
-          // It is assumed to be a new line otherwise.
-          ChromeVox.tts.speak('\n', QueueMode.CATEGORY_FLUSH);
-          return true;
-        }
-
         // Read character to the right of the cursor by building a character
         // range.
         let prevRange = null;
@@ -128,8 +101,41 @@
         // Use the Output module for feedback so that we get contextual
         // information e.g. if we've entered a suggestion, insertion, or
         // deletion.
-        new Output()
-            .withRichSpeech(newRange, prevRange, OutputEventType.NAVIGATE)
+        const output = new Output();
+        const text = cur.text;
+        if (text.substring(cur.startOffset, cur.startOffset + 1).length === 0) {
+          // There isn't any text to the right of the cursor.
+          if (prev) {
+            // Detect cases where |cur| is immediately before an abstractSpan.
+            const enteredAncestors =
+                AutomationUtil.getUniqueAncestors(prev.end.node, cur.end.node);
+            const exitedAncestors =
+                AutomationUtil.getUniqueAncestors(cur.end.node, prev.end.node);
+
+            // Scan up only to a root or the editable root.
+            let ancestor;
+            const ancestors = enteredAncestors.concat(exitedAncestors);
+            while ((ancestor = ancestors.pop()) &&
+                   !AutomationPredicate.rootOrEditableRoot(ancestor)) {
+              const roleInfo = OutputRoleInfo[ancestor.role];
+              if (roleInfo && roleInfo['inherits'] === 'abstractSpan') {
+                // Let the caller handle this case.
+                return false;
+              }
+            }
+          }
+
+          // This block special cases readout of the cursor when it reaches the
+          // end of a line.
+          if (text === '\u00a0') {
+            output.withString('\u00a0');
+          } else {
+            // It is assumed to be a new line otherwise.
+            output.withString('\n');
+          }
+        }
+
+        output.withRichSpeech(newRange, prevRange, OutputEventType.NAVIGATE)
             .go();
 
         // Handled.
diff --git a/chrome/browser/resources/chromeos/accessibility/chromevox/common/abstract_tts.js b/chrome/browser/resources/chromeos/accessibility/chromevox/common/abstract_tts.js
index 1f3567ed..78b03cd 100644
--- a/chrome/browser/resources/chromeos/accessibility/chromevox/common/abstract_tts.js
+++ b/chrome/browser/resources/chromeos/accessibility/chromevox/common/abstract_tts.js
@@ -454,6 +454,7 @@
  */
 AbstractTts.CHARACTER_DICTIONARY = {
   ' ': 'space',
+  '\u00a0': 'space',
   '`': 'backtick',
   '~': 'tilde',
   '!': 'exclamation',
diff --git a/chrome/browser/resources/chromeos/accessibility/chromevox/common/tts_background_test.js b/chrome/browser/resources/chromeos/accessibility/chromevox/common/tts_background_test.js
index dc5c1990..1725efb 100644
--- a/chrome/browser/resources/chromeos/accessibility/chromevox/common/tts_background_test.js
+++ b/chrome/browser/resources/chromeos/accessibility/chromevox/common/tts_background_test.js
@@ -83,6 +83,8 @@
   assertEquals('3 white bullets', preprocess('\u25e6\u25e6\u25e6'));
   assertEquals('square bullet', preprocess('\u25a0'));
   assertEquals('3 square bullets', preprocess('\u25a0\u25a0\u25a0'));
+
+  assertEquals('space', preprocess('\u00a0'));
 });
 
 TEST_F('ChromeVoxTtsBackgroundTest', 'UpdateVoice', function() {
diff --git a/chrome/browser/resources/chromeos/emoji_picker/BUILD.gn b/chrome/browser/resources/chromeos/emoji_picker/BUILD.gn
index 1d3b892..de5ec96d 100644
--- a/chrome/browser/resources/chromeos/emoji_picker/BUILD.gn
+++ b/chrome/browser/resources/chromeos/emoji_picker/BUILD.gn
@@ -15,6 +15,7 @@
   "emoji_picker.js",
   "emoji_search.js",
   "emoji_variants.js",
+  "emoticon_group.js",
   "icons.js",
   "text_group_button.js",
 ]
@@ -188,6 +189,7 @@
     ":emoji_group_button",
     ":emoji_picker_api_proxy",
     ":emoji_search",
+    ":emoticon_group",
     ":events",
     ":store",
     ":text_group_button",
@@ -255,6 +257,13 @@
   ]
 }
 
+js_library("emoticon_group") {
+  deps = [
+    ":types",
+    "//third_party/polymer/v3_0/components-chromium/polymer:polymer_bundled",
+  ]
+}
+
 js_library("icons") {
   deps = [
     "//third_party/polymer/v3_0/components-chromium/iron-iconset-svg",
@@ -277,6 +286,7 @@
 
 js_library("text_group_button") {
   deps = [
+    ":events",
     ":types",
     "//third_party/polymer/v3_0/components-chromium/polymer:polymer_bundled",
     "//ui/webui/resources/cr_elements/cr_button:cr_button.m",
@@ -301,6 +311,7 @@
     ":emoji_picker_api_proxy",
     ":emoji_search",
     ":emoji_variants",
+    ":emoticon_group",
     ":events",
     ":icons",
     ":store",
diff --git a/chrome/browser/resources/chromeos/emoji_picker/emoji_button.html b/chrome/browser/resources/chromeos/emoji_picker/emoji_button.html
index 8b30593d..b5ebba98 100644
--- a/chrome/browser/resources/chromeos/emoji_picker/emoji_button.html
+++ b/chrome/browser/resources/chromeos/emoji_picker/emoji_button.html
@@ -1,7 +1,6 @@
 <style>
   :host {
     --emoji-background: transparent;
-    --emoji-hover-background: var(--cros-ripple-color);
     height: var(--emoji-size);
     position: relative;
     width: var(--emoji-size);
diff --git a/chrome/browser/resources/chromeos/emoji_picker/emoji_group.html b/chrome/browser/resources/chromeos/emoji_picker/emoji_group.html
index a476487..fcbf828 100644
--- a/chrome/browser/resources/chromeos/emoji_picker/emoji_group.html
+++ b/chrome/browser/resources/chromeos/emoji_picker/emoji_group.html
@@ -1,9 +1,6 @@
 <style>
   :host {
     --emoji-group-clear-recents-icon-size: 16px;
-    --emoji-group-heading-size: 32px;
-    --emoji-group-heading-padding-bottom: 10px;
-    --emoji-group-heading-padding-top: 16px;
     margin-top: 10px;
     position: relative;
   }
diff --git a/chrome/browser/resources/chromeos/emoji_picker/emoji_picker.html b/chrome/browser/resources/chromeos/emoji_picker/emoji_picker.html
index 189f441..84049605 100644
--- a/chrome/browser/resources/chromeos/emoji_picker/emoji_picker.html
+++ b/chrome/browser/resources/chromeos/emoji_picker/emoji_picker.html
@@ -10,7 +10,11 @@
     --emoji-spacing: 0;
     --emoji-per-row: 0;
     /* Values set in css only. */
+    --emoji-group-heading-padding-bottom: 10px;
+    --emoji-group-heading-padding-top: 16px;
+    --emoji-group-heading-size: 32px;
     --emoji-group-tabs-left: 0;
+    --emoji-hover-background: var(--cros-ripple-color);
     --emoji-picker-bottom-padding: 14px;
     --emoji-picker-last-emoji-left: calc(var(--emoji-picker-side-padding)
             + var(--emoji-size) * (var(--emoji-per-row) - 1)
@@ -343,7 +347,7 @@
     -->
     <div data-group="history">
       <template is="dom-if" if="[[history.emoji.length]]">
-        <emoji-group data="[[history]]" preferred="{}" clearable
+        <emoji-group data="[[history]]" preferred="{}" clearable class="group"
           v2-enabled$="[[v2Enabled]]">
         </emoji-group>
       </template>
@@ -351,7 +355,7 @@
     <template is="dom-repeat" items="[[emojiData]]">
       <div data-group$="[[getDataGroupIndex('emoji', index)]]">
         <emoji-group data="[[item]]" preferred="[[preferenceMapping]]"
-          v2-enabled$="[[v2Enabled]]">
+          class="group" v2-enabled$="[[v2Enabled]]">
         </emoji-group>
       </div>
     </template>
@@ -359,8 +363,8 @@
     <template is="dom-if" if="[[v2Enabled]]">
       <template is="dom-repeat" items="[[emoticonData]]">
         <div data-group$="[[getDataGroupIndex('emoticon', index)]]">
-          <emoji-group data="[[item]]" class="group">
-          </emoji-group>
+          <emoticon-group data="[[item]]" class="group">
+          </emoticon-group>
         </div>
       </template>
     </template>
diff --git a/chrome/browser/resources/chromeos/emoji_picker/emoji_picker.js b/chrome/browser/resources/chromeos/emoji_picker/emoji_picker.js
index 54d1493..6f79c41 100644
--- a/chrome/browser/resources/chromeos/emoji_picker/emoji_picker.js
+++ b/chrome/browser/resources/chromeos/emoji_picker/emoji_picker.js
@@ -6,6 +6,7 @@
 import './emoji_group.js';
 import './emoji_group_button.js';
 import './emoji_search.js';
+import './emoticon_group.js';
 import './text_group_button.js';
 import 'chrome://resources/cr_elements/cr_icons_css.m.js';
 
@@ -264,10 +265,7 @@
             ev => this.set('category', ev.detail.categoryName));
         this.addEventListener(EMOJI_REMAINING_DATA_LOADED, () => {
           this.fetchEmoticonData().then((data) => {
-            // TODO(b/214319678): modify the line below to allow consumption of
-            // the full emoticon data.
-            this.emoticonData =
-                data.map((group) => ({group: group.group, emoji: []}));
+            this.emoticonData = data;
             this.dispatchEvent(createCustomEvent(V2_CONTENT_LOADED));
           });
         });
@@ -378,7 +376,7 @@
         this.shadowRoot.querySelector(`div[data-group="${newGroup}"]`);
 
     if (group) {
-      group.querySelector('emoji-group')
+      group.querySelector('.group')
           .shadowRoot.querySelector('#fake-focus-target')
           .focus();
       group.scrollIntoView();
diff --git a/chrome/browser/resources/chromeos/emoji_picker/emoticon_group.html b/chrome/browser/resources/chromeos/emoji_picker/emoticon_group.html
new file mode 100644
index 0000000..b61d419
--- /dev/null
+++ b/chrome/browser/resources/chromeos/emoji_picker/emoticon_group.html
@@ -0,0 +1,61 @@
+<style>
+    :host {
+        margin-top: 10px;
+    }
+
+    #heading {
+        color: var(--cros-text-color-secondary);
+        display: flex;
+        font-size: 10pt;
+        height: var(--emoji-group-heading-size);
+        line-height: var(--emoji-group-heading-size);
+        padding-bottom: var(--emoji-group-heading-padding-bottom);
+        padding-top: var(--emoji-group-heading-padding-top);
+        user-select: none;
+        width: 100%;
+    }
+
+    #heading:focus,
+    #heading:active {
+        outline-color: var(--cros-text-color-prominent);
+        outline-width: 2px;
+    }
+
+    #palette {
+        display: flex;
+        flex-wrap: wrap;
+        gap: 12px 20px;
+    }
+
+    #fake-focus-target {
+        position: absolute;
+    }
+
+    .emoticon-button {
+        background: var(--emoji-background);
+        border: none;
+        cursor: pointer;
+        font-family: 'Noto Sans CJK JP';
+        font-size: 13px;
+        height: var(--v2-emoji-size);
+        padding: 6px;
+        width: max-content;
+    }
+
+    .emoticon-button:hover {
+        background-color: var(--emoji-hover-background);
+    }
+</style>
+
+<div id="heading" role="heading">
+    [[data.group]]
+</div>
+<!-- TODO(b/216194842): Implement emoticon group clear logic. -->
+<div id="palette">
+    <div id="fake-focus-target" tabindex="-1"></div>
+    <template is="dom-repeat" items="[[data.emoji]]" as="emoticon">
+        <button class="emoticon-button">
+            [[emoticon.base.string]]
+        </button>
+    </template>
+</div>
\ No newline at end of file
diff --git a/chrome/browser/resources/chromeos/emoji_picker/emoticon_group.js b/chrome/browser/resources/chromeos/emoji_picker/emoticon_group.js
new file mode 100644
index 0000000..9813a11
--- /dev/null
+++ b/chrome/browser/resources/chromeos/emoji_picker/emoticon_group.js
@@ -0,0 +1,25 @@
+// Copyright 2022 The Chromium Authors. All rights reserved.
+// Use of this source code is governed by a BSD-style license that can be
+// found in the LICENSE file.
+
+import {html, PolymerElement} from 'chrome://resources/polymer/v3_0/polymer/polymer_bundled.min.js';
+import {EmojiGroup} from './types.js';
+
+class EmoticonGroupComponent extends PolymerElement {
+  static get is() {
+    return 'emoticon-group';
+  }
+
+  static get template() {
+    return html`{__html_template__}`;
+  }
+
+  static get properties() {
+    return {
+      /** @type {EmojiGroup} */
+      data: {type: Object, readonly: true},
+    };
+  }
+}
+
+customElements.define(EmoticonGroupComponent.is, EmoticonGroupComponent);
diff --git a/chrome/browser/resources/inline_login/arc_account_picker_app.html b/chrome/browser/resources/inline_login/arc_account_picker_app.html
index 167046da..b6920f8 100644
--- a/chrome/browser/resources/inline_login/arc_account_picker_app.html
+++ b/chrome/browser/resources/inline_login/arc_account_picker_app.html
@@ -1,4 +1,11 @@
 <style include="shared-css">
+  :host {
+    --account-item-width: 250px;
+    --account-item-padding: 10px;
+    --account-icon-size: 40px;
+    --account-icon-margin: 10px;
+  }
+
   .google-full-logo {
     /* The same size as in webview. */
     width: 74px;
@@ -7,6 +14,63 @@
   .secondary {
     color: var(--cr-secondary-text-color);
   }
+
+  .primary {
+    font-weight: 500;
+    margin-bottom: 4px;
+  }
+
+  .account-item {
+    align-items: center;
+    border: 1px solid var(--google-grey-300);
+    border-radius: 8px;
+    display: flex;
+    flex-direction: row;
+    height: 50px;
+    margin: 8px;
+    padding: var(--account-item-padding);
+    width: var(--account-item-width);
+  }
+
+  .account-icon {
+    background: center / cover no-repeat;
+    border-radius: 50%;
+    flex-shrink: 0;
+    height: var(--account-icon-size);
+    margin-inline-end: var(--account-icon-margin);
+    width: var(--account-icon-size);
+  }
+
+  .account-name {
+    display: flex;
+    flex-direction: column;
+  }
+
+  .account-name > span {
+    display: block;
+    overflow: hidden;
+    text-overflow: ellipsis;
+    width: calc(var(--account-item-width) - 2*var(--account-item-padding)
+                - var(--account-icon-size) - var(--account-icon-margin));
+  }
+
+  #addAccountButton > .account-icon {
+    background-color: var(--google-grey-200);
+  }
+
+  #addAccountButton > .account-icon > .add-icon {
+    -webkit-mask-image: url(chrome://resources/images/add.svg);
+    -webkit-mask-repeat: no-repeat;
+    -webkit-mask-size: 100%;
+    background-color: var(--google-grey-600);
+    height: 80%;
+    margin: 10%;
+    width: 80%;
+  }
+
+  #addAccountButton > .account-name > .primary {
+    margin-bottom: 0;
+  }
 </style>
 
 <div class="main-container">
@@ -14,6 +78,29 @@
     <img class="google-full-logo"
             src="chrome://theme/IDR_LOGO_GOOGLE_COLOR_90" alt="">
   </if>
+
   <h1>$i18n{accountManagerDialogArcAccountPickerTitle}</h1>
   <p class="secondary">$i18nRaw{accountManagerDialogArcAccountPickerBody}</p>
+
+  <template is="dom-repeat" id="accountsContainer" items="[[accounts]]">
+    <div class="account-item">
+      <div class="account-icon"
+        style="background-image: [[getIconImageSet_(item.image)]]">
+      </div>
+      <div class="account-name">
+        <span class="primary">[[item.fullName]]</span>
+        <span class="secondary">[[item.email]]</span>
+      </div>
+    </div>
+  </template>
+
+  <div class="account-item" id="addAccountButton" on-click="addAccount_">
+    <div class="account-icon">
+      <div class="add-icon"></div>
+    </div>
+    <div class="account-name">
+      <span class="primary">$i18n{addAccountLabel}</span>
+    </div>
+  </div>
+
 </div>
diff --git a/chrome/browser/resources/inline_login/arc_account_picker_app.js b/chrome/browser/resources/inline_login/arc_account_picker_app.js
index 681db4c..a3f94b1 100644
--- a/chrome/browser/resources/inline_login/arc_account_picker_app.js
+++ b/chrome/browser/resources/inline_login/arc_account_picker_app.js
@@ -4,7 +4,9 @@
 
 import './account_manager_shared_css.js';
 
+import {getImage} from '//resources/js/icon.js';
 import {html, PolymerElement} from '//resources/polymer/v3_0/polymer/polymer_bundled.min.js';
+import {Account} from './inline_login_browser_proxy.js';
 
 /** @polymer */
 class ArcAccountPickerAppElement extends PolymerElement {
@@ -16,6 +18,19 @@
     return html`{__html_template__}`;
   }
 
+  static get properties() {
+    return {
+      /**
+       * Accounts which are not available in ARC and are shown on the ARC picker
+       * screen.
+       * @type {!Array<!Account>}
+       */
+      accounts: {
+        type: Array,
+      }
+    };
+  }
+
   ready() {
     super.ready();
 
@@ -24,6 +39,23 @@
             'click',
             () => this.dispatchEvent(new CustomEvent('opened-new-window')));
   }
+
+  /**
+   * @param {string} iconUrl
+   * @return {string} A CSS image-set for multiple scale factors.
+   * @private
+   */
+  getIconImageSet_(iconUrl) {
+    return getImage(iconUrl);
+  }
+
+  /**
+   * Navigates to the welcome screen.
+   * @private
+   */
+  addAccount_() {
+    this.dispatchEvent(new CustomEvent('add-account'));
+  }
 }
 
 customElements.define(
diff --git a/chrome/browser/resources/inline_login/inline_login_app.html b/chrome/browser/resources/inline_login/inline_login_app.html
index 2279af0..d1dbe544 100644
--- a/chrome/browser/resources/inline_login/inline_login_app.html
+++ b/chrome/browser/resources/inline_login/inline_login_app.html
@@ -74,7 +74,9 @@
         </welcome-page-app>
       </div>
       <div id="[[View.arcAccountPicker]]" slot="view">
-        <arc-account-picker-app on-opened-new-window="closeDialog_">
+        <arc-account-picker-app on-opened-new-window="closeDialog_"
+            on-add-account="goToWelcomeScreen_"
+            accounts="[[arcPickerAccounts_]]">
         </arc-account-picker-app>
       </div>
     </if>
diff --git a/chrome/browser/resources/inline_login/inline_login_app.js b/chrome/browser/resources/inline_login/inline_login_app.js
index aa2287d4..5817f33d 100644
--- a/chrome/browser/resources/inline_login/inline_login_app.js
+++ b/chrome/browser/resources/inline_login/inline_login_app.js
@@ -25,7 +25,7 @@
 // </if>
 
 import {AuthCompletedCredentials, Authenticator, AuthParams} from '../gaia_auth_host/authenticator.m.js';
-import {InlineLoginBrowserProxy, InlineLoginBrowserProxyImpl} from './inline_login_browser_proxy.js';
+import {Account, InlineLoginBrowserProxy, InlineLoginBrowserProxyImpl} from './inline_login_browser_proxy.js';
 
 /**
  * @fileoverview Inline login WebUI in various signin flows for ChromeOS and
@@ -113,6 +113,16 @@
       type: Boolean,
       value: false,
     },
+
+    /**
+     * Accounts which are not available in ARC and are shown on the ARC picker
+     * screen.
+     * @type {!Array<!Account>}
+     */
+    arcPickerAccounts_: {
+      type: Array,
+      value: [],
+    },
     // </if>
 
     /**
@@ -271,7 +281,7 @@
     if (data.email) {
       this.isReauthentication_ = true;
     }
-    this.switchView_(this.getDefaultView_());
+    this.switchToDefaultView_();
   },
 
   /**
@@ -296,6 +306,14 @@
   },
 
   /**
+   * Navigates to the welcome screen.
+   * @private
+   */
+  goToWelcomeScreen_() {
+    this.switchView_(View.welcome);
+  },
+
+  /**
    * Navigates back in the web view if possible. Otherwise closes the dialog.
    * @private
    */
@@ -355,6 +373,33 @@
   },
 
   /**
+   * Navigates to the default view.
+   * @private
+   */
+  switchToDefaultView_() {
+    const view = this.getDefaultView_();
+
+    // <if expr="chromeos_ash">
+    if (this.isArcAccountRestrictionsEnabled_ &&
+        view === View.arcAccountPicker) {
+      this.browserProxy_.getAccountsNotAvailableInArc().then(result => {
+        // If there are no accounts to show in the picker - go directly to
+        // the welcome screen.
+        if (result.length === 0) {
+          this.switchView_(View.welcome);
+          return;
+        }
+        this.set('arcPickerAccounts_', result);
+        this.switchView_(view);
+      });
+      return;
+    }
+    // </if>
+
+    this.switchView_(view);
+  },
+
+  /**
    * @return {View}
    * @private
    */
diff --git a/chrome/browser/resources/inline_login/inline_login_browser_proxy.js b/chrome/browser/resources/inline_login/inline_login_browser_proxy.js
index ad9c66f..8300b91 100644
--- a/chrome/browser/resources/inline_login/inline_login_browser_proxy.js
+++ b/chrome/browser/resources/inline_login/inline_login_browser_proxy.js
@@ -7,6 +7,17 @@
 
 import {AuthCompletedCredentials} from '../gaia_auth_host/authenticator.m.js';
 
+/**
+ * Data representing a Gaia account added in-session.
+ * @typedef {{
+ *   id: string,
+ *   email: string,
+ *   fullName: string,
+ *   image: string,
+ * }}
+ */
+export let Account;
+
 /** @interface */
 export class InlineLoginBrowserProxy {
   /** Send 'initialize' message to prepare for starting auth. */
@@ -65,6 +76,13 @@
   skipWelcomePage(skip) {}
 
   /**
+   * Send 'getAccountsNotAvailableInArc' message to the handler. The promise
+   * will be resolved with the list of accounts that are not available in ARC.
+   * @return {Promise<Array<Account>>}
+   */
+  getAccountsNotAvailableInArc() {}
+
+  /**
    * @return {?string} JSON-encoded dialog arguments.
    */
   getDialogArguments() {}
@@ -125,6 +143,11 @@
   }
 
   /** @override */
+  getAccountsNotAvailableInArc() {
+    return sendWithPromise('getAccountsNotAvailableInArc');
+  }
+
+  /** @override */
   getDialogArguments() {
     return chrome.getVariableValue('dialogArguments');
   }
diff --git a/chrome/browser/resources/settings/basic_page/basic_page.html b/chrome/browser/resources/settings/basic_page/basic_page.html
index 0dc017f5..2e62ebe 100644
--- a/chrome/browser/resources/settings/basic_page/basic_page.html
+++ b/chrome/browser/resources/settings/basic_page/basic_page.html
@@ -52,14 +52,13 @@
             <settings-autofill-page prefs="{{prefs}}"></settings-autofill-page>
           </settings-section>
         </template>
-        <template is="dom-if" if="[[showPrivacyReviewPromo_]]" restamp>
-          <settings-section page-title="" nest-under-section="privacy"
-              no-search>
-            <settings-privacy-review-promo id="privacyReviewPromo"
-                prefs="{{prefs}}">
-            </settings-privacy-review-promo>
-          </settings-section>
-        </template>
+        <settings-section id="privacyReviewPromoSection" page-title=""
+            hidden$="[[!showPrivacyReviewPromo_]]" nest-under-section="privacy"
+            no-search>
+          <settings-privacy-review-promo id="privacyReviewPromo"
+              prefs="{{prefs}}">
+          </settings-privacy-review-promo>
+        </settings-section>
         <template is="dom-if" if="[[showPage_(pageVisibility.safetyCheck)]]"
             restamp>
           <settings-section page-title="$i18n{safetyCheckSectionTitle}"
diff --git a/chrome/browser/resources/settings/basic_page/basic_page.ts b/chrome/browser/resources/settings/basic_page/basic_page.ts
index 42b7b74..352d18910 100644
--- a/chrome/browser/resources/settings/basic_page/basic_page.ts
+++ b/chrome/browser/resources/settings/basic_page/basic_page.ts
@@ -40,6 +40,7 @@
 import {PageVisibility} from '../page_visibility.js';
 import {SyncStatus} from '../people_page/sync_browser_proxy.js';
 import {PrefsMixin, PrefsMixinInterface} from '../prefs/prefs_mixin.js';
+import {MAX_PRIVACY_REVIEW_PROMO_IMPRESSION, PrivacyReviewBrowserProxy, PrivacyReviewBrowserProxyImpl} from '../privacy_page/privacy_review/privacy_review_browser_proxy.js';
 import {routes} from '../route.js';
 import {Route, RouteObserverMixin, RouteObserverMixinInterface, Router} from '../router.js';
 import {getSearchManager, SearchResult} from '../search_settings.js';
@@ -144,8 +145,7 @@
        */
       showPrivacyReviewPromo_: {
         type: Boolean,
-        computed:
-            'computeShowPrivacyReviewPromo_(isManaged_, isChildUser_, prefs.privacy_guide.viewed.value)',
+        value: false,
       },
 
       isManaged_: {
@@ -179,6 +179,12 @@
     };
   }
 
+  static get observers() {
+    return [
+      'updatePrivacyReviewPromoVisibility_(isManaged_, isChildUser_, prefs.privacy_guide.viewed.value)',
+    ];
+  }
+
   pageVisibility: PageVisibility;
   inSearchMode: boolean;
   advancedToggleExpanded: boolean;
@@ -193,8 +199,12 @@
   private currentRoute_: Route;
   private advancedTogglingInProgress_: boolean;
 
+  private showPrivacyReviewPromo_: boolean;
+  private privacyReviewPromoWasShown_: boolean;
   private isManaged_: boolean;
   private isChildUser_: boolean;
+  private privacyReviewBrowserProxy_: PrivacyReviewBrowserProxy =
+      PrivacyReviewBrowserProxyImpl.getInstance();
 
   ready() {
     super.ready();
@@ -232,6 +242,9 @@
     }
 
     super.currentRouteChanged(newRoute, oldRoute);
+    if (newRoute === routes.PRIVACY) {
+      this.updatePrivacyReviewPromoVisibility_();
+    }
   }
 
   /**
@@ -252,11 +265,22 @@
         .get();
   }
 
-  private computeShowPrivacyReviewPromo_(): boolean {
-    return this.pageVisibility.privacy !== false &&
-        loadTimeData.getBoolean('privacyReviewEnabled') && !this.isManaged_ &&
-        !this.isChildUser_ && this.prefs !== undefined &&
-        !this.getPref('privacy_guide.viewed').value;
+  private updatePrivacyReviewPromoVisibility_() {
+    if (this.pageVisibility.privacy === false ||
+        !loadTimeData.getBoolean('privacyReviewEnabled') || this.isManaged_ ||
+        this.isChildUser_ || this.prefs === undefined ||
+        this.getPref('privacy_guide.viewed').value ||
+        this.privacyReviewBrowserProxy_.getPromoImpressionCount() >=
+            MAX_PRIVACY_REVIEW_PROMO_IMPRESSION ||
+        this.currentRoute_ !== routes.PRIVACY) {
+      this.showPrivacyReviewPromo_ = false;
+      return;
+    }
+    this.showPrivacyReviewPromo_ = true;
+    if (!this.privacyReviewPromoWasShown_) {
+      this.privacyReviewBrowserProxy_.incrementPromoImpressionCount();
+      this.privacyReviewPromoWasShown_ = true;
+    }
   }
 
   private onIsManagedChanged_(isManaged: boolean) {
diff --git a/chrome/browser/resources/settings/privacy_page/personalization_options.ts b/chrome/browser/resources/settings/privacy_page/personalization_options.ts
index 06f3989..dc12b24 100644
--- a/chrome/browser/resources/settings/privacy_page/personalization_options.ts
+++ b/chrome/browser/resources/settings/privacy_page/personalization_options.ts
@@ -205,8 +205,8 @@
     }
     // </if>
     if (this.pageVisibility === undefined) {
-      // Happens in tests.
-      return false;
+      // pageVisibility isn't defined in non-Guest profiles (crbug.com/1288911).
+      return true;
     }
     return this.pageVisibility.searchPrediction;
   }
diff --git a/chrome/browser/resources/settings/privacy_page/privacy_review/privacy_review_browser_proxy.ts b/chrome/browser/resources/settings/privacy_page/privacy_review/privacy_review_browser_proxy.ts
index db07a4e4..43c059b 100644
--- a/chrome/browser/resources/settings/privacy_page/privacy_review/privacy_review_browser_proxy.ts
+++ b/chrome/browser/resources/settings/privacy_page/privacy_review/privacy_review_browser_proxy.ts
@@ -6,9 +6,22 @@
 import {sendWithPromise} from 'chrome://resources/js/cr.m.js';
 // clang-format on
 
+// The number of times the prviacy review promo has been shown.
+export const MAX_PRIVACY_REVIEW_PROMO_IMPRESSION: number = 10;
+
+// Key to be used with the localStorage for the privacy review promo.
+const PRIVACY_REVIEW_PROMO_IMPRESSION_COUNT_KEY: string =
+    'privacy-review-promo-count';
+
 export interface PrivacyReviewBrowserProxy {
   /** Get the current privacy review status. */
   isPrivacyReviewAvailable(): Promise<boolean>;
+
+  /** @return The number of times the privacy review promo was shown. */
+  getPromoImpressionCount(): number;
+
+  /** Increment The number of times the privacy review promo was shown. */
+  incrementPromoImpressionCount(): void;
 }
 
 export class PrivacyReviewBrowserProxyImpl implements
@@ -17,6 +30,20 @@
     return sendWithPromise('isPrivacyReviewAvailable');
   }
 
+  getPromoImpressionCount() {
+    return parseInt(
+               window.localStorage.getItem(
+                   PRIVACY_REVIEW_PROMO_IMPRESSION_COUNT_KEY)!,
+               10) ||
+        0;
+  }
+
+  incrementPromoImpressionCount() {
+    window.localStorage.setItem(
+        PRIVACY_REVIEW_PROMO_IMPRESSION_COUNT_KEY,
+        (this.getPromoImpressionCount() + 1).toString());
+  }
+
   static getInstance(): PrivacyReviewBrowserProxy {
     return instance || (instance = new PrivacyReviewBrowserProxyImpl());
   }
diff --git a/chrome/browser/resources/settings/privacy_page/privacy_review/privacy_review_clear_on_exit_fragment.html b/chrome/browser/resources/settings/privacy_page/privacy_review/privacy_review_clear_on_exit_fragment.html
index 9c20e4a2..c7ec8ad 100644
--- a/chrome/browser/resources/settings/privacy_page/privacy_review/privacy_review_clear_on_exit_fragment.html
+++ b/chrome/browser/resources/settings/privacy_page/privacy_review/privacy_review_clear_on_exit_fragment.html
@@ -6,7 +6,7 @@
         media="(prefers-color-scheme: dark)">
     <img alt="" src="./images/privacy_review/clear_on_exit_graphic.svg">
   </picture>
-  <div class="header-label">$i18n{privacyReviewClearOnExitCardHeader}</div>
+  <h2 class="header-label">$i18n{privacyReviewClearOnExitCardHeader}</h2>
 </div>
 <div class="embedded-setting-wrapper">
   <settings-toggle-button id="clearOnExit"
diff --git a/chrome/browser/resources/settings/privacy_page/privacy_review/privacy_review_cookies_fragment.html b/chrome/browser/resources/settings/privacy_page/privacy_review/privacy_review_cookies_fragment.html
index 660765e..0d79526 100644
--- a/chrome/browser/resources/settings/privacy_page/privacy_review/privacy_review_cookies_fragment.html
+++ b/chrome/browser/resources/settings/privacy_page/privacy_review/privacy_review_cookies_fragment.html
@@ -6,7 +6,7 @@
         media="(prefers-color-scheme: dark)">
     <img alt="" src="./images/privacy_review/cookies_graphic.svg">
   </picture>
-  <div class="header-label">$i18n{privacyReviewCookiesCardHeader}</div>
+  <h2 class="header-label">$i18n{privacyReviewCookiesCardHeader}</h2>
 </div>
 <settings-radio-group id="cookiesRadioGroup"
     pref="{{prefs.generated.cookie_primary_setting}}"
diff --git a/chrome/browser/resources/settings/privacy_page/privacy_review/privacy_review_fragment_shared_css.html b/chrome/browser/resources/settings/privacy_page/privacy_review/privacy_review_fragment_shared_css.html
index 4d3053e..cd867dcc 100644
--- a/chrome/browser/resources/settings/privacy_page/privacy_review/privacy_review_fragment_shared_css.html
+++ b/chrome/browser/resources/settings/privacy_page/privacy_review/privacy_review_fragment_shared_css.html
@@ -64,8 +64,13 @@
     }
 
     .header-label {
+      align-self: normal;
+      color: var(--cr-primary-text-color);
       flex: 1;
       font-size: 123%;  /* Should be 16px when 100% is 13px. */
+      font-weight: 400;
+      padding-bottom: 0;
+      padding-top: 0;
     }
 
     @media (prefers-color-scheme: dark) {
diff --git a/chrome/browser/resources/settings/privacy_page/privacy_review/privacy_review_history_sync_fragment.html b/chrome/browser/resources/settings/privacy_page/privacy_review/privacy_review_history_sync_fragment.html
index 4eb5db3..248aac3 100644
--- a/chrome/browser/resources/settings/privacy_page/privacy_review/privacy_review_history_sync_fragment.html
+++ b/chrome/browser/resources/settings/privacy_page/privacy_review/privacy_review_history_sync_fragment.html
@@ -6,7 +6,7 @@
         media="(prefers-color-scheme: dark)">
     <img alt="" src="./images/privacy_review/history_sync_graphic.svg">
   </picture>
-  <div class="header-label">$i18n{privacyReviewHistorySyncCardHeader}</div>
+  <h2 class="header-label">$i18n{privacyReviewHistorySyncCardHeader}</h2>
 </div>
 <div class="embedded-setting-wrapper">
   <settings-toggle-button id="historyToggle"
diff --git a/chrome/browser/resources/settings/privacy_page/privacy_review/privacy_review_msbb_fragment.html b/chrome/browser/resources/settings/privacy_page/privacy_review/privacy_review_msbb_fragment.html
index c89818cc..282f3c7 100644
--- a/chrome/browser/resources/settings/privacy_page/privacy_review/privacy_review_msbb_fragment.html
+++ b/chrome/browser/resources/settings/privacy_page/privacy_review/privacy_review_msbb_fragment.html
@@ -6,7 +6,7 @@
         media="(prefers-color-scheme: dark)">
     <img alt="" src="./images/privacy_review/msbb_graphic.svg">
   </picture>
-  <div class="header-label">$i18n{privacyReviewMsbbCardHeader}</div>
+  <h2 class="header-label">$i18n{privacyReviewMsbbCardHeader}</h2>
 </div>
 <div class="embedded-setting-wrapper">
   <settings-toggle-button id="urlCollectionToggle"
diff --git a/chrome/browser/resources/settings/privacy_page/privacy_review/privacy_review_safe_browsing_fragment.html b/chrome/browser/resources/settings/privacy_page/privacy_review/privacy_review_safe_browsing_fragment.html
index 98c0c899..07e73e9 100644
--- a/chrome/browser/resources/settings/privacy_page/privacy_review/privacy_review_safe_browsing_fragment.html
+++ b/chrome/browser/resources/settings/privacy_page/privacy_review/privacy_review_safe_browsing_fragment.html
@@ -6,7 +6,7 @@
         media="(prefers-color-scheme: dark)">
     <img alt="" src="./images/privacy_review/safe_browsing_graphic.svg">
   </picture>
-  <div class="header-label">$i18n{privacyReviewSafeBrowsingCardHeader}</div>
+  <h2 class="header-label">$i18n{privacyReviewSafeBrowsingCardHeader}</h2>
 </div>
 <settings-radio-group id="safeBrowsingRadioGroup"
     pref="{{prefs.generated.safe_browsing}}"
diff --git a/chrome/browser/resources/settings/settings.ts b/chrome/browser/resources/settings/settings.ts
index 82962ab..59fc870 100644
--- a/chrome/browser/resources/settings/settings.ts
+++ b/chrome/browser/resources/settings/settings.ts
@@ -64,6 +64,7 @@
 export {CrSettingsPrefs} from './prefs/prefs_types.js';
 export {SettingsPrivacyPageElement} from './privacy_page/privacy_page.js';
 export {MetricsReporting, PrivacyPageBrowserProxy, PrivacyPageBrowserProxyImpl, ResolverOption, SecureDnsMode, SecureDnsSetting, SecureDnsUiManagementMode} from './privacy_page/privacy_page_browser_proxy.js';
+export {PrivacyReviewBrowserProxy, PrivacyReviewBrowserProxyImpl} from './privacy_page/privacy_review/privacy_review_browser_proxy.js';
 export {RelaunchMixin, RestartType} from './relaunch_mixin.js';
 export {ResetBrowserProxy, ResetBrowserProxyImpl} from './reset_page/reset_browser_proxy.js';
 export {SettingsResetProfileBannerElement} from './reset_page/reset_profile_banner.js';
diff --git a/chrome/browser/signin/chrome_signin_client_unittest.cc b/chrome/browser/signin/chrome_signin_client_unittest.cc
index e1cd9fd..5fc8c9f0 100644
--- a/chrome/browser/signin/chrome_signin_client_unittest.cc
+++ b/chrome/browser/signin/chrome_signin_client_unittest.cc
@@ -8,7 +8,6 @@
 
 #include "base/bind.h"
 #include "base/cxx17_backports.h"
-#include "base/feature_list.h"
 #include "base/memory/raw_ptr.h"
 #include "base/notreached.h"
 #include "base/run_loop.h"
@@ -22,7 +21,6 @@
 #include "chrome/browser/profiles/profile_manager.h"
 #include "chrome/browser/signin/chrome_signin_client_factory.h"
 #include "chrome/browser/signin/identity_manager_factory.h"
-#include "chrome/browser/signin/signin_features.h"
 #include "chrome/browser/signin/signin_util.h"
 #include "chrome/common/pref_names.h"
 #include "chrome/test/base/testing_browser_process.h"
@@ -378,7 +376,6 @@
 
 TEST_P(ChromeSigninClientSignoutSourceTest,
        UserSignoutDisallowedAccountManagementAccepted) {
-  base::test::ScopedFeatureList features(kAccountPoliciesLoadedWithoutSync);
   signin_metrics::ProfileSignout signout_source = GetParam();
 
   TestingProfile::Builder builder;
diff --git a/chrome/browser/signin/dice_web_signin_interceptor.cc b/chrome/browser/signin/dice_web_signin_interceptor.cc
index 4a34865..1657f40 100644
--- a/chrome/browser/signin/dice_web_signin_interceptor.cc
+++ b/chrome/browser/signin/dice_web_signin_interceptor.cc
@@ -32,7 +32,6 @@
 #include "chrome/browser/signin/dice_signed_in_profile_creator.h"
 #include "chrome/browser/signin/dice_web_signin_interceptor_factory.h"
 #include "chrome/browser/signin/identity_manager_factory.h"
-#include "chrome/browser/signin/signin_features.h"
 #include "chrome/browser/signin/signin_util.h"
 #include "chrome/browser/themes/theme_service.h"
 #include "chrome/browser/themes/theme_service_factory.h"
@@ -48,7 +47,6 @@
 #include "components/password_manager/core/common/password_manager_ui.h"
 #include "components/policy/core/browser/browser_policy_connector.h"
 #include "components/policy/core/browser/signin/user_cloud_signin_restriction_policy_fetcher.h"
-#include "components/policy/core/common/features.h"
 #include "components/policy/core/common/policy_map.h"
 #include "components/policy/core/common/policy_namespace.h"
 #include "components/policy/core/common/policy_service.h"
@@ -115,9 +113,6 @@
     bool is_new_account_interception,
     absl::optional<std::string>
         managed_account_profile_level_signin_restriction) {
-  // No enterprise separation required if the feature is disabled.
-  if (!base::FeatureList::IsEnabled(kAccountPoliciesLoadedWithoutSync))
-    return false;
   // No enterprise separation required for consumer accounts.
   if (policy::BrowserPolicyConnector::IsNonEnterpriseUser(email))
     return false;
@@ -140,8 +135,6 @@
   // If we still do not know if profile separation is required, the account
   // level policies for the intercepted account must be fetched if possible.
   if (is_new_account_interception &&
-      base::FeatureList::IsEnabled(
-          policy::features::kEnableUserCloudSigninRestrictionPolicyFetcher) &&
       !managed_account_profile_level_signin_restriction.has_value() &&
       g_browser_process->system_network_context_manager()) {
     return absl::nullopt;
@@ -504,15 +497,6 @@
   bool force_profile_separation =
       ShouldEnforceEnterpriseProfileSeparation(info);
 
-#if DCHECK_IS_ON()
-  if (force_profile_separation) {
-    DCHECK(base::FeatureList::IsEnabled(kAccountPoliciesLoadedWithoutSync) ||
-           !profile_->GetPrefs()
-                ->GetString(prefs::kManagedAccountsSigninRestriction)
-                .empty());
-  }
-#endif
-
   if (switch_to_entry) {
     // Propose account switching if we skipped in GetHeuristicOutcome because we
     // returned a nullptr to get more information about forced enterprise
@@ -566,6 +550,7 @@
 
   base::OnceCallback<void(SigninInterceptionResult)> callback;
   switch (*interception_type) {
+    case SigninInterceptionType::kProfileSwitch:
     case SigninInterceptionType::kProfileSwitchForced:
       callback = base::BindOnce(
           &DiceWebSigninInterceptor::OnProfileSwitchChoice,
@@ -576,7 +561,6 @@
           &DiceWebSigninInterceptor::OnEnterpriseProfileCreationResult,
           base::Unretained(this), info, profile_color);
       break;
-    case SigninInterceptionType::kProfileSwitch:
     case SigninInterceptionType::kEnterprise:
     case SigninInterceptionType::kMultiUser:
       callback =
@@ -706,10 +690,8 @@
         base::TimeTicks::Now() - profile_creation_start_time_);
   }
 
-  if (base::FeatureList::IsEnabled(kAccountPoliciesLoadedWithoutSync)) {
-    chrome::enterprise_util::SetUserAcceptedAccountManagement(
-        new_profile, intercepted_account_management_accepted_);
-  }
+  chrome::enterprise_util::SetUserAcceptedAccountManagement(
+      new_profile, intercepted_account_management_accepted_);
 
   // Work is done in this profile, the flow continues in the
   // DiceWebSigninInterceptor that is attached to the new profile.
@@ -726,7 +708,6 @@
     const AccountInfo& account_info,
     SkColor profile_color,
     SigninInterceptionResult create) {
-  DCHECK(base::FeatureList::IsEnabled(kAccountPoliciesLoadedWithoutSync));
   if (create == SigninInterceptionResult::kAccepted) {
     intercepted_account_management_accepted_ = true;
     // In case of a reauth if there was no consent for management, do not create
@@ -809,8 +790,6 @@
     FetchAccountLevelSigninRestrictionForInterceptedAccount(
         const AccountInfo& account_info,
         base::OnceCallback<void(const std::string&)> callback) {
-  DCHECK(base::FeatureList::IsEnabled(
-      policy::features::kEnableUserCloudSigninRestrictionPolicyFetcher));
   if (intercepted_account_level_policy_value_fetch_result_for_testing_
           .has_value()) {
     std::move(callback).Run(
diff --git a/chrome/browser/signin/dice_web_signin_interceptor.h b/chrome/browser/signin/dice_web_signin_interceptor.h
index b3befbcc..c7eab03 100644
--- a/chrome/browser/signin/dice_web_signin_interceptor.h
+++ b/chrome/browser/signin/dice_web_signin_interceptor.h
@@ -272,20 +272,20 @@
   FRIEND_TEST_ALL_PREFIXES(DiceWebSigninInterceptorTest,
                            ShouldShowMultiUserBubble);
   FRIEND_TEST_ALL_PREFIXES(DiceWebSigninInterceptorTest, PersistentHash);
-  FRIEND_TEST_ALL_PREFIXES(DiceWebSigninInterceptorForcedSeparationTest,
+  FRIEND_TEST_ALL_PREFIXES(DiceWebSigninInterceptorTest,
                            ShouldEnforceEnterpriseProfileSeparation);
-  FRIEND_TEST_ALL_PREFIXES(DiceWebSigninInterceptorForcedSeparationTest,
+  FRIEND_TEST_ALL_PREFIXES(DiceWebSigninInterceptorTest,
                            ShouldEnforceEnterpriseProfileSeparationWithoutUPA);
-  FRIEND_TEST_ALL_PREFIXES(DiceWebSigninInterceptorForcedSeparationTest,
+  FRIEND_TEST_ALL_PREFIXES(DiceWebSigninInterceptorTest,
                            ShouldEnforceEnterpriseProfileSeparationReauth);
-  FRIEND_TEST_ALL_PREFIXES(DiceWebSigninInterceptorForcedSeparationTest,
+  FRIEND_TEST_ALL_PREFIXES(DiceWebSigninInterceptorTest,
                            EnforceManagedAccountAsPrimary);
-  FRIEND_TEST_ALL_PREFIXES(DiceWebSigninInterceptorForcedSeparationTest,
+  FRIEND_TEST_ALL_PREFIXES(DiceWebSigninInterceptorTest,
                            ShouldEnforceEnterpriseProfileSeparationReauth);
-  FRIEND_TEST_ALL_PREFIXES(DiceWebSigninInterceptorEnterpriseBrowserTest,
+  FRIEND_TEST_ALL_PREFIXES(DiceWebSigninInterceptorTest,
                            ForcedEnterpriseInterceptionTestAccountLevelPolicy);
   FRIEND_TEST_ALL_PREFIXES(
-      DiceWebSigninInterceptorEnterpriseBrowserTest,
+      DiceWebSigninInterceptorTest,
       ForcedEnterpriseInterceptionTestNoForcedInterception);
 
   // Cancels any current signin interception and resets the interceptor to its
diff --git a/chrome/browser/signin/dice_web_signin_interceptor_browsertest.cc b/chrome/browser/signin/dice_web_signin_interceptor_browsertest.cc
index ede01cd..665ded1 100644
--- a/chrome/browser/signin/dice_web_signin_interceptor_browsertest.cc
+++ b/chrome/browser/signin/dice_web_signin_interceptor_browsertest.cc
@@ -29,7 +29,6 @@
 #include "chrome/browser/signin/dice_web_signin_interceptor_factory.h"
 #include "chrome/browser/signin/identity_manager_factory.h"
 #include "chrome/browser/signin/identity_test_environment_profile_adaptor.h"
-#include "chrome/browser/signin/signin_features.h"
 #include "chrome/browser/themes/theme_service.h"
 #include "chrome/browser/themes/theme_service_factory.h"
 #include "chrome/browser/ui/browser.h"
@@ -195,10 +194,7 @@
           : 0;
   int profile_creation_count = reauth ? 0 : 1 - profile_switch_count;
   int fetched_account_count =
-      reauth || outcome == SigninInterceptionHeuristicOutcome::
-                               kInterceptEnterpriseForcedProfileSwitch
-          ? 1
-          : profile_creation_count;
+      std::max(profile_switch_count, profile_creation_count);
 
   histogram_tester.ExpectUniqueSample("Signin.Intercept.HeuristicOutcome",
                                       outcome, 1);
@@ -610,10 +606,8 @@
     : public DiceWebSigninInterceptorBrowserTest {
  public:
   DiceWebSigninInterceptorEnterpriseBrowserTest() {
-    enterprise_feature_list_.InitWithFeatures(
-        {kAccountPoliciesLoadedWithoutSync,
-         policy::features::kEnableUserCloudSigninRestrictionPolicyFetcher},
-        {});
+    enterprise_feature_list_.InitAndEnableFeature(
+        policy::features::kEnableUserCloudSigninRestrictionPolicyFetcher);
   }
 
  private:
diff --git a/chrome/browser/signin/dice_web_signin_interceptor_unittest.cc b/chrome/browser/signin/dice_web_signin_interceptor_unittest.cc
index 1650b28..7ff97547c 100644
--- a/chrome/browser/signin/dice_web_signin_interceptor_unittest.cc
+++ b/chrome/browser/signin/dice_web_signin_interceptor_unittest.cc
@@ -11,7 +11,6 @@
 #include "base/strings/string_number_conversions.h"
 #include "base/strings/utf_string_conversions.h"
 #include "base/test/metrics/histogram_tester.h"
-#include "base/test/scoped_feature_list.h"
 #include "build/buildflag.h"
 #include "build/chromeos_buildflags.h"
 #include "chrome/browser/browser_process.h"
@@ -20,7 +19,6 @@
 #include "chrome/browser/signin/chrome_signin_client_factory.h"
 #include "chrome/browser/signin/chrome_signin_client_test_util.h"
 #include "chrome/browser/signin/identity_test_environment_profile_adaptor.h"
-#include "chrome/browser/signin/signin_features.h"
 #include "chrome/browser/ui/tabs/tab_strip_model.h"
 #include "chrome/common/chrome_constants.h"
 #include "chrome/common/pref_names.h"
@@ -317,18 +315,7 @@
   EXPECT_TRUE(interceptor()->ShouldShowEnterpriseBubble(account_info));
 }
 
-class DiceWebSigninInterceptorForcedSeparationTest
-    : public DiceWebSigninInterceptorTest {
- public:
-  DiceWebSigninInterceptorForcedSeparationTest()
-      : feature_list_(kAccountPoliciesLoadedWithoutSync) {}
-
- private:
-  base::test::ScopedFeatureList feature_list_;
-};
-
-TEST_F(DiceWebSigninInterceptorForcedSeparationTest,
-       ShouldEnforceEnterpriseProfileSeparation) {
+TEST_F(DiceWebSigninInterceptorTest, ShouldEnforceEnterpriseProfileSeparation) {
   profile()->GetPrefs()->SetBoolean(
       prefs::kManagedAccountsSigninRestrictionScopeMachine, true);
   profile()->GetPrefs()->SetString(prefs::kManagedAccountsSigninRestriction,
@@ -365,7 +352,7 @@
       interceptor()->ShouldEnforceEnterpriseProfileSeparation(account_info));
 }
 
-TEST_F(DiceWebSigninInterceptorForcedSeparationTest,
+TEST_F(DiceWebSigninInterceptorTest,
        ShouldEnforceEnterpriseProfileSeparationWithoutUPA) {
   profile()->GetPrefs()->SetBoolean(
       prefs::kManagedAccountsSigninRestrictionScopeMachine, true);
@@ -385,7 +372,7 @@
       interceptor()->ShouldEnforceEnterpriseProfileSeparation(account_info_1));
 }
 
-TEST_F(DiceWebSigninInterceptorForcedSeparationTest,
+TEST_F(DiceWebSigninInterceptorTest,
        ShouldEnforceEnterpriseProfileSeparationReauth) {
   profile()->GetPrefs()->SetString(prefs::kManagedAccountsSigninRestriction,
                                    "primary_account_strict");
@@ -411,8 +398,7 @@
       primary_account_info));
 }
 
-TEST_F(DiceWebSigninInterceptorForcedSeparationTest,
-       EnforceManagedAccountAsPrimaryReauth) {
+TEST_F(DiceWebSigninInterceptorTest, EnforceManagedAccountAsPrimaryReauth) {
   profile()->GetPrefs()->SetBoolean(
       prefs::kManagedAccountsSigninRestrictionScopeMachine, true);
   profile()->GetPrefs()->SetString(prefs::kManagedAccountsSigninRestriction,
@@ -441,8 +427,7 @@
       SigninInterceptionHeuristicOutcome::kInterceptEnterpriseForced);
 }
 
-TEST_F(DiceWebSigninInterceptorForcedSeparationTest,
-       EnforceManagedAccountAsPrimaryManaged) {
+TEST_F(DiceWebSigninInterceptorTest, EnforceManagedAccountAsPrimaryManaged) {
   AccountInfo account_info =
       identity_test_env()->MakeAccountAvailable("alice@example.com");
   MakeValidAccountInfo(&account_info, "example.com");
@@ -464,7 +449,7 @@
       SigninInterceptionHeuristicOutcome::kInterceptEnterpriseForced);
 }
 
-TEST_F(DiceWebSigninInterceptorForcedSeparationTest,
+TEST_F(DiceWebSigninInterceptorTest,
        EnforceManagedAccountAsPrimaryProfileSwitch) {
   AccountInfo account_info =
       identity_test_env()->MakeAccountAvailable("alice@example.com");
diff --git a/chrome/browser/signin/services/android/java/src/org/chromium/chrome/browser/signin/services/FREMobileIdentityConsistencyFieldTrial.java b/chrome/browser/signin/services/android/java/src/org/chromium/chrome/browser/signin/services/FREMobileIdentityConsistencyFieldTrial.java
index 3c05e9e..b4e156a 100644
--- a/chrome/browser/signin/services/android/java/src/org/chromium/chrome/browser/signin/services/FREMobileIdentityConsistencyFieldTrial.java
+++ b/chrome/browser/signin/services/android/java/src/org/chromium/chrome/browser/signin/services/FREMobileIdentityConsistencyFieldTrial.java
@@ -96,6 +96,11 @@
          * Subtitle: None
          */
         int MAKE_CHROME_YOUR_OWN = 5;
+        /**
+         * When adding new groups, increasing this value will automatically cause new groups
+         * to receive clients. A different control group will need to be implemented however
+         * when adding new groups.
+         */
         int MAX_VALUE = 6;
     }
 
@@ -268,9 +273,16 @@
      */
     @MainThread
     private static void createFirstRunVariationsTrial() {
-        // TODO(https://crbug.com/1276961): This percentage will be changed when the experiment
-        //  starts.
-        final int variationsPercentage = 0;
+        int variationsPercentage = 0;
+        switch (VersionConstants.CHANNEL) {
+            case Channel.DEFAULT:
+            case Channel.CANARY:
+            case Channel.DEV:
+            case Channel.BETA:
+                variationsPercentage = 10;
+                break;
+            case Channel.STABLE:
+        }
         // For A/B testing all experiment groups should have the same percentages.
         assert variationsPercentage * VariationsGroup.MAX_VALUE <= 100;
 
diff --git a/chrome/browser/signin/signin_features.cc b/chrome/browser/signin/signin_features.cc
index 85e2f5fe..3f1ad83c 100644
--- a/chrome/browser/signin/signin_features.cc
+++ b/chrome/browser/signin/signin_features.cc
@@ -9,12 +9,6 @@
 const base::Feature kProcessGaiaRemoveLocalAccountHeader{
     "ProcessGaiaRemoveLocalAccountHeader", base::FEATURE_ENABLED_BY_DEFAULT};
 
-// Allows policies to be loaded on a managed account without activating sync.
-// Uses enterprise confirmation dialog for managed accounts signin outside of
-// the profile picker.
-const base::Feature kAccountPoliciesLoadedWithoutSync{
-    "AccountPoliciesLoadedWithoutSync", base::FEATURE_ENABLED_BY_DEFAULT};
-
 // Enables the sync promo after the sign-in intercept.
 const base::Feature kSyncPromoAfterSigninIntercept{
     "SyncPromoAfterSigninIntercept", base::FEATURE_DISABLED_BY_DEFAULT};
diff --git a/chrome/browser/signin/signin_features.h b/chrome/browser/signin/signin_features.h
index 70af1ca..2a61875 100644
--- a/chrome/browser/signin/signin_features.h
+++ b/chrome/browser/signin/signin_features.h
@@ -9,8 +9,6 @@
 
 extern const base::Feature kProcessGaiaRemoveLocalAccountHeader;
 
-extern const base::Feature kAccountPoliciesLoadedWithoutSync;
-
 extern const base::Feature kSyncPromoAfterSigninIntercept;
 
 #endif  // CHROME_BROWSER_SIGNIN_SIGNIN_FEATURES_H_
diff --git a/chrome/browser/signin/signin_util.cc b/chrome/browser/signin/signin_util.cc
index 1b576c2..0e4379c11 100644
--- a/chrome/browser/signin/signin_util.cc
+++ b/chrome/browser/signin/signin_util.cc
@@ -7,7 +7,6 @@
 #include <memory>
 
 #include "base/bind.h"
-#include "base/feature_list.h"
 #include "base/memory/raw_ptr.h"
 #include "base/memory/weak_ptr.h"
 #include "base/metrics/histogram_functions.h"
@@ -23,7 +22,6 @@
 #include "chrome/browser/profiles/profile.h"
 #include "chrome/browser/profiles/profiles_state.h"
 #include "chrome/browser/signin/identity_manager_factory.h"
-#include "chrome/browser/signin/signin_features.h"
 #include "chrome/browser/ui/simple_message_box.h"
 #include "chrome/browser/ui/startup/startup_types.h"
 #include "chrome/browser/ui/webui/profile_helper.h"
@@ -347,8 +345,6 @@
 bool ProfileSeparationEnforcedByPolicy(
     Profile* profile,
     const std::string& intercepted_account_level_policy_value) {
-  if (!base::FeatureList::IsEnabled(kAccountPoliciesLoadedWithoutSync))
-    return false;
   std::string current_profile_account_restriction =
       profile->GetPrefs()->GetString(prefs::kManagedAccountsSigninRestriction);
 
diff --git a/chrome/browser/signin/signin_util_unittest.cc b/chrome/browser/signin/signin_util_unittest.cc
index 8086257..4011d354 100644
--- a/chrome/browser/signin/signin_util_unittest.cc
+++ b/chrome/browser/signin/signin_util_unittest.cc
@@ -6,12 +6,10 @@
 
 #include <memory>
 
-#include "base/feature_list.h"
 #include "build/buildflag.h"
 #include "build/chromeos_buildflags.h"
 #include "chrome/browser/browser_process.h"
 #include "chrome/browser/prefs/browser_prefs.h"
-#include "chrome/browser/signin/signin_features.h"
 #include "chrome/common/pref_names.h"
 #include "chrome/test/base/browser_with_test_window_test.h"
 #include "chrome/test/base/testing_browser_process.h"
@@ -46,16 +44,7 @@
 }
 
 #if !BUILDFLAG(IS_CHROMEOS_LACROS)
-class SigninUtilEnterpriseTest : public BrowserWithTestWindowTest {
- public:
-  SigninUtilEnterpriseTest()
-      : feature_list_(kAccountPoliciesLoadedWithoutSync) {}
-
- private:
-  base::test::ScopedFeatureList feature_list_;
-};
-
-TEST_F(SigninUtilEnterpriseTest, ProfileSeparationEnforcedByPolicy) {
+TEST_F(SigninUtilTest, ProfileSeparationEnforcedByPolicy) {
   std::unique_ptr<TestingProfile> profile = TestingProfile::Builder().Build();
 
   // No policy set on the active profile.
diff --git a/chrome/browser/ui/android/strings/android_chrome_strings.grd b/chrome/browser/ui/android/strings/android_chrome_strings.grd
index a5d01f0..9cc8cc9 100644
--- a/chrome/browser/ui/android/strings/android_chrome_strings.grd
+++ b/chrome/browser/ui/android/strings/android_chrome_strings.grd
@@ -5307,7 +5307,7 @@
 
       <!-- WebID Account Selection strings -->
       <message name="IDS_ACCOUNT_SELECTION_SHEET_TITLE_SINGLE" desc="Header for Account Selection sheet where the user only has a single account to sign up with." translateable="false">
-        Sign up for <ph name="SITE_NAME">%1$s<ex>rp.example</ex></ph>
+        Sign in to <ph name="SITE_NAME">%1$s<ex>rp.example</ex></ph>
       </message>
       <message name="IDS_ACCOUNT_SELECTION_SHEET_TITLE" desc="Header for Account Selection sheet where the user can pick an account to sign up with." translateable="false">
         Choose an account for <ph name="SITE_NAME">%1$s<ex>rp.example</ex></ph>
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 c21095d..8d87d51 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
@@ -583,6 +583,7 @@
 <translation id="4472118726404937099">للمزامنة والتخصيص على جميع الأجهزة، يُرجى تسجيل الدخول وتفعيل المزامنة.</translation>
 <translation id="4479839115899251637">الحذف من قائمة القراءة</translation>
 <translation id="4479972344484327217">‏جارٍ تثبيت <ph name="MODULE" /> لمتصفِّح Chrome…</translation>
+<translation id="4484496141267039529">لا يتوفّر اتصال بالإنترنت. يُرجى إعادة المحاولة لاحقًا.</translation>
 <translation id="4487967297491345095">‏سيتم حذف جميع بيانات تطبيق Chrome نهائيًا. ويشمل ذلك جميع الملفات والإعدادات والحسابات وقواعد البيانات وما إلى ذلك.</translation>
 <translation id="449126573531210296">‏ترميز كلمات المرور التي تمت مزامنتها باستخدام حسابك على Google</translation>
 <translation id="4504667196171871375">‏على شبكة Wi-Fi وبيانات الجوّال</translation>
diff --git a/chrome/browser/ui/android/strings/translations/android_chrome_strings_as.xtb b/chrome/browser/ui/android/strings/translations/android_chrome_strings_as.xtb
index 0662670..a37678b 100644
--- a/chrome/browser/ui/android/strings/translations/android_chrome_strings_as.xtb
+++ b/chrome/browser/ui/android/strings/translations/android_chrome_strings_as.xtb
@@ -102,6 +102,7 @@
 <translation id="1544826120773021464">আপোনাৰ Google একাউণ্টটো পৰিচালনা কৰিবলৈ "একাউণ্ট পৰিচালনা কৰক" বুটামটোত টিপক</translation>
 <translation id="1549000191223877751">অন্য ৱিণ্ড’লৈ নিয়ক</translation>
 <translation id="1553358976309200471">Chrome আপডে’ট কৰক</translation>
+<translation id="1554532453982918912">আপুনি ব্যৱহাৰ কৰা ধৰণে Chrome ব্যৱহাৰ কৰা লোকসকলৰ বাবে Chrome উন্নত কৰাত সহায় কৰক</translation>
 <translation id="1558391695376153246">ইনক’গনিট’ টেবসমূহ বন্ধ কৰক</translation>
 <translation id="1571304935088121812">ব্যৱহাৰকাৰীৰ নামটোৰ প্ৰতিলিপি কৰক</translation>
 <translation id="1592864538817356322">মান্য সুৰক্ষা:</translation>
@@ -248,6 +249,7 @@
 <translation id="2453860139492968684">সম্পূর্ণ হ’ল</translation>
 <translation id="2459390580524506445">কণ্ঠধ্বনিৰদ্বাৰা সন্ধান কৰাৰ উচ্চখাপৰ সুবিধা</translation>
 <translation id="2461822463642141190">বৰ্তমান</translation>
+<translation id="2472163211318554013">Chromeৰ পৰা পাৰ্যমানে উপকৃত হ’বলৈ ছাইন ইন কৰক</translation>
 <translation id="247737702124049222">প্ৰতিচ্ছবিৰ বিৱৰণ অন আছে</translation>
 <translation id="2482878487686419369">জাননী</translation>
 <translation id="2485422356828889247">আনইনষ্টল কৰক</translation>
@@ -283,6 +285,7 @@
 <translation id="2645657967708199252">আপোনাৰ <ph name="CONNECTION_TYPE" /> সংযোগে আপোনাৰ ডাউনল'ডটো লেহেমীয়া কৰিব পাৰে</translation>
 <translation id="2647434099613338025">ভাষা যোগ কৰক</translation>
 <translation id="2649068648233607930"><ph name="DOMAIN" />এ আপোনাৰ ব্ৰাউজাৰটো পৰিচালনা কৰে</translation>
+<translation id="2650348088770008516">গোপনীয়তা সম্পৰ্কীয় নিৰ্দেশনাৰ ব্যাখ্যা বন্ধ কৰা হৈছে</translation>
 <translation id="2650751991977523696">ফাইল পুনৰ ডাইনল'ড কৰিবনে?</translation>
 <translation id="2651091186440431324">{FILE_COUNT,plural, =1{#টা অডিঅ' ফাইল}one{#টা অডিঅ' ফাইল}other{#টা অডিঅ' ফাইল}}</translation>
 <translation id="265156376773362237">মান্য আগতীয়া ল’ডিং</translation>
@@ -313,6 +316,7 @@
 <translation id="2818669890320396765">আপোনাৰ সকলো ডিভাইচতে নিজৰ বুকমার্কসমূহ পাবলৈ ছাইন ইন কৰি ছিংক কৰা সুবিধাটো অন কৰক</translation>
 <translation id="2827278682606527653">Feed card menu half height</translation>
 <translation id="2830783625999891985">ক্লিপব'ৰ্ডৰ সমল লুকুওৱা হ’ল</translation>
+<translation id="2838367486340230368">অৰ্ধ উচ্চতাত খোলা গোপনীয়তা সম্পৰ্কীয় নিৰ্দেশনাৰ ব্যাখ্যা</translation>
 <translation id="2839327205551510876"><ph name="SITE_NAME" />ক আনফ’ল’ কৰিলে</translation>
 <translation id="2840810876587895427">{TAB_COUNT,plural, =1{<ph name="TAB_COUNT_ONE" /> টা ইনক’গ্নিট’ টেব বন্ধ কৰা হ’ব}one{<ph name="TAB_COUNT_MANY" /> টা ইনক’গ্নিট’ টেব বন্ধ কৰা হ’ব}other{<ph name="TAB_COUNT_MANY" /> টা ইনক’গ্নিট’ টেব বন্ধ কৰা হ’ব}}</translation>
 <translation id="2841216154655874070">{NUM_DAYS,plural, =1{১ দিনৰ আগত পৰীক্ষা কৰা হৈছিল}one{# দিনৰ আগত পৰীক্ষা কৰা হৈছিল}other{# দিনৰ আগত পৰীক্ষা কৰা হৈছিল}}</translation>
@@ -351,6 +355,7 @@
 <translation id="2996291259634659425">পাছফ্ৰেজ সৃষ্টি কৰক</translation>
 <translation id="2996809686854298943">URL আৱশ্যক</translation>
 <translation id="2997081575621687554">Googleৰ কোনো ছাইটে নিজৰ পৃষ্ঠাত থকা লিংকসমূহ গোপনে আগতীয়াকৈ ল’ড কৰিবলৈ অনুৰোধ কৰিলে Chromeএ কুকি অবিহনে Google ছাৰ্ভাৰৰ জৰিয়তে পৃষ্ঠাসমূহ এনক্ৰিপ্ট কৰি আগতীয়াকৈ ল’ড কৰে। ই আগতীয়াকৈ ল’ড কৰা ছাইটৰ পৰা আপোনাৰ পৰিচয় লুকুৱায়।</translation>
+<translation id="3003733539450769656">বিপজ্জনক ঘটনাবোৰ ঘটাৰ আগতে সেইসমূহৰ বিষয়ে আপোনাক সকীয়নি দিয়ে</translation>
 <translation id="3006881078666935414">ব্যৱহাৰৰ কোনো ডেটা নাই</translation>
 <translation id="301080557829842765">গোপনীয়তাৰ নিৰ্দেশনা</translation>
 <translation id="3016635187733453316">নিশ্চিত হৈ লওক যে এই ডিভাইচটো ইণ্টাৰনেটৰ সৈতে সংযুক্ত হৈ আছে</translation>
@@ -363,6 +368,7 @@
 <translation id="3037517125981011456">Chromeত ছাইন ইন কৰিবলৈ প্ৰম্প্‌ট প্ৰদৰ্শন কৰে</translation>
 <translation id="3046945242843292318">পৰৱৰ্তী সময়ত এই ছাইটটোলৈ ক্ষিপ্ৰতাৰে আহক</translation>
 <translation id="3055259925215945098">বুকমাৰ্ক স্থানান্তৰ কৰা হৈছে</translation>
+<translation id="3055841435094910999">আপোনাৰ Chrome ব্যৱহাৰ সম্পৰ্কীয় তথ্য Googleলৈ পঠিওৱা হয় কিন্তু ইয়াত আপোনাৰ ব্যক্তিগত তথ্য অন্তৰ্ভুক্ত কৰা নহয়\n\nChrome ক্ৰেশ্ব হ’লে ক্ৰেশ্বৰ সবিশেষত হয়তো কিছুমান ব্যক্তিগত তথ্য অন্তৰ্ভুক্ত হ’ব পাৰে\n\nআপুনি ছিংক কৰা সুবিধাটো অন কৰিলে মেট্ৰিকতো আপুনি চোৱা URLসমূহৰ তথ্য অন্তৰ্ভুক্ত কৰা হ’ব পাৰে</translation>
 <translation id="3060635849835183725">{BOOKMARKS_COUNT,plural, =1{<ph name="BOOKMARKS_COUNT_ONE" />টা বুকমাৰ্ক}one{<ph name="BOOKMARKS_COUNT_MANY" />টা বুকমাৰ্ক}other{<ph name="BOOKMARKS_COUNT_MANY" />টা বুকমাৰ্ক}}</translation>
 <translation id="3062802207422175757">Chromeত আপোনাৰ আগ্ৰহৰ বিষয়বস্তু সম্পৰ্কীয় প্ৰবন্ধসমূহ</translation>
 <translation id="3066573403916685335">তললৈ নিয়ক</translation>
@@ -696,6 +702,7 @@
 <translation id="5091199029769593641">অতি সোনকালে, আপুনি এটা নতুন টেব খুলিলে <ph name="SITE_NAME" />ৰ কাহিনী দেখা পাব। আপুনি ফ’ল’ কৰা ছাইটসমূহ আপোনাৰ Google একাউণ্টত ছেভ কৰা হয়। আপুনি সেইবোৰ ডিস্ক’ভাৰৰ ছেটিঙত পৰিচালনা কৰিব পাৰে।</translation>
 <translation id="5091249083535528968">বিস্তাৰিত ব্যৱহাৰৰ ডেটা</translation>
 <translation id="509429900233858213">কোনো আসোঁৱাহ হৈছে।</translation>
+<translation id="5102401324271069229">যদি কোনোবা ছাইটে আপোনাৰ পাছৱৰ্ড চুৰি কৰিবলৈ চেষ্টা কৰে অথবা আপুনি কোনো ক্ষতিকাৰক ফাইল ডাউনল’ড কৰাৰ সময়ত, Chromeএ পৃষ্ঠাৰ কিছুমান সমলকে ধৰি URLসমূহ সুৰক্ষিত ব্ৰাউজিঙলৈ পঠিয়াব পাৰে</translation>
 <translation id="510275257476243843">১ঘণ্টা বাকী আছে</translation>
 <translation id="5115811374190515607"><ph name="PRODUCT_NAME" />লৈ</translation>
 <translation id="5118713593561876160">আগ্ৰহ</translation>
@@ -992,6 +999,7 @@
 <translation id="6659594942844771486">টেব</translation>
 <translation id="666731172850799929"><ph name="APP_NAME" />ত খোলক</translation>
 <translation id="6671495933530132209">প্ৰতিচ্ছবি প্ৰতিলিপি কৰক</translation>
+<translation id="6674044799624355221">নতুন ভাবুকিবোৰ বিচাৰি পোৱাত সহায় কৰিবলৈ পৃষ্ঠা, ডাউনল’ড, এক্সটেনশ্বনৰ কাৰ্যকলাপ আৰু ছিষ্টেমৰ তথ্যৰ এটা সৰু নমুনা পঠিয়ায়</translation>
 <translation id="6674571176963658787">ছিংক আৰম্ভ কৰিবলৈ আপোনাৰ পাছফ্ৰেজ দিয়ক</translation>
 <translation id="6676840375528380067">এই ডিভাইচটোৰ পৰা Chrome ডেটা মচিবনে?</translation>
 <translation id="6684809838922667136">Chromeক উন্নত কৰক</translation>
@@ -1067,6 +1075,7 @@
 <translation id="7085332316435785646">Google সেৱাসমূহত অধিক ব্যক্তিগতকৃত অভিজ্ঞতা লাভ কৰিবলৈ Chromeৰ ইতিহাস অন্তৰ্ভুক্ত কৰিবনে নকৰে সেয়া বাছনি কৰক</translation>
 <translation id="7088681679121566888">Chrome আপ টু ডে’ট আছে</translation>
 <translation id="7093803425429738190">আৱেগ যোগ দিয়ক</translation>
+<translation id="7105047059074518658">বিভিন্ন ডিভাইচত সহজে ব্ৰাউজ কৰিবলৈ ছাইন ইন কৰক</translation>
 <translation id="7106762743910369165">আপোনাৰ প্ৰতিষ্ঠানে আপোনাৰ ব্ৰাউজাৰটো পৰিচালনা কৰে</translation>
 <translation id="7121362699166175603">ঠিকনাৰ বাৰত ইতিহাস আৰু স্বয়ংক্ৰিয়ভাৱে পুৰ হোৱা তথ্য মচে। <ph name="BEGIN_LINK" />myactivity.google.com<ph name="END_LINK" />ত আপোনাৰ Google একাউণ্টৰ অন্য প্ৰকাৰৰ ব্ৰাউজিং ইতিহাস থাকিব পাৰে।</translation>
 <translation id="7138678301420049075">অন্য</translation>
@@ -1082,6 +1091,7 @@
 <translation id="7187993566681480880">আপোনাক Chromeত সুৰক্ষিত কৰি ৰাখে আৰু আপুনি ছাইন ইন হৈ থকা অৱস্থাত Googleৰ অন্য এপ্‌সমূহত আপোনাৰ সুৰক্ষা উন্নত কৰিবলৈ ব্যৱহাৰ কৰা হ’ব পাৰে।</translation>
 <translation id="718926126787620637">পূৰ্ণ উচ্চতাত খোলা বুকমাৰ্ক ফ'ল্ডাৰৰ সূচী</translation>
 <translation id="7191430249889272776">নেপথ্যত খোলা থকা টেব।</translation>
+<translation id="7196215469483532480">পূৰ্ণ উচ্চতাত খোলা গোপনীয়তা সম্পৰ্কীয় নিৰ্দেশনাৰ ব্যাখ্যা</translation>
 <translation id="7227218174981371415">{FILE_COUNT,plural, =1{১ টা ডাউনল’ড বাকী আছে}one{# টা ডাউনল’ড বাকী আছে}other{# টা ডাউনল’ড বাকী আছে}}</translation>
 <translation id="7242755609445462077">শৈলীকৰণ কৰা হাইলাইট <ph name="CURRENT_DATE" /></translation>
 <translation id="7248069434667874558">নিশ্চিত হৈ লওক যে Chromeত <ph name="TARGET_DEVICE_NAME" />ৰ ছিংক অন কৰা আছে</translation>
@@ -1176,11 +1186,13 @@
 <translation id="7757787379047923882">পাঠ <ph name="DEVICE_NAME" />ৰ পৰা শ্বেয়াৰ কৰা হৈছে</translation>
 <translation id="7761849928583394409">তাৰিখ আৰু সময় বাছক</translation>
 <translation id="7762668264895820836">এছডি কাৰ্ড <ph name="SD_CARD_NUMBER" /></translation>
+<translation id="7762928140712606393">অতিৰিক্ত সুবিধা আৰু Chromeৰ আটাইতকৈ শক্তিশালী সুৰক্ষাৰ বাবে ছাইন ইন কৰক</translation>
 <translation id="7764225426217299476">ঠিকনা যোগ কৰক</translation>
 <translation id="7772032839648071052">পাছফ্ৰেজ নিশ্চিত কৰক</translation>
 <translation id="7772375229873196092"><ph name="APP_NAME" /> বন্ধ কৰক</translation>
 <translation id="7774809984919390718">{PAYMENT_METHOD,plural, =1{<ph name="PAYMENT_METHOD_PREVIEW" />\u2026 আৰু অন্য <ph name="NUMBER_OF_ADDITIONAL_PAYMENT_METHODS" />টা}one{<ph name="PAYMENT_METHOD_PREVIEW" />\u2026 আৰু অন্য <ph name="NUMBER_OF_ADDITIONAL_PAYMENT_METHODS" />টা}other{<ph name="PAYMENT_METHOD_PREVIEW" />\u2026 আৰু অন্য <ph name="NUMBER_OF_ADDITIONAL_PAYMENT_METHODS" />টা}}</translation>
 <translation id="7778840695157240389">নতুন কাহিনীৰ বাবে পাছত আকৌ চাওক</translation>
+<translation id="7780645209293383778">আপুনি ছাইন ইন হৈ থকা অৱস্থাত আপোনাক Googleৰ সমগ্ৰ এপত সুৰক্ষা প্ৰদান কৰিবলৈ এই ডেটাখিনি অস্থায়ীভাৱে আপোনাৰ Google একাউণ্টৰ সৈতে লিংক কৰে</translation>
 <translation id="7786595606756654269">ৱেবত সন্ধান কৰিবলৈ আৰু আপুনি খোলা ছাইটৰ সৈতে জড়িত কৰি ৰাখিবলৈ Google Assistantএ কণ্ঠধ্বনিৰ এক উন্নত অভিজ্ঞতা প্ৰদান কৰে। Google Assistantএ আপুনি ছাইটসমূহৰ সৈতে ব্যৱহাৰ কৰা URL আৰু সমল লাভ কৰিব।</translation>
 <translation id="7791543448312431591">যোগ কৰক</translation>
 <translation id="7798392620021911922"><ph name="TAB_COUNT" /> টা টেব পুনঃস্থাপন কৰা হ’ল</translation>
@@ -1249,6 +1261,7 @@
 <translation id="8084285576995584326">আপোনাৰ Google একাউণ্টৰ ডেটা নিয়ন্ত্ৰণ কৰক</translation>
 <translation id="808747664143081553">ডিভাইচৰ সৈতে সংযোগ কৰা হ’ল</translation>
 <translation id="8088176524274673045">আশে-পাশে থকা লোকসকলৰ সৈতে শ্বেয়াৰ কৰিবলৈ তেওঁলোকক এই কিউআৰ ক’ডটো স্কেন কৰিবলৈ দিয়ক</translation>
+<translation id="8100969750121413114">Chrome ব্যক্তিগতকৰণ কৰিবলৈ ছাইন ইন কৰক</translation>
 <translation id="8103578431304235997">ইনক’গনিট’ টেব</translation>
 <translation id="8105613260829665809">অব্যাহত ৰাখি, আপুনি <ph name="BEGIN_TOS_LINK" />সেৱাৰ চৰ্তাৱলী<ph name="END_TOS_LINK" />ত সন্মত হৈছে।\nএপ্‌টো উন্নত কৰাত সহায় কৰিবলৈ, Chromeএ Googleলৈ ব্যৱহাৰ আৰু ক্ৰেশ্ব সম্পৰ্কীয় ডেটা পঠিয়ায়। <ph name="BEGIN_UMA_LINK" />পৰিচালনা কৰক<ph name="END_UMA_LINK" /></translation>
 <translation id="8105893657415066307"><ph name="DESCRIPTION" /> <ph name="SEPARATOR" /> <ph name="FILE_SIZE" /></translation>
@@ -1322,6 +1335,7 @@
 <translation id="8485434340281759656"><ph name="FILE_SIZE" /> <ph name="SEPARATOR" /> <ph name="DESCRIPTION" /></translation>
 <translation id="8489271220582375723">ইতিহাস পৃষ্ঠাটো খোলক</translation>
 <translation id="8493948351860045254">ঠাই খালী কৰক</translation>
+<translation id="8497480609928300907">গোপনীয়তা সম্পৰ্কীয় নিৰ্দেশনাৰ ব্যাখ্যা</translation>
 <translation id="8497726226069778601">ইয়াত চাবলৈ এতিয়ালৈকে একো নাই…</translation>
 <translation id="8503559462189395349">Chromeৰ পাছৱৰ্ড</translation>
 <translation id="8503813439785031346">ব্যৱহাৰকাৰীৰ নাম</translation>
diff --git a/chrome/browser/ui/android/strings/translations/android_chrome_strings_ca.xtb b/chrome/browser/ui/android/strings/translations/android_chrome_strings_ca.xtb
index e3f0036..020f0540 100644
--- a/chrome/browser/ui/android/strings/translations/android_chrome_strings_ca.xtb
+++ b/chrome/browser/ui/android/strings/translations/android_chrome_strings_ca.xtb
@@ -419,7 +419,7 @@
 <translation id="3389286852084373014">El text és massa llarg</translation>
 <translation id="3391512812407811893">Proves de Privacy Sandbox</translation>
 <translation id="3398320232533725830">Obre el gestor d'adreces d'interès</translation>
-<translation id="3407392651057365886">Es carreguen prèviament més pàgines. És possible que les pàgines estiguin carregades prèviament mitjançant els servidors de Google quan altres llocs web ho sol·licitin.</translation>
+<translation id="3407392651057365886">Es precarreguen més pàgines. És possible que les pàgines estiguin precarregades mitjançant els servidors de Google quan altres llocs web ho sol·licitin.</translation>
 <translation id="3414952576877147120">Mida:</translation>
 <translation id="3421726884497337397">Tria quan vols bloquejar galetes de tercers</translation>
 <translation id="3428747202529429621">Et protegeix a Chrome i és possible que s'utilitzi per millorar la teva seguretat en altres aplicacions de Google quan tinguis la sessió iniciada</translation>
@@ -736,7 +736,7 @@
 <translation id="5317780077021120954">Desa</translation>
 <translation id="5319359161174645648">Google recomana Chrome</translation>
 <translation id="5324858694974489420">Configuració parental</translation>
-<translation id="5326921373682845375">Com que les pàgines carregades prèviament estan encriptades i el lloc que enllaça a les pàgines és un lloc web de Google, els servidors de Google no reben informació nova quan aquestes pàgines es carreguen prèviament de manera privada.</translation>
+<translation id="5326921373682845375">Com que les pàgines precarregades estan encriptades i el lloc que enllaça a les pàgines és un lloc web de Google, els servidors de Google no reben informació nova quan aquestes pàgines es precarreguen de manera privada.</translation>
 <translation id="5329858041417644019">El navegador no està gestionat</translation>
 <translation id="5342314432463739672">Sol·licituds de permís</translation>
 <translation id="5355191726083956201">Està activada la protecció millorada</translation>
@@ -1168,7 +1168,7 @@
 <translation id="7665369617277396874">Afegeix un compte</translation>
 <translation id="766587987807204883">Els articles es mostren aquí i els pots llegir fins i tot sense connexió</translation>
 <translation id="7682724950699840886">Segueix aquests consells: comprova que hi hagi prou espai al dispositiu i prova d'exportar les contrasenyes de nou.</translation>
-<translation id="768618399695552958">Algunes de les pàgines que visites estan carregades prèviament. És possible que les pàgines es carreguin prèviament a través dels servidors de Google quan s'enllacin des d'un lloc web de Google.</translation>
+<translation id="768618399695552958">Algunes de les pàgines que visites estan precarregades. És possible que les pàgines es precarreguin a través dels servidors de Google quan s'enllacin des d'un lloc web de Google.</translation>
 <translation id="7698359219371678927">Crea una adreça electrònica a <ph name="APP_NAME" /></translation>
 <translation id="7704317875155739195">Completa automàticament les cerques i els URL</translation>
 <translation id="7707922173985738739">Utilitza dades mòbils</translation>
@@ -1275,7 +1275,7 @@
 <translation id="8250920743982581267">Documents</translation>
 <translation id="825412236959742607">Com que aquesta pàgina fa servir massa memòria, Chrome n'ha suprimit contingut.</translation>
 <translation id="8255617931166444521">Els llocs web només poden fer servir les teves galetes per veure la teva activitat de navegació només en aquests mateixos llocs web</translation>
-<translation id="8259179246279078674">Com que les pàgines carregades prèviament estan encriptades, Google no obtindrà informació del contingut de la pàgina carregada prèviament. Els servidors de Google sabran quins llocs web es carreguen prèviament de manera privada. Aquesta informació només s'utilitza per carregar prèviament les pàgines i no es vincula amb cap altra informació del teu Compte de Google.</translation>
+<translation id="8259179246279078674">Com que les pàgines precarregades estan encriptades, Google no obtindrà informació del contingut de la pàgina precarregada. Els servidors de Google sabran quins llocs web es precarreguen de manera privada. Aquesta informació només s'utilitza per precarregar les pàgines i no es vincula amb cap altra informació del teu Compte de Google.</translation>
 <translation id="8260126382462817229">Prova d'iniciar la sessió de nou</translation>
 <translation id="8261506727792406068">Suprimeix</translation>
 <translation id="82619448491672958">Mostra les altres pestanyes</translation>
diff --git a/chrome/browser/ui/android/strings/translations/android_chrome_strings_cs.xtb b/chrome/browser/ui/android/strings/translations/android_chrome_strings_cs.xtb
index d318182..b4cf46b 100644
--- a/chrome/browser/ui/android/strings/translations/android_chrome_strings_cs.xtb
+++ b/chrome/browser/ui/android/strings/translations/android_chrome_strings_cs.xtb
@@ -102,6 +102,7 @@
 <translation id="1544826120773021464">Chcete-li spravovat svůj účet Google, klepněte na tlačítko Spravovat účet</translation>
 <translation id="1549000191223877751">Přejít do jiného okna</translation>
 <translation id="1553358976309200471">Aktualizovat Chrome</translation>
+<translation id="1554532453982918912">Pomozte s vylepšováním Chromu pro lidi, kteří jej používají stejně jako vy</translation>
 <translation id="1558391695376153246">Zavřít anonymní karty</translation>
 <translation id="1571304935088121812">Kopírovat uživatelské jméno</translation>
 <translation id="1592864538817356322">Standardní ochrana:</translation>
@@ -248,6 +249,7 @@
 <translation id="2453860139492968684">Dokončit</translation>
 <translation id="2459390580524506445">Rozšířené hlasové vyhledávání</translation>
 <translation id="2461822463642141190">Aktuální</translation>
+<translation id="2472163211318554013">Pokud z Chromu chcete získat maximum, přihlaste se</translation>
 <translation id="247737702124049222">Popisy obrázků jsou zapnuté</translation>
 <translation id="2482878487686419369">Oznámení</translation>
 <translation id="2485422356828889247">Odinstalovat</translation>
@@ -283,6 +285,7 @@
 <translation id="2645657967708199252">Vaše připojení <ph name="CONNECTION_TYPE" /> může zpomalovat stahování</translation>
 <translation id="2647434099613338025">Přidat jazyk</translation>
 <translation id="2649068648233607930">Prohlížeč je spravován doménou <ph name="DOMAIN" /></translation>
+<translation id="2650348088770008516">Zavřené vysvětlení průvodce ochranou soukromí</translation>
 <translation id="2650751991977523696">Stáhnout soubor znovu?</translation>
 <translation id="2651091186440431324">{FILE_COUNT,plural, =1{# zvukový soubor}few{# zvukové soubory}many{# zvukového souboru}other{# zvukových souborů}}</translation>
 <translation id="265156376773362237">Standardní předběžné načítání</translation>
@@ -313,6 +316,7 @@
 <translation id="2818669890320396765">Chcete-li mít záložky ve všech zařízeních, přihlaste se a zapněte synchronizaci</translation>
 <translation id="2827278682606527653">Napůl otevřená nabídka karty informačního kanálu</translation>
 <translation id="2830783625999891985">Obsah schránky je skryt</translation>
+<translation id="2838367486340230368">Vysvětlení průvodce ochranou soukromí otevřené na polovinu výšky</translation>
 <translation id="2839327205551510876">Přestali jste sledovat web <ph name="SITE_NAME" /></translation>
 <translation id="2840810876587895427">{TAB_COUNT,plural, =1{Zavře se <ph name="TAB_COUNT_ONE" /> anonymní karta}few{Zavřou se <ph name="TAB_COUNT_MANY" /> anonymní karty}many{Zavře se <ph name="TAB_COUNT_MANY" /> anonymní karty}other{Zavře se <ph name="TAB_COUNT_MANY" /> anonymních karet}}</translation>
 <translation id="2841216154655874070">{NUM_DAYS,plural, =1{Zkontrolováno před 1 dnem}few{Zkontrolováno před # dny}many{Zkontrolováno před # dne}other{Zkontrolováno před # dny}}</translation>
@@ -351,6 +355,7 @@
 <translation id="2996291259634659425">Vytvoření heslové fráze</translation>
 <translation id="2996809686854298943">Je požadována adresa URL</translation>
 <translation id="2997081575621687554">Když web Google požádá o soukromé předběžné načtení odkazů na stránce, Chrome stránky zašifruje a předběžně načte prostřednictvím serverů Google bez souborů cookie. To před předběžně načítaným webem skryje vaši identitu.</translation>
+<translation id="3003733539450769656">Varuje vás před nebezpečnými událostmi dříve, než k nim dojde</translation>
 <translation id="3006881078666935414">Žádné údaje o využití</translation>
 <translation id="301080557829842765">Průvodce ochranou osobních údajů</translation>
 <translation id="3016635187733453316">Zkontrolujte, zda je toto zařízení připojeno k internetu</translation>
@@ -363,6 +368,7 @@
 <translation id="3037517125981011456">Zobrazuje výzvy k přihlášení do Chromu</translation>
 <translation id="3046945242843292318">Příště tento web můžete mít při ruce</translation>
 <translation id="3055259925215945098">Záložka byla přesunuta</translation>
+<translation id="3055841435094910999">Informace o vašem používání Chromu se odesílají do Googlu, ale nejsou spojeny s vámi.\n\nPokud Chrome spadne, podrobnosti o selhání mohou zahrnovat některé osobní údaje.\n\nPokud zapnete synchronizaci, mohou metriky zahrnovat také informace o navštívených adresách URL.</translation>
 <translation id="3060635849835183725">{BOOKMARKS_COUNT,plural, =1{<ph name="BOOKMARKS_COUNT_ONE" /> záložka}few{<ph name="BOOKMARKS_COUNT_MANY" /> záložky}many{<ph name="BOOKMARKS_COUNT_MANY" /> záložky}other{<ph name="BOOKMARKS_COUNT_MANY" /> záložek}}</translation>
 <translation id="3062802207422175757">Články o vašich zájmech v Chromu</translation>
 <translation id="3066573403916685335">Posunout dolů</translation>
@@ -696,6 +702,7 @@
 <translation id="5091199029769593641">Brzy se vám po otevření nové karty začnou zobrazovat články z webu <ph name="SITE_NAME" />. Weby, které sledujete, se ukládají do vašeho účtu Google. Můžete je spravovat v nastavení funkce Objevit.</translation>
 <translation id="5091249083535528968">Rozšířené údaje o využití</translation>
 <translation id="509429900233858213">Došlo k chybě.</translation>
+<translation id="5102401324271069229">Pokud se web pokusí odcizit vám heslo nebo když stáhnete škodlivý soubor, může Chrome Bezpečnému prohlížení odeslat adresy URL, včetně částí obsahu stránky</translation>
 <translation id="510275257476243843">Zbývá: 1 h</translation>
 <translation id="5115811374190515607">do: <ph name="PRODUCT_NAME" /></translation>
 <translation id="5118713593561876160">Zájmy</translation>
@@ -992,6 +999,7 @@
 <translation id="6659594942844771486">Karta</translation>
 <translation id="666731172850799929">Otevřít v aplikaci <ph name="APP_NAME" /></translation>
 <translation id="6671495933530132209">Zkopírovat obrázek</translation>
+<translation id="6674044799624355221">Odesílá malý vzorek stránek, stažených souborů, rozšíření, aktivity a informací o systému a pomáhá tak odhalovat nové hrozby</translation>
 <translation id="6674571176963658787">Pokud chcete spustit synchronizaci, zadejte heslovou frázi</translation>
 <translation id="6676840375528380067">Vymazat z tohoto zařízení data prohlížeče Chrome?</translation>
 <translation id="6684809838922667136">Vylepšujeme Chrome</translation>
@@ -1067,6 +1075,7 @@
 <translation id="7085332316435785646">Zvolte, zda pro lépe personalizované prostředí ve službách Google chcete zahrnout historii Chromu</translation>
 <translation id="7088681679121566888">Chrome je aktuální</translation>
 <translation id="7093803425429738190">Přidat náladu</translation>
+<translation id="7105047059074518658">Přihlaste se, abyste internet mohli snáze procházet na různých zařízeních</translation>
 <translation id="7106762743910369165">Váš prohlížeč je spravován vaší organizací</translation>
 <translation id="7121362699166175603">Vymaže historii a automatická dokončení v adresním řádku. Na stránce <ph name="BEGIN_LINK" />myactivity.google.com<ph name="END_LINK" /> mohou být k dispozici další druhy historie prohlížení zaznamenané ve vašem účtu Google.</translation>
 <translation id="7138678301420049075">Ostatní</translation>
@@ -1082,6 +1091,7 @@
 <translation id="7187993566681480880">Zajišťuje vám bezpečí v Chromu a může zvýšit vaši bezpečnost v jiných aplikacích Google, když jste přihlášeni.</translation>
 <translation id="718926126787620637">Seznam složek se záložkami otevřený na celou výšku</translation>
 <translation id="7191430249889272776">Karta je otevřena na pozadí.</translation>
+<translation id="7196215469483532480">Vysvětlení průvodce ochranou soukromí otevřené na plnou výšku</translation>
 <translation id="7227218174981371415">{FILE_COUNT,plural, =1{1 nevyřízené stahování}few{# nevyřízená stahování}many{# nevyřízeného stahování}other{# nevyřízených stahování}}</translation>
 <translation id="7242755609445462077">Stylizované zvýraznění <ph name="CURRENT_DATE" /></translation>
 <translation id="7248069434667874558">Zkontrolujte, zda je v Chromu na zařízení <ph name="TARGET_DEVICE_NAME" /> zapnutá synchronizace</translation>
@@ -1176,11 +1186,13 @@
 <translation id="7757787379047923882">Text sdílený ze zařízení <ph name="DEVICE_NAME" /></translation>
 <translation id="7761849928583394409">Vybrat datum a čas</translation>
 <translation id="7762668264895820836">SD karta <ph name="SD_CARD_NUMBER" /></translation>
+<translation id="7762928140712606393">Po přihlášení získáte další funkce a nejsilnější zabezpečení Chromu</translation>
 <translation id="7764225426217299476">Přidat adresu</translation>
 <translation id="7772032839648071052">Potvrďte heslovou frázi</translation>
 <translation id="7772375229873196092">Zavřít aplikaci <ph name="APP_NAME" /></translation>
 <translation id="7774809984919390718">{PAYMENT_METHOD,plural, =1{<ph name="PAYMENT_METHOD_PREVIEW" /> a <ph name="NUMBER_OF_ADDITIONAL_PAYMENT_METHODS" /> další}few{<ph name="PAYMENT_METHOD_PREVIEW" /> a <ph name="NUMBER_OF_ADDITIONAL_PAYMENT_METHODS" /> další}many{<ph name="PAYMENT_METHOD_PREVIEW" /> a <ph name="NUMBER_OF_ADDITIONAL_PAYMENT_METHODS" /> další}other{<ph name="PAYMENT_METHOD_PREVIEW" /> a <ph name="NUMBER_OF_ADDITIONAL_PAYMENT_METHODS" /> dalších}}</translation>
 <translation id="7778840695157240389">Brzy tu najdete nové příběhy</translation>
+<translation id="7780645209293383778">Když jste přihlášeni k účtu Google, jsou s ním tato data dočasně spojena, abychom vás mohli v aplikacích Google chránit</translation>
 <translation id="7786595606756654269">Asistent Google nabízí lepší hlasové prostředí k vyhledávání na webu a interakci s otevřenými weby. Asistent Google obdrží adresu URL a obsah webů, které s ním použijete.</translation>
 <translation id="7791543448312431591">Přidat</translation>
 <translation id="7798392620021911922">Obnovené karty: <ph name="TAB_COUNT" /></translation>
@@ -1249,6 +1261,7 @@
 <translation id="8084285576995584326">Spravovat data v účtu Google</translation>
 <translation id="808747664143081553">Připojeno k zařízení</translation>
 <translation id="8088176524274673045">Pokud chcete obsah sdílet s lidmi z okolí, nechte je naskenovat tento QR kód</translation>
+<translation id="8100969750121413114">Přihlaste se a přizpůsobte si Chrome</translation>
 <translation id="8103578431304235997">Anonymní karta</translation>
 <translation id="8105613260829665809">Pokračováním vyjadřujete souhlas se <ph name="BEGIN_TOS_LINK" />smluvními podmínkami<ph name="END_TOS_LINK" />.\nZa účelem vylepšování aplikace odesílá Chrome do Googlu údaje o využití a selháních. <ph name="BEGIN_UMA_LINK" />Spravovat<ph name="END_UMA_LINK" /></translation>
 <translation id="8105893657415066307"><ph name="DESCRIPTION" /> <ph name="SEPARATOR" /> <ph name="FILE_SIZE" /></translation>
@@ -1322,6 +1335,7 @@
 <translation id="8485434340281759656"><ph name="FILE_SIZE" /> <ph name="SEPARATOR" /> <ph name="DESCRIPTION" /></translation>
 <translation id="8489271220582375723">Otevřít stránku historie</translation>
 <translation id="8493948351860045254">Uvolnit místo</translation>
+<translation id="8497480609928300907">Vysvětlení průvodce ochranou soukromí</translation>
 <translation id="8497726226069778601">Zatím tu nic není...</translation>
 <translation id="8503559462189395349">Hesla Chrome</translation>
 <translation id="8503813439785031346">Uživatelské jméno</translation>
diff --git a/chrome/browser/ui/android/strings/translations/android_chrome_strings_da.xtb b/chrome/browser/ui/android/strings/translations/android_chrome_strings_da.xtb
index 9c2acc5..e78527780 100644
--- a/chrome/browser/ui/android/strings/translations/android_chrome_strings_da.xtb
+++ b/chrome/browser/ui/android/strings/translations/android_chrome_strings_da.xtb
@@ -102,6 +102,7 @@
 <translation id="1544826120773021464">Tryk på knappen "Administrer konto" for at administrere din Google-konto</translation>
 <translation id="1549000191223877751">Flyt til et andet vindue</translation>
 <translation id="1553358976309200471">Opdater Chrome</translation>
+<translation id="1554532453982918912">Vær med til at gøre Chrome bedre for andre, der bruger Chrome på samme måde som dig</translation>
 <translation id="1558391695376153246">Luk inkognitofaner</translation>
 <translation id="1571304935088121812">Kopiér brugernavnet</translation>
 <translation id="1592864538817356322">Standardbeskyttelse:</translation>
@@ -248,6 +249,7 @@
 <translation id="2453860139492968684">Udfør</translation>
 <translation id="2459390580524506445">Forbedret stemmesøgning</translation>
 <translation id="2461822463642141190">Aktuel</translation>
+<translation id="2472163211318554013">Log ind for at få mest muligt ud af Chrome</translation>
 <translation id="247737702124049222">Billedbeskrivelser er slået til</translation>
 <translation id="2482878487686419369">Notifikationer</translation>
 <translation id="2485422356828889247">Afinstaller</translation>
@@ -283,6 +285,7 @@
 <translation id="2645657967708199252">Din <ph name="CONNECTION_TYPE" />-forbindelse kan gøre downloadprocessen langsommere</translation>
 <translation id="2647434099613338025">Tilføj sprog</translation>
 <translation id="2649068648233607930">Din browser administreres af <ph name="DOMAIN" /></translation>
+<translation id="2650348088770008516">Beskrivelsen af guiden til privatlivsindstillinger er lukket</translation>
 <translation id="2650751991977523696">Vil du downloade filen igen?</translation>
 <translation id="2651091186440431324">{FILE_COUNT,plural, =1{# lydfil}one{# lydfil}other{# lydfiler}}</translation>
 <translation id="265156376773362237">Standardforudindlæsning</translation>
@@ -313,6 +316,7 @@
 <translation id="2818669890320396765">Log ind, og aktivér synkronisering for at få vist dine bogmærker på alle dine enheder</translation>
 <translation id="2827278682606527653">Feedkortmenu i halv højde</translation>
 <translation id="2830783625999891985">Indholdet i udklipsholderen er skjult</translation>
+<translation id="2838367486340230368">Beskrivelsen af guiden til privatlivsindstillinger er åbnet i halv højde</translation>
 <translation id="2839327205551510876">Følger ikke længere <ph name="SITE_NAME" /></translation>
 <translation id="2840810876587895427">{TAB_COUNT,plural, =1{<ph name="TAB_COUNT_ONE" /> inkognitofane lukkes}one{<ph name="TAB_COUNT_MANY" /> inkognitofane lukkes}other{<ph name="TAB_COUNT_MANY" /> inkognitofaner lukkes}}</translation>
 <translation id="2841216154655874070">{NUM_DAYS,plural, =1{Tjekket for 1 dag siden}one{Tjekket for # dag siden}other{Tjekket for # dage siden}}</translation>
@@ -351,8 +355,9 @@
 <translation id="2996291259634659425">Opret adgangssætning</translation>
 <translation id="2996809686854298943">En webadresse er påkrævet</translation>
 <translation id="2997081575621687554">Når et Google-website anmoder om at forudindlæse links privat på det pågældende website, krypterer og forudindlæser Chrome sider via Googles servere uden cookies. På denne måde skjules din identitet fra det forudindlæste website.</translation>
+<translation id="3003733539450769656">Advarer dig om skadelige hændelser, før de opstår</translation>
 <translation id="3006881078666935414">Ingen brugsdata</translation>
-<translation id="301080557829842765">Guide til privatliv</translation>
+<translation id="301080557829842765">Guide til privatlivsindstillinger</translation>
 <translation id="3016635187733453316">Sørg for, at din enhed har forbindelse til internettet</translation>
 <translation id="3026955690410463085">Medtag link</translation>
 <translation id="3029276696788198026">Ingen forudindlæsning</translation>
@@ -363,6 +368,7 @@
 <translation id="3037517125981011456">Viser anmodninger om at logge ind i Chrome</translation>
 <translation id="3046945242843292318">Nå hurtigere frem til dette website næste gang</translation>
 <translation id="3055259925215945098">Bogmærket blev flyttet</translation>
+<translation id="3055841435094910999">Der sendes oplysninger om din brug af Chrome til Google, men oplysningerne kan ikke knyttes til dig\n\nHvis Chrome går ned, omfatter dataene om nedbruddet muligvis nogle personlige oplysninger\n\nHvis du aktiverer synkronisering, omfatter metrics muligvis også oplysninger om, de webadresser, du navigerer til</translation>
 <translation id="3060635849835183725">{BOOKMARKS_COUNT,plural, =1{<ph name="BOOKMARKS_COUNT_ONE" /> bogmærke}one{<ph name="BOOKMARKS_COUNT_MANY" /> bogmærke}other{<ph name="BOOKMARKS_COUNT_MANY" /> bogmærker}}</translation>
 <translation id="3062802207422175757">Artikler om dine interesser i Chrome</translation>
 <translation id="3066573403916685335">Flyt ned</translation>
@@ -696,6 +702,7 @@
 <translation id="5091199029769593641">Du får snart vist historier fra <ph name="SITE_NAME" />, når du åbner en ny fane. De websites, du følger, gemmes på din Google-konto. Du kan administrere dem i indstillingerne for Discover.</translation>
 <translation id="5091249083535528968">Udvidede brugsdata</translation>
 <translation id="509429900233858213">Der opstod en fejl.</translation>
+<translation id="5102401324271069229">Hvis et website forsøger at stjæle din adgangskode, eller hvis du downloader en skadelig fil, sender Chrome muligvis også webadresser, bl.a. mindre mængder sideindhold, til Beskyttet browsing</translation>
 <translation id="510275257476243843">1 time tilbage</translation>
 <translation id="5115811374190515607">til <ph name="PRODUCT_NAME" /></translation>
 <translation id="5118713593561876160">Interesser</translation>
@@ -992,6 +999,7 @@
 <translation id="6659594942844771486">Fane</translation>
 <translation id="666731172850799929">Åbn i <ph name="APP_NAME" /></translation>
 <translation id="6671495933530132209">Kopiér billede</translation>
+<translation id="6674044799624355221">Der sendes et mindre antal sider, downloads, udvidelsesaktivitet og systemoplysninger for at identificere nye trusler</translation>
 <translation id="6674571176963658787">Angiv din adgangssætning for at starte synkroniseringen</translation>
 <translation id="6676840375528380067">Vil du rydde dine Chrome-data på denne enhed?</translation>
 <translation id="6684809838922667136">Gør Chrome bedre</translation>
@@ -1067,6 +1075,7 @@
 <translation id="7085332316435785646">Vælg, om du vil inkludere Chrome-historikken for at få mere tilpassede oplevelser i Googles tjenester</translation>
 <translation id="7088681679121566888">Chrome er opdateret</translation>
 <translation id="7093803425429738190">Tilføj humørikon</translation>
+<translation id="7105047059074518658">Log ind for nemmere at søge på flere enheder</translation>
 <translation id="7106762743910369165">Din browser administreres af din organisation</translation>
 <translation id="7121362699166175603">Rydder historikken og autofuldførelser i adresselinjen. Din Google-konto kan have andre former for browserhistorik på <ph name="BEGIN_LINK" />myactivity.google.com<ph name="END_LINK" />.</translation>
 <translation id="7138678301420049075">Andet</translation>
@@ -1082,6 +1091,7 @@
 <translation id="7187993566681480880">Beskytter dig i Chrome og kan bruges til at forbedre din sikkerhed i andre Google-apps, når du er logget ind.</translation>
 <translation id="718926126787620637">Listen over bogmærkemapper er åbnet i fuld højde</translation>
 <translation id="7191430249889272776">Fanen blev åbnet i baggrunden.</translation>
+<translation id="7196215469483532480">Beskrivelsen af guiden til privatlivsindstillinger er åbnet i fuld højde</translation>
 <translation id="7227218174981371415">{FILE_COUNT,plural, =1{1 download afventer}one{# download afventer}other{# downloads afventer}}</translation>
 <translation id="7242755609445462077">Stiliseret note <ph name="CURRENT_DATE" /></translation>
 <translation id="7248069434667874558">Sørg for, at synkronisering er aktiveret i Chrome på <ph name="TARGET_DEVICE_NAME" /></translation>
@@ -1176,11 +1186,13 @@
 <translation id="7757787379047923882">Tekst, der deles fra <ph name="DEVICE_NAME" /></translation>
 <translation id="7761849928583394409">Vælg dato og tidspunkt</translation>
 <translation id="7762668264895820836">SD-kort <ph name="SD_CARD_NUMBER" /></translation>
+<translation id="7762928140712606393">Log ind for at få yderligere funktioner og Chromes stærkeste beskyttelse</translation>
 <translation id="7764225426217299476">Tilføj adresse</translation>
 <translation id="7772032839648071052">Bekræft adgangssætning</translation>
 <translation id="7772375229873196092">Luk <ph name="APP_NAME" /></translation>
 <translation id="7774809984919390718">{PAYMENT_METHOD,plural, =1{<ph name="PAYMENT_METHOD_PREVIEW" />\u2026 og <ph name="NUMBER_OF_ADDITIONAL_PAYMENT_METHODS" /> mere}one{<ph name="PAYMENT_METHOD_PREVIEW" />\u2026 og <ph name="NUMBER_OF_ADDITIONAL_PAYMENT_METHODS" /> mere}other{<ph name="PAYMENT_METHOD_PREVIEW" />\u2026 og <ph name="NUMBER_OF_ADDITIONAL_PAYMENT_METHODS" /> mere}}</translation>
 <translation id="7778840695157240389">Vend tilbage senere for at se nye historier</translation>
+<translation id="7780645209293383778">Disse data knyttes midlertidigt til din Google-konto, når du er logget ind, for at beskytte dig i Google-apps</translation>
 <translation id="7786595606756654269">Google Assistent giver en bedre brugeroplevelse med stemmestyring ved søgning på nettet og interaktion med åbne websites. Google Assistent modtager webadressen og indholdet på de websites, hvor du bruger Assistent.</translation>
 <translation id="7791543448312431591">Tilføj</translation>
 <translation id="7798392620021911922"><ph name="TAB_COUNT" /> faner blev gendannet</translation>
@@ -1249,6 +1261,7 @@
 <translation id="8084285576995584326">Administrer dine Google-kontodata</translation>
 <translation id="808747664143081553">Der er oprettet forbindelse til enheden</translation>
 <translation id="8088176524274673045">Du kan dele med brugere i nærheden ved at få dem til at scanne denne QR-kode</translation>
+<translation id="8100969750121413114">Log ind for at tilpasse Chrome</translation>
 <translation id="8103578431304235997">Inkognitofane</translation>
 <translation id="8105613260829665809">Ved at fortsætte accepterer du <ph name="BEGIN_TOS_LINK" />servicevilkårene<ph name="END_TOS_LINK" />.\nChrome sender data om brug og nedbrud til Google for at hjælpe med at forbedre appen. <ph name="BEGIN_UMA_LINK" />Administrer<ph name="END_UMA_LINK" /></translation>
 <translation id="8105893657415066307"><ph name="DESCRIPTION" /> <ph name="SEPARATOR" /> <ph name="FILE_SIZE" /></translation>
@@ -1322,6 +1335,7 @@
 <translation id="8485434340281759656"><ph name="FILE_SIZE" /> <ph name="SEPARATOR" /> <ph name="DESCRIPTION" /></translation>
 <translation id="8489271220582375723">Åbn siden med historik</translation>
 <translation id="8493948351860045254">Frigør plads</translation>
+<translation id="8497480609928300907">Beskrivelse af guiden til privatlivsindstillinger</translation>
 <translation id="8497726226069778601">Her er ikke noget at se… endnu</translation>
 <translation id="8503559462189395349">Chrome-adgangskoder</translation>
 <translation id="8503813439785031346">Brugernavn</translation>
diff --git a/chrome/browser/ui/android/strings/translations/android_chrome_strings_id.xtb b/chrome/browser/ui/android/strings/translations/android_chrome_strings_id.xtb
index 7f3057f..cdae554f 100644
--- a/chrome/browser/ui/android/strings/translations/android_chrome_strings_id.xtb
+++ b/chrome/browser/ui/android/strings/translations/android_chrome_strings_id.xtb
@@ -102,6 +102,7 @@
 <translation id="1544826120773021464">Untuk mengelola akun Google Anda, ketuk tombol "Kelola akun"</translation>
 <translation id="1549000191223877751">Beralih ke jendela lain</translation>
 <translation id="1553358976309200471">Perbarui browser Chrome</translation>
+<translation id="1554532453982918912">Bantu Chrome menjadi lebih baik bagi pengguna lain seperti Anda</translation>
 <translation id="1558391695376153246">Tutup tab Samaran</translation>
 <translation id="1571304935088121812">Salin nama pengguna</translation>
 <translation id="1592864538817356322">Perlindungan standar:</translation>
@@ -248,6 +249,7 @@
 <translation id="2453860139492968684">Selesai</translation>
 <translation id="2459390580524506445">Penelusuran suara yang disempurnakan</translation>
 <translation id="2461822463642141190">Arus</translation>
+<translation id="2472163211318554013">Login untuk mengoptimalkan penggunaan Chrome</translation>
 <translation id="247737702124049222">Deskripsi gambar aktif</translation>
 <translation id="2482878487686419369">Notifikasi</translation>
 <translation id="2485422356828889247">Uninstal</translation>
@@ -283,6 +285,7 @@
 <translation id="2645657967708199252">Koneksi <ph name="CONNECTION_TYPE" /> dapat memperlambat download</translation>
 <translation id="2647434099613338025">Tambah bahasa</translation>
 <translation id="2649068648233607930">Browser Anda dikelola oleh <ph name="DOMAIN" /></translation>
+<translation id="2650348088770008516">Penjelasan panduan privasi ditutup</translation>
 <translation id="2650751991977523696">Download file lagi?</translation>
 <translation id="2651091186440431324">{FILE_COUNT,plural, =1{# File audio}other{# File audio}}</translation>
 <translation id="265156376773362237">Pramuat standar</translation>
@@ -313,6 +316,7 @@
 <translation id="2818669890320396765">Untuk dapat mengakses bookmark Anda di semua perangkat, login dan aktifkan sinkronisasi</translation>
 <translation id="2827278682606527653">Feed card menu half height</translation>
 <translation id="2830783625999891985">Konten papan klip disembunyikan</translation>
+<translation id="2838367486340230368">Penjelasan panduan privasi terbuka setengah</translation>
 <translation id="2839327205551510876">Berhenti mengikuti <ph name="SITE_NAME" /></translation>
 <translation id="2840810876587895427">{TAB_COUNT,plural, =1{<ph name="TAB_COUNT_ONE" /> tab samaran akan ditutup}other{<ph name="TAB_COUNT_MANY" /> tab samaran akan ditutup}}</translation>
 <translation id="2841216154655874070">{NUM_DAYS,plural, =1{Diperiksa 1 hari yang lalu}other{Diperiksa # hari yang lalu}}</translation>
@@ -351,6 +355,7 @@
 <translation id="2996291259634659425">Buat frasa sandi</translation>
 <translation id="2996809686854298943">Perlu URL</translation>
 <translation id="2997081575621687554">Saat sebuah situs Google meminta untuk melakukan pramuat link yang ada di halamannya secara pribadi, Chrome akan mengenkripsi dan melakukan pramuat halaman melalui server Google tanpa cookie. Hal ini akan menyembunyikan identitas Anda dari situs yang dipramuat.</translation>
+<translation id="3003733539450769656">Memberikan peringatan terkait peristiwa berbahaya sebelum terjadi</translation>
 <translation id="3006881078666935414">Tidak ada data penggunaan</translation>
 <translation id="301080557829842765">Panduan privasi</translation>
 <translation id="3016635187733453316">Pastikan perangkat ini terhubung ke internet</translation>
@@ -363,6 +368,7 @@
 <translation id="3037517125981011456">Menampilkan perintah untuk login ke Chrome</translation>
 <translation id="3046945242843292318">Buka situs ini lebih cepat pada waktu berikutnya</translation>
 <translation id="3055259925215945098">Bookmark dipindahkan</translation>
+<translation id="3055841435094910999">Info tentang penggunaan Chrome akan dikirim ke Google, tetapi tidak dikaitkan dengan Anda\n\nJika Chrome mengalami error, detail tentang error tersebut dapat menyertakan beberapa info pribadi\n\nJika Anda mengaktifkan sinkronisasi, metrik juga dapat menyertakan info tentang URL yang Anda buka</translation>
 <translation id="3060635849835183725">{BOOKMARKS_COUNT,plural, =1{<ph name="BOOKMARKS_COUNT_ONE" /> bookmark}other{<ph name="BOOKMARKS_COUNT_MANY" /> bookmark}}</translation>
 <translation id="3062802207422175757">Artikel di Chrome terkait minat Anda</translation>
 <translation id="3066573403916685335">Turunkan</translation>
@@ -696,6 +702,7 @@
 <translation id="5091199029769593641">Sebentar lagi, Anda akan melihat cerita dari <ph name="SITE_NAME" /> saat membuka tab baru. Situs yang Anda ikuti akan disimpan di Akun Google Anda. Anda dapat mengelolanya di setelan Discover.</translation>
 <translation id="5091249083535528968">Data penggunaan yang diperluas</translation>
 <translation id="509429900233858213">Terjadi kesalahan.</translation>
+<translation id="5102401324271069229">Jika situs berusaha mencuri sandi Anda, atau jika Anda mendownload file berbahaya, Chrome dapat mengirimkan URL, termasuk bit konten halaman, ke Safe Browsing</translation>
 <translation id="510275257476243843">1 jam lagi</translation>
 <translation id="5115811374190515607">ke <ph name="PRODUCT_NAME" /></translation>
 <translation id="5118713593561876160">Minat</translation>
@@ -992,6 +999,7 @@
 <translation id="6659594942844771486">Tab</translation>
 <translation id="666731172850799929">Buka di <ph name="APP_NAME" /></translation>
 <translation id="6671495933530132209">Salin gambar</translation>
+<translation id="6674044799624355221">Mengirimkan sedikit sampel halaman, download, aktivitas ekstensi, dan informasi sistem untuk membantu menemukan ancaman baru</translation>
 <translation id="6674571176963658787">Untuk memulai sinkronisasi, masukkan frasa sandi</translation>
 <translation id="6676840375528380067">Hapus data Chrome Anda dari perangkat ini?</translation>
 <translation id="6684809838922667136">Buat Chrome menjadi lebih baik</translation>
@@ -1067,6 +1075,7 @@
 <translation id="7085332316435785646">Pilih apakah akan menyertakan histori Chrome untuk mendapatkan pengalaman yang lebih dipersonalisasi di layanan Google</translation>
 <translation id="7088681679121566888">Chrome sudah versi terbaru</translation>
 <translation id="7093803425429738190">Tambahkan emotikon</translation>
+<translation id="7105047059074518658">Login agar lebih mudah menjelajah di berbagai perangkat</translation>
 <translation id="7106762743910369165">Browser dikelola oleh organisasi Anda</translation>
 <translation id="7121362699166175603">Menghapus histori dan pelengkapan otomatis di kolom URL. Akun Google Anda mungkin memiliki bentuk histori penjelajahan lainnya di <ph name="BEGIN_LINK" />myactivity.google.com<ph name="END_LINK" />.</translation>
 <translation id="7138678301420049075">Lainnya</translation>
@@ -1082,6 +1091,7 @@
 <translation id="7187993566681480880">Memastikan Anda tetap aman di Chrome dan dapat digunakan untuk menyempurnakan keamanan Anda di aplikasi Google lainnya saat login.</translation>
 <translation id="718926126787620637">Daftar folder bookmark terbuka sepenuhnya</translation>
 <translation id="7191430249889272776">Tab dibuka di latar belakang.</translation>
+<translation id="7196215469483532480">Penjelasan panduan privasi terbuka sepenuhnya</translation>
 <translation id="7227218174981371415">{FILE_COUNT,plural, =1{1 download tertunda}other{# download tertunda}}</translation>
 <translation id="7242755609445462077">Sorotan bergaya <ph name="CURRENT_DATE" /></translation>
 <translation id="7248069434667874558">Pastikan <ph name="TARGET_DEVICE_NAME" /> telah mengaktifkan sinkronisasi di Chrome</translation>
@@ -1176,11 +1186,13 @@
 <translation id="7757787379047923882">Teks dibagikan dari <ph name="DEVICE_NAME" /></translation>
 <translation id="7761849928583394409">Pilih tanggal &amp; waktu</translation>
 <translation id="7762668264895820836">Kartu SD <ph name="SD_CARD_NUMBER" /></translation>
+<translation id="7762928140712606393">Login untuk mendapatkan fitur tambahan dan keamanan terkuat Chrome</translation>
 <translation id="7764225426217299476">Tambahkan alamat</translation>
 <translation id="7772032839648071052">Konfirmasi frasa sandi</translation>
 <translation id="7772375229873196092">Tutup <ph name="APP_NAME" /></translation>
 <translation id="7774809984919390718">{PAYMENT_METHOD,plural, =1{<ph name="PAYMENT_METHOD_PREVIEW" />\u2026 dan <ph name="NUMBER_OF_ADDITIONAL_PAYMENT_METHODS" /> lainnya}other{<ph name="PAYMENT_METHOD_PREVIEW" />\u2026 dan <ph name="NUMBER_OF_ADDITIONAL_PAYMENT_METHODS" /> lainnya}}</translation>
 <translation id="7778840695157240389">Periksa kembali nanti untuk membaca artikel baru</translation>
+<translation id="7780645209293383778">Menautkan sementara data ini ke Akun Google Anda saat login, untuk melindungi Anda di berbagai aplikasi Google</translation>
 <translation id="7786595606756654269">Asisten Google memberikan pengalaman suara yang lebih baik untuk menelusuri web dan berinteraksi dengan situs yang Anda buka. Asisten Google akan menerima URL dan konten situs yang Anda gunakan dengannya.</translation>
 <translation id="7791543448312431591">Tambahkan</translation>
 <translation id="7798392620021911922">Memulihkan <ph name="TAB_COUNT" /> tab</translation>
@@ -1249,6 +1261,7 @@
 <translation id="8084285576995584326">Mengontrol data Akun Google Anda</translation>
 <translation id="808747664143081553">Terhubung ke perangkat</translation>
 <translation id="8088176524274673045">Untuk berbagi dengan orang-orang di sekitar, izinkan mereka memindai Kode QR ini</translation>
+<translation id="8100969750121413114">Login untuk mempersonalisasi Chrome Anda</translation>
 <translation id="8103578431304235997">Tab Samaran</translation>
 <translation id="8105613260829665809">Dengan melanjutkan, Anda menyetujui <ph name="BEGIN_TOS_LINK" />Persyaratan Layanan<ph name="END_TOS_LINK" />.\nUntuk membantu meningkatkan kualitas aplikasi, Chrome akan mengirimkan data penggunaan dan error ke Google. <ph name="BEGIN_UMA_LINK" />Kelola<ph name="END_UMA_LINK" /></translation>
 <translation id="8105893657415066307"><ph name="DESCRIPTION" /> <ph name="SEPARATOR" /> <ph name="FILE_SIZE" /></translation>
@@ -1322,6 +1335,7 @@
 <translation id="8485434340281759656"><ph name="FILE_SIZE" /> <ph name="SEPARATOR" /> <ph name="DESCRIPTION" /></translation>
 <translation id="8489271220582375723">Membuka halaman histori</translation>
 <translation id="8493948351860045254">Kosongkan ruang</translation>
+<translation id="8497480609928300907">Penjelasan panduan privasi</translation>
 <translation id="8497726226069778601">Belum ada yang dapat dilihat di sini…</translation>
 <translation id="8503559462189395349">Sandi Chrome</translation>
 <translation id="8503813439785031346">Nama Pengguna</translation>
diff --git a/chrome/browser/ui/android/strings/translations/android_chrome_strings_it.xtb b/chrome/browser/ui/android/strings/translations/android_chrome_strings_it.xtb
index 0d22a3e..8936a92 100644
--- a/chrome/browser/ui/android/strings/translations/android_chrome_strings_it.xtb
+++ b/chrome/browser/ui/android/strings/translations/android_chrome_strings_it.xtb
@@ -102,6 +102,7 @@
 <translation id="1544826120773021464">Per gestire il tuo Account Google, tocca il pulsante "Gestisci account"</translation>
 <translation id="1549000191223877751">Passa a un'altra finestra</translation>
 <translation id="1553358976309200471">Aggiorna Chrome</translation>
+<translation id="1554532453982918912">Contribuisci a migliorare Chrome per le persone che lo usano come fai tu</translation>
 <translation id="1558391695376153246">Chiudi schede in incognito</translation>
 <translation id="1571304935088121812">Copia nome utente</translation>
 <translation id="1592864538817356322">Protezione standard:</translation>
@@ -248,6 +249,7 @@
 <translation id="2453860139492968684">Termina</translation>
 <translation id="2459390580524506445">Ricerca vocale migliorata</translation>
 <translation id="2461822463642141190">Attuale</translation>
+<translation id="2472163211318554013">Accedi per usare al meglio Chrome</translation>
 <translation id="247737702124049222">Le descrizioni delle immagini sono attive</translation>
 <translation id="2482878487686419369">Notifiche</translation>
 <translation id="2485422356828889247">Disinstalla</translation>
@@ -283,6 +285,7 @@
 <translation id="2645657967708199252">La tua connessione <ph name="CONNECTION_TYPE" /> potrebbe rallentare il download</translation>
 <translation id="2647434099613338025">Aggiungi lingua</translation>
 <translation id="2649068648233607930">Il tuo browser è gestito da <ph name="DOMAIN" /></translation>
+<translation id="2650348088770008516">Spiegazione della Guida alla privacy chiusa</translation>
 <translation id="2650751991977523696">Scaricare nuovamente il file?</translation>
 <translation id="2651091186440431324">{FILE_COUNT,plural, =1{# file audio}one{# file audio}other{# file audio}}</translation>
 <translation id="265156376773362237">Precaricamento standard</translation>
@@ -313,6 +316,7 @@
 <translation id="2818669890320396765">Accedi e attiva la sincronizzazione per trovare i tuoi preferiti su tutti i dispositivi</translation>
 <translation id="2827278682606527653">Menu scheda feed aperto nella metà inferiore dello schermo</translation>
 <translation id="2830783625999891985">Contenuti degli Appunti nascosti</translation>
+<translation id="2838367486340230368">Spiegazione della Guida alla privacy aperta nella parte inferiore dello schermo</translation>
 <translation id="2839327205551510876">Non segui più <ph name="SITE_NAME" /></translation>
 <translation id="2840810876587895427">{TAB_COUNT,plural, =1{<ph name="TAB_COUNT_ONE" /> scheda di navigazione in incognito verrà chiusa}one{<ph name="TAB_COUNT_MANY" /> scheda di navigazione in incognito verrà chiusa}other{<ph name="TAB_COUNT_MANY" /> schede di navigazione in incognito verranno chiuse}}</translation>
 <translation id="2841216154655874070">{NUM_DAYS,plural, =1{Eseguito 1 giorno fa}one{Eseguito # giorni fa}other{Eseguito # giorni fa}}</translation>
@@ -351,6 +355,7 @@
 <translation id="2996291259634659425">Crea passphrase</translation>
 <translation id="2996809686854298943">URL obbligatorio</translation>
 <translation id="2997081575621687554">Quando un sito Google richiede di precaricare privatamente i link sulle sue pagine, Chrome cripta e precarica le pagine tramite i server di Google senza usare cookie. In questo modo la tua identità rimane nascosta ai siti precaricati.</translation>
+<translation id="3003733539450769656">Ti avvisa quando stanno per verificarsi eventi pericolosi</translation>
 <translation id="3006881078666935414">Nessun dato sull'utilizzo</translation>
 <translation id="301080557829842765">Guida alla privacy</translation>
 <translation id="3016635187733453316">Assicurati che questo dispositivo sia connesso a Internet</translation>
@@ -363,6 +368,7 @@
 <translation id="3037517125981011456">Vengono mostrate richieste di accesso a Chrome</translation>
 <translation id="3046945242843292318">Accedi più velocemente a questo sito la prossima volta</translation>
 <translation id="3055259925215945098">Preferito spostato</translation>
+<translation id="3055841435094910999">A Google vengono inviate informazioni sul tuo utilizzo di Chrome, ma non sono riconducibili a te\n\nSe Chrome si arresta in modo anomalo, i dettagli su questo evento potrebbero includere alcune delle tue informazioni personali\n\nSe attivi la sincronizzazione, le metriche potrebbero includere anche informazioni sugli URL che visiti</translation>
 <translation id="3060635849835183725">{BOOKMARKS_COUNT,plural, =1{<ph name="BOOKMARKS_COUNT_ONE" /> preferito}one{<ph name="BOOKMARKS_COUNT_MANY" /> preferiti}other{<ph name="BOOKMARKS_COUNT_MANY" /> preferiti}}</translation>
 <translation id="3062802207422175757">Articoli relativi ai tuoi interessi su Chrome</translation>
 <translation id="3066573403916685335">Sposta giù</translation>
@@ -696,6 +702,7 @@
 <translation id="5091199029769593641">A breve vedrai storie di <ph name="SITE_NAME" /> quando aprirai una nuova scheda. I siti che segui vengono salvati nel tuo Account Google. Puoi gestirli nelle impostazioni di Discover.</translation>
 <translation id="5091249083535528968">Dati completi sull'utilizzo</translation>
 <translation id="509429900233858213">Si è verificato un errore.</translation>
+<translation id="5102401324271069229">Se un sito cerca di rubare la tua password o se scarichi un file dannoso, Chrome potrebbe inviare gli URL, inclusi frammenti dei contenuti delle pagine, a Navigazione sicura</translation>
 <translation id="510275257476243843">1 ora rimanente</translation>
 <translation id="5115811374190515607">in <ph name="PRODUCT_NAME" /></translation>
 <translation id="5118713593561876160">Interessi</translation>
@@ -992,6 +999,7 @@
 <translation id="6659594942844771486">Scheda</translation>
 <translation id="666731172850799929">Apri in <ph name="APP_NAME" /></translation>
 <translation id="6671495933530132209">Copia immagine</translation>
+<translation id="6674044799624355221">Invia un numero ridotto di pagine, download, attività delle estensioni e informazioni di sistema per contribuire al rilevamento di nuove minacce</translation>
 <translation id="6674571176963658787">Per avviare la sincronizzazione devi inserire la tua passphrase</translation>
 <translation id="6676840375528380067">Eliminare i dati di Chrome dal dispositivo?</translation>
 <translation id="6684809838922667136">Migliora Chrome</translation>
@@ -1067,6 +1075,7 @@
 <translation id="7085332316435785646">Scegli se includere la cronologia di Chrome per esperienze ancora più personalizzate nei servizi Google</translation>
 <translation id="7088681679121566888">Chrome è aggiornato</translation>
 <translation id="7093803425429738190">Aggiungi emozione</translation>
+<translation id="7105047059074518658">Accedi per navigare più facilmente su più dispositivi</translation>
 <translation id="7106762743910369165">Il tuo browser è gestito dalla tua organizzazione</translation>
 <translation id="7121362699166175603">Consente di cancellare la cronologia e i completamenti automatici nella barra degli indirizzi. Il tuo Account Google potrebbe avere altri tipi di cronologia di navigazione all'indirizzo <ph name="BEGIN_LINK" />myactivity.google.com<ph name="END_LINK" />.</translation>
 <translation id="7138678301420049075">Altro</translation>
@@ -1082,6 +1091,7 @@
 <translation id="7187993566681480880">Ti protegge su Chrome e potrebbe essere utilizzata per migliorare la sicurezza su altre app Google se esegui l'accesso.</translation>
 <translation id="718926126787620637">Elenco di cartelle di preferiti aperto a schermo intero</translation>
 <translation id="7191430249889272776">Scheda aperta in background.</translation>
+<translation id="7196215469483532480">Spiegazione della Guida alla privacy aperta a schermo intero</translation>
 <translation id="7227218174981371415">{FILE_COUNT,plural, =1{1 download in attesa}one{# downloads pending}other{# download in attesa}}</translation>
 <translation id="7242755609445462077">Evidenziazione stilizzata: <ph name="CURRENT_DATE" /></translation>
 <translation id="7248069434667874558">Assicurati che in Chrome sia attiva la sincronizzazione di <ph name="TARGET_DEVICE_NAME" /></translation>
@@ -1176,11 +1186,13 @@
 <translation id="7757787379047923882">Testo condiviso da <ph name="DEVICE_NAME" /></translation>
 <translation id="7761849928583394409">Scegli data e ora</translation>
 <translation id="7762668264895820836">Scheda SD <ph name="SD_CARD_NUMBER" /></translation>
+<translation id="7762928140712606393">Accedi per funzionalità aggiuntive e la sicurezza più efficace di Chrome</translation>
 <translation id="7764225426217299476">Aggiungi indirizzo</translation>
 <translation id="7772032839648071052">Conferma passphrase</translation>
 <translation id="7772375229873196092">Chiudi <ph name="APP_NAME" /></translation>
 <translation id="7774809984919390718">{PAYMENT_METHOD,plural, =1{<ph name="PAYMENT_METHOD_PREVIEW" />\u2026 e altri <ph name="NUMBER_OF_ADDITIONAL_PAYMENT_METHODS" />}one{<ph name="PAYMENT_METHOD_PREVIEW" />\u2026 and <ph name="NUMBER_OF_ADDITIONAL_PAYMENT_METHODS" /> more}other{<ph name="PAYMENT_METHOD_PREVIEW" />\u2026 e altri <ph name="NUMBER_OF_ADDITIONAL_PAYMENT_METHODS" />}}</translation>
 <translation id="7778840695157240389">Ricontrolla più tardi se ci sono nuove notizie</translation>
+<translation id="7780645209293383778">Se hai eseguito l'accesso, collega temporaneamente questi dati al tuo Account Google per proteggerti nelle app Google</translation>
 <translation id="7786595606756654269">L'Assistente Google offre un'esperienza vocale migliore per cercare sul Web e utilizzare i siti aperti. L'Assistente Google riceverà gli URL e i contenuti dei siti su cui lo utilizzi.</translation>
 <translation id="7791543448312431591">Aggiungi</translation>
 <translation id="7798392620021911922"><ph name="TAB_COUNT" /> schede ripristinate</translation>
@@ -1249,6 +1261,7 @@
 <translation id="8084285576995584326">Controlla i dati del tuo Account Google</translation>
 <translation id="808747664143081553">Collegamento al dispositivo effettuato</translation>
 <translation id="8088176524274673045">Per condividere i contenuti con le persone qui vicino, fa' scansionare loro questo codice QR</translation>
+<translation id="8100969750121413114">Accedi per personalizzare Chrome</translation>
 <translation id="8103578431304235997">Scheda di navigazione in incognito</translation>
 <translation id="8105613260829665809">Se continui, accetti i <ph name="BEGIN_TOS_LINK" />Termini di servizio<ph name="END_TOS_LINK" />.\nPer contribuire a migliorare l'app, Chrome invia a Google dati sull'utilizzo e sugli arresti anomali. <ph name="BEGIN_UMA_LINK" />Gestisci<ph name="END_UMA_LINK" /></translation>
 <translation id="8105893657415066307"><ph name="DESCRIPTION" /> <ph name="SEPARATOR" /> <ph name="FILE_SIZE" /></translation>
@@ -1322,6 +1335,7 @@
 <translation id="8485434340281759656"><ph name="FILE_SIZE" /> <ph name="SEPARATOR" /> <ph name="DESCRIPTION" /></translation>
 <translation id="8489271220582375723">Apri la pagina Cronologia</translation>
 <translation id="8493948351860045254">Libera spazio</translation>
+<translation id="8497480609928300907">Spiegazione della Guida alla privacy</translation>
 <translation id="8497726226069778601">Qui non c'è ancora niente</translation>
 <translation id="8503559462189395349">Password Chrome</translation>
 <translation id="8503813439785031346">Nome utente</translation>
diff --git a/chrome/browser/ui/android/strings/translations/android_chrome_strings_ml.xtb b/chrome/browser/ui/android/strings/translations/android_chrome_strings_ml.xtb
index 8bccdd0..6dec977 100644
--- a/chrome/browser/ui/android/strings/translations/android_chrome_strings_ml.xtb
+++ b/chrome/browser/ui/android/strings/translations/android_chrome_strings_ml.xtb
@@ -102,6 +102,7 @@
 <translation id="1544826120773021464">നിങ്ങളുടെ Google അക്കൗണ്ട് മാനേജ് ചെയ്യാൻ, "അക്കൗണ്ട് മാനേജ് ചെയ്യുക" ബട്ടണിൽ ടാപ്പ് ചെയ്യുക</translation>
 <translation id="1549000191223877751">മറ്റൊരു വിൻഡോയിലേക്ക് നീക്കുക</translation>
 <translation id="1553358976309200471">Chrome അപ്‌ഡേറ്റുചെയ്യുക</translation>
+<translation id="1554532453982918912">നിങ്ങളെപ്പോലെ Chrome ഉപയോഗിക്കുന്ന ആളുകൾക്കായി Chrome മെച്ചപ്പെടുത്താൻ സഹായിക്കുന്നു</translation>
 <translation id="1558391695376153246">അദൃശ്യ ടാബുകൾ അടയ്‌ക്കുക</translation>
 <translation id="1571304935088121812">ഉപയോക്തൃനാമം പകർത്തുക</translation>
 <translation id="1592864538817356322">സ്‌റ്റാൻഡേർഡ് പരിരക്ഷ:</translation>
@@ -248,6 +249,7 @@
 <translation id="2453860139492968684">പൂര്‍ത്തിയാക്കുക</translation>
 <translation id="2459390580524506445">മെച്ചപ്പെടുത്തിയ ശബ്ദ തിരയൽ</translation>
 <translation id="2461822463642141190">നിലവിൽ</translation>
+<translation id="2472163211318554013">Chrome പരമാവധി പ്രയോജനപ്പെടുത്താൻ സൈൻ ഇൻ ചെയ്യുക</translation>
 <translation id="247737702124049222">ചിത്രത്തിന്റെ വിവരണങ്ങൾ ഓണാണ്</translation>
 <translation id="2482878487686419369">അറിയിപ്പുകൾ</translation>
 <translation id="2485422356828889247">അണ്‍‌ഇന്‍‌സ്റ്റാള്‍‌ ചെയ്യുക</translation>
@@ -283,6 +285,7 @@
 <translation id="2645657967708199252"><ph name="CONNECTION_TYPE" /> കണക്ഷൻ നിങ്ങളുടെ ഡൗൺലോഡിന്റെ വേഗത കുറച്ചേക്കാം</translation>
 <translation id="2647434099613338025">ഭാഷ ചേര്‍ക്കുക</translation>
 <translation id="2649068648233607930">നിങ്ങളുടെ ബ്രൗസർ മാനേജ് ചെയ്യുന്നത് <ph name="DOMAIN" /> ആണ്</translation>
+<translation id="2650348088770008516">സ്വകാര്യതാ ഗൈഡ് വിശദീകരണം അടച്ചു</translation>
 <translation id="2650751991977523696">ഫയൽ വീണ്ടും ഡൗൺലോഡ് ചെയ്യണോ?</translation>
 <translation id="2651091186440431324">{FILE_COUNT,plural, =1{# ഓഡിയോ ഫയൽ}other{# ഓഡിയോ ഫയലുകള്‍}}</translation>
 <translation id="265156376773362237">സാധാരണ മുൻകൂട്ടി ലോഡ് ചെയ്യൽ</translation>
@@ -313,6 +316,7 @@
 <translation id="2818669890320396765">നിങ്ങളുടെ എല്ലാ ഉപകരണങ്ങളിലും ബുക്ക്‌മാർക്കുകൾ ലഭിക്കാൻ, സൈൻ ഇൻ ചെയ്‌ത് സമന്വയിപ്പിക്കൽ ഓണാക്കുക</translation>
 <translation id="2827278682606527653">പകുതി ഉയരത്തിലുള്ള ഫീഡ് കാർഡ് മെനു</translation>
 <translation id="2830783625999891985">ക്ലിപ്പ്ബോർഡ് ഉള്ളടക്കം മറച്ചിരിക്കുന്നു</translation>
+<translation id="2838367486340230368">സ്വകാര്യതാ ഗൈഡിന്റെ വിശദീകരണം പകുതി ഉയരത്തിൽ തുറന്നു</translation>
 <translation id="2839327205551510876"><ph name="SITE_NAME" /> പിന്തുടരുന്നത് ഒഴിവാക്കി</translation>
 <translation id="2840810876587895427">{TAB_COUNT,plural, =1{<ph name="TAB_COUNT_ONE" /> അദൃശ്യ ടാബ് അടയ്‌ക്കും}other{<ph name="TAB_COUNT_MANY" /> അദൃശ്യ ടാബുകൾ അടയ്‌ക്കും}}</translation>
 <translation id="2841216154655874070">{NUM_DAYS,plural, =1{ഒരു ദിവസം മുമ്പ് പരിശോധിച്ചു}other{# ദിവസം മുമ്പ് പരിശോധിച്ചു}}</translation>
@@ -351,6 +355,7 @@
 <translation id="2996291259634659425">പാസ്‌ഫ്രെയ്‌സ് സൃഷ്‌ടിക്കുക</translation>
 <translation id="2996809686854298943">URL ആവശ്യമാണ്</translation>
 <translation id="2997081575621687554">ഒരു Google സൈറ്റ് അവരുടെ പേജിലെ ലിങ്കുകൾ സ്വകാര്യമായി മുൻകൂട്ടി ലോഡ് ചെയ്യാൻ ആവശ്യപ്പെടുമ്പോൾ, കുക്കികളില്ലാതെ Google സെർവറുകൾ മുഖേന പേജുകൾ Chrome എൻക്രിപ്റ്റും മുൻകൂട്ടി ലോഡും ചെയ്യുന്നു. മുൻകൂട്ടി ലോഡ് ചെയ്ത സൈറ്റിൽ നിന്ന് ഇത് നിങ്ങളുടെ ഐഡന്റിറ്റി മറയ്ക്കുന്നു.</translation>
+<translation id="3003733539450769656">അപകടകരമായ ഇവന്റുകൾ നടക്കുന്നതിന് മുമ്പ് നിങ്ങൾക്ക് മുന്നറിയിപ്പ് നൽകുന്നു</translation>
 <translation id="3006881078666935414">ഉപയോഗ ഡാറ്റ ഇല്ല</translation>
 <translation id="301080557829842765">സ്വകാര്യതാ ഗൈഡ്</translation>
 <translation id="3016635187733453316">ഈ ഉപകരണം ഇന്റർനെറ്റിലേക്ക് കണക്‌റ്റ് ചെയ്‌തിട്ടുണ്ടെന്ന് ഉറപ്പാക്കുക</translation>
@@ -363,6 +368,7 @@
 <translation id="3037517125981011456">Chrome-ൽ സൈൻ ഇൻ ചെയ്യാനുള്ള നിർദ്ദേശങ്ങൾ കാണിക്കുന്നു</translation>
 <translation id="3046945242843292318">അടുത്ത തവണ കൂടുതൽ വേഗത്തിൽ ഈ സൈറ്റിലേക്ക് എത്തുക</translation>
 <translation id="3055259925215945098">ബുക്ക്‌മാർക്ക് നീക്കി</translation>
+<translation id="3055841435094910999">നിങ്ങളുടെ Chrome ഉപയോഗത്തെ കുറിച്ചുള്ള വിവരങ്ങൾ Google-ന് അയയ്ക്കും, എന്നാൽ അവയിൽ നിങ്ങളുടെ വ്യക്തിപര വിവരങ്ങൾ ഉൾപ്പെടുത്തില്ല\n\nChrome ക്രാഷാകുകയാണെങ്കിൽ ക്രാഷിനെ കുറിച്ചുള്ള വിശദാംശങ്ങളിൽ ചില വ്യക്തിപര വിവരങ്ങൾ അടങ്ങിയേക്കാം\n\nനിങ്ങൾ സമന്വയം ഓണാക്കുകയാണെങ്കിൽ, നിങ്ങൾ സന്ദർശിക്കുന്ന URL-കളെ കുറിച്ചുള്ള വിവരങ്ങളും മെട്രിക്കുകളിൽ ഉൾപ്പെടുത്തിയേക്കാം</translation>
 <translation id="3060635849835183725">{BOOKMARKS_COUNT,plural, =1{<ph name="BOOKMARKS_COUNT_ONE" /> ബുക്ക്‌മാർക്ക്}other{<ph name="BOOKMARKS_COUNT_MANY" /> ബുക്ക്‌മാർക്കുകൾ}}</translation>
 <translation id="3062802207422175757">Chrome-ൽ നിങ്ങൾക്ക് താൽപ്പര്യമുള്ള വിഷയങ്ങളിലെ ലേഖനങ്ങൾ കാണൂ</translation>
 <translation id="3066573403916685335">താഴേക്ക് നീക്കുക</translation>
@@ -696,6 +702,7 @@
 <translation id="5091199029769593641">ഉടൻ, പുതിയൊരു ടാബ് തുറക്കുമ്പോൾ, നിങ്ങൾക്ക് <ph name="SITE_NAME" /> എന്നതിൽ നിന്നുള്ള സ്റ്റോറികൾ കാണാനാകും. നിങ്ങൾ പിന്തുടരുന്ന സൈറ്റുകൾ നിങ്ങളുടെ Google അക്കൗണ്ടിൽ സംരക്ഷിക്കുന്നു. Discover ക്രമീകരണത്തിൽ നിങ്ങൾക്ക് അവ മാനേജ് ചെയ്യാനാകും.</translation>
 <translation id="5091249083535528968">വിപുലീകൃത ഉപയോഗ ഡാറ്റ</translation>
 <translation id="509429900233858213">ഒരു പിശക് സംഭവിച്ചു.</translation>
+<translation id="5102401324271069229">ഒരു സൈറ്റ് നിങ്ങളുടെ പാസ്‌വേഡ് മോഷ്‌ടിക്കാൻ ശ്രമിക്കുമ്പോഴോ നിങ്ങൾ ദോഷകരമായ ഒരു ഫയൽ ഡൗൺലോഡ് ചെയ്യുമ്പോഴോ, പേജ് ഉള്ളടക്കത്തിന്റെ ബിറ്റുകൾ ഉൾപ്പെടെയുള്ള URL-കൾ സുരക്ഷിത ബ്രൗസിംഗിലേക്ക് Chrome അയച്ചേക്കാം</translation>
 <translation id="510275257476243843">ഒരു മണിക്കൂർ ശേഷിക്കുന്നു</translation>
 <translation id="5115811374190515607"><ph name="PRODUCT_NAME" /> എന്നതിലേക്ക്</translation>
 <translation id="5118713593561876160">താൽപ്പര്യങ്ങൾ</translation>
@@ -992,6 +999,7 @@
 <translation id="6659594942844771486">ടാബ്</translation>
 <translation id="666731172850799929"><ph name="APP_NAME" />-ൽ തുറക്കുക</translation>
 <translation id="6671495933530132209">ചിത്രം പകർത്തുക</translation>
+<translation id="6674044799624355221">പുതിയ ഭീഷണികൾ കണ്ടെത്താൻ സഹായിക്കുന്നതിന് പേജുകൾ, ഡൗൺലോഡുകൾ, വിപുലീകരണ ആക്റ്റിവിറ്റി, സിസ്റ്റം വിവരങ്ങൾ എന്നിവയുടെ ഒരു ചെറിയ സാമ്പിൾ അയയ്‌ക്കുന്നു</translation>
 <translation id="6674571176963658787">സമന്വയിപ്പിക്കാൻ തുടങ്ങുന്നതിന്, നിങ്ങളുടെ പാസ്‌ഫ്രെയ്‌സ് നൽകുക</translation>
 <translation id="6676840375528380067">ഉപകരണത്തില്‍ നിന്ന് Chrome ഡാറ്റ മായ്ക്കണോ?</translation>
 <translation id="6684809838922667136">Chrome മെച്ചപ്പെടുത്തുക</translation>
@@ -1067,6 +1075,7 @@
 <translation id="7085332316435785646">Google സേവനങ്ങളിൽ കൂടുതൽ വ്യക്തിപരമാക്കിയ അനുഭവം ലഭ്യമാകാൻ Chrome ചരിത്രം ഉൾപ്പെടുത്തണോ എന്ന് തിരഞ്ഞെടുക്കുക</translation>
 <translation id="7088681679121566888">Chrome അപ് റ്റു ഡേറ്റാണ്</translation>
 <translation id="7093803425429738190">ഇമോഷൻ ചേർക്കുക</translation>
+<translation id="7105047059074518658">ഉപകരണങ്ങളിൽ ഉടനീളം എളുപ്പം ബ്രൗസ് ചെയ്യാൻ സൈൻ ഇൻ ചെയ്യൂ</translation>
 <translation id="7106762743910369165">നിങ്ങളുടെ സ്ഥാപനമാണ് നിങ്ങളുടെ ബ്രൗസർ മാനേജ് ചെയ്യുന്നത്</translation>
 <translation id="7121362699166175603">ചരിത്രവും വിലാസ ബാറിലെ സ്വയം പൂർത്തീകരണങ്ങളും മായ്ക്കുന്നു. നിങ്ങളുടെ Google അക്കൗണ്ടിന് <ph name="BEGIN_LINK" />history.google.com<ph name="END_LINK" /> എന്നതിൽ മറ്റ് തരത്തിലുള്ള ബ്രൗസിംഗ് ചരിത്രമുണ്ടായിരിക്കാം.</translation>
 <translation id="7138678301420049075">മറ്റുള്ളവ</translation>
@@ -1082,6 +1091,7 @@
 <translation id="7187993566681480880">നിങ്ങൾ സൈൻ ഇൻ ആയിരിക്കുമ്പോൾ Chrome-ൽ നിങ്ങളെ സുരക്ഷിതരാക്കുകയും മറ്റ് Google ആപ്പുകളിൽ നിങ്ങളുടെ സുരക്ഷ മെച്ചപ്പെടുത്താൻ ഉപയോഗിക്കുകയും ചെയ്യും.</translation>
 <translation id="718926126787620637">മുഴുവൻ ഉയരത്തിൽ തുറന്ന ബുക്ക്‌മാർക്ക് ഫോൾഡറുകളുടെ ലിസ്റ്റ്</translation>
 <translation id="7191430249889272776">ടാബ് പശ്ചാത്തലത്തിൽ തുറന്നു.</translation>
+<translation id="7196215469483532480">സ്വകാര്യതാ ഗൈഡിന്റെ വിശദീകരണം മുഴുവൻ ഉയരത്തിൽ തുറന്നു</translation>
 <translation id="7227218174981371415">{FILE_COUNT,plural, =1{ഒരു ഡൗൺലോഡ് തീർച്ചപ്പെടുത്തിയിട്ടില്ല}other{# ഡൗൺലോഡുകൾ തീർച്ചപ്പെടുത്തിയിട്ടില്ല}}</translation>
 <translation id="7242755609445462077">പ്രത്യേക സ്റ്റൈലിൽ ആക്കിയ ഹൈലൈറ്റ് <ph name="CURRENT_DATE" /></translation>
 <translation id="7248069434667874558">Chrome-ൽ <ph name="TARGET_DEVICE_NAME" /> ഉപകരണത്തിലെ സമന്വയിപ്പിക്കൽ ഓണാക്കിയിട്ടുണ്ടെന്ന് ഉറപ്പാക്കുക</translation>
@@ -1176,11 +1186,13 @@
 <translation id="7757787379047923882"><ph name="DEVICE_NAME" /> ഉപകരണത്തിൽ നിന്ന് പങ്കിട്ട ടെക്‌സ്റ്റ്</translation>
 <translation id="7761849928583394409">തീയതിയും സമയവും തിരഞ്ഞെടുക്കുക</translation>
 <translation id="7762668264895820836">SD കാർഡ് <ph name="SD_CARD_NUMBER" /></translation>
+<translation id="7762928140712606393">അധിക ഫീച്ചറുകളും അതിശക്തമായ Chrome സുരക്ഷയും നേടാൻ സൈൻ ഇൻ ചെയ്യൂ</translation>
 <translation id="7764225426217299476">വിലാസം ചേർക്കുക</translation>
 <translation id="7772032839648071052">പാസ്ഫ്രേസ് സ്ഥിരീകരിക്കുക</translation>
 <translation id="7772375229873196092"><ph name="APP_NAME" /> അടയ്‌ക്കുക</translation>
 <translation id="7774809984919390718">{PAYMENT_METHOD,plural, =1{<ph name="PAYMENT_METHOD_PREVIEW" />\u2026 എന്നതും ‌മറ്റ് <ph name="NUMBER_OF_ADDITIONAL_PAYMENT_METHODS" /> പേയ്‌മെന്റ് രീതികളും}other{<ph name="PAYMENT_METHOD_PREVIEW" />\u2026 എന്നതും ‌മറ്റ് <ph name="NUMBER_OF_ADDITIONAL_PAYMENT_METHODS" /> പേയ്‌മെന്റ് രീതികളും}}</translation>
 <translation id="7778840695157240389">പുതിയ സ്‌റ്റോറികൾക്ക് പിന്നീട് വീണ്ടും പരിശോധിക്കൂ</translation>
+<translation id="7780645209293383778">Google ആപ്പുകളിലുടനീളം പരിരക്ഷിക്കുന്നതിന്, നിങ്ങൾ സൈൻ ഇൻ ചെയ്തിരിക്കുമ്പോൾ ഈ ഡാറ്റ നിങ്ങളുടെ Google അക്കൗണ്ടിലേക്ക് താൽക്കാലികമായി ലിങ്ക് ചെയ്യുന്നു</translation>
 <translation id="7786595606756654269">വെബിൽ തിരയാനും നിങ്ങൾ തുറന്ന സൈറ്റുകളുമായി ഇടപഴകാനും Google Assistant മികച്ച ശബ്‌ദാനുഭവം നൽകുന്നു. നിങ്ങൾ Google Assistant ഉപയോഗിക്കുന്ന സൈറ്റുകളുടെ URL-ഉം അവയുടെ ഉള്ളടക്കവും ഇതിന് ലഭിക്കും.</translation>
 <translation id="7791543448312431591">ചേര്‍ക്കൂ</translation>
 <translation id="7798392620021911922"><ph name="TAB_COUNT" /> ടാബുകൾ പുനഃസ്ഥാപിച്ചു</translation>
@@ -1249,6 +1261,7 @@
 <translation id="8084285576995584326">നിങ്ങളുടെ Google അക്കൗണ്ട് ഡാറ്റ നിയന്ത്രിക്കുക</translation>
 <translation id="808747664143081553">ഉപകരണത്തിലേക്ക് കണക്റ്റ് ചെയ്‌തു</translation>
 <translation id="8088176524274673045">സമീപമുള്ള ആളുകളുമായി പങ്കിടുന്നതിന്, അവരെ ഈ QR കോഡ് സ്‌കാൻ ചെയ്യാൻ അനുവദിക്കുക</translation>
+<translation id="8100969750121413114">Chrome നിങ്ങളുടെ സ്വന്തമാക്കാൻ സൈൻ ഇൻ ചെയ്യൂ</translation>
 <translation id="8103578431304235997">അദൃശ്യ ടാബ്</translation>
 <translation id="8105613260829665809">തുടരുന്നതിലൂടെ, നിങ്ങൾ <ph name="BEGIN_TOS_LINK" />സേവന നിബന്ധനകൾ<ph name="END_TOS_LINK" /> അംഗീകരിക്കുന്നു.\nആപ്പ് മെച്ചപ്പെടുത്താൻ സഹായിക്കുന്നതിന്, Google-ന് ഉപയോഗ ഡാറ്റയും ക്രാഷ് ഡാറ്റയും Chrome അയയ്ക്കുന്നു. <ph name="BEGIN_UMA_LINK" />മാനേജ് ചെയ്യുക<ph name="END_UMA_LINK" /></translation>
 <translation id="8105893657415066307"><ph name="DESCRIPTION" /> <ph name="SEPARATOR" /> <ph name="FILE_SIZE" /></translation>
@@ -1322,6 +1335,7 @@
 <translation id="8485434340281759656"><ph name="FILE_SIZE" /> <ph name="SEPARATOR" /> <ph name="DESCRIPTION" /></translation>
 <translation id="8489271220582375723">ചരിത്ര പേജ് തുറക്കുക</translation>
 <translation id="8493948351860045254">ഇടം സൃഷ്‌ടിക്കുക</translation>
+<translation id="8497480609928300907">സ്വകാര്യതാ ഗൈഡിന്റെ വിശദീകരണം</translation>
 <translation id="8497726226069778601">ഇതുവരെയും ഇവിടെ കാണാനായി ഒന്നുമില്ല...</translation>
 <translation id="8503559462189395349">Chrome പാസ്‌വേഡുകൾ</translation>
 <translation id="8503813439785031346">ഉപയോക്തൃനാമം</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 2ffb8e3..08f392b 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
@@ -102,6 +102,7 @@
 <translation id="1544826120773021464">Tik op de knop 'Account beheren' om je Google-account te beheren</translation>
 <translation id="1549000191223877751">Naar ander venster</translation>
 <translation id="1553358976309200471">Chrome updaten</translation>
+<translation id="1554532453982918912">Help Chrome beter te maken voor mensen die de browser gebruiken op dezelfde manier als jij</translation>
 <translation id="1558391695376153246">Incognitotabbladen sluiten</translation>
 <translation id="1571304935088121812">Gebruikersnaam kopiëren</translation>
 <translation id="1592864538817356322">Standaardbeveiliging:</translation>
@@ -248,6 +249,7 @@
 <translation id="2453860139492968684">Voltooien</translation>
 <translation id="2459390580524506445">Geavanceerde gesproken zoekopdrachten</translation>
 <translation id="2461822463642141190">Huidig</translation>
+<translation id="2472163211318554013">Log in om het maximale uit Chrome te halen</translation>
 <translation id="247737702124049222">Afbeeldingsbeschrijvingen staan aan</translation>
 <translation id="2482878487686419369">Meldingen</translation>
 <translation id="2485422356828889247">Installatie ongedaan maken</translation>
@@ -283,6 +285,7 @@
 <translation id="2645657967708199252">Je <ph name="CONNECTION_TYPE" />-verbinding kan je download vertragen</translation>
 <translation id="2647434099613338025">Taal toevoegen</translation>
 <translation id="2649068648233607930">Je browser wordt beheerd door <ph name="DOMAIN" /></translation>
+<translation id="2650348088770008516">Uitleg over privacygids is gesloten</translation>
 <translation id="2650751991977523696">Bestand opnieuw downloaden?</translation>
 <translation id="2651091186440431324">{FILE_COUNT,plural, =1{# audiobestand}other{# audiobestanden}}</translation>
 <translation id="265156376773362237">Standaard vooraf laden</translation>
@@ -313,6 +316,7 @@
 <translation id="2818669890320396765">Log in en zet de synchronisatie aan om op al je apparaten toegang tot je bookmarks te hebben</translation>
 <translation id="2827278682606527653">Feedkaartmenu halve hoogte</translation>
 <translation id="2830783625999891985">Content van klembord verborgen</translation>
+<translation id="2838367486340230368">Uitleg over privacygids is op halve hoogte geopend</translation>
 <translation id="2839327205551510876"><ph name="SITE_NAME" /> wordt niet meer gevolgd</translation>
 <translation id="2840810876587895427">{TAB_COUNT,plural, =1{<ph name="TAB_COUNT_ONE" /> incognitotabblad wordt gesloten}other{<ph name="TAB_COUNT_MANY" /> incognitotabbladen worden gesloten}}</translation>
 <translation id="2841216154655874070">{NUM_DAYS,plural, =1{1 dag geleden gecheckt}other{# dagen geleden gecheckt}}</translation>
@@ -351,6 +355,7 @@
 <translation id="2996291259634659425">Wachtwoordzin maken</translation>
 <translation id="2996809686854298943">URL vereist</translation>
 <translation id="2997081575621687554">Als een Google-site vraagt om links op de sitepagina privé vooraf te laden, versleutelt en laadt Chrome de pagina's vooraf via Google-servers zonder cookies. Hierdoor wordt je identiteit voor de vooraf geladen site verborgen.</translation>
+<translation id="3003733539450769656">Waarschuwt je voor gevaarlijke gebeurtenissen voordat deze plaatsvinden</translation>
 <translation id="3006881078666935414">Geen gebruiksgegevens</translation>
 <translation id="301080557829842765">Privacygids</translation>
 <translation id="3016635187733453316">Controleer of dit apparaat verbinding heeft met internet</translation>
@@ -363,6 +368,7 @@
 <translation id="3037517125981011456">Toont prompts om in te loggen bij Chrome</translation>
 <translation id="3046945242843292318">Ga de volgende keer sneller naar deze site</translation>
 <translation id="3055259925215945098">Bookmark verplaatst</translation>
+<translation id="3055841435094910999">Er wordt informatie naar Google gestuurd over je Chrome-gebruik, maar de informatie wordt niet aan jou gekoppeld\n\nAls Chrome crasht, kunnen de gegevens over de crash wat persoonlijke informatie bevatten\n\nAls je synchronisatie aanzet, kunnen de statistieken ook informatie bevatten over de URL's die je bezoekt</translation>
 <translation id="3060635849835183725">{BOOKMARKS_COUNT,plural, =1{<ph name="BOOKMARKS_COUNT_ONE" /> bookmark}other{<ph name="BOOKMARKS_COUNT_MANY" /> bookmarks}}</translation>
 <translation id="3062802207422175757">Artikelen over je interesses in Chrome</translation>
 <translation id="3066573403916685335">Naar beneden</translation>
@@ -696,6 +702,7 @@
 <translation id="5091199029769593641">Binnenkort zie je artikelen van <ph name="SITE_NAME" /> als je een nieuw tabblad opent. Sites die je volgt, worden opgeslagen in je Google-account. Je kunt ze beheren in de instellingen van Discover.</translation>
 <translation id="5091249083535528968">Uitgebreide gebruiksgegevens</translation>
 <translation id="509429900233858213">Er is een fout opgetreden.</translation>
+<translation id="5102401324271069229">Als een site je wachtwoord probeert te stelen of als je een schadelijk bestand downloadt, kan Chrome URL's, inclusief delen van de paginacontent, naar Safe Browsing sturen</translation>
 <translation id="510275257476243843">1 uur resterend</translation>
 <translation id="5115811374190515607">naar <ph name="PRODUCT_NAME" /></translation>
 <translation id="5118713593561876160">Interesses</translation>
@@ -992,6 +999,7 @@
 <translation id="6659594942844771486">Tabblad</translation>
 <translation id="666731172850799929">Openen in <ph name="APP_NAME" /></translation>
 <translation id="6671495933530132209">Afbeelding kopiëren</translation>
+<translation id="6674044799624355221">Stuurt een klein gedeelte pagina's, downloads, extensie-activiteit en systeeminformatie om nieuwe dreigingen te kunnen waarnemen</translation>
 <translation id="6674571176963658787">Geef je wachtwoordzin op om de synchronisatie te starten</translation>
 <translation id="6676840375528380067">Je Chrome-gegevens van dit apparaat wissen?</translation>
 <translation id="6684809838922667136">Chrome verbeteren</translation>
@@ -1067,6 +1075,7 @@
 <translation id="7085332316435785646">Kies of je de Chrome-geschiedenis wilt opnemen voor meer gepersonaliseerde functies in Google-services</translation>
 <translation id="7088681679121566888">Chrome is up-to-date</translation>
 <translation id="7093803425429738190">Emoji toevoegen</translation>
+<translation id="7105047059074518658">Log in om makkelijker te browsen op apparaten</translation>
 <translation id="7106762743910369165">Je browser wordt beheerd door je organisatie</translation>
 <translation id="7121362699166175603">Hiermee worden de geschiedenis en automatische aanvullingen voor de adresbalk gewist. Er kunnen andere vormen van browsegeschiedenis zijn opgeslagen voor je Google-account op <ph name="BEGIN_LINK" />myactivity.google.com<ph name="END_LINK" />.</translation>
 <translation id="7138678301420049075">Overige</translation>
@@ -1082,6 +1091,7 @@
 <translation id="7187993566681480880">Beschermt je op Chrome en kan worden gebruikt om de beveiliging in andere Google-apps te verbeteren als je bent ingelogd.</translation>
 <translation id="718926126787620637">Lijst met bookmarkmappen is op volledige hoogte geopend</translation>
 <translation id="7191430249889272776">Tabblad op de achtergrond geopend.</translation>
+<translation id="7196215469483532480">Uitleg over privacygids is op volledige hoogte geopend</translation>
 <translation id="7227218174981371415">{FILE_COUNT,plural, =1{1 download in behandeling}other{# downloads in behandeling}}</translation>
 <translation id="7242755609445462077">Gestileerde markering <ph name="CURRENT_DATE" /></translation>
 <translation id="7248069434667874558">Zorg dat synchronisatie in Chrome is aangezet voor <ph name="TARGET_DEVICE_NAME" /></translation>
@@ -1176,11 +1186,13 @@
 <translation id="7757787379047923882">Tekst gedeeld vanaf <ph name="DEVICE_NAME" /></translation>
 <translation id="7761849928583394409">Datum en tijd kiezen</translation>
 <translation id="7762668264895820836">SD-kaart <ph name="SD_CARD_NUMBER" /></translation>
+<translation id="7762928140712606393">Log in voor extra functies en het hoogste beveiligingsniveau van Chrome</translation>
 <translation id="7764225426217299476">Adres toevoegen</translation>
 <translation id="7772032839648071052">Bevestig de wachtwoordzin</translation>
 <translation id="7772375229873196092"><ph name="APP_NAME" /> sluiten</translation>
 <translation id="7774809984919390718">{PAYMENT_METHOD,plural, =1{<ph name="PAYMENT_METHOD_PREVIEW" />\u2026 en nog <ph name="NUMBER_OF_ADDITIONAL_PAYMENT_METHODS" /> andere}other{<ph name="PAYMENT_METHOD_PREVIEW" />\u2026 en nog <ph name="NUMBER_OF_ADDITIONAL_PAYMENT_METHODS" /> andere}}</translation>
 <translation id="7778840695157240389">Kom later terug voor nieuwe artikelen</translation>
+<translation id="7780645209293383778">Koppelt deze gegevens tijdelijk aan je Google-account als je bent ingelogd om je te beschermen binnen de Google-apps</translation>
 <translation id="7786595606756654269">De Google Assistent biedt betere spraakfunctionaliteit voor zoeken op internet en gebruikmaken van sites die je hebt geopend. De Google Assistent ontvangt de URL en content van sites die je met de Assistent gebruikt.</translation>
 <translation id="7791543448312431591">Toevoegen</translation>
 <translation id="7798392620021911922"><ph name="TAB_COUNT" /> tabbladen hersteld</translation>
@@ -1249,6 +1261,7 @@
 <translation id="8084285576995584326">De gegevens van je Google-account beheren</translation>
 <translation id="808747664143081553">Verbonden met apparaat</translation>
 <translation id="8088176524274673045">Als je wilt delen met mensen in de buurt, laat je ze deze QR-code scannen</translation>
+<translation id="8100969750121413114">Log in om Chrome te personaliseren</translation>
 <translation id="8103578431304235997">Incognitotabblad</translation>
 <translation id="8105613260829665809">Door verder te gaan, ga je akkoord met de <ph name="BEGIN_TOS_LINK" />Servicevoorwaarden<ph name="END_TOS_LINK" />.\nChrome stuurt gebruiks- en crashgegevens naar Google om de app te helpen verbeteren. <ph name="BEGIN_UMA_LINK" />Beheren<ph name="END_UMA_LINK" /></translation>
 <translation id="8105893657415066307"><ph name="DESCRIPTION" /> <ph name="SEPARATOR" /> <ph name="FILE_SIZE" /></translation>
@@ -1322,6 +1335,7 @@
 <translation id="8485434340281759656"><ph name="FILE_SIZE" /> <ph name="SEPARATOR" /> <ph name="DESCRIPTION" /></translation>
 <translation id="8489271220582375723">De pagina Geschiedenis openen</translation>
 <translation id="8493948351860045254">Ruimte vrijmaken</translation>
+<translation id="8497480609928300907">Uitleg over privacygids</translation>
 <translation id="8497726226069778601">Hier is nog niets te zien</translation>
 <translation id="8503559462189395349">Chrome-wachtwoorden</translation>
 <translation id="8503813439785031346">Gebruikersnaam</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 4a98061..6c878d9 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
@@ -102,6 +102,7 @@
 <translation id="1544826120773021464">Para gerenciar sua Conta do Google, toque no botão "Gerenciar conta".</translation>
 <translation id="1549000191223877751">Mover para outra janela</translation>
 <translation id="1553358976309200471">Atualizar o Google Chrome</translation>
+<translation id="1554532453982918912">Ajude a melhorar o Chrome para as pessoas que o usam como você.</translation>
 <translation id="1558391695376153246">Fechar guias anônimas</translation>
 <translation id="1571304935088121812">Copiar nome de usuário</translation>
 <translation id="1592864538817356322">Proteção padrão:</translation>
@@ -248,6 +249,7 @@
 <translation id="2453860139492968684">Concluir</translation>
 <translation id="2459390580524506445">Pesquisa por voz aprimorada</translation>
 <translation id="2461822463642141190">Atual</translation>
+<translation id="2472163211318554013">Faça login para aproveitar o Chrome ao máximo</translation>
 <translation id="247737702124049222">As descrições de imagens estão ativadas</translation>
 <translation id="2482878487686419369">Notificações</translation>
 <translation id="2485422356828889247">Desinstalar</translation>
@@ -283,6 +285,7 @@
 <translation id="2645657967708199252">Sua conexão <ph name="CONNECTION_TYPE" /> pode deixar o download mais lento</translation>
 <translation id="2647434099613338025">Adicionar idioma</translation>
 <translation id="2649068648233607930">Seu navegador é gerenciado por <ph name="DOMAIN" /></translation>
+<translation id="2650348088770008516">Explicação sobre o Guia de privacidade fechada</translation>
 <translation id="2650751991977523696">Fazer o download do arquivo novamente?</translation>
 <translation id="2651091186440431324">{FILE_COUNT,plural, =1{# arquivo de áudio}one{# arquivo de áudio}other{# arquivos de áudio}}</translation>
 <translation id="265156376773362237">Pré-carregamento padrão</translation>
@@ -313,6 +316,7 @@
 <translation id="2818669890320396765">Para ter seus favoritos em todos os seus dispositivos, faça login e ative a sincronização</translation>
 <translation id="2827278682606527653">O menu do card do feed está aberto pela metade</translation>
 <translation id="2830783625999891985">Conteúdo da área de transferência oculto</translation>
+<translation id="2838367486340230368">Explicação sobre o Guia de privacidade aberta na metade altura</translation>
 <translation id="2839327205551510876">Parou de seguir <ph name="SITE_NAME" /></translation>
 <translation id="2840810876587895427">{TAB_COUNT,plural, =1{<ph name="TAB_COUNT_ONE" /> guia anônima será fechada}one{<ph name="TAB_COUNT_MANY" /> guia anônima será fechada}other{<ph name="TAB_COUNT_MANY" /> guias anônimas serão fechadas}}</translation>
 <translation id="2841216154655874070">{NUM_DAYS,plural, =1{Verificado 1 dia atrás}one{Verificado # dia atrás}other{Verificado # dias atrás}}</translation>
@@ -351,6 +355,7 @@
 <translation id="2996291259634659425">Criar senha longa</translation>
 <translation id="2996809686854298943">O URL é obrigatório</translation>
 <translation id="2997081575621687554">Quando um site do Google pede para pré-carregar links anonimamente, o Chrome criptografa e pré-carrega as páginas pelos servidores do Google sem cookies. Isso oculta sua identidade do site pré-carregado.</translation>
+<translation id="3003733539450769656">Avisa sobre eventos perigosos antes que eles aconteçam</translation>
 <translation id="3006881078666935414">Nenhum dado de uso</translation>
 <translation id="301080557829842765">Guia de privacidade</translation>
 <translation id="3016635187733453316">Verifique se o dispositivo está conectado à Internet</translation>
@@ -363,6 +368,7 @@
 <translation id="3037517125981011456">Mostra solicitações para fazer login no Chrome</translation>
 <translation id="3046945242843292318">Acesse o site mais rapidamente na próxima vez</translation>
 <translation id="3055259925215945098">O favorito foi movido</translation>
+<translation id="3055841435094910999">São enviadas ao Google informações sobre seu uso do Chrome, mas elas não são vinculadas a você.\n\nSe o Chrome falhar, os detalhes sobre a falha poderão incluir algumas informações pessoais.\n\nSe você ativar a sincronização, as métricas também poderão incluir informações sobre os URLs que você acessa.</translation>
 <translation id="3060635849835183725">{BOOKMARKS_COUNT,plural, =1{<ph name="BOOKMARKS_COUNT_ONE" /> favorito}one{<ph name="BOOKMARKS_COUNT_MANY" /> favorito}other{<ph name="BOOKMARKS_COUNT_MANY" /> favoritos}}</translation>
 <translation id="3062802207422175757">Artigos sobre seus interesses no Chrome</translation>
 <translation id="3066573403916685335">Mover para baixo</translation>
@@ -697,6 +703,7 @@
 <translation id="5091199029769593641">Em breve, você verá stories de <ph name="SITE_NAME" /> quando abrir uma nova guia. Os sites que você segue são armazenados na sua Conta do Google. Você pode gerenciá-los nas configurações do Discover.</translation>
 <translation id="5091249083535528968">Dados de uso estendidos</translation>
 <translation id="509429900233858213">Ocorreu um erro.</translation>
+<translation id="5102401324271069229">Se um site tentar roubar sua senha ou se você fizer o download de um arquivo perigoso, o Chrome poderá enviar os URLs, incluindo partes do conteúdo da página, para o Navegação segura</translation>
 <translation id="510275257476243843">Uma hora restante</translation>
 <translation id="5115811374190515607">para <ph name="PRODUCT_NAME" /></translation>
 <translation id="5118713593561876160">Interesses</translation>
@@ -993,6 +1000,7 @@
 <translation id="6659594942844771486">Guia</translation>
 <translation id="666731172850799929">Abrir no <ph name="APP_NAME" /></translation>
 <translation id="6671495933530132209">Copiar imagem</translation>
+<translation id="6674044799624355221">Envia uma pequena amostra de páginas, downloads, atividades de extensões e informações do sistema para ajudar a descobrir novas ameaças</translation>
 <translation id="6674571176963658787">Para iniciar a sincronização, digite a senha longa</translation>
 <translation id="6676840375528380067">Limpar seus dados do Chrome deste dispositivo?</translation>
 <translation id="6684809838922667136">Melhorar o Chrome</translation>
@@ -1068,6 +1076,7 @@
 <translation id="7085332316435785646">Escolha se você quer incluir o histórico do Chrome para ter experiências mais personalizadas nos Serviços do Google</translation>
 <translation id="7088681679121566888">O Chrome está atualizado</translation>
 <translation id="7093803425429738190">Adicionar emoticon</translation>
+<translation id="7105047059074518658">Faça login para facilitar a navegação em vários dispositivos</translation>
 <translation id="7106762743910369165">O navegador é gerenciado pela sua organização</translation>
 <translation id="7121362699166175603">Limpa o histórico e os preenchimentos automáticos na barra de endereço. Sua Conta do Google pode ter outras formas de histórico de navegação em <ph name="BEGIN_LINK" />myactivity.google.com<ph name="END_LINK" />.</translation>
 <translation id="7138678301420049075">Outro</translation>
@@ -1083,6 +1092,7 @@
 <translation id="7187993566681480880">Protege você no Chrome e pode ser usado para melhorar a segurança em outros apps do Google quando sua conta está conectada.</translation>
 <translation id="718926126787620637">Lista de pastas de favoritos aberta no tamanho máximo</translation>
 <translation id="7191430249889272776">Guia aberta no plano de fundo.</translation>
+<translation id="7196215469483532480">Explicação sobre o Guia de privacidade aberta no tamanho máximo</translation>
 <translation id="7227218174981371415">{FILE_COUNT,plural, =1{1 download pendente}one{# download pendente}other{# downloads pendentes}}</translation>
 <translation id="7242755609445462077">Destaque estilizado de <ph name="CURRENT_DATE" /></translation>
 <translation id="7248069434667874558">Verifique se a sincronização do <ph name="TARGET_DEVICE_NAME" /> está ativada no Chrome</translation>
@@ -1177,11 +1187,13 @@
 <translation id="7757787379047923882">Texto compartilhado por <ph name="DEVICE_NAME" /></translation>
 <translation id="7761849928583394409">Escolher data e hora</translation>
 <translation id="7762668264895820836">Cartão SD <ph name="SD_CARD_NUMBER" /></translation>
+<translation id="7762928140712606393">Faça login para ter mais recursos e a segurança reforçada do Chrome</translation>
 <translation id="7764225426217299476">Adicionar endereço</translation>
 <translation id="7772032839648071052">Confirmar senha</translation>
 <translation id="7772375229873196092">Fechar <ph name="APP_NAME" /></translation>
 <translation id="7774809984919390718">{PAYMENT_METHOD,plural, =1{<ph name="PAYMENT_METHOD_PREVIEW" />\u2026 e mais <ph name="NUMBER_OF_ADDITIONAL_PAYMENT_METHODS" />}one{<ph name="PAYMENT_METHOD_PREVIEW" />\u2026 e mais <ph name="NUMBER_OF_ADDITIONAL_PAYMENT_METHODS" />}other{<ph name="PAYMENT_METHOD_PREVIEW" />\u2026 e mais <ph name="NUMBER_OF_ADDITIONAL_PAYMENT_METHODS" />}}</translation>
 <translation id="7778840695157240389">Volte mais tarde para ver novas matérias</translation>
+<translation id="7780645209293383778">Vincula temporariamente esses dados à sua Conta do Google quando ela está conectada para proteger você nos apps do Google</translation>
 <translation id="7786595606756654269">O Google Assistente oferece uma experiência de voz melhorada para pesquisar na Web e interagir com os sites abertos. Ele receberá o URL e o conteúdo dos sites em que for usado.</translation>
 <translation id="7791543448312431591">Adicionar</translation>
 <translation id="7798392620021911922"><ph name="TAB_COUNT" /> guias restauradas</translation>
@@ -1250,6 +1262,7 @@
 <translation id="8084285576995584326">Controlar os dados da sua Conta do Google</translation>
 <translation id="808747664143081553">Conectado ao dispositivo</translation>
 <translation id="8088176524274673045">Para compartilhar com pessoas próximas, permita que elas leiam esse código QR</translation>
+<translation id="8100969750121413114">Faça login para personalizar o Chrome</translation>
 <translation id="8103578431304235997">Guia anônima</translation>
 <translation id="8105613260829665809">Ao continuar, você concorda com os <ph name="BEGIN_TOS_LINK" />Termos de Serviço<ph name="END_TOS_LINK" />.\nPara ajudar a melhorar o app, o Chrome envia dados de uso e de falha ao Google. <ph name="BEGIN_UMA_LINK" />Gerenciar<ph name="END_UMA_LINK" /></translation>
 <translation id="8105893657415066307"><ph name="DESCRIPTION" /> <ph name="SEPARATOR" /> <ph name="FILE_SIZE" /></translation>
@@ -1323,6 +1336,7 @@
 <translation id="8485434340281759656"><ph name="FILE_SIZE" /> <ph name="SEPARATOR" /> <ph name="DESCRIPTION" /></translation>
 <translation id="8489271220582375723">Abrir Histórico</translation>
 <translation id="8493948351860045254">Liberar espaço</translation>
+<translation id="8497480609928300907">Explicação sobre o Guia de privacidade</translation>
 <translation id="8497726226069778601">Não há nada para ver aqui... ainda</translation>
 <translation id="8503559462189395349">Senhas do Chrome</translation>
 <translation id="8503813439785031346">Nome de usuário</translation>
diff --git a/chrome/browser/ui/android/strings/translations/android_chrome_strings_ru.xtb b/chrome/browser/ui/android/strings/translations/android_chrome_strings_ru.xtb
index fca5e97..113b6c18 100644
--- a/chrome/browser/ui/android/strings/translations/android_chrome_strings_ru.xtb
+++ b/chrome/browser/ui/android/strings/translations/android_chrome_strings_ru.xtb
@@ -936,7 +936,7 @@
 <translation id="641643625718530986">Печать</translation>
 <translation id="6422857128426228781">Отслеживаемые товары будут появляться здесь.</translation>
 <translation id="6433501201775827830">Выберите поисковую систему</translation>
-<translation id="6434309073475700221">Закрыть</translation>
+<translation id="6434309073475700221">Отменить</translation>
 <translation id="6437478888915024427">Информация о странице</translation>
 <translation id="6441734959916820584">Название слишком длинное.</translation>
 <translation id="6444421004082850253">{FILE_COUNT,plural, =1{# изображение}one{# изображение}few{# изображения}many{# изображений}other{# изображения}}</translation>
diff --git a/chrome/browser/ui/android/strings/translations/android_chrome_strings_ta.xtb b/chrome/browser/ui/android/strings/translations/android_chrome_strings_ta.xtb
index 56e7e31..636bb1e 100644
--- a/chrome/browser/ui/android/strings/translations/android_chrome_strings_ta.xtb
+++ b/chrome/browser/ui/android/strings/translations/android_chrome_strings_ta.xtb
@@ -102,6 +102,7 @@
 <translation id="1544826120773021464">உங்கள் Google கணக்கை நிர்வகிக்க "கணக்கை நிர்வகி" என்ற பட்டனைத் தட்டுங்கள்</translation>
 <translation id="1549000191223877751">வேறு சாளரத்திற்கு நகர்த்து</translation>
 <translation id="1553358976309200471">Chromeஐப் புதுப்பி</translation>
+<translation id="1554532453982918912">உங்களைப் போன்ற பயனர்களுக்காக Chromeமை மேம்படுத்த உதவுங்கள்</translation>
 <translation id="1558391695376153246">மறைநிலைத் தாவல்களை மூடுக</translation>
 <translation id="1571304935088121812">பயனர்பெயரை நகலெடுக்கும்</translation>
 <translation id="1592864538817356322">நிலையான பாதுகாப்பு:</translation>
@@ -248,6 +249,7 @@
 <translation id="2453860139492968684">முடி</translation>
 <translation id="2459390580524506445">மேம்பட்ட குரல் தேடல்</translation>
 <translation id="2461822463642141190">தற்போதைய மின் உபயோகம்</translation>
+<translation id="2472163211318554013">Chromeமில் அதிகப் பலன்களைப் பெற, உள்நுழையவும்</translation>
 <translation id="247737702124049222">'பட விளக்கங்கள்' இயக்கப்பட்டது</translation>
 <translation id="2482878487686419369">அறிவிப்புகள்</translation>
 <translation id="2485422356828889247">நிறுவல் நீக்கு</translation>
@@ -283,6 +285,7 @@
 <translation id="2645657967708199252">உங்கள் <ph name="CONNECTION_TYPE" /> இணைப்பு காரணமாகப் பதிவிறக்கத்தின் வேகம் குறையக்கூடும்</translation>
 <translation id="2647434099613338025">மொழியைச் சேர்</translation>
 <translation id="2649068648233607930">உங்கள் உலாவியை <ph name="DOMAIN" /> நிர்வகிக்கிறது</translation>
+<translation id="2650348088770008516">தனியுரிமை வழிகாட்டியின் விளக்கம் மூடப்பட்டது</translation>
 <translation id="2650751991977523696">ஃபைலை மீண்டும் பதிவிறக்கவா?</translation>
 <translation id="2651091186440431324">{FILE_COUNT,plural, =1{# ஆடியோ ஃபைல்}other{# ஆடியோ ஃபைல்கள் }}</translation>
 <translation id="265156376773362237">இயல்பான முன்கூட்டிய ஏற்றுதல்</translation>
@@ -313,6 +316,7 @@
 <translation id="2818669890320396765">உங்கள் அனைத்துச் சாதனங்களிலும் புத்தகக்குறிகளைப் பெற, உள்நுழைந்து, ஒத்திசைவை இயக்கவும்</translation>
 <translation id="2827278682606527653">ஃபீட் கார்டு மெனு பாதி அளவிற்குத் திறக்கப்பட்டுள்ளது</translation>
 <translation id="2830783625999891985">கிளிப்போர்டில் உள்ளவை மறைக்கப்பட்டது</translation>
+<translation id="2838367486340230368">தனியுரிமை வழிகாட்டியின் விளக்கம் பாதித் திரையில் காட்டப்பட்டுள்ளது</translation>
 <translation id="2839327205551510876"><ph name="SITE_NAME" /> தளத்தைப் பின்தொடர்வதை நிறுத்திவிட்டீர்கள்</translation>
 <translation id="2840810876587895427">{TAB_COUNT,plural, =1{<ph name="TAB_COUNT_ONE" /> மறைநிலைப் பக்கம் மூடப்படும்}other{<ph name="TAB_COUNT_MANY" /> மறைநிலைப் பக்கங்கள் மூடப்படும்}}</translation>
 <translation id="2841216154655874070">{NUM_DAYS,plural, =1{சரிபார்த்தது: 1 நாளுக்கு முன்பு}other{சரிபார்த்தது: # நாட்களுக்கு முன்பு}}</translation>
@@ -351,6 +355,7 @@
 <translation id="2996291259634659425">கடவுச்சொற்றொடரை உருவாக்கு</translation>
 <translation id="2996809686854298943">URL தேவை</translation>
 <translation id="2997081575621687554">ஒரு Google தளம் அதன் பக்கத்தில் இருக்கும் இணைப்புகளைத் தனிப்பட்ட முறையில் முன்கூட்டியே ஏற்றுமாறு கேட்கும்போது, Google சேவையகங்கள் மூலம் பக்கங்களை என்க்ரிப்ஷன் செய்து, அவற்றைக் குக்கீகள் இல்லாமல் Chrome முன்கூட்டியே ஏற்றும். இதனால், முன்கூட்டியே ஏற்றப்பட்ட தளத்துடன் உங்கள் அடையாளம் பகிரப்படாது.</translation>
+<translation id="3003733539450769656">ஆபத்தான நிகழ்வுகள் ஏற்படுவதற்கு முன்னரே அவற்றைப் பற்றி உங்களை எச்சரிக்கும்</translation>
 <translation id="3006881078666935414">பயன்பாட்டுத் தரவு இல்லை</translation>
 <translation id="301080557829842765">தனியுரிமை வழிகாட்டி</translation>
 <translation id="3016635187733453316">இந்தச் சாதனம் இணையத்துடன் இணைக்கப்பட்டுள்ளதை உறுதி செய்யவும்</translation>
@@ -363,6 +368,7 @@
 <translation id="3037517125981011456">Chromeமில் உள்நுழைவதற்கான அறிவிப்புகளைக் காட்டும்</translation>
 <translation id="3046945242843292318">அடுத்த முறை இந்தத் தளத்தை விரைவாக அணுகலாம்</translation>
 <translation id="3055259925215945098">புக்மார்க் நகர்த்தப்பட்டது</translation>
+<translation id="3055841435094910999">உங்கள் Chrome பயன்பாடு குறித்து Googleளுக்குத் தகவல் அனுப்பப்படும் என்றாலும் அது உங்கள் அடையாளத்துடன் இணைக்கப்படாது\n\nChrome செயலிழந்தது விட்டால் அதுகுறித்த விவரங்களில் உங்களுடைய சில தனிப்பட்ட தகவல்கள் இடம்பெறலாம்\n\nஒத்திசைவை இயக்கியிருந்தால் நீங்கள் பார்த்த URLகள் குறித்த தகவல்களும் அளவீடுகளில் இடம்பெறலாம்</translation>
 <translation id="3060635849835183725">{BOOKMARKS_COUNT,plural, =1{<ph name="BOOKMARKS_COUNT_ONE" /> புக்மார்க்}other{<ph name="BOOKMARKS_COUNT_MANY" /> புக்மார்க்குகள்}}</translation>
 <translation id="3062802207422175757">உங்களுக்குப் பிடித்த கட்டுரைகளை Chromeமில் படிக்கலாம்</translation>
 <translation id="3066573403916685335">கீழே நகர்த்து</translation>
@@ -696,6 +702,7 @@
 <translation id="5091199029769593641">விரைவில், புதிய பக்கத்தைத் திறக்கும்போது <ph name="SITE_NAME" /> தளத்தில் உள்ள கதைகள் காட்டப்படும். நீங்கள் பின்தொடரும் தளங்கள் உங்கள் Google கணக்கில் சேமிக்கப்படும். அவற்றை Discover அமைப்புகளில் நிர்வகிக்கலாம்.</translation>
 <translation id="5091249083535528968">கூடுதல் உபயோகத் தரவு</translation>
 <translation id="509429900233858213">பிழை ஏற்பட்டது.</translation>
+<translation id="5102401324271069229">எந்தத் தளமாவது உங்கள் கடவுச்சொல்லைத் திருட முயன்றாலோ தீங்கிழைக்கும் ஃபைலை நீங்கள் பதிவிறக்கினாலோ பக்க உள்ளடக்கத்தின் சிறிய பகுதிகள் உட்பட URLகளை பாதுகாப்பு உலாவலுக்கு Chrome அனுப்பக்கூடும்</translation>
 <translation id="510275257476243843">1 மணிநேரம் மீதமுள்ளது</translation>
 <translation id="5115811374190515607"><ph name="PRODUCT_NAME" /> இல்</translation>
 <translation id="5118713593561876160">ஆர்வங்கள்</translation>
@@ -992,6 +999,7 @@
 <translation id="6659594942844771486">தாவல்</translation>
 <translation id="666731172850799929"><ph name="APP_NAME" /> இல் திற</translation>
 <translation id="6671495933530132209">படத்தை நகலெடு</translation>
+<translation id="6674044799624355221">புதிய அச்சுறுத்தல்களைக் கண்டறிய உதவும் வகையில் பக்கங்கள், பதிவிறக்கங்கள், நீட்டிப்புச் செயல்பாடு, சிஸ்டம் தகவல் போன்ற சிலவற்றை அனுப்பும்</translation>
 <translation id="6674571176963658787">ஒத்திசைவைத் தொடங்க, கடவுச்சொற்றொடரை உள்ளிடவும்</translation>
 <translation id="6676840375528380067">இந்தச் சாதனத்திலிருந்து உங்கள் Chrome தரவை அழிக்கவா?</translation>
 <translation id="6684809838922667136">Chromeமைச் சிறந்ததாக்குங்கள்</translation>
@@ -1067,6 +1075,7 @@
 <translation id="7085332316435785646">Google சேவைகளில் மேலும் பிரத்தியேகமான அனுபவங்களைப் பெறுவதற்கு Chrome செயல்பாடுகளைச் சேர்க்க வேண்டுமா என்பதைத் தேர்வுசெய்யலாம்</translation>
 <translation id="7088681679121566888">Chrome சமீபத்திய பதிப்பில் உள்ளது</translation>
 <translation id="7093803425429738190">எமோடிகானைச் சேர்</translation>
+<translation id="7105047059074518658">சாதனங்களுக்கு இடையே எளிதாக உலாவ, உள்நுழையவும்</translation>
 <translation id="7106762743910369165">உங்கள் உலாவியை உங்கள் நிறுவனம் நிர்வகிக்கிறது</translation>
 <translation id="7121362699166175603">முகவரிப் பட்டியில் வரலாற்றையும் தானே நிரப்புதலையும் அழிக்கும். உங்கள் Google கணக்கு, <ph name="BEGIN_LINK" />myactivity.google.com<ph name="END_LINK" /> என்ற இணைப்பில் உலாவல் வரலாறு தொடர்பான பிற தகவல்களைக் கொண்டிருக்கக்கூடும்.</translation>
 <translation id="7138678301420049075">மற்றவை</translation>
@@ -1082,6 +1091,7 @@
 <translation id="7187993566681480880">Chromeமைப் பயன்படுத்தும்போது இது பாதுகாப்பை வழங்கும், அத்துடன் நீங்கள் பிற Google ஆப்ஸில் உள்நுழைந்திருக்கும்போது உங்கள் பாதுகாப்பை மேம்படுத்துவதற்காக இதைப் பயன்படுத்தலாம்.</translation>
 <translation id="718926126787620637">புக்மார்க் ஃபோல்டர்களின் பட்டியல் முழுத் திரையில் காட்டப்படுகிறது</translation>
 <translation id="7191430249889272776">தாவல் பின்புலத்தில் திறக்கப்பட்டது.</translation>
+<translation id="7196215469483532480">தனியுரிமை வழிகாட்டியின் விளக்கம் முழுத் திரையில் காட்டப்பட்டுள்ளது</translation>
 <translation id="7227218174981371415">{FILE_COUNT,plural, =1{ஒரு பதிவிறக்கம் நிலுவையில் உள்ளது}other{# பதிவிறக்கங்கள் நிலுவையில் உள்ளன}}</translation>
 <translation id="7242755609445462077">மெருகூட்டப்பட்ட ஹைலைட் <ph name="CURRENT_DATE" /></translation>
 <translation id="7248069434667874558">Chromeமில் <ph name="TARGET_DEVICE_NAME" /> சாதன ஒத்திசைவு ஆன் செய்யப்பட்டுள்ளதை உறுதி செய்யவும்</translation>
@@ -1176,11 +1186,13 @@
 <translation id="7757787379047923882">உரை <ph name="DEVICE_NAME" /> இலிருந்து பகிரப்பட்டுள்ளது</translation>
 <translation id="7761849928583394409">தேதியையும் நேரத்தையும் தேர்வுசெய்யுங்கள்</translation>
 <translation id="7762668264895820836">SD கார்டு <ph name="SD_CARD_NUMBER" /></translation>
+<translation id="7762928140712606393">கூடுதல் அம்சங்களுடன் Chromeமின் மிக உறுதியான பாதுகாப்பைப் பெற, உள்நுழையவும்</translation>
 <translation id="7764225426217299476">முகவரியைச் சேர்</translation>
 <translation id="7772032839648071052">கடவுச்சொற்றொடரை உறுதி செய்க</translation>
 <translation id="7772375229873196092"><ph name="APP_NAME" />ஐ மூடு</translation>
 <translation id="7774809984919390718">{PAYMENT_METHOD,plural, =1{<ph name="PAYMENT_METHOD_PREVIEW" />\u2026 மற்றும் <ph name="NUMBER_OF_ADDITIONAL_PAYMENT_METHODS" /> கட்டண முறை}other{<ph name="PAYMENT_METHOD_PREVIEW" />\u2026 மற்றும் <ph name="NUMBER_OF_ADDITIONAL_PAYMENT_METHODS" /> கட்டண முறைகள்}}</translation>
 <translation id="7778840695157240389">புதிய கட்டுரைகளைப் பார்க்க பின்னர் வந்து பாருங்கள்</translation>
+<translation id="7780645209293383778">Google ஆப்ஸ் முழுவதும் உங்களைப் பாதுகாக்க, நீங்கள் உள்நுழைந்திருக்கும்போது இந்தத் தரவை உங்கள் Google கணக்கில் தற்காலிகமாக இணைக்கும்</translation>
 <translation id="7786595606756654269">குரல் மூலம் இணையத்தில் தேடுவதற்கும் நீங்கள் திறந்திருக்கும் தளங்களைப் பயன்படுத்துவதற்கும் உதவுவதன் மூலம் Google Assistant உங்கள் அனுபவத்தை இன்னும் சிறப்பாக்குகிறது. Google Assistant மூலம் நீங்கள் பயன்படுத்தும் தளங்களின் URLலையும் உள்ளடக்கங்களையும் அது உள்வாங்கிக் கொள்ளும்.</translation>
 <translation id="7791543448312431591">சேர்</translation>
 <translation id="7798392620021911922"><ph name="TAB_COUNT" /> தாவல்கள் மீட்டெடுக்கப்பட்டன</translation>
@@ -1249,6 +1261,7 @@
 <translation id="8084285576995584326">உங்கள் Google கணக்கின் தரவைக் கட்டுப்படுத்தலாம்</translation>
 <translation id="808747664143081553">சாதனத்துடன் இணைக்கப்பட்டது</translation>
 <translation id="8088176524274673045">அருகிலுள்ளவர்களுடன் பகிர இந்த QR குறியீட்டை அவர்கள் ஸ்கேன் செய்ய வேண்டும்</translation>
+<translation id="8100969750121413114">விரும்பியவாறு Chromeமைப் பயன்படுத்த, உள்நுழையவும்</translation>
 <translation id="8103578431304235997">மறைநிலைத் தாவல்</translation>
 <translation id="8105613260829665809">தொடர்வதன் மூலம் <ph name="BEGIN_TOS_LINK" />சேவை விதிமுறைகளை<ph name="END_TOS_LINK" /> ஏற்கிறீர்கள்.\nஆப்ஸை மேம்படுத்த உதவும் வகையில் உபயோகத் தரவையும் சிதைவுத் தரவையும் Googleளுக்கு Chrome அனுப்பும். <ph name="BEGIN_UMA_LINK" />நிர்வகியுங்கள்<ph name="END_UMA_LINK" /></translation>
 <translation id="8105893657415066307"><ph name="DESCRIPTION" /> <ph name="SEPARATOR" /> <ph name="FILE_SIZE" /></translation>
@@ -1322,6 +1335,7 @@
 <translation id="8485434340281759656"><ph name="FILE_SIZE" /> <ph name="SEPARATOR" /> <ph name="DESCRIPTION" /></translation>
 <translation id="8489271220582375723">வரலாறு பக்கத்தைத் திறக்கும்</translation>
 <translation id="8493948351860045254">இடத்தைக் காலியாக்கு</translation>
+<translation id="8497480609928300907">தனியுரிமை வழிகாட்டியின் விளக்கம்</translation>
 <translation id="8497726226069778601">இதுவரை இங்கே காண்பதற்கு ஒன்றுமில்லை...</translation>
 <translation id="8503559462189395349">Chrome கடவுச்சொற்கள்</translation>
 <translation id="8503813439785031346">பயனர்பெயர்</translation>
diff --git a/chrome/browser/ui/android/strings/translations/android_chrome_strings_tr.xtb b/chrome/browser/ui/android/strings/translations/android_chrome_strings_tr.xtb
index c8892af..5f1cdac 100644
--- a/chrome/browser/ui/android/strings/translations/android_chrome_strings_tr.xtb
+++ b/chrome/browser/ui/android/strings/translations/android_chrome_strings_tr.xtb
@@ -102,6 +102,7 @@
 <translation id="1544826120773021464">Google hesabınızı yönetmek için "Hesabı yönet" düğmesine dokunun</translation>
 <translation id="1549000191223877751">Diğer pencereye git</translation>
 <translation id="1553358976309200471">Chrome'u güncelle</translation>
+<translation id="1554532453982918912">Size benzer kullanımı olan kişiler için Chrome'u daha iyi hale getirmemize yardımcı olun</translation>
 <translation id="1558391695376153246">Gizli sekmeleri kapat</translation>
 <translation id="1571304935088121812">Kullanıcı adını kopyala</translation>
 <translation id="1592864538817356322">Standart koruma:</translation>
@@ -248,6 +249,7 @@
 <translation id="2453860139492968684">Tamamlandı</translation>
 <translation id="2459390580524506445">Gelişmiş sesli arama</translation>
 <translation id="2461822463642141190">Mevcut güç tüketimi</translation>
+<translation id="2472163211318554013">Chrome'dan en iyi şekilde yararlanmak için oturum açın</translation>
 <translation id="247737702124049222">Resim açıklamaları açık</translation>
 <translation id="2482878487686419369">Bildirimler</translation>
 <translation id="2485422356828889247">Kaldır</translation>
@@ -283,6 +285,7 @@
 <translation id="2645657967708199252"><ph name="CONNECTION_TYPE" /> bağlantınız, indirme işleminizi yavaşlatabilir</translation>
 <translation id="2647434099613338025">Dil ekle</translation>
 <translation id="2649068648233607930">Tarayıcınız, <ph name="DOMAIN" /> tarafından yönetilmektedir</translation>
+<translation id="2650348088770008516">Gizlilik kılavuzu açıklaması kapatıldı</translation>
 <translation id="2650751991977523696">Dosya tekrar indirilsin mi?</translation>
 <translation id="2651091186440431324">{FILE_COUNT,plural, =1{# Ses dosyası}other{# Ses dosyası}}</translation>
 <translation id="265156376773362237">Standart önceden yükleme</translation>
@@ -313,6 +316,7 @@
 <translation id="2818669890320396765">Yer işaretlerinizi tüm cihazlarınızda almak için oturum açın ve senkronizasyonu etkinleştirin</translation>
 <translation id="2827278682606527653">Akış kartı menüsü yarıya kadar açık</translation>
 <translation id="2830783625999891985">Pano içerikleri gizlendi</translation>
+<translation id="2838367486340230368">Gizlilik kılavuzu açıklaması ekranın yarısına kadar açıldı</translation>
 <translation id="2839327205551510876"><ph name="SITE_NAME" /> takibi bırakıldı</translation>
 <translation id="2840810876587895427">{TAB_COUNT,plural, =1{<ph name="TAB_COUNT_ONE" /> gizli sekme kapatılacak}other{<ph name="TAB_COUNT_MANY" /> gizli sekme kapatılacak}}</translation>
 <translation id="2841216154655874070">{NUM_DAYS,plural, =1{1 gün önce kontrol edildi}other{# gün önce kontrol edildi}}</translation>
@@ -351,6 +355,7 @@
 <translation id="2996291259634659425">Parola oluşturun</translation>
 <translation id="2996809686854298943">URL gerekli</translation>
 <translation id="2997081575621687554">Bir Google sitesi kendi sayfasındaki bağlantıları gizli olarak önceden yüklemek istediğinde Chrome, sayfaları çerezler olmadan Google sunucuları aracılığıyla şifreler ve önceden yükler. Bu şekilde kimliğiniz önceden yüklenmiş siteden gizlenmiş olur.</translation>
+<translation id="3003733539450769656">Tehlikeli etkinlikler meydana gelmeden önce sizi uyarır</translation>
 <translation id="3006881078666935414">Kullanım verisi yok</translation>
 <translation id="301080557829842765">Gizlilik kılavuzu</translation>
 <translation id="3016635187733453316">Bu cihazın internete bağlı olduğundan emin olun</translation>
@@ -363,6 +368,7 @@
 <translation id="3037517125981011456">Chrome'da oturum açmak için istekleri gösterir</translation>
 <translation id="3046945242843292318">Gelecek sefer bu siteye daha hızlı ulaşın</translation>
 <translation id="3055259925215945098">Yer işareti taşındı</translation>
+<translation id="3055841435094910999">Chrome kullanımınızla ilgili Google'a bilgi gönderilir ancak bu bilgiler kimliğinizle ilişkilendirilmez\n\nChrome kilitlenirse bu kilitlenmeyle ilgili ayrıntılarda bazı kişisel bilgiler yer alabilir\n\nSenkronizasyonu açarsanız ziyaret ettiğiniz URL'ler hakkındaki bilgiler de metriklerde yer alabilir</translation>
 <translation id="3060635849835183725">{BOOKMARKS_COUNT,plural, =1{<ph name="BOOKMARKS_COUNT_ONE" /> yer işareti}other{<ph name="BOOKMARKS_COUNT_MANY" /> yer işareti}}</translation>
 <translation id="3062802207422175757">İlgilendiğiniz makaleler Chrome'da</translation>
 <translation id="3066573403916685335">Aşağı Git</translation>
@@ -696,6 +702,7 @@
 <translation id="5091199029769593641">Yakında yeni sekme açtığınızda <ph name="SITE_NAME" /> kaynağından haberler göreceksiniz. Takip ettiğiniz siteler Google hesabınıza kaydedilir. Bunları Keşfet ayarlarından yönetebilirsiniz.</translation>
 <translation id="5091249083535528968">Genişletilmiş kullanım verileri</translation>
 <translation id="509429900233858213">Bir hata oluştu.</translation>
+<translation id="5102401324271069229">Chrome, bir sitenin şifrenizi çalmaya çalışması veya zararlı bir dosya indirmeniz halinde Güvenli Tarama'ya sayfa içeriğinden parçalarla birlikte URL'ler gönderebilir</translation>
 <translation id="510275257476243843">1 saat kaldı</translation>
 <translation id="5115811374190515607">Hedef: <ph name="PRODUCT_NAME" /></translation>
 <translation id="5118713593561876160">İlgi alanları</translation>
@@ -992,6 +999,7 @@
 <translation id="6659594942844771486">Sekme</translation>
 <translation id="666731172850799929"><ph name="APP_NAME" /> uygulamasında aç</translation>
 <translation id="6671495933530132209">Resmi kopyala</translation>
+<translation id="6674044799624355221">Ayrıca yeni tehditlerin keşfedilmesine yardımcı olmak için sayfalar, indirmeler, uzantı etkinliği ve sistem bilgilerinden küçük bir örnek gönderir</translation>
 <translation id="6674571176963658787">Senkronizasyonu başlatmak için parolanızı girin</translation>
 <translation id="6676840375528380067">Chrome verileriniz bu cihazdan temizlensin mi?</translation>
 <translation id="6684809838922667136">Chrome'u daha iyi hale getirin</translation>
@@ -1067,6 +1075,7 @@
 <translation id="7085332316435785646">Google hizmetlerinde daha fazla kişiselleştirilmiş deneyimden faydalanmak için Chrome geçmişinin eklenip eklenmeyeceğini seçin</translation>
 <translation id="7088681679121566888">Chrome güncel</translation>
 <translation id="7093803425429738190">İfade ekle</translation>
+<translation id="7105047059074518658">Cihazlar arasında daha kolay göz atmak için oturum açın</translation>
 <translation id="7106762743910369165">Tarayıcınız, kuruluşunuz tarafından yönetilmektedir</translation>
 <translation id="7121362699166175603">Geçmişi ve adres çubuğundaki otomatik tamamlamaları temizler. Google Hesabınızın <ph name="BEGIN_LINK" />myactivity.google.com<ph name="END_LINK" /> adresinde başka biçimlerde tarama geçmişi olabilir.</translation>
 <translation id="7138678301420049075">Diğer</translation>
@@ -1082,6 +1091,7 @@
 <translation id="7187993566681480880">Chrome'da güvende kalmanızı sağlar ve oturum açtığınızda diğer Google uygulamalarındaki güvenliğinizi artırmak için kullanılabilir.</translation>
 <translation id="718926126787620637">Yer işareti klasörlerinin listesi tam ekranda açıldı</translation>
 <translation id="7191430249889272776">Sekme arka planda açıldı.</translation>
+<translation id="7196215469483532480">Gizlilik kılavuzu açıklaması tam ekranda açıldı</translation>
 <translation id="7227218174981371415">{FILE_COUNT,plural, =1{1 indirme işlemi beklemede}other{# indirme işlemi beklemede}}</translation>
 <translation id="7242755609445462077">Stil eklenmiş vurgu <ph name="CURRENT_DATE" /></translation>
 <translation id="7248069434667874558"><ph name="TARGET_DEVICE_NAME" /> cihazının Chrome'da senkronizasyonunun açık olduğundan emin olun</translation>
@@ -1176,11 +1186,13 @@
 <translation id="7757787379047923882">Metin, <ph name="DEVICE_NAME" /> cihazından paylaşıldı</translation>
 <translation id="7761849928583394409">Tarih ve saat seçin</translation>
 <translation id="7762668264895820836">SD Kart <ph name="SD_CARD_NUMBER" /></translation>
+<translation id="7762928140712606393">Ek özellikler ve Chrome’un en güçlü güvenlik özellikleri için oturum açın</translation>
 <translation id="7764225426217299476">Adres ekle</translation>
 <translation id="7772032839648071052">Parolayı onayla</translation>
 <translation id="7772375229873196092"><ph name="APP_NAME" /> penceresini kapat</translation>
 <translation id="7774809984919390718">{PAYMENT_METHOD,plural, =1{<ph name="PAYMENT_METHOD_PREVIEW" />\u2026 ve <ph name="NUMBER_OF_ADDITIONAL_PAYMENT_METHODS" /> ödeme yöntemi daha}other{<ph name="PAYMENT_METHOD_PREVIEW" />\u2026 ve <ph name="NUMBER_OF_ADDITIONAL_PAYMENT_METHODS" /> ödeme yöntemi daha}}</translation>
 <translation id="7778840695157240389">Yeni hikaye için daha sonra tekrar kontrol edin</translation>
+<translation id="7780645209293383778">Sizi Google uygulamalarında korumak için oturumunuz açıkken bu verileri geçici olarak Google Hesabınıza bağlar</translation>
 <translation id="7786595606756654269">Google Asistan hem web'de arama yapmak hem de açtığınız sitelerle etkileşim kurmak için daha iyi ses deneyimi sağlar. Google Asistan, Asistan'ı kullandığınız sitelerin URL'leri ile içeriklerini alır.</translation>
 <translation id="7791543448312431591">Ekle</translation>
 <translation id="7798392620021911922"><ph name="TAB_COUNT" /> sekme geri yüklendi</translation>
@@ -1249,6 +1261,7 @@
 <translation id="8084285576995584326">Google Hesabı verilerinizi yönetin</translation>
 <translation id="808747664143081553">Cihaza bağlandı</translation>
 <translation id="8088176524274673045">Yakınlardaki kişilerle paylaşmak için bu QR Kodunu taramalarını sağlayın</translation>
+<translation id="8100969750121413114">Chrome'u kendinize uyarlamak için oturum açın</translation>
 <translation id="8103578431304235997">Gizli Sekme</translation>
 <translation id="8105613260829665809">Devam ederek <ph name="BEGIN_TOS_LINK" />Hizmet Şartları<ph name="END_TOS_LINK" />'nı kabul etmiş olursunuz.\nChrome, uygulamanın iyileştirilmesine yardımcı olmak için kullanım ve kilitlenme verilerini Google'a gönderir. <ph name="BEGIN_UMA_LINK" />Yönet<ph name="END_UMA_LINK" /></translation>
 <translation id="8105893657415066307"><ph name="DESCRIPTION" /> <ph name="SEPARATOR" /> <ph name="FILE_SIZE" /></translation>
@@ -1322,6 +1335,7 @@
 <translation id="8485434340281759656"><ph name="FILE_SIZE" /> <ph name="SEPARATOR" /> <ph name="DESCRIPTION" /></translation>
 <translation id="8489271220582375723">Geçmiş sayfasını açar</translation>
 <translation id="8493948351860045254">Yer aç</translation>
+<translation id="8497480609928300907">Gizlilik kılavuzu açıklaması</translation>
 <translation id="8497726226069778601">Burada görülecek bir şey yok… henüz</translation>
 <translation id="8503559462189395349">Chrome Şifreleri</translation>
 <translation id="8503813439785031346">Kullanıcı adı</translation>
diff --git a/chrome/browser/ui/android/strings/translations/android_chrome_strings_uk.xtb b/chrome/browser/ui/android/strings/translations/android_chrome_strings_uk.xtb
index fe460cd..2dbe6cc 100644
--- a/chrome/browser/ui/android/strings/translations/android_chrome_strings_uk.xtb
+++ b/chrome/browser/ui/android/strings/translations/android_chrome_strings_uk.xtb
@@ -102,6 +102,7 @@
 <translation id="1544826120773021464">Щоб налаштувати обліковий запис Google, натисніть кнопку "Керувати обліковим записом"</translation>
 <translation id="1549000191223877751">Відкрити в іншому вікні</translation>
 <translation id="1553358976309200471">Оновити Chrome</translation>
+<translation id="1554532453982918912">Допоможіть покращити Chrome для інших користувачів</translation>
 <translation id="1558391695376153246">Закрити анонімні вкладки</translation>
 <translation id="1571304935088121812">Копіювати ім’я користувача</translation>
 <translation id="1592864538817356322">Стандартний захист:</translation>
@@ -248,6 +249,7 @@
 <translation id="2453860139492968684">Готово</translation>
 <translation id="2459390580524506445">Покращений голосовий пошук</translation>
 <translation id="2461822463642141190">Енергоспоживання</translation>
+<translation id="2472163211318554013">Увійдіть, щоб користуватися всіма можливостями Chrome</translation>
 <translation id="247737702124049222">Описи зображень увімкнено</translation>
 <translation id="2482878487686419369">Сповіщення</translation>
 <translation id="2485422356828889247">Видалити</translation>
@@ -283,6 +285,7 @@
 <translation id="2645657967708199252">Завантаження через підключення <ph name="CONNECTION_TYPE" /> може бути повільнішим</translation>
 <translation id="2647434099613338025">Додати мову</translation>
 <translation id="2649068648233607930">Вашим веб-переглядачем керує <ph name="DOMAIN" /></translation>
+<translation id="2650348088770008516">Пояснення про посібник щодо конфіденційності закрито</translation>
 <translation id="2650751991977523696">Завантажити файл ще раз?</translation>
 <translation id="2651091186440431324">{FILE_COUNT,plural, =1{# аудіофайл}one{# аудіофайл}few{# аудіофайли}many{# аудіофайлів}other{# аудіофайлу}}</translation>
 <translation id="265156376773362237">Звичайне попереднє завантаження</translation>
@@ -313,6 +316,7 @@
 <translation id="2818669890320396765">Щоб мати доступ до закладок на всіх своїх пристроях, увійдіть в обліковий запис і ввімкніть синхронізацію</translation>
 <translation id="2827278682606527653">Меню картки зі стрічки відкрито на половину висоти</translation>
 <translation id="2830783625999891985">Вміст буфера обміну сховано</translation>
+<translation id="2838367486340230368">Пояснення про посібник щодо конфіденційності відкрито на половину висоти</translation>
 <translation id="2839327205551510876">Підписку на сайт "<ph name="SITE_NAME" />" скасовано</translation>
 <translation id="2840810876587895427">{TAB_COUNT,plural, =1{<ph name="TAB_COUNT_ONE" /> анонімну вкладку буде закрито}one{<ph name="TAB_COUNT_MANY" /> анонімну вкладку буде закрито}few{<ph name="TAB_COUNT_MANY" /> анонімні вкладки буде закрито}many{<ph name="TAB_COUNT_MANY" /> анонімних вкладок буде закрито}other{<ph name="TAB_COUNT_MANY" /> анонімної вкладки буде закрито}}</translation>
 <translation id="2841216154655874070">{NUM_DAYS,plural, =1{Перевірено 1 день тому}one{Перевірено # день тому}few{Перевірено # дні тому}many{Перевірено # днів тому}other{Перевірено # дня тому}}</translation>
@@ -351,6 +355,7 @@
 <translation id="2996291259634659425">Створити парольну фразу</translation>
 <translation id="2996809686854298943">Потрібна URL-адреса</translation>
 <translation id="2997081575621687554">Коли сайт Google надсилає запит на приватне попереднє завантаження посилань на його сторінці, Chrome шифрує та попередньо завантажує сторінки через сервери Google без файлів cookie. Таким чином вашу особу не можна визначити через попередньо завантажений сайт.</translation>
+<translation id="3003733539450769656">Повідомляє про небезпечні події до того, як вони відбудуться</translation>
 <translation id="3006881078666935414">Немає даних про використання</translation>
 <translation id="301080557829842765">Посібник щодо конфіденційності</translation>
 <translation id="3016635187733453316">Перевірте, чи пристрій підключено до Інтернету</translation>
@@ -363,6 +368,7 @@
 <translation id="3037517125981011456">Показувати сповіщення для входу в Chrome</translation>
 <translation id="3046945242843292318">Переходьте на цей сайт швидше</translation>
 <translation id="3055259925215945098">Закладку переміщено</translation>
+<translation id="3055841435094910999">Інформація про ваше використання Chrome надсилається в Google, але не пов’язується з вами\n\nЯкщо в Chrome виникає збій, відомості про нього можуть містити особисту інформацію\n\nЯкщо ви ввімкнете синхронізацію, показники також можуть містити дані про відвідані URL-адреси</translation>
 <translation id="3060635849835183725">{BOOKMARKS_COUNT,plural, =1{<ph name="BOOKMARKS_COUNT_ONE" /> закладка}one{<ph name="BOOKMARKS_COUNT_MANY" /> закладка}few{<ph name="BOOKMARKS_COUNT_MANY" /> закладки}many{<ph name="BOOKMARKS_COUNT_MANY" /> закладок}other{<ph name="BOOKMARKS_COUNT_MANY" /> закладки}}</translation>
 <translation id="3062802207422175757">Статті на цікаві вам теми в Chrome</translation>
 <translation id="3066573403916685335">Перемістити курсор униз</translation>
@@ -696,6 +702,7 @@
 <translation id="5091199029769593641">Незабаром, відкривши нову вкладку, ви будете бачити історії із сайту <ph name="SITE_NAME" />. Сайти, на які ви підписалися, зберігаються в обліковому записі Google. Керувати ними можна в налаштуваннях рекомендацій.</translation>
 <translation id="5091249083535528968">Розширені дані про використання</translation>
 <translation id="509429900233858213">Сталася помилка.</translation>
+<translation id="5102401324271069229">Якщо сайт намагається викрасти ваш пароль або ви завантажуєте шкідливий файл, Chrome може надсилати в Безпечний перегляд URL-адреси, зокрема уривки контенту сторінки</translation>
 <translation id="510275257476243843">Залишилась 1 година</translation>
 <translation id="5115811374190515607">в <ph name="PRODUCT_NAME" /></translation>
 <translation id="5118713593561876160">Інтереси</translation>
@@ -992,6 +999,7 @@
 <translation id="6659594942844771486">Вкладка</translation>
 <translation id="666731172850799929">Відкрити в програмі <ph name="APP_NAME" /></translation>
 <translation id="6671495933530132209">Копіювати зображення</translation>
+<translation id="6674044799624355221">Надсилає невеликі зразки сторінок, завантаження, дані про дії розширень та інформацію про систему, щоб виявляти нові загрози</translation>
 <translation id="6674571176963658787">Щоб почати синхронізацію, введіть парольну фразу</translation>
 <translation id="6676840375528380067">Видалити дані Chrome із цього пристрою?</translation>
 <translation id="6684809838922667136">Покращте Chrome</translation>
@@ -1067,6 +1075,7 @@
 <translation id="7085332316435785646">Укажіть, чи включати історію Chrome, щоб ми краще персоналізували роботу сервісів Google</translation>
 <translation id="7088681679121566888">Chrome оновлено</translation>
 <translation id="7093803425429738190">Додати емоцію</translation>
+<translation id="7105047059074518658">Увійдіть, щоб простіше переглядати сторінки на всіх пристроях</translation>
 <translation id="7106762743910369165">Ваша організація керує веб-переглядачем</translation>
 <translation id="7121362699166175603">Видалення історії й варіантів автозавершень в адресному рядку. Історія веб-перегляду може також зберігатися у вашому обліковому записі Google на сторінці <ph name="BEGIN_LINK" />myactivity.google.com<ph name="END_LINK" />.</translation>
 <translation id="7138678301420049075">Інше</translation>
@@ -1082,6 +1091,7 @@
 <translation id="7187993566681480880">Захищає вас у Chrome і може покращувати безпеку в інших додатках Google після входу в обліковий запис.</translation>
 <translation id="718926126787620637">Список папок із закладками відкрито на всю висоту</translation>
 <translation id="7191430249889272776">Вкладку відкрито у фоновому режимі.</translation>
+<translation id="7196215469483532480">Пояснення про посібник щодо конфіденційності відкрито на всю висоту</translation>
 <translation id="7227218174981371415">{FILE_COUNT,plural, =1{Очікується 1 завантаження}one{Очікується # завантаження}few{Очікується # завантаження}many{Очікується # завантажень}other{Очікується # завантаження}}</translation>
 <translation id="7242755609445462077">Стилізований виділений текст: <ph name="CURRENT_DATE" /></translation>
 <translation id="7248069434667874558">Переконайтеся, що на пристрої <ph name="TARGET_DEVICE_NAME" /> увімкнено синхронізацію в Chrome</translation>
@@ -1176,11 +1186,13 @@
 <translation id="7757787379047923882">Текст, надісланий із пристрою <ph name="DEVICE_NAME" /></translation>
 <translation id="7761849928583394409">Вибрати дату й час</translation>
 <translation id="7762668264895820836">Карта SD <ph name="SD_CARD_NUMBER" /></translation>
+<translation id="7762928140712606393">Увійдіть, щоб увімкнути додаткові функції та найвищий рівень безпеки в Chrome</translation>
 <translation id="7764225426217299476">Додати адресу</translation>
 <translation id="7772032839648071052">Підтвердити парольну фразу</translation>
 <translation id="7772375229873196092">Закрити додаток <ph name="APP_NAME" /></translation>
 <translation id="7774809984919390718">{PAYMENT_METHOD,plural, =1{<ph name="PAYMENT_METHOD_PREVIEW" />\u2026 і ще <ph name="NUMBER_OF_ADDITIONAL_PAYMENT_METHODS" />}one{<ph name="PAYMENT_METHOD_PREVIEW" />\u2026 і ще <ph name="NUMBER_OF_ADDITIONAL_PAYMENT_METHODS" />}few{<ph name="PAYMENT_METHOD_PREVIEW" />\u2026 і ще <ph name="NUMBER_OF_ADDITIONAL_PAYMENT_METHODS" />}many{<ph name="PAYMENT_METHOD_PREVIEW" />\u2026 і ще <ph name="NUMBER_OF_ADDITIONAL_PAYMENT_METHODS" />}other{<ph name="PAYMENT_METHOD_PREVIEW" />\u2026 і ще <ph name="NUMBER_OF_ADDITIONAL_PAYMENT_METHODS" />}}</translation>
 <translation id="7778840695157240389">Повертайтеся пізніше, щоб переглянути останні новини</translation>
+<translation id="7780645209293383778">Тимчасово зв’язує ці дані з обліковим записом Google, у який ви ввійшли, щоб захищати вас у всіх додатках Google</translation>
 <translation id="7786595606756654269">З Google Асистентом голосовий пошук в Інтернеті та взаємодія з відкритими веб-сайтами стануть кращими. Асистент отримуватиме URL-адреси та контент веб-сайтів, на яких ви користуєтеся ним.</translation>
 <translation id="7791543448312431591">Додати</translation>
 <translation id="7798392620021911922">Відновлено стільки вкладок: <ph name="TAB_COUNT" /></translation>
@@ -1249,6 +1261,7 @@
 <translation id="8084285576995584326">Керуйте даними свого облікового запису Google</translation>
 <translation id="808747664143081553">Підключено до пристрою</translation>
 <translation id="8088176524274673045">Щоб ділитися даними з людьми поблизу, дозвольте їм зісканувати цей QR-код</translation>
+<translation id="8100969750121413114">Увійдіть, щоб персоналізувати Chrome</translation>
 <translation id="8103578431304235997">Анонімна вкладка</translation>
 <translation id="8105613260829665809">Продовжуючи, ви приймаєте <ph name="BEGIN_TOS_LINK" />Умови використання<ph name="END_TOS_LINK" />.\nЩоб покращити додаток, Chrome надсилає дані про використання та збої в Google. <ph name="BEGIN_UMA_LINK" />Керувати<ph name="END_UMA_LINK" /></translation>
 <translation id="8105893657415066307"><ph name="DESCRIPTION" /> <ph name="SEPARATOR" /> <ph name="FILE_SIZE" /></translation>
@@ -1322,6 +1335,7 @@
 <translation id="8485434340281759656"><ph name="FILE_SIZE" /> <ph name="SEPARATOR" /> <ph name="DESCRIPTION" /></translation>
 <translation id="8489271220582375723">Відкрити сторінку "Історія"</translation>
 <translation id="8493948351860045254">Звільнити місце</translation>
+<translation id="8497480609928300907">Пояснення про посібник щодо конфіденційності</translation>
 <translation id="8497726226069778601">Тут ще нічого немає…</translation>
 <translation id="8503559462189395349">Паролі Chrome</translation>
 <translation id="8503813439785031346">Ім’я користувача</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 45f382f..e1362e6 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
@@ -249,7 +249,7 @@
 <translation id="2453860139492968684">完成</translation>
 <translation id="2459390580524506445">加強版語音搜尋</translation>
 <translation id="2461822463642141190">電流</translation>
-<translation id="2472163211318554013">登入以充分運用 Chrome 的各項功能</translation>
+<translation id="2472163211318554013">登入以充分運用 Chrome 的所有功能</translation>
 <translation id="247737702124049222">圖片描述功能已開啟</translation>
 <translation id="2482878487686419369">通知</translation>
 <translation id="2485422356828889247">解除安裝</translation>
@@ -285,7 +285,7 @@
 <translation id="2645657967708199252"><ph name="CONNECTION_TYPE" /> 連線可能會減慢下載速度</translation>
 <translation id="2647434099613338025">新增語言</translation>
 <translation id="2649068648233607930">您的瀏覽器由 <ph name="DOMAIN" /> 管理</translation>
-<translation id="2650348088770008516">已關閉隱私權指南說明</translation>
+<translation id="2650348088770008516">閂咗私隱權指南說明</translation>
 <translation id="2650751991977523696">要重新下載檔案嗎?</translation>
 <translation id="2651091186440431324">{FILE_COUNT,plural, =1{# 個音訊檔案}other{# 個音訊檔案}}</translation>
 <translation id="265156376773362237">標準預先載入模式</translation>
@@ -316,7 +316,7 @@
 <translation id="2818669890320396765">如要將書籤同步到所有裝置,請登入並開啟同步處理功能</translation>
 <translation id="2827278682606527653">Feed card menu half height</translation>
 <translation id="2830783625999891985">隱藏咗剪貼簿嘅內容</translation>
-<translation id="2838367486340230368">隱私權指南說明已開啟,顯示在畫面下半部</translation>
+<translation id="2838367486340230368">私隱權指南說明宜家顯示喺畫面下半部</translation>
 <translation id="2839327205551510876">已取消追蹤 <ph name="SITE_NAME" /></translation>
 <translation id="2840810876587895427">{TAB_COUNT,plural, =1{即將關閉 <ph name="TAB_COUNT_ONE" /> 個無痕式分頁}other{即將關閉 <ph name="TAB_COUNT_MANY" /> 個無痕式分頁}}</translation>
 <translation id="2841216154655874070">{NUM_DAYS,plural, =1{曾在 1 天前檢查}other{曾在 # 天前檢查}}</translation>
@@ -355,7 +355,7 @@
 <translation id="2996291259634659425">建立密碼短語</translation>
 <translation id="2996809686854298943">請提供網址</translation>
 <translation id="2997081575621687554">當 Google 網站要求以私密方式預先載入網頁上的連結時,Chrome 會透過 Google 伺服器對該連結加密並預先載入網頁,且不會使用 Cookie。這麼做可在預先載入網站中隱藏您的身分。</translation>
-<translation id="3003733539450769656">可在不安全事件發生前顯示警告訊息</translation>
+<translation id="3003733539450769656">在危險事件發生前發出警告</translation>
 <translation id="3006881078666935414">沒有使用情況資料</translation>
 <translation id="301080557829842765">私隱權指南</translation>
 <translation id="3016635187733453316">請確保此裝置已連接互聯網</translation>
@@ -368,7 +368,7 @@
 <translation id="3037517125981011456">顯示登入 Chrome 的指示</translation>
 <translation id="3046945242843292318">之後可更快前往此網站</translation>
 <translation id="3055259925215945098">已移動書籤</translation>
-<translation id="3055841435094910999">系統會將 Chrome 使用情形資訊傳送給 Google,但不會與你相連結\n\nChrome 當機時,有關當機的詳細資料可能會包含一些個人資訊\n\n開啟同步處理功能後,指標可能也會包含先前造訪網址的資訊</translation>
+<translation id="3055841435094910999">系統會將 Chrome 使用情況傳送給 Google,但不會與您有任何關聯\n\nChrome 當機時,有關當機詳情可能會包括部分個人資料\n\n開啟同步處理功能後,數據可能亦會包括先前瀏覽網址的資料</translation>
 <translation id="3060635849835183725">{BOOKMARKS_COUNT,plural, =1{<ph name="BOOKMARKS_COUNT_ONE" /> 個書籤}other{<ph name="BOOKMARKS_COUNT_MANY" /> 個書籤}}</translation>
 <translation id="3062802207422175757">您感興趣的文章和內容,一切盡在 Chrome</translation>
 <translation id="3066573403916685335">向下移動</translation>
@@ -702,7 +702,7 @@
 <translation id="5091199029769593641">不久後,您將會在開啟新分頁時看到 <ph name="SITE_NAME" /> 的內容。您追蹤的網站會儲存在 Google 帳戶中。您可在「探索」設定中管理已儲存的網站。</translation>
 <translation id="5091249083535528968">延伸使用情況資料</translation>
 <translation id="509429900233858213">發生錯誤。</translation>
-<translation id="5102401324271069229">如果有網站試圖竊取你的密碼,或當你下載有害檔案時,Chrome 可能會將網址 (包括部分網頁內容) 傳送至安全瀏覽功能</translation>
+<translation id="5102401324271069229">如果有網站試圖盜取您的密碼,或當您下載有害檔案時,Chrome 可能將網址 (包括部分網頁內容) 傳送至「安全瀏覽」功能</translation>
 <translation id="510275257476243843">尚餘 1 小時</translation>
 <translation id="5115811374190515607">移至<ph name="PRODUCT_NAME" /></translation>
 <translation id="5118713593561876160">興趣</translation>
@@ -999,7 +999,7 @@
 <translation id="6659594942844771486">分頁</translation>
 <translation id="666731172850799929">在「<ph name="APP_NAME" />」中開啟</translation>
 <translation id="6671495933530132209">複製圖片</translation>
-<translation id="6674044799624355221">系統會傳送少量網頁、下載內容、擴充功能活動和系統資訊,協助找出新威脅</translation>
+<translation id="6674044799624355221">傳送網頁、下載檔案、擴充程式活動及系統資料的少量抽樣資料,以協助發現新威脅</translation>
 <translation id="6674571176963658787">如要開始同步處理,請輸入密碼短語</translation>
 <translation id="6676840375528380067">要清除此裝置上的 Chrome 資料嗎?</translation>
 <translation id="6684809838922667136">協助改善 Chrome</translation>
@@ -1091,7 +1091,7 @@
 <translation id="7187993566681480880">確保您登入使用 Chrome 的安全,並可提升您在其他 Google 應用程式的安全性。</translation>
 <translation id="718926126787620637">書籤資料夾清單宜家顯示喺成個畫面</translation>
 <translation id="7191430249889272776">已在背景開啟分頁。</translation>
-<translation id="7196215469483532480">隱私權指南說明已開啟,顯示於整個畫面</translation>
+<translation id="7196215469483532480">私隱權指南說明宜家顯示喺成個畫面</translation>
 <translation id="7227218174981371415">{FILE_COUNT,plural, =1{1 項下載操作尚待處理}other{# 項下載操作尚待處理}}</translation>
 <translation id="7242755609445462077">風格化突顯內容 (日期:<ph name="CURRENT_DATE" />)</translation>
 <translation id="7248069434667874558">請確認 <ph name="TARGET_DEVICE_NAME" /> 已開啟 Chrome 的同步處理功能。</translation>
@@ -1192,7 +1192,7 @@
 <translation id="7772375229873196092">關閉 <ph name="APP_NAME" /></translation>
 <translation id="7774809984919390718">{PAYMENT_METHOD,plural, =1{<ph name="PAYMENT_METHOD_PREVIEW" />\u2026 和另外 <ph name="NUMBER_OF_ADDITIONAL_PAYMENT_METHODS" /> 種付款方式}other{<ph name="PAYMENT_METHOD_PREVIEW" />\u2026 和另外 <ph name="NUMBER_OF_ADDITIONAL_PAYMENT_METHODS" /> 種付款方式}}</translation>
 <translation id="7778840695157240389">請稍後回來查看新的報導</translation>
-<translation id="7780645209293383778">登入 Google 帳戶後,系統會將這些資料暫時連結至你的帳戶,以便在你使用各個 Google 應用程式時提供保護</translation>
+<translation id="7780645209293383778">當您登入 Google 帳戶時,這些資料會暫時連結至您的帳戶,保護各個 Google 應用程式使用安全</translation>
 <translation id="7786595606756654269">當您搜尋網絡及瀏覽已開啟的網站時,「Google 助理」將為您提供更好的語音體驗。系統會將您所在網站的網址及內容傳送給「Google 助理」。</translation>
 <translation id="7791543448312431591">新增</translation>
 <translation id="7798392620021911922">還原咗 <ph name="TAB_COUNT" /> 個分頁</translation>
@@ -1261,7 +1261,7 @@
 <translation id="8084285576995584326">控制 Google 帳戶資料</translation>
 <translation id="808747664143081553">已連接裝置</translation>
 <translation id="8088176524274673045">如要與附近的使用者分享,請讓對方掃瞄此 QR 碼</translation>
-<translation id="8100969750121413114">登入即可打造專屬的 Chrome</translation>
+<translation id="8100969750121413114">登入即可自訂專屬的 Chrome</translation>
 <translation id="8103578431304235997">無痕式分頁</translation>
 <translation id="8105613260829665809">繼續即表示您同意《<ph name="BEGIN_TOS_LINK" />服務條款<ph name="END_TOS_LINK" />》。\nChrome 會向 Google 傳送使用情況和當機資料,以協助改善應用程式。<ph name="BEGIN_UMA_LINK" />管理<ph name="END_UMA_LINK" /></translation>
 <translation id="8105893657415066307"><ph name="DESCRIPTION" /> <ph name="SEPARATOR" /> <ph name="FILE_SIZE" /></translation>
@@ -1335,7 +1335,7 @@
 <translation id="8485434340281759656"><ph name="FILE_SIZE" /> <ph name="SEPARATOR" /> <ph name="DESCRIPTION" /></translation>
 <translation id="8489271220582375723">開啟記錄頁面</translation>
 <translation id="8493948351860045254">釋出儲存空間</translation>
-<translation id="8497480609928300907">隱私權指南說明</translation>
+<translation id="8497480609928300907">私隱權指南說明</translation>
 <translation id="8497726226069778601">這裡尚未顯示任何內容…</translation>
 <translation id="8503559462189395349">Chrome 密碼</translation>
 <translation id="8503813439785031346">用戶名稱</translation>
diff --git a/chrome/browser/ui/android/webid/internal/java/res/layout/account_selection_header_item.xml b/chrome/browser/ui/android/webid/internal/java/res/layout/account_selection_header_item.xml
index bb3fe933..2abbf10 100644
--- a/chrome/browser/ui/android/webid/internal/java/res/layout/account_selection_header_item.xml
+++ b/chrome/browser/ui/android/webid/internal/java/res/layout/account_selection_header_item.xml
@@ -10,7 +10,7 @@
     xmlns:app="http://schemas.android.com/apk/res-auto"
     android:layout_width="match_parent"
     android:layout_height="wrap_content"
-    android:layout_marginTop="8dp"
+    android:layout_marginTop="12dp"
     android:layout_marginBottom="16dp"
     android:layout_gravity="top"
     android:orientation="horizontal"
@@ -25,7 +25,6 @@
         android:id="@+id/header_title"
         android:layout_width="match_parent"
         android:layout_height="wrap_content"
-        android:layout_marginBottom="8dp"
         android:textAppearance="@style/TextAppearance.Headline.Primary"/>
     <TextView
         android:id="@+id/header_idp_url"
diff --git a/chrome/browser/ui/signin/dice_web_signin_interceptor_delegate.cc b/chrome/browser/ui/signin/dice_web_signin_interceptor_delegate.cc
index c8c0fff71..abdad0f 100644
--- a/chrome/browser/ui/signin/dice_web_signin_interceptor_delegate.cc
+++ b/chrome/browser/ui/signin/dice_web_signin_interceptor_delegate.cc
@@ -9,9 +9,6 @@
 #include "base/callback.h"
 #include "base/feature_list.h"
 #include "base/memory/raw_ptr.h"
-#include "build/build_config.h"
-#include "build/chromeos_buildflags.h"
-#include "chrome/browser/signin/dice_web_signin_interceptor.h"
 #include "chrome/browser/signin/identity_manager_factory.h"
 #include "chrome/browser/signin/signin_features.h"
 #include "chrome/browser/themes/theme_service.h"
@@ -19,7 +16,6 @@
 #include "chrome/browser/ui/browser.h"
 #include "chrome/browser/ui/browser_finder.h"
 #include "chrome/browser/ui/browser_window.h"
-#include "chrome/browser/ui/ui_features.h"
 #include "chrome/browser/ui/webui/signin/dice_turn_sync_on_helper.h"
 #include "components/signin/public/base/signin_metrics.h"
 #include "components/signin/public/identity_manager/identity_manager.h"
@@ -66,32 +62,11 @@
  private:
   void ShowEnterpriseProfileInterceptionDialog(const AccountInfo& account_info,
                                                SkColor profile_color) {
-#if BUILDFLAG(IS_WIN) || BUILDFLAG(IS_MAC) || BUILDFLAG(IS_LINUX) || \
-    BUILDFLAG(IS_CHROMEOS_LACROS)
-    if (base::FeatureList::IsEnabled(kAccountPoliciesLoadedWithoutSync)) {
-      browser_->signin_view_controller()->ShowModalEnterpriseConfirmationDialog(
-          account_info, profile_color,
-          base::BindOnce(&ForcedEnterpriseSigninInterceptionHandle::
-                             OnEnterpriseInterceptionDialogClosed,
-                         base::Unretained(this)));
-      return;
-    }
-#endif
-    DiceTurnSyncOnHelper::Delegate::ShowEnterpriseAccountConfirmationForBrowser(
-        account_info.email, true,
-        base::BindOnce(
-            [](base::OnceCallback<void(bool)> callback,
-               DiceTurnSyncOnHelper::SigninChoice choice) {
-              std::move(callback).Run(
-                  choice == DiceTurnSyncOnHelper::SigninChoice::
-                                SIGNIN_CHOICE_CONTINUE ||
-                  choice == DiceTurnSyncOnHelper::SigninChoice::
-                                SIGNIN_CHOICE_NEW_PROFILE);
-            },
-            base::BindOnce(&ForcedEnterpriseSigninInterceptionHandle::
-                               OnEnterpriseInterceptionDialogClosed,
-                           base::Unretained(this))),
-        browser_);
+    browser_->signin_view_controller()->ShowModalEnterpriseConfirmationDialog(
+        account_info, profile_color,
+        base::BindOnce(&ForcedEnterpriseSigninInterceptionHandle::
+                           OnEnterpriseInterceptionDialogClosed,
+                       base::Unretained(this)));
   }
 
   void OnEnterpriseInterceptionDialogClosed(bool create_profile) {
diff --git a/chrome/browser/ui/views/overlay/overlay_window_views.cc b/chrome/browser/ui/views/overlay/overlay_window_views.cc
index 6636961..4dcf473d 100644
--- a/chrome/browser/ui/views/overlay/overlay_window_views.cc
+++ b/chrome/browser/ui/views/overlay/overlay_window_views.cc
@@ -1301,8 +1301,12 @@
   if (work_area.IsEmpty())
     return;
 
-  const auto new_max_size =
-      gfx::Size(work_area.width() / 2, work_area.height() / 2);
+  auto new_max_size = gfx::Size(work_area.width() / 2, work_area.height() / 2);
+
+  // Ensure |new_max_size| is not smaller than |min_size_|, or else we will
+  // crash.
+  new_max_size.SetToMax(min_size_);
+
   // Make sure we only run the logic to update the current size if the maximum
   // size actually changes. Running it unconditionally means also running it
   // when DPI <-> pixel computations introduce off-by-1 errors, which leads to
diff --git a/chrome/browser/ui/views/overlay/overlay_window_views_unittest.cc b/chrome/browser/ui/views/overlay/overlay_window_views_unittest.cc
index 4de9db8..bbc722b 100644
--- a/chrome/browser/ui/views/overlay/overlay_window_views_unittest.cc
+++ b/chrome/browser/ui/views/overlay/overlay_window_views_unittest.cc
@@ -27,6 +27,12 @@
 #include "ui/gfx/geometry/vector2d.h"
 #include "ui/views/test/button_test_api.h"
 
+namespace {
+
+constexpr gfx::Size kMinWindowSize(200, 100);
+
+}  // namespace
+
 class TestPictureInPictureWindowController
     : public content::PictureInPictureWindowController {
  public:
@@ -81,7 +87,7 @@
     SetDisplayWorkArea({0, 0, 1000, 1000});
 
     overlay_window_ = OverlayWindowViews::Create(&pip_window_controller_);
-    overlay_window_->set_minimum_size_for_testing({200, 100});
+    overlay_window_->set_minimum_size_for_testing(kMinWindowSize);
   }
 
   void TearDown() override {
@@ -426,3 +432,17 @@
   overlay_window().CloseNow();
   testing::Mock::VerifyAndClearExpectations(&pip_window_controller());
 }
+
+TEST_F(OverlayWindowViewsTest, SmallDisplayWorkAreaDoesNotCrash) {
+  SetDisplayWorkArea({0, 0, 300, 200});
+  overlay_window().UpdateVideoSize({400, 300});
+
+  // Since the work area would force a max size smaller than the minimum size,
+  // the size is fixed at the minimum size.
+  EXPECT_EQ(kMinWindowSize, overlay_window().GetBounds().size());
+  EXPECT_EQ(kMinWindowSize, overlay_window().GetMaximumSize());
+
+  // The video should still be letterboxed to the correct aspect ratio.
+  EXPECT_EQ(gfx::Size(133, 100),
+            overlay_window().video_layer_for_testing()->size());
+}
diff --git a/chrome/browser/ui/webui/signin/dice_turn_sync_on_helper.cc b/chrome/browser/ui/webui/signin/dice_turn_sync_on_helper.cc
index 8015c4f..9269150 100644
--- a/chrome/browser/ui/webui/signin/dice_turn_sync_on_helper.cc
+++ b/chrome/browser/ui/webui/signin/dice_turn_sync_on_helper.cc
@@ -28,7 +28,6 @@
 #include "chrome/browser/profiles/profile_metrics.h"
 #include "chrome/browser/signin/account_id_from_account_info.h"
 #include "chrome/browser/signin/identity_manager_factory.h"
-#include "chrome/browser/signin/signin_features.h"
 #include "chrome/browser/signin/signin_util.h"
 #include "chrome/browser/sync/sync_service_factory.h"
 #include "chrome/browser/ui/browser.h"
@@ -168,29 +167,6 @@
       ->DisplayLoginResult(browser, error);
 }
 
-// static
-void DiceTurnSyncOnHelper::Delegate::
-    ShowEnterpriseAccountConfirmationForBrowser(
-        const std::string& email,
-        bool prompt_for_new_profile,
-        DiceTurnSyncOnHelper::SigninChoiceCallback callback,
-        Browser* browser) {
-  DCHECK(callback);
-  content::WebContents* web_contents =
-      browser->tab_strip_model()->GetActiveWebContents();
-  if (!web_contents) {
-    std::move(callback).Run(DiceTurnSyncOnHelper::SIGNIN_CHOICE_CANCEL);
-    return;
-  }
-
-  base::RecordAction(
-      base::UserMetricsAction("Signin_Show_EnterpriseAccountPrompt"));
-  TabDialogs::FromWebContents(web_contents)
-      ->ShowProfileSigninConfirmation(
-          browser, email, prompt_for_new_profile,
-          std::make_unique<SigninDialogDelegate>(std::move(callback)));
-}
-
 DiceTurnSyncOnHelper::DiceTurnSyncOnHelper(
     Profile* profile,
     signin_metrics::AccessPoint signin_access_point,
@@ -389,8 +365,7 @@
   dm_token_ = dm_token;
   client_id_ = client_id;
 
-  if (!base::FeatureList::IsEnabled(kAccountPoliciesLoadedWithoutSync) ||
-      !chrome::enterprise_util::UserAcceptedAccountManagement(profile_)) {
+  if (!chrome::enterprise_util::UserAcceptedAccountManagement(profile_)) {
     // Allow user to create a new profile before continuing with sign-in.
     delegate_->ShowEnterpriseAccountConfirmation(
         account_info_,
@@ -399,8 +374,7 @@
     return;
   }
 
-  DCHECK(base::FeatureList::IsEnabled(kAccountPoliciesLoadedWithoutSync) &&
-         chrome::enterprise_util::UserAcceptedAccountManagement(profile_));
+  DCHECK(chrome::enterprise_util::UserAcceptedAccountManagement(profile_));
   LoadPolicyWithCachedCredentials();
 }
 
@@ -510,17 +484,15 @@
   signin_metrics::LogSigninReason(signin_reason_);
   base::RecordAction(base::UserMetricsAction("Signin_Signin_Succeed"));
 
-  if (base::FeatureList::IsEnabled(kAccountPoliciesLoadedWithoutSync)) {
-    bool user_accepted_management =
-        chrome::enterprise_util::UserAcceptedAccountManagement(profile_);
-    if (!user_accepted_management) {
-      chrome::enterprise_util::SetUserAcceptedAccountManagement(
-          profile_, enterprise_account_confirmed_);
-      user_accepted_management = enterprise_account_confirmed_;
-    }
-    if (user_accepted_management)
-      signin_aborted_mode_ = SigninAbortedMode::KEEP_ACCOUNT;
+  bool user_accepted_management =
+      chrome::enterprise_util::UserAcceptedAccountManagement(profile_);
+  if (!user_accepted_management) {
+    chrome::enterprise_util::SetUserAcceptedAccountManagement(
+        profile_, enterprise_account_confirmed_);
+    user_accepted_management = enterprise_account_confirmed_;
   }
+  if (user_accepted_management)
+    signin_aborted_mode_ = SigninAbortedMode::KEEP_ACCOUNT;
 
   syncer::SyncService* sync_service = GetSyncService();
   if (sync_service) {
@@ -695,10 +667,8 @@
     // If the existing flow was using the same account, keep the account.
     if (current_helper->account_info_.account_id == account_info_.account_id)
       current_helper->signin_aborted_mode_ = SigninAbortedMode::KEEP_ACCOUNT;
-    if (base::FeatureList::IsEnabled(kAccountPoliciesLoadedWithoutSync)) {
-      policy::UserPolicySigninServiceFactory::GetForProfile(profile_)
-          ->ShutdownUserCloudPolicyManager();
-    }
+    policy::UserPolicySigninServiceFactory::GetForProfile(profile_)
+        ->ShutdownUserCloudPolicyManager();
     current_helper->AbortAndDelete();
   }
   DCHECK(!GetCurrentDiceTurnSyncOnHelper(profile_));
@@ -708,16 +678,10 @@
 }
 
 void DiceTurnSyncOnHelper::AbortAndDelete() {
-  if (!base::FeatureList::IsEnabled(kAccountPoliciesLoadedWithoutSync)) {
-    policy::UserPolicySigninServiceFactory::GetForProfile(profile_)
-        ->ShutdownUserCloudPolicyManager();
-  }
 #if BUILDFLAG(ENABLE_DICE_SUPPORT)
   if (signin_aborted_mode_ == SigninAbortedMode::REMOVE_ACCOUNT) {
-    if (base::FeatureList::IsEnabled(kAccountPoliciesLoadedWithoutSync)) {
-      policy::UserPolicySigninServiceFactory::GetForProfile(profile_)
-          ->ShutdownUserCloudPolicyManager();
-    }
+    policy::UserPolicySigninServiceFactory::GetForProfile(profile_)
+        ->ShutdownUserCloudPolicyManager();
     // Revoke the token, and the AccountReconcilor and/or the Gaia server will
     // take care of invalidating the cookies.
     auto* accounts_mutator = identity_manager_->GetAccountsMutator();
diff --git a/chrome/browser/ui/webui/signin/dice_turn_sync_on_helper.h b/chrome/browser/ui/webui/signin/dice_turn_sync_on_helper.h
index 966b976..cacada0 100644
--- a/chrome/browser/ui/webui/signin/dice_turn_sync_on_helper.h
+++ b/chrome/browser/ui/webui/signin/dice_turn_sync_on_helper.h
@@ -132,17 +132,6 @@
     // after this object gets destroyed.
     static void ShowLoginErrorForBrowser(const SigninUIError& error,
                                          Browser* browser);
-
-    // Shows the enterprise account confirmation dialog with `email` for
-    // `browser` and returns the result via `callback`. The variant of the
-    // dialog is based on `prompt_for_new_profile`. This helper is static
-    // because in some cases it needs to be called after this object gets
-    // destroyed.
-    static void ShowEnterpriseAccountConfirmationForBrowser(
-        const std::string& email,
-        bool prompt_for_new_profile,
-        DiceTurnSyncOnHelper::SigninChoiceCallback callback,
-        Browser* browser);
   };
 
   // Create a helper that turns sync on for an account that is already present
diff --git a/chrome/browser/ui/webui/signin/dice_turn_sync_on_helper_delegate_impl.cc b/chrome/browser/ui/webui/signin/dice_turn_sync_on_helper_delegate_impl.cc
index 381c921..df4fc98 100644
--- a/chrome/browser/ui/webui/signin/dice_turn_sync_on_helper_delegate_impl.cc
+++ b/chrome/browser/ui/webui/signin/dice_turn_sync_on_helper_delegate_impl.cc
@@ -6,7 +6,6 @@
 
 #include "base/bind.h"
 #include "base/check.h"
-#include "base/feature_list.h"
 #include "base/metrics/user_metrics.h"
 #include "base/metrics/user_metrics_action.h"
 #include "base/notreached.h"
@@ -15,7 +14,6 @@
 #include "chrome/browser/new_tab_page/chrome_colors/selected_colors_info.h"
 #include "chrome/browser/profiles/profile_attributes_storage.h"
 #include "chrome/browser/profiles/profile_window.h"
-#include "chrome/browser/signin/signin_features.h"
 #include "chrome/browser/ui/browser.h"
 #include "chrome/browser/ui/browser_finder.h"
 #include "chrome/browser/ui/browser_list.h"
@@ -79,32 +77,25 @@
     std::move(callback).Run(DiceTurnSyncOnHelper::SIGNIN_CHOICE_CANCEL);
     return;
   }
-  if (base::FeatureList::IsEnabled(kAccountPoliciesLoadedWithoutSync)) {
-    ProfileAttributesEntry* entry =
-        g_browser_process->profile_manager()
-            ->GetProfileAttributesStorage()
-            .GetProfileAttributesWithPath(browser->profile()->GetPath());
-    browser->signin_view_controller()->ShowModalEnterpriseConfirmationDialog(
-        account_info, GenerateNewProfileColor(entry).color,
-        base::BindOnce(
-            [](DiceTurnSyncOnHelper::SigninChoiceCallback callback,
-               Browser* browser, bool prompt_for_new_profile,
-               bool create_profile) {
-              browser->signin_view_controller()->CloseModalSignin();
-              std::move(callback).Run(
-                  create_profile
-                      ? prompt_for_new_profile
-                            ? DiceTurnSyncOnHelper::SIGNIN_CHOICE_NEW_PROFILE
-                            : DiceTurnSyncOnHelper::SIGNIN_CHOICE_CONTINUE
-                      : DiceTurnSyncOnHelper::SIGNIN_CHOICE_CANCEL);
-            },
-            std::move(callback), browser.get(), prompt_for_new_profile));
-    return;
-  }
-
-  DiceTurnSyncOnHelper::Delegate::ShowEnterpriseAccountConfirmationForBrowser(
-      account_info.email, /*prompt_for_new_profile=*/prompt_for_new_profile,
-      std::move(callback), browser.get());
+  ProfileAttributesEntry* entry =
+      g_browser_process->profile_manager()
+          ->GetProfileAttributesStorage()
+          .GetProfileAttributesWithPath(browser->profile()->GetPath());
+  browser->signin_view_controller()->ShowModalEnterpriseConfirmationDialog(
+      account_info, GenerateNewProfileColor(entry).color,
+      base::BindOnce(
+          [](DiceTurnSyncOnHelper::SigninChoiceCallback callback,
+             Browser* browser, bool prompt_for_new_profile,
+             bool create_profile) {
+            browser->signin_view_controller()->CloseModalSignin();
+            std::move(callback).Run(
+                create_profile
+                    ? prompt_for_new_profile
+                          ? DiceTurnSyncOnHelper::SIGNIN_CHOICE_NEW_PROFILE
+                          : DiceTurnSyncOnHelper::SIGNIN_CHOICE_CONTINUE
+                    : DiceTurnSyncOnHelper::SIGNIN_CHOICE_CANCEL);
+          },
+          std::move(callback), browser.get(), prompt_for_new_profile));
 }
 
 }  // namespace
diff --git a/chrome/browser/ui/webui/signin/inline_login_handler_chromeos.cc b/chrome/browser/ui/webui/signin/inline_login_handler_chromeos.cc
index 32c2a2f01..4d02856 100644
--- a/chrome/browser/ui/webui/signin/inline_login_handler_chromeos.cc
+++ b/chrome/browser/ui/webui/signin/inline_login_handler_chromeos.cc
@@ -40,6 +40,10 @@
 #include "google_apis/gaia/gaia_auth_util.h"
 #include "google_apis/gaia/gaia_urls.h"
 #include "services/network/public/cpp/shared_url_loader_factory.h"
+#include "third_party/skia/include/core/SkBitmap.h"
+#include "ui/base/resource/resource_bundle.h"
+#include "ui/base/webui/web_ui_util.h"
+#include "ui/chromeos/resources/grit/ui_chromeos_resources.h"
 
 namespace chromeos {
 namespace {
@@ -49,6 +53,13 @@
 constexpr char kCrosAddAccountFlow[] = "crosAddAccount";
 constexpr char kCrosAddAccountEduFlow[] = "crosAddAccountEdu";
 
+// Keep the values in sync with `Account` struct in
+// chrome/browser/resources/inline_login/inline_login_browser_proxy.js
+constexpr char kAccountKeyId[] = "id";
+constexpr char kAccountKeyEmail[] = "email";
+constexpr char kAccountKeyFullName[] = "fullName";
+constexpr char kAccountKeyImage[] = "image";
+
 std::string AnonymizeAccountEmail(const std::string& email) {
   std::string result;
   base::Base64Encode(crypto::SHA256HashString(email), &result);
@@ -85,6 +96,31 @@
   return kCrosAddAccountEduFlow;
 }
 
+const SkBitmap& GetDefaultAccountIcon() {
+  gfx::ImageSkia default_icon =
+      *ui::ResourceBundle::GetSharedInstance().GetImageSkiaNamed(
+          IDR_LOGIN_DEFAULT_USER);
+  return default_icon.GetRepresentation(1.0f).GetBitmap();
+}
+
+base::Value GaiaAccountToValue(const ::account_manager::Account& account,
+                               const AccountInfo& account_info) {
+  DCHECK_EQ(account.key.account_type(), account_manager::AccountType::kGaia);
+  DCHECK(!account_info.IsEmpty());
+
+  base::Value dict(base::Value::Type::DICTIONARY);
+  dict.SetKey(kAccountKeyId, base::Value(account.key.id()));
+  dict.SetKey(kAccountKeyEmail, base::Value(account.raw_email));
+  dict.SetKey(kAccountKeyFullName, base::Value(account_info.full_name));
+  dict.SetKey(kAccountKeyImage,
+              base::Value(webui::GetBitmapDataUrl(
+                  account_info.account_image.IsEmpty()
+                      ? GetDefaultAccountIcon()
+                      : account_info.account_image.AsBitmap())));
+
+  return dict;
+}
+
 class EduCoexistenceChildSigninHelper : public SigninHelper {
  public:
   EduCoexistenceChildSigninHelper(
@@ -192,6 +228,11 @@
       "getAccounts",
       base::BindRepeating(&InlineLoginHandlerChromeOS::GetAccountsInSession,
                           base::Unretained(this)));
+  web_ui()->RegisterMessageCallback(
+      "getAccountsNotAvailableInArc",
+      base::BindRepeating(
+          &InlineLoginHandlerChromeOS::GetAccountsNotAvailableInArc,
+          base::Unretained(this)));
   web_ui()->RegisterDeprecatedMessageCallback(
       "skipWelcomePage",
       base::BindRepeating(&InlineLoginHandlerChromeOS::HandleSkipWelcomePage,
@@ -340,6 +381,49 @@
                             std::move(account_emails));
 }
 
+void InlineLoginHandlerChromeOS::GetAccountsNotAvailableInArc(
+    base::Value::ConstListView args) {
+  CHECK_EQ(1u, args.size());
+  const std::string& callback_id = args[0].GetString();
+  ::GetAccountManagerFacade(Profile::FromWebUI(web_ui())->GetPath().value())
+      ->GetAccounts(base::BindOnce(
+          &InlineLoginHandlerChromeOS::ContinueGetAccountsNotAvailableInArc,
+          weak_factory_.GetWeakPtr(), callback_id));
+}
+
+void InlineLoginHandlerChromeOS::ContinueGetAccountsNotAvailableInArc(
+    const std::string& callback_id,
+    const std::vector<::account_manager::Account>& accounts) {
+  ash::AccountAppsAvailabilityFactory::GetForProfile(
+      Profile::FromWebUI(web_ui()))
+      ->GetAccountsAvailableInArc(base::BindOnce(
+          &InlineLoginHandlerChromeOS::FinishGetAccountsNotAvailableInArc,
+          weak_factory_.GetWeakPtr(), callback_id, accounts));
+}
+
+void InlineLoginHandlerChromeOS::FinishGetAccountsNotAvailableInArc(
+    const std::string& callback_id,
+    const std::vector<::account_manager::Account>& accounts,
+    const base::flat_set<account_manager::Account>& arc_accounts) {
+  base::Value result(base::Value::Type::LIST);
+  auto* identity_manager =
+      IdentityManagerFactory::GetForProfile(Profile::FromWebUI(web_ui()));
+  for (const auto& account : accounts) {
+    if (account.key.account_type() != account_manager::AccountType::kGaia)
+      continue;
+
+    if (!arc_accounts.contains(account)) {
+      AccountInfo maybe_account_info =
+          identity_manager->FindExtendedAccountInfoByGaiaId(account.key.id());
+      if (maybe_account_info.IsEmpty())
+        continue;
+
+      result.Append(GaiaAccountToValue(account, maybe_account_info));
+    }
+  }
+  ResolveJavascriptCallback(base::Value(callback_id), std::move(result));
+}
+
 void InlineLoginHandlerChromeOS::HandleSkipWelcomePage(
     const base::ListValue* args) {
   const auto& list = args->GetList();
diff --git a/chrome/browser/ui/webui/signin/inline_login_handler_chromeos.h b/chrome/browser/ui/webui/signin/inline_login_handler_chromeos.h
index ebd25b7..8a7794659 100644
--- a/chrome/browser/ui/webui/signin/inline_login_handler_chromeos.h
+++ b/chrome/browser/ui/webui/signin/inline_login_handler_chromeos.h
@@ -7,6 +7,7 @@
 
 #include <string>
 
+#include "base/containers/flat_set.h"
 #include "chrome/browser/ui/webui/signin/inline_login_handler.h"
 #include "chrome/browser/ui/webui/signin/signin_helper_chromeos.h"
 #include "components/account_manager_core/account.h"
@@ -49,6 +50,14 @@
   void GetAccountsInSession(const base::ListValue* args);
   void OnGetAccounts(const std::string& callback_id,
                      const std::vector<::account_manager::Account>& accounts);
+  void GetAccountsNotAvailableInArc(base::Value::ConstListView args);
+  void ContinueGetAccountsNotAvailableInArc(
+      const std::string& callback_id,
+      const std::vector<::account_manager::Account>& accounts);
+  void FinishGetAccountsNotAvailableInArc(
+      const std::string& callback_id,
+      const std::vector<::account_manager::Account>& accounts,
+      const base::flat_set<account_manager::Account>& arc_accounts);
   void HandleSkipWelcomePage(const base::ListValue* args);
 
   base::RepeatingClosure close_dialog_closure_;
diff --git a/chrome/browser/ui/webui/signin/inline_login_handler_chromeos_browsertest.cc b/chrome/browser/ui/webui/signin/inline_login_handler_chromeos_browsertest.cc
index 80057712..47467e4a 100644
--- a/chrome/browser/ui/webui/signin/inline_login_handler_chromeos_browsertest.cc
+++ b/chrome/browser/ui/webui/signin/inline_login_handler_chromeos_browsertest.cc
@@ -58,9 +58,14 @@
 constexpr char kGaiaIdKey[] = "gaiaId";
 constexpr char kIsAvailableInArcKey[] = "isAvailableInArc";
 constexpr char kSecondaryAccount1Email[] = "secondary1@example.com";
+constexpr char kSecondaryAccount2Email[] = "secondary2@example.com";
+constexpr char kSecondaryAccount3Email[] = "secondary3@example.com";
 constexpr char kSecondaryAccountOAuthCode[] = "fake_oauth_code";
 constexpr char kSecondaryAccountRefreshToken[] = "fake_refresh_token";
 constexpr char kCompleteLoginMessage[] = "completeLogin";
+constexpr char kGetAccountsNotAvailableInArcMessage[] =
+    "getAccountsNotAvailableInArc";
+constexpr char kHandleFunctionName[] = "handleFunctionName";
 constexpr char kConsentLoggedCallback[] = "consent-logged-callback";
 constexpr char kToSVersion[] = "12345678";
 
@@ -292,6 +297,10 @@
 
   content::TestWebUI* web_ui() { return &web_ui_; }
 
+  signin::IdentityTestEnvironment* identity_test_env() {
+    return identity_test_env_profile_adaptor_->identity_test_env();
+  }
+
  private:
   std::unique_ptr<InlineLoginHandlerChromeOS> handler_;
   std::unique_ptr<EduCoexistenceLoginHandler> edu_handler_;
@@ -380,6 +389,39 @@
                     ->IsInitialized());
   }
 
+  void AddAccount(const std::string& email, bool is_available_in_arc) {
+    account_manager::MockAccountManagerFacadeObserver observer;
+    ::GetAccountManagerFacade(profile()->GetPath().value())
+        ->AddObserver(&observer);
+    auto* account_apps_availability =
+        ash::AccountAppsAvailabilityFactory::GetForProfile(profile());
+
+    // Wait until account is added.
+    base::RunLoop run_loop;
+    EXPECT_CALL(observer, OnAccountUpserted(AccountEmailEq(email)))
+        .WillOnce([&run_loop, account_apps_availability, is_available_in_arc](
+                      const account_manager::Account& account) {
+          account_apps_availability->SetIsAccountAvailableInArc(
+              account, is_available_in_arc);
+          run_loop.Quit();
+        });
+    identity_test_env()->MakeAccountAvailable(email);
+
+    ::GetAccountManagerFacade(profile()->GetPath().value())
+        ->RemoveObserver(&observer);
+  }
+
+  bool ValuesListContainAccount(const base::span<const base::Value> values,
+                                const std::string& email) {
+    for (const base::Value& value : values) {
+      const std::string* email_val = value.FindStringKey("email");
+      EXPECT_TRUE(email_val != nullptr);
+      if (*email_val == email)
+        return true;
+    }
+    return false;
+  }
+
  private:
   base::test::ScopedFeatureList feature_list_;
 };
@@ -457,6 +499,33 @@
       &apps_availability_observer);
 }
 
+IN_PROC_BROWSER_TEST_P(InlineLoginHandlerChromeOSTestWithArcRestrictions,
+                       GetAccountsNotAvailableInArc) {
+  AddAccount(kSecondaryAccount1Email, /*is_available_in_arc=*/true);
+  AddAccount(kSecondaryAccount2Email, /*is_available_in_arc=*/false);
+  AddAccount(kSecondaryAccount3Email, /*is_available_in_arc=*/false);
+
+  // Call "getAccountsNotAvailableInArc".
+  base::Value args(base::Value::Type::LIST);
+  args.Append(kHandleFunctionName);
+  web_ui()->HandleReceivedMessage(kGetAccountsNotAvailableInArcMessage,
+                                  &base::Value::AsListValue(args));
+  base::RunLoop().RunUntilIdle();
+
+  const content::TestWebUI::CallData& call_data = *web_ui()->call_data().back();
+  EXPECT_EQ("cr.webUIResponse", call_data.function_name());
+  EXPECT_EQ(kHandleFunctionName, call_data.arg1()->GetString());
+  ASSERT_TRUE(call_data.arg2()->GetBool());
+
+  // Get results from JS callback.
+  const base::span<const base::Value> result = call_data.arg3()->GetList();
+  // Two accounts are not available in ARC.
+  EXPECT_EQ(2, result.size());
+  EXPECT_FALSE(ValuesListContainAccount(result, kSecondaryAccount1Email));
+  EXPECT_TRUE(ValuesListContainAccount(result, kSecondaryAccount2Email));
+  EXPECT_TRUE(ValuesListContainAccount(result, kSecondaryAccount3Email));
+}
+
 INSTANTIATE_TEST_SUITE_P(InlineLoginHandlerChromeOSTestWithArcRestrictionsSuite,
                          InlineLoginHandlerChromeOSTestWithArcRestrictions,
                          ::testing::Values(GetGaiaDeviceAccountInfo(),
diff --git a/chrome/browser/ui/webui/signin/inline_login_handler_impl.cc b/chrome/browser/ui/webui/signin/inline_login_handler_impl.cc
index 6da1ddc5..48cd0950 100644
--- a/chrome/browser/ui/webui/signin/inline_login_handler_impl.cc
+++ b/chrome/browser/ui/webui/signin/inline_login_handler_impl.cc
@@ -12,7 +12,6 @@
 
 #include "base/bind.h"
 #include "base/callback_helpers.h"
-#include "base/feature_list.h"
 #include "base/location.h"
 #include "base/metrics/histogram_macros.h"
 #include "base/metrics/user_metrics.h"
@@ -38,7 +37,6 @@
 #include "chrome/browser/signin/account_consistency_mode_manager.h"
 #include "chrome/browser/signin/chrome_device_id_helper.h"
 #include "chrome/browser/signin/identity_manager_factory.h"
-#include "chrome/browser/signin/signin_features.h"
 #include "chrome/browser/signin/signin_promo.h"
 #include "chrome/browser/signin/signin_util.h"
 #include "chrome/browser/themes/theme_service.h"
@@ -137,18 +135,6 @@
       DiceTurnSyncOnHelper::SigninChoiceCallback callback) override {
     NOTREACHED();
   }
-
-  void ShowEnterpriseAccountConfirmation(
-      const AccountInfo& account_info,
-      DiceTurnSyncOnHelper::SigninChoiceCallback callback) override {
-    if (base::FeatureList::IsEnabled(kAccountPoliciesLoadedWithoutSync)) {
-      DiceTurnSyncOnHelperDelegateImpl::ShowEnterpriseAccountConfirmation(
-          account_info, std::move(callback));
-      return;
-    }
-    std::move(callback).Run(
-        DiceTurnSyncOnHelper ::SigninChoice::SIGNIN_CHOICE_CONTINUE);
-  }
 };
 
 #if BUILDFLAG(IS_WIN)
diff --git a/chrome/browser/ui/webui/signin/inline_login_ui.cc b/chrome/browser/ui/webui/signin/inline_login_ui.cc
index a56bfff..5ddb0779 100644
--- a/chrome/browser/ui/webui/signin/inline_login_ui.cc
+++ b/chrome/browser/ui/webui/signin/inline_login_ui.cc
@@ -166,6 +166,7 @@
      IDS_ACCOUNT_MANAGER_DIALOG_WELCOME_CHECKBOX},
     {"accountManagerDialogArcAccountPickerTitle",
      IDS_ACCOUNT_MANAGER_DIALOG_ARC_ACCOUNT_PICKER_TITLE},
+    {"addAccountLabel", IDS_ACCOUNT_MANAGER_DIALOG_ADD_ACCOUNT_LABEL},
     {"accountManagerErrorNoInternetTitle",
      IDS_ACCOUNT_MANAGER_ERROR_NO_INTERNET_TITLE},
     {"accountManagerErrorNoInternetBody",
@@ -201,9 +202,12 @@
               chrome::GetOSSettingsUrl(
                   chromeos::settings::mojom::kMyAccountsSubpagePath)
                   .spec())));
-  source->AddBoolean("shouldSkipWelcomePage",
-                     profile->GetPrefs()->GetBoolean(
-                         chromeos::prefs::kShouldSkipInlineLoginWelcomePage));
+  source->AddBoolean(
+      "shouldSkipWelcomePage",
+      ash::AccountAppsAvailability::IsArcAccountRestrictionsEnabled()
+          ? false
+          : profile->GetPrefs()->GetBoolean(
+                chromeos::prefs::kShouldSkipInlineLoginWelcomePage));
   if (ash::AccountAppsAvailability::IsArcAccountRestrictionsEnabled()) {
     source->AddString(
         "accountManagerDialogWelcomeBody",
diff --git a/chrome/browser/web_applications/app_service/BUILD.gn b/chrome/browser/web_applications/app_service/BUILD.gn
index f4b07b6..c508993 100644
--- a/chrome/browser/web_applications/app_service/BUILD.gn
+++ b/chrome/browser/web_applications/app_service/BUILD.gn
@@ -50,6 +50,7 @@
       "//chrome/browser/chromeos",
       "//components/app_restore",
       "//components/services/app_service/public/cpp:instance_update",
+      "//extensions/browser/api/file_handlers",
     ]
   }
 
diff --git a/chrome/browser/web_applications/app_service/web_app_publisher_helper.cc b/chrome/browser/web_applications/app_service/web_app_publisher_helper.cc
index eb4bdf7..c23215f 100644
--- a/chrome/browser/web_applications/app_service/web_app_publisher_helper.cc
+++ b/chrome/browser/web_applications/app_service/web_app_publisher_helper.cc
@@ -71,6 +71,7 @@
 #include "components/app_restore/full_restore_save_handler.h"
 #include "components/app_restore/full_restore_utils.h"
 #include "components/sessions/core/session_id.h"
+#include "extensions/browser/api/file_handlers/mime_util.h"  // nogncheck
 #endif
 
 #if BUILDFLAG(IS_CHROMEOS_LACROS)
@@ -580,6 +581,16 @@
                apps_util::CreateWebAppIntentFilters(
                    *web_app, registrar().GetAppScope(web_app->app_id())));
 
+#if BUILDFLAG(IS_CHROMEOS_ASH)
+  if (web_app->app_id() == crostini::kCrostiniTerminalSystemAppId) {
+    app->intent_filters.push_back(apps_util::CreateFileFilter(
+        {apps_util::kIntentActionView},
+        /*mime_types=*/
+        {extensions::app_file_handler_util::kMimeTypeInodeDirectory},
+        /*file_extensions=*/{}));
+  }
+#endif
+
   app->icon_key = MakeIconKey(web_app);
 
   bool paused = IsPaused(web_app->app_id());
diff --git a/chrome/browser/web_applications/web_app_database.cc b/chrome/browser/web_applications/web_app_database.cc
index b906963..cfaaec88 100644
--- a/chrome/browser/web_applications/web_app_database.cc
+++ b/chrome/browser/web_applications/web_app_database.cc
@@ -406,6 +406,7 @@
   for (const auto& file_handler : web_app.file_handlers()) {
     WebAppFileHandlerProto* file_handler_proto =
         local_data->add_file_handlers();
+    DCHECK(file_handler.action.is_valid());
     file_handler_proto->set_action(file_handler.action.spec());
     file_handler_proto->set_display_name(
         base::UTF16ToUTF8(file_handler.display_name));
diff --git a/chrome/build/mac.pgo.txt b/chrome/build/mac.pgo.txt
index 2d940af..f4a4bee 100644
--- a/chrome/build/mac.pgo.txt
+++ b/chrome/build/mac.pgo.txt
@@ -1 +1 @@
-chrome-mac-main-1643263044-90c8dc6624fef5f0789e1e61a1dd9657945fea1a.profdata
+chrome-mac-main-1643284754-e6072bf75b1d01e02013b9c0a038e83f0e166a59.profdata
diff --git a/chrome/build/win32.pgo.txt b/chrome/build/win32.pgo.txt
index 850b282..134a42b 100644
--- a/chrome/build/win32.pgo.txt
+++ b/chrome/build/win32.pgo.txt
@@ -1 +1 @@
-chrome-win32-main-1643273519-7180bb615f46ba8b29f7955fc6feeba449e8d5b5.profdata
+chrome-win32-main-1643295498-1e46a15413da3e019634ff4ee57ba12b04a94734.profdata
diff --git a/chrome/build/win64.pgo.txt b/chrome/build/win64.pgo.txt
index e8feec3..a672d13 100644
--- a/chrome/build/win64.pgo.txt
+++ b/chrome/build/win64.pgo.txt
@@ -1 +1 @@
-chrome-win64-main-1643263044-602b6f7a4f5a58f3b1dd41d244d89d4368f58926.profdata
+chrome-win64-main-1643295498-2123a7627edf68fdccd462dd15b336c8ca0c40fd.profdata
diff --git a/chrome/test/chromedriver/chrome/web_view_impl.cc b/chrome/test/chromedriver/chrome/web_view_impl.cc
index b543158..4e857fb 100644
--- a/chrome/test/chromedriver/chrome/web_view_impl.cc
+++ b/chrome/test/chromedriver/chrome/web_view_impl.cc
@@ -286,14 +286,17 @@
   absl::optional<int> current_index = result.FindIntKey("currentIndex");
   if (!current_index)
     return Status(kUnknownError, "navigation history missing currentIndex");
-  base::ListValue* entries = nullptr;
-  if (!result.GetList("entries", &entries))
+  base::Value* entries = result.FindListKey("entries");
+  if (!entries)
     return Status(kUnknownError, "navigation history missing entries");
-  base::DictionaryValue* entry = nullptr;
-  if (!entries->GetDictionary(*current_index, &entry))
+  if (static_cast<int>(entries->GetList().size()) <= *current_index ||
+      !entries->GetList()[*current_index].is_dict()) {
     return Status(kUnknownError, "navigation history missing entry");
-  if (!entry->GetString("url", url))
+  }
+  base::Value& entry = entries->GetList()[*current_index];
+  if (!entry.FindStringKey("url"))
     return Status(kUnknownError, "navigation history entry is missing url");
+  *url = *entry.FindStringKey("url");
   return Status(kOk);
 }
 
@@ -383,19 +386,20 @@
   if (!current_index)
     return Status(kUnknownError, "DevTools didn't return currentIndex");
 
-  base::ListValue* entries;
-  if (!result.GetList("entries", &entries))
+  base::Value* entries = result.FindListKey("entries");
+  if (!entries)
     return Status(kUnknownError, "DevTools didn't return entries");
 
-  base::DictionaryValue* entry;
-  if (!entries->GetDictionary(*current_index + delta, &entry)) {
+  if (static_cast<int>(entries->GetList().size()) <= *current_index + delta ||
+      !entries->GetList()[*current_index + delta].is_dict()) {
     // The WebDriver spec says that if there are no pages left in the browser's
     // history (i.e. |current_index + delta| is out of range), then we must not
     // navigate anywhere.
     return Status(kOk);
   }
 
-  absl::optional<int> entry_id = entry->FindIntKey("id");
+  base::Value& entry = entries->GetList()[*current_index + delta];
+  absl::optional<int> entry_id = entry.FindIntKey("id");
   if (!entry_id)
     return Status(kUnknownError, "history entry does not have an id");
   params.SetInteger("entryId", *entry_id);
@@ -1393,7 +1397,7 @@
     params.SetInteger("contextId", context_id);
   params.SetBoolean("returnByValue", return_type == ReturnByValue);
   params.SetBoolean("awaitPromise", awaitPromise);
-  base::DictionaryValue cmd_result;
+  base::Value cmd_result;
 
   Timeout local_timeout(timeout);
   Status status = client->SendCommandAndGetResultWithTimeout(
@@ -1401,7 +1405,7 @@
   if (status.IsError())
     return status;
 
-  if (cmd_result.FindKey("exceptionDetails")) {
+  if (cmd_result.is_dict() && cmd_result.FindKey("exceptionDetails")) {
     std::string description = "unknown";
     if (const std::string* maybe_description =
             cmd_result.FindStringPath("result.description")) {
@@ -1411,10 +1415,11 @@
                   "Runtime.evaluate threw exception: " + description);
   }
 
-  base::DictionaryValue* unscoped_result;
-  if (!cmd_result.GetDictionary("result", &unscoped_result))
+  base::Value* unscoped_result = cmd_result.FindDictKey("result");
+  if (!unscoped_result)
     return Status(kUnknownError, "evaluate missing dictionary 'result'");
-  result->reset(unscoped_result->DeepCopy());
+  auto result_value = base::Value::ToUniquePtrValue(unscoped_result->Clone());
+  *result = base::DictionaryValue::From(std::move(result_value));
   return Status(kOk);
 }
 
diff --git a/chrome/test/data/webui/chromeos/emoji_picker/emoji_picker_extension_test.js b/chrome/test/data/webui/chromeos/emoji_picker/emoji_picker_extension_test.js
index af4e31e..d195f45 100644
--- a/chrome/test/data/webui/chromeos/emoji_picker/emoji_picker_extension_test.js
+++ b/chrome/test/data/webui/chromeos/emoji_picker/emoji_picker_extension_test.js
@@ -6,7 +6,7 @@
 import {V2_CONTENT_LOADED} from 'chrome://emoji-picker/events.js';
 import {assert} from 'chrome://resources/js/assert.m.js';
 import {flush} from 'chrome://resources/polymer/v3_0/polymer/polymer_bundled.min.js';
-import {assertFalse, assertTrue} from '../../chai_assert.js';
+import {assertEquals, assertFalse, assertTrue} from '../../chai_assert.js';
 import {deepQuerySelector, isGroupButtonActive, timeout, waitForCondition} from './emoji_picker_test_util.js';
 
 const ACTIVE_CATEGORY_BUTTON = 'category-button-active';
@@ -93,4 +93,31 @@
             () => !isGroupButtonActive(firstEmoticonTabInSecondPage) &&
                 isGroupButtonActive(firstEmoticonTabInFirstPage));
       });
+
+  test('all emoticon groups should be rendered.', () => {
+    assertEquals(
+        emojiPicker.emoticonData.length,
+        emojiPicker.shadowRoot.querySelectorAll('emoticon-group').length);
+  });
+
+  test(
+      'each emoticon group should have the correct heading and correct' +
+          'number of emoticon entries.',
+      async () => {
+        const allEmoticonGroups =
+            emojiPicker.shadowRoot.querySelectorAll('emoticon-group');
+        for (let idx = 0; idx < allEmoticonGroups.length; ++idx) {
+          const group = allEmoticonGroups[idx];
+          const actualFirstGroupName =
+              group.shadowRoot.querySelector('#heading').innerHTML.trim();
+          const expectedFirstGroupName = emojiPicker.emoticonData[idx].group;
+          assertEquals(expectedFirstGroupName, actualFirstGroupName);
+
+          const expectedNumberOfEmoticons =
+              emojiPicker.emoticonData[idx].emoji.length;
+          await waitForCondition(
+              () => expectedNumberOfEmoticons ===
+                  group.shadowRoot.querySelectorAll('.emoticon-button').length);
+        }
+      });
 });
\ No newline at end of file
diff --git a/chrome/test/data/webui/inline_login/arc_account_picker_page_test.js b/chrome/test/data/webui/inline_login/arc_account_picker_page_test.js
index 918f181..09b3a40 100644
--- a/chrome/test/data/webui/inline_login/arc_account_picker_page_test.js
+++ b/chrome/test/data/webui/inline_login/arc_account_picker_page_test.js
@@ -4,7 +4,7 @@
 
 import 'chrome://chrome-signin/inline_login_app.js';
 
-import {InlineLoginBrowserProxyImpl} from 'chrome://chrome-signin/inline_login_browser_proxy.js';
+import {Account, InlineLoginBrowserProxyImpl} from 'chrome://chrome-signin/inline_login_browser_proxy.js';
 import {assert} from 'chrome://resources/js/assert.m.js';
 import {webUIListenerCallback} from 'chrome://resources/js/cr.m.js';
 import {flush} from 'chrome://resources/polymer/v3_0/polymer/polymer_bundled.min.js';
@@ -21,9 +21,27 @@
 arc_account_picker_page_test.TestNames = {
   ArcPickerActive: 'ArcPickerActive',
   ArcPickerHiddenForReauth: 'ArcPickerHiddenForReauth',
+  ArcPickerHiddenNoAccounts: 'ArcPickerHiddenNoAccounts',
+  AddAccount: 'AddAccount',
 };
 
+/** @return {!Array<Account>} */
+function getFakeAccountsNotAvailableInArcList() {
+  return [
+    {
+      id: '1',
+      email: 'test@gmail.com',
+      fullName: 'Test User',
+      image: 'data:image/png;base64,abc123'
+    },
+    {id: '2', email: 'test2@gmail.com', fullName: 'Test2 User', image: ''},
+    {id: '3', email: 'test3@gmail.com', fullName: 'Test3 User', image: ''},
+  ];
+}
+
 suite(arc_account_picker_page_test.suiteName, () => {
+  /** @type {ArcAccountAppPickerAppElement} */
+  let arcAccountPickerComponent;
   /** @type {InlineLoginAppElement} */
   let inlineLoginComponent;
   /** @type {TestInlineLoginBrowserProxy} */
@@ -38,35 +56,97 @@
 
   /**
    * @param {?AccountAdditionOptions} dialogArgs
+   * @param {?Array<Account>} accountsNotAvailableInArc
    */
-  function testSetup(dialogArgs) {
+  function testSetup(dialogArgs, accountsNotAvailableInArc) {
     document.body.innerHTML = '';
     testBrowserProxy = new TestInlineLoginBrowserProxy();
     testBrowserProxy.setDialogArguments(dialogArgs);
+    if (accountsNotAvailableInArc) {
+      testBrowserProxy.setAccountsNotAvailableInArc(accountsNotAvailableInArc);
+    }
     InlineLoginBrowserProxyImpl.instance_ = testBrowserProxy;
     inlineLoginComponent = /** @type {InlineLoginAppElement} */ (
         document.createElement('inline-login-app'));
     document.body.appendChild(inlineLoginComponent);
     inlineLoginComponent.setAuthExtHostForTest(new TestAuthenticator());
     flush();
+    arcAccountPickerComponent =
+        inlineLoginComponent.$$('arc-account-picker-app');
   }
 
-  test(assert(arc_account_picker_page_test.TestNames.ArcPickerActive), () => {
-    testSetup({isAvailableInArc: true, showArcAvailabilityPicker: true});
-    webUIListenerCallback('load-auth-extension', fakeAuthExtensionData);
-    assertEquals(
-        inlineLoginComponent.View.arcAccountPicker, getActiveViewId(),
-        'ARC account picker screen should be active');
-  });
+  test(
+      assert(arc_account_picker_page_test.TestNames.ArcPickerActive),
+      async () => {
+        testSetup(
+            {isAvailableInArc: true, showArcAvailabilityPicker: true},
+            getFakeAccountsNotAvailableInArcList());
+        // Send auth extension data without email -> it's account addition flow.
+        webUIListenerCallback('load-auth-extension', fakeAuthExtensionData);
+        // Wait for getAccountsNotAvailableInArc call which will return > 0
+        // accounts.
+        await testBrowserProxy.whenCalled('getAccountsNotAvailableInArc');
+        flush();
+        assertEquals(
+            inlineLoginComponent.View.arcAccountPicker, getActiveViewId(),
+            'ARC account picker screen should be active');
+
+        const uiAccounts = [
+          ...arcAccountPickerComponent.root.querySelectorAll('.account-item')
+        ].filter(item => item.id !== 'addAccountButton');
+        assertEquals(
+            getFakeAccountsNotAvailableInArcList().length, uiAccounts.length);
+      });
 
   test(
       assert(arc_account_picker_page_test.TestNames.ArcPickerHiddenForReauth),
       () => {
         testSetup({isAvailableInArc: true, showArcAvailabilityPicker: true});
+        // Send auth extension data with email -> it's reauthentication flow.
         webUIListenerCallback(
             'load-auth-extension', fakeAuthExtensionDataWithEmail);
         assertEquals(
             inlineLoginComponent.View.addAccount, getActiveViewId(),
             'Add account view should be active for reauthentication');
       });
+
+  test(
+      assert(arc_account_picker_page_test.TestNames.ArcPickerHiddenNoAccounts),
+      async () => {
+        testSetup(
+            {isAvailableInArc: true, showArcAvailabilityPicker: true},
+            /*accountsNotAvailableInArc=*/[]);
+        // Send auth extension data without email -> it's account addition flow.
+        webUIListenerCallback('load-auth-extension', fakeAuthExtensionData);
+        // Wait for getAccountsNotAvailableInArc call which will return 0
+        // accounts.
+        return testBrowserProxy.whenCalled('getAccountsNotAvailableInArc')
+            .then(function() {
+              assertEquals(
+                  inlineLoginComponent.View.welcome, getActiveViewId(),
+                  'Welcome view should be active when there are 0 accounts' +
+                      ' not available in ARC');
+            });
+      });
+
+  test(assert(arc_account_picker_page_test.TestNames.AddAccount), async () => {
+    testSetup(
+        {isAvailableInArc: true, showArcAvailabilityPicker: true},
+        getFakeAccountsNotAvailableInArcList());
+    // Send auth extension data without email -> it's account addition flow.
+    webUIListenerCallback('load-auth-extension', fakeAuthExtensionData);
+    // Wait for getAccountsNotAvailableInArc call which will return > 0
+    // accounts.
+    await testBrowserProxy.whenCalled('getAccountsNotAvailableInArc');
+    flush();
+    assertEquals(
+        inlineLoginComponent.View.arcAccountPicker, getActiveViewId(),
+        'ARC account picker screen should be active');
+
+    arcAccountPickerComponent.shadowRoot.querySelector('#addAccountButton')
+        .click();
+    assertEquals(
+        inlineLoginComponent.View.welcome, getActiveViewId(),
+        'Welcome screen should be active after Add account button click');
+  });
 });
diff --git a/chrome/test/data/webui/inline_login/inline_login_browsertest.js b/chrome/test/data/webui/inline_login/inline_login_browsertest.js
index 54ed655e..d5eb9f5 100644
--- a/chrome/test/data/webui/inline_login/inline_login_browsertest.js
+++ b/chrome/test/data/webui/inline_login/inline_login_browsertest.js
@@ -218,4 +218,15 @@
       this.runMochaTest(
           arc_account_picker_page_test.TestNames.ArcPickerHiddenForReauth);
     });
+
+TEST_F(
+    'InlineLoginArcAccountPickerBrowserTest', 'ArcPickerHiddenNoAccounts',
+    function() {
+      this.runMochaTest(
+          arc_account_picker_page_test.TestNames.ArcPickerHiddenNoAccounts);
+    });
+
+TEST_F('InlineLoginArcAccountPickerBrowserTest', 'AddAccount', function() {
+  this.runMochaTest(arc_account_picker_page_test.TestNames.AddAccount);
+});
 GEN('#endif');
diff --git a/chrome/test/data/webui/inline_login/inline_login_test_util.js b/chrome/test/data/webui/inline_login/inline_login_test_util.js
index 42a4880..ccb5e22 100644
--- a/chrome/test/data/webui/inline_login/inline_login_test_util.js
+++ b/chrome/test/data/webui/inline_login/inline_login_test_util.js
@@ -2,7 +2,7 @@
 // Use of this source code is governed by a BSD-style license that can be
 // found in the LICENSE file.
 
-import {InlineLoginBrowserProxy} from 'chrome://chrome-signin/inline_login_browser_proxy.js';
+import {Account, InlineLoginBrowserProxy} from 'chrome://chrome-signin/inline_login_browser_proxy.js';
 import {NativeEventTarget as EventTarget} from 'chrome://resources/js/cr/event_target.m.js';
 // <if expr="chromeos">
 import {AccountAdditionOptions} from 'chrome://chrome-signin/inline_login_util.js';
@@ -88,6 +88,7 @@
       'dialogClose',
       // <if expr="chromeos">
       'skipWelcomePage',
+      'getAccountsNotAvailableInArc',
       'getDialogArguments',
       // </if>
     ]);
@@ -97,6 +98,8 @@
      * @private {?AccountAdditionOptions}
      */
     this.dialogArguments_ = null;
+    /** @private */
+    this.accountsNotAvailableInArc_ = [];
     // </if>
   }
 
@@ -107,6 +110,13 @@
   setDialogArguments(dialogArguments) {
     this.dialogArguments_ = dialogArguments;
   }
+
+  /**
+   * @param {!Array<Account>} accountsNotAvailableInArc
+   */
+  setAccountsNotAvailableInArc(accountsNotAvailableInArc) {
+    this.accountsNotAvailableInArc_ = accountsNotAvailableInArc;
+  }
   // </if>
 
   /** @override */
@@ -162,6 +172,12 @@
   }
 
   /** @override */
+  getAccountsNotAvailableInArc() {
+    this.methodCalled('getAccountsNotAvailableInArc');
+    return Promise.resolve(this.accountsNotAvailableInArc_);
+  }
+
+  /** @override */
   getDialogArguments() {
     return JSON.stringify(this.dialogArguments_);
   }
diff --git a/chrome/test/data/webui/settings/basic_page_test.ts b/chrome/test/data/webui/settings/basic_page_test.ts
index bf6ac58..2fba7c7 100644
--- a/chrome/test/data/webui/settings/basic_page_test.ts
+++ b/chrome/test/data/webui/settings/basic_page_test.ts
@@ -11,12 +11,37 @@
 import {isChromeOS, isLacros, webUIListenerCallback} from 'chrome://resources/js/cr.m.js';
 import {loadTimeData} from 'chrome://resources/js/load_time_data.m.js';
 import {flush} from 'chrome://resources/polymer/v3_0/polymer/polymer_bundled.min.js';
-import {CrSettingsPrefs, MetricsBrowserProxyImpl, pageVisibility, Router, routes, SettingsBasicPageElement, SettingsIdleLoadElement, SettingsPrefsElement, SettingsSectionElement, StatusAction, SyncStatus} from 'chrome://settings/settings.js';
+import {CrSettingsPrefs, MetricsBrowserProxyImpl, pageVisibility, PrivacyReviewBrowserProxy, PrivacyReviewBrowserProxyImpl, Router, routes, SettingsBasicPageElement, SettingsIdleLoadElement, SettingsPrefsElement, SettingsSectionElement, StatusAction, SyncStatus} from 'chrome://settings/settings.js';
 import {assertEquals, assertFalse, assertTrue} from 'chrome://webui-test/chai_assert.js';
+import {TestBrowserProxy} from 'chrome://webui-test/test_browser_proxy.js';
 import {eventToPromise, flushTasks, isChildVisible, isVisible} from 'chrome://webui-test/test_util.js';
 import {TestMetricsBrowserProxy} from './test_metrics_browser_proxy.js';
 
 // clang-format on
+class TestPrivacyReviewBrowserProxy extends TestBrowserProxy implements
+    PrivacyReviewBrowserProxy {
+  constructor() {
+    super([
+      'isPrivacyReviewAvailable',
+      'getPromoImpressionCount',
+      'incrementPromoImpressionCount',
+    ]);
+  }
+
+  isPrivacyReviewAvailable() {
+    this.methodCalled('isPrivacyReviewAvailable');
+    return Promise.resolve(true);
+  }
+
+  getPromoImpressionCount() {
+    this.methodCalled('getPromoImpressionCount');
+    return 0;
+  }
+
+  incrementPromoImpressionCount() {
+    this.methodCalled('incrementPromoImpressionCount');
+  }
+}
 
 suite('SettingsBasicPage', () => {
   let page: SettingsBasicPageElement;
@@ -209,12 +234,19 @@
     const activeSections =
         page.shadowRoot!.querySelectorAll<SettingsSectionElement>(
             'settings-section[active]');
-    assertEquals(2, activeSections.length);
-    assertEquals(routes.SAFETY_CHECK.section, activeSections[0]!.section);
+    assertEquals(3, activeSections.length);
+    // Privacy review promo.
     assertEquals(
         routes.PRIVACY.section,
         activeSections[0]!.getAttribute('nest-under-section'));
-    assertEquals(routes.PRIVACY.section, activeSections[1]!.section);
+    assertFalse(isChildVisible(page, '#privacyReviewPromo'));
+    // Safety check.
+    assertEquals(routes.SAFETY_CHECK.section, activeSections[1]!.section);
+    assertEquals(
+        routes.PRIVACY.section,
+        activeSections[1]!.getAttribute('nest-under-section'));
+    // Privacy section.
+    assertEquals(routes.PRIVACY.section, activeSections[2]!.section);
   });
 });
 
@@ -222,6 +254,7 @@
   let page: SettingsBasicPageElement;
   let settingsPrefs: SettingsPrefsElement;
   let testMetricsBrowserProxy: TestMetricsBrowserProxy;
+  let privacyReviewBrowserProxy: TestPrivacyReviewBrowserProxy;
 
   suiteSetup(function() {
     settingsPrefs = document.createElement('settings-prefs');
@@ -230,6 +263,8 @@
 
   setup(async function() {
     assertTrue(loadTimeData.getBoolean('privacyReviewEnabled'));
+    privacyReviewBrowserProxy = new TestPrivacyReviewBrowserProxy();
+    PrivacyReviewBrowserProxyImpl.setInstance(privacyReviewBrowserProxy);
     document.body.innerHTML = '';
     page = document.createElement('settings-basic-page');
     page.prefs = settingsPrefs.prefs!;
@@ -266,18 +301,24 @@
     Router.getInstance().navigateTo(routes.PRIVACY);
     await whenDone;
     await flushTasks();
+    await privacyReviewBrowserProxy.whenCalled('incrementPromoImpressionCount');
+
 
     const activeSections =
         page.shadowRoot!.querySelectorAll<SettingsSectionElement>(
             'settings-section[active]');
     assertEquals(3, activeSections.length);
+    // Privacy review promo.
     assertEquals(
         routes.PRIVACY.section,
         activeSections[0]!.getAttribute('nest-under-section'));
+    assertTrue(isChildVisible(page, '#privacyReviewPromo'));
+    // Safety check.
     assertEquals(routes.SAFETY_CHECK.section, activeSections[1]!.section);
     assertEquals(
         routes.PRIVACY.section,
         activeSections[1]!.getAttribute('nest-under-section'));
+    // Privacy section.
     assertEquals(routes.PRIVACY.section, activeSections[2]!.section);
   });
 
diff --git a/chromecast/cast_core/runtime/browser/BUILD.gn b/chromecast/cast_core/runtime/browser/BUILD.gn
index eccdfe2c..80e1034 100644
--- a/chromecast/cast_core/runtime/browser/BUILD.gn
+++ b/chromecast/cast_core/runtime/browser/BUILD.gn
@@ -4,24 +4,6 @@
 
 import("//chromecast/chromecast.gni")
 
-cast_source_set("grpc_impl") {
-  sources = [
-    "runtime_application_service_grpc_impl.cc",
-    "runtime_application_service_grpc_impl.h",
-    "runtime_message_port_application_service_grpc_impl.cc",
-    "runtime_message_port_application_service_grpc_impl.h",
-  ]
-
-  public_deps = [
-    "//base",
-    "//chromecast/cast_core/runtime/browser/grpc",
-    "//third_party/cast_core/public/src/proto/runtime:runtime_service_proto",
-    "//third_party/cast_core/public/src/proto/v2:runtime_application_service_proto",
-    "//third_party/cast_core/public/src/proto/v2:runtime_message_port_application_service_proto",
-    "//third_party/grpc:grpc++",
-  ]
-}
-
 cast_source_set("message_port") {
   sources = [
     "message_port_handler.cc",
@@ -32,9 +14,8 @@
 
   public_deps = [
     "//base",
-    "//chromecast/cast_core/runtime/browser/grpc",
     "//components/cast/message_port",
-    "//third_party/cast_core/public/src/proto/v2:core_application_service_proto",
+    "//third_party/cast_core/public/src/proto/v2:core_message_port_application_service_proto_castcore",
     "//third_party/cast_core/public/src/proto/web:message_channel_proto",
   ]
 }
@@ -52,7 +33,6 @@
   ]
 
   public_deps = [
-    ":grpc_impl",
     "//base",
     "//chromecast/metrics:metrics_recorder",
     "//third_party/cast_core/public/src/proto/metrics:metrics_recorder_proto",
@@ -89,7 +69,7 @@
 
   public_deps = [
     "//chromecast/browser:public",
-    "//third_party/cast_core/public/src/proto/v2:core_application_service_proto",
+    "//third_party/cast_core/public/src/proto/v2:core_application_service_proto_castcore",
   ]
 
   if (enable_chromecast_extensions) {
@@ -120,7 +100,7 @@
     "//components/cast/message_port",
     "//components/cast/message_port:blink_message_port_adapter",
     "//mojo/public/cpp/bindings",
-    "//third_party/cast_core/public/src/proto/v2:core_application_service_proto",
+    "//third_party/cast_core/public/src/proto/v2:core_message_port_application_service_proto_castcore",
     "//third_party/cast_core/public/src/proto/web:message_channel_proto",
   ]
 
@@ -197,20 +177,22 @@
   ]
 
   public_deps = [
-    ":grpc_impl",
     ":grpc_webui",
     ":metrics_recorder",
     ":runtime_application",
     ":runtime_application_watcher",
     "//base",
     "//chromecast/browser:browser_base",
-    "//chromecast/cast_core/runtime/browser/grpc",
     "//chromecast/common:feature_constants",
     "//components/cast_streaming/public/mojom",
     "//components/url_rewrite/browser",
     "//third_party/cast_core/public/src/proto/core:cast_core_service_proto_castcore",
     "//third_party/cast_core/public/src/proto/metrics:metrics_recorder_proto_castcore",
     "//third_party/cast_core/public/src/proto/runtime:runtime_service_proto_castcore",
+    "//third_party/cast_core/public/src/proto/v2:core_application_service_proto_castcore",
+    "//third_party/cast_core/public/src/proto/v2:core_message_port_application_service_proto_castcore",
+    "//third_party/cast_core/public/src/proto/v2:runtime_application_service_proto_castcore",
+    "//third_party/cast_core/public/src/proto/v2:runtime_message_port_application_service_proto_castcore",
     "//third_party/grpc:grpc++",
   ]
 
diff --git a/chromecast/cast_core/runtime/browser/bindings_manager_web_runtime.cc b/chromecast/cast_core/runtime/browser/bindings_manager_web_runtime.cc
index e65cb58..91ba36fe 100644
--- a/chromecast/cast_core/runtime/browser/bindings_manager_web_runtime.cc
+++ b/chromecast/cast_core/runtime/browser/bindings_manager_web_runtime.cc
@@ -17,9 +17,8 @@
 namespace chromecast {
 
 BindingsManagerWebRuntime::BindingsManagerWebRuntime(
-    grpc::CompletionQueue* grpc_cq,
-    cast::v2::CoreApplicationService::Stub* core_app_stub)
-    : message_port_service_(grpc_cq, core_app_stub) {}
+    cast::v2::CoreMessagePortApplicationServiceStub* core_app_stub)
+    : message_port_service_(core_app_stub) {}
 
 BindingsManagerWebRuntime::~BindingsManagerWebRuntime() = default;
 
@@ -28,10 +27,9 @@
   bindings_[base::NumberToString(id)] = std::string(binding_script);
 }
 
-void BindingsManagerWebRuntime::HandleMessage(
-    const cast::web::Message& message,
-    cast::web::MessagePortStatus* response) {
-  message_port_service_.HandleMessage(message, response);
+cast::utils::GrpcStatusOr<cast::web::MessagePortStatus>
+BindingsManagerWebRuntime::HandleMessage(cast::web::Message message) {
+  return message_port_service_.HandleMessage(std::move(message));
 }
 
 mojo::PendingRemote<mojom::ApiBindings>
diff --git a/chromecast/cast_core/runtime/browser/bindings_manager_web_runtime.h b/chromecast/cast_core/runtime/browser/bindings_manager_web_runtime.h
index 554df0c..4264618 100644
--- a/chromecast/cast_core/runtime/browser/bindings_manager_web_runtime.h
+++ b/chromecast/cast_core/runtime/browser/bindings_manager_web_runtime.h
@@ -14,7 +14,7 @@
 #include "chromecast/cast_core/runtime/browser/message_port_service.h"
 #include "components/cast/api_bindings/manager.h"
 #include "mojo/public/cpp/bindings/receiver.h"
-#include "third_party/cast_core/public/src/proto/v2/core_application_service.grpc.pb.h"
+#include "third_party/cast_core/public/src/proto/v2/core_message_port_application_service.castcore.pb.h"
 #include "third_party/cast_core/public/src/proto/web/message_channel.pb.h"
 
 namespace chromecast {
@@ -30,8 +30,7 @@
   // |cast_web_contents|, |grpc_cq|, and |core_app_stub| all need to outlive
   // |this|.
   BindingsManagerWebRuntime(
-      grpc::CompletionQueue* grpc_cq,
-      cast::v2::CoreApplicationService::Stub* core_app_stub);
+      cast::v2::CoreMessagePortApplicationServiceStub* core_app_stub);
   ~BindingsManagerWebRuntime() override;
 
   BindingsManagerWebRuntime(const BindingsManagerWebRuntime&) = delete;
@@ -41,8 +40,8 @@
   BindingsManagerWebRuntime& operator=(BindingsManagerWebRuntime&&) = delete;
 
   void AddBinding(base::StringPiece binding_script);
-  void HandleMessage(const cast::web::Message& message,
-                     cast::web::MessagePortStatus* response);
+  cast::utils::GrpcStatusOr<cast::web::MessagePortStatus> HandleMessage(
+      cast::web::Message message);
 
   // Returns a mojo::PendingRemote bound to |this|.
   // At most one bound remote can exist at the same time.
diff --git a/chromecast/cast_core/runtime/browser/cast_runtime_metrics_recorder_service.cc b/chromecast/cast_core/runtime/browser/cast_runtime_metrics_recorder_service.cc
index f2be265b..a03ee5f9 100644
--- a/chromecast/cast_core/runtime/browser/cast_runtime_metrics_recorder_service.cc
+++ b/chromecast/cast_core/runtime/browser/cast_runtime_metrics_recorder_service.cc
@@ -66,7 +66,7 @@
   DrainBuffer();
 }
 
-void CastRuntimeMetricsRecorderService::OnRecordComplete() {
+void CastRuntimeMetricsRecorderService::OnMetricsRecorded() {
   DCHECK_CALLED_ON_VALID_SEQUENCE(sequence_checker_);
   DCHECK(ack_pending_);
   ack_pending_ = false;
@@ -97,7 +97,7 @@
   ack_pending_ = true;
   record_metrics_callback_.Run(
       std::move(request),
-      base::BindOnce(&CastRuntimeMetricsRecorderService::OnRecordComplete,
+      base::BindOnce(&CastRuntimeMetricsRecorderService::OnMetricsRecorded,
                      weak_factory_.GetWeakPtr()));
 }
 
diff --git a/chromecast/cast_core/runtime/browser/cast_runtime_metrics_recorder_service.h b/chromecast/cast_core/runtime/browser/cast_runtime_metrics_recorder_service.h
index 0a5c40d..94713b89 100644
--- a/chromecast/cast_core/runtime/browser/cast_runtime_metrics_recorder_service.h
+++ b/chromecast/cast_core/runtime/browser/cast_runtime_metrics_recorder_service.h
@@ -39,7 +39,7 @@
  private:
   void Report();
   void DrainBuffer();
-  void OnRecordComplete();
+  void OnMetricsRecorded();
 
   CastRuntimeMetricsRecorder* const metrics_recorder_;
   CastRuntimeActionRecorder* const action_recorder_;
diff --git a/chromecast/cast_core/runtime/browser/grpc/BUILD.gn b/chromecast/cast_core/runtime/browser/grpc/BUILD.gn
deleted file mode 100644
index ef6baa3..0000000
--- a/chromecast/cast_core/runtime/browser/grpc/BUILD.gn
+++ /dev/null
@@ -1,20 +0,0 @@
-# Copyright 2021 The Chromium Authors. All rights reserved.
-# Use of this source code is governed by a BSD-style license that can be
-# found in the LICENSE file.
-
-import("//chromecast/chromecast.gni")
-
-cast_source_set("grpc") {
-  sources = [
-    "grpc_method.cc",
-    "grpc_method.h",
-    "grpc_server.cc",
-    "grpc_server.h",
-    "simple_async_grpc.h",
-  ]
-
-  public_deps = [
-    "//base",
-    "//third_party/grpc:grpc++",
-  ]
-}
diff --git a/chromecast/cast_core/runtime/browser/grpc/DEPS b/chromecast/cast_core/runtime/browser/grpc/DEPS
deleted file mode 100644
index 46ed6bc7..0000000
--- a/chromecast/cast_core/runtime/browser/grpc/DEPS
+++ /dev/null
@@ -1,3 +0,0 @@
-include_rules = [
-  "+third_party/grpc",
-]
diff --git a/chromecast/cast_core/runtime/browser/grpc/grpc_method.cc b/chromecast/cast_core/runtime/browser/grpc/grpc_method.cc
deleted file mode 100644
index b20f6922..0000000
--- a/chromecast/cast_core/runtime/browser/grpc/grpc_method.cc
+++ /dev/null
@@ -1,41 +0,0 @@
-// Copyright 2021 The Chromium Authors. All rights reserved.
-// Use of this source code is governed by a BSD-style license that can be
-// found in the LICENSE file.
-
-#include "chromecast/cast_core/runtime/browser/grpc/grpc_method.h"
-
-namespace chromecast {
-
-GrpcCall::GrpcCall() = default;
-
-GrpcCall::~GrpcCall() = default;
-
-void GrpcMethod::StepGRPC(grpc::Status status) {
-  switch (method_state_) {
-    case kRequestPending:
-      if (!status.ok()) {
-        delete this;
-        return;
-      }
-      method_state_ = kActionPending;
-      Clone();
-      StepInternal(status);
-      break;
-    case kActionPending:
-      StepInternal(status);
-      break;
-    case kFinish:
-      delete this;
-      break;
-  }
-}
-
-GrpcMethod::GrpcMethod(::grpc::ServerCompletionQueue* cq) : cq_(cq) {}
-
-GrpcMethod::~GrpcMethod() = default;
-
-void GrpcMethod::Done() {
-  method_state_ = kFinish;
-}
-
-}  // namespace chromecast
diff --git a/chromecast/cast_core/runtime/browser/grpc/grpc_method.h b/chromecast/cast_core/runtime/browser/grpc/grpc_method.h
deleted file mode 100644
index b4e3424..0000000
--- a/chromecast/cast_core/runtime/browser/grpc/grpc_method.h
+++ /dev/null
@@ -1,95 +0,0 @@
-// Copyright 2021 The Chromium Authors. All rights reserved.
-// Use of this source code is governed by a BSD-style license that can be
-// found in the LICENSE file.
-
-#ifndef CHROMECAST_CAST_CORE_RUNTIME_BROWSER_GRPC_GRPC_METHOD_H_
-#define CHROMECAST_CAST_CORE_RUNTIME_BROWSER_GRPC_GRPC_METHOD_H_
-
-#include "third_party/grpc/src/include/grpcpp/client_context.h"
-#include "third_party/grpc/src/include/grpcpp/completion_queue.h"
-#include "third_party/grpc/src/include/grpcpp/server_context.h"
-
-namespace chromecast {
-
-// This class provides a basic interface for managing some boilerplate
-// associated with handling asynchronous gRPC calls.  The common practice with
-// async gRPC calls is to have an object without an explicit owner whose address
-// is used as a tag in the gRPC completion queue.  The completion queue returns
-// this "tag" when a remote gRPC call is made, which can then be converted back
-// to the object's address.  Whenever the object is done, it deletes itself.
-// This class provides a standard way to buy into that general lifecycle.
-class GRPC {
- public:
-  GRPC() = default;
-  virtual ~GRPC() = default;
-
-  GRPC(const GRPC&) = delete;
-  GRPC(GRPC&&) = delete;
-  GRPC& operator=(const GRPC&) = delete;
-  GRPC& operator=(GRPC&&) = delete;
-
-  virtual void StepGRPC(grpc::Status status) = 0;
-};
-
-// This provides some additional client boilerplate for async gRPC calls.
-class GrpcCall : public GRPC {
- public:
-  GrpcCall();
-  ~GrpcCall() override;
-
-  GrpcCall(const GrpcCall&) = delete;
-  GrpcCall(GrpcCall&&) = delete;
-  GrpcCall& operator=(const GrpcCall&) = delete;
-  GrpcCall& operator=(GrpcCall&&) = delete;
-
- protected:
-  grpc::ClientContext context_;
-  grpc::Status status_;
-};
-
-// This provides some boilerplate for servicing gRPC calls, including lifetime
-// management with a simple state machine.
-class GrpcMethod : public GRPC {
- public:
-  enum State {
-    kRequestPending,
-    kActionPending,
-    kFinish,
-  };
-
-  GrpcMethod(const GrpcMethod&) = delete;
-  GrpcMethod(GrpcMethod&&) = delete;
-  GrpcMethod& operator=(const GrpcMethod&) = delete;
-  GrpcMethod& operator=(GrpcMethod&&) = delete;
-
-  // Callers should not store a pointer to |this| after calling Step(), because
-  // it will be destroyed if it is now finished.
-  void StepGRPC(grpc::Status status) override;
-
-  // This is used to place a new object for receiving the same method back on
-  // the completion queue when an incoming call is received and will be handled
-  // by |this|.
-  virtual GrpcMethod* Clone() = 0;
-
-  // Allows the underlying method implementation to run its own state machine
-  // for handling the gRPC call.
-  virtual void StepInternal(grpc::Status status) = 0;
-
- protected:
-  explicit GrpcMethod(::grpc::ServerCompletionQueue* cq);
-  ~GrpcMethod() override;
-
-  // This should be called when the gRPC call has been successfully handled but
-  // before the response has finished writing (i.e. before the _callback_ from
-  // ServerAsyncResponseWriter::Finish) to signal that the next Step() call is
-  // from the response finishing and |this| can be deleted.
-  void Done();
-
-  State method_state_{kRequestPending};
-  ::grpc::ServerCompletionQueue* cq_;
-  ::grpc::ServerContext ctx_;
-};
-
-}  // namespace chromecast
-
-#endif  // CHROMECAST_CAST_CORE_RUNTIME_BROWSER_GRPC_GRPC_METHOD_H_
diff --git a/chromecast/cast_core/runtime/browser/grpc/grpc_server.cc b/chromecast/cast_core/runtime/browser/grpc/grpc_server.cc
deleted file mode 100644
index fdfa0a40..0000000
--- a/chromecast/cast_core/runtime/browser/grpc/grpc_server.cc
+++ /dev/null
@@ -1,93 +0,0 @@
-// Copyright 2021 The Chromium Authors. All rights reserved.
-// Use of this source code is governed by a BSD-style license that can be
-// found in the LICENSE file.
-
-#include "chromecast/cast_core/runtime/browser/grpc/grpc_server.h"
-
-#include "chromecast/cast_core/runtime/browser/grpc/grpc_method.h"
-
-namespace chromecast {
-
-GrpcServer::GrpcServer(scoped_refptr<base::SequencedTaskRunner> task_runner)
-    : task_runner_(std::move(task_runner)) {
-  server_objects_.store(new ServerObjects);
-}
-
-GrpcServer::~GrpcServer() {
-  delete server_objects_.load();
-}
-
-void GrpcServer::Start() {
-  DCHECK(grpc_cq_);
-  DCHECK(grpc_server_);
-  base::PlatformThread::Create(0, this, &grpc_thread_handle_);
-  base::PlatformThread::Detach(grpc_thread_handle_);
-}
-
-void GrpcServer::Stop() {
-  if (grpc_cq_) {
-    is_shutdown_ = true;
-    // NOTE: We pass a deadline of 0 because we don't need any pending calls to
-    // be allowed to finish, and more importantly they won't.  Since requests
-    // are also processed on this sequence, we can't block this sequence waiting
-    // for them.
-    gpr_timespec deadline = {};
-    deadline.clock_type = GPR_TIMESPAN;
-    grpc_server_->Shutdown(deadline);
-    // NOTE: This leads to cq->Next() returning false.
-    grpc_cq_->Shutdown();
-    grpc_server_ = nullptr;
-    grpc_cq_ = nullptr;
-  }
-}
-
-void GrpcServer::SetCompletionQueue(
-    std::unique_ptr<grpc::ServerCompletionQueue> cq) {
-  auto* objects = server_objects_.load();
-  DCHECK(cq);
-  DCHECK(objects);
-  DCHECK(!objects->cq);
-  grpc_cq_ = cq.get();
-  objects->cq = std::move(cq);
-}
-
-void GrpcServer::SetServer(std::unique_ptr<grpc::Server> server) {
-  auto* objects = server_objects_.load();
-  DCHECK(server);
-  DCHECK(objects);
-  DCHECK(!objects->server);
-  grpc_server_ = server.get();
-  objects->server = std::move(server);
-}
-
-GrpcServer::ServerObjects::ServerObjects() = default;
-GrpcServer::ServerObjects::~ServerObjects() = default;
-
-void GrpcServer::ThreadMain() {
-  // NOTE: A dedicated thread is all but required by gRPC, even when switching
-  // to async because CompletionQueue's Next() is blocking and AsyncNext() would
-  // rely on repeated polling which probably isn't friendly to a TaskRunner.
-  base::PlatformThread::SetName("GRPCServer");
-
-  // NOTE: This thread owns the CQ and server now and will delete them after a
-  // shutdown triggered by Stop().  Even after the Shutdown() calls and the CQ
-  // is draining, it can still access some fields of the server, so both have to
-  // be kept alive by this thread.
-  std::unique_ptr<ServerObjects> server_objects{
-      server_objects_.exchange(nullptr)};
-  grpc::ServerCompletionQueue* cq = server_objects->cq.get();
-
-  void* tag;
-  bool running;
-  while (cq->Next(&tag, &running)) {
-    grpc::Status status =
-        running ? grpc::Status::OK
-                : grpc::Status(grpc::ABORTED, "server was shutdown");
-    task_runner_->PostTask(
-        FROM_HERE,
-        base::BindOnce(&GRPC::StepGRPC,
-                       base::Unretained(static_cast<GRPC*>(tag)), status));
-  }
-}
-
-}  // namespace chromecast
diff --git a/chromecast/cast_core/runtime/browser/grpc/grpc_server.h b/chromecast/cast_core/runtime/browser/grpc/grpc_server.h
deleted file mode 100644
index c827e01d..0000000
--- a/chromecast/cast_core/runtime/browser/grpc/grpc_server.h
+++ /dev/null
@@ -1,65 +0,0 @@
-// Copyright 2021 The Chromium Authors. All rights reserved.
-// Use of this source code is governed by a BSD-style license that can be
-// found in the LICENSE file.
-
-#ifndef CHROMECAST_CAST_CORE_RUNTIME_BROWSER_GRPC_GRPC_SERVER_H_
-#define CHROMECAST_CAST_CORE_RUNTIME_BROWSER_GRPC_GRPC_SERVER_H_
-
-#include <atomic>
-#include <memory>
-
-#include "base/task/sequenced_task_runner.h"
-#include "base/threading/platform_thread.h"
-#include "third_party/grpc/src/include/grpcpp/completion_queue.h"
-#include "third_party/grpc/src/include/grpcpp/server.h"
-
-namespace chromecast {
-
-class GrpcServer : public base::PlatformThread::Delegate {
- public:
-  explicit GrpcServer(scoped_refptr<base::SequencedTaskRunner> task_runner);
-  ~GrpcServer() override;
-
-  void Start();
-  void Stop();
-
- protected:
-  void SetCompletionQueue(std::unique_ptr<grpc::ServerCompletionQueue> cq);
-  void SetServer(std::unique_ptr<grpc::Server> server);
-
-  scoped_refptr<base::SequencedTaskRunner> task_runner_;
-
-  // Indicates that Stop() has been called and no more requests or other server
-  // calls should be made.  This can be used by e.g. SimpleAsyncGrpc.
-  bool is_shutdown_{false};
-
-  // Unowned pointers to the completion queue and server so they can be shut
-  // down by the polling thread.
-  grpc::ServerCompletionQueue* grpc_cq_{nullptr};
-  grpc::Server* grpc_server_{nullptr};
-
- private:
-  // Owns the gRPC completion queue and server objects so that a single atomic
-  // pointer exchange is possible to transfer ownership of both to the gRPC
-  // thread.
-  struct ServerObjects {
-    ServerObjects();
-    ~ServerObjects();
-
-    std::unique_ptr<grpc::Server> server;
-    std::unique_ptr<grpc::ServerCompletionQueue> cq;
-  };
-
-  // base::PlatformThread::Delegate implementation:
-  void ThreadMain() override;
-
-  // Allows ownership of the completion queue and server to be passed to the
-  // gRPC thread.
-  std::atomic<ServerObjects*> server_objects_;
-
-  base::PlatformThreadHandle grpc_thread_handle_;
-};
-
-}  // namespace chromecast
-
-#endif  // CHROMECAST_CAST_CORE_RUNTIME_BROWSER_GRPC_GRPC_SERVER_H_
diff --git a/chromecast/cast_core/runtime/browser/grpc/simple_async_grpc.h b/chromecast/cast_core/runtime/browser/grpc/simple_async_grpc.h
deleted file mode 100644
index ab4eb16a..0000000
--- a/chromecast/cast_core/runtime/browser/grpc/simple_async_grpc.h
+++ /dev/null
@@ -1,85 +0,0 @@
-// Copyright 2021 The Chromium Authors. All rights reserved.
-// Use of this source code is governed by a BSD-style license that can be
-// found in the LICENSE file.
-
-#ifndef CHROMECAST_CAST_CORE_RUNTIME_BROWSER_GRPC_SIMPLE_ASYNC_GRPC_H_
-#define CHROMECAST_CAST_CORE_RUNTIME_BROWSER_GRPC_SIMPLE_ASYNC_GRPC_H_
-
-#include "base/notreached.h"
-#include "chromecast/cast_core/runtime/browser/grpc/grpc_method.h"
-
-namespace chromecast {
-
-// This class is some common state machine glue between GrpcServer, request
-// objects, and their delegates.  There are two threads/sequences involved: the
-// gRPC thread and the main task runner.  The important element that this class
-// helps handle is that after GrpcServer::Stop(), we can't reference gRPC
-// objects that may lead back to the underlying server.  This includes not
-// making any new requests (i.e. not call `new T` in Clone()).
-//
-// There are two signals this class uses to cancel gRPC operations: |delegate|
-// and |is_shutdown|.  |delegate| should return nullptr when the actual delegate
-// is no longer alive (so it's likely a base::WeakPtr).  |is_shutdown| should
-// return a bool* that, when dereferenced, indicates whether the GrpcServer has
-// been or is being shutdown.  |is_shtudown| will not be dereferenced when
-// |delegate| is nullptr, so it's safe to tie |is_shutdown| to the lifetime of
-// |delegate|.
-template <typename T, typename RequestType, typename ResponseType>
-class SimpleAsyncGrpc : public GrpcMethod {
- public:
-  enum State {
-    kStart,
-    kRespond,
-    kFinish,
-  };
-
-  explicit SimpleAsyncGrpc(grpc::ServerCompletionQueue* cq)
-      : GrpcMethod(cq), responder_(&ctx_) {}
-
-  GrpcMethod* Clone() override {
-    if (!self()->delegate() || *self()->is_shutdown()) {
-      return nullptr;
-    }
-    return new T(self()->service(), self()->delegate(), cq_,
-                 self()->is_shutdown());
-  }
-
-  void StepInternal(grpc::Status status) override {
-    switch (state_) {
-      case kStart:
-        DCHECK(status.ok());
-        state_ = kRespond;
-        if (self()->delegate()) {
-          self()->DoMethod();
-        } else {
-          delete this;
-        }
-        break;
-      case kRespond:
-        state_ = kFinish;
-        if (!status.ok() || !self()->delegate() || *self()->is_shutdown()) {
-          delete this;
-        } else {
-          responder_.Finish(response_, status, static_cast<GRPC*>(this));
-          Done();
-        }
-        break;
-      default:
-        NOTREACHED();
-        break;
-    }
-  }
-
- protected:
-  State state_{kStart};
-  RequestType request_;
-  ResponseType response_;
-  ::grpc::ServerAsyncResponseWriter<ResponseType> responder_;
-
- private:
-  T* self() { return static_cast<T*>(this); }
-};
-
-}  // namespace chromecast
-
-#endif  // CHROMECAST_CAST_CORE_RUNTIME_BROWSER_GRPC_SIMPLE_ASYNC_GRPC_H_
diff --git a/chromecast/cast_core/runtime/browser/grpc_resource_data_source.cc b/chromecast/cast_core/runtime/browser/grpc_resource_data_source.cc
index a5c768b..70c3af7 100644
--- a/chromecast/cast_core/runtime/browser/grpc_resource_data_source.cc
+++ b/chromecast/cast_core/runtime/browser/grpc_resource_data_source.cc
@@ -9,6 +9,7 @@
 #include "base/files/file_util.h"
 #include "base/memory/ref_counted_memory.h"
 #include "base/strings/string_util.h"
+#include "base/task/bind_post_task.h"
 #include "base/task/task_traits.h"
 #include "base/task/thread_pool.h"
 #include "base/threading/thread_task_runner_handle.h"
@@ -45,12 +46,12 @@
 GrpcResourceDataSource::GrpcResourceDataSource(
     const std::string host,
     bool for_webui,
-    cast::v2::CoreApplicationService::Stub core_app_service_stub)
+    cast::v2::CoreApplicationServiceStub* core_app_service_stub)
     : task_runner_(base::ThreadPool::CreateSequencedTaskRunner(
           {base::MayBlock(), base::TaskShutdownBehavior::SKIP_ON_SHUTDOWN})),
       host_(host),
       for_webui_(for_webui),
-      core_app_service_stub_(std::move(core_app_service_stub)) {
+      core_app_service_stub_(core_app_service_stub) {
   DCHECK(!host.empty());
 }
 
@@ -64,38 +65,38 @@
     const GURL& url,
     const content::WebContents::Getter& wc_getter,
     content::URLDataSource::GotDataCallback callback) {
-  LOG(INFO) << "Starting Data request for " << url;
-  std::string path = content::URLDataSource::URLToRequestPath(url);
-  std::string contents;
+  DVLOG(1) << "Starting Data request for " << url;
 
-  // TODO(b/195894244): Replace this with gRPC framework from
-  // chromecast/cast_core.
-  grpc::Status status;
-  cast::v2::GetWebUIResourceResponse response;
-  {
-    grpc::ClientContext context;
-    cast::v2::GetWebUIResourceRequest request;
-    request.set_resource_id(path);
-    status =
-        core_app_service_stub_.GetWebUIResource(&context, request, &response);
-    contents = response.resource_path();
-  }
+  auto call = core_app_service_stub_->CreateCall<
+      cast::v2::CoreApplicationServiceStub::GetWebUIResource>();
+  call.request().set_resource_id(content::URLDataSource::URLToRequestPath(url));
+  std::move(call).InvokeAsync(base::BindPostTask(
+      task_runner_,
+      base::BindOnce(&GrpcResourceDataSource::OnWebUiResourceReceived,
+                     weak_factory_.GetWeakPtr(), std::move(callback))));
+}
 
-  if (!status.ok()) {
-    LOG(ERROR) << "Failed to receive resource path response";
+void GrpcResourceDataSource::OnWebUiResourceReceived(
+    content::URLDataSource::GotDataCallback callback,
+    cast::utils::GrpcStatusOr<cast::v2::GetWebUIResourceResponse> response_or) {
+  DCHECK(task_runner_->RunsTasksInCurrentSequence());
+
+  if (!response_or.ok()) {
+    LOG(ERROR) << "Failed to receive resource path response: status="
+               << response_or.ToString();
     std::move(callback).Run(nullptr);
     return;
   }
 
-  task_runner_->PostTask(
-      FROM_HERE, base::BindOnce(&GrpcResourceDataSource::ReadResourceFile,
-                                weak_ptr_factory_.GetWeakPtr(), contents,
-                                std::move(callback)));
+  DVLOG(1) << "Got resource path: " << response_or->resource_path();
+  ReadResourceFile(response_or->resource_path(), std::move(callback));
 }
 
 void GrpcResourceDataSource::ReadResourceFile(
     base::StringPiece resource_file_path,
     content::URLDataSource::GotDataCallback callback) {
+  DCHECK(task_runner_->RunsTasksInCurrentSequence());
+
   base::FilePath path(resource_file_path);
   if (!base::PathExists(path)) {
     LOG(ERROR) << "Resource " << resource_file_path << " does not exist";
@@ -133,7 +134,6 @@
   if (extension.empty()) {
     return kMimeTypeHtml;
   }
-
   if (base::EqualsCaseInsensitiveASCII(extension, kExtensionTypeCss)) {
     return kMimeTypeCss;
   }
@@ -160,7 +160,7 @@
   }
 
   NOTREACHED() << "Unknown Mime type of file " << path;
-  return "";
+  return std::string();
 }
 
 bool GrpcResourceDataSource::ShouldServiceRequest(
diff --git a/chromecast/cast_core/runtime/browser/grpc_resource_data_source.h b/chromecast/cast_core/runtime/browser/grpc_resource_data_source.h
index 58328cd..e134a468 100644
--- a/chromecast/cast_core/runtime/browser/grpc_resource_data_source.h
+++ b/chromecast/cast_core/runtime/browser/grpc_resource_data_source.h
@@ -8,7 +8,7 @@
 #include "base/task/sequenced_task_runner.h"
 #include "content/public/browser/url_data_source.h"
 #include "third_party/abseil-cpp/absl/types/optional.h"
-#include "third_party/cast_core/public/src/proto/v2/core_application_service.grpc.pb.h"
+#include "third_party/cast_core/public/src/proto/v2/core_application_service.castcore.pb.h"
 
 namespace chromecast {
 
@@ -20,7 +20,7 @@
   GrpcResourceDataSource(
       const std::string host,
       bool for_webui,
-      cast::v2::CoreApplicationService::Stub core_app_service_stub);
+      cast::v2::CoreApplicationServiceStub* core_app_service_stub);
   ~GrpcResourceDataSource() override;
 
   void OverrideContentSecurityPolicyChildSrc(const std::string& data);
@@ -50,6 +50,11 @@
 
   bool ShouldDenyXFrameOptions() override;
 
+  // Helper methods.
+  void OnWebUiResourceReceived(
+      content::URLDataSource::GotDataCallback callback,
+      cast::utils::GrpcStatusOr<cast::v2::GetWebUIResourceResponse>
+          response_or);
   void ReadResourceFile(base::StringPiece path,
                         content::URLDataSource::GotDataCallback callback);
 
@@ -60,11 +65,12 @@
   // GrpcWebUIController and false otherwise. In practice, for all the
   // chrome://home/* urls this is set to true and false for chrome-resource://*
   const bool for_webui_;
-  cast::v2::CoreApplicationService::Stub core_app_service_stub_;
+  cast::v2::CoreApplicationServiceStub* const core_app_service_stub_;
 
   absl::optional<std::string> frame_src_;
   bool deny_xframe_options_ = true;
-  base::WeakPtrFactory<GrpcResourceDataSource> weak_ptr_factory_{this};
+
+  base::WeakPtrFactory<GrpcResourceDataSource> weak_factory_{this};
 };
 
 }  // namespace chromecast
diff --git a/chromecast/cast_core/runtime/browser/grpc_resource_data_source_unittest.cc b/chromecast/cast_core/runtime/browser/grpc_resource_data_source_unittest.cc
index 71fe499..5f8143a 100644
--- a/chromecast/cast_core/runtime/browser/grpc_resource_data_source_unittest.cc
+++ b/chromecast/cast_core/runtime/browser/grpc_resource_data_source_unittest.cc
@@ -6,8 +6,6 @@
 #include "base/test/task_environment.h"
 #include "testing/gmock/include/gmock/gmock.h"
 #include "testing/gtest/include/gtest/gtest.h"
-#include "third_party/grpc/src/include/grpcpp/channel.h"
-#include "third_party/grpc/src/include/grpcpp/create_channel.h"
 
 using ::testing::IsEmpty;
 
@@ -17,7 +15,7 @@
  public:
   GrpcResourceDataSourceTest()
       : grpc_resource_data_source_(
-            new GrpcResourceDataSource("chrome", true, *stub_.get())) {}
+            new GrpcResourceDataSource("chrome", true, nullptr)) {}
 
  protected:
   std::string GetMimeType(const std::string& path) {
@@ -31,10 +29,6 @@
 
   base::test::TaskEnvironment task_environment_;
   std::string core_application_service_address_ = "fake-address";
-  std::unique_ptr<cast::v2::CoreApplicationService::Stub> stub_ =
-      cast::v2::CoreApplicationService::NewStub(
-          grpc::CreateChannel(core_application_service_address_,
-                              grpc::InsecureChannelCredentials()));
   GrpcResourceDataSource* grpc_resource_data_source_;
 };
 
diff --git a/chromecast/cast_core/runtime/browser/grpc_webui_controller.cc b/chromecast/cast_core/runtime/browser/grpc_webui_controller.cc
index 4844f5c..a0c51d8 100644
--- a/chromecast/cast_core/runtime/browser/grpc_webui_controller.cc
+++ b/chromecast/cast_core/runtime/browser/grpc_webui_controller.cc
@@ -44,16 +44,15 @@
 std::unique_ptr<CastCoreWebUI> CastCoreWebUI::Create(
     content::WebUI* webui,
     const std::string host,
-    cast::v2::CoreApplicationService::Stub core_app_service_stub) {
-  return std::make_unique<CastCoreWebUI>(webui, host,
-                                         std::move(core_app_service_stub));
+    cast::v2::CoreApplicationServiceStub* core_app_service_stub) {
+  return std::make_unique<CastCoreWebUI>(webui, host, core_app_service_stub);
 }
 #endif
 
 GrpcWebUIController::GrpcWebUIController(
     content::WebUI* webui,
     const std::string host,
-    cast::v2::CoreApplicationService::Stub core_app_service_stub)
+    cast::v2::CoreApplicationServiceStub* core_app_service_stub)
     : WebUIController(webui),
       web_contents_(webui->GetWebContents()),
       browser_context_(web_contents_->GetBrowserContext()) {
@@ -61,7 +60,7 @@
   DCHECK(browser_context_);
   webui->SetBindings(content::BINDINGS_POLICY_WEB_UI);
   auto cast_resources = std::make_unique<GrpcResourceDataSource>(
-      host, true /* for_webui */, std::move(core_app_service_stub));
+      host, true /* for_webui */, core_app_service_stub);
   if (host == kCastWebUIHomeHost) {
     cast_resources->OverrideContentSecurityPolicyChildSrc(
         kContentSecurityPolicyOverride);
diff --git a/chromecast/cast_core/runtime/browser/grpc_webui_controller.h b/chromecast/cast_core/runtime/browser/grpc_webui_controller.h
index 8316403..400f19b 100644
--- a/chromecast/cast_core/runtime/browser/grpc_webui_controller.h
+++ b/chromecast/cast_core/runtime/browser/grpc_webui_controller.h
@@ -11,7 +11,7 @@
 #include "base/containers/flat_map.h"
 #include "base/values.h"
 #include "content/public/browser/web_ui_controller.h"
-#include "third_party/cast_core/public/src/proto/v2/core_application_service.grpc.pb.h"
+#include "third_party/cast_core/public/src/proto/v2/core_application_service.castcore.pb.h"
 
 namespace content {
 class BrowserContext;
@@ -34,7 +34,7 @@
   GrpcWebUIController(
       content::WebUI* webui,
       const std::string host,
-      cast::v2::CoreApplicationService::Stub core_app_service_stub);
+      cast::v2::CoreApplicationServiceStub* core_app_service_stub);
   ~GrpcWebUIController() override;
 
   // Creates an instance of GrpcWebUIController.
@@ -42,7 +42,7 @@
   static std::unique_ptr<GrpcWebUIController> Create(
       content::WebUI* webui,
       const std::string host,
-      cast::v2::CoreApplicationService::Stub core_app_service_stub);
+      cast::v2::CoreApplicationServiceStub* core_app_service_stub);
 
  protected:
   content::WebContents* web_contents() const;
diff --git a/chromecast/cast_core/runtime/browser/grpc_webui_controller_extension.cc b/chromecast/cast_core/runtime/browser/grpc_webui_controller_extension.cc
index ea64028..7f37e81 100644
--- a/chromecast/cast_core/runtime/browser/grpc_webui_controller_extension.cc
+++ b/chromecast/cast_core/runtime/browser/grpc_webui_controller_extension.cc
@@ -14,16 +14,16 @@
 std::unique_ptr<GrpcWebUIController> GrpcWebUIController::Create(
     content::WebUI* webui,
     const std::string host,
-    cast::v2::CoreApplicationService::Stub core_app_service_stub) {
-  return std::make_unique<GrpcWebUIControllerExtension>(
-      webui, host, std::move(core_app_service_stub));
+    cast::v2::CoreApplicationServiceStub* core_app_service_stub) {
+  return std::make_unique<GrpcWebUIControllerExtension>(webui, host,
+                                                        core_app_service_stub);
 }
 
 GrpcWebUIControllerExtension::GrpcWebUIControllerExtension(
     content::WebUI* webui,
     const std::string host,
-    cast::v2::CoreApplicationService::Stub core_app_service_stub)
-    : GrpcWebUIController(webui, host, std::move(core_app_service_stub)) {
+    cast::v2::CoreApplicationServiceStub* core_app_service_stub)
+    : GrpcWebUIController(webui, host, core_app_service_stub) {
   if (host == kCastWebUIHomeHost) {
     // We need an ExtensionWebContentsObserver to support the <webview> tag,
     // so make sure one exists (this is a no-op if one already does).
diff --git a/chromecast/cast_core/runtime/browser/grpc_webui_controller_extension.h b/chromecast/cast_core/runtime/browser/grpc_webui_controller_extension.h
index af9dc462d..9a246ab 100644
--- a/chromecast/cast_core/runtime/browser/grpc_webui_controller_extension.h
+++ b/chromecast/cast_core/runtime/browser/grpc_webui_controller_extension.h
@@ -24,7 +24,7 @@
   GrpcWebUIControllerExtension(
       content::WebUI* webui,
       const std::string host,
-      cast::v2::CoreApplicationService::Stub core_app_service_stub);
+      cast::v2::CoreApplicationServiceStub* core_app_service_stub);
   ~GrpcWebUIControllerExtension() override;
 
   // extensions::ExtensionFunctionDispatcher::Delegate implementation:
diff --git a/chromecast/cast_core/runtime/browser/grpc_webui_controller_factory.cc b/chromecast/cast_core/runtime/browser/grpc_webui_controller_factory.cc
index aec1283..dcea452e 100644
--- a/chromecast/cast_core/runtime/browser/grpc_webui_controller_factory.cc
+++ b/chromecast/cast_core/runtime/browser/grpc_webui_controller_factory.cc
@@ -16,9 +16,8 @@
 
 GrpcWebUiControllerFactory::GrpcWebUiControllerFactory(
     const std::vector<std::string> hosts,
-    cast::v2::CoreApplicationService::Stub core_app_service_stub)
-    : hosts_(std::move(hosts)),
-      core_app_service_stub_(std::move(core_app_service_stub)) {}
+    cast::v2::CoreApplicationServiceStub* core_app_service_stub)
+    : hosts_(std::move(hosts)), core_app_service_stub_(core_app_service_stub) {}
 
 GrpcWebUiControllerFactory::~GrpcWebUiControllerFactory() = default;
 
diff --git a/chromecast/cast_core/runtime/browser/grpc_webui_controller_factory.h b/chromecast/cast_core/runtime/browser/grpc_webui_controller_factory.h
index 9088f1c..1c0fc48 100644
--- a/chromecast/cast_core/runtime/browser/grpc_webui_controller_factory.h
+++ b/chromecast/cast_core/runtime/browser/grpc_webui_controller_factory.h
@@ -6,7 +6,7 @@
 #define CHROMECAST_CAST_CORE_RUNTIME_BROWSER_GRPC_WEBUI_CONTROLLER_FACTORY_H_
 
 #include "content/public/browser/web_ui_controller_factory.h"
-#include "third_party/cast_core/public/src/proto/v2/core_application_service.grpc.pb.h"
+#include "third_party/cast_core/public/src/proto/v2/core_application_service.castcore.pb.h"
 
 namespace content {
 class BrowserContext;
@@ -23,7 +23,7 @@
  public:
   GrpcWebUiControllerFactory(
       const std::vector<std::string> hosts,
-      cast::v2::CoreApplicationService::Stub core_app_service_stub);
+      cast::v2::CoreApplicationServiceStub* core_app_service_stub);
   GrpcWebUiControllerFactory(const GrpcWebUiControllerFactory&) = delete;
   GrpcWebUiControllerFactory& operator=(const GrpcWebUiControllerFactory&) =
       delete;
@@ -45,7 +45,7 @@
 
  private:
   const std::vector<std::string> hosts_;
-  cast::v2::CoreApplicationService::Stub core_app_service_stub_;
+  cast::v2::CoreApplicationServiceStub* const core_app_service_stub_;
 };
 
 }  // namespace chromecast
diff --git a/chromecast/cast_core/runtime/browser/message_port_handler.cc b/chromecast/cast_core/runtime/browser/message_port_handler.cc
index 7b521570..c103d98 100644
--- a/chromecast/cast_core/runtime/browser/message_port_handler.cc
+++ b/chromecast/cast_core/runtime/browser/message_port_handler.cc
@@ -7,6 +7,7 @@
 #include <utility>
 
 #include "base/logging.h"
+#include "base/task/bind_post_task.h"
 #include "chromecast/cast_core/runtime/browser/message_port_service.h"
 #include "components/cast/message_port/platform_message_port.h"
 
@@ -27,17 +28,14 @@
     std::unique_ptr<cast_api_bindings::MessagePort> message_port,
     uint32_t channel_id,
     MessagePortService* message_port_service,
-    grpc::CompletionQueue* cq,
-    cast::v2::CoreApplicationService::Stub* core_app_stub,
+    cast::v2::CoreMessagePortApplicationServiceStub* core_app_stub,
     scoped_refptr<base::SequencedTaskRunner> task_runner)
     : task_runner_(std::move(task_runner)),
       message_port_service_(message_port_service),
-      grpc_cq_(cq),
       core_app_stub_(core_app_stub),
       message_port_(std::move(message_port)),
       channel_id_(channel_id) {
   DCHECK(message_port_service_);
-  DCHECK(grpc_cq_);
   DCHECK(core_app_stub_);
   message_port_->SetReceiver(this);
 }
@@ -91,13 +89,13 @@
       return true;
     }
     case cast::web::Message::kResponse: {
-      if (!awaiting_response_) {
+      if (!is_awaiting_response_) {
         LOG(FATAL) << "Received response while not expecting one.";
         return false;
       }
       message_timeout_callback_.Cancel();
-      awaiting_response_ = false;
-      if (!pending_messages_.empty() && !pending_request_) {
+      is_awaiting_response_ = false;
+      if (!pending_messages_.empty() && !has_outstanding_request_) {
         ForwardNextMessage();
       }
       return true;
@@ -133,11 +131,13 @@
   }
   Close();
 
-  cast::web::Message message;
-  message.mutable_status()->set_status(
+  auto call = core_app_stub_->CreateCall<
+      cast::v2::CoreMessagePortApplicationServiceStub::PostMessage>();
+  call.request().mutable_status()->set_status(
       cast::web::MessagePortStatus_Status_ERROR);
-  message.mutable_channel()->set_channel_id(channel_id_);
-  new AsyncMessage(message, core_app_stub_, grpc_cq_, nullptr);
+  call.request().mutable_channel()->set_channel_id(channel_id_);
+  std::move(call).InvokeAsync(base::DoNothing());
+
   message_port_service_->Remove(channel_id_);
 }
 
@@ -152,36 +152,44 @@
 
 void MessagePortHandler::ForwardNextMessage() {
   DCHECK_CALLED_ON_VALID_SEQUENCE(sequence_checker_);
-  DCHECK(!awaiting_response_);
+  DCHECK(!is_awaiting_response_);
   DCHECK(!pending_messages_.empty());
-  DCHECK(!pending_request_);
+  DCHECK(!has_outstanding_request_);
   cast::web::Message next = std::move(pending_messages_.front());
   pending_messages_.pop_front();
   ForwardMessageNow(std::move(next));
 }
 
-bool MessagePortHandler::ForwardMessage(cast::web::Message&& message) {
+bool MessagePortHandler::ForwardMessage(cast::web::Message message) {
   DCHECK_CALLED_ON_VALID_SEQUENCE(sequence_checker_);
   if (message.has_request() &&
-      (!started_ || awaiting_response_ || !pending_messages_.empty() ||
-       pending_request_)) {
+      (!started_ || is_awaiting_response_ || !pending_messages_.empty() ||
+       has_outstanding_request_)) {
     pending_messages_.emplace_back(std::move(message));
     return true;
   }
 
-  ForwardMessageNow(message);
+  ForwardMessageNow(std::move(message));
   return true;
 }
 
-void MessagePortHandler::ForwardMessageNow(const cast::web::Message& message) {
+void MessagePortHandler::ForwardMessageNow(cast::web::Message message) {
   DCHECK_CALLED_ON_VALID_SEQUENCE(sequence_checker_);
-  DCHECK(!message.has_request() || !pending_request_);
-  auto* async_message = new AsyncMessage(message, core_app_stub_, grpc_cq_,
-                                         weak_factory_.GetWeakPtr());
-  if (message.has_request()) {
+  DCHECK(!message.has_request() || !has_outstanding_request_);
+  bool was_request = message.has_request();
+  if (was_request) {
     DLOG_CHANNEL(INFO) << "Sending message: " << message.request().data();
-    pending_request_ = async_message;
-    awaiting_response_ = true;
+  }
+
+  auto call = core_app_stub_->CreateCall<
+      cast::v2::CoreMessagePortApplicationServiceStub::PostMessage>(
+      std::move(message));
+  std::move(call).InvokeAsync(base::BindPostTask(
+      task_runner_, base::BindOnce(&MessagePortHandler::OnPortMessagePosted,
+                                   weak_factory_.GetWeakPtr(), was_request)));
+  if (was_request) {
+    has_outstanding_request_ = true;
+    is_awaiting_response_ = true;
   }
   ResetTimeout();
 }
@@ -194,29 +202,29 @@
                                 kMessageTimeout);
 }
 
-void MessagePortHandler::OnMessageComplete(
-    bool ok,
+void MessagePortHandler::OnPortMessagePosted(
     bool was_request,
-    const cast::web::MessagePortStatus& response) {
+    cast::utils::GrpcStatusOr<cast::web::MessagePortStatus> response_or) {
   DCHECK_CALLED_ON_VALID_SEQUENCE(sequence_checker_);
-  pending_request_ = nullptr;
+  has_outstanding_request_ = false;
   message_timeout_callback_.Cancel();
   if (!message_port_) {
     return;
   }
 
-  if (!ok || response.status() != cast::web::MessagePortStatus_Status_OK) {
-    DLOG_CHANNEL(WARNING) << "Send failed (" << ok << ", "
+  if (!response_or.ok() ||
+      response_or->status() != cast::web::MessagePortStatus_Status_OK) {
+    DLOG_CHANNEL(WARNING) << "Send failed (" << response_or.ToString() << ", "
                           << cast::web::MessagePortStatus_Status_Name(
-                                 response.status())
+                                 response_or->status())
                           << ")";
     CloseAndRemove();
     return;
   }
 
-  if (was_request && awaiting_response_) {
+  if (was_request && is_awaiting_response_) {
     ResetTimeout();
-  } else if (!awaiting_response_ && !pending_messages_.empty()) {
+  } else if (!is_awaiting_response_ && !pending_messages_.empty()) {
     ForwardNextMessage();
   }
 }
@@ -255,26 +263,4 @@
   CloseWithError(CloseError::kPipeError);
 }
 
-MessagePortHandler::AsyncMessage::AsyncMessage(
-    const cast::web::Message& request,
-    cast::v2::CoreApplicationService::Stub* core_app_stub,
-    grpc::CompletionQueue* cq,
-    base::WeakPtr<MessagePortHandler> port)
-    : port_(port), was_request_(request.has_request()) {
-  response_reader_ =
-      core_app_stub->PrepareAsyncPostMessage(&context_, request, cq);
-  response_reader_->StartCall();
-  response_reader_->Finish(&response_, &status_, static_cast<GRPC*>(this));
-}
-
-MessagePortHandler::AsyncMessage::~AsyncMessage() = default;
-
-void MessagePortHandler::AsyncMessage::StepGRPC(grpc::Status status) {
-  if (port_) {
-    port_->OnMessageComplete(status_.ok() && status.ok(), was_request_,
-                             response_);
-  }
-  delete this;
-}
-
 }  // namespace chromecast
diff --git a/chromecast/cast_core/runtime/browser/message_port_handler.h b/chromecast/cast_core/runtime/browser/message_port_handler.h
index afbc16d..3972ba6 100644
--- a/chromecast/cast_core/runtime/browser/message_port_handler.h
+++ b/chromecast/cast_core/runtime/browser/message_port_handler.h
@@ -13,9 +13,8 @@
 #include "base/memory/weak_ptr.h"
 #include "base/sequence_checker.h"
 #include "base/task/sequenced_task_runner.h"
-#include "chromecast/cast_core/runtime/browser/grpc/grpc_method.h"
 #include "components/cast/message_port/message_port.h"
-#include "third_party/cast_core/public/src/proto/v2/core_application_service.grpc.pb.h"
+#include "third_party/cast_core/public/src/proto/v2/core_message_port_application_service.castcore.pb.h"
 #include "third_party/cast_core/public/src/proto/web/message_channel.pb.h"
 
 namespace chromecast {
@@ -31,8 +30,7 @@
       std::unique_ptr<cast_api_bindings::MessagePort> message_port,
       uint32_t channel_id,
       MessagePortService* message_port_service,
-      grpc::CompletionQueue* cq,
-      cast::v2::CoreApplicationService::Stub* core_app_stub,
+      cast::v2::CoreMessagePortApplicationServiceStub* core_app_stub,
       scoped_refptr<base::SequencedTaskRunner> task_runner);
   ~MessagePortHandler() override;
 
@@ -46,27 +44,6 @@
   bool HandleMessage(const cast::web::Message& message);
 
  private:
-  class AsyncMessage final : public GrpcCall {
-   public:
-    AsyncMessage(const cast::web::Message& request,
-                 cast::v2::CoreApplicationService::Stub* core_app_stub,
-                 grpc::CompletionQueue* cq,
-                 base::WeakPtr<MessagePortHandler> port);
-    ~AsyncMessage() override;
-
-    // GrpcCall overrides.
-    void StepGRPC(grpc::Status status) override;
-
-   private:
-    base::WeakPtr<MessagePortHandler> port_;
-    bool was_request_;
-
-    cast::web::MessagePortStatus response_;
-    std::unique_ptr<
-        grpc::ClientAsyncResponseReader<cast::web::MessagePortStatus>>
-        response_reader_;
-  };
-
   enum class CloseError {
     kPipeError,
     kTimeout,
@@ -91,19 +68,19 @@
 
   // Forwards |message| over this channel if possible, but queues it if there's
   // already a pending request.
-  bool ForwardMessage(cast::web::Message&& message);
+  bool ForwardMessage(cast::web::Message message);
 
   // Forwards |message| over this channel now.
-  void ForwardMessageNow(const cast::web::Message& message);
+  void ForwardMessageNow(cast::web::Message message);
 
   // Resets the timeout on the port that indicates we should close due to
   // inactivity.
   void ResetTimeout();
 
   // Callback invoked when an AsyncMessage gets a gRPC result.
-  void OnMessageComplete(bool ok,
-                         bool was_request,
-                         const cast::web::MessagePortStatus& response);
+  void OnPortMessagePosted(
+      bool was_request,
+      cast::utils::GrpcStatusOr<cast::web::MessagePortStatus> response_or);
 
   // cast_api_bindings::MessagePort::Receiver overrides.
   bool OnMessage(base::StringPiece message,
@@ -112,20 +89,18 @@
   void OnPipeError() override;
 
   scoped_refptr<base::SequencedTaskRunner> task_runner_;
-  MessagePortService* message_port_service_;
-  grpc::CompletionQueue* grpc_cq_;
-  cast::v2::CoreApplicationService::Stub* core_app_stub_;
+  MessagePortService* const message_port_service_;
+  cast::v2::CoreMessagePortApplicationServiceStub* const core_app_stub_;
   std::unique_ptr<cast_api_bindings::MessagePort> message_port_;
   uint32_t channel_id_;
 
   base::CancelableOnceClosure message_timeout_callback_;
   std::deque<cast::web::Message> pending_messages_;
-  AsyncMessage* pending_request_{nullptr};
-  bool awaiting_response_{false};
+  bool has_outstanding_request_{false};
+  bool is_awaiting_response_{false};
   bool started_{false};
 
   SEQUENCE_CHECKER(sequence_checker_);
-
   base::WeakPtrFactory<MessagePortHandler> weak_factory_{this};
 };
 
diff --git a/chromecast/cast_core/runtime/browser/message_port_service.cc b/chromecast/cast_core/runtime/browser/message_port_service.cc
index e96b6bf..a9f381e 100644
--- a/chromecast/cast_core/runtime/browser/message_port_service.cc
+++ b/chromecast/cast_core/runtime/browser/message_port_service.cc
@@ -5,62 +5,64 @@
 #include "chromecast/cast_core/runtime/browser/message_port_service.h"
 
 #include "base/logging.h"
+#include "base/task/bind_post_task.h"
 #include "base/threading/sequenced_task_runner_handle.h"
 #include "chromecast/cast_core/runtime/browser/message_port_handler.h"
 
 namespace chromecast {
 
 MessagePortService::MessagePortService(
-    grpc::CompletionQueue* grpc_cq,
-    cast::v2::CoreApplicationService::Stub* core_app_stub)
-    : grpc_cq_(grpc_cq), core_app_stub_(core_app_stub) {
-  DCHECK(grpc_cq_);
+    cast::v2::CoreMessagePortApplicationServiceStub* core_app_stub)
+    : core_app_stub_(core_app_stub),
+      task_runner_(base::SequencedTaskRunnerHandle::Get()) {
   DCHECK(core_app_stub_);
 }
 
 MessagePortService::~MessagePortService() = default;
 
-void MessagePortService::HandleMessage(const cast::web::Message& message,
-                                       cast::web::MessagePortStatus* response) {
+cast::utils::GrpcStatusOr<cast::web::MessagePortStatus>
+MessagePortService::HandleMessage(cast::web::Message message) {
   DCHECK_CALLED_ON_VALID_SEQUENCE(sequence_checker_);
-  uint32_t channel_id = message.channel().channel_id();
+  cast::web::MessagePortStatus response;
+  const uint32_t channel_id = message.channel().channel_id();
   auto entry = ports_.find(channel_id);
   if (entry == ports_.end()) {
     DLOG(INFO) << "Got message for unknown channel: " << channel_id;
-    response->set_status(cast::web::MessagePortStatus_Status_ERROR);
-    return;
-  }
-
-  if (entry->second->HandleMessage(message)) {
-    response->set_status(cast::web::MessagePortStatus_Status_OK);
+    response.set_status(cast::web::MessagePortStatus_Status_ERROR);
+  } else if (entry->second->HandleMessage(message)) {
+    response.set_status(cast::web::MessagePortStatus_Status_OK);
   } else {
-    response->set_status(cast::web::MessagePortStatus_Status_ERROR);
+    response.set_status(cast::web::MessagePortStatus_Status_ERROR);
   }
+  return response;
 }
 
-bool MessagePortService::ConnectToPort(
+void MessagePortService::ConnectToPort(
     base::StringPiece port_name,
     std::unique_ptr<cast_api_bindings::MessagePort> port) {
   DCHECK_CALLED_ON_VALID_SEQUENCE(sequence_checker_);
   DLOG(INFO) << "MessagePortService connecting to port '" << port_name
              << "' as channel " << next_outgoing_channel_id_;
-  cast::web::MessagePortDescriptor port_descriptor;
-  uint32_t channel_id = next_outgoing_channel_id_++;
-  port_descriptor.mutable_channel()->set_channel_id(channel_id);
-  port_descriptor.mutable_peer_status()->set_status(
-      cast::web::MessagePortStatus_Status_STARTED);
-  port_descriptor.set_sequence_number(0);
 
-  cast::bindings::ConnectRequest connect_request;
-  connect_request.set_port_name(std::string(port_name));
-  *connect_request.mutable_port() = port_descriptor;
+  const uint32_t channel_id = next_outgoing_channel_id_++;
   auto result = ports_.emplace(
       channel_id, MakeMessagePortHandler(channel_id, std::move(port)));
   DCHECK(result.second);
 
-  new AsyncConnect(connect_request, core_app_stub_, grpc_cq_,
-                   weak_factory_.GetWeakPtr());
-  return true;
+  auto call = core_app_stub_->CreateCall<
+      cast::v2::CoreMessagePortApplicationServiceStub::Connect>();
+  call.request().set_port_name(std::string(port_name));
+  cast::web::MessagePortDescriptor* port_descriptor =
+      call.request().mutable_port();
+  port_descriptor->mutable_channel()->set_channel_id(channel_id);
+  port_descriptor->mutable_peer_status()->set_status(
+      cast::web::MessagePortStatus_Status_STARTED);
+  port_descriptor->set_sequence_number(0);
+
+  std::move(call).InvokeAsync(base::BindPostTask(
+      task_runner_,
+      base::BindOnce(&MessagePortService::OnPortConnectionEstablished,
+                     weak_factory_.GetWeakPtr(), channel_id)));
 }
 
 uint32_t MessagePortService::RegisterOutgoingPort(
@@ -90,36 +92,17 @@
     uint32_t channel_id,
     std::unique_ptr<cast_api_bindings::MessagePort> port) {
   auto port_handler = std::make_unique<MessagePortHandler>(
-      std::move(port), channel_id, this, grpc_cq_, core_app_stub_,
-      base::SequencedTaskRunnerHandle::Get());
+      std::move(port), channel_id, this, core_app_stub_, task_runner_);
   return port_handler;
 }
 
-void MessagePortService::OnConnectComplete(bool ok, uint32_t channel_id) {
-  if (!ok) {
-    DLOG(INFO) << "CoreApplicationService::Connect failed";
+void MessagePortService::OnPortConnectionEstablished(
+    uint32_t channel_id,
+    cast::utils::GrpcStatusOr<cast::bindings::ConnectResponse> response_or) {
+  if (!response_or.ok()) {
+    LOG(ERROR) << "Message port connect failed: channel_id=" << channel_id;
     Remove(channel_id);
   }
 }
 
-MessagePortService::AsyncConnect::AsyncConnect(
-    const cast::bindings::ConnectRequest& request,
-    cast::v2::CoreApplicationService::Stub* core_app_stub,
-    grpc::CompletionQueue* cq,
-    base::WeakPtr<MessagePortService> service)
-    : service_(service), channel_id_(request.port().channel().channel_id()) {
-  response_reader_ = core_app_stub->PrepareAsyncConnect(&context_, request, cq);
-  response_reader_->StartCall();
-  response_reader_->Finish(&response_, &status_, static_cast<GRPC*>(this));
-}
-
-MessagePortService::AsyncConnect::~AsyncConnect() = default;
-
-void MessagePortService::AsyncConnect::StepGRPC(grpc::Status status) {
-  if (service_) {
-    service_->OnConnectComplete(status_.ok(), channel_id_);
-  }
-  delete this;
-}
-
 }  // namespace chromecast
diff --git a/chromecast/cast_core/runtime/browser/message_port_service.h b/chromecast/cast_core/runtime/browser/message_port_service.h
index 859e473..51aa144e 100644
--- a/chromecast/cast_core/runtime/browser/message_port_service.h
+++ b/chromecast/cast_core/runtime/browser/message_port_service.h
@@ -11,9 +11,9 @@
 #include "base/containers/flat_map.h"
 #include "base/memory/weak_ptr.h"
 #include "base/sequence_checker.h"
-#include "chromecast/cast_core/runtime/browser/grpc/grpc_method.h"
+#include "base/task/sequenced_task_runner.h"
 #include "components/cast/message_port/message_port.h"
-#include "third_party/cast_core/public/src/proto/v2/core_application_service.grpc.pb.h"
+#include "third_party/cast_core/public/src/proto/v2/core_message_port_application_service.castcore.pb.h"
 #include "third_party/cast_core/public/src/proto/web/message_channel.pb.h"
 
 namespace chromecast {
@@ -26,21 +26,22 @@
       std::unique_ptr<cast_api_bindings::MessagePort>*,
       std::unique_ptr<cast_api_bindings::MessagePort>*)>;
 
-  // |grpc_cq| and |core_app_stub| must outlive |this|.
-  MessagePortService(grpc::CompletionQueue* grpc_cq,
-                     cast::v2::CoreApplicationService::Stub* core_app_stub);
+  // |core_app_stub| must outlive |this|.
+  MessagePortService(
+      cast::v2::CoreMessagePortApplicationServiceStub* core_app_stub);
   ~MessagePortService();
 
   // Handles a message incoming from the gRPC API.  The message will be routed
-  // to the appropriate MessagePortHandler based on its channel ID.  |response|
-  // is set to |OK| if MessagePortHandler reports success and |ERROR| otherwise,
-  // including the case that there's no MessagePortHandler for the incoming
-  // channel ID.
-  void HandleMessage(const cast::web::Message& message,
-                     cast::web::MessagePortStatus* response);
+  // to the appropriate MessagePortHandler based on its channel ID. |response|
+  // is set to |OK| if MessagePortHandler reports success and |ERROR|
+  // otherwise, including the case that there's no MessagePortHandler for the
+  // incoming channel ID.
+  cast::utils::GrpcStatusOr<cast::web::MessagePortStatus> HandleMessage(
+      cast::web::Message message);
 
-  // Connects |port| to the remote port with name |port_name|.
-  bool ConnectToPort(base::StringPiece port_name,
+  // Connects |port| to the remote port with name |port_name|. Calls the
+  // callback with grpc::Status code.
+  void ConnectToPort(base::StringPiece port_name,
                      std::unique_ptr<cast_api_bindings::MessagePort> port);
 
   // Registers a port opened locally via a port transfer.  This allocates a
@@ -59,37 +60,17 @@
   void Remove(uint32_t channel_id);
 
  private:
-  class AsyncConnect final : public GrpcCall {
-   public:
-    AsyncConnect(const cast::bindings::ConnectRequest& request,
-                 cast::v2::CoreApplicationService::Stub* core_app_stub,
-                 grpc::CompletionQueue* cq,
-                 base::WeakPtr<MessagePortService> service);
-    ~AsyncConnect() override;
-
-    void StepGRPC(grpc::Status status) override;
-
-   private:
-    base::WeakPtr<MessagePortService> service_;
-    cast::bindings::ConnectResponse response_;
-    std::unique_ptr<
-        grpc::ClientAsyncResponseReader<cast::bindings::ConnectResponse>>
-        response_reader_;
-
-    uint32_t channel_id_;
-  };
-
   std::unique_ptr<MessagePortHandler> MakeMessagePortHandler(
       uint32_t channel_id,
       std::unique_ptr<cast_api_bindings::MessagePort> port);
 
   // Callback invoked when AsyncConnect gets a gRPC result.
-  void OnConnectComplete(bool ok, uint32_t channel_id);
+  void OnPortConnectionEstablished(
+      uint32_t channel_id,
+      cast::utils::GrpcStatusOr<cast::bindings::ConnectResponse> response_or);
 
-  CreatePairCallback create_pair_;
-
-  grpc::CompletionQueue* grpc_cq_;
-  cast::v2::CoreApplicationService::Stub* core_app_stub_;
+  cast::v2::CoreMessagePortApplicationServiceStub* const core_app_stub_;
+  scoped_refptr<base::SequencedTaskRunner> task_runner_;
 
   int next_outgoing_channel_id_{0};
   // NOTE: Keyed by channel_id of cast::web::MessageChannelDescriptor.
diff --git a/chromecast/cast_core/runtime/browser/runtime_application.h b/chromecast/cast_core/runtime/browser/runtime_application.h
index a871bcc3..624e7a3 100644
--- a/chromecast/cast_core/runtime/browser/runtime_application.h
+++ b/chromecast/cast_core/runtime/browser/runtime_application.h
@@ -7,6 +7,7 @@
 
 #include <string>
 
+#include "base/callback.h"
 #include "third_party/cast_core/public/src/proto/common/application_config.pb.h"
 #include "third_party/cast_core/public/src/proto/runtime/runtime_service.grpc.pb.h"
 #include "url/gurl.h"
@@ -21,6 +22,8 @@
 // For example, Launch needs to respond with SetApplicationStatus.
 class RuntimeApplication {
  public:
+  using StatusCallback = base::OnceCallback<void(grpc::Status)>;
+
   RuntimeApplication();
   virtual ~RuntimeApplication() = 0;
 
@@ -44,17 +47,19 @@
   virtual CastWebContents* GetCastWebContents() = 0;
 
   // Called before Launch() to perform any pre-launch loading that is
-  // necessary. This should return true if the load was successful and it's
-  // valid to call Launch, false otherwise.  If Load fails, |this| should be
-  // destroyed since it's not necessarily valid to retry Load with a new
-  // |request|.
-  virtual bool Load(const cast::runtime::LoadApplicationRequest& request) = 0;
+  // necessary. The |callback| will be called indicating if the operation
+  // succeeded or not. If Load fails, |this| should be destroyed since it's not
+  // necessarily valid to retry Load with a new |request|.
+  virtual void Load(cast::runtime::LoadApplicationRequest request,
+                    StatusCallback callback) = 0;
 
-  // Called to launch the application.  The application will indicate that it is
-  // started by calling SetApplicationStatus back over gRPC.  This should return
-  // true if initial processing of |request| succeeded, false otherwise.
-  virtual bool Launch(
-      const cast::runtime::LaunchApplicationRequest& request) = 0;
+  // Called to launch the application. The application will indicate that it is
+  // started by calling SetApplicationStatus back over gRPC. The |callback| will
+  // be called indicating if the operation succeeded or not. If Load fails,
+  // |this| should be destroyed since it's not necessarily valid to retry Load
+  // with a new |request|.
+  virtual void Launch(cast::runtime::LaunchApplicationRequest request,
+                      StatusCallback callback) = 0;
 
   // Returns whether this instance is associated with cast streaming.
   virtual bool IsStreamingApplication() const = 0;
diff --git a/chromecast/cast_core/runtime/browser/runtime_application_base.cc b/chromecast/cast_core/runtime/browser/runtime_application_base.cc
index e60cc9a1..06dfe90 100644
--- a/chromecast/cast_core/runtime/browser/runtime_application_base.cc
+++ b/chromecast/cast_core/runtime/browser/runtime_application_base.cc
@@ -4,14 +4,12 @@
 
 #include "chromecast/cast_core/runtime/browser/runtime_application_base.h"
 
+#include "base/bind.h"
+#include "base/task/bind_post_task.h"
 #include "chromecast/browser/cast_web_service.h"
 #include "chromecast/browser/cast_web_view_factory.h"
-#include "chromecast/cast_core/runtime/browser/grpc/grpc_method.h"
+#include "chromecast/cast_core/grpc/grpc_status_or.h"
 #include "chromecast/cast_core/runtime/browser/url_rewrite/url_request_rewrite_type_converters.h"
-#include "third_party/cast_core/public/src/proto/runtime/runtime_service.grpc.pb.h"
-#include "third_party/grpc/src/include/grpcpp/channel.h"
-#include "third_party/grpc/src/include/grpcpp/create_channel.h"
-#include "third_party/grpc/src/include/grpcpp/server_builder.h"
 
 namespace chromecast {
 
@@ -20,8 +18,7 @@
     mojom::RendererType renderer_type_used,
     CastWebService* web_service,
     scoped_refptr<base::SequencedTaskRunner> task_runner)
-    : GrpcServer(task_runner),
-      web_service_(web_service),
+    : web_service_(web_service),
       task_runner_(std::move(task_runner)),
       renderer_type_(renderer_type_used) {
   DCHECK(web_service_);
@@ -31,14 +28,35 @@
 }
 
 RuntimeApplicationBase::~RuntimeApplicationBase() {
+  DCHECK_CALLED_ON_VALID_SEQUENCE(sequence_checker_);
   CHECK(is_application_stopped_);
 }
 
-bool RuntimeApplicationBase::Load(
-    const cast::runtime::LoadApplicationRequest& request) {
-  if (!request.has_application_config() ||
-      !request.has_runtime_application_service_info()) {
-    return false;
+CastWebContents* RuntimeApplicationBase::GetCastWebContents() {
+  DCHECK(cast_web_view_);
+  return cast_web_view_->cast_web_contents();
+}
+
+void RuntimeApplicationBase::Load(cast::runtime::LoadApplicationRequest request,
+                                  StatusCallback callback) {
+  DCHECK_CALLED_ON_VALID_SEQUENCE(sequence_checker_);
+  DCHECK(!grpc_server_);
+
+  if (request.cast_session_id().empty()) {
+    std::move(callback).Run(grpc::Status(grpc::StatusCode::INVALID_ARGUMENT,
+                                         "Application session ID is missing"));
+    return;
+  }
+  if (!request.has_application_config()) {
+    std::move(callback).Run(grpc::Status(grpc::StatusCode::INVALID_ARGUMENT,
+                                         "Application config is missing"));
+    return;
+  }
+  if (request.runtime_application_service_info().grpc_endpoint().empty()) {
+    std::move(callback).Run(
+        grpc::Status(grpc::StatusCode::INVALID_ARGUMENT,
+                     "Application service endpoint is missing"));
+    return;
   }
 
   set_application_config(request.application_config());
@@ -46,28 +64,26 @@
 
   LOG(INFO) << "Loading application: " << *this;
 
-  const std::string& grpc_address =
-      request.runtime_application_service_info().grpc_endpoint();
-  grpc::ServerBuilder builder;
-  builder.AddListeningPort(grpc_address, grpc::InsecureServerCredentials());
-  builder.RegisterService(&grpc_app_service_);
-  builder.RegisterService(&grpc_message_port_service_);
-  SetCompletionQueue(builder.AddCompletionQueue());
-  SetServer(builder.BuildAndStart());
-  if (!grpc_server_) {
-    LOG(ERROR) << "Failed to start server on path: " << *this
-               << ", endpoint=" << grpc_address;
-    return false;
-  }
-  StartRuntimeApplicationServiceMethods(
-      &grpc_app_service_, weak_factory_.GetWeakPtr(), grpc_cq_, &is_shutdown_);
-  StartRuntimeMessagePortApplicationServiceMethods(&grpc_message_port_service_,
-                                                   weak_factory_.GetWeakPtr(),
-                                                   grpc_cq_, &is_shutdown_);
-  GrpcServer::Start();
-  LOG(INFO) << "Runtime application server started: " << *this
-            << ", endpoint=" << grpc_address;
+  // Start the gRPC server.
+  grpc_server_.emplace();
+  grpc_server_->SetHandler<
+      cast::v2::RuntimeApplicationServiceHandler::SetUrlRewriteRules>(
+      base::BindPostTask(
+          task_runner_,
+          base::BindRepeating(&RuntimeApplicationBase::HandleSetUrlRewriteRules,
+                              weak_factory_.GetWeakPtr())));
+  grpc_server_->SetHandler<
+      cast::v2::RuntimeMessagePortApplicationServiceHandler::PostMessage>(
+      base::BindPostTask(
+          task_runner_,
+          base::BindRepeating(&RuntimeApplicationBase::HandlePostMessage,
+                              weak_factory_.GetWeakPtr())));
+  grpc_server_->Start(
+      request.runtime_application_service_info().grpc_endpoint());
+  LOG(INFO) << "Runtime application server started: " << *this << ", endpoint="
+            << request.runtime_application_service_info().grpc_endpoint();
 
+  // Initialize web view and URL rewrites.
   CreateCastWebView();
   url_rewrite::mojom::UrlRequestRewriteRulesPtr mojom_rules =
       mojo::ConvertTo<url_rewrite::mojom::UrlRequestRewriteRulesPtr>(
@@ -75,41 +91,53 @@
   GetCastWebContents()->SetUrlRewriteRules(std::move(mojom_rules));
 
   LOG(INFO) << "Successfully loaded: " << *this;
-  return true;
+  std::move(callback).Run(grpc::Status::OK);
 }
 
-bool RuntimeApplicationBase::Launch(
-    const cast::runtime::LaunchApplicationRequest& request) {
+void RuntimeApplicationBase::Launch(
+    cast::runtime::LaunchApplicationRequest request,
+    StatusCallback callback) {
+  DCHECK_CALLED_ON_VALID_SEQUENCE(sequence_checker_);
   LOG(INFO) << "Launching application: " << *this;
 
-  if (!request.has_cast_media_service_info()) {
-    return false;
+  if (request.core_application_service_info().grpc_endpoint().empty()) {
+    std::move(callback).Run(
+        grpc::Status(grpc::StatusCode::INVALID_ARGUMENT,
+                     "Core application service endpoint is missing"));
+    return;
   }
+  if (request.cast_media_service_info().grpc_endpoint().empty()) {
+    std::move(callback).Run(grpc::Status(grpc::StatusCode::INVALID_ARGUMENT,
+                                         "Media service endpoint is missing"));
+    return;
+  }
+
+  auto core_channel = grpc::CreateChannel(
+      request.core_application_service_info().grpc_endpoint(),
+      grpc::InsecureChannelCredentials());
+  core_app_stub_.emplace(core_channel);
+  core_message_port_app_stub_.emplace(core_channel);
 
   set_cast_media_service_grpc_endpoint(
       request.cast_media_service_info().grpc_endpoint());
 
-  task_runner_->PostTask(
-      FROM_HERE,
-      base::BindOnce(&RuntimeApplicationBase::FinishLaunch,
-                     weak_factory_.GetWeakPtr(),
-                     request.core_application_service_info().grpc_endpoint()));
-  return true;
+  InitializeApplication(base::BindPostTask(
+      task_runner_,
+      base::BindOnce(&RuntimeApplicationBase::OnApplicationInitialized,
+                     weak_factory_.GetWeakPtr(), std::move(callback))));
 }
 
-void RuntimeApplicationBase::FinishLaunch(
-    std::string core_application_service_endpoint) {
-  DCHECK(task_runner_->RunsTasksInCurrentSequence());
-
-  auto core_channel = grpc::CreateChannel(core_application_service_endpoint,
-                                          grpc::InsecureChannelCredentials());
-  core_app_stub_ =
-      cast::v2::CoreApplicationService::NewStub(std::move(core_channel));
-
-  InitializeApplication(core_app_stub_.get(), GetCastWebContents());
+void RuntimeApplicationBase::OnApplicationInitialized(StatusCallback callback,
+                                                      grpc::Status status) {
+  DCHECK_CALLED_ON_VALID_SEQUENCE(sequence_checker_);
   DCHECK(!app_url().is_empty());
 
-  LOG(INFO) << "Application is initialized: " << *this;
+  if (!status.ok()) {
+    LOG(ERROR) << "Failed to launch application: " << *this
+               << ", status=" << cast::utils::GrpcStatusToString(status);
+    std::move(callback).Run(status);
+    return;
+  }
 
   const std::vector<int32_t> feature_permissions;
   const std::vector<std::string> additional_feature_permission_origins;
@@ -124,32 +152,36 @@
       ::chromecast::mojom::ZOrder::APP,
       chromecast::VisibilityPriority::STICKY_ACTIVITY);
 
-  LOG(INFO) << "Launch finished: " << *this;
+  LOG(INFO) << "Application is launched: " << *this;
+  std::move(callback).Run(grpc::Status::OK);
 }
 
-void RuntimeApplicationBase::PostMessage(const cast::web::Message& request,
-                                         cast::web::MessagePortStatus* response,
-                                         GrpcMethod* callback) {
+void RuntimeApplicationBase::HandlePostMessage(
+    cast::web::Message request,
+    cast::v2::RuntimeMessagePortApplicationServiceHandler::PostMessage::Reactor*
+        reactor) {
+  DCHECK_CALLED_ON_VALID_SEQUENCE(sequence_checker_);
   if (cast_session_id().empty()) {
-    callback->StepGRPC(grpc::Status(grpc::StatusCode::NOT_FOUND,
-                                    "No active cast session for PostMessage"));
+    reactor->Write(grpc::Status(grpc::StatusCode::NOT_FOUND,
+                                "No active cast session for PostMessage"));
     return;
   }
-  HandleMessage(request, response);
-  callback->StepGRPC(grpc::Status::OK);
+
+  auto response_or = HandlePortMessage(std::move(request));
+  if (response_or.ok()) {
+    reactor->Write(std::move(response_or).value());
+  } else {
+    reactor->Write(response_or.status());
+  }
 }
 
-CastWebContents* RuntimeApplicationBase::GetCastWebContents() {
-  DCHECK(cast_web_view_);
-  return cast_web_view_->cast_web_contents();
-}
-
-void RuntimeApplicationBase::SetUrlRewriteRules(
-    const cast::v2::SetUrlRewriteRulesRequest& request,
-    cast::v2::SetUrlRewriteRulesResponse* response,
-    GrpcMethod* callback) {
+void RuntimeApplicationBase::HandleSetUrlRewriteRules(
+    cast::v2::SetUrlRewriteRulesRequest request,
+    cast::v2::RuntimeApplicationServiceHandler::SetUrlRewriteRules::Reactor*
+        reactor) {
+  DCHECK_CALLED_ON_VALID_SEQUENCE(sequence_checker_);
   if (cast_session_id().empty()) {
-    callback->StepGRPC(
+    reactor->Write(
         grpc::Status(grpc::StatusCode::NOT_FOUND,
                      "No active cast session for SetUrlRewriteRules"));
     return;
@@ -160,27 +192,33 @@
             request.rules());
     GetCastWebContents()->SetUrlRewriteRules(std::move(mojom_rules));
   }
-  callback->StepGRPC(grpc::Status::OK);
+  reactor->Write(cast::v2::SetUrlRewriteRulesResponse());
 }
 
-void RuntimeApplicationBase::SetApplicationStarted() {
-  grpc::ClientContext context;
-  cast::v2::ApplicationStatusRequest app_status;
-  cast::v2::ApplicationStatusResponse unused;
-  app_status.set_cast_session_id(cast_session_id());
-  app_status.set_state(cast::v2::ApplicationStatusRequest_State_STARTED);
-  grpc::Status status =
-      core_app_stub_->SetApplicationStatus(&context, app_status, &unused);
+void RuntimeApplicationBase::SetApplicationState(
+    cast::v2::ApplicationStatusRequest::State state,
+    StatusCallback callback) {
+  DCHECK_CALLED_ON_VALID_SEQUENCE(sequence_checker_);
+  DCHECK(state == cast::v2::ApplicationStatusRequest::STARTED ||
+         state == cast::v2::ApplicationStatusRequest::STOPPED);
 
-  if (!status.ok()) {
-    LOG(ERROR) << "Failed to call SetApplicationStatus() when starting: "
-               << *this << ", status=" << status.error_message();
-  } else {
-    LOG(INFO) << "Application is started: " << *this;
+  auto call = core_app_stub_->CreateCall<
+      cast::v2::CoreApplicationServiceStub::SetApplicationStatus>();
+  call.request().set_cast_session_id(cast_session_id());
+  call.request().set_state(state);
+  if (state == cast::v2::ApplicationStatusRequest::STOPPED) {
+    call.request().set_stop_reason(
+        cast::v2::ApplicationStatusRequest::USER_REQUEST);
   }
+  std::move(call).InvokeAsync(base::BindOnce(
+      [](StatusCallback callback,
+         cast::utils::GrpcStatusOr<cast::v2::ApplicationStatusResponse>
+             response_or) { std::move(callback).Run(response_or.status()); },
+      std::move(callback)));
 }
 
 void RuntimeApplicationBase::CreateCastWebView() {
+  DCHECK_CALLED_ON_VALID_SEQUENCE(sequence_checker_);
   mojom::CastWebViewParamsPtr params = mojom::CastWebViewParams::New();
   params->renderer_type = renderer_type_;
   params->handle_inner_contents = true;
@@ -193,6 +231,9 @@
 }
 
 void RuntimeApplicationBase::StopApplication() {
+  DCHECK_CALLED_ON_VALID_SEQUENCE(sequence_checker_);
+  DCHECK(grpc_server_);
+
   LOG(INFO) << "Stopping application: " << *this;
 
   is_application_stopped_ = true;
@@ -201,20 +242,8 @@
   }
 
   if (core_app_stub_) {
-    grpc::ClientContext context;
-    cast::v2::ApplicationStatusRequest app_status;
-    cast::v2::ApplicationStatusResponse unused;
-    app_status.set_cast_session_id(cast_session_id());
-    app_status.set_state(cast::v2::ApplicationStatusRequest_State_STOPPED);
-    app_status.set_stop_reason(
-        cast::v2::ApplicationStatusRequest_StopReason_USER_REQUEST);
-    grpc::Status status =
-        core_app_stub_->SetApplicationStatus(&context, app_status, &unused);
-
-    if (!status.ok()) {
-      LOG(ERROR) << "Failed to call SetApplicationStatus() when stopping: "
-                 << *this;
-    }
+    SetApplicationState(cast::v2::ApplicationStatusRequest_State_STOPPED,
+                        base::DoNothing());
   }
 
   if (cast_web_view_) {
@@ -225,7 +254,8 @@
     web_service_->OnSessionDestroyed(cast_session_id());
   }
 
-  GrpcServer::Stop();
+  grpc_server_->Stop();
+  grpc_server_.reset();
   LOG(INFO) << "Application is stopped: " << *this;
 
   set_cast_session_id(std::string());
diff --git a/chromecast/cast_core/runtime/browser/runtime_application_base.h b/chromecast/cast_core/runtime/browser/runtime_application_base.h
index 7a3bda3f..4dd619b 100644
--- a/chromecast/cast_core/runtime/browser/runtime_application_base.h
+++ b/chromecast/cast_core/runtime/browser/runtime_application_base.h
@@ -5,18 +5,16 @@
 #ifndef CHROMECAST_CAST_CORE_RUNTIME_BROWSER_RUNTIME_APPLICATION_BASE_H_
 #define CHROMECAST_CAST_CORE_RUNTIME_BROWSER_RUNTIME_APPLICATION_BASE_H_
 
-#include <memory>
-#include <string>
-
 #include "base/callback.h"
 #include "base/memory/weak_ptr.h"
 #include "chromecast/browser/cast_web_view.h"
-#include "chromecast/cast_core/runtime/browser/grpc/grpc_server.h"
+#include "chromecast/cast_core/grpc/grpc_server.h"
 #include "chromecast/cast_core/runtime/browser/runtime_application.h"
-#include "chromecast/cast_core/runtime/browser/runtime_application_service_grpc_impl.h"
-#include "chromecast/cast_core/runtime/browser/runtime_message_port_application_service_grpc_impl.h"
 #include "components/url_rewrite/browser/url_request_rewrite_rules_manager.h"
-#include "third_party/cast_core/public/src/proto/v2/core_application_service.grpc.pb.h"
+#include "third_party/cast_core/public/src/proto/v2/core_application_service.castcore.pb.h"
+#include "third_party/cast_core/public/src/proto/v2/core_message_port_application_service.castcore.pb.h"
+#include "third_party/cast_core/public/src/proto/v2/runtime_application_service.castcore.pb.h"
+#include "third_party/cast_core/public/src/proto/v2/runtime_message_port_application_service.castcore.pb.h"
 
 namespace chromecast {
 
@@ -24,11 +22,7 @@
 
 // This class is for sharing code between Web and streaming RuntimeApplication
 // implementations, including Load and Launch behavior.
-class RuntimeApplicationBase
-    : public RuntimeApplication,
-      public GrpcServer,
-      public RuntimeApplicationServiceDelegate,
-      public RuntimeMessagePortApplicationServiceDelegate {
+class RuntimeApplicationBase : public RuntimeApplication {
  public:
   ~RuntimeApplicationBase() override;
 
@@ -45,9 +39,9 @@
   // instance of the implementing object.
   virtual void StopApplication();
 
-  // Sets that the application has been started - the meaning of which is
-  // application-specific.
-  void SetApplicationStarted();
+  // Reports the application |state| to Cast Core.
+  void SetApplicationState(cast::v2::ApplicationStatusRequest::State state,
+                           StatusCallback callback);
 
   // Returns current TaskRunner.
   scoped_refptr<base::SequencedTaskRunner> task_runner() {
@@ -60,47 +54,52 @@
   // Returns a pointer to a CastWebView.
   CastWebView* cast_web_view() { return cast_web_view_.get(); }
 
+  // Returns a stub to CoreApplicationService.
+  cast::v2::CoreApplicationServiceStub* core_app_stub() {
+    return &*core_app_stub_;
+  }
+
+  // Returns a stub to CoreMessagePortApplicationService.
+  cast::v2::CoreMessagePortApplicationServiceStub*
+  core_message_port_app_stub() {
+    return &*core_message_port_app_stub_;
+  }
+
   // RuntimeApplication implementation:
   CastWebContents* GetCastWebContents() override;
 
-  // RuntimeApplicationServiceDelegate implementation:
-  void SetUrlRewriteRules(const cast::v2::SetUrlRewriteRulesRequest& request,
-                          cast::v2::SetUrlRewriteRulesResponse* response,
-                          GrpcMethod* callback) override;
+  // Called following the creation of a CastWebView. Must initialize the
+  // application and set the application URL as a result.
+  virtual void InitializeApplication(StatusCallback callback) = 0;
 
   // Processes an incoming |message|, returning the status of this processing in
   // |response| after being received over gRPC.
-  virtual void HandleMessage(const cast::web::Message& message,
-                             cast::web::MessagePortStatus* response) = 0;
-
-  // Called following the creation of a CastWebView, with which
-  // |cast_web_contents  is associated. Must set the application URL as a
-  // result.
-  virtual void InitializeApplication(CoreApplicationServiceGrpc* grpc_stub,
-                                     CastWebContents* cast_web_contents) = 0;
-
-  std::unique_ptr<CoreApplicationServiceGrpc> core_app_stub_;
+  virtual cast::utils::GrpcStatusOr<cast::web::MessagePortStatus>
+  HandlePortMessage(cast::web::Message message) = 0;
 
  private:
   // RuntimeApplication implementation:
-  bool Load(const cast::runtime::LoadApplicationRequest& request) final;
-  bool Launch(const cast::runtime::LaunchApplicationRequest& request) final;
+  void Load(cast::runtime::LoadApplicationRequest request,
+            StatusCallback callback) final;
+  void Launch(cast::runtime::LaunchApplicationRequest request,
+              StatusCallback callback) final;
+
+  // RuntimeApplicationService handlers:
+  void HandleSetUrlRewriteRules(
+      cast::v2::SetUrlRewriteRulesRequest request,
+      cast::v2::RuntimeApplicationServiceHandler::SetUrlRewriteRules::Reactor*
+          reactor);
+
+  // RuntimeMessagePortApplicationService handlers:
+  void HandlePostMessage(cast::web::Message request,
+                         cast::v2::RuntimeMessagePortApplicationServiceHandler::
+                             PostMessage::Reactor* reactor);
 
   // Called when a new CastWebView is created.
   void CreateCastWebView();
 
-  // Called following Launch() on |task_runner_|.
-  void FinishLaunch(std::string core_application_service_endpoint);
-
-  // RuntimeMessagePortApplicationServiceDelegate implementation:
-  void PostMessage(const cast::web::Message& request,
-                   cast::web::MessagePortStatus* response,
-                   GrpcMethod* callback) override;
-
-  // gRPC RPC Wrappers.
-  cast::v2::RuntimeApplicationService::AsyncService grpc_app_service_;
-  cast::v2::RuntimeMessagePortApplicationService::AsyncService
-      grpc_message_port_service_;
+  // Called when application finished initialization.
+  void OnApplicationInitialized(StatusCallback callback, grpc::Status status);
 
   // The |web_service_| used to create |cast_web_view_|.
   CastWebService* const web_service_;
@@ -110,6 +109,10 @@
 
   scoped_refptr<base::SequencedTaskRunner> task_runner_;
 
+  absl::optional<cast::utils::GrpcServer> grpc_server_;
+  absl::optional<cast::v2::CoreApplicationServiceStub> core_app_stub_;
+  absl::optional<cast::v2::CoreMessagePortApplicationServiceStub>
+      core_message_port_app_stub_;
   // Set to true when StopApplication() is called. This variable is required
   // rather than always executing StopApplication() in the dtor due to how
   // virtual function calls are handled during destruction.
@@ -118,6 +121,7 @@
   // Renderer type used by this application.
   mojom::RendererType renderer_type_;
 
+  SEQUENCE_CHECKER(sequence_checker_);
   base::WeakPtrFactory<RuntimeApplicationBase> weak_factory_{this};
 };
 
diff --git a/chromecast/cast_core/runtime/browser/runtime_application_dispatcher.cc b/chromecast/cast_core/runtime/browser/runtime_application_dispatcher.cc
index a4f5470..fb2e6870 100644
--- a/chromecast/cast_core/runtime/browser/runtime_application_dispatcher.cc
+++ b/chromecast/cast_core/runtime/browser/runtime_application_dispatcher.cc
@@ -151,39 +151,24 @@
     application_watcher_->OnRuntimeApplicationChanged(app_.get());
   }
 
-  if (!app_->Load(request)) {
-    ResetApp();
-    reactor->Write(
-        grpc::Status(grpc::StatusCode::INTERNAL, "Failed to load application"));
-    return;
-  }
-
-  LOG(INFO) << "Application loaded: " << *app_;
-  cast::runtime::LoadApplicationResponse response;
-  response.mutable_message_port_info();
-  reactor->Write(std::move(response));
+  app_->Load(
+      std::move(request),
+      base::BindPostTask(
+          task_runner_,
+          base::BindOnce(&RuntimeApplicationDispatcher::OnApplicationLoaded,
+                         weak_factory_.GetWeakPtr(), std::move(reactor))));
 }
 
 void RuntimeApplicationDispatcher::HandleLaunchApplication(
     cast::runtime::LaunchApplicationRequest request,
     cast::runtime::RuntimeServiceHandler::LaunchApplication::Reactor* reactor) {
   DCHECK_CALLED_ON_VALID_SEQUENCE(sequence_checker_);
-  if (!app_->Launch(request)) {
-    std::stringstream err_stream;
-    err_stream << "failed to launch RuntimeApplication (session id: "
-               << app_->cast_session_id()
-               << ", app id: " << app_->app_config().app_id()
-               << ", cast media service endpoint: "
-               << (request.has_cast_media_service_info()
-                       ? request.cast_media_service_info().grpc_endpoint()
-                       : "NONE")
-               << ")";
-    ResetApp();
-    reactor->Write(grpc::Status(grpc::INTERNAL, err_stream.str()));
-    return;
-  }
-
-  reactor->Write(cast::runtime::LaunchApplicationResponse());
+  app_->Launch(
+      std::move(request),
+      base::BindPostTask(
+          task_runner_,
+          base::BindOnce(&RuntimeApplicationDispatcher::OnApplicationLaunched,
+                         weak_factory_.GetWeakPtr(), std::move(reactor))));
 }
 
 void RuntimeApplicationDispatcher::HandleStopApplication(
@@ -263,6 +248,38 @@
       weak_factory_.GetWeakPtr(), std::move(reactor)));
 }
 
+void RuntimeApplicationDispatcher::OnApplicationLoaded(
+    cast::runtime::RuntimeServiceHandler::LoadApplication::Reactor* reactor,
+    grpc::Status status) {
+  if (!status.ok()) {
+    LOG(ERROR) << "Failed to load application: " << *app_
+               << ", status=" << cast::utils::GrpcStatusToString(status);
+    ResetApp();
+    reactor->Write(status);
+    return;
+  }
+
+  LOG(INFO) << "Application loaded: " << *app_;
+  cast::runtime::LoadApplicationResponse response;
+  response.mutable_message_port_info();
+  reactor->Write(std::move(response));
+}
+
+void RuntimeApplicationDispatcher::OnApplicationLaunched(
+    cast::runtime::RuntimeServiceHandler::LaunchApplication::Reactor* reactor,
+    grpc::Status status) {
+  if (!status.ok()) {
+    LOG(ERROR) << "Failed to launch application: " << *app_
+               << ", status=" << cast::utils::GrpcStatusToString(status);
+    ResetApp();
+    reactor->Write(status);
+    return;
+  }
+
+  LOG(INFO) << "Application launched: " << *app_;
+  reactor->Write(cast::runtime::LaunchApplicationResponse());
+}
+
 void RuntimeApplicationDispatcher::SendHeartbeat() {
   DCHECK_CALLED_ON_VALID_SEQUENCE(sequence_checker_);
   DCHECK(heartbeat_reactor_);
@@ -305,12 +322,12 @@
               std::move(request));
   std::move(call).InvokeAsync(base::BindPostTask(
       task_runner_,
-      base::BindOnce(&RuntimeApplicationDispatcher::OnMetricsRecordComplete,
+      base::BindOnce(&RuntimeApplicationDispatcher::OnMetricsRecorded,
                      weak_factory_.GetWeakPtr(),
                      std::move(record_complete_callback))));
 }
 
-void RuntimeApplicationDispatcher::OnMetricsRecordComplete(
+void RuntimeApplicationDispatcher::OnMetricsRecorded(
     CastRuntimeMetricsRecorderService::RecordCompleteCallback
         record_complete_callback,
     cast::utils::GrpcStatusOr<cast::metrics::RecordResponse> response_or) {
diff --git a/chromecast/cast_core/runtime/browser/runtime_application_dispatcher.h b/chromecast/cast_core/runtime/browser/runtime_application_dispatcher.h
index ad0690c..0a2df36 100644
--- a/chromecast/cast_core/runtime/browser/runtime_application_dispatcher.h
+++ b/chromecast/cast_core/runtime/browser/runtime_application_dispatcher.h
@@ -13,8 +13,6 @@
 #include "chromecast/cast_core/runtime/browser/cast_runtime_action_recorder.h"
 #include "chromecast/cast_core/runtime/browser/cast_runtime_metrics_recorder.h"
 #include "chromecast/cast_core/runtime/browser/cast_runtime_metrics_recorder_service.h"
-#include "chromecast/cast_core/runtime/browser/grpc/grpc_method.h"
-#include "chromecast/cast_core/runtime/browser/grpc/grpc_server.h"
 #include "components/cast_streaming/browser/public/network_context_getter.h"
 #include "third_party/abseil-cpp/absl/types/optional.h"
 #include "third_party/cast_core/public/src/proto/metrics/metrics_recorder.castcore.pb.h"
@@ -74,6 +72,12 @@
           reactor);
 
   // Helper methods.
+  void OnApplicationLoaded(
+      cast::runtime::RuntimeServiceHandler::LoadApplication::Reactor* reactor,
+      grpc::Status status);
+  void OnApplicationLaunched(
+      cast::runtime::RuntimeServiceHandler::LaunchApplication::Reactor* reactor,
+      grpc::Status status);
   void SendHeartbeat();
   void OnHeartbeatSent(
       cast::utils::GrpcStatusOr<
@@ -82,7 +86,7 @@
   void RecordMetrics(cast::metrics::RecordRequest request,
                      CastRuntimeMetricsRecorderService::RecordCompleteCallback
                          record_complete_callback);
-  void OnMetricsRecordComplete(
+  void OnMetricsRecorded(
       CastRuntimeMetricsRecorderService::RecordCompleteCallback
           record_complete_callback,
       cast::utils::GrpcStatusOr<cast::metrics::RecordResponse> response_or);
diff --git a/chromecast/cast_core/runtime/browser/runtime_application_service_grpc_impl.cc b/chromecast/cast_core/runtime/browser/runtime_application_service_grpc_impl.cc
deleted file mode 100644
index 9976246..0000000
--- a/chromecast/cast_core/runtime/browser/runtime_application_service_grpc_impl.cc
+++ /dev/null
@@ -1,62 +0,0 @@
-// Copyright 2021 The Chromium Authors. All rights reserved.
-// Use of this source code is governed by a BSD-style license that can be
-// found in the LICENSE file.
-
-#include "chromecast/cast_core/runtime/browser/runtime_application_service_grpc_impl.h"
-
-#include "chromecast/cast_core/runtime/browser/grpc/grpc_method.h"
-#include "chromecast/cast_core/runtime/browser/grpc/simple_async_grpc.h"
-
-namespace chromecast {
-namespace {
-
-class SetUrlRewriteRules final
-    : public SimpleAsyncGrpc<SetUrlRewriteRules,
-                             cast::v2::SetUrlRewriteRulesRequest,
-                             cast::v2::SetUrlRewriteRulesResponse> {
- public:
-  SetUrlRewriteRules(cast::v2::RuntimeApplicationService::AsyncService* service,
-                     base::WeakPtr<RuntimeApplicationServiceDelegate> delegate,
-                     ::grpc::ServerCompletionQueue* cq,
-                     bool* is_shutdown)
-      : SimpleAsyncGrpc(cq),
-        is_shutdown_(is_shutdown),
-        delegate_(delegate),
-        service_(service) {
-    DCHECK(!*is_shutdown_);
-    service_->RequestSetUrlRewriteRules(&ctx_, &request_, &responder_, cq_, cq_,
-                                        static_cast<GRPC*>(this));
-  }
-
-  cast::v2::RuntimeApplicationService::AsyncService* service() {
-    return service_;
-  }
-
-  base::WeakPtr<RuntimeApplicationServiceDelegate> delegate() {
-    return delegate_;
-  }
-
-  bool* is_shutdown() { return is_shutdown_; }
-
-  void DoMethod() { delegate_->SetUrlRewriteRules(request_, &response_, this); }
-
- private:
-  bool* is_shutdown_;
-  base::WeakPtr<RuntimeApplicationServiceDelegate> delegate_;
-  cast::v2::RuntimeApplicationService::AsyncService* service_;
-};
-
-}  // namespace
-
-RuntimeApplicationServiceDelegate::~RuntimeApplicationServiceDelegate() =
-    default;
-
-void StartRuntimeApplicationServiceMethods(
-    cast::v2::RuntimeApplicationService::AsyncService* service,
-    base::WeakPtr<RuntimeApplicationServiceDelegate> delegate,
-    ::grpc::ServerCompletionQueue* cq,
-    bool* is_shutdown) {
-  new SetUrlRewriteRules(service, delegate, cq, is_shutdown);
-}
-
-}  // namespace chromecast
diff --git a/chromecast/cast_core/runtime/browser/runtime_application_service_grpc_impl.h b/chromecast/cast_core/runtime/browser/runtime_application_service_grpc_impl.h
deleted file mode 100644
index 7ab027e..0000000
--- a/chromecast/cast_core/runtime/browser/runtime_application_service_grpc_impl.h
+++ /dev/null
@@ -1,35 +0,0 @@
-// Copyright 2021 The Chromium Authors. All rights reserved.
-// Use of this source code is governed by a BSD-style license that can be
-// found in the LICENSE file.
-
-#ifndef CHROMECAST_CAST_CORE_RUNTIME_BROWSER_RUNTIME_APPLICATION_SERVICE_GRPC_IMPL_H_
-#define CHROMECAST_CAST_CORE_RUNTIME_BROWSER_RUNTIME_APPLICATION_SERVICE_GRPC_IMPL_H_
-
-#include "base/memory/weak_ptr.h"
-#include "third_party/cast_core/public/src/proto/v2/runtime_application_service.grpc.pb.h"
-#include "third_party/grpc/src/include/grpcpp/completion_queue.h"
-#include "third_party/grpc/src/include/grpcpp/server_context.h"
-
-namespace chromecast {
-
-class GrpcMethod;
-
-class RuntimeApplicationServiceDelegate {
- public:
-  virtual ~RuntimeApplicationServiceDelegate() = 0;
-
-  virtual void SetUrlRewriteRules(
-      const cast::v2::SetUrlRewriteRulesRequest& request,
-      cast::v2::SetUrlRewriteRulesResponse* response,
-      GrpcMethod* callback) = 0;
-};
-
-void StartRuntimeApplicationServiceMethods(
-    cast::v2::RuntimeApplicationService::AsyncService* service,
-    base::WeakPtr<RuntimeApplicationServiceDelegate> delegate,
-    ::grpc::ServerCompletionQueue* cq,
-    bool* is_shutdown);
-
-}  // namespace chromecast
-
-#endif  // CHROMECAST_CAST_CORE_RUNTIME_BROWSER_RUNTIME_APPLICATION_SERVICE_GRPC_IMPL_H_
diff --git a/chromecast/cast_core/runtime/browser/runtime_message_port_application_service_grpc_impl.cc b/chromecast/cast_core/runtime/browser/runtime_message_port_application_service_grpc_impl.cc
deleted file mode 100644
index 2b8fd1d3..0000000
--- a/chromecast/cast_core/runtime/browser/runtime_message_port_application_service_grpc_impl.cc
+++ /dev/null
@@ -1,62 +0,0 @@
-// Copyright 2021 The Chromium Authors. All rights reserved.
-// Use of this source code is governed by a BSD-style license that can be
-// found in the LICENSE file.
-
-#include "chromecast/cast_core/runtime/browser/runtime_message_port_application_service_grpc_impl.h"
-
-#include "chromecast/cast_core/runtime/browser/grpc/grpc_method.h"
-#include "chromecast/cast_core/runtime/browser/grpc/simple_async_grpc.h"
-
-namespace chromecast {
-namespace {
-
-class PostMessage final : public SimpleAsyncGrpc<PostMessage,
-                                                 cast::web::Message,
-                                                 cast::web::MessagePortStatus> {
- public:
-  PostMessage(
-      cast::v2::RuntimeMessagePortApplicationService::AsyncService* service,
-      base::WeakPtr<RuntimeMessagePortApplicationServiceDelegate> delegate,
-      ::grpc::ServerCompletionQueue* cq,
-      bool* is_shutdown)
-      : SimpleAsyncGrpc(cq),
-        is_shutdown_(is_shutdown),
-        delegate_(delegate),
-        service_(service) {
-    DCHECK(!*is_shutdown_);
-    service_->RequestPostMessage(&ctx_, &request_, &responder_, cq_, cq_,
-                                 static_cast<GRPC*>(this));
-  }
-
-  cast::v2::RuntimeMessagePortApplicationService::AsyncService* service() {
-    return service_;
-  }
-
-  base::WeakPtr<RuntimeMessagePortApplicationServiceDelegate> delegate() {
-    return delegate_;
-  }
-
-  bool* is_shutdown() { return is_shutdown_; }
-
-  void DoMethod() { delegate_->PostMessage(request_, &response_, this); }
-
- private:
-  bool* is_shutdown_;
-  base::WeakPtr<RuntimeMessagePortApplicationServiceDelegate> delegate_;
-  cast::v2::RuntimeMessagePortApplicationService::AsyncService* service_;
-};
-
-}  // namespace
-
-RuntimeMessagePortApplicationServiceDelegate::
-    ~RuntimeMessagePortApplicationServiceDelegate() = default;
-
-void StartRuntimeMessagePortApplicationServiceMethods(
-    cast::v2::RuntimeMessagePortApplicationService::AsyncService* service,
-    base::WeakPtr<RuntimeMessagePortApplicationServiceDelegate> delegate,
-    ::grpc::ServerCompletionQueue* cq,
-    bool* is_shutdown) {
-  new PostMessage(service, delegate, cq, is_shutdown);
-}
-
-}  // namespace chromecast
diff --git a/chromecast/cast_core/runtime/browser/runtime_message_port_application_service_grpc_impl.h b/chromecast/cast_core/runtime/browser/runtime_message_port_application_service_grpc_impl.h
deleted file mode 100644
index cd24866a..0000000
--- a/chromecast/cast_core/runtime/browser/runtime_message_port_application_service_grpc_impl.h
+++ /dev/null
@@ -1,34 +0,0 @@
-// Copyright 2021 The Chromium Authors. All rights reserved.
-// Use of this source code is governed by a BSD-style license that can be
-// found in the LICENSE file.
-
-#ifndef CHROMECAST_CAST_CORE_RUNTIME_BROWSER_RUNTIME_MESSAGE_PORT_APPLICATION_SERVICE_GRPC_IMPL_H_
-#define CHROMECAST_CAST_CORE_RUNTIME_BROWSER_RUNTIME_MESSAGE_PORT_APPLICATION_SERVICE_GRPC_IMPL_H_
-
-#include "base/memory/weak_ptr.h"
-#include "third_party/cast_core/public/src/proto/v2/runtime_message_port_application_service.grpc.pb.h"
-#include "third_party/grpc/src/include/grpcpp/completion_queue.h"
-#include "third_party/grpc/src/include/grpcpp/server_context.h"
-
-namespace chromecast {
-
-class GrpcMethod;
-
-class RuntimeMessagePortApplicationServiceDelegate {
- public:
-  virtual ~RuntimeMessagePortApplicationServiceDelegate() = 0;
-
-  virtual void PostMessage(const cast::web::Message& request,
-                           cast::web::MessagePortStatus* response,
-                           GrpcMethod* callback) = 0;
-};
-
-void StartRuntimeMessagePortApplicationServiceMethods(
-    cast::v2::RuntimeMessagePortApplicationService::AsyncService* service,
-    base::WeakPtr<RuntimeMessagePortApplicationServiceDelegate> delegate,
-    ::grpc::ServerCompletionQueue* cq,
-    bool* is_shutdown);
-
-}  // namespace chromecast
-
-#endif  // CHROMECAST_CAST_CORE_RUNTIME_BROWSER_RUNTIME_MESSAGE_PORT_APPLICATION_SERVICE_GRPC_IMPL_H_
diff --git a/chromecast/cast_core/runtime/browser/streaming_runtime_application.cc b/chromecast/cast_core/runtime/browser/streaming_runtime_application.cc
index 47037b5..92efcb666 100644
--- a/chromecast/cast_core/runtime/browser/streaming_runtime_application.cc
+++ b/chromecast/cast_core/runtime/browser/streaming_runtime_application.cc
@@ -4,7 +4,9 @@
 
 #include "chromecast/cast_core/runtime/browser/streaming_runtime_application.h"
 
+#include "base/bind.h"
 #include "base/strings/stringprintf.h"
+#include "base/task/bind_post_task.h"
 #include "chromecast/cast_core/runtime/browser/message_port_service.h"
 #include "chromecast/media/base/video_plane_controller.h"
 #include "components/cast/message_port/platform_message_port.h"
@@ -47,27 +49,37 @@
 }
 
 StreamingRuntimeApplication::~StreamingRuntimeApplication() {
+  DCHECK_CALLED_ON_VALID_SEQUENCE(sequence_checker_);
   StopApplication();
 }
 
-void StreamingRuntimeApplication::HandleMessage(
-    const cast::web::Message& message,
-    cast::web::MessagePortStatus* response) {
-  message_port_service_->HandleMessage(message, response);
+cast::utils::GrpcStatusOr<cast::web::MessagePortStatus>
+StreamingRuntimeApplication::HandlePortMessage(cast::web::Message message) {
+  DCHECK_CALLED_ON_VALID_SEQUENCE(sequence_checker_);
+  return message_port_service_->HandleMessage(std::move(message));
 }
 
 void StreamingRuntimeApplication::OnStreamingSessionStarted() {
+  DCHECK_CALLED_ON_VALID_SEQUENCE(sequence_checker_);
   LOG(INFO) << "Streaming session started for " << *this << "!";
-  SetApplicationStarted();
+  SetApplicationState(
+      cast::v2::ApplicationStatusRequest::STARTED,
+      base::BindPostTask(
+          task_runner(),
+          base::BindOnce(
+              &StreamingRuntimeApplication::OnApplicationStateChanged,
+              weak_factory_.GetWeakPtr())));
 }
 
 void StreamingRuntimeApplication::OnError() {
+  DCHECK_CALLED_ON_VALID_SEQUENCE(sequence_checker_);
   LOG(WARNING) << "Streaming session for " << *this << " has hit an error!";
   StopApplication();
 }
 
 void StreamingRuntimeApplication::StartAvSettingsQuery(
     std::unique_ptr<cast_api_bindings::MessagePort> message_port) {
+  DCHECK_CALLED_ON_VALID_SEQUENCE(sequence_checker_);
   // Connect the port to allow for sending messages. Querying will be done by
   // the associated |receiver_session_client_|.
   message_port_service_->ConnectToPort(kMediaCapabilitiesBindingName,
@@ -77,16 +89,17 @@
 void StreamingRuntimeApplication::OnResolutionChanged(
     const gfx::Rect& size,
     const ::media::VideoTransformation& transformation) {
+  DCHECK_CALLED_ON_VALID_SEQUENCE(sequence_checker_);
   video_plane_controller_->SetGeometryFromMediaType(size, transformation);
 }
 
 void StreamingRuntimeApplication::InitializeApplication(
-    CoreApplicationServiceGrpc* grpc_stub,
-    CastWebContents* cast_web_contents) {
+    StatusCallback callback) {
+  DCHECK_CALLED_ON_VALID_SEQUENCE(sequence_checker_);
   DCHECK(app_url().is_empty());
 
   message_port_service_ =
-      std::make_unique<MessagePortService>(grpc_cq_, grpc_stub);
+      std::make_unique<MessagePortService>(core_message_port_app_stub());
 
   // Bind Cast Transport.
   std::unique_ptr<cast_api_bindings::MessagePort> server_port;
@@ -98,7 +111,7 @@
   // Initialize the streaming receiver.
   receiver_session_client_ = std::make_unique<StreamingReceiverSessionClient>(
       task_runner(), network_context_getter_, std::move(server_port),
-      cast_web_contents, this,
+      GetCastWebContents(), this,
       /* supports_audio= */ app_config().app_id() !=
           openscreen::cast::GetIosAppStreamingAudioVideoAppId(),
       /* supports_video= */ true);
@@ -108,9 +121,13 @@
       cast_streaming::GetCastStreamingMediaSourceUrl().spec();
   set_app_url(GURL(
       base::StringPrintf(kStreamingPageUrlTemplate, streaming_url.c_str())));
+
+  // Signal that application is initialized.
+  std::move(callback).Run(grpc::Status::OK);
 }
 
 void StreamingRuntimeApplication::StopApplication() {
+  DCHECK_CALLED_ON_VALID_SEQUENCE(sequence_checker_);
   if (!receiver_session_client_) {
     DLOG(INFO) << "Streaming session never started prior to " << *this
                << " stop.";
@@ -122,7 +139,21 @@
 }
 
 bool StreamingRuntimeApplication::IsStreamingApplication() const {
+  DCHECK_CALLED_ON_VALID_SEQUENCE(sequence_checker_);
   return true;
 }
 
+void StreamingRuntimeApplication::OnApplicationStateChanged(
+    grpc::Status status) {
+  DCHECK_CALLED_ON_VALID_SEQUENCE(sequence_checker_);
+  if (!status.ok()) {
+    LOG(ERROR) << "Failed to set application state to started: " << *this
+               << ", status=" << cast::utils::GrpcStatusToString(status);
+    StopApplication();
+    return;
+  }
+
+  DLOG(INFO) << "Application state changed to started";
+}
+
 }  // namespace chromecast
diff --git a/chromecast/cast_core/runtime/browser/streaming_runtime_application.h b/chromecast/cast_core/runtime/browser/streaming_runtime_application.h
index 360c4fedf..4e4634f1 100644
--- a/chromecast/cast_core/runtime/browser/streaming_runtime_application.h
+++ b/chromecast/cast_core/runtime/browser/streaming_runtime_application.h
@@ -33,10 +33,9 @@
 
  private:
   // RuntimeApplicationBase implementation:
-  void HandleMessage(const cast::web::Message& message,
-                     cast::web::MessagePortStatus* response) override;
-  void InitializeApplication(CoreApplicationServiceGrpc* grpc_stub,
-                             CastWebContents* cast_web_contents) override;
+  cast::utils::GrpcStatusOr<cast::web::MessagePortStatus> HandlePortMessage(
+      cast::web::Message message) override;
+  void InitializeApplication(StatusCallback callback) override;
   void StopApplication() override;
   bool IsStreamingApplication() const override;
 
@@ -49,6 +48,8 @@
       const gfx::Rect& size,
       const ::media::VideoTransformation& transformation) override;
 
+  void OnApplicationStateChanged(grpc::Status status);
+
   media::VideoPlaneController* video_plane_controller_;
 
   // Returns the network context used by |receiver_session_client_|.
@@ -59,6 +60,9 @@
 
   // Object responsible for maintaining the lifetime of the streaming session.
   std::unique_ptr<StreamingReceiverSessionClient> receiver_session_client_;
+
+  SEQUENCE_CHECKER(sequence_checker_);
+  base::WeakPtrFactory<StreamingRuntimeApplication> weak_factory_{this};
 };
 
 }  // namespace chromecast
diff --git a/chromecast/cast_core/runtime/browser/web_runtime_application.cc b/chromecast/cast_core/runtime/browser/web_runtime_application.cc
index 3ea3240..0518df10 100644
--- a/chromecast/cast_core/runtime/browser/web_runtime_application.cc
+++ b/chromecast/cast_core/runtime/browser/web_runtime_application.cc
@@ -4,6 +4,7 @@
 
 #include "chromecast/cast_core/runtime/browser/web_runtime_application.h"
 
+#include "base/task/bind_post_task.h"
 #include "chromecast/browser/cast_web_service.h"
 #include "chromecast/cast_core/runtime/browser/bindings_manager_web_runtime.h"
 #include "chromecast/cast_core/runtime/browser/grpc_webui_controller_factory.h"
@@ -24,18 +25,18 @@
                              std::move(task_runner)) {}
 
 WebRuntimeApplication::~WebRuntimeApplication() {
+  DCHECK_CALLED_ON_VALID_SEQUENCE(sequence_checker_);
   StopApplication();
 }
 
-void WebRuntimeApplication::HandleMessage(
-    const cast::web::Message& message,
-    cast::web::MessagePortStatus* response) {
-  bindings_manager_->HandleMessage(message, response);
+cast::utils::GrpcStatusOr<cast::web::MessagePortStatus>
+WebRuntimeApplication::HandlePortMessage(cast::web::Message message) {
+  DCHECK_CALLED_ON_VALID_SEQUENCE(sequence_checker_);
+  return bindings_manager_->HandleMessage(std::move(message));
 }
 
-void WebRuntimeApplication::InitializeApplication(
-    CoreApplicationServiceGrpc* grpc_stub,
-    CastWebContents* cast_web_contents) {
+void WebRuntimeApplication::InitializeApplication(StatusCallback callback) {
+  DCHECK_CALLED_ON_VALID_SEQUENCE(sequence_checker_);
   DCHECK(app_url().is_empty());
   set_app_url(GURL(app_config().cast_web_app_config().url()));
 
@@ -43,37 +44,27 @@
   // chrome*://* that use WebUIs.
   const std::vector<std::string> hosts = {"home", "error", "cast_resources"};
   content::WebUIControllerFactory::RegisterFactory(
-      new GrpcWebUiControllerFactory(std::move(hosts), *grpc_stub));
+      new GrpcWebUiControllerFactory(std::move(hosts), core_app_stub()));
 
-  cast::bindings::GetAllResponse bindings_response;
-  {
-    grpc::ClientContext context;
-    cast::bindings::GetAllRequest bindings_request;
-    grpc::Status bindings_status =
-        grpc_stub->GetAll(&context, bindings_request, &bindings_response);
-  }
-
-  CastWebContents::Observer::Observe(cast_web_contents);
-
-  bindings_manager_ =
-      std::make_unique<BindingsManagerWebRuntime>(grpc_cq_, grpc_stub);
-  for (int i = 0; i < bindings_response.bindings_size(); ++i) {
-    bindings_manager_->AddBinding(
-        bindings_response.bindings(i).before_load_script());
-  }
-  cast_web_contents->ConnectToBindingsService(
-      bindings_manager_->CreateRemote());
-
-  SetApplicationStarted();
+  auto call =
+      core_message_port_app_stub()
+          ->CreateCall<
+              cast::v2::CoreMessagePortApplicationServiceStub::GetAll>();
+  std::move(call).InvokeAsync(base::BindPostTask(
+      task_runner(),
+      base::BindOnce(&WebRuntimeApplication::OnAllBindingsReceived,
+                     weak_factory_.GetWeakPtr(), std::move(callback))));
 }
 
 bool WebRuntimeApplication::IsStreamingApplication() const {
+  DCHECK_CALLED_ON_VALID_SEQUENCE(sequence_checker_);
   return false;
 }
 
 void WebRuntimeApplication::InnerContentsCreated(
     CastWebContents* inner_contents,
     CastWebContents* outer_contents) {
+  DCHECK_CALLED_ON_VALID_SEQUENCE(sequence_checker_);
   DCHECK(inner_contents);
   DCHECK_EQ(outer_contents, GetCastWebContents());
 
@@ -105,4 +96,46 @@
       inner_contents->web_contents());
 }
 
+void WebRuntimeApplication::OnAllBindingsReceived(
+    StatusCallback callback,
+    cast::utils::GrpcStatusOr<cast::bindings::GetAllResponse> response_or) {
+  DCHECK_CALLED_ON_VALID_SEQUENCE(sequence_checker_);
+  if (!response_or.ok()) {
+    LOG(ERROR) << "Failed to get all bindings: " << response_or.ToString();
+    std::move(callback).Run(
+        grpc::Status(grpc::StatusCode::INTERNAL, "Failed to get all bindings"));
+    return;
+  }
+
+  CastWebContents::Observer::Observe(GetCastWebContents());
+  bindings_manager_ =
+      std::make_unique<BindingsManagerWebRuntime>(core_message_port_app_stub());
+  for (int i = 0; i < response_or->bindings_size(); ++i) {
+    bindings_manager_->AddBinding(
+        response_or->bindings(i).before_load_script());
+  }
+  GetCastWebContents()->ConnectToBindingsService(
+      bindings_manager_->CreateRemote());
+
+  SetApplicationState(
+      cast::v2::ApplicationStatusRequest::STARTED,
+      base::BindPostTask(
+          task_runner(),
+          base::BindOnce(&WebRuntimeApplication::OnApplicationStateChanged,
+                         weak_factory_.GetWeakPtr(), std::move(callback))));
+}
+
+void WebRuntimeApplication::OnApplicationStateChanged(StatusCallback callback,
+                                                      grpc::Status status) {
+  if (!status.ok()) {
+    LOG(ERROR) << "Failed to set application state to started: " << *this
+               << ", status=" << cast::utils::GrpcStatusToString(status);
+    std::move(callback).Run(status);
+    StopApplication();
+    return;
+  }
+
+  std::move(callback).Run(grpc::Status::OK);
+}
+
 }  // namespace chromecast
diff --git a/chromecast/cast_core/runtime/browser/web_runtime_application.h b/chromecast/cast_core/runtime/browser/web_runtime_application.h
index c331816..e9f9133 100644
--- a/chromecast/cast_core/runtime/browser/web_runtime_application.h
+++ b/chromecast/cast_core/runtime/browser/web_runtime_application.h
@@ -24,17 +24,24 @@
 
  private:
   // RuntimeApplicationBase implementation:
-  void HandleMessage(const cast::web::Message& message,
-                     cast::web::MessagePortStatus* response) override;
-  void InitializeApplication(CoreApplicationServiceGrpc* grpc_stub,
-                             CastWebContents* cast_web_contents) override;
+  cast::utils::GrpcStatusOr<cast::web::MessagePortStatus> HandlePortMessage(
+      cast::web::Message message) override;
+  void InitializeApplication(StatusCallback callback) override;
   bool IsStreamingApplication() const override;
 
   // CastWebContents::Observer implementation:
   void InnerContentsCreated(CastWebContents* inner_contents,
                             CastWebContents* outer_contents) override;
 
+  void OnAllBindingsReceived(
+      StatusCallback callback,
+      cast::utils::GrpcStatusOr<cast::bindings::GetAllResponse> response_or);
+  void OnApplicationStateChanged(StatusCallback callback, grpc::Status status);
+
   std::unique_ptr<BindingsManagerWebRuntime> bindings_manager_;
+
+  SEQUENCE_CHECKER(sequence_checker_);
+  base::WeakPtrFactory<WebRuntimeApplication> weak_factory_{this};
 };
 
 }  // namespace chromecast
diff --git a/chromeos/strings/chromeos_strings_af.xtb b/chromeos/strings/chromeos_strings_af.xtb
index c702b8f..0ead6c7 100644
--- a/chromeos/strings/chromeos_strings_af.xtb
+++ b/chromeos/strings/chromeos_strings_af.xtb
@@ -488,7 +488,6 @@
 <translation id="7763470514545477072">Passing vir domein-agtervoegsel</translation>
 <translation id="7769672763586021400">Model-ID</translation>
 <translation id="7784116172884276937">Geen DNS-bedieners is opgestel nie</translation>
-<translation id="7786540085520432425">Jy kan die venster verklein terwyl jou toestel opdateer, maar moet dit nie uitprop nie. Dit kan 'n paar minute neem en jou toestel sal dalk nie tydens hierdie opdatering werk nie</translation>
 <translation id="780301667611848630">Nee, dankie</translation>
 <translation id="7805768142964895445">Status</translation>
 <translation id="7819857487979277519">PSK (WPA of RSN)</translation>
diff --git a/chromeos/strings/chromeos_strings_am.xtb b/chromeos/strings/chromeos_strings_am.xtb
index 791c7496..456d0030 100644
--- a/chromeos/strings/chromeos_strings_am.xtb
+++ b/chromeos/strings/chromeos_strings_am.xtb
@@ -488,7 +488,6 @@
 <translation id="7763470514545477072">የጎራ ድኅረ ቅጥያ ዝምድና</translation>
 <translation id="7769672763586021400">የሞዴል መታወቂያ</translation>
 <translation id="7784116172884276937">ምንም የዲኤንኤስ አገልጋዮች አልተዋቀሩም</translation>
-<translation id="7786540085520432425">በማዘመን ላይ ሳለ መስኮቱን ማሳነስ ይችላሉ ነገር ግን መሣሪያዎን አይንቀሉ። ይሄ ጥቂት ደቂቃዎችን ሊወስድ ይችላል እና በዚህ ዝማኔ ጊዜ መሣሪያዎ ላይሰራ ይችላል</translation>
 <translation id="780301667611848630">አይ፣ አመሰግናለሁ</translation>
 <translation id="7805768142964895445">ሁኔታ</translation>
 <translation id="7819857487979277519">PSK (WPA ወይም RSN)</translation>
diff --git a/chromeos/strings/chromeos_strings_ar.xtb b/chromeos/strings/chromeos_strings_ar.xtb
index b4e17f67..054a89a2 100644
--- a/chromeos/strings/chromeos_strings_ar.xtb
+++ b/chromeos/strings/chromeos_strings_ar.xtb
@@ -130,6 +130,8 @@
 <translation id="2860473693272905224">يُرجى وضع صفحة أخرى على الماسح الضوئي.</translation>
 <translation id="2872961005593481000">إيقاف التشغيل</translation>
 <translation id="2878387241690264070">تم نفاد <ph name="RATE" /> خلال <ph name="NUM_SECONDS" /> ثانية.</translation>
+<translation id="291142119251986300">المكونات غير المعتمَدة</translation>
+<translation id="2926057806159140518">أدخِل اسم المستخدم وكلمة المرور أو امسَح رمز الاستجابة السريعة ضوئيًا.</translation>
 <translation id="3008341117444806826">إعادة التحميل</translation>
 <translation id="3009958530611748826">اختيار مجلّد لحفظ عمليات المسح الضوئي فيه</translation>
 <translation id="3054177598518735801"><ph name="CURRENT_VALUE" /> ميلي أمبير</translation>
@@ -486,7 +488,6 @@
 <translation id="7763470514545477072">مطابقة لاحقة النطاق</translation>
 <translation id="7769672763586021400">رقم تعريف النموذج</translation>
 <translation id="7784116172884276937">لم يتم ضبط أي خوادم لنظام أسماء النطاقات.</translation>
-<translation id="7786540085520432425">يمكنك تصغير النافذة أثناء إجراء التحديث، ولكن يجب عدم فصل جهازك عن مصدر الكهرباء. قد يستغرق إتمام التحديث بضع دقائق، وقد لا يعمل جهازك خلال فترة التحديث.</translation>
 <translation id="780301667611848630">لا، شكرًا</translation>
 <translation id="7805768142964895445">الحالة</translation>
 <translation id="7819857487979277519">‏PSK (WPA أو RSN)</translation>
diff --git a/chromeos/strings/chromeos_strings_as.xtb b/chromeos/strings/chromeos_strings_as.xtb
index b931df3..69a80d6 100644
--- a/chromeos/strings/chromeos_strings_as.xtb
+++ b/chromeos/strings/chromeos_strings_as.xtb
@@ -172,6 +172,7 @@
 <translation id="357889014807611375">নিৰিখ-নিৰ্দিষ্ট ৱাই-ফাই</translation>
 <translation id="3583278742022654445">ছিগনেলৰ ক্ষমতা দুৰ্বল। ৱাই-ফাইৰ ছিগনেলৰ উৎসটোৰ ওচৰলৈ গৈ চাওক।</translation>
 <translation id="3595596368722241419">বেটাৰী চ্চাৰ্জ সম্পূৰ্ণ হৈছে</translation>
+<translation id="3603829704940252505">অৱতাৰ</translation>
 <translation id="360565022852130722">ৱাই-ফাই নেটৱৰ্কটো দুৰ্বল প্ৰট’কল WEP 802.1xৰ দ্বাৰা সুৰক্ষিত</translation>
 <translation id="3606583719724308068">HTTPS ৱেবছাইটলৈ অধিক বিলম্বতা</translation>
 <translation id="3689839747745352263"><ph name="TEST_NAME" /> পৰীক্ষা</translation>
@@ -422,6 +423,7 @@
 <translation id="6905724422583748843"><ph name="PAGE_NAME" />লৈ উভতি যাওক</translation>
 <translation id="6910312834584889076">স্কেনাৰৰ ঢাকনীখন খোলা আছে। ঢাকনীখন বন্ধ কৰি পুনৰ চেষ্টা কৰি চাওক।</translation>
 <translation id="6911383237894364323">মিডিয়া ছাৰ্ভাৰৰ সৈতে সংযোগ কৰিব পৰা নগ’ল</translation>
+<translation id="6935486296377631201">স্ক্ৰীন ছেভাৰ</translation>
 <translation id="6957231940976260713">সেৱাৰ নাম</translation>
 <translation id="6961170852793647506">আৰম্ভ কৰিবলৈ আপোনাৰ নথি স্কেনাৰটোত ৰাখক</translation>
 <translation id="6965382102122355670">ঠিক আছে</translation>
@@ -486,7 +488,6 @@
 <translation id="7763470514545477072">ডমেইন চাফিক্সৰ সৈতে মিলা</translation>
 <translation id="7769672763586021400">ম’ডেল আইডি:</translation>
 <translation id="7784116172884276937">কোনো DNS ছাৰ্ভাৰ ছেট আপ কৰা হোৱা নাই</translation>
-<translation id="7786540085520432425">আপডে’ট কৰোঁতে আপুনি ৱিণ্ড’ মিনিমাইজ কৰিব পাৰে কিন্তু আপোনাৰ ডিভাইচটো আনপ্লাগ নকৰিব। এই কামত কেইমিনিটমান সময় লাগিব পাৰে আৰু আপডে’ট হৈ থাকোঁতে আপোনাৰ ডিভাইচটোৱে হয়তো কাম নকৰিবও পাৰে</translation>
 <translation id="780301667611848630">নালাগে, ধন্যবাদ</translation>
 <translation id="7805768142964895445">স্থিতি</translation>
 <translation id="7819857487979277519">PSK (WPA বা RSN)</translation>
diff --git a/chromeos/strings/chromeos_strings_az.xtb b/chromeos/strings/chromeos_strings_az.xtb
index bc930fd0..b0fd730 100644
--- a/chromeos/strings/chromeos_strings_az.xtb
+++ b/chromeos/strings/chromeos_strings_az.xtb
@@ -487,7 +487,6 @@
 <translation id="7763470514545477072">Domen sonluğunun uyğunluğu</translation>
 <translation id="7769672763586021400">Model ID</translation>
 <translation id="7784116172884276937">DNS serveri ayarlanmayıb</translation>
-<translation id="7786540085520432425">Güncəlləyərkən pəncərəni yığcamlaşdıra bilərsiniz, lakin cihazınızı enerji mənbəyindən ayırmayın. Bu, bir neçə dəqiqə çəkə bilər və cihazınız bu güncəlləmə zamanı işləməyə bilər</translation>
 <translation id="780301667611848630">Yox, çox sağ olun</translation>
 <translation id="7805768142964895445">Status</translation>
 <translation id="7819857487979277519">PSK (WPA və ya RSN)</translation>
diff --git a/chromeos/strings/chromeos_strings_be.xtb b/chromeos/strings/chromeos_strings_be.xtb
index 28c6c584..728571f 100644
--- a/chromeos/strings/chromeos_strings_be.xtb
+++ b/chromeos/strings/chromeos_strings_be.xtb
@@ -172,6 +172,7 @@
 <translation id="357889014807611375">Wi-Fi з улікам трафіка</translation>
 <translation id="3583278742022654445">Нізкая магутнасць сігналу. Перамясціцеся бліжэй да крыніцы сігналу Wi-Fi.</translation>
 <translation id="3595596368722241419">Акумулятар поўнасцю зараджаны</translation>
+<translation id="3603829704940252505">Аватар</translation>
 <translation id="360565022852130722">Сетка Wi-Fi абаронена слабым пратаколам WEP 802.1x</translation>
 <translation id="3606583719724308068">Высокая затрымка на вэб-сайтах HTTPS</translation>
 <translation id="3689839747745352263"><ph name="TEST_NAME" /> (праверка)</translation>
@@ -422,6 +423,7 @@
 <translation id="6905724422583748843">Вярнуцца на старонку "<ph name="PAGE_NAME" />"</translation>
 <translation id="6910312834584889076">Вечка сканера адкрыта. Закрыйце вечка і паўтарыце спробу.</translation>
 <translation id="6911383237894364323">Не ўдалося падключыцца да сервераў мультымедыя</translation>
+<translation id="6935486296377631201">Застаўка</translation>
 <translation id="6957231940976260713">Імя сэрвісу</translation>
 <translation id="6961170852793647506">Для пачатку палажыце дакумент у сканер</translation>
 <translation id="6965382102122355670">ОК</translation>
@@ -486,7 +488,6 @@
 <translation id="7763470514545477072">Супадзенне па суфіксе дамена</translation>
 <translation id="7769672763586021400">Ідэнтыфікатар мадэлі</translation>
 <translation id="7784116172884276937">DNS-серверы не наладжаны</translation>
-<translation id="7786540085520432425">Падчас працэсу абнаўлення акно можна згарнуць, але не адключайце прыладу ад сілкавання. Абнаўленне можа заняць некалькі хвілін, і на працягу гэтага часу прылада можа не працаваць.</translation>
 <translation id="780301667611848630">Не, дзякуй</translation>
 <translation id="7805768142964895445">Стан</translation>
 <translation id="7819857487979277519">PSK (WPA або RSN)</translation>
diff --git a/chromeos/strings/chromeos_strings_bg.xtb b/chromeos/strings/chromeos_strings_bg.xtb
index 3e35ebd..fc6992f 100644
--- a/chromeos/strings/chromeos_strings_bg.xtb
+++ b/chromeos/strings/chromeos_strings_bg.xtb
@@ -172,6 +172,7 @@
 <translation id="357889014807611375">Wi-Fi мрежа с отчитане</translation>
 <translation id="3583278742022654445">Сигналът е слаб. Приближете се до източника на Wi-Fi сигнал.</translation>
 <translation id="3595596368722241419">Батерията е заредена</translation>
+<translation id="3603829704940252505">Аватар</translation>
 <translation id="360565022852130722">Wi-Fi мрежата е защитена със слабия протокол WEP 802.1x</translation>
 <translation id="3606583719724308068">Голямо закъснение на уебсайтове, работещи с HTTPS</translation>
 <translation id="3689839747745352263">Тест: <ph name="TEST_NAME" /></translation>
@@ -422,6 +423,7 @@
 <translation id="6905724422583748843">Назад към <ph name="PAGE_NAME" /></translation>
 <translation id="6910312834584889076">Капакът на скенера е отворен. Затворете го и опитайте отново.</translation>
 <translation id="6911383237894364323">Не може да се установи връзка с мултимедийните сървъри</translation>
+<translation id="6935486296377631201">Скрийнсейвър</translation>
 <translation id="6957231940976260713">Имe на услугата</translation>
 <translation id="6961170852793647506">За да започнете, поставете документа върху скенера</translation>
 <translation id="6965382102122355670">OK</translation>
@@ -486,7 +488,6 @@
 <translation id="7763470514545477072">Съответствие на суфикса на домейна</translation>
 <translation id="7769672763586021400">Идент. № на модела</translation>
 <translation id="7784116172884276937">Не са настроени DNS сървъри</translation>
-<translation id="7786540085520432425">По време на актуализирането можете да намалите прозореца, но не изключвайте устройството. Процесът може да отнеме няколко минути и е възможно устройството ви да не работи през това време.</translation>
 <translation id="780301667611848630">Не, благодаря</translation>
 <translation id="7805768142964895445">Състояние</translation>
 <translation id="7819857487979277519">PSK (WPA или RSN)</translation>
diff --git a/chromeos/strings/chromeos_strings_bn.xtb b/chromeos/strings/chromeos_strings_bn.xtb
index 46cff9d..7e3f695 100644
--- a/chromeos/strings/chromeos_strings_bn.xtb
+++ b/chromeos/strings/chromeos_strings_bn.xtb
@@ -487,7 +487,6 @@
 <translation id="7763470514545477072">ডোমেন সাফিক্সের সাথে মিল থাকা</translation>
 <translation id="7769672763586021400">মডেল আইডি</translation>
 <translation id="7784116172884276937">কোনও ডিএনএস সার্ভার সেট আপ করা হয়নি</translation>
-<translation id="7786540085520432425">আপডেট করার সময় উইন্ডো মিনিমাইজ করতে পারেন, কিন্তু ডিভাইস আনপ্লাগ করবেন না। এটি করতে কয়েক মিনিট সময় লাগবে এবং আপনার ডিভাইস সেই সময় কাজ নাও করতে পারে</translation>
 <translation id="780301667611848630">না থাক</translation>
 <translation id="7805768142964895445">স্থিতি</translation>
 <translation id="7819857487979277519">PSK (WPA বা RSN)</translation>
diff --git a/chromeos/strings/chromeos_strings_bs.xtb b/chromeos/strings/chromeos_strings_bs.xtb
index e422186b..11ce36b7 100644
--- a/chromeos/strings/chromeos_strings_bs.xtb
+++ b/chromeos/strings/chromeos_strings_bs.xtb
@@ -488,7 +488,6 @@
 <translation id="7763470514545477072">Podudaranje sufiksa domene</translation>
 <translation id="7769672763586021400">ID modela</translation>
 <translation id="7784116172884276937">Nije postavljen nijedan DNS server</translation>
-<translation id="7786540085520432425">Tokom ažuriranja možete minimizirati prozor, ali nemojte isključivati uređaj. Ovo može potrajati nekoliko minuta i vaš uređaj možda neće raditi tokom ovog ažuriranja</translation>
 <translation id="780301667611848630">Ne, hvala</translation>
 <translation id="7805768142964895445">Status</translation>
 <translation id="7819857487979277519">PSK (WPA ili RSN)</translation>
diff --git a/chromeos/strings/chromeos_strings_ca.xtb b/chromeos/strings/chromeos_strings_ca.xtb
index 18eadbb..a0f40c0 100644
--- a/chromeos/strings/chromeos_strings_ca.xtb
+++ b/chromeos/strings/chromeos_strings_ca.xtb
@@ -172,6 +172,7 @@
 <translation id="357889014807611375">Wi‑Fi d'ús mesurat</translation>
 <translation id="3583278742022654445">Intensitat del senyal fluixa. Prova d'apropar-te a la font de senyal de la Wi-Fi.</translation>
 <translation id="3595596368722241419">Bateria carregada.</translation>
+<translation id="3603829704940252505">Avatar</translation>
 <translation id="360565022852130722">La xarxa Wi-Fi està protegida amb el protocol dèbil WEP 802.1x</translation>
 <translation id="3606583719724308068">Latència alta als llocs web HTTPS</translation>
 <translation id="3689839747745352263">Prova <ph name="TEST_NAME" /></translation>
@@ -422,6 +423,7 @@
 <translation id="6905724422583748843">Torna a <ph name="PAGE_NAME" /></translation>
 <translation id="6910312834584889076">La tapa de l'escàner està oberta. Tanca-la i torna-ho a provar.</translation>
 <translation id="6911383237894364323">No es pot connectar als servidors multimèdia</translation>
+<translation id="6935486296377631201">Estalvi de pantalla</translation>
 <translation id="6957231940976260713">Nom del servei</translation>
 <translation id="6961170852793647506">Per començar, col·loca el document a l'escàner</translation>
 <translation id="6965382102122355670">D'acord</translation>
@@ -486,7 +488,6 @@
 <translation id="7763470514545477072">Sufix de domini coincident</translation>
 <translation id="7769672763586021400">Identificador del model</translation>
 <translation id="7784116172884276937">No hi ha cap servidor DNS configurat</translation>
-<translation id="7786540085520432425">Mentre s'actualitza, pots minimitzar la finestra però no pots desconnectar el dispositiu. Aquest procés pot tardar uns minuts i és possible que el dispositiu no funcioni durant l'actualització.</translation>
 <translation id="780301667611848630">No, gràcies</translation>
 <translation id="7805768142964895445">Estat</translation>
 <translation id="7819857487979277519">PSK (WPA o RSN)</translation>
diff --git a/chromeos/strings/chromeos_strings_cs.xtb b/chromeos/strings/chromeos_strings_cs.xtb
index 1fb6ddd7..de6dc81 100644
--- a/chromeos/strings/chromeos_strings_cs.xtb
+++ b/chromeos/strings/chromeos_strings_cs.xtb
@@ -172,6 +172,7 @@
 <translation id="357889014807611375">měřená Wi-Fi</translation>
 <translation id="3583278742022654445">Signál je slabý. Zkuste se přesunout blíže ke zdroji signálu Wi-Fi.</translation>
 <translation id="3595596368722241419">Baterie je nabitá</translation>
+<translation id="3603829704940252505">Avatar</translation>
 <translation id="360565022852130722">Síť Wi-Fi je zabezpečena slabým protokolem WEP 802.1x</translation>
 <translation id="3606583719724308068">Vysoká latence připojení k webům HTTPS</translation>
 <translation id="3689839747745352263">Test <ph name="TEST_NAME" /></translation>
@@ -422,6 +423,7 @@
 <translation id="6905724422583748843">Zpět na stránku <ph name="PAGE_NAME" /></translation>
 <translation id="6910312834584889076">Kryt skeneru je otevřený. Zavřete kryt a zkuste to znovu.</translation>
 <translation id="6911383237894364323">Nelze se připojit k mediálním serverům</translation>
+<translation id="6935486296377631201">Spořič obrazovky</translation>
 <translation id="6957231940976260713">Název služby</translation>
 <translation id="6961170852793647506">Začněte položením dokumentu na skener</translation>
 <translation id="6965382102122355670">OK</translation>
@@ -486,7 +488,6 @@
 <translation id="7763470514545477072">Shoda přípon domén</translation>
 <translation id="7769672763586021400">ID modelu</translation>
 <translation id="7784116172884276937">Nejsou nastaveny žádné servery DNS</translation>
-<translation id="7786540085520432425">Při aktualizaci můžete okno minimalizovat, ale zařízení neodpojujte. Aktualizace může trvat několik minut a zařízení během ní nemusí fungovat.</translation>
 <translation id="780301667611848630">Ne, děkuji</translation>
 <translation id="7805768142964895445">Stav</translation>
 <translation id="7819857487979277519">PSK (WPA nebo RSN)</translation>
diff --git a/chromeos/strings/chromeos_strings_da.xtb b/chromeos/strings/chromeos_strings_da.xtb
index 757a62512..a919dc0 100644
--- a/chromeos/strings/chromeos_strings_da.xtb
+++ b/chromeos/strings/chromeos_strings_da.xtb
@@ -172,6 +172,7 @@
 <translation id="357889014807611375">forbrugsafregnet Wi-Fi</translation>
 <translation id="3583278742022654445">Svag signalstyrke. Prøv at rykke tættere på kilden til Wi-Fi-signalet.</translation>
 <translation id="3595596368722241419">Batteri helt opladet</translation>
+<translation id="3603829704940252505">Avatar</translation>
 <translation id="360565022852130722">Wi-Fi-netværket er beskyttet med den svage protokol WEP 802.1x</translation>
 <translation id="3606583719724308068">Stor forsinkelse til HTTPS-websites</translation>
 <translation id="3689839747745352263">Testen <ph name="TEST_NAME" /></translation>
@@ -421,6 +422,7 @@
 <translation id="6905724422583748843">Tilbage til <ph name="PAGE_NAME" /></translation>
 <translation id="6910312834584889076">Scannerens er åben. Luk den, og prøv igen.</translation>
 <translation id="6911383237894364323">Der kunne ikke oprettes forbindelse til medieservere</translation>
+<translation id="6935486296377631201">Pauseskærm</translation>
 <translation id="6957231940976260713">Tjenestens navn</translation>
 <translation id="6961170852793647506">Kom godt i gang ved at placere dit dokument i scanneren</translation>
 <translation id="6965382102122355670">OK</translation>
@@ -485,7 +487,6 @@
 <translation id="7763470514545477072">Match af domænesuffiks</translation>
 <translation id="7769672763586021400">Model-id</translation>
 <translation id="7784116172884276937">Der er ikke konfigureret nogen DNS-servere</translation>
-<translation id="7786540085520432425">Du kan minimere vinduet under opdateringen, men du må ikke frakoble din enhed. Dette kan tage nogle få minutter, og din enhed fungerer muligvis ikke under opdateringen</translation>
 <translation id="780301667611848630">Nej tak</translation>
 <translation id="7805768142964895445">Status</translation>
 <translation id="7819857487979277519">PSK (WPA eller RSN)</translation>
diff --git a/chromeos/strings/chromeos_strings_de.xtb b/chromeos/strings/chromeos_strings_de.xtb
index f066f76a..d6fd448 100644
--- a/chromeos/strings/chromeos_strings_de.xtb
+++ b/chromeos/strings/chromeos_strings_de.xtb
@@ -172,6 +172,7 @@
 <translation id="357889014807611375">Kostenpflichtiges WLAN</translation>
 <translation id="3583278742022654445">Schwaches Signal. Gehen Sie näher an die Quelle des WLAN-Signals heran.</translation>
 <translation id="3595596368722241419">Akku voll</translation>
+<translation id="3603829704940252505">Avatar</translation>
 <translation id="360565022852130722">Das WLAN ist mit dem schwachen Protokoll WEP 802.1x gesichert</translation>
 <translation id="3606583719724308068">Hohe Latenz zu HTTPS-Websites</translation>
 <translation id="3689839747745352263"><ph name="TEST_NAME" /> – Test</translation>
@@ -422,6 +423,7 @@
 <translation id="6905724422583748843">Zurück zu <ph name="PAGE_NAME" /></translation>
 <translation id="6910312834584889076">Die Abdeckung des Scanners ist offen. Schließen Sie sie und versuchen Sie es noch einmal.</translation>
 <translation id="6911383237894364323">Verbindung zu Medienservern kann nicht hergestellt werden</translation>
+<translation id="6935486296377631201">Bildschirmschoner</translation>
 <translation id="6957231940976260713">Name des Dienstes</translation>
 <translation id="6961170852793647506">Legen Sie zuerst das Dokument in den Scanner</translation>
 <translation id="6965382102122355670">Ok</translation>
@@ -486,7 +488,6 @@
 <translation id="7763470514545477072">Domain-Suffix stimmt überein</translation>
 <translation id="7769672763586021400">Modell-ID</translation>
 <translation id="7784116172884276937">Es sind keine DNS-Server eingerichtet</translation>
-<translation id="7786540085520432425">Während der Aktualisierung können Sie das Fenster minimieren, aber das Gerät muss an den Strom angeschlossen bleiben. Die Aktualisierung kann einige Minuten dauern – während dieser Zeit funktioniert das Gerät möglicherweise nicht.</translation>
 <translation id="780301667611848630">Kein Interesse</translation>
 <translation id="7805768142964895445">Status</translation>
 <translation id="7819857487979277519">PSK (WPA oder RSN)</translation>
diff --git a/chromeos/strings/chromeos_strings_el.xtb b/chromeos/strings/chromeos_strings_el.xtb
index 689ff5b7..5ebc120a 100644
--- a/chromeos/strings/chromeos_strings_el.xtb
+++ b/chromeos/strings/chromeos_strings_el.xtb
@@ -488,7 +488,6 @@
 <translation id="7763470514545477072">Αντιστοιχία επιθήματος τομέα</translation>
 <translation id="7769672763586021400">Αναγνωριστικό μοντέλου</translation>
 <translation id="7784116172884276937">Δεν έχουν ρυθμιστεί διακομιστές DNS.</translation>
-<translation id="7786540085520432425">Κατά την ενημέρωση, μπορείτε να ελαχιστοποιήσετε το παράθυρο αλλά μην αποσυνδέετε τη συσκευή σας. Αυτό μπορεί να διαρκέσει μερικά λεπτά και η συσκευή σας ενδέχεται να μην λειτουργεί κατά τη διάρκεια αυτής της ενημέρωσης</translation>
 <translation id="780301667611848630">Όχι, ευχαριστώ</translation>
 <translation id="7805768142964895445">Κατάσταση</translation>
 <translation id="7819857487979277519">PSK (WPA ή RSN)</translation>
diff --git a/chromeos/strings/chromeos_strings_en-GB.xtb b/chromeos/strings/chromeos_strings_en-GB.xtb
index f224738..b23a390 100644
--- a/chromeos/strings/chromeos_strings_en-GB.xtb
+++ b/chromeos/strings/chromeos_strings_en-GB.xtb
@@ -488,7 +488,6 @@
 <translation id="7763470514545477072">Domain suffix match</translation>
 <translation id="7769672763586021400">Model ID</translation>
 <translation id="7784116172884276937">No DNS servers are set up</translation>
-<translation id="7786540085520432425">While updating, you can minimise window but do not unplug your device. This may take a few minutes and your device might not work during this update</translation>
 <translation id="780301667611848630">No, thanks</translation>
 <translation id="7805768142964895445">Status</translation>
 <translation id="7819857487979277519">PSK (WPA or RSN)</translation>
diff --git a/chromeos/strings/chromeos_strings_es-419.xtb b/chromeos/strings/chromeos_strings_es-419.xtb
index e616b987..1a2d1d8 100644
--- a/chromeos/strings/chromeos_strings_es-419.xtb
+++ b/chromeos/strings/chromeos_strings_es-419.xtb
@@ -172,6 +172,7 @@
 <translation id="357889014807611375">Wi-Fi de uso medido</translation>
 <translation id="3583278742022654445">La intensidad de la señal es débil. Intenta acercarte a la fuente de la señal Wi-Fi.</translation>
 <translation id="3595596368722241419">Batería completa</translation>
+<translation id="3603829704940252505">Avatar</translation>
 <translation id="360565022852130722">la red Wi-Fi está protegida con el protocolo WEP 802.1x (poco seguro)</translation>
 <translation id="3606583719724308068">Alta latencia de los sitios web HTTPS</translation>
 <translation id="3689839747745352263">Prueba de <ph name="TEST_NAME" /></translation>
@@ -422,6 +423,7 @@
 <translation id="6905724422583748843">Volver a <ph name="PAGE_NAME" /></translation>
 <translation id="6910312834584889076">La tapa del escáner está abierta. Ciérrala y vuelve a intentarlo.</translation>
 <translation id="6911383237894364323">No es posible conectarse a los servidores de medios</translation>
+<translation id="6935486296377631201">Protector de pantalla</translation>
 <translation id="6957231940976260713">Nombre del servicio</translation>
 <translation id="6961170852793647506">Para comenzar, coloca tu documento en el escáner.</translation>
 <translation id="6965382102122355670">Aceptar</translation>
@@ -486,7 +488,6 @@
 <translation id="7763470514545477072">Coincidencia del sufijo de dominio</translation>
 <translation id="7769672763586021400">ID del modelo</translation>
 <translation id="7784116172884276937">No hay ningún servidor DNS configurado</translation>
-<translation id="7786540085520432425">Durante la actualización, puedes minimizar la ventana, pero no desconectes el dispositivo. Es posible que este proceso demore unos minutos y que el dispositivo no funcione durante esta actualización</translation>
 <translation id="780301667611848630">No, gracias</translation>
 <translation id="7805768142964895445">Estado</translation>
 <translation id="7819857487979277519">PSK (WPA o RSN)</translation>
diff --git a/chromeos/strings/chromeos_strings_es.xtb b/chromeos/strings/chromeos_strings_es.xtb
index 893eecb..5bd053e 100644
--- a/chromeos/strings/chromeos_strings_es.xtb
+++ b/chromeos/strings/chromeos_strings_es.xtb
@@ -172,6 +172,7 @@
 <translation id="357889014807611375">Wi‑Fi de uso medido</translation>
 <translation id="3583278742022654445">Intensidad de la señal débil. Acércate a la fuente de la señal Wi-Fi.</translation>
 <translation id="3595596368722241419">Batería al máximo</translation>
+<translation id="3603829704940252505">Avatar</translation>
 <translation id="360565022852130722">La red Wi-Fi está protegida con un protocolo poco seguro WEP 802.1x</translation>
 <translation id="3606583719724308068">Latencia alta a sitios web HTTPS</translation>
 <translation id="3689839747745352263">Prueba <ph name="TEST_NAME" /></translation>
@@ -421,6 +422,7 @@
 <translation id="6905724422583748843">Volver a <ph name="PAGE_NAME" /></translation>
 <translation id="6910312834584889076">La cubierta del escáner está abierta. Ciérrala y vuelve a intentarlo.</translation>
 <translation id="6911383237894364323">No se ha podido conectar con los servidores multimedia</translation>
+<translation id="6935486296377631201">Salvapantallas</translation>
 <translation id="6957231940976260713">Nombre de servicio</translation>
 <translation id="6961170852793647506">Para empezar, coloca el documento en el escáner</translation>
 <translation id="6965382102122355670">Aceptar</translation>
@@ -485,7 +487,6 @@
 <translation id="7763470514545477072">Coincidencia de sufijo de dominio</translation>
 <translation id="7769672763586021400">ID de modelo</translation>
 <translation id="7784116172884276937">No hay servidores DNS configurados</translation>
-<translation id="7786540085520432425">Mientras se actualiza el dispositivo, puedes minimizar la ventana, pero no lo desenchufes. Este proceso puede durar unos minutos y es posible que el dispositivo no funcione durante la actualización.</translation>
 <translation id="780301667611848630">No, gracias</translation>
 <translation id="7805768142964895445">Estado</translation>
 <translation id="7819857487979277519">PSK (WPA o RSN)</translation>
diff --git a/chromeos/strings/chromeos_strings_et.xtb b/chromeos/strings/chromeos_strings_et.xtb
index f071ad5f..0255ee5 100644
--- a/chromeos/strings/chromeos_strings_et.xtb
+++ b/chromeos/strings/chromeos_strings_et.xtb
@@ -172,6 +172,7 @@
 <translation id="357889014807611375">mahupõhine WiFi</translation>
 <translation id="3583278742022654445">Signaal on nõrk. Liikuge WiFi-signaali allikale lähemale.</translation>
 <translation id="3595596368722241419">Aku on täis</translation>
+<translation id="3603829704940252505">Avatar</translation>
 <translation id="360565022852130722">WiFi-võrk on kaitstud nõrga protokolliga (WEP 802.1x)</translation>
 <translation id="3606583719724308068">Pikk latentsusaeg HTTPS-veebisaitide puhul</translation>
 <translation id="3689839747745352263">Test <ph name="TEST_NAME" /></translation>
@@ -422,6 +423,7 @@
 <translation id="6905724422583748843">Tagasi lehele <ph name="PAGE_NAME" /></translation>
 <translation id="6910312834584889076">Skanneri kaas on avatud. Sulgege kaas ja proovige uuesti.</translation>
 <translation id="6911383237894364323">Meediaserveritega ei õnnestu ühendust luua</translation>
+<translation id="6935486296377631201">Ekraanisäästja</translation>
 <translation id="6957231940976260713">Teenuse nimi</translation>
 <translation id="6961170852793647506">Alustamiseks asetage dokument skannerisse</translation>
 <translation id="6965382102122355670">OK</translation>
@@ -486,7 +488,6 @@
 <translation id="7763470514545477072">Domeenisufiksi vaste</translation>
 <translation id="7769672763586021400">Mudeli ID</translation>
 <translation id="7784116172884276937">Seadistatud pole ühtegi DNS-serverit</translation>
-<translation id="7786540085520432425">Võite värskendamise ajal akna minimeerida, kuid ärge eemaldage seadet. See võib võtta mõne minuti ja teie seade ei pruugi värskendamise ajal toimida.</translation>
 <translation id="780301667611848630">Ei, aitäh</translation>
 <translation id="7805768142964895445">Olek</translation>
 <translation id="7819857487979277519">PSK (WPA või RSN)</translation>
diff --git a/chromeos/strings/chromeos_strings_eu.xtb b/chromeos/strings/chromeos_strings_eu.xtb
index 4a62db1f..66e001e 100644
--- a/chromeos/strings/chromeos_strings_eu.xtb
+++ b/chromeos/strings/chromeos_strings_eu.xtb
@@ -488,7 +488,6 @@
 <translation id="7763470514545477072">Domeinuko atzizkiaren bat-etortzea</translation>
 <translation id="7769672763586021400">Modeloaren IDa</translation>
 <translation id="7784116172884276937">Ez dago DNS zerbitzaririk konfiguratuta</translation>
-<translation id="7786540085520432425">Gailua eguneratu bitartean, leihoa minimiza dezakezu, baina ez deskonektatu gailua. Agian minutu batzuk beharko dira, eta baliteke gailuak ez funtzionatzea eguneratze-prozesua abian den bitartean.</translation>
 <translation id="780301667611848630">Ez, eskerrik asko</translation>
 <translation id="7805768142964895445">Egoera</translation>
 <translation id="7819857487979277519">PSK (WPA edo RSN)</translation>
diff --git a/chromeos/strings/chromeos_strings_fa.xtb b/chromeos/strings/chromeos_strings_fa.xtb
index b1138f9e..0e758a0 100644
--- a/chromeos/strings/chromeos_strings_fa.xtb
+++ b/chromeos/strings/chromeos_strings_fa.xtb
@@ -488,7 +488,6 @@
 <translation id="7763470514545477072">مطابقت پسوند دامنه</translation>
 <translation id="7769672763586021400">شناسه مدل</translation>
 <translation id="7784116172884276937">هیچ سرور سانادی راه‌اندازی نشده است</translation>
-<translation id="7786540085520432425">درحین به‌روزرسانی، می‌توانید پنجره را کوچک کنید اما اتصال دستگاه را قطع نکنید. این کار ممکن است چند دقیقه طول بکشد و شاید دستگاهتان درطول این به‌روزرسانی کار نکند</translation>
 <translation id="780301667611848630">نه متشکرم</translation>
 <translation id="7805768142964895445">وضعیت</translation>
 <translation id="7819857487979277519">‏PSK (WPA یا RSN)</translation>
diff --git a/chromeos/strings/chromeos_strings_fi.xtb b/chromeos/strings/chromeos_strings_fi.xtb
index 94ba61d..b4d5b7c 100644
--- a/chromeos/strings/chromeos_strings_fi.xtb
+++ b/chromeos/strings/chromeos_strings_fi.xtb
@@ -172,6 +172,7 @@
 <translation id="357889014807611375">maksullinen Wi-Fi</translation>
 <translation id="3583278742022654445">Heikko signaalin voimakkuus. Kokeile siirtyä lähemmäs Wi-Fi-signaalin lähdettä.</translation>
 <translation id="3595596368722241419">Akku täynnä</translation>
+<translation id="3603829704940252505">Avatar</translation>
 <translation id="360565022852130722">Wi-Fi-verkko on suojattu heikolla WEP 802.1x -protokollalla</translation>
 <translation id="3606583719724308068">Pitkä viive HTTPS-sivustoille</translation>
 <translation id="3689839747745352263">Testi: <ph name="TEST_NAME" /></translation>
@@ -422,6 +423,7 @@
 <translation id="6905724422583748843">Palaa: <ph name="PAGE_NAME" /></translation>
 <translation id="6910312834584889076">Skannerin kansi on auki. Sulje kansi ja yritä uudelleen.</translation>
 <translation id="6911383237894364323">Mediapalvelimiin ei saada yhteyttä</translation>
+<translation id="6935486296377631201">Näytönsäästäjä</translation>
 <translation id="6957231940976260713">Palvelun nimi</translation>
 <translation id="6961170852793647506">Aloita asettamalla dokumentti skanneriin</translation>
 <translation id="6965382102122355670">OK</translation>
@@ -486,7 +488,6 @@
 <translation id="7763470514545477072">Verkkotunnuksen päätteen vastaavuus</translation>
 <translation id="7769672763586021400">Mallitunnus</translation>
 <translation id="7784116172884276937">DNS-palvelimia ei ole määritetty</translation>
-<translation id="7786540085520432425">Voit pienentää ikkunan päivittämisen yhteydessä, mutta älä irrota laitteen johtoa. Tämä voi kestää muutaman minuutin, ja laitteesi ei ehkä toimi päivityksen aikana</translation>
 <translation id="780301667611848630">Ei kiitos</translation>
 <translation id="7805768142964895445">Tila</translation>
 <translation id="7819857487979277519">PSK (WPA tai RSN)</translation>
diff --git a/chromeos/strings/chromeos_strings_fil.xtb b/chromeos/strings/chromeos_strings_fil.xtb
index 812e1b6..78610c05 100644
--- a/chromeos/strings/chromeos_strings_fil.xtb
+++ b/chromeos/strings/chromeos_strings_fil.xtb
@@ -488,7 +488,6 @@
 <translation id="7763470514545477072">Pagtugma sa domain suffix</translation>
 <translation id="7769672763586021400">Model ID</translation>
 <translation id="7784116172884276937">Walang naka-set up na DNS server</translation>
-<translation id="7786540085520432425">Habang ina-update, puwede mong i-minimize ang window pero huwag i-unplug ang iyong device. Posible itong tumagal nang ilang minuto at posibleng hindi gumana ang iyong device sa panahon ng pag-update na ito</translation>
 <translation id="780301667611848630">Hindi salamat</translation>
 <translation id="7805768142964895445">Katayuan</translation>
 <translation id="7819857487979277519">PSK (WPA o RSN)</translation>
diff --git a/chromeos/strings/chromeos_strings_fr-CA.xtb b/chromeos/strings/chromeos_strings_fr-CA.xtb
index fb33689..3b65e19 100644
--- a/chromeos/strings/chromeos_strings_fr-CA.xtb
+++ b/chromeos/strings/chromeos_strings_fr-CA.xtb
@@ -486,7 +486,6 @@
 <translation id="7763470514545477072">Correspondance du suffixe de domaine</translation>
 <translation id="7769672763586021400">Identifiant de modèle</translation>
 <translation id="7784116172884276937">Aucun serveur DNS n'est configuré</translation>
-<translation id="7786540085520432425">Pendant la mise à jour, vous pouvez réduire la fenêtre, mais ne débranchez pas votre appareil. Cette opération peut prendre quelques minutes, et votre appareil peut ne pas fonctionner pendant cette mise à jour</translation>
 <translation id="780301667611848630">Non merci</translation>
 <translation id="7805768142964895445">État</translation>
 <translation id="7819857487979277519">PSK (WPA ou RSN)</translation>
diff --git a/chromeos/strings/chromeos_strings_fr.xtb b/chromeos/strings/chromeos_strings_fr.xtb
index afdf227..9cc5619 100644
--- a/chromeos/strings/chromeos_strings_fr.xtb
+++ b/chromeos/strings/chromeos_strings_fr.xtb
@@ -172,6 +172,7 @@
 <translation id="357889014807611375">Wi-Fi facturé à l'usage</translation>
 <translation id="3583278742022654445">Signal faible. Rapprochez-vous de la source du signal Wi-Fi.</translation>
 <translation id="3595596368722241419">Batterie pleine</translation>
+<translation id="3603829704940252505">Avatar</translation>
 <translation id="360565022852130722">Le réseau Wi-Fi est protégé par le protocole peu sécurisé WEP 802.1x</translation>
 <translation id="3606583719724308068">Latence élevée avec les sites HTTPS</translation>
 <translation id="3689839747745352263">Test de <ph name="TEST_NAME" /></translation>
@@ -422,6 +423,7 @@
 <translation id="6905724422583748843">Revenir à <ph name="PAGE_NAME" /></translation>
 <translation id="6910312834584889076">Le capot du scanner est ouvert. Refermez-le, puis réessayez.</translation>
 <translation id="6911383237894364323">Impossible de se connecter aux serveurs multimédias</translation>
+<translation id="6935486296377631201">Économiseur d'écran</translation>
 <translation id="6957231940976260713">Nom du service</translation>
 <translation id="6961170852793647506">Pour commencer, placez votre document sur le scanner</translation>
 <translation id="6965382102122355670">OK</translation>
@@ -486,7 +488,6 @@
 <translation id="7763470514545477072">Correspondance du suffixe de domaine</translation>
 <translation id="7769672763586021400">ID du modèle</translation>
 <translation id="7784116172884276937">Aucun serveur DNS configuré</translation>
-<translation id="7786540085520432425">Pendant la mise à jour, vous pouvez réduire la fenêtre, mais ne débranchez pas votre appareil. Cela peut prendre quelques minutes, durant lesquelles le fonctionnement de l'appareil est compromis.</translation>
 <translation id="780301667611848630">Non merci</translation>
 <translation id="7805768142964895445">État</translation>
 <translation id="7819857487979277519">PSK (WPA ou RSN)</translation>
diff --git a/chromeos/strings/chromeos_strings_gl.xtb b/chromeos/strings/chromeos_strings_gl.xtb
index e10d25c..1c12f03 100644
--- a/chromeos/strings/chromeos_strings_gl.xtb
+++ b/chromeos/strings/chromeos_strings_gl.xtb
@@ -488,7 +488,6 @@
 <translation id="7763470514545477072">Coincidencia do sufixo de dominio</translation>
 <translation id="7769672763586021400">ID do modelo</translation>
 <translation id="7784116172884276937">Non hai ningún servidor DNS configurado</translation>
-<translation id="7786540085520432425">Mentres se realiza a actualización, podes minimizar a ventá, pero non desconectes o dispositivo. O proceso da actualización pode tardar uns minutos, durante os cales pode que non funcione o dispositivo</translation>
 <translation id="780301667611848630">Non, grazas</translation>
 <translation id="7805768142964895445">Estado</translation>
 <translation id="7819857487979277519">PSK (WPA ou RSN)</translation>
diff --git a/chromeos/strings/chromeos_strings_gu.xtb b/chromeos/strings/chromeos_strings_gu.xtb
index 5a0f209..1f3652f 100644
--- a/chromeos/strings/chromeos_strings_gu.xtb
+++ b/chromeos/strings/chromeos_strings_gu.xtb
@@ -487,7 +487,6 @@
 <translation id="7763470514545477072">ડોમેન સફિક્સનો મેળ</translation>
 <translation id="7769672763586021400">મોડલ ID</translation>
 <translation id="7784116172884276937">કોઈપણ DNS સર્વરનું સેટઅપ કરવામાં આવ્યું નથી</translation>
-<translation id="7786540085520432425">અપડેટ કરતી વખતે તમે વિન્ડોનું કદ નાનું કરી શકો પણ તમારા ડિવાઇસને પ્લગમાંથી કાઢશો નહીં. આમાં થોડી મિનિટ લાગી શકે છે અને આ અપડેટ દરમિયાન તમારું ડિવાઇસ ન ચાલે તેમ બની શકે</translation>
 <translation id="780301667611848630">નહીં, આભાર</translation>
 <translation id="7805768142964895445">સ્થિતિ</translation>
 <translation id="7819857487979277519">PSK (WPA અથવા RSN)</translation>
diff --git a/chromeos/strings/chromeos_strings_hi.xtb b/chromeos/strings/chromeos_strings_hi.xtb
index 0bd2ff1..71d6d29 100644
--- a/chromeos/strings/chromeos_strings_hi.xtb
+++ b/chromeos/strings/chromeos_strings_hi.xtb
@@ -488,7 +488,6 @@
 <translation id="7763470514545477072">डोमेन सफ़िक्स से मिलते-जुलते</translation>
 <translation id="7769672763586021400">मॉडल आईडी</translation>
 <translation id="7784116172884276937">कोई भी डीएनएस सर्वर सेट अप नहीं है</translation>
-<translation id="7786540085520432425">अपडेट करते समय, विंडो को छोटा किया जा सकता है, लेकिन डिवाइस को अनप्लग न करें. इसमें कुछ समय लग सकता है. साथ ही, हो सकता है कि अपडेट होते समय आपका डिवाइस काम न करे</translation>
 <translation id="780301667611848630">नहीं, रहने दें</translation>
 <translation id="7805768142964895445">स्थिति</translation>
 <translation id="7819857487979277519">PSK (WPA या RSN)</translation>
diff --git a/chromeos/strings/chromeos_strings_hr.xtb b/chromeos/strings/chromeos_strings_hr.xtb
index f10ca029..265d9f5 100644
--- a/chromeos/strings/chromeos_strings_hr.xtb
+++ b/chromeos/strings/chromeos_strings_hr.xtb
@@ -488,7 +488,6 @@
 <translation id="7763470514545477072">Podudaranje domenskog nastavka</translation>
 <translation id="7769672763586021400">ID modela</translation>
 <translation id="7784116172884276937">Nije postavljen nijedan DNS poslužitelj</translation>
-<translation id="7786540085520432425">Tijekom ažuriranja možete smanjiti prozor, ali ne isključujte uređaj. Ažuriranje može potrajati nekoliko minuta i za to vrijeme uređaj možda neće funkcionirati</translation>
 <translation id="780301667611848630">Ne, hvala</translation>
 <translation id="7805768142964895445">Status</translation>
 <translation id="7819857487979277519">PSK (WPA ili RSN)</translation>
diff --git a/chromeos/strings/chromeos_strings_hu.xtb b/chromeos/strings/chromeos_strings_hu.xtb
index dcbf43e..db143378 100644
--- a/chromeos/strings/chromeos_strings_hu.xtb
+++ b/chromeos/strings/chromeos_strings_hu.xtb
@@ -172,6 +172,7 @@
 <translation id="357889014807611375">mért adatforgalmú Wi-Fi</translation>
 <translation id="3583278742022654445">Gyenge jelerősség. Próbáljon közelebb helyezkedni a Wi-Fi-jelforráshoz.</translation>
 <translation id="3595596368722241419">Akkumulátor feltöltve</translation>
+<translation id="3603829704940252505">Avatar</translation>
 <translation id="360565022852130722">A Wi-Fi-hálózat gyenge protokollal (WEP 802.1x) van biztosítva</translation>
 <translation id="3606583719724308068">Hosszú a várakozási idő a HTTPS-protokollt használó webhelyekhez való csatlakozáskor</translation>
 <translation id="3689839747745352263">Teszt: <ph name="TEST_NAME" /></translation>
@@ -422,6 +423,7 @@
 <translation id="6905724422583748843">Vissza ide: <ph name="PAGE_NAME" /></translation>
 <translation id="6910312834584889076">A szkenner fedele nyitva van. Zárja le, és próbálja újra.</translation>
 <translation id="6911383237894364323">Nem lehet csatlakozni a médiaszerverekhez.</translation>
+<translation id="6935486296377631201">Képernyővédő</translation>
 <translation id="6957231940976260713">Szolgáltatás neve</translation>
 <translation id="6961170852793647506">A kezdéshez helyezze dokumentumát a szkennerbe</translation>
 <translation id="6965382102122355670">OK</translation>
@@ -486,7 +488,6 @@
 <translation id="7763470514545477072">Domainvégződés – egyezés</translation>
 <translation id="7769672763586021400">Modellazonosító</translation>
 <translation id="7784116172884276937">Nincsenek beállítva DNS-szerverek</translation>
-<translation id="7786540085520432425">Frissítés közben kis méretre állíthatja az ablakot, de ne húzza ki az eszközt. Ez eltarthat néhány percig, és előfordulhat, hogy az eszköze nem fog működni a frissítés közben</translation>
 <translation id="780301667611848630">Köszönöm, nem</translation>
 <translation id="7805768142964895445">Állapot</translation>
 <translation id="7819857487979277519">PSK (WPA vagy RSN)</translation>
diff --git a/chromeos/strings/chromeos_strings_hy.xtb b/chromeos/strings/chromeos_strings_hy.xtb
index 6f30322e..ea0e6a7 100644
--- a/chromeos/strings/chromeos_strings_hy.xtb
+++ b/chromeos/strings/chromeos_strings_hy.xtb
@@ -488,7 +488,6 @@
 <translation id="7763470514545477072">Համընկնում տիրույթի վերջածանցի հետ</translation>
 <translation id="7769672763586021400">Մոդելի ID-ն</translation>
 <translation id="7784116172884276937">DNS սերվերներ կարգավորված չեն</translation>
-<translation id="7786540085520432425">Թարմացման ընթացքում կարող եք փոքրացնել պատուհանը, բայց սարքը թողեք միացված։ Սա կարող է մի քանի րոպե տևել։ Հնարավոր է՝ սարքն այս ընթացքում չաշխատի։</translation>
 <translation id="780301667611848630">Ոչ</translation>
 <translation id="7805768142964895445">Կարգավիճակ</translation>
 <translation id="7819857487979277519">PSK (WPA կամ RSN)</translation>
diff --git a/chromeos/strings/chromeos_strings_id.xtb b/chromeos/strings/chromeos_strings_id.xtb
index 8f961c6..c0023f8e4 100644
--- a/chromeos/strings/chromeos_strings_id.xtb
+++ b/chromeos/strings/chromeos_strings_id.xtb
@@ -172,6 +172,7 @@
 <translation id="357889014807611375">Wi-Fi berbayar</translation>
 <translation id="3583278742022654445">Kekuatan sinyal lemah. Coba mendekat ke sumber sinyal Wi-Fi.</translation>
 <translation id="3595596368722241419">Baterai penuh</translation>
+<translation id="3603829704940252505">Avatar</translation>
 <translation id="360565022852130722">Jaringan Wi-Fi diamankan dengan protokol WEP 802.1x yang lemah</translation>
 <translation id="3606583719724308068">Latensi tinggi untuk situs HTTPS</translation>
 <translation id="3689839747745352263">Uji <ph name="TEST_NAME" /></translation>
@@ -422,6 +423,7 @@
 <translation id="6905724422583748843">Kembali ke <ph name="PAGE_NAME" /></translation>
 <translation id="6910312834584889076">Penutup pemindai terbuka. Tutup penutup dan coba lagi.</translation>
 <translation id="6911383237894364323">Tidak dapat terhubung ke server media</translation>
+<translation id="6935486296377631201">Screensaver</translation>
 <translation id="6957231940976260713">Nama layanan</translation>
 <translation id="6961170852793647506">Untuk memulai, letakkan dokumen Anda pada pemindai</translation>
 <translation id="6965382102122355670">Oke</translation>
@@ -486,7 +488,6 @@
 <translation id="7763470514545477072">Kecocokan suffix domain</translation>
 <translation id="7769672763586021400">ID Model</translation>
 <translation id="7784116172884276937">Tidak ada server DNS yang disiapkan</translation>
-<translation id="7786540085520432425">Selama mengupdate, Anda dapat menyembunyikan jendela, tetapi jangan mencabut perangkat. Proses ini mungkin perlu waktu beberapa menit dan perangkat mungkin tidak berfungsi selama update ini</translation>
 <translation id="780301667611848630">Lain kali</translation>
 <translation id="7805768142964895445">Status</translation>
 <translation id="7819857487979277519">PSK (WPA atau RSN)</translation>
diff --git a/chromeos/strings/chromeos_strings_is.xtb b/chromeos/strings/chromeos_strings_is.xtb
index 5ef0f1a..0033bca 100644
--- a/chromeos/strings/chromeos_strings_is.xtb
+++ b/chromeos/strings/chromeos_strings_is.xtb
@@ -172,6 +172,7 @@
 <translation id="357889014807611375">Wi-Fi net með mælda notkun</translation>
 <translation id="3583278742022654445">Lítill sendistyrkur. Prófaðu að færa þig nær WiFi-sendibúnaðinum.</translation>
 <translation id="3595596368722241419">Rafhlaða fullhlaðin</translation>
+<translation id="3603829704940252505">Notandamynd</translation>
 <translation id="360565022852130722">Wi-Fi netið er varið með veikum samskiptareglum, WEP 802.1x</translation>
 <translation id="3606583719724308068">Langur biðtími eftir HTTPS-vefsvæðum</translation>
 <translation id="3689839747745352263"><ph name="TEST_NAME" /> prófun</translation>
@@ -422,6 +423,7 @@
 <translation id="6905724422583748843">Til baka í <ph name="PAGE_NAME" /></translation>
 <translation id="6910312834584889076">Lokið á skannanum er opið. Lokaðu skannanum og reyndu aftur.</translation>
 <translation id="6911383237894364323">Ekki er hægt að tengjast efnisþjónum</translation>
+<translation id="6935486296377631201">Skjávari</translation>
 <translation id="6957231940976260713">Heiti þjónustu</translation>
 <translation id="6961170852793647506">Settu skjalið á skannann til að hefjast handa</translation>
 <translation id="6965382102122355670">Í lagi</translation>
@@ -486,7 +488,6 @@
 <translation id="7763470514545477072">Samsvarandi lénsending</translation>
 <translation id="7769672763586021400">Auðkenni gerðar</translation>
 <translation id="7784116172884276937">Engir DNS-þjónar eru uppsettir</translation>
-<translation id="7786540085520432425">Þú getur minnkað gluggann á meðan uppfærslan stendur yfir en ekki taka tækið úr sambandi. Þetta gæti tekið nokkrar mínútur og tækið virkar hugsanlega ekki á meðan uppfærslan stendur yfir</translation>
 <translation id="780301667611848630">Nei, takk</translation>
 <translation id="7805768142964895445">Staða</translation>
 <translation id="7819857487979277519">PSK (WPA eða RSN)</translation>
diff --git a/chromeos/strings/chromeos_strings_it.xtb b/chromeos/strings/chromeos_strings_it.xtb
index 6715bdb..503a8af 100644
--- a/chromeos/strings/chromeos_strings_it.xtb
+++ b/chromeos/strings/chromeos_strings_it.xtb
@@ -172,6 +172,7 @@
 <translation id="357889014807611375">Wi-Fi a consumo</translation>
 <translation id="3583278742022654445">Intensità segnale debole. Prova ad avvicinarti alla fonte del segnale Wi-Fi.</translation>
 <translation id="3595596368722241419">Batteria carica</translation>
+<translation id="3603829704940252505">Avatar</translation>
 <translation id="360565022852130722">la rete Wi-Fi è protetta con un protocollo WEP 802.1x inefficace</translation>
 <translation id="3606583719724308068">Alta latenza a siti web HTTPS</translation>
 <translation id="3689839747745352263">Test <ph name="TEST_NAME" /></translation>
@@ -422,6 +423,7 @@
 <translation id="6905724422583748843">Torna a <ph name="PAGE_NAME" /></translation>
 <translation id="6910312834584889076">Il coperchio dello scanner è aperto. Chiudilo e riprova.</translation>
 <translation id="6911383237894364323">Impossibile connettersi ai server multimediali</translation>
+<translation id="6935486296377631201">Salvaschermo</translation>
 <translation id="6957231940976260713">Nome servizio</translation>
 <translation id="6961170852793647506">Per iniziare, posiziona il documento sullo scanner</translation>
 <translation id="6965382102122355670">OK</translation>
@@ -486,7 +488,6 @@
 <translation id="7763470514545477072">Corrispondenza suffisso di dominio</translation>
 <translation id="7769672763586021400">ID modello</translation>
 <translation id="7784116172884276937">Nessun server DNS configurato</translation>
-<translation id="7786540085520432425">Durante l'aggiornamento puoi ridurre a icona la finestra, ma non scollegare il dispositivo dall'alimentazione. Durante questa operazione, che potrebbe richiedere qualche minuto, il dispositivo potrebbe non funzionare.</translation>
 <translation id="780301667611848630">No grazie</translation>
 <translation id="7805768142964895445">Stato</translation>
 <translation id="7819857487979277519">PSK (WPA o RSN)</translation>
diff --git a/chromeos/strings/chromeos_strings_iw.xtb b/chromeos/strings/chromeos_strings_iw.xtb
index edd6d73..22dba83c 100644
--- a/chromeos/strings/chromeos_strings_iw.xtb
+++ b/chromeos/strings/chromeos_strings_iw.xtb
@@ -172,6 +172,7 @@
 <translation id="357889014807611375">‏Wi-Fi עם חיוב לפי שימוש בנתונים</translation>
 <translation id="3583278742022654445">‏עוצמת האות חלשה. כדאי להתקרב למקור של אות ה-Wi-Fi.</translation>
 <translation id="3595596368722241419">סוללה מלאה</translation>
+<translation id="3603829704940252505">דמות</translation>
 <translation id="360565022852130722">‏רשת ה-Wi-Fi מאובטחת בפרוטוקול WEP 802.1x חלש.</translation>
 <translation id="3606583719724308068">‏זמן אחזור ארוך לאתרי HTTPS</translation>
 <translation id="3689839747745352263">בדיקת <ph name="TEST_NAME" /></translation>
@@ -422,6 +423,7 @@
 <translation id="6905724422583748843">חזרה אל <ph name="PAGE_NAME" /></translation>
 <translation id="6910312834584889076">המכסה של הסורק פתוח. יש לסגור אותו ולנסות שוב.</translation>
 <translation id="6911383237894364323">לא ניתן להתחבר לשרתי מדיה</translation>
+<translation id="6935486296377631201">שומר מסך</translation>
 <translation id="6957231940976260713">שם שירות</translation>
 <translation id="6961170852793647506">כדי להתחיל, מניחים את המסמך על הסורק</translation>
 <translation id="6965382102122355670">אישור</translation>
@@ -486,7 +488,6 @@
 <translation id="7763470514545477072">התאמה של סיומות אתרים</translation>
 <translation id="7769672763586021400">מזהה דגם</translation>
 <translation id="7784116172884276937">‏לא הוגדרו שרתי DNS</translation>
-<translation id="7786540085520432425">אפשר למזער את החלון במהלך העדכון, אבל אין לנתק את המכשיר. הפעולה עשויה להימשך מספר דקות ויכול להיות שהמכשיר לא יפעל במהלך העדכון.</translation>
 <translation id="780301667611848630">לא תודה</translation>
 <translation id="7805768142964895445">סטטוס</translation>
 <translation id="7819857487979277519">‏PSK ‏(WPA או RSN)</translation>
diff --git a/chromeos/strings/chromeos_strings_ja.xtb b/chromeos/strings/chromeos_strings_ja.xtb
index 753d674b..bc86454 100644
--- a/chromeos/strings/chromeos_strings_ja.xtb
+++ b/chromeos/strings/chromeos_strings_ja.xtb
@@ -488,7 +488,6 @@
 <translation id="7763470514545477072">ドメイン サフィックス マッチ</translation>
 <translation id="7769672763586021400">モデル ID</translation>
 <translation id="7784116172884276937">DNS サーバーが設定されていません</translation>
-<translation id="7786540085520432425">更新中はウィンドウを最小化できますが、デバイスを電源から外さないようにしてください。この処理には数分かかることがあります。更新中、デバイスは動作しない可能性があります</translation>
 <translation id="780301667611848630">いいえ</translation>
 <translation id="7805768142964895445">ステータス</translation>
 <translation id="7819857487979277519">PSK(WPA または RSN)</translation>
diff --git a/chromeos/strings/chromeos_strings_ka.xtb b/chromeos/strings/chromeos_strings_ka.xtb
index 323b23b..5ecbf6f 100644
--- a/chromeos/strings/chromeos_strings_ka.xtb
+++ b/chromeos/strings/chromeos_strings_ka.xtb
@@ -53,6 +53,7 @@
 <translation id="1643449475550628585">ფონის სურათის ყოველდღიურად შეცვლა</translation>
 <translation id="1644574205037202324">ისტორია</translation>
 <translation id="1662989795263954667">გაჩერდა — მელანი გათავდა</translation>
+<translation id="1668469839109562275">ჩაშენებული VPN</translation>
 <translation id="1703835215927279855">Letter</translation>
 <translation id="1706391837335750954">DNS-ის მომგვარებლის არსებობა</translation>
 <translation id="1715359911173058521">სკანერთან კავშირის პრობლემაა. შეამოწმეთ ქსელის ან USB კავშირი და ცადეთ ხელახლა.</translation>
@@ -488,7 +489,6 @@
 <translation id="7763470514545477072">დომენის სუფიქსის დამთხვევა</translation>
 <translation id="7769672763586021400">მოდელის ID</translation>
 <translation id="7784116172884276937">DNS სერვერები არ არის დაყენებული</translation>
-<translation id="7786540085520432425">განახლების მსვლელობისას შეგიძლიათ ჩაკეცოთ ფანჯარა, თუმცა არ გამოაერთოთ მოწყობილობა ელკვების წყაროდან. აღნიშნულს რამდენიმე წუთი დასჭირდება, რა დროსაც თქვენმა მოწყობილობამ, შესაძლოა, არ იმუშაოს</translation>
 <translation id="780301667611848630">არა, მადლობთ</translation>
 <translation id="7805768142964895445">სტატუსი</translation>
 <translation id="7819857487979277519">PSK (WPA ან RSN)</translation>
diff --git a/chromeos/strings/chromeos_strings_kk.xtb b/chromeos/strings/chromeos_strings_kk.xtb
index 0463bd9..b874522 100644
--- a/chromeos/strings/chromeos_strings_kk.xtb
+++ b/chromeos/strings/chromeos_strings_kk.xtb
@@ -483,7 +483,6 @@
 <translation id="7763470514545477072">Домен суффиксі сәйкестігі</translation>
 <translation id="7769672763586021400">Үлгі идентификаторы</translation>
 <translation id="7784116172884276937">DNS серверлері реттелмеген.</translation>
-<translation id="7786540085520432425">Жаңарту кезінде терезені кішірейте аласыз, бірақ құрылғыны ажыратпаңыз. Процесс бірнеше минутқа созылып, ол кезде құрылғы жұмыс істемей қалуы мүмкін.</translation>
 <translation id="780301667611848630">Жоқ, рақмет</translation>
 <translation id="7805768142964895445">Күйі</translation>
 <translation id="7819857487979277519">PSK (WPA немесе RSN)</translation>
diff --git a/chromeos/strings/chromeos_strings_km.xtb b/chromeos/strings/chromeos_strings_km.xtb
index 1efeb68..af6daff 100644
--- a/chromeos/strings/chromeos_strings_km.xtb
+++ b/chromeos/strings/chromeos_strings_km.xtb
@@ -53,6 +53,7 @@
 <translation id="1643449475550628585">ប្ដូរផ្ទាំងរូបភាព​ជារៀងរាល់ថ្ងៃ</translation>
 <translation id="1644574205037202324">ប្រវត្តិ</translation>
 <translation id="1662989795263954667">បានឈប់ - អស់​ទឹកថ្នាំ</translation>
+<translation id="1668469839109562275">VPN ដែលភ្ជាប់​មកជាមួយស្រាប់</translation>
 <translation id="1703835215927279855">សំបុត្រ</translation>
 <translation id="1706391837335750954">កម្មវិធីបំប្លែង DNS បច្ចុប្បន្ន</translation>
 <translation id="1715359911173058521">មានបញ្ហា​ក្នុងការ​ភ្ជាប់ជាមួយ​ម៉ាស៊ីនស្កេន។ សូមពិនិត្យមើល​ការតភ្ជាប់ USB ឬបណ្ដាញ រួចព្យាយាម​ម្ដងទៀត។</translation>
@@ -487,7 +488,6 @@
 <translation id="7763470514545477072">ភាពត្រូវគ្នានៃ​កន្ទុយដែន</translation>
 <translation id="7769672763586021400">លេខសម្គាល់ម៉ូដែល</translation>
 <translation id="7784116172884276937">មិនបានរៀបចំម៉ាស៊ីនមេ DNS ទេ</translation>
-<translation id="7786540085520432425">នៅពេល​ដំឡើងកំណែ អ្នកអាចបង្រួម​វិនដូបាន ប៉ុន្តែ​កុំដកឌុយ​ឧបករណ៍​របស់អ្នក។ ការដំឡើងកំណែនេះ​អាចចំណាយពេល​ពីរបីនាទី ហើយ​ឧបករណ៍​របស់អ្នក​ប្រហែលជាមិនដំណើរការទេ អំឡុងពេល​ដំឡើងកំណែនេះ</translation>
 <translation id="780301667611848630">ទេ អរគុណ</translation>
 <translation id="7805768142964895445">ស្ថានភាព</translation>
 <translation id="7819857487979277519">PSK (WPA ឬ RSN)</translation>
diff --git a/chromeos/strings/chromeos_strings_kn.xtb b/chromeos/strings/chromeos_strings_kn.xtb
index 12c55c3..c773fa3d 100644
--- a/chromeos/strings/chromeos_strings_kn.xtb
+++ b/chromeos/strings/chromeos_strings_kn.xtb
@@ -487,7 +487,6 @@
 <translation id="7763470514545477072">ಡೊಮೇನ್ ಸಫಿಕ್ಸ್ ಹೊಂದಾಣಿಕೆ</translation>
 <translation id="7769672763586021400">ಮಾಡೆಲ್ ಐಡಿ</translation>
 <translation id="7784116172884276937">ಯಾವುದೇ DNS ಸರ್ವರ್‌ಗಳನ್ನು ಸೆಟಪ್ ಮಾಡಿಲ್ಲ</translation>
-<translation id="7786540085520432425">ಅಪ್‌ಡೇಟ್‌ ಮಾಡುವಾಗ ನೀವು ವಿಂಡೋವನ್ನು ಕಡಿಮೆ ಮಾಡಬಹುದು, ಆದರೆ ನಿಮ್ಮ ಸಾಧನವನ್ನು ಅನ್‌ಪ್ಲಗ್ ಮಾಡಬೇಡಿ. ಇದು ಕೆಲವು ನಿಮಿಷಗಳನ್ನು ತೆಗೆದುಕೊಳ್ಳಬಹುದು ಮತ್ತು ಈ ಅಪ್‌ಡೇಟ್‌ನ ಸಮಯದಲ್ಲಿ ನಿಮ್ಮ ಸಾಧನವು ಕೆಲಸ ಮಾಡದೇ ಇರಬಹುದು</translation>
 <translation id="780301667611848630">ಬೇಡ, ಧನ್ಯವಾದಗಳು</translation>
 <translation id="7805768142964895445">ಸ್ಥಿತಿ</translation>
 <translation id="7819857487979277519">PSK (WPA ಅಥವಾ RSN)</translation>
diff --git a/chromeos/strings/chromeos_strings_ko.xtb b/chromeos/strings/chromeos_strings_ko.xtb
index d25b57da..a2591a5 100644
--- a/chromeos/strings/chromeos_strings_ko.xtb
+++ b/chromeos/strings/chromeos_strings_ko.xtb
@@ -488,7 +488,6 @@
 <translation id="7763470514545477072">도메인 서픽스 일치</translation>
 <translation id="7769672763586021400">모델 ID</translation>
 <translation id="7784116172884276937">DNS 서버가 설정되어 있지 않습니다.</translation>
-<translation id="7786540085520432425">업데이트 중에 창을 최소화할 수 있지만 기기를 전원에서 분리하면 안 됩니다. 몇 분 정도 소요될 수 있으며 업데이트 중에 기기가 작동하지 않을 수 있습니다</translation>
 <translation id="780301667611848630">취소</translation>
 <translation id="7805768142964895445">상태</translation>
 <translation id="7819857487979277519">PSK (WPA 또는 RSN)</translation>
diff --git a/chromeos/strings/chromeos_strings_ky.xtb b/chromeos/strings/chromeos_strings_ky.xtb
index 6d33f54..8900bcd 100644
--- a/chromeos/strings/chromeos_strings_ky.xtb
+++ b/chromeos/strings/chromeos_strings_ky.xtb
@@ -488,7 +488,6 @@
 <translation id="7763470514545477072">Домен суффиксине окшош</translation>
 <translation id="7769672763586021400">Үлгү ID'си</translation>
 <translation id="7784116172884276937">DNS серверлери туураланган жок</translation>
-<translation id="7786540085520432425">Жаңыртып жатканда терезени кичирейте аласыз, бирок түзмөктү суурубаңыз. Бул бир нече мүнөткө созулуп, ал учурда түзмөгүңүз иштебеши мүмкүн</translation>
 <translation id="780301667611848630">Жок, рахмат</translation>
 <translation id="7805768142964895445">Статусу</translation>
 <translation id="7819857487979277519">PSK (WPA же RSN)</translation>
diff --git a/chromeos/strings/chromeos_strings_lo.xtb b/chromeos/strings/chromeos_strings_lo.xtb
index c842ff3..0924c7e2 100644
--- a/chromeos/strings/chromeos_strings_lo.xtb
+++ b/chromeos/strings/chromeos_strings_lo.xtb
@@ -489,7 +489,6 @@
 <translation id="7763470514545477072">ຈັບຄູ່ສ່ວນຕໍ່ທ້າຍຂອງໂດເມນ</translation>
 <translation id="7769672763586021400">ID ຮຸ່ນ</translation>
 <translation id="7784116172884276937">ບໍ່ໄດ້ຕັ້ງຄ່າ DNS ເທື່ອ</translation>
-<translation id="7786540085520432425">ໃນຂະນະທີ່ກຳລັງອັບເດດ, ທ່ານສາມາດຫຍໍ້ໜ້າຈໍລົງໄດ້ແຕ່ຢ່າຖອດສາຍອຸປະກອນຂອງທ່ານ. ຂັ້ນຕອນນີ້ອາດໃຊ້ເວລາສອງສາມນາທີ ແລະ ອຸປະກອນຂອງທ່ານຈະບໍ່ສາມາດເຮັດວຽກໄດ້ໃນລະຫວ່າງການອັບເດດນີ້</translation>
 <translation id="780301667611848630">ບໍ່​, ​ຂອບ​ໃຈ</translation>
 <translation id="7805768142964895445">ສະ​ຖາ​ນະ​</translation>
 <translation id="7819857487979277519">PSK (WPA ຫຼື RSN)</translation>
diff --git a/chromeos/strings/chromeos_strings_lt.xtb b/chromeos/strings/chromeos_strings_lt.xtb
index 1cd0a8e2..588f640 100644
--- a/chromeos/strings/chromeos_strings_lt.xtb
+++ b/chromeos/strings/chromeos_strings_lt.xtb
@@ -172,6 +172,7 @@
 <translation id="357889014807611375">matuojamas „Wi-Fi“ tinklas</translation>
 <translation id="3583278742022654445">Silpnas signalas. Pabandykite prieiti arčiau „Wi-Fi“ signalo šaltinio.</translation>
 <translation id="3595596368722241419">Akumuliatorius įkrautas</translation>
+<translation id="3603829704940252505">Pseudoportretas</translation>
 <translation id="360565022852130722">„Wi-Fi“ tinklas apsaugotas naudojant nepatikimą protokolą WEP 802.1x</translation>
 <translation id="3606583719724308068">Didelė HTTPS svetainių delsa</translation>
 <translation id="3689839747745352263">Bandymas „<ph name="TEST_NAME" />“</translation>
@@ -422,6 +423,7 @@
 <translation id="6905724422583748843">Atgal į puslapį „<ph name="PAGE_NAME" />“</translation>
 <translation id="6910312834584889076">Skaitytuvo dangtis atidarytas. Uždarykite dangtį ir bandykite dar kartą.</translation>
 <translation id="6911383237894364323">Nepavyko prisijungti prie medijos serverių</translation>
+<translation id="6935486296377631201">Ekrano užsklanda</translation>
 <translation id="6957231940976260713">Paslaugos pavadinimas</translation>
 <translation id="6961170852793647506">Jei norite pradėti, padėkite dokumentą ant skaitytuvo</translation>
 <translation id="6965382102122355670">Gerai</translation>
@@ -486,7 +488,6 @@
 <translation id="7763470514545477072">Domeno plėtinio atitiktis</translation>
 <translation id="7769672763586021400">Modelio ID</translation>
 <translation id="7784116172884276937">Nėra nustatytų DNS serverių</translation>
-<translation id="7786540085520432425">Kol diegiamas naujinys, galite sumažinti langą, bet neatjunkite įrenginio. Tai gali užtrukti kelias minutes ir jūsų įrenginys gali neveikti, kol diegiamas šis naujinys.</translation>
 <translation id="780301667611848630">Ačiū, ne</translation>
 <translation id="7805768142964895445">Būsena</translation>
 <translation id="7819857487979277519">PSK (WPA ar RSN)</translation>
diff --git a/chromeos/strings/chromeos_strings_lv.xtb b/chromeos/strings/chromeos_strings_lv.xtb
index 57015cf..5986e290 100644
--- a/chromeos/strings/chromeos_strings_lv.xtb
+++ b/chromeos/strings/chromeos_strings_lv.xtb
@@ -172,6 +172,7 @@
 <translation id="357889014807611375">Maksas Wi-Fi tīkls</translation>
 <translation id="3583278742022654445">Vājš signāls. Pārvietojieties tuvāk Wi-Fi signāla avotam.</translation>
 <translation id="3595596368722241419">Akumulators pilns</translation>
+<translation id="3603829704940252505">Iemiesojums</translation>
 <translation id="360565022852130722">Wi-Fi tīklu sargā nedrošs protokols WEP 802.1x</translation>
 <translation id="3606583719724308068">Augsts latentums HTTPS vietnēs</translation>
 <translation id="3689839747745352263">Pārbaude: <ph name="TEST_NAME" /></translation>
@@ -422,6 +423,7 @@
 <translation id="6905724422583748843">Atpakaļ uz lapu <ph name="PAGE_NAME" /></translation>
 <translation id="6910312834584889076">Skenera vāks ir atvērts. Aizveriet vāku un mēģiniet vēlreiz.</translation>
 <translation id="6911383237894364323">Nevar izveidot savienojumu ar multivides satura serveriem.</translation>
+<translation id="6935486296377631201">Ekrānsaudzētājs</translation>
 <translation id="6957231940976260713">Pakalpojuma nosaukums</translation>
 <translation id="6961170852793647506">Lai sāktu darbu, novietojiet dokumentu uz skenera.</translation>
 <translation id="6965382102122355670">Labi</translation>
@@ -486,7 +488,6 @@
 <translation id="7763470514545477072">Domēna sufiksa atbilstība</translation>
 <translation id="7769672763586021400">Modeļa ID</translation>
 <translation id="7784116172884276937">Neviens DNS serveris nav iestatīts</translation>
-<translation id="7786540085520432425">Atjaunināšanas laikā varat minimizēt logu, taču neatvienojiet ierīci. Atjaunināšana var ilgt dažas minūtes, un ierīce tās laikā var nedarboties.</translation>
 <translation id="780301667611848630">Nē, paldies</translation>
 <translation id="7805768142964895445">Statuss</translation>
 <translation id="7819857487979277519">PSK (WPA vai RSN)</translation>
diff --git a/chromeos/strings/chromeos_strings_mk.xtb b/chromeos/strings/chromeos_strings_mk.xtb
index 819a8cb..ea9d603e 100644
--- a/chromeos/strings/chromeos_strings_mk.xtb
+++ b/chromeos/strings/chromeos_strings_mk.xtb
@@ -488,7 +488,6 @@
 <translation id="7763470514545477072">Совпаѓање на суфиксот на доменот</translation>
 <translation id="7769672763586021400">ID на модел</translation>
 <translation id="7784116172884276937">Нема поставени DNS-сервери</translation>
-<translation id="7786540085520432425">Додека се ажурира, може да го минимизирате прозорецот, но не исклучувајте го уредот од струја. Ова може да потрае неколку минути и уредот може да не функционира за време на ажурирањето</translation>
 <translation id="780301667611848630">Не, фала</translation>
 <translation id="7805768142964895445">Статус</translation>
 <translation id="7819857487979277519">PSK (WPA или RSN)</translation>
diff --git a/chromeos/strings/chromeos_strings_ml.xtb b/chromeos/strings/chromeos_strings_ml.xtb
index 0c0e3f3d..b388e6aa 100644
--- a/chromeos/strings/chromeos_strings_ml.xtb
+++ b/chromeos/strings/chromeos_strings_ml.xtb
@@ -53,6 +53,7 @@
 <translation id="1643449475550628585">വാൾപേപ്പർ ചിത്രം ദിവസേന മാറ്റുക</translation>
 <translation id="1644574205037202324">ചരിത്രം</translation>
 <translation id="1662989795263954667">പ്രിന്റ് ജോലി നിർത്തി - മഷിയില്ല</translation>
+<translation id="1668469839109562275">ബിൽറ്റ് ഇൻ VPN</translation>
 <translation id="1703835215927279855">ലെറ്റർ</translation>
 <translation id="1706391837335750954">DNS റിസോൾവർ അവതരണം</translation>
 <translation id="1715359911173058521">സ്‌കാനറുമായി ബന്ധപ്പെടുന്നതിൽ പ്രശ്‌നമുണ്ട്. നെറ്റ്‌വർക്കോ USB കണക്ഷനോ പരിശോധിച്ച് വീണ്ടും ശ്രമിക്കുക.</translation>
@@ -487,7 +488,6 @@
 <translation id="7763470514545477072">ഡൊമെയ്ന്‍ സഫിക്സ് പൊരുത്തം</translation>
 <translation id="7769672763586021400">മോഡൽ ഐഡി</translation>
 <translation id="7784116172884276937">DNS സെർവറുകളൊന്നും സജ്ജീകരിച്ചിട്ടില്ല</translation>
-<translation id="7786540085520432425">അപ്ഡേറ്റ് ചെയ്യുമ്പോൾ വിൻഡോ നിങ്ങൾക്ക് ചെറുതാക്കാം, എന്നാൽ ഉപകരണം അൺപ്ലഗ് ചെയ്യരുത്. ഇതിന് കുറച്ച് സമയമെടുത്തേക്കാം, ഈ അപ്‌ഡേറ്റ് നടക്കുമ്പോൾ നിങ്ങളുടെ ഉപകരണം പ്രവർത്തിച്ചേക്കില്ല</translation>
 <translation id="780301667611848630">വേണ്ട നന്ദി</translation>
 <translation id="7805768142964895445">നില</translation>
 <translation id="7819857487979277519">PSK (WPA അല്ലെങ്കിൽ RSN)</translation>
diff --git a/chromeos/strings/chromeos_strings_mn.xtb b/chromeos/strings/chromeos_strings_mn.xtb
index 0cdd92e8..a0a6179 100644
--- a/chromeos/strings/chromeos_strings_mn.xtb
+++ b/chromeos/strings/chromeos_strings_mn.xtb
@@ -488,7 +488,6 @@
 <translation id="7763470514545477072">Домэйн дагаврын тохирол</translation>
 <translation id="7769672763586021400">Загварын ID</translation>
 <translation id="7784116172884276937">Тохируулсан DNS сервер байхгүй</translation>
-<translation id="7786540085520432425">Шинэчилж байх үед та цонхоо багасгах боломжтой хэдий ч төхөөрөмжөө бүү салгаарай. Үүнд хэдэн минут шаардлагатай байж магадгүй бөгөөд энэ шинэчлэлтийн үеэр төхөөрөмж тань ажиллахгүй байж магадгүй</translation>
 <translation id="780301667611848630">Үгүй, баярлалаа</translation>
 <translation id="7805768142964895445">Байр байдал</translation>
 <translation id="7819857487979277519">PSK (WPA эсвэл RSN)</translation>
diff --git a/chromeos/strings/chromeos_strings_mr.xtb b/chromeos/strings/chromeos_strings_mr.xtb
index bf3414c..e7a9caa2 100644
--- a/chromeos/strings/chromeos_strings_mr.xtb
+++ b/chromeos/strings/chromeos_strings_mr.xtb
@@ -488,7 +488,6 @@
 <translation id="7763470514545477072">डोमेन सफिक्स जुळणी</translation>
 <translation id="7769672763586021400">मॉडेल आयडी</translation>
 <translation id="7784116172884276937">कोणतेही DNS सर्व्हर सेट केलेले नाहीत</translation>
-<translation id="7786540085520432425">अपडेट करताना, तुम्ही विंडो लहान करू शकता, पण तुमचे डिव्हाइस अनप्लग करू नका. याला काही मिनिटे लागू शकतात आणि या अपडेटदरम्यान तुमचे डिव्हाइस कदाचित काम करणार नाही</translation>
 <translation id="780301667611848630">नाही, नको</translation>
 <translation id="7805768142964895445">स्थिती</translation>
 <translation id="7819857487979277519">PSK (WPA किंवा RSN)</translation>
diff --git a/chromeos/strings/chromeos_strings_ms.xtb b/chromeos/strings/chromeos_strings_ms.xtb
index a0f7b17..0aa5c47 100644
--- a/chromeos/strings/chromeos_strings_ms.xtb
+++ b/chromeos/strings/chromeos_strings_ms.xtb
@@ -172,6 +172,7 @@
 <translation id="357889014807611375">Wi-Fi bermeter</translation>
 <translation id="3583278742022654445">Kekuatan isyarat lemah. Cuba bergerak lebih rapat ke sumber isyarat Wi-Fi.</translation>
 <translation id="3595596368722241419">Bateri penuh</translation>
+<translation id="3603829704940252505">Avatar</translation>
 <translation id="360565022852130722">Rangkaian Wi-Fi selamat dengan protokol lemah WEP 802.1x</translation>
 <translation id="3606583719724308068">Kependaman tinggi ke laman web HTTPS</translation>
 <translation id="3689839747745352263">Ujian <ph name="TEST_NAME" /></translation>
@@ -422,6 +423,7 @@
 <translation id="6905724422583748843">Kembali ke <ph name="PAGE_NAME" /></translation>
 <translation id="6910312834584889076">Penutup pengimbas terbuka. Tutup penutup dan cuba lagi.</translation>
 <translation id="6911383237894364323">Tidak dapat menyambung kepada pelayan media</translation>
+<translation id="6935486296377631201">Penyelamat skrin</translation>
 <translation id="6957231940976260713">Nama perkhidmatan</translation>
 <translation id="6961170852793647506">Untuk bermula, letakkan dokumen anda di atas pengimbas</translation>
 <translation id="6965382102122355670">OK</translation>
@@ -486,7 +488,6 @@
 <translation id="7763470514545477072">Padanan akhiran domain</translation>
 <translation id="7769672763586021400">ID Model</translation>
 <translation id="7784116172884276937">Tiada pelayan DNS disediakan</translation>
-<translation id="7786540085520432425">Semasa mengemas kini, anda boleh meminimumkan tetingkap tetapi jangan cabut palam peranti anda. Proses ini mungkin mengambil masa beberapa minit dan peranti anda mungkin tidak berfungsi semasa kemaskinian ini</translation>
 <translation id="780301667611848630">Tidak, terima kasih</translation>
 <translation id="7805768142964895445">Status</translation>
 <translation id="7819857487979277519">PSK (WPA atau RSN)</translation>
diff --git a/chromeos/strings/chromeos_strings_my.xtb b/chromeos/strings/chromeos_strings_my.xtb
index 1222061f..fffa48b 100644
--- a/chromeos/strings/chromeos_strings_my.xtb
+++ b/chromeos/strings/chromeos_strings_my.xtb
@@ -487,7 +487,6 @@
 <translation id="7763470514545477072">ဒိုမိန်းနောက်ဆက် ကိုက်ညီမှု</translation>
 <translation id="7769672763586021400">မော်ဒယ်နံပါတ်</translation>
 <translation id="7784116172884276937">DNS ဆာဗာများ စနစ်ထည့်သွင်းမထားပါ</translation>
-<translation id="7786540085520432425">အပ်ဒိတ်လုပ်နေစဉ် ဝင်းဒိုးကို ချုံ့ထားနိုင်သော်လည်း စက်ကို ပလတ်မဖြုတ်ပါနှင့်။ ဤအပ်ဒိတ်ပြုလုပ်နေစဉ် မိနစ်အနည်းငယ်ကြာနိုင်ပြီး သင့်စက် အလုပ်မလုပ်နိုင်ပါ</translation>
 <translation id="780301667611848630">မလိုပါ</translation>
 <translation id="7805768142964895445">အခြေအနေ</translation>
 <translation id="7819857487979277519">PSK (WPA သို့မဟုတ် RSN)</translation>
diff --git a/chromeos/strings/chromeos_strings_ne.xtb b/chromeos/strings/chromeos_strings_ne.xtb
index ee01001..0723e45e 100644
--- a/chromeos/strings/chromeos_strings_ne.xtb
+++ b/chromeos/strings/chromeos_strings_ne.xtb
@@ -53,6 +53,7 @@
 <translation id="1643449475550628585">वालपेपर दैनिक रूपमा बदल्नुहोस्</translation>
 <translation id="1644574205037202324">इतिहास</translation>
 <translation id="1662989795263954667">रोकियो - प्रिन्टरको मसी सकियो</translation>
+<translation id="1668469839109562275">अन्तर्निर्मित VPN</translation>
 <translation id="1703835215927279855">Letter</translation>
 <translation id="1706391837335750954">DNS रिजल्भर प्रिजेन्ट</translation>
 <translation id="1715359911173058521">स्क्यानरसँग कनेक्ट गर्ने क्रममा कुनै समस्या आयो। नेटवर्क वा USB कनेक्सन जाँच्नुहोस् र फेरि प्रयास गर्नुहोस्।</translation>
@@ -487,7 +488,6 @@
 <translation id="7763470514545477072">डोमेन सफिक्ससँग मिल्दोजुल्दो</translation>
 <translation id="7769672763586021400">मोडेलको ID</translation>
 <translation id="7784116172884276937">कुनै पनि DNS सर्भर सेटअप गरिएको छैन</translation>
-<translation id="7786540085520432425">डिभाइस अपडेट गर्दा तपाईं विन्डो मिनिमाइज गर्न सक्नुहुन्छ तर डिभाइसको प्लग भने बिजुलीको स्रोतमा जोडिराख्नुहोस्। अपडेट गर्ने कार्य पूरा हुन केही मिनेट लाग्न सक्छ र अपडेट गर्ने क्रममा तपाईंको डिभाइसले काम नगर्न सक्छ</translation>
 <translation id="780301667611848630">भयो, धन्यवाद</translation>
 <translation id="7805768142964895445">स्थिति</translation>
 <translation id="7819857487979277519">PSK (WPA वा RSN)</translation>
diff --git a/chromeos/strings/chromeos_strings_nl.xtb b/chromeos/strings/chromeos_strings_nl.xtb
index 48856fb..5faf782 100644
--- a/chromeos/strings/chromeos_strings_nl.xtb
+++ b/chromeos/strings/chromeos_strings_nl.xtb
@@ -488,7 +488,6 @@
 <translation id="7763470514545477072">Overeenkomst voor domeinextensie</translation>
 <translation id="7769672763586021400">Model-ID</translation>
 <translation id="7784116172884276937">Er zijn geen DNS-servers ingesteld</translation>
-<translation id="7786540085520432425">TIjdens de update kun je het scherm minimaliseren, maar je mag je apparaat niet loskoppelen. De update kan een paar minuten duren. Je apparaat werkt mogelijk niet tijdens de update.</translation>
 <translation id="780301667611848630">Nee, bedankt</translation>
 <translation id="7805768142964895445">Status</translation>
 <translation id="7819857487979277519">PSK (WPA of RSN)</translation>
diff --git a/chromeos/strings/chromeos_strings_no.xtb b/chromeos/strings/chromeos_strings_no.xtb
index a66af00..b113512 100644
--- a/chromeos/strings/chromeos_strings_no.xtb
+++ b/chromeos/strings/chromeos_strings_no.xtb
@@ -488,7 +488,6 @@
 <translation id="7763470514545477072">Samsvarende domenesuffiks</translation>
 <translation id="7769672763586021400">Modell-ID</translation>
 <translation id="7784116172884276937">Ingen DNS-tjenere er konfigurert</translation>
-<translation id="7786540085520432425">Mens enheten oppdateres, kan du minimere vinduet, men ikke koble fra strømmen til enheten. Dette kan ta noen minutter, og det kan hende enheten ikke fungerer mens oppdateringen pågår</translation>
 <translation id="780301667611848630">Nei takk</translation>
 <translation id="7805768142964895445">Status</translation>
 <translation id="7819857487979277519">PSK (WPA eller RSN)</translation>
diff --git a/chromeos/strings/chromeos_strings_or.xtb b/chromeos/strings/chromeos_strings_or.xtb
index ae07ef9..cc83da8 100644
--- a/chromeos/strings/chromeos_strings_or.xtb
+++ b/chromeos/strings/chromeos_strings_or.xtb
@@ -172,6 +172,7 @@
 <translation id="357889014807611375">ମିଟର୍ ହୋଇଥିବା ୱାଇ-ଫାଇ</translation>
 <translation id="3583278742022654445">ସିଗନାଲ କ୍ଷମତା ଦୁର୍ବଳ ଅଟେ। ୱାଇ-ଫାଇ ସିଗନାଲ ସୋର୍ସ ନିକଟକୁ ଯାଇ ଚେଷ୍ଟା କରନ୍ତୁ।</translation>
 <translation id="3595596368722241419">ବ୍ୟାଟେରୀ ପୂର୍ଣ୍ଣ</translation>
+<translation id="3603829704940252505">ଅବତାର</translation>
 <translation id="360565022852130722">ଦୁର୍ବଳ ପ୍ରୋଟୋକଲ୍ WEP 802.1x ବ୍ୟବହାର କରି ୱାଇଫାଇ ନେଟୱାର୍କକୁ ସୁରକ୍ଷିତ କରାଯାଇଛି</translation>
 <translation id="3606583719724308068">HTTPS ୱେବସାଇଟଗୁଡ଼ିକ ପାଇଁ ଲାଟେନ୍ସି ଅଧିକ ଅଛି</translation>
 <translation id="3689839747745352263"><ph name="TEST_NAME" /> ଟେଷ୍ଟ</translation>
@@ -422,6 +423,7 @@
 <translation id="6905724422583748843"><ph name="PAGE_NAME" />କୁ ଫେରନ୍ତୁ</translation>
 <translation id="6910312834584889076">ସ୍କାନରର କଭର୍ ଖୋଲା ଅଛି। କଭର୍ ବନ୍ଦ କରି ପୁଣି ଚେଷ୍ଟା କରନ୍ତୁ।</translation>
 <translation id="6911383237894364323">ମିଡିଆ ସର୍ଭରଗୁଡ଼ିକ ସହ ସଂଯୋଗ କରିବାକୁ ଅସମର୍ଥ</translation>
+<translation id="6935486296377631201">ସ୍କ୍ରିନସେଭର</translation>
 <translation id="6957231940976260713">ସେବାର ନାମ</translation>
 <translation id="6961170852793647506">ଆରମ୍ଭ କରିବା ପାଇଁ, ଆପଣଙ୍କ ଡକ୍ୟୁମେଣ୍ଟକୁ ସ୍କାନରରେ ରଖନ୍ତୁ</translation>
 <translation id="6965382102122355670">ଓକେ ବଟନ୍</translation>
@@ -486,7 +488,6 @@
 <translation id="7763470514545477072">ଡୋମେନ୍ ସଫିକ୍ସ ସହ ମେଳ</translation>
 <translation id="7769672763586021400">ମଡେଲ୍ ID</translation>
 <translation id="7784116172884276937">କୌଣସି DNS ସର୍ଭର ସେଟ ଅପ କରାଯାଇନାହିଁ</translation>
-<translation id="7786540085520432425">ଅପଡେଟ କରିବା ସମୟରେ, ଆପଣ ୱିଣ୍ଡୋକୁ ଛୋଟ କରିପାରିବେ କିନ୍ତୁ ଆପଣଙ୍କ ଡିଭାଇସକୁ ଅନପ୍ଲଗ କରନ୍ତୁ ନାହିଁ। ଏଥିପାଇଁ କିଛି ସମୟ ଲାଗିପାରେ ଏବଂ ଆପଣଙ୍କ ଡିଭାଇସ ଏହି ଅପଡେଟ ସମୟରେ କାମ କରିନପାରେ</translation>
 <translation id="780301667611848630">ନାଁ, ଥାଉ</translation>
 <translation id="7805768142964895445">ସ୍ଥିତି</translation>
 <translation id="7819857487979277519">PSK (WPA or RSN)</translation>
diff --git a/chromeos/strings/chromeos_strings_pa.xtb b/chromeos/strings/chromeos_strings_pa.xtb
index 72463b6a..b3f5182d 100644
--- a/chromeos/strings/chromeos_strings_pa.xtb
+++ b/chromeos/strings/chromeos_strings_pa.xtb
@@ -487,7 +487,6 @@
 <translation id="7763470514545477072">ਡੋੋਮੇਨ ਪਿਛੇਤਰ ਦਾ ਮਿਲਾਨ</translation>
 <translation id="7769672763586021400">ਮਾਡਲ ਆਈ.ਡੀ.</translation>
 <translation id="7784116172884276937">ਕਿਸੇ DNS ਸਰਵਰ ਦਾ ਸੈੱਟਅੱਪ ਨਹੀਂ ਕੀਤਾ ਗਿਆ</translation>
-<translation id="7786540085520432425">ਅੱਪਡੇਟ ਕਰਨ ਦੌਰਾਨ, ਤੁਸੀਂ ਵਿੰਡੋ ਨੂੰ ਛੋਟਾ ਕਰ ਸਕਦੇ ਹੋ ਪਰ ਆਪਣੇ ਡੀਵਾਈਸ ਨੂੰ ਅਣਪਲੱਗ ਨਾ ਕਰੋ। ਇਸ ਵਿੱਚ ਕੁਝ ਮਿੰਟ ਲੱਗ ਸਕਦੇ ਹਨ ਅਤੇ ਸ਼ਾਇਦ ਤੁਹਾਡਾ ਡੀਵਾਈਸ ਇਸ ਅੱਪਡੇਟ ਦੌਰਾਨ ਕੰਮ ਨਾ ਕਰੇ</translation>
 <translation id="780301667611848630">ਨਹੀਂ ਧੰਨਵਾਦ</translation>
 <translation id="7805768142964895445">ਸਥਿਤੀ</translation>
 <translation id="7819857487979277519">PSK (WPA ਜਾਂ RSN)</translation>
diff --git a/chromeos/strings/chromeos_strings_pl.xtb b/chromeos/strings/chromeos_strings_pl.xtb
index 6aebcfde..4075f80 100644
--- a/chromeos/strings/chromeos_strings_pl.xtb
+++ b/chromeos/strings/chromeos_strings_pl.xtb
@@ -488,7 +488,6 @@
 <translation id="7763470514545477072">Dopasowanie sufiksu domeny</translation>
 <translation id="7769672763586021400">Identyfikator modelu</translation>
 <translation id="7784116172884276937">Nie skonfigurowano serwerów DNS</translation>
-<translation id="7786540085520432425">Na czas przeprowadzania aktualizacji możesz zminimalizować okno, ale nie odłączaj urządzenia. Aktualizacja potrwa kilka minut – w tym czasie urządzenie może nie działać</translation>
 <translation id="780301667611848630">Nie, dziękuję</translation>
 <translation id="7805768142964895445">Stan</translation>
 <translation id="7819857487979277519">Klucz wstępny (WPA lub RSN)</translation>
diff --git a/chromeos/strings/chromeos_strings_pt-BR.xtb b/chromeos/strings/chromeos_strings_pt-BR.xtb
index 0b641a4..67c66b5 100644
--- a/chromeos/strings/chromeos_strings_pt-BR.xtb
+++ b/chromeos/strings/chromeos_strings_pt-BR.xtb
@@ -488,7 +488,6 @@
 <translation id="7763470514545477072">Correspondência do sufixo de domínio</translation>
 <translation id="7769672763586021400">Código do modelo</translation>
 <translation id="7784116172884276937">Nenhum servidor DNS está configurado</translation>
-<translation id="7786540085520432425">Durante a atualização, você pode minimizar a janela, mas não desconecte o dispositivo. Isso pode levar alguns minutos, e seu dispositivo pode não funcionar nesse período</translation>
 <translation id="780301667611848630">Não</translation>
 <translation id="7805768142964895445">Status</translation>
 <translation id="7819857487979277519">Pre-shared key (PSK): WPA ou RSN</translation>
diff --git a/chromeos/strings/chromeos_strings_pt-PT.xtb b/chromeos/strings/chromeos_strings_pt-PT.xtb
index e827425d..d36ebfce 100644
--- a/chromeos/strings/chromeos_strings_pt-PT.xtb
+++ b/chromeos/strings/chromeos_strings_pt-PT.xtb
@@ -488,7 +488,6 @@
 <translation id="7763470514545477072">Correspondência do sufixo do domínio</translation>
 <translation id="7769672763586021400">ID do modelo</translation>
 <translation id="7784116172884276937">Não foram configurados servidores DNS</translation>
-<translation id="7786540085520432425">Durante a atualização, pode minimizar a janela, mas não desligue o dispositivo. Esta ação pode demorar alguns minutos e o dispositivo pode não funcionar durante esta atualização</translation>
 <translation id="780301667611848630">Não, obrigado</translation>
 <translation id="7805768142964895445">Estado</translation>
 <translation id="7819857487979277519">PSK (WPA ou RSN)</translation>
diff --git a/chromeos/strings/chromeos_strings_ro.xtb b/chromeos/strings/chromeos_strings_ro.xtb
index 93902a9..7ec0dbe 100644
--- a/chromeos/strings/chromeos_strings_ro.xtb
+++ b/chromeos/strings/chromeos_strings_ro.xtb
@@ -488,7 +488,6 @@
 <translation id="7763470514545477072">Potrivire a sufixului de domeniu</translation>
 <translation id="7769672763586021400">ID-ul modelului</translation>
 <translation id="7784116172884276937">Nu există servere DNS configurate</translation>
-<translation id="7786540085520432425">În timpul actualizării, poți minimiza fereastra, dar nu deconecta dispozitivul de la sursa de alimentare. Procesul poate dura câteva minute și este posibil ca dispozitivul să nu funcționeze pe durata actualizării.</translation>
 <translation id="780301667611848630">Nu, mulțumesc</translation>
 <translation id="7805768142964895445">Stare</translation>
 <translation id="7819857487979277519">PSK (WPA sau RSN)</translation>
diff --git a/chromeos/strings/chromeos_strings_ru.xtb b/chromeos/strings/chromeos_strings_ru.xtb
index 8ef0d52..e68bca0bb 100644
--- a/chromeos/strings/chromeos_strings_ru.xtb
+++ b/chromeos/strings/chromeos_strings_ru.xtb
@@ -172,6 +172,7 @@
 <translation id="357889014807611375">Wi-Fi с тарификацией</translation>
 <translation id="3583278742022654445">Слабый сигнал Wi-Fi. Попробуйте разместить устройство ближе к источнику сигнала.</translation>
 <translation id="3595596368722241419">Аккумулятор заряжен</translation>
+<translation id="3603829704940252505">Аватар</translation>
 <translation id="360565022852130722">Безопасность сети Wi-Fi обеспечивается недостаточно надежным протоколом WEP 802.1x.</translation>
 <translation id="3606583719724308068">Длительная задержка у HTTPS-сайтов.</translation>
 <translation id="3689839747745352263"><ph name="TEST_NAME" />: тестирование</translation>
@@ -422,6 +423,7 @@
 <translation id="6905724422583748843">Вернуться на страницу "<ph name="PAGE_NAME" />"</translation>
 <translation id="6910312834584889076">Открыта крышка сканера. Закройте крышку и повторите попытку.</translation>
 <translation id="6911383237894364323">Не удалось подключиться к медиасерверам.</translation>
+<translation id="6935486296377631201">Заставка</translation>
 <translation id="6957231940976260713">Название службы</translation>
 <translation id="6961170852793647506">Чтобы начать, положите документ в сканер.</translation>
 <translation id="6965382102122355670">ОК</translation>
@@ -486,7 +488,6 @@
 <translation id="7763470514545477072">Совпадение с доменным суффиксом</translation>
 <translation id="7769672763586021400">Идентификатор модели</translation>
 <translation id="7784116172884276937">Нет настроенных DNS-серверов.</translation>
-<translation id="7786540085520432425">Не отключайте устройство. Вы можете свернуть окно, пока выполняется обновление. Операция выполняется несколько минут. Не исключено, что в это время устройство перестанет работать.</translation>
 <translation id="780301667611848630">Спасибо, не надо</translation>
 <translation id="7805768142964895445">Состояние</translation>
 <translation id="7819857487979277519">PSK (WPA или RSN)</translation>
diff --git a/chromeos/strings/chromeos_strings_si.xtb b/chromeos/strings/chromeos_strings_si.xtb
index 4b72def..adb6882c 100644
--- a/chromeos/strings/chromeos_strings_si.xtb
+++ b/chromeos/strings/chromeos_strings_si.xtb
@@ -172,6 +172,7 @@
 <translation id="357889014807611375">මනුගත Wi-Fi</translation>
 <translation id="3583278742022654445">දුර්වල සංඥා ප්‍රබලතාව. Wi-Fi සංඥා මූලාශ්‍රය වෙත වඩාත් සමීප වීමට උත්සාහ කරන්න.</translation>
 <translation id="3595596368722241419">බැටරිය ආරෝපිතයි</translation>
+<translation id="3603829704940252505">නියුරුව</translation>
 <translation id="360565022852130722">WiFi ජාලය දුර්වල ප්‍රොටොකෝලයකින් ආරක්ෂිතයි WEP 802.1x</translation>
 <translation id="3606583719724308068">HTTPS වෙබ් අඩවිවලට ඉහළ පමාව</translation>
 <translation id="3689839747745352263"><ph name="TEST_NAME" /> පරීක්ෂණය</translation>
@@ -422,6 +423,7 @@
 <translation id="6905724422583748843"><ph name="PAGE_NAME" /> වෙත ආපසු</translation>
 <translation id="6910312834584889076">ස්කෑනරයේ ආවරණය විවෘතයි. කවරය වසා නැවත උත්සාහ කරන්න.</translation>
 <translation id="6911383237894364323">මාධ්‍ය සේවාදායක වෙත සබැඳීමට නොහැකිය</translation>
+<translation id="6935486296377631201">තිර සුරැකුම</translation>
 <translation id="6957231940976260713">සේවා නාමය</translation>
 <translation id="6961170852793647506">ආරම්භ කිරීමට, ඔබගේ ලේඛනය ස්කෑනරය මත තබන්න</translation>
 <translation id="6965382102122355670">හරි</translation>
@@ -486,7 +488,6 @@
 <translation id="7763470514545477072">වසම් ප්‍රත්‍ය ගැළපීම</translation>
 <translation id="7769672763586021400">ආදර්ශ ID</translation>
 <translation id="7784116172884276937">DNS සේවාදායක පිහිටුවා නැත</translation>
-<translation id="7786540085520432425">යාවත්කාලීන කරන අතරතුර, ඔබට කවුළුව කුඩා කළ හැකි නමුත් ඔබගේ උපාංගය පේනුවෙන් ඉවත් නොකරන්න. මෙයට මිනිත්තු කිහිපයක් ගත විය හැකි අතර මෙම යාවත්කාලීනය අතරතුර ඔබගේ උපාංගය ක්‍රියා නොකිරීමට ඉඩ ඇත</translation>
 <translation id="780301667611848630">එපා, ස්තූතියි</translation>
 <translation id="7805768142964895445">තත්වය</translation>
 <translation id="7819857487979277519">PSK (WPA හෝ RSN)</translation>
diff --git a/chromeos/strings/chromeos_strings_sk.xtb b/chromeos/strings/chromeos_strings_sk.xtb
index 6937dcf..f105802 100644
--- a/chromeos/strings/chromeos_strings_sk.xtb
+++ b/chromeos/strings/chromeos_strings_sk.xtb
@@ -172,6 +172,7 @@
 <translation id="357889014807611375">Wi‑Fi s meraním dát</translation>
 <translation id="3583278742022654445">Slabý signál. Skúste sa priblížiť k zdroju signálu Wi-Fi.</translation>
 <translation id="3595596368722241419">Batéria je nabitá</translation>
+<translation id="3603829704940252505">Avatar</translation>
 <translation id="360565022852130722">Sieť Wi‑Fi je zabezpečená slabým protokolom WEP 802.1x</translation>
 <translation id="3606583719724308068">Vysoká latencia na weboch HTTPS</translation>
 <translation id="3689839747745352263">Test <ph name="TEST_NAME" /></translation>
@@ -422,6 +423,7 @@
 <translation id="6905724422583748843">Späť na <ph name="PAGE_NAME" /></translation>
 <translation id="6910312834584889076">Je otvorený kryt skenera. Zavrite ho a skúste to znova.</translation>
 <translation id="6911383237894364323">Nepodarilo sa pripojiť k mediálnym serverom</translation>
+<translation id="6935486296377631201">Šetrič obrazovky</translation>
 <translation id="6957231940976260713">Názov služby</translation>
 <translation id="6961170852793647506">Začnite položením dokumentu na skener</translation>
 <translation id="6965382102122355670">OK</translation>
@@ -486,7 +488,6 @@
 <translation id="7763470514545477072">Zhoda prípony domény</translation>
 <translation id="7769672763586021400">ID modelu</translation>
 <translation id="7784116172884276937">Nie sú nastavené žiadne servery DNS</translation>
-<translation id="7786540085520432425">Počas aktualizácie môžete minimalizovať okno, ale zariadenie neodpájajte. Aktualizácia môže chvíľu trvať a zariadenie počas nej nemusí fungovať.</translation>
 <translation id="780301667611848630">Nie, ďakujem</translation>
 <translation id="7805768142964895445">Stav</translation>
 <translation id="7819857487979277519">PSK (WPA alebo RSN)</translation>
diff --git a/chromeos/strings/chromeos_strings_sl.xtb b/chromeos/strings/chromeos_strings_sl.xtb
index 5581c3df..6a0c2c9 100644
--- a/chromeos/strings/chromeos_strings_sl.xtb
+++ b/chromeos/strings/chromeos_strings_sl.xtb
@@ -488,7 +488,6 @@
 <translation id="7763470514545477072">Ujemanje pripone domene</translation>
 <translation id="7769672763586021400">ID modela</translation>
 <translation id="7784116172884276937">Strežniki DNS niso nastavljeni.</translation>
-<translation id="7786540085520432425">Med posodobljanjem lahko pomanjšate okno, vendar ne odklapljajte naprave. To lahko traja nekaj minut in naprava med posodabljanjem morda ne bo delovala.</translation>
 <translation id="780301667611848630">Ne, hvala</translation>
 <translation id="7805768142964895445">Stanje</translation>
 <translation id="7819857487979277519">PSK (WPA ali RSN)</translation>
diff --git a/chromeos/strings/chromeos_strings_sq.xtb b/chromeos/strings/chromeos_strings_sq.xtb
index 0e2fe9a..0d7ee018 100644
--- a/chromeos/strings/chromeos_strings_sq.xtb
+++ b/chromeos/strings/chromeos_strings_sq.xtb
@@ -172,6 +172,7 @@
 <translation id="357889014807611375">Wi-Fi me matje</translation>
 <translation id="3583278742022654445">Fuqi e dobët e sinjalit. Provo t'i afrohesh më shumë burimit të sinjalit Wi-Fi.</translation>
 <translation id="3595596368722241419">Bateria është plot</translation>
+<translation id="3603829704940252505">Simboli</translation>
 <translation id="360565022852130722">Rrjeti Wi-Fi është i siguruar me protokollin e dobët WEP 802.1x</translation>
 <translation id="3606583719724308068">Vonesë e lartë në sajtet e uebit HTTPS</translation>
 <translation id="3689839747745352263">Testi <ph name="TEST_NAME" /></translation>
@@ -421,6 +422,7 @@
 <translation id="6905724422583748843">Prapa te <ph name="PAGE_NAME" /></translation>
 <translation id="6910312834584889076">Kapaku i skanerit është i hapur. Mbylle kapakun dhe provo përsëri.</translation>
 <translation id="6911383237894364323">Nuk mund të lidhet me serverët e medias.</translation>
+<translation id="6935486296377631201">Mbrojtësi i ekranit</translation>
 <translation id="6957231940976260713">Emri i shërbimit</translation>
 <translation id="6961170852793647506">Për të filluar, vendose dokumentin tënd në skaner</translation>
 <translation id="6965382102122355670">Në rregull</translation>
@@ -485,7 +487,6 @@
 <translation id="7763470514545477072">Përputhje e prapashtesës së domenit</translation>
 <translation id="7769672763586021400">ID-ja e modelit</translation>
 <translation id="7784116172884276937">Nuk është konfiguruar asnjë server DNS</translation>
-<translation id="7786540085520432425">Gjatë përditësimit, mund të minimizosh dritaren, por mos e hiq nga priza pajisjen. Kjo mund të zgjasë disa minuta dhe pajisja mund të mos funksionojë gjatë përditësimit</translation>
 <translation id="780301667611848630">Jo, faleminderit</translation>
 <translation id="7805768142964895445">Statusi</translation>
 <translation id="7819857487979277519">PSK (WPA ose RSN)</translation>
diff --git a/chromeos/strings/chromeos_strings_sr-Latn.xtb b/chromeos/strings/chromeos_strings_sr-Latn.xtb
index 4015ec2f..082efb2 100644
--- a/chromeos/strings/chromeos_strings_sr-Latn.xtb
+++ b/chromeos/strings/chromeos_strings_sr-Latn.xtb
@@ -488,7 +488,6 @@
 <translation id="7763470514545477072">Podudaranje sufiksa domena</translation>
 <translation id="7769672763586021400">ID modela</translation>
 <translation id="7784116172884276937">Nije podešen nijedan DNS server</translation>
-<translation id="7786540085520432425">Tokom ažuriranja možete da smanjite prozor, ali nemojte da isključujete uređaj. To može da potraje nekoliko minuta i uređaj možda neće raditi tokom tog ažuriranja</translation>
 <translation id="780301667611848630">Ne, hvala</translation>
 <translation id="7805768142964895445">Status</translation>
 <translation id="7819857487979277519">PSK (WPA ili RSN)</translation>
diff --git a/chromeos/strings/chromeos_strings_sr.xtb b/chromeos/strings/chromeos_strings_sr.xtb
index ff14c25..22fd77e 100644
--- a/chromeos/strings/chromeos_strings_sr.xtb
+++ b/chromeos/strings/chromeos_strings_sr.xtb
@@ -488,7 +488,6 @@
 <translation id="7763470514545477072">Подударање суфикса домена</translation>
 <translation id="7769672763586021400">ИД модела</translation>
 <translation id="7784116172884276937">Није подешен ниједан DNS сервер</translation>
-<translation id="7786540085520432425">Током ажурирања можете да смањите прозор, али немојте да искључујете уређај. То може да потраје неколико минута и уређај можда неће радити током тог ажурирања</translation>
 <translation id="780301667611848630">Не, хвала</translation>
 <translation id="7805768142964895445">Статус</translation>
 <translation id="7819857487979277519">PSK (WPA или RSN)</translation>
diff --git a/chromeos/strings/chromeos_strings_sv.xtb b/chromeos/strings/chromeos_strings_sv.xtb
index fbc8a1d..abb2a4a 100644
--- a/chromeos/strings/chromeos_strings_sv.xtb
+++ b/chromeos/strings/chromeos_strings_sv.xtb
@@ -172,6 +172,7 @@
 <translation id="357889014807611375">wifi med datapriser</translation>
 <translation id="3583278742022654445">Svag signalstyrka. Testa att gå närmare källan till wifi-signalen.</translation>
 <translation id="3595596368722241419">Batteriet är fulladdat</translation>
+<translation id="3603829704940252505">Avatar</translation>
 <translation id="360565022852130722">wifi-nätverket använder det svaga säkerhetsprotokollet WEP 802.1x</translation>
 <translation id="3606583719724308068">Hög fördröjning till HTTPS-webbplatser</translation>
 <translation id="3689839747745352263">Test – <ph name="TEST_NAME" /></translation>
@@ -422,6 +423,7 @@
 <translation id="6905724422583748843">Tillbaka till <ph name="PAGE_NAME" /></translation>
 <translation id="6910312834584889076">Skannerns lucka är öppen. Stäng luckan och försök igen.</translation>
 <translation id="6911383237894364323">Det gick inte att ansluta till medieservrarna</translation>
+<translation id="6935486296377631201">Skärmsläckare</translation>
 <translation id="6957231940976260713">Namn på tjänsten</translation>
 <translation id="6961170852793647506">Sätt dokumentet i skannern för att komma igång</translation>
 <translation id="6965382102122355670">OK</translation>
@@ -486,7 +488,6 @@
 <translation id="7763470514545477072">Matchning av domänsuffix</translation>
 <translation id="7769672763586021400">Modell-id</translation>
 <translation id="7784116172884276937">Inga DNS-servrar har konfigurerats</translation>
-<translation id="7786540085520432425">Du kan minimera fönstret medan du uppdaterar men koppla inte från enheten. Detta kan ta några minuter och enheten kanske inte fungerar under uppdateringen</translation>
 <translation id="780301667611848630">Nej tack</translation>
 <translation id="7805768142964895445">Status</translation>
 <translation id="7819857487979277519">PSK (WPA eller RSN)</translation>
diff --git a/chromeos/strings/chromeos_strings_sw.xtb b/chromeos/strings/chromeos_strings_sw.xtb
index 9ce13e1..30ad553 100644
--- a/chromeos/strings/chromeos_strings_sw.xtb
+++ b/chromeos/strings/chromeos_strings_sw.xtb
@@ -485,7 +485,6 @@
 <translation id="7763470514545477072">Kiambishi cha kikoa kinacholingana</translation>
 <translation id="7769672763586021400">Aina ya Kitambulisho</translation>
 <translation id="7784116172884276937">Hakuna seva za DNS zilizowekwa mipangilio</translation>
-<translation id="7786540085520432425">Wakati wa kusasisha, unaweza kupunguza dirisha lakini usichomoe kifaa chako. Hatua hii inaweza kuchukua dakika kadhaa na huenda kifaa chako kisifanye kazi wakati wa sasisho hili</translation>
 <translation id="780301667611848630">Hapana</translation>
 <translation id="7805768142964895445">Hali</translation>
 <translation id="7819857487979277519">PSK (WPA au RSN)</translation>
diff --git a/chromeos/strings/chromeos_strings_ta.xtb b/chromeos/strings/chromeos_strings_ta.xtb
index 514508f5..4bbc8b07f 100644
--- a/chromeos/strings/chromeos_strings_ta.xtb
+++ b/chromeos/strings/chromeos_strings_ta.xtb
@@ -172,6 +172,7 @@
 <translation id="357889014807611375">கட்டண வைஃபை</translation>
 <translation id="3583278742022654445">சிக்னல் மோசமாக உள்ளது. வைஃபை சிக்னலை வழங்கும் சாதனத்திற்கு அருகில் செல்லவும்.</translation>
 <translation id="3595596368722241419">பேட்டரி நிரம்பியது</translation>
+<translation id="3603829704940252505">தோற்றப் படம்</translation>
 <translation id="360565022852130722">WEP 802.1x என்னும் வலுவற்ற நெறிமுறை மூலம் வைஃபை நெட்வொர்க் பாதுகாக்கப்படுகிறது</translation>
 <translation id="3606583719724308068">HTTPS இணையதளங்களில் அதிகளவு தாமதம் ஏற்படுகிறது</translation>
 <translation id="3689839747745352263"><ph name="TEST_NAME" /> சோதனை</translation>
@@ -422,6 +423,7 @@
 <translation id="6905724422583748843"><ph name="PAGE_NAME" /> பக்கத்திற்குச் செல்லும்</translation>
 <translation id="6910312834584889076">ஸ்கேனரின் கவர் திறந்துள்ளது. கவரை மூடிவிட்டு மீண்டும் முயலவும்.</translation>
 <translation id="6911383237894364323">மீடியா சேவையகங்களுடன் இணைக்க முடியவில்லை</translation>
+<translation id="6935486296377631201">ஸ்கிரீன் சேவர்</translation>
 <translation id="6957231940976260713">சேவைப் பெயர்</translation>
 <translation id="6961170852793647506">ஸ்கேன் செய்ய, ஆவணத்தை ஸ்கேனர் மீது வைக்கவும்</translation>
 <translation id="6965382102122355670">சரி</translation>
@@ -486,7 +488,6 @@
 <translation id="7763470514545477072">டொமைனின் பிற்பாதிக்கான பொருத்தம்</translation>
 <translation id="7769672763586021400">மாடல் ஐடி</translation>
 <translation id="7784116172884276937">DNS சேவையகங்கள் எதுவும் அமைக்கப்படவில்லை</translation>
-<translation id="7786540085520432425">புதுப்பிக்கப்படும்போது சாளரத்தைச் சிறிதாக்கலாம். ஆனால் சாதனம் மின் இணைப்பிலேயே இருக்க வேண்டும். இதற்குச் சில நிமிடங்கள் ஆகலாம், அத்துடன் இந்தப் புதுப்பிப்பின்போது சாதனத்தில் வேறு எதுவும் செய்ய முடியாமல் போகலாம்</translation>
 <translation id="780301667611848630">வேண்டாம்</translation>
 <translation id="7805768142964895445">நிலை</translation>
 <translation id="7819857487979277519">PSK (WPA அல்லது RSN)</translation>
diff --git a/chromeos/strings/chromeos_strings_te.xtb b/chromeos/strings/chromeos_strings_te.xtb
index fe8bde25..9432a73 100644
--- a/chromeos/strings/chromeos_strings_te.xtb
+++ b/chromeos/strings/chromeos_strings_te.xtb
@@ -53,6 +53,7 @@
 <translation id="1643449475550628585">ప్రతిరోజూ వాల్‌పేపర్ ఇమేజ్‌ను మార్చండి</translation>
 <translation id="1644574205037202324">హిస్టరీ</translation>
 <translation id="1662989795263954667">ఆగిపోయింది - ఇంక్ లేదు</translation>
+<translation id="1668469839109562275">బిల్ట్-ఇన్ VPN</translation>
 <translation id="1703835215927279855">లెటర్</translation>
 <translation id="1706391837335750954">DNS రిసాల్వర్ అందుబాటులో ఉంది</translation>
 <translation id="1715359911173058521">స్కానర్‌తో కమ్యూనికేట్ చేయడంలో ఎదో సమస్య ఉంది. నెట్‌వర్క్ లేదా USB కనెక్షన్‌ను చెక్ చేసి, మళ్లీ ట్రై చేయండి.</translation>
@@ -487,7 +488,6 @@
 <translation id="7763470514545477072">డొమైన్ సఫిక్స్ మ్యాచ్</translation>
 <translation id="7769672763586021400">మోడల్ ID</translation>
 <translation id="7784116172884276937">DNS సర్వర్‌లు ఏవీ సెటప్ చేయబడలేదు</translation>
-<translation id="7786540085520432425">అప్‌డేట్ చేసేటప్పుడు, మీరు విండోను చిన్నదిగా చేయవచ్చు, కానీ మీ పరికరాన్ని అన్‌ప్లగ్ చేయవద్దు. దీనికి కొన్ని నిమిషాల సమయం పట్టవచ్చు, ఇంకా ఈ అప్‌డేట్ జరుగుతున్నప్పుడు మీ పరికరం పని చేయకపోవచ్చు</translation>
 <translation id="780301667611848630">వద్దు , ధన్యవాదాలు</translation>
 <translation id="7805768142964895445">స్థితి</translation>
 <translation id="7819857487979277519">PSK (WPA లేదా RSN)</translation>
diff --git a/chromeos/strings/chromeos_strings_th.xtb b/chromeos/strings/chromeos_strings_th.xtb
index 1ef46503..4a03b94 100644
--- a/chromeos/strings/chromeos_strings_th.xtb
+++ b/chromeos/strings/chromeos_strings_th.xtb
@@ -53,6 +53,7 @@
 <translation id="1643449475550628585">เปลี่ยนรูปภาพวอลเปเปอร์ทุกวัน</translation>
 <translation id="1644574205037202324">ประวัติการเข้าชม</translation>
 <translation id="1662989795263954667">หยุดพิมพ์ - หมึกหมด</translation>
+<translation id="1668469839109562275">VPN ในตัว</translation>
 <translation id="1703835215927279855">Letter</translation>
 <translation id="1706391837335750954">มีรีโซลเวอร์ DNS</translation>
 <translation id="1715359911173058521">เกิดปัญหาในการสื่อสารกับเครื่องสแกน ตรวจสอบการเชื่อมต่อเครือข่ายหรือ USB แล้วลองอีกครั้ง</translation>
@@ -488,7 +489,6 @@
 <translation id="7763470514545477072">การจับคู่ส่วนต่อท้ายโดเมน</translation>
 <translation id="7769672763586021400">รหัสรุ่น</translation>
 <translation id="7784116172884276937">ไม่มีเซิร์ฟเวอร์ DNS ที่ตั้งค่าไว้</translation>
-<translation id="7786540085520432425">คุณย่อหน้าต่างขณะอัปเดตได้แต่ห้ามถอดปลั๊กอุปกรณ์ การดำเนินการนี้อาจใช้เวลาสักครู่และอุปกรณ์อาจไม่ทำงานระหว่างการอัปเดตนี้</translation>
 <translation id="780301667611848630">ไม่ ขอบคุณ</translation>
 <translation id="7805768142964895445">สถานะ</translation>
 <translation id="7819857487979277519">PSK (WPA หรือ RSN)</translation>
diff --git a/chromeos/strings/chromeos_strings_tr.xtb b/chromeos/strings/chromeos_strings_tr.xtb
index cf04206..0d9f52f6 100644
--- a/chromeos/strings/chromeos_strings_tr.xtb
+++ b/chromeos/strings/chromeos_strings_tr.xtb
@@ -488,7 +488,6 @@
 <translation id="7763470514545477072">Alan adı son eki eşleşmesi</translation>
 <translation id="7769672763586021400">Model kimliği</translation>
 <translation id="7784116172884276937">DNS sunucusu ayarlanmamış</translation>
-<translation id="7786540085520432425">Güncelleme yapılırken pencereyi simge durumuna küçültebilirsiniz ancak cihazınızın fişini çekmemeniz gerekir. Güncelleme işlemi birkaç dakika sürebilir ve bu sırada cihazınız çalışmayabilir</translation>
 <translation id="780301667611848630">Hayır, teşekkürler</translation>
 <translation id="7805768142964895445">Durum</translation>
 <translation id="7819857487979277519">PSK (WPA veya RSN)</translation>
diff --git a/chromeos/strings/chromeos_strings_uk.xtb b/chromeos/strings/chromeos_strings_uk.xtb
index 9e7316a..fed178b 100644
--- a/chromeos/strings/chromeos_strings_uk.xtb
+++ b/chromeos/strings/chromeos_strings_uk.xtb
@@ -488,7 +488,6 @@
 <translation id="7763470514545477072">Збіг із суфіксом домену</translation>
 <translation id="7769672763586021400">Ідентифікатор моделі</translation>
 <translation id="7784116172884276937">DNS-сервери не налаштовано</translation>
-<translation id="7786540085520432425">Під час оновлення ви можете згорнути вікно, але не відключайте пристрій. Це може зайняти кілька хвилин. Можливо, пристрій не працюватиме</translation>
 <translation id="780301667611848630">Ні, дякую</translation>
 <translation id="7805768142964895445">Статус</translation>
 <translation id="7819857487979277519">PSK (WPA або RSN)</translation>
diff --git a/chromeos/strings/chromeos_strings_ur.xtb b/chromeos/strings/chromeos_strings_ur.xtb
index b0f2247..ce384aa 100644
--- a/chromeos/strings/chromeos_strings_ur.xtb
+++ b/chromeos/strings/chromeos_strings_ur.xtb
@@ -487,7 +487,6 @@
 <translation id="7763470514545477072">ڈومین لاحقہ کا مماثل</translation>
 <translation id="7769672763586021400">‏ماڈل ID</translation>
 <translation id="7784116172884276937">‏کوئی DNS سرور سیٹ اپ نہیں کیا گیا ہے</translation>
-<translation id="7786540085520432425">اپ ڈیٹ کرتے وقت، آپ ونڈو کو چھوٹا کر سکتے ہیں لیکن اپنے آلے کو ان پلگ نہ کریں۔ اس میں کچھ منٹ لگ سکتے ہیں اور ہو سکتا ہے کہ آپ کا آلہ اس اپ ڈیٹ کے دوران کام نہ کرے</translation>
 <translation id="780301667611848630">نہیں شکریہ</translation>
 <translation id="7805768142964895445">صورتحال</translation>
 <translation id="7819857487979277519">‏‫‫PSK‎‏ (WPA یا RSN)‏</translation>
diff --git a/chromeos/strings/chromeos_strings_uz.xtb b/chromeos/strings/chromeos_strings_uz.xtb
index 32515f5..5f9ca2e 100644
--- a/chromeos/strings/chromeos_strings_uz.xtb
+++ b/chromeos/strings/chromeos_strings_uz.xtb
@@ -53,6 +53,7 @@
 <translation id="1643449475550628585">Fon rasmi har kuni almashtirilsin</translation>
 <translation id="1644574205037202324">Tarix</translation>
 <translation id="1662989795263954667">Toʻxtatildi – Siyoh tugadi</translation>
+<translation id="1668469839109562275">Ichki oʻrnatilgan VPN</translation>
 <translation id="1703835215927279855">Letter</translation>
 <translation id="1706391837335750954">DNS vositasi mavjud</translation>
 <translation id="1715359911173058521">Skaner bilan aloqada muammo bor. Tarmoq yoki USB aloqasini tekshirib, qaytadan urining.</translation>
@@ -488,7 +489,6 @@
 <translation id="7763470514545477072">Domen kengaytmasi topildi</translation>
 <translation id="7769672763586021400">Model identifikatori</translation>
 <translation id="7784116172884276937">DNS serverlar sozlanmagan</translation>
-<translation id="7786540085520432425">Yangilanish vaqtida oynani yigʻib ish qilish mumkin, lekin qurilmani quvvat manbaidan uzmay turing. Bu bir necha daqiqa vaqt olishi mumkin va qurilma yangilanish vaqtida ishlamay qolishi mumkin</translation>
 <translation id="780301667611848630">Kerak emas</translation>
 <translation id="7805768142964895445">Holat</translation>
 <translation id="7819857487979277519">PSK (WPA yoki RSN)</translation>
diff --git a/chromeos/strings/chromeos_strings_vi.xtb b/chromeos/strings/chromeos_strings_vi.xtb
index b7c3c56..145f83f 100644
--- a/chromeos/strings/chromeos_strings_vi.xtb
+++ b/chromeos/strings/chromeos_strings_vi.xtb
@@ -172,6 +172,7 @@
 <translation id="357889014807611375">mạng Wi‑Fi có giới hạn dữ liệu</translation>
 <translation id="3583278742022654445">Cường độ tín hiệu yếu. Hãy thử di chuyển đến gần nguồn tín hiệu Wi-Fi hơn.</translation>
 <translation id="3595596368722241419">Pin đầy</translation>
+<translation id="3603829704940252505">Hình đại diện</translation>
 <translation id="360565022852130722">Mạng Wi-Fi được bảo mật bằng giao thức yếu WEP 802.1x</translation>
 <translation id="3606583719724308068">Đường kết nối đến các trang web HTTPS có độ trễ cao</translation>
 <translation id="3689839747745352263">Kiểm tra <ph name="TEST_NAME" /></translation>
@@ -422,6 +423,7 @@
 <translation id="6905724422583748843">Quay lại <ph name="PAGE_NAME" /></translation>
 <translation id="6910312834584889076">Nắp của máy quét đang mở. Hãy đóng nắp máy quét rồi thử lại.</translation>
 <translation id="6911383237894364323">Không thể kết nối với máy chủ phương tiện</translation>
+<translation id="6935486296377631201">Trình bảo vệ màn hình</translation>
 <translation id="6957231940976260713">Tên dịch vụ</translation>
 <translation id="6961170852793647506">Hãy đặt tài liệu của bạn lên máy quét để bắt đầu</translation>
 <translation id="6965382102122355670">OK</translation>
@@ -486,7 +488,6 @@
 <translation id="7763470514545477072">Khớp hậu tố tên miền</translation>
 <translation id="7769672763586021400">ID kiểu máy</translation>
 <translation id="7784116172884276937">Không có máy chủ DNS nào được thiết lập</translation>
-<translation id="7786540085520432425">Trong khi cập nhật, bạn có thể thu nhỏ cửa sổ nhưng không rút dây nguồn thiết bị. Quá trình này có thể mất vài phút và thiết bị của bạn có thể không hoạt động trong quá trình cập nhật</translation>
 <translation id="780301667611848630">Không, cảm ơn</translation>
 <translation id="7805768142964895445">Trạng thái</translation>
 <translation id="7819857487979277519">PSK (WPA hoặc RSN)</translation>
diff --git a/chromeos/strings/chromeos_strings_zh-CN.xtb b/chromeos/strings/chromeos_strings_zh-CN.xtb
index ed1e804..dda07ec 100644
--- a/chromeos/strings/chromeos_strings_zh-CN.xtb
+++ b/chromeos/strings/chromeos_strings_zh-CN.xtb
@@ -172,6 +172,7 @@
 <translation id="357889014807611375">按流量计费的 Wi-Fi</translation>
 <translation id="3583278742022654445">信号强度较弱。请尝试移到离 Wi-Fi 信号源更近的地方。</translation>
 <translation id="3595596368722241419">电池已充满</translation>
+<translation id="3603829704940252505">头像</translation>
 <translation id="360565022852130722">Wi-Fi 网络采用了防护能力较弱的 WEP 802.1x 协议</translation>
 <translation id="3606583719724308068">HTTPS 网站的延迟时间较长</translation>
 <translation id="3689839747745352263"><ph name="TEST_NAME" />测试</translation>
@@ -422,6 +423,7 @@
 <translation id="6905724422583748843">返回“<ph name="PAGE_NAME" />”</translation>
 <translation id="6910312834584889076">扫描仪的盖子没合上。请合上盖子,然后重试。</translation>
 <translation id="6911383237894364323">无法连接到媒体服务器</translation>
+<translation id="6935486296377631201">屏保</translation>
 <translation id="6957231940976260713">服务名称</translation>
 <translation id="6961170852793647506">首先,将您的文件放置在扫描仪上</translation>
 <translation id="6965382102122355670">确定</translation>
@@ -486,7 +488,6 @@
 <translation id="7763470514545477072">域名后缀匹配</translation>
 <translation id="7769672763586021400">型号 ID</translation>
 <translation id="7784116172884276937">未设置 DNS 服务器</translation>
-<translation id="7786540085520432425">更新时,您可以最小化窗口,但不要拔掉设备的电源插头。整个更新过程可能需要几分钟的时间,在此期间,您的设备可能会无法正常运行</translation>
 <translation id="780301667611848630">不用了,谢谢</translation>
 <translation id="7805768142964895445">状态</translation>
 <translation id="7819857487979277519">PSK(WPA 或 RSN)</translation>
diff --git a/chromeos/strings/chromeos_strings_zh-HK.xtb b/chromeos/strings/chromeos_strings_zh-HK.xtb
index 9b99157a..3e6000f 100644
--- a/chromeos/strings/chromeos_strings_zh-HK.xtb
+++ b/chromeos/strings/chromeos_strings_zh-HK.xtb
@@ -488,7 +488,6 @@
 <translation id="7763470514545477072">域名尾碼相符</translation>
 <translation id="7769672763586021400">型號識別碼</translation>
 <translation id="7784116172884276937">沒有設定 DNS 伺服器</translation>
-<translation id="7786540085520432425">在更新期間,您可以將視窗縮到最小,但不要拔除裝置。操作可能需時幾分鐘,且裝置在更新時可能無法運作</translation>
 <translation id="780301667611848630">不用了,謝謝</translation>
 <translation id="7805768142964895445">狀態</translation>
 <translation id="7819857487979277519">PSK (WPA 或 RSN)</translation>
diff --git a/chromeos/strings/chromeos_strings_zh-TW.xtb b/chromeos/strings/chromeos_strings_zh-TW.xtb
index 51c2a87c..f560ec62 100644
--- a/chromeos/strings/chromeos_strings_zh-TW.xtb
+++ b/chromeos/strings/chromeos_strings_zh-TW.xtb
@@ -488,7 +488,6 @@
 <translation id="7763470514545477072">網域字尾比對</translation>
 <translation id="7769672763586021400">型號 ID</translation>
 <translation id="7784116172884276937">尚未設定任何 DNS 伺服器</translation>
-<translation id="7786540085520432425">在更新期間,你可以將視窗縮到最小,但不要拔除裝置的插頭。更新作業可能需要幾分鐘才會完成,這段期間裝置可能無法正常運作</translation>
 <translation id="780301667611848630">不用了,謝謝</translation>
 <translation id="7805768142964895445">狀態</translation>
 <translation id="7819857487979277519">PSK (WPA 或 RSN)</translation>
diff --git a/chromeos/strings/chromeos_strings_zu.xtb b/chromeos/strings/chromeos_strings_zu.xtb
index 493f2ea..4a3260e 100644
--- a/chromeos/strings/chromeos_strings_zu.xtb
+++ b/chromeos/strings/chromeos_strings_zu.xtb
@@ -488,7 +488,6 @@
 <translation id="7763470514545477072">Ukufana kwesiqede sesizinda</translation>
 <translation id="7769672763586021400">I-ID yemodeli</translation>
 <translation id="7784116172884276937">Awekho amaseva we-DNS asethiwe</translation>
-<translation id="7786540085520432425">Ngenkathi ubuyekeza, unganciphisa iwindi kodwa ungayikhiphi eplakeni idivayisi yakho. Lokhu kungase kuthathe imizuzu embalwa futhi idivayisi yakho ingase ingasebenzi phakathi nalesi sibuyekezo</translation>
 <translation id="780301667611848630">Cha ngiyabonga</translation>
 <translation id="7805768142964895445">Isimo</translation>
 <translation id="7819857487979277519">I-PSK (i-WPA noma i-RSN)</translation>
diff --git a/components/breadcrumbs/core/breadcrumb_persistent_storage_manager.cc b/components/breadcrumbs/core/breadcrumb_persistent_storage_manager.cc
index 2fb1a62..12d4f76b 100644
--- a/components/breadcrumbs/core/breadcrumb_persistent_storage_manager.cc
+++ b/components/breadcrumbs/core/breadcrumb_persistent_storage_manager.cc
@@ -184,7 +184,7 @@
       FROM_HERE,
       base::BindOnce(&DoGetStoredEventsLength, breadcrumbs_file_path_),
       base::BindOnce(
-          &BreadcrumbPersistentStorageManager::SetCurrentMappedFilePosition,
+          &BreadcrumbPersistentStorageManager::InitializeFilePosition,
           weak_ptr_factory_.GetWeakPtr()));
 }
 
@@ -234,15 +234,12 @@
     // out the
     const int event_with_seperator_size =
         event.size() + strlen(kEventSeparator);
-    if (event_with_seperator_size + current_mapped_file_position_.value() >=
-        kMaxDataLength) {
+    if (event_with_seperator_size + file_position_.value() >= kMaxDataLength)
       break;
-    }
 
     breadcrumbs.push_back(kEventSeparator);
     breadcrumbs.push_back(event);
-    current_mapped_file_position_ =
-        current_mapped_file_position_.value() + event_with_seperator_size;
+    file_position_ = file_position_.value() + event_with_seperator_size;
   }
 
   std::reverse(breadcrumbs.begin(), breadcrumbs.end());
@@ -267,7 +264,7 @@
   write_timer_.Stop();
 
   last_written_time_ = base::TimeTicks::Now();
-  current_mapped_file_position_ = 0;
+  file_position_ = 0;
 
   // Load persisted events directly from file because the correct order can not
   // be reconstructed from the multiple BreadcrumbManagers with the partial
@@ -287,14 +284,12 @@
   // DoInsertEventsIntoMemoryMappedFile() callback, since |pending_breadcrumbs_|
   // is about to be cleared.
   const std::string pending_breadcrumbs = pending_breadcrumbs_;
-  task_runner_->PostTask(FROM_HERE,
-                         base::BindOnce(&DoInsertEventsIntoMemoryMappedFile,
-                                        breadcrumbs_file_path_,
-                                        current_mapped_file_position_.value(),
-                                        pending_breadcrumbs));
+  task_runner_->PostTask(
+      FROM_HERE, base::BindOnce(&DoInsertEventsIntoMemoryMappedFile,
+                                breadcrumbs_file_path_, file_position_.value(),
+                                pending_breadcrumbs));
 
-  current_mapped_file_position_ =
-      current_mapped_file_position_.value() + pending_breadcrumbs_.size();
+  file_position_ = file_position_.value() + pending_breadcrumbs_.size();
   last_written_time_ = base::TimeTicks::Now();
 
   pending_breadcrumbs_.clear();
@@ -311,22 +306,25 @@
   WriteEvents();
 }
 
-void BreadcrumbPersistentStorageManager::SetCurrentMappedFilePosition(
+void BreadcrumbPersistentStorageManager::InitializeFilePosition(
     size_t file_size) {
-  current_mapped_file_position_ = file_size;
+  file_position_ = file_size;
+  // Write any startup events that have accumulated while waiting for this
+  // function to run.
+  WriteEvents();
 }
 
 void BreadcrumbPersistentStorageManager::WriteEvents() {
+  // No events can be written to the file until the size of existing breadcrumbs
+  // is known.
+  if (!file_position_)
+    return;
+
   write_timer_.Stop();
 
   const base::TimeDelta time_delta_since_last_write =
       base::TimeTicks::Now() - last_written_time_;
-  if (!current_mapped_file_position_) {
-    // If the size of the existing breadcrumbs is not yet known, try again in
-    // |kMinDelayBetweenWrites|.
-    write_timer_.Start(FROM_HERE, kMinDelayBetweenWrites, this,
-                       &BreadcrumbPersistentStorageManager::WriteEvents);
-  } else if (time_delta_since_last_write < kMinDelayBetweenWrites) {
+  if (time_delta_since_last_write < kMinDelayBetweenWrites) {
     // If an event was just written, delay writing the event to disk in order to
     // limit overhead.
     write_timer_.Start(FROM_HERE,
@@ -335,7 +333,7 @@
   } else {
     // If the event does not fit within |kPersistedFilesizeInBytes|, rewrite the
     // file to trim old events.
-    if ((current_mapped_file_position_.value() + pending_breadcrumbs_.size())
+    if ((file_position_.value() + pending_breadcrumbs_.size())
         // Use >= here instead of > to allow space for \0 to terminate file.
         >= kPersistedFilesizeInBytes) {
       RewriteAllExistingBreadcrumbs();
diff --git a/components/breadcrumbs/core/breadcrumb_persistent_storage_manager.h b/components/breadcrumbs/core/breadcrumb_persistent_storage_manager.h
index 2d8fd0c..29e96a58 100644
--- a/components/breadcrumbs/core/breadcrumb_persistent_storage_manager.h
+++ b/components/breadcrumbs/core/breadcrumb_persistent_storage_manager.h
@@ -67,8 +67,8 @@
       BreadcrumbManagerKeyedService* service);
 
  private:
-  // Sets |current_mapped_file_position_| to |file_size|;
-  void SetCurrentMappedFilePosition(size_t file_size);
+  // Initializes |file_position_| to |file_size| and writes any events so far.
+  void InitializeFilePosition(size_t file_size);
 
   // Writes |pending_breadcrumbs_| to |breadcrumbs_file_| if it fits, otherwise
   // rewrites the file. NOTE: Writing may be delayed if the file has recently
@@ -117,7 +117,7 @@
   // The current size of breadcrumbs written to |breadcrumbs_file_path_|.
   // NOTE: The optional will not have a value until the size of the existing
   // file, if any, is retrieved.
-  absl::optional<size_t> current_mapped_file_position_;
+  absl::optional<size_t> file_position_;
 
   // The SequencedTaskRunner on which File IO operations are performed.
   scoped_refptr<base::SequencedTaskRunner> task_runner_;
diff --git a/components/browser_sync/README.md b/components/browser_sync/README.md
new file mode 100644
index 0000000..5cb33a1
--- /dev/null
+++ b/components/browser_sync/README.md
@@ -0,0 +1 @@
+See components/sync/README.md.
diff --git a/components/browser_ui/strings/android/translations/browser_ui_strings_ar.xtb b/components/browser_ui/strings/android/translations/browser_ui_strings_ar.xtb
index 334c5a6..179496a 100644
--- a/components/browser_ui/strings/android/translations/browser_ui_strings_ar.xtb
+++ b/components/browser_ui/strings/android/translations/browser_ui_strings_ar.xtb
@@ -120,6 +120,7 @@
 <translation id="4008040567710660924">السماح لموقع إلكتروني معيّن بتشغيل ملفات تعريف الارتباط</translation>
 <translation id="4046123991198612571">المقطع الصوتي التالي</translation>
 <translation id="4165986682804962316">إعدادات المواقع الإلكترونية</translation>
+<translation id="4194328954146351878">‏يتم طلب الإذن قبل السماح للمواقع الإلكترونية بالاطّلاع على المعلومات وتعديلها على الأجهزة المزوَّدة بتقنية NFC (إعداد مُقترَح).</translation>
 <translation id="4200726100658658164">فتح إعدادات الموقع الجغرافي</translation>
 <translation id="4226663524361240545">يمكن أن تؤدي الإشعارات إلى اهتزاز الجهاز</translation>
 <translation id="4259722352634471385">التنقل محظور: <ph name="URL" /></translation>
@@ -320,6 +321,7 @@
 <translation id="8903921497873541725">تكبير</translation>
 <translation id="8921772741368021346"><ph name="POSITION" /> / <ph name="DURATION" /></translation>
 <translation id="8926666909099850184">‏تقنية NFC غير مفعّلة على هذا الجهاز. فعّلها في<ph name="BEGIN_LINK" />إعدادات Android<ph name="END_LINK" />.</translation>
+<translation id="8928445016601307354">‏يتيح لك هذا الإعداد منع المواقع الإلكترونية من الاطّلاع على المعلومات وتعديلها على الأجهزة المزوَّدة بتقنية NFC.</translation>
 <translation id="8941729603749328384">www.example.com</translation>
 <translation id="8958424370300090006">حظر ملفات تعريف الارتباط لموقع إلكتروني مُحدَّد.</translation>
 <translation id="8959122750345127698">التنقل غير قابل للوصول: <ph name="URL" /></translation>
diff --git a/components/certificate_transparency/data/log_list.json b/components/certificate_transparency/data/log_list.json
index bc2d169..0455b501 100644
--- a/components/certificate_transparency/data/log_list.json
+++ b/components/certificate_transparency/data/log_list.json
@@ -1,6 +1,6 @@
 {
-  "version": "5.1",
-  "log_list_timestamp": "2022-01-25T01:34:05Z",
+  "version": "5.3",
+  "log_list_timestamp": "2022-01-27T01:36:14Z",
   "operators": [
     {
       "name": "Google",
diff --git a/components/exo/data_offer_unittest.cc b/components/exo/data_offer_unittest.cc
index 2be8d95..2217e1d 100644
--- a/components/exo/data_offer_unittest.cc
+++ b/components/exo/data_offer_unittest.cc
@@ -25,6 +25,7 @@
 #include "components/exo/test/exo_test_base.h"
 #include "components/exo/test/exo_test_data_exchange_delegate.h"
 #include "third_party/skia/include/core/SkBitmap.h"
+#include "ui/base/clipboard/clipboard.h"
 #include "ui/base/clipboard/clipboard_format_type.h"
 #include "ui/base/clipboard/scoped_clipboard_writer.h"
 #include "ui/base/data_transfer_policy/data_transfer_policy_controller.h"
@@ -35,7 +36,13 @@
 namespace exo {
 namespace {
 
-using DataOfferTest = test::ExoTestBase;
+class DataOfferTest : public test::ExoTestBase {
+ public:
+  void TearDown() override {
+    ui::Clipboard::DestroyClipboardForCurrentThread();
+    test::ExoTestBase::TearDown();
+  }
+};
 
 class TestDataOfferDelegate : public DataOfferDelegate {
  public:
diff --git a/components/lookalikes/core/lookalike_url_util.cc b/components/lookalikes/core/lookalike_url_util.cc
index 6307b8b..5c761fd 100644
--- a/components/lookalikes/core/lookalike_url_util.cc
+++ b/components/lookalikes/core/lookalike_url_util.cc
@@ -10,6 +10,7 @@
 #include "base/callback.h"
 #include "base/containers/contains.h"
 #include "base/feature_list.h"
+#include "base/hash/sha1.h"
 #include "base/i18n/char_iterator.h"
 #include "base/memory/scoped_refptr.h"
 #include "base/memory/singleton.h"
@@ -1128,4 +1129,24 @@
   Top500DomainsParams* params = GetTopDomainParams();
   *params = {top500_domains::kTop500EditDistanceSkeletons,
              top500_domains::kNumTop500EditDistanceSkeletons};
+}
+
+bool IsHeuristicEnabledForHostname(
+    const reputation::SafetyTipsConfig* config_proto,
+    const reputation::HeuristicLaunchConfig::Heuristic heuristic,
+    const std::string& lookalike_etld_plus_one) {
+  DCHECK(!lookalike_etld_plus_one.empty());
+  const unsigned char* bytes =
+      reinterpret_cast<const unsigned char*>(lookalike_etld_plus_one.c_str());
+  unsigned char data[base::kSHA1Length];
+  base::SHA1HashBytes(bytes, lookalike_etld_plus_one.length(), data);
+
+  float cohort = data[0] / 2.56;
+  for (const reputation::HeuristicLaunchConfig& config :
+       config_proto->launch_config()) {
+    if (heuristic == config.heuristic()) {
+      return config.launch_percentage() > cohort;
+    }
+  }
+  return false;
 }
\ No newline at end of file
diff --git a/components/lookalikes/core/lookalike_url_util.h b/components/lookalikes/core/lookalike_url_util.h
index 8679a9ad..da5d761 100644
--- a/components/lookalikes/core/lookalike_url_util.h
+++ b/components/lookalikes/core/lookalike_url_util.h
@@ -235,4 +235,11 @@
 // Resets information about top 500 domains for testing.
 void ResetTop500DomainsParamsForTesting();
 
+// Returns true if the launch configuration provided by the component updater
+// enables `heuristic` for the given `etld_plus_one`.
+bool IsHeuristicEnabledForHostname(
+    const reputation::SafetyTipsConfig* config_proto,
+    reputation::HeuristicLaunchConfig::Heuristic heuristic,
+    const std::string& lookalike_etld_plus_one);
+
 #endif  // COMPONENTS_LOOKALIKES_CORE_LOOKALIKE_URL_UTIL_H_
diff --git a/components/lookalikes/core/lookalike_url_util_unittest.cc b/components/lookalikes/core/lookalike_url_util_unittest.cc
index bdd7ea8..47f0e3d 100644
--- a/components/lookalikes/core/lookalike_url_util_unittest.cc
+++ b/components/lookalikes/core/lookalike_url_util_unittest.cc
@@ -499,3 +499,60 @@
         << "when comparing " << test_case.str1 << " with " << test_case.str2;
   }
 }
+
+TEST(LookalikeUrlUtilTest, IsHeuristicEnabledForHostname) {
+  reputation::SafetyTipsConfig proto;
+  reputation::HeuristicLaunchConfig* config = proto.add_launch_config();
+  config->set_heuristic(
+      reputation::HeuristicLaunchConfig::HEURISTIC_CHARACTER_SWAP);
+
+  // Minimum rollout percentages to enable a heuristic on each site:
+  // example1.com: 79%
+  // example2.com: 16%
+  // example3.com: 36%
+
+  // Slowly ramp up the launch and cover more sites.
+  config->set_launch_percentage(0);
+  EXPECT_FALSE(IsHeuristicEnabledForHostname(
+      &proto, reputation::HeuristicLaunchConfig::HEURISTIC_CHARACTER_SWAP,
+      "example1.com"));
+  EXPECT_FALSE(IsHeuristicEnabledForHostname(
+      &proto, reputation::HeuristicLaunchConfig::HEURISTIC_CHARACTER_SWAP,
+      "example2.com"));
+  EXPECT_FALSE(IsHeuristicEnabledForHostname(
+      &proto, reputation::HeuristicLaunchConfig::HEURISTIC_CHARACTER_SWAP,
+      "example3.com"));
+
+  config->set_launch_percentage(25);
+  EXPECT_FALSE(IsHeuristicEnabledForHostname(
+      &proto, reputation::HeuristicLaunchConfig::HEURISTIC_CHARACTER_SWAP,
+      "example1.com"));
+  EXPECT_TRUE(IsHeuristicEnabledForHostname(
+      &proto, reputation::HeuristicLaunchConfig::HEURISTIC_CHARACTER_SWAP,
+      "example2.com"));
+  EXPECT_FALSE(IsHeuristicEnabledForHostname(
+      &proto, reputation::HeuristicLaunchConfig::HEURISTIC_CHARACTER_SWAP,
+      "example3.com"));
+
+  config->set_launch_percentage(50);
+  EXPECT_FALSE(IsHeuristicEnabledForHostname(
+      &proto, reputation::HeuristicLaunchConfig::HEURISTIC_CHARACTER_SWAP,
+      "example1.com"));
+  EXPECT_TRUE(IsHeuristicEnabledForHostname(
+      &proto, reputation::HeuristicLaunchConfig::HEURISTIC_CHARACTER_SWAP,
+      "example2.com"));
+  EXPECT_TRUE(IsHeuristicEnabledForHostname(
+      &proto, reputation::HeuristicLaunchConfig::HEURISTIC_CHARACTER_SWAP,
+      "example3.com"));
+
+  config->set_launch_percentage(100);
+  EXPECT_TRUE(IsHeuristicEnabledForHostname(
+      &proto, reputation::HeuristicLaunchConfig::HEURISTIC_CHARACTER_SWAP,
+      "example1.com"));
+  EXPECT_TRUE(IsHeuristicEnabledForHostname(
+      &proto, reputation::HeuristicLaunchConfig::HEURISTIC_CHARACTER_SWAP,
+      "example2.com"));
+  EXPECT_TRUE(IsHeuristicEnabledForHostname(
+      &proto, reputation::HeuristicLaunchConfig::HEURISTIC_CHARACTER_SWAP,
+      "example3.com"));
+}
\ No newline at end of file
diff --git a/components/metrics/clean_exit_beacon.cc b/components/metrics/clean_exit_beacon.cc
index a5a4395..03d34431 100644
--- a/components/metrics/clean_exit_beacon.cc
+++ b/components/metrics/clean_exit_beacon.cc
@@ -265,9 +265,10 @@
 #if BUILDFLAG(IS_ANDROID)
   // TODO(crbug/1248239): Use the beacon file, if any, to maybe increment the
   // crash streak when the Extended Variations Safe Mode experiment is fully
-  // enabled on Android Chrome dev, beta, and stable.
+  // enabled on Android Chrome beta and stable.
   if (channel_ != version_info::Channel::UNKNOWN &&
-      channel_ != version_info::Channel::CANARY) {
+      channel_ != version_info::Channel::CANARY &&
+      channel_ != version_info::Channel::DEV) {
     beacon_file_contents.reset();
   }
 #endif  // BUILDFLAG(IS_ANDROID)
@@ -308,9 +309,10 @@
 #if BUILDFLAG(IS_ANDROID)
   // TODO(crbug/1248239): Fully enable the Extended Variations Safe Mode
   // experiment on Android Chrome by using the beacon file's beacon value for
-  // clients in the SignalAndWriteViaFileUtil group on dev, beta, and stable.
+  // clients in the SignalAndWriteViaFileUtil group on beta and stable.
   if (channel_ != version_info::Channel::UNKNOWN &&
-      channel_ != version_info::Channel::CANARY) {
+      channel_ != version_info::Channel::CANARY &&
+      channel_ != version_info::Channel::DEV) {
     return local_state_beacon_value.value_or(true);
   }
 #endif  // BUILDFLAG(IS_ANDROID)
diff --git a/components/metrics/clean_exit_beacon_unittest.cc b/components/metrics/clean_exit_beacon_unittest.cc
index 8bdb056..443a22a 100644
--- a/components/metrics/clean_exit_beacon_unittest.cc
+++ b/components/metrics/clean_exit_beacon_unittest.cc
@@ -423,8 +423,7 @@
 // channels as necessary.
 INSTANTIATE_TEST_SUITE_P(All,
                          IgnoredBeaconFileTest,
-                         ::testing::Values(version_info::Channel::DEV,
-                                           version_info::Channel::BETA,
+                         ::testing::Values(version_info::Channel::BETA,
                                            version_info::Channel::STABLE));
 
 // Verify that the beacon file, if any, is ignored on Android.
diff --git a/components/page_load_metrics/browser/observers/core/uma_page_load_metrics_observer.cc b/components/page_load_metrics/browser/observers/core/uma_page_load_metrics_observer.cc
index 6bea756c..33b80c5 100644
--- a/components/page_load_metrics/browser/observers/core/uma_page_load_metrics_observer.cc
+++ b/components/page_load_metrics/browser/observers/core/uma_page_load_metrics_observer.cc
@@ -273,9 +273,6 @@
 const char kHistogramFirstForeground[] =
     "PageLoad.PageTiming.NavigationToFirstForeground";
 
-const char kHistogramFailedProvisionalLoad[] =
-    "PageLoad.PageTiming.NavigationToFailedProvisionalLoad";
-
 const char kHistogramUserGestureNavigationToForwardBack[] =
     "PageLoad.PageTiming.ForegroundDuration.PageEndReason."
     "ForwardBackNavigation.UserGesture";
@@ -823,17 +820,6 @@
 
 void UmaPageLoadMetricsObserver::OnFailedProvisionalLoad(
     const page_load_metrics::FailedProvisionalLoadInfo& failed_load_info) {
-  // Only handle actual failures; provisional loads that failed due to another
-  // committed load or due to user action are recorded in
-  // AbortsPageLoadMetricsObserver.
-  if (failed_load_info.error != net::OK &&
-      failed_load_info.error != net::ERR_ABORTED) {
-    if (page_load_metrics::WasStartedInForegroundOptionalEventInForeground(
-            failed_load_info.time_to_failed_provisional_load, GetDelegate())) {
-      PAGE_LOAD_HISTOGRAM(internal::kHistogramFailedProvisionalLoad,
-                          failed_load_info.time_to_failed_provisional_load);
-    }
-  }
   // Provide an empty PageLoadTiming, since we don't have any timing metrics
   // for failed provisional loads.
   RecordForegroundDurationHistograms(page_load_metrics::mojom::PageLoadTiming(),
diff --git a/components/page_load_metrics/browser/observers/core/uma_page_load_metrics_observer.h b/components/page_load_metrics/browser/observers/core/uma_page_load_metrics_observer.h
index f7c8c23..0fa04ed 100644
--- a/components/page_load_metrics/browser/observers/core/uma_page_load_metrics_observer.h
+++ b/components/page_load_metrics/browser/observers/core/uma_page_load_metrics_observer.h
@@ -77,8 +77,6 @@
 extern const char kHistogramLoadTypeParseStartForwardBack[];
 extern const char kHistogramLoadTypeParseStartNewNavigation[];
 
-extern const char kHistogramFailedProvisionalLoad[];
-
 extern const char kHistogramUserGestureNavigationToForwardBack[];
 
 extern const char kHistogramPageTimingForegroundDuration[];
diff --git a/components/page_load_metrics/browser/observers/core/uma_page_load_metrics_observer_unittest.cc b/components/page_load_metrics/browser/observers/core/uma_page_load_metrics_observer_unittest.cc
index 972a6d3..17b0d3e 100644
--- a/components/page_load_metrics/browser/observers/core/uma_page_load_metrics_observer_unittest.cc
+++ b/components/page_load_metrics/browser/observers/core/uma_page_load_metrics_observer_unittest.cc
@@ -397,8 +397,6 @@
   tester()->histogram_tester().ExpectTotalCount(internal::kHistogramLoad, 0);
   tester()->histogram_tester().ExpectTotalCount(
       internal::kHistogramFirstImagePaint, 0);
-  tester()->histogram_tester().ExpectTotalCount(
-      internal::kHistogramFailedProvisionalLoad, 1);
 
   tester()->histogram_tester().ExpectTotalCount(
       internal::kHistogramPageTimingForegroundDuration, 0);
@@ -406,18 +404,6 @@
       internal::kHistogramPageTimingForegroundDurationNoCommit, 1);
 }
 
-TEST_F(UmaPageLoadMetricsObserverTest, FailedBackgroundProvisionalLoad) {
-  // Test that failed provisional event does not get logged in the
-  // histogram if it happened in the background
-  GURL url(kDefaultTestUrl);
-  web_contents()->WasHidden();
-  content::NavigationSimulator::NavigateAndFailFromDocument(
-      url, net::ERR_TIMED_OUT, main_rfh());
-
-  tester()->histogram_tester().ExpectTotalCount(
-      internal::kHistogramFailedProvisionalLoad, 0);
-}
-
 TEST_F(UmaPageLoadMetricsObserverTest, Reload) {
   page_load_metrics::mojom::PageLoadTiming timing;
   page_load_metrics::InitPageLoadTimingForTest(&timing);
diff --git a/components/password_manager/core/browser/password_store_proxy_backend.cc b/components/password_manager/core/browser/password_store_proxy_backend.cc
index a567779..499c9fcb 100644
--- a/components/password_manager/core/browser/password_store_proxy_backend.cc
+++ b/components/password_manager/core/browser/password_store_proxy_backend.cc
@@ -26,11 +26,6 @@
 
 namespace {
 
-bool ShouldExecuteReadOperationsOnShadowBackend(bool is_syncing) {
-  return is_syncing && base::FeatureList::IsEnabled(
-                           features::kUnifiedPasswordManagerShadowAndroid);
-}
-
 bool ShouldExecuteModifyOperationsOnShadowBackend(PrefService* prefs,
                                                   bool is_syncing) {
   if (!base::FeatureList::IsEnabled(
@@ -49,6 +44,17 @@
   return true;
 }
 
+bool ShouldExecuteReadOperationsOnShadowBackend(PrefService* prefs,
+                                                bool is_syncing) {
+  if (ShouldExecuteModifyOperationsOnShadowBackend(prefs, is_syncing)) {
+    // Read operations are always allowed whenever modifications are allowed.
+    // i.e. necessary migrations have happened and appropriate flags are set.
+    return true;
+  }
+  return is_syncing && base::FeatureList::IsEnabled(
+                           features::kUnifiedPasswordManagerShadowAndroid);
+}
+
 using MethodName = base::StrongAlias<struct MethodNameTag, std::string>;
 
 struct LoginsResultImpl {
@@ -316,7 +322,7 @@
           .Then(std::move(callback)));
 
   if (ShouldExecuteReadOperationsOnShadowBackend(
-          is_syncing_passwords_callback_.Run())) {
+          prefs_, is_syncing_passwords_callback_.Run())) {
     shadow_backend_->GetAllLoginsAsync(
         base::BindOnce(&ShadowTrafficMetricsRecorder<
                            LoginsResultOrErrorImpl>::RecordShadowResult,
@@ -336,7 +342,7 @@
           .Then(std::move(callback)));
 
   if (ShouldExecuteReadOperationsOnShadowBackend(
-          is_syncing_passwords_callback_.Run())) {
+          prefs_, is_syncing_passwords_callback_.Run())) {
     shadow_backend_->GetAutofillableLoginsAsync(
         base::BindOnce(&ShadowTrafficMetricsRecorder<
                            LoginsResultOrErrorImpl>::RecordShadowResult,
@@ -359,7 +365,7 @@
       include_psl, forms);
 
   if (ShouldExecuteReadOperationsOnShadowBackend(
-          is_syncing_passwords_callback_.Run())) {
+          prefs_, is_syncing_passwords_callback_.Run())) {
     shadow_backend_->FillMatchingLoginsAsync(
         base::BindOnce(
             &ShadowTrafficMetricsRecorder<LoginsResultImpl>::RecordShadowResult,
diff --git a/components/password_manager/core/browser/password_store_proxy_backend_unittest.cc b/components/password_manager/core/browser/password_store_proxy_backend_unittest.cc
index 3540ace..6781951 100644
--- a/components/password_manager/core/browser/password_store_proxy_backend_unittest.cc
+++ b/components/password_manager/core/browser/password_store_proxy_backend_unittest.cc
@@ -317,7 +317,14 @@
 }
 
 TEST_F(PasswordStoreProxyBackendTest,
-       NoShadowGetAllLoginsAsyncWhenSyncDisabled) {
+       NoShadowGetAllLoginsAsyncWithoutSyncOrMigration) {
+  base::test::ScopedFeatureList feature_list;
+  feature_list.InitWithFeaturesAndParameters(
+      /*enabled_features=*/{{features::kUnifiedPasswordManagerMigration,
+                             {{"migration_version", "2"}}}},
+      /*disabled_features=*/{});
+  prefs()->SetInteger(prefs::kCurrentMigrationVersionToGoogleMobileServices, 1);
+
   base::HistogramTester histogram_tester;
   base::MockCallback<LoginsOrErrorReply> mock_reply;
   std::vector<std::unique_ptr<PasswordForm>> expected_logins =
@@ -346,7 +353,13 @@
 }
 
 TEST_F(PasswordStoreProxyBackendTest,
-       NoShadowGetAutofillableLoginsAsyncWhenSyncDisabled) {
+       NoShadowGetAutofillableLoginsAsyncWithoutSyncOrMigration) {
+  base::test::ScopedFeatureList feature_list;
+  feature_list.InitWithFeaturesAndParameters(
+      /*enabled_features=*/{{features::kUnifiedPasswordManagerMigration,
+                             {{"migration_version", "2"}}}},
+      /*disabled_features=*/{});
+  prefs()->SetInteger(prefs::kCurrentMigrationVersionToGoogleMobileServices, 1);
   EXPECT_CALL(is_syncing_passwords_callback_, Run)
       .WillRepeatedly(Return(false));
 
@@ -356,7 +369,13 @@
 }
 
 TEST_F(PasswordStoreProxyBackendTest,
-       NoShadowFillMatchingLoginsAsyncWhenSyncDisabled) {
+       NoShadowFillMatchingLoginsAsyncWithoutSyncOrMigration) {
+  base::test::ScopedFeatureList feature_list;
+  feature_list.InitWithFeaturesAndParameters(
+      /*enabled_features=*/{{features::kUnifiedPasswordManagerMigration,
+                             {{"migration_version", "2"}}}},
+      /*disabled_features=*/{});
+  prefs()->SetInteger(prefs::kCurrentMigrationVersionToGoogleMobileServices, 1);
   EXPECT_CALL(is_syncing_passwords_callback_, Run)
       .WillRepeatedly(Return(false));
 
@@ -486,6 +505,45 @@
 }
 
 TEST_F(PasswordStoreProxyBackendTest,
+       ShadowGetAllLoginsAsyncWhenSyncDisabledAndInitialMigrationComplete) {
+  base::test::ScopedFeatureList feature_list;
+  feature_list.InitWithFeaturesAndParameters(
+      /*enabled_features=*/{{features::kUnifiedPasswordManagerMigration,
+                             {{"migration_version", "2"}}}},
+      /*disabled_features=*/{});
+  prefs()->SetInteger(prefs::kCurrentMigrationVersionToGoogleMobileServices, 2);
+  EXPECT_CALL(is_syncing_passwords_callback_, Run)
+      .WillRepeatedly(Return(false));
+
+  base::HistogramTester histogram_tester;
+  base::MockCallback<LoginsOrErrorReply> mock_reply;
+  std::vector<std::unique_ptr<PasswordForm>> expected_logins =
+      CreateTestLogins();
+  EXPECT_CALL(mock_reply, Run(LoginsResultsOrErrorAre(&expected_logins)));
+  EXPECT_CALL(main_backend(), GetAllLoginsAsync)
+      .WillOnce(WithArg<0>(Invoke([](LoginsOrErrorReply reply) -> void {
+        std::move(reply).Run(CreateTestLogins());
+      })));
+  EXPECT_CALL(shadow_backend(), GetAllLoginsAsync)
+      .WillOnce(WithArg<0>(Invoke([](LoginsOrErrorReply reply) -> void {
+        std::move(reply).Run(CreateTestLogins());
+      })));
+  proxy_backend().GetAllLoginsAsync(mock_reply.Get());
+
+  std::string prefix =
+      "PasswordManager.PasswordStoreProxyBackend.GetAllLoginsAsync.";
+
+  histogram_tester.ExpectTotalCount(prefix + "Diff.Abs", 1);
+  histogram_tester.ExpectTotalCount(prefix + "MainMinusShadow.Abs", 1);
+  histogram_tester.ExpectTotalCount(prefix + "ShadowMinusMain.Abs", 1);
+  histogram_tester.ExpectTotalCount(prefix + "InconsistentPasswords.Abs", 1);
+  histogram_tester.ExpectTotalCount(prefix + "Diff.Rel", 1);
+  histogram_tester.ExpectTotalCount(prefix + "MainMinusShadow.Rel", 1);
+  histogram_tester.ExpectTotalCount(prefix + "ShadowMinusMain.Rel", 1);
+  histogram_tester.ExpectTotalCount(prefix + "InconsistentPasswords.Rel", 1);
+}
+
+TEST_F(PasswordStoreProxyBackendTest,
        ShadowUpdateLoginAsyncWhenSyncDisabledAndInitialMigrationComplete) {
   base::test::ScopedFeatureList feature_list;
   feature_list.InitWithFeaturesAndParameters(
diff --git a/components/password_manager/core/browser/site_affiliation/affiliation_fetcher_base.cc b/components/password_manager/core/browser/site_affiliation/affiliation_fetcher_base.cc
index 9ecf66fd..62debb40 100644
--- a/components/password_manager/core/browser/site_affiliation/affiliation_fetcher_base.cc
+++ b/components/password_manager/core/browser/site_affiliation/affiliation_fetcher_base.cc
@@ -103,8 +103,11 @@
   //   * The |result| will be free of duplicate or empty equivalence classes.
 
   affiliation_pb::LookupAffiliationResponse response;
-  if (!response.ParseFromString(serialized_response))
+  if (!response.ParseFromString(serialized_response)) {
+    base::UmaHistogramBoolean(
+        "PasswordManager.AffiliationFetcher.FailedToParseResponse", true);
     return false;
+  }
 
   return ParseLookupAffiliationResponse(GetRequestedFacetURIs(), response,
                                         result);
diff --git a/components/policy/resources/policy_templates.json b/components/policy/resources/policy_templates.json
index 1cea657..33f93f0 100644
--- a/components/policy/resources/policy_templates.json
+++ b/components/policy/resources/policy_templates.json
@@ -10348,7 +10348,7 @@
 
       This policy is planned to be removed in <ph name="PRODUCT_NAME">$1<ex>Google Chrome</ex></ph> for Linux version 83, when support for the legacy certificate verifier on Linux is planned to be removed.
 
-      This policy is planned to be removed in <ph name="PRODUCT_NAME">$1<ex>Google Chrome</ex></ph> for Mac OS X version 92, when support for the legacy certificate verifier on Mac OS X is planned to be removed.
+      This policy is planned to be removed in <ph name="PRODUCT_NAME">$1<ex>Google Chrome</ex></ph> for Mac OS X version 104, when support for the legacy certificate verifier on Mac OS X is planned to be removed.
       ''',
     },
     {
@@ -14713,7 +14713,7 @@
     },
     {
       'name': 'DeviceLoginScreenDefaultSpokenFeedbackEnabled',
-      'owners': ['file://components/policy/resources/OWNERS', 'rsorokin@chromium.org'],
+      'owners': ['amraboelkher@chromium.org', 'emaxx@chromium.org'],
       'type': 'main',
       'schema': { 'type': 'boolean' },
       'supported_on': ['chrome_os:29-'],
diff --git a/components/policy/resources/policy_templates_de.xtb b/components/policy/resources/policy_templates_de.xtb
index 65cbb379..f12138a5 100644
--- a/components/policy/resources/policy_templates_de.xtb
+++ b/components/policy/resources/policy_templates_de.xtb
@@ -417,6 +417,7 @@
       In den Mustern, die mit der Quelle übereinstimmen, wird ein ähnliches Format wie in der Richtlinie <ph name="URL_BLOCKLIST_POLICY_NAME" /> verwendet. Sie sind unter http://www.chromium.org/administrators/url-blocklist-filter-format beschrieben.
 
       Die Muster für diese Richtlinie dürfen allerdings keine „/path“- oder „@query“-Elemente enthalten. Muster, die „/path“- oder „@query“-Elemente enthalten, werden ignoriert.</translation>
+<translation id="1508588104835702000">Cloud-Berichterstellung über verwaltete Browser deaktivieren</translation>
 <translation id="1509377996969000672">Wenn die Richtlinie festgelegt ist, werden Konfigurationen für gerätegebundene Unternehmensdrucker bereitgestellt. Das Format entspricht dem <ph name="NATIVE_PRINTERS_POLICY_NAME" />-Wörterbuch, erfordert jedoch zusätzlich ein „id“- oder „guid“-Feld pro Drucker für die Zulassungs- oder Sperrliste. Die Datei darf nicht größer als 5 MB sein und muss im JSON-Format vorliegen. Eine Datei mit ungefähr 21.000 Druckern ergibt nach dem Codieren eine Datei mit 5 MB. Die Integrität des Downloads wird anhand des kryptografischen Hashs verifiziert. Die Datei wird heruntergeladen, im Cache gespeichert und noch einmal heruntergeladen, sobald sich URL oder Hash ändern. <ph name="PRODUCT_OS_NAME" /> lädt die Datei für Druckerkonfigurationen herunter und sorgt dafür, dass die Drucker gemäß <ph name="DEVICE_PRINTERS_ACCESS_MODE_POLICY_NAME" />, <ph name="DEVICE_PRINTERS_ALLOWLIST_POLICY_NAME" /> und <ph name="DEVICE_PRINTERS_BLOCKLIST_POLICY_NAME" /> verfügbar gemacht werden.
 
       Diese Richtlinie:
@@ -932,6 +933,7 @@
 <translation id="208566302163036794">Deaktivierte Funktionen sperren</translation>
 <translation id="208623333578980446">Bildschirm-Wakelocks für die Energieverwaltung zulassen</translation>
 <translation id="2086944573376916479">Ein verwaltetes Konto muss ein primäres Konto sein und darf nicht mit sekundären Konten verknüpft sein</translation>
+<translation id="2089541797660774692">Cloud-Berichterstellung über verwaltete Browser aktivieren</translation>
 <translation id="2090304907729569435">Anzeige von <ph name="GOOGLE_SEARCH_PRODUCT_NAME" />-Ergebnissen in einer Seitenleiste des Browsers deaktivieren.</translation>
 <translation id="2090939118981888335">Wenn diese Richtlinie aktiviert ist, wird der Proxy zur Datenkomprimierung zugelassen. Ist die Richtlinie deaktiviert, kann der Proxy nicht verwendet werden.
 
@@ -2006,6 +2008,16 @@
           Diese Richtlinie hindert Unternehmensadministratoren nicht daran, eine Verbindung zu verwalteten Chrome OS-Geräten herzustellen.
 
           Diese Richtlinie ist nicht wirksam, wenn sie aktiviert ist, leer gelassen oder nicht konfiguriert wird.</translation>
+<translation id="3246744067327836077">
+      Mit dieser Richtlinie wird festgelegt, ob in <ph name="PRODUCT_NAME" /> Cloud-Berichte für ein bestimmtes verwaltetes Profil erstellt werden.
+
+      Wenn die Richtlinie deaktiviert oder nicht konfiguriert ist, werden keine Daten erhoben oder hochgeladen.
+      Wenn die Richtlinie aktiviert ist, werden Daten erhoben und in die <ph name="GOOGLE_ADMIN_CONSOLE_PRODUCT_NAME" /> hochgeladen.
+
+      Der Bericht enthält Status- und Nutzungsinformationen zum Profil, darunter die Betriebssystemversion, die Browserversion, die installierten Erweiterungen und alle angewandten Richtlinien.
+
+      Diese Richtlinie kann nur als Cloud-Nutzer-Richtlinie konfiguriert werden.
+      </translation>
 <translation id="3251500716404598358">Konfigurieren Sie Richtlinien, um zwischen Browsern zu wechseln.
 
       Konfigurierte Websites werden automatisch in einem anderen Browser als <ph name="PRODUCT_NAME" /> geöffnet.</translation>
@@ -3942,6 +3954,7 @@
       Wenn die Richtlinie nicht konfiguriert ist, können gespeicherte GPOs bis zu 25 Stunden lang wiederverwendet werden.
 
       Hinweis: Durch einen Neustart oder eine Abmeldung wird der Cache geleert.</translation>
+<translation id="5717973246079053225">Cloud-Berichterstellung über verwaltete Profile deaktivieren</translation>
 <translation id="572155275267014074">Android-Einstellungen</translation>
 <translation id="5728154254076636808">Erstellung von Roaming-Kopien für <ph name="PRODUCT_NAME" />-Profildaten aktivieren</translation>
 <translation id="5729308727912841256">Kerberos-Passwort. Der Platzhalter „<ph name="PASSWORD_PLACEHOLDER" />“ wird durch das Anmeldepasswort ersetzt.</translation>
@@ -4705,6 +4718,7 @@
       Wenn die Richtlinie deaktiviert oder nicht konfiguriert ist, führen Druckbefehle zur Anzeige der Druckvorschau.</translation>
 <translation id="6658245400435704251">Legt die Anzahl von Sekunden fest, die eine Verzögerung ab dem Übertragungszeitpunkt an den Server maximal betragen darf, wenn ein Gerät ein Update herunterlädt. Die Verzögerungszeit setzt sich aus der Istzeit und der auf die Anzahl der Überprüfungen auf Updates verwendeten Zeit zusammen. Die obere Grenze für den Streufaktor bildet ein konstanter Zeitraum, sodass ein Gerät nur eine begrenzte Zeit lang auf den Download eines Updates wartet.</translation>
 <translation id="6659537776197644458">Keine Authentifizierungsabläufe für die Synchronisierung von Passwörtern auslösen</translation>
+<translation id="6661178198729301029">Cloud-Berichterstellung über verwaltete Profile aktivieren</translation>
 <translation id="6665670272107384733">Festlegen, wie oft der Nutzer das Passwort eingeben muss, um das schnelle Entsperren zu verwenden</translation>
 <translation id="6667586534922258705">Schaltfläche zum Anzeigen des Passworts auf dem Start- oder Sperrbildschirm anzeigen</translation>
 <translation id="6669700740683748046">Durch diese Funktion wird die vollständige URL in der Adressleiste angezeigt.
@@ -6709,6 +6723,7 @@
 <translation id="8917070657147922192">Nutzern erlauben, installierte CA-Zertifikate zu verwalten.</translation>
 <translation id="8919100556245407184">Zeitraum in Tagen nach dem Ende des AUE-Zeitraums (Auto Update Expiration), nach dem der Nutzer abgemeldet wird, wenn die Version von <ph name="PRODUCT_OS_NAME" /> niedriger ist als die angegebene <ph name="CHROMEOS_VERSION_PROPERTY_NAME" />.</translation>
 <translation id="8919369436496201075">Gerät erlauben, LTS-Updates zu erhalten</translation>
+<translation id="8921669704201370845">Cloud-Berichterstellung in <ph name="PRODUCT_NAME" /> für verwaltetes Profil aktivieren</translation>
 <translation id="8930064580550462145">Während der Anmeldung über den Sperrbildschirm kann <ph name="PRODUCT_OS_NAME" /> die Authentifizierung über einen Server (online) oder über ein Passwort im Cache (offline) ausführen.
 
       Wenn diese Richtlinie auf -2 gesetzt wird, übernimmt sie den Wert des Zeitlimits für die Offlineanmeldung auf dem Anmeldebildschirm von der Richtlinie <ph name="POLICY" />.
@@ -6956,6 +6971,13 @@
 <translation id="9220314833408124365">Setzt die standardmäßige Verweisrichtlinie auf „no-referrer-when-downgrade“</translation>
 <translation id="922540222991413931">Installationsquellen für Erweiterungen, Apps und Nutzerskripte konfigurieren</translation>
 <translation id="924557436754151212">Gespeicherte Passwörter bei erster Ausführung aus Standardbrowser importieren</translation>
+<translation id="926104720905645793">Mit dieser Richtlinie wird festgelegt, ob Cloud-Berichte für <ph name="PRODUCT_NAME" /> erstellt werden. Dabei werden Daten zum Betrieb des Browsers in die <ph name="GOOGLE_ADMIN_CONSOLE_PRODUCT_NAME" /> hochgeladen.
+
+      Wenn die Richtlinie deaktiviert oder nicht konfiguriert ist, werden keine Daten erhoben oder hochgeladen.
+      Wenn die Richtlinie aktiviert ist, werden Daten erhoben und in die <ph name="GOOGLE_ADMIN_CONSOLE_PRODUCT_NAME" /> hochgeladen.
+
+      Sie wird bei <ph name="PRODUCT_NAME" /> nur angewendet, wenn das Gerät mit <ph name="CLOUD_MANAGEMENT_ENROLLMENT_TOKEN" /> registriert ist.
+      Bei <ph name="PRODUCT_OS_NAME" /> wird diese Richtlinie immer angewendet.</translation>
 <translation id="927384371566552478">Wenn die Richtlinie aktiviert oder nicht konfiguriert ist, steht Nutzern die Benutzeroberfläche zum Exportieren/Importieren zur Verfügung. Ist die Richtlinie deaktiviert, steht Nutzern die Benutzeroberfläche zum Exportieren/Importieren nicht zur Verfügung.</translation>
 <translation id="927444535723396977">Wenn die Richtlinie auf "1" gesetzt ist, können Websites JavaScript ausführen. Wenn sie auf "2" gesetzt ist, wird die Ausführung von JavaScript verweigert.
 
diff --git a/components/policy/resources/policy_templates_es-419.xtb b/components/policy/resources/policy_templates_es-419.xtb
index 2d0c48f..f495d7e 100644
--- a/components/policy/resources/policy_templates_es-419.xtb
+++ b/components/policy/resources/policy_templates_es-419.xtb
@@ -419,6 +419,7 @@
       Los patrones de coincidencia de orígenes usan un formato similar a los de la política "<ph name="URL_BLOCKLIST_POLICY_NAME" />", que se documentan en ( http://www.chromium.org/administrators/url-blocklist-filter-format ).
 
       Sin embargo, los patrones de coincidencia de orígenes para esta política no pueden incluir los elementos "/path" ni "@query". Se ignorará cualquier patrón que contenga alguno de estos elementos.</translation>
+<translation id="1508588104835702000">Inhabilitar los informes en la nube de navegadores administrados</translation>
 <translation id="1509377996969000672">Si estableces la política, se proporcionan configuraciones para las impresoras empresariales vinculadas a dispositivos. Su formato coincide con el diccionario de <ph name="NATIVE_PRINTERS_POLICY_NAME" />. Incluye un campo "id" o "guid" obligatorio adicional para cada impresora para la lista de impresoras permitidas o bloqueadas. El tamaño del archivo no puede superar los 5 MB y está en formato JSON (un archivo de ese tamaño contiene aproximadamente 21,000 impresoras). El hash criptográfico permite verificar la integridad de la descarga. Cada vez que cambie la URL o el hash, se descargará el archivo, se almacenará en caché y se volverá a descargar. <ph name="PRODUCT_OS_NAME" /> descargará el archivo para las configuraciones de impresoras y hará que las impresoras estén disponibles junto con <ph name="DEVICE_PRINTERS_ACCESS_MODE_POLICY_NAME" />, <ph name="DEVICE_PRINTERS_ALLOWLIST_POLICY_NAME" /> y <ph name="DEVICE_PRINTERS_BLOCKLIST_POLICY_NAME" />.
 
       Esta política:
@@ -945,6 +946,7 @@
 <translation id="208566302163036794">Bloquea las funciones inhabilitadas</translation>
 <translation id="208623333578980446">Permite los bloqueos de activación de pantalla para la administración de energía</translation>
 <translation id="2086944573376916479">Una cuenta administrada debe ser una cuenta principal y no puede tener cuentas secundarias asociadas</translation>
+<translation id="2089541797660774692">Habilitar los informes en la nube de navegadores administrados</translation>
 <translation id="2090304907729569435">No permitir que se muestren los resultados de <ph name="GOOGLE_SEARCH_PRODUCT_NAME" /> en el panel lateral de un navegador</translation>
 <translation id="2090939118981888335">Si habilitas la política, se activará el proxy de compresión de datos. Si la inhabilitas, se desactivará el proxy.
 
@@ -2023,6 +2025,16 @@
           Tampoco impide que los administradores de empresas se conecten a dispositivos Chrome OS administrados.
 
           Por último, no tiene efecto si se habilita, se deja vacía o no se configura.</translation>
+<translation id="3246744067327836077">
+      Esta política controla los informes en la nube de <ph name="PRODUCT_NAME" /> para un perfil administrado en particular.
+
+      Si no estableces esta política o la inhabilitas, no se recopilarán ni subirán datos.
+      Si la habilitas, los datos se recopilan y se suben a <ph name="GOOGLE_ADMIN_CONSOLE_PRODUCT_NAME" />.
+
+      El informe contiene información de uso y estado del perfil, incluidas, sin limitaciones, la versión del SO y del navegador, las extensiones instaladas y las políticas aplicadas.
+
+      Esta política solo se puede establecer como política del usuario basada en la nube.
+      </translation>
 <translation id="3251500716404598358">Permite configurar políticas para cambiar de navegador.
 
       Los sitios web configurados se abrirán automáticamente en otro navegador que no sea <ph name="PRODUCT_NAME" />.</translation>
@@ -3959,6 +3971,7 @@
       Si no estableces la política, se podrán reutilizar los GPO almacenados en caché por un máximo de 25 horas.
 
       Nota: Si reinicias el dispositivo y sales de la cuenta, se borrará la caché.</translation>
+<translation id="5717973246079053225">Inhabilitar los informes en la nube de navegadores administrados</translation>
 <translation id="572155275267014074">Configuración de Android</translation>
 <translation id="5728154254076636808">Habilita la creación de las copias de itinerancia para los datos de perfil de <ph name="PRODUCT_NAME" /></translation>
 <translation id="5729308727912841256">Contraseña de Kerberos. La contraseña de acceso reemplaza al marcador de posición <ph name="PASSWORD_PLACEHOLDER" />.</translation>
@@ -4731,6 +4744,7 @@
       Si la inhabilitas o no la estableces, los comandos de impresión mostrarán la pantalla de vista previa de impresión.</translation>
 <translation id="6658245400435704251">Especifica la cantidad máxima de segundos que un dispositivo puede retrasar aleatoriamente la descarga de una actualización desde el momento en el que la descarga se envío al servidor por primera vez. El dispositivo puede dedicar una parte de este tiempo al proceso de actualización y el resto a realizar las comprobaciones necesarias. En cualquier caso, el límite superior de la dispersión es un período de tiempo constante, para que el dispositivo no se quede bloqueado mientras espera descargar una actualización.</translation>
 <translation id="6659537776197644458">No activar los flujos de autenticación para la sincronización de contraseñas</translation>
+<translation id="6661178198729301029">Habilitar los informes en la nube para los perfiles administrados</translation>
 <translation id="6665670272107384733">Establecer la frecuencia con la que el usuario debe ingresar la contraseña para usar el desbloqueo rápido</translation>
 <translation id="6667586534922258705">Muestra el botón para ver la contraseña en la pantalla de inicio o de bloqueo</translation>
 <translation id="6669700740683748046">Esta función permite ver la URL completa en la barra de direcciones.
@@ -6742,6 +6756,7 @@
 <translation id="8917070657147922192">Permite que los usuarios administren los Certificados de CA instalados</translation>
 <translation id="8919100556245407184">El tiempo restante (en días) después del aviso de vencimiento de la actualización automática para que se haga salir al usuario de la cuenta si la versión de <ph name="PRODUCT_OS_NAME" /> es anterior a la versión <ph name="CHROMEOS_VERSION_PROPERTY_NAME" /> especificada.</translation>
 <translation id="8919369436496201075">Permite que el dispositivo reciba actualizaciones de LTS</translation>
+<translation id="8921669704201370845">Habilitar los informes en la nube de <ph name="PRODUCT_NAME" /> para los perfiles administrados</translation>
 <translation id="8930064580550462145">Durante el acceso mediante la pantalla de bloqueo, <ph name="PRODUCT_OS_NAME" /> podrá realizar la autenticación a través de un servidor (en línea) o de una contraseña almacenada en caché (sin conexión).
 
       Si estableces esta política en -2, coincidirá con el valor del límite de tiempo de acceso sin conexión de la pantalla de acceso especificado en la política <ph name="POLICY" />.
@@ -6989,6 +7004,13 @@
 <translation id="9220314833408124365">Usar una política de referente predeterminado con el valor no-referrer-when-downgrade</translation>
 <translation id="922540222991413931">Configurar fuentes de instalación de secuencias de comandos de usuario, aplicaciones y extensiones</translation>
 <translation id="924557436754151212">Importar las contraseñas guardadas del navegador predeterminado en la primera ejecución</translation>
+<translation id="926104720905645793">Esta política controla los informes en la nube de <ph name="PRODUCT_NAME" />, que suben información sobre el funcionamiento del navegador a <ph name="GOOGLE_ADMIN_CONSOLE_PRODUCT_NAME" />.
+
+      Si no estableces esta política o la inhabilitas, no se recopilarán ni subirán datos.
+      Si la habilitas, los datos se recopilan y se suben a <ph name="GOOGLE_ADMIN_CONSOLE_PRODUCT_NAME" />.
+
+      Esta política solo será válida si la máquina está inscrita en <ph name="CLOUD_MANAGEMENT_ENROLLMENT_TOKEN" /> para <ph name="PRODUCT_NAME" />.
+      Esta política siempre será válida para <ph name="PRODUCT_OS_NAME" />.</translation>
 <translation id="927384371566552478">Si habilitas la política o no la estableces, los usuarios podrán usar la IU de importación y exportación. Si inhabilitas la política, los usuarios no podrán usar la IU de importación y exportación.</translation>
 <translation id="927444535723396977">Si estableces la política en 1, los sitios web podrán ejecutar JavaScript. Si la estableces en 2, se rechazará JavaScript.
 
diff --git a/components/policy/resources/policy_templates_es.xtb b/components/policy/resources/policy_templates_es.xtb
index 21487c6..89415eac 100644
--- a/components/policy/resources/policy_templates_es.xtb
+++ b/components/policy/resources/policy_templates_es.xtb
@@ -419,6 +419,7 @@
       Los patrones que coinciden con el origen tienen un formato similar a los de la política <ph name="URL_BLOCKLIST_POLICY_NAME" />, tal y como se indica en la página http://www.chromium.org/administrators/url-blocklist-filter-format
 
       Sin embargo, los patrones de esta política que coinciden con el origen no pueden contener los elementos /path ni @query. Se ignorarán todos los patrones que contengan un elemento /path o @query.</translation>
+<translation id="1508588104835702000">Inhabilitar los informes en la nube a través de un navegador gestionado</translation>
 <translation id="1509377996969000672">Si se establece esta política, proporciona opciones de configuración para impresoras de empresa vinculadas a dispositivos. Su formato es el mismo que el del diccionario <ph name="NATIVE_PRINTERS_POLICY_NAME" />, con un campo id o guid obligatorio por impresora para incluirla en una lista de permitidas o bloqueadas. El tamaño del archivo no debe exceder los 5 MB y debe estar en formato JSON. El tamaño de un archivo que contiene unas 21.000 impresoras es de 5 MB. El hash criptográfico ayuda a comprobar la integridad de la descarga. Si se cambia la URL o el hash, el archivo se descarga, se almacena en caché y se vuelve a descargar. <ph name="PRODUCT_OS_NAME" /> descarga el archivo con las configuraciones de las impresoras y estas están disponibles según lo especificado en las políticas <ph name="DEVICE_PRINTERS_ACCESS_MODE_POLICY_NAME" />, <ph name="DEVICE_PRINTERS_ALLOWLIST_POLICY_NAME" /> y <ph name="DEVICE_PRINTERS_BLOCKLIST_POLICY_NAME" />.
 
       Esta política tiene las siguientes características:
@@ -947,6 +948,7 @@
 <translation id="208566302163036794">Bloquear las funciones inhabilitadas</translation>
 <translation id="208623333578980446">Permitir los wake locks de pantalla para la gestión de energía</translation>
 <translation id="2086944573376916479">Una cuenta gestionada debe ser primaria y no puede tener cuentas secundarias</translation>
+<translation id="2089541797660774692">Habilitar los informes en la nube a través de un navegador gestionado</translation>
 <translation id="2090304907729569435">No permitir que se muestren los resultados más recientes de <ph name="GOOGLE_SEARCH_PRODUCT_NAME" /> en un panel lateral del navegador.</translation>
 <translation id="2090939118981888335">Si se habilita esta política, se permitirá usar el proxy de compresión de datos. Si se inhabilita esta política, no se permitirá usar este proxy.
 
@@ -2026,6 +2028,16 @@
           Esta política no impide a los administradores de empresa conectarse a dispositivos Chrome OS gestionados.
 
           Esta política no tendrá efecto si se habilita, se deja vacía o no se establece.</translation>
+<translation id="3246744067327836077">
+      Esta política controla los informes en la nube de <ph name="PRODUCT_NAME" /> de un perfil gestionado concreto.
+
+      Si no se establece esta política o se inhabilita, no se recogerá ni se subirá ningún dato.
+      Si se habilita esta política, se recogerán y subirán los datos a la <ph name="GOOGLE_ADMIN_CONSOLE_PRODUCT_NAME" />.
+
+      El informe contiene datos sobre el estado y el uso del perfil, incluidos, entre otros, la versión del SO, la versión del navegador, las extensiones instaladas y las políticas aplicadas.
+
+      Esta política solo se puede establecer como política de usuarios basada en la nube.
+      </translation>
 <translation id="3251500716404598358">Configura las políticas para cambiar de navegador.
 
       Los sitios web configurados se abrirán automáticamente en un navegador diferente a <ph name="PRODUCT_NAME" />.</translation>
@@ -3969,6 +3981,7 @@
       Si no se le asigna un valor a la política, los GPO almacenados en caché podrán reutilizarse durante un periodo máximo de 25 horas.
 
       Nota: La caché se borra al reiniciar y al cerrar sesión.</translation>
+<translation id="5717973246079053225">Inhabilitar los informes en la nube de un perfil gestionado</translation>
 <translation id="572155275267014074">Configuración de Android</translation>
 <translation id="5728154254076636808">Habilitar la creación de copias de roaming de los datos del perfil de <ph name="PRODUCT_NAME" /></translation>
 <translation id="5729308727912841256">Contraseña de Kerberos. El marcador de posición <ph name="PASSWORD_PLACEHOLDER" /> se reemplazará por la contraseña de inicio de sesión.</translation>
@@ -4741,6 +4754,7 @@
       Si se inhabilita la política o no se establece, los comandos de impresión muestran la pantalla de vista previa de impresión</translation>
 <translation id="6658245400435704251">Especifica el número de segundos hasta los que un dispositivo puede retrasar aleatoriamente la descarga de una actualización desde el momento en el que esta se envío al servidor por primera vez. El dispositivo puede dedicar una parte de este tiempo al propio proceso de actualización y el resto a realizar las comprobaciones necesarias. En cualquier caso, el límite superior de la dispersión es un periodo de tiempo constante, para que el dispositivo no se quede bloqueado mientras descarga una actualización.</translation>
 <translation id="6659537776197644458">No activar flujos de autenticación para la sincronización de contraseñas</translation>
+<translation id="6661178198729301029">Habilitar los informes en la nube de un perfil gestionado</translation>
 <translation id="6665670272107384733">Definir la frecuencia con la que el usuario debe introducir la contraseña para utilizar el desbloqueo rápido</translation>
 <translation id="6667586534922258705">Muestra el botón para mostrar la contraseña en las pantallas de inicio de sesión y bloqueo</translation>
 <translation id="6669700740683748046">Esta función permite mostrar la URL completa en la barra de direcciones.
@@ -6746,6 +6760,7 @@
 <translation id="8917070657147922192">Permite que los usuarios gestionen los certificados AC instalados.</translation>
 <translation id="8919100556245407184">Número de días tras la publicación del vencimiento de las actualizaciones automáticas después de los cuales se cerrará la sesión del usuario si la versión de <ph name="PRODUCT_OS_NAME" /> es anterior a la <ph name="CHROMEOS_VERSION_PROPERTY_NAME" /> especificada</translation>
 <translation id="8919369436496201075">Permite que el dispositivo reciba actualizaciones de LTS</translation>
+<translation id="8921669704201370845">Habilitar los informes en la nube de <ph name="PRODUCT_NAME" /> de un perfil gestionado</translation>
 <translation id="8930064580550462145">Durante el inicio de sesión en la pantalla de bloqueo, <ph name="PRODUCT_OS_NAME" /> puede realizar la autenticación a través de un servidor (con conexión) o una contraseña almacenada en caché (sin conexión).
 
       Si se le asigna el valor -2 a esta política, coincidirá con el valor del límite de tiempo de inicio de sesión sin conexión de la pantalla de inicio de sesión dado por <ph name="POLICY" />.
@@ -7000,6 +7015,13 @@
 <translation id="9220314833408124365">Usar una política de referente predeterminada de no-referrer-when-downgrade</translation>
 <translation id="922540222991413931">Configurar fuentes de instalación de secuencias de comandos de usuario, aplicaciones y extensiones</translation>
 <translation id="924557436754151212">Importar las contraseñas guardadas desde el navegador predeterminado en la primera ejecución</translation>
+<translation id="926104720905645793">Esta política controla los informes en la nube de <ph name="PRODUCT_NAME" />, que sube información sobre el funcionamiento del navegador a la <ph name="GOOGLE_ADMIN_CONSOLE_PRODUCT_NAME" />.
+
+      Si no se establece esta política o se inhabilita, no se recogerá ni se subirá ningún dato.
+      Si se habilita esta política, se recogerán y subirán los datos a la <ph name="GOOGLE_ADMIN_CONSOLE_PRODUCT_NAME" />.
+
+      Para <ph name="PRODUCT_NAME" />, esta política solo es efectiva si el equipo está registrado en <ph name="CLOUD_MANAGEMENT_ENROLLMENT_TOKEN" />.
+      Para <ph name="PRODUCT_OS_NAME" />, esta política siempre es efectiva.</translation>
 <translation id="927384371566552478">Si se habilita la política o no se establece, la interfaz de usuario de exportación e importación estará disponible para los usuarios. Si se inhabilita la política, la interfaz de usuario de exportación e importación no estará disponible para los usuarios.</translation>
 <translation id="927444535723396977">Si se asigna el valor 1 a esta política, los sitios web podrán ejecutar JavaScript. Si se le asigna el valor 2, se denegará el uso de JavaScript.
 
diff --git a/components/policy/resources/policy_templates_fr.xtb b/components/policy/resources/policy_templates_fr.xtb
index 9d8cf0b..30548d6 100644
--- a/components/policy/resources/policy_templates_fr.xtb
+++ b/components/policy/resources/policy_templates_fr.xtb
@@ -419,6 +419,7 @@
       Les formats d'origines correspondants dans la liste sont semblables à ceux de la règle <ph name="URL_BLOCKLIST_POLICY_NAME" /> décrite à la page http://www.chromium.org/administrators/url-blocklist-filter-format.
 
       Toutefois, dans le cadre de cette règle, ces formats ne doivent pas inclure les éléments "/path" ni "@query". Tout format qui inclut l'élément "/path" ou "@query" est ignoré.</translation>
+<translation id="1508588104835702000">Désactiver la création de rapports cloud via un navigateur géré</translation>
 <translation id="1509377996969000672">La définition de cette règle fournit les configurations des imprimantes d'entreprise associées à des appareils. Son format correspond au dictionnaire <ph name="NATIVE_PRINTERS_POLICY_NAME" />, avec un champ supplémentaire "id" ou "guid" obligatoire pour chaque imprimante à ajouter à la liste d'autorisation ou à la liste de refus. Le fichier est au format JSON et sa taille ne peut pas dépasser 5 Mo. Un fichier encodé de 5 Mo peut contenir environ 21 000 imprimantes. Le hachage cryptographique permet de valider l'intégrité du téléchargement. Le fichier est téléchargé, mis en cache, puis téléchargé à nouveau à chaque modification de l'URL ou du hachage. <ph name="PRODUCT_OS_NAME" /> télécharge le fichier des configurations d'imprimante et rend les imprimantes accessibles avec <ph name="DEVICE_PRINTERS_ACCESS_MODE_POLICY_NAME" />, <ph name="DEVICE_PRINTERS_ALLOWLIST_POLICY_NAME" /> et <ph name="DEVICE_PRINTERS_BLOCKLIST_POLICY_NAME" />.
 
       Cette règle :
@@ -938,6 +939,7 @@
 <translation id="208566302163036794">Bloquer les fonctionnalités désactivées</translation>
 <translation id="208623333578980446">Autoriser les wakelocks forçant l'activation de l'écran pour la gestion de l'alimentation</translation>
 <translation id="2086944573376916479">Un compte géré doit être un compte principal sans comptes secondaires</translation>
+<translation id="2089541797660774692">Activer la création de rapports cloud via un navigateur géré</translation>
 <translation id="2090304907729569435">Désactiver l'affichage des résultats de <ph name="GOOGLE_SEARCH_PRODUCT_NAME" /> dans le panneau latéral du navigateur.</translation>
 <translation id="2090939118981888335">Si vous activez cette règle, le proxy de compression des données est activé. Si vous la désactivez, le proxy est désactivé.
 
@@ -2012,6 +2014,16 @@
           Cette règle n'empêche pas les administrateurs d'entreprise de se connecter à des appareils Chrome OS gérés.
 
           Elle n'a aucun effet si elle est activée, laissée vide ou n'est pas définie.</translation>
+<translation id="3246744067327836077">
+      Cette règle permet de contrôler la création de rapports cloud <ph name="PRODUCT_NAME" /> pour un profil géré donné.
+
+      Si cette règle est définie sur "False" ou si elle n'est pas configurée, aucune donnée n'est recueillie ni importée.
+      Si elle est activée, les données sont recueillies et importées dans la <ph name="GOOGLE_ADMIN_CONSOLE_PRODUCT_NAME" />.
+
+      Le rapport contient l'état du profil ainsi que des informations sur l'utilisation, y compris, mais sans s'y limiter, la version de l'OS et du navigateur, les extensions installées et les règles appliquées.
+
+      Cette règle ne peut être configurée que comme règle relative aux utilisateurs du cloud.
+      </translation>
 <translation id="3251500716404598358">Configurer les règles pour passer d'un navigateur à l'autre.
 
       Les sites Web configurés s'ouvrent automatiquement dans un navigateur autre que <ph name="PRODUCT_NAME" />.</translation>
@@ -3947,6 +3959,7 @@
       Si cette règle n'est pas configurée, les GPO mis en cache peuvent être réutilisés dans un délai maximal de 25 heures.
 
       Remarque : Le cache est vidé à la suite d'un redémarrage et d'une déconnexion.</translation>
+<translation id="5717973246079053225">Désactiver la création de rapports cloud via un profil géré</translation>
 <translation id="572155275267014074">Paramètres Android</translation>
 <translation id="5728154254076636808">Permet de créer des copies itinérantes pour les données de profil <ph name="PRODUCT_NAME" /></translation>
 <translation id="5729308727912841256">Mot de passe Kerberos. L'espace réservé <ph name="PASSWORD_PLACEHOLDER" /> est remplacé par le mot de passe de connexion.</translation>
@@ -4716,6 +4729,7 @@
       Si vous désactivez cette règle, ou si vous ne la configurez pas, les commandes d'impression génèrent un aperçu avant impression.</translation>
 <translation id="6658245400435704251">Indique le nombre maximal de secondes pendant lesquelles un appareil peut retarder de façon aléatoire le téléchargement d'une mise à jour à partir du moment où celle-ci est disponible sur le serveur. L'appareil peut attendre pendant une certaine partie de ce temps en termes de temps de l'horloge et pendant la partie restante en termes de nombre de recherches de mise à jour. Dans tous les cas, le facteur de dispersion est limité à une quantité de temps constante, de sorte qu'un appareil ne reste jamais bloqué dans l'attente d'une mise à jour.</translation>
 <translation id="6659537776197644458">Ne pas déclencher les flux d'authentification pour la synchronisation des mots de passe</translation>
+<translation id="6661178198729301029">Activer la création de rapports cloud pour un profil géré</translation>
 <translation id="6665670272107384733">Définir la fréquence à laquelle l'utilisateur doit saisir le mot de passe pour utiliser le déverrouillage rapide</translation>
 <translation id="6667586534922258705">Activer le bouton permettant d'afficher le mot de passe sur l'écran de connexion et de verrouillage</translation>
 <translation id="6669700740683748046">Permet d'afficher ou non l'URL complète dans la barre d'adresse.
@@ -6709,6 +6723,7 @@
 <translation id="8917070657147922192">Autoriser les utilisateurs à gérer les certificats CA installés.</translation>
 <translation id="8919100556245407184">Durée en jours, après l'expiration de la mise à jour automatique, au terme de laquelle l'utilisateur est déconnecté si la version de <ph name="PRODUCT_OS_NAME" /> est antérieure à la version <ph name="CHROMEOS_VERSION_PROPERTY_NAME" /> spécifiée.</translation>
 <translation id="8919369436496201075">Autoriser l'appareil à recevoir des mises à jour LTS</translation>
+<translation id="8921669704201370845">Activer la création de rapports cloud <ph name="PRODUCT_NAME" /> pour un profil géré</translation>
 <translation id="8930064580550462145">Lors de la connexion via l'écran de verrouillage, l'authentification dans <ph name="PRODUCT_OS_NAME" /> peut s'effectuer sur un serveur (en ligne) ou à l'aide d'un mot de passe en cache (hors connexion).
 
       Si cette règle est définie sur -2, elle correspondra à la valeur limite du délai de connexion hors connexion de l'écran de connexion, qui provient de <ph name="POLICY" />.
@@ -6963,6 +6978,13 @@
 <translation id="9220314833408124365">Utiliser une règle par défaut en matière d'URL de provenance (no-referrer-when-downgrade)</translation>
 <translation id="922540222991413931">Configurer les sources d'installation des extensions, des applications et des scripts d'utilisateur</translation>
 <translation id="924557436754151212">Importer les mots de passe enregistrés du navigateur par défaut à la première exécution</translation>
+<translation id="926104720905645793">Cette règle permet de contrôler la création de rapports cloud <ph name="PRODUCT_NAME" />, une option qui permet d'importer des informations sur le fonctionnement du navigateur dans la <ph name="GOOGLE_ADMIN_CONSOLE_PRODUCT_NAME" />.
+
+      Si cette règle est définie sur "False" ou si elle n'est pas configurée, aucune donnée n'est recueillie ni importée.
+      Si elle est activée, les données sont recueillies et importées dans la <ph name="GOOGLE_ADMIN_CONSOLE_PRODUCT_NAME" />.
+
+      Concernant <ph name="PRODUCT_NAME" />, cette règle n'est appliquée que si l'appareil est enregistré avec la règle <ph name="CLOUD_MANAGEMENT_ENROLLMENT_TOKEN" />.
+      Cette règle est toujours appliquée pour <ph name="PRODUCT_OS_NAME" />.</translation>
 <translation id="927384371566552478">Si cette règle est activée ou qu'elle n'est pas configurée, les utilisateurs ont accès à l'interface utilisateur d'importation/exportation. Si elle est désactivée, ils n'y ont pas accès.</translation>
 <translation id="927444535723396977">Si cette règle est définie sur "1", les sites Web peuvent exécuter JavaScript. Si cette règle est définie sur "2", les sites ne sont pas autorisés à exécuter ce langage.
 
diff --git a/components/policy/resources/policy_templates_id.xtb b/components/policy/resources/policy_templates_id.xtb
index df96cc1..9b109a6 100644
--- a/components/policy/resources/policy_templates_id.xtb
+++ b/components/policy/resources/policy_templates_id.xtb
@@ -418,6 +418,7 @@
       Pola yang cocok dengan asal akan menggunakan format serupa dengan kebijakan '<ph name="URL_BLOCKLIST_POLICY_NAME" />' yang didokumentasikan di http://www.chromium.org/administrators/url-blocklist-filter-format.
 
       Namun, pola yang cocok dengan asal untuk kebijakan ini tidak boleh berisi elemen "/path" atau "@query". Semua pola yang berisi elemen "/path" atau "@query" akan diabaikan.</translation>
+<translation id="1508588104835702000">Nonaktifkan pelaporan cloud browser terkelola</translation>
 <translation id="1509377996969000672">Jika kebijakan disetel, konfigurasi untuk printer perusahaan yang terikat ke perangkat akan tersedia. Jika formatnya cocok dengan kamus <ph name="NATIVE_PRINTERS_POLICY_NAME" />, dengan tambahan kolom "id" atau "guid" yang diperlukan agar setiap printer dapat mengizinkan atau menolak daftar. Ukuran file tidak boleh lebih dari 5 MB dan dalam format JSON. File yang berisi sekitar 21.000 printer dienkode sebagai file 5 MB. Hash kriptografi membantu memverifikasi integritas download. File didownload, disimpan dalam cache, dan didownload ulang ketika URL atau hash berubah. <ph name="PRODUCT_OS_NAME" /> mendownload file untuk konfigurasi printer dan menyediakan printer beserta <ph name="DEVICE_PRINTERS_ACCESS_MODE_POLICY_NAME" />, <ph name="DEVICE_PRINTERS_ALLOWLIST_POLICY_NAME" />, dan <ph name="DEVICE_PRINTERS_BLOCKLIST_POLICY_NAME" />.
 
       Kebijakan ini:
@@ -757,6 +758,44 @@
 <translation id="1861206724856734193">Menyetel daftar aturan pencegahan kebocoran data.</translation>
 <translation id="1862267110714201519">Nonaktifkan fitur jendela bayangan.</translation>
 <translation id="1865417998205858223">Izin Kunci</translation>
+<translation id="1867025364110179456">Menyetel kebijakan akan menentukan daftar aplikasi web yang diinstal otomatis, tanpa interaksi pengguna, dan yang tidak dapat di-uninstal atau dinonaktifkan pengguna.
+
+      Setiap item daftar kebijakan adalah objek yang berisi satu elemen wajib:
+      <ph name="URL_LABEL" /> (URL aplikasi web yang akan diinstal)
+
+      dan 5 elemen opsional:
+      - <ph name="DEFAULT_LAUNCH_CONTAINER_LABEL" />
+      (untuk cara aplikasi web terbuka—tab baru adalah default)
+
+      - <ph name="CREATE_DESKTOP_SHORTCUT_LABEL" />
+      (Berlaku jika Anda ingin membuat pintasan desktop <ph name="LINUX_OS_NAME" /> dan
+      <ph name="MS_WIN_NAME" />).
+
+      - <ph name="FALLBACK_APP_NAME_LABEL" />
+      (<ph name="PRODUCT_NAME" /> mulai dari versi 90
+      memungkinkan Anda mengganti nama aplikasi jika aplikasi bukan
+      Progressive Web App (PWA), atau mengganti nama aplikasi yang diinstal
+      sementara jika aplikasi adalah PWA, tetapi perlu autentikasi sebelum
+      penginstalan dapat diselesaikan. Jika
+      <ph name="CUSTOM_NAME_LABEL" /> dan
+      <ph name="FALLBACK_APP_NAME_LABEL" /> tersedia,
+      yang kedua akan diabaikan).
+
+      - <ph name="OVERRIDE_APP_NAME_LABEL" />
+      (<ph name="PRODUCT_NAME" />
+      mulai dari versi 99 memungkinkan Anda secara permanen mengganti nama aplikasi untuk semua aplikasi
+      web dan PWA. Saat ini hanya didukung di
+      <ph name="PRODUCT_OS_NAME" />).
+
+      - <ph name="CUSTOM_ICON_LABEL" />
+      (<ph name="PRODUCT_NAME" />
+      mulai dari versi 99 memungkinkan Anda mengganti ikon aplikasi yang diinstal. Ikon
+      harus berbentuk persegi, berukuran maksimal 1 MB, dan dalam salah satu format
+      berikut: jpeg, png, gif, webp, ico. Nilai hash file ikon harus
+      hash SHA256. Saat ini hanya didukung di
+      <ph name="PRODUCT_OS_NAME" />).
+
+      Lihat <ph name="PINNED_LAUNCHER_APPS_POLICY_NAME" /> untuk menyematkan aplikasi ke rak <ph name="PRODUCT_OS_NAME" />.</translation>
 <translation id="186719019195685253">Kebijakan yang diambil saat penundaan nganggur tercapai ketika dijalankan pada daya AC</translation>
 <translation id="1881649377321404593">
       Kebijakan ini telah dihapus di M80. Kebijakan ini tidak diperlukan lagi karena
@@ -947,6 +986,7 @@
 <translation id="208566302163036794">Blokir fitur yang dinonaktifkan</translation>
 <translation id="208623333578980446">Izinkan penguncian layar saat aktif untuk pengelolaan daya</translation>
 <translation id="2086944573376916479">Akun terkelola harus berupa akun utama dan tidak memiliki akun sekunder</translation>
+<translation id="2089541797660774692">Aktifkan pelaporan cloud browser terkelola</translation>
 <translation id="2090304907729569435">Jangan izinkan hasil penelusuran <ph name="GOOGLE_SEARCH_PRODUCT_NAME" /> ditampilkan di panel samping Browser.</translation>
 <translation id="2090939118981888335">Jika kebijakan disetel ke Aktif, proxy kompresi data akan diizinkan. Jika kebijakan disetel ke Nonaktif, proxy tidak akan diizinkan.
 
@@ -1550,6 +1590,13 @@
 
       Jika kebijakan disetel ke Nonaktif, perangkat yang terdaftar tidak akan melaporkan daftar pengguna.</translation>
 <translation id="2730419309754848345">Mencetak PDF sebagai Gambar secara Default</translation>
+<translation id="2731299561202635374">Kebijakan ini mengontrol pemeriksaan URL secara real time untuk mengidentifikasi URL yang tidak aman.
+
+      Jika kebijakan ini tidak disetel atau disetel ke ‘Nonaktif’, pemeriksaan Safe Browsing default akan diterapkan. Pemeriksaan Safe Browsing default tetap dapat disertai pencarian real-time, bergantung pada nilai setelan "Jadikan penelusuran dan penjelajahan lebih baik" dan nilai kebijakan UrlKeyedAnonymizedDataCollectionEnabled.
+
+      Jika kebijakan ini disetel ke ‘Aktif’, URL akan dikirimkan untuk dipindai secara real-time sesuai Persyaratan Layanan perusahaan. Ini akan membuat Chrome mengirimkan URL ke Google Cloud atau pihak ketiga pilihan Anda untuk memeriksa URL secara real-time. Pencarian real-time Safe Browsing versi default akan dinonaktifkan.
+
+      Kebijakan ini memerlukan penyiapan tambahan agar dapat berlaku. Buka https://support.google.com/chrome/a?p=chrome_enterprise_connector_policies_setting untuk informasi selengkapnya.</translation>
 <translation id="2731627323327011390">Menonaktifkan penggunaan sertifikat <ph name="PRODUCT_OS_NAME" /> untuk aplikasi ARC</translation>
 <translation id="2742843273354638707">Menyembunyikan aplikasi Chrome Webstore serta link footer dari Halaman Tab Baru dan peluncur aplikasi <ph name="PRODUCT_OS_NAME" />.
 
@@ -1711,6 +1758,11 @@
       Jika kebijakan tidak disetel (atau disetel ke URL yang tidak valid), <ph name="PRODUCT_NAME" /> tidak akan menggunakannya sebagai sumber aturan untuk beralih browser.
 
       Catatan: Kebijakan ini mengarah ke file XML dalam format yang sama seperti kebijakan <ph name="IEEM_SITELIST_POLICY" /> <ph name="IE_PRODUCT_NAME" />. Kebijakan ini akan memuat aturan dari file XML, tanpa membagikan aturan tersebut ke <ph name="IE_PRODUCT_NAME" />. Baca selengkapnya terkait kebijakan <ph name="IEEM_SITELIST_POLICY" /> <ph name="IE_PRODUCT_NAME" /> (https://docs.microsoft.com/internet-explorer/ie11-deploy-guide/what-is-enterprise-mode)</translation>
+<translation id="2940653651012844682">Daftar setelan layanan Chrome Enterprise Connectors yang akan diterapkan ke <ph name="ON_SECURITY_EVENT_ENTERPRISE_CONNECTOR" /> Enterprise Connector, yang aktif saat terjadi peristiwa keamanan di Chrome. Peristiwa tersebut termasuk hasil negatif dari analisis Enterprise Connectors, penggunaan ulang sandi, navigasi ke halaman yang tidak aman, dan tindakan pengguna lainnya yang sensitif terhadap keamanan.
+
+      Kolom <ph name="ENTERPRISE_CONNECTOR_SERVICE_PROVIDER_FIELD" /> akan mengidentifikasi penyedia layanan laporan yang sesuai dengan setelan dan kolom <ph name="ENTERPRISE_CONNECTOR_ENABLED_EVENT_NAMES_FIELD" /> akan mengidentifikasi peristiwa yang diaktifkan untuk penyedia ini.
+
+      Kebijakan ini memerlukan penyiapan tambahan agar dapat berlaku. Buka https://support.google.com/chrome/a?p=chrome_enterprise_connector_policies_setting untuk informasi selengkapnya.</translation>
 <translation id="2947111924404450461">Menyetel kebijakan ini akan mengonfigurasi printer perusahaan. Formatnya cocok dengan kamus <ph name="NATIVE_PRINTERS_POLICY_NAME" />, dengan tambahan kolom <ph name="ID_FIELD" /> dan <ph name="GUID_FIELD" /> yang diperlukan agar setiap printer mengizinkan atau menolak daftar. Ukuran file tidak boleh lebih dari 5 MB dan dalam format JSON. File yang berisi sekitar 21.000 printer dienkode sebagai file 5 MB. Hash kriptografi membantu memverifikasi integritas download. File didownload, disimpan dalam cache, dan didownload ulang ketika URL atau hash berubah. <ph name="PRODUCT_OS_NAME" /> mendownload file untuk konfigurasi printer dan menyediakan printer beserta <ph name="BULK_PRINTERS_ACCESS_MODE_POLICY_NAME" />, <ph name="BULK_PRINTERS_WHITELIST" />, dan <ph name="BULK_PRINTERS_BLACKLIST" />.
 
       Kebijakan ini tidak memengaruhi kemampuan pengguna untuk mengonfigurasi printer di tiap perangkat. Kebijakan ini ditujukan sebagai tambahan untuk konfigurasi printer yang ditentukan oleh setiap pengguna.
@@ -1900,6 +1952,23 @@
 <translation id="3144173889708944482">Jika <ph name="PRINTERS_BLOCKLIST" /> dipilih untuk <ph name="DEVICE_PRINTERS_ACCESS_MODE_POLICY_NAME" />, menyetel <ph name="DEVICE_PRINTERS_BLOCKLIST_POLICY_NAME" /> akan menentukan printer yang tidak dapat digunakan oleh pengguna. Semua printer diberikan kepada pengguna kecuali ID yang tercantum dalam kebijakan ini. ID harus sesuai dengan kolom <ph name="ID_FIELD" /> atau <ph name="GUID_FIELD" /> dalam file yang ditentukan di <ph name="DEVICE_PRINTERS_POLICY_NAME" />.</translation>
 <translation id="3146711617256415776">Larang suara text-to-speech enhanced network saat menggunakan Klik untuk Diucapkan</translation>
 <translation id="3152425128389603870">Membuat Desktop Terpadu tersedia dan aktif secara default</translation>
+<translation id="3157857846231611820">Daftar setelan layanan Chrome Enterprise Connectors yang akan diterapkan ke <ph name="ON_FILE_ATTACHED_ENTERPRISE_CONNECTOR" /> Enterprise Connector, yang aktif saat file dilampirkan ke Chrome.
+
+      Kolom <ph name="ENTERPRISE_CONNECTOR_URL_LIST_FIELD" />, <ph name="ENTERPRISE_CONNECTOR_TAGS_FIELD" />, <ph name="ENTERPRISE_CONNECTOR_ENABLE_FIELD" />, dan <ph name="ENTERPRISE_CONNECTOR_DISABLE_FIELD" /> digunakan untuk menentukan apakah konektor perlu mengirimkan file untuk dianalisis saat dilampirkan ke halaman tertentu, dan jenis tag yang perlu disertakan dalam permintaan analisis untuk file tersebut. Tag yang sesuai dengan pola 'enable' akan disertakan dalam permintaan analisis jika URL halaman cocok dengan pola yang terkait dengan tag tersebut, selama tidak ada pola 'disable' ber-tag sama yang cocok dengan URL halaman. Analisis dilakukan jika terdapat minimal 1 tag yang disertakan dalam permintaan.
+
+      Kolom <ph name="ENTERPRISE_CONNECTOR_SERVICE_PROVIDER_FIELD" /> akan mengidentifikasi penyedia layanan analisis yang sesuai dengan setelan.
+
+      Jika kolom <ph name="ENTERPRISE_CONNECTOR_BLOCK_UNTIL_VERDICT_FIELD" /> disetel ke 1, Chrome akan menunggu untuk mendapatkan respons dari layanan analisis sebelum memberikan akses halaman ke file tersebut. Jika nilai berupa bilangan bulat lainnya, Chrome akan langsung memberikan akses halaman ke file.
+
+      Kolom <ph name="ENTERPRISE_CONNECTOR_BLOCK_PASSWORD_PROTECTED_FIELD" /> mengontrol apakah Chrome akan memblokir atau mengizinkan file yang dilindungi sandi.
+
+      Kolom <ph name="ENTERPRISE_CONNECTOR_BLOCK_LARGE_FILES_FIELD" /> mengontrol apakah Chrome akan memblokir atau mengizinkan file yang berukuran terlalu besar untuk dianalisis.
+
+      Kolom <ph name="ENTERPRISE_CONNECTOR_REQUIRE_JUSTIFICATION_TAGS_FIELD" /> digunakan untuk menentukan tag mana yang diperlukan saat konektor mewajibkan pengguna memasukkan justifikasi agar dapat mengabaikan pemindaian yang menghasilkan peringatan yang dapat diabaikan. Jika kolom tidak disetel, tidak perlu justifikasi.
+
+      Kolom <ph name="ENTERPRISE_CONNECTOR_CUSTOM_MESSAGES_FIELD" />, <ph name="ENTERPRISE_CONNECTOR_MESSAGE_FIELD" />, <ph name="ENTERPRISE_CONNECTOR_LEARN_MORE_URL_FIELD" />, <ph name="ENTERPRISE_CONNECTOR_LANGUAGE_FIELD" />, dan <ph name="ENTERPRISE_CONNECTOR_TAG_FIELD" /> digunakan untuk mengonfigurasi pesan yang akan ditampilkan kepada pengguna, yaitu saat peringatan dimunculkan setelah hasil pemindaian menunjukkan ada masalah. Kolom message berisi teks yang akan ditampilkan kepada pengguna dan tidak boleh melebihi 200 karakter. Kolom learn_more_url berisi URL yang disediakan oleh admin. Pengguna dapat mengklik URL untuk mengetahui lebih lanjut penyebab diblokirnya tindakan tersebut. Kolom language bersifat opsional dan berisi bahasa pesan. Kolom language yang kosong atau nilai 'default' menunjukkan pesan yang akan digunakan saat bahasa pengguna tidak memiliki pesan. Kolom tag menentukan jenis pemindaian yang akan menampilkan pesan. Daftar custom_messages dapat memiliki nol atau beberapa entri, dengan tiap entri perlu memiliki kolom message dan tag yang tidak kosong.
+
+      Kebijakan ini memerlukan penyiapan tambahan agar dapat berlaku. Buka https://support.google.com/chrome/a?p=chrome_enterprise_connector_policies_setting untuk informasi selengkapnya.</translation>
 <translation id="3159375329008977062">Pengguna diaktifkan untuk mengekspor/mengimpor container Crostini melalui UI</translation>
 <translation id="3164531087779621747">Mode PostScript Cetak</translation>
 <translation id="3165468162820163252">Kebijakan ini mengontrol apakah bagian WebUI pada layar login akan selalu dimuat di awal atau hanya sebelum ditampilkan. Kebijakan ini berlaku untuk layar login.
@@ -2026,6 +2095,16 @@
           Kebijakan ini tidak mencegah admin perusahaan terhubung ke perangkat Chrome OS terkelola.
 
           Kebijakan ini tidak berpengaruh jika disetel ke aktif, dibiarkan kosong, atau tidak disetel.</translation>
+<translation id="3246744067327836077">
+      Kebijakan ini mengontrol pelaporan cloud <ph name="PRODUCT_NAME" /> untuk profil terkelola tertentu.
+
+      Jika kebijakan ini tidak disetel atau disetel ke Nonaktif, tidak ada data yang akan dikumpulkan atau diupload.
+      Jika kebijakan ini disetel ke Aktif, data akan dikumpulkan dan diupload ke <ph name="GOOGLE_ADMIN_CONSOLE_PRODUCT_NAME" />.
+
+      Laporan berisi status dan informasi penggunaan profil, termasuk tetapi tidak terbatas pada versi OS, versi browser, ekstensi yang diinstal, dan kebijakan yang berlaku.
+
+      Kebijakan ini hanya dapat disetel sebagai kebijakan pengguna cloud.
+      </translation>
 <translation id="3251500716404598358">Konfigurasikan kebijakan untuk beralih ke browser lain.
 
       Situs yang dikonfigurasi akan otomatis terbuka di browser selain <ph name="PRODUCT_NAME" />.</translation>
@@ -3969,6 +4048,7 @@
       Jika kebijakan tidak disetel, GPO yang di-cache dapat digunakan kembali hingga selama 25 jam.
 
       Catatan: Memulai ulang dan logout akan menghapus cache.</translation>
+<translation id="5717973246079053225">Nonaktifkan pelaporan cloud profil terkelola</translation>
 <translation id="572155275267014074">Setelan Android</translation>
 <translation id="5728154254076636808">Mengaktifkan pembuatan salinan roaming untuk data profil <ph name="PRODUCT_NAME" /></translation>
 <translation id="5729308727912841256">Sandi Kerberos. Placeholder <ph name="PASSWORD_PLACEHOLDER" /> diganti dengan sandi login.</translation>
@@ -4304,6 +4384,21 @@
 <translation id="6135398260575578389">Safe Browsing aktif dalam mode yang disempurnakan. Mode ini memberikan keamanan yang lebih baik, tetapi perlu membagikan lebih banyak informasi penjelajahan kepada Google.</translation>
 <translation id="6135552820180449830">Crosh (didukung sejak versi 99)</translation>
 <translation id="6138636318340561140">Memeriksa status Safe Browsing pada URL secara real-time</translation>
+<translation id="6140635914906859015">Daftar setelan layanan Chrome Enterprise Connectors yang akan diterapkan ke <ph name="ON_BULK_DATA_ENTRY_ENTERPRISE_CONNECTOR" /> Enterprise Connector, yang aktif saat data dimasukkan ke Chrome dari papan klip atau dengan menarik lalu melepas konten web.
+
+      Kolom <ph name="ENTERPRISE_CONNECTOR_URL_LIST_FIELD" />, <ph name="ENTERPRISE_CONNECTOR_TAGS_FIELD" />, <ph name="ENTERPRISE_CONNECTOR_ENABLE_FIELD" />, dan <ph name="ENTERPRISE_CONNECTOR_DISABLE_FIELD" /> digunakan untuk menentukan apakah konektor perlu mengirimkan data untuk dianalisis saat dimasukkan ke halaman tertentu, dan jenis tag yang perlu disertakan dalam permintaan analisis untuk data tersebut. Tag yang sesuai dengan pola 'enable' akan disertakan dalam permintaan analisis jika URL halaman cocok dengan pola yang terkait dengan tag tersebut, selama tidak ada pola 'disable' ber-tag sama yang cocok dengan URL halaman. Analisis dilakukan jika terdapat minimal 1 tag yang disertakan dalam permintaan.
+
+      Kolom <ph name="ENTERPRISE_CONNECTOR_SERVICE_PROVIDER_FIELD" /> akan mengidentifikasi penyedia layanan analisis yang sesuai dengan setelan.
+
+      Jika kolom <ph name="ENTERPRISE_CONNECTOR_BLOCK_UNTIL_VERDICT_FIELD" /> disetel ke 1, Chrome akan menunggu untuk mendapatkan respons dari layanan analisis sebelum memberikan akses halaman ke data tersebut. Jika nilai berupa bilangan bulat lainnya, Chrome akan langsung memberikan akses halaman ke data.
+
+      Kolom <ph name="ENTERPRISE_CONNECTOR_MINIMUM_DATA_SIZE" /> menunjukkan bahwa ukuran minimum data (dalam byte) yang dimasukkan di Chrome harus sama atau lebih besar agar dapat dipindai. Nilai defaultnya adalah 100 byte jika kolom tidak disetel.
+
+      Kolom <ph name="ENTERPRISE_CONNECTOR_REQUIRE_JUSTIFICATION_TAGS_FIELD" /> digunakan untuk menentukan tag mana yang diperlukan saat konektor mewajibkan pengguna memasukkan justifikasi agar dapat mengabaikan pemindaian yang menghasilkan peringatan yang dapat diabaikan. Jika kolom tidak disetel, tidak perlu justifikasi.
+
+      Kolom <ph name="ENTERPRISE_CONNECTOR_CUSTOM_MESSAGES_FIELD" />, <ph name="ENTERPRISE_CONNECTOR_MESSAGE_FIELD" />, <ph name="ENTERPRISE_CONNECTOR_LEARN_MORE_URL_FIELD" />, <ph name="ENTERPRISE_CONNECTOR_LANGUAGE_FIELD" />, dan <ph name="ENTERPRISE_CONNECTOR_TAG_FIELD" /> digunakan untuk mengonfigurasi pesan yang akan ditampilkan kepada pengguna, yaitu saat peringatan dimunculkan setelah hasil pemindaian menunjukkan ada masalah. Kolom message berisi teks yang akan ditampilkan kepada pengguna dan tidak boleh melebihi 200 karakter. Kolom learn_more_url berisi URL yang disediakan oleh admin. Pengguna dapat mengklik URL untuk mengetahui lebih lanjut penyebab diblokirnya tindakan tersebut. Kolom language bersifat opsional dan berisi bahasa pesan. Kolom language yang kosong atau nilai 'default' menunjukkan pesan yang akan digunakan saat bahasa pengguna tidak memiliki pesan. Kolom tag menentukan jenis pemindaian yang akan menampilkan pesan. Daftar custom_messages dapat memiliki nol atau beberapa entri, dengan tiap entri perlu memiliki kolom message dan tag yang tidak kosong.
+
+      Kebijakan ini memerlukan penyiapan tambahan agar dapat berlaku. Buka https://support.google.com/chrome/a?p=chrome_enterprise_connector_policies_setting untuk informasi selengkapnya.</translation>
 <translation id="6141402445226505817">Selalu gunakan deteksi zona waktu kasar</translation>
 <translation id="6142501278956229253">Mencetak DPI PDF Raster</translation>
 <translation id="6144046700495610112">Jika kebijakan disetel ke Aktif, data formulir isi otomatis akan diimpor dari browser default sebelumnya saat pertama kali dijalankan. Jika kebijakan disetel ke Nonaktif atau tidak disetel, tidak ada data formulir isi otomatis yang akan diimpor saat pertama kali dijalankan.
@@ -4711,6 +4806,21 @@
 <translation id="66265932317331474">Melaporkan info CPU</translation>
 <translation id="6628120204569232711">Laporkan status penyimpanan</translation>
 <translation id="663685822663765995">Batasi mode warna pencetakan</translation>
+<translation id="6637946190026453735">Daftar setelan layanan <ph name="PRODUCT_NAME" /> Enterprise Connectors yang akan diterapkan ke <ph name="ON_PRINT_ENTERPRISE_CONNECTOR" /> Enterprise Connector, yang aktif saat halaman atau file dicetak dari <ph name="PRODUCT_NAME" />.
+
+      Kolom <ph name="ENTERPRISE_CONNECTOR_URL_LIST_FIELD" />, <ph name="ENTERPRISE_CONNECTOR_TAGS_FIELD" />, <ph name="ENTERPRISE_CONNECTOR_ENABLE_FIELD" />, dan <ph name="ENTERPRISE_CONNECTOR_DISABLE_FIELD" /> digunakan untuk menentukan apakah konektor perlu mengirimkan data untuk dianalisis saat pencetakan dipicu pada halaman tertentu, dan jenis tag yang perlu disertakan dalam permintaan analisis. Analisis dilakukan jika terdapat minimal 1 tag yang disertakan dalam permintaan.
+
+      Kolom <ph name="ENTERPRISE_CONNECTOR_SERVICE_PROVIDER_FIELD" /> akan mengidentifikasi penyedia layanan analisis yang sesuai dengan setelan.
+
+      Jika kolom <ph name="ENTERPRISE_CONNECTOR_BLOCK_UNTIL_VERDICT_FIELD" /> disetel ke 1, <ph name="PRODUCT_NAME" /> akan menunggu untuk mendapatkan respons dari layanan analisis sebelum mengizinkan dialog pratinjau cetak ditampilkan untuk halaman yang dicetak. Jika nilai berupa bilangan bulat lainnya, <ph name="PRODUCT_NAME" /> akan langsung menampilkan dialog pratinjau cetak.
+
+      Kolom <ph name="ENTERPRISE_CONNECTOR_BLOCK_LARGE_FILES_FIELD" /> mengontrol apakah <ph name="PRODUCT_NAME" /> akan memblokir atau mengizinkan file/halaman yang berukuran terlalu besar untuk dianalisis.
+
+      Kolom <ph name="ENTERPRISE_CONNECTOR_REQUIRE_JUSTIFICATION_TAGS_FIELD" /> digunakan untuk menentukan tag mana yang diperlukan saat konektor mewajibkan pengguna memasukkan justifikasi agar dapat mengabaikan pemindaian yang menghasilkan peringatan yang dapat diabaikan. Jika kolom tidak disetel, tidak perlu justifikasi.
+
+      Kolom <ph name="ENTERPRISE_CONNECTOR_CUSTOM_MESSAGES_FIELD" />, <ph name="ENTERPRISE_CONNECTOR_MESSAGE_FIELD" />, <ph name="ENTERPRISE_CONNECTOR_LEARN_MORE_URL_FIELD" />, <ph name="ENTERPRISE_CONNECTOR_LANGUAGE_FIELD" />, dan <ph name="ENTERPRISE_CONNECTOR_TAG_FIELD" /> digunakan untuk mengonfigurasi pesan yang akan ditampilkan kepada pengguna, yaitu saat peringatan dimunculkan setelah hasil pemindaian menunjukkan ada masalah. Administrator dapat mengonfigurasi pesan yang berisi hingga 200 karakter.
+
+      Kebijakan ini memerlukan penyiapan tambahan agar dapat berlaku. Buka https://support.google.com/chrome/a?p=chrome_enterprise_connector_policies_setting untuk informasi selengkapnya.</translation>
 <translation id="6640355849038068978">Jika setelan ini diaktifkan, pengguna akan dapat meluncurkan aplikasi Eche, misalnya dengan mengklik notifikasi Phone Hub.
 
       Jika setelan ini dinonaktifkan, pengguna tidak akan dapat meluncurkan aplikasi Eche.
@@ -4743,6 +4853,7 @@
       Jika kebijakan disetel ke Nonaktif atau tidak disetel, perintah cetak akan memicu layar pratinjau cetak.</translation>
 <translation id="6658245400435704251">Menentukan jumlah waktu (dalam detik) sebuah perangkat dapat menunda download pembaruannya secara acak dari saat pembaruan tersebut pertama kali didorong ke server. Perangkat dapat menunggu dengan sebagian dari waktu ini dari segi prediksi waktu penyelesaian tugas dan sisa waktunya dari segi jumlah pemeriksaan pembaruan. Dalam keadaan apa pun, penyebaran dibatasi dengan jumlah waktu yang konstan sehingga perangkat tidak akan terus menunggu download pembaruan selamanya.</translation>
 <translation id="6659537776197644458">Jangan picu alur autentikasi untuk sinkronisasi sandi</translation>
+<translation id="6661178198729301029">Aktifkan pelaporan cloud profil terkelola</translation>
 <translation id="6665670272107384733">Setel seberapa sering pengguna harus memasukkan sandi untuk menggunakan buka kunci cepat.</translation>
 <translation id="6667586534922258705">Memperlihatkan tombol tampilkan sandi pada layar login dan layar kunci</translation>
 <translation id="6669700740683748046">Fitur ini memungkinkan tampilan URL lengkap di kolom URL.
@@ -5489,6 +5600,23 @@
 <translation id="7477149584454865826">Tanda boolean menunjukkan apakah IPP Everywhere harus digunakan untuk menyiapkan printer.</translation>
 <translation id="7477231245051133709">Mengaktifkan fitur aksesibilitas audio mono</translation>
 <translation id="7477239290070847560">Tujuan protokol berbasis Zeroconf (mDNS + DNS-SD)</translation>
+<translation id="7480826412572122600">Daftar setelan layanan Chrome Enterprise Connectors yang akan diterapkan ke <ph name="ON_FILE_DOWNLOADED_ENTERPRISE_CONNECTOR" /> Enterprise Connector, yang aktif saat file didownload di Chrome.
+
+      Kolom <ph name="ENTERPRISE_CONNECTOR_URL_LIST_FIELD" />, <ph name="ENTERPRISE_CONNECTOR_TAGS_FIELD" />, <ph name="ENTERPRISE_CONNECTOR_ENABLE_FIELD" />, dan <ph name="ENTERPRISE_CONNECTOR_DISABLE_FIELD" /> digunakan untuk menentukan apakah konektor perlu mengirimkan file untuk dianalisis saat didownload dari halaman tertentu, dan jenis tag yang perlu disertakan dalam permintaan analisis untuk file tersebut. Tag yang sesuai dengan pola 'enable' akan disertakan dalam permintaan analisis jika URL halaman cocok dengan pola yang terkait dengan tag tersebut, selama tidak ada pola 'disable' ber-tag sama yang cocok dengan URL halaman. Analisis dilakukan jika terdapat minimal 1 tag yang disertakan dalam permintaan.
+
+      Kolom <ph name="ENTERPRISE_CONNECTOR_SERVICE_PROVIDER_FIELD" /> akan mengidentifikasi penyedia layanan analisis yang sesuai dengan setelan.
+
+      Jika kolom <ph name="ENTERPRISE_CONNECTOR_BLOCK_UNTIL_VERDICT_FIELD" /> disetel ke 1, Chrome akan menunggu untuk mendapatkan respons dari layanan analisis sebelum memberikan akses pengguna ke file yang didownload. Jika nilai berupa bilangan bulat lainnya, Chrome akan langsung memberikan akses pengguna ke file.
+
+      Kolom <ph name="ENTERPRISE_CONNECTOR_BLOCK_PASSWORD_PROTECTED_FIELD" /> mengontrol apakah Chrome akan memblokir atau mengizinkan file yang dilindungi sandi.
+
+      Kolom <ph name="ENTERPRISE_CONNECTOR_BLOCK_LARGE_FILES_FIELD" /> mengontrol apakah Chrome akan memblokir atau mengizinkan file yang berukuran terlalu besar untuk dianalisis.
+
+      Kolom <ph name="ENTERPRISE_CONNECTOR_REQUIRE_JUSTIFICATION_TAGS_FIELD" /> digunakan untuk menentukan tag mana yang diperlukan saat konektor mewajibkan pengguna memasukkan justifikasi agar dapat mengabaikan pemindaian yang menghasilkan peringatan yang dapat diabaikan. Jika kolom tidak disetel, tidak perlu justifikasi.
+
+      Kolom <ph name="ENTERPRISE_CONNECTOR_CUSTOM_MESSAGES_FIELD" />, <ph name="ENTERPRISE_CONNECTOR_MESSAGE_FIELD" />, <ph name="ENTERPRISE_CONNECTOR_LEARN_MORE_URL_FIELD" />, <ph name="ENTERPRISE_CONNECTOR_LANGUAGE_FIELD" />, dan <ph name="ENTERPRISE_CONNECTOR_TAG_FIELD" /> digunakan untuk mengonfigurasi pesan yang akan ditampilkan kepada pengguna, yaitu saat peringatan dimunculkan setelah hasil pemindaian menunjukkan ada masalah. Kolom message berisi teks yang akan ditampilkan kepada pengguna dan tidak boleh melebihi 200 karakter. Kolom learn_more_url berisi URL yang disediakan oleh admin. Pengguna dapat mengklik URL untuk mengetahui lebih lanjut penyebab diblokirnya tindakan tersebut. Kolom language bersifat opsional dan berisi bahasa pesan. Kolom language yang kosong atau nilai 'default' menunjukkan pesan yang akan digunakan saat bahasa pengguna tidak memiliki pesan. Kolom tag menentukan jenis pemindaian yang akan menampilkan pesan. Daftar custom_messages dapat memiliki nol atau beberapa entri, dengan tiap entri perlu memiliki kolom message dan tag yang tidak kosong.
+
+      Kebijakan ini memerlukan penyiapan tambahan agar dapat berlaku. Buka https://support.google.com/chrome/a?p=chrome_enterprise_connector_policies_setting untuk informasi selengkapnya.</translation>
 <translation id="7485481791539008776">Aturan pemilihan printer default</translation>
 <translation id="7486205887492534734">Meminta pengguna memilih saat beberapa sertifikat cocok pada layar login</translation>
 <translation id="7491720878670299691">Interval pada saat data jaringan disurvei dan diperiksa untuk mencari aktivitas. Batas minimum yang diizinkan adalah 1 menit.
@@ -6734,6 +6862,7 @@
 <translation id="8917070657147922192">Izinkan pengguna mengelola sertifikat CA yang terinstal.</translation>
 <translation id="8919100556245407184">Waktu dalam satuan hari, jika perangkat telah mencapai kedaluwarsa update otomatis, sebelum pengguna logout jika versi <ph name="PRODUCT_OS_NAME" /> lebih rendah dari <ph name="CHROMEOS_VERSION_PROPERTY_NAME" /> yang ditentukan.</translation>
 <translation id="8919369436496201075">Mengizinkan perangkat menerima update LTS</translation>
+<translation id="8921669704201370845">Mengaktifkan pelaporan cloud <ph name="PRODUCT_NAME" /> untuk profil terkelola</translation>
 <translation id="8930064580550462145">Saat login melalui layar kunci, <ph name="PRODUCT_OS_NAME" /> dapat melakukan autentikasi terhadap server (online) atau menggunakan sandi yang tersimpan di cache (offline).
 
       Jika kebijakan ini disetel ke -2, kebijakan akan mencocokkan nilai batas waktu login offline layar login yang berasal dari <ph name="POLICY" />.
@@ -6981,6 +7110,13 @@
 <translation id="9220314833408124365">Gunakan kebijakan perujuk default untuk no-referrer-when-downgrade</translation>
 <translation id="922540222991413931">Konfigurasi sumber pemasangan skrip pengguna, aplikasi, dan ekstensi</translation>
 <translation id="924557436754151212">Impor sandi yang disimpan dari browser default saat pertama kali dijalankan</translation>
+<translation id="926104720905645793">Kebijakan ini mengontrol pelaporan cloud <ph name="PRODUCT_NAME" /> yang mengupload informasi tentang operasi browser ke <ph name="GOOGLE_ADMIN_CONSOLE_PRODUCT_NAME" />.
+
+      Jika kebijakan ini tidak disetel atau disetel ke Nonaktif, tidak ada data yang akan dikumpulkan atau diupload.
+      Jika kebijakan ini disetel ke Aktif, data akan dikumpulkan dan diupload ke <ph name="GOOGLE_ADMIN_CONSOLE_PRODUCT_NAME" />.
+
+      Untuk <ph name="PRODUCT_NAME" />, kebijakan ini hanya berlaku saat perangkat didaftarkan dengan <ph name="CLOUD_MANAGEMENT_ENROLLMENT_TOKEN" />.
+      Untuk <ph name="PRODUCT_OS_NAME" />, kebijakan ini selalu berlaku.</translation>
 <translation id="927384371566552478">Jika kebijakan disetel ke Aktif atau tidak disetel, UI ekspor-impor akan tersedia bagi pengguna. Jika kebijakan disetel ke Nonaktif, UI ekspor-impor menjadi tidak tersedia bagi pengguna.</translation>
 <translation id="927444535723396977">Jika kebijakan disetel ke 1, situs akan dapat menjalankan JavaScript. Jika kebijakan disetel ke 2, JavaScript tidak akan dapat dijalankan.
 
diff --git a/components/policy/resources/policy_templates_it.xtb b/components/policy/resources/policy_templates_it.xtb
index 6dd0a86..8938d64 100644
--- a/components/policy/resources/policy_templates_it.xtb
+++ b/components/policy/resources/policy_templates_it.xtb
@@ -419,6 +419,7 @@
       Per i pattern corrispondenti alle origini viene usato un formato simile a quello usato per i pattern del criterio "<ph name="URL_BLOCKLIST_POLICY_NAME" />", documentati all'indirizzo http://www.chromium.org/administrators/url-blocklist-filter-format.
 
       I pattern corrispondenti alle origini di questo criterio non possono però contenere elementi "/path" o "@query". I pattern contenenti un elemento "/path" o "@query" verranno ignorati.</translation>
+<translation id="1508588104835702000">Disattiva reporting su cloud tramite browser gestito</translation>
 <translation id="1509377996969000672">La configurazione del criterio consente di specificare le configurazioni delle stampanti aziendali associate ai dispositivi. Il formato corrisponde a quello del dizionario <ph name="NATIVE_PRINTERS_POLICY_NAME" />, con un campo "id" o "guid" aggiuntivo obbligatorio per ogni stampante ai fini dell'inserimento in una lista consentita o in una lista bloccata. Le dimensioni del file non possono superare i 5 MB e il formato deve essere JSON. Un file con circa 21.000 stampanti viene codificato come file di 5 MB. L'hash di crittografia consente di verificare l'integrità del download. Il file viene scaricato, memorizzato nella cache e riscaricato ogni volta che l'URL o l'hash cambiano. <ph name="PRODUCT_OS_NAME" /> scarica il file per le configurazioni delle stampanti e rende disponibili le stampanti in base ai criteri <ph name="DEVICE_PRINTERS_ACCESS_MODE_POLICY_NAME" />, <ph name="DEVICE_PRINTERS_ALLOWLIST_POLICY_NAME" /> e <ph name="DEVICE_PRINTERS_BLOCKLIST_POLICY_NAME" />.
 
       Questo criterio:
@@ -931,6 +932,7 @@
 <translation id="208566302163036794">Blocca le funzionalità disattivate</translation>
 <translation id="208623333578980446">Consenti wakelock schermo per la gestione dell'alimentazione</translation>
 <translation id="2086944573376916479">Un account gestito deve essere un account principale e non deve avere account secondari</translation>
+<translation id="2089541797660774692">Attiva reporting su cloud tramite browser gestito</translation>
 <translation id="2090304907729569435">Disattiva la visualizzazione dei risultati di <ph name="GOOGLE_SEARCH_PRODUCT_NAME" /> in un riquadro laterale del browser.</translation>
 <translation id="2090939118981888335">Se il criterio viene impostato su Attivato, è consentito il proxy di compressione dei dati. Se viene impostato su Disattivato, il proxy non è consentito.
 
@@ -2010,6 +2012,16 @@
           Questo criterio non impedisce agli amministratori aziendali di connettersi a dispositivi Chrome OS gestiti.
 
           Questo criterio non ha effetto se viene attivato, se viene lasciato vuoto o se non viene impostato.</translation>
+<translation id="3246744067327836077">
+      Questo criterio consente di controllare il reporting su cloud di <ph name="PRODUCT_NAME" /> per uno specifico profilo gestito.
+
+      Se il criterio non viene configurato o viene impostato su Disabled, i dati non vengono raccolti o caricati.
+      Se il criterio viene impostato su Enabled, i dati vengono raccolti e caricati sulla <ph name="GOOGLE_ADMIN_CONSOLE_PRODUCT_NAME" />.
+
+      Il rapporto include informazioni sull'utilizzo e sullo stato del profilo, incluse, a titolo esemplificativo, la versione del sistema operativo, la versione del browser, le estensioni installate e i criteri applicati.
+
+      Questo criterio può essere impostato soltanto come criterio relativo agli utenti cloud.
+      </translation>
 <translation id="3251500716404598358">Configura le norme per passare da un browser all'altro.
 
       I siti web configurati verranno aperti automaticamente in un browser diverso da <ph name="PRODUCT_NAME" />.</translation>
@@ -3948,6 +3960,7 @@
       Se non viene configurato, i GPO memorizzati nella cache possono essere riutilizzati per un tempo massimo di 25 ore.
 
       Nota: se il dispositivo viene riavviato o se l'utente esce, la cache viene svuotata.</translation>
+<translation id="5717973246079053225">Disattiva reporting su cloud tramite profilo gestito</translation>
 <translation id="572155275267014074">Impostazioni di Android</translation>
 <translation id="5728154254076636808">Consente la creazione di copie di roaming per i dati dei profili <ph name="PRODUCT_NAME" /></translation>
 <translation id="5729308727912841256">La password Kerberos. Il segnaposto <ph name="PASSWORD_PLACEHOLDER" /> viene sostituito dalla password di accesso.</translation>
@@ -4713,6 +4726,7 @@
       Se il criterio viene impostato su Disattivato o se non viene configurato, i comandi di stampa attivano la schermata dell'anteprima di stampa.</translation>
 <translation id="6658245400435704251">Consente di specificare il numero di secondi massimo per cui un dispositivo può ritardare in modo casuale il download di un suo aggiornamento dal momento della pubblicazione dell'aggiornamento sul server. Il dispositivo può attendere una parte di questo tempo in termini di tempo reale e la parte rimanente in termini di numero di controlli della disponibilità di aggiornamenti. In ogni caso, la dispersione ha un limite massimo pari a un periodo di tempo costante in modo che un dispositivo non si blocchi mai in attesa di scaricare un aggiornamento.</translation>
 <translation id="6659537776197644458">Non vengono attivati i flussi di autenticazione per la sincronizzazione delle password</translation>
+<translation id="6661178198729301029">Attiva reporting su cloud tramite profilo gestito</translation>
 <translation id="6665670272107384733">Imposta la frequenza di inserimento della password per poter usare lo sblocco rapido</translation>
 <translation id="6667586534922258705">Mostra il pulsante di visualizzazione della password nella schermata di accesso e di blocco</translation>
 <translation id="6669700740683748046">Questa funzionalità consente la visualizzazione dell'URL completo nella barra degli indirizzi.
@@ -6698,6 +6712,7 @@
 <translation id="8917070657147922192">Consenti agli utenti di gestire i certificati CA installati.</translation>
 <translation id="8919100556245407184">Il periodo di tempo, in giorni, dopo il post di scadenza dell'aggiornamento automatico trascorso il quale l'utente viene disconnesso dall'account se la versione di <ph name="PRODUCT_OS_NAME" /> è precedente a quella specificata nel criterio <ph name="CHROMEOS_VERSION_PROPERTY_NAME" />.</translation>
 <translation id="8919369436496201075">Consenti al dispositivo di ricevere aggiornamenti LTS</translation>
+<translation id="8921669704201370845">Attiva reporting su cloud di <ph name="PRODUCT_NAME" /> per profilo gestito</translation>
 <translation id="8930064580550462145">Durante l'accesso tramite la schermata di blocco, <ph name="PRODUCT_OS_NAME" /> può eseguire l'autenticazione con un server (online) o utilizzando una password memorizzata nella cache (offline).
 
       Se per questo criterio viene impostato il valore -2, verrà usato lo stesso valore del limite relativo al tempo di accesso offline nella schermata di accesso del criterio <ph name="POLICY" />.
@@ -6945,6 +6960,13 @@
 <translation id="9220314833408124365">Viene usato un criterio relativo al referrer predefinito no-referrer-when-downgrade</translation>
 <translation id="922540222991413931">Configura fonti di installazione di estensioni, applicazioni e script utente</translation>
 <translation id="924557436754151212">Importa password salvate dal browser predefinito alla prima esecuzione</translation>
+<translation id="926104720905645793">Questo criterio consente di controllare il reporting su cloud di <ph name="PRODUCT_NAME" />, che consente di caricare informazioni sul funzionamento del browser nella <ph name="GOOGLE_ADMIN_CONSOLE_PRODUCT_NAME" />.
+
+      Se il criterio non viene configurato o viene impostato su Disabled, i dati non vengono raccolti o caricati.
+      Se il criterio viene impostato su Enabled, i dati vengono raccolti e caricati sulla <ph name="GOOGLE_ADMIN_CONSOLE_PRODUCT_NAME" />.
+
+      Per <ph name="PRODUCT_NAME" />, questo criterio viene applicato soltanto se la macchina viene registrata con il token <ph name="CLOUD_MANAGEMENT_ENROLLMENT_TOKEN" />.
+      Per <ph name="PRODUCT_OS_NAME" />, questo criterio viene sempre applicato.</translation>
 <translation id="927384371566552478">Se il criterio viene impostato su Attivato o se non viene configurato, l'interfaccia utente di esportazione/importazione è disponibile agli utenti. Se il criterio viene impostato su Disattivato, l'interfaccia utente di esportazione/importazione non è disponibile agli utenti.</translation>
 <translation id="927444535723396977">Se il criterio è impostato su 1, i siti web possono eseguire JavaScript. Se il criterio è impostato su 2, JavaScript viene negato.
 
diff --git a/components/policy/resources/policy_templates_nl.xtb b/components/policy/resources/policy_templates_nl.xtb
index f690cbc..6b862063 100644
--- a/components/policy/resources/policy_templates_nl.xtb
+++ b/components/policy/resources/policy_templates_nl.xtb
@@ -749,6 +749,23 @@
 <translation id="1861206724856734193">Hiermee stel je een lijst in met regels ter voorkoming van datalekken.</translation>
 <translation id="1862267110714201519">De functie voor ghostvenster uitzetten.</translation>
 <translation id="1865417998205858223">Rechten voor sleutels</translation>
+<translation id="1867025364110179456">Als je het beleid instelt, wordt een lijst met web-apps gespecificeerd die op de achtergrond worden geïnstalleerd zonder interactie met de gebruiker en die niet kunnen worden verwijderd of uitgezet door gebruikers.
+
+Elk lijstitem van het beleid is een object met een verplicht lid:
+<ph name="URL_LABEL" /> (de URL van de web-app die moet worden geïnstalleerd)
+
+en 5 optionele leden:
+- <ph name="DEFAULT_LAUNCH_CONTAINER_LABEL" /> (voor hoe de web-app wordt geopend: de standaardinstelling is een nieuw tabblad)
+
+- <ph name="CREATE_DESKTOP_SHORTCUT_LABEL" /> (True als je <ph name="LINUX_OS_NAME" />- en <ph name="MS_WIN_NAME" />-snelkoppelingen wilt maken).
+
+      - <ph name="FALLBACK_APP_NAME_LABEL" /> (Vanaf versie 90 van <ph name="PRODUCT_NAME" /> kun je de app-naam overschrijven als het geen progressive web-app (PWA) is, of kun je de tijdelijk geïnstalleerde app-naam overschrijven als het een PWA is, maar verificatie vereist is voordat de installatie kan worden afgerond. Als zowel <ph name="CUSTOM_NAME_LABEL" /> als <ph name="FALLBACK_APP_NAME_LABEL" /> zijn verstrekt, wordt die laatste genegeerd.)
+
+      - <ph name="OVERRIDE_APP_NAME_LABEL" /> (Vanaf versie 99 van <ph name="PRODUCT_NAME" /> kun je de app-naam definitief overschrijven voor alle web-apps en PWA's. Momenteel alleen ondersteund op <ph name="PRODUCT_OS_NAME" />.)
+
+- <ph name="CUSTOM_ICON_LABEL" /> (Vanaf versie 99 van <ph name="PRODUCT_NAME" /> kun je het app-icoon van geïnstalleerde apps overschrijven. De iconen moeten vierkant zijn, met een maximale grootte van 1 MB en in een van de volgende indelingen: jpeg, png, gif, webp, ico. De hash-waarde moet de hash SHA256 van het icoonbestand zijn. Momenteel alleen ondersteund op <ph name="PRODUCT_OS_NAME" />.)
+
+Bekijk <ph name="PINNED_LAUNCHER_APPS_POLICY_NAME" /> voor het vastzetten van apps op de <ph name="PRODUCT_OS_NAME" />-plank.</translation>
 <translation id="186719019195685253">Actie die moet worden ondernomen wanneer de vertraging voor inactief wordt bereikt bij gebruik op netspanning</translation>
 <translation id="1881649377321404593">
       Dit beleid is verwijderd in M80 omdat WebDriver nu werkt met alle bestaande beleidsregels, en het dus niet langer nodig is.
@@ -1523,6 +1540,13 @@
 
       Als je het beleid niet toepast, rapporteren ingeschreven apparaten de lijst met gebruikers niet.</translation>
 <translation id="2730419309754848345">Pdf standaard afdrukken als afbeelding</translation>
+<translation id="2731299561202635374">Dit beleid beheert realtime checks om niet-beveiligde URL's te identificeren.
+
+Als dit beleid niet is ingesteld of niet wordt toegepast, worden de Safe Browsing-checks van de consument toegepast. Safe Browsing-checks van de consument kunnen nog steeds realtime lookups bevatten, afhankelijk van de waarde van de instelling 'Zoekopdrachten en browsefunctionaliteit verbeteren' en de waarde van het beleid UrlKeyedAnonymizedDataCollectionEnabled.
+
+      Als dit beleid wordt toegepast, worden URL's verstuurd om in realtime te worden gescand op basis van de servicevoorwaarden van het bedrijf. Dit leidt ertoe dat Chrome URL's stuurt naar Google Cloud of derden die je zelf kiest om ze in realtime te checken. De consumentenversie van realtime lookups met Safe Browsing wordt uitgezet.
+
+Dit beleid vereist aanvullende instellingen om van kracht te worden. Ga naar https://support.google.com/chrome/a?p=chrome_enterprise_connector_policies_setting voor meer informatie.</translation>
 <translation id="2731627323327011390">Gebruik van certificaten van <ph name="PRODUCT_OS_NAME" /> voor ARC-apps uitzetten</translation>
 <translation id="2742843273354638707">De app en voettekstlink voor de Chrome Web Store verbergen op de pagina 'Nieuw tabblad' en in de App Launcher van <ph name="PRODUCT_OS_NAME" />.
 
@@ -1684,6 +1708,11 @@
       Als je dit beleid niet instelt (of instelt op een ongeldige URL), gebruikt <ph name="PRODUCT_NAME" /> dit beleid niet als een bron van regels die overschakeling naar een andere browser regelen.
 
       Opmerking: Dit beleid verwijst naar een XML-bestand met dezelfde indeling als het beleid <ph name="IEEM_SITELIST_POLICY" /> van <ph name="IE_PRODUCT_NAME" />. Hiermee worden regels vanuit een XML-bestand geladen, zonder dat deze regels worden gedeeld met <ph name="IE_PRODUCT_NAME" />. Bekijk meer informatie over het beleid <ph name="IEEM_SITELIST_POLICY" /> van <ph name="IE_PRODUCT_NAME" /> (https://docs.microsoft.com/internet-explorer/ie11-deploy-guide/what-is-enterprise-mode)</translation>
+<translation id="2940653651012844682">Lijst met instellingen voor Chrome Enterprise Connectors-services die moeten worden toegepast op de Enterprise Connector <ph name="ON_SECURITY_EVENT_ENTERPRISE_CONNECTOR" />. De lijst wordt geactiveerd als een beveiligingsgebeurtenis plaatsvindt in Chrome. Dit omvat onder meer negatieve analyseresultaten van Enterprise Connectors, hergebruik van wachtwoorden, navigatie naar onveilige pagina's en andere beveiligingsgevoelige gebruikersacties.
+
+      Het veld <ph name="ENTERPRISE_CONNECTOR_SERVICE_PROVIDER_FIELD" /> geeft aan bij welke rapportageserviceprovider de instellingen horen en het veld <ph name="ENTERPRISE_CONNECTOR_ENABLED_EVENT_NAMES_FIELD" /> geeft aan welke gebeurtenissen zijn aangezet voor deze provider.
+
+      Dit beleid vereist aanvullende instellingen om van kracht te worden. Ga naar https://support.google.com/chrome/a?p=chrome_enterprise_connector_policies_setting voor meer informatie.</translation>
 <translation id="2947111924404450461">Met dit beleid worden bedrijfsprinters ingesteld. De indeling komt overeen met de dictionary <ph name="NATIVE_PRINTERS_POLICY_NAME" />, waarbij voor elke printer ook een veld <ph name="ID_FIELD" /> of <ph name="GUID_FIELD" /> verplicht is voor de toelatingslijst of weigeringslijst. Bestanden moeten een json-indeling hebben en mogen maximaal 5 MB zijn. In een bestand van 5 MB kunnen ongeveer 21.000 printers staan. De cryptografische hash wordt gebruikt om de integriteit van de download te verifiëren. Het bestand wordt gedownload, opgeslagen in het cachegeheugen en opnieuw gedownload als de URL of de hash wordt gewijzigd. <ph name="PRODUCT_OS_NAME" /> downloadt het bestand voor printerconfiguraties en maakt printers beschikbaar in overeenstemming met <ph name="BULK_PRINTERS_ACCESS_MODE_POLICY_NAME" />, <ph name="BULK_PRINTERS_WHITELIST" /> en <ph name="BULK_PRINTERS_BLACKLIST" />.
 
       Dit beleid is niet van invloed op de mogelijkheid van gebruikers om printers op afzonderlijke apparaten in te stellen. Het is bedoeld als aanvulling op de printerinstellingen van afzonderlijke gebruikers.
@@ -1873,6 +1902,23 @@
 <translation id="3144173889708944482">Als <ph name="PRINTERS_BLOCKLIST" /> wordt gekozen voor <ph name="DEVICE_PRINTERS_ACCESS_MODE_POLICY_NAME" />, kun je door <ph name="DEVICE_PRINTERS_BLOCKLIST_POLICY_NAME" /> in te stellen aangeven welke printers gebruikers niet kunnen gebruiken. Alle printers zijn beschikbaar voor gebruikers, behalve de ID's in dit beleid. De ID's moeten overeenkomen met het veld <ph name="ID_FIELD" /> of <ph name="GUID_FIELD" /> in het bestand dat is opgegeven in <ph name="DEVICE_PRINTERS_POLICY_NAME" />.</translation>
 <translation id="3146711617256415776">Stemmen voor verbeterde tekst-naar-spraak via netwerk niet toestaan bij gebruik van Selecteer om uitgesproken te worden</translation>
 <translation id="3152425128389603870">Maak Samengestelde desktop beschikbaar en zet deze standaard aan</translation>
+<translation id="3157857846231611820">Lijst met instellingen voor Chrome Enterprise Connectors-services die moeten worden toegepast op de Enterprise Connector <ph name="ON_FILE_ATTACHED_ENTERPRISE_CONNECTOR" />. De lijst wordt geactiveerd als een bestand wordt bijgevoegd in Chrome.
+
+      De velden <ph name="ENTERPRISE_CONNECTOR_URL_LIST_FIELD" />, <ph name="ENTERPRISE_CONNECTOR_TAGS_FIELD" />, <ph name="ENTERPRISE_CONNECTOR_ENABLE_FIELD" /> en <ph name="ENTERPRISE_CONNECTOR_DISABLE_FIELD" /> worden gebruikt om te bepalen of de connector een bestand voor analyse moet sturen als het is bijgevoegd bij een specifieke pagina en welke tags moeten worden opgenomen in het analyseverzoek voor dat bestand. Een tag die overeenkomt met een 'enable'-patroon, wordt opgenomen in het analyseverzoek als de pagina-URL overeenkomt met een patroon dat is gekoppeld aan die tag, op voorwaarde dat er geen 'disable'-patroon met dezelfde tag overeenkomt met de pagina-URL. De analyse vindt plaats als er ten minste 1 tag moet worden opgenomen in het verzoek.
+
+      Het veld <ph name="ENTERPRISE_CONNECTOR_SERVICE_PROVIDER_FIELD" /> geeft aan bij welke analyseserviceprovider de instellingen horen.
+
+      Als je het veld <ph name="ENTERPRISE_CONNECTOR_BLOCK_UNTIL_VERDICT_FIELD" /> instelt op 1, betekent dit dat Chrome wacht op een reactie van de analyseservice voordat Chrome de pagina toegang tot het bestand geeft. Elke andere waarde met een geheel getal betekent dat Chrome de pagina onmiddellijk toegang tot het bestand geeft.
+
+      Het veld <ph name="ENTERPRISE_CONNECTOR_BLOCK_PASSWORD_PROTECTED_FIELD" /> bepaalt of Chrome bestanden die zijn beveiligd met een wachtwoord blokkeert of toestaat.
+
+      Het veld <ph name="ENTERPRISE_CONNECTOR_BLOCK_LARGE_FILES_FIELD" /> bepaalt of Chrome bestanden blokkeert of toestaat die te groot zijn om te worden geanalyseerd.
+
+      Het veld <ph name="ENTERPRISE_CONNECTOR_REQUIRE_JUSTIFICATION_TAGS_FIELD" /> wordt gebruikt om te bepalen voor welke tags de connector moet vereisen dat de gebruiker een verantwoording opgeeft om een scan over te slaan die resulteert in een waarschuwing die kan worden overgeslagen. Als je het veld niet instelt, wordt aangenomen dat er geen verantwoording vereist is.
+
+      De velden <ph name="ENTERPRISE_CONNECTOR_CUSTOM_MESSAGES_FIELD" />, <ph name="ENTERPRISE_CONNECTOR_MESSAGE_FIELD" />, <ph name="ENTERPRISE_CONNECTOR_LEARN_MORE_URL_FIELD" />, <ph name="ENTERPRISE_CONNECTOR_LANGUAGE_FIELD" /> en <ph name="ENTERPRISE_CONNECTOR_TAG_FIELD" /> worden gebruikt om een bericht in te stellen dat de gebruiker te zien krijgt als een waarschuwing wordt getoond nadat een scan problemen heeft gevonden. Het veld 'message' bevat de tekst die de gebruiker te zien krijgt en mag maximaal 200 tekens bevatten. Het veld 'learn_more_url' bevat een door de beheerder geleverde URL waarop de gebruiker kan klikken voor meer door de klant geleverde informatie over waarom de actie is geblokkeerd. Het veld 'language' is optioneel en bevat de taal van het bericht. Met een leeg veld 'language' of de waarde 'default' wordt een bericht aangegeven dat moet worden gebruikt als er geen bericht is in de taal van de gebruiker. Het veld 'tag' geeft aan voor welk type scans het bericht wordt getoond. De lijst 'custom_messages' kan nul of meer items bevatten. Voor elk item moeten de velden 'message' en 'tag' zijn ingevuld.
+
+      Dit beleid vereist aanvullende instellingen om van kracht te worden. Ga naar https://support.google.com/chrome/a?p=chrome_enterprise_connector_policies_setting voor meer informatie.</translation>
 <translation id="3159375329008977062">Gebruiker kan Crostini-containers exporteren/importeren via de gebruikersinterface</translation>
 <translation id="3164531087779621747">Modus voor PostScript-afdrukken</translation>
 <translation id="3165468162820163252">Dit beleid bepaalt of het WebUI-gedeelte van het inlogscherm altijd wordt geladen bij het opstarten of alleen voordat het wordt getoond. Dit beleid is van toepassing op het inlogscherm.
@@ -4261,6 +4307,21 @@
 <translation id="6135398260575578389">Safe Browsing is actief in de uitgebreide modus. Deze modus biedt betere beveiliging, maar vereist dat er meer browsegegevens worden gedeeld met Google.</translation>
 <translation id="6135552820180449830">Crosh (ondersteund sinds versie 99)</translation>
 <translation id="6138636318340561140">Safe Browsing-status van URL's in realtime checken</translation>
+<translation id="6140635914906859015">Lijst met instellingen voor Chrome Enterprise Connectors-services die moeten worden toegepast op de Enterprise Connector <ph name="ON_BULK_DATA_ENTRY_ENTERPRISE_CONNECTOR" />. De lijst wordt geactiveerd als gegevens in Chrome worden ingevoerd vanaf het klembord of door slepen en neerzetten van webcontent.
+
+      De velden <ph name="ENTERPRISE_CONNECTOR_URL_LIST_FIELD" />, <ph name="ENTERPRISE_CONNECTOR_TAGS_FIELD" />, <ph name="ENTERPRISE_CONNECTOR_ENABLE_FIELD" /> en <ph name="ENTERPRISE_CONNECTOR_DISABLE_FIELD" /> worden gebruikt om te bepalen of de connector gegevens voor analyse moet sturen als ze worden ingevoerd op een specifieke pagina en welke tags moeten worden opgenomen in het analyseverzoek voor die gegevens. Een tag die overeenkomt met een 'enable'-patroon, wordt opgenomen in het analyseverzoek als de pagina-URL overeenkomt met een patroon dat is gekoppeld aan die tag, op voorwaarde dat er geen 'disable'-patroon met dezelfde tag overeenkomt met de pagina-URL. De analyse vindt plaats als er ten minste 1 tag moet worden opgenomen in het verzoek.
+
+      Het veld <ph name="ENTERPRISE_CONNECTOR_SERVICE_PROVIDER_FIELD" /> geeft aan bij welke analyseserviceprovider de instellingen horen.
+
+      Als je het veld <ph name="ENTERPRISE_CONNECTOR_BLOCK_UNTIL_VERDICT_FIELD" /> instelt op 1, betekent dit dat Chrome wacht op een reactie van de analyseservice voordat Chrome de pagina toegang tot de gegevens geeft. Elke andere waarde met een geheel getal betekent dat Chrome de pagina onmiddellijk toegang tot de gegevens geeft.
+
+      Het veld <ph name="ENTERPRISE_CONNECTOR_MINIMUM_DATA_SIZE" /> geeft de minimumgrootte (in bytes) aan die in Chrome ingevoerde gegevens ten minste moeten hebben om te worden gescand. De standaardwaarde is 100 bytes als het veld niet is ingesteld.
+
+      Het veld <ph name="ENTERPRISE_CONNECTOR_REQUIRE_JUSTIFICATION_TAGS_FIELD" /> wordt gebruikt om te bepalen voor welke tags de connector moet vereisen dat de gebruiker een verantwoording opgeeft om een scan over te slaan die resulteert in een waarschuwing die kan worden overgeslagen. Als je het veld niet instelt, wordt aangenomen dat er geen verantwoording vereist is.
+
+      De velden <ph name="ENTERPRISE_CONNECTOR_CUSTOM_MESSAGES_FIELD" />, <ph name="ENTERPRISE_CONNECTOR_MESSAGE_FIELD" />, <ph name="ENTERPRISE_CONNECTOR_LEARN_MORE_URL_FIELD" />, <ph name="ENTERPRISE_CONNECTOR_LANGUAGE_FIELD" /> en <ph name="ENTERPRISE_CONNECTOR_TAG_FIELD" /> worden gebruikt om een bericht in te stellen dat de gebruiker te zien krijgt als een waarschuwing wordt getoond nadat een scan problemen heeft gevonden. Het veld 'message' bevat de tekst die de gebruiker te zien krijgt en mag maximaal 200 tekens bevatten. Het veld 'learn_more_url' bevat een door de beheerder geleverde URL waarop de gebruiker kan klikken voor meer door de klant geleverde informatie over waarom de actie is geblokkeerd. Het veld 'language' is optioneel en bevat de taal van het bericht. Met een leeg veld 'language' of de waarde 'default' wordt een bericht aangegeven dat moet worden gebruikt als er geen bericht is in de taal van de gebruiker. Het veld 'tag' geeft aan voor welk type scans het bericht wordt getoond. De lijst 'custom_messages' kan nul of meer items bevatten. Voor elk item moeten de velden 'message' en 'tag' zijn ingevuld.
+
+      Dit beleid vereist aanvullende instellingen om van kracht te worden. Ga naar https://support.google.com/chrome/a?p=chrome_enterprise_connector_policies_setting voor meer informatie.</translation>
 <translation id="6141402445226505817">Altijd minder nauwkeurige tijdzonedetectie gebruiken</translation>
 <translation id="6142501278956229253">DPI voor afdrukrastering van pdf's</translation>
 <translation id="6144046700495610112">Als je het beleid toepast, worden de formuliergegevens voor automatisch invullen van de vorige standaardbrowser geïmporteerd bij de eerste uitvoering. Als je het beleid niet toepast of niet instelt, worden formuliergegevens voor automatisch invullen niet geïmporteerd bij de eerste uitvoering.
@@ -4663,6 +4724,21 @@
 <translation id="66265932317331474">CPU-info melden</translation>
 <translation id="6628120204569232711">Opslagstatus rapporteren</translation>
 <translation id="663685822663765995">Afdrukken in kleurenmodus beperken</translation>
+<translation id="6637946190026453735">Lijst met instellingen voor <ph name="PRODUCT_NAME" /> Enterprise Connectors-services die moeten worden toegepast op de Enterprise Connector <ph name="ON_PRINT_ENTERPRISE_CONNECTOR" />. Die wordt geactiveerd als een pagina of bestand wordt afgedrukt vanuit <ph name="PRODUCT_NAME" />.
+
+      De velden <ph name="ENTERPRISE_CONNECTOR_URL_LIST_FIELD" />, <ph name="ENTERPRISE_CONNECTOR_TAGS_FIELD" />, <ph name="ENTERPRISE_CONNECTOR_ENABLE_FIELD" /> en <ph name="ENTERPRISE_CONNECTOR_DISABLE_FIELD" /> worden gebruikt om te bepalen of de connector gegevens voor analyse moet sturen als afdrukken wordt geactiveerd op een specifieke pagina en welke tags moeten worden opgenomen in het analyseverzoek. De analyse vindt plaats als er ten minste 1 tag moet worden opgenomen in het verzoek.
+
+      Het veld <ph name="ENTERPRISE_CONNECTOR_SERVICE_PROVIDER_FIELD" /> geeft aan bij welke analyseserviceprovider de instellingen horen.
+
+      Als je het veld <ph name="ENTERPRISE_CONNECTOR_BLOCK_UNTIL_VERDICT_FIELD" /> instelt op 1, betekent dit dat <ph name="PRODUCT_NAME" /> wacht op een reactie van de analyseservice voordat het dialoogvenster met het afdrukvoorbeeld mag worden getoond voor de pagina die wordt afgedrukt. Elke andere waarde met een geheel getal betekent dat <ph name="PRODUCT_NAME" /> het dialoogvenster met het afdrukvoorbeeld meteen laat zien.
+
+      Het veld <ph name="ENTERPRISE_CONNECTOR_BLOCK_LARGE_FILES_FIELD" /> bepaalt of <ph name="PRODUCT_NAME" /> bestanden/pagina's blokkeert of toestaat die te groot zijn om te worden geanalyseerd.
+
+      Het veld <ph name="ENTERPRISE_CONNECTOR_REQUIRE_JUSTIFICATION_TAGS_FIELD" /> wordt gebruikt om te bepalen voor welke tags de connector moet vereisen dat de gebruiker een verantwoording opgeeft om een scan over te slaan die resulteert in een waarschuwing die kan worden overgeslagen. Als je het veld niet instelt, wordt aangenomen dat er geen verantwoording vereist is.
+
+      De velden <ph name="ENTERPRISE_CONNECTOR_CUSTOM_MESSAGES_FIELD" />, <ph name="ENTERPRISE_CONNECTOR_MESSAGE_FIELD" />, <ph name="ENTERPRISE_CONNECTOR_LEARN_MORE_URL_FIELD" />, <ph name="ENTERPRISE_CONNECTOR_LANGUAGE_FIELD" /> en <ph name="ENTERPRISE_CONNECTOR_TAG_FIELD" /> worden gebruikt om een bericht in te stellen dat de gebruiker te zien krijgt als een waarschuwing wordt getoond nadat een scan problemen heeft gevonden. De beheerder kan berichten van maximaal 200 tekens instellen.
+
+      Dit beleid vereist aanvullende instellingen om van kracht te worden. Ga naar https://support.google.com/chrome/a?p=chrome_enterprise_connector_policies_setting voor meer informatie.</translation>
 <translation id="6640355849038068978">Als deze instelling aanstaat, kunnen gebruikers de Eche-app starten, bijvoorbeeld door op een Telefoonhub-melding te klikken.
 
       Staat deze instelling uit, dan kunnen gebruikers de Eche-app niet starten.
@@ -5441,6 +5517,23 @@
 <translation id="7477149584454865826">Booleaanse markering die aangeeft of IPP Everywhere moet worden gebruikt om de printer in te stellen.</translation>
 <translation id="7477231245051133709">Toegankelijkheidsfunctie voor monogeluid aanzetten</translation>
 <translation id="7477239290070847560">Op zeroconf gebaseerde (mDNS + DNS-SD) protocolbestemmingen</translation>
+<translation id="7480826412572122600">Lijst met instellingen voor Chrome Enterprise Connectors-services die moeten worden toegepast op de Enterprise Connector <ph name="ON_FILE_DOWNLOADED_ENTERPRISE_CONNECTOR" />. De lijst wordt geactiveerd als een bestand wordt gedownload in Chrome.
+
+      De velden <ph name="ENTERPRISE_CONNECTOR_URL_LIST_FIELD" />, <ph name="ENTERPRISE_CONNECTOR_TAGS_FIELD" />, <ph name="ENTERPRISE_CONNECTOR_ENABLE_FIELD" /> en <ph name="ENTERPRISE_CONNECTOR_DISABLE_FIELD" /> worden gebruikt om te bepalen of de connector een bestand voor analyse moet sturen als het wordt gedownload vanaf een specifieke pagina en welke tags moeten worden opgenomen in het analyseverzoek voor dat bestand. Een tag die overeenkomt met een 'enable'-patroon, wordt opgenomen in het analyseverzoek als de pagina-URL overeenkomt met een patroon dat is gekoppeld aan die tag, op voorwaarde dat er geen 'disable'-patroon met dezelfde tag overeenkomt met de pagina-URL. De analyse vindt plaats als er ten minste 1 tag moet worden opgenomen in het verzoek.
+
+      Het veld <ph name="ENTERPRISE_CONNECTOR_SERVICE_PROVIDER_FIELD" /> geeft aan bij welke analyseserviceprovider de instellingen horen.
+
+      Als je het veld <ph name="ENTERPRISE_CONNECTOR_BLOCK_UNTIL_VERDICT_FIELD" /> instelt op 1, betekent dit dat Chrome wacht op een reactie van de analyseservice voordat Chrome de gebruiker toegang tot het gedownloade bestand geeft. Elke andere waarde met een geheel getal betekent dat Chrome de gebruiker onmiddellijk toegang tot het bestand geeft.
+
+      Het veld <ph name="ENTERPRISE_CONNECTOR_BLOCK_PASSWORD_PROTECTED_FIELD" /> bepaalt of Chrome bestanden die zijn beveiligd met een wachtwoord blokkeert of toestaat.
+
+      Het veld <ph name="ENTERPRISE_CONNECTOR_BLOCK_LARGE_FILES_FIELD" /> bepaalt of Chrome bestanden blokkeert of toestaat die te groot zijn om te worden geanalyseerd.
+
+      Het veld <ph name="ENTERPRISE_CONNECTOR_REQUIRE_JUSTIFICATION_TAGS_FIELD" /> wordt gebruikt om te bepalen voor welke tags de connector moet vereisen dat de gebruiker een verantwoording opgeeft om een scan over te slaan die resulteert in een waarschuwing die kan worden overgeslagen. Als je het veld niet instelt, wordt aangenomen dat er geen verantwoording vereist is.
+
+      De velden <ph name="ENTERPRISE_CONNECTOR_CUSTOM_MESSAGES_FIELD" />, <ph name="ENTERPRISE_CONNECTOR_MESSAGE_FIELD" />, <ph name="ENTERPRISE_CONNECTOR_LEARN_MORE_URL_FIELD" />, <ph name="ENTERPRISE_CONNECTOR_LANGUAGE_FIELD" /> en <ph name="ENTERPRISE_CONNECTOR_TAG_FIELD" /> worden gebruikt om een bericht in te stellen dat de gebruiker te zien krijgt als een waarschuwing wordt getoond nadat een scan problemen heeft gevonden. Het veld 'message' bevat de tekst die de gebruiker te zien krijgt en mag maximaal 200 tekens bevatten. Het veld 'learn_more_url' bevat een door de beheerder geleverde URL waarop de gebruiker kan klikken voor meer door de klant geleverde informatie over waarom de actie is geblokkeerd. Het veld 'language' is optioneel en bevat de taal van het bericht. Met een leeg veld 'language' of de waarde 'default' wordt een bericht aangegeven dat moet worden gebruikt als er geen bericht is in de taal van de gebruiker. Het veld 'tag' geeft aan voor welk type scans het bericht wordt getoond. De lijst 'custom_messages' kan nul of meer items bevatten. Voor elk item moeten de velden 'message' en 'tag' zijn ingevuld.
+
+      Dit beleid vereist aanvullende instellingen om van kracht te worden. Ga naar https://support.google.com/chrome/a?p=chrome_enterprise_connector_policies_setting voor meer informatie.</translation>
 <translation id="7485481791539008776">Regels voor selectie van standaardprinter</translation>
 <translation id="7486205887492534734">Prompt voor als meerdere certificaten overeenkomen op het inlogscherm</translation>
 <translation id="7491720878670299691">Snelheid waarmee netwerkgegevens worden opgevraagd en gecheckt op gebeurtenissen. Het toegestane minimum is 1 minuut.
diff --git a/components/policy/resources/policy_templates_ru.xtb b/components/policy/resources/policy_templates_ru.xtb
index 173e77a..586f009c 100644
--- a/components/policy/resources/policy_templates_ru.xtb
+++ b/components/policy/resources/policy_templates_ru.xtb
@@ -416,6 +416,7 @@
       Шаблоны источников имеют практически тот же формат, что и шаблоны, которые используются в правиле <ph name="URL_BLOCKLIST_POLICY_NAME" />. Подробная информация о формате приведена на странице http://www.chromium.org/administrators/url-blocklist-filter-format.
 
       При этом в шаблонах источников не могут содержаться элементы /path и @query. Шаблон с такими элементами учитываться не будет.</translation>
+<translation id="1508588104835702000">Не отправлять отчеты управляемого браузера в консоль администратора</translation>
 <translation id="1509377996969000672">Позволяет настроить корпоративные принтеры, связанные с устройствами. Поддерживаемый формат файла тот же, что и для словаря <ph name="NATIVE_PRINTERS_POLICY_NAME" />, но с дополнительными полями id и guid. Заполните их для каждого принтера, чтобы занести его в список разрешенных или заблокированных. Поддерживаемый формат файла конфигурации – JSON. Его размер не должен превышать 5 МБ. В файле такого объема можно указать около 21 000 принтеров. Для проверки целостности скачанного файла используется хеш-сумма. Файл скачивается и кешируется. В случае изменения URL или хеша файл скачивается повторно. <ph name="PRODUCT_OS_NAME" /> скачивает файл конфигурации и открывает доступ к принтерам согласно правилам <ph name="DEVICE_PRINTERS_ACCESS_MODE_POLICY_NAME" />, <ph name="DEVICE_PRINTERS_ALLOWLIST_POLICY_NAME" /> и <ph name="DEVICE_PRINTERS_BLOCKLIST_POLICY_NAME" />.
 
       Это правило:
@@ -924,6 +925,7 @@
 <translation id="208566302163036794">Блокировать отключенные функции</translation>
 <translation id="208623333578980446">Разрешить использование запретов блокировки через API расширения управления питанием</translation>
 <translation id="2086944573376916479">Управляемый аккаунт должен быть основным и не иметь дополнительных аккаунтов</translation>
+<translation id="2089541797660774692">Отправлять отчеты управляемого браузера в консоль администратора</translation>
 <translation id="2090304907729569435">Отключить показ результатов из сервиса "<ph name="GOOGLE_SEARCH_PRODUCT_NAME" />" на боковой панели браузера</translation>
 <translation id="2090939118981888335">Если правило включено, для сжатия трафика используется прокси-сервер. Если правило отключено, эта функция не работает.
 
@@ -1996,6 +1998,16 @@
           Оно не запрещает администраторам организации подключаться к управляемым устройствам Chrome OS.
 
           Правило не будет действовать, если оно включено, не настроено или для него указано пустое значение.</translation>
+<translation id="3246744067327836077">
+      Определяет, может ли <ph name="PRODUCT_NAME" /> отправлять отчеты об управляемом профиле в консоль администратора.
+
+      Если правило отключено или не настроено, сбор и загрузка данных не выполняется.
+      Если правило включено, данные собираются и загружаются в <ph name="GOOGLE_ADMIN_CONSOLE_PRODUCT_NAME" />.
+
+      В отчет входит информация о состоянии и использовании профиля, в том числе о версии ОС и браузера, установленных расширениях и применяемых правилах.
+
+      Правило можно настроить только как облачное правило для пользователей.
+      </translation>
 <translation id="3251500716404598358">Определяет правила переключения между браузерами.
 
       Добавленные сайты будут автоматически открываться не в <ph name="PRODUCT_NAME" />, а в другом браузере.</translation>
@@ -3933,6 +3945,7 @@
       Если правило не настроено, кешированные объекты групповой политики можно использовать в течение 25 часов.
 
       Примечание. При перезагрузке устройства или выходе из системы происходит очистка кеша.</translation>
+<translation id="5717973246079053225">Не отправлять отчеты управляемого профиля в консоль администратора</translation>
 <translation id="572155275267014074">Настройки Android</translation>
 <translation id="5728154254076636808">Разрешить создание перемещаемых копий данных для профиля сервиса "<ph name="PRODUCT_NAME" />"</translation>
 <translation id="5729308727912841256">Пароль Kerberos. На место тега <ph name="PASSWORD_PLACEHOLDER" /> будет подставлен пароль для входа.</translation>
@@ -4704,6 +4717,7 @@
       Если правило отключено или не настроено, при запросе печати будет открываться окно предварительного просмотра.</translation>
 <translation id="6658245400435704251">Время (в секундах), которое может пройти от появления обновления на сервере до его скачивания на устройство. Это время определяется как длительностью самого скачивания, так и частотой проверок на наличие обновлений. Задается максимальное время задержки, по истечении которого автообновление точно будет выполнено.</translation>
 <translation id="6659537776197644458">Не запускать аутентификацию при синхронизации паролей</translation>
+<translation id="6661178198729301029">Отправлять отчеты управляемого профиля в консоль администратора</translation>
 <translation id="6665670272107384733">Указать, как часто требуется вводить пароль, чтобы пользоваться быстрой разблокировкой</translation>
 <translation id="6667586534922258705">Показывать на экране входа и заблокированном экране кнопку просмотра пароля</translation>
 <translation id="6669700740683748046">Эта функция разрешает показ полного URL в адресной строке.
@@ -6698,6 +6712,7 @@
 <translation id="8917070657147922192">Разрешить пользователям управлять установленными сертификатами ЦС</translation>
 <translation id="8919100556245407184">Количество дней после сообщения о прекращении поддержки автоматического обновления, по истечении которых будет выполнен выход пользователя из системы, если версия <ph name="PRODUCT_OS_NAME" /> меньше, чем указанная <ph name="CHROMEOS_VERSION_PROPERTY_NAME" />.</translation>
 <translation id="8919369436496201075">Разрешать устройству получать обновления долгосрочной поддержки</translation>
+<translation id="8921669704201370845">Отправлять отчеты об управляемом профиле в консоль администратора (<ph name="PRODUCT_NAME" />)</translation>
 <translation id="8930064580550462145">При входе в аккаунт на заблокированном экране в <ph name="PRODUCT_OS_NAME" /> аутентификация пользователей может выполняться на сервере (онлайн) или с помощью кешированных паролей (офлайн).
 
       Если для правила установлено значение "-2", используется ограничение времени для входа с аутентификацией офлайн на экране входа, которое берется из правила <ph name="POLICY" />.
@@ -6945,6 +6960,13 @@
 <translation id="9220314833408124365">Использовать no-referrer-when-downgrade в качестве правила по умолчанию в отношении URL перехода</translation>
 <translation id="922540222991413931">Настроить источники для установки расширений, приложений и пользовательских скриптов</translation>
 <translation id="924557436754151212">Импорт сохраненных паролей из браузера, используемого по умолчанию, при первом запуске</translation>
+<translation id="926104720905645793">Определяет, может ли <ph name="PRODUCT_NAME" /> загружать отчеты об операциях в браузере в <ph name="GOOGLE_ADMIN_CONSOLE_PRODUCT_NAME" />.
+
+      Если правило отключено или не настроено, сбор и загрузка данных не выполняется.
+      Если правило включено, данные собираются и загружаются в <ph name="GOOGLE_ADMIN_CONSOLE_PRODUCT_NAME" />.
+
+      Для <ph name="PRODUCT_NAME" /> это правило действует только в том случае, если компьютер зарегистрирован с помощью правила <ph name="CLOUD_MANAGEMENT_ENROLLMENT_TOKEN" />.
+      Для <ph name="PRODUCT_OS_NAME" /> это правило используется всегда.</translation>
 <translation id="927384371566552478">Если правило включено или не задано, пользователям доступен интерфейс экспорта/импорта. Если правило выключено, интерфейс экспорта/импорта недоступен для пользователей.</translation>
 <translation id="927444535723396977">Если выбрано значение 1, сайтам будет разрешено выполнять код JavaScript, а если задано значение 2, – запрещено.
 
diff --git a/components/policy/resources/policy_templates_tr.xtb b/components/policy/resources/policy_templates_tr.xtb
index c2c1f720..cd47f90 100644
--- a/components/policy/resources/policy_templates_tr.xtb
+++ b/components/policy/resources/policy_templates_tr.xtb
@@ -758,6 +758,29 @@
 <translation id="1861206724856734193">Veri sızıntısı önleme kuralları listesini ayarlar.</translation>
 <translation id="1862267110714201519">Hayalet pencere özelliğini devre dışı bırak.</translation>
 <translation id="1865417998205858223">Temel İzinler</translation>
+<translation id="1867025364110179456">Politikayı ayarlamak, kullanıcı etkileşimi olmadan sessizce yüklenen, kullanıcıların kaldıramadığı veya kapatamadığı web uygulamalarının listesini belirtir.
+
+      Politikanın her liste öğesi, zorunlu üyeye sahip bir nesnedir:
+      <ph name="URL_LABEL" /> (yüklenecek web uygulamasının URL'si)
+
+      ve isteğe bağlı 5 üye:
+      - <ph name="DEFAULT_LAUNCH_CONTAINER_LABEL" />
+      (web uygulamasının açılma yöntemini belirlemek için — varsayılan yeni sekmedir)
+
+      - <ph name="CREATE_DESKTOP_SHORTCUT_LABEL" />
+      (<ph name="LINUX_OS_NAME" /> ve
+      <ph name="MS_WIN_NAME" /> masaüstü kısayolları oluşturulmak istenirse doğru değerine ayarlanmalıdır).
+
+      - <ph name="FALLBACK_APP_NAME_LABEL" />
+      (<ph name="PRODUCT_NAME" /> sürüm 90'dan başlayarak, Progresif Web Uygulaması (PWA) değilse uygulama adını veya PWA ise ancak yüklemenin tamamlanabilmesi için kimlik doğrulama gerekiyorsa geçici olarak yüklenen uygulama adını geçersiz kılmanıza olanak tanır.) Hem <ph name="CUSTOM_NAME_LABEL" /> hem de <ph name="FALLBACK_APP_NAME_LABEL" /> sağlanmışsa ikincisi dikkate alınmaz.)
+
+      - <ph name="OVERRIDE_APP_NAME_LABEL" />
+      (<ph name="PRODUCT_NAME" /> sürüm 99'dan itibaren tüm web uygulamaları ve PWA'lar için uygulama adını kalıcı olarak geçersiz kılmanıza olanak tanır. Şu anda yalnızca <ph name="PRODUCT_OS_NAME" /> işletim sisteminde desteklenmektedir.)
+
+      - <ph name="CUSTOM_ICON_LABEL" />
+      (<ph name="PRODUCT_NAME" /> sürüm 99'dan itibaren yüklü uygulamaların uygulama simgesini geçersiz kılmanıza olanak tanır. Simgeler; kare şeklinde, maksimum 1 MB boyutunda ve jpeg, png, gif, webp, ico biçimlerinden birinde olmalıdır. Karma değeri, simge dosyasının SHA256 karma değeri olmalıdır.) Şu anda yalnızca <ph name="PRODUCT_OS_NAME" /> işletim sisteminde desteklenmektedir.)
+
+      Uygulamaları <ph name="PRODUCT_OS_NAME" /> rafına sabitlemek için <ph name="PINNED_LAUNCHER_APPS_POLICY_NAME" /> politikasına bakın.</translation>
 <translation id="186719019195685253">Cihaz AC güçle çalışırken boşta kalma süresine ulaşıldığında yapılacak işlem</translation>
 <translation id="1881649377321404593">
       WebDriver artık mevcut tüm politikalarla uyumlu olduğundan gerekliliğini yitiren
@@ -1541,6 +1564,13 @@
 
       Politika Devre Dışı değerine ayarlanırsa kayıtlı cihazlar kullanıcı listesini bildirmez.</translation>
 <translation id="2730419309754848345">PDF'yi Resim Olarak Yazdır Varsayılan Ayar</translation>
+<translation id="2731299561202635374">Bu politika, güvenli olmayan URL'leri belirlemek için URL'lerin gerçek zamanlı olarak kontrol edilmesini denetler.
+
+      Bu politika ayarlanmadan bırakılırsa veya "Devre Dışı" değerine ayarlanırsa tüketici Güvenli Tarama kontrolleri uygulanır. Tüketici Güvenli Tarama kontrolleri hem "Aramaları ve göz atmayı daha iyi yap" ayarının değerine hem de UrlKeyedAnonymizedDataCollectionEnabled politikasının değerine bağlı olarak gerçek zamanlı aramaları içermeye devam edebilir.
+
+      Bu politika "Etkin" değerine ayarlanırsa URL'ler, kurumsal Hizmet Şartları kapsamında gerçek zamanlı olarak kontrol edilmek üzere gönderilir. Bu, Chrome'un gerçek zamanlı olarak kontrol etmek için URL'leri Google Cloud'a veya seçtiğiniz üçüncü taraflara göndermesine neden olur. Güvenli Tarama gerçek zamanlı aramanın tüketici sürümü kapatılır.
+
+      Bu politikanın yürürlüğe girmesi için ek kurulum gerekir. Daha fazla bilgi için lütfen https://support.google.com/chrome/a?p=chrome_enterprise_connector_policies_setting adresini ziyaret edin.</translation>
 <translation id="2731627323327011390">ARC uygulamalarına ilişkin <ph name="PRODUCT_OS_NAME" /> sertifikalarının kullanımını devre dışı bırak</translation>
 <translation id="2742843273354638707">Chrome Web Mağazası uygulamasını ve alt bilgi bağlantısını Yeni Sekme Sayfası'nda ve <ph name="PRODUCT_OS_NAME" /> uygulama başlatıcısında gizle.
 
@@ -1702,6 +1732,11 @@
       Politika ayarlanmadan bırakılırsa (veya geçersiz bir URL'ye ayarlanırsa) <ph name="PRODUCT_NAME" />, politikayı tarayıcılar arasında geçiş yapmak için bir kural kaynağı olarak kullanmaz.
 
       Not: Bu politika, <ph name="IE_PRODUCT_NAME" /> tarayıcısının <ph name="IEEM_SITELIST_POLICY" /> politikasıyla aynı biçimde bir XML dosyasına yönlendirir. Bu politika, bir XML dosyasından kurallar yükler, ancak bu kuralları <ph name="IE_PRODUCT_NAME" /> ile paylaşmaz. <ph name="IE_PRODUCT_NAME" /> tarayıcısının <ph name="IEEM_SITELIST_POLICY" /> politikası hakkında daha fazla bilgi edinin ( https://docs.microsoft.com/internet-explorer/ie11-deploy-guide/what-is-enterprise-mode)</translation>
+<translation id="2940653651012844682">Chrome'da bir güvenlik işlemi oluştuğunda tetiklenen <ph name="ON_SECURITY_EVENT_ENTERPRISE_CONNECTOR" /> Enterprise Bağlayıcı'ya uygulanacak Chrome Enterprise Bağlayıcılar hizmetleri ayarlarının listesidir. Bu liste Enterprise Bağlayıcılar analizinin olumsuz sonuçlarını, şifre yeniden kullanımını, güvensiz sayfalarda gezinmeleri ve diğer güvenlik açısından hassas kullanıcı işlemlerini içerir.
+
+      <ph name="ENTERPRISE_CONNECTOR_SERVICE_PROVIDER_FIELD" /> alanı, ayarların hangi servis sağlayıcısına karşılık geldiğini; <ph name="ENTERPRISE_CONNECTOR_ENABLED_EVENT_NAMES_FIELD" /> alanı, bu sağlayıcı için hangi etkinliklerin etkinleştirildiğini tanımlar.
+
+      Bu politikanın yürürlüğe girmesi için ek kurulum gerekir. Daha fazla bilgi için lütfen https://support.google.com/chrome/a?p=chrome_enterprise_connector_policies_setting adresini ziyaret edin.</translation>
 <translation id="2947111924404450461">Bu politika ayarlanırsa kurumsal yazıcılar yapılandırılır. Biçimi, <ph name="NATIVE_PRINTERS_POLICY_NAME" /> sözlüğü ile aynı olmakla birlikte izin verilenler veya engellenenler listelerine eklenecek her yazıcı için gerekli ek <ph name="ID_FIELD" /> veya <ph name="GUID_FIELD" /> alanlarını içerir. Dosya biçimi JSON olup boyutu 5 MB'tan büyük olamaz. Yaklaşık 21.000 yazıcı içeren bir dosya, 5 MB boyutunda olur. Şifreleme karma değeri, indirmenin bütünlüğünü doğrulamaya yardımcı olur. URL veya karma değer değiştiğinde dosya indirilir, önbelleğe alınır ve yeniden indirilir. <ph name="PRODUCT_OS_NAME" />, yazıcı yapılandırmalarına ait dosyayı indirerek <ph name="BULK_PRINTERS_ACCESS_MODE_POLICY_NAME" />, <ph name="BULK_PRINTERS_WHITELIST" /> ve <ph name="BULK_PRINTERS_BLACKLIST" /> ile birlikte yazıcıları kullanılabilir hale getirir.
 
       Bu politika, kullanıcıların yazıcıları her cihazda özel olarak yapılandırıp yapılandıramayacağını etkilemez. Kullanıcıların bireysel olarak yazıcıların yapılandırması konusunda tamamlayıcı olacak şekilde tasarlanmıştır.
@@ -1891,6 +1926,23 @@
 <translation id="3144173889708944482"><ph name="DEVICE_PRINTERS_ACCESS_MODE_POLICY_NAME" /> için <ph name="PRINTERS_BLOCKLIST" /> seçiliyken <ph name="DEVICE_PRINTERS_BLOCKLIST_POLICY_NAME" /> politikası ayarlanırsa kullanıcıların hangi yazıcıları kullanamayacağı belirlenir. Bu politikada listelenen kimlikler dışında kalan tüm yazıcılar kullanıcılara sağlanır. Kimliklerin, <ph name="DEVICE_PRINTERS_POLICY_NAME" /> politikasında belirtilen dosyadaki <ph name="ID_FIELD" /> veya <ph name="GUID_FIELD" /> alanlarına karşılık gelmesi gerekir.</translation>
 <translation id="3146711617256415776">Seç ve Dinle özelliğini kullanırken gelişmiş ağ metin okuma seslerine izin verme</translation>
 <translation id="3152425128389603870">Birleşik Masaüstü'nü kullanılabilir hale getir ve varsayılan olarak aç.</translation>
+<translation id="3157857846231611820">Chrome'a bir dosya eklendiğinde tetiklenen <ph name="ON_FILE_ATTACHED_ENTERPRISE_CONNECTOR" /> Enterprise Bağlayıcı'ya uygulanacak Chrome Enterprise Connectors hizmetleri ayarlarının listesidir.
+
+      <ph name="ENTERPRISE_CONNECTOR_URL_LIST_FIELD" />, <ph name="ENTERPRISE_CONNECTOR_TAGS_FIELD" />, <ph name="ENTERPRISE_CONNECTOR_ENABLE_FIELD" /> ve <ph name="ENTERPRISE_CONNECTOR_DISABLE_FIELD" /> alanları, bağlayıcının, belirli bir sayfaya dosya eklendiğinde ilgili dosyayı analiz için gönderip göndermemesi gerektiğini ve bu dosyanın analiz isteğine hangi etiketlerin dahil edileceğini belirlemek amacıyla kullanılır. Sayfa URL'si etiketle ilişkilendirilen desenle eşleşirse "etkinleştir" desenine karşılık gelen bu etiket analiz isteğine dahil edilir. Ancak, aynı etikete sahip "devre dışı bırak" deseni sayfa URL'si ile eşleşirse dahil edilmez. Analiz, isteğe en az 1 etiket dahil edilecekse gerçekleşir.
+
+      <ph name="ENTERPRISE_CONNECTOR_SERVICE_PROVIDER_FIELD" /> alanı, ayarların hangi analiz servis sağlayıcısına karşılık geldiğini tanımlar.
+
+      <ph name="ENTERPRISE_CONNECTOR_BLOCK_UNTIL_VERDICT_FIELD" /> alanının 1 değerine ayarlanması, Chrome'un dosyaya sayfaya erişim izni vermeden önce analiz hizmetinden yanıt almak için bekleyeceği anlamına gelir. Başka herhangi bir tam sayı değeri, Chrome'un sayfaya dosya erişim iznini hemen vereceği anlamına gelir.
+
+      <ph name="ENTERPRISE_CONNECTOR_BLOCK_PASSWORD_PROTECTED_FIELD" /> alanı, Chrome'un şifre korumalı dosyaları engelleyeceğini mi yoksa izin mi vereceğini kontrol eder.
+
+      <ph name="ENTERPRISE_CONNECTOR_BLOCK_LARGE_FILES_FIELD" /> alanı, Chrome'un analiz edilemeyecek kadar büyük dosyaları engelleyeceğini mi yoksa izin mi vereceğini kontrol eder.
+
+      <ph name="ENTERPRISE_CONNECTOR_REQUIRE_JUSTIFICATION_TAGS_FIELD" /> alanı, bağlayıcının hangi etiketler için kullanıcının atlanabilir uyarıyla sonuçlanan taramayı atlamak üzere gerekçe girmesini gerektirdiğini belirlemek amacıyla kullanılır. Bu alan ayarlanmazsa gerekçe girmenin zorunlu olmadığı varsayılır.
+
+      <ph name="ENTERPRISE_CONNECTOR_CUSTOM_MESSAGES_FIELD" />, <ph name="ENTERPRISE_CONNECTOR_MESSAGE_FIELD" />, <ph name="ENTERPRISE_CONNECTOR_LEARN_MORE_URL_FIELD" />, <ph name="ENTERPRISE_CONNECTOR_LANGUAGE_FIELD" /> ve <ph name="ENTERPRISE_CONNECTOR_TAG_FIELD" /> alanları, tarama sonucu net olmadığında görüntülenen uyarıdan sonra kullanıcıya gösterilen mesajı yapılandırmak için kullanılır. Mesaj alanında, en fazla 200 karakterden oluşması gereken metin bulunur. Learn_more_url (daha fazla bilgi edinin) alanı, yönetici tarafından sağlanan URL'yi içerir. Bu URL, işlemin neden engellendiği hakkında daha fazla müşteri tarafından sağlanan bilgi edinmek için kullanıcı tarafından tıklanabilir olur. Mesajın dilini içeren dil alanı isteğe bağlıdır. Dil alanının boş bırakılması veya "varsayılan" değerine ayarlanması, kullanıcının dilinde mesaj olmadığında kullanılacak mesajı gösterir. Etiket alanı, mesajın hangi tarama türleri için görüntüleneceğini belirtir. Custom_messages (özel mesajlar) listesi herhangi bir giriş içermeyebilir veya birden fazla giriş içerebilir. Her girişin boş olmayan mesajı ve etiket alanları olmalıdır.
+
+      Bu politikanın yürürlüğe girmesi için ek kurulum gerekir. Daha fazla bilgi için lütfen https://support.google.com/chrome/a?p=chrome_enterprise_connector_policies_setting adresini ziyaret edin.</translation>
 <translation id="3159375329008977062">Kullanıcının, kullanıcı arayüzü üzerinden Crostini kapsayıcıları dışa/içe aktarmasına izin verilir</translation>
 <translation id="3164531087779621747">Yazdırma PostScript Modu</translation>
 <translation id="3165468162820163252">Bu politika, oturum açma ekranındaki WebUI bölümünün her zaman başlangıçta mı yoksa yalnızca gösterilmeden önce mi yükleneceğini kontrol eder. Bu politika, oturum açma ekranı için geçerlidir.
@@ -4287,6 +4339,21 @@
 <translation id="6135398260575578389">Güvenli Tarama gelişmiş modda etkin. Bu mod daha yüksek güvenlik sağlar, ancak Google ile daha fazla tarama bilgisi paylaşmayı gerektirir.</translation>
 <translation id="6135552820180449830">Crosh (99 sürümünden itibaren desteklenir)</translation>
 <translation id="6138636318340561140">Ziyaret edilen URL'lerin Güvenli Tarama durumunu gerçek zamanlı olarak kontrol et</translation>
+<translation id="6140635914906859015">Chrome'da panodan veri girildiğinde veya web içeriği sürüklenip bırakıldığında tetiklenen <ph name="ON_BULK_DATA_ENTRY_ENTERPRISE_CONNECTOR" /> Enterprise Bağlayıcı'ya uygulanacak Chrome Enterprise Connectors  hizmetleri ayarlarının listesidir.
+
+      <ph name="ENTERPRISE_CONNECTOR_URL_LIST_FIELD" />, <ph name="ENTERPRISE_CONNECTOR_TAGS_FIELD" />, <ph name="ENTERPRISE_CONNECTOR_ENABLE_FIELD" /> ve <ph name="ENTERPRISE_CONNECTOR_DISABLE_FIELD" /> alanları, bağlayıcının, belirli bir sayfada veri girildiğinde ilgili veriyi analiz için gönderip göndermemesi gerektiğini ve bu veri analiz isteğine hangi etiketlerin dahil edileceğini belirlemek üzere kullanılır. Sayfa URL'si etiketle ilişkilendirilen desenle eşleşirse "etkinleştir" desenine karşılık gelen bu etiket analiz isteğine dahil edilir. Ancak, aynı etikete sahip "devre dışı bırak" deseni sayfa URL'si ile eşleşirse dahil edilmez. Analiz, isteğe en az 1 etiket dahil edilecekse gerçekleşir.
+
+      <ph name="ENTERPRISE_CONNECTOR_SERVICE_PROVIDER_FIELD" /> alanı, ayarların hangi analiz servis sağlayıcısına karşılık geldiğini tanımlar.
+
+      <ph name="ENTERPRISE_CONNECTOR_BLOCK_UNTIL_VERDICT_FIELD" /> alanının 1 değerine ayarlanması, Chrome'un verilere sayfaya erişim izni vermeden önce analiz hizmetinden yanıt almak için bekleyeceği anlamına gelir. Başka herhangi bir tam sayı değeri, Chrome'un sayfaya dosya erişim iznini hemen vereceği anlamına gelir.
+
+      <ph name="ENTERPRISE_CONNECTOR_MINIMUM_DATA_SIZE" /> alanı, Chrome'a girilen verilerin taranabilmesi için eşit olması veya aşması gereken minimum boyutu (bayt cinsinden) belirtir. Alan ayarlanmadan bırakılırsa varsayılan değer 100 bayttır.
+
+      <ph name="ENTERPRISE_CONNECTOR_REQUIRE_JUSTIFICATION_TAGS_FIELD" /> alanı, bağlayıcının hangi etiketler için kullanıcının atlanabilir uyarıyla sonuçlanan taramayı atlamak üzere gerekçe girmesini gerektirdiğini belirlemek amacıyla kullanılır. Bu alan ayarlanmazsa gerekçe girmenin zorunlu olmadığı varsayılır.
+
+      <ph name="ENTERPRISE_CONNECTOR_CUSTOM_MESSAGES_FIELD" />, <ph name="ENTERPRISE_CONNECTOR_MESSAGE_FIELD" />, <ph name="ENTERPRISE_CONNECTOR_LEARN_MORE_URL_FIELD" />, <ph name="ENTERPRISE_CONNECTOR_LANGUAGE_FIELD" /> ve <ph name="ENTERPRISE_CONNECTOR_TAG_FIELD" /> alanları, tarama sonucu net olmadığında görüntülenen uyarıdan sonra kullanıcıya gösterilen mesajı yapılandırmak için kullanılır. Mesaj alanında, en fazla 200 karakterden oluşması gereken metin bulunur. Learn_more_url (daha fazla bilgi edinin) alanı, yönetici tarafından sağlanan URL'yi içerir. Bu URL, işlemin neden engellendiği hakkında daha fazla müşteri tarafından sağlanan bilgi edinmek için kullanıcı tarafından tıklanabilir olur. Mesajın dilini içeren dil alanı isteğe bağlıdır. Dil alanının boş bırakılması veya "varsayılan" değerine ayarlanması, kullanıcının dilinde mesaj olmadığında kullanılacak mesajı gösterir. Etiket alanı, mesajın hangi tarama türleri için görüntüleneceğini belirtir. Custom_messages (özel mesajlar) listesi herhangi bir giriş içermeyebilir veya birden fazla giriş içerebilir. Her girişin boş olmayan mesajı ve etiket alanları olmalıdır.
+
+      Bu politikanın yürürlüğe girmesi için ek kurulum gerekir. Daha fazla bilgi için lütfen https://support.google.com/chrome/a?p=chrome_enterprise_connector_policies_setting adresini ziyaret edin.</translation>
 <translation id="6141402445226505817">Her zaman yüzeysel saat dilimi algılamasını kullan</translation>
 <translation id="6142501278956229253">Yazdırma Pikselleştirme PDF DPI</translation>
 <translation id="6144046700495610112">Politika Etkin değerine ayarlanırsa önceki varsayılan tarayıcıda otomatik doldurulan form verileri ilk çalıştırmada içe aktarılır. Politika Devre dışı değerine ayarlanır veya ayarlanmadan bırakılırsa otomatik doldurulan form verileri ilk çalıştırmada içe aktarılmaz.
@@ -4691,6 +4758,21 @@
 <translation id="66265932317331474">CPU bilgisi raporlama</translation>
 <translation id="6628120204569232711">Depolama durumunu bildir</translation>
 <translation id="663685822663765995">Renkli yazdırma modunu kısıtla</translation>
+<translation id="6637946190026453735"><ph name="PRODUCT_NAME" /> hizmetinden bir sayfa veya dosya yazdırıldığında tetiklenen <ph name="ON_PRINT_ENTERPRISE_CONNECTOR" /> Enterprise Bağlayıcı'ya uygulanacak <ph name="PRODUCT_NAME" /> Enterprise Connectors hizmetleri ayarlarının listesidir.
+
+      <ph name="ENTERPRISE_CONNECTOR_URL_LIST_FIELD" />, <ph name="ENTERPRISE_CONNECTOR_TAGS_FIELD" />, <ph name="ENTERPRISE_CONNECTOR_ENABLE_FIELD" /> ve<ph name="ENTERPRISE_CONNECTOR_DISABLE_FIELD" /> alanları, bağlayıcının, belirli bir sayfada yazdırma işlemi tetiklendiğinde ilgili veriyi analiz için gönderip göndermemesi gerektiğini ve analiz isteğine hangi etiketlerin dahil edileceğini belirlemek üzere kullanılır. Analiz, isteğe en az 1 etiket dahil edilecekse gerçekleşir.
+
+      <ph name="ENTERPRISE_CONNECTOR_SERVICE_PROVIDER_FIELD" /> alanı, ayarların hangi analiz servis sağlayıcısına karşılık geldiğini tanımlar.
+
+      <ph name="ENTERPRISE_CONNECTOR_BLOCK_UNTIL_VERDICT_FIELD" /> alanının 1 değerine ayarlanması <ph name="PRODUCT_NAME" /> hizmetinin, yazdırılan sayfa için yazdırma önizleme iletişim kutusunun gösterilmesine izin vermeden önce analiz hizmetinden yanıt almak için bekleyeceği anlamına gelir. Başka herhangi bir tam sayı değeri, <ph name="PRODUCT_NAME" /> hizmetinin yazdırma önizleme iletişim kutusunu hemen göstereceği anlamına gelir.
+
+      <ph name="ENTERPRISE_CONNECTOR_BLOCK_LARGE_FILES_FIELD" /> alanları, <ph name="PRODUCT_NAME" /> hizmetinin analiz edilemeyecek kadar büyük dosyaları/sayfaları engelleyeceğini mi yoksa izin mi vereceğini kontrol eder.
+
+      <ph name="ENTERPRISE_CONNECTOR_REQUIRE_JUSTIFICATION_TAGS_FIELD" /> alanı, bağlayıcının hangi etiketler için kullanıcının atlanabilir uyarıyla sonuçlanan taramayı atlamak üzere gerekçe girmesini gerektirdiğini belirlemek amacıyla kullanılır. Bu alan ayarlanmazsa gerekçe girmenin zorunlu olmadığı varsayılır.
+
+      <ph name="ENTERPRISE_CONNECTOR_CUSTOM_MESSAGES_FIELD" />, <ph name="ENTERPRISE_CONNECTOR_MESSAGE_FIELD" />, <ph name="ENTERPRISE_CONNECTOR_LEARN_MORE_URL_FIELD" />, <ph name="ENTERPRISE_CONNECTOR_LANGUAGE_FIELD" /> ve <ph name="ENTERPRISE_CONNECTOR_TAG_FIELD" /> alanları, tarama sonucu net olmadığında görüntülenen uyarıdan sonra kullanıcıya gösterilen mesajı yapılandırmak için kullanılır. Yönetici en fazla 200 karakterlik mesajları yapılandırabilir.
+
+      Bu politikanın yürürlüğe girmesi için ek kurulum gerekir. Daha fazla bilgi için lütfen https://support.google.com/chrome/a?p=chrome_enterprise_connector_policies_setting adresini ziyaret edin.</translation>
 <translation id="6640355849038068978">Bu ayar etkinleştirilirse kullanıcılar örneğin bir Telefon Merkezi bildirimini tıklayarak Eche uygulamasını başlatabilir.
 
       Bu ayar devre dışı bırakılırsa kullanıcılar Eche uygulamasını başlatamaz.
@@ -5473,6 +5555,23 @@
 <translation id="7477149584454865826">Yazıcıyı kurmak için IPP Everywhere'in kullanılıp kullanılmayacağını belirten boole flag'i.</translation>
 <translation id="7477231245051133709">Mono ses erişilebilirlik özelliklerini etkinleştir</translation>
 <translation id="7477239290070847560">Zeroconf tabanlı (mDNS + DNS-SD) protokol hedefleri</translation>
+<translation id="7480826412572122600">Chrome'da bir dosya indirildiğinde tetiklenen <ph name="ON_FILE_DOWNLOADED_ENTERPRISE_CONNECTOR" /> Enterprise Bağlayıcı'ya uygulanacak Chrome Enterprise Connectors hizmetleri ayarlarının listesidir.
+
+      <ph name="ENTERPRISE_CONNECTOR_URL_LIST_FIELD" />, <ph name="ENTERPRISE_CONNECTOR_TAGS_FIELD" />, <ph name="ENTERPRISE_CONNECTOR_ENABLE_FIELD" /> ve <ph name="ENTERPRISE_CONNECTOR_DISABLE_FIELD" /> alanları, bağlayıcı belirli bir sayfadan indirildiğinde analiz için dosya gönderip göndermemesi gerektiğini ve bu dosyanın analiz isteğine hangi etiketlerin dahil edileceğini belirlemek üzere kullanılır. Sayfa URL'si etiketle ilişkilendirilen desenle eşleşirse "etkinleştir" desenine karşılık gelen bu etiket analiz isteğine dahil edilir. Ancak, aynı etikete sahip "devre dışı bırak" deseni sayfa URL'si ile eşleşirse dahil edilmez. Analiz, isteğe en az 1 etiket dahil edilecekse gerçekleşir.
+
+      <ph name="ENTERPRISE_CONNECTOR_SERVICE_PROVIDER_FIELD" /> alanı, ayarların hangi analiz servis sağlayıcısına karşılık geldiğini tanımlar.
+
+      <ph name="ENTERPRISE_CONNECTOR_BLOCK_UNTIL_VERDICT_FIELD" /> alanının 1 değerine ayarlanması, Chrome'un kullanıcıya indirilen dosyaya erişim izni vermeden önce analiz hizmetinden yanıt almak için bekleyeceği anlamına gelir. Başka herhangi bir tam sayı değeri, Chrome'un, kullanıcıya dosya erişim iznini hemen vereceği anlamına gelir.
+
+      <ph name="ENTERPRISE_CONNECTOR_BLOCK_PASSWORD_PROTECTED_FIELD" /> alanı, Chrome'un şifre korumalı dosyaları engelleyeceğini mi yoksa izin mi vereceğini kontrol eder.
+
+      <ph name="ENTERPRISE_CONNECTOR_BLOCK_LARGE_FILES_FIELD" /> alanı, Chrome'un analiz edilemeyecek kadar büyük dosyaları engelleyeceğini mi yoksa izin mi vereceğini kontrol eder.
+
+      <ph name="ENTERPRISE_CONNECTOR_REQUIRE_JUSTIFICATION_TAGS_FIELD" /> alanı, bağlayıcının hangi etiketler için kullanıcının atlanabilir uyarıyla sonuçlanan taramayı atlamak üzere gerekçe girmesini gerektirdiğini belirlemek amacıyla kullanılır. Bu alan ayarlanmazsa gerekçe girmenin zorunlu olmadığı varsayılır.
+
+      <ph name="ENTERPRISE_CONNECTOR_CUSTOM_MESSAGES_FIELD" />, <ph name="ENTERPRISE_CONNECTOR_MESSAGE_FIELD" />, <ph name="ENTERPRISE_CONNECTOR_LEARN_MORE_URL_FIELD" />, <ph name="ENTERPRISE_CONNECTOR_LANGUAGE_FIELD" /> ve <ph name="ENTERPRISE_CONNECTOR_TAG_FIELD" /> alanları, tarama sonucu net olmadığında görüntülenen uyarıdan sonra kullanıcıya gösterilen mesajı yapılandırmak için kullanılır. Mesaj alanında, en fazla 200 karakterden oluşması gereken metin bulunur. Learn_more_url (daha fazla bilgi edinin) alanı, yönetici tarafından sağlanan URL'yi içerir. Bu URL, işlemin neden engellendiği hakkında daha fazla müşteri tarafından sağlanan bilgi edinmek için kullanıcı tarafından tıklanabilir olur. Mesajın dilini içeren dil alanı isteğe bağlıdır. Dil alanının boş bırakılması veya "varsayılan" değerine ayarlanması, kullanıcının dilinde mesaj olmadığında kullanılacak mesajı gösterir. Etiket alanı, mesajın hangi tarama türleri için görüntüleneceğini belirtir. Custom_messages (özel mesajlar) listesi herhangi bir giriş içermeyebilir veya birden fazla giriş içerebilir. Her girişin boş olmayan mesajı ve etiket alanları olmalıdır.
+
+      Bu politikanın yürürlüğe girmesi için ek kurulum gerekir. Daha fazla bilgi için lütfen https://support.google.com/chrome/a?p=chrome_enterprise_connector_policies_setting adresini ziyaret edin.</translation>
 <translation id="7485481791539008776">Varsayılan yazıcı seçimi için kurallar</translation>
 <translation id="7486205887492534734">Oturum açma ekranında birden fazla sertifika eşleştiğinde sor</translation>
 <translation id="7491720878670299691">Ağ verilerinin etkinlikler için sorgulanma ve kontrol edilme hızı. İzin verilen minimum sıklık 1 dakikadır.
diff --git a/components/policy/resources/policy_templates_uk.xtb b/components/policy/resources/policy_templates_uk.xtb
index 5ffa9b9a..1f079ba 100644
--- a/components/policy/resources/policy_templates_uk.xtb
+++ b/components/policy/resources/policy_templates_uk.xtb
@@ -758,6 +758,44 @@
 <translation id="1861206724856734193">Налаштовує список правил для запобігання витоку даних.</translation>
 <translation id="1862267110714201519">Вимкнути функцію вікна-привида</translation>
 <translation id="1865417998205858223">Основні дозволи</translation>
+<translation id="1867025364110179456">Налаштування цього правила визначають список веб-додатків, які встановлюються фоново, без дій із боку користувача. Користувач не може видалити або вимкнути їх.
+
+      Кожний елемент списку правила – це об’єкт з однією обов’язковою частиною та п’ятьма додатковими. Обов’язкова частина:
+      <ph name="URL_LABEL" /> (URL-адреса веб-додатка для встановлення.)
+
+      Додаткові частини:
+      - <ph name="DEFAULT_LAUNCH_CONTAINER_LABEL" />
+      (Визначає, як відкривається веб-додаток – за умовчанням вибрано нову вкладку.)
+
+      - <ph name="CREATE_DESKTOP_SHORTCUT_LABEL" />
+      (Значення True, якщо створюються ярлики на робочому столі в ОС <ph name="LINUX_OS_NAME" /> і
+      <ph name="MS_WIN_NAME" />.)
+
+      - <ph name="FALLBACK_APP_NAME_LABEL" />
+      (Починаючи з версії <ph name="PRODUCT_NAME" /> 90,
+      ви маєте змогу перевизначити назву додатка (якщо він не
+      є прогресивним веб-додатком) або назви тимчасових
+      прогресивних веб-додатків, де потрібна автентифікація
+      перед завершенням встановлення. Якщо вказано обидві назви
+      <ph name="CUSTOM_NAME_LABEL" /> і
+      <ph name="FALLBACK_APP_NAME_LABEL" />,
+      остання ігноруватиметься.)
+
+      - <ph name="OVERRIDE_APP_NAME_LABEL" />
+      (Починаючи з версії <ph name="PRODUCT_NAME" />
+      99, ви маєте змогу назавжди перевизначати назви всіх
+      прогресивних і звичайних веб-додатків.) Зараз підтримується лише в
+      <ph name="PRODUCT_OS_NAME" />)
+
+      - <ph name="CUSTOM_ICON_LABEL" />
+      (Починаючи з версії <ph name="PRODUCT_NAME" />
+      99, ви маєте змогу перевизначати значки встановлених додатків. Значки
+      мають займати не більше ніж 1 МБ, бути квадратними та в одному з таких
+      форматів: jpeg, png, gif, webp, ico. Хеш SHA256 файлу значка має використовуватися
+      як значення хеш-функції. Зараз підтримується лише в
+      <ph name="PRODUCT_OS_NAME" />.)
+
+      Щоб закріпити додатки на панелі запуску <ph name="PRODUCT_OS_NAME" />, скористайтеся правилом <ph name="PINNED_LAUNCHER_APPS_POLICY_NAME" />.</translation>
 <translation id="186719019195685253">Дія, яка має виконуватися під час живлення від електромережі, коли виникає затримка через неактивність.</translation>
 <translation id="1881649377321404593">
       Це правило видалено в M80, тому що воно більше не потрібне.
@@ -1552,6 +1590,13 @@
 
       Якщо це правило вимкнено, зареєстровані пристрої не надсилатимуть такі дані.</translation>
 <translation id="2730419309754848345">Друкувати файли PDF як зображення за умовчанням</translation>
+<translation id="2731299561202635374">Це правило керує перевіркою URL-адрес у реальному часі.
+
+      Якщо його не налаштувати або вимкнути, застосовуватимуться перевірки користувацького Безпечного перегляду. При цьому залежно від значень параметра "Покращувати пошук і веб-перегляд" і правила UrlKeyedAnonymizedDataCollectionEnabled можуть виконуватися перевірки в реальному часі.
+
+      Якщо ввімкнути це правило, URL-адреси надсилатимуться на перевірку в реальному часі відповідно до Умов використання організації. Chrome надсилатиме URL-адреси на платформу Google Cloud або стороннім сервісам (відповідно до вашого вибору) на перевірку в реальному часі. Перевірки в реальному часі в користувацькій версії Безпечного перегляду буде вимкнено.
+
+      Щоб це правило почало діяти, його потрібно додатково налаштувати. Докладніше читайте на сторінці https://support.google.com/chrome/a?p=chrome_enterprise_connector_policies_setting.</translation>
 <translation id="2731627323327011390">Заборонити використовувати сертифікати <ph name="PRODUCT_OS_NAME" /> для додатків ARC</translation>
 <translation id="2742843273354638707">Ховає додаток Веб-магазин Chrome і посилання внизу на сторінці нової вкладки та панелі запуску додатків <ph name="PRODUCT_OS_NAME" />.
 
@@ -1712,6 +1757,11 @@
       Якщо це правило не налаштовано (або для нього вказано недійсну URL-адресу), <ph name="PRODUCT_NAME" /> не використовує його як джерело для правил, що ініціюють перехід в інший веб-переглядач.
 
       Примітка: це правило вказує на файл XML у тому ж форматі, що й правило <ph name="IEEM_SITELIST_POLICY" /> в <ph name="IE_PRODUCT_NAME" />. Воно завантажує правила з файлу XML, не надсилаючи їх в <ph name="IE_PRODUCT_NAME" />. Докладніше про правило <ph name="IEEM_SITELIST_POLICY" /> в <ph name="IE_PRODUCT_NAME" /> читайте на сторінці https://docs.microsoft.com/internet-explorer/ie11-deploy-guide/what-is-enterprise-mode</translation>
+<translation id="2940653651012844682">Список налаштувань сервісів Chrome Enterprise Connectors, які застосовуються до конектора Enterprise <ph name="ON_SECURITY_EVENT_ENTERPRISE_CONNECTOR" />, що активується, коли у веб-переглядачі Chrome виявлено подію системи безпеки. Це можуть бути негативні результати аналізу конекторів Enterprise, повторне використання пароля, перехід на небезпечні сторінки чи інші дії, пов’язані з безпекою.
+
+      Поле <ph name="ENTERPRISE_CONNECTOR_SERVICE_PROVIDER_FIELD" /> визначає, якому постачальнику послуг звітування відповідають налаштування, а поле <ph name="ENTERPRISE_CONNECTOR_ENABLED_EVENT_NAMES_FIELD" /> – які події ввімкнено для цього постачальника.
+
+      Щоб це правило почало діяти, його потрібно додатково налаштувати. Докладніше читайте на сторінці https://support.google.com/chrome/a?p=chrome_enterprise_connector_policies_setting.</translation>
 <translation id="2947111924404450461">Це правило визначає налаштування принтерів організації. Формат збігається зі словником <ph name="NATIVE_PRINTERS_POLICY_NAME" />, але з обов'язковим полем <ph name="ID_FIELD" /> або <ph name="GUID_FIELD" /> для кожного принтера, який додається в білий чи чорний список. Файл має бути у форматі JSON, а його розмір не може перевищувати 5 МБ. Файл розміром 5 МБ містить приблизно 21 000 принтерів. Криптографічний хеш допомагає перевірити цілісність завантаження. Файл завантажується й додається в кеш. Коли URL-адреса або хеш змінюються, файл завантажується повторно. <ph name="PRODUCT_OS_NAME" /> завантажує файл для налаштування принтерів і надає доступ до принтерів відповідно до правил <ph name="BULK_PRINTERS_ACCESS_MODE_POLICY_NAME" />, <ph name="BULK_PRINTERS_WHITELIST" /> та <ph name="BULK_PRINTERS_BLACKLIST" />.
 
       Це правило не впливає на змогу користувачів налаштовувати принтери для окремих пристроїв. Воно доповнює такі налаштування.
@@ -1901,6 +1951,23 @@
 <translation id="3144173889708944482">Якщо для правила <ph name="DEVICE_PRINTERS_ACCESS_MODE_POLICY_NAME" /> вибрано параметр <ph name="PRINTERS_BLOCKLIST" />, тоді налаштування <ph name="DEVICE_PRINTERS_BLOCKLIST_POLICY_NAME" /> визначає, які принтери не можна використовувати. Користувачам недоступні лише принтери з переліченими в правилі ідентифікаторами. Ідентифікатори мають відповідати полю <ph name="ID_FIELD" /> або <ph name="GUID_FIELD" /> у файлі, указаному в правилі <ph name="DEVICE_PRINTERS_POLICY_NAME" />.</translation>
 <translation id="3146711617256415776">Заборонити покращені голоси для синтезу мовлення через мережу під час використання функції "Читання з екрана"</translation>
 <translation id="3152425128389603870">За умовчанням робити доступним і вмикати уніфікований режим робочого стола</translation>
+<translation id="3157857846231611820">Список налаштувань сервісів Chrome Enterprise Connectors, які застосовуються до конектора Enterprise <ph name="ON_FILE_ATTACHED_ENTERPRISE_CONNECTOR" />, що активується, коли до сторінки в Chrome долучено файл.
+
+      Поля <ph name="ENTERPRISE_CONNECTOR_URL_LIST_FIELD" />, <ph name="ENTERPRISE_CONNECTOR_TAGS_FIELD" />, <ph name="ENTERPRISE_CONNECTOR_ENABLE_FIELD" /> і <ph name="ENTERPRISE_CONNECTOR_DISABLE_FIELD" /> визначають, чи надсилатиме конектор на аналіз долучений до певної сторінки файл, а також які теги додавати в запит на аналіз цього файлу. Тег, який відповідає шаблону enable, буде включено в запит на аналіз, якщо URL-адреса сторінки відповідає шаблону, зв’язаному з цим тегом, і якщо для цього тега немає шаблону disable, що відповідає цій URL-адресі сторінки. Дані аналізуються, якщо запит містить принаймні 1 тег.
+
+      Поле <ph name="ENTERPRISE_CONNECTOR_SERVICE_PROVIDER_FIELD" /> визначає, якому постачальнику послуг аналізу відповідають налаштування.
+
+      Якщо в полі <ph name="ENTERPRISE_CONNECTOR_BLOCK_UNTIL_VERDICT_FIELD" /> указано значення 1, Chrome надає сторінці доступ до файлу, лише коли отримує відповідь від сервісу аналізу. Якщо в цьому полі вказано будь-яке інше ціле число, Chrome одразу надає сторінці доступ до файлу.
+
+      Поле <ph name="ENTERPRISE_CONNECTOR_BLOCK_PASSWORD_PROTECTED_FIELD" /> контролює, чи блокуватиме Chrome захищені паролем файли.
+
+      Поле <ph name="ENTERPRISE_CONNECTOR_BLOCK_LARGE_FILES_FIELD" /> контролює, чи блокуватиме Chrome завеликі для аналізу файли.
+
+      Поле <ph name="ENTERPRISE_CONNECTOR_REQUIRE_JUSTIFICATION_TAGS_FIELD" /> визначає теги, для яких конектор вимагає від користувача вказати підставу для обходу перевірки (після чого попередження можна буде закрити). Якщо це поле не налаштовано, вважається, що вказувати підставу не потрібно.
+
+      Поля <ph name="ENTERPRISE_CONNECTOR_CUSTOM_MESSAGES_FIELD" />, <ph name="ENTERPRISE_CONNECTOR_MESSAGE_FIELD" />, <ph name="ENTERPRISE_CONNECTOR_LEARN_MORE_URL_FIELD" />, <ph name="ENTERPRISE_CONNECTOR_LANGUAGE_FIELD" /> і <ph name="ENTERPRISE_CONNECTOR_TAG_FIELD" /> дають змогу налаштувати повідомлення для користувача про незадовільний результат перевірки. Поле message – це текст, який бачитиме користувач (довжиною не більше ніж 200 символів). Поле learn_more_url містить указану адміністратором URL-адресу, за якою користувач зможе перейти й дізнатися докладніше, чому дію заблоковано. Поле language – необов’язкове, у ньому вказано мову повідомлення. Порожнє поле language або значення за умовчанням указують, яке повідомлення буде відображатися, коли немає повідомлення мовою користувача. Поле tag визначає, для яких типів перевірки показується повідомлення. Список custom_messages може мати нуль або більше записів, і для кожного з них потрібно налаштувати поля message і tag.
+
+      Щоб це правило почало діяти, його потрібно додатково налаштувати. Докладніше читайте на сторінці https://support.google.com/chrome/a?p=chrome_enterprise_connector_policies_setting.</translation>
 <translation id="3159375329008977062">Користувач може експортувати або імпортувати контейнери Crostini через інтерфейс</translation>
 <translation id="3164531087779621747">Режим друку PostScript</translation>
 <translation id="3165468162820163252">Це правило визначає, коли завантажувати частину WebUI екрана входу: під час запуску чи лише перед його показом. Воно діє для екрана входу.
@@ -4311,6 +4378,21 @@
 <translation id="6135398260575578389">Безпечний перегляд увімкнено в режимі покращеного захисту. Цей режим забезпечує вищий рівень захисту, але в Google надсилатиметься більше інформації.</translation>
 <translation id="6135552820180449830">Crosh (підтримується, починаючи з версії 99)</translation>
 <translation id="6138636318340561140">Перевіряти статус URL-адрес у реальному часі за допомогою Безпечного перегляду</translation>
+<translation id="6140635914906859015">Список налаштувань сервісів Chrome Enterprise Connectors, які застосовуються до конектора Enterprise <ph name="ON_BULK_DATA_ENTRY_ENTERPRISE_CONNECTOR" />, що активується, коли у веб-переглядачі Chrome вставляють дані з буферу обміну або перетягують веб-контент.
+
+      Поля <ph name="ENTERPRISE_CONNECTOR_URL_LIST_FIELD" />, <ph name="ENTERPRISE_CONNECTOR_TAGS_FIELD" />, <ph name="ENTERPRISE_CONNECTOR_ENABLE_FIELD" /> і <ph name="ENTERPRISE_CONNECTOR_DISABLE_FIELD" /> визначають, чи надсилатиме конектор на аналіз внесені на певній сторінці дані, а також які теги додавати в запит на аналіз цих даних. Тег, який відповідає шаблону enable, буде включено в запит на аналіз, якщо URL-адреса сторінки відповідає шаблону, зв’язаному з цим тегом, і якщо для цього тега немає шаблону disable, що відповідає цій URL-адресі сторінки. Дані аналізуються, якщо запит містить принаймні 1 тег.
+
+      Поле <ph name="ENTERPRISE_CONNECTOR_SERVICE_PROVIDER_FIELD" /> визначає, якому постачальнику послуг аналізу відповідають налаштування.
+
+      Якщо в полі <ph name="ENTERPRISE_CONNECTOR_BLOCK_UNTIL_VERDICT_FIELD" /> указано значення 1, Chrome надає сторінці доступ до даних, лише коли отримує відповідь від сервісу аналізу. Якщо в цьому полі вказано будь-яке інше ціле число, Chrome одразу надає сторінці доступ до даних.
+
+      Поле <ph name="ENTERPRISE_CONNECTOR_MINIMUM_DATA_SIZE" /> визначає мінімальний розмір (у байтах) введених у Chrome даних, які скануються. Якщо це поле не налаштовано, використовується значення за умовчанням 100 байт.
+
+      Поле <ph name="ENTERPRISE_CONNECTOR_REQUIRE_JUSTIFICATION_TAGS_FIELD" /> визначає теги, для яких конектор вимагає від користувача вказати підставу для обходу перевірки (після чого попередження можна буде закрити). Якщо це поле не налаштовано, вважається, що вказувати підставу не потрібно.
+
+      Поля <ph name="ENTERPRISE_CONNECTOR_CUSTOM_MESSAGES_FIELD" />, <ph name="ENTERPRISE_CONNECTOR_MESSAGE_FIELD" />, <ph name="ENTERPRISE_CONNECTOR_LEARN_MORE_URL_FIELD" />, <ph name="ENTERPRISE_CONNECTOR_LANGUAGE_FIELD" /> і <ph name="ENTERPRISE_CONNECTOR_TAG_FIELD" /> дають змогу налаштувати повідомлення для користувача про незадовільний результат перевірки. Поле message – це текст, який бачитиме користувач (довжиною не більше ніж 200 символів). Поле learn_more_url містить указану адміністратором URL-адресу, за якою користувач зможе перейти й дізнатися докладніше, чому дію заблоковано. Поле language – необов’язкове, у ньому вказано мову повідомлення. Порожнє поле language або значення за умовчанням указують, яке повідомлення буде відображатися, коли немає повідомлення мовою користувача. Поле tag визначає, для яких типів перевірки показується повідомлення. Список custom_messages може мати нуль або більше записів, і для кожного з них потрібно налаштувати поля message і tag.
+
+      Щоб це правило почало діяти, його потрібно додатково налаштувати. Докладніше читайте на сторінці https://support.google.com/chrome/a?p=chrome_enterprise_connector_policies_setting.</translation>
 <translation id="6141402445226505817">Завжди приблизно визначати часовий пояс</translation>
 <translation id="6142501278956229253">DPI для растеризації файлів PDF під час друку</translation>
 <translation id="6144046700495610112">Якщо це правило активовано, дані автозаповнення форм із попереднього веб-переглядача за умовчанням імпортуються під час першого запуску. Якщо це правило деактивовано або не налаштовано, дані автозаповнення форм не імпортуються під час першого запуску.
@@ -4715,6 +4797,21 @@
 <translation id="66265932317331474">Повідомляти інформацію про ЦП</translation>
 <translation id="6628120204569232711">Повідомляти про стан пам’яті</translation>
 <translation id="663685822663765995">Обмежити кольоровий друк</translation>
+<translation id="6637946190026453735">Список налаштувань сервісів <ph name="PRODUCT_NAME" /> Enterprise Connectors, які застосовуються до конектора Enterprise <ph name="ON_PRINT_ENTERPRISE_CONNECTOR" />, що активується, коли у веб-переглядачі <ph name="PRODUCT_NAME" /> виконується друк сторінки або файлу.
+
+      Поля <ph name="ENTERPRISE_CONNECTOR_URL_LIST_FIELD" />, <ph name="ENTERPRISE_CONNECTOR_TAGS_FIELD" />, <ph name="ENTERPRISE_CONNECTOR_ENABLE_FIELD" /> і <ph name="ENTERPRISE_CONNECTOR_DISABLE_FIELD" /> визначають, чи надсилатиме конектор на аналіз дані, коли активується друк на певній сторінці, а також які теги додавати в запит на аналіз. Дані аналізуються, якщо запит містить принаймні 1 тег.
+
+      Поле <ph name="ENTERPRISE_CONNECTOR_SERVICE_PROVIDER_FIELD" /> визначає, якому постачальнику послуг аналізу відповідають налаштування.
+
+      Якщо в полі <ph name="ENTERPRISE_CONNECTOR_BLOCK_UNTIL_VERDICT_FIELD" /> указано значення 1, <ph name="PRODUCT_NAME" /> показує вікно попереднього перегляду друку для сторінки, лише коли отримує відповідь від сервісу аналізу. Якщо в цьому полі вказано будь-яке інше ціле число, <ph name="PRODUCT_NAME" /> одразу показує вікно попереднього перегляду друку.
+
+      Поле <ph name="ENTERPRISE_CONNECTOR_BLOCK_LARGE_FILES_FIELD" /> контролює, чи блокуватиме <ph name="PRODUCT_NAME" /> завеликі для аналізу файли або сторінки.
+
+      Поле <ph name="ENTERPRISE_CONNECTOR_REQUIRE_JUSTIFICATION_TAGS_FIELD" /> визначає теги, для яких конектор вимагає від користувача вказати підставу для обходу перевірки (після чого попередження можна буде закрити). Якщо це поле не налаштовано, вважається, що вказувати підставу не потрібно.
+
+      Поля <ph name="ENTERPRISE_CONNECTOR_CUSTOM_MESSAGES_FIELD" />, <ph name="ENTERPRISE_CONNECTOR_MESSAGE_FIELD" />, <ph name="ENTERPRISE_CONNECTOR_LEARN_MORE_URL_FIELD" />, <ph name="ENTERPRISE_CONNECTOR_LANGUAGE_FIELD" /> і <ph name="ENTERPRISE_CONNECTOR_TAG_FIELD" /> дають змогу налаштувати повідомлення для користувача про незадовільний результат перевірки. (довжиною не більше ніж 200 символів).
+
+      Щоб це правило почало діяти, його потрібно додатково налаштувати. Докладніше читайте на сторінці https://support.google.com/chrome/a?p=chrome_enterprise_connector_policies_setting.</translation>
 <translation id="6640355849038068978">Якщо ввімкнути це налаштування, користувачі зможуть запускати додаток Eche, натиснувши сповіщення, згенероване функцією "Керування телефоном".
 
       Якщо вимкнути це налаштування, користувачі не зможуть запускати додаток Eche.
@@ -5495,6 +5592,23 @@
 <translation id="7477149584454865826">Логічне значення експериментального параметра, яке вказує, чи потрібно налаштовувати принтер за допомогою IPP Everywhere.</translation>
 <translation id="7477231245051133709">Увімкнути спеціальну можливість "Монофонічне аудіо"</translation>
 <translation id="7477239290070847560">Місця призначення на основі Zeroconf (mDNS + DNS-SD)</translation>
+<translation id="7480826412572122600">Список налаштувань сервісів Chrome Enterprise Connectors, які застосовуються до конектора Enterprise <ph name="ON_FILE_DOWNLOADED_ENTERPRISE_CONNECTOR" />, що активується, коли у веб-переглядачі Chrome завантажується файл.
+
+      Поля <ph name="ENTERPRISE_CONNECTOR_URL_LIST_FIELD" />, <ph name="ENTERPRISE_CONNECTOR_TAGS_FIELD" />, <ph name="ENTERPRISE_CONNECTOR_ENABLE_FIELD" /> і <ph name="ENTERPRISE_CONNECTOR_DISABLE_FIELD" /> визначають, чи надсилатиме конектор на аналіз завантажений із певної сторінки файл, а також які теги додавати в запит на аналіз цього файлу. Тег, який відповідає шаблону enable, буде включено в запит на аналіз, якщо URL-адреса сторінки відповідає шаблону, зв’язаному з цим тегом, і якщо для цього тега немає шаблону disable, що відповідає цій URL-адресі сторінки. Дані аналізуються, якщо запит містить принаймні 1 тег.
+
+      Поле <ph name="ENTERPRISE_CONNECTOR_SERVICE_PROVIDER_FIELD" /> визначає, якому постачальнику послуг аналізу відповідають налаштування.
+
+      Якщо в полі <ph name="ENTERPRISE_CONNECTOR_BLOCK_UNTIL_VERDICT_FIELD" /> указано значення 1, Chrome надає користувачу доступ до завантаженого файлу, лише коли отримує відповідь від сервісу аналізу. Якщо в цьому полі вказано будь-яке інше ціле число, Chrome одразу надає користувачу доступ до файлу.
+
+      Поле <ph name="ENTERPRISE_CONNECTOR_BLOCK_PASSWORD_PROTECTED_FIELD" /> контролює, чи блокуватиме Chrome захищені паролем файли.
+
+      Поле <ph name="ENTERPRISE_CONNECTOR_BLOCK_LARGE_FILES_FIELD" /> контролює, чи блокуватиме Chrome завеликі для аналізу файли.
+
+      Поле <ph name="ENTERPRISE_CONNECTOR_REQUIRE_JUSTIFICATION_TAGS_FIELD" /> визначає теги, для яких конектор вимагає від користувача вказати підставу для обходу перевірки (після чого попередження можна буде закрити). Якщо це поле не налаштовано, вважається, що вказувати підставу не потрібно.
+
+      Поля <ph name="ENTERPRISE_CONNECTOR_CUSTOM_MESSAGES_FIELD" />, <ph name="ENTERPRISE_CONNECTOR_MESSAGE_FIELD" />, <ph name="ENTERPRISE_CONNECTOR_LEARN_MORE_URL_FIELD" />, <ph name="ENTERPRISE_CONNECTOR_LANGUAGE_FIELD" /> і <ph name="ENTERPRISE_CONNECTOR_TAG_FIELD" /> дають змогу налаштувати повідомлення для користувача про незадовільний результат перевірки. Поле message – це текст, який бачитиме користувач (довжиною не більше ніж 200 символів). Поле learn_more_url містить указану адміністратором URL-адресу, за якою користувач зможе перейти й дізнатися докладніше, чому дію заблоковано. Поле language – необов’язкове, у ньому вказано мову повідомлення. Порожнє поле language або значення за умовчанням указують, яке повідомлення буде відображатися, коли немає повідомлення мовою користувача. Поле tag визначає, для яких типів перевірки показується повідомлення. Список custom_messages може мати нуль або більше записів, і для кожного з них потрібно налаштувати поля message і tag.
+
+      Щоб це правило почало діяти, його потрібно додатково налаштувати. Докладніше читайте на сторінці https://support.google.com/chrome/a?p=chrome_enterprise_connector_policies_setting.</translation>
 <translation id="7485481791539008776">Правила вибору принтера за умовчанням</translation>
 <translation id="7486205887492534734">Запитувати на екрані входу, коли є кілька відповідних сертифікатів</translation>
 <translation id="7491720878670299691">Швидкість надсилання запиту даних мережі та перевірки їх на наявність подій. Мінімальне значення – 1 хвилина.
diff --git a/components/policy/resources/policy_templates_vi.xtb b/components/policy/resources/policy_templates_vi.xtb
index a8dd4ff..ca0ac2c 100644
--- a/components/policy/resources/policy_templates_vi.xtb
+++ b/components/policy/resources/policy_templates_vi.xtb
@@ -419,6 +419,7 @@
       Mẫu so khớp nguồn sẽ có định dạng giống với các mẫu của chính sách "<ph name="URL_BLOCKLIST_POLICY_NAME" />" nêu tại http://www.chromium.org/administrators/url-blocklist-filter-format.
 
       Tuy nhiên, các mẫu so khớp nguồn của chính sách này không được chứa các thành phần "/path" hoặc "@query". Mọi mẫu chứa thành phần "/path" hoặc "@query" đều bị bỏ qua.</translation>
+<translation id="1508588104835702000">Tắt tính năng báo cáo trên đám mây qua trình duyệt được quản lý</translation>
 <translation id="1509377996969000672">Việc đặt chính sách này sẽ cung cấp các cấu hình máy in dành cho doanh nghiệp được kết nối với các thiết bị. Định dạng của chính sách khớp với định dạng của từ điển <ph name="NATIVE_PRINTERS_POLICY_NAME" />, có thêm trường "id" hoặc "guid" bắt buộc trên từng máy in để đưa vào danh sách cho phép hoặc danh sách cấm. Kích thước tệp không được vượt quá 5 MB và phải ở định dạng JSON. Một tệp có khoảng 21.000 máy in sẽ mã hóa dưới dạng tệp 5 MB. Hàm băm mật mã giúp xác minh tính toàn vẹn của tệp tải xuống. Tệp này được tải xuống, lưu vào bộ nhớ đệm và tải lại xuống khi URL hoặc hàm băm thay đổi. <ph name="PRODUCT_OS_NAME" /> tải tệp này xuống để định cấu hình máy in và cung cấp các máy in theo đúng <ph name="DEVICE_PRINTERS_ACCESS_MODE_POLICY_NAME" />, <ph name="DEVICE_PRINTERS_ALLOWLIST_POLICY_NAME" />, và <ph name="DEVICE_PRINTERS_BLOCKLIST_POLICY_NAME" />.
 
       Chính sách này:
@@ -937,6 +938,7 @@
 <translation id="208566302163036794">Chặn các tính năng đã tắt</translation>
 <translation id="208623333578980446">Cho phép khóa chế độ thức của màn hình để quản lý nguồn điện</translation>
 <translation id="2086944573376916479">Một Tài khoản được quản lý phải là tài khoản chính và không có các tài khoản phụ</translation>
+<translation id="2089541797660774692">Bật tính năng báo cáo trên đám mây qua trình duyệt được quản lý</translation>
 <translation id="2090304907729569435">Tắt lựa chọn hiện kết quả <ph name="GOOGLE_SEARCH_PRODUCT_NAME" /> trong bảng điều khiển bên của Trình duyệt.</translation>
 <translation id="2090939118981888335">Nếu bạn đặt chính sách này thành Bật, proxy nén dữ liệu sẽ được phép hoạt động. Nếu bạn đặt chính sách này thành Tắt, proxy nén dữ liệu sẽ không được phép hoạt động.
 
@@ -2014,6 +2016,16 @@
           Chính sách này không ngăn quản trị viên doanh nghiệp kết nối với các thiết bị Chrome OS được quản lý.
 
           Chính sách này không có hiệu lực nếu bạn bật, để trống hoặc không đặt chính sách.</translation>
+<translation id="3246744067327836077">
+      Chính sách này kiểm soát hoạt động báo cáo của <ph name="PRODUCT_NAME" /> trên đám mây cho một hồ sơ cụ thể được quản lý.
+
+      Khi bạn không đặt chính sách này hoặc đặt thành Disabled (Tắt), thì dữ liệu sẽ không được thu thập hay tải lên.
+      Khi bạn đặt chính sách này thành Enabled (Bật), thì dữ liệu sẽ được thu thập và tải lên.<ph name="GOOGLE_ADMIN_CONSOLE_PRODUCT_NAME" />.
+
+      Báo cáo này cho biết trạng thái của hồ sơ và thông tin về mức sử dụng, bao gồm nhưng không giới hạn ở phiên bản hệ điều hành, phiên bản trình duyệt, tiện ích đã cài đặt và chính sách áp dụng.
+
+      Bạn chỉ có thể đặt chính sách này thành chính sách người dùng trên đám mây.
+      </translation>
 <translation id="3251500716404598358">Định cấu hình chính sách để chuyển đổi giữa các trình duyệt.
 
       Các trang web được định cấu hình sẽ tự động mở trong trình duyệt khác không phải là <ph name="PRODUCT_NAME" />.</translation>
@@ -3959,6 +3971,7 @@
       Nếu bạn không đặt chính sách này, hệ thống có thể sử dụng lại các GPO đã lưu vào bộ nhớ đệm trong tối đa 25 giờ.
 
       Lưu ý: Thao tác khởi động lại và đăng xuất sẽ xóa bộ nhớ đệm.</translation>
+<translation id="5717973246079053225">Tắt tính năng báo cáo trên đám mây qua hồ sơ được quản lý.</translation>
 <translation id="572155275267014074">Cài đặt Android</translation>
 <translation id="5728154254076636808">Bật tạo bản sao chuyển vùng cho dữ liệu hồ sơ của <ph name="PRODUCT_NAME" /></translation>
 <translation id="5729308727912841256">Mật khẩu Kerberos. Phần giữ chỗ <ph name="PASSWORD_PLACEHOLDER" /> được thay bằng mật khẩu đăng nhập.</translation>
@@ -4732,6 +4745,7 @@
       Nếu bạn đặt thành Tắt hoặc không đặt chính sách này, thì các lệnh in sẽ kích hoạt màn hình xem trước bản in.</translation>
 <translation id="6658245400435704251">Chỉ định số giây tối đa mà thiết bị có thể ngẫu nhiên trì hoãn việc tải xuống bản cập nhật từ thời điểm bản cập nhật được đưa lên máy chủ lần đầu tiên. Thiết bị có thể đợi một phần số thời gian này là thời gian thực và phần thời gian còn lại là thời gian kiểm tra bản cập nhật. Trong bất kỳ trường hợp nào, việc phân tán bị chặn trên ở lượng thời gian cố định để thiết bị không bao giờ phải chờ mãi để tải xuống bản cập nhật.</translation>
 <translation id="6659537776197644458">Không kích hoạt quy trình xác thực cho tính năng đồng bộ hóa mật khẩu</translation>
+<translation id="6661178198729301029">Bật tính năng báo cáo trên đám mây qua hồ sơ được quản lý</translation>
 <translation id="6665670272107384733">Đặt tần suất người dùng phải nhập mật khẩu để sử dụng tính năng mở khóa nhanh</translation>
 <translation id="6667586534922258705">Hiện nút hiển thị mật khẩu trên màn hình đăng nhập và màn hình khóa</translation>
 <translation id="6669700740683748046">Tính năng này cho phép hiển thị URL đầy đủ trên thanh địa chỉ.
@@ -6737,6 +6751,7 @@
 <translation id="8917070657147922192">Cho phép người dùng quản lý các chứng chỉ CA đã cài đặt.</translation>
 <translation id="8919100556245407184">Thời gian (tính theo ngày) mà sau khi bài đăng hết hạn tự động cập nhật thì người dùng sẽ bị đăng xuất nếu phiên bản <ph name="PRODUCT_OS_NAME" /> cũ hơn phiên bản <ph name="CHROMEOS_VERSION_PROPERTY_NAME" /> được chỉ định</translation>
 <translation id="8919369436496201075">Cho phép thiết bị nhận bản cập nhật LTS (hỗ trợ dài hạn)</translation>
+<translation id="8921669704201370845">Bật tính năng báo cáo của <ph name="PRODUCT_NAME" /> trên đám mây qua hồ sơ được quản lý</translation>
 <translation id="8930064580550462145">Trong khi đăng nhập qua màn hình khóa, <ph name="PRODUCT_OS_NAME" /> có thể xác thực với một máy chủ (trực tuyến) hoặc dùng mật khẩu lưu trong bộ nhớ đệm (ngoại tuyến).
 
       Khi bạn đặt chính sách này thành -2, chính sách này sẽ khớp với giá trị của giới hạn thời gian đăng nhập ngoại tuyến trên màn hình đăng nhập trong chính sách <ph name="POLICY" />.
@@ -6991,6 +7006,13 @@
 <translation id="9220314833408124365">Sử dụng chính sách liên kết giới thiệu mặc định no-referrer-when-downgrade</translation>
 <translation id="922540222991413931">Định cấu hình nguồn cài đặt tiện ích, ứng dụng và tập lệnh người dùng</translation>
 <translation id="924557436754151212">Nhập mật khẩu đã lưu từ trình duyệt mặc định trong lần chạy đầu tiên</translation>
+<translation id="926104720905645793">Chính sách này kiểm soát hoạt động báo cáo của <ph name="PRODUCT_NAME" /> trên đám mây, cho phép tải thông tin về hoạt động của trình duyệt lên <ph name="GOOGLE_ADMIN_CONSOLE_PRODUCT_NAME" />.
+
+      Khi bạn không đặt chính sách này hoặc đặt thành Disabled (Tắt), thì dữ liệu sẽ không được thu thập hay tải lên.
+      Khi bạn đặt chính sách này thành Enabled (Bật), thì dữ liệu sẽ được thu thập và tải lên.<ph name="GOOGLE_ADMIN_CONSOLE_PRODUCT_NAME" />.
+
+      Đối với <ph name="PRODUCT_NAME" />, chính sách này chỉ có hiệu lực khi máy đã đăng ký bằng <ph name="CLOUD_MANAGEMENT_ENROLLMENT_TOKEN" />.
+      Đối với <ph name="PRODUCT_OS_NAME" />, chính sách này luôn có hiệu lực.</translation>
 <translation id="927384371566552478">Nếu bạn không đặt hoặc đặt chính sách này thành Bật, thì giao diện người dùng xuất/nhập sẽ hiển thị với người dùng. Nếu bạn đặt chính sách này thành Tắt, giao diện người dùng xuất/nhập sẽ không hiển thị với người dùng.</translation>
 <translation id="927444535723396977">Nếu bạn đặt chính sách này thành 1, thì các trang web có thể chạy JavaScript. Nếu bạn đặt chính sách này thành 2, thì các trang web không được chạy JavaScript.
 
diff --git a/components/policy/resources/policy_templates_zh-CN.xtb b/components/policy/resources/policy_templates_zh-CN.xtb
index 75e774e2..fd9e467b 100644
--- a/components/policy/resources/policy_templates_zh-CN.xtb
+++ b/components/policy/resources/policy_templates_zh-CN.xtb
@@ -416,6 +416,7 @@
       用于与来源进行匹配的网址格式和“<ph name="URL_BLOCKLIST_POLICY_NAME" />”政策中设置的网址格式类似,详见 http://www.chromium.org/administrators/url-blocklist-filter-format。
 
       不过,此政策中用于与来源进行匹配的网址格式不能包含“/path”或“@query”元素。系统会忽略所有包含“/path”或“@query”元素的网址格式。</translation>
+<translation id="1508588104835702000">为受管理浏览器停用云报告功能</translation>
 <translation id="1509377996969000672">通过设置此政策,您可为绑定到设备的企业打印机提供配置。其格式与 <ph name="NATIVE_PRINTERS_POLICY_NAME" /> 字典一样,不过每台打印机都还对应一个额外的必填字段“id”或“guid”,以用于将相应打印机加入许可名单/拒绝名单。该文件不得超过 5MB,且必须采用 JSON 格式。一个包含大约 21000 台打印机的文件在编码后的大小是 5MB。相应的加密哈希值可帮助您验证下载内容的完整性。系统会下载、缓存该文件。当相应网址或哈希值发生变化时,系统会重新下载该文件。<ph name="PRODUCT_OS_NAME" />会下载该文件以获取打印机配置,并会根据 <ph name="DEVICE_PRINTERS_ACCESS_MODE_POLICY_NAME" />、<ph name="DEVICE_PRINTERS_ALLOWLIST_POLICY_NAME" /> 和 <ph name="DEVICE_PRINTERS_BLOCKLIST_POLICY_NAME" /> 向用户提供可用的打印机。
 
       此政策:
@@ -920,6 +921,7 @@
 <translation id="208566302163036794">禁用已停用的功能</translation>
 <translation id="208623333578980446">允许使用屏幕唤醒锁定以便进行电源管理</translation>
 <translation id="2086944573376916479">受管理的帐号必须是主帐号,且无任何辅助帐号</translation>
+<translation id="2089541797660774692">为受管理浏览器启用云报告功能</translation>
 <translation id="2090304907729569435">禁止在浏览器侧边栏中显示 <ph name="GOOGLE_SEARCH_PRODUCT_NAME" />结果。</translation>
 <translation id="2090939118981888335">如果此政策已启用,系统会允许使用数据压缩代理。如果此政策已停用,系统将禁止使用该代理。
 
@@ -1993,6 +1995,16 @@
           此政策不会阻止企业管理员连接到受管 Chrome 操作系统设备。
 
           如果已启用、留空或未设置,此政策将不会产生任何影响。</translation>
+<translation id="3246744067327836077">
+      此政策旨在控制是否为特定受管理个人资料启用 <ph name="PRODUCT_NAME" /> 云报告功能。
+
+      如果此政策未设置或已停用,系统将不会收集或上传任何数据。
+      如果此政策已启用,系统便会收集数据并将其上传到 <ph name="GOOGLE_ADMIN_CONSOLE_PRODUCT_NAME" />。
+
+      该报告包含个人资料状态和使用情况信息,包括但不限于操作系统版本、浏览器版本、已安装的扩展程序和已应用的政策。
+
+      此政策只能设为云端用户政策。
+      </translation>
 <translation id="3251500716404598358">配置政策以在浏览器之间切换。
 
       配置的网站将自动在其他浏览器(而非 <ph name="PRODUCT_NAME" />)中打开。</translation>
@@ -3919,6 +3931,7 @@
       如果您未设置此政策,已缓存的 GPO 最多可被重复使用 25 小时。
 
       注意:重启设备和退出帐号会清除缓存。</translation>
+<translation id="5717973246079053225">为受管理个人资料停用云报告功能</translation>
 <translation id="572155275267014074">Android 设置</translation>
 <translation id="5728154254076636808">允许创建 <ph name="PRODUCT_NAME" /> 个人资料数据的漫游副本</translation>
 <translation id="5729308727912841256">Kerberos 密码。占位符 <ph name="PASSWORD_PLACEHOLDER" /> 会被登录密码取代。</translation>
@@ -4677,6 +4690,7 @@
       如果此政策已停用或未设置,打印命令将触发打印预览屏幕。</translation>
 <translation id="6658245400435704251">指定一个时间(以秒为单位),即从更新首次推送到服务器起设备随机延迟更新下载的最大时间。设备的这一等待时间一部分会按照实际时间计算,而剩下的部分则取决于更新检查的次数。在任何情况下,分配的时间上限都是固定的,因此设备绝不会一直等待下载某个更新。</translation>
 <translation id="6659537776197644458">不为密码同步触发身份验证流程</translation>
+<translation id="6661178198729301029">为受管理个人资料启用云报告功能</translation>
 <translation id="6665670272107384733">指定用户必须按什么样的频率输入密码才能使用快速解锁功能</translation>
 <translation id="6667586534922258705">在登录屏幕和锁定屏幕上启用显示密码按钮</translation>
 <translation id="6669700740683748046">此功能可让系统在地址栏中显示完整网址。
@@ -6654,6 +6668,7 @@
 <translation id="8917070657147922192">允许用户管理已安装的 CA 证书。</translation>
 <translation id="8919100556245407184">如果 <ph name="PRODUCT_OS_NAME" />版本低于指定的 <ph name="CHROMEOS_VERSION_PROPERTY_NAME" />,系统会在自动更新到期日已过多少天后强制用户退出登录</translation>
 <translation id="8919369436496201075">允许设备接收 LTS 更新</translation>
+<translation id="8921669704201370845">为受管理个人资料启用 <ph name="PRODUCT_NAME" /> 云报告功能</translation>
 <translation id="8930064580550462145">在用户通过锁定屏幕登录期间,<ph name="PRODUCT_OS_NAME" />可通过服务器(在线)或使用缓存的密码(离线)来验证用户的身份。
 
       如果设为 -2,此政策会与登录屏幕离线登录时间限制(来自 <ph name="POLICY" />)的值相匹配。
@@ -6901,6 +6916,13 @@
 <translation id="9220314833408124365">使用默认引荐来源网址政策值 no-referrer-when-downgrade</translation>
 <translation id="922540222991413931">配置扩展程序、应用和用户脚本安装源</translation>
 <translation id="924557436754151212">首次运行时,从默认浏览器导入保存的密码</translation>
+<translation id="926104720905645793">此政策旨在控制 <ph name="PRODUCT_NAME" /> 云报告功能,该功能可将与浏览器操作相关的信息上传到 <ph name="GOOGLE_ADMIN_CONSOLE_PRODUCT_NAME" />。
+
+      如果此政策未设置或已停用,系统将不会收集或上传任何数据。
+      如果此政策已启用,系统便会收集数据并将其上传到 <ph name="GOOGLE_ADMIN_CONSOLE_PRODUCT_NAME" />。
+
+      对于 <ph name="PRODUCT_NAME" />,此政策仅在已使用 <ph name="CLOUD_MANAGEMENT_ENROLLMENT_TOKEN" /> 注册相应设备后有效。
+      对于 <ph name="PRODUCT_OS_NAME" />,此政策一直有效。</translation>
 <translation id="927384371566552478">如果此政策已启用或未设置,用户便可使用导出/导入界面。如果此政策已停用,用户便无法使用导出/导入界面。</translation>
 <translation id="927444535723396977">如果此政策设为 1,系统会允许网站运行 JavaScript。如果此政策设为 2,系统会禁止网站运行 JavaScript。
 
diff --git a/components/reputation/core/safety_tips.proto b/components/reputation/core/safety_tips.proto
index 44b5b520..48d9d47 100644
--- a/components/reputation/core/safety_tips.proto
+++ b/components/reputation/core/safety_tips.proto
@@ -34,6 +34,25 @@
   optional string regex = 1;
 }
 
+message HeuristicLaunchConfig {
+  // The heuristic to be launched with a warning UI.
+  // Important: Edits to heuristics MUST increment the heuristic ID. Otherwise,
+  // old implementation of the heuristic will still be affected by the rollout
+  // and risk showing buggy warnings.
+  enum Heuristic {
+    HEURISTIC_UNKNOWN = 0;
+    HEURISTIC_CHARACTER_SWAP = 1;
+  }
+  optional Heuristic heuristic = 1;
+
+  // Percentage of all sites this heuristic should be enabled on.
+  // A value of 0 means the heuristic isn't enabled on any site.
+  // A value of 100 means the heuristic is enabled on all sites.
+  // The determination of which sites are enabled is based on hash prefixes of
+  // the sites.
+  optional uint32 launch_percentage = 2;
+}
+
 // Configuration for the safety tips component. A binary version of this proto
 // will be distributed to Chrome clients via component updater. The binary will
 // contain a single instance of this message.
@@ -70,4 +89,8 @@
   // components/url_formatter/spoof_checks/common_words. The combined list is
   // used in some lookalike heuristics to prevent common false positives.
   repeated string common_word = 5;
+
+  // Launch configurations for new heuristics. Each new heuristic gets its own
+  // config. Multiple heuristics may be enabled on
+  repeated HeuristicLaunchConfig launch_config = 6;
 }
diff --git a/components/strings/components_strings_af.xtb b/components/strings/components_strings_af.xtb
index d1f0739..704ca1b 100644
--- a/components/strings/components_strings_af.xtb
+++ b/components/strings/components_strings_af.xtb
@@ -20,7 +20,6 @@
 <translation id="1038842779957582377">onbekende naam</translation>
 <translation id="1041998700806130099">Taakbladsyboodskap</translation>
 <translation id="1048785276086539861">Hierdie dokument sal na enkelbladsyaansig toe terugkeer wanneer jy aantekeninge redigeer</translation>
-<translation id="1049743911850919806">Incognito</translation>
 <translation id="1050038467049342496">Maak ander programme toe</translation>
 <translation id="1055184225775184556">Ontdoen byvoeging</translation>
 <translation id="1056898198331236512">Waarskuwing</translation>
@@ -740,12 +739,6 @@
 <translation id="3345782426586609320">Oë</translation>
 <translation id="3355823806454867987">Verander instaanbedienerinstellings …</translation>
 <translation id="3360103848165129075">Betalinghanteerdersigblad</translation>
-<translation id="3361596688432910856">Chrome sal nie die volgende inligting <ph name="BEGIN_EMPHASIS" />stoor nie<ph name="END_EMPHASIS" />:
-        <ph name="BEGIN_LIST" />
-          <ph name="LIST_ITEM" />Jou blaaigeskiedenis
-          <ph name="LIST_ITEM" />Webkoekies en werfdata
-          <ph name="LIST_ITEM" />Inligting wat op vorms ingevul is
-        <ph name="END_LIST" /></translation>
 <translation id="3362968246557010467">Hierdie beleid is outomaties van die opgeskorte <ph name="OLD_POLICY" />-beleid af gekopieer. Jy moet liewer hierdie beleid gebruik.</translation>
 <translation id="3364869320075768271"><ph name="URL" /> wil jou virtuelerealiteittoestel en -data gebruik</translation>
 <translation id="3366477098757335611">Bekyk kaarte</translation>
@@ -1226,12 +1219,6 @@
 <translation id="4819347708020428563">Redigeer aantekeninge in verstekaansig?</translation>
 <translation id="4825496307559726072"><ph name="CREATE_GOOGLE_SHEET_FOCUSED_FRIENDLY_MATCH_TEXT" />, druk Tab en dan Enter om vinnig 'n nuwe Google Blad te skep</translation>
 <translation id="4825507807291741242">Kragtig</translation>
-<translation id="4827402517081186284">Incognito maak jou nie onsigbaar aanlyn nie:
-        <ph name="BEGIN_LIST" />
-          <ph name="LIST_ITEM" />Werwe weet wanneer jy hulle besoek<ph name="END_LIST_ITEM" />
-          <ph name="LIST_ITEM" />Werknemers of skole kan blaai-aktiwiteit naspoor<ph name="END_LIST_ITEM" />
-          <ph name="LIST_ITEM" />Internetdiensverskaffers kan webverkeer monitor<ph name="END_LIST_ITEM" />
-        <ph name="END_LIST" /></translation>
 <translation id="4829962028570902310">Geïgnoreer omdat die beleid slegs deur wolkgebruikerbeleid gestel kan word.</translation>
 <translation id="483241715238664915">Skakel waarskuwings aan</translation>
 <translation id="4838327282952368871">Dromerig</translation>
@@ -1801,7 +1788,6 @@
 <translation id="6757797048963528358">Jou toestel het gaan slaap.</translation>
 <translation id="6767985426384634228">Dateer adres op?</translation>
 <translation id="6768213884286397650">Hagaki (Postcard)</translation>
-<translation id="6774185088257932239"><ph name="BEGIN_LINK" />Kom meer te wete<ph name="END_LINK" /> oor Incognito</translation>
 <translation id="6775759552199460396">JIS B2</translation>
 <translation id="67862343314499040">Pers</translation>
 <translation id="6786747875388722282">Uitbreidings</translation>
@@ -2281,12 +2267,6 @@
 <translation id="8317207217658302555">Dateer ARCore op?</translation>
 <translation id="831997045666694187">Aand</translation>
 <translation id="8321476692217554900">kennisgewings</translation>
-<translation id="8328484624016508118">Nadat alle Incognito-oortjies toegemaak is, vee Chrome die volgende uit:
-        <ph name="BEGIN_LIST" />
-          <ph name="LIST_ITEM" />Jou blaai-aktiwiteit op hierdie toestel<ph name="END_LIST_ITEM" />
-          <ph name="LIST_ITEM" />Jou soekgeskiedenis op hierdie toestel<ph name="END_LIST_ITEM" />
-          <ph name="LIST_ITEM" />Inligting wat op vorms ingevul is<ph name="END_LIST_ITEM" />
-        <ph name="END_LIST" /></translation>
 <translation id="8332188693563227489">Toegang tot <ph name="HOST_NAME" /> is geweier</translation>
 <translation id="833262891116910667">Merk</translation>
 <translation id="8339163506404995330">Bladsye in <ph name="LANGUAGE" /> sal nie vertaal word nie</translation>
@@ -2544,7 +2524,6 @@
 <translation id="9215416866750762878">'n Program verhinder Chrome om veilig aan hierdie werf te koppel</translation>
 <translation id="9219103736887031265">Prente</translation>
 <translation id="922152298093051471">Pasmaak Chrome</translation>
-<translation id="922274508605516859">'n Virtuele kaart verberg jou werklike kaart om te help om jou teen potensiële bedrog te beskerm.</translation>
 <translation id="933712198907837967">Diners Club</translation>
 <translation id="935608979562296692">VEE VORM UIT</translation>
 <translation id="936474030629450166">Super-B</translation>
diff --git a/components/strings/components_strings_am.xtb b/components/strings/components_strings_am.xtb
index 1a7a210..c4278d5 100644
--- a/components/strings/components_strings_am.xtb
+++ b/components/strings/components_strings_am.xtb
@@ -20,7 +20,6 @@
 <translation id="1038842779957582377">ያልታወቀ ስም</translation>
 <translation id="1041998700806130099">የስራ ሉህ መልዕክት</translation>
 <translation id="1048785276086539861">ማብራሪያዎችን ሲያርትዑ ይህ ሰነድ ወደ የነጠላ ገጽ እይታ ይመለሳል</translation>
-<translation id="1049743911850919806">ማንነት የማያሳውቅ</translation>
 <translation id="1050038467049342496">ሌሎች መተግበሪያዎችን ይዝጉ</translation>
 <translation id="1055184225775184556">&amp;አክልን ቀልብስ</translation>
 <translation id="1056898198331236512">ማስጠንቀቂያ</translation>
@@ -212,6 +211,7 @@
 <translation id="1567040042588613346">ይህ መመሪያ እንደታሰበው እየሰራ ነው፣ ነገር ግን ተመሳሳይ እሴት በሌላ ቦታ የተቀናበረ ሲሆን በዚህ መመሪያ ተተክቷል።</translation>
 <translation id="1569487616857761740">የጊዜ ማብቂያ ቀን ያስገቡ</translation>
 <translation id="1581080074034554886">CVC</translation>
+<translation id="1581767074483369314">በምናባዊ ካርድ ውስጥ ይመዝገቡ</translation>
 <translation id="1583294866416602487">Plex</translation>
 <translation id="1583429793053364125">ይህን ድረ-ገጽ በማሳየት ላይ ሳለ የሆነ ችግር ተፈጥሯል።</translation>
 <translation id="1586541204584340881">የትኛዎቹ ቅጥያዎች ናቸው እርስዎ የጫኑት</translation>
@@ -373,6 +373,7 @@
 <translation id="2101225219012730419">ስሪት፦</translation>
 <translation id="2102134110707549001">ጠንካራ የይለፍ ቃል ጠቁም...</translation>
 <translation id="2102495993840063010">የAndroid መተግበሪያዎች</translation>
+<translation id="2106249949168291652">ተቀምጧል። በምናባዊ ካርድ ደህንነቱ ይበልጥ የተጠበቀ ይሁን?</translation>
 <translation id="2107021941795971877">የህትመት ድጋፎች</translation>
 <translation id="2108755909498034140">ኮምፒውተርዎን ዳግም ያስጀምሩት</translation>
 <translation id="2111166930115883695">ለመጫወት ክፍተትን ይጫኑ</translation>
@@ -528,6 +529,7 @@
 <translation id="262745152991669301">ከዩኤስቢ መሣሪያዎች ጋር ለመገናኘት መጠየቅ ይችላል</translation>
 <translation id="2629325967560697240">የChrome ከፍተኛው የደህንነት ደረጃን ለማግኘት <ph name="BEGIN_ENHANCED_PROTECTION_LINK" />የተሻሻለውን ጥበቃ ያብሩ<ph name="END_ENHANCED_PROTECTION_LINK" /></translation>
 <translation id="2634124572758952069">የ<ph name="HOST_NAME" /> አገልጋይ አይፒ አድራሻ ሊገኝ አልቻለም።</translation>
+<translation id="2638001509205834345">የካርድዎ ደህንነት ይበልጥ የተጠበቀ ይሁን?</translation>
 <translation id="2639739919103226564">ሁኔታ፦</translation>
 <translation id="264810637653812429">ምንም ተኳሃኝ መሣሪያዎች አልተገኙም።</translation>
 <translation id="2649204054376361687"><ph name="CITY" />፣ <ph name="COUNTRY" /></translation>
@@ -660,6 +662,7 @@
 <translation id="3113284927548439113">ሶስተኛ ፈረቃ</translation>
 <translation id="3115874930288085374"><ph name="ENROLLMENT_DOMAIN" /> የውሂብዎን ምትኬ እንዲያስቀምጡና እና ይህን <ph name="DEVICE_TYPE" /> እንዲመልሱ ይፈልግብዎታል።</translation>
 <translation id="3116158981186517402">አሽግ</translation>
+<translation id="311958134571892113">ተገናኝቷል ከ</translation>
 <translation id="3120730422813725195">Elo</translation>
 <translation id="31207688938192855"><ph name="BEGIN_LINK" />የግንኙነት መመርመሪያን አሂደው ይሞክሩ<ph name="END_LINK" /></translation>
 <translation id="3121994479408824897">ወደ <ph name="DOMAIN" /> ሂድ</translation>
@@ -731,12 +734,6 @@
 <translation id="3345782426586609320">አይኖች</translation>
 <translation id="3355823806454867987">የተኪ ቅንብሮችን በመቀየር ላይ...</translation>
 <translation id="3360103848165129075">የክፍያ ተቆጣጣሪ ሉህ</translation>
-<translation id="3361596688432910856">Chrome የሚከተሉትን መረጃዎች <ph name="BEGIN_EMPHASIS" />አያስቀምጥም<ph name="END_EMPHASIS" />፦
-        <ph name="BEGIN_LIST" />
-          <ph name="LIST_ITEM" />የእርስዎ የአሰሳ ታሪክ
-          <ph name="LIST_ITEM" />ኩኪዎች እና የጣቢያ ውሂብ
-          <ph name="LIST_ITEM" />በቅጾች ውስጥ የገባ መረጃ
-        <ph name="END_LIST" /></translation>
 <translation id="3362968246557010467">ይህ መመሪያ በራስ-ሰር ከተቋረጠው የ<ph name="OLD_POLICY" /> መመሪያ የተቀዳ ነው። በምትኩ ይህን መመሪያ መጠቀም አለብዎት።</translation>
 <translation id="3364869320075768271"><ph name="URL" /> የእርስዎን ምናባዊ እውነታ መሣሪያ እና ውሂብ መጠቀም ይፈልጋል</translation>
 <translation id="3366477098757335611">ካርዶችን ይመልከቱ</translation>
@@ -1214,12 +1211,6 @@
 <translation id="4819347708020428563">በነባሪ እይታ ውስጥ ማብራሪያዎችን ያርትዑ?</translation>
 <translation id="4825496307559726072"><ph name="CREATE_GOOGLE_SHEET_FOCUSED_FRIENDLY_MATCH_TEXT" />፣ አዲስ Google ሉህ በፍጥነት ለመፍጠር ትርን ከዚያ አስገባን ይጫኑ</translation>
 <translation id="4825507807291741242">ኃይለኛ</translation>
-<translation id="4827402517081186284">ማንነት የማያሳውቅ በመስመር ላይ ስውር አያደርገዎትም፦
-        <ph name="BEGIN_LIST" />
-          <ph name="LIST_ITEM" />ጣቢያዎች እርስዎ ሲጎበኟቸው ያውቃሉ<ph name="END_LIST_ITEM" />
-          <ph name="LIST_ITEM" />አሰሪዎች ወይም ትምህርት ቤቶች የአሰሳ እንቅስቃሴን መከታተል ይችላሉ<ph name="END_LIST_ITEM" />
-          <ph name="LIST_ITEM" />የበይነመረብ አገልግሎት አቅራቢዎች የድር ትራፊክን ሊከታተሉ ይችላሉ<ph name="END_LIST_ITEM" />
-        <ph name="END_LIST" /></translation>
 <translation id="4829962028570902310">መመሪያው ሊዋቀር የሚችለው በደመና ተጠቃሚ መመሪያ ብቻ ስለሆነ ችላ ተብሏል።</translation>
 <translation id="483241715238664915">ማስጠንቀቂያዎችን አብራ</translation>
 <translation id="4838327282952368871">ህልመኛ</translation>
@@ -1789,7 +1780,6 @@
 <translation id="6757797048963528358">የእርስዎ መሣሪያ ተኝቷል።</translation>
 <translation id="6767985426384634228">አድራሻ ይዘምን?</translation>
 <translation id="6768213884286397650">ሃጋኪ (ፖስታ ካርድ)</translation>
-<translation id="6774185088257932239">ማንነት ስለማያሳውቅ ሁነታ <ph name="BEGIN_LINK" />የበለጠ ይወቁ<ph name="END_LINK" /></translation>
 <translation id="6775759552199460396">JIS B2</translation>
 <translation id="67862343314499040">ወይን ጠጅ</translation>
 <translation id="6786747875388722282">ቅጥያዎች</translation>
@@ -2269,12 +2259,6 @@
 <translation id="8317207217658302555">ARCore ይዘምን?</translation>
 <translation id="831997045666694187">ምሽት</translation>
 <translation id="8321476692217554900">ማሳወቂያዎች</translation>
-<translation id="8328484624016508118">ሁሉንም ማንነት የማያሳውቁ ትሮችን ከዘጋ በኋላ Chrome የሚከተሉትን ያጸዳል፦
-        <ph name="BEGIN_LIST" />
-          <ph name="LIST_ITEM" />ከዚህ መሣሪያ የእርስዎን የአሰሳ እንቅስቃሴ<ph name="END_LIST_ITEM" />
-          <ph name="LIST_ITEM" />ከዚህ መሣሪያ የፍለጋ ታሪክዎ<ph name="END_LIST_ITEM" />
-          <ph name="LIST_ITEM" />በቅጾች ውስጥ የገባ መረጃ<ph name="END_LIST_ITEM" />
-        <ph name="END_LIST" /></translation>
 <translation id="8332188693563227489">የ<ph name="HOST_NAME" /> መዳረሻ ተከልክሏል</translation>
 <translation id="833262891116910667">አድምቅ</translation>
 <translation id="8339163506404995330">በ<ph name="LANGUAGE" /> ያሉ ገጾች አይተረጎሙም</translation>
@@ -2359,6 +2343,7 @@
 <translation id="8669306706049782872">መስኮቶችን ለመክፈት እና ለማስቀመጥ ስለማያ ገጽዎ ያለ መረጃን ይጠቀሙ</translation>
 <translation id="867224526087042813">ፊርማ</translation>
 <translation id="8676424191133491403">የዘገየ የለም</translation>
+<translation id="8679903780129190080">አዎ ገብቼበታለሁ</translation>
 <translation id="8680536109547170164"><ph name="QUERY" />፣ መልስ፣ <ph name="ANSWER" /></translation>
 <translation id="8681531050781943054">በ<ph name="PAGE" /> ላይ ያለው ድረ-ገጽ ሊጫን አልቻለም ምክንያቱም፦</translation>
 <translation id="8685155993131031756">PRC 16K</translation>
diff --git a/components/strings/components_strings_ar.xtb b/components/strings/components_strings_ar.xtb
index 4a73ceb9..733272c 100644
--- a/components/strings/components_strings_ar.xtb
+++ b/components/strings/components_strings_ar.xtb
@@ -20,7 +20,6 @@
 <translation id="1038842779957582377">اسم غير معروف</translation>
 <translation id="1041998700806130099">رسالة ورقة المهمة</translation>
 <translation id="1048785276086539861">عند تعديل التعليقات التوضيحية، سيعود هذا المستند إلى عرض صفحة واحدة.</translation>
-<translation id="1049743911850919806">التصفح المتخفي</translation>
 <translation id="1050038467049342496">إغلاق التطبيقات الأخرى</translation>
 <translation id="1055184225775184556">تراجع عن الإ&amp;ضافة</translation>
 <translation id="1056898198331236512">تحذير</translation>
@@ -736,12 +735,6 @@
 <translation id="3345782426586609320">عينان</translation>
 <translation id="3355823806454867987">تغيير إعدادات الخادم الوكيل...</translation>
 <translation id="3360103848165129075">جدول بيانات معالج الدفع</translation>
-<translation id="3361596688432910856">‏لن يحفظ <ph name="BEGIN_EMPHASIS" />Chrome<ph name="END_EMPHASIS" /> المعلومات التالية:
-        <ph name="BEGIN_LIST" />
-          <ph name="LIST_ITEM" />سجل التصفّح لديك
-          <ph name="LIST_ITEM" />ملفات تعريف الارتباط وبيانات الموقع
-          <ph name="LIST_ITEM" />المعلومات التي تم إدخالها في النماذج
-        <ph name="END_LIST" /></translation>
 <translation id="3362968246557010467">تم نسخ هذه السياسة تلقائيًا من السياسة المتوقفة <ph name="OLD_POLICY" />. يمكنك استخدام هذه السياسة بدلاً من ذلك.</translation>
 <translation id="3364869320075768271">يريد <ph name="URL" /> استخدام جهاز الواقع الافتراضي وبياناته.</translation>
 <translation id="3366477098757335611">عرض البطاقات</translation>
@@ -1222,12 +1215,6 @@
 <translation id="4819347708020428563">هل تريد تعديل التعليقات التوضيحية في العرض التلقائي؟</translation>
 <translation id="4825496307559726072">‏<ph name="CREATE_GOOGLE_SHEET_FOCUSED_FRIENDLY_MATCH_TEXT" />: اضغط على مفتاح التبويب (Tab) ثم Enter لإنشاء "جدول بيانات Google" جديد بسرعة.</translation>
 <translation id="4825507807291741242">قوي</translation>
-<translation id="4827402517081186284">لا يخفي وضع التصفُّح المتخفي هويتك عند زيارتك للمواقع الإلكترونية:
-        <ph name="BEGIN_LIST" />
-          <ph name="LIST_ITEM" />ترصد المواقع الإلكترونية بيانات زيارتك لها<ph name="END_LIST_ITEM" />
-          <ph name="LIST_ITEM" />بإمكان أصحاب العمل أو المؤسسات التعليمية تتبّع نشاط التصفُّح<ph name="END_LIST_ITEM" />
-          <ph name="LIST_ITEM" />قد يراقب مزوّدو خدمة الإنترنت زيارات المستخدمين للمواقع الإلكترونية<ph name="END_LIST_ITEM" />
-        <ph name="END_LIST" /></translation>
 <translation id="4829962028570902310">تم التجاهل لأن السياسة لا يمكن ضبطها إلا من خلال سياسات المستخدم على السحابة الإلكترونية.</translation>
 <translation id="483241715238664915">تفعيل التحذيرات</translation>
 <translation id="4838327282952368871">جذّاب</translation>
@@ -1332,6 +1319,7 @@
 <translation id="5138227688689900538">عرض أقل</translation>
 <translation id="5145883236150621069">يوجد رمز خطأ في استجابة السياسة</translation>
 <translation id="5146995429444047494">يتم حظر الإشعارات للنطاق <ph name="ORIGIN" /></translation>
+<translation id="514704532284964975">‏هناك طلب من <ph name="URL" /> بالاطّلاع على المعلومات وتعديلها على الأجهزة المزوَّدة بتقنية NFC التي نقرت عليها باستخدام هاتفك.</translation>
 <translation id="5148809049217731050">الوجه للأعلى</translation>
 <translation id="515292512908731282">‏C4 (مغلف)</translation>
 <translation id="5158275234811857234">غلاف</translation>
@@ -1796,7 +1784,6 @@
 <translation id="6757797048963528358">خضع جهازك إلى وضع السكون.</translation>
 <translation id="6767985426384634228">هل تريد تعديل العنوان؟</translation>
 <translation id="6768213884286397650">‏Hagaki (بطاقة بريدية)</translation>
-<translation id="6774185088257932239"><ph name="BEGIN_LINK" />مزيد من المعلومات<ph name="END_LINK" /> حول وضع التصفُّح المتخفي</translation>
 <translation id="6775759552199460396">JIS B2</translation>
 <translation id="67862343314499040">بنفسجي</translation>
 <translation id="6786747875388722282">الإضافات</translation>
@@ -2276,12 +2263,6 @@
 <translation id="8317207217658302555">‏هل تريد تحديث ARCore؟</translation>
 <translation id="831997045666694187">مساءً</translation>
 <translation id="8321476692217554900">الإشعارات</translation>
-<translation id="8328484624016508118">‏بعد إغلاق جميع علامات التبويب في وضع التصفُّح المتخفي، يمحو Chrome:
-        <ph name="BEGIN_LIST" />
-          <ph name="LIST_ITEM" />نشاط التصفُّح على هذا الجهاز<ph name="END_LIST_ITEM" />
-          <ph name="LIST_ITEM" />سجلّ البحث على هذا الجهاز<ph name="END_LIST_ITEM" />
-          <ph name="LIST_ITEM" />المعلومات التي تم إدخالها في النماذج<ph name="END_LIST_ITEM" />
-        <ph name="END_LIST" /></translation>
 <translation id="8332188693563227489">تم رفض الدخول إلى <ph name="HOST_NAME" />.</translation>
 <translation id="833262891116910667">تمييز</translation>
 <translation id="8339163506404995330">لن تتم ترجمة الصفحات باللغة <ph name="LANGUAGE" /></translation>
diff --git a/components/strings/components_strings_as.xtb b/components/strings/components_strings_as.xtb
index 3909ded3..3212fbe 100644
--- a/components/strings/components_strings_as.xtb
+++ b/components/strings/components_strings_as.xtb
@@ -20,7 +20,6 @@
 <translation id="1038842779957582377">অজ্ঞাত নাম</translation>
 <translation id="1041998700806130099">কামৰ শ্বীটৰ বাৰ্তা</translation>
 <translation id="1048785276086539861">আপুনি এন’টেশ্বন সম্পাদনা কৰিলে, এই নথিখন একক পৃষ্ঠাৰ ভিউলৈ সলনি হ’ব</translation>
-<translation id="1049743911850919806">ইনক’গনিট’</translation>
 <translation id="1050038467049342496">অন্য এপ্‌বোৰ বাছনি কৰক</translation>
 <translation id="1055184225775184556">যোগ কৰা কার্যটো &amp;আনডু কৰক</translation>
 <translation id="1056898198331236512">সতর্কবার্তা</translation>
@@ -212,6 +211,7 @@
 <translation id="1567040042588613346">এই নীতিটোৱে বিচৰা ধৰণে কাম কৰি আছে, কিন্তু অন্য কোনো ঠাইত একেটা মান ছেট কৰা হৈছে আৰু সেইটোক এই নীতিটোৱে অপসাৰণ কৰিছে।</translation>
 <translation id="1569487616857761740">ম্যাদ উকলাৰ তাৰিখ দিয়ক</translation>
 <translation id="1581080074034554886">CVC</translation>
+<translation id="1581767074483369314">এখন ভাৰ্ছুৱেল কাৰ্ডত পঞ্জীয়ন কৰক</translation>
 <translation id="1583294866416602487">Plex</translation>
 <translation id="1583429793053364125">এই ৱেবপৃষ্ঠাটো প্ৰদর্শন কৰোঁতে কিবা আসোঁৱাহ হ’ল।</translation>
 <translation id="1586541204584340881">আপুনি ইনষ্টল কৰা এক্সটেনশ্বনসমূহ</translation>
@@ -377,6 +377,7 @@
 <translation id="2101225219012730419">সংস্কৰণ:</translation>
 <translation id="2102134110707549001">শক্তিশালী পাছৱৰ্ডৰ প্ৰস্তাৱ দিয়ক…</translation>
 <translation id="2102495993840063010">Android এপ্‌</translation>
+<translation id="2106249949168291652">ছেভ কৰা হ’ল। এখন ভাৰ্ছুৱেল কাৰ্ডৰ জৰিয়তে এইখন অধিক সুৰক্ষিত কৰিবনে?</translation>
 <translation id="2107021941795971877">প্ৰিণ্টৰ সমৰ্থন</translation>
 <translation id="2108755909498034140">আপোনাৰ কম্পিউটাৰটো ৰিষ্টাৰ্ট কৰক</translation>
 <translation id="2111166930115883695">খেলিবলৈ স্পে’চ টিপক</translation>
@@ -532,6 +533,7 @@
 <translation id="262745152991669301">ইউএছবি ডিভাইচৰ সৈতে সংযোগ কৰিবলৈ বিচাৰিব পাৰে</translation>
 <translation id="2629325967560697240">Chromeৰ সৰ্বোচ্চ স্তৰৰ সুৰক্ষা লাভ কৰিবলৈ <ph name="BEGIN_ENHANCED_PROTECTION_LINK" />বৰ্ধিত সুৰক্ষাৰ সুবিধাটো অন কৰক<ph name="END_ENHANCED_PROTECTION_LINK" /></translation>
 <translation id="2634124572758952069"><ph name="HOST_NAME" />ৰ ছাৰ্ভাৰৰ IP ঠিকনাটো বিচাৰি পোৱা নগ’ল।</translation>
+<translation id="2638001509205834345">আপোনাৰ কাৰ্ডখন অধিক সুৰক্ষিত কৰিবনে?</translation>
 <translation id="2639739919103226564">স্থিতি:</translation>
 <translation id="264810637653812429">মিল থকা কোনো ডিভাইচ বিচাৰি পোৱা নগ’ল।</translation>
 <translation id="2649204054376361687"><ph name="CITY" />, <ph name="COUNTRY" /></translation>
@@ -664,6 +666,7 @@
 <translation id="3113284927548439113">তৃতীয় শ্বিফ্ট</translation>
 <translation id="3115874930288085374"><ph name="ENROLLMENT_DOMAIN" />ৰ বাবে আপুনি আপোনাৰ ডেটাৰ বেক আপ লোৱা আৰু এই <ph name="DEVICE_TYPE" />টো উভতাই দিয়াটো আৱশ্যক।</translation>
 <translation id="3116158981186517402">লেমিনেট</translation>
+<translation id="311958134571892113">ইয়াৰ সৈতে লিংক কৰা হ’ল</translation>
 <translation id="3120730422813725195">Elo</translation>
 <translation id="31207688938192855"><ph name="BEGIN_LINK" />সংযোগ সম্পৰ্কীয় ডায়গন'ষ্টিক্স চলাই চাওক<ph name="END_LINK" />।</translation>
 <translation id="3121994479408824897"><ph name="DOMAIN" />লৈ যাওক</translation>
@@ -734,12 +737,6 @@
 <translation id="3345782426586609320">চকু</translation>
 <translation id="3355823806454867987">প্ৰক্সি ছেটিংসমূহ সলনি কৰক...</translation>
 <translation id="3360103848165129075">পৰিশোধ নিয়ন্ত্ৰক শ্বীটখন</translation>
-<translation id="3361596688432910856">Chromeএ তলৰ তথ্যসমূহ <ph name="BEGIN_EMPHASIS" />ছেভ নকৰে<ph name="END_EMPHASIS" />:
-        <ph name="BEGIN_LIST" />
-          <ph name="LIST_ITEM" />আপোনাৰ ব্ৰাউজিঙৰ ইতিহাস
-          <ph name="LIST_ITEM" />কুকি আৰু ছাইটৰ ডেটা
-          <ph name="LIST_ITEM" />ফ’মবোৰত দিয়া তথ্য
-        <ph name="END_LIST" /></translation>
 <translation id="3362968246557010467">এই নীতিটো অপ্ৰচলিত <ph name="OLD_POLICY" /> নীতিটোৰ পৰা স্বয়ংক্ৰিয়ভাৱে প্ৰতিলিপি কৰা হৈছে। আপুনি তাৰ পৰিৱৰ্তে এই নীতিটো ব্যৱহাৰ কৰা উচিত।</translation>
 <translation id="3364869320075768271"><ph name="URL" />এ আপোনাৰ ভাৰ্চুৱেল ৰিয়েলিটি ডিভাইচ আৰু ডেটা ব্যৱহাৰ কৰিব বিচাৰিছে</translation>
 <translation id="3366477098757335611">কার্ড চাওক</translation>
@@ -1218,12 +1215,7 @@
 <translation id="4819347708020428563">ডিফ’ল্ট ভিউত এন’টেশ্বন সম্পাদনা কৰিবনে?</translation>
 <translation id="4825496307559726072"><ph name="CREATE_GOOGLE_SHEET_FOCUSED_FRIENDLY_MATCH_TEXT" />, এখন নতুন Google Sheet ক্ষিপ্ৰভাৱে সৃষ্টি কৰিবলৈ প্ৰথমে টেব আৰু তাৰ পাছত এণ্টাৰ টিপক</translation>
 <translation id="4825507807291741242">শক্তিশালী</translation>
-<translation id="4827402517081186284">ইনক’গনিট’ টেবে আপোনাক অনলাইনত অদৃশ্য নকৰে:
-        <ph name="BEGIN_LIST" />
-          <ph name="LIST_ITEM" />আপুনি ছাইটসমূহ কেতিয়া চাইছিল সেয়া ছাইটসমূহে জানে<ph name="END_LIST_ITEM" />
-          <ph name="LIST_ITEM" />নিয়োগদাতা অথবা বিদ্যালয়ে ব্ৰাউজিঙৰ কার্যকলাপ ট্ৰেক কৰিব পাৰে<ph name="END_LIST_ITEM" />
-          <ph name="LIST_ITEM" />ইণ্টাৰনেট সেৱা প্ৰদানকাৰীয়ে ৱেবৰ ট্ৰেফিক নিৰীক্ষণ কৰিব পাৰে<ph name="END_LIST_ITEM" />
-        <ph name="END_LIST" /></translation>
+<translation id="4829962028570902310">নীতিটো কেৱল ক্লাউড ব্যৱহাৰকাৰীৰ নীতিয়ে ছেট কৰিব পাৰে বাবে উপেক্ষা কৰা হৈছে।</translation>
 <translation id="483241715238664915">সকীয়নি অন কৰক</translation>
 <translation id="4838327282952368871">স্বপ্নময়</translation>
 <translation id="4840250757394056958">আপোনাৰ Chromeৰ ইতিহাস চাওক</translation>
@@ -1791,7 +1783,6 @@
 <translation id="6757797048963528358">আপোনাৰ ডিভাইচটো সুপ্ত অৱস্থালৈ গৈছে।</translation>
 <translation id="6767985426384634228">ঠিকনা আপডে’ট কৰিবনে?</translation>
 <translation id="6768213884286397650">হেগাকি (প'ষ্টকাৰ্ড)</translation>
-<translation id="6774185088257932239">ইনক’গনিট’ টেবৰ বিষয়ে <ph name="BEGIN_LINK" />অধিক জানক<ph name="END_LINK" /></translation>
 <translation id="6775759552199460396">JIS B2</translation>
 <translation id="67862343314499040">বেঙুনীয়া</translation>
 <translation id="6786747875388722282">এক্সটেনশ্বনসমূহ</translation>
@@ -2271,12 +2262,6 @@
 <translation id="8317207217658302555">ARCore আপডে’ট কৰিবনে?</translation>
 <translation id="831997045666694187">সন্ধিয়া</translation>
 <translation id="8321476692217554900">জাননী</translation>
-<translation id="8328484624016508118">আটাইবোৰ ইনক’গনিট’ টেব বন্ধ কৰাৰ পাছত, Chromeএ তলত দিয়া তথ্যসমূহ মচে:
-        <ph name="BEGIN_LIST" />
-          <ph name="LIST_ITEM" />এই ডিভাইচটোত আপোনাৰ ব্ৰাউজিঙৰ কার্যকলাপ<ph name="END_LIST_ITEM" />
-          <ph name="LIST_ITEM" />এই ডিভাইচটোৰ পৰা আপোনাৰ সন্ধানৰ ইতিহাস<ph name="END_LIST_ITEM" />
-          <ph name="LIST_ITEM" />ফ'র্মত দিয়া তথ্য<ph name="END_LIST_ITEM" />
-        <ph name="END_LIST" /></translation>
 <translation id="8332188693563227489"><ph name="HOST_NAME" />লৈ এক্সেছ অগ্ৰাহ্য কৰা হৈছিল</translation>
 <translation id="833262891116910667">হাইলাইট</translation>
 <translation id="8339163506404995330"><ph name="LANGUAGE" /> ভাষাৰ পৃষ্ঠাসমূহ অনুবাদ কৰা নহয়</translation>
@@ -2360,6 +2345,7 @@
 <translation id="8669306706049782872">ৱিণ্ড’ খুলিবলৈ আৰু থ’বলৈ আপোনাৰ স্ক্ৰীনৰ বিষয়ে তথ্য ব্যৱহাৰ কৰক</translation>
 <translation id="867224526087042813">চহী</translation>
 <translation id="8676424191133491403">কোনো বিলম্ব নাই</translation>
+<translation id="8679903780129190080">হয় মই সন্মত</translation>
 <translation id="8680536109547170164"><ph name="QUERY" />, উত্তৰ, <ph name="ANSWER" /></translation>
 <translation id="8681531050781943054"><ph name="PAGE" />ত ৱেবপৃষ্ঠাটো ল’ড কৰিব নোৱাৰাৰ কাৰণ হৈছে:</translation>
 <translation id="8685155993131031756">Prc-16K</translation>
diff --git a/components/strings/components_strings_az.xtb b/components/strings/components_strings_az.xtb
index f6169239..4ccf53f5 100644
--- a/components/strings/components_strings_az.xtb
+++ b/components/strings/components_strings_az.xtb
@@ -20,7 +20,6 @@
 <translation id="1038842779957582377">bilinməyən ad</translation>
 <translation id="1041998700806130099">İş vərəqi mesajı</translation>
 <translation id="1048785276086539861">Annotasiyaları redaktə etdiyiniz zaman bu sənəd bir səhifəlik görünüşə qayıdacaq</translation>
-<translation id="1049743911850919806">Gizli Rejim</translation>
 <translation id="1050038467049342496">Digər tətbiqləri bağlayın</translation>
 <translation id="1055184225775184556">Əlavəni geri qaytarın</translation>
 <translation id="1056898198331236512">Xəbərdarlıq</translation>
@@ -212,6 +211,7 @@
 <translation id="1567040042588613346">Bu siyasət nəzərdə tutulduğu kimi işləyir, lakin eyni dəyər başqa bir yerdə təyin olunub və bu siyasət tərəfindən əvəz edilib.</translation>
 <translation id="1569487616857761740">Bitmə vaxtını daxil edin</translation>
 <translation id="1581080074034554886">CVC</translation>
+<translation id="1581767074483369314">Virtual kart üçün qeydiyyatdan keçin</translation>
 <translation id="1583294866416602487">Plex</translation>
 <translation id="1583429793053364125">Bu veb səhifəni göstərərkən xəta baş verdi.</translation>
 <translation id="1586541204584340881">Quraşdırdığınız artırmalar</translation>
@@ -377,6 +377,7 @@
 <translation id="2101225219012730419">Versiya:</translation>
 <translation id="2102134110707549001">Güclü Parol Təklif Edin...</translation>
 <translation id="2102495993840063010">Android tətbiqləri</translation>
+<translation id="2106249949168291652">Yadda saxlandı. Virtual kart ilə güvənliyi artırılsın?</translation>
 <translation id="2107021941795971877">Çap dəstəyi</translation>
 <translation id="2108755909498034140">Kompüteri yenidən başladın</translation>
 <translation id="2111166930115883695">Oxutmaq üçün boşluq düyməsini basın</translation>
@@ -532,6 +533,7 @@
 <translation id="262745152991669301">Saytlar USB cihazlarına qoşulmaq icazəsi istəyə bilər</translation>
 <translation id="2629325967560697240">Chrome'un ən yüksək təhlükəsizlik səviyyəsini əldə etmək üçün<ph name="BEGIN_ENHANCED_PROTECTION_LINK" />genişləndirilmiş qorumanı aktiv edin<ph name="END_ENHANCED_PROTECTION_LINK" /></translation>
 <translation id="2634124572758952069"><ph name="HOST_NAME" /> serverinin IP ünvanı tapılmadı.</translation>
+<translation id="2638001509205834345">Kartınızın güvənliyi artırılsın?</translation>
 <translation id="2639739919103226564">Status:</translation>
 <translation id="264810637653812429">Uyğun cihaz tapılmadı.</translation>
 <translation id="2649204054376361687"><ph name="CITY" />, <ph name="COUNTRY" /></translation>
@@ -664,6 +666,7 @@
 <translation id="3113284927548439113">Üçüncü növbə</translation>
 <translation id="3115874930288085374"><ph name="ENROLLMENT_DOMAIN" /> datanızı yedəkləmənizi və bu <ph name="DEVICE_TYPE" /> cihazını qaytarmanızı tələb edir.</translation>
 <translation id="3116158981186517402">Laminat vurun</translation>
+<translation id="311958134571892113">bununla əlaqələndirildi:</translation>
 <translation id="3120730422813725195">Elo</translation>
 <translation id="31207688938192855"><ph name="BEGIN_LINK" />Bağlantı Diaqnostikasını İşlətməyə Çalışın<ph name="END_LINK" />.</translation>
 <translation id="3121994479408824897"><ph name="DOMAIN" /> səhifəsinə keçin</translation>
@@ -734,12 +737,6 @@
 <translation id="3345782426586609320">Gözlər</translation>
 <translation id="3355823806454867987">Proksi ayarlarını dəyişin...</translation>
 <translation id="3360103848165129075">Ödəniş səhifəsi</translation>
-<translation id="3361596688432910856">Chrome aşağıdakı məlumatları <ph name="BEGIN_EMPHASIS" />yadda saxlamayacaq<ph name="END_EMPHASIS" />:
-        <ph name="BEGIN_LIST" />
-          <ph name="LIST_ITEM" />Axtarış tarixçəsi
-          <ph name="LIST_ITEM" />Kuki və sayt datası
-          <ph name="LIST_ITEM" />Formaya daxil edilən məlumat
-        <ph name="END_LIST" /></translation>
 <translation id="3362968246557010467">Bu siyasət ləğv edilmiş <ph name="OLD_POLICY" /> siyasətindən avtomatik kopyalanıb. Əvəzinə bu siyasətdən istifadə etməlisiniz.</translation>
 <translation id="3364869320075768271"><ph name="URL" /> virtual reallıq cihazınız və datanızı istifadə etmək istəyir</translation>
 <translation id="3366477098757335611">Kartlara baxın</translation>
@@ -1217,12 +1214,6 @@
 <translation id="4819347708020428563">Annotasiyalar defolt görünüşdə redaktə edilsin?</translation>
 <translation id="4825496307559726072"><ph name="CREATE_GOOGLE_SHEET_FOCUSED_FRIENDLY_MATCH_TEXT" />, Tab düyməsi, sonra Enter düyməsinə basaraq cəld yeni Google Cədvəli yaradın</translation>
 <translation id="4825507807291741242">Güclü</translation>
-<translation id="4827402517081186284">Anonim rejim sizi onlayn görünməz etmir:
-        <ph name="BEGIN_LIST" />
-          <ph name="LIST_ITEM" />Saytlar onları ziyarət etdiyiniz zaman xəbərdar olur<ph name="END_LIST_ITEM" />
-          <ph name="LIST_ITEM" />İşəgötürənlər və ya məktəblər axtarış fəaliyyətini izləyə bilir<ph name="END_LIST_ITEM" />
-          <ph name="LIST_ITEM" />İnternet xidmət təminatçıları veb trafikini izləyə bilər<ph name="END_LIST_ITEM" />
-        <ph name="END_LIST" /></translation>
 <translation id="4829962028570902310">Siyasət yalnız bulud istifadəçisi siyasəti tərəfindən təyin oluna bildiyi üçün nəzərə alınmadı.</translation>
 <translation id="483241715238664915">Xəbərdarlıqları aktiv edin</translation>
 <translation id="4838327282952368871">Xəyali</translation>
@@ -1792,7 +1783,6 @@
 <translation id="6757797048963528358">Cihazınız yatmağa getdi.</translation>
 <translation id="6767985426384634228">Ünvan yenilənsin?</translation>
 <translation id="6768213884286397650">Hagaki (Postkart)</translation>
-<translation id="6774185088257932239">Anonim rejim haqqında <ph name="BEGIN_LINK" />ətraflı məlumat<ph name="END_LINK" /></translation>
 <translation id="6775759552199460396">JIS B2</translation>
 <translation id="67862343314499040">Tünd-bənövşəyi</translation>
 <translation id="6786747875388722282">Artırmalar</translation>
@@ -2272,12 +2262,6 @@
 <translation id="8317207217658302555">ARCore güncəllənsin?</translation>
 <translation id="831997045666694187">Axşam</translation>
 <translation id="8321476692217554900">bildirişlər</translation>
-<translation id="8328484624016508118">Bütün Anonim tabları bağladıqdan sonra Chrome bunları təmizləyəcək:
-        <ph name="BEGIN_LIST" />
-          <ph name="LIST_ITEM" />Bu cihazdan axtarış fəaliyyətinizi<ph name="END_LIST_ITEM" />
-          <ph name="LIST_ITEM" />Bu cihazdan axtarış tarixçənizi<ph name="END_LIST_ITEM" />
-          <ph name="LIST_ITEM" />Formalara daxil edilən məlumatları<ph name="END_LIST_ITEM" />
-        <ph name="END_LIST" /></translation>
 <translation id="8332188693563227489"><ph name="HOST_NAME" /> hostuna giriş rədd edildi</translation>
 <translation id="833262891116910667">Vurğulama</translation>
 <translation id="8339163506404995330"><ph name="LANGUAGE" /> dilində olan səhifələr tərcümə edilməyəcək</translation>
@@ -2361,6 +2345,7 @@
 <translation id="8669306706049782872">Pəncərələri açmaq və yerləşdirmək üçün ekranlarınız haqqında məlumatdan istifadə edin</translation>
 <translation id="867224526087042813">İmza</translation>
 <translation id="8676424191133491403">Gecikmə yoxdur</translation>
+<translation id="8679903780129190080">Bəli, razıyam</translation>
 <translation id="8680536109547170164"><ph name="QUERY" />, cavab, <ph name="ANSWER" /></translation>
 <translation id="8681531050781943054"><ph name="PAGE" /> veb səhifəsi yüklənə bilmir, çünki:</translation>
 <translation id="8685155993131031756">Prc-16K</translation>
diff --git a/components/strings/components_strings_be.xtb b/components/strings/components_strings_be.xtb
index a2431721..ba8076a 100644
--- a/components/strings/components_strings_be.xtb
+++ b/components/strings/components_strings_be.xtb
@@ -20,7 +20,6 @@
 <translation id="1038842779957582377">невядомае імя</translation>
 <translation id="1041998700806130099">Паведамленне аркуша задання</translation>
 <translation id="1048785276086539861">Калі вы будзеце змяняць анатацыі, гэты дакумент вернецца ў аднастаронкавы выгляд</translation>
-<translation id="1049743911850919806">Інкогніта</translation>
 <translation id="1050038467049342496">Закрыйце іншыя праграмы</translation>
 <translation id="1055184225775184556">&amp;Адрабіць дадаванне</translation>
 <translation id="1056898198331236512">Папярэджанне</translation>
@@ -736,12 +735,6 @@
 <translation id="3345782426586609320">Вочы</translation>
 <translation id="3355823806454867987">Змяніць налады проксі-сервера...</translation>
 <translation id="3360103848165129075">Аркуш апрацоўшчыка плацяжоў</translation>
-<translation id="3361596688432910856">Chrome <ph name="BEGIN_EMPHASIS" />не будзе захоўваць<ph name="END_EMPHASIS" /> наступную інфармацыю:
-        <ph name="BEGIN_LIST" />
-          <ph name="LIST_ITEM" />вашу гісторыю прагляду сайтаў;
-          <ph name="LIST_ITEM" />файлы cookie і даныя сайтаў;
-          <ph name="LIST_ITEM" />звесткі, якія ўводзіліся ў формах.
-        <ph name="END_LIST" /></translation>
 <translation id="3362968246557010467">Гэта палітыка была аўтаматычна скапіравана з састарэлай палітыкі "<ph name="OLD_POLICY" />" – выкарыстоўвайце гэту новую палітыку.</translation>
 <translation id="3364869320075768271">Сайт <ph name="URL" /> запытвае дазвол выкарыстоўваць даныя і прылады віртуальнай рэальнасці</translation>
 <translation id="3366477098757335611">Прагляд картак</translation>
@@ -1221,12 +1214,7 @@
 <translation id="4819347708020428563">Збіраецеся змяняць анатацыі ў стандартным выглядзе?</translation>
 <translation id="4825496307559726072"><ph name="CREATE_GOOGLE_SHEET_FOCUSED_FRIENDLY_MATCH_TEXT" />. Каб хутка стварыць новую табліцу Google, націсніце Tab, затым Enter</translation>
 <translation id="4825507807291741242">Моцны</translation>
-<translation id="4827402517081186284">Рэжым інкогніта не робіць нябачнай вашу прысутнасць у інтэрнэце:
-<ph name="BEGIN_LIST" />
-<ph name="LIST_ITEM" />сайты бачаць, калі вы іх наведваеце;<ph name="END_LIST_ITEM" />
-<ph name="LIST_ITEM" />работадаўцы і навучальныя ўстановы могуць адсочваць дзеянні ў браўзеры;<ph name="END_LIST_ITEM" />
-<ph name="LIST_ITEM" />інтэрнэт-правайдары могуць адсочваць інтэрнэт-трафік.<ph name="END_LIST_ITEM" />
-<ph name="END_LIST" /></translation>
+<translation id="4829962028570902310">Ігнаруецца, бо гэтыя правілы могуць задавацца толькі палітыкай для карыстальнікаў воблачных сэрвісаў.</translation>
 <translation id="483241715238664915">Уключыць папярэджанні</translation>
 <translation id="4838327282952368871">Летуценны</translation>
 <translation id="4840250757394056958">Праглядзець гісторыю Chrome</translation>
@@ -1795,7 +1783,6 @@
 <translation id="6757797048963528358">Прылада перайшла ў рэжым сну.</translation>
 <translation id="6767985426384634228">Абнавіць адрас?</translation>
 <translation id="6768213884286397650">Hagaki (паштоўка)</translation>
-<translation id="6774185088257932239"><ph name="BEGIN_LINK" />Даведацца больш<ph name="END_LINK" /> пра рэжым інкогніта</translation>
 <translation id="6775759552199460396">JIS B2</translation>
 <translation id="67862343314499040">Фіялетавы</translation>
 <translation id="6786747875388722282">Пашырэнні</translation>
@@ -2276,12 +2263,6 @@
 <translation id="8317207217658302555">Абнавіць ARCore?</translation>
 <translation id="831997045666694187">Вечар</translation>
 <translation id="8321476692217554900">апавяшчэнні</translation>
-<translation id="8328484624016508118">Пасля закрыцця ўсіх укладак у рэжыме інкогніта, Chrome выдаліць:
-<ph name="BEGIN_LIST" />
-<ph name="LIST_ITEM" />даныя пра дзеянні ў браўзеры, ажыццёўленыя на гэтай прыладзе;<ph name="END_LIST_ITEM" />
-<ph name="LIST_ITEM" />гісторыю пошуку з гэтай прылады;<ph name="END_LIST_ITEM" />
-<ph name="LIST_ITEM" />звесткі, уведзеныя ў формах.<ph name="END_LIST_ITEM" />
-<ph name="END_LIST" /></translation>
 <translation id="8332188693563227489">Доступ да хоста <ph name="HOST_NAME" /> забаронены</translation>
 <translation id="833262891116910667">Вылучэнне</translation>
 <translation id="8339163506404995330">Старонкі на мове <ph name="LANGUAGE" /> не будуць перакладацца</translation>
diff --git a/components/strings/components_strings_bg.xtb b/components/strings/components_strings_bg.xtb
index f648c35..27285b4 100644
--- a/components/strings/components_strings_bg.xtb
+++ b/components/strings/components_strings_bg.xtb
@@ -20,7 +20,6 @@
 <translation id="1038842779957582377">неизвестно име</translation>
 <translation id="1041998700806130099">Съобщение за листа за заданието</translation>
 <translation id="1048785276086539861">Когато редактирате поясненията, изгледът на документа ще бъде на една страница</translation>
-<translation id="1049743911850919806">„Инкогнито“</translation>
 <translation id="1050038467049342496">Затворете другите приложения.</translation>
 <translation id="1055184225775184556">&amp;Отмяна на добавянето</translation>
 <translation id="1056898198331236512">Предупреждение</translation>
@@ -734,12 +733,6 @@
 <translation id="3345782426586609320">Очи</translation>
 <translation id="3355823806454867987">Промяна на настройките на прокси сървъра...</translation>
 <translation id="3360103848165129075">Лист на инструмента за обработване на плащания</translation>
-<translation id="3361596688432910856">Chrome <ph name="BEGIN_EMPHASIS" />няма да съхранява<ph name="END_EMPHASIS" /> следната информация:
-<ph name="BEGIN_LIST" />
-<ph name="LIST_ITEM" />историята на сърфирането ви;
-<ph name="LIST_ITEM" />„бисквитките“ и данните за сайтове;
-<ph name="LIST_ITEM" />въведените във формуляри данни.
-<ph name="END_LIST" /></translation>
 <translation id="3362968246557010467">Това правило е копирано автоматично от оттегленото <ph name="OLD_POLICY" />. Препоръчваме ви да използвате него.</translation>
 <translation id="3364869320075768271"><ph name="URL" /> иска да използва устройствата и данните ви за виртуална реалност</translation>
 <translation id="3366477098757335611">Преглед на картите</translation>
@@ -1220,12 +1213,7 @@
 <translation id="4819347708020428563">Искате ли да редактирате поясненията в стандартния изглед?</translation>
 <translation id="4825496307559726072"><ph name="CREATE_GOOGLE_SHEET_FOCUSED_FRIENDLY_MATCH_TEXT" />. Натиснете Tab и след това Enter, за да създадете бързо таблица в Google Таблици</translation>
 <translation id="4825507807291741242">Впечатляващо</translation>
-<translation id="4827402517081186284">Режимът „инкогнито“ не ви прави невидими онлайн:
-        <ph name="BEGIN_LIST" />
-          <ph name="LIST_ITEM" />Когато посещавате сайтове, те знаят за това.<ph name="END_LIST_ITEM" />
-          <ph name="LIST_ITEM" />Работодателите или учебните заведения могат да проследяват активността при сърфиране.<ph name="END_LIST_ITEM" />
-          <ph name="LIST_ITEM" />Доставчиците на интернет услуги може да следят уеб трафика.<ph name="END_LIST_ITEM" />
-        <ph name="END_LIST" /></translation>
+<translation id="4829962028570902310">Пренебрегнато, защото правилото може да бъде зададено само като правило за потребители в облака.</translation>
 <translation id="483241715238664915">Включване на предупрежденията</translation>
 <translation id="4838327282952368871">Замечтано</translation>
 <translation id="4840250757394056958">Преглед на историята ви в Chrome</translation>
@@ -1794,7 +1782,6 @@
 <translation id="6757797048963528358">Устройството ви премина в спящ режим.</translation>
 <translation id="6767985426384634228">Да се актуализира ли адресът?</translation>
 <translation id="6768213884286397650">Hagaki (пощенска картичка)</translation>
-<translation id="6774185088257932239"><ph name="BEGIN_LINK" />Научете повече<ph name="END_LINK" /> за режима „инкогнито“</translation>
 <translation id="6775759552199460396">JIS B2</translation>
 <translation id="67862343314499040">виолетово</translation>
 <translation id="6786747875388722282">Разширения</translation>
@@ -2274,12 +2261,6 @@
 <translation id="8317207217658302555">Да се актуализира ли ARCore?</translation>
 <translation id="831997045666694187">Вечерта</translation>
 <translation id="8321476692217554900">известия</translation>
-<translation id="8328484624016508118">След като затворите всички раздели в режим „инкогнито“, Chrome изчиства:
-        <ph name="BEGIN_LIST" />
-          <ph name="LIST_ITEM" />активността ви при сърфиране от това устройство;<ph name="END_LIST_ITEM" />
-          <ph name="LIST_ITEM" />историята на търсенията от това устройство;<ph name="END_LIST_ITEM" />
-          <ph name="LIST_ITEM" />въведената във формуляри информация.<ph name="END_LIST_ITEM" />
-        <ph name="END_LIST" /></translation>
 <translation id="8332188693563227489">Достъпът до <ph name="HOST_NAME" /> бе отказан</translation>
 <translation id="833262891116910667">Открояване</translation>
 <translation id="8339163506404995330">Страниците на <ph name="LANGUAGE" /> няма да се превеждат</translation>
diff --git a/components/strings/components_strings_bn.xtb b/components/strings/components_strings_bn.xtb
index 5e881e00..6651532 100644
--- a/components/strings/components_strings_bn.xtb
+++ b/components/strings/components_strings_bn.xtb
@@ -20,7 +20,6 @@
 <translation id="1038842779957582377">অজানা নাম</translation>
 <translation id="1041998700806130099">জব শিট মেসেজ</translation>
 <translation id="1048785276086539861">অ্যানোটেশন এডিট করার সময় এই ডকুমেন্ট আবার 'সিঙ্গেল পেজ ভিউ' মোডে দেখা যাবে</translation>
-<translation id="1049743911850919806">ছদ্মবেশী</translation>
 <translation id="1050038467049342496">অন্যান্য অ্যাপ্লিকেশানগুলি বন্ধ করুন</translation>
 <translation id="1055184225775184556">&amp;যোগ করাকে পূর্বাবস্থায় ফেরান</translation>
 <translation id="1056898198331236512">সতর্কতা</translation>
@@ -737,12 +736,6 @@
 <translation id="3345782426586609320">চোখ</translation>
 <translation id="3355823806454867987">প্রক্সি সেটিংস পরিবর্তন করুন...</translation>
 <translation id="3360103848165129075">পেমেন্ট হ্যান্ডলার শিট</translation>
-<translation id="3361596688432910856">Chrome এ নিম্নলিখিত তথ্য <ph name="BEGIN_EMPHASIS" />সংরক্ষণ করা হয় না<ph name="END_EMPHASIS" />:
-        <ph name="BEGIN_LIST" />
-          <ph name="LIST_ITEM" />আপনার ব্রাউজিং এর ইতিহাস
-          <ph name="LIST_ITEM" />কুকিজ এবং সাইটের ডেটা
-          <ph name="LIST_ITEM" />আপনি ফর্মে যে তথ্য দিয়েছেন
-        <ph name="END_LIST" /></translation>
 <translation id="3362968246557010467">শীঘ্রই বন্ধ হওয়া <ph name="OLD_POLICY" /> নীতি থেকে এই নীতি অটোমেটিক পদ্ধতিতে কপি করা হয়েছে। পরিবর্তে এই নীতি ব্যবহার করতে হবে।</translation>
 <translation id="3364869320075768271"><ph name="URL" /> আপনার ভার্চুয়াল রিয়েলিটি ডিভাইস ও ডেটা ব্যবহার করার অনুমতি চাইছে</translation>
 <translation id="3366477098757335611">কার্ড দেখুন</translation>
@@ -1223,12 +1216,6 @@
 <translation id="4819347708020428563">ডিফল্ট ভিউতে অ্যানোটেশন এডিট করবেন?</translation>
 <translation id="4825496307559726072"><ph name="CREATE_GOOGLE_SHEET_FOCUSED_FRIENDLY_MATCH_TEXT" />, চটপট নতুন Google Sheet তৈরি করতে প্রথমে Tab, তারপরে Enter প্রেস করুন</translation>
 <translation id="4825507807291741242">ক্ষমতাশালী</translation>
-<translation id="4827402517081186284">'ছদ্মবেশী' মোড আপনাকে অনলাইন থাকাকালীন অদৃশ্য করে রাখে না:
-        <ph name="BEGIN_LIST" />
-          <ph name="LIST_ITEM" />সাইটগুলি জানে যে আপনি কখন সেগুলি ভিজিট করেন<ph name="END_LIST_ITEM" />
-          <ph name="LIST_ITEM" />নিয়োগকর্তা বা স্কুল ব্রাউজিং অ্যাক্টিভিটি ট্র্যাক করতে পারে<ph name="END_LIST_ITEM" />
-          <ph name="LIST_ITEM" />ইন্টারনেট পরিষেবা প্রদানকারী, ওয়েব ট্রাফিক মনিটর করতে পারে<ph name="END_LIST_ITEM" />
-        <ph name="END_LIST" /></translation>
 <translation id="4829962028570902310">উপেক্ষা করা হয়েছে কারণ নীতিটি শুধুমাত্র ক্লাউড ব্যবহারকারী নীতি দ্বারা সেট করা যেতে পারে।</translation>
 <translation id="483241715238664915">সতর্কতা চালু করুন</translation>
 <translation id="4838327282952368871">স্বপ্নালু</translation>
@@ -1797,7 +1784,6 @@
 <translation id="6757797048963528358">আপনার ডিভাইস নিদ্রা মোডে গিয়েছে।</translation>
 <translation id="6767985426384634228">ঠিকানা আপডেট করবেন?</translation>
 <translation id="6768213884286397650">Hagaki (Postcard)</translation>
-<translation id="6774185088257932239">'ছদ্মবেশী' মোড সম্পর্কে <ph name="BEGIN_LINK" />আরও জানুন<ph name="END_LINK" /></translation>
 <translation id="6775759552199460396">JIS B2</translation>
 <translation id="67862343314499040">বেগুনি</translation>
 <translation id="6786747875388722282">এক্সটেনশানসমূহ</translation>
@@ -2277,12 +2263,6 @@
 <translation id="8317207217658302555">ARCore আপডেট করবেন?</translation>
 <translation id="831997045666694187">সন্ধ্যা</translation>
 <translation id="8321476692217554900">বিজ্ঞপ্তি</translation>
-<translation id="8328484624016508118">সব 'ছদ্মবেশী' ট্যাব বন্ধ করার পরে, Chrome এগুলি মুছে ফেলে:
-        <ph name="BEGIN_LIST" />
-          <ph name="LIST_ITEM" />এই ডিভাইস থেকে আপনার ব্রাউজিং অ্যাক্টিভিটি<ph name="END_LIST_ITEM" />
-          <ph name="LIST_ITEM" />এই ডিভাইস থেকে আপনার সার্চ ইতিহাস<ph name="END_LIST_ITEM" />
-          <ph name="LIST_ITEM" />ফর্মে লেখা তথ্য<ph name="END_LIST_ITEM" />
-        <ph name="END_LIST" /></translation>
 <translation id="8332188693563227489"><ph name="HOST_NAME" /> এ অ্যাক্সেস অস্বীকার করা হয়েছে</translation>
 <translation id="833262891116910667">হাইলাইট</translation>
 <translation id="8339163506404995330"><ph name="LANGUAGE" /> ভাষার পৃষ্ঠার অনুবাদ করা হবে না</translation>
diff --git a/components/strings/components_strings_bs.xtb b/components/strings/components_strings_bs.xtb
index 88ab775..d087e81 100644
--- a/components/strings/components_strings_bs.xtb
+++ b/components/strings/components_strings_bs.xtb
@@ -20,7 +20,6 @@
 <translation id="1038842779957582377">nepoznato ime</translation>
 <translation id="1041998700806130099">Poruka u tabeli za posao</translation>
 <translation id="1048785276086539861">Kada uredite bilješke, ovaj dokument će se vratiti na prikaz na jednoj stranici</translation>
-<translation id="1049743911850919806">Anonimno</translation>
 <translation id="1050038467049342496">Zatvorite druge aplikacije</translation>
 <translation id="1055184225775184556">&amp;Poništi dodavanje</translation>
 <translation id="1056898198331236512">Upozorenje</translation>
@@ -740,12 +739,6 @@
 <translation id="3345782426586609320">Oči</translation>
 <translation id="3355823806454867987">Promijeni postavke proksi servera...</translation>
 <translation id="3360103848165129075">Stranica obrađivača uplate</translation>
-<translation id="3361596688432910856">Chrome <ph name="BEGIN_EMPHASIS" />neće sačuvati<ph name="END_EMPHASIS" /> sljedeće informacije:
-        <ph name="BEGIN_LIST" />
-          <ph name="LIST_ITEM" />Vašu historiju pregledanja
-          <ph name="LIST_ITEM" />Kolačiće i podatke o web lokacijama
-          <ph name="LIST_ITEM" />Informacije koje unosite u obrasce
-        <ph name="END_LIST" /></translation>
 <translation id="3362968246557010467">Ovo pravilo je automatski kopirano iz zastarjelog pravila <ph name="OLD_POLICY" />. Umjesto toga koristite ovo pravilo.</translation>
 <translation id="3364869320075768271"><ph name="URL" /> želi koristiti vaš uređaj i podatke virtuelne realnosti</translation>
 <translation id="3366477098757335611">Prikaži kartice</translation>
@@ -1226,12 +1219,6 @@
 <translation id="4819347708020428563">Urediti bilješke u zadanom prikazu?</translation>
 <translation id="4825496307559726072"><ph name="CREATE_GOOGLE_SHEET_FOCUSED_FRIENDLY_MATCH_TEXT" />, pritisnite Tab, a zatim Enter da brzo kreirate novu Google tabelu</translation>
 <translation id="4825507807291741242">Snažno</translation>
-<translation id="4827402517081186284">Anonimni način rada vas ne čini nevidljivim online:
-        <ph name="BEGIN_LIST" />
-          <ph name="LIST_ITEM" />web lokacije znaju kada ih posjetite<ph name="END_LIST_ITEM" />
-          <ph name="LIST_ITEM" />poslodavci ili škole mogu pratiti aktivnost pregledanja<ph name="END_LIST_ITEM" />
-          <ph name="LIST_ITEM" />pružaoci internet usluga mogu pratiti saobraćaj na internetu<ph name="END_LIST_ITEM" />
-        <ph name="END_LIST" /></translation>
 <translation id="4829962028570902310">Zanemareno jer pravilo može postaviti samo korisničko pravilo oblaka.</translation>
 <translation id="483241715238664915">Uključi upozorenja</translation>
 <translation id="4838327282952368871">Sanjivo</translation>
@@ -1801,7 +1788,6 @@
 <translation id="6757797048963528358">Vaš uređaj je u stanju mirovanja.</translation>
 <translation id="6767985426384634228">Ažurirati adresu?</translation>
 <translation id="6768213884286397650">Hagaki (dopisnica)</translation>
-<translation id="6774185088257932239"><ph name="BEGIN_LINK" />Saznajte više<ph name="END_LINK" /> o anonimnom načinu rada</translation>
 <translation id="6775759552199460396">JIS B2</translation>
 <translation id="67862343314499040">Ljubičasta</translation>
 <translation id="6786747875388722282">Ekstenzije</translation>
@@ -2281,12 +2267,6 @@
 <translation id="8317207217658302555">Ažurirati ARCore?</translation>
 <translation id="831997045666694187">Večer</translation>
 <translation id="8321476692217554900">obavještenja</translation>
-<translation id="8328484624016508118">Nakon što zatvorite sve anonimne kartice, Chrome će obrisati:
-        <ph name="BEGIN_LIST" />
-          <ph name="LIST_ITEM" />vašu aktivnost pregledanja s ovog uređaja<ph name="END_LIST_ITEM" />
-          <ph name="LIST_ITEM" />vašu historiju pretraživanja s ovog uređaja<ph name="END_LIST_ITEM" />
-          <ph name="LIST_ITEM" />informacije unesene u obrasce<ph name="END_LIST_ITEM" />
-        <ph name="END_LIST" /></translation>
 <translation id="8332188693563227489">Pristup host računaru <ph name="HOST_NAME" /> je zabranjen</translation>
 <translation id="833262891116910667">Istaknuto</translation>
 <translation id="8339163506404995330">Stranice čiji je jezik <ph name="LANGUAGE" /> neće se prevoditi</translation>
@@ -2544,7 +2524,6 @@
 <translation id="9215416866750762878">Jedna aplikacija sprečava sigurno povezivanje Chromea na ovu web lokaciju</translation>
 <translation id="9219103736887031265">Slike</translation>
 <translation id="922152298093051471">Prilagodite Chrome</translation>
-<translation id="922274508605516859">Virtuelna kartica kamuflira vašu stvarnu karticu radi zaštite od potencijalne prevare.</translation>
 <translation id="933712198907837967">Diners Club</translation>
 <translation id="935608979562296692">OBRIŠI POLJA OBRASCA</translation>
 <translation id="936474030629450166">Super-B</translation>
diff --git a/components/strings/components_strings_ca.xtb b/components/strings/components_strings_ca.xtb
index 193eee2..2f9fbec9 100644
--- a/components/strings/components_strings_ca.xtb
+++ b/components/strings/components_strings_ca.xtb
@@ -20,7 +20,6 @@
 <translation id="1038842779957582377">nom desconegut</translation>
 <translation id="1041998700806130099">Missatge del full de treball</translation>
 <translation id="1048785276086539861">Quan editis anotacions, aquest document tornarà a la visualització d'una sola pàgina</translation>
-<translation id="1049743911850919806">Incògnit</translation>
 <translation id="1050038467049342496">Tanca altres aplicacions</translation>
 <translation id="1055184225775184556">&amp;Desfés l'addició</translation>
 <translation id="1056898198331236512">Advertiment</translation>
@@ -732,12 +731,6 @@
 <translation id="3345782426586609320">Ulls</translation>
 <translation id="3355823806454867987">Canvia la configuració del servidor intermediari...</translation>
 <translation id="3360103848165129075">Full del gestor de pagaments</translation>
-<translation id="3361596688432910856">Chrome <ph name="BEGIN_EMPHASIS" />no desarà<ph name="END_EMPHASIS" /> la informació següent:
-        <ph name="BEGIN_LIST" />
-          <ph name="LIST_ITEM" />El teu historial de navegació
-          <ph name="LIST_ITEM" />Les galetes i les dades de llocs web
-          <ph name="LIST_ITEM" />La informació que introdueixis en formularis
-        <ph name="END_LIST" /></translation>
 <translation id="3362968246557010467">Aquesta política s'ha copiat automàticament de la política <ph name="OLD_POLICY" />, que està obsoleta. Hauries de fer servir aquesta política.</translation>
 <translation id="3364869320075768271"><ph name="URL" /> vol utilitzar les teves dades i els teus dispositius de realitat virtual</translation>
 <translation id="3366477098757335611">Mostra les targetes</translation>
@@ -1213,12 +1206,7 @@
 <translation id="4819347708020428563">Vols editar les anotacions en la visualització predeterminada?</translation>
 <translation id="4825496307559726072"><ph name="CREATE_GOOGLE_SHEET_FOCUSED_FRIENDLY_MATCH_TEXT" />: prem Tab i després Retorn per crear un full de càlcul de Google ràpidament</translation>
 <translation id="4825507807291741242">Potent</translation>
-<translation id="4827402517081186284">Amb el mode d'incògnit no ets invisible en línia:
-        <ph name="BEGIN_LIST" />
-          <ph name="LIST_ITEM" />Els llocs web saben quan els visites.<ph name="END_LIST_ITEM" />
-          <ph name="LIST_ITEM" />Les empreses o els centres educatius poden fer el seguiment de l'activitat de navegació.<ph name="END_LIST_ITEM" />
-          <ph name="LIST_ITEM" />Els proveïdors d'Internet poden monitorar el trànsit web.<ph name="END_LIST_ITEM" />
-        <ph name="END_LIST" /></translation>
+<translation id="4829962028570902310">S'ha ignorat perquè la política només es pot establir per la política d'usuari basada en el núvol.</translation>
 <translation id="483241715238664915">Activa els advertiments</translation>
 <translation id="4838327282952368871">Somiadora</translation>
 <translation id="4840250757394056958">Mostra l'historial de Chrome</translation>
@@ -1787,7 +1775,6 @@
 <translation id="6757797048963528358">El dispositiu ha entrat en mode de repòs.</translation>
 <translation id="6767985426384634228">Vols actualitzar l'adreça?</translation>
 <translation id="6768213884286397650">Hagaki (postal)</translation>
-<translation id="6774185088257932239"><ph name="BEGIN_LINK" />Més informació<ph name="END_LINK" /> sobre el mode d'incògnit</translation>
 <translation id="6775759552199460396">JIS B2</translation>
 <translation id="67862343314499040">Violeta</translation>
 <translation id="6786747875388722282">Extensions</translation>
@@ -2267,12 +2254,6 @@
 <translation id="8317207217658302555">Vols actualitzar ARCore?</translation>
 <translation id="831997045666694187">Tarda</translation>
 <translation id="8321476692217554900">notificacions</translation>
-<translation id="8328484624016508118">Quan s'han tancat totes les pestanyes d'incògnit, Chrome esborra:
-        <ph name="BEGIN_LIST" />
-          <ph name="LIST_ITEM" />L'activitat de navegació d'aquest dispositiu.<ph name="END_LIST_ITEM" />
-          <ph name="LIST_ITEM" />L'historial de cerques d'aquest dispositiu.<ph name="END_LIST_ITEM" />
-          <ph name="LIST_ITEM" />La informació introduïda en formularis.<ph name="END_LIST_ITEM" />
-        <ph name="END_LIST" /></translation>
 <translation id="8332188693563227489">S'ha rebutjat l'accés a <ph name="HOST_NAME" /></translation>
 <translation id="833262891116910667">Destacat</translation>
 <translation id="8339163506404995330">Les pàgines en <ph name="LANGUAGE" /> no es traduiran</translation>
diff --git a/components/strings/components_strings_cs.xtb b/components/strings/components_strings_cs.xtb
index f185bb5f7..8930040 100644
--- a/components/strings/components_strings_cs.xtb
+++ b/components/strings/components_strings_cs.xtb
@@ -20,7 +20,6 @@
 <translation id="1038842779957582377">neznámé jméno</translation>
 <translation id="1041998700806130099">Zpráva listu úlohy</translation>
 <translation id="1048785276086539861">Když poznámky upravíte, tento dokument se vrátí do zobrazení jedné stránky</translation>
-<translation id="1049743911850919806">Anonymní režim</translation>
 <translation id="1050038467049342496">Zavřete ostatní aplikace</translation>
 <translation id="1055184225775184556">&amp;Vrátit přidání zpět</translation>
 <translation id="1056898198331236512">Upozornění</translation>
@@ -729,12 +728,6 @@
 <translation id="3345782426586609320">Oči</translation>
 <translation id="3355823806454867987">Změna nastavení proxy...</translation>
 <translation id="3360103848165129075">List obslužného nástroje pro platby</translation>
-<translation id="3361596688432910856">Chrome <ph name="BEGIN_EMPHASIS" />nebude ukládat<ph name="END_EMPHASIS" /> následující informace:
-        <ph name="BEGIN_LIST" />
-          <ph name="LIST_ITEM" />vaši historii prohlížení,
-          <ph name="LIST_ITEM" />soubory cookie a data webů,
-          <ph name="LIST_ITEM" />údaje zadané do formulářů.
-        <ph name="END_LIST" /></translation>
 <translation id="3362968246557010467">Tato zásada byla automaticky zkopírována ze zásady <ph name="OLD_POLICY" />, jejíž podpora byla ukončena. Měli byste místo ní používat tuto zásadu.</translation>
 <translation id="3364869320075768271"><ph name="URL" /> chce používat vaše zařízení a data pro virtuální realitu</translation>
 <translation id="3366477098757335611">Zobrazit karty</translation>
@@ -1209,12 +1202,7 @@
 <translation id="4819347708020428563">Upravit poznámky ve výchozím zobrazení?</translation>
 <translation id="4825496307559726072"><ph name="CREATE_GOOGLE_SHEET_FOCUSED_FRIENDLY_MATCH_TEXT" />, stisknutím klávesy Tab a poté Enter rychle vytvoříte novou Tabulku Google</translation>
 <translation id="4825507807291741242">Důrazné</translation>
-<translation id="4827402517081186284">Anonymní režim neznamená, že jste neviditelní:
-        <ph name="BEGIN_LIST" />
-          <ph name="LIST_ITEM" />weby poznají, když je navštívíte,<ph name="END_LIST_ITEM" />
-          <ph name="LIST_ITEM" />zaměstnavatel nebo škola mohou sledovat, co si prohlížíte,<ph name="END_LIST_ITEM" />
-          <ph name="LIST_ITEM" />poskytovatelé internetových služeb mohou sledovat návštěvnost webů.<ph name="END_LIST_ITEM" />
-        <ph name="END_LIST" /></translation>
+<translation id="4829962028570902310">Ignorováno, protože zásadu lze nastavit pouze skrze zásady pro cloudové uživatele.</translation>
 <translation id="483241715238664915">Zapnout upozornění</translation>
 <translation id="4838327282952368871">Zasněné</translation>
 <translation id="4840250757394056958">Zobrazit historii Chromu</translation>
@@ -1782,7 +1770,6 @@
 <translation id="6757797048963528358">Zařízení přešlo do režimu spánku.</translation>
 <translation id="6767985426384634228">Aktualizovat adresu?</translation>
 <translation id="6768213884286397650">Hagaki (pohlednice)</translation>
-<translation id="6774185088257932239"><ph name="BEGIN_LINK" />Další informace<ph name="END_LINK" /> o anonymním režimu</translation>
 <translation id="6775759552199460396">JIS B2</translation>
 <translation id="67862343314499040">Fialová</translation>
 <translation id="6786747875388722282">Rozšíření</translation>
@@ -2261,12 +2248,6 @@
 <translation id="8317207217658302555">Aktualizovat ARCore?</translation>
 <translation id="831997045666694187">Večer</translation>
 <translation id="8321476692217554900">oznámení</translation>
-<translation id="8328484624016508118">Po zavření všech anonymních karet smaže Chrome:
-        <ph name="BEGIN_LIST" />
-          <ph name="LIST_ITEM" />aktivitu prohlížení z tohoto zařízení,<ph name="END_LIST_ITEM" />
-          <ph name="LIST_ITEM" />historii vyhledávání z tohoto zařízení,<ph name="END_LIST_ITEM" />
-          <ph name="LIST_ITEM" />informace zadané ve formulářích.<ph name="END_LIST_ITEM" />
-        <ph name="END_LIST" /></translation>
 <translation id="8332188693563227489">Přístup k webu <ph name="HOST_NAME" /> byl odepřen</translation>
 <translation id="833262891116910667">Zvýraznit</translation>
 <translation id="8339163506404995330">Stránky v jazyce <ph name="LANGUAGE" /> nebudou překládány</translation>
diff --git a/components/strings/components_strings_da.xtb b/components/strings/components_strings_da.xtb
index 31aa778..5a88939 100644
--- a/components/strings/components_strings_da.xtb
+++ b/components/strings/components_strings_da.xtb
@@ -20,7 +20,6 @@
 <translation id="1038842779957582377">ukendt navn</translation>
 <translation id="1041998700806130099">Jobarksmeddelelse</translation>
 <translation id="1048785276086539861">Når du redigerer annoteringer, skifter dette dokument tilbage til enkeltsidevisning</translation>
-<translation id="1049743911850919806">Inkognito</translation>
 <translation id="1050038467049342496">Luk andre apps</translation>
 <translation id="1055184225775184556">&amp;Fortryd tilføjelse</translation>
 <translation id="1056898198331236512">Advarsel</translation>
@@ -736,12 +735,6 @@
 <translation id="3345782426586609320">Øjne</translation>
 <translation id="3355823806454867987">Skift indstillinger for proxy...</translation>
 <translation id="3360103848165129075">Regneark for betalingshandler</translation>
-<translation id="3361596688432910856">Chrome <ph name="BEGIN_EMPHASIS" />gemmer ikke<ph name="END_EMPHASIS" /> følgende oplysninger:
-        <ph name="BEGIN_LIST" />
-          <ph name="LIST_ITEM" />Din browserhistorik
-          <ph name="LIST_ITEM" />Cookies og websitedata
-          <ph name="LIST_ITEM" />Oplysninger, du angiver i formularer
-        <ph name="END_LIST" /></translation>
 <translation id="3362968246557010467">Denne politik blev automatisk kopieret fra den udfasede politik <ph name="OLD_POLICY" />. Du bør bruge denne politik i stedet.</translation>
 <translation id="3364869320075768271"><ph name="URL" /> vil gerne anvende din virtual reality-enhed og dine VR-data</translation>
 <translation id="3366477098757335611">Se kort</translation>
@@ -1222,12 +1215,7 @@
 <translation id="4819347708020428563">Vil du redigere annoteringer i standardvisningen?</translation>
 <translation id="4825496307559726072"><ph name="CREATE_GOOGLE_SHEET_FOCUSED_FRIENDLY_MATCH_TEXT" />, tryk på Tab-tasten efterfulgt af Enter for hurtigt at oprette et nyt Google-regneark</translation>
 <translation id="4825507807291741242">Kraftfuld</translation>
-<translation id="4827402517081186284">Inkognitotilstand gør dig ikke usynlig på nettet:
-        <ph name="BEGIN_LIST" />
-          <ph name="LIST_ITEM" />Websites ved, hvornår du besøger dem<ph name="END_LIST_ITEM" />
-          <ph name="LIST_ITEM" />Arbejdspladser og skoler kan spore browseraktivitet<ph name="END_LIST_ITEM" />
-          <ph name="LIST_ITEM" />Internetudbydere kan spore webtrafik<ph name="END_LIST_ITEM" />
-        <ph name="END_LIST" /></translation>
+<translation id="4829962028570902310">Ignoreret, fordi politikken kun kan angives med skybrugerpolitikken.</translation>
 <translation id="483241715238664915">Aktivér advarsler</translation>
 <translation id="4838327282952368871">Drømmende</translation>
 <translation id="4840250757394056958">Se din Chrome-historik</translation>
@@ -1796,7 +1784,6 @@
 <translation id="6757797048963528358">Din enhed gik i dvale.</translation>
 <translation id="6767985426384634228">Vil du opdatere adressen?</translation>
 <translation id="6768213884286397650">Hagaki (Postcard)</translation>
-<translation id="6774185088257932239"><ph name="BEGIN_LINK" />Få flere oplysninger<ph name="END_LINK" /> om inkognitotilstand</translation>
 <translation id="6775759552199460396">JIS B2</translation>
 <translation id="67862343314499040">Violet</translation>
 <translation id="6786747875388722282">Udvidelser</translation>
@@ -2276,12 +2263,6 @@
 <translation id="8317207217658302555">Vil du opdatere ARCore?</translation>
 <translation id="831997045666694187">Aften</translation>
 <translation id="8321476692217554900">notifikationer</translation>
-<translation id="8328484624016508118">Når du har lukket alle inkognitofaner, rydder Chrome:
-        <ph name="BEGIN_LIST" />
-          <ph name="LIST_ITEM" />Din browseraktivitet fra denne enhed<ph name="END_LIST_ITEM" />
-          <ph name="LIST_ITEM" />Din søgehistorik fra denne enhed<ph name="END_LIST_ITEM" />
-          <ph name="LIST_ITEM" />De oplysninger, du har angivet i formularer<ph name="END_LIST_ITEM" />
-        <ph name="END_LIST" /></translation>
 <translation id="8332188693563227489">Adgangen til <ph name="HOST_NAME" /> blev nægtet</translation>
 <translation id="833262891116910667">Fremhæv</translation>
 <translation id="8339163506404995330">Sider på <ph name="LANGUAGE" /> oversættes ikke</translation>
diff --git a/components/strings/components_strings_de.xtb b/components/strings/components_strings_de.xtb
index 080e262..8935028 100644
--- a/components/strings/components_strings_de.xtb
+++ b/components/strings/components_strings_de.xtb
@@ -20,7 +20,6 @@
 <translation id="1038842779957582377">Unbekannter Name</translation>
 <translation id="1041998700806130099">Auftragsblattnachricht</translation>
 <translation id="1048785276086539861">Wenn Sie Anmerkungen bearbeiten, wechselt das Dokument zur Einzelseitenansicht zurück</translation>
-<translation id="1049743911850919806">Inkognito</translation>
 <translation id="1050038467049342496">Andere Apps schließen</translation>
 <translation id="1055184225775184556">&amp;Hinzufügen rückgängig machen</translation>
 <translation id="1056898198331236512">Warnung</translation>
@@ -732,12 +731,6 @@
 <translation id="3345782426586609320">Augen</translation>
 <translation id="3355823806454867987">Proxy-Einstellungen ändern...</translation>
 <translation id="3360103848165129075">Dokument zur Zahlungsabwicklung</translation>
-<translation id="3361596688432910856">Chrome <ph name="BEGIN_EMPHASIS" />speichert die folgenden Daten nicht<ph name="END_EMPHASIS" />:
-        <ph name="BEGIN_LIST" />
-          <ph name="LIST_ITEM" />Ihren Browserverlauf
-          <ph name="LIST_ITEM" />Cookies und Websitedaten
-          <ph name="LIST_ITEM" />In Formulare eingegebene Daten
-        <ph name="END_LIST" /></translation>
 <translation id="3362968246557010467">Diese Richtlinie wurde automatisch aus der verworfenen Richtlinie "<ph name="OLD_POLICY" />" kopiert. Verwenden Sie stattdessen diese Richtlinie.</translation>
 <translation id="3364869320075768271"><ph name="URL" /> möchte Ihr Virtual-Reality-Gerät und Ihre Virtual-Reality-Daten verwenden</translation>
 <translation id="3366477098757335611">Karten ansehen</translation>
@@ -1211,12 +1204,7 @@
 <translation id="4819347708020428563">Anmerkungen in der Standardansicht bearbeiten?</translation>
 <translation id="4825496307559726072"><ph name="CREATE_GOOGLE_SHEET_FOCUSED_FRIENDLY_MATCH_TEXT" /> – drücken Sie die Tabulatortaste und dann die Eingabetaste, um schnell eine neue Google-Tabelle zu erstellen</translation>
 <translation id="4825507807291741242">Beeindruckend</translation>
-<translation id="4827402517081186284">Der Inkognitomodus macht Sie online nicht unsichtbar:
-        <ph name="BEGIN_LIST" />
-          <ph name="LIST_ITEM" />Websites erkennen, dass Sie sie besuchen<ph name="END_LIST_ITEM" />
-          <ph name="LIST_ITEM" />Arbeitgeber und Bildungseinrichtungen können Browseraktivitäten erfassen<ph name="END_LIST_ITEM" />
-          <ph name="LIST_ITEM" />Internetanbieter behalten ggf. den Web-Traffic im Blick<ph name="END_LIST_ITEM" />
-        <ph name="END_LIST" /></translation>
+<translation id="4829962028570902310">Ignoriert, weil die Richtlinie nur als Cloud-Nutzer-Richtlinie konfiguriert werden kann.</translation>
 <translation id="483241715238664915">Warnmeldungen aktivieren</translation>
 <translation id="4838327282952368871">Träumerisch</translation>
 <translation id="4840250757394056958">Chrome-Verlauf anzeigen</translation>
@@ -1785,7 +1773,6 @@
 <translation id="6757797048963528358">Ihr Gerät ist im Ruhemodus.</translation>
 <translation id="6767985426384634228">Adresse aktualisieren?</translation>
 <translation id="6768213884286397650">Hagaki (Postkarte)</translation>
-<translation id="6774185088257932239"><ph name="BEGIN_LINK" />Weitere Informationen<ph name="END_LINK" /> zum Inkognitomodus</translation>
 <translation id="6775759552199460396">JIS B2</translation>
 <translation id="67862343314499040">Violett</translation>
 <translation id="6786747875388722282">Erweiterungen</translation>
@@ -2265,12 +2252,6 @@
 <translation id="8317207217658302555">ARCore aktualisieren?</translation>
 <translation id="831997045666694187">Abends</translation>
 <translation id="8321476692217554900">Benachrichtigungen</translation>
-<translation id="8328484624016508118">Nach dem Schließen aller Inkognitotabs löscht Chrome Folgendes:
-        <ph name="BEGIN_LIST" />
-          <ph name="LIST_ITEM" />Ihre Browseraktivitäten auf diesem Gerät<ph name="END_LIST_ITEM" />
-          <ph name="LIST_ITEM" />Ihren Suchverlauf auf diesem Gerät<ph name="END_LIST_ITEM" />
-          <ph name="LIST_ITEM" />Formulareingaben<ph name="END_LIST_ITEM" />
-        <ph name="END_LIST" /></translation>
 <translation id="8332188693563227489">Der Zugriff auf <ph name="HOST_NAME" /> wurde verweigert</translation>
 <translation id="833262891116910667">Markieren</translation>
 <translation id="8339163506404995330">Seiten auf <ph name="LANGUAGE" /> werden nicht übersetzt</translation>
diff --git a/components/strings/components_strings_el.xtb b/components/strings/components_strings_el.xtb
index e64e070..98959d6 100644
--- a/components/strings/components_strings_el.xtb
+++ b/components/strings/components_strings_el.xtb
@@ -20,7 +20,6 @@
 <translation id="1038842779957582377">άγνωστο όνομα</translation>
 <translation id="1041998700806130099">Μήνυμα φύλλου εργασίας</translation>
 <translation id="1048785276086539861">Όταν επεξεργάζεστε σχολιασμούς, αυτό το έγγραφο θα επιστρέφει στην προβολή μίας σελίδας.</translation>
-<translation id="1049743911850919806">Ανώνυμη περιήγηση</translation>
 <translation id="1050038467049342496">Κλείστε τις άλλες εφαρμογές</translation>
 <translation id="1055184225775184556">&amp;Αναίρεση προσθήκης</translation>
 <translation id="1056898198331236512">Προειδοποίηση</translation>
@@ -737,12 +736,6 @@
 <translation id="3345782426586609320">Μάτια</translation>
 <translation id="3355823806454867987">Αλλαγή ρυθμίσεων διακομιστή μεσολάβησης...</translation>
 <translation id="3360103848165129075">Φύλλο δείκτη χειρισμού πληρωμών</translation>
-<translation id="3361596688432910856">Το Chrome <ph name="BEGIN_EMPHASIS" />δεν θα αποθηκεύει<ph name="END_EMPHASIS" /> τις παρακάτω πληροφορίες:
-        <ph name="BEGIN_LIST" />
-          <ph name="LIST_ITEM" />Το ιστορικό περιήγησής σας
-          <ph name="LIST_ITEM" />Cookie και δεδομένα ιστοτόπου
-          <ph name="LIST_ITEM" />Πληροφορίες που εισάγετε σε φόρμες
-        <ph name="END_LIST" /></translation>
 <translation id="3362968246557010467">Αυτή η πολιτική αντιγράφηκε αυτόματα από την πολιτική <ph name="OLD_POLICY" /> που έχει καταργηθεί. Θα πρέπει να χρησιμοποιήσετε εναλλακτικά αυτήν την πολιτική.</translation>
 <translation id="3364869320075768271">Το <ph name="URL" /> θέλει να χρησιμοποιήσει τη συσκευή και τα δεδομένα εικονικής πραγματικότητας.</translation>
 <translation id="3366477098757335611">Προβολή καρτών</translation>
@@ -1224,12 +1217,6 @@
 <translation id="4819347708020428563">Επεξεργασία σχολιασμών στην προεπιλεγμένη προβολή;</translation>
 <translation id="4825496307559726072"><ph name="CREATE_GOOGLE_SHEET_FOCUSED_FRIENDLY_MATCH_TEXT" />, πατήστε το πλήκτρο Tab και έπειτα το πλήκτρο Enter για να δημιουργήσετε γρήγορα ένα νέο Φύλλο Google</translation>
 <translation id="4825507807291741242">Ισχυρό</translation>
-<translation id="4827402517081186284">Η Ανώνυμη περιήγηση δεν σας κάνει αόρατους στο διαδίκτυο:
-        <ph name="BEGIN_LIST" />
-          <ph name="LIST_ITEM" />Οι ιστότοποι γνωρίζουν πότε τους επισκέπτεστε.<ph name="END_LIST_ITEM" />
-          <ph name="LIST_ITEM" />Οι εργοδότες ή τα εκπαιδευτικά ιδρύματα μπορούν να παρακολουθούν τη δραστηριότητα περιήγησης.<ph name="END_LIST_ITEM" />
-          <ph name="LIST_ITEM" />Οι πάροχοι υπηρεσιών διαδικτύου μπορούν να παρακολουθούν την επισκεψιμότητα στον ιστό.<ph name="END_LIST_ITEM" />
-        <ph name="END_LIST" /></translation>
 <translation id="4829962028570902310">Έγινε παράβλεψη επειδή η πολιτική μπορεί να οριστεί μόνο από χρήστη πολιτικής cloud.</translation>
 <translation id="483241715238664915">Ενεργοποίηση ειδοποιήσεων</translation>
 <translation id="4838327282952368871">Ονειρικό</translation>
@@ -1801,7 +1788,6 @@
 <translation id="6757797048963528358">Η συσκευή σας τέθηκε σε αδράνεια.</translation>
 <translation id="6767985426384634228">Ενημέρωση διεύθυνσης;</translation>
 <translation id="6768213884286397650">Hagaki (Ταχυδρομική κάρτα)</translation>
-<translation id="6774185088257932239"><ph name="BEGIN_LINK" />Μάθετε περισσότερα<ph name="END_LINK" /> σχετικά με την Ανώνυμη περιήγηση</translation>
 <translation id="6775759552199460396">JIS B2</translation>
 <translation id="67862343314499040">Βιολετί</translation>
 <translation id="6786747875388722282">Επεκτάσεις</translation>
@@ -2282,12 +2268,6 @@
 <translation id="8317207217658302555">Ενημέρωση ARCore;</translation>
 <translation id="831997045666694187">Βράδυ</translation>
 <translation id="8321476692217554900">ειδοποιήσεις</translation>
-<translation id="8328484624016508118">Μετά το κλείσιμο όλων των καρτελών ανώνυμης περιήγησης, το Chrome διαγράφει:
-        <ph name="BEGIN_LIST" />
-          <ph name="LIST_ITEM" />Τη δραστηριότητα περιήγησής σας από αυτήν τη συσκευή<ph name="END_LIST_ITEM" />
-          <ph name="LIST_ITEM" />Το ιστορικό αναζήτησής σας από αυτήν τη συσκευή<ph name="END_LIST_ITEM" />
-          <ph name="LIST_ITEM" />Τις πληροφορίες που είχαν καταχωριστεί σε φόρμες<ph name="END_LIST_ITEM" />
-        <ph name="END_LIST" /></translation>
 <translation id="8332188693563227489">Απορρίφθηκε η πρόσβαση στο κεντρικό υπολογιστή <ph name="HOST_NAME" /></translation>
 <translation id="833262891116910667">Επισήμανση</translation>
 <translation id="8339163506404995330">Οι σελίδες στα <ph name="LANGUAGE" /> δεν θα μεταφράζονται</translation>
diff --git a/components/strings/components_strings_en-GB.xtb b/components/strings/components_strings_en-GB.xtb
index 2d736084..75937c3 100644
--- a/components/strings/components_strings_en-GB.xtb
+++ b/components/strings/components_strings_en-GB.xtb
@@ -20,7 +20,6 @@
 <translation id="1038842779957582377">unknown name</translation>
 <translation id="1041998700806130099">Job sheet message</translation>
 <translation id="1048785276086539861">When you edit annotations, this document will return to single-page view</translation>
-<translation id="1049743911850919806">Incognito</translation>
 <translation id="1050038467049342496">Close other apps</translation>
 <translation id="1055184225775184556">&amp;Undo add</translation>
 <translation id="1056898198331236512">Warning</translation>
@@ -735,12 +734,6 @@
 <translation id="3345782426586609320">Eyes</translation>
 <translation id="3355823806454867987">Change proxy settings...</translation>
 <translation id="3360103848165129075">Payment handler sheet</translation>
-<translation id="3361596688432910856">Chrome <ph name="BEGIN_EMPHASIS" />won’t save<ph name="END_EMPHASIS" /> the following information:
-        <ph name="BEGIN_LIST" />
-          <ph name="LIST_ITEM" />Your browsing history
-          <ph name="LIST_ITEM" />Cookies and site data
-          <ph name="LIST_ITEM" />Information entered in forms
-        <ph name="END_LIST" /></translation>
 <translation id="3362968246557010467">This policy was automatically copied from the deprecated <ph name="OLD_POLICY" /> policy. You should use this policy instead.</translation>
 <translation id="3364869320075768271"><ph name="URL" /> wants to use your virtual reality device and data</translation>
 <translation id="3366477098757335611">View cards</translation>
@@ -1221,12 +1214,6 @@
 <translation id="4819347708020428563">Edit annotations in default view?</translation>
 <translation id="4825496307559726072"><ph name="CREATE_GOOGLE_SHEET_FOCUSED_FRIENDLY_MATCH_TEXT" />: press Tab then Enter to create a new Google Sheet quickly</translation>
 <translation id="4825507807291741242">Powerful</translation>
-<translation id="4827402517081186284">Incognito does not make you invisible online:
-        <ph name="BEGIN_LIST" />
-          <ph name="LIST_ITEM" />Sites know when you visit them<ph name="END_LIST_ITEM" />
-          <ph name="LIST_ITEM" />Employers or schools can track browsing activity<ph name="END_LIST_ITEM" />
-          <ph name="LIST_ITEM" />Internet service providers may monitor web traffic<ph name="END_LIST_ITEM" />
-        <ph name="END_LIST" /></translation>
 <translation id="4829962028570902310">Ignored because the policy can only be set by cloud user policy.</translation>
 <translation id="483241715238664915">Turn on warnings</translation>
 <translation id="4838327282952368871">Dreamy</translation>
@@ -1796,7 +1783,6 @@
 <translation id="6757797048963528358">Your device went to sleep.</translation>
 <translation id="6767985426384634228">Update address?</translation>
 <translation id="6768213884286397650">Hagaki (Postcard)</translation>
-<translation id="6774185088257932239"><ph name="BEGIN_LINK" />Learn more<ph name="END_LINK" /> about Incognito</translation>
 <translation id="6775759552199460396">JIS B2</translation>
 <translation id="67862343314499040">Violet</translation>
 <translation id="6786747875388722282">Extensions</translation>
@@ -2276,12 +2262,6 @@
 <translation id="8317207217658302555">Update ARCore?</translation>
 <translation id="831997045666694187">Evening</translation>
 <translation id="8321476692217554900">notifications</translation>
-<translation id="8328484624016508118">After closing all Incognito tabs, Chrome clears:
-        <ph name="BEGIN_LIST" />
-          <ph name="LIST_ITEM" />Your browsing activity from this device<ph name="END_LIST_ITEM" />
-          <ph name="LIST_ITEM" />Your search history from this device<ph name="END_LIST_ITEM" />
-          <ph name="LIST_ITEM" />Information entered into forms<ph name="END_LIST_ITEM" />
-        <ph name="END_LIST" /></translation>
 <translation id="8332188693563227489">Access to <ph name="HOST_NAME" /> was denied</translation>
 <translation id="833262891116910667">Highlight</translation>
 <translation id="8339163506404995330">Pages in <ph name="LANGUAGE" /> will not be translated</translation>
diff --git a/components/strings/components_strings_es-419.xtb b/components/strings/components_strings_es-419.xtb
index 3808e60..fa489498 100644
--- a/components/strings/components_strings_es-419.xtb
+++ b/components/strings/components_strings_es-419.xtb
@@ -20,7 +20,6 @@
 <translation id="1038842779957582377">nombre desconocido</translation>
 <translation id="1041998700806130099">Mensaje de la hoja del trabajo</translation>
 <translation id="1048785276086539861">Cuando edites anotaciones, se mostrará este documento en una vista de una sola página</translation>
-<translation id="1049743911850919806">Incógnito</translation>
 <translation id="1050038467049342496">Cierra las demás apps.</translation>
 <translation id="1055184225775184556">&amp;Deshacer Agregar</translation>
 <translation id="1056898198331236512">Advertencia</translation>
@@ -733,12 +732,6 @@
 <translation id="3345782426586609320">Ojos</translation>
 <translation id="3355823806454867987">Cambiar la configuración del proxy...</translation>
 <translation id="3360103848165129075">Hoja del controlador de pagos</translation>
-<translation id="3361596688432910856">Chrome <ph name="BEGIN_EMPHASIS" />no guardará<ph name="END_EMPHASIS" /> la siguiente información:
-        <ph name="BEGIN_LIST" />
-          <ph name="LIST_ITEM" />El historial de navegación
-          <ph name="LIST_ITEM" />Cookies y datos de sitios
-          <ph name="LIST_ITEM" />Información que ingreses en formularios
-        <ph name="END_LIST" /></translation>
 <translation id="3362968246557010467">Se copió esta política de forma automática a partir de la política obsoleta <ph name="OLD_POLICY" />. En su lugar, debes usar esta política.</translation>
 <translation id="3364869320075768271"><ph name="URL" /> quiere usar tus datos y dispositivos de realidad virtual</translation>
 <translation id="3366477098757335611">Ver tarjetas</translation>
@@ -1214,12 +1207,7 @@
 <translation id="4819347708020428563">¿Quieres editar anotaciones en la vista predeterminada?</translation>
 <translation id="4825496307559726072"><ph name="CREATE_GOOGLE_SHEET_FOCUSED_FRIENDLY_MATCH_TEXT" />, presiona Tab y, luego, Intro para crear una nueva hoja de cálculo de Google rápidamente</translation>
 <translation id="4825507807291741242">Powerful</translation>
-<translation id="4827402517081186284">El modo Incógnito no te hace invisible en línea:
-        <ph name="BEGIN_LIST" />
-          <ph name="LIST_ITEM" />Los sitios saben que los visitas.<ph name="END_LIST_ITEM" />
-          <ph name="LIST_ITEM" />Las empresas o instituciones educativas pueden rastrear tu actividad de navegación.<ph name="END_LIST_ITEM" />
-          <ph name="LIST_ITEM" />Los proveedores de servicios de Internet pueden supervisar el tráfico web.<ph name="END_LIST_ITEM" />
-        <ph name="END_LIST" /></translation>
+<translation id="4829962028570902310">Se ignoró porque solo la política del usuario basada en la nube puede establecer la política.</translation>
 <translation id="483241715238664915">Activar advertencias</translation>
 <translation id="4838327282952368871">Dreamy</translation>
 <translation id="4840250757394056958">Ver tu historial de Chrome</translation>
@@ -1788,7 +1776,6 @@
 <translation id="6757797048963528358">El dispositivo se suspendió.</translation>
 <translation id="6767985426384634228">¿Deseas actualizar la dirección?</translation>
 <translation id="6768213884286397650">Hagaki (Postcard)</translation>
-<translation id="6774185088257932239"><ph name="BEGIN_LINK" />Más información<ph name="END_LINK" /> sobre el modo Incógnito</translation>
 <translation id="6775759552199460396">JIS B2</translation>
 <translation id="67862343314499040">Violeta</translation>
 <translation id="6786747875388722282">Extensiones</translation>
@@ -2268,12 +2255,6 @@
 <translation id="8317207217658302555">¿Deseas actualizar ARCore?</translation>
 <translation id="831997045666694187">Tarde</translation>
 <translation id="8321476692217554900">notificaciones</translation>
-<translation id="8328484624016508118">Después de cerrar todas las pestañas de incógnito, Chrome borrará lo siguiente:
-        <ph name="BEGIN_LIST" />
-          <ph name="LIST_ITEM" />La actividad de navegación de este dispositivo<ph name="END_LIST_ITEM" />
-          <ph name="LIST_ITEM" />El historial de búsqueda de este dispositivo<ph name="END_LIST_ITEM" />
-          <ph name="LIST_ITEM" />La información que hayas ingresado en formularios<ph name="END_LIST_ITEM" />
-        <ph name="END_LIST" /></translation>
 <translation id="8332188693563227489">Se denegó el acceso a <ph name="HOST_NAME" /></translation>
 <translation id="833262891116910667">Destacar</translation>
 <translation id="8339163506404995330">No se traducirán las páginas en <ph name="LANGUAGE" /></translation>
diff --git a/components/strings/components_strings_es.xtb b/components/strings/components_strings_es.xtb
index e46cbc8f..9a7ed16 100644
--- a/components/strings/components_strings_es.xtb
+++ b/components/strings/components_strings_es.xtb
@@ -20,7 +20,6 @@
 <translation id="1038842779957582377">nombre desconocido</translation>
 <translation id="1041998700806130099">Mensaje de hoja de tarea</translation>
 <translation id="1048785276086539861">Cuando edites las anotaciones, este documento volverá a la vista de una única página</translation>
-<translation id="1049743911850919806">Incógnito</translation>
 <translation id="1050038467049342496">Cierra otras aplicaciones</translation>
 <translation id="1055184225775184556">&amp;Deshacer acción de añadir</translation>
 <translation id="1056898198331236512">Advertencia</translation>
@@ -736,12 +735,6 @@
 <translation id="3345782426586609320">Ojos</translation>
 <translation id="3355823806454867987">Cambiar la configuración de proxy...</translation>
 <translation id="3360103848165129075">Hoja del controlador de pagos</translation>
-<translation id="3361596688432910856">Chrome <ph name="BEGIN_EMPHASIS" />no guardará<ph name="END_EMPHASIS" /> la siguiente información:
-        <ph name="BEGIN_LIST" />
-          <ph name="LIST_ITEM" />Tu historial de navegación
-          <ph name="LIST_ITEM" />Las cookies y los datos de sitios web
-          <ph name="LIST_ITEM" />La información introducida en formularios
-        <ph name="END_LIST" /></translation>
 <translation id="3362968246557010467">Esta política se ha copiado automáticamente de la política obsoleta <ph name="OLD_POLICY" />. Deberías usar esta política en su lugar.</translation>
 <translation id="3364869320075768271"><ph name="URL" /> quiere usar tu dispositivo y tus datos de realidad virtual</translation>
 <translation id="3366477098757335611">Ver tarjetas</translation>
@@ -1222,12 +1215,7 @@
 <translation id="4819347708020428563">¿Editar anotaciones en la vista predeterminada?</translation>
 <translation id="4825496307559726072"><ph name="CREATE_GOOGLE_SHEET_FOCUSED_FRIENDLY_MATCH_TEXT" />, pulsa Tabulador y luego Intro para crear una nueva Hoja de cálculo de Google rápidamente</translation>
 <translation id="4825507807291741242">Potente</translation>
-<translation id="4827402517081186284">El modo de incógnito no te hace invisible online:
-        <ph name="BEGIN_LIST" />
-          <ph name="LIST_ITEM" />Los sitios saben que los visitas<ph name="END_LIST_ITEM" />
-          <ph name="LIST_ITEM" />Las empresas o los centros educativos pueden monitorizar la actividad de navegación<ph name="END_LIST_ITEM" />
-          <ph name="LIST_ITEM" />Los proveedores de Internet pueden monitorizar el tráfico web<ph name="END_LIST_ITEM" />
-        <ph name="END_LIST" /></translation>
+<translation id="4829962028570902310">Se ignora porque la política solo se puede establecer desde la política de usuarios basada en la nube.</translation>
 <translation id="483241715238664915">Activar advertencias</translation>
 <translation id="4838327282952368871">De ensueño</translation>
 <translation id="4840250757394056958">Ver tu historial de Chrome</translation>
@@ -1796,7 +1784,6 @@
 <translation id="6757797048963528358">El dispositivo se ha suspendido.</translation>
 <translation id="6767985426384634228">¿Actualizar dirección?</translation>
 <translation id="6768213884286397650">Hagaki (Postcard)</translation>
-<translation id="6774185088257932239"><ph name="BEGIN_LINK" />Más información<ph name="END_LINK" /> sobre el modo de incógnito</translation>
 <translation id="6775759552199460396">JIS B2</translation>
 <translation id="67862343314499040">Violeta</translation>
 <translation id="6786747875388722282">Extensiones</translation>
@@ -2276,12 +2263,6 @@
 <translation id="8317207217658302555">¿Actualizar ARCore?</translation>
 <translation id="831997045666694187">Tarde</translation>
 <translation id="8321476692217554900">notificaciones</translation>
-<translation id="8328484624016508118">Al cerrar todas las pestañas de incógnito, Chrome borra lo siguiente:
-        <ph name="BEGIN_LIST" />
-          <ph name="LIST_ITEM" />Tu actividad de navegación en este dispositivo<ph name="END_LIST_ITEM" />
-          <ph name="LIST_ITEM" />Tu historial de búsqueda en este dispositivo<ph name="END_LIST_ITEM" />
-          <ph name="LIST_ITEM" />La información que hayas introducido en formularios<ph name="END_LIST_ITEM" />
-        <ph name="END_LIST" /></translation>
 <translation id="8332188693563227489">Se ha denegado el acceso a <ph name="HOST_NAME" /></translation>
 <translation id="833262891116910667">Resaltar</translation>
 <translation id="8339163506404995330">No se traducirán las páginas en <ph name="LANGUAGE" /></translation>
diff --git a/components/strings/components_strings_et.xtb b/components/strings/components_strings_et.xtb
index 73f8fa0..73dee787 100644
--- a/components/strings/components_strings_et.xtb
+++ b/components/strings/components_strings_et.xtb
@@ -20,7 +20,6 @@
 <translation id="1038842779957582377">tundmatu nimi</translation>
 <translation id="1041998700806130099">Töölehe sõnum</translation>
 <translation id="1048785276086539861">Märkuste muutmisel naaseb see dokument ühe lehe vaatele</translation>
-<translation id="1049743911850919806">Inkognito</translation>
 <translation id="1050038467049342496">Sulgege muud rakendused</translation>
 <translation id="1055184225775184556">&amp;Võta lisamine tagasi</translation>
 <translation id="1056898198331236512">Hoiatus</translation>
@@ -735,12 +734,6 @@
 <translation id="3345782426586609320">Silmad</translation>
 <translation id="3355823806454867987">Muuda puhverserveri seadeid ...</translation>
 <translation id="3360103848165129075">Maksetöötleja leht</translation>
-<translation id="3361596688432910856">Chrome <ph name="BEGIN_EMPHASIS" />ei salvesta<ph name="END_EMPHASIS" /> järgmist teavet:
-        <ph name="BEGIN_LIST" />
-          <ph name="LIST_ITEM" />teie sirvimisajalugu;
-          <ph name="LIST_ITEM" />küpsisefailid ja saidi andmed;
-          <ph name="LIST_ITEM" />vormidesse sisestatud teave.
-        <ph name="END_LIST" /></translation>
 <translation id="3362968246557010467">See reegel kopeeriti automaatselt katkestatud toega reeglist <ph name="OLD_POLICY" />. Peaksite selle asemel kasutama seda reeglit.</translation>
 <translation id="3364869320075768271"><ph name="URL" /> soovib kasutada teie virtuaalreaalsuse seadet ja andmeid</translation>
 <translation id="3366477098757335611">Kuva kaardid</translation>
@@ -1221,12 +1214,7 @@
 <translation id="4819347708020428563">Kas muuta märkusi vaikekuval?</translation>
 <translation id="4825496307559726072"><ph name="CREATE_GOOGLE_SHEET_FOCUSED_FRIENDLY_MATCH_TEXT" />, kiirelt uue Google'i arvutustabeli loomiseks vajutage tabulaatorit ja seejärel sisestusklahvi</translation>
 <translation id="4825507807291741242">Võimas</translation>
-<translation id="4827402517081186284">Inkognito režiim ei muuda teid veebis nähtamatuks.
-        <ph name="BEGIN_LIST" />
-          <ph name="LIST_ITEM" />Saidid teavad, kui neid külastate.<ph name="END_LIST_ITEM" />
-          <ph name="LIST_ITEM" />Tööandjad või koolid saavad teie sirvimistegevust jälgida.<ph name="END_LIST_ITEM" />
-          <ph name="LIST_ITEM" />Interneti teenusepakkujad võivad veebiliiklust jälgida.<ph name="END_LIST_ITEM" />
-        <ph name="END_LIST" /></translation>
+<translation id="4829962028570902310">Eiratakse, kuna reegli saab seadistada ainult pilves olev kasutaja.</translation>
 <translation id="483241715238664915">Lülita hoiatused sisse</translation>
 <translation id="4838327282952368871">Unistav</translation>
 <translation id="4840250757394056958">Chrome’i ajaloo vaatamine</translation>
@@ -1795,7 +1783,6 @@
 <translation id="6757797048963528358">Teie seade lülitus unerežiimile.</translation>
 <translation id="6767985426384634228">Kas värskendada aadressi?</translation>
 <translation id="6768213884286397650">Hagaki (postkaart)</translation>
-<translation id="6774185088257932239"><ph name="BEGIN_LINK" />Lisateave<ph name="END_LINK" /> inkognito režiimi kohta</translation>
 <translation id="6775759552199460396">JIS B2</translation>
 <translation id="67862343314499040">Violetne</translation>
 <translation id="6786747875388722282">Laiendused</translation>
@@ -2275,12 +2262,6 @@
 <translation id="8317207217658302555">Kas värskendada ARCore'i?</translation>
 <translation id="831997045666694187">Õhtu</translation>
 <translation id="8321476692217554900">märguanded</translation>
-<translation id="8328484624016508118">Pärast kõigi inkognito vahelehtede sulgemist kustutab Chrome järgmised andmed.
-        <ph name="BEGIN_LIST" />
-          <ph name="LIST_ITEM" />Teie sirvimistegevus selles seadmes.<ph name="END_LIST_ITEM" />
-          <ph name="LIST_ITEM" />Teie otsinguajalugu selles seadmes.<ph name="END_LIST_ITEM" />
-          <ph name="LIST_ITEM" />Vormidesse sisestatud teave.<ph name="END_LIST_ITEM" />
-        <ph name="END_LIST" /></translation>
 <translation id="8332188693563227489">Juurdepääs hostile <ph name="HOST_NAME" /> blokeeriti</translation>
 <translation id="833262891116910667">Tõsta esile</translation>
 <translation id="8339163506404995330"><ph name="LANGUAGE" /> keeles olevaid lehti ei tõlgita</translation>
diff --git a/components/strings/components_strings_eu.xtb b/components/strings/components_strings_eu.xtb
index a47d09c..2fb4a25 100644
--- a/components/strings/components_strings_eu.xtb
+++ b/components/strings/components_strings_eu.xtb
@@ -20,7 +20,6 @@
 <translation id="1038842779957582377">izen ezezaguna</translation>
 <translation id="1041998700806130099">Lan-orriko mezua</translation>
 <translation id="1048785276086539861">Oharpenak editatzen dituzunean, orri bakarreko ikuspegira itzuliko da dokumentua</translation>
-<translation id="1049743911850919806">Ezkutuko modua</translation>
 <translation id="1050038467049342496">Itxi beste aplikazio batzuk</translation>
 <translation id="1055184225775184556">&amp;Desegin gehitzea</translation>
 <translation id="1056898198331236512">Abisua</translation>
@@ -729,12 +728,6 @@
 <translation id="3345782426586609320">Begiak</translation>
 <translation id="3355823806454867987">Aldatu proxy-ezarpenak…</translation>
 <translation id="3360103848165129075">Ordainketa kudeatzeko orria</translation>
-<translation id="3361596688432910856">Chrome-k <ph name="BEGIN_EMPHASIS" />ez du gordeko<ph name="END_EMPHASIS" /> informazio hau:
-        <ph name="BEGIN_LIST" />
-          <ph name="LIST_ITEM" />arakatze-historia,
-          <ph name="LIST_ITEM" />cookieak eta webguneetako datuak,
-          <ph name="LIST_ITEM" />inprimakietan idatzitako datuak.
-        <ph name="END_LIST" /></translation>
 <translation id="3362968246557010467"><ph name="OLD_POLICY" /> gidalerro zaharkituaren kopia automatikoa da gidalerro hau. Horren ordez gidalerro hau erabili beharko zenuke.</translation>
 <translation id="3364869320075768271"><ph name="URL" /> webguneak errealitate birtualeko gailua eta datuak erabili nahi ditu</translation>
 <translation id="3366477098757335611">Ikusi txartelak</translation>
@@ -1209,12 +1202,6 @@
 <translation id="4819347708020428563">Ikuspegi lehenetsian editatu nahi dituzu oharpenak?</translation>
 <translation id="4825496307559726072"><ph name="CREATE_GOOGLE_SHEET_FOCUSED_FRIENDLY_MATCH_TEXT" />: sakatu tabuladorea eta, ondoren, "Sartu" Google-ko kalkulu-orri bat bizkor sortzeko</translation>
 <translation id="4825507807291741242">Indartsua</translation>
-<translation id="4827402517081186284">Ezkutuko modua erabili arren, ez zara ikusezina izango sarean:
-        <ph name="BEGIN_LIST" />
-          <ph name="LIST_ITEM" />Webguneek noiz bisitatzen dituzun dakite.<ph name="END_LIST_ITEM" />
-          <ph name="LIST_ITEM" />Enpresek edo ikastetxeek arakatze-jardueren jarraipena egin dezakete.<ph name="END_LIST_ITEM" />
-          <ph name="LIST_ITEM" />Baliteke Interneteko zerbitzu-hornitzaileek sareko trafikoa gainbegiratzea.<ph name="END_LIST_ITEM" />
-        <ph name="END_LIST" /></translation>
 <translation id="4829962028570902310">Ez ikusi egin zaio hodeiko erabiltzaile-gidalerro batek soilik ezar dezakeelako gidalerroa.</translation>
 <translation id="483241715238664915">Aktibatu abisuak</translation>
 <translation id="4838327282952368871">Ametsezkoa</translation>
@@ -1783,7 +1770,6 @@
 <translation id="6757797048963528358">Inaktibo geratu da gailua.</translation>
 <translation id="6767985426384634228">Helbidea eguneratu nahi duzu?</translation>
 <translation id="6768213884286397650">Hagaki (postala)</translation>
-<translation id="6774185088257932239"><ph name="BEGIN_LINK" />Lortu informazio gehiago<ph name="END_LINK" /> ezkutuko moduari buruz</translation>
 <translation id="6775759552199460396">JIS B2</translation>
 <translation id="67862343314499040">Bioleta</translation>
 <translation id="6786747875388722282">Luzapenak</translation>
@@ -2263,12 +2249,6 @@
 <translation id="8317207217658302555">ARCore eguneratu nahi duzu?</translation>
 <translation id="831997045666694187">Arratsaldea</translation>
 <translation id="8321476692217554900">jakinarazpenak</translation>
-<translation id="8328484624016508118">Ezkutuko moduko fitxa guztiak itxi ondoren, Chrome-k hauek garbitzen ditu:
-        <ph name="BEGIN_LIST" />
-          <ph name="LIST_ITEM" />gailu honetako arakatze-jarduerak<ph name="END_LIST_ITEM" />
-          <ph name="LIST_ITEM" />gailu honetako bilaketa-historia<ph name="END_LIST_ITEM" />
-          <ph name="LIST_ITEM" />inprimakietan idatzitako informazioa<ph name="END_LIST_ITEM" />
-        <ph name="END_LIST" /></translation>
 <translation id="8332188693563227489">Ukatu egin da <ph name="HOST_NAME" /> webgunerako sarbidea</translation>
 <translation id="833262891116910667">Nabarmenduta</translation>
 <translation id="8339163506404995330">Ez dira itzuliko <ph name="LANGUAGE" /> darabilten orriak</translation>
diff --git a/components/strings/components_strings_fa.xtb b/components/strings/components_strings_fa.xtb
index 31ff033..ef56edb7 100644
--- a/components/strings/components_strings_fa.xtb
+++ b/components/strings/components_strings_fa.xtb
@@ -20,7 +20,6 @@
 <translation id="1038842779957582377">نام ناشناس</translation>
 <translation id="1041998700806130099">پیام برگ کار</translation>
 <translation id="1048785276086539861">وقتی یادداشت‌ها را ویرایش می‌کنید، این سند به نمای تک‌صفحه‌ای برمی‌گردد</translation>
-<translation id="1049743911850919806">ناشناس</translation>
 <translation id="1050038467049342496">برنامه‌های دیگر را ببندید</translation>
 <translation id="1055184225775184556">&amp;واگرد افزودن</translation>
 <translation id="1056898198331236512">اخطار</translation>
@@ -736,12 +735,6 @@
 <translation id="3345782426586609320">چشم‌ها</translation>
 <translation id="3355823806454867987">تغییر تنظیمات پروکسی...</translation>
 <translation id="3360103848165129075">برگ کنترل‌کننده پرداخت</translation>
-<translation id="3361596688432910856">‏Chrome اطلاعات زیر را <ph name="BEGIN_EMPHASIS" />ذخیره نخواهد کرد<ph name="END_EMPHASIS" />:
-        <ph name="BEGIN_LIST" />
-          <ph name="LIST_ITEM" />سابقه مرور
-          <ph name="LIST_ITEM" />کوکی‌ها و داده‌های سایت
-          <ph name="LIST_ITEM" />اطلاعات واردشده در فرم‌ها
-        <ph name="END_LIST" /></translation>
 <translation id="3362968246557010467">این خط‌مشی به‌طور خودکار از خط‌مشی منسوخ‌شده <ph name="OLD_POLICY" /> کپی شد. درعوض، باید از این خط‌مشی استفاده کنید.</translation>
 <translation id="3364869320075768271"><ph name="URL" /> می‌خواهد از دستگاه و داده‌های واقعیت مجازی استفاده کند</translation>
 <translation id="3366477098757335611">مشاهده کارت‌ها</translation>
@@ -1222,12 +1215,6 @@
 <translation id="4819347708020428563">یادداشت‌ها در نمای پیش‌فرض ویرایش شوند؟</translation>
 <translation id="4825496307559726072">‏<ph name="CREATE_GOOGLE_SHEET_FOCUSED_FRIENDLY_MATCH_TEXT" />؛ برای ایجاد سریع «کاربرگ‌نگار Google» جدید، کلید «جهش» و سپس «ورود» را فشار دهید</translation>
 <translation id="4825507807291741242">نیرومند</translation>
-<translation id="4827402517081186284">«حالت ناشناس» شما را در دنیای آنلاین نامرئی نمی‌کند:
-        <ph name="BEGIN_LIST" />
-          <ph name="LIST_ITEM" />وب‌سایت‌ها داده‌های بازدید شما را می‌بینند<ph name="END_LIST_ITEM" />
-          <ph name="LIST_ITEM" />کارفرما یا کارکنان مدرسه می‌توانند فعالیت مرور را ردیابی کنند<ph name="END_LIST_ITEM" />
-          <ph name="LIST_ITEM" />«رسانندگان خدمات اینترنتی» می‌توانند ترافیک وب را پایش کنند<ph name="END_LIST_ITEM" />
-        <ph name="END_LIST" /></translation>
 <translation id="4829962028570902310">نادیده گرفته شد چون این خط‌مشی را فقط خط‌مشی کاربر ابری می‌تواند تنظیم کند.</translation>
 <translation id="483241715238664915">روشن کردن هشدارها</translation>
 <translation id="4838327282952368871">رؤیایی</translation>
@@ -1797,7 +1784,6 @@
 <translation id="6757797048963528358">دستگاهتان به خواب رفته است.</translation>
 <translation id="6767985426384634228">نشانی به‌روزرسانی شود؟</translation>
 <translation id="6768213884286397650">Hagaki (Postcard)</translation>
-<translation id="6774185088257932239">درباره «حالت ناشناس» <ph name="BEGIN_LINK" />بیشتر بدانید<ph name="END_LINK" /></translation>
 <translation id="6775759552199460396">JIS B2</translation>
 <translation id="67862343314499040">بنفش</translation>
 <translation id="6786747875388722282">افزونه‌ها</translation>
@@ -2277,12 +2263,6 @@
 <translation id="8317207217658302555">‏ARCore به‌روزرسانی شود؟</translation>
 <translation id="831997045666694187">شب</translation>
 <translation id="8321476692217554900">اعلان‌ها</translation>
-<translation id="8328484624016508118">‏بعداز بستن برگه‌های «ناشناس»، Chrome این‌ها را پاک می‌کند:
-        <ph name="BEGIN_LIST" />
-          <ph name="LIST_ITEM" />فعالیت مرورتان را از این دستگاه<ph name="END_LIST_ITEM" />
-          <ph name="LIST_ITEM" />سابقه جستجویتان را از این دستگاه<ph name="END_LIST_ITEM" />
-          <ph name="LIST_ITEM" />اطلاعات واردشده در فرم‌ها<ph name="END_LIST_ITEM" />
-        <ph name="END_LIST" /></translation>
 <translation id="8332188693563227489">دسترسی به <ph name="HOST_NAME" /> رد شد</translation>
 <translation id="833262891116910667">برجسته‌سازی</translation>
 <translation id="8339163506404995330">صفحه‌های <ph name="LANGUAGE" /> ترجمه نخواند شد</translation>
diff --git a/components/strings/components_strings_fi.xtb b/components/strings/components_strings_fi.xtb
index b118842..d4f8738b 100644
--- a/components/strings/components_strings_fi.xtb
+++ b/components/strings/components_strings_fi.xtb
@@ -20,7 +20,6 @@
 <translation id="1038842779957582377">tuntematon nimi</translation>
 <translation id="1041998700806130099">Työpaikkasivun viesti</translation>
 <translation id="1048785276086539861">Kun muokkaat merkintöjä, tämä dokumentti palaa yhden sivun näkymään</translation>
-<translation id="1049743911850919806">Incognito</translation>
 <translation id="1050038467049342496">Sulje muita sovelluksia.</translation>
 <translation id="1055184225775184556">K&amp;umoa lisäys</translation>
 <translation id="1056898198331236512">Varoitus</translation>
@@ -737,12 +736,6 @@
 <translation id="3345782426586609320">Silmät</translation>
 <translation id="3355823806454867987">Muuta välityspalvelimen asetuksia...</translation>
 <translation id="3360103848165129075">Maksujenkäsittelytaulukko</translation>
-<translation id="3361596688432910856">Chrome <ph name="BEGIN_EMPHASIS" />ei tallenna<ph name="END_EMPHASIS" />
-        <ph name="BEGIN_LIST" />
-          <ph name="LIST_ITEM" />selaushistoriaasi
-          <ph name="LIST_ITEM" />evästeitä ja sivuston tietoja
-          <ph name="LIST_ITEM" />lomakkeisiin syötettyjä tietoja.
-        <ph name="END_LIST" /></translation>
 <translation id="3362968246557010467">Tämä käytäntö kopioitiin automaattisesti vanhentuneesta <ph name="OLD_POLICY" /> ‑käytännöstä. Käytä tätä käytäntöä sen sijaan.</translation>
 <translation id="3364869320075768271"><ph name="URL" /> haluaa käyttää virtuaalitodellisuuslaitteitasi ja ‑dataasi</translation>
 <translation id="3366477098757335611">Näytä kortit</translation>
@@ -1223,12 +1216,7 @@
 <translation id="4819347708020428563">Muokataanko merkintöjä oletusnäkymässä?</translation>
 <translation id="4825496307559726072"><ph name="CREATE_GOOGLE_SHEET_FOCUSED_FRIENDLY_MATCH_TEXT" />, luo uusi Google-taulukko nopeasti painamalla sarkainta ja sitten Enter</translation>
 <translation id="4825507807291741242">Tehokas</translation>
-<translation id="4827402517081186284">Incognito ei muuta sinua näkymättömäksi verkossa:
-        <ph name="BEGIN_LIST" />
-          <ph name="LIST_ITEM" />Sivustot tietävät, kun käyt niillä<ph name="END_LIST_ITEM" />
-          <ph name="LIST_ITEM" />Työnantajat tai koulut voivat seurata selaustoimintaa<ph name="END_LIST_ITEM" />
-          <ph name="LIST_ITEM" />Internetpalveluntarjoajat voivat valvoa verkkoliikennettä<ph name="END_LIST_ITEM" />
-        <ph name="END_LIST" /></translation>
+<translation id="4829962028570902310">Ohitettu, koska käytäntö voidaan asettaa vain pilvikäyttäjäkäytäntönä.</translation>
 <translation id="483241715238664915">Laita varoitukset päälle</translation>
 <translation id="4838327282952368871">Unenomainen</translation>
 <translation id="4840250757394056958">Tarkista Chrome-historiasi</translation>
@@ -1797,7 +1785,6 @@
 <translation id="6757797048963528358">Laitteesi siirtyi virransäästötilaan.</translation>
 <translation id="6767985426384634228">Päivitetäänkö osoite?</translation>
 <translation id="6768213884286397650">Hagaki (postikortti)</translation>
-<translation id="6774185088257932239"><ph name="BEGIN_LINK" />Lue lisää<ph name="END_LINK" /> incognitosta</translation>
 <translation id="6775759552199460396">JIS B2 (515 mm x 728 mm)</translation>
 <translation id="67862343314499040">Lila</translation>
 <translation id="6786747875388722282">Laajennukset</translation>
@@ -2277,12 +2264,6 @@
 <translation id="8317207217658302555">Päivitetäänkö ARCore?</translation>
 <translation id="831997045666694187">Ilta</translation>
 <translation id="8321476692217554900">ilmoitukset</translation>
-<translation id="8328484624016508118">Suljettuasi kaikki incognito-välilehdet Chrome poistaa:
-        <ph name="BEGIN_LIST" />
-          <ph name="LIST_ITEM" />Selaustoimintasi tältä laitteelta<ph name="END_LIST_ITEM" />
-          <ph name="LIST_ITEM" />Hakuhistoriasi tältä laitteelta<ph name="END_LIST_ITEM" />
-          <ph name="LIST_ITEM" />Lomakkeisiin lisäämäsi tiedot<ph name="END_LIST_ITEM" />
-        <ph name="END_LIST" /></translation>
 <translation id="8332188693563227489">Sivuston <ph name="HOST_NAME" /> käyttöoikeus evättiin</translation>
 <translation id="833262891116910667">Korosta</translation>
 <translation id="8339163506404995330">Kielellä <ph name="LANGUAGE" /> kirjoitettuja sivuja ei käännetä.</translation>
diff --git a/components/strings/components_strings_fil.xtb b/components/strings/components_strings_fil.xtb
index 596e499..4e57ecf 100644
--- a/components/strings/components_strings_fil.xtb
+++ b/components/strings/components_strings_fil.xtb
@@ -20,7 +20,6 @@
 <translation id="1038842779957582377">Hindi kilalang pangalan</translation>
 <translation id="1041998700806130099">Mensahe sa sheet ng trabaho</translation>
 <translation id="1048785276086539861">Kapag nag-edit ka ng mga anotasyon, babalik ang dokumentong ito sa isang page na view</translation>
-<translation id="1049743911850919806">Incognito</translation>
 <translation id="1050038467049342496">Isara ang iba pang app</translation>
 <translation id="1055184225775184556">&amp;I-undo ang Pagdagdag</translation>
 <translation id="1056898198331236512">Babala</translation>
@@ -736,12 +735,6 @@
 <translation id="3345782426586609320">Mga Mata</translation>
 <translation id="3355823806454867987">Baguhin ang mga setting ng proxy...</translation>
 <translation id="3360103848165129075">Sheet ng tagapangasiwa ng pagbabayad</translation>
-<translation id="3361596688432910856"><ph name="BEGIN_EMPHASIS" />Hindi ise-save<ph name="END_EMPHASIS" /> ng Chrome ang sumusunod na impormasyon:
-        <ph name="BEGIN_LIST" />
-          <ph name="LIST_ITEM" />Iyong history ng pag-browse
-          <ph name="LIST_ITEM" />Cookies at data ng site
-          <ph name="LIST_ITEM" />Impormasyong nilagay sa mga form
-        <ph name="END_LIST" /></translation>
 <translation id="3362968246557010467">Awtomatikong kinopya ang patakarang ito mula sa hindi na ginagamit na patakarang <ph name="OLD_POLICY" />. Dapat mong gamitin ang patakarang ito sa halip.</translation>
 <translation id="3364869320075768271">Gustong gamitin ng <ph name="URL" /> ang iyong virtual reality device at data</translation>
 <translation id="3366477098757335611">Tingnan ang mga card</translation>
@@ -1222,12 +1215,6 @@
 <translation id="4819347708020428563">I-edit ang mga anotasyon sa default na view?</translation>
 <translation id="4825496307559726072"><ph name="CREATE_GOOGLE_SHEET_FOCUSED_FRIENDLY_MATCH_TEXT" />, pindutin ang Tab at pagkatapos ay ang Enter para gumawa ng bagong Google Sheet nang mabilis</translation>
 <translation id="4825507807291741242">Mahusay</translation>
-<translation id="4827402517081186284">Hindi ka nagagawang hindi nakikita online ng Incognito:
-        <ph name="BEGIN_LIST" />
-          <ph name="LIST_ITEM" />Alam ng mga site kapag binisita mo ang mga ito<ph name="END_LIST_ITEM" />
-          <ph name="LIST_ITEM" />Puwedeng subaybayan ng mga empleyado o paaralan ang aktibidad sa pag-browse<ph name="END_LIST_ITEM" />
-          <ph name="LIST_ITEM" />Puwedeng i-monitor ng mga internet service provider ang trapiko sa web<ph name="END_LIST_ITEM" />
-        <ph name="END_LIST" /></translation>
 <translation id="4829962028570902310">Binalewala dahil ang patakaran ay puwede lang itakda ng patakaran ng user ng cloud.</translation>
 <translation id="483241715238664915">I-on ang mga babala</translation>
 <translation id="4838327282952368871">Dreamy</translation>
@@ -1797,7 +1784,6 @@
 <translation id="6757797048963528358">Nag-sleep ang iyong device.</translation>
 <translation id="6767985426384634228">I-update ang Address?</translation>
 <translation id="6768213884286397650">Hagaki (Postcard)</translation>
-<translation id="6774185088257932239"><ph name="BEGIN_LINK" />Matuto pa<ph name="END_LINK" /> tungkol sa Incognito</translation>
 <translation id="6775759552199460396">JIS B2</translation>
 <translation id="67862343314499040">Violet</translation>
 <translation id="6786747875388722282">Mga Extension</translation>
@@ -2277,12 +2263,6 @@
 <translation id="8317207217658302555">I-update ang ARCore?</translation>
 <translation id="831997045666694187">Gabi</translation>
 <translation id="8321476692217554900">mga notification</translation>
-<translation id="8328484624016508118">Pagkatapos isara ang lahat ng tab na Incognito, kini-clear ng Chrome ang:
-        <ph name="BEGIN_LIST" />
-          <ph name="LIST_ITEM" />Iyong aktibidad sa pag-browse sa device na ito<ph name="END_LIST_ITEM" />
-          <ph name="LIST_ITEM" />Iyong history ng paghahanap sa device na ito<ph name="END_LIST_ITEM" />
-          <ph name="LIST_ITEM" />Impormasyong inilagay sa mga form<ph name="END_LIST_ITEM" />
-        <ph name="END_LIST" /></translation>
 <translation id="8332188693563227489">Tinanggihan ang access sa <ph name="HOST_NAME" /></translation>
 <translation id="833262891116910667">I-highlight</translation>
 <translation id="8339163506404995330">Hindi isasalin ang mga page na nasa <ph name="LANGUAGE" /></translation>
diff --git a/components/strings/components_strings_fr-CA.xtb b/components/strings/components_strings_fr-CA.xtb
index b3e07cd..6a5e9714 100644
--- a/components/strings/components_strings_fr-CA.xtb
+++ b/components/strings/components_strings_fr-CA.xtb
@@ -20,7 +20,6 @@
 <translation id="1038842779957582377">nom inconnu</translation>
 <translation id="1041998700806130099">Message de la feuille de travail</translation>
 <translation id="1048785276086539861">Lorsque vous modifiez des annotations, ce document s'affiche au format de vue par page</translation>
-<translation id="1049743911850919806">Navigation privée</translation>
 <translation id="1050038467049342496">Fermer les autres applications</translation>
 <translation id="1055184225775184556">&amp;Annuler l'ajout</translation>
 <translation id="1056898198331236512">Avertissement</translation>
@@ -732,12 +731,6 @@
 <translation id="3345782426586609320">Yeux</translation>
 <translation id="3355823806454867987">Modifier les paramètres du mandataire...</translation>
 <translation id="3360103848165129075">Feuille du module de traitement du paiement</translation>
-<translation id="3361596688432910856">Chrome <ph name="BEGIN_EMPHASIS" />n'enregistrera pas<ph name="END_EMPHASIS" /> les données suivantes :
-        <ph name="BEGIN_LIST" />
-          <ph name="LIST_ITEM" />votre historique de navigation;
-          <ph name="LIST_ITEM" />les témoins et les données de sites;
-          <ph name="LIST_ITEM" />les renseignements fournis dans les formulaires.
-        <ph name="END_LIST" /></translation>
 <translation id="3362968246557010467">Cette politique a été automatiquement copiée à partir de la politique obsolète <ph name="OLD_POLICY" />. Vous devriez utiliser cette politique à la place.</translation>
 <translation id="3364869320075768271"><ph name="URL" /> souhaite utiliser vos appareils et vos données de réalité virtuelle</translation>
 <translation id="3366477098757335611">Afficher les cartes</translation>
@@ -1213,12 +1206,6 @@
 <translation id="4819347708020428563">Modifier les annotations dans la vue par défaut?</translation>
 <translation id="4825496307559726072"><ph name="CREATE_GOOGLE_SHEET_FOCUSED_FRIENDLY_MATCH_TEXT" />, appuyez sur Tabulation, puis sur Entrée pour rapidement créer une feuille Google</translation>
 <translation id="4825507807291741242">Puissant</translation>
-<translation id="4827402517081186284">La navigation privée ne vous rend pas invisible en ligne :
-        <ph name="BEGIN_LIST" />
-          <ph name="LIST_ITEM" />Les sites savent que vous les consultez.<ph name="END_LIST_ITEM" />
-          <ph name="LIST_ITEM" />Votre employeur ou votre établissement scolaire peuvent suivre votre activité de navigation.<ph name="END_LIST_ITEM" />
-          <ph name="LIST_ITEM" />Les fournisseurs d'accès Internet peuvent surveiller le trafic Web.<ph name="END_LIST_ITEM" />
-        <ph name="END_LIST" /></translation>
 <translation id="483241715238664915">Activer les avertissements</translation>
 <translation id="4838327282952368871">Rêveur</translation>
 <translation id="4840250757394056958">Afficher votre historique de Chrome</translation>
@@ -1787,7 +1774,6 @@
 <translation id="6757797048963528358">Votre appareil s'est mis en veille.</translation>
 <translation id="6767985426384634228">Mettre à jour l'adresse?</translation>
 <translation id="6768213884286397650">Carte postale hagaki</translation>
-<translation id="6774185088257932239"><ph name="BEGIN_LINK" />En savoir plus<ph name="END_LINK" /> à propos de la navigation privée</translation>
 <translation id="6775759552199460396">JIS B2</translation>
 <translation id="67862343314499040">Violet</translation>
 <translation id="6786747875388722282">Extensions</translation>
@@ -2267,12 +2253,6 @@
 <translation id="8317207217658302555">Mettre à jour ARCore?</translation>
 <translation id="831997045666694187">Soirée</translation>
 <translation id="8321476692217554900">Notifications</translation>
-<translation id="8328484624016508118">Lorsque vous fermez tous les onglets de navigation privée, Chrome efface :
-        <ph name="BEGIN_LIST" />
-          <ph name="LIST_ITEM" />votre activité de navigation sur cet appareil;<ph name="END_LIST_ITEM" />
-          <ph name="LIST_ITEM" />l'historique de vos recherches sur cet appareil;<ph name="END_LIST_ITEM" />
-          <ph name="LIST_ITEM" />les renseignements entrés dans des formulaires.<ph name="END_LIST_ITEM" />
-        <ph name="END_LIST" /></translation>
 <translation id="8332188693563227489">Accès à l'adresse <ph name="HOST_NAME" /> refusé</translation>
 <translation id="833262891116910667">Surligner</translation>
 <translation id="8339163506404995330">Les pages en <ph name="LANGUAGE" /> ne seront pas traduites</translation>
diff --git a/components/strings/components_strings_fr.xtb b/components/strings/components_strings_fr.xtb
index ea61bbc..aba59ee 100644
--- a/components/strings/components_strings_fr.xtb
+++ b/components/strings/components_strings_fr.xtb
@@ -20,7 +20,6 @@
 <translation id="1038842779957582377">Nom inconnu</translation>
 <translation id="1041998700806130099">Message de la feuille de travail</translation>
 <translation id="1048785276086539861">Si vous modifiez des annotations, ce document s'affichera en mode "Vue par page"</translation>
-<translation id="1049743911850919806">Navigation privée</translation>
 <translation id="1050038467049342496">Fermez les autres applications</translation>
 <translation id="1055184225775184556">&amp;Annuler l'ajout</translation>
 <translation id="1056898198331236512">Avertissement</translation>
@@ -736,12 +735,6 @@
 <translation id="3345782426586609320">Yeux</translation>
 <translation id="3355823806454867987">Modifier les paramètres du proxy...</translation>
 <translation id="3360103848165129075">Feuille du gestionnaire de paiement</translation>
-<translation id="3361596688432910856">Les informations suivantes <ph name="BEGIN_EMPHASIS" />ne seront pas enregistrées<ph name="END_EMPHASIS" /> dans Chrome :
-        <ph name="BEGIN_LIST" />
-          <ph name="LIST_ITEM" />Votre historique de navigation
-          <ph name="LIST_ITEM" />Les cookies et les données des sites
-          <ph name="LIST_ITEM" />Les informations saisies dans les formulaires
-        <ph name="END_LIST" /></translation>
 <translation id="3362968246557010467">Cette règle a été copiée automatiquement depuis la règle obsolète "<ph name="OLD_POLICY" />". Vous devez utiliser cette nouvelle règle à la place.</translation>
 <translation id="3364869320075768271">Le site <ph name="URL" /> souhaite utiliser vos données et votre appareil de réalité virtuelle</translation>
 <translation id="3366477098757335611">Afficher les cartes</translation>
@@ -1222,12 +1215,7 @@
 <translation id="4819347708020428563">Modifier les annotations dans la vue par défaut ?</translation>
 <translation id="4825496307559726072"><ph name="CREATE_GOOGLE_SHEET_FOCUSED_FRIENDLY_MATCH_TEXT" />, appuyez sur Tabulation, puis sur Entrée pour créer rapidement une feuille de calcul Google Sheets</translation>
 <translation id="4825507807291741242">Puissant</translation>
-<translation id="4827402517081186284">La navigation privée ne vous rend pas invisible sur Internet :
-        <ph name="BEGIN_LIST" />
-          <ph name="LIST_ITEM" />Les sites savent que vous les consultez.<ph name="END_LIST_ITEM" />
-          <ph name="LIST_ITEM" />Votre employeur ou votre établissement scolaire peuvent connaître votre activité de navigation.<ph name="END_LIST_ITEM" />
-          <ph name="LIST_ITEM" />Les fournisseurs d'accès à Internet peuvent surveiller le trafic Web.<ph name="END_LIST_ITEM" />
-        <ph name="END_LIST" /></translation>
+<translation id="4829962028570902310">Règle ignorée, car elle ne peut être définie que par la règle relative aux utilisateurs du cloud.</translation>
 <translation id="483241715238664915">Activer les avertissements</translation>
 <translation id="4838327282952368871">Rêveur</translation>
 <translation id="4840250757394056958">Afficher votre historique Chrome</translation>
@@ -1796,7 +1784,6 @@
 <translation id="6757797048963528358">Votre appareil s'est mis en veille.</translation>
 <translation id="6767985426384634228">Modifier l'adresse ?</translation>
 <translation id="6768213884286397650">Hagaki (carte postale)</translation>
-<translation id="6774185088257932239"><ph name="BEGIN_LINK" />En savoir plus<ph name="END_LINK" /> sur la navigation privée</translation>
 <translation id="6775759552199460396">JIS B2</translation>
 <translation id="67862343314499040">Mauve</translation>
 <translation id="6786747875388722282">Extensions</translation>
@@ -2277,12 +2264,6 @@
 <translation id="8317207217658302555">Mettre à jour ARCore ?</translation>
 <translation id="831997045666694187">Soirée</translation>
 <translation id="8321476692217554900">notifications</translation>
-<translation id="8328484624016508118">Lorsque vous fermez tous les onglets de navigation privée, Chrome efface :
-        <ph name="BEGIN_LIST" />
-          <ph name="LIST_ITEM" />votre activité de navigation sur cet appareil ;<ph name="END_LIST_ITEM" />
-          <ph name="LIST_ITEM" />l'historique de vos recherches sur cet appareil ;<ph name="END_LIST_ITEM" />
-          <ph name="LIST_ITEM" />les informations saisies dans des formulaires.<ph name="END_LIST_ITEM" />
-        <ph name="END_LIST" /></translation>
 <translation id="8332188693563227489">L'accès à <ph name="HOST_NAME" /> a été refusé</translation>
 <translation id="833262891116910667">Mettre en surbrillance</translation>
 <translation id="8339163506404995330">Les pages en <ph name="LANGUAGE" /> ne seront pas traduites</translation>
diff --git a/components/strings/components_strings_gl.xtb b/components/strings/components_strings_gl.xtb
index aec95aeb..85ef06b 100644
--- a/components/strings/components_strings_gl.xtb
+++ b/components/strings/components_strings_gl.xtb
@@ -20,7 +20,6 @@
 <translation id="1038842779957582377">nome descoñecido</translation>
 <translation id="1041998700806130099">Mensaxe da folla do traballo</translation>
 <translation id="1048785276086539861">Ao editar as anotacións, este documento volverá á vista dunha soa páxina</translation>
-<translation id="1049743911850919806">Modo de incógnito</translation>
 <translation id="1050038467049342496">Pecha outras aplicacións</translation>
 <translation id="1055184225775184556">&amp;Desfacer adición</translation>
 <translation id="1056898198331236512">Advertencia</translation>
@@ -735,12 +734,6 @@
 <translation id="3345782426586609320">Ollos</translation>
 <translation id="3355823806454867987">Cambiar configuración do proxy...</translation>
 <translation id="3360103848165129075">Folla do controlador de pagos</translation>
-<translation id="3361596688432910856">Chrome <ph name="BEGIN_EMPHASIS" />non gardará<ph name="END_EMPHASIS" /> a seguinte información:
-        <ph name="BEGIN_LIST" />
-          <ph name="LIST_ITEM" />O teu historial de navegación
-          <ph name="LIST_ITEM" />As cookies e os datos de sitios
-          <ph name="LIST_ITEM" />A información introducida en formularios
-        <ph name="END_LIST" /></translation>
 <translation id="3362968246557010467">Esta política copiouse automaticamente desde unha política <ph name="OLD_POLICY" /> obsoleta. Debes utilizar esta política e non a antiga.</translation>
 <translation id="3364869320075768271"><ph name="URL" /> quere utilizar os teus datos e o teu dispositivo de realidade virtual</translation>
 <translation id="3366477098757335611">Ver tarxetas</translation>
@@ -1221,12 +1214,6 @@
 <translation id="4819347708020428563">Queres editar as anotacións na vista predeterminada?</translation>
 <translation id="4825496307559726072"><ph name="CREATE_GOOGLE_SHEET_FOCUSED_FRIENDLY_MATCH_TEXT" />. Preme Tabulador e, a continuación, Introducir para crear rapidamente unha nova folla de cálculo de Google</translation>
 <translation id="4825507807291741242">Potente</translation>
-<translation id="4827402517081186284">O modo de incógnito non te converte en invisible en Internet:
-<ph name="BEGIN_LIST" />
-<ph name="LIST_ITEM" />Os sitios saben cando os visitas.<ph name="END_LIST_ITEM" />
-<ph name="LIST_ITEM" />A túa empresa ou centro educativo pode facer un seguimento da actividade de navegación.<ph name="END_LIST_ITEM" />
-<ph name="LIST_ITEM" />Os fornecedores de servizos de Internet poden supervisar o tráfico web.<ph name="END_LIST_ITEM" />
-<ph name="END_LIST" /></translation>
 <translation id="4829962028570902310">Ignorada porque a política só pode ser configurada por unha política de usuario da nube.</translation>
 <translation id="483241715238664915">Activar advertencias</translation>
 <translation id="4838327282952368871">Onírico</translation>
@@ -1796,7 +1783,6 @@
 <translation id="6757797048963528358">O teu dispositivo entrou no modo de suspensión.</translation>
 <translation id="6767985426384634228">Queres actualizar este enderezo?</translation>
 <translation id="6768213884286397650">Hagaki (postal)</translation>
-<translation id="6774185088257932239"><ph name="BEGIN_LINK" />Máis información<ph name="END_LINK" /> sobre o modo de incógnito</translation>
 <translation id="6775759552199460396">JIS B2</translation>
 <translation id="67862343314499040">Violeta</translation>
 <translation id="6786747875388722282">Extensións</translation>
@@ -2276,12 +2262,6 @@
 <translation id="8317207217658302555">Queres actualizar ARCore?</translation>
 <translation id="831997045666694187">Serán</translation>
 <translation id="8321476692217554900">notificacións</translation>
-<translation id="8328484624016508118">Despois de pechar todas as pestanas do modo de incógnito, Chrome borra:
-<ph name="BEGIN_LIST" />
-<ph name="LIST_ITEM" />A túa actividade de navegación deste dispositivo.<ph name="END_LIST_ITEM" />
-<ph name="LIST_ITEM" />O teu historial de busca deste dispositivo.<ph name="END_LIST_ITEM" />
-<ph name="LIST_ITEM" />Os datos que escribises en formularios.<ph name="END_LIST_ITEM" />
-<ph name="END_LIST" /></translation>
 <translation id="8332188693563227489">Denegouse o acceso a <ph name="HOST_NAME" /></translation>
 <translation id="833262891116910667">Destacar</translation>
 <translation id="8339163506404995330">Non se traducirán as páxinas en <ph name="LANGUAGE" /></translation>
diff --git a/components/strings/components_strings_gu.xtb b/components/strings/components_strings_gu.xtb
index 692b390..2b37afde5 100644
--- a/components/strings/components_strings_gu.xtb
+++ b/components/strings/components_strings_gu.xtb
@@ -20,7 +20,6 @@
 <translation id="1038842779957582377">અજ્ઞાત નામ</translation>
 <translation id="1041998700806130099">જોબ શીટ સંદેશ</translation>
 <translation id="1048785276086539861">જ્યારે તમે ટીકાટિપ્પણીમાં ફેરફાર કરશો, ત્યારે આ દસ્તાવેજ 'એક પેજના વ્યૂ' પર પાછો ફરશે</translation>
-<translation id="1049743911850919806">છૂપી</translation>
 <translation id="1050038467049342496">અન્ય ઍપ્લિકેશનો બંધ કરો</translation>
 <translation id="1055184225775184556">&amp;ઉમેરવું પૂર્વવત્ કરો</translation>
 <translation id="1056898198331236512">ચેતવણી</translation>
@@ -736,11 +735,6 @@
 <translation id="3345782426586609320">આંખો</translation>
 <translation id="3355823806454867987">પ્રૉક્સી સેટિંગ બદલો...</translation>
 <translation id="3360103848165129075">ચુકવણી માટેની હૅન્ડલર શીટ</translation>
-<translation id="3361596688432910856">Chrome નિમ્નલિખિત માહિતી <ph name="BEGIN_EMPHASIS" />સાચવશે નહીં<ph name="END_EMPHASIS" />:
-        <ph name="BEGIN_LIST" /> <ph name="LIST_ITEM" />તમારો બ્રાઉઝિંગ ઇતિહાસ
-          <ph name="LIST_ITEM" />કુકી અને સાઇટ ડેટા
-          <ph name="LIST_ITEM" />ફોર્મમાં દાખલ કરેલી માહિતી
-        <ph name="END_LIST" /></translation>
 <translation id="3362968246557010467">આ પૉલિસી, ટાળેલી <ph name="OLD_POLICY" /> પૉલિસીમાંથી ઑટોમૅટિક રીતે કૉપિ કરી હતી. તેના બદલે તમારે આ પૉલિસીનો ઉપયોગ કરવો જોઈએ.</translation>
 <translation id="3364869320075768271"><ph name="URL" /> વર્ચ્યુઅલ રિયાલિટી ડિવાઇસ અને ડેટાનો ઉપયોગ કરવા માગે છે</translation>
 <translation id="3366477098757335611">કાર્ડ જુઓ</translation>
@@ -1221,12 +1215,6 @@
 <translation id="4819347708020428563">ટીકાટિપ્પણીમાં ફેરફાર કરીને ડિફૉલ્ટ વ્યૂ પસંદ કરીએ?</translation>
 <translation id="4825496307559726072"><ph name="CREATE_GOOGLE_SHEET_FOCUSED_FRIENDLY_MATCH_TEXT" />, Google Sheetsમાં ઝડપથી કોઈ નવી શીટ બનાવવા માટે, પહેલાં Tab પછી Enter કી દબાવો</translation>
 <translation id="4825507807291741242">શક્તિશાળી</translation>
-<translation id="4827402517081186284">છૂપા મોડથી તમે ઑનલાઇન અદ્રશ્ય બની જતા નથી:
-        <ph name="BEGIN_LIST" />
-          <ph name="LIST_ITEM" />સાઇટ તમારી મુલાકાત વિશે જાણી શકે છે<ph name="END_LIST_ITEM" />
-          <ph name="LIST_ITEM" />નોકરીદાતા કે સ્કૂલ, બ્રાઉઝિંગ પ્રવૃત્તિ ટ્રૅક કરી શકે છે<ph name="END_LIST_ITEM" />
-          <ph name="LIST_ITEM" />ઇન્ટરનેટ સેવા આપનાર કંપની વેબ ટ્રાફિક મૉનિટર કરી શકે છે<ph name="END_LIST_ITEM" />
-        <ph name="END_LIST" /></translation>
 <translation id="4829962028570902310">અવગણવામાં આવ્યું કારણ કે પૉલિસી ફક્ત ક્લાઉડ વપરાશકર્તા પૉલિસી દ્વારા જ સેટ કરવામાં આવી શકે છે.</translation>
 <translation id="483241715238664915">ચેતવણીઓ ચાલુ કરો</translation>
 <translation id="4838327282952368871">સ્વપ્નશીલ</translation>
@@ -1796,7 +1784,6 @@
 <translation id="6757797048963528358">તમારું ઉપકરણ નિષ્ક્રિય થઈ ગયું હતું.</translation>
 <translation id="6767985426384634228">સરનામું અપડેટ કરીએ?</translation>
 <translation id="6768213884286397650">Hagaki (પોસ્ટકાર્ડ)</translation>
-<translation id="6774185088257932239">છૂપા મોડ વિશે <ph name="BEGIN_LINK" />વધુ જાણો<ph name="END_LINK" /></translation>
 <translation id="6775759552199460396">JIS B2</translation>
 <translation id="67862343314499040">જાંબુડિયો</translation>
 <translation id="6786747875388722282">એક્સ્ટેન્શન</translation>
@@ -2276,12 +2263,6 @@
 <translation id="8317207217658302555">ARCore અપડેટ કરીએ?</translation>
 <translation id="831997045666694187">સાંજ</translation>
 <translation id="8321476692217554900">નોટિફિકેશન</translation>
-<translation id="8328484624016508118">બધી છૂપી ટૅબ બંધ કર્યા પછી, Chrome આ સાફ કરશે:
-        <ph name="BEGIN_LIST" />
-          <ph name="LIST_ITEM" />આ ડિવાઇસમાંની તમારી બ્રાઉઝિંગ પ્રવૃત્તિ<ph name="END_LIST_ITEM" />
-          <ph name="LIST_ITEM" />આ ડિવાઇસમાંનો તમારો શોધ ઇતિહાસ<ph name="END_LIST_ITEM" />
-          <ph name="LIST_ITEM" />ફોર્મમાં દાખલ કરેલી માહિતી<ph name="END_LIST_ITEM" />
-        <ph name="END_LIST" /></translation>
 <translation id="8332188693563227489"><ph name="HOST_NAME" /> ની ઍક્સેસ નકારાઈ હતી</translation>
 <translation id="833262891116910667">હાઇલાઇટ</translation>
 <translation id="8339163506404995330"><ph name="LANGUAGE" />માં છે તે પેજનો અનુવાદ થશે નહીં</translation>
diff --git a/components/strings/components_strings_hi.xtb b/components/strings/components_strings_hi.xtb
index 639799fa..9d1715f 100644
--- a/components/strings/components_strings_hi.xtb
+++ b/components/strings/components_strings_hi.xtb
@@ -20,7 +20,6 @@
 <translation id="1038842779957582377">अज्ञात नाम</translation>
 <translation id="1041998700806130099">जॉब शीट मैसेज</translation>
 <translation id="1048785276086539861">जब आप वीडियो के ऊपर टेक्स्ट, लिंक वगैरह में बदलाव करते हैं, तो दस्तावेज़, सिंगल पेज व्यू पर वापस चला जाएगा</translation>
-<translation id="1049743911850919806">गुप्त</translation>
 <translation id="1050038467049342496">दूूूूसरे ऐप्लिकेशन बंद करें</translation>
 <translation id="1055184225775184556">&amp;जोड़ना वापस लाएं</translation>
 <translation id="1056898198331236512">चेतावनी</translation>
@@ -740,12 +739,6 @@
 <translation id="3345782426586609320">आंखें</translation>
 <translation id="3355823806454867987">प्रॉक्सी सेटिंग बदलें...</translation>
 <translation id="3360103848165129075">पैसे चुकाने की हैंडलर शीट</translation>
-<translation id="3361596688432910856">Chrome नीचे दी गई जानकारी को <ph name="BEGIN_EMPHASIS" />सेव नहीं करेगा<ph name="END_EMPHASIS" />:
-        <ph name="BEGIN_LIST" />
-          <ph name="LIST_ITEM" />आपका ब्राउज़िंग इतिहास
-          <ph name="LIST_ITEM" />कुकी और साइट डेटा
-          <ph name="LIST_ITEM" />फ़ॉर्म में डाली गई जानकारी
-        <ph name="END_LIST" /></translation>
 <translation id="3362968246557010467">इस नीति को हटाई गई <ph name="OLD_POLICY" /> नीति से अपने आप कॉपी किया गया था. आपको इसके बजाय, इस नीति का इस्तेमाल करना चाहिए.</translation>
 <translation id="3364869320075768271"><ph name="URL" /> आपका वर्चुअल रिएलिटी वाला डिवाइस और डेटा इस्तेमाल करना चाहता है</translation>
 <translation id="3366477098757335611">कार्ड देखें</translation>
@@ -1226,12 +1219,6 @@
 <translation id="4819347708020428563">क्या आप डिफ़ॉल्ट व्यू में वीडियो के ऊपर टेक्स्ट, लिंक वगैरह में बदलाव करना चाहते हैं?</translation>
 <translation id="4825496307559726072"><ph name="CREATE_GOOGLE_SHEET_FOCUSED_FRIENDLY_MATCH_TEXT" />, जल्दी से नई Google शीट बनाने के लिए, पहले Tab दबाएं और फिर Enter दबाएं</translation>
 <translation id="4825507807291741242">दमदार</translation>
-<translation id="4827402517081186284">गुप्त मोड में आप ऑनलाइन दिखते हैं:
-        <ph name="BEGIN_LIST" />
-          <ph name="LIST_ITEM" />जब आप साइटों पर जाते हैं, तो उन्हें पता चलता है<ph name="END_LIST_ITEM" />
-          <ph name="LIST_ITEM" />नौकरी देने वाली कंपनियां या स्कूल, ब्राउज़िंग गतिविधि को ट्रैक कर सकते हैं<ph name="END_LIST_ITEM" />
-          <ph name="LIST_ITEM" />इंटरनेट सेवा देने वाली कंपनियां, वेब ट्रैफ़िक की निगरानी कर सकती हैं<ph name="END_LIST_ITEM" />
-        <ph name="END_LIST" /></translation>
 <translation id="4829962028570902310">अनदेखा कर दिया गया है, क्योंकि इस नीति को सिर्फ़ क्लाउड की उपयोगकर्ता नीति के ज़रिए सेट किया जा सकता है.</translation>
 <translation id="483241715238664915">सुरक्षा चेतावनियां चालू करें</translation>
 <translation id="4838327282952368871">ख्वाब जैसा</translation>
@@ -1801,7 +1788,6 @@
 <translation id="6757797048963528358">आपका डिवाइस निष्क्रिय हो गया है.</translation>
 <translation id="6767985426384634228">क्या आप पता अपडेट करना चाहते हैं?</translation>
 <translation id="6768213884286397650">हगाकी (पोस्टकार्ड)</translation>
-<translation id="6774185088257932239">गुप्त मोड के बारे में <ph name="BEGIN_LINK" />ज़्यादा जानें<ph name="END_LINK" /></translation>
 <translation id="6775759552199460396">JIS B2</translation>
 <translation id="67862343314499040">बैंगनी</translation>
 <translation id="6786747875388722282">एक्‍सटेंशन</translation>
@@ -2281,12 +2267,6 @@
 <translation id="8317207217658302555">ARCore को अपडेट करें?</translation>
 <translation id="831997045666694187">शाम</translation>
 <translation id="8321476692217554900">सूचनाएं</translation>
-<translation id="8328484624016508118">सभी गुप्त टैब बंद करने के बाद, Chrome इन चीज़ों को मिटाता है:
-        <ph name="BEGIN_LIST" />
-          <ph name="LIST_ITEM" />इस डिवाइस से आपकी ब्राउज़िंग गतिविधि<ph name="END_LIST_ITEM" />
-          <ph name="LIST_ITEM" />इस डिवाइस से आपका खोज इतिहास<ph name="END_LIST_ITEM" />
-          <ph name="LIST_ITEM" />फ़ॉर्म में डाली गई जानकारी<ph name="END_LIST_ITEM" />
-        <ph name="END_LIST" /></translation>
 <translation id="8332188693563227489"><ph name="HOST_NAME" /> का एक्सेस देने से मना किया गया था</translation>
 <translation id="833262891116910667">हाइलाइट करें</translation>
 <translation id="8339163506404995330"><ph name="LANGUAGE" /> भाषा के पेज का अनुवाद नहीं किया जाएगा</translation>
@@ -2545,7 +2525,6 @@
 <translation id="9215416866750762878">एक ऐप्‍लिकेशन Chrome को इस साइट से सुरक्षित तरीके से कनेक्‍ट होने से रोक रहा है</translation>
 <translation id="9219103736887031265">Images</translation>
 <translation id="922152298093051471">Chrome को पसंद के मुताबिक बनाएं</translation>
-<translation id="922274508605516859">वर्चुअल कार्ड आपके असली कार्ड की पहचान ज़ाहिर नहीं होने देता है. इससे, आपको धोखाधड़ी से बचने में मदद मिलती है.</translation>
 <translation id="933712198907837967">Diners Club</translation>
 <translation id="935608979562296692">फ़ॉर्म साफ़ करें</translation>
 <translation id="936474030629450166">सुपर-बी</translation>
diff --git a/components/strings/components_strings_hr.xtb b/components/strings/components_strings_hr.xtb
index 47b35c0..6785b06 100644
--- a/components/strings/components_strings_hr.xtb
+++ b/components/strings/components_strings_hr.xtb
@@ -20,7 +20,6 @@
 <translation id="1038842779957582377">nepoznati naziv</translation>
 <translation id="1041998700806130099">Poruka o radnom listu</translation>
 <translation id="1048785276086539861">Kad uredite napomene, dokument će se vratiti na prikaz pojedinačne stranice</translation>
-<translation id="1049743911850919806">Anonimno</translation>
 <translation id="1050038467049342496">Zatvorite ostale aplikacije</translation>
 <translation id="1055184225775184556">&amp;Poništi dodavanje</translation>
 <translation id="1056898198331236512">Upozorenje</translation>
@@ -736,12 +735,6 @@
 <translation id="3345782426586609320">Oči</translation>
 <translation id="3355823806454867987">Promijeni proxy postavke...</translation>
 <translation id="3360103848165129075">List rukovatelja plaćanjima</translation>
-<translation id="3361596688432910856">Chrome <ph name="BEGIN_EMPHASIS" />neće spremati<ph name="END_EMPHASIS" /> sljedeće informacije:
-        <ph name="BEGIN_LIST" />
-          <ph name="LIST_ITEM" />vašu povijest pregledavanja
-          <ph name="LIST_ITEM" />kolačiće i podatke o web-lokacijama
-          <ph name="LIST_ITEM" />informacije koje unesete u obrasce.
-        <ph name="END_LIST" /></translation>
 <translation id="3362968246557010467">Pravilo je automatski kopirano iz ukinutog pravila <ph name="OLD_POLICY" />. Trebali biste koristiti ovo pravilo.</translation>
 <translation id="3364869320075768271"><ph name="URL" /> želi koristiti vaš uređaj i podatke virtualne stvarnosti</translation>
 <translation id="3366477098757335611">Prikaži kartice</translation>
@@ -1222,12 +1215,6 @@
 <translation id="4819347708020428563">Želite li urediti napomene u zadanom prikazu?</translation>
 <translation id="4825496307559726072"><ph name="CREATE_GOOGLE_SHEET_FOCUSED_FRIENDLY_MATCH_TEXT" />, pritisnite Tab, a zatim Enter da biste brzo izradili novu Google tablicu</translation>
 <translation id="4825507807291741242">Snažno</translation>
-<translation id="4827402517081186284">Anonimni način rada ne čini vas nevidljivim na internetu:
-        <ph name="BEGIN_LIST" />
-          <ph name="LIST_ITEM" />web-lokacije znaju kada ih posjećujete<ph name="END_LIST_ITEM" />
-          <ph name="LIST_ITEM" />poslodavci ili škole mogu pratiti vašu aktivnost pregledavanja<ph name="END_LIST_ITEM" />
-          <ph name="LIST_ITEM" />davatelji internetskih usluga mogu nadzirati web-promet<ph name="END_LIST_ITEM" />
-        <ph name="END_LIST" /></translation>
 <translation id="4829962028570902310">Zanemareno jer se pravilo može postaviti samo putem korisničkih pravila oblaka.</translation>
 <translation id="483241715238664915">Uključite upozorenja</translation>
 <translation id="4838327282952368871">Sanjivo</translation>
@@ -1797,7 +1784,6 @@
 <translation id="6757797048963528358">Uređaj je u stanju mirovanja.</translation>
 <translation id="6767985426384634228">Želite li ažurirati adresu?</translation>
 <translation id="6768213884286397650">Hagaki (dopisnica)</translation>
-<translation id="6774185088257932239"><ph name="BEGIN_LINK" />Saznajte više<ph name="END_LINK" /> o anonimnom načinu rada</translation>
 <translation id="6775759552199460396">JIS B2</translation>
 <translation id="67862343314499040">Ljubičasta</translation>
 <translation id="6786747875388722282">Proširenja</translation>
@@ -2277,12 +2263,6 @@
 <translation id="8317207217658302555">Ažurirati ARCore?</translation>
 <translation id="831997045666694187">Navečer</translation>
 <translation id="8321476692217554900">obavijesti</translation>
-<translation id="8328484624016508118">Nakon zatvaranja svih anonimnih kartica Chrome briše:
-        <ph name="BEGIN_LIST" />
-          <ph name="LIST_ITEM" />vašu aktivnost pregledavanja na ovom uređaju<ph name="END_LIST_ITEM" />
-          <ph name="LIST_ITEM" />vašu povijest pretraživanja na ovom uređaju<ph name="END_LIST_ITEM" />
-          <ph name="LIST_ITEM" />podatke unesene u obrasce<ph name="END_LIST_ITEM" />
-        <ph name="END_LIST" /></translation>
 <translation id="8332188693563227489">Pristup hostu <ph name="HOST_NAME" /> je odbijen</translation>
 <translation id="833262891116910667">Istakni</translation>
 <translation id="8339163506404995330">Neće se prevoditi <ph name="LANGUAGE" /></translation>
diff --git a/components/strings/components_strings_hu.xtb b/components/strings/components_strings_hu.xtb
index 640f0b0..9644867 100644
--- a/components/strings/components_strings_hu.xtb
+++ b/components/strings/components_strings_hu.xtb
@@ -20,7 +20,6 @@
 <translation id="1038842779957582377">Ismeretlen név</translation>
 <translation id="1041998700806130099">Munkalapi üzenet</translation>
 <translation id="1048785276086539861">A jelölések szerkesztésekor a dokumentum visszaáll egyoldalas nézetre.</translation>
-<translation id="1049743911850919806">Inkognitó mód</translation>
 <translation id="1050038467049342496">Zárja be a többi alkalmazást</translation>
 <translation id="1055184225775184556">&amp;Hozzáadás visszavonása</translation>
 <translation id="1056898198331236512">Figyelmeztetés</translation>
@@ -734,12 +733,6 @@
 <translation id="3345782426586609320">Szem</translation>
 <translation id="3355823806454867987">Proxybeállítások módosítása...</translation>
 <translation id="3360103848165129075">Fizetési információk munkalapja</translation>
-<translation id="3361596688432910856">A Chrome <ph name="BEGIN_EMPHASIS" />nem menti<ph name="END_EMPHASIS" /> a következő adatokat:
-        <ph name="BEGIN_LIST" />
-          <ph name="LIST_ITEM" />Böngészési előzmények
-          <ph name="LIST_ITEM" />Cookie-k és webhelyadatok
-          <ph name="LIST_ITEM" />Űrlapokon megadott adatok
-        <ph name="END_LIST" /></translation>
 <translation id="3362968246557010467">Ezt a házirendet a rendszer automatikusan másolta át a megszüntetett <ph name="OLD_POLICY" /> házirendből. Használja ezt a házirendet.</translation>
 <translation id="3364869320075768271">A(z) <ph name="URL" /> webhely használni szeretné az Ön virtuálisvalóság-eszközeit és -adatait</translation>
 <translation id="3366477098757335611">Kártyák megtekintése</translation>
@@ -1220,12 +1213,7 @@
 <translation id="4819347708020428563">Szeretné a jelöléseket az alapértelmezett nézetben szerkeszteni?</translation>
 <translation id="4825496307559726072"><ph name="CREATE_GOOGLE_SHEET_FOCUSED_FRIENDLY_MATCH_TEXT" />, tartsa lenyomva a Tab billentyűt, majd nyomja meg az Enter billentyűt új Google-táblázat gyors létrehozásához</translation>
 <translation id="4825507807291741242">Erőteljes</translation>
-<translation id="4827402517081186284">Az inkognitó mód nem teszi Önt láthatatlanná az interneten:
-        <ph name="BEGIN_LIST" />
-          <ph name="LIST_ITEM" />A webhelyek tudják, amikor Ön felkeresi őket<ph name="END_LIST_ITEM" />
-          <ph name="LIST_ITEM" />A munkáltatók vagy az iskolák nyomon követhetik a böngészési tevékenységeket<ph name="END_LIST_ITEM" />
-          <ph name="LIST_ITEM" />Az internetszolgáltatók figyelhetik az internetes forgalmat<ph name="END_LIST_ITEM" />
-        <ph name="END_LIST" /></translation>
+<translation id="4829962028570902310">Figyelmen kívül hagyva, mert a szabályzatot csak a felhőalapú felhasználói szabályzat állíthatja be.</translation>
 <translation id="483241715238664915">Figyelmeztetések bekapcsolása</translation>
 <translation id="4838327282952368871">Álmodozó</translation>
 <translation id="4840250757394056958">Chrome-előzmények megtekintése</translation>
@@ -1794,7 +1782,6 @@
 <translation id="6757797048963528358">Eszköze alvó üzemmódba váltott.</translation>
 <translation id="6767985426384634228">Frissíti a címet?</translation>
 <translation id="6768213884286397650">Hagaki (képeslap)</translation>
-<translation id="6774185088257932239"><ph name="BEGIN_LINK" />További információ<ph name="END_LINK" /> az inkognitó módról.</translation>
 <translation id="6775759552199460396">JIS B2</translation>
 <translation id="67862343314499040">Ibolyaszín</translation>
 <translation id="6786747875388722282">Bővítmények</translation>
@@ -2274,12 +2261,6 @@
 <translation id="8317207217658302555">Biztosan frissíti az ARCore platformot?</translation>
 <translation id="831997045666694187">Este</translation>
 <translation id="8321476692217554900">értesítések</translation>
-<translation id="8328484624016508118">Az összes inkognitó lap bezárása után a Chrome törli a következőket:
-        <ph name="BEGIN_LIST" />
-          <ph name="LIST_ITEM" />Az Ön ezen az eszközön végzett böngészési tevékenységeit<ph name="END_LIST_ITEM" />
-          <ph name="LIST_ITEM" />Az Ön ezen az eszközön található keresési előzményeit<ph name="END_LIST_ITEM" />
-          <ph name="LIST_ITEM" />Az űrlapokon megadott adatokat<ph name="END_LIST_ITEM" />
-        <ph name="END_LIST" /></translation>
 <translation id="8332188693563227489">A hozzáférés megtagadva a következőhöz: <ph name="HOST_NAME" /></translation>
 <translation id="833262891116910667">Kiemelés</translation>
 <translation id="8339163506404995330">A(z) <ph name="LANGUAGE" /> nyelvű oldalak nem lesznek lefordítva</translation>
diff --git a/components/strings/components_strings_hy.xtb b/components/strings/components_strings_hy.xtb
index b22ccfd..54342be 100644
--- a/components/strings/components_strings_hy.xtb
+++ b/components/strings/components_strings_hy.xtb
@@ -20,7 +20,6 @@
 <translation id="1038842779957582377">անհայտ անուն</translation>
 <translation id="1041998700806130099">Հաղորդագրություն առաջադրանքի թերթի վրա</translation>
 <translation id="1048785276086539861">Երբ դուք խմբագրեք ծանոթագրությունները, փաստաթուղթը կցուցադրվի մեկ էջով</translation>
-<translation id="1049743911850919806">Ինկոգնիտո</translation>
 <translation id="1050038467049342496">Փակեք մյուս հավելվածները</translation>
 <translation id="1055184225775184556">&amp;Հետարկել հավելումը</translation>
 <translation id="1056898198331236512">Զգուշացում</translation>
@@ -736,12 +735,6 @@
 <translation id="3345782426586609320">Աչքեր</translation>
 <translation id="3355823806454867987">Փոխել պրոքսի-սերվերի կարգավորումները…</translation>
 <translation id="3360103848165129075">Վճարման մշակման թերթ</translation>
-<translation id="3361596688432910856">Chrome-ում <ph name="BEGIN_EMPHASIS" />չեն պահվի<ph name="END_EMPHASIS" />՝
-        <ph name="BEGIN_LIST" />
-          <ph name="LIST_ITEM" />ձեր այցելությունների պատմությունը,
-          <ph name="LIST_ITEM" />քուքիներն ու կայքերի տվյալները,
-          <ph name="LIST_ITEM" />ձևերում լրացրած տեղեկությունները։
-        <ph name="END_LIST" /></translation>
 <translation id="3362968246557010467">Այս կանոնն ավտոմատ պատճենվել է <ph name="OLD_POLICY" /> կանոնից, որն արդեն հնացել է։ Վերջինիս փոխարեն օգտագործեք այս կանոնը։</translation>
 <translation id="3364869320075768271"><ph name="URL" /> կայքն ուզում է օգտագործել վիրտուալ իրականության ձեր սարքերն ու տվյալները</translation>
 <translation id="3366477098757335611">Դիտել քարտերը</translation>
@@ -1222,12 +1215,6 @@
 <translation id="4819347708020428563">Խմբագրե՞լ ծանոթագրությունները կանխադրված դիտակերպում</translation>
 <translation id="4825496307559726072"><ph name="CREATE_GOOGLE_SHEET_FOCUSED_FRIENDLY_MATCH_TEXT" />։ Արագ Google աղյուսակ ստեղծելու համար սեղմեք Tab, ապա՝ Enter։</translation>
 <translation id="4825507807291741242">Հզոր</translation>
-<translation id="4827402517081186284">Ինկոգնիտո ռեժիմը չի կարող ձեզ լիովին անտեսանելի դարձնել համացանցում․
-        <ph name="BEGIN_LIST" />
-          <ph name="LIST_ITEM" />Կայքերը տեղեկանում են ձեր այցելության մասին<ph name="END_LIST_ITEM" />
-          <ph name="LIST_ITEM" />Գործատուները և ուսումնական հաստատությունները կարող են հետագծել գործողությունները դիտարկիչում<ph name="END_LIST_ITEM" />
-          <ph name="LIST_ITEM" />Ինտերնետ պրովայդերները կարող են հետևել վեբ թրաֆիկին<ph name="END_LIST_ITEM" />
-        <ph name="END_LIST" /></translation>
 <translation id="4829962028570902310">Անտեսվում է, քանի որ այս կանոնը կարելի է կարգավորել միայն ամպի օգտատիրոջ կանոնի միջոցով։</translation>
 <translation id="483241715238664915">Միացնել զգուշացումները</translation>
 <translation id="4838327282952368871">Երազային</translation>
@@ -1798,7 +1785,6 @@
 <translation id="6757797048963528358">Ձեր սարքը մտել է քնի ռեժիմ:</translation>
 <translation id="6767985426384634228">Թարմացնե՞լ հասցեն</translation>
 <translation id="6768213884286397650">Hagaki (բացիկ)</translation>
-<translation id="6774185088257932239"><ph name="BEGIN_LINK" />Իմանալ ավելին<ph name="END_LINK" /> ինկոգնիտո ռեժիմի մասին</translation>
 <translation id="6775759552199460396">JIS B2</translation>
 <translation id="67862343314499040">Բաց մանուշակագույն</translation>
 <translation id="6786747875388722282">Ընդլայնումներ</translation>
@@ -2278,12 +2264,6 @@
 <translation id="8317207217658302555">Թարմացնե՞լ ARCore-ը</translation>
 <translation id="831997045666694187">Մինչև երեկո</translation>
 <translation id="8321476692217554900">ծանուցումներ</translation>
-<translation id="8328484624016508118">Երբ դուք փակեք բոլոր ինկոգնիտո ներդիրները, Chrome-ում կջնջվեն՝
-        <ph name="BEGIN_LIST" />
-          <ph name="LIST_ITEM" />Այս սարքի դիտարկիչում ձեր կատարած գործողությունները<ph name="END_LIST_ITEM" />
-          <ph name="LIST_ITEM" />Այս սարքում ձեր կատարած որոնումների պամությունը<ph name="END_LIST_ITEM" />
-          <ph name="LIST_ITEM" />Ձևերում մուտքագրված տեղեկությունները<ph name="END_LIST_ITEM" />
-        <ph name="END_LIST" /></translation>
 <translation id="8332188693563227489"><ph name="HOST_NAME" /> մուտքը մերժվել է</translation>
 <translation id="833262891116910667">Նշել</translation>
 <translation id="8339163506404995330"><ph name="LANGUAGE" /> էջերը չեն թարգմանվի</translation>
diff --git a/components/strings/components_strings_id.xtb b/components/strings/components_strings_id.xtb
index d3934be..9b7aabd 100644
--- a/components/strings/components_strings_id.xtb
+++ b/components/strings/components_strings_id.xtb
@@ -20,7 +20,6 @@
 <translation id="1038842779957582377">nama tidak diketahui</translation>
 <translation id="1041998700806130099">Pesan lembar tugas</translation>
 <translation id="1048785276086539861">Jika Anda mengedit anotasi, dokumen ini akan kembali ke tampilan satu halaman</translation>
-<translation id="1049743911850919806">Samaran</translation>
 <translation id="1050038467049342496">Tutup aplikasi lain</translation>
 <translation id="1055184225775184556">&amp;Urungkan Penambahan</translation>
 <translation id="1056898198331236512">Peringatan</translation>
@@ -732,12 +731,6 @@
 <translation id="3345782426586609320">Mata</translation>
 <translation id="3355823806454867987">Ubah setelan proxy...</translation>
 <translation id="3360103848165129075">Lembar handler pembayaran</translation>
-<translation id="3361596688432910856">Chrome <ph name="BEGIN_EMPHASIS" />tidak akan menyimpan<ph name="END_EMPHASIS" /> informasi berikut:
-        <ph name="BEGIN_LIST" />
-          <ph name="LIST_ITEM" />Histori penjelajahan Anda
-          <ph name="LIST_ITEM" />Cookie dan data situs
-          <ph name="LIST_ITEM" />Informasi yang dimasukkan dalam formulir
-        <ph name="END_LIST" /></translation>
 <translation id="3362968246557010467">Kebijakan ini otomatis disalin dari kebijakan <ph name="OLD_POLICY" /> yang tidak digunakan lagi. Sebaiknya Anda menggunakan kebijakan ini.</translation>
 <translation id="3364869320075768271"><ph name="URL" /> ingin menggunakan perangkat dan data virtual reality Anda</translation>
 <translation id="3366477098757335611">Lihat kartu</translation>
@@ -1212,12 +1205,7 @@
 <translation id="4819347708020428563">Edit anotasi dalam tampilan default?</translation>
 <translation id="4825496307559726072"><ph name="CREATE_GOOGLE_SHEET_FOCUSED_FRIENDLY_MATCH_TEXT" />, tekan Tab lalu Enter untuk membuat Spreadsheet Google baru dengan cepat</translation>
 <translation id="4825507807291741242">Kuat</translation>
-<translation id="4827402517081186284">Mode Samaran tidak membuat Anda tidak terlihat secara online:
-        <ph name="BEGIN_LIST" />
-          <ph name="LIST_ITEM" />Situs mengetahui saat Anda membukanya<ph name="END_LIST_ITEM" />
-          <ph name="LIST_ITEM" />Perusahaan atau sekolah dapat melacak aktivitas penjelajahan<ph name="END_LIST_ITEM" />
-          <ph name="LIST_ITEM" />Internet service provider dapat memantau traffic web<ph name="END_LIST_ITEM" />
-        <ph name="END_LIST" /></translation>
+<translation id="4829962028570902310">Diabaikan karena kebijakan ini hanya dapat disetel oleh kebijakan pengguna cloud.</translation>
 <translation id="483241715238664915">Aktifkan peringatan</translation>
 <translation id="4838327282952368871">Sangat Indah</translation>
 <translation id="4840250757394056958">Lihat histori Chrome Anda</translation>
@@ -1786,7 +1774,6 @@
 <translation id="6757797048963528358">Perangkat Anda sedang dalam mode tidur.</translation>
 <translation id="6767985426384634228">Perbarui Alamat?</translation>
 <translation id="6768213884286397650">Hagaki (Postcard)</translation>
-<translation id="6774185088257932239"><ph name="BEGIN_LINK" />Pelajari lebih lanjut<ph name="END_LINK" /> mode Samaran</translation>
 <translation id="6775759552199460396">JIS B2</translation>
 <translation id="67862343314499040">Violet</translation>
 <translation id="6786747875388722282">Ekstensi</translation>
@@ -2264,12 +2251,6 @@
 <translation id="8317207217658302555">Update ARCore?</translation>
 <translation id="831997045666694187">Sore</translation>
 <translation id="8321476692217554900">notifikasi</translation>
-<translation id="8328484624016508118">Setelah semua tab Samaran ditutup, Chrome akan menghapus:
-        <ph name="BEGIN_LIST" />
-          <ph name="LIST_ITEM" />Aktivitas penjelajahan Anda dari perangkat ini<ph name="END_LIST_ITEM" />
-          <ph name="LIST_ITEM" />Histori penelusuran Anda di perangkat ini<ph name="END_LIST_ITEM" />
-          <ph name="LIST_ITEM" />Informasi yang dimasukkan ke formulir web<ph name="END_LIST_ITEM" />
-        <ph name="END_LIST" /></translation>
 <translation id="8332188693563227489">Akses ke <ph name="HOST_NAME" /> ditolak</translation>
 <translation id="833262891116910667">Sorotan</translation>
 <translation id="8339163506404995330">Halaman dalam bahasa <ph name="LANGUAGE" /> tidak akan diterjemahkan</translation>
diff --git a/components/strings/components_strings_is.xtb b/components/strings/components_strings_is.xtb
index 7be987f5..162844e5 100644
--- a/components/strings/components_strings_is.xtb
+++ b/components/strings/components_strings_is.xtb
@@ -20,7 +20,6 @@
 <translation id="1038842779957582377">óþekkt heiti</translation>
 <translation id="1041998700806130099">Skilaboð vinnslublaðs</translation>
 <translation id="1048785276086539861">Þegar þú breytir textaskýringum fer þetta skjal aftur í einnar síðu snið</translation>
-<translation id="1049743911850919806">Fara huldu höfðu</translation>
 <translation id="1050038467049342496">Lokaðu öðrum forritum</translation>
 <translation id="1055184225775184556">Aft&amp;urkalla nýtt bókamerki</translation>
 <translation id="1056898198331236512">Viðvörun</translation>
@@ -736,12 +735,6 @@
 <translation id="3345782426586609320">Augu</translation>
 <translation id="3355823806454867987">Breyta proxy-stillingum...</translation>
 <translation id="3360103848165129075">Greiðsluhjálparforrit</translation>
-<translation id="3361596688432910856">Chrome <ph name="BEGIN_EMPHASIS" />mun ekki vista<ph name="END_EMPHASIS" /> eftirfarandi upplýsingar:
-        <ph name="BEGIN_LIST" />
-          <ph name="LIST_ITEM" />Vafraferilinn þinn
-          <ph name="LIST_ITEM" />Fótspor og vefsvæðagögn
-          <ph name="LIST_ITEM" />Upplýsingar sem eru færðar í eyðublöð
-        <ph name="END_LIST" /></translation>
 <translation id="3362968246557010467">Þessi regla var sjálfkrafa afrituð úr úreltu <ph name="OLD_POLICY" /> reglunni. Þú ættir að nota þessa reglu í staðinn.</translation>
 <translation id="3364869320075768271"><ph name="URL" /> vill fá að nota sýndarveruleikatæki og -gögn</translation>
 <translation id="3366477098757335611">Skoða kort</translation>
@@ -1222,12 +1215,7 @@
 <translation id="4819347708020428563">Breyta textaskýringum í sjálfgefnu sniði?</translation>
 <translation id="4825496307559726072"><ph name="CREATE_GOOGLE_SHEET_FOCUSED_FRIENDLY_MATCH_TEXT" />, ýttu á Tab og svo Enter til að búa til nýjan Google töflureikni á skjótan hátt</translation>
 <translation id="4825507807291741242">Kraftmikið</translation>
-<translation id="4827402517081186284">Huliðsstilling gerir þig ekki ósýnilega(n) á netinu:
-        <ph name="BEGIN_LIST" />
-          <ph name="LIST_ITEM" />Vefsvæði vita þegar þú opnar þau<ph name="END_LIST_ITEM" />
-          <ph name="LIST_ITEM" />Vinnuveitendur eða skólar geta rakið vafranotkun<ph name="END_LIST_ITEM" />
-          <ph name="LIST_ITEM" />Netþjónustur kunna að fylgjast með netumferð<ph name="END_LIST_ITEM" />
-        <ph name="END_LIST" /></translation>
+<translation id="4829962028570902310">Hunsað vegna þess að aðeins er hægt að stilla regluna með notendareglum í skýi.</translation>
 <translation id="483241715238664915">Kveikja á viðvörunum</translation>
 <translation id="4838327282952368871">Draumkennt</translation>
 <translation id="4840250757394056958">Skoða Chrome ferilinn þinn</translation>
@@ -1796,7 +1784,6 @@
 <translation id="6757797048963528358">Tækið þitt fór að sofa.</translation>
 <translation id="6767985426384634228">Uppfæra heimilisfang?</translation>
 <translation id="6768213884286397650">Hagaki (póstkort)</translation>
-<translation id="6774185088257932239"><ph name="BEGIN_LINK" />Nánar<ph name="END_LINK" /> um huliðsstillingu</translation>
 <translation id="6775759552199460396">JIS B2</translation>
 <translation id="67862343314499040">Fjólublár</translation>
 <translation id="6786747875388722282">Viðbætur</translation>
@@ -2276,12 +2263,6 @@
 <translation id="8317207217658302555">Uppfæra ARCore?</translation>
 <translation id="831997045666694187">Kvöld</translation>
 <translation id="8321476692217554900">tilkynningar</translation>
-<translation id="8328484624016508118">Chrome hreinsar eftirfarandi um leið og öllum huliðsflipum er lokað:
-        <ph name="BEGIN_LIST" />
-          <ph name="LIST_ITEM" />Vafranotkun þína í þessu tæki<ph name="END_LIST_ITEM" />
-          <ph name="LIST_ITEM" />Leitarferil þinn þessu tæki<ph name="END_LIST_ITEM" />
-          <ph name="LIST_ITEM" />Upplýsingar sem slegnar voru inn á eyðublöð<ph name="END_LIST_ITEM" />
-        <ph name="END_LIST" /></translation>
 <translation id="8332188693563227489">Ekki fæst aðgangur að <ph name="HOST_NAME" /></translation>
 <translation id="833262891116910667">Auðkenna</translation>
 <translation id="8339163506404995330">Síður á þessu tungumáli verða ekki þýddar: <ph name="LANGUAGE" /></translation>
diff --git a/components/strings/components_strings_it.xtb b/components/strings/components_strings_it.xtb
index 31d0e3c..1a2942e7 100644
--- a/components/strings/components_strings_it.xtb
+++ b/components/strings/components_strings_it.xtb
@@ -20,7 +20,6 @@
 <translation id="1038842779957582377">nome sconosciuto</translation>
 <translation id="1041998700806130099">Messaggio foglio di lavoro</translation>
 <translation id="1048785276086539861">Quando modifichi le annotazioni, questo documento torna alla visualizzazione a pagina singola</translation>
-<translation id="1049743911850919806">In incognito</translation>
 <translation id="1050038467049342496">Chiudi altre app</translation>
 <translation id="1055184225775184556">&amp;Annulla aggiunta</translation>
 <translation id="1056898198331236512">Avviso</translation>
@@ -733,12 +732,6 @@
 <translation id="3345782426586609320">Occhi</translation>
 <translation id="3355823806454867987">Modifica impostazioni proxy...</translation>
 <translation id="3360103848165129075">Foglio per la gestione dei pagamenti</translation>
-<translation id="3361596688432910856">Chrome <ph name="BEGIN_EMPHASIS" />non salverà<ph name="END_EMPHASIS" /> le seguenti informazioni:
-        <ph name="BEGIN_LIST" />
-          <ph name="LIST_ITEM" />Cronologia di navigazione
-          <ph name="LIST_ITEM" />Cookie e dati dei siti
-          <ph name="LIST_ITEM" />Informazioni inserite nei moduli
-        <ph name="END_LIST" /></translation>
 <translation id="3362968246557010467">Questa norma è stata copiata automaticamente dalla norma obsoleta <ph name="OLD_POLICY" />. Dovresti usare invece questa norma.</translation>
 <translation id="3364869320075768271"><ph name="URL" /> vorrebbe usare i dati e dispositivi per realtà virtuale</translation>
 <translation id="3366477098757335611">Visualizza le carte</translation>
@@ -1219,12 +1212,7 @@
 <translation id="4819347708020428563">Vuoi modificare le annotazioni nella visualizzazione predefinita?</translation>
 <translation id="4825496307559726072"><ph name="CREATE_GOOGLE_SHEET_FOCUSED_FRIENDLY_MATCH_TEXT" />, premi Tab e poi Invio per creare rapidamente un nuovo foglio Google</translation>
 <translation id="4825507807291741242">Potente</translation>
-<translation id="4827402517081186284">La modalità di navigazione in incognito non ti rende invisibile online:
-        <ph name="BEGIN_LIST" />
-          <ph name="LIST_ITEM" />I siti rilevano la tua visita<ph name="END_LIST_ITEM" />
-          <ph name="LIST_ITEM" />Datori di lavoro o scuole possono monitorare l'attività di navigazione<ph name="END_LIST_ITEM" />
-          <ph name="LIST_ITEM" />I provider di servizi Internet possono monitorare il traffico web<ph name="END_LIST_ITEM" />
-        <ph name="END_LIST" /></translation>
+<translation id="4829962028570902310">Ignorato perché il criterio può essere impostato solo da un utente cloud.</translation>
 <translation id="483241715238664915">Attiva gli avvisi</translation>
 <translation id="4838327282952368871">Surreale</translation>
 <translation id="4840250757394056958">Visualizza la tua cronologia di Chrome</translation>
@@ -1792,7 +1780,6 @@
 <translation id="6757797048963528358">Il dispositivo è entrato in modalità sospensione.</translation>
 <translation id="6767985426384634228">Vuoi aggiornare l'indirizzo?</translation>
 <translation id="6768213884286397650">Hagaki (Postcard)</translation>
-<translation id="6774185088257932239"><ph name="BEGIN_LINK" />Scopri di più<ph name="END_LINK" /> sulla modalità di navigazione in incognito</translation>
 <translation id="6775759552199460396">JIS B2</translation>
 <translation id="67862343314499040">Lilla</translation>
 <translation id="6786747875388722282">Estensioni</translation>
@@ -2272,12 +2259,6 @@
 <translation id="8317207217658302555">Vuoi aggiornare ARCore?</translation>
 <translation id="831997045666694187">Sera</translation>
 <translation id="8321476692217554900">notifiche</translation>
-<translation id="8328484624016508118">Dopo aver chiuso tutte le schede di navigazione in incognito, Chrome cancella:
-        <ph name="BEGIN_LIST" />
-          <ph name="LIST_ITEM" />L'attività di navigazione da questo dispositivo<ph name="END_LIST_ITEM" />
-          <ph name="LIST_ITEM" />La cronologia delle ricerche da questo dispositivo<ph name="END_LIST_ITEM" />
-          <ph name="LIST_ITEM" />Le informazioni inserite nei moduli<ph name="END_LIST_ITEM" />
-        <ph name="END_LIST" /></translation>
 <translation id="8332188693563227489">Accesso a <ph name="HOST_NAME" /> negato</translation>
 <translation id="833262891116910667">Evidenzia</translation>
 <translation id="8339163506404995330">Le pagine in <ph name="LANGUAGE" /> non verranno tradotte</translation>
diff --git a/components/strings/components_strings_iw.xtb b/components/strings/components_strings_iw.xtb
index 8476a009..eae1c96 100644
--- a/components/strings/components_strings_iw.xtb
+++ b/components/strings/components_strings_iw.xtb
@@ -20,7 +20,6 @@
 <translation id="1038842779957582377">שם לא ידוע</translation>
 <translation id="1041998700806130099">הודעה לגבי גיליון עבודות</translation>
 <translation id="1048785276086539861">המסמך הזה יחזור לתצוגת דף יחיד בזמן עריכת ההערות</translation>
-<translation id="1049743911850919806">גלישה פרטית</translation>
 <translation id="1050038467049342496">סגירת אפליקציות אחרות</translation>
 <translation id="1055184225775184556">&amp;ביטול הוספה</translation>
 <translation id="1056898198331236512">אזהרה</translation>
@@ -736,12 +735,6 @@
 <translation id="3345782426586609320">עיניים</translation>
 <translation id="3355823806454867987">‏שינוי הגדרות שרת Proxy...</translation>
 <translation id="3360103848165129075">גיליון פרטי התשלום</translation>
-<translation id="3361596688432910856">‏Chrome <ph name="BEGIN_EMPHASIS" />לא ישמור<ph name="END_EMPHASIS" /> את המידע הבא:
-        <ph name="BEGIN_LIST" />
-          <ph name="LIST_ITEM" />היסטוריית הגלישה שלך
-          <ph name="LIST_ITEM" />קובצי Cookie ונתוני אתרים
-          <ph name="LIST_ITEM" />מידע שהוזן בטפסים
-        <ph name="END_LIST" /></translation>
 <translation id="3362968246557010467">המדיניות הזו הועתקה באופן אוטומטי ממדיניות <ph name="OLD_POLICY" /> שהוצאה משימוש. צריך להשתמש במדיניות הזו במקומה.</translation>
 <translation id="3364869320075768271"><ph name="URL" /> רוצה להשתמש במכשיר המציאות המדומה ובנתוני המציאות המדומה שלך</translation>
 <translation id="3366477098757335611">הצגת כרטיסים</translation>
@@ -1224,12 +1217,7 @@
 <translation id="4819347708020428563">לערוך את ההערות בתצוגת ברירת מחדל?</translation>
 <translation id="4825496307559726072">‏<ph name="CREATE_GOOGLE_SHEET_FOCUSED_FRIENDLY_MATCH_TEXT" />, מקישים על Tab ואז על Enter כדי ליצור במהירות גיליון אלקטרוני חדש ב-Google Sheets</translation>
 <translation id="4825507807291741242">עוצמתי</translation>
-<translation id="4827402517081186284">המצב האנונימי לא מסתיר אותך לגמרי באינטרנט:
-        <ph name="BEGIN_LIST" />
-          <ph name="LIST_ITEM" />אתרים יודעים שביקרת בהם<ph name="END_LIST_ITEM" />
-          <ph name="LIST_ITEM" />מעסיקים ומוסדות לימודים יכולים לעקוב אחר פעילות הגלישה שלך<ph name="END_LIST_ITEM" />
-          <ph name="LIST_ITEM" />יכול להיות שספקי אינטרנט יעקבו אחר תנועת הגולשים<ph name="END_LIST_ITEM" />
-        <ph name="END_LIST" /></translation>
+<translation id="4829962028570902310">המערכת מתעלמת מהמדיניות כי ניתן להגדיר אותה רק כמדיניות משתמש בענן.</translation>
 <translation id="483241715238664915">הפעלת האזהרות</translation>
 <translation id="4838327282952368871">חלומי</translation>
 <translation id="4840250757394056958">‏הצגת ההיסטוריה ב-Chrome</translation>
@@ -1799,7 +1787,6 @@
 <translation id="6757797048963528358">המכשיר עבר למצב שינה.</translation>
 <translation id="6767985426384634228">לעדכן את הכתובת?</translation>
 <translation id="6768213884286397650">Hagaki (Postcard)‎</translation>
-<translation id="6774185088257932239"><ph name="BEGIN_LINK" />מידע נוסף<ph name="END_LINK" /> על המצב האנונימי</translation>
 <translation id="6775759552199460396">JIS B2</translation>
 <translation id="67862343314499040">סגול סיגלית</translation>
 <translation id="6786747875388722282">תוספים</translation>
@@ -2279,12 +2266,6 @@
 <translation id="8317207217658302555">‏לעדכן את ARCore?</translation>
 <translation id="831997045666694187">ערב</translation>
 <translation id="8321476692217554900">התראות</translation>
-<translation id="8328484624016508118">‏אחרי שסוגרים את כל הכרטיסיות במצב אנונימי, יימחקו בדפדפן Chrome:
-        <ph name="BEGIN_LIST" />
-          <ph name="LIST_ITEM" />פעילות הגלישה מהמכשיר הזה<ph name="END_LIST_ITEM" />
-          <ph name="LIST_ITEM" />היסטוריית החיפושים שלך מהמכשיר הזה<ph name="END_LIST_ITEM" />
-          <ph name="LIST_ITEM" />המידע שהוזן בטפסים<ph name="END_LIST_ITEM" />
-        <ph name="END_LIST" /></translation>
 <translation id="8332188693563227489">אין גישה אל <ph name="HOST_NAME" /></translation>
 <translation id="833262891116910667">הדגשה</translation>
 <translation id="8339163506404995330">דפים ב<ph name="LANGUAGE" /> לא יתורגמו</translation>
diff --git a/components/strings/components_strings_ja.xtb b/components/strings/components_strings_ja.xtb
index a8dde1d..b4dfd78 100644
--- a/components/strings/components_strings_ja.xtb
+++ b/components/strings/components_strings_ja.xtb
@@ -20,7 +20,6 @@
 <translation id="1038842779957582377">不明な名前</translation>
 <translation id="1041998700806130099">ジョブシート メッセージ</translation>
 <translation id="1048785276086539861">メモを編集すると、ドキュメントは単一ページ表示に戻ります</translation>
-<translation id="1049743911850919806">シークレット モード</translation>
 <translation id="1050038467049342496">他のアプリを終了する</translation>
 <translation id="1055184225775184556">追加の取り消し(&amp;U)</translation>
 <translation id="1056898198331236512">警告</translation>
@@ -732,12 +731,6 @@
 <translation id="3345782426586609320">目</translation>
 <translation id="3355823806454867987">プロキシ設定の変更...</translation>
 <translation id="3360103848165129075">支払いハンドラのシート</translation>
-<translation id="3361596688432910856">Chrome には、次の情報は<ph name="BEGIN_EMPHASIS" />保存されません。<ph name="END_EMPHASIS" />
-        <ph name="BEGIN_LIST" />
-          <ph name="LIST_ITEM" />閲覧履歴
-          <ph name="LIST_ITEM" />Cookie とサイトデータ
-          <ph name="LIST_ITEM" />フォームに入力した情報
-        <ph name="END_LIST" /></translation>
 <translation id="3362968246557010467">このポリシーは、サポートが終了した <ph name="OLD_POLICY" /> ポリシーから自動的にコピーされました。今後はこのポリシーを使用してください。</translation>
 <translation id="3364869320075768271"><ph name="URL" /> から、バーチャル リアリティ デバイスとデータの使用許可を求められています</translation>
 <translation id="3366477098757335611">カードを表示</translation>
@@ -1213,12 +1206,6 @@
 <translation id="4819347708020428563">デフォルト表示でメモを編集しますか?</translation>
 <translation id="4825496307559726072"><ph name="CREATE_GOOGLE_SHEET_FOCUSED_FRIENDLY_MATCH_TEXT" /> です。Tab キー、Enter キーの順に押すと、新しい Google スプレッドシートをすばやく作成します</translation>
 <translation id="4825507807291741242">パワフル</translation>
-<translation id="4827402517081186284">シークレット モードを使用しても、オンライン上にまったく記録が残らないわけではありません。
-        <ph name="BEGIN_LIST" />
-          <ph name="LIST_ITEM" />サイトにはアクセスしたことが知られます<ph name="END_LIST_ITEM" />
-          <ph name="LIST_ITEM" />雇用主や教育機関で閲覧アクティビティを追跡している場合があります<ph name="END_LIST_ITEM" />
-          <ph name="LIST_ITEM" />インターネット サービス プロバイダでウェブ トラフィックを監視していることがあります<ph name="END_LIST_ITEM" />
-        <ph name="END_LIST" /></translation>
 <translation id="4829962028570902310">ポリシーは、クラウド ユーザー ポリシーでのみ設定可能なため無視されました。</translation>
 <translation id="483241715238664915">警告をオンにする</translation>
 <translation id="4838327282952368871">ドリーミー</translation>
@@ -1788,7 +1775,6 @@
 <translation id="6757797048963528358">デバイスがスリープ状態です。</translation>
 <translation id="6767985426384634228">住所を更新しますか?</translation>
 <translation id="6768213884286397650">はがき</translation>
-<translation id="6774185088257932239"><ph name="BEGIN_LINK" />シークレット モードについて<ph name="END_LINK" /></translation>
 <translation id="6775759552199460396">JIS B2</translation>
 <translation id="67862343314499040">バイオレット</translation>
 <translation id="6786747875388722282">拡張機能</translation>
@@ -2268,12 +2254,6 @@
 <translation id="8317207217658302555">ARCore を更新しますか?</translation>
 <translation id="831997045666694187">夕方</translation>
 <translation id="8321476692217554900">通知</translation>
-<translation id="8328484624016508118">すべてのシークレット タブを閉じると、Chrome で以下のデータが削除されます。
-        <ph name="BEGIN_LIST" />
-          <ph name="LIST_ITEM" />このデバイスでの閲覧アクティビティ<ph name="END_LIST_ITEM" />
-          <ph name="LIST_ITEM" />このデバイスでの検索履歴<ph name="END_LIST_ITEM" />
-          <ph name="LIST_ITEM" />フォームに入力した情報<ph name="END_LIST_ITEM" />
-        <ph name="END_LIST" /></translation>
 <translation id="8332188693563227489"><ph name="HOST_NAME" /> へのアクセスが拒否されました</translation>
 <translation id="833262891116910667">ハイライト表示</translation>
 <translation id="8339163506404995330"><ph name="LANGUAGE" />のページは翻訳されません</translation>
diff --git a/components/strings/components_strings_ka.xtb b/components/strings/components_strings_ka.xtb
index 4175158..9c171c6 100644
--- a/components/strings/components_strings_ka.xtb
+++ b/components/strings/components_strings_ka.xtb
@@ -20,7 +20,6 @@
 <translation id="1038842779957582377">უცნობი სახელი</translation>
 <translation id="1041998700806130099">დავალებათა ფურცლის შეტყობინება</translation>
 <translation id="1048785276086539861">ანოტაციების რედაქტირებისას ეს დოკუმენტი დაბრუნდება ერთგვერდიან ხედზე</translation>
-<translation id="1049743911850919806">ინკოგნიტო</translation>
 <translation id="1050038467049342496">სხვა აპების დახურვა</translation>
 <translation id="1055184225775184556">და დაბრუნება-დამატება</translation>
 <translation id="1056898198331236512">გაფრთხილება</translation>
@@ -212,6 +211,7 @@
 <translation id="1567040042588613346">ეს წესები სათანადოდ მუშაობს, თუმცა სხვაგან დაყენებულია იგივე მნიშვნელობა, რომელსაც ეს წესები ანაცვლებს.</translation>
 <translation id="1569487616857761740">შეიყვანეთ მოქმედების ვადის გასვლის თარიღი</translation>
 <translation id="1581080074034554886">CVC</translation>
+<translation id="1581767074483369314">დარეგისტრირდით ვირტუალური ბარათის გამოსაყენებლად</translation>
 <translation id="1583294866416602487">Plex</translation>
 <translation id="1583429793053364125">ამ ვებგვერდის ჩვენებისას პრობლემა წარმოიქმნა.</translation>
 <translation id="1586541204584340881">თქვენ მიერ დაინსტალირებული გაფართოებები</translation>
@@ -373,6 +373,7 @@
 <translation id="2101225219012730419">ვერსია:</translation>
 <translation id="2102134110707549001">ძლიერი პაროლის შემოთავაზება…</translation>
 <translation id="2102495993840063010">Android-ის აპები</translation>
+<translation id="2106249949168291652">შენახულია. გსურთ, ის უფრო უსაფრთხოდ აქციოთ ვირტუალური ბარათის მეშვეობით?</translation>
 <translation id="2107021941795971877">ბეჭდვის დამხმარე საშუალებები</translation>
 <translation id="2108755909498034140">თქვენი კომპიუტერის გადატვირთვა</translation>
 <translation id="2111166930115883695">დასაკრავად დააჭირეთ შორისს</translation>
@@ -528,6 +529,7 @@
 <translation id="262745152991669301">შეუძლია USB-მოწყობილობებთან დაკავშირების თხოვნა</translation>
 <translation id="2629325967560697240">Chrome-ის უსაფრთხოების ყველაზე ძლიერი ფუნქციებით სარგებლობისთვის <ph name="BEGIN_ENHANCED_PROTECTION_LINK" />ჩართეთ გაძლიერებული დაცვა<ph name="END_ENHANCED_PROTECTION_LINK" /></translation>
 <translation id="2634124572758952069"><ph name="HOST_NAME" />-ის სერვერის IP მისამართი ვერ მოიძებნა.</translation>
+<translation id="2638001509205834345">გსურთ, თქვენი ბარათი უფრო უსაფრთხოდ აქციოთ?</translation>
 <translation id="2639739919103226564">სტატუსი:</translation>
 <translation id="264810637653812429">თავსებადი მოწყობილობები ვერ მოიძებნა.</translation>
 <translation id="2649204054376361687"><ph name="CITY" />, <ph name="COUNTRY" /></translation>
@@ -660,6 +662,7 @@
 <translation id="3113284927548439113">მესამე წანაცვლება</translation>
 <translation id="3115874930288085374"><ph name="ENROLLMENT_DOMAIN" /> ითხოვს თქვენი მონაცემების სარეზერვო ასლების შექმნას და ამ <ph name="DEVICE_TYPE" />-ის დაბრუნებას.</translation>
 <translation id="3116158981186517402">ლამინირება</translation>
+<translation id="311958134571892113">მიბმულია შემდეგთან:</translation>
 <translation id="3120730422813725195">Elo</translation>
 <translation id="31207688938192855"><ph name="BEGIN_LINK" />სცადეთ კავშირის დიაგნოსტიკის ხელსაწყოს გაშვება<ph name="END_LINK" />.</translation>
 <translation id="3121994479408824897"><ph name="DOMAIN" />-ზე გადასვლა</translation>
@@ -732,12 +735,6 @@
 <translation id="3345782426586609320">თვალები</translation>
 <translation id="3355823806454867987">პროქსის პარამეტრების შეცვლა…</translation>
 <translation id="3360103848165129075">გადახდების დამმუშავებლის გვერდი</translation>
-<translation id="3361596688432910856">Chrome-ის მიერ <ph name="BEGIN_EMPHASIS" />არ შეინახება<ph name="END_EMPHASIS" /> შემდეგი ინფორმაცია:
-        <ph name="BEGIN_LIST" />
-          <ph name="LIST_ITEM" />დათვალიერების ისტორია
-          <ph name="LIST_ITEM" />ქუქი-ჩანაწერები და საიტების მონაცემები
-          <ph name="LIST_ITEM" />ფორმებში მითითებული ინფორმაცია
-        <ph name="END_LIST" /></translation>
 <translation id="3362968246557010467">ეს წესები ავტომატურად დაკოპირდა მოძველებული „<ph name="OLD_POLICY" />“ წესებიდან. სანაცვლოდ უნდა გამოიყენოთ ეს წესები.</translation>
 <translation id="3364869320075768271"><ph name="URL" /> ითხოვს ვირტუალური რეალობის მოწყობილობისა და მონაცემების გამოყენების ნებართვას</translation>
 <translation id="3366477098757335611">ბარათების ნახვა</translation>
@@ -1213,12 +1210,6 @@
 <translation id="4819347708020428563">გსურთ ანოტაციების რედაქტირება ნაგულისხმევ ხედში?</translation>
 <translation id="4825496307559726072"><ph name="CREATE_GOOGLE_SHEET_FOCUSED_FRIENDLY_MATCH_TEXT" />, ახალი Google Sheet-ის სწრაფად შესაქმნელად დააჭირეთ კლავიშს Tab, შემდეგ კი Enter-ს</translation>
 <translation id="4825507807291741242">ძლიერი</translation>
-<translation id="4827402517081186284">ინკოგნიტო რეჟიმი არ ნიშნავს, რომ ონლაინ უჩინარი ხართ:
-        <ph name="BEGIN_LIST" />
-          <ph name="LIST_ITEM" />საიტებმა იცის, როდის სტუმრობთ<ph name="END_LIST_ITEM" />
-          <ph name="LIST_ITEM" />დამსაქმებლებს ან სასწავლებლებს შეუძლიათ ვების დათვალიერების აქტივობის გაკონტროლება<ph name="END_LIST_ITEM" />
-          <ph name="LIST_ITEM" />ინტერნეტპროვაიდერებს შეუძლია ვებტრაფიკის მონიტორინგი<ph name="END_LIST_ITEM" />
-        <ph name="END_LIST" /></translation>
 <translation id="4829962028570902310">იგნორირებულია, რადგან წესების განსაზღვრა შეუძლია მხოლოდ ღრუბლოვან სამომხმარებლო წესებს.</translation>
 <translation id="483241715238664915">გაფრთხილებების ჩართვა</translation>
 <translation id="4838327282952368871">არაამქვეყნიური</translation>
@@ -1788,7 +1779,6 @@
 <translation id="6757797048963528358">თქვენი მოწყობილობა ძილის რეჟიმზე გადავიდა.</translation>
 <translation id="6767985426384634228">გსურთ, განაახლოთ მისამართი?</translation>
 <translation id="6768213884286397650">Hagaki (ღია ბარათი)</translation>
-<translation id="6774185088257932239"><ph name="BEGIN_LINK" />შეიტყვეთ მეტი<ph name="END_LINK" /> ინკოგნიტო რეჟიმის შესახებ</translation>
 <translation id="6775759552199460396">JIS B2</translation>
 <translation id="67862343314499040">იისფერი</translation>
 <translation id="6786747875388722282">გაფართოებები</translation>
@@ -2268,12 +2258,6 @@
 <translation id="8317207217658302555">გსურთ, განაახლოთ ARCore?</translation>
 <translation id="831997045666694187">საღამო</translation>
 <translation id="8321476692217554900">შეტყობინებები</translation>
-<translation id="8328484624016508118">ყველა ინკოგნიტო ჩანართის დახურვის შემდეგ Chrome-ის მიერ გასუფთავდება:
-        <ph name="BEGIN_LIST" />
-          <ph name="LIST_ITEM" />ვების დათვალიერებასთან დაკავშირებული თქვენი აქტივობა ამ მოწყობილობაზე<ph name="END_LIST_ITEM" />
-          <ph name="LIST_ITEM" />თქვენი ძიების ისტორია ამ მოწყობილობაზე<ph name="END_LIST_ITEM" />
-          <ph name="LIST_ITEM" />თქვენ მიერ ფორმებში შეყვანილი ინფორმაცია<ph name="END_LIST_ITEM" />
-        <ph name="END_LIST" /></translation>
 <translation id="8332188693563227489"><ph name="HOST_NAME" />-ზე წვდომა აკრძალულია</translation>
 <translation id="833262891116910667">გამოყოფა</translation>
 <translation id="8339163506404995330"><ph name="LANGUAGE" /> გვერდები არ ითარგმნება</translation>
@@ -2357,6 +2341,7 @@
 <translation id="8669306706049782872">გამოიყენოს ინფორმაცია თქვენი ეკრანების შესახებ ფანჯრების გასაღებად და განსათავსებლად</translation>
 <translation id="867224526087042813">ხელმოწერა</translation>
 <translation id="8676424191133491403">დაყოვნების გარეშე</translation>
+<translation id="8679903780129190080">დიახ, თანახმა ვარ</translation>
 <translation id="8680536109547170164"><ph name="QUERY" />, პასუხი, <ph name="ANSWER" /></translation>
 <translation id="8681531050781943054"><ph name="PAGE" />-ზე არსებული ვებგვერდის ჩატვირთვა ვერ ხერხდება, რადგან:</translation>
 <translation id="8685155993131031756">Prc-16K</translation>
diff --git a/components/strings/components_strings_kk.xtb b/components/strings/components_strings_kk.xtb
index 9e26c2c..b28e426 100644
--- a/components/strings/components_strings_kk.xtb
+++ b/components/strings/components_strings_kk.xtb
@@ -20,7 +20,6 @@
 <translation id="1038842779957582377">белгісіз ат</translation>
 <translation id="1041998700806130099">Тапсырма парағының хабарламасы</translation>
 <translation id="1048785276086539861">Аннотацияларды өзгерткен кезде, бұл құжат бір беттік көрініске ауысады.</translation>
-<translation id="1049743911850919806">Инкогнито</translation>
 <translation id="1050038467049342496">Басқа қолданбаларды жабу</translation>
 <translation id="1055184225775184556">&amp;Қосуды болдырмау</translation>
 <translation id="1056898198331236512">Ескерту</translation>
@@ -212,6 +211,7 @@
 <translation id="1567040042588613346">Бұл саясат ойдағыдай жұмыс істеуде, бірақ басқа жерде осы саясат бойынша ауыстырылатын тап осындай мән орнатылған.</translation>
 <translation id="1569487616857761740">Жарамдылық мерзімін енгізіңіз.</translation>
 <translation id="1581080074034554886">CVC</translation>
+<translation id="1581767074483369314">Виртуалды картаны тіркеңіз.</translation>
 <translation id="1583294866416602487">Plex</translation>
 <translation id="1583429793053364125">Бұл веб-бетті көрсету кезінде қате кетті.</translation>
 <translation id="1586541204584340881">қай кеңейтімдерді орнатқаныңызды;</translation>
@@ -377,6 +377,7 @@
 <translation id="2101225219012730419">Нұсқа:</translation>
 <translation id="2102134110707549001">Күрделі құпия сөз жасау…</translation>
 <translation id="2102495993840063010">Android қолданбалары</translation>
+<translation id="2106249949168291652">Сақталды. Қауіпсіздік виртуалды картамен күшейтілсін бе?</translation>
 <translation id="2107021941795971877">Баспаны қолдау</translation>
 <translation id="2108755909498034140">Компьютерді қайта іске қосу</translation>
 <translation id="2111166930115883695">Ойнау үшін бос орын пернесін басыңыз.</translation>
@@ -532,6 +533,7 @@
 <translation id="262745152991669301">USB құрылғыларына қосылуға рұқсат сұрайды</translation>
 <translation id="2629325967560697240">Chrome-ның ең жоғарғы деңгейдегі қауіпсіздігіне ие болу үшін <ph name="BEGIN_ENHANCED_PROTECTION_LINK" />жақсартылған қорғанысты<ph name="END_ENHANCED_PROTECTION_LINK" /> қосыңыз.</translation>
 <translation id="2634124572758952069"><ph name="HOST_NAME" /> серверінің IP мекенжайын табу мүмкін емес.</translation>
+<translation id="2638001509205834345">Картаңыздың қауіпсіздігі күшейтілсін бе?</translation>
 <translation id="2639739919103226564">Күйі:</translation>
 <translation id="264810637653812429">Үйлесімді құрылғылар табылмады.</translation>
 <translation id="2649204054376361687"><ph name="CITY" />, <ph name="COUNTRY" /></translation>
@@ -664,6 +666,7 @@
 <translation id="3113284927548439113">Үшінші кідіріс</translation>
 <translation id="3115874930288085374"><ph name="ENROLLMENT_DOMAIN" /> домені деректердің сақтық көшірмесін жасап, осы <ph name="DEVICE_TYPE" /> құрылғысын қайтаруыңызды қажет етеді.</translation>
 <translation id="3116158981186517402">Ламинат</translation>
+<translation id="311958134571892113">Келесімен байланыстырылды:</translation>
 <translation id="3120730422813725195">Elo</translation>
 <translation id="31207688938192855"><ph name="BEGIN_LINK" />Connectivity Diagnostics құралын пайдаланып көріңіз<ph name="END_LINK" />.</translation>
 <translation id="3121994479408824897"><ph name="DOMAIN" /> доменіне өту</translation>
@@ -735,12 +738,6 @@
 <translation id="3345782426586609320">Көз</translation>
 <translation id="3355823806454867987">Прокси параметрлерін өзгерту…</translation>
 <translation id="3360103848165129075">Төлем өңдегіш парағы</translation>
-<translation id="3361596688432910856">Chrome-да <ph name="BEGIN_EMPHASIS" />сақталмайтын<ph name="END_EMPHASIS" /> ақпараттар:
-        <ph name="BEGIN_LIST" />
-          <ph name="LIST_ITEM" />Шолу тарихыңыз
-          <ph name="LIST_ITEM" />"Cookie" файлдары мен сайт деректері
-          <ph name="LIST_ITEM" />Пішіндерге енгізілген ақпарат
-        <ph name="END_LIST" /></translation>
 <translation id="3362968246557010467">Бұл саясат ескі <ph name="OLD_POLICY" /> саясатынан автоматты түрде көшірілді. Орнына осы саясатты пайдаланғаныңыз жөн.</translation>
 <translation id="3364869320075768271">Сайт (<ph name="URL" />) виртуалды шындық құрылғысын және деректерді пайдалануға рұқсат сұрайды.</translation>
 <translation id="3366477098757335611">Карталарды көру</translation>
@@ -1221,12 +1218,6 @@
 <translation id="4819347708020428563">Аннотацияларды әдепкі көріністе өзгерту керек пе?</translation>
 <translation id="4825496307559726072"><ph name="CREATE_GOOGLE_SHEET_FOCUSED_FRIENDLY_MATCH_TEXT" />, жаңа Google парағын жылдам жасау үшін Tab, содан кейін Enter пернесін басыңыз.</translation>
 <translation id="4825507807291741242">Қуатты</translation>
-<translation id="4827402517081186284">Инкогнито режимі интернеттегі іс-әрекетіңізді жасырмайды:
-        <ph name="BEGIN_LIST" />
-          <ph name="LIST_ITEM" />Сайттар қашан кіргеніңізді біледі.<ph name="END_LIST_ITEM" />
-          <ph name="LIST_ITEM" />Жұмыс берушілер немесе мектептер браузерді қолдану мәліметін қарай алады.<ph name="END_LIST_ITEM" />
-          <ph name="LIST_ITEM" />Интернет провайдерлері трафикті бақылай алады.<ph name="END_LIST_ITEM" />
-        <ph name="END_LIST" /></translation>
 <translation id="483241715238664915">Хабарландыруларды қосу</translation>
 <translation id="4838327282952368871">Арманшыл</translation>
 <translation id="4840250757394056958">Chrome тарихын көру</translation>
@@ -1794,7 +1785,6 @@
 <translation id="6757797048963528358">Құрылғы ұйқы күйіне өтті.</translation>
 <translation id="6767985426384634228">Мекенжайды жаңарту керек пе?</translation>
 <translation id="6768213884286397650">Hagaki (Postcard)</translation>
-<translation id="6774185088257932239">Инкогнито туралы <ph name="BEGIN_LINK" />толығырақ<ph name="END_LINK" /></translation>
 <translation id="6775759552199460396">JIS B2</translation>
 <translation id="67862343314499040">Ақшыл күлгін</translation>
 <translation id="6786747875388722282">Кеңейтімдер</translation>
@@ -2274,12 +2264,6 @@
 <translation id="8317207217658302555">ARCore жаңартылсын ба?</translation>
 <translation id="831997045666694187">Кеш</translation>
 <translation id="8321476692217554900">хабарландырулар</translation>
-<translation id="8328484624016508118">Барлық инкогнито қойындыcы жабылғанда, Chrome келесілерді жояды:
-        <ph name="BEGIN_LIST" />
-          <ph name="LIST_ITEM" />осы құрылғыдағы браузерді қолдану мәліметі;<ph name="END_LIST_ITEM" />
-          <ph name="LIST_ITEM" />осы құрылғыдағы іздеу тарихы;<ph name="END_LIST_ITEM" />
-          <ph name="LIST_ITEM" />үлгілерге енгізілген ақпарат.<ph name="END_LIST_ITEM" />
-        <ph name="END_LIST" /></translation>
 <translation id="8332188693563227489"><ph name="HOST_NAME" /> сайтына кіруге тыйым салынған</translation>
 <translation id="833262891116910667">Бөлектеу</translation>
 <translation id="8339163506404995330"><ph name="LANGUAGE" /> тіліндегі беттер аударылмайды</translation>
@@ -2363,6 +2347,7 @@
 <translation id="8669306706049782872">Терезелерді ашып, орналастыру үшін экрандар туралы ақпаратты пайдалану</translation>
 <translation id="867224526087042813">Қолтаңба</translation>
 <translation id="8676424191133491403">Кідіріс жоқ</translation>
+<translation id="8679903780129190080">Жарайды</translation>
 <translation id="8680536109547170164"><ph name="QUERY" />, жауап, <ph name="ANSWER" /></translation>
 <translation id="8681531050781943054"><ph name="PAGE" /> мекенжайындағы веб-бетті жүктеу мүмкін болмады, себебі:</translation>
 <translation id="8685155993131031756">Prc-16K</translation>
diff --git a/components/strings/components_strings_km.xtb b/components/strings/components_strings_km.xtb
index a996400..353ad315 100644
--- a/components/strings/components_strings_km.xtb
+++ b/components/strings/components_strings_km.xtb
@@ -20,7 +20,6 @@
 <translation id="1038842779957582377">ឈ្មោះមិនស្គាល់</translation>
 <translation id="1041998700806130099">សារអំពី​សន្លឹកកិច្ចការ</translation>
 <translation id="1048785276086539861">នៅពេល​អ្នក​កែចំណារ ឯកសារនេះ​នឹងត្រឡប់ទៅ​ការមើល​ទំព័រ​ទោលវិញ</translation>
-<translation id="1049743911850919806">អនាមិក</translation>
 <translation id="1050038467049342496">បិទ​កម្មវិធី​ផ្សេងទៀត</translation>
 <translation id="1055184225775184556">បកក្រោយការបន្ថែម</translation>
 <translation id="1056898198331236512">ការព្រមាន</translation>
@@ -739,12 +738,6 @@
 <translation id="3345782426586609320">ភ្នែក</translation>
 <translation id="3355823806454867987">ប្តូរការកំណត់ប្រូកស៊ី...</translation>
 <translation id="3360103848165129075">សន្លឹក​កម្មវិធីគ្រប់គ្រង​ការបង់ប្រាក់</translation>
-<translation id="3361596688432910856">Chrome <ph name="BEGIN_EMPHASIS" />នឹងមិនរក្សាទុក<ph name="END_EMPHASIS" />ព័ត៌មានខាងក្រោមទេ៖
-        <ph name="BEGIN_LIST" />
-          <ph name="LIST_ITEM" />ប្រវត្តិរុករករបស់អ្នក
-          <ph name="LIST_ITEM" />ខូគី និងទិន្នន័យទំព័រ
-          <ph name="LIST_ITEM" />ព័ត៌មានដែលបានបញ្ចូលក្នុងទម្រង់
-        <ph name="END_LIST" /></translation>
 <translation id="3362968246557010467">គោលការណ៍​នេះ​ត្រូវបាន​ចម្លង​ដោយស្វ័យប្រវត្តិ​ពី​គោលការណ៍ <ph name="OLD_POLICY" /> ដែលបាន​បញ្ឈប់។ អ្នក​គួរតែ​ប្រើ​គោលការណ៍​នេះ​ជំនួសវិញ។</translation>
 <translation id="3364869320075768271"><ph name="URL" /> ចង់ប្រើ​ទិន្នន័យ និង​ឧបករណ៍ VR របស់អ្នក</translation>
 <translation id="3366477098757335611">មើលកាត</translation>
@@ -1226,12 +1219,6 @@
 <translation id="4819347708020428563">កែចំណារនៅក្នុងទិដ្ឋភាពលំនាំដើមឬ?</translation>
 <translation id="4825496307559726072"><ph name="CREATE_GOOGLE_SHEET_FOCUSED_FRIENDLY_MATCH_TEXT" />, ចុច Tab រួចចុច Enter ដើម្បី​បង្កើត​បញ្ជី Google ថ្មីបានរហ័ស</translation>
 <translation id="4825507807291741242">មាន​ឥទ្ធិពល​ខ្លាំង</translation>
-<translation id="4827402517081186284">មុខងារឯកជន​មិនមែនធ្វើឱ្យគេ​មើលមិនឃើញអ្នក​នៅលើអ៊ីនធឺណិតនោះទេ៖
-        <ph name="BEGIN_LIST" />
-          <ph name="LIST_ITEM" />គេហទំព័រនានា​ដឹងថាពេលណា​ដែលអ្នកចូលមើល​គេហទំព័រទាំងនោះ<ph name="END_LIST_ITEM" />
-          <ph name="LIST_ITEM" />និយោជក ឬសាលារៀន​អាចតាមដាន​សកម្មភាព​រុករក​តាមអ៊ីនធឺណិត<ph name="END_LIST_ITEM" />
-          <ph name="LIST_ITEM" />ក្រុមហ៊ុន​ផ្ដល់​សេវាកម្ម​អ៊ីនធឺណិត​អាចពិនិត្យតាមដាន​ចរាចរណ៍បណ្ដាញ<ph name="END_LIST_ITEM" />
-        <ph name="END_LIST" /></translation>
 <translation id="4829962028570902310">បានមិនអើពើ ដោយសារគោលការណ៍​អាចត្រូវបានកំណត់​ដោយគោលការណ៍​អ្នកប្រើប្រាស់ពពក​តែប៉ុណ្ណោះ។</translation>
 <translation id="483241715238664915">បើក​ការព្រមាន</translation>
 <translation id="4838327282952368871">ដូចក្ដី​សុបិន</translation>
@@ -1801,7 +1788,6 @@
 <translation id="6757797048963528358">ឧបករណ៍របស់អ្នកបានដេកហើយ</translation>
 <translation id="6767985426384634228">ធ្វើបច្ចុប្បន្នភាព​អាសយដ្ឋាន​ឬ?</translation>
 <translation id="6768213884286397650">Hagaki (បណ្ណប្រៃសណីយ៍)</translation>
-<translation id="6774185088257932239"><ph name="BEGIN_LINK" />ស្វែងយល់​បន្ថែម<ph name="END_LINK" />អំពី​មុខងារ​ឯកជន</translation>
 <translation id="6775759552199460396">JIS B2</translation>
 <translation id="67862343314499040">ស្វាយ</translation>
 <translation id="6786747875388722282">កម្មវិធីបន្ថែម</translation>
@@ -2283,12 +2269,6 @@
 <translation id="8317207217658302555">ដំឡើងកំណែ ARCore ឬ?</translation>
 <translation id="831997045666694187">ល្ងាច</translation>
 <translation id="8321476692217554900">ការជូន​ដំណឹង</translation>
-<translation id="8328484624016508118">បន្ទាប់ពីបិទ​ផ្ទាំងឯកជន​ទាំងអស់ Chrome នឹងសម្អាត៖
-        <ph name="BEGIN_LIST" />
-          <ph name="LIST_ITEM" />សកម្មភាព​រុករក​តាមអ៊ីនធឺណិត​របស់អ្នកចេញពី​ឧបករណ៍នេះ<ph name="END_LIST_ITEM" />
-          <ph name="LIST_ITEM" />ប្រវត្តិ​ស្វែងរករបស់អ្នកចេញពី​ឧបករណ៍នេះ<ph name="END_LIST_ITEM" />
-          <ph name="LIST_ITEM" />ព័ត៌មានដែលបានបញ្ចូល​ក្នុងទម្រង់​បែបបទនានា<ph name="END_LIST_ITEM" />
-        <ph name="END_LIST" /></translation>
 <translation id="8332188693563227489">បានបដិសេធការចូលប្រើ <ph name="HOST_NAME" /></translation>
 <translation id="833262891116910667">រំលេច</translation>
 <translation id="8339163506404995330">ទំព័រជាភាសា <ph name="LANGUAGE" /> នឹងមិនត្រូវបានបកប្រែទេ</translation>
diff --git a/components/strings/components_strings_kn.xtb b/components/strings/components_strings_kn.xtb
index 2d8a577..553fc83e 100644
--- a/components/strings/components_strings_kn.xtb
+++ b/components/strings/components_strings_kn.xtb
@@ -20,7 +20,6 @@
 <translation id="1038842779957582377">ಆಜ್ಞಾತ ಹೆಸರು</translation>
 <translation id="1041998700806130099">ಜಾಬ್ ಶೀಟ್ ಸಂದೇಶ</translation>
 <translation id="1048785276086539861">ನೀವು ಟಿಪ್ಪಣಿಗಳನ್ನು ಎಡಿಟ್ ಮಾಡಿದಾಗ, ಈ ಡಾಕ್ಯುಮೆಂಟ್ ಒಂದೇ ಪುಟದ ವೀಕ್ಷಣೆಗೆ ಹಿಂತಿರುಗುತ್ತದೆ</translation>
-<translation id="1049743911850919806">ಅದೃಶ್ಯ</translation>
 <translation id="1050038467049342496">ಇತರ ಅಪ್ಲಿಕೇಶನ್‍ಗಳನ್ನು ಮುಚ್ಚಿ</translation>
 <translation id="1055184225775184556">&amp;ಸೇರಿಸುವುದನ್ನು ರದ್ದುಗೊಳಿಸಿ</translation>
 <translation id="1056898198331236512">ಎಚ್ಚರಿಕೆ</translation>
@@ -211,6 +210,7 @@
 <translation id="1567040042588613346">ಈ ನೀತಿಯು ಉದ್ದೇಶಿಸಿದಂತೆ ಕಾರ್ಯನಿರ್ವಹಿಸುತ್ತಿದೆ, ಆದರೆ ಅದೇ ಮೌಲ್ಯವನ್ನು ಬೇರೆಡೆ ಹೊಂದಿಸಲಾಗಿದೆ ಮತ್ತು ಅದು ಈ ನೀತಿಯನ್ನು ರದ್ದುಗೊಳಿಸುತ್ತದೆ.</translation>
 <translation id="1569487616857761740">ಅವಧಿ ಮುಗಿಯುವ ದಿನಾಂಕವನ್ನು ನಮೂದಿಸಿ</translation>
 <translation id="1581080074034554886">CVC</translation>
+<translation id="1581767074483369314">ವರ್ಚುವಲ್ ಕಾರ್ಡ್‌ಗೆ ನೋಂದಣಿ ಮಾಡಿ</translation>
 <translation id="1583294866416602487">Plex</translation>
 <translation id="1583429793053364125">ಈ ವೆಬ್‌ಪುಟವನ್ನು ಪ್ರದರ್ಶಿಸುವಾಗ ಯಾವುದೋ ತಪ್ಪು ಸಂಭವಿಸಿದೆ.</translation>
 <translation id="1586541204584340881">ನೀವು ಯಾವ ವಿಸ್ತರಣೆಗಳನ್ನು ಇನ್‌ಸ್ಟಾಲ್ ಮಾಡಿದ್ದೀರಿ</translation>
@@ -375,6 +375,7 @@
 <translation id="2101225219012730419">ಆವೃತ್ತಿ:</translation>
 <translation id="2102134110707549001">ಸದೃಢವಾದ ಪಾಸ್‌ವರ್ಡ್ ಸೂಚಿಸಿ…</translation>
 <translation id="2102495993840063010">Android ಅಪ್ಲಿಕೇಶನ್‌ಗಳು</translation>
+<translation id="2106249949168291652">ಉಳಿಸಲಾಗಿದೆ. ವರ್ಚುವಲ್ ಕಾರ್ಡ್‌ನ ಮೂಲಕ ಅದನ್ನು ಮತ್ತಷ್ಟು ಸುರಕ್ಷಿತವಾಗಿಸಬೇಕೇ?</translation>
 <translation id="2107021941795971877">ಪ್ರಿಂಟ್ ಬೆಂಬಲಗಳು</translation>
 <translation id="2108755909498034140">ನಿಮ್ಮ ಕಂಪ್ಯೂಟರ್ ಮರುಪ್ರಾರಂಭಿಸಿ</translation>
 <translation id="2111166930115883695">ಆಡಲು, ಸ್ಪೇಸ್ ಒತ್ತಿ</translation>
@@ -530,6 +531,7 @@
 <translation id="262745152991669301">USB ಸಾಧನಗಳಿಗೆ ಕನೆಕ್ಟ್ ಮಾಡಲು ಕೇಳಬಹುದು</translation>
 <translation id="2629325967560697240">Chrome ನ ಉನ್ನತ ಮಟ್ಟದ ಸುರಕ್ಷತೆಯನ್ನು ಪಡೆಯಲು, <ph name="BEGIN_ENHANCED_PROTECTION_LINK" />ವರ್ಧಿತ ಸುರಕ್ಷತೆಯನ್ನು ಆನ್ ಮಾಡಿ<ph name="END_ENHANCED_PROTECTION_LINK" /></translation>
 <translation id="2634124572758952069"><ph name="HOST_NAME" /> ನ ಸರ್ವರ್ IP ವಿಳಾಸ ಕಂಡುಬರಲಿಲ್ಲ.</translation>
+<translation id="2638001509205834345">ನಿಮ್ಮ ಕಾರ್ಡ್ ಅನ್ನು ಇನ್ನಷ್ಟು ಸುರಕ್ಷಿತವಾಗಿಸಬೇಕೇ?</translation>
 <translation id="2639739919103226564">ಸ್ಥಿತಿ: </translation>
 <translation id="264810637653812429">ಯಾವುದೇ ಹೊಂದಾಣಿಕೆಯಾಗುವ ಸಾಧನಗಳು ಕಂಡುಬಂದಿಲ್ಲ.</translation>
 <translation id="2649204054376361687"><ph name="CITY" />, <ph name="COUNTRY" /></translation>
@@ -662,6 +664,7 @@
 <translation id="3113284927548439113">ಮೂರನೇ ಶಿಫ್ಟ್</translation>
 <translation id="3115874930288085374"><ph name="ENROLLMENT_DOMAIN" />, ನಿಮ್ಮ ಡೇಟಾವನ್ನು ನೀವು ಬ್ಯಾಕಪ್ ಮಾಡಬೇಕೆಂದು ಮತ್ತು ಈ <ph name="DEVICE_TYPE" /> ಸಾಧನವನ್ನು ಹಿಂತಿರುಗಿಸಬೇಕೆಂದು ಬಯಸುತ್ತದೆ.</translation>
 <translation id="3116158981186517402">ಲ್ಯಾಮಿನೇಟ್ ಮಾಡಿ</translation>
+<translation id="311958134571892113">ಇದರ ಜೊತೆ ಲಿಂಕ್ ಆಗಿದೆ</translation>
 <translation id="3120730422813725195">Elo</translation>
 <translation id="31207688938192855"><ph name="BEGIN_LINK" />ಸಂಪರ್ಕ ಡಯಾಗ್ನಾಸ್ಟಿಕ್ಸ್ ರನ್ ಮಾಡಲು ಪ್ರಯತ್ನಿಸಿ‌<ph name="END_LINK" />.</translation>
 <translation id="3121994479408824897"><ph name="DOMAIN" /> ಗೆ ಹೋಗಿ</translation>
@@ -732,12 +735,6 @@
 <translation id="3345782426586609320">ಕಣ್ಣುಗಳು</translation>
 <translation id="3355823806454867987">ಪ್ರಾಕ್ಸಿ ಸೆಟ್ಟಿಂಗ್‌ಗಳನ್ನು ಬದಲಿಸಿ...</translation>
 <translation id="3360103848165129075">ಪಾವತಿ ಹ್ಯಾಂಡ್‌ಲರ್ ಶೀಟ್</translation>
-<translation id="3361596688432910856">ಈ ಕೆಳಗಿನ ಮಾಹಿತಿಯನ್ನು Chrome <ph name="BEGIN_EMPHASIS" />ಉಳಿಸುವುದಿಲ್ಲ<ph name="END_EMPHASIS" />:
-        <ph name="BEGIN_LIST" />
-          <ph name="LIST_ITEM" />ನಿಮ್ಮ ಬ್ರೌಸಿಂಗ್ ಇತಿಹಾಸ
-          <ph name="LIST_ITEM" />ಕುಕೀಸ್ ಮತ್ತು ಸೈಟ್ ಡೇಟಾ
-          <ph name="LIST_ITEM" />ಫಾರ್ಮ್‌ಗಳಲ್ಲಿ ನಮೂದಿಸಿದ ಮಾಹಿತಿ
-        <ph name="END_LIST" /></translation>
 <translation id="3362968246557010467">ತಡೆಹಿಡಿಯಲಾಗಿರುವ <ph name="OLD_POLICY" /> ಕಾರ್ಯನೀತಿಯಿಂದ, ಈ ಕಾರ್ಯನೀತಿಯನ್ನು ಸ್ವಯಂಚಾಲಿತವಾಗಿ ನಕಲಿಸಲಾಗಿದೆ. ಅದರ ಬದಲಿಗೆ, ನೀವು ಇದನ್ನು ಬಳಸಬೇಕು.</translation>
 <translation id="3364869320075768271">ನಿಮ್ಮ ವರ್ಚುವಲ್ ರಿಯಾಲಿಟಿ ಸಾಧನ ಮತ್ತು ಡೇಟಾವನ್ನು <ph name="URL" /> ಬಳಸಲು ಬಯಸುತ್ತಿದೆ</translation>
 <translation id="3366477098757335611">ಕಾರ್ಡ್‌ಗಳನ್ನು ವೀಕ್ಷಿಸಿ</translation>
@@ -1212,12 +1209,6 @@
 <translation id="4819347708020428563">ಡೀಫಾಲ್ಟ್ ವೀಕ್ಷಣೆಯಲ್ಲಿ ಟಿಪ್ಪಣಿಗಳನ್ನು ಎಡಿಟ್ ಮಾಡಬೇಕೆ?</translation>
 <translation id="4825496307559726072"><ph name="CREATE_GOOGLE_SHEET_FOCUSED_FRIENDLY_MATCH_TEXT" />, ಹೊಸ Google Sheet ಅನ್ನು ತ್ವರಿತವಾಗಿ ರಚಿಸಲು Tab ಒತ್ತಿ, ನಂತರ Enter ಒತ್ತಿ</translation>
 <translation id="4825507807291741242">ಪ್ರಬಲ</translation>
-<translation id="4827402517081186284">ಅಜ್ಞಾತ ಮೋಡ್ ನೀವು ಆನ್‌ಲೈನ್‌ನಲ್ಲಿ ಅಗೋಚರವಾಗಿರುವಂತೆ ಮಾಡುವುದಿಲ್ಲ:
-        <ph name="BEGIN_LIST" />
-          <ph name="LIST_ITEM" />ನೀವು ಸೈಟ್‌ಗಳಿಗೆ ಭೇಟಿ ನೀಡಿದಾಗ ಅವುಗಳಿಗೆ ತಿಳಿಯುತ್ತದೆ<ph name="END_LIST_ITEM" />
-          <ph name="LIST_ITEM" />ಉದ್ಯೋಗದಾತರು ಅಥವಾ ಶಾಲೆಗಳು ಬ್ರೌಸಿಂಗ್ ಚಟುವಟಿಕೆಯನ್ನು ಟ್ರ್ಯಾಕ್ ಮಾಡಬಹುದು<ph name="END_LIST_ITEM" />
-          <ph name="LIST_ITEM" />ಇಂಟರ್ನೆಟ್ ಸೇವೆ ಒದಗಿಸುವವರು ವೆಬ್ ಟ್ರಾಫಿಕ್ ಅನ್ನು ಮೇಲ್ವಿಚಾರಣೆ ಮಾಡಬಹುದು<ph name="END_LIST_ITEM" />
-        <ph name="END_LIST" /></translation>
 <translation id="4829962028570902310">ಕ್ಲೌಡ್ ಬಳಕೆದಾರರ ನೀತಿಯ ಮೂಲಕ ಮಾತ್ರ ನೀತಿಯನ್ನು ಹೊಂದಿಸಬಹುದು, ಆದ್ದರಿಂದ ನಿರ್ಲಕ್ಷಿಸಲಾಗಿದೆ.</translation>
 <translation id="483241715238664915">ಎಚ್ಚರಿಕೆಗಳನ್ನು ಆನ್ ಮಾಡಿ</translation>
 <translation id="4838327282952368871">ಕನಸು</translation>
@@ -1786,7 +1777,6 @@
 <translation id="6757797048963528358">ನಿಮ್ಮ ಸಾಧನವು ನಿದ್ರಾವಸ್ಥೆಗೆ ಹೋಗಿದೆ.</translation>
 <translation id="6767985426384634228">ವಿಳಾಸ ಅಪ್‌ಡೇಟ್ ಮಾಡಬೇಕೇ?</translation>
 <translation id="6768213884286397650">Hagaki (Postcard)</translation>
-<translation id="6774185088257932239">ಅಜ್ಞಾತ ಮೋಡ್ ಕುರಿತು <ph name="BEGIN_LINK" />ಇನ್ನಷ್ಟು ತಿಳಿಯಿರಿ<ph name="END_LINK" /></translation>
 <translation id="6775759552199460396">JIS B2</translation>
 <translation id="67862343314499040">ನೇರಳೆ</translation>
 <translation id="6786747875388722282">ವಿಸ್ತರಣೆಗಳು</translation>
@@ -2265,12 +2255,6 @@
 <translation id="8317207217658302555">ARCore ಅನ್ನು ಅಪ್‌ಡೇಟ್ ಮಾಡಬೇಕೆ?</translation>
 <translation id="831997045666694187">ಸಂಜೆ</translation>
 <translation id="8321476692217554900">ಅಧಿಸೂಚನೆಗಳು</translation>
-<translation id="8328484624016508118">ಎಲ್ಲಾ ಅಜ್ಞಾತ ಟ್ಯಾಬ್‌ಗಳನ್ನು ಮುಚ್ಚಿದ ನಂತರ, Chrome ಇವುಗಳನ್ನು ತೆರವುಗೊಳಿಸುತ್ತದೆ:
-        <ph name="BEGIN_LIST" />
-          <ph name="LIST_ITEM" />ಈ ಸಾಧನದಲ್ಲಿನ ನಿಮ್ಮ ಬ್ರೌಸಿಂಗ್ ಚಟುವಟಿಕೆ<ph name="END_LIST_ITEM" />
-          <ph name="LIST_ITEM" />ಈ ಸಾಧನದಲ್ಲಿನ ನಿಮ್ಮ ಹುಡುಕಾಟದ ಇತಿಹಾಸ<ph name="END_LIST_ITEM" />
-          <ph name="LIST_ITEM" />ಫಾರ್ಮ್‌ಗಳಲ್ಲಿ ನಮೂದಿಸಿದ ಮಾಹಿತಿ<ph name="END_LIST_ITEM" />
-        <ph name="END_LIST" /></translation>
 <translation id="8332188693563227489"><ph name="HOST_NAME" /> ಗೆ ಪ್ರವೇಶವನ್ನು ನಿರಾಕರಿಸಲಾಗಿದೆ</translation>
 <translation id="833262891116910667">ಹೈಲೈಟ್ ಮಾಡಿ</translation>
 <translation id="8339163506404995330"><ph name="LANGUAGE" /> ನಲ್ಲಿನ ಪುಟಗಳನ್ನು ಅನುವಾದ ಮಾಡಲಾಗುವುದಿಲ್ಲ</translation>
@@ -2355,6 +2339,7 @@
 <translation id="8669306706049782872">ವಿಂಡೋಗಳನ್ನು ತೆರೆಯಲು ಮತ್ತು ಇರಿಸಲು ನಿಮ್ಮ ಸ್ಕ್ರೀನ್‌ಗಳ ಕುರಿತಾದ ಮಾಹಿತಿಯನ್ನು ಬಳಸಿ</translation>
 <translation id="867224526087042813">ಸಹಿ</translation>
 <translation id="8676424191133491403">ಯಾವುದೇ ವಿಳಂಬವಿಲ್ಲ</translation>
+<translation id="8679903780129190080">ಹೌದು, ನನಗೆ ಒಪ್ಪಿಗೆಯಿದೆ</translation>
 <translation id="8680536109547170164"><ph name="QUERY" />, ಉತ್ತರ, <ph name="ANSWER" /></translation>
 <translation id="8681531050781943054"><ph name="PAGE" /> ನಲ್ಲಿ ವೆಬ್‌ಪುಟವನ್ನು ಈ ಕಾರಣದಿಂದ ಲೋಡ್ ಮಾಡಲು ಸಾಧ್ಯವಾಗಲಿಲ್ಲ:</translation>
 <translation id="8685155993131031756">Prc-16K</translation>
diff --git a/components/strings/components_strings_ko.xtb b/components/strings/components_strings_ko.xtb
index 161911e..24e2b3a 100644
--- a/components/strings/components_strings_ko.xtb
+++ b/components/strings/components_strings_ko.xtb
@@ -20,7 +20,6 @@
 <translation id="1038842779957582377">알 수 없는 이름</translation>
 <translation id="1041998700806130099">작업 시트 메시지</translation>
 <translation id="1048785276086539861">주석을 수정하면 문서가 단일 페이지 뷰로 돌아갑니다.</translation>
-<translation id="1049743911850919806">시크릿 모드</translation>
 <translation id="1050038467049342496">다른 앱 닫기</translation>
 <translation id="1055184225775184556">추가 실행 취소(&amp;U)</translation>
 <translation id="1056898198331236512">경고</translation>
@@ -732,12 +731,6 @@
 <translation id="3345782426586609320">눈</translation>
 <translation id="3355823806454867987">프록시 설정 변경...</translation>
 <translation id="3360103848165129075">결제 핸들러 시트</translation>
-<translation id="3361596688432910856">Chrome에 다음 정보가 <ph name="BEGIN_EMPHASIS" />저장되지 않습니다<ph name="END_EMPHASIS" />.
-        <ph name="BEGIN_LIST" />
-          <ph name="LIST_ITEM" />방문 기록
-          <ph name="LIST_ITEM" />쿠키 및 사이트 데이터
-          <ph name="LIST_ITEM" />양식에 입력한 정보
-        <ph name="END_LIST" /></translation>
 <translation id="3362968246557010467">이 정책은 지원 중단된 <ph name="OLD_POLICY" /> 정책에서 자동으로 복사되었습니다. 이 정책을 대신 사용해야 합니다.</translation>
 <translation id="3364869320075768271"><ph name="URL" />에서 가상 현실 기기 및 데이터를 사용하려고 합니다.</translation>
 <translation id="3366477098757335611">카드 보기</translation>
@@ -1213,12 +1206,6 @@
 <translation id="4819347708020428563">기본 뷰에서 주석을 수정할까요?</translation>
 <translation id="4825496307559726072"><ph name="CREATE_GOOGLE_SHEET_FOCUSED_FRIENDLY_MATCH_TEXT" />, Tab을 누른 다음 Enter를 눌러 빠르게 새 Google 시트 만들기</translation>
 <translation id="4825507807291741242">강력함</translation>
-<translation id="4827402517081186284">시크릿 모드를 사용해도 나의 온라인 활동이 완전히 비공개로 유지되지는 않습니다.
-        <ph name="BEGIN_LIST" />
-          <ph name="LIST_ITEM" />사이트에서 내가 방문했는지 알 수 있습니다.<ph name="END_LIST_ITEM" />
-          <ph name="LIST_ITEM" />직장 또는 학교에서 탐색 활동을 추적할 수 있습니다.<ph name="END_LIST_ITEM" />
-          <ph name="LIST_ITEM" />인터넷 서비스 제공업체에서 웹 트래픽을 모니터링할 수 있습니다.<ph name="END_LIST_ITEM" />
-        <ph name="END_LIST" /></translation>
 <translation id="4829962028570902310">클라우드 사용자 정책으로만 설정할 수 있는 정책이므로 무시되었습니다.</translation>
 <translation id="483241715238664915">경고 켜기</translation>
 <translation id="4838327282952368871">꿈</translation>
@@ -1788,7 +1775,6 @@
 <translation id="6757797048963528358">기기가 절전 모드 상태입니다.</translation>
 <translation id="6767985426384634228">주소를 업데이트하시겠습니까?</translation>
 <translation id="6768213884286397650">Hagaki(엽서)</translation>
-<translation id="6774185088257932239">시크릿 모드에 관해 <ph name="BEGIN_LINK" />자세히 알아보기<ph name="END_LINK" /></translation>
 <translation id="6775759552199460396">JIS B2</translation>
 <translation id="67862343314499040">보라색</translation>
 <translation id="6786747875388722282">확장 프로그램</translation>
@@ -2267,12 +2253,6 @@
 <translation id="8317207217658302555">ARCore를 업데이트하시겠습니까?</translation>
 <translation id="831997045666694187">저녁</translation>
 <translation id="8321476692217554900">알림</translation>
-<translation id="8328484624016508118">모든 시크릿 탭을 종료하면 Chrome에서 다음 항목을 삭제합니다.
-        <ph name="BEGIN_LIST" />
-          <ph name="LIST_ITEM" />기기의 탐색 활동<ph name="END_LIST_ITEM" />
-          <ph name="LIST_ITEM" />기기의 검색 기록<ph name="END_LIST_ITEM" />
-          <ph name="LIST_ITEM" />양식에 입력된 정보<ph name="END_LIST_ITEM" />
-        <ph name="END_LIST" /></translation>
 <translation id="8332188693563227489"><ph name="HOST_NAME" />에 대한 액세스가 거부됨</translation>
 <translation id="833262891116910667">강조표시</translation>
 <translation id="8339163506404995330"><ph name="LANGUAGE" />로 된 페이지를 번역하지 않습니다.</translation>
diff --git a/components/strings/components_strings_ky.xtb b/components/strings/components_strings_ky.xtb
index 81ba353..fd57a13 100644
--- a/components/strings/components_strings_ky.xtb
+++ b/components/strings/components_strings_ky.xtb
@@ -20,7 +20,6 @@
 <translation id="1038842779957582377">белгисиз ат</translation>
 <translation id="1041998700806130099">Жумуш барагынын билдирүүсү</translation>
 <translation id="1048785276086539861">Аннотацияларды түзөтүүдө бул документ бир бет көрүнүшүнө кайтып келет</translation>
-<translation id="1049743911850919806">Жашыруун</translation>
 <translation id="1050038467049342496">Башка колдонмолорду жабуу</translation>
 <translation id="1055184225775184556">Кошууну &amp;жасабоо</translation>
 <translation id="1056898198331236512">Эскертүү</translation>
@@ -740,12 +739,6 @@
 <translation id="3345782426586609320">Көз</translation>
 <translation id="3355823806454867987">Прокси жөндөөлөрүн өзгөртүү…</translation>
 <translation id="3360103848165129075">Төлөм иштетүү барагы</translation>
-<translation id="3361596688432910856">Chrome'до төмөнкү маалымат<ph name="BEGIN_EMPHASIS" />сактабайт<ph name="END_EMPHASIS" />:
-        <ph name="BEGIN_LIST" />
-          <ph name="LIST_ITEM" />Серептөө таржымалыңыз
-          <ph name="LIST_ITEM" />Кукилер жана сайттардын дайындары
-          <ph name="LIST_ITEM" />Формаларга киргизилген маалымат
-        <ph name="END_LIST" /></translation>
 <translation id="3362968246557010467">Бул саясаттын мааниси жоюлган <ph name="OLD_POLICY" /> саясатынан автоматтык түрдө көчүрүлдү. Анын ордуна бул саясатты колдонуңуз.</translation>
 <translation id="3364869320075768271"><ph name="URL" /> виртуалдык чындык түзмөктөрүңүздү жана дайын-даректериңизди колдонууга уруксат сурап жатат</translation>
 <translation id="3366477098757335611">Карталарды көрүү</translation>
@@ -1225,12 +1218,6 @@
 <translation id="4819347708020428563">Ананнотацияларды демейки көрүнүштө түзөтөсүзбү?</translation>
 <translation id="4825496307559726072"><ph name="CREATE_GOOGLE_SHEET_FOCUSED_FRIENDLY_MATCH_TEXT" />, жаңы Google таблицасын тез түзүү үчүн Tab, андан кийин Enter баскычын басыңыз</translation>
 <translation id="4825507807291741242">Күчтүү</translation>
-<translation id="4827402517081186284">Жашыруун режимде айрым аракеттериңиз көрүнөт:
-        <ph name="BEGIN_LIST" />
-          <ph name="LIST_ITEM" />Сайттар киргениңизди билип турушат<ph name="END_LIST_ITEM" />
-          <ph name="LIST_ITEM" />Жумуш берүүчүлөр же окуу жайлар колдонуучулардын серепчидеги аракеттерине көз сала алышат<ph name="END_LIST_ITEM" />
-          <ph name="LIST_ITEM" />Интернет кызматын жабдуучулар веб трафикти көзөмөлдөй алышат<ph name="END_LIST_ITEM" />
-        <ph name="END_LIST" /></translation>
 <translation id="4829962028570902310">Четке кагылды, анткени саясатты булуттагы колдонуучулар үчүн саясат аркылуу гана тууралоого болот.</translation>
 <translation id="483241715238664915">Эскертүүлөрдү күйгүзүү</translation>
 <translation id="4838327282952368871">Кыялкеч</translation>
@@ -1800,7 +1787,6 @@
 <translation id="6757797048963528358">Түзмөгүңүз уктап калды.</translation>
 <translation id="6767985426384634228">Дарек жаңыртылсынбы?</translation>
 <translation id="6768213884286397650">Hagaki (Ачык кат)</translation>
-<translation id="6774185088257932239">Жашыруун режим жөнүндө <ph name="BEGIN_LINK" />кеңири маалымат<ph name="END_LINK" /></translation>
 <translation id="6775759552199460396">JIS B2 (515mm x 728mm)</translation>
 <translation id="67862343314499040">Кызгылт көк</translation>
 <translation id="6786747875388722282">Кеңейтүүлөр</translation>
@@ -2280,12 +2266,6 @@
 <translation id="8317207217658302555">ARCore жаңыртылсынбы?</translation>
 <translation id="831997045666694187">Кече</translation>
 <translation id="8321476692217554900">билдирмелер</translation>
-<translation id="8328484624016508118">Жашыруун өтмөктөрдүн баары жабылгандан кийин, Chrome төмөнкүлөрдү тазалайт:
-        <ph name="BEGIN_LIST" />
-          <ph name="LIST_ITEM" />Ушул түзмөктөгү вебсайтта жасаган аракеттериңизди<ph name="END_LIST_ITEM" />
-          <ph name="LIST_ITEM" />Ушул түзмөктө издеген нерселериңизди<ph name="END_LIST_ITEM" />
-          <ph name="LIST_ITEM" />Формаларга киргизилген маалыматтарды<ph name="END_LIST_ITEM" />
-        <ph name="END_LIST" /></translation>
 <translation id="8332188693563227489"><ph name="HOST_NAME" /> сайтына кирүү мүмкүнчүлүгү четке кагылды</translation>
 <translation id="833262891116910667">Бөлүп көрсөтүү</translation>
 <translation id="8339163506404995330"><ph name="LANGUAGE" /> тилиндеги барактар которулбайт</translation>
@@ -2543,7 +2523,6 @@
 <translation id="9215416866750762878">Иштеп жаткан колдонмо Chrome’дун Интернетке коопсуз туташуусуна тоскоол болуп жатат</translation>
 <translation id="9219103736887031265">Сүрөттөр</translation>
 <translation id="922152298093051471">Chrome'ду ыңгайлаштыруу</translation>
-<translation id="922274508605516859">Шылуундуктан коргоого көмөктөшүү үчүн виртуалдык карта чыныгы картаңыздын маалыматын жашырат.</translation>
 <translation id="933712198907837967">Diners Club</translation>
 <translation id="935608979562296692">ФОРМАНЫ ТАЗАЛОО</translation>
 <translation id="936474030629450166">Super-B</translation>
diff --git a/components/strings/components_strings_lo.xtb b/components/strings/components_strings_lo.xtb
index 291ddb5..f67bb99 100644
--- a/components/strings/components_strings_lo.xtb
+++ b/components/strings/components_strings_lo.xtb
@@ -20,7 +20,6 @@
 <translation id="1038842779957582377">ຊື່ບໍ່ຮູ້ຈັກ</translation>
 <translation id="1041998700806130099">ຂໍ້ຄວາມແຜ່ນວຽກ</translation>
 <translation id="1048785276086539861">ເມື່ອທ່ານແກ້ໄຂຄຳອະທິບາຍຄວາມເຫັນດ ເອກະສານນີ້ຈະກັບໄປເປັນມຸມມອງແບບໜ້າດຽວ</translation>
-<translation id="1049743911850919806">ບໍ່​ເຜີຍ​ຕົວຕົນ</translation>
 <translation id="1050038467049342496">ປິດແອັບອື່ນ</translation>
 <translation id="1055184225775184556">ປ່ຽນ​ຄືນຄໍາສັ່ງເພີ່ມ</translation>
 <translation id="1056898198331236512">ຄໍາເຕືອນ</translation>
@@ -740,12 +739,6 @@
 <translation id="3345782426586609320">​ຕາ</translation>
 <translation id="3355823806454867987">ປ່ຽນການຕັ້ງຄ່າພຣັອກຊີ...</translation>
 <translation id="3360103848165129075">ແຜ່ນວຽກຂອງເຄື່ອງຈັດການການຊຳລະເງິນ</translation>
-<translation id="3361596688432910856">Chrome <ph name="BEGIN_EMPHASIS" />ຈະບໍ່ບັນທຶກ<ph name="END_EMPHASIS" /> ຂໍ້ມູນຕໍ່ໄປນີ້:
-        <ph name="BEGIN_LIST" />
-          <ph name="LIST_ITEM" />ປະຫວັດການທ່ອງເວັບຂອງທ່ານ
-          <ph name="LIST_ITEM" />ຄຸກກີ້ ແລະ ຂໍ້ມູນເວັບໄຊ
-          <ph name="LIST_ITEM" />ຂໍ້ມູນທີ່ປ້ອນໃສ່ແບບຟອມຕ່າງໆ
-        <ph name="END_LIST" /></translation>
 <translation id="3362968246557010467">ນະໂຍບາຍນີ້ຖືກສຳເນົາໂດຍອັດຕະໂນມັດຈາກນະໂຍບາຍ <ph name="OLD_POLICY" /> ທີ່ເຊົາຮອງຮັບແລ້ວ. ທ່ານຄວນໃຊ້ນະໂຍບາຍນີ້ແທນ.</translation>
 <translation id="3364869320075768271"><ph name="URL" /> ຕ້ອງການໃຊ້ອຸປະກອນ ແລະ ຂໍ້ມູນເວີຊົວ ຣິອາລິຕີ</translation>
 <translation id="3366477098757335611">ເບິ່ງບັດ</translation>
@@ -1226,12 +1219,6 @@
 <translation id="4819347708020428563">ແກ້ໄຂຄຳອະທິບາຍຄວາມເຫັນໃນມຸມມອງເລີ່ມຕົ້ນບໍ?</translation>
 <translation id="4825496307559726072"><ph name="CREATE_GOOGLE_SHEET_FOCUSED_FRIENDLY_MATCH_TEXT" />, ກົດ Tab ຈາກນັ້ນກົດ Enter ເພື່ອສ້າງ Google Sheet ໃໝ່ໄດ້ຢ່າງວ່ອງໄວ</translation>
 <translation id="4825507807291741242">ຊົງພະລັງ</translation>
-<translation id="4827402517081186284">ໂໝດບໍ່ເປີດເຜີຍຕົວຕົນບໍ່ໄດ້ເຮັດໃຫ້ທ່ານຫາຍຕົວໄດ້ໃນເວລາອອນລາຍ:
-        <ph name="BEGIN_LIST" />
-          <ph name="LIST_ITEM" />ເວັບໄຊຕ່າງໆຮູ້ວ່າທ່ານເຂົ້າເບິ່ງຕອນໃດ<ph name="END_LIST_ITEM" />
-          <ph name="LIST_ITEM" />ນາຍຈ້າງ ຫຼື ໂຮງຮຽນສາມາດຕິດຕາມການເຄື່ອນໄຫວການທ່ອງເວັບໄດ້<ph name="END_LIST_ITEM" />
-          <ph name="LIST_ITEM" />ຜູ້ໃຫ້ບໍລິການອິນເຕີເນັດອາດຕິດຕາມທຣາບຟິກເວັບໄດ້<ph name="END_LIST_ITEM" />
-        <ph name="END_LIST" /></translation>
 <translation id="4829962028570902310">ຖືກເພີກເສີຍແລ້ວເນື່ອງຈາກສາມາດຕັ້ງນະໂຍບາຍດັ່ງກ່າວໄດ້ໂດຍນະໂຍບາຍຜູ້ໃຊ້ເທົ່ານັ້ນ.</translation>
 <translation id="483241715238664915">ເປີດໃຊ້ຄຳເຕືອນ</translation>
 <translation id="4838327282952368871">ຊວນຝັນ</translation>
@@ -1801,7 +1788,6 @@
 <translation id="6757797048963528358">ອຸປະກອນຂອງທ່ານໄດ້ເຂົ້າສູ່ໂໝດນອນຫຼັບແລ້ວ.</translation>
 <translation id="6767985426384634228">ອັບເດດທີ່ຢູ່ບໍ?</translation>
 <translation id="6768213884286397650">Hagaki (ໂພສກາດ)</translation>
-<translation id="6774185088257932239"><ph name="BEGIN_LINK" />ສຶກສາເພີ່ມເຕີມ<ph name="END_LINK" /> ກ່ຽວກັບໂໝດບໍ່ເປີດເຜີຍຕົວຕົນ</translation>
 <translation id="6775759552199460396">JIS B2</translation>
 <translation id="67862343314499040">ສີມ່ວງ</translation>
 <translation id="6786747875388722282">ສ່ວນຂະຫຍາຍ</translation>
@@ -2281,12 +2267,6 @@
 <translation id="8317207217658302555">ອັບເດດ ARCore ບໍ?</translation>
 <translation id="831997045666694187">ຕອນແລງ</translation>
 <translation id="8321476692217554900">ການແຈ້ງເຕືອນ</translation>
-<translation id="8328484624016508118">ຫຼັງຈາກການປິດແຖບ​ບໍ່ເປີດເຜີຍຕົວຕົນທັງໝົດແລ້ວ, Chrome ຈະລຶບລ້າງ:
-        <ph name="BEGIN_LIST" />
-          <ph name="LIST_ITEM" />ການເຄື່ອນໄຫວການທ່ອງເວັບຂອງທ່ານຈາກອຸປະກອນນີ້<ph name="END_LIST_ITEM" />
-          <ph name="LIST_ITEM" />ປະ​ຫວັດ​ການ​ຊອກຫາຂອງທ່ານຈາກອຸປະກອນນີ້<ph name="END_LIST_ITEM" />
-          <ph name="LIST_ITEM" />ຂໍ້ມູນທີ່ລະບຸໃສ່ໃນແບບຟອມຕ່າງໆ<ph name="END_LIST_ITEM" />
-        <ph name="END_LIST" /></translation>
 <translation id="8332188693563227489">ການເຂົ້າເຖິງ <ph name="HOST_NAME" /> ຖືກປະຕິເສດແລ້ວ</translation>
 <translation id="833262891116910667">ໄຮໄລ</translation>
 <translation id="8339163506404995330">ໜ້າຕ່າງໆໃນ <ph name="LANGUAGE" /> ຈະບໍ່ຖືກແປ</translation>
@@ -2544,7 +2524,6 @@
 <translation id="9215416866750762878">ແອັບພລິເຄຊັນໃດໜຶ່ງກຳລັງຢຸດ Chrome ຈາກການເຊື່ອມຕໍ່ກັບເວັບໄຊນີ້ຢ່າງປອດໄພ</translation>
 <translation id="9219103736887031265">ຮູບ</translation>
 <translation id="922152298093051471">ປັບແຕ່ງ Chrome</translation>
-<translation id="922274508605516859">ບັດສະເໝືອນຈະປອມແປງບັດແທ້ຂອງທ່ານເພື່ອຊ່ວຍປົກປ້ອງທ່ານຈາກຄວາມສ່ຽງໃນການສໍ້ໂກງ.</translation>
 <translation id="933712198907837967">ບັດ Diners Club</translation>
 <translation id="935608979562296692">ລຶບແບບຟອມ</translation>
 <translation id="936474030629450166">Super-B</translation>
diff --git a/components/strings/components_strings_lt.xtb b/components/strings/components_strings_lt.xtb
index a110dc0e..bb09274 100644
--- a/components/strings/components_strings_lt.xtb
+++ b/components/strings/components_strings_lt.xtb
@@ -20,7 +20,6 @@
 <translation id="1038842779957582377">nežinomas pavadinimas</translation>
 <translation id="1041998700806130099">Užduoties lapo pranešimas</translation>
 <translation id="1048785276086539861">Kai redaguosite komentarus, bus pateikta šio dokumento vieno puslapio peržiūra</translation>
-<translation id="1049743911850919806">Inkognito</translation>
 <translation id="1050038467049342496">Uždarykite kitas programas</translation>
 <translation id="1055184225775184556">&amp;Anuliuoti pridėjimą</translation>
 <translation id="1056898198331236512">Įspėjimas</translation>
@@ -737,12 +736,6 @@
 <translation id="3345782426586609320">Akys</translation>
 <translation id="3355823806454867987">Pakeisti įgaliotojo serverio nustatymus...</translation>
 <translation id="3360103848165129075">Mokėjimo doroklės lapas</translation>
-<translation id="3361596688432910856">„Chrome“ <ph name="BEGIN_EMPHASIS" />nesaugos<ph name="END_EMPHASIS" /> šios informacijos:
-        <ph name="BEGIN_LIST" />
-          <ph name="LIST_ITEM" />naršymo istorijos;
-          <ph name="LIST_ITEM" />slapukų ir svetainių duomenų;
-          <ph name="LIST_ITEM" />formose įvestos informacijos.
-        <ph name="END_LIST" /></translation>
 <translation id="3362968246557010467">Ši politika automatiškai nukopijuota iš nebenaudojamos politikos „<ph name="OLD_POLICY" />“. Turėtumėte naudoti šią politiką vietoj senosios.</translation>
 <translation id="3364869320075768271"><ph name="URL" /> nori naudoti jūsų virtualiosios realybės įrenginį ir duomenis</translation>
 <translation id="3366477098757335611">Peržiūrėti korteles</translation>
@@ -1223,12 +1216,7 @@
 <translation id="4819347708020428563">Redaguoti komentarus numatytajame rodinyje?</translation>
 <translation id="4825496307559726072"><ph name="CREATE_GOOGLE_SHEET_FOCUSED_FRIENDLY_MATCH_TEXT" />, paspauskite tabuliavimo klavišą, tada – „Enter“, jei norite greitai sukurti naują „Google“ skaičiuoklę</translation>
 <translation id="4825507807291741242">Veiksminga</translation>
-<translation id="4827402517081186284">Naudodami inkognito režimą netampate nematomi internete:
-        <ph name="BEGIN_LIST" />
-          <ph name="LIST_ITEM" />svetainės žino, kada apsilankote;<ph name="END_LIST_ITEM" />
-          <ph name="LIST_ITEM" />darbdaviai ar mokyklos gali stebėti naršymo veiklą;<ph name="END_LIST_ITEM" />
-          <ph name="LIST_ITEM" />interneto paslaugų teikėjai galistebėti žiniatinklio srautą.<ph name="END_LIST_ITEM" />
-        <ph name="END_LIST" /></translation>
+<translation id="4829962028570902310">Nepaisoma, nes politika gali būti nustatyta tik pagal debesies naudotojo politiką.</translation>
 <translation id="483241715238664915">Įjungti įspėjimus</translation>
 <translation id="4838327282952368871">Svajinga</translation>
 <translation id="4840250757394056958">Peržiūrėti „Chrome“ istoriją</translation>
@@ -1797,7 +1785,6 @@
 <translation id="6757797048963528358">Įjungta įrenginio miego būsena.</translation>
 <translation id="6767985426384634228">Atnaujinti adresą?</translation>
 <translation id="6768213884286397650">„Hagaki“ (atvirukas)</translation>
-<translation id="6774185088257932239"><ph name="BEGIN_LINK" />Sužinokite daugiau<ph name="END_LINK" /> apie inkognito režimą.</translation>
 <translation id="6775759552199460396">JIS B2</translation>
 <translation id="67862343314499040">Violetinė</translation>
 <translation id="6786747875388722282">Plėtiniai</translation>
@@ -2277,12 +2264,6 @@
 <translation id="8317207217658302555">Atnaujinti „ARCore“?</translation>
 <translation id="831997045666694187">Vakaras</translation>
 <translation id="8321476692217554900">pranešimai</translation>
-<translation id="8328484624016508118">Uždarius visus inkognito skirtukus, „Chrome“ išvalo:
-        <ph name="BEGIN_LIST" />
-          <ph name="LIST_ITEM" />naršymo veiklą iš šio įrenginio;<ph name="END_LIST_ITEM" />
-          <ph name="LIST_ITEM" />paieškos istoriją iš šio įrenginio;<ph name="END_LIST_ITEM" />
-          <ph name="LIST_ITEM" />formose įvestą informaciją.<ph name="END_LIST_ITEM" />
-        <ph name="END_LIST" /></translation>
 <translation id="8332188693563227489">Prieiga prie <ph name="HOST_NAME" /> atmesta</translation>
 <translation id="833262891116910667">Paryškinti</translation>
 <translation id="8339163506404995330">Puslapiai, parašyti <ph name="LANGUAGE" />, verčiami nebus</translation>
diff --git a/components/strings/components_strings_lv.xtb b/components/strings/components_strings_lv.xtb
index 3ef2c4a..fdb4e3d 100644
--- a/components/strings/components_strings_lv.xtb
+++ b/components/strings/components_strings_lv.xtb
@@ -20,7 +20,6 @@
 <translation id="1038842779957582377">nezināms nosaukums</translation>
 <translation id="1041998700806130099">Uzdevuma lapas ziņojums</translation>
 <translation id="1048785276086539861">Ja rediģēsiet piezīmes, dokuments atkal pāries vienas lapas skatā.</translation>
-<translation id="1049743911850919806">Inkognito</translation>
 <translation id="1050038467049342496">Aizveriet citas lietotnes</translation>
 <translation id="1055184225775184556">&amp;Pievienošanas atsaukšana</translation>
 <translation id="1056898198331236512">Brīdinājums</translation>
@@ -736,12 +735,6 @@
 <translation id="3345782426586609320">Acis</translation>
 <translation id="3355823806454867987">Mainīt starpniekservera iestatījumus...</translation>
 <translation id="3360103848165129075">Maksājumu apstrādātāja lapa</translation>
-<translation id="3361596688432910856">Pārlūkā Chrome <ph name="BEGIN_EMPHASIS" />netiks saglabāta<ph name="END_EMPHASIS" /> šāda informācija:
-        <ph name="BEGIN_LIST" />
-          <ph name="LIST_ITEM" />jūsu pārlūkošanas vēsture;
-          <ph name="LIST_ITEM" />sīkfaili un vietņu dati;
-          <ph name="LIST_ITEM" />veidlapās ievadītā informācija.
-        <ph name="END_LIST" /></translation>
 <translation id="3362968246557010467">Šī politika tika automātiski kopēta no novecojušās <ph name="OLD_POLICY" /> politikas. Jums vajadzētu izmantot šo politiku.</translation>
 <translation id="3364869320075768271">Vietne <ph name="URL" /> vēlas izmantot jūsu virtuālās realitātes ierīci un datus.</translation>
 <translation id="3366477098757335611">Skatīt kartes</translation>
@@ -1221,12 +1214,7 @@
 <translation id="4819347708020428563">Vai vēlaties rediģēt piezīmes noklusējuma skatā?</translation>
 <translation id="4825496307559726072"><ph name="CREATE_GOOGLE_SHEET_FOCUSED_FRIENDLY_MATCH_TEXT" />. Lai ātri izveidotu jaunu Google izklājlapu, nospiediet tabulēšanas taustiņu un pēc tam — taustiņu Enter.</translation>
 <translation id="4825507807291741242">Efektīva</translation>
-<translation id="4827402517081186284">Inkognito režīms nenozīmē, ka jūs tiešsaistē būsiet neredzams.
-        <ph name="BEGIN_LIST" />
-          <ph name="LIST_ITEM" />Vietņu īpašnieki zina, vai jūs apmeklējat viņu vietnes.<ph name="END_LIST_ITEM" />
-          <ph name="LIST_ITEM" />Darba devēji vai mācību iestādes var uzskaitīt pārlūkošanas darbības.<ph name="END_LIST_ITEM" />
-          <ph name="LIST_ITEM" />Interneta pakalpojumu sniedzēji var uzraudzīt tīmekļa datplūsmu.<ph name="END_LIST_ITEM" />
-        <ph name="END_LIST" /></translation>
+<translation id="4829962028570902310">Ignorēta, jo šo politiku var iestatīt tikai kā mākoņa lietotāja politiku.</translation>
 <translation id="483241715238664915">Ieslēgt brīdinājumus</translation>
 <translation id="4838327282952368871">Mierīga</translation>
 <translation id="4840250757394056958">Skatīt Chrome vēsturi</translation>
@@ -1795,7 +1783,6 @@
 <translation id="6757797048963528358">Ierīce tika pārslēgta miega režīmā.</translation>
 <translation id="6767985426384634228">Vai atjaunināt adresi?</translation>
 <translation id="6768213884286397650">Hagaki (pastkarte)</translation>
-<translation id="6774185088257932239"><ph name="BEGIN_LINK" />Uzziniet vairāk<ph name="END_LINK" /> par inkognito režīmu.</translation>
 <translation id="6775759552199460396">JIS B2</translation>
 <translation id="67862343314499040">Violeta</translation>
 <translation id="6786747875388722282">Paplašinājumi</translation>
@@ -2275,12 +2262,6 @@
 <translation id="8317207217658302555">Vai atjaunināt ARCore?</translation>
 <translation id="831997045666694187">Vakarā</translation>
 <translation id="8321476692217554900">paziņojumi</translation>
-<translation id="8328484624016508118">Kad visas inkognito cilnes tiek aizvērtas, pārlūkā Chrome tiek notīrīti šādi dati:
-        <ph name="BEGIN_LIST" />
-          <ph name="LIST_ITEM" />pārlūkošanas darbības no šīs ierīces;<ph name="END_LIST_ITEM" />
-          <ph name="LIST_ITEM" />meklēšanas vēsture no šīs ierīces;<ph name="END_LIST_ITEM" />
-          <ph name="LIST_ITEM" />veidlapās ievadītā informācija.<ph name="END_LIST_ITEM" />
-        <ph name="END_LIST" /></translation>
 <translation id="8332188693563227489">Piekļuve vietnei <ph name="HOST_NAME" /> tika noraidīta</translation>
 <translation id="833262891116910667">Atzīmēt</translation>
 <translation id="8339163506404995330">Lapas šādā valodā: <ph name="LANGUAGE" /> netiks tulkotas.</translation>
diff --git a/components/strings/components_strings_mk.xtb b/components/strings/components_strings_mk.xtb
index 30557c3e..877e936 100644
--- a/components/strings/components_strings_mk.xtb
+++ b/components/strings/components_strings_mk.xtb
@@ -20,7 +20,6 @@
 <translation id="1038842779957582377">непознато име</translation>
 <translation id="1041998700806130099">Порака на работниот лист</translation>
 <translation id="1048785276086539861">Кога ќе ги изменувате прибелешките, документов ќе се врати на приказ на една страница</translation>
-<translation id="1049743911850919806">Инкогнито</translation>
 <translation id="1050038467049342496">Затворете ги другите апликации</translation>
 <translation id="1055184225775184556">&amp;Врати додавање</translation>
 <translation id="1056898198331236512">Предупредување</translation>
@@ -212,6 +211,7 @@
 <translation id="1567040042588613346">Правилово работи како што е предвидено, но истата вредност е поставена некаде на друго место и е заменета од правилово.</translation>
 <translation id="1569487616857761740">Внесете датум на истекување</translation>
 <translation id="1581080074034554886">CVC</translation>
+<translation id="1581767074483369314">Регистрирајте се за виртуелна картичка</translation>
 <translation id="1583294866416602487">Plex</translation>
 <translation id="1583429793053364125">Нешто тргна наопаку при прикажувањето на оваа веб-страница.</translation>
 <translation id="1586541204584340881">кои екстензии сте ги инсталирале</translation>
@@ -377,6 +377,7 @@
 <translation id="2101225219012730419">Верзија:</translation>
 <translation id="2102134110707549001">Предложи силна лозинка…</translation>
 <translation id="2102495993840063010">Апликации за Android</translation>
+<translation id="2106249949168291652">Зачувана. Дали сакате поголема безбедност со виртуелна картичка?</translation>
 <translation id="2107021941795971877">Поддршка на печатењето</translation>
 <translation id="2108755909498034140">Рестартирајте го компјутерот</translation>
 <translation id="2111166930115883695">Притиснете го копчето за празно место за да пуштите</translation>
@@ -532,6 +533,7 @@
 <translation id="262745152991669301">Може да прашува за да се поврзува со USB-уреди</translation>
 <translation id="2629325967560697240">За да го добиете нависокото ниво на безбедност на Chrome, <ph name="BEGIN_ENHANCED_PROTECTION_LINK" />вклучете ја „Подобрената заштита“<ph name="END_ENHANCED_PROTECTION_LINK" /></translation>
 <translation id="2634124572758952069">IP-адресата за серверот на <ph name="HOST_NAME" /> не може да се најде.</translation>
+<translation id="2638001509205834345">Сакате подобра безбедност за вашата картичка?</translation>
 <translation id="2639739919103226564">Статус:</translation>
 <translation id="264810637653812429">Не се најдени компатибилни уреди.</translation>
 <translation id="2649204054376361687"><ph name="CITY" />, <ph name="COUNTRY" /></translation>
@@ -664,6 +666,7 @@
 <translation id="3113284927548439113">Трета смена</translation>
 <translation id="3115874930288085374"><ph name="ENROLLMENT_DOMAIN" /> бара да направите бекап на вашите податоци и да го вратите овој <ph name="DEVICE_TYPE" />.</translation>
 <translation id="3116158981186517402">Пластифицирање</translation>
+<translation id="311958134571892113">поврзана со</translation>
 <translation id="3120730422813725195">Elo</translation>
 <translation id="31207688938192855"><ph name="BEGIN_LINK" />Обидете се да извршите дијагностика на поврзливоста<ph name="END_LINK" />.</translation>
 <translation id="3121994479408824897">Оди во <ph name="DOMAIN" /></translation>
@@ -736,12 +739,6 @@
 <translation id="3345782426586609320">Очи</translation>
 <translation id="3355823806454867987">Промени прокси-поставки...</translation>
 <translation id="3360103848165129075">Лист на ракувачот со плаќања</translation>
-<translation id="3361596688432910856">Chrome <ph name="BEGIN_EMPHASIS" />нема да ги зачува<ph name="END_EMPHASIS" /> следниве информации:
-        <ph name="BEGIN_LIST" />
-          <ph name="LIST_ITEM" />историјата на прелистување
-          <ph name="LIST_ITEM" />колачињата и податоците за локацијата
-          <ph name="LIST_ITEM" />внесените информации во формуларите
-        <ph name="END_LIST" /></translation>
 <translation id="3362968246557010467">Правилово беше автоматски копирано од неподдржаното правило <ph name="OLD_POLICY" />. Наместо него, треба да го користите ова правило.</translation>
 <translation id="3364869320075768271"><ph name="URL" /> сака да ги користи уредот и податоците за виртуелна реалност</translation>
 <translation id="3366477098757335611">Прикажи ги картичките</translation>
@@ -1222,12 +1219,6 @@
 <translation id="4819347708020428563">Сакате ли да ги измените прибелешките во стандарден приказ?</translation>
 <translation id="4825496307559726072"><ph name="CREATE_GOOGLE_SHEET_FOCUSED_FRIENDLY_MATCH_TEXT" />, притиснете го копчето Tab, а потоа копчето Enter за да набрзина создадете нова табела на Google</translation>
 <translation id="4825507807291741242">Моќен</translation>
-<translation id="4827402517081186284">Со „Инкогнито“ не станувате невидливи онлајн:
-        <ph name="BEGIN_LIST" />
-          <ph name="LIST_ITEM" />сајтовите знаат кога ги посетувате<ph name="END_LIST_ITEM" />
-          <ph name="LIST_ITEM" />работодавачите или училиштата може да ја следат вашата активност од прелистувањето<ph name="END_LIST_ITEM" />
-          <ph name="LIST_ITEM" />интернет-операторите може да го следат сообраќајот на интернет<ph name="END_LIST_ITEM" />
-        <ph name="END_LIST" /></translation>
 <translation id="4829962028570902310">Игнорирано бидејќи правилото може да се постави само од политика за корисници во облак.</translation>
 <translation id="483241715238664915">Вклучи опомени</translation>
 <translation id="4838327282952368871">Нереален</translation>
@@ -1797,7 +1788,6 @@
 <translation id="6757797048963528358">Уредот е во режим на спиење.</translation>
 <translation id="6767985426384634228">Да се ажурира адресата?</translation>
 <translation id="6768213884286397650">Hagaki (разгледница)</translation>
-<translation id="6774185088257932239"><ph name="BEGIN_LINK" />Дознајте повеќе<ph name="END_LINK" /> за „Инкогнито“</translation>
 <translation id="6775759552199460396">JIS B2</translation>
 <translation id="67862343314499040">Виолетова</translation>
 <translation id="6786747875388722282">Наставки</translation>
@@ -2277,12 +2267,6 @@
 <translation id="8317207217658302555">Да се ажурира ARCore?</translation>
 <translation id="831997045666694187">Приквечер</translation>
 <translation id="8321476692217554900">известувања</translation>
-<translation id="8328484624016508118">Откако ќе ги затворите сите картички „Инкогнито“, Chrome ги брише:
-        <ph name="BEGIN_LIST" />
-          <ph name="LIST_ITEM" />активноста од прелистувањето од уредов<ph name="END_LIST_ITEM" />
-          <ph name="LIST_ITEM" />историјата на пребарување од уредов<ph name="END_LIST_ITEM" />
-          <ph name="LIST_ITEM" />податоците внесени во формулари<ph name="END_LIST_ITEM" />
-        <ph name="END_LIST" /></translation>
 <translation id="8332188693563227489">Пристапот до <ph name="HOST_NAME" /> беше одбиен</translation>
 <translation id="833262891116910667">Нагласување</translation>
 <translation id="8339163506404995330">Страниците на <ph name="LANGUAGE" /> нема да се преведуваат</translation>
@@ -2366,6 +2350,7 @@
 <translation id="8669306706049782872">Користење податоци за вашите екрани за отворање и поставување прозорци</translation>
 <translation id="867224526087042813">Потпис</translation>
 <translation id="8676424191133491403">Без одложување</translation>
+<translation id="8679903780129190080">Да, прифаќам</translation>
 <translation id="8680536109547170164"><ph name="QUERY" />, одговор, <ph name="ANSWER" /></translation>
 <translation id="8681531050781943054">Веб-страницата на <ph name="PAGE" /> не може да се вчита бидејќи:</translation>
 <translation id="8685155993131031756">Prc-16K</translation>
diff --git a/components/strings/components_strings_ml.xtb b/components/strings/components_strings_ml.xtb
index 926af0eb..a0b90ff 100644
--- a/components/strings/components_strings_ml.xtb
+++ b/components/strings/components_strings_ml.xtb
@@ -20,7 +20,6 @@
 <translation id="1038842779957582377">അജ്ഞാത നാമം</translation>
 <translation id="1041998700806130099">ജോബ് ഷീറ്റ് സന്ദേശം</translation>
 <translation id="1048785276086539861">നിങ്ങൾ കുറിപ്പുകൾ എഡിറ്റ് ചെയ്യുമ്പോൾ, ഈ ഡോക്യുമെന്റ് ഒറ്റ പേജ് കാഴ്ചയിലേക്ക് മടങ്ങുന്നു</translation>
-<translation id="1049743911850919806">ആള്‍‌മാറാട്ടം</translation>
 <translation id="1050038467049342496">മറ്റ് ആപ്പുകൾ അടയ്‌ക്കുക</translation>
 <translation id="1055184225775184556">&amp;ചേർത്തത് പഴയപടിയാക്കുക</translation>
 <translation id="1056898198331236512">മുന്നറിയിപ്പ്</translation>
@@ -738,12 +737,6 @@
 <translation id="3345782426586609320">കണ്ണുകൾ</translation>
 <translation id="3355823806454867987">പ്രോക്സി ക്രമീകരണങ്ങള്‍ മാറ്റുക...</translation>
 <translation id="3360103848165129075">പേയ്മെന്റ് കൈകാര്യം ചെയ്യുന്ന ഷീറ്റ്</translation>
-<translation id="3361596688432910856">Chrome ഇനിപ്പറയുന്ന വിവരങ്ങൾ <ph name="BEGIN_EMPHASIS" />സംരക്ഷിക്കില്ല<ph name="END_EMPHASIS" />:
-        <ph name="BEGIN_LIST" />
-          <ph name="LIST_ITEM" />നിങ്ങളുടെ ബ്രൗസിംഗ് ചരിത്രം
-          <ph name="LIST_ITEM" />കുക്കികളും സൈറ്റ് ഡാറ്റയും
-          <ph name="LIST_ITEM" />ഫോമുകളിൽ നൽകുന്ന വിവരങ്ങൾ
-        <ph name="END_LIST" /></translation>
 <translation id="3362968246557010467">അവസാനിപ്പിച്ച <ph name="OLD_POLICY" /> നയത്തിൽ നിന്ന് സ്വയമേവ പകർത്തിയതാണ് ഈ നയം. പകരം ഈ നയം ഉപയോഗിക്കണം.</translation>
 <translation id="3364869320075768271">നിങ്ങളുടെ വെർച്വൽ റിയാലിറ്റി ഉപകരണങ്ങളും ഡാറ്റയും ഉപയോഗിക്കാൻ <ph name="URL" /> ആഗ്രഹിക്കുന്നു</translation>
 <translation id="3366477098757335611">കാർഡുകൾ കാണുക</translation>
@@ -1222,12 +1215,6 @@
 <translation id="4819347708020428563">ഡിഫോൾട്ട് കാഴ്‌ചയിൽ കുറിപ്പുകൾ എഡിറ്റ് ചെയ്യണോ?</translation>
 <translation id="4825496307559726072"><ph name="CREATE_GOOGLE_SHEET_FOCUSED_FRIENDLY_MATCH_TEXT" />, പുതിയൊരു Google ഷീറ്റ് വേഗത്തിൽ സൃഷ്ടിക്കാൻ Tab അമർത്തുക, തുടർന്ന് Enter അമർത്തുക</translation>
 <translation id="4825507807291741242">ശക്തമായത്</translation>
-<translation id="4827402517081186284">അദൃശ്യ മോഡ് നിങ്ങളെ ഓൺലൈനിൽ അദൃശ്യമാക്കുന്നില്ല:
-        <ph name="BEGIN_LIST" />
-          <ph name="LIST_ITEM" />നിങ്ങൾ സന്ദർശിക്കുമ്പോൾ സൈറ്റുകൾക്ക് അത് അറിയാനാകും<ph name="END_LIST_ITEM" />
-          <ph name="LIST_ITEM" />തൊഴിലുടമകൾക്കോ സ്കൂളുകൾക്കോ ബ്രൗസിംഗ് ആക്റ്റിവിറ്റി ട്രാക്ക് ചെയ്യാനാകും<ph name="END_LIST_ITEM" />
-          <ph name="LIST_ITEM" />ഇന്റർനെറ്റ് സേവന ദാതാക്കൾ വെബ് ട്രാഫിക് നിരീക്ഷിച്ചേക്കാം<ph name="END_LIST_ITEM" />
-        <ph name="END_LIST" /></translation>
 <translation id="4829962028570902310">ക്ലൗഡ് ഉപയോക്തൃ നയം അനുസരിച്ച് മാത്രമേ നയം സജ്ജീകരിക്കാനാകൂ എന്നതിനാൽ അവഗണിച്ചു.</translation>
 <translation id="483241715238664915">മുന്നറിയിപ്പുകൾ ഓണാക്കുക</translation>
 <translation id="4838327282952368871">മനോരാജ്യത്തിൽ മുഴുകിയത്</translation>
@@ -1797,7 +1784,6 @@
 <translation id="6757797048963528358">നിങ്ങളുടെ ഉപകരണം സ്ലീപ്പ് മോഡിലായി</translation>
 <translation id="6767985426384634228">വിലാസം അപ്ഡേറ്റ് ചെയ്യണോ?</translation>
 <translation id="6768213884286397650">ഹഗാക്കി (പോസ്‌റ്റ്‌കാർഡ്)</translation>
-<translation id="6774185088257932239">അദൃശ്യ മോഡിനെ കുറിച്ച് <ph name="BEGIN_LINK" />കൂടുതലറിയുക<ph name="END_LINK" /></translation>
 <translation id="6775759552199460396">JIS B2</translation>
 <translation id="67862343314499040">വയലറ്റ്</translation>
 <translation id="6786747875388722282">വിപുലീകരണങ്ങള്‍</translation>
@@ -2275,12 +2261,6 @@
 <translation id="8317207217658302555">ARCore അപ്ഡേറ്റ് ചെയ്യണോ?</translation>
 <translation id="831997045666694187">വൈകുന്നേരം</translation>
 <translation id="8321476692217554900">അറിയിപ്പുകൾ</translation>
-<translation id="8328484624016508118">എല്ലാ അദൃശ്യ ടാബുകളും അടച്ചതിനുശേഷം, Chrome ഇവ മായ്ക്കുന്നു:
-        <ph name="BEGIN_LIST" />
-          <ph name="LIST_ITEM" />ഈ ഉപകരണത്തിൽ നിന്നുള്ള നിങ്ങളുടെ ബ്രൗസിംഗ് ആക്റ്റിവിറ്റി<ph name="END_LIST_ITEM" />
-          <ph name="LIST_ITEM" />ഈ ഉപകരണത്തിൽ നിന്നുള്ള നിങ്ങളുടെ തിരയൽ ചരിത്രം<ph name="END_LIST_ITEM" />
-          <ph name="LIST_ITEM" />ഫോമുകളിൽ നൽകിയ വിവരങ്ങൾ<ph name="END_LIST_ITEM" />
-        <ph name="END_LIST" /></translation>
 <translation id="8332188693563227489"><ph name="HOST_NAME" /> ഹോസ്‌റ്റിലേക്കുള്ള ആക്‌സസ് നിരസിച്ചു</translation>
 <translation id="833262891116910667">ഹൈലൈറ്റ് ചെയ്യുക</translation>
 <translation id="8339163506404995330"><ph name="LANGUAGE" /> ഭാഷയിലുള്ള പേജുകൾ വിവർത്തനം ചെയ്യില്ല</translation>
@@ -2538,7 +2518,6 @@
 <translation id="9215416866750762878">ഈ സൈറ്റിലേക്ക് സുരക്ഷിതമായി കണക്റ്റ് ചെയ്യുന്നതിൽ നിന്ന് Chrome-നെ ഒരു ആപ്പ് തടയുന്നു</translation>
 <translation id="9219103736887031265">Images</translation>
 <translation id="922152298093051471">Chrome ഇഷ്ടാനുസൃതമാക്കുക</translation>
-<translation id="922274508605516859">വഞ്ചനയിൽ നിന്ന് പരിരക്ഷിക്കാൻ സഹായിക്കുന്നതിന് വെർച്വൽ കാർഡ് നിങ്ങളുടെ യഥാർത്ഥ കാർഡ് വിവരങ്ങൾ മറയ്ക്കുന്നു.</translation>
 <translation id="933712198907837967">Diners Club</translation>
 <translation id="935608979562296692">ഫോം മായ്‌ക്കുക</translation>
 <translation id="936474030629450166">സൂപ്പർ-B</translation>
diff --git a/components/strings/components_strings_mn.xtb b/components/strings/components_strings_mn.xtb
index 417e0f7..d21f1ee 100644
--- a/components/strings/components_strings_mn.xtb
+++ b/components/strings/components_strings_mn.xtb
@@ -20,7 +20,6 @@
 <translation id="1038842779957582377">үл мэдэгдэх нэр</translation>
 <translation id="1041998700806130099">Ажлын хүснэгтийн мессеж</translation>
 <translation id="1048785276086539861">Та тэмдэглэгээг засах үед энэ документ нэг хуудсаар харах руу буцна</translation>
-<translation id="1049743911850919806">Нууцлал</translation>
 <translation id="1050038467049342496">Бусад аппыг хаах</translation>
 <translation id="1055184225775184556">&amp; Нэмэх үйлдлийг буцаах</translation>
 <translation id="1056898198331236512">Анхааруулга</translation>
@@ -737,12 +736,6 @@
 <translation id="3345782426586609320">Нүд</translation>
 <translation id="3355823806454867987">Прокси-ийн тохиргоонуудыг өөрчлөх ...</translation>
 <translation id="3360103848165129075">Төлбөр хариуцагчийн хүснэгт</translation>
-<translation id="3361596688432910856">Chrome дараах мэдээллийг <ph name="BEGIN_EMPHASIS" />хадгалахгүй<ph name="END_EMPHASIS" />:
-        <ph name="BEGIN_LIST" />
-          <ph name="LIST_ITEM" />Таны хөтчийн түүх
-          <ph name="LIST_ITEM" />Күүки, сайтын өгөгдөл
-          <ph name="LIST_ITEM" />Маягтад оруулсан мэдээлэл
-        <ph name="END_LIST" /></translation>
 <translation id="3362968246557010467">Энэ удирдамжийг зогсоосон <ph name="OLD_POLICY" /> удирдамжаас автоматаар хуулсан байна. Та оронд нь энэ удирдамжийг ашиглавал зохино.</translation>
 <translation id="3364869320075768271"><ph name="URL" /> нь таны виртуал бодит байдлын төхөөрөмж болон өгөгдлийг ашиглах хүсэлтэй байна</translation>
 <translation id="3366477098757335611">Картыг харах</translation>
@@ -1223,12 +1216,6 @@
 <translation id="4819347708020428563">Тэмдэглэгээг өгөгдмөлөөр харахаар засах уу?</translation>
 <translation id="4825496307559726072"><ph name="CREATE_GOOGLE_SHEET_FOCUSED_FRIENDLY_MATCH_TEXT" />, Шинэ Google Хүснэгт шуурхай үүсгэхийн тулд эхлээд Tab, дараа нь Enter дээр дарна уу</translation>
 <translation id="4825507807291741242">Хүчирхэг</translation>
-<translation id="4827402517081186284">Нууцлалтай горим таныг онлайн үед үл харагддаг болгохгүй:
-        <ph name="BEGIN_LIST" />
-          <ph name="LIST_ITEM" />Сайт таныг үүнд зочилж байгааг мэднэ<ph name="END_LIST_ITEM" />
-          <ph name="LIST_ITEM" />Ажил олгогч эсвэл сургууль хөтчийн үйл ажиллагааг хянах боломжтой<ph name="END_LIST_ITEM" />
-          <ph name="LIST_ITEM" />Интернэт үйлчилгээ нийлүүлэгч вебийн ачааллыг хянаж магадгүй<ph name="END_LIST_ITEM" />
-        <ph name="END_LIST" /></translation>
 <translation id="4829962028570902310">Бодлогыг зөвхөн үүлний хэрэглэгчийн бодлогоор тохируулах боломжтой тул үл хэрэгссэн.</translation>
 <translation id="483241715238664915">Сануулгыг асаах</translation>
 <translation id="4838327282952368871">Зүүд шиг</translation>
@@ -1797,7 +1784,6 @@
 <translation id="6757797048963528358">Таны төхөөрөмж идэвхгүй болсон байна.</translation>
 <translation id="6767985426384634228">Хаягийг шинэчлэх үү?</translation>
 <translation id="6768213884286397650">Хагаки (Ил захидал)</translation>
-<translation id="6774185088257932239">Нууцлалтай горимын талаар <ph name="BEGIN_LINK" />нэмэлт мэдээлэл авах<ph name="END_LINK" /></translation>
 <translation id="6775759552199460396">JIS B2</translation>
 <translation id="67862343314499040">Нил хөх ягаан</translation>
 <translation id="6786747875388722282">Өргөтгөлүүд</translation>
@@ -2277,12 +2263,6 @@
 <translation id="8317207217658302555">ARCore-г шинэчлэх үү?</translation>
 <translation id="831997045666694187">Үдэш</translation>
 <translation id="8321476692217554900">мэдэгдэл</translation>
-<translation id="8328484624016508118">Бүх нууцлалтай табыг хаасны дараа Chrome дараахыг арилгана:
-        <ph name="BEGIN_LIST" />
-          <ph name="LIST_ITEM" />Энэ төхөөрөмжөөс таны хөтчийн үйл ажиллагаа<ph name="END_LIST_ITEM" />
-          <ph name="LIST_ITEM" />Энэ төхөөрөмжөөс таны хайлт<ph name="END_LIST_ITEM" />
-          <ph name="LIST_ITEM" />Маягтад оруулсан мэдээлэл<ph name="END_LIST_ITEM" />
-        <ph name="END_LIST" /></translation>
 <translation id="8332188693563227489"><ph name="HOST_NAME" />-н хандах хүсэлтийг зөвшөөрсөнгүй</translation>
 <translation id="833262891116910667">Тодруулах</translation>
 <translation id="8339163506404995330"><ph name="LANGUAGE" /> хэл дээрх хуудсыг орчуулахгүй</translation>
diff --git a/components/strings/components_strings_mr.xtb b/components/strings/components_strings_mr.xtb
index fdfab17..9745521 100644
--- a/components/strings/components_strings_mr.xtb
+++ b/components/strings/components_strings_mr.xtb
@@ -20,7 +20,6 @@
 <translation id="1038842779957582377">अज्ञात नाव</translation>
 <translation id="1041998700806130099">जॉब पत्रकाचा मेसेज</translation>
 <translation id="1048785276086539861">तुम्ही भाष्ये संपादित करता तेव्हा हा दस्तऐवज एकल पेजव्ह्यूवर परत येईल</translation>
-<translation id="1049743911850919806">गुप्त</translation>
 <translation id="1050038467049342496">अन्य ॲप्स बंद करा</translation>
 <translation id="1055184225775184556">&amp;जोडा पूर्ववत करा</translation>
 <translation id="1056898198331236512">चेतावणी</translation>
@@ -212,6 +211,7 @@
 <translation id="1567040042588613346">हे धोरण अपेक्षेनुसार काम करत आहे पण, कुठेतरी समान मूल्य सेट केले आहे आणि हे धोरण ते मूल्य अधिग्रहित करत आहे.</translation>
 <translation id="1569487616857761740">एक्स्पायरीची तारीख एंटर करा</translation>
 <translation id="1581080074034554886">CVC</translation>
+<translation id="1581767074483369314">व्हर्च्युअल कार्डमध्ये नोंदणी करा</translation>
 <translation id="1583294866416602487">Plex</translation>
 <translation id="1583429793053364125">हे वेबपेज प्रदर्शित करताना काहीतरी चूक झाली.</translation>
 <translation id="1586541204584340881">तुम्ही कोणती एक्स्टेंशन इंस्टॉल केली आहेत</translation>
@@ -377,6 +377,7 @@
 <translation id="2101225219012730419">आवृत्ती:</translation>
 <translation id="2102134110707549001">क्लिष्ट पासवर्ड सुचवा…</translation>
 <translation id="2102495993840063010">Android अ‍ॅप्स</translation>
+<translation id="2106249949168291652">सेव्ह केले. व्हर्च्युअल कार्डसह ते आणखी सुरक्षित करायचे आहे का?</translation>
 <translation id="2107021941795971877">प्रिंट सपोर्ट</translation>
 <translation id="2108755909498034140">तुमचा कॉंप्युटर रीस्टार्ट करा</translation>
 <translation id="2111166930115883695">खेळण्यासाठी स्पेस दाबा</translation>
@@ -532,6 +533,7 @@
 <translation id="262745152991669301">USB डिव्हाइसशी कनेक्ट करण्याची विनंती करू शकते</translation>
 <translation id="2629325967560697240">Chrome ची सर्वोत्तम सुरक्षितता मिळवण्यासाठी, <ph name="BEGIN_ENHANCED_PROTECTION_LINK" />सुधारित केलेली सुरक्षितता सुरू करा<ph name="END_ENHANCED_PROTECTION_LINK" /></translation>
 <translation id="2634124572758952069"><ph name="HOST_NAME" /> चा सर्व्हर आयपी ॲड्रेस सापडला नाही.</translation>
+<translation id="2638001509205834345">तुमचे कार्ड आणखी सुरक्षित करायचे आहे का?</translation>
 <translation id="2639739919103226564">स्थिती:</translation>
 <translation id="264810637653812429">कोणतीही कंपॅटिबल डिव्हाइस आढळली नाहीत.</translation>
 <translation id="2649204054376361687"><ph name="CITY" />, <ph name="COUNTRY" /></translation>
@@ -664,6 +666,7 @@
 <translation id="3113284927548439113">तिसरी शिफ्ट</translation>
 <translation id="3115874930288085374"><ph name="ENROLLMENT_DOMAIN" /> साठी तुम्ही तुमच्या डेटाचा बॅकअप घेणे आणि हे <ph name="DEVICE_TYPE" /> परत करणे आवश्यक आहे.</translation>
 <translation id="3116158981186517402">लॅमिनेट</translation>
+<translation id="311958134571892113">यासह लिंक केलेले</translation>
 <translation id="3120730422813725195">Elo</translation>
 <translation id="31207688938192855"><ph name="BEGIN_LINK" />कनेक्टिव्हिटी निदान चालवून पहा<ph name="END_LINK" />.</translation>
 <translation id="3121994479408824897"><ph name="DOMAIN" /> वर जा</translation>
@@ -736,12 +739,6 @@
 <translation id="3345782426586609320">डोळे</translation>
 <translation id="3355823806454867987">प्रॉक्सी सेटिंग्ज बदला...</translation>
 <translation id="3360103848165129075">पेमेंट हँडलर शीट</translation>
-<translation id="3361596688432910856">Chrome पुढील माहिती <ph name="BEGIN_EMPHASIS" />सेव्ह करणार नाही<ph name="END_EMPHASIS" />:
-        <ph name="BEGIN_LIST" />
-          <ph name="LIST_ITEM" />तुमचा ब्राउझिंग इतिहास
-          <ph name="LIST_ITEM" />कुकी आणि साइट डेटा
-          <ph name="LIST_ITEM" />फॉर्ममध्ये टाकलेली माहिती
-        <ph name="END_LIST" /></translation>
 <translation id="3362968246557010467">हे धोरण कालबाह्य झालेल्या <ph name="OLD_POLICY" /> धोरणावरून आपोआप कॉपी केले गेले. तुम्ही त्याऐवजी हे धोरण वापरले पाहिजे.</translation>
 <translation id="3364869320075768271"><ph name="URL" /> ला तुमचे आभासी वास्तविकता डिव्हाइस आणि डेटा वापरायचा आहे</translation>
 <translation id="3366477098757335611">कार्डे पहा</translation>
@@ -1221,12 +1218,6 @@
 <translation id="4819347708020428563">भाष्ये डीफॉल्ट व्ह्यूमध्ये संपादित करायची आहेत का?</translation>
 <translation id="4825496307559726072"><ph name="CREATE_GOOGLE_SHEET_FOCUSED_FRIENDLY_MATCH_TEXT" />, नवीन Google शीट झटपट तयार करण्यासाठी टॅब आणि त्यानंतर एंटर दाबा</translation>
 <translation id="4825507807291741242">प्रभावी</translation>
-<translation id="4827402517081186284">गुप्त मोड तुम्हाला ऑनलाइन अदृश्य करत नाही:
-        <ph name="BEGIN_LIST" />
-          <ph name="LIST_ITEM" />तुम्ही साइटना भेट दिल्यास, त्यांना समजते<ph name="END_LIST_ITEM" />
-          <ph name="LIST_ITEM" />नियोक्ते किंवा शाळा ब्राउझिंग अ‍ॅक्टिव्हिटी ट्रॅक करू शकतात<ph name="END_LIST_ITEM" />
-          <ph name="LIST_ITEM" />इंटरनेट सेवा पुरवठादार वेब ट्रॅफिकचे निरीक्षण करू शकतात<ph name="END_LIST_ITEM" />
-        <ph name="END_LIST" /></translation>
 <translation id="4829962028570902310">दुर्लक्ष केले आहे, कारण हे धोरण फक्त क्लाउड वापरकर्ता धोरणाद्वारे सेट केले जाऊ शकते.</translation>
 <translation id="483241715238664915">चेतावण्या सुरू करा</translation>
 <translation id="4838327282952368871">स्वप्नवत</translation>
@@ -1797,7 +1788,6 @@
 <translation id="6757797048963528358">तुमचे डिव्हाइस निष्क्रीय झाले.</translation>
 <translation id="6767985426384634228">पत्ता अपडेट करायचा आहे का?</translation>
 <translation id="6768213884286397650">Hagaki (Postcard)</translation>
-<translation id="6774185088257932239">गुप्त मोडविषयी <ph name="BEGIN_LINK" />अधिक जाणून घ्या<ph name="END_LINK" /></translation>
 <translation id="6775759552199460396">JIS B2</translation>
 <translation id="67862343314499040">जांभळा</translation>
 <translation id="6786747875388722282">विस्तार</translation>
@@ -2277,12 +2267,6 @@
 <translation id="8317207217658302555">ARCore अपडेट करायचे आहे का?</translation>
 <translation id="831997045666694187">संध्याकाळी</translation>
 <translation id="8321476692217554900">सूचना</translation>
-<translation id="8328484624016508118">सर्व गुप्त टॅब बंद केल्यानंतर, Chrome हे साफ करते:
-        <ph name="BEGIN_LIST" />
-          <ph name="LIST_ITEM" />या डिव्हाइसवरील तुमची ब्राउझिंग अ‍ॅक्टिव्हिटी<ph name="END_LIST_ITEM" />
-          <ph name="LIST_ITEM" />या डिव्हाइसवरील तुमचा शोध इतिहास<ph name="END_LIST_ITEM" />
-          <ph name="LIST_ITEM" />फॉर्ममध्ये एंटर केलेली माहिती<ph name="END_LIST_ITEM" />
-        <ph name="END_LIST" /></translation>
 <translation id="8332188693563227489"><ph name="HOST_NAME" /> चा ॲक्सेस नाकारला</translation>
 <translation id="833262891116910667">हायलाइट</translation>
 <translation id="8339163506404995330"><ph name="LANGUAGE" />मधील पेज भाषांतरीत केले जाणार नाही</translation>
@@ -2366,6 +2350,7 @@
 <translation id="8669306706049782872">विंडो उघडण्यासाठी आणि त्यांचे स्थान नियोजित करण्यासाठी तुमच्या स्क्रीनशी संबंधित माहिती वापरा</translation>
 <translation id="867224526087042813">स्वाक्षरी</translation>
 <translation id="8676424191133491403">विलंब नाही</translation>
+<translation id="8679903780129190080">होय, मला मान्य आहे</translation>
 <translation id="8680536109547170164"><ph name="QUERY" />, उत्तर, <ph name="ANSWER" /></translation>
 <translation id="8681531050781943054"><ph name="PAGE" /> वरील वेबपेज लोड केले जाऊ शकले नाही कारण:</translation>
 <translation id="8685155993131031756">Prc-16K</translation>
diff --git a/components/strings/components_strings_ms.xtb b/components/strings/components_strings_ms.xtb
index be04922..55982c7 100644
--- a/components/strings/components_strings_ms.xtb
+++ b/components/strings/components_strings_ms.xtb
@@ -20,7 +20,6 @@
 <translation id="1038842779957582377">nama tidak diketahui</translation>
 <translation id="1041998700806130099">Mesej helaian tugas</translation>
 <translation id="1048785276086539861">Apabila anda mengedit anotasi, dokumen ini akan kembali kepada paparan satu halaman</translation>
-<translation id="1049743911850919806">Inkognito</translation>
 <translation id="1050038467049342496">Tutup apl lain</translation>
 <translation id="1055184225775184556">&amp;Buat Asal Tambahkan</translation>
 <translation id="1056898198331236512">Amaran</translation>
@@ -212,6 +211,7 @@
 <translation id="1567040042588613346">Dasar ini berfungsi seperti yang diharapkan tetapi nilai yang sama ditetapkan di tempat lain dan digantikan oleh dasar ini.</translation>
 <translation id="1569487616857761740">Masukkan tarikh tamat tempoh</translation>
 <translation id="1581080074034554886">CVC</translation>
+<translation id="1581767074483369314">Mendaftar dalam kad maya</translation>
 <translation id="1583294866416602487">Plex</translation>
 <translation id="1583429793053364125">Kesilapan berlaku semasa memaparkan halaman web ini.</translation>
 <translation id="1586541204584340881">Sambungan yang telah anda pasang</translation>
@@ -377,6 +377,7 @@
 <translation id="2101225219012730419">Versi:</translation>
 <translation id="2102134110707549001">Cadangkan Kata Laluan Yang Kukuh…</translation>
 <translation id="2102495993840063010">Apl Android</translation>
+<translation id="2106249949168291652">Disimpan. Jadikannya lebih selamat dengan kad maya?</translation>
 <translation id="2107021941795971877">Sokongan cetakan</translation>
 <translation id="2108755909498034140">Mulakan semula komputer anda</translation>
 <translation id="2111166930115883695">Tekan kekunci Ruang untuk bermain</translation>
@@ -532,6 +533,7 @@
 <translation id="262745152991669301">Boleh meminta untuk menyambung kepada peranti USB</translation>
 <translation id="2629325967560697240">Untuk mendapatkan tahap keselamatan tertinggi Chrome, <ph name="BEGIN_ENHANCED_PROTECTION_LINK" />hidupkan perlindungan dipertingkatkan<ph name="END_ENHANCED_PROTECTION_LINK" /></translation>
 <translation id="2634124572758952069">Alamat IP pelayan <ph name="HOST_NAME" /> tidak ditemui.</translation>
+<translation id="2638001509205834345">Jadikan kad anda lebih selamat?</translation>
 <translation id="2639739919103226564">Status:</translation>
 <translation id="264810637653812429">Tiada peranti yang serasi ditemui.</translation>
 <translation id="2649204054376361687"><ph name="CITY" />, <ph name="COUNTRY" /></translation>
@@ -664,6 +666,7 @@
 <translation id="3113284927548439113">Syif ketiga</translation>
 <translation id="3115874930288085374"><ph name="ENROLLMENT_DOMAIN" /> menghendaki anda menyandarkan data anda dan mengembalikan <ph name="DEVICE_TYPE" /> ini.</translation>
 <translation id="3116158981186517402">Lamina</translation>
+<translation id="311958134571892113">dipautkan dengan</translation>
 <translation id="3120730422813725195">Elo</translation>
 <translation id="31207688938192855"><ph name="BEGIN_LINK" />Cuba jalankan Diagnostik Sambungan<ph name="END_LINK" />.</translation>
 <translation id="3121994479408824897">Pergi ke <ph name="DOMAIN" /></translation>
@@ -736,12 +739,6 @@
 <translation id="3345782426586609320">Mata</translation>
 <translation id="3355823806454867987">Tukar tetapan proksi...</translation>
 <translation id="3360103848165129075">Helaian pengendali pembayaran</translation>
-<translation id="3361596688432910856">Chrome <ph name="BEGIN_EMPHASIS" />tidak akan menyimpan<ph name="END_EMPHASIS" /> maklumat berikut:
-        <ph name="BEGIN_LIST" />
-          <ph name="LIST_ITEM" />Sejarah semak imbas anda
-          <ph name="LIST_ITEM" />Kuki dan data tapak
-          <ph name="LIST_ITEM" />Maklumat yang dimasukkan dalam borang
-        <ph name="END_LIST" /></translation>
 <translation id="3362968246557010467">Dasar ini disalin secara automatik daripada dasar <ph name="OLD_POLICY" /> yang telah ditamatkan. Anda harus menggunakan dasar ini sebagai ganti.</translation>
 <translation id="3364869320075768271"><ph name="URL" /> mahu menggunakan peranti dan data realiti maya anda</translation>
 <translation id="3366477098757335611">Lihat kad</translation>
@@ -1223,12 +1220,7 @@
 <translation id="4819347708020428563">Edit anotasi dalam paparan lalai?</translation>
 <translation id="4825496307559726072"><ph name="CREATE_GOOGLE_SHEET_FOCUSED_FRIENDLY_MATCH_TEXT" />, tekan kekunci Tab kemudian Enter untuk membuat Google Sheet baharu dengan pantas</translation>
 <translation id="4825507807291741242">Berkuasa</translation>
-<translation id="4827402517081186284">Inkognito tidak menjadikan anda halimunan dalam talian:
-        <ph name="BEGIN_LIST" />
-          <ph name="LIST_ITEM" />Laman tahu apabila anda melawati laman tersebut<ph name="END_LIST_ITEM" />
-          <ph name="LIST_ITEM" />Majikan atau institusi pengajian boleh menjejak aktiviti penyemakan imbas<ph name="END_LIST_ITEM" />
-          <ph name="LIST_ITEM" />Penyedia perkhidmatan Internet mungkin memantau trafik web<ph name="END_LIST_ITEM" />
-        <ph name="END_LIST" /></translation>
+<translation id="4829962028570902310">Diabaikan kerana dasar hanya boleh ditetapkan oleh dasar pengguna awan.</translation>
 <translation id="483241715238664915">Hidupkan amaran</translation>
 <translation id="4838327282952368871">Berangan</translation>
 <translation id="4840250757394056958">Lihat sejarah Chrome anda</translation>
@@ -1797,7 +1789,6 @@
 <translation id="6757797048963528358">Peranti anda tidak aktif.</translation>
 <translation id="6767985426384634228">Kemas Kini Alamat?</translation>
 <translation id="6768213884286397650">Hagaki (Poskad)</translation>
-<translation id="6774185088257932239"><ph name="BEGIN_LINK" />Ketahui lebih lanjut<ph name="END_LINK" /> tentang Inkognito</translation>
 <translation id="6775759552199460396">JIS B2</translation>
 <translation id="67862343314499040">Ungu Lembayung</translation>
 <translation id="6786747875388722282">Pelanjutan</translation>
@@ -2277,12 +2268,6 @@
 <translation id="8317207217658302555">Kemas kini ARCore?</translation>
 <translation id="831997045666694187">Petang</translation>
 <translation id="8321476692217554900">pemberitahuan</translation>
-<translation id="8328484624016508118">Selepas menutup semua tab Inkognito, Chrome akan mengosongkan:
-        <ph name="BEGIN_LIST" />
-          <ph name="LIST_ITEM" />Aktiviti penyemakan imbas anda daripada peranti ini<ph name="END_LIST_ITEM" />
-          <ph name="LIST_ITEM" />Sejarah carian anda daripada peranti ini<ph name="END_LIST_ITEM" />
-          <ph name="LIST_ITEM" />Maklumat yang dimasukkan dalam borang<ph name="END_LIST_ITEM" />
-        <ph name="END_LIST" /></translation>
 <translation id="8332188693563227489">Akses ke <ph name="HOST_NAME" /> dinafikan</translation>
 <translation id="833262891116910667">Serlahkan</translation>
 <translation id="8339163506404995330">Halaman dalam <ph name="LANGUAGE" /> tidak akan diterjemahkan</translation>
@@ -2367,6 +2352,7 @@
 <translation id="8669306706049782872">Gunakan maklumat tentang skrin anda untuk membuka dan meletakkan tetingkap</translation>
 <translation id="867224526087042813">Tandatangan</translation>
 <translation id="8676424191133491403">Tiada kelewatan</translation>
+<translation id="8679903780129190080">Ya, saya setuju</translation>
 <translation id="8680536109547170164"><ph name="QUERY" />, jawapan, <ph name="ANSWER" /></translation>
 <translation id="8681531050781943054">Halaman web di <ph name="PAGE" /> tidak boleh dimuatkan kerana:</translation>
 <translation id="8685155993131031756">Prc-16K</translation>
diff --git a/components/strings/components_strings_my.xtb b/components/strings/components_strings_my.xtb
index cc51541b2..c032b90 100644
--- a/components/strings/components_strings_my.xtb
+++ b/components/strings/components_strings_my.xtb
@@ -20,7 +20,6 @@
 <translation id="1038842779957582377">မသိရ အမည်</translation>
 <translation id="1041998700806130099">အလုပ် စာမျက်နှာ မက်ဆေ့ဂျ်</translation>
 <translation id="1048785276086539861">မှတ်ချက်များတည်းဖြတ်ပါက ဤမှတ်တမ်းသည် စာမျက်နှာတစ်ခုတည်းသို့ ပြန်ပြောင်းသွားမည်</translation>
-<translation id="1049743911850919806">ရုပ်ဖျက်</translation>
 <translation id="1050038467049342496">အခြား အက်ပ်များကို ပိတ်ပါ</translation>
 <translation id="1055184225775184556">&amp;ထည့်ပေးမှု တစ်ဆင့်နောက်ပြန်ရန်</translation>
 <translation id="1056898198331236512">သတိပေးချက်</translation>
@@ -212,6 +211,7 @@
 <translation id="1567040042588613346">ဤမူဝါဒသည် သတ်မှတ်ထားသည့်အတိုင်း အလုပ်လုပ်နေသော်လည်း တူညီသောတန်ဖိုးကို တစ်နေရာတွင် သတ်မှတ်ထားပြီး ဤမူဝါဒက အစားထိုးထားသည်။</translation>
 <translation id="1569487616857761740">သက်တမ်းကုန်ဆုံးရက် ထည့်ပါ</translation>
 <translation id="1581080074034554886">CVC</translation>
+<translation id="1581767074483369314">ပကတိအသွင်ကတ်တွင် စာရင်းသွင်းနိုင်သည်</translation>
 <translation id="1583294866416602487">Plex</translation>
 <translation id="1583429793053364125">ဤဝဘ်ဆိုက်အား ပြသစဉ် တစ်ခုခု မှားသွား၏။</translation>
 <translation id="1586541204584340881">သင်ထည့်သွင်းထားသည့် နောက်ဆက်တွဲများ</translation>
@@ -378,6 +378,7 @@
 <translation id="2101225219012730419">ဗားရှင်း:</translation>
 <translation id="2102134110707549001">ခိုင်မာသည့် စကားဝှက် အကြံပြုရန်…</translation>
 <translation id="2102495993840063010">Android အက်ပ်များ</translation>
+<translation id="2106249949168291652">သိမ်းပြီးပြီ ပကတိအသွင်ကတ်ဖြင့် ပိုမိုလုံခြုံအောင် လုပ်မလား။</translation>
 <translation id="2107021941795971877">ပုံနှိပ်မှုဆိုင်ရာ အကူအညီများ</translation>
 <translation id="2108755909498034140">သင်၏ကွန်ပျူတာကို ပိတ်ပြီးပြန်ဖွင့်ပါ</translation>
 <translation id="2111166930115883695">ဖွင့်ရန် နေရာခြားခလုတ် နှိပ်ပါ</translation>
@@ -537,6 +538,7 @@
 <translation id="262745152991669301">USB ကိရိယာများနှင့် ချိတ်ဆက်ရန် ခွင့်တောင်းနိုင်သည်</translation>
 <translation id="2629325967560697240">Chrome ၏ အမြင့်ဆုံးလုံခြုံရေး ရရှိရန် <ph name="BEGIN_ENHANCED_PROTECTION_LINK" />အဆင့်မြှင့်တင်ထားသော ကာကွယ်မှုကို ဖွင့်ပါ<ph name="END_ENHANCED_PROTECTION_LINK" /></translation>
 <translation id="2634124572758952069"><ph name="HOST_NAME" /> ၏ ဆာဗာ IP လိပ်စာကို မတွေ့ပါ။</translation>
+<translation id="2638001509205834345">သင့်ကတ်ကို ပိုမိုလုံခြုံအောင် လုပ်လိုပါသလား။</translation>
 <translation id="2639739919103226564">အခြေအနေ:</translation>
 <translation id="264810637653812429">ကိုက်ညီမှုရှိသည့် စက်ပစ္စည်းများ မတွေ့ပါ။</translation>
 <translation id="2649204054376361687"><ph name="CITY" />၊ <ph name="COUNTRY" /></translation>
@@ -669,6 +671,7 @@
 <translation id="3113284927548439113">တတိယ အရွှေ့</translation>
 <translation id="3115874930288085374">သင့်ဒေတာများကို အရန်သိမ်းပြီး ဤ <ph name="DEVICE_TYPE" /> ကို ပြန်ပို့ရန် <ph name="ENROLLMENT_DOMAIN" /> က လိုအပ်သည်။</translation>
 <translation id="3116158981186517402">ပလတ်စတစ်လောင်းရန်</translation>
+<translation id="311958134571892113">အောက်ပါနှင့် လင့်ခ်ချိတ်ထားသည်</translation>
 <translation id="3120730422813725195">Elo</translation>
 <translation id="31207688938192855"><ph name="BEGIN_LINK" />ချိတ်ဆက်မှုဆိုင်ရာပြဿနာရှာဖွေမှု ပြုလုပ်ကြည့်ပါ<ph name="END_LINK" />။</translation>
 <translation id="3121994479408824897"><ph name="DOMAIN" /> သို့ သွားပါ</translation>
@@ -738,12 +741,6 @@
 <translation id="3345782426586609320">မျက်လုံး</translation>
 <translation id="3355823806454867987">ပရောက်စီ ဆက်တင်များ ပြောင်းရန်...</translation>
 <translation id="3360103848165129075">ငွေပေးချေမှု ကိုင်တွယ်သည့်စနစ်စာမျက်နှာ</translation>
-<translation id="3361596688432910856">Chrome သည် အောက်ပါ အချက်အလက်များကို <ph name="BEGIN_EMPHASIS" />သိမ်းဆည်းမည်မဟုတ်ပါ<ph name="END_EMPHASIS" />−
-        <ph name="BEGIN_LIST" />
-          <ph name="LIST_ITEM" />သင်၏ အင်တာနက်အသုံးပြုမှု မှတ်တမ်း
-          <ph name="LIST_ITEM" />ကွတ်ကီးနှင့် ဝဘ်ဆိုက်ဒေတာများ
-          <ph name="LIST_ITEM" />ဖောင်များတွင် ထည့်သွင်းထားသည့် အချက်အလက်များ
-        <ph name="END_LIST" /></translation>
 <translation id="3362968246557010467">အသုံးမပြုတော့သော <ph name="OLD_POLICY" /> မူဝါဒမှ ဤမူဝါဒကို အလိုအလျောက် မိတ္တူကူးထားပါသည်။ ၎င်းအစား ဤမူဝါဒကို အသုံးပြုရပါမည်။</translation>
 <translation id="3364869320075768271"><ph name="URL" /> က သင်၏ပကတိအသွင်စက်နှင့် ဒေတာများကို အသုံးပြုလိုသည်</translation>
 <translation id="3366477098757335611">ကတ်များကို ကြည့်ရန်</translation>
@@ -1223,12 +1220,6 @@
 <translation id="4819347708020428563">မှတ်ချက်များကို မူရင်းမြင်ကွင်းတွင် တည်းဖြတ်မလား။</translation>
 <translation id="4825496307559726072"><ph name="CREATE_GOOGLE_SHEET_FOCUSED_FRIENDLY_MATCH_TEXT" />၊ Google Sheet အသစ် အမြန်ပြုလုပ်ရန် ‘တဘ်’ နှိပ်ပြီးနောက် Enter ခလုတ် နှိပ်ပါ</translation>
 <translation id="4825507807291741242">စွမ်းအားပြည့်</translation>
-<translation id="4827402517081186284">ရုပ်ဖျက်မုဒ်က အွန်လိုင်းပေါ်တွင် သင့်ကိုမမြင်ရအောင် မလုပ်နိုင်ပါ-
-        <ph name="BEGIN_LIST" />
-          <ph name="LIST_ITEM" />သင်ဝင်ကြည့်နေသည်ကို ဝဘ်ဆိုက်များက သိနိုင်သည်<ph name="END_LIST_ITEM" />
-          <ph name="LIST_ITEM" />အလုပ်ရှင် (သို့) ကျောင်းများက ကြည့်ရှုခြင်းများကို ခြေရာခံနိုင်သည်<ph name="END_LIST_ITEM" />
-          <ph name="LIST_ITEM" />အင်တာနက်ဝန်ဆောင်မှုပေးသူများက ကွန်ရက်ဒေတာစီးဆင်းမှုကို စောင့်ကြည့်နေနိုင်သည်<ph name="END_LIST_ITEM" />
-        <ph name="END_LIST" /></translation>
 <translation id="4829962028570902310">မူဝါဒကို cloud အသုံးပြုသူလိုက်နာရမည့် မူဝါဒဖြင့်သာ သတ်မှတ်နိုင်သောကြောင့် လျစ်လျူရှုထားသည်။</translation>
 <translation id="483241715238664915">သတိပေးချက်များ ဖွင့်ရန်</translation>
 <translation id="4838327282952368871">အိပ်မက်ဆန်ဆန်</translation>
@@ -1797,7 +1788,6 @@
 <translation id="6757797048963528358">သင့်စက်ပစ္စည်း အိပ်ပျော်သွားပါသည်။</translation>
 <translation id="6767985426384634228">လိပ်စာ အပ်ဒိတ်လုပ်မလား။</translation>
 <translation id="6768213884286397650">ဟာဂကိ (ပို့စ်ကတ်)</translation>
-<translation id="6774185088257932239">ရုပ်ဖျက်မုဒ်အကြောင်း <ph name="BEGIN_LINK" />ပိုမိုလေ့လာရန်<ph name="END_LINK" /></translation>
 <translation id="6775759552199460396">JIS B2</translation>
 <translation id="67862343314499040">ခရမ်းပြာ</translation>
 <translation id="6786747875388722282">အိတ်စတန်းရှင်းများ</translation>
@@ -2279,12 +2269,6 @@
 <translation id="8317207217658302555">ARCore ကို အပ်ဒိတ်လုပ်မလား။</translation>
 <translation id="831997045666694187">ညနေ</translation>
 <translation id="8321476692217554900">အကြောင်းကြားချက်များ</translation>
-<translation id="8328484624016508118">ရုပ်ဖျက်တဘ်အားလုံး ပိတ်ပြီးချိန်တွင် Chrome က အောက်ပါတို့ကိုရှင်းလင်းမည်- 
-        <ph name="BEGIN_LIST" />
-          <ph name="LIST_ITEM" />ဤစက်ရှိ ကြည့်ရှုမှုများ<ph name="END_LIST_ITEM" />
-          <ph name="LIST_ITEM" />ဤစက်ရှိ ရှာဖွေမှတ်တမ်းများ<ph name="END_LIST_ITEM" />
-          <ph name="LIST_ITEM" />ဖောင်များတွင် ထည့်သွင်းသည့်အချက်အလက်များ<ph name="END_LIST_ITEM" />
-        <ph name="END_LIST" /></translation>
 <translation id="8332188693563227489"><ph name="HOST_NAME" /> အားအသုံးပြုခွင့် ပယ်ချခံခဲ့ရပါသည်</translation>
 <translation id="833262891116910667">အထူးအသားပေး ဖော်ပြချက်</translation>
 <translation id="8339163506404995330"><ph name="LANGUAGE" /> ဘာသာဖြင့် စာမျက်နှာများကို ဘာသာပြန်သွားပါမည်</translation>
@@ -2368,6 +2352,7 @@
 <translation id="8669306706049782872">ဝင်းဒိုးများဖွင့်ပြီး နေရာချထားရန် သင့်ဖန်သားပြင်အချက်အလက်ကို အသုံးပြုခြင်း</translation>
 <translation id="867224526087042813">လက်မှတ်</translation>
 <translation id="8676424191133491403">မနှောင့်နှေးရ</translation>
+<translation id="8679903780129190080">သဘောတူပါသည်</translation>
 <translation id="8680536109547170164"><ph name="QUERY" /> ဖြေကြားပါ၊ <ph name="ANSWER" /></translation>
 <translation id="8681531050781943054"><ph name="PAGE" /> ပေါ်က ဝက်ဘ်စာမျက်နှာကို တင်မရနိုင်ခြင်းရဲ့ အကြောင်းက:</translation>
 <translation id="8685155993131031756">Prc-16K</translation>
diff --git a/components/strings/components_strings_ne.xtb b/components/strings/components_strings_ne.xtb
index 9f539878..8d758c7 100644
--- a/components/strings/components_strings_ne.xtb
+++ b/components/strings/components_strings_ne.xtb
@@ -20,7 +20,6 @@
 <translation id="1038842779957582377">अज्ञात नाम</translation>
 <translation id="1041998700806130099">कार्य पानासम्बन्धी सन्देश</translation>
 <translation id="1048785276086539861">तपाईंले एनोटेसनहरू सम्पादन गर्दा स्क्रिनमा यो कागजातको एउटा मात्र पृष्ठ देखिने छ</translation>
-<translation id="1049743911850919806">इन्कोग्निटो</translation>
 <translation id="1050038467049342496">अन्य एपहरू बन्द गर्नुहोस्</translation>
 <translation id="1055184225775184556">&amp;पूर्वस्थितिमा फर्काउनुहोस् थप्नुहोस्</translation>
 <translation id="1056898198331236512">चेतावनी</translation>
@@ -212,6 +211,7 @@
 <translation id="1567040042588613346">यो नीतिले सोचेअनुसार काम गरिरहेको छ तर एउटै मान अन्यत्र तय गरिएका कारण यस नीतिअनुसार उक्त मानको साटो अर्को मान लागू गरिएको छ।</translation>
 <translation id="1569487616857761740">म्याद सकिने मिति प्रविष्टि गर्नुहोस्</translation>
 <translation id="1581080074034554886">CVC</translation>
+<translation id="1581767074483369314">भर्चुअल कार्ड प्राप्त गर्नका लागि आफ्नो नाम दर्ता गर्नुहोस्</translation>
 <translation id="1583294866416602487">Plex</translation>
 <translation id="1583429793053364125">यो वेबपृष्ठ प्रदर्शन गर्दा कुनै त्रुटी भयो।</translation>
 <translation id="1586541204584340881">तपाईंले स्थापना गर्नुभएका एक्स्टेन्सनहरू</translation>
@@ -377,6 +377,7 @@
 <translation id="2101225219012730419">संस्करण:</translation>
 <translation id="2102134110707549001">भरपर्दो पासवर्ड सिफारिस गर्नुहोस्…</translation>
 <translation id="2102495993840063010">Android एपहरू</translation>
+<translation id="2106249949168291652">सेभ गरिएको छ। यसलाई भर्चुअल कार्डमार्फत थप सुरक्षित बनाउने हो?</translation>
 <translation id="2107021941795971877">मुद्रणसम्बन्धी सहायता प्रदान गर्ने सेवा</translation>
 <translation id="2108755909498034140">आफ्नो कम्प्युटर पुनः सुरु गर्नुहोस्</translation>
 <translation id="2111166930115883695">प्ले गर्न space थिच्नुहोस्</translation>
@@ -532,6 +533,7 @@
 <translation id="262745152991669301">USB डिभाइसमा कनेक्ट गर्ने अनुमति माग्न सक्छ</translation>
 <translation id="2629325967560697240">Chrome को सबैभन्दा उच्च स्तरको सुरक्षा सुविधा प्रयोग गर्न <ph name="BEGIN_ENHANCED_PROTECTION_LINK" />परिष्कृत सुरक्षा<ph name="END_ENHANCED_PROTECTION_LINK" /> अन गर्नुहोस्</translation>
 <translation id="2634124572758952069"><ph name="HOST_NAME" /> को सर्भरको IP एड्रेस फेला पार्न सकिएन।</translation>
+<translation id="2638001509205834345">आफ्नो कार्ड थप सुरक्षित बनाउने हो?</translation>
 <translation id="2639739919103226564">स्थिति:</translation>
 <translation id="264810637653812429">कुनै पनि मिल्दोजुल्दो यन्त्र फेला परेन।</translation>
 <translation id="2649204054376361687"><ph name="CITY" />, <ph name="COUNTRY" /></translation>
@@ -664,6 +666,7 @@
 <translation id="3113284927548439113">तेस्रो सिफ्ट</translation>
 <translation id="3115874930288085374"><ph name="ENROLLMENT_DOMAIN" /> का अनुसार तपाईंले आफ्ना डेटा ब्याकअप गरी यो <ph name="DEVICE_TYPE" /> फिर्ता गर्नु पर्ने हुन्छ।</translation>
 <translation id="3116158981186517402">लेमिनेसन गर्नुहोस्</translation>
+<translation id="311958134571892113">लिंक गरिएको कार्ड:</translation>
 <translation id="3120730422813725195">Elo</translation>
 <translation id="31207688938192855"><ph name="BEGIN_LINK" />जडान सम्बन्धी निदान चलाएर हेर्नुहोस्<ph name="END_LINK" />।</translation>
 <translation id="3121994479408824897"><ph name="DOMAIN" /> मा जानुहोस्</translation>
@@ -733,12 +736,6 @@
 <translation id="3345782426586609320">आँखा</translation>
 <translation id="3355823806454867987">प्रोक्सी सेटिङहरू परिवर्तन गर्नुहोस्...</translation>
 <translation id="3360103848165129075">भुक्तानी ह्यान्ड्लरसम्बन्धी पाना</translation>
-<translation id="3361596688432910856">Chrome ले निम्न जानकारी <ph name="BEGIN_EMPHASIS" />सुरक्षित गर्नेछैन<ph name="END_EMPHASIS" />:
-        <ph name="BEGIN_LIST" />
-          <ph name="LIST_ITEM" />तपाईंको ब्राउजिङ इतिहास
-          <ph name="LIST_ITEM" />कुकीहरू र साइटको डेटा
-          <ph name="LIST_ITEM" />फारमहरूमा प्रविष्ट गरिएको जानकारी
-        <ph name="END_LIST" /></translation>
 <translation id="3362968246557010467">यो नीति प्रचलनबाट हटाइएको <ph name="OLD_POLICY" /> नीतिबाट स्वतः प्रतिलिपि गरियो। तपाईंले उक्त नीतिको साटो यो नीतिको प्रयोग गर्नु पर्छ।</translation>
 <translation id="3364869320075768271"><ph name="URL" /> भर्चुअल रियालिटी चल्ने तपाईंको यन्त्र र त्यसमा भएको डेटा प्रयोग गर्न चाहन्छ</translation>
 <translation id="3366477098757335611">कार्डहरू हेर्नुहोस्</translation>
@@ -1218,12 +1215,6 @@
 <translation id="4819347708020428563">एनोटेसनहरू डिफल्ट भ्यूमा सम्पादन गर्ने हो?</translation>
 <translation id="4825496307559726072"><ph name="CREATE_GOOGLE_SHEET_FOCUSED_FRIENDLY_MATCH_TEXT" />, Google Sheets प्रयोग गरी तुरुन्तै नयाँ पाना बनाउन Tab थिच्नुहोस् अनि Enter थिच्नुहोस्</translation>
 <translation id="4825507807291741242">शक्तिशाली</translation>
-<translation id="4827402517081186284">इन्कोग्निटो मोडले तपाईंलाई अनलाइन दुनियाँमा अदृश्य बनाउँदैन:
-        <ph name="BEGIN_LIST" />
-          <ph name="LIST_ITEM" />तपाईंले कुनै साइट खोल्दा सो साइटले थाहा पाउँछ<ph name="END_LIST_ITEM" />
-          <ph name="LIST_ITEM" />रोजगारदाता वा विद्यालयले ब्राउजर प्रयोग गरी गरिएको क्रियाकलापसम्बन्धी विवरण हेर्न सक्छन्<ph name="END_LIST_ITEM" />
-          <ph name="LIST_ITEM" />इन्टरनेट सेवा प्रदायकहरूले वेब ट्राफिकको निरीक्षण गर्न सक्छन्<ph name="END_LIST_ITEM" />
-        <ph name="END_LIST" /></translation>
 <translation id="4829962028570902310">क्लाउडका प्रयोगकर्ताले मात्र नीति तय गर्न मिल्ने भएकाले वेवास्ता गरिएको छ।</translation>
 <translation id="483241715238664915">चेतावनी देखाउने सुविधा अन गर्नुहोस्</translation>
 <translation id="4838327282952368871">स्वप्निल</translation>
@@ -1793,7 +1784,6 @@
 <translation id="6757797048963528358">तपाईंको यन्त्र शयन अवस्थामा गयो।</translation>
 <translation id="6767985426384634228">ठेगाना बदल्ने हो?</translation>
 <translation id="6768213884286397650">Hagaki (Postcard)</translation>
-<translation id="6774185088257932239">इन्कोग्निटो मोडका बारेमा <ph name="BEGIN_LINK" />थप जान्नुहोस्<ph name="END_LINK" /></translation>
 <translation id="6775759552199460396">JIS B2</translation>
 <translation id="67862343314499040">हल्का निलो</translation>
 <translation id="6786747875388722282">विस्तारहरू</translation>
@@ -2273,12 +2263,6 @@
 <translation id="8317207217658302555">ARCore अपडेट गर्ने हो?</translation>
 <translation id="831997045666694187">साँझ</translation>
 <translation id="8321476692217554900">सूचनाहरू</translation>
-<translation id="8328484624016508118">तपाईंले सबै इन्कोग्निटो ट्याब बन्द गरेपछि Chrome ले:
-        <ph name="BEGIN_LIST" />
-          <ph name="LIST_ITEM" />तपाईंले यो डिभाइसमा भएको ब्राउजरमार्फत गर्नुभएको क्रियाकलापसम्बन्धी विवरण मेटाउँछ <ph name="END_LIST_ITEM" />
-          <ph name="LIST_ITEM" />यो डिभाइसबाट तपाईंको खोजसम्बन्धी इतिहास मेटाउँछ<ph name="END_LIST_ITEM" />
-          <ph name="LIST_ITEM" />तपाईंले फारममा हाल्नुभएको जानकारी मेटाउँछ<ph name="END_LIST_ITEM" />
-        <ph name="END_LIST" /></translation>
 <translation id="8332188693563227489"><ph name="HOST_NAME" /> मा पहुँच गर्न अस्वीकृत भयो</translation>
 <translation id="833262891116910667">हाइलाइट गर्नुहोस्</translation>
 <translation id="8339163506404995330"><ph name="LANGUAGE" /> मा रहेका पृष्ठहरूलाई अनुवाद गरिने छैन</translation>
@@ -2362,6 +2346,7 @@
 <translation id="8669306706049782872">विन्डोहरू खोल्ने र स्क्रिनमा ती विन्डो राख्ने प्रयोजनका लागि तपाईंका स्क्रिनहरूका बारेमा जानकारी प्रयोग गर्न</translation>
 <translation id="867224526087042813">हस्ताक्षर</translation>
 <translation id="8676424191133491403">विलम्बरहित</translation>
+<translation id="8679903780129190080">अँ, म सहमत छु</translation>
 <translation id="8680536109547170164"><ph name="QUERY" /> , उत्तर, <ph name="ANSWER" /></translation>
 <translation id="8681531050781943054"><ph name="PAGE" /> मा भएको वेबपृष्ठ लोड गर्न सकिएन किनभने:</translation>
 <translation id="8685155993131031756">Prc-16K</translation>
diff --git a/components/strings/components_strings_nl.xtb b/components/strings/components_strings_nl.xtb
index df605894..29892a74 100644
--- a/components/strings/components_strings_nl.xtb
+++ b/components/strings/components_strings_nl.xtb
@@ -20,7 +20,6 @@
 <translation id="1038842779957582377">onbekende naam</translation>
 <translation id="1041998700806130099">Bericht voor taakblad</translation>
 <translation id="1048785276086539861">Als je annotaties bewerkt, keert dit document terug naar een weergave op één pagina</translation>
-<translation id="1049743911850919806">Incognito</translation>
 <translation id="1050038467049342496">Andere apps sluiten</translation>
 <translation id="1055184225775184556">&amp;Toevoegen ongedaan maken</translation>
 <translation id="1056898198331236512">Waarschuwing</translation>
@@ -730,12 +729,6 @@
 <translation id="3345782426586609320">Ogen</translation>
 <translation id="3355823806454867987">Proxyinstellingen wijzigen...</translation>
 <translation id="3360103848165129075">Blad voor betalingshandler</translation>
-<translation id="3361596688432910856">De volgende gegevens worden <ph name="BEGIN_EMPHASIS" />niet opgeslagen<ph name="END_EMPHASIS" /> in Chrome:
-        <ph name="BEGIN_LIST" />
-          <ph name="LIST_ITEM" />Je browsegeschiedenis
-          <ph name="LIST_ITEM" />Cookies en sitegegevens
-          <ph name="LIST_ITEM" />Informatie die is opgegeven in formulieren
-        <ph name="END_LIST" /></translation>
 <translation id="3362968246557010467">Dit beleid is automatisch gekopieerd uit het beëindigde beleid: <ph name="OLD_POLICY" />. Gebruik dit beleid in plaats van het oude.</translation>
 <translation id="3364869320075768271"><ph name="URL" /> wil je virtualreality-apparaat en -gegevens gebruiken</translation>
 <translation id="3366477098757335611">Passen bekijken</translation>
@@ -1214,12 +1207,6 @@
 <translation id="4819347708020428563">Annotaties bewerken in standaardweergave?</translation>
 <translation id="4825496307559726072"><ph name="CREATE_GOOGLE_SHEET_FOCUSED_FRIENDLY_MATCH_TEXT" />, druk op Tab en daarna op Enter om snel een nieuwe Google-spreadsheet te maken</translation>
 <translation id="4825507807291741242">Krachtig</translation>
-<translation id="4827402517081186284">Incognito maakt je niet onzichtbaar online:
-<ph name="BEGIN_LIST" />
-<ph name="LIST_ITEM" />Sites weten het als je ze bezoekt.<ph name="END_LIST_ITEM" />
-<ph name="LIST_ITEM" />Werkgevers of scholen kunnen browse-activiteit bijhouden.<ph name="END_LIST_ITEM" />
-<ph name="LIST_ITEM" />Internetproviders kunnen webverkeer monitoren.<ph name="END_LIST_ITEM" />
-<ph name="END_LIST" /></translation>
 <translation id="4829962028570902310">Genegeerd omdat het beleid alleen kan worden ingesteld als cloudgebruikersbeleid.</translation>
 <translation id="483241715238664915">Waarschuwingen aanzetten</translation>
 <translation id="4838327282952368871">Dromerig</translation>
@@ -1788,7 +1775,6 @@
 <translation id="6757797048963528358">De slaapstand van je apparaat is geactiveerd.</translation>
 <translation id="6767985426384634228">Adres updaten?</translation>
 <translation id="6768213884286397650">Hagaki (briefkaart)</translation>
-<translation id="6774185088257932239"><ph name="BEGIN_LINK" />Meer informatie<ph name="END_LINK" /> over incognito</translation>
 <translation id="6775759552199460396">JIS B2</translation>
 <translation id="67862343314499040">Violet</translation>
 <translation id="6786747875388722282">Extensies</translation>
@@ -2268,12 +2254,6 @@
 <translation id="8317207217658302555">ARCore updaten?</translation>
 <translation id="831997045666694187">Avond</translation>
 <translation id="8321476692217554900">meldingen</translation>
-<translation id="8328484624016508118">Nadat je alle incognitotabbladen hebt gesloten, wist Chrome deze gegevens:
-<ph name="BEGIN_LIST" />
-<ph name="LIST_ITEM" />Je browse-activiteit vanaf dit apparaat.<ph name="END_LIST_ITEM" />
-<ph name="LIST_ITEM" />Je zoekgeschiedenis vanaf dit apparaat.<ph name="END_LIST_ITEM" />
-<ph name="LIST_ITEM" />Informatie die je in formulieren hebt ingevuld.<ph name="END_LIST_ITEM" />
-<ph name="END_LIST" /></translation>
 <translation id="8332188693563227489">Toegang tot <ph name="HOST_NAME" /> is geweigerd</translation>
 <translation id="833262891116910667">Markeren</translation>
 <translation id="8339163506404995330">Pagina's in het <ph name="LANGUAGE" /> worden niet vertaald</translation>
diff --git a/components/strings/components_strings_no.xtb b/components/strings/components_strings_no.xtb
index 5795416..8602b65 100644
--- a/components/strings/components_strings_no.xtb
+++ b/components/strings/components_strings_no.xtb
@@ -20,7 +20,6 @@
 <translation id="1038842779957582377">ukjent navn</translation>
 <translation id="1041998700806130099">Jobbarkmelding</translation>
 <translation id="1048785276086539861">Når du redigerer annoteringer, går dette dokumentet tilbake til enkeltsidevisning</translation>
-<translation id="1049743911850919806">Inkognito</translation>
 <translation id="1050038467049342496">Lukk andre apper</translation>
 <translation id="1055184225775184556">&amp;Angre tilleggingen</translation>
 <translation id="1056898198331236512">Advarsel</translation>
@@ -736,12 +735,6 @@
 <translation id="3345782426586609320">Øyne</translation>
 <translation id="3355823806454867987">Endre innstillinger for proxy-tjener</translation>
 <translation id="3360103848165129075">Ark for betalingsbehandling</translation>
-<translation id="3361596688432910856">Chrome <ph name="BEGIN_EMPHASIS" />lagrer ikke<ph name="END_EMPHASIS" />
-        <ph name="BEGIN_LIST" />
-          <ph name="LIST_ITEM" />nettleserloggen din
-          <ph name="LIST_ITEM" />informasjonskapsler og nettstedsdata
-          <ph name="LIST_ITEM" />informasjon du skriver inn i skjemaer
-        <ph name="END_LIST" /></translation>
 <translation id="3362968246557010467">Denne regelen ble automatisk kopiert fra den avviklede regelen <ph name="OLD_POLICY" />. Du bør bruke denne regelen i stedet.</translation>
 <translation id="3364869320075768271"><ph name="URL" /> vil bruke virtuell virkelighet-enheten din og -dataene dine</translation>
 <translation id="3366477098757335611">Vis kort</translation>
@@ -1222,12 +1215,6 @@
 <translation id="4819347708020428563">Vil du redigere annoteringer i standardvisningen?</translation>
 <translation id="4825496307559726072"><ph name="CREATE_GOOGLE_SHEET_FOCUSED_FRIENDLY_MATCH_TEXT" /> – trykk på Tab og deretter på Enter for å opprette et nytt Google-regneark raskt</translation>
 <translation id="4825507807291741242">Kraftfull</translation>
-<translation id="4827402517081186284">Inkognito gjør deg ikke usynlig på nettet:
-        <ph name="BEGIN_LIST" />
-          <ph name="LIST_ITEM" />Nettsteder vet når du besøker dem.<ph name="END_LIST_ITEM" />
-          <ph name="LIST_ITEM" />Arbeidsgivere og skoler kan spore nettleseraktivitet.<ph name="END_LIST_ITEM" />
-          <ph name="LIST_ITEM" />Internettleverandører kan overvåke nettrafikk.<ph name="END_LIST_ITEM" />
-        <ph name="END_LIST" /></translation>
 <translation id="4829962028570902310">Ignorert fordi regelen kun kan angis via brukerinnstillinger i nettskyen.</translation>
 <translation id="483241715238664915">Slå på varsler</translation>
 <translation id="4838327282952368871">Drømmende</translation>
@@ -1797,7 +1784,6 @@
 <translation id="6757797048963528358">Enheten din gikk inn i hvilemodus.</translation>
 <translation id="6767985426384634228">Oppdatere adresse?</translation>
 <translation id="6768213884286397650">Hagaki (postkort)</translation>
-<translation id="6774185088257932239"><ph name="BEGIN_LINK" />Finn ut mer<ph name="END_LINK" /> om Inkognito</translation>
 <translation id="6775759552199460396">JIS B2</translation>
 <translation id="67862343314499040">Fiolett</translation>
 <translation id="6786747875388722282">Utvidelser</translation>
@@ -2276,12 +2262,6 @@
 <translation id="8317207217658302555">Vil du oppdatere ARCore?</translation>
 <translation id="831997045666694187">Kveld</translation>
 <translation id="8321476692217554900">varsler</translation>
-<translation id="8328484624016508118">Når du lukker alle inkognitofaner, sletter Chrome
-        <ph name="BEGIN_LIST" />
-          <ph name="LIST_ITEM" />nettleseraktiviteten din fra denne enheten<ph name="END_LIST_ITEM" />
-          <ph name="LIST_ITEM" />søkeloggen din fra denne enheten<ph name="END_LIST_ITEM" />
-          <ph name="LIST_ITEM" />informasjon du har skrevet inn i skjemaer<ph name="END_LIST_ITEM" />
-        <ph name="END_LIST" /></translation>
 <translation id="8332188693563227489">Forsøket på å koble til <ph name="HOST_NAME" /> ble avvist</translation>
 <translation id="833262891116910667">Fremhev</translation>
 <translation id="8339163506404995330">Sider på <ph name="LANGUAGE" /> oversettes ikke</translation>
diff --git a/components/strings/components_strings_or.xtb b/components/strings/components_strings_or.xtb
index fc9cd91..79d524e 100644
--- a/components/strings/components_strings_or.xtb
+++ b/components/strings/components_strings_or.xtb
@@ -20,7 +20,6 @@
 <translation id="1038842779957582377">ଅଜ୍ଞାତ ନାମ</translation>
 <translation id="1041998700806130099">ଜବ୍ ସିଟ୍ ମେସେଜ୍</translation>
 <translation id="1048785276086539861">ଯେତେବେଳେ ଆପଣ ଏନୋଟେସନଗୁଡ଼ିକୁ ଏଡିଟ୍ କରନ୍ତି, ଏହି ଡକ୍ୟୁମେଣ୍ଟ ସିଙ୍ଗଲ୍ ପେଜ୍ ଭ୍ୟୁକୁ ଫେରି ଆସିବ</translation>
-<translation id="1049743911850919806">ଇନ୍‌କଗ୍ନିଟୋ</translation>
 <translation id="1050038467049342496">ଅନ୍ୟ ଆପ୍‍ ବନ୍ଦ କରନ୍ତୁ</translation>
 <translation id="1055184225775184556">ଯୋଗ କରାଯାଇଥିବା କାର୍ଯ୍ୟକୁ &amp;ପୂର୍ବବତ୍ କରନ୍ତୁ</translation>
 <translation id="1056898198331236512">ଚେତାବନୀ</translation>
@@ -212,6 +211,7 @@
 <translation id="1567040042588613346">ଏହି ନୀତି ଆଶାନୁରୂପ ଭାବେ କାର୍ଯ୍ୟ କରୁଛି କିନ୍ତୁ ସମାନ ମୂଲ୍ୟ ଅନ୍ୟ କୌଣସି ସ୍ଥାନରେ ସେଟ୍ କରାଯାଇଛି ଏବଂ ଏହି ନୀତି ଦ୍ୱାରା ସ୍ଥାନ ଅଧିକାର କରାଯାଇଛି।</translation>
 <translation id="1569487616857761740">ମିଆଦ ଶେଷର ତାରିଖ ଲେଖନ୍ତୁ</translation>
 <translation id="1581080074034554886">CVC</translation>
+<translation id="1581767074483369314">ଏକ ଭର୍ଚୁଆଲ କାର୍ଡରେ ପଞ୍ଜିକରଣ କରନ୍ତୁ</translation>
 <translation id="1583294866416602487">Plex</translation>
 <translation id="1583429793053364125">ଏହି ୱେବ୍ ପୃଷ୍ଠାଟି ପ୍ରଦର୍ଶନ କରୁଥିବା ବେଳେ କିଛି ତ୍ରୁଟି ହୋଇଛି।</translation>
 <translation id="1586541204584340881">ଆପଣ କେଉଁ ଏକ୍ସଟେନସନଗୁଡ଼ିକୁ ଇନଷ୍ଟଲ୍ କରିଛନ୍ତି</translation>
@@ -373,6 +373,7 @@
 <translation id="2101225219012730419">ସଂସ୍କରଣ:</translation>
 <translation id="2102134110707549001">ବଳିଷ୍ଠ ପାସ୍‍ୱର୍ଡ ପାଇଁ ପ୍ରସ୍ତାବ ଦିଅନ୍ତୁ…</translation>
 <translation id="2102495993840063010">Android ଆପଗୁଡ଼ିକ</translation>
+<translation id="2106249949168291652">ସେଭ କରାଯାଇଛି। ଏକ ଭର୍ଚୁଆଲ କାର୍ଡ ମାଧ୍ୟମରେ ଏହାକୁ ଅଧିକ ସୁରକ୍ଷିତ କରିବେ?</translation>
 <translation id="2107021941795971877">ପ୍ରିଣ୍ଟ ସପୋର୍ଟ</translation>
 <translation id="2108755909498034140">ଆପଣଙ୍କର କମ୍ପ୍ୟୁଟର୍ ରିଷ୍ଟାର୍ଟ କରନ୍ତୁ</translation>
 <translation id="2111166930115883695">ଗେମ୍ ଖେଳିବା ପାଇଁ Space ଦବାନ୍ତୁ</translation>
@@ -528,6 +529,7 @@
 <translation id="262745152991669301">USB ଡିଭାଇସଗୁଡ଼ିକ ସହ ସଂଯୋଗ କରିବାକୁ ସାଇଟ୍ ପଚାରିପାରେ</translation>
 <translation id="2629325967560697240">Chromeର ସର୍ବୋଚ୍ଚ ସ୍ତରର ସୁରକ୍ଷା ପାଇବାକୁ, <ph name="BEGIN_ENHANCED_PROTECTION_LINK" />ଉନ୍ନତ ସୁରକ୍ଷା ଚାଲୁ କରନ୍ତୁ<ph name="END_ENHANCED_PROTECTION_LINK" /></translation>
 <translation id="2634124572758952069"><ph name="HOST_NAME" />ର ସର୍ଭର୍ IP ଠିକଣା ମିଳିଲା ନାହିଁ।</translation>
+<translation id="2638001509205834345">ଆପଣଙ୍କ କାର୍ଡକୁ ଅଧିକ ସୁରକ୍ଷିତ କରିବେ?</translation>
 <translation id="2639739919103226564">ସ୍ଥିତି:</translation>
 <translation id="264810637653812429">କୌଣସି ସମତୁଲ୍ୟ ଡିଭାଇସ୍ ମିଳିଲା ନାହିଁ।</translation>
 <translation id="2649204054376361687"><ph name="CITY" />, <ph name="COUNTRY" /></translation>
@@ -660,6 +662,7 @@
 <translation id="3113284927548439113">ତୃତୀୟ ସିଫ୍ଟ</translation>
 <translation id="3115874930288085374">ଆପଣ ଆପଣଙ୍କ ଡାଟାର ବ୍ୟାକଅପ୍ ନେଇ ଏହି <ph name="DEVICE_TYPE" />କୁ ଫେରସ୍ତ କରନ୍ତୁ ବୋଲି <ph name="ENROLLMENT_DOMAIN" /> ଚାହେଁ।</translation>
 <translation id="3116158981186517402">ଲାମିନେଟ୍</translation>
+<translation id="311958134571892113">ଏହା ସହ ଲିଙ୍କ କରାଯାଇଛି</translation>
 <translation id="3120730422813725195">Elo</translation>
 <translation id="31207688938192855"><ph name="BEGIN_LINK" />ସଂଯୋଜିତ ଡାଏଗ୍ନୋଷ୍ଟିକ୍ସ ଚଲାଇବାକୁ ଚେଷ୍ଟା କରନ୍ତୁ<ph name="END_LINK" />।</translation>
 <translation id="3121994479408824897"><ph name="DOMAIN" />କୁ ଯାଆନ୍ତୁ</translation>
@@ -730,12 +733,6 @@
 <translation id="3345782426586609320">ଆଖି</translation>
 <translation id="3355823806454867987">ପ୍ରୋକ୍ସି ସେଟିଂସ୍‌ ପରିବର୍ତ୍ତନ କରନ୍ତୁ...</translation>
 <translation id="3360103848165129075">ପେମେଣ୍ଟ ହ୍ୟାଣ୍ଡଲର୍ ସିଟ୍</translation>
-<translation id="3361596688432910856">Chrome ନିମ୍ନୋକ୍ତ ସୂଚନାକୁ <ph name="BEGIN_EMPHASIS" />ସେଭ୍ କରିବ ନାହିଁ<ph name="END_EMPHASIS" />:
-        <ph name="BEGIN_LIST" />
-          <ph name="LIST_ITEM" />ଆପଣଙ୍କର ବ୍ରାଉଜିଂ ଇତିବୃତ୍ତି
-	     <ph name="LIST_ITEM" />କୁକୀ ଓ ସାଇଟ୍ ଡାଟା
-          <ph name="LIST_ITEM" />ଫର୍ମରେ ଲେଖାଯାଇଥିବା ସୂଚନା
-	     <ph name="END_LIST" /></translation>
 <translation id="3362968246557010467">ଏହି ନୀତି ସ୍ୱଚାଳିତ ଭାବେ ଅଗ୍ରାହ୍ୟ କରାଯାଇଥିବା <ph name="OLD_POLICY" /> ନୀତିରୁ କପି ହୋଇଥିଲା। ଏହା ପରିବର୍ତ୍ତେ ଆପଣ ଏହି ନୀତି ବ୍ୟବହାର କରିବା ଉଚିତ।</translation>
 <translation id="3364869320075768271"><ph name="URL" /> ଆପଣଙ୍କର ଭର୍ଚୁଆଲ୍ ରିଆଲିଟୀ ଡିଭାଇସ୍ ଏବଂ ଡାଟାକୁ ବ୍ୟବହାର କରିବାକୁ ଚାହୁଁଛି</translation>
 <translation id="3366477098757335611">କାର୍ଡଗୁଡ଼ିକ ଦେଖନ୍ତୁ</translation>
@@ -1210,12 +1207,7 @@
 <translation id="4819347708020428563">ଡିଫଲ୍ଟ ଭ୍ୟୁରେ ଏନୋଟେସନଗୁଡ଼ିକୁ ଏଡିଟ୍ କରିବେ?</translation>
 <translation id="4825496307559726072"><ph name="CREATE_GOOGLE_SHEET_FOCUSED_FRIENDLY_MATCH_TEXT" />, ଶୀଘ୍ର ଏକ ନୂଆ Google Sheet ତିଆରି କରିବାକୁ Tab କରି Enter ଦବାନ୍ତୁ</translation>
 <translation id="4825507807291741242">ଶକ୍ତିଶାଳୀ</translation>
-<translation id="4827402517081186284">ଇନକଗ୍ନିଟୋ ଆପଣଙ୍କୁ ଅନଲାଇନରେ ଅଦୃଶ୍ୟ କରେ ନାହିଁ:
-<ph name="BEGIN_LIST" />
-<ph name="LIST_ITEM" />ଆପଣ ସାଇଟଗୁଡ଼ିକୁ ଭିଜିଟ୍ କଲେ ସେଗୁଡ଼ିକ ଏହା ବିଷୟରେ ଜାଣିପାରେ<ph name="END_LIST_ITEM" />
-<ph name="LIST_ITEM" />ନିଯୁକ୍ତିଦାତା କିମ୍ବା ସ୍କୁଲ୍, ବ୍ରାଉଜିଂ କାର୍ଯ୍ୟକଳାପକୁ ଟ୍ରାକ୍ କରିପାରିବେ<ph name="END_LIST_ITEM" />
-<ph name="LIST_ITEM" />ଇଣ୍ଟରନେଟ୍ ସେବା ପ୍ରଦାନକାରୀଗୁଡ଼ିକ ୱେବ୍ ଟ୍ରାଫିକକୁ ମନିଟର୍ କରିପାରନ୍ତି<ph name="END_LIST_ITEM" />
-<ph name="END_LIST" /></translation>
+<translation id="4829962028570902310">କେବଳ କ୍ଲାଉଡ ଉପଯୋଗକର୍ତ୍ତା ନୀତି ଦ୍ୱାରା ଏହି ନୀତିକୁ ସେଟ କରାଯାଇପାରୁଥିବା ଯୋଗୁଁ ଏହାକୁ ଅଣଦେଖା କରାଯାଇଛି।</translation>
 <translation id="483241715238664915">ଚେତାବନୀ ଚାଲୁ କରନ୍ତୁ</translation>
 <translation id="4838327282952368871">ଡ୍ରିମି</translation>
 <translation id="4840250757394056958">ଆପଣଙ୍କ Chrome ଇତିହାସ ଦେଖନ୍ତୁ</translation>
@@ -1783,7 +1775,6 @@
 <translation id="6757797048963528358">ଆପଣଙ୍କର ଡିଭାଇସ୍ ନିଷ୍କ୍ରିୟ ହୋ‍ଇଯାଇଛି।</translation>
 <translation id="6767985426384634228">ଠିକଣା ଅପଡ଼େଟ୍ କରିବେ?</translation>
 <translation id="6768213884286397650">ହାଗାକି (ପୋଷ୍ଟକାର୍ଡ)</translation>
-<translation id="6774185088257932239">ଇନକଗ୍ନିଟୋ ବିଷୟରେ <ph name="BEGIN_LINK" />ଅଧିକ ଜାଣନ୍ତୁ<ph name="END_LINK" /></translation>
 <translation id="6775759552199460396">JIS B2</translation>
 <translation id="67862343314499040">ବାଇଗଣୀ</translation>
 <translation id="6786747875388722282">ପରିବର୍ଦ୍ଧନ</translation>
@@ -2263,12 +2254,6 @@
 <translation id="8317207217658302555">ARCore ଅପଡେଟ କରିବେ କି?</translation>
 <translation id="831997045666694187">ସନ୍ଧ୍ୟା</translation>
 <translation id="8321476692217554900">ବିଜ୍ଞପ୍ତିଗୁଡ଼ିକ</translation>
-<translation id="8328484624016508118">ସମସ୍ତ ଇନକଗ୍ନିଟୋ ଟାବକୁ ବନ୍ଦ କରିବା ପରେ, Chrome ଏସବୁ ଖାଲି କରେ:
-<ph name="BEGIN_LIST" />
-<ph name="LIST_ITEM" />ଏହି ଡିଭାଇସରୁ ଆପଣଙ୍କ ବ୍ରାଉଜିଂ କାର୍ଯ୍ୟକଳାପ<ph name="END_LIST_ITEM" />
-<ph name="LIST_ITEM" />ଏହି ଡିଭାଇସରୁ ଆପଣଙ୍କ ସନ୍ଧାନ ଇତିହାସ<ph name="END_LIST_ITEM" />
-<ph name="LIST_ITEM" />ଫର୍ମଗୁଡ଼ିକରେ ଲେଖାଯାଇଥିବା ସୂଚନା<ph name="END_LIST_ITEM" />
-<ph name="END_LIST" /></translation>
 <translation id="8332188693563227489"><ph name="HOST_NAME" />କୁ ଆକ୍ସେସ୍‌ ପ୍ରତ୍ୟାଖ୍ୟାନ କରାଯାଇଥିଲା</translation>
 <translation id="833262891116910667">ହାଇଲାଇଟ୍</translation>
 <translation id="8339163506404995330"><ph name="LANGUAGE" /> ରେ ପୃଷ୍ଠାଗୁଡ଼ିକ ଅନୁବାଦ କରାଯିବନାହିଁ</translation>
@@ -2352,6 +2337,7 @@
 <translation id="8669306706049782872">ୱିଣ୍ଡୋଗୁଡ଼ିକୁ ଖୋଲିବା ଏବଂ ରଖିବା ପାଇଁ, ଆପଣଙ୍କ ସ୍କ୍ରିନ ବିଷୟରେ ଥିବା ସୂଚନାକୁ ବ୍ୟବହାର କରନ୍ତୁ</translation>
 <translation id="867224526087042813">ଦସ୍ତଖତ</translation>
 <translation id="8676424191133491403">କୌଣସି ବିଳମ୍ବ ନାହିଁ</translation>
+<translation id="8679903780129190080">ହଁ, ମୁଁ ରାଜି ଅଛି</translation>
 <translation id="8680536109547170164"><ph name="QUERY" />, ଉତ୍ତର ଦିଅନ୍ତୁ, <ph name="ANSWER" /></translation>
 <translation id="8681531050781943054"><ph name="PAGE" />ରେ ୱେବ୍‌ପୃଷ୍ଠା ଲୋଡ୍ କରାଯାଇପାରିଲା ନାହିଁ, କାରଣ:</translation>
 <translation id="8685155993131031756">PRC 16K</translation>
diff --git a/components/strings/components_strings_pa.xtb b/components/strings/components_strings_pa.xtb
index 19bc5c5..fb36ee7 100644
--- a/components/strings/components_strings_pa.xtb
+++ b/components/strings/components_strings_pa.xtb
@@ -20,7 +20,6 @@
 <translation id="1038842779957582377">ਅਗਿਆਤ ਨਾਮ</translation>
 <translation id="1041998700806130099">ਕਾਰਵਾਈ ਸ਼ੀਟ ਸੁਨੇਹਾ</translation>
 <translation id="1048785276086539861">ਜਦੋਂ ਤੁਸੀਂ ਐਨੋਟੇਸ਼ਨਾਂ ਦਾ ਸੰਪਾਦਨ ਕਰਦੇ ਹੋ, ਤਾਂ ਇਹ ਦਸਤਾਵੇਜ਼ ਇਕਹਿਰੇ ਪੰਨਾ-ਦ੍ਰਿਸ਼ 'ਤੇ ਵਾਪਸ ਆ ਜਾਵੇਗਾ</translation>
-<translation id="1049743911850919806">ਗੁਮਨਾਮ</translation>
 <translation id="1050038467049342496">ਦੂਜੀਆਂ ਐਪਾਂ ਬੰਦ ਕਰੋ</translation>
 <translation id="1055184225775184556">&amp;ਜੋੜੋ ਨੂੰ ਅਨਡੂ ਕਰੋ</translation>
 <translation id="1056898198331236512">ਚਿਤਾਵਨੀ</translation>
@@ -734,12 +733,6 @@
 <translation id="3345782426586609320">ਅੱਖਾਂ</translation>
 <translation id="3355823806454867987">ਪ੍ਰੌਕਸੀ ਸੈਟਿੰਗਾਂ ਬਦਲੋ...</translation>
 <translation id="3360103848165129075">ਭੁਗਤਾਨ ਹੈਂਡਲਰ ਸ਼ੀਟ</translation>
-<translation id="3361596688432910856">Chrome ਅੱਗੇ ਦਿੱਤੀ ਜਾਣਕਾਰੀ ਨੂੰ <ph name="BEGIN_EMPHASIS" />ਰੱਖਿਅਤ ਨਹੀਂ ਕਰੇਗਾ<ph name="END_EMPHASIS" />:
-        <ph name="BEGIN_LIST" />
-          <ph name="LIST_ITEM" />ਤੁਹਾਡਾ ਬ੍ਰਾਊਜ਼ਿੰਗ ਇਤਿਹਾਸ
-          <ph name="LIST_ITEM" />ਕੁਕੀਜ਼ ਅਤੇ ਸਾਈਟ  ਡਾਟਾ 
-          <ph name="LIST_ITEM" />ਫ਼ਾਰਮਾਂ ਵਿੱਚ ਦਾਖਲ ਕੀਤੀ ਜਾਣਕਾਰੀ
-        <ph name="END_LIST" /></translation>
 <translation id="3362968246557010467">ਇਹ ਨੀਤੀ ਨਾਪਸੰਦ ਕੀਤੀ <ph name="OLD_POLICY" /> ਨੀਤੀ ਤੋਂ ਸਵੈਚਲਿਤ ਤੌਰ 'ਤੇ ਕਾਪੀ ਕੀਤੀ ਗਈ। ਤੁਹਾਨੂੰ ਇਸਦੀ ਬਜਾਏ ਇਸ ਨੀਤੀ ਨੂੰ ਵਰਤਣਾ ਚਾਹੀਦਾ ਹੈ।</translation>
 <translation id="3364869320075768271"><ph name="URL" /> ਦੀ ਤੁਹਾਡੇ ਆਭਾਸੀ ਵਾਸਤਵਿਕਤਾ ਡੀਵਾਈਸ ਅਤੇ ਡਾਟੇ ਨੂੰ ਵਰਤਣ ਦੀ ਇੱਛਾ ਹੈ</translation>
 <translation id="3366477098757335611">ਕਾਰਡ ਦੇਖੋ</translation>
@@ -1214,12 +1207,6 @@
 <translation id="4819347708020428563">ਕੀ ਪੂਰਵ-ਨਿਰਧਾਰਤ ਦ੍ਰਿਸ਼ ਵਿੱਚ ਐਨੋਟੇਸ਼ਨਾਂ ਦਾ ਸੰਪਾਦਨ ਕਰਨਾ ਹੈ?</translation>
 <translation id="4825496307559726072"><ph name="CREATE_GOOGLE_SHEET_FOCUSED_FRIENDLY_MATCH_TEXT" />, ਤੇਜ਼ੀ ਨਾਲ ਨਵੀਂ Google ਸ਼ੀਟ ਬਣਾਉਣ ਲਈ Tab ਦਬਾ ਕੇ ਫਿਰ Enter ਦਬਾਓ</translation>
 <translation id="4825507807291741242">ਸ਼ਕਤੀਸ਼ਾਲੀ</translation>
-<translation id="4827402517081186284">ਇਨਕੋਗਨਿਟੋ ਮੋਡ ਤੁਹਾਨੂੰ ਆਨਲਾਈਨ ਅਦਿੱਖ ਨਹੀਂ ਬਣਾਉਂਦਾ:
-        <ph name="BEGIN_LIST" />
-          <ph name="LIST_ITEM" />ਜਦੋਂ ਤੁਸੀਂ ਸਾਈਟਾਂ 'ਤੇ ਜਾਂਦੇ ਹੋ, ਤਾਂ ਉਨ੍ਹਾਂ ਨੂੰ ਇਸ ਬਾਰੇ ਪਤਾ ਲੱਗਦਾ ਹੈ<ph name="END_LIST_ITEM" />
-          <ph name="LIST_ITEM" />ਰੁਜ਼ਗਾਰਦਾਤੇ ਜਾਂ ਸਕੂਲ ਬ੍ਰਾਊਜ਼ਿੰਗ ਸਰਗਰਮੀ ਨੂੰ ਟਰੈਕ ਕਰ ਸਕਦੇ ਹਨ<ph name="END_LIST_ITEM" />
-          <ph name="LIST_ITEM" />ਇੰਟਰਨੈੱਟ ਸੇਵਾ ਪ੍ਰਦਾਨਕ ਵੈੱਬ ਟਰੈਫ਼ਿਕ ਨੂੰ ਮਾਨੀਟਰ ਕਰ ਸਕਦੇ ਹਨ<ph name="END_LIST_ITEM" />
-        <ph name="END_LIST" /></translation>
 <translation id="4829962028570902310">ਅਣਡਿੱਠ ਕੀਤਾ ਗਿਆ ਕਿਉਂਕਿ ਨੀਤੀ ਨੂੰ ਸਿਰਫ਼ ਕਲਾਊਡ ਵਰਤੋਂਕਾਰ ਨੀਤੀ ਮੁਤਾਬਕ ਹੀ ਸੈੱਟ ਕੀਤਾ ਜਾ ਸਕਦਾ ਹੈ।</translation>
 <translation id="483241715238664915">ਚਿਤਾਵਨੀਆਂ ਚਾਲੂ ਕਰੋ</translation>
 <translation id="4838327282952368871">ਸੁਪਨਮਈ</translation>
@@ -1788,7 +1775,6 @@
 <translation id="6757797048963528358">ਤੁਹਾਡੀ ਡੀਵਾਈਸ ਸਲੀਪ ਵਿੱਚ ਚਲੀ ਗਈ।</translation>
 <translation id="6767985426384634228">ਕੀ ਪਤਾ ਅੱਪਡੇਟ ਕਰਨਾ ਚਾਹੁੰਦੇ ਹੋ?</translation>
 <translation id="6768213884286397650">Hagaki (ਪੋਸਟਕਾਰਡ)</translation>
-<translation id="6774185088257932239">ਇਨਕੋਗਨਿਟੋ ਬਾਰੇ <ph name="BEGIN_LINK" />ਹੋਰ ਜਾਣੋ<ph name="END_LINK" /></translation>
 <translation id="6775759552199460396">JIS B2</translation>
 <translation id="67862343314499040">ਬੈਂਗਣੀ</translation>
 <translation id="6786747875388722282">ਐਕਸਟੈਂਸ਼ਨਾਂ</translation>
@@ -2268,12 +2254,6 @@
 <translation id="8317207217658302555">ਕੀ ARCore ਨੂੰ ਅੱਪਡੇਟ ਕਰਨਾ ਹੈ?</translation>
 <translation id="831997045666694187">ਸ਼ਾਮ</translation>
 <translation id="8321476692217554900">ਸੂਚਨਾਵਾਂ</translation>
-<translation id="8328484624016508118">ਸਾਰੀਆਂ ਇਨਕੋਗਨਿਟੋ ਟੈਬਾਂ ਨੂੰ ਬੰਦ ਕਰਨ ਤੋਂ ਬਾਅਦ, Chrome ਇਨ੍ਹਾਂ ਚੀਜ਼ਾਂ ਨੂੰ ਕਲੀਅਰ ਕਰਦਾ ਹੈ:
-        <ph name="BEGIN_LIST" />
-          <ph name="LIST_ITEM" />ਇਸ ਡੀਵਾਈਸ ਤੋਂ ਤੁਹਾਡੀ ਬ੍ਰਾਊਜ਼ਿੰਗ ਸਰਗਰਮੀ<ph name="END_LIST_ITEM" />
-          <ph name="LIST_ITEM" />ਇਸ ਡੀਵਾਈਸ ਤੋਂ ਤੁਹਾਡਾ ਖੋਜ ਇਤਿਹਾਸ<ph name="END_LIST_ITEM" />
-          <ph name="LIST_ITEM" />ਫ਼ਾਰਮਾਂ ਵਿੱਚ ਦਾਖਲ ਕੀਤੀ ਜਾਣਕਾਰੀ<ph name="END_LIST_ITEM" />
-        <ph name="END_LIST" /></translation>
 <translation id="8332188693563227489"><ph name="HOST_NAME" /> 'ਤੇ ਪਹੁੰਚ ਨੂੰ ਇਨਕਾਰਿਆ ਗਿਆ ਸੀ</translation>
 <translation id="833262891116910667">ਉਜਾਗਰ ਕਰੋ</translation>
 <translation id="8339163506404995330"><ph name="LANGUAGE" /> ਭਾਸ਼ਾ ਵਾਲੇ ਪੰਨਿਆਂ ਦਾ ਅਨੁਵਾਦ ਨਹੀਂ ਕੀਤਾ ਜਾਵੇਗਾ</translation>
@@ -2531,7 +2511,6 @@
 <translation id="9215416866750762878">ਕੋਈ ਐਪਲੀਕੇਸ਼ਨ Chrome ਨੂੰ ਸੁਰੱਖਿਅਤ ਢੰਗ ਨਾਲ ਇਸ ਸਾਈਟ ਨਾਲ ਕਨੈਕਟ ਹੋਣ ਤੋਂ ਰੋਕ ਰਹੀ ਹੈ</translation>
 <translation id="9219103736887031265">ਚਿੱਤਰ</translation>
 <translation id="922152298093051471">Chrome ਨੂੰ ਵਿਉਂਤਬੱਧ ਕਰੋ</translation>
-<translation id="922274508605516859">ਆਭਾਸੀ ਕਾਰਡ ਤੁਹਾਨੂੰ ਸੰਭਾਵੀ ਧੋਖਾਧੜੀ ਤੋਂ ਬਚਾਉਣ ਵਿੱਚ ਮਦਦ ਕਰਨ ਲਈ ਤੁਹਾਡੇ ਅਸਲ ਕਾਰਡ ਦਾ ਭੇਸ ਲੈਂਦਾ ਹੈ।</translation>
 <translation id="933712198907837967">Diners Club</translation>
 <translation id="935608979562296692">ਫ਼ਾਰਮ ਹਟਾਓ</translation>
 <translation id="936474030629450166">Super-B</translation>
diff --git a/components/strings/components_strings_pl.xtb b/components/strings/components_strings_pl.xtb
index 6de04fda7..b11c574 100644
--- a/components/strings/components_strings_pl.xtb
+++ b/components/strings/components_strings_pl.xtb
@@ -20,7 +20,6 @@
 <translation id="1038842779957582377">nieznana nazwa</translation>
 <translation id="1041998700806130099">Komunikat dotyczący arkusza zadań</translation>
 <translation id="1048785276086539861">Gdy zmodyfikujesz adnotacje, dokument wróci do widoku jednej strony</translation>
-<translation id="1049743911850919806">Incognito</translation>
 <translation id="1050038467049342496">Zamknij inne aplikacje</translation>
 <translation id="1055184225775184556">&amp;Cofnij dodanie</translation>
 <translation id="1056898198331236512">Ostrzeżenie</translation>
@@ -732,12 +731,6 @@
 <translation id="3345782426586609320">Oczy</translation>
 <translation id="3355823806454867987">Zmień ustawienia serwera proxy...</translation>
 <translation id="3360103848165129075">Arkusz modułu do obsługi płatności</translation>
-<translation id="3361596688432910856">Chrome <ph name="BEGIN_EMPHASIS" />nie będzie zapisywać<ph name="END_EMPHASIS" />:
-        <ph name="BEGIN_LIST" />
-          <ph name="LIST_ITEM" />Twojej historii przeglądania;
-          <ph name="LIST_ITEM" />plików cookie i danych ze stron internetowych;
-          <ph name="LIST_ITEM" />informacji, które wpisujesz w formularzach.
-        <ph name="END_LIST" /></translation>
 <translation id="3362968246557010467">Ta zasada została automatycznie skopiowana z wycofanej zasady <ph name="OLD_POLICY" />. Zalecamy używanie nowej zasady.</translation>
 <translation id="3364869320075768271"><ph name="URL" /> chce używać Twojego urządzenia i danych rzeczywistości wirtualnej</translation>
 <translation id="3366477098757335611">Wyświetl karty</translation>
@@ -1213,12 +1206,6 @@
 <translation id="4819347708020428563">Czy chcesz edytować adnotacje w widoku domyślnym?</translation>
 <translation id="4825496307559726072"><ph name="CREATE_GOOGLE_SHEET_FOCUSED_FRIENDLY_MATCH_TEXT" />; naciśnij Tab, a potem Enter, aby szybko utworzyć nowy arkusz Google</translation>
 <translation id="4825507807291741242">Intensywny</translation>
-<translation id="4827402517081186284">Tryb incognito nie czyni nikogo niewidzialnym w internecie:
-        <ph name="BEGIN_LIST" />
-          <ph name="LIST_ITEM" />Strony wiedzą, że je odwiedzasz.<ph name="END_LIST_ITEM" />
-          <ph name="LIST_ITEM" />Pracodawcy lub szkolni administratorzy mogą sprawdzać Twoją aktywność związaną z przeglądaniem.<ph name="END_LIST_ITEM" />
-          <ph name="LIST_ITEM" />Dostawcy usług internetowych mogą monitorować ruch w sieci.<ph name="END_LIST_ITEM" />
-        <ph name="END_LIST" /></translation>
 <translation id="4829962028570902310">Ignorowana, ponieważ zasada może zostać skonfigurowana wyłącznie przez zasady dotyczące użytkowników obowiązujące w chmurze.</translation>
 <translation id="483241715238664915">Włącz ostrzeżenia</translation>
 <translation id="4838327282952368871">Uroczy</translation>
@@ -1788,7 +1775,6 @@
 <translation id="6757797048963528358">Twoje urządzenie przeszło w tryb uśpienia.</translation>
 <translation id="6767985426384634228">Zmienić adres?</translation>
 <translation id="6768213884286397650">Hagaki (pocztówka)</translation>
-<translation id="6774185088257932239"><ph name="BEGIN_LINK" />Więcej informacji<ph name="END_LINK" /> o trybie incognito</translation>
 <translation id="6775759552199460396">JIS B2</translation>
 <translation id="67862343314499040">Fioletowy</translation>
 <translation id="6786747875388722282">Rozszerzenia</translation>
@@ -2268,12 +2254,6 @@
 <translation id="8317207217658302555">Zaktualizować ARCore?</translation>
 <translation id="831997045666694187">Wieczorem</translation>
 <translation id="8321476692217554900">powiadomienia</translation>
-<translation id="8328484624016508118">Gdy zamkniesz wszystkie karty incognito, Chrome usunie:
-        <ph name="BEGIN_LIST" />
-          <ph name="LIST_ITEM" />Twoją aktywność związaną z przeglądaniem (z tego urządzenia),<ph name="END_LIST_ITEM" />
-          <ph name="LIST_ITEM" />Twoją historię przeglądania (z tego urządzenia),<ph name="END_LIST_ITEM" />
-          <ph name="LIST_ITEM" />informacje wpisane w formularzach.<ph name="END_LIST_ITEM" />
-        <ph name="END_LIST" /></translation>
 <translation id="8332188693563227489">Odmowa dostępu do <ph name="HOST_NAME" /></translation>
 <translation id="833262891116910667">Podświetlenie</translation>
 <translation id="8339163506404995330">Strony, których językiem jest <ph name="LANGUAGE" />, nie będą tłumaczone</translation>
diff --git a/components/strings/components_strings_pt-BR.xtb b/components/strings/components_strings_pt-BR.xtb
index 8cec4ff..0998172 100644
--- a/components/strings/components_strings_pt-BR.xtb
+++ b/components/strings/components_strings_pt-BR.xtb
@@ -20,7 +20,6 @@
 <translation id="1038842779957582377">nome desconhecido</translation>
 <translation id="1041998700806130099">Mensagem de página de tarefa</translation>
 <translation id="1048785276086539861">Quando você editar as anotações, este documento voltará à visualização de uma página</translation>
-<translation id="1049743911850919806">Modo anônimo</translation>
 <translation id="1050038467049342496">Fechar outros apps</translation>
 <translation id="1055184225775184556">&amp;Desfazer adicionar</translation>
 <translation id="1056898198331236512">Aviso</translation>
@@ -732,12 +731,6 @@
 <translation id="3345782426586609320">Olhos</translation>
 <translation id="3355823806454867987">Alterar configurações de proxy...</translation>
 <translation id="3360103848165129075">Página do gerenciador de pagamento</translation>
-<translation id="3361596688432910856">O Chrome <ph name="BEGIN_EMPHASIS" />não salvará<ph name="END_EMPHASIS" /> as seguintes informações:
-        <ph name="BEGIN_LIST" />
-          <ph name="LIST_ITEM" />seu histórico de navegação
-          <ph name="LIST_ITEM" />cookies e dados de sites
-          <ph name="LIST_ITEM" />informações fornecidas em formulários
-        <ph name="END_LIST" /></translation>
 <translation id="3362968246557010467">Esta política foi copiada automaticamente da política <ph name="OLD_POLICY" /> obsoleta. Use esta política.</translation>
 <translation id="3364869320075768271"><ph name="URL" /> quer usar seus dispositivos e dados de realidade virtual</translation>
 <translation id="3366477098757335611">Ver cartões</translation>
@@ -1213,12 +1206,6 @@
 <translation id="4819347708020428563">Editar anotações na visualização padrão?</translation>
 <translation id="4825496307559726072"><ph name="CREATE_GOOGLE_SHEET_FOCUSED_FRIENDLY_MATCH_TEXT" />. Pressione Tab e depois Enter para criar rapidamente um novo arquivo do Planilhas Google</translation>
 <translation id="4825507807291741242">Intenso</translation>
-<translation id="4827402517081186284">Com a navegação anônima, você não fica invisível on-line.
-        <ph name="BEGIN_LIST" />
-          <ph name="LIST_ITEM" />Sites sabem quando você os acessa<ph name="END_LIST_ITEM" />
-          <ph name="LIST_ITEM" />Empregadores ou escolas podem rastrear a navegação<ph name="END_LIST_ITEM" />
-          <ph name="LIST_ITEM" />Provedores de acesso à Internet podem monitorar o tráfego na Internet<ph name="END_LIST_ITEM" />
-        <ph name="END_LIST" /></translation>
 <translation id="4829962028570902310">Ignorada porque a política só pode ser definida por políticas do usuário em nuvem.</translation>
 <translation id="483241715238664915">Ativar avisos</translation>
 <translation id="4838327282952368871">Sonho</translation>
@@ -1788,7 +1775,6 @@
 <translation id="6757797048963528358">O dispositivo entrou em modo de suspensão.</translation>
 <translation id="6767985426384634228">Atualizar endereço?</translation>
 <translation id="6768213884286397650">Hagaki (Postal)</translation>
-<translation id="6774185088257932239"><ph name="BEGIN_LINK" />Saiba mais<ph name="END_LINK" /> sobre a navegação anônima</translation>
 <translation id="6775759552199460396">JIS B2</translation>
 <translation id="67862343314499040">Violeta</translation>
 <translation id="6786747875388722282">Extensões</translation>
@@ -2268,12 +2254,6 @@
 <translation id="8317207217658302555">Atualizar o ARCore?</translation>
 <translation id="831997045666694187">Noite</translation>
 <translation id="8321476692217554900">notificações</translation>
-<translation id="8328484624016508118">Após o fechamento de todas as guias anônimas, o Chrome apaga:
-        <ph name="BEGIN_LIST" />
-          <ph name="LIST_ITEM" />Sua atividade de navegação no dispositivo<ph name="END_LIST_ITEM" />
-          <ph name="LIST_ITEM" />Seu histórico de pesquisa no dispositivo<ph name="END_LIST_ITEM" />
-          <ph name="LIST_ITEM" />As informações digitadas em formulários<ph name="END_LIST_ITEM" />
-        <ph name="END_LIST" /></translation>
 <translation id="8332188693563227489">O acesso a <ph name="HOST_NAME" /> foi negado</translation>
 <translation id="833262891116910667">Destacar</translation>
 <translation id="8339163506404995330">Páginas em <ph name="LANGUAGE" /> não serão traduzidas</translation>
diff --git a/components/strings/components_strings_pt-PT.xtb b/components/strings/components_strings_pt-PT.xtb
index 037a7d59..aa067cd1 100644
--- a/components/strings/components_strings_pt-PT.xtb
+++ b/components/strings/components_strings_pt-PT.xtb
@@ -20,7 +20,6 @@
 <translation id="1038842779957582377">nome desconhecido</translation>
 <translation id="1041998700806130099">Mensagem da folha da tarefa</translation>
 <translation id="1048785276086539861">Quando edita anotações, este documento volta à vista de página única.</translation>
-<translation id="1049743911850919806">Navegação anónima</translation>
 <translation id="1050038467049342496">Fechar outras aplicações</translation>
 <translation id="1055184225775184556">&amp;Anular adição</translation>
 <translation id="1056898198331236512">Aviso</translation>
@@ -740,12 +739,6 @@
 <translation id="3345782426586609320">Olhos</translation>
 <translation id="3355823806454867987">Alterar definições de proxy...</translation>
 <translation id="3360103848165129075">Página do controlador do pagamento</translation>
-<translation id="3361596688432910856">O Chrome <ph name="BEGIN_EMPHASIS" />não guardará<ph name="END_EMPHASIS" /> as seguintes informações:
-        <ph name="BEGIN_LIST" />
-          <ph name="LIST_ITEM" />O seu histórico de navegação
-          <ph name="LIST_ITEM" />Os cookies e os dados de sites
-          <ph name="LIST_ITEM" />As informações introduzidas em formulários
-        <ph name="END_LIST" /></translation>
 <translation id="3362968246557010467">Esta política foi copiada automaticamente da política <ph name="OLD_POLICY" /> descontinuada. Deverá optar por utilizar esta política.</translation>
 <translation id="3364869320075768271"><ph name="URL" /> pretende utilizar os seus dados e dispositivo de realidade virtual.</translation>
 <translation id="3366477098757335611">Ver cartões</translation>
@@ -1226,12 +1219,6 @@
 <translation id="4819347708020428563">Pretende editar anotações na vista predefinida?</translation>
 <translation id="4825496307559726072"><ph name="CREATE_GOOGLE_SHEET_FOCUSED_FRIENDLY_MATCH_TEXT" />, prima Tab e, em seguida, Enter para criar rapidamente uma nova Folha de cálculo do Google Sheets</translation>
 <translation id="4825507807291741242">Potente</translation>
-<translation id="4827402517081186284">A Navegação anónima não faz com que esteja invisível online:
-        <ph name="BEGIN_LIST" />
-          <ph name="LIST_ITEM" />Os sites sabem quando os visita<ph name="END_LIST_ITEM" />
-          <ph name="LIST_ITEM" />Os empregadores ou as escolas podem monitorizar a atividade de navegação<ph name="END_LIST_ITEM" />
-          <ph name="LIST_ITEM" />Os fornecedores de serviços de Internet podem monitorizar o tráfego da Web<ph name="END_LIST_ITEM" />
-        <ph name="END_LIST" /></translation>
 <translation id="4829962028570902310">Ignorado porque a política só pode ser definida pela Política do Utilizador da nuvem.</translation>
 <translation id="483241715238664915">Ativar avisos</translation>
 <translation id="4838327282952368871">Sonhador</translation>
@@ -1801,7 +1788,6 @@
 <translation id="6757797048963528358">O dispositivo entrou em suspensão.</translation>
 <translation id="6767985426384634228">Pretende atualizar o endereço?</translation>
 <translation id="6768213884286397650">Hagaki (Postcard)</translation>
-<translation id="6774185088257932239"><ph name="BEGIN_LINK" />Saiba mais<ph name="END_LINK" /> sobre a Navegação anónima</translation>
 <translation id="6775759552199460396">JIS B2</translation>
 <translation id="67862343314499040">Violeta</translation>
 <translation id="6786747875388722282">Extensões</translation>
@@ -2280,12 +2266,6 @@
 <translation id="8317207217658302555">Atualizar o ARCore?</translation>
 <translation id="831997045666694187">Noite</translation>
 <translation id="8321476692217554900">notificações</translation>
-<translation id="8328484624016508118">Após fechar todos os separadores de navegação anónima, o Chrome limpa:
-        <ph name="BEGIN_LIST" />
-          <ph name="LIST_ITEM" />A sua atividade de navegação deste dispositivo<ph name="END_LIST_ITEM" />
-          <ph name="LIST_ITEM" />O seu histórico de pesquisas deste dispositivo<ph name="END_LIST_ITEM" />
-          <ph name="LIST_ITEM" />As informações introduzidas em formulários<ph name="END_LIST_ITEM" />
-        <ph name="END_LIST" /></translation>
 <translation id="8332188693563227489">O acesso a <ph name="HOST_NAME" /> foi recusado</translation>
 <translation id="833262891116910667">Realçar</translation>
 <translation id="8339163506404995330">As páginas em <ph name="LANGUAGE" /> não serão traduzidas</translation>
@@ -2544,7 +2524,6 @@
 <translation id="9215416866750762878">Uma aplicação está a impedir que o Chrome se ligue a este site em segurança</translation>
 <translation id="9219103736887031265">Imagens</translation>
 <translation id="922152298093051471">Personalizar o Chrome</translation>
-<translation id="922274508605516859">Um cartão virtual disfarça o seu cartão real como medida de proteção contra potenciais fraudes.</translation>
 <translation id="933712198907837967">Diners Club</translation>
 <translation id="935608979562296692">LIMPAR FORMULÁRIO</translation>
 <translation id="936474030629450166">Super-B</translation>
diff --git a/components/strings/components_strings_ro.xtb b/components/strings/components_strings_ro.xtb
index 7105cd6..267600d 100644
--- a/components/strings/components_strings_ro.xtb
+++ b/components/strings/components_strings_ro.xtb
@@ -20,7 +20,6 @@
 <translation id="1038842779957582377">nume necunoscut</translation>
 <translation id="1041998700806130099">Mesajul din foaia sarcinii</translation>
 <translation id="1048785276086539861">Când editezi adnotări, acest document va reveni la afișarea cu o pagină</translation>
-<translation id="1049743911850919806">Incognito</translation>
 <translation id="1050038467049342496">închide celelalte aplicații;</translation>
 <translation id="1055184225775184556">&amp;Anulați adăugarea</translation>
 <translation id="1056898198331236512">Avertisment</translation>
@@ -212,6 +211,7 @@
 <translation id="1567040042588613346">Politica funcționează corespunzător, dar în altă sursă a fost setată aceeași valoare, care este înlocuită prin această politică.</translation>
 <translation id="1569487616857761740">Introdu data expirării</translation>
 <translation id="1581080074034554886">CVC</translation>
+<translation id="1581767074483369314">Înscrie-te pentru un card virtual</translation>
 <translation id="1583294866416602487">Plex</translation>
 <translation id="1583429793053364125">A apărut o eroare la afișarea paginii web.</translation>
 <translation id="1586541204584340881">extensiile instalate;</translation>
@@ -377,6 +377,7 @@
 <translation id="2101225219012730419">Versiune:</translation>
 <translation id="2102134110707549001">Sugerează o parolă puternică…</translation>
 <translation id="2102495993840063010">Aplicații Android</translation>
+<translation id="2106249949168291652">S-a salvat. Vrei să-l securizezi folosind un card virtual?</translation>
 <translation id="2107021941795971877">Suporturi de printare</translation>
 <translation id="2108755909498034140">repornește computerul;</translation>
 <translation id="2111166930115883695">Apasă pe Space pentru a juca</translation>
@@ -532,6 +533,7 @@
 <translation id="262745152991669301">Poate solicita permisiunea de a se conecta la dispozitive USB</translation>
 <translation id="2629325967560697240">Pentru a beneficia de cel mai înalt nivel de securitate, <ph name="BEGIN_ENHANCED_PROTECTION_LINK" />activează protecția îmbunătățită<ph name="END_ENHANCED_PROTECTION_LINK" /></translation>
 <translation id="2634124572758952069">Nu s-a găsit adresa IP pentru serverul <ph name="HOST_NAME" />.</translation>
+<translation id="2638001509205834345">Vrei să-ți securizezi cardul?</translation>
 <translation id="2639739919103226564">Stare:</translation>
 <translation id="264810637653812429">Nu s-au găsit dispozitive compatibile.</translation>
 <translation id="2649204054376361687"><ph name="CITY" />, <ph name="COUNTRY" /></translation>
@@ -664,6 +666,7 @@
 <translation id="3113284927548439113">A treia tură</translation>
 <translation id="3115874930288085374"><ph name="ENROLLMENT_DOMAIN" /> solicită să faci backup datelor și să returnezi acest <ph name="DEVICE_TYPE" />.</translation>
 <translation id="3116158981186517402">Laminare</translation>
+<translation id="311958134571892113">conectat cu</translation>
 <translation id="3120730422813725195">Elo</translation>
 <translation id="31207688938192855"><ph name="BEGIN_LINK" />Rulează Diagnostice conectivitate<ph name="END_LINK" />.</translation>
 <translation id="3121994479408824897">Accesează <ph name="DOMAIN" /></translation>
@@ -736,12 +739,6 @@
 <translation id="3345782426586609320">Ochi</translation>
 <translation id="3355823806454867987">Modifica setările proxy...</translation>
 <translation id="3360103848165129075">Foaia handlerului pentru plăți</translation>
-<translation id="3361596688432910856">Chrome <ph name="BEGIN_EMPHASIS" />nu va salva<ph name="END_EMPHASIS" /> următoarele informații:
-        <ph name="BEGIN_LIST" />
-          <ph name="LIST_ITEM" />istoricul de navigare;
-          <ph name="LIST_ITEM" />cookie-urile și datele privind site-urile;
-          <ph name="LIST_ITEM" />informațiile introduse în formulare.
-        <ph name="END_LIST" /></translation>
 <translation id="3362968246557010467">Politica a fost copiată automat din politica învechită <ph name="OLD_POLICY" />. Ar trebui să folosești această politică.</translation>
 <translation id="3364869320075768271"><ph name="URL" /> dorește să folosească dispozitivul tău de realitate virtuală și datele conexe</translation>
 <translation id="3366477098757335611">Vezi cardurile</translation>
@@ -1222,12 +1219,6 @@
 <translation id="4819347708020428563">Editezi adnotările în afișarea prestabilită?</translation>
 <translation id="4825496307559726072"><ph name="CREATE_GOOGLE_SHEET_FOCUSED_FRIENDLY_MATCH_TEXT" />, apasă pe Tab, apoi pe Enter pentru a crea rapid o Foaie de calcul Google</translation>
 <translation id="4825507807291741242">Puternic</translation>
-<translation id="4827402517081186284">Modul incognito nu îți asigură invizibilitatea online:
-        <ph name="BEGIN_LIST" />
-          <ph name="LIST_ITEM" />site-urile știu când le accesezi;<ph name="END_LIST_ITEM" />
-          <ph name="LIST_ITEM" />angajatorii sau școlile pot să urmărească activitatea de navigare;<ph name="END_LIST_ITEM" />
-          <ph name="LIST_ITEM" />furnizorii de servicii de internet pot monitoriza traficul pe web.<ph name="END_LIST_ITEM" />
-        <ph name="END_LIST" /></translation>
 <translation id="4829962028570902310">Ignorată deoarece politica poate fi setată numai de utilizatorii cloud.</translation>
 <translation id="483241715238664915">Activează avertizările</translation>
 <translation id="4838327282952368871">Visare</translation>
@@ -1797,7 +1788,6 @@
 <translation id="6757797048963528358">Dispozitivul este inactiv.</translation>
 <translation id="6767985426384634228">Actualizezi adresa?</translation>
 <translation id="6768213884286397650">Hagaki (Carte poștală)</translation>
-<translation id="6774185088257932239"><ph name="BEGIN_LINK" />Află mai multe<ph name="END_LINK" /> despre modul incognito</translation>
 <translation id="6775759552199460396">JIS B2</translation>
 <translation id="67862343314499040">Violet</translation>
 <translation id="6786747875388722282">Extensii</translation>
@@ -2277,12 +2267,6 @@
 <translation id="8317207217658302555">Actualizezi ARCore?</translation>
 <translation id="831997045666694187">Seara</translation>
 <translation id="8321476692217554900">Notificări</translation>
-<translation id="8328484624016508118">După ce închizi toate filele incognito, Chrome șterge:
-        <ph name="BEGIN_LIST" />
-          <ph name="LIST_ITEM" />activitatea de navigare de pe dispozitiv,<ph name="END_LIST_ITEM" />
-          <ph name="LIST_ITEM" />istoricul căutărilor de pe dispozitiv,<ph name="END_LIST_ITEM" />
-          <ph name="LIST_ITEM" />informațiile introduse în formulare.<ph name="END_LIST_ITEM" />
-        <ph name="END_LIST" /></translation>
 <translation id="8332188693563227489">Accesul la <ph name="HOST_NAME" /> nu este permis</translation>
 <translation id="833262891116910667">Evidențiază</translation>
 <translation id="8339163506404995330">Paginile în <ph name="LANGUAGE" /> nu vor fi traduse</translation>
@@ -2367,6 +2351,7 @@
 <translation id="8669306706049782872">să folosească informațiile despre ecrane pentru a deschide și a plasa ferestre</translation>
 <translation id="867224526087042813">Semnătura</translation>
 <translation id="8676424191133491403">Fără întârziere</translation>
+<translation id="8679903780129190080">Da, accept</translation>
 <translation id="8680536109547170164"><ph name="QUERY" />, răspuns, <ph name="ANSWER" /></translation>
 <translation id="8681531050781943054">Pagina de la <ph name="PAGE" /> nu a putut fi încărcată, deoarece:</translation>
 <translation id="8685155993131031756">Prc-16K</translation>
diff --git a/components/strings/components_strings_ru.xtb b/components/strings/components_strings_ru.xtb
index c2d54a4..1596174a 100644
--- a/components/strings/components_strings_ru.xtb
+++ b/components/strings/components_strings_ru.xtb
@@ -20,7 +20,6 @@
 <translation id="1038842779957582377">неизвестное имя</translation>
 <translation id="1041998700806130099">Сообщение на листе задания</translation>
 <translation id="1048785276086539861">При редактировании заметок документ вернется в одностраничный режим просмотра.</translation>
-<translation id="1049743911850919806">Инкогнито</translation>
 <translation id="1050038467049342496">Закройте другие приложения.</translation>
 <translation id="1055184225775184556">&amp;Отменить добавление</translation>
 <translation id="1056898198331236512">Внимание</translation>
@@ -731,12 +730,6 @@
 <translation id="3345782426586609320">Глаза</translation>
 <translation id="3355823806454867987">Изменить настройки прокси-сервера...</translation>
 <translation id="3360103848165129075">Лист с обработчиком платежа</translation>
-<translation id="3361596688432910856">В Chrome <ph name="BEGIN_EMPHASIS" />не будет сохраняться<ph name="END_EMPHASIS" /> следующая информация:
-        <ph name="BEGIN_LIST" />
-          <ph name="LIST_ITEM" />история браузера;
-          <ph name="LIST_ITEM" />файлы cookie и данные сайтов;
-          <ph name="LIST_ITEM" />сведения, которые вы указываете в формах.
-        <ph name="END_LIST" /></translation>
 <translation id="3362968246557010467">Это значение было автоматически скопировано из устаревшего правила <ph name="OLD_POLICY" />. Воспользуйтесь этим правилом.</translation>
 <translation id="3364869320075768271">Сайт <ph name="URL" /> запрашивает разрешение на использование устройства и данных виртуальной реальности.</translation>
 <translation id="3366477098757335611">Список карт</translation>
@@ -1212,12 +1205,7 @@
 <translation id="4819347708020428563">Изменить заметки в режиме по умолчанию?</translation>
 <translation id="4825496307559726072"><ph name="CREATE_GOOGLE_SHEET_FOCUSED_FRIENDLY_MATCH_TEXT" />. Чтобы быстро создать таблицу Google, нажмите Tab, а затем Ввод.</translation>
 <translation id="4825507807291741242">Мощный</translation>
-<translation id="4827402517081186284">В режиме инкогнито доступна информация о некоторых действиях:
-        <ph name="BEGIN_LIST" />
-          <ph name="LIST_ITEM" />сайты узнают, когда вы на них заходите;<ph name="END_LIST_ITEM" />
-          <ph name="LIST_ITEM" />работодатели и образовательные учреждения могут отслеживать действия пользователей в браузере;<ph name="END_LIST_ITEM" />
-          <ph name="LIST_ITEM" />интернет-провайдеры могут отслеживать трафик.<ph name="END_LIST_ITEM" />
-        <ph name="END_LIST" /></translation>
+<translation id="4829962028570902310">Игнорируется, так как может быть настроено только правилом на уровне профиля.</translation>
 <translation id="483241715238664915">Включить предупреждения</translation>
 <translation id="4838327282952368871">Сказочный</translation>
 <translation id="4840250757394056958">Посмотреть историю Chrome</translation>
@@ -1786,7 +1774,6 @@
 <translation id="6757797048963528358">Устройство находится в спящем режиме.</translation>
 <translation id="6767985426384634228">Изменить адрес?</translation>
 <translation id="6768213884286397650">Hagaki (открытка)</translation>
-<translation id="6774185088257932239">Подробнее <ph name="BEGIN_LINK" />о режиме инкогнито<ph name="END_LINK" />…</translation>
 <translation id="6775759552199460396">JIS B2</translation>
 <translation id="67862343314499040">Фиолетовый</translation>
 <translation id="6786747875388722282">Расширения</translation>
@@ -2266,11 +2253,6 @@
 <translation id="8317207217658302555">Обновить ARCore?</translation>
 <translation id="831997045666694187">До вечера</translation>
 <translation id="8321476692217554900">Уведомления</translation>
-<translation id="8328484624016508118">После закрытия всех вкладок инкогнито Chrome удаляет:<ph name="BEGIN_LIST" />
-          <ph name="LIST_ITEM" />ваши действия в браузере на этом устройстве;<ph name="END_LIST_ITEM" />
-          <ph name="LIST_ITEM" />историю поиска на этом устройстве;<ph name="END_LIST_ITEM" />
-          <ph name="LIST_ITEM" />данные, которые вы указали в формах.<ph name="END_LIST_ITEM" />
-        <ph name="END_LIST" /></translation>
 <translation id="8332188693563227489">Доступ к <ph name="HOST_NAME" /> запрещен</translation>
 <translation id="833262891116910667">Выделить</translation>
 <translation id="8339163506404995330">Страницы на этом языке (<ph name="LANGUAGE" />) не будут переводиться автоматически</translation>
diff --git a/components/strings/components_strings_si.xtb b/components/strings/components_strings_si.xtb
index c91e8b8f..861806e5 100644
--- a/components/strings/components_strings_si.xtb
+++ b/components/strings/components_strings_si.xtb
@@ -20,7 +20,6 @@
 <translation id="1038842779957582377">නොදන්නා නමක්</translation>
 <translation id="1041998700806130099">වැඩ පත්‍ර පණිවුඩය</translation>
 <translation id="1048785276086539861">ඔබ අනුසටහන් සංස්කරණය කරන විට, මෙම ලේඛනය තනි පිටු දසුනකට ආපසු යනු ඇත</translation>
-<translation id="1049743911850919806">අප්‍රකට</translation>
 <translation id="1050038467049342496">අනෙකුත් යෙදුම් වසන්න</translation>
 <translation id="1055184225775184556">&amp;එක් කිරීම පසුගමනය කිරීම</translation>
 <translation id="1056898198331236512">අවවාදයයි</translation>
@@ -212,6 +211,7 @@
 <translation id="1567040042588613346">මෙම ප්‍රතිපත්තිය අපේක්ෂිත පරිදි ක්‍රියාත්මක වන නමුත් සමාන අගයක් වෙනත් තැනක සකසා ඇති අතර එය මෙම ප්‍රතිපත්තියෙන් ඉක්මවා යයි.</translation>
 <translation id="1569487616857761740">කල් ඉකුත්වීමේ දිනය ඇතුළත් කරන්න</translation>
 <translation id="1581080074034554886">CVC</translation>
+<translation id="1581767074483369314">අතථ්‍ය කාඩ්පතකට ලියාපදිංචි වන්න</translation>
 <translation id="1583294866416602487">Plex</translation>
 <translation id="1583429793053364125">මෙම වෙබ් පිටුව සංසංදර්ශනය කිරීමේදී යමක් වැරදී ඇත.</translation>
 <translation id="1586541204584340881">ඔබ ස්ථාපන කර ඇති දිගු මොනවාද</translation>
@@ -377,6 +377,7 @@
 <translation id="2101225219012730419">අනුවාදය:</translation>
 <translation id="2102134110707549001">ප්‍රබල මුරපදයක් යෝජනා කරන්න…</translation>
 <translation id="2102495993840063010">Android යෙදුම්</translation>
+<translation id="2106249949168291652">සුරකින ලදි. අතථ්‍ය කාඩ්පතකින් එය වඩාත් සුරක්ෂිත කරන්නද?</translation>
 <translation id="2107021941795971877">මුද්‍රණ සහය</translation>
 <translation id="2108755909498034140">ඔබේ පරිගණකය යළි අරඹන්න</translation>
 <translation id="2111166930115883695">වාදනය කිරීමට ඉඩ යතුර ඔබන්න</translation>
@@ -532,6 +533,7 @@
 <translation id="262745152991669301">USB උපාංග වෙත සම්බන්ධ වීමට ඉල්ලිය හැකිය</translation>
 <translation id="2629325967560697240">Chrome හි ඉහළම ආරක්ෂාව ලබා ගැනීමට, <ph name="BEGIN_ENHANCED_PROTECTION_LINK" />වැඩි දියුණු කළ ආරක්ෂාව ක්‍රියාත්මක කරන්න<ph name="END_ENHANCED_PROTECTION_LINK" /></translation>
 <translation id="2634124572758952069"><ph name="HOST_NAME" /> සේවාදායකයේ IP ලිපිනය සොයා ගත නොහැකි විය.</translation>
+<translation id="2638001509205834345">ඔබගේ කාඩ්පත වඩාත් සුරක්ෂිත කරන්නද?</translation>
 <translation id="2639739919103226564">තත්වය:</translation>
 <translation id="264810637653812429">ගැළපෙන උපාංග හමු නොවිණි.</translation>
 <translation id="2649204054376361687"><ph name="CITY" />, <ph name="COUNTRY" /></translation>
@@ -664,6 +666,7 @@
 <translation id="3113284927548439113">තෙවන වැඩ මුරය</translation>
 <translation id="3115874930288085374"><ph name="ENROLLMENT_DOMAIN" /> හට ඔබ ඔබේ දත්ත උපස්ථ කර මෙම <ph name="DEVICE_TYPE" /> ආපසු දීමට අවශ්‍යයි</translation>
 <translation id="3116158981186517402">ලැමිනේට් කරන්න</translation>
+<translation id="311958134571892113">සබැඳි කරන ලදි</translation>
 <translation id="3120730422813725195">Elo</translation>
 <translation id="31207688938192855"><ph name="BEGIN_LINK" />සම්බන්ධතා දෝෂහරණ ධාවනය කිරීමට උත්සාහ කරන්න<ph name="END_LINK" />.</translation>
 <translation id="3121994479408824897"><ph name="DOMAIN" /> වෙත යන්න</translation>
@@ -736,12 +739,6 @@
 <translation id="3345782426586609320">ඇස්</translation>
 <translation id="3355823806454867987">ප්‍රොක්සි සැකසුම් වෙනස් කරන්න...</translation>
 <translation id="3360103848165129075">ගෙවීම් හසුරුවන පත්‍රය</translation>
-<translation id="3361596688432910856">Chrome පහත තොරතුරු <ph name="BEGIN_EMPHASIS" />නොසුරකිනු ඇත<ph name="END_EMPHASIS" />:
-        <ph name="BEGIN_LIST" />
-          <ph name="LIST_ITEM" />ඔබේ බ්‍රවුස් කිරීමේ ඉතිහාසය
-          <ph name="LIST_ITEM" />කුකීස් සහ අඩවියේ දත්ත
-          <ph name="LIST_ITEM" />පෝරමවල ඇතුළු කළ තොරතුරු
-        <ph name="END_LIST" /></translation>
 <translation id="3362968246557010467">මෙම ප්‍රතිපත්තිය අත්හරින ලද <ph name="OLD_POLICY" /> ප්‍රතිපත්තියෙන් ස්වයංක්‍රීයව පිටපත් කරන ලදි. ඒ වෙනුවෙට ඔබ මෙම ප්‍රතිපත්තිය භාවිත කළ යුතු ය.</translation>
 <translation id="3364869320075768271"><ph name="URL" /> ඔබේ අතත්‍ය යථාර්ථ උපාංගය සහ දත්ත භාවිත කිරීමට කැමතියි</translation>
 <translation id="3366477098757335611">කාඩ්පත් බලන්න</translation>
@@ -1219,12 +1216,7 @@
 <translation id="4819347708020428563">පෙරනිමි දසුන තුළ අනුසටහන් සංස්කරණය කරන්නද?</translation>
 <translation id="4825496307559726072"><ph name="CREATE_GOOGLE_SHEET_FOCUSED_FRIENDLY_MATCH_TEXT" />, ඉක්මනින් නව Google Sheet එකක් තැනීමට Tab ඔබා අනතුරුව Enter ඔබන්න</translation>
 <translation id="4825507807291741242">ශක්තිසම්පන්න</translation>
-<translation id="4827402517081186284">අප්‍රසිද්ධ ප්‍රකාරය ඔබව සබැඳිව අදෘශ්‍යමාන බවට පත් නොකරයි:
-        <ph name="BEGIN_LIST" />
-          <ph name="LIST_ITEM" />අඩවි ඔබ ඒවාට පිවිසෙන විට දනියි<ph name="END_LIST_ITEM" />
-          <ph name="LIST_ITEM" />සේවායෝජකයන්ට හෝ පාසල්වලට බ්‍රවුස් කිරීමේ ක්‍රියාකාරකම් හඹා යාමට හැකිය<ph name="END_LIST_ITEM" />
-          <ph name="LIST_ITEM" />අන්තර්ජාල සේවා සපයන්නන් වෙබ් තදබදය නිරීක්ෂණය කළ හැකිය<ph name="END_LIST_ITEM" />
-        <ph name="END_LIST" /></translation>
+<translation id="4829962028570902310">ප්‍රතිපත්තිය ක්ලවුඩ් පරිශීලක ප්‍රතිපත්තියෙන් පමණක් සැකසිය හැකි බැවින් නොසලකා හරින ලදී.</translation>
 <translation id="483241715238664915">අනතුරු ඇඟවීම් ක්‍රියාත්මක කරන්න</translation>
 <translation id="4838327282952368871">සිහිනමය</translation>
 <translation id="4840250757394056958">ඔබගේ Chrome ඉතිහාසය බලන්න</translation>
@@ -1793,7 +1785,6 @@
 <translation id="6757797048963528358">ඔබගේ උපාංගය නින්දට ගියේය.</translation>
 <translation id="6767985426384634228">ලිපිනය යාවත්කාලීන කරන්නද?</translation>
 <translation id="6768213884286397650">Hagaki (තැපැල් පත)</translation>
-<translation id="6774185088257932239">අප්‍රසිද්ධ ගැන <ph name="BEGIN_LINK" />තව දැන ගන්න<ph name="END_LINK" /></translation>
 <translation id="6775759552199460396">JIS B2</translation>
 <translation id="67862343314499040">ජම්බූල</translation>
 <translation id="6786747875388722282">දිගු</translation>
@@ -2273,12 +2264,6 @@
 <translation id="8317207217658302555">ARCore යාවත්කාලීන කරන්නද?</translation>
 <translation id="831997045666694187">සවස</translation>
 <translation id="8321476692217554900">දැනුම්දීම්</translation>
-<translation id="8328484624016508118">සියලු අප්‍රසිද්ධ ටැබ වැසීමෙන් පසු, Chrome පහත ඒවා හිස් කරයි:
-        <ph name="BEGIN_LIST" />
-          <ph name="LIST_ITEM" />මෙම උපාංගයෙන් ඔබගේ බ්‍රවුස් කිරීමේ ක්‍රියාකාරකම<ph name="END_LIST_ITEM" />
-          <ph name="LIST_ITEM" />මෙම උපාංගයෙන් ඔබගේ සෙවීම් ඉතිහාසය<ph name="END_LIST_ITEM" />
-          <ph name="LIST_ITEM" />පෝරම තුළ ඇතුළත් කළ තොරතුරු<ph name="END_LIST_ITEM" />
-        <ph name="END_LIST" /></translation>
 <translation id="8332188693563227489"><ph name="HOST_NAME" /> වෙත ප්‍රවේශය ප්‍රතික්ෂේප කරන ලදී</translation>
 <translation id="833262891116910667">උද්දීපන කරන්න</translation>
 <translation id="8339163506404995330"><ph name="LANGUAGE" /> හි පිටු පරිවර්තනය නොවනු ඇත</translation>
@@ -2362,6 +2347,7 @@
 <translation id="8669306706049782872">කවුළු විවෘත කිරීමට සහ තැබීමට ඔබගේ තිර පිළිබඳ තොරතුරු භාවිත කරන්න</translation>
 <translation id="867224526087042813">අත්සන</translation>
 <translation id="8676424191133491403">ප්‍රමාද නැත</translation>
+<translation id="8679903780129190080">ඔව් මම කැමතියි</translation>
 <translation id="8680536109547170164"><ph name="QUERY" />, පිළිතුර, <ph name="ANSWER" /></translation>
 <translation id="8681531050781943054"><ph name="PAGE" /> හි මෙම වෙබ් පිටුව පහත හේතුව නිසා පූරණය කළ නොහැකි විය:</translation>
 <translation id="8685155993131031756">Prc-16K</translation>
diff --git a/components/strings/components_strings_sk.xtb b/components/strings/components_strings_sk.xtb
index 2230dc34..d0aa326 100644
--- a/components/strings/components_strings_sk.xtb
+++ b/components/strings/components_strings_sk.xtb
@@ -20,7 +20,6 @@
 <translation id="1038842779957582377">neznámy názov</translation>
 <translation id="1041998700806130099">Správa hárku úlohy</translation>
 <translation id="1048785276086539861">Keď upravíte poznámky, tento dokument sa vráti na zobrazenie jednej stránky</translation>
-<translation id="1049743911850919806">Inkognito</translation>
 <translation id="1050038467049342496">Zavrite ostatné aplikácie</translation>
 <translation id="1055184225775184556">&amp;Vrátiť späť pridanie</translation>
 <translation id="1056898198331236512">Upozornenie</translation>
@@ -733,12 +732,6 @@
 <translation id="3345782426586609320">Oči</translation>
 <translation id="3355823806454867987">Zmeniť nastavenia proxy...</translation>
 <translation id="3360103848165129075">Hárok obslužného nástroja platieb</translation>
-<translation id="3361596688432910856">Chrome <ph name="BEGIN_EMPHASIS" />nebude ukladať<ph name="END_EMPHASIS" />:
-        <ph name="BEGIN_LIST" />
-          <ph name="LIST_ITEM" />vašu históriu prehliadania
-          <ph name="LIST_ITEM" />súbory cookie a dáta webov
-          <ph name="LIST_ITEM" />údaje zadané do formulárov
-        <ph name="END_LIST" /></translation>
 <translation id="3362968246557010467">Toto pravidlo bolo automaticky skopírované z pravidla <ph name="OLD_POLICY" />, ktorého podpora bola ukončená. Toto pravidlo používajte namiesto neho.</translation>
 <translation id="3364869320075768271"><ph name="URL" /> chce používať vaše zariadenie a údaje virtuálnej reality</translation>
 <translation id="3366477098757335611">Zobraziť karty</translation>
@@ -1213,12 +1206,7 @@
 <translation id="4819347708020428563">Chcete upraviť poznámky v predvolenom zobrazení?</translation>
 <translation id="4825496307559726072"><ph name="CREATE_GOOGLE_SHEET_FOCUSED_FRIENDLY_MATCH_TEXT" />, postupným stlačením klávesov Tab a Enter vytvoríte rýchlym spôsobom novú tabuľku Google</translation>
 <translation id="4825507807291741242">Pôsobivé</translation>
-<translation id="4827402517081186284">Režim inkognito neznamená vašu neviditeľnosť na internete:
-        <ph name="BEGIN_LIST" />
-          <ph name="LIST_ITEM" />weby vedia o vašej návšteve;<ph name="END_LIST_ITEM" />
-          <ph name="LIST_ITEM" />zamestnávateľ či škola môže sledovať vašu aktivitu prehliadania;<ph name="END_LIST_ITEM" />
-          <ph name="LIST_ITEM" />poskytovateľ internetu môže monitorovať webovú premávku.<ph name="END_LIST_ITEM" />
-        <ph name="END_LIST" /></translation>
+<translation id="4829962028570902310">Ignorované, pretože pravidlá sa dajú nastaviť iba pravidlami cloudu pre používateľov.</translation>
 <translation id="483241715238664915">Zapnúť upozornenia</translation>
 <translation id="4838327282952368871">Rozprávkové</translation>
 <translation id="4840250757394056958">Zobraziť históriu Chromu</translation>
@@ -1786,7 +1774,6 @@
 <translation id="6757797048963528358">Vaše zariadenie prešlo do režimu spánku.</translation>
 <translation id="6767985426384634228">Chcete adresu aktualizovať?</translation>
 <translation id="6768213884286397650">Hagaki (pohľadnica)</translation>
-<translation id="6774185088257932239"><ph name="BEGIN_LINK" />Ďalšie informácie<ph name="END_LINK" /> o režime inkognito</translation>
 <translation id="6775759552199460396">JIS B2</translation>
 <translation id="67862343314499040">Fialová</translation>
 <translation id="6786747875388722282">Rozšírenia</translation>
@@ -2266,12 +2253,6 @@
 <translation id="8317207217658302555">Chcete aktualizovať ARCore?</translation>
 <translation id="831997045666694187">Večer</translation>
 <translation id="8321476692217554900">upozornenia</translation>
-<translation id="8328484624016508118">Po zavretí všetkých kariet inkognito Chrome vymaže:
-        <ph name="BEGIN_LIST" />
-          <ph name="LIST_ITEM" />vašu aktivitu prehliadania z tohto zariadenia;<ph name="END_LIST_ITEM" />
-          <ph name="LIST_ITEM" />vašu históriu vyhľadávania z tohto zariadenia;<ph name="END_LIST_ITEM" />
-          <ph name="LIST_ITEM" />údaje zadané do formulárov.<ph name="END_LIST_ITEM" />
-        <ph name="END_LIST" /></translation>
 <translation id="8332188693563227489">Prístup k webu <ph name="HOST_NAME" /> bol zamietnutý</translation>
 <translation id="833262891116910667">Zvýrazniť</translation>
 <translation id="8339163506404995330">Stránky v jazyku <ph name="LANGUAGE" /> nebudú prekladané</translation>
@@ -2530,7 +2511,6 @@
 <translation id="9215416866750762878">Bezpečnému pripojeniu Chromu k tomuto webu bráni aplikácia</translation>
 <translation id="9219103736887031265">Obrázky</translation>
 <translation id="922152298093051471">Prispôsobiť Chrome</translation>
-<translation id="922274508605516859">Virtuálnou kartou sa zamaskuje vaša skutočná karta, čo vás lepšie ochráni pred potenciálnymi podvodmi.</translation>
 <translation id="933712198907837967">Diners Club</translation>
 <translation id="935608979562296692">VYMAZAŤ FORMULÁR</translation>
 <translation id="936474030629450166">Super-B</translation>
diff --git a/components/strings/components_strings_sl.xtb b/components/strings/components_strings_sl.xtb
index 8b20a29..72775aaa 100644
--- a/components/strings/components_strings_sl.xtb
+++ b/components/strings/components_strings_sl.xtb
@@ -20,7 +20,6 @@
 <translation id="1038842779957582377">neznano ime</translation>
 <translation id="1041998700806130099">Sporočilo glede delovnega lista</translation>
 <translation id="1048785276086539861">Če boste urejali pripise, se bo ta dokument vrnil v pogled ene strani.</translation>
-<translation id="1049743911850919806">Anonimni način</translation>
 <translation id="1050038467049342496">Zaprite druge aplikacije</translation>
 <translation id="1055184225775184556">&amp;Razveljavi dodajanje</translation>
 <translation id="1056898198331236512">Opozorilo</translation>
@@ -736,12 +735,6 @@
 <translation id="3345782426586609320">Oči</translation>
 <translation id="3355823806454867987">Spremeni nastavitve proxyja ...</translation>
 <translation id="3360103848165129075">List rutine za obravnavo plačil</translation>
-<translation id="3361596688432910856">Chrome <ph name="BEGIN_EMPHASIS" />ne shrani<ph name="END_EMPHASIS" /> teh podatkov:
-        <ph name="BEGIN_LIST" />
-          <ph name="LIST_ITEM" />zgodovine brskanja,
-          <ph name="LIST_ITEM" />piškotkov in podatkov spletnih mest,
-          <ph name="LIST_ITEM" />podatkov, vnesenih v obrazce.
-        <ph name="END_LIST" /></translation>
 <translation id="3362968246557010467">Ta pravilnik je bil samodejno kopiran iz zastarelega pravilnika <ph name="OLD_POLICY" />. Uporabite ta pravilnik.</translation>
 <translation id="3364869320075768271"><ph name="URL" /> želi uporabljati napravo in podatke za navidezno resničnost</translation>
 <translation id="3366477098757335611">Ogled kartic</translation>
@@ -1222,12 +1215,6 @@
 <translation id="4819347708020428563">Želite urejati pripise v privzetem pogledu?</translation>
 <translation id="4825496307559726072"><ph name="CREATE_GOOGLE_SHEET_FOCUSED_FRIENDLY_MATCH_TEXT" />, pritisnite tabulatorko, nato Enter, če želite hitro ustvariti novo Google Preglednico</translation>
 <translation id="4825507807291741242">Zmogljivo</translation>
-<translation id="4827402517081186284">V anonimnem načinu niste nevidni v spletu:
-        <ph name="BEGIN_LIST" />
-          <ph name="LIST_ITEM" />spletna mesta vedo, kdaj jih obiščete;<ph name="END_LIST_ITEM" />
-          <ph name="LIST_ITEM" />delodajalci ali šole lahko spremljajo vaše brskanje;<ph name="END_LIST_ITEM" />
-          <ph name="LIST_ITEM" />ponudniki internetnih storitev morda spremljajo spletni promet.<ph name="END_LIST_ITEM" />
-        <ph name="END_LIST" /></translation>
 <translation id="4829962028570902310">Prezrto, ker lahko pravilnik nastavi samo uporabniški pravilnik za oblak.</translation>
 <translation id="483241715238664915">Vklopi opozorila</translation>
 <translation id="4838327282952368871">Zasanjano</translation>
@@ -1797,7 +1784,6 @@
 <translation id="6757797048963528358">Naprava je preklopila v stanje pripravljenosti.</translation>
 <translation id="6767985426384634228">Želite posodobiti naslov?</translation>
 <translation id="6768213884286397650">Hagaki (Postcard)</translation>
-<translation id="6774185088257932239"><ph name="BEGIN_LINK" />Preberite več<ph name="END_LINK" /> o anonimnem načinu</translation>
 <translation id="6775759552199460396">JIS B2</translation>
 <translation id="67862343314499040">Vijoličnomodra</translation>
 <translation id="6786747875388722282">Razširitve</translation>
@@ -2277,12 +2263,6 @@
 <translation id="8317207217658302555">Želite posodobiti ARCore?</translation>
 <translation id="831997045666694187">Večer</translation>
 <translation id="8321476692217554900">obvestila</translation>
-<translation id="8328484624016508118">Po zaprtju vseh anonimnih zavihkov Chrome počisti:
-        <ph name="BEGIN_LIST" />
-          <ph name="LIST_ITEM" />vaše brskanje v tej napravi;<ph name="END_LIST_ITEM" />
-          <ph name="LIST_ITEM" />vašo zgodovino iskanja v tej napravi;<ph name="END_LIST_ITEM" />
-          <ph name="LIST_ITEM" />podatke, vnesene v obrazce.<ph name="END_LIST_ITEM" />
-        <ph name="END_LIST" /></translation>
 <translation id="8332188693563227489">Dostop do spletnega mesta <ph name="HOST_NAME" /> je bil zavrnjen</translation>
 <translation id="833262891116910667">Označevanje</translation>
 <translation id="8339163506404995330">Strani v jeziku <ph name="LANGUAGE" /> ne bodo prevedene</translation>
diff --git a/components/strings/components_strings_sq.xtb b/components/strings/components_strings_sq.xtb
index 223a400..dda506da 100644
--- a/components/strings/components_strings_sq.xtb
+++ b/components/strings/components_strings_sq.xtb
@@ -20,7 +20,6 @@
 <translation id="1038842779957582377">emër i panjohur</translation>
 <translation id="1041998700806130099">Mesazhi i fletës së punës</translation>
 <translation id="1048785276086539861">Kur redakton shënimet, ky dokument do të kthehet te pamja me një faqe</translation>
-<translation id="1049743911850919806">I fshehtë</translation>
 <translation id="1050038467049342496">Mbyll aplikacionet e tjera</translation>
 <translation id="1055184225775184556">&amp;Zhbëj shtimin</translation>
 <translation id="1056898198331236512">Paralajmërim</translation>
@@ -735,12 +734,6 @@
 <translation id="3345782426586609320">Sy</translation>
 <translation id="3355823806454867987">Ndrysho cilësimet e përfaqësuesit...</translation>
 <translation id="3360103848165129075">Fleta e përpunuesit të pagesës</translation>
-<translation id="3361596688432910856">Chrome <ph name="BEGIN_EMPHASIS" />nuk do të ruajë<ph name="END_EMPHASIS" /> informacionet e mëposhtme:
-        <ph name="BEGIN_LIST" />
-          <ph name="LIST_ITEM" />Historikun tënd të shfletimit
-          <ph name="LIST_ITEM" />Kukit dhe të dhënat e sajteve
-          <ph name="LIST_ITEM" />Informacionet e futura në formularë
-        <ph name="END_LIST" /></translation>
 <translation id="3362968246557010467">Kjo politikë është kopjuar automatikisht nga politika e vjetruar <ph name="OLD_POLICY" />. Duhet të përdorësh këtë politikë më mirë.</translation>
 <translation id="3364869320075768271"><ph name="URL" /> kërkon të përdorë pajisjen dhe të dhënat e tua të realitetit virtual</translation>
 <translation id="3366477098757335611">Shiko kartat</translation>
@@ -1219,12 +1212,7 @@
 <translation id="4819347708020428563">Të redaktohen shënimet në pamjen e parazgjedhur?</translation>
 <translation id="4825496307559726072"><ph name="CREATE_GOOGLE_SHEET_FOCUSED_FRIENDLY_MATCH_TEXT" />, shtyp Tab pastaj Enter për të krijuar shpejt një "Fletë të re të Google</translation>
 <translation id="4825507807291741242">I fuqishëm</translation>
-<translation id="4827402517081186284">Modaliteti "I fshehtë" nuk të bën të padukshëm në linjë:
-        <ph name="BEGIN_LIST" />
-          <ph name="LIST_ITEM" />Sajtet e dinë kur i viziton ato<ph name="END_LIST_ITEM" />
-          <ph name="LIST_ITEM" />Punëdhënësit ose shkollat mund të monitorojnë aktivitetin e shfletimit<ph name="END_LIST_ITEM" />
-          <ph name="LIST_ITEM" />Ofruesit e shërbimit të internetit mund të monitorojnë trafikun e uebit<ph name="END_LIST_ITEM" />
-        <ph name="END_LIST" /></translation>
+<translation id="4829962028570902310">Shpërfillur për shkak se politika mund të shtohet vetëm politika e përdoruesit të resë kompjuterike.</translation>
 <translation id="483241715238664915">Aktivizo paralajmërimet</translation>
 <translation id="4838327282952368871">Si në ëndërr</translation>
 <translation id="4840250757394056958">Shiko historikun tënd të Chrome</translation>
@@ -1792,7 +1780,6 @@
 <translation id="6757797048963528358">Pajisja jote kaloi në gjumë.</translation>
 <translation id="6767985426384634228">Të përditësohet adresa?</translation>
 <translation id="6768213884286397650">Hagaki (Kartolinë)</translation>
-<translation id="6774185088257932239"><ph name="BEGIN_LINK" />Mëso më shumë<ph name="END_LINK" /> rreth modalitetit "Të fshehtë"</translation>
 <translation id="6775759552199460396">JIS B2</translation>
 <translation id="67862343314499040">Vjollcë</translation>
 <translation id="6786747875388722282">Shtesat</translation>
@@ -2272,12 +2259,6 @@
 <translation id="8317207217658302555">Të përditësohet ARCore?</translation>
 <translation id="831997045666694187">Mbrëmje</translation>
 <translation id="8321476692217554900">njoftimet</translation>
-<translation id="8328484624016508118">Pas mbylljes së të gjitha skedave të modalitetit "Të fshehtë", Chrome pastron:
-        <ph name="BEGIN_LIST" />
-          <ph name="LIST_ITEM" />Aktivitetin tënd të shfletimit nga kjo pajisje<ph name="END_LIST_ITEM" />
-          <ph name="LIST_ITEM" />Historikun tënd të kërkimeve nga kjo pajisje<ph name="END_LIST_ITEM" />
-          <ph name="LIST_ITEM" />Informacionet e futura në formularë<ph name="END_LIST_ITEM" />
-        <ph name="END_LIST" /></translation>
 <translation id="8332188693563227489">Qasja te <ph name="HOST_NAME" /> u refuzua</translation>
 <translation id="833262891116910667">Thekso</translation>
 <translation id="8339163506404995330">Faqet në <ph name="LANGUAGE" /> nuk do të përkthehen</translation>
diff --git a/components/strings/components_strings_sr-Latn.xtb b/components/strings/components_strings_sr-Latn.xtb
index fdac793..d43b8f56 100644
--- a/components/strings/components_strings_sr-Latn.xtb
+++ b/components/strings/components_strings_sr-Latn.xtb
@@ -20,7 +20,6 @@
 <translation id="1038842779957582377">nepoznato ime</translation>
 <translation id="1041998700806130099">Poruka o radnom listu</translation>
 <translation id="1048785276086539861">Kada izmenite komentare, ovaj dokument se vraća na prikaz pojedinačne stranice.</translation>
-<translation id="1049743911850919806">Bez arhiviranja</translation>
 <translation id="1050038467049342496">Zatvorite druge aplikacije</translation>
 <translation id="1055184225775184556">&amp;Opozovi dodavanje</translation>
 <translation id="1056898198331236512">Upozorenje</translation>
@@ -740,12 +739,6 @@
 <translation id="3345782426586609320">Oči</translation>
 <translation id="3355823806454867987">Promeni podešavanja proksija...</translation>
 <translation id="3360103848165129075">Stranica obrađivača plaćanja</translation>
-<translation id="3361596688432910856">Chrome <ph name="BEGIN_EMPHASIS" />ne čuva<ph name="END_EMPHASIS" /> sledeće informacije:
-        <ph name="BEGIN_LIST" />
-          <ph name="LIST_ITEM" />istoriju pregledanja
-          <ph name="LIST_ITEM" />kolačiće i podatke o sajtovima
-          <ph name="LIST_ITEM" />informacije koje unosite u obrascima
-        <ph name="END_LIST" /></translation>
 <translation id="3362968246557010467">Ove smernice se automatski kopiraju iz zastarelih smernica <ph name="OLD_POLICY" />. Umesto njih treba da koristite ove smernice.</translation>
 <translation id="3364869320075768271"><ph name="URL" /> želi da koristi uređaj i podatke virtuelne realnosti</translation>
 <translation id="3366477098757335611">Prikaži kartice</translation>
@@ -1226,12 +1219,6 @@
 <translation id="4819347708020428563">Želite li da izmenite komentare u podrazumevanom prikazu?</translation>
 <translation id="4825496307559726072"><ph name="CREATE_GOOGLE_SHEET_FOCUSED_FRIENDLY_MATCH_TEXT" />, pritisnite Tab, pa Enter da biste brzo napravili novu Google tabelu</translation>
 <translation id="4825507807291741242">Moćno</translation>
-<translation id="4827402517081186284">Režim bez arhiviranja vas ne čini nevidljivim onlajn:
-        <ph name="BEGIN_LIST" />
-          <ph name="LIST_ITEM" />sajtovi znaju da ih posećujete<ph name="END_LIST_ITEM" />
-          <ph name="LIST_ITEM" />poslodavci ili škole mogu da prate aktivnosti pregledanja<ph name="END_LIST_ITEM" />
-          <ph name="LIST_ITEM" />internet provajderi mogu da prate saobraćaj na vebu<ph name="END_LIST_ITEM" />
-        <ph name="END_LIST" /></translation>
 <translation id="4829962028570902310">Ignoriše se jer smernice mogu da se podese samo kao smernice za korisnika u klaudu.</translation>
 <translation id="483241715238664915">Uključi upozorenja</translation>
 <translation id="4838327282952368871">Čarobno</translation>
@@ -1800,7 +1787,6 @@
 <translation id="6757797048963528358">Uređaj je prešao u režim spavanja.</translation>
 <translation id="6767985426384634228">Želite da ažurirate adresu?</translation>
 <translation id="6768213884286397650">Hagaki (razglednica)</translation>
-<translation id="6774185088257932239"><ph name="BEGIN_LINK" />Saznajte više<ph name="END_LINK" /> o režimu bez arhiviranja</translation>
 <translation id="6775759552199460396">JIS B2</translation>
 <translation id="67862343314499040">Ljubičasta</translation>
 <translation id="6786747875388722282">Dodaci</translation>
@@ -2280,12 +2266,6 @@
 <translation id="8317207217658302555">Želite da ažurirate ARCore?</translation>
 <translation id="831997045666694187">Uveče</translation>
 <translation id="8321476692217554900">obaveštenja</translation>
-<translation id="8328484624016508118">Kada zatvorite sve kartice bez arhiviranja, Chrome briše:
-        <ph name="BEGIN_LIST" />
-          <ph name="LIST_ITEM" />aktivnosti pregledanja sa ovog uređaja<ph name="END_LIST_ITEM" />
-          <ph name="LIST_ITEM" />istoriju pretrage sa ovog uređaja<ph name="END_LIST_ITEM" />
-          <ph name="LIST_ITEM" />informacije unesene preko obrazaca<ph name="END_LIST_ITEM" />
-        <ph name="END_LIST" /></translation>
 <translation id="8332188693563227489">Pristup hostu <ph name="HOST_NAME" /> je odbijen</translation>
 <translation id="833262891116910667">Isticanje</translation>
 <translation id="8339163506404995330">Stranice na jeziku <ph name="LANGUAGE" /> se neće prevoditi</translation>
@@ -2544,7 +2524,6 @@
 <translation id="9215416866750762878">Aplikacija onemogućava Chrome-u da se bezbedno poveže sa ovim sajtom</translation>
 <translation id="9219103736887031265">Slike</translation>
 <translation id="922152298093051471">Prilagodite Chrome</translation>
-<translation id="922274508605516859">Virtuelna kartica krije vašu stvarnu karticu da bi vas zaštitila od potencijalne prevare.</translation>
 <translation id="933712198907837967">Diners Club</translation>
 <translation id="935608979562296692">OBRIŠI OBRAZAC</translation>
 <translation id="936474030629450166">Super-B</translation>
diff --git a/components/strings/components_strings_sr.xtb b/components/strings/components_strings_sr.xtb
index d2640e5..9de9548 100644
--- a/components/strings/components_strings_sr.xtb
+++ b/components/strings/components_strings_sr.xtb
@@ -20,7 +20,6 @@
 <translation id="1038842779957582377">непознато име</translation>
 <translation id="1041998700806130099">Порука о радном листу</translation>
 <translation id="1048785276086539861">Када измените коментаре, овај документ се враћа на приказ појединачне странице.</translation>
-<translation id="1049743911850919806">Без архивирања</translation>
 <translation id="1050038467049342496">Затворите друге апликације</translation>
 <translation id="1055184225775184556">&amp;Опозови додавање</translation>
 <translation id="1056898198331236512">Упозорење</translation>
@@ -740,12 +739,6 @@
 <translation id="3345782426586609320">Очи</translation>
 <translation id="3355823806454867987">Промени подешавања проксија...</translation>
 <translation id="3360103848165129075">Страница обрађивача плаћања</translation>
-<translation id="3361596688432910856">Chrome <ph name="BEGIN_EMPHASIS" />не чува<ph name="END_EMPHASIS" /> следеће информације:
-        <ph name="BEGIN_LIST" />
-          <ph name="LIST_ITEM" />историју прегледања
-          <ph name="LIST_ITEM" />колачиће и податке о сајтовима
-          <ph name="LIST_ITEM" />информације које уносите у обрасцима
-        <ph name="END_LIST" /></translation>
 <translation id="3362968246557010467">Ове смернице се аутоматски копирају из застарелих смерница <ph name="OLD_POLICY" />. Уместо њих треба да користите ове смернице.</translation>
 <translation id="3364869320075768271"><ph name="URL" /> жели да користи уређај и податке виртуелне реалности</translation>
 <translation id="3366477098757335611">Прикажи картице</translation>
@@ -1226,12 +1219,6 @@
 <translation id="4819347708020428563">Желите ли да измените коментаре у подразумеваном приказу?</translation>
 <translation id="4825496307559726072"><ph name="CREATE_GOOGLE_SHEET_FOCUSED_FRIENDLY_MATCH_TEXT" />, притисните Tab, па Enter да бисте брзо направили нову Google табелу</translation>
 <translation id="4825507807291741242">Моћно</translation>
-<translation id="4827402517081186284">Режим без архивирања вас не чини невидљивим онлајн:
-        <ph name="BEGIN_LIST" />
-          <ph name="LIST_ITEM" />сајтови знају да их посећујете<ph name="END_LIST_ITEM" />
-          <ph name="LIST_ITEM" />послодавци или школе могу да прате активности прегледања<ph name="END_LIST_ITEM" />
-          <ph name="LIST_ITEM" />интернет провајдери могу да прате саобраћај на вебу<ph name="END_LIST_ITEM" />
-        <ph name="END_LIST" /></translation>
 <translation id="4829962028570902310">Игнорише се јер смернице могу да се подесе само као смернице за корисника у клауду.</translation>
 <translation id="483241715238664915">Укључи упозорења</translation>
 <translation id="4838327282952368871">Чаробно</translation>
@@ -1800,7 +1787,6 @@
 <translation id="6757797048963528358">Уређај је прешао у режим спавања.</translation>
 <translation id="6767985426384634228">Желите да ажурирате адресу?</translation>
 <translation id="6768213884286397650">Hagaki (разгледница)</translation>
-<translation id="6774185088257932239"><ph name="BEGIN_LINK" />Сазнајте више<ph name="END_LINK" /> о режиму без архивирања</translation>
 <translation id="6775759552199460396">JIS B2</translation>
 <translation id="67862343314499040">Љубичаста</translation>
 <translation id="6786747875388722282">Додаци</translation>
@@ -2280,12 +2266,6 @@
 <translation id="8317207217658302555">Желите да ажурирате ARCore?</translation>
 <translation id="831997045666694187">Увече</translation>
 <translation id="8321476692217554900">обавештења</translation>
-<translation id="8328484624016508118">Када затворите све картице без архивирања, Chrome брише:
-        <ph name="BEGIN_LIST" />
-          <ph name="LIST_ITEM" />активности прегледања са овог уређаја<ph name="END_LIST_ITEM" />
-          <ph name="LIST_ITEM" />историју претраге са овог уређаја<ph name="END_LIST_ITEM" />
-          <ph name="LIST_ITEM" />информације унесене преко образаца<ph name="END_LIST_ITEM" />
-        <ph name="END_LIST" /></translation>
 <translation id="8332188693563227489">Приступ хосту <ph name="HOST_NAME" /> је одбијен</translation>
 <translation id="833262891116910667">Истицање</translation>
 <translation id="8339163506404995330">Странице на језику <ph name="LANGUAGE" /> се неће преводити</translation>
@@ -2544,7 +2524,6 @@
 <translation id="9215416866750762878">Апликација онемогућава Chrome-у да се безбедно повеже са овим сајтом</translation>
 <translation id="9219103736887031265">Слике</translation>
 <translation id="922152298093051471">Прилагодите Chrome</translation>
-<translation id="922274508605516859">Виртуелна картица крије вашу стварну картицу да би вас заштитила од потенцијалне преваре.</translation>
 <translation id="933712198907837967">Diners Club</translation>
 <translation id="935608979562296692">ОБРИШИ ОБРАЗАЦ</translation>
 <translation id="936474030629450166">Super-B</translation>
diff --git a/components/strings/components_strings_sv.xtb b/components/strings/components_strings_sv.xtb
index 4a44b55..1232301b 100644
--- a/components/strings/components_strings_sv.xtb
+++ b/components/strings/components_strings_sv.xtb
@@ -20,7 +20,6 @@
 <translation id="1038842779957582377">okänt namn</translation>
 <translation id="1041998700806130099">Meddelande på arbetsorder</translation>
 <translation id="1048785276086539861">När du redigerar kommentarer aktiveras enkelsidig vy igen för dokumentet</translation>
-<translation id="1049743911850919806">Inkognito</translation>
 <translation id="1050038467049342496">Stäng andra appar</translation>
 <translation id="1055184225775184556">&amp;Ångra Lägg till</translation>
 <translation id="1056898198331236512">Varning</translation>
@@ -736,12 +735,6 @@
 <translation id="3345782426586609320">Ögon</translation>
 <translation id="3355823806454867987">Ändra proxyinställningar...</translation>
 <translation id="3360103848165129075">Arbetsblad för betalningshantering</translation>
-<translation id="3361596688432910856">Följande information <ph name="BEGIN_EMPHASIS" />sparas inte<ph name="END_EMPHASIS" /> i Chrome:
-        <ph name="BEGIN_LIST" />
-          <ph name="LIST_ITEM" />webbhistoriken
-          <ph name="LIST_ITEM" />cookies och webbplatsdata
-          <ph name="LIST_ITEM" />uppgifter som angetts i formulär.
-        <ph name="END_LIST" /></translation>
 <translation id="3362968246557010467">Den här principen kopierades automatiskt från den utfasade principen <ph name="OLD_POLICY" />. Använd den här principen i stället.</translation>
 <translation id="3364869320075768271"><ph name="URL" /> vill använda VR-enheter och VR-data</translation>
 <translation id="3366477098757335611">Visa kort</translation>
@@ -1222,12 +1215,7 @@
 <translation id="4819347708020428563">Vill du redigera kommentarer i standardvyn?</translation>
 <translation id="4825496307559726072"><ph name="CREATE_GOOGLE_SHEET_FOCUSED_FRIENDLY_MATCH_TEXT" />: tryck på Tabb och sedan på Retur om du snabbt vill skapa ett nytt Google-kalkylark</translation>
 <translation id="4825507807291741242">Kraftfull</translation>
-<translation id="4827402517081186284">Inkognitoläget gör dig inte osynlig online:
-        <ph name="BEGIN_LIST" />
-          <ph name="LIST_ITEM" />Webbplatser vet att du besöker dem<ph name="END_LIST_ITEM" />
-          <ph name="LIST_ITEM" />Din arbetsgivare eller skola kan spåra webbaktivitet<ph name="END_LIST_ITEM" />
-          <ph name="LIST_ITEM" />Internetleverantören kan övervaka webbtrafik<ph name="END_LIST_ITEM" />
-        <ph name="END_LIST" /></translation>
+<translation id="4829962028570902310">Ignoreras eftersom principen bara kan ställas in som en princip för molnanvändare.</translation>
 <translation id="483241715238664915">Aktivera varningar</translation>
 <translation id="4838327282952368871">Drömsk</translation>
 <translation id="4840250757394056958">Visa Chrome-historiken</translation>
@@ -1796,7 +1784,6 @@
 <translation id="6757797048963528358">Enheten gick i viloläge.</translation>
 <translation id="6767985426384634228">Vill du uppdatera adressen?</translation>
 <translation id="6768213884286397650">Hagaki (vykort)</translation>
-<translation id="6774185088257932239"><ph name="BEGIN_LINK" />Läs mer<ph name="END_LINK" /> om inkognitoläget</translation>
 <translation id="6775759552199460396">JIS B2</translation>
 <translation id="67862343314499040">Violett</translation>
 <translation id="6786747875388722282">Tillägg</translation>
@@ -2276,12 +2263,6 @@
 <translation id="8317207217658302555">Vill du uppdatera ARCore?</translation>
 <translation id="831997045666694187">kvällen</translation>
 <translation id="8321476692217554900">aviseringar</translation>
-<translation id="8328484624016508118">När du har stängt alla inkognitoflikar i Chrome raderas följande:
-        <ph name="BEGIN_LIST" />
-          <ph name="LIST_ITEM" />Din webbaktivitet från den här enheten<ph name="END_LIST_ITEM" />
-          <ph name="LIST_ITEM" />Din sökhistorik från den här enheten<ph name="END_LIST_ITEM" />
-          <ph name="LIST_ITEM" />Information som angetts i formulär<ph name="END_LIST_ITEM" />
-        <ph name="END_LIST" /></translation>
 <translation id="8332188693563227489">Åtkomst nekades till <ph name="HOST_NAME" />.</translation>
 <translation id="833262891116910667">Markera</translation>
 <translation id="8339163506404995330">Sidor på <ph name="LANGUAGE" /> översätts inte</translation>
diff --git a/components/strings/components_strings_sw.xtb b/components/strings/components_strings_sw.xtb
index 46845c7..18e65e1 100644
--- a/components/strings/components_strings_sw.xtb
+++ b/components/strings/components_strings_sw.xtb
@@ -20,7 +20,6 @@
 <translation id="1038842779957582377">jina lisilojulikana</translation>
 <translation id="1041998700806130099">Ujumbe wa laha la kazi</translation>
 <translation id="1048785276086539861">Ukibadilisha vidokezo, hati hii itarejea kwenye mwonekano wa ukurasa mmoja</translation>
-<translation id="1049743911850919806">Kichupo fiche</translation>
 <translation id="1050038467049342496">Funga programu nyingine</translation>
 <translation id="1055184225775184556">Tendua Kuongeza</translation>
 <translation id="1056898198331236512">Ilani</translation>
@@ -735,12 +734,6 @@
 <translation id="3345782426586609320">Macho</translation>
 <translation id="3355823806454867987">Badilisha mipangilio ya seva mbadala...</translation>
 <translation id="3360103848165129075">Laha la kidhibiti cha malipo</translation>
-<translation id="3361596688432910856">Chrome <ph name="BEGIN_EMPHASIS" />haitahifadhi<ph name="END_EMPHASIS" /> maelezo yafuatayo:
-        <ph name="BEGIN_LIST" />
-          <ph name="LIST_ITEM" />Historia yako ya kuvinjari
-          <ph name="LIST_ITEM" />Data ya vidakuzi na tovuti
-          <ph name="LIST_ITEM" />Maelezo unayojaza katika fomu
-        <ph name="END_LIST" /></translation>
 <translation id="3362968246557010467">Sera hii ilinakiliwa kiotomatiki kutoka sera iliyoacha kuendesha huduma ya <ph name="OLD_POLICY" />. Unapaswa kutumia sera hii badala yake.</translation>
 <translation id="3364869320075768271"><ph name="URL" /> inataka kutumia data na kifaa chako cha uhalisia pepe</translation>
 <translation id="3366477098757335611">Angalia kadi</translation>
@@ -1221,12 +1214,6 @@
 <translation id="4819347708020428563">Ungependa kubadilisha vidokezo katika mwonekano chaguomsingi?</translation>
 <translation id="4825496307559726072"><ph name="CREATE_GOOGLE_SHEET_FOCUSED_FRIENDLY_MATCH_TEXT" />, bonyeza 'Tab' kisha 'Enter' ili uunde Jedwali jipya la Google kwa haraka</translation>
 <translation id="4825507807291741242">Powerful</translation>
-<translation id="4827402517081186284">Hali fiche haikufanyi usionekane mtandaoni:
-        <ph name="BEGIN_LIST" />
-          <ph name="LIST_ITEM" />Tovuti hujua unapozitembelea<ph name="END_LIST_ITEM" />
-          <ph name="LIST_ITEM" />Waajiri au shule zinaweza kufuatilia shughuli za kuvinjari<ph name="END_LIST_ITEM" />
-          <ph name="LIST_ITEM" />Huenda watoa huduma za intaneti wakafuatilia trafiki kwenye wavuti<ph name="END_LIST_ITEM" />
-        <ph name="END_LIST" /></translation>
 <translation id="483241715238664915">Washa maonyo</translation>
 <translation id="4838327282952368871">Dreamy</translation>
 <translation id="4840250757394056958">Angalia historia yako kwenye Chrome</translation>
@@ -1795,7 +1782,6 @@
 <translation id="6757797048963528358">Kifaa chako kiko katika hali tuli.</translation>
 <translation id="6767985426384634228">Ungependa Kusasisha Anwani?</translation>
 <translation id="6768213884286397650">Hagaki (Kadi ya Posta)</translation>
-<translation id="6774185088257932239"><ph name="BEGIN_LINK" />Pata maelezo zaidi<ph name="END_LINK" /> kuhusu hali fiche</translation>
 <translation id="6775759552199460396">JIS B2</translation>
 <translation id="67862343314499040">Zambarau iliyokolea</translation>
 <translation id="6786747875388722282">Viendelezi</translation>
@@ -2273,12 +2259,6 @@
 <translation id="8317207217658302555">Ungependa kusasisha ARCore?</translation>
 <translation id="831997045666694187">Jioni</translation>
 <translation id="8321476692217554900">arifa</translation>
-<translation id="8328484624016508118">Baada ya kufunga vichupo vyote fiche, Chrome hufuta:
-        <ph name="BEGIN_LIST" />
-          <ph name="LIST_ITEM" />Shughuli zako za kuvinjari kwenye kifaa hiki<ph name="END_LIST_ITEM" />
-          <ph name="LIST_ITEM" />Historia ya mambo uliyoyatafuta kwenye kifaa hiki<ph name="END_LIST_ITEM" />
-          <ph name="LIST_ITEM" />Maelezo yaliyowekwa kwenye fomu<ph name="END_LIST_ITEM" />
-        <ph name="END_LIST" /></translation>
 <translation id="8332188693563227489">Ufikiaji wa <ph name="HOST_NAME" /> umekataliwa</translation>
 <translation id="833262891116910667">Angazia</translation>
 <translation id="8339163506404995330">Kurasa za <ph name="LANGUAGE" /> hazitatafsiriwa</translation>
diff --git a/components/strings/components_strings_ta.xtb b/components/strings/components_strings_ta.xtb
index d1ed7d3..e568d47b 100644
--- a/components/strings/components_strings_ta.xtb
+++ b/components/strings/components_strings_ta.xtb
@@ -20,7 +20,6 @@
 <translation id="1038842779957582377">அறியப்படாத பெயர்</translation>
 <translation id="1041998700806130099">பணித் தாள் மெசேஜ்</translation>
 <translation id="1048785276086539861">விரிவுரைகளைத் திருத்தினால் இந்த ஆவணம் ஒற்றைப் பக்கக்காட்சிக்கு மாறும்</translation>
-<translation id="1049743911850919806">மறைநிலை</translation>
 <translation id="1050038467049342496">பிற ஆப்ஸை மூடவும்</translation>
 <translation id="1055184225775184556">&amp;சேர்த்தலைச் செயல்தவிர்</translation>
 <translation id="1056898198331236512">எச்சரிக்கை</translation>
@@ -212,6 +211,7 @@
 <translation id="1567040042588613346">இந்தக் கொள்கை எதிர்பார்த்த வகையில் வேலை செய்கிறது. ஆனால் இதே மதிப்பு வேறு எங்கோ அமைக்கப்பட்டுள்ளதோடு இந்தக் கொள்கையின் மூலம் மாற்றியமைக்கப்படுகிறது.</translation>
 <translation id="1569487616857761740">காலாவதித் தேதியை உள்ளிடவும்</translation>
 <translation id="1581080074034554886">CVC</translation>
+<translation id="1581767074483369314">விர்ச்சுவல் கார்டாகப் பதிவுசெய்யும்</translation>
 <translation id="1583294866416602487">Plex</translation>
 <translation id="1583429793053364125">இந்த இணையப்பக்கத்தைக் காட்டும்போது ஏதோ தவறு ஏற்பட்டது.</translation>
 <translation id="1586541204584340881">நீங்கள் நிறுவியுள்ள நீட்டிப்புகள்</translation>
@@ -377,6 +377,7 @@
 <translation id="2101225219012730419">பதிப்பு:</translation>
 <translation id="2102134110707549001">வலுவான கடவுச்சொல்லைப் பரிந்துரைசெய்…</translation>
 <translation id="2102495993840063010">Android ஆப்ஸ்</translation>
+<translation id="2106249949168291652">சேமிக்கப்பட்டது. விர்ச்சுவல் கார்டு மூலம் இதை மேலும் பாதுகாப்பானதாக்க வேண்டுமா?</translation>
 <translation id="2107021941795971877">உதவித் தோற்றமைப்புகளை அச்சிடுதல்</translation>
 <translation id="2108755909498034140">கம்ப்யூட்டரை மீண்டும் தொடங்கவும்</translation>
 <translation id="2111166930115883695">விளையாடத் தொடங்க Space விசையை அழுத்தவும்</translation>
@@ -532,6 +533,7 @@
 <translation id="262745152991669301">USB சாதனங்களுடன் இணைய முயலும்போது அனுமதி கேட்க வேண்டும்</translation>
 <translation id="2629325967560697240">Chromeமின் அதிகபட்சப் பாதுகாப்பைப் பெற, <ph name="BEGIN_ENHANCED_PROTECTION_LINK" />மேம்பட்ட பாதுகாப்பை இயக்கவும்<ph name="END_ENHANCED_PROTECTION_LINK" /></translation>
 <translation id="2634124572758952069"><ph name="HOST_NAME" /> இன் சேவையக IP முகவரியைக் கண்டறிய முடியவில்லை.</translation>
+<translation id="2638001509205834345">உங்கள் கார்டை மேலும் பாதுகாப்பானதாக்க வேண்டுமா?</translation>
 <translation id="2639739919103226564">நிலை:</translation>
 <translation id="264810637653812429">இணக்கமான சாதனங்கள் இல்லை.</translation>
 <translation id="2649204054376361687"><ph name="CITY" />, <ph name="COUNTRY" /></translation>
@@ -664,6 +666,7 @@
 <translation id="3113284927548439113">மூன்றாம் ஷிஃப்ட்</translation>
 <translation id="3115874930288085374"><ph name="ENROLLMENT_DOMAIN" /> டொமைனைப் பயன்படுத்த, உங்கள் தரவைக் காப்புப் பிரதி எடுத்துவிட்டு இந்த <ph name="DEVICE_TYPE" /> சாதனத்தைத் திருப்பியளிக்க வேண்டும்.</translation>
 <translation id="3116158981186517402">லேமினேட்</translation>
+<translation id="311958134571892113">இந்தக் கார்டுடன் இணைத்துள்ளீர்கள்</translation>
 <translation id="3120730422813725195">Elo</translation>
 <translation id="31207688938192855"><ph name="BEGIN_LINK" />கனெக்டிவிட்டி டயக்னஸ்டிக்ஸ் கருவியை இயக்கவும்<ph name="END_LINK" />.</translation>
 <translation id="3121994479408824897"><ph name="DOMAIN" />க்கு செல்</translation>
@@ -733,12 +736,6 @@
 <translation id="3345782426586609320">கண்கள் ஈமோஜி</translation>
 <translation id="3355823806454867987">ப்ராக்ஸி அமைப்புகளை மாற்றுக...</translation>
 <translation id="3360103848165129075">பேமெண்ட் ஹேண்ட்லர் ஷீட்</translation>
-<translation id="3361596688432910856">பின்வரும் தகவலை Chrome <ph name="BEGIN_EMPHASIS" />சேமிக்காது<ph name="END_EMPHASIS" />:
-        <ph name="BEGIN_LIST" />
-          <ph name="LIST_ITEM" />உலாவல் வரலாறு
-          <ph name="LIST_ITEM" />குக்கீகள் மற்றும் தளத் தரவு
-          <ph name="LIST_ITEM" />படிவங்களில் உள்ளிடும் தகவல்
-        <ph name="END_LIST" /></translation>
 <translation id="3362968246557010467">தடுக்கப்பட்டுள்ள <ph name="OLD_POLICY" /> கொள்கையில் இருந்து இது தானாகவே நகலெடுக்கப்பட்டது. மாறாக இந்தக் கொள்கையைப் பயன்படுத்த வேண்டும்.</translation>
 <translation id="3364869320075768271"><ph name="URL" /> உங்கள் விர்ச்சுவல் ரியாலிட்டி சாதனத்தையும் தரவையும் பயன்படுத்த விரும்புகிறது</translation>
 <translation id="3366477098757335611">கார்டுகளைக் காட்டு</translation>
@@ -1218,12 +1215,7 @@
 <translation id="4819347708020428563">இயல்புக் காட்சியில் விரிவுரைகளைத் திருத்தவா?</translation>
 <translation id="4825496307559726072"><ph name="CREATE_GOOGLE_SHEET_FOCUSED_FRIENDLY_MATCH_TEXT" />, Google விரிதாளை விரைவாக உருவாக்க Tab பட்டனை அழுத்திவிட்டு Enter பட்டனை அழுத்துங்கள்</translation>
 <translation id="4825507807291741242">பவர்ஃபுல்</translation>
-<translation id="4827402517081186284">மறைநிலையில் உலாவும்போது ஆன்லைனில் உங்கள் அடையாளம் மறைக்கப்படாது:
-        <ph name="BEGIN_LIST" />
-          <ph name="LIST_ITEM" />நீங்கள்தான் பார்வையிடுகிறீர்கள் என்பதைத் தளங்களால் அறிய முடியும்<ph name="END_LIST_ITEM" />
-          <ph name="LIST_ITEM" />நிறுவனங்கள் அல்லது பள்ளிகளால் உங்கள் உலாவல் செயல்பாட்டைக் கண்காணிக்க முடியும்<ph name="END_LIST_ITEM" />
-          <ph name="LIST_ITEM" />இணைய டிராஃபிக்கை இணையச் சேவை வழங்குநர்கள் கண்காணிக்கக்கூடும்<ph name="END_LIST_ITEM" />
-        <ph name="END_LIST" /></translation>
+<translation id="4829962028570902310">கிளவுட் பயனர் கொள்கையால் மட்டுமே கொள்கையை அமைக்க முடியுமென்பதால் புறக்கணிக்கப்பட்டது.</translation>
 <translation id="483241715238664915">எச்சரிக்கைகளை இயக்கு</translation>
 <translation id="4838327282952368871">ட்ரீமி</translation>
 <translation id="4840250757394056958">எனது Chrome செயல்பாடுகளைக் காட்டு</translation>
@@ -1791,7 +1783,6 @@
 <translation id="6757797048963528358">உங்கள் சாதனம் உறக்கநிலைக்குச் சென்றது.</translation>
 <translation id="6767985426384634228">முகவரியை மாற்றவா?</translation>
 <translation id="6768213884286397650">Hagaki (போஸ்ட்கார்டு)</translation>
-<translation id="6774185088257932239">மறைநிலை குறித்து <ph name="BEGIN_LINK" />மேலும் அறிக<ph name="END_LINK" /></translation>
 <translation id="6775759552199460396">JIS B2</translation>
 <translation id="67862343314499040">ஊதா</translation>
 <translation id="6786747875388722282">நீட்டிப்புகள்</translation>
@@ -2271,12 +2262,6 @@
 <translation id="8317207217658302555">ARCoreரைப் புதுப்பிக்கவா?</translation>
 <translation id="831997045666694187">மாலை</translation>
 <translation id="8321476692217554900">அறிவிப்புகள்</translation>
-<translation id="8328484624016508118">அனைத்து மறைநிலைப் பக்கங்களையும் மூடியதும் Chrome இவற்றை அழிக்கும்:
-        <ph name="BEGIN_LIST" />
-          <ph name="LIST_ITEM" />இந்தச் சாதனத்தில் உள்ள உங்களின் உலாவல் செயல்பாடு<ph name="END_LIST_ITEM" />
-          <ph name="LIST_ITEM" />இந்தச் சாதனத்தில் உள்ள உங்களின் தேடல் விவரங்கள்<ph name="END_LIST_ITEM" />
-          <ph name="LIST_ITEM" />படிவங்களில் டைப் செய்த தகவல்கள்<ph name="END_LIST_ITEM" />
-        <ph name="END_LIST" /></translation>
 <translation id="8332188693563227489"><ph name="HOST_NAME" /> க்கான அணுகல் மறுக்கப்பட்டது</translation>
 <translation id="833262891116910667">தனிப்படுத்தும்</translation>
 <translation id="8339163506404995330"><ph name="LANGUAGE" /> மொழியில் உள்ள பக்கங்கள் மொழிபெயர்க்கப்படாது</translation>
@@ -2360,6 +2345,7 @@
 <translation id="8669306706049782872">சாளரங்களைத் திறந்து வைக்க உங்கள் திரைகள் குறித்த தகவலைப் பயன்படுத்துதல்</translation>
 <translation id="867224526087042813">கையொப்பம்</translation>
 <translation id="8676424191133491403">தாமதப்படுத்த வேண்டாம்</translation>
+<translation id="8679903780129190080">ஆம், ஏற்கிறேன்</translation>
 <translation id="8680536109547170164"><ph name="QUERY" />, பதில், <ph name="ANSWER" /></translation>
 <translation id="8681531050781943054"><ph name="PAGE" /> இல் உள்ள இணையப்பக்கத்தை ஏற்ற முடியவில்லை, ஏனெனில்:</translation>
 <translation id="8685155993131031756">Prc-16K</translation>
diff --git a/components/strings/components_strings_te.xtb b/components/strings/components_strings_te.xtb
index f32fccac..2405b420 100644
--- a/components/strings/components_strings_te.xtb
+++ b/components/strings/components_strings_te.xtb
@@ -20,7 +20,6 @@
 <translation id="1038842779957582377">తెలియని పేరు</translation>
 <translation id="1041998700806130099">జాబ్ షీట్ మెసేజ్‌</translation>
 <translation id="1048785276086539861">మీరు అదనపు గమనికలను ఎడిట్ చేసినప్పుడు, ఈ డాక్యుమెంట్ సింగిల్ పేజీ వీక్షణకు తిరిగి వస్తుంది</translation>
-<translation id="1049743911850919806">అజ్ఞాత మోడ్</translation>
 <translation id="1050038467049342496">ఇతర యాప్‌లను మూసివేయండి</translation>
 <translation id="1055184225775184556">&amp;జోడించడాన్ని రద్దు చేయి</translation>
 <translation id="1056898198331236512">హెచ్చరిక</translation>
@@ -742,12 +741,6 @@
 <translation id="3345782426586609320">కళ్లు</translation>
 <translation id="3355823806454867987">ప్రాక్సీ సెట్టింగ్‌లను మార్చు...</translation>
 <translation id="3360103848165129075">చెల్లింపు హ్యాండ్లర్ షీట్</translation>
-<translation id="3361596688432910856">Chrome ఈ కింది సమాచారాన్ని <ph name="BEGIN_EMPHASIS" />సేవ్ చేయదు<ph name="END_EMPHASIS" />:
-        <ph name="BEGIN_LIST" />
-          <ph name="LIST_ITEM" />మీ బ్రౌజింగ్ చరిత్ర
-          <ph name="LIST_ITEM" />కుక్కీలు మరియు సైట్ డేటా
-          <ph name="LIST_ITEM" />ఫారమ్‌లలో నమోదు చేసిన సమాచారం
-        <ph name="END_LIST" /></translation>
 <translation id="3362968246557010467">ఈ విధానం ఒక విస్మరించబడిన <ph name="OLD_POLICY" /> విధానం నుండి ఆటోమేటిక్‌గా కాపీ చేయబడింది. దానికి బదులుగా, మీరు ఈ విధానాన్ని ఉపయోగించాలి.</translation>
 <translation id="3364869320075768271">'<ph name="URL" />', మీ వర్చువల్ రియాలిటీ పరికరాన్ని, డేటాను వినియోగించడానికి అనుమతి కోరుతోంది</translation>
 <translation id="3366477098757335611">కార్డ్‌లను చూడండి</translation>
@@ -1228,12 +1221,6 @@
 <translation id="4819347708020428563">అదనపు గమనికలను ఆటోమేటిక్ వీక్షణలో ఎడిట్ చేయాలనుకుంటున్నారా?</translation>
 <translation id="4825496307559726072"><ph name="CREATE_GOOGLE_SHEET_FOCUSED_FRIENDLY_MATCH_TEXT" />, కొత్త Google షీట్‌ను త్వరగా క్రియేట్ చేయడానికి Tabను నొక్కి, ఆపై Enterను నొక్కండి</translation>
 <translation id="4825507807291741242">శక్తివంతమైనది</translation>
-<translation id="4827402517081186284">అజ్ఞాత మోడ్‌ను ఉపయోగిస్తున్నంత మాత్రాన మీరు ఆన్‌లైన్‌లో ఇతరులకు కనపడరని అర్ధం కాదు:
-        <ph name="BEGIN_LIST" />
-          <ph name="LIST_ITEM" />మీరు సైట్‌లకు వెళ్లినప్పుడు వాటికి తెలుస్తుంది<ph name="END_LIST_ITEM" />
-          <ph name="LIST_ITEM" />యాజమాన్య సంస్థలు లేదా పాఠశాలలు బ్రౌజింగ్ యాక్టివిటీని ట్రాక్ చేయగలవు<ph name="END_LIST_ITEM" />
-          <ph name="LIST_ITEM" />ఇంటర్నెట్ సర్వీస్ ప్రొవైడర్‌లు వెబ్ ట్రాఫిక్‌ను మానిటర్ చేయగలవు<ph name="END_LIST_ITEM" />
-        <ph name="END_LIST" /></translation>
 <translation id="4829962028570902310">క్లౌడ్ యూజర్ పాలసీ ద్వారా మాత్రమే పాలసీని సెట్ చేయాలి కాబట్టి ఇది విస్మరించబడింది.</translation>
 <translation id="483241715238664915">హెచ్చరికలను ఆన్ చేయండి</translation>
 <translation id="4838327282952368871">స్వప్నం లాంటిది</translation>
@@ -1803,7 +1790,6 @@
 <translation id="6757797048963528358">మీ పరికరం నిద్రావస్థకు వెళ్లింది.</translation>
 <translation id="6767985426384634228">అడ్రస్‌ను అప్‌డేట్ చేయాలా?</translation>
 <translation id="6768213884286397650">హగకి (పోస్ట్‌కార్డ్)</translation>
-<translation id="6774185088257932239">అజ్ఞాత మోడ్ గురించి <ph name="BEGIN_LINK" />మరింత తెలుసుకోండి<ph name="END_LINK" /></translation>
 <translation id="6775759552199460396">JIS B2</translation>
 <translation id="67862343314499040">నీలి ఊదా రంగు</translation>
 <translation id="6786747875388722282">ఎక్స్‌టెన్షన్‌లు</translation>
@@ -2283,12 +2269,6 @@
 <translation id="8317207217658302555">ARCoreను అప్‌డేట్ చేయాలా?</translation>
 <translation id="831997045666694187">సాయంత్రం</translation>
 <translation id="8321476692217554900">నోటిఫికేషన్‌లు</translation>
-<translation id="8328484624016508118">అన్ని అజ్ఞాత ట్యాబ్‌లను మూసివేసిన తర్వాత, Chrome వీటిని క్లియర్ చేస్తుంది:
-        <ph name="BEGIN_LIST" />
-          <ph name="LIST_ITEM" />ఈ పరికరం నుండి మీ బ్రౌజింగ్ యాక్టివిటీ<ph name="END_LIST_ITEM" />
-          <ph name="LIST_ITEM" />ఈ పరికరం నుండి మీ సెర్చ్ హిస్టరీ<ph name="END_LIST_ITEM" />
-          <ph name="LIST_ITEM" />ఫారమ్‌లలో ఎంటర్ చేయబడిన సమాచారం<ph name="END_LIST_ITEM" />
-        <ph name="END_LIST" /></translation>
 <translation id="8332188693563227489"><ph name="HOST_NAME" />కి యాక్సెస్ నిరాకరించబడింది</translation>
 <translation id="833262891116910667">హైలైట్ చేస్తుంది</translation>
 <translation id="8339163506404995330"><ph name="LANGUAGE" />లో ఉన్న పేజీలు అనువదించబడవు</translation>
@@ -2546,7 +2526,6 @@
 <translation id="9215416866750762878">ఒక అప్లికేషన్ కారణంగా Chrome ఈ సైట్‌కు సురక్షితంగా కనెక్ట్ కాలేకపోతోంది</translation>
 <translation id="9219103736887031265">ఇమేజ్‌లు</translation>
 <translation id="922152298093051471">Chromeను అనుకూలంగా మార్చు</translation>
-<translation id="922274508605516859">మోసం జరిగే అవకాశమున్న సందర్భంలో మిమ్మల్ని రక్షించడంలో సహాయపడటానికి వర్చువల్ కార్డ్ మీ అసలు కార్డ్‌లా వ్యవహరిస్తుంది.</translation>
 <translation id="933712198907837967">డైనర్స్ క్లబ్</translation>
 <translation id="935608979562296692">ఫారమ్‌ను తీసివేయండి</translation>
 <translation id="936474030629450166">సూపర్-B</translation>
diff --git a/components/strings/components_strings_th.xtb b/components/strings/components_strings_th.xtb
index d2c084b..e22498a 100644
--- a/components/strings/components_strings_th.xtb
+++ b/components/strings/components_strings_th.xtb
@@ -20,7 +20,6 @@
 <translation id="1038842779957582377">ไม่ทราบชื่อ</translation>
 <translation id="1041998700806130099">ข้อความแผ่นงาน</translation>
 <translation id="1048785276086539861">เมื่อคุณแก้ไขคำอธิบายประกอบ เอกสารนี้จะกลับไปเป็นมุมมองแบบหน้าเดียว</translation>
-<translation id="1049743911850919806">โหมดไม่ระบุตัวตน</translation>
 <translation id="1050038467049342496">ปิดแอปอื่นๆ</translation>
 <translation id="1055184225775184556">&amp;เลิกทำการเพิ่ม</translation>
 <translation id="1056898198331236512">คำเตือน</translation>
@@ -732,12 +731,6 @@
 <translation id="3345782426586609320">ตา</translation>
 <translation id="3355823806454867987">เปลี่ยนการตั้งค่าพร็อกซี...</translation>
 <translation id="3360103848165129075">แผ่นงานของเครื่องจัดการการชำระเงิน</translation>
-<translation id="3361596688432910856">Chrome <ph name="BEGIN_EMPHASIS" />จะไม่บันทึก<ph name="END_EMPHASIS" />ข้อมูลต่อไปนี้:
-        <ph name="BEGIN_LIST" />
-          <ph name="LIST_ITEM" />ประวัติการท่องเว็บของคุณ
-          <ph name="LIST_ITEM" />คุกกี้และข้อมูลไซต์
-          <ph name="LIST_ITEM" />ข้อมูลที่กรอกในฟอร์ม
-        <ph name="END_LIST" /></translation>
 <translation id="3362968246557010467">เราคัดลอกนโยบายนี้มาโดยอัตโนมัติจากนโยบาย <ph name="OLD_POLICY" /> ที่เลิกใช้งานแล้ว คุณควรใช้นโยบายนี้แทน</translation>
 <translation id="3364869320075768271"><ph name="URL" /> ต้องการเข้าถึงอุปกรณ์และข้อมูล Virtual Reality ของคุณ</translation>
 <translation id="3366477098757335611">ดูบัตร</translation>
@@ -1212,12 +1205,6 @@
 <translation id="4819347708020428563">แก้ไขคำอธิบายประกอบในมุมมองเริ่มต้นใช่ไหม</translation>
 <translation id="4825496307559726072"><ph name="CREATE_GOOGLE_SHEET_FOCUSED_FRIENDLY_MATCH_TEXT" /> กด Tab ตามด้วย Enter เพื่อสร้างชีตใหม่ใน Google ชีตอย่างรวดเร็ว</translation>
 <translation id="4825507807291741242">ทรงพลัง</translation>
-<translation id="4827402517081186284">โหมดไม่ระบุตัวตนไม่ได้ซ่อนการใช้งานออนไลน์ของคุณ
-        <ph name="BEGIN_LIST" />
-          <ph name="LIST_ITEM" />เว็บไซต์รู้เมื่อคุณเข้าชม<ph name="END_LIST_ITEM" />
-          <ph name="LIST_ITEM" />นายจ้างหรือโรงเรียนติดตามกิจกรรมการท่องเว็บได้<ph name="END_LIST_ITEM" />
-          <ph name="LIST_ITEM" />ผู้ให้บริการอินเทอร์เน็ตอาจตรวจสอบการเข้าชมเว็บ<ph name="END_LIST_ITEM" />
-        <ph name="END_LIST" /></translation>
 <translation id="4829962028570902310">ถูกละเว้นเนื่องจากนโยบายจะต้องตั้งค่าโดยนโยบายผู้ใช้ระบบคลาวด์เท่านั้น</translation>
 <translation id="483241715238664915">เปิดคำเตือน</translation>
 <translation id="4838327282952368871">ชวนฝัน</translation>
@@ -1787,7 +1774,6 @@
 <translation id="6757797048963528358">อุปกรณ์ของคุณเข้าสู่โหมดสลีปแล้ว</translation>
 <translation id="6767985426384634228">อัปเดตที่อยู่ไหม</translation>
 <translation id="6768213884286397650">Hagaki (โปสการ์ด)</translation>
-<translation id="6774185088257932239"><ph name="BEGIN_LINK" />ดูข้อมูลเพิ่มเติม<ph name="END_LINK" />เกี่ยวกับโหมดไม่ระบุตัวตน</translation>
 <translation id="6775759552199460396">JIS B2</translation>
 <translation id="67862343314499040">ม่วงอมน้ำเงิน</translation>
 <translation id="6786747875388722282">ส่วนขยาย</translation>
@@ -2267,12 +2253,6 @@
 <translation id="8317207217658302555">อัปเดต ARCore ไหม</translation>
 <translation id="831997045666694187">ตอนเย็น</translation>
 <translation id="8321476692217554900">การแจ้งเตือน</translation>
-<translation id="8328484624016508118">หลังจากที่ปิดแท็บที่ไม่ระบุตัวตนทั้งหมด Chrome จะล้าง
-        <ph name="BEGIN_LIST" />
-          <ph name="LIST_ITEM" />กิจกรรมการท่องเว็บออกจากอุปกรณ์นี้<ph name="END_LIST_ITEM" />
-          <ph name="LIST_ITEM" />ประวัติการค้นหาออกจากอุปกรณ์นี้<ph name="END_LIST_ITEM" />
-          <ph name="LIST_ITEM" />ข้อมูลที่ป้อนในแบบฟอร์ม<ph name="END_LIST_ITEM" />
-        <ph name="END_LIST" /></translation>
 <translation id="8332188693563227489">การเข้าถึง <ph name="HOST_NAME" /> ถูกปฏิเสธ</translation>
 <translation id="833262891116910667">ไฮไลต์</translation>
 <translation id="8339163506404995330">ระบบจะไม่แปลหน้าเว็บภาษา<ph name="LANGUAGE" /></translation>
diff --git a/components/strings/components_strings_tr.xtb b/components/strings/components_strings_tr.xtb
index 337b060..425a9f26 100644
--- a/components/strings/components_strings_tr.xtb
+++ b/components/strings/components_strings_tr.xtb
@@ -20,7 +20,6 @@
 <translation id="1038842779957582377">bilinmeyen ad</translation>
 <translation id="1041998700806130099">İş sayfası mesajı</translation>
 <translation id="1048785276086539861">Ek açıklamaları düzenlediğinizde bu doküman tek sayfalı görünüme geri döner</translation>
-<translation id="1049743911850919806">Gizli mod</translation>
 <translation id="1050038467049342496">Diğer uygulamaları kapatın</translation>
 <translation id="1055184225775184556">Eklemeyi &amp;Geri Al</translation>
 <translation id="1056898198331236512">Uyarı</translation>
@@ -733,12 +732,6 @@
 <translation id="3345782426586609320">Gözler</translation>
 <translation id="3355823806454867987">Proxy ayarlarını değiştir...</translation>
 <translation id="3360103848165129075">Ödeme işleyici sayfası</translation>
-<translation id="3361596688432910856">Chrome aşağıdaki bilgileri <ph name="BEGIN_EMPHASIS" />kaydetmez<ph name="END_EMPHASIS" />:
-        <ph name="BEGIN_LIST" />
-          <ph name="LIST_ITEM" />Tarama geçmişiniz
-          <ph name="LIST_ITEM" />Çerezler ve site verileri
-          <ph name="LIST_ITEM" />Formlara girilen bilgiler
-        <ph name="END_LIST" /></translation>
 <translation id="3362968246557010467">Bu politika, kullanımdan kaldırılmış <ph name="OLD_POLICY" /> politikasından otomatik olarak kopyalanmıştır. Onun yerine bu politikayı kullanmalısınız.</translation>
 <translation id="3364869320075768271"><ph name="URL" /> sanal gerçeklik cihazınızı ve verilerinizi kullanmak istiyor</translation>
 <translation id="3366477098757335611">Kartları göster</translation>
@@ -1215,12 +1208,6 @@
 <translation id="4819347708020428563">Ek açıklamalar varsayılan görünümde düzenlensin mi?</translation>
 <translation id="4825496307559726072"><ph name="CREATE_GOOGLE_SHEET_FOCUSED_FRIENDLY_MATCH_TEXT" />, hızlıca yeni bir Google E-Tablosu oluşturmak için Sekme'ye, ardından Enter'a basın</translation>
 <translation id="4825507807291741242">Güçlü</translation>
-<translation id="4827402517081186284">Gizli mod sizi internet ortamında görünmez hale getirmez:
-        <ph name="BEGIN_LIST" />
-          <ph name="LIST_ITEM" />Siteler, ne zaman ziyaret ettiğinizi bilir<ph name="END_LIST_ITEM" />
-          <ph name="LIST_ITEM" />İşverenler veya okullar tarama etkinliğini izleyebilir<ph name="END_LIST_ITEM" />
-          <ph name="LIST_ITEM" />İnternet Servis Sağlayıcıları web trafiğini izleyebilir<ph name="END_LIST_ITEM" />
-        <ph name="END_LIST" /></translation>
 <translation id="4829962028570902310">Yalnızca bulut kullanıcı politikası tarafından ayarlanabileceği için politika yoksayıldı.</translation>
 <translation id="483241715238664915">Uyarıları açın</translation>
 <translation id="4838327282952368871">Hayalperest</translation>
@@ -1790,7 +1777,6 @@
 <translation id="6757797048963528358">Cihazınız uyku moduna geçti.</translation>
 <translation id="6767985426384634228">Adres Güncellensin mi?</translation>
 <translation id="6768213884286397650">Hagaki (Kartpostal)</translation>
-<translation id="6774185088257932239">Gizli mod hakkında <ph name="BEGIN_LINK" />daha fazla bilgi<ph name="END_LINK" /></translation>
 <translation id="6775759552199460396">JIS B2</translation>
 <translation id="67862343314499040">Mor</translation>
 <translation id="6786747875388722282">Uzantılar</translation>
@@ -2270,12 +2256,6 @@
 <translation id="8317207217658302555">ARCore güncellensin mi?</translation>
 <translation id="831997045666694187">Akşam</translation>
 <translation id="8321476692217554900">bildirimler</translation>
-<translation id="8328484624016508118">Tüm gizli sekmeler kapatıldıktan sonra Chrome şunları temizler:
-        <ph name="BEGIN_LIST" />
-          <ph name="LIST_ITEM" />Bu cihazdaki tarama etkinliğiniz<ph name="END_LIST_ITEM" />
-          <ph name="LIST_ITEM" />Bu cihazdaki arama geçmişiniz<ph name="END_LIST_ITEM" />
-          <ph name="LIST_ITEM" />Formlara girilen bilgiler<ph name="END_LIST_ITEM" />
-        <ph name="END_LIST" /></translation>
 <translation id="8332188693563227489"><ph name="HOST_NAME" /> ana makinesine erişim reddedildi</translation>
 <translation id="833262891116910667">Vurgula</translation>
 <translation id="8339163506404995330"><ph name="LANGUAGE" /> dilindeki sayfalar çevrilmeyecek</translation>
diff --git a/components/strings/components_strings_uk.xtb b/components/strings/components_strings_uk.xtb
index 475cfb12..11fa1b6 100644
--- a/components/strings/components_strings_uk.xtb
+++ b/components/strings/components_strings_uk.xtb
@@ -20,7 +20,6 @@
 <translation id="1038842779957582377">Невідоме ім’я</translation>
 <translation id="1041998700806130099">Повідомлення на аркуші вихідних даних</translation>
 <translation id="1048785276086539861">Коли ви редагуєте примітки, документ переходить у режим перегляду по одній сторінці</translation>
-<translation id="1049743911850919806">Анонімний перегляд</translation>
 <translation id="1050038467049342496">Закрийте інші додатки</translation>
 <translation id="1055184225775184556">&amp;Відмінити додавання</translation>
 <translation id="1056898198331236512">Застереження</translation>
@@ -736,12 +735,6 @@
 <translation id="3345782426586609320">Очі</translation>
 <translation id="3355823806454867987">Змінити налаштування проксі...</translation>
 <translation id="3360103848165129075">Аркуш обробника платежу</translation>
-<translation id="3361596688432910856">Chrome <ph name="BEGIN_EMPHASIS" />не зберігатиме<ph name="END_EMPHASIS" />:
-        <ph name="BEGIN_LIST" />
-          <ph name="LIST_ITEM" />історію веб-перегляду
-          <ph name="LIST_ITEM" />файли cookie та дані із сайтів
-          <ph name="LIST_ITEM" />дані, які ви заповнюєте у формах
-        <ph name="END_LIST" /></translation>
 <translation id="3362968246557010467">Правило було автоматично скопійовано з правила <ph name="OLD_POLICY" />, яке не підтримується. Натомість потрібно застосувати це правило.</translation>
 <translation id="3364869320075768271">Сайт <ph name="URL" /> хоче отримати доступ до ваших даних і пристрою віртуальної реальності</translation>
 <translation id="3366477098757335611">Переглянути картки</translation>
@@ -1222,12 +1215,6 @@
 <translation id="4819347708020428563">Редагувати примітки в режимі перегляду за умовчанням?</translation>
 <translation id="4825496307559726072"><ph name="CREATE_GOOGLE_SHEET_FOCUSED_FRIENDLY_MATCH_TEXT" />; натисніть Tab, а потім – Enter, щоб швидко створити нову таблицю Google</translation>
 <translation id="4825507807291741242">Потужний</translation>
-<translation id="4827402517081186284">В анонімному режимі ваші дії в Інтернеті не стають невидимими:
-        <ph name="BEGIN_LIST" />
-          <ph name="LIST_ITEM" />коли ви відвідуєте веб-сайти, вони бачать це;<ph name="END_LIST_ITEM" />
-          <ph name="LIST_ITEM" />роботодавці та заклади освіти можуть відстежувати ваші дії у веб-переглядачі;<ph name="END_LIST_ITEM" />
-          <ph name="LIST_ITEM" />постачальники послуг Інтернету (ISP) можуть відстежувати веб-трафік.<ph name="END_LIST_ITEM" />
-        <ph name="END_LIST" /></translation>
 <translation id="4829962028570902310">Ігнорується, оскільки це правило можна налаштувати лише через хмарні правила для користувачів.</translation>
 <translation id="483241715238664915">Увімкнути попередження</translation>
 <translation id="4838327282952368871">Мрійливий</translation>
@@ -1797,7 +1784,6 @@
 <translation id="6757797048963528358">Ваш пристрій перейшов у режим сну.</translation>
 <translation id="6767985426384634228">Оновити адресу?</translation>
 <translation id="6768213884286397650">Hagaki (листівка)</translation>
-<translation id="6774185088257932239"><ph name="BEGIN_LINK" />Докладніше<ph name="END_LINK" /> про анонімний режим</translation>
 <translation id="6775759552199460396">JIS B2</translation>
 <translation id="67862343314499040">Фіолетовий</translation>
 <translation id="6786747875388722282">Розширення</translation>
@@ -2277,12 +2263,6 @@
 <translation id="8317207217658302555">Оновити ARCore?</translation>
 <translation id="831997045666694187">Увечері</translation>
 <translation id="8321476692217554900">сповіщення</translation>
-<translation id="8328484624016508118">Коли ви закриєте всі анонімні вкладки, у Chrome буде видалено:
-        <ph name="BEGIN_LIST" />
-          <ph name="LIST_ITEM" />дані про ваші дії у веб-переглядачі на цьому пристрої;<ph name="END_LIST_ITEM" />
-          <ph name="LIST_ITEM" />вашу історію пошуку на цьому пристрої;<ph name="END_LIST_ITEM" />
-          <ph name="LIST_ITEM" />інформацію, яку ви вводили у форми.<ph name="END_LIST_ITEM" />
-        <ph name="END_LIST" /></translation>
 <translation id="8332188693563227489">Відмовлено в доступі до хосту <ph name="HOST_NAME" /></translation>
 <translation id="833262891116910667">Виділити</translation>
 <translation id="8339163506404995330">Сторінки цією мовою (<ph name="LANGUAGE" />) не перекладатимуться</translation>
diff --git a/components/strings/components_strings_ur.xtb b/components/strings/components_strings_ur.xtb
index 75ff73a..f1096d9 100644
--- a/components/strings/components_strings_ur.xtb
+++ b/components/strings/components_strings_ur.xtb
@@ -20,7 +20,6 @@
 <translation id="1038842779957582377">نامعلوم نام</translation>
 <translation id="1041998700806130099">جاب شیٹ کا پیغام</translation>
 <translation id="1048785276086539861">آپ کے تشریحات میں ترمیم کرنے پر، یہ دستاویز واحد صفحے کے منظر پر واپس آ جائے گا</translation>
-<translation id="1049743911850919806">پوشیدگی</translation>
 <translation id="1050038467049342496">دیگر ایپس بند کریں</translation>
 <translation id="1055184225775184556">شامل کریں کو &amp;کالعدم کریں</translation>
 <translation id="1056898198331236512">وارننگ</translation>
@@ -212,6 +211,7 @@
 <translation id="1567040042588613346">یہ پالیسی توقع کے مطابق کام کر رہی ہے لیکن کسی دوسری جگہ ایک جیسی قدر سیٹ کی گئی ہے اور اس نے اس پالیسی کی جگہ لے لی ہے۔</translation>
 <translation id="1569487616857761740">تاریخ اختتام درج کریں</translation>
 <translation id="1581080074034554886">CVC</translation>
+<translation id="1581767074483369314">ورچوئل کارڈ میں اندراج کریں</translation>
 <translation id="1583294866416602487">Plex</translation>
 <translation id="1583429793053364125">یہ ویب صفحہ ڈسپلے کرتے ہوئے کچھ غلط ہو گیا۔</translation>
 <translation id="1586541204584340881">آپ نے کن ایکسٹینشنز کو انسٹال کیا ہے</translation>
@@ -377,6 +377,7 @@
 <translation id="2101225219012730419">ورژن:</translation>
 <translation id="2102134110707549001">مضبوط پاس ورڈ تجویز کریں…</translation>
 <translation id="2102495993840063010">‏Android ایپس</translation>
+<translation id="2106249949168291652">محفوظ ہو گیا۔ ورچوئل کارڈ کے ساتھ اسے مزید محفوظ بنائیں؟</translation>
 <translation id="2107021941795971877">پرنٹ سپورٹس</translation>
 <translation id="2108755909498034140">اپنے کمپیوٹر کو دوبارہ شروع کریں</translation>
 <translation id="2111166930115883695">کھیلنے کے لیے اسپیس دبائیں</translation>
@@ -532,6 +533,7 @@
 <translation id="262745152991669301">‏سائٹ USB آلات سے منسلک ہونے کیلئے پوچھ سکتی ہے</translation>
 <translation id="2629325967560697240">‏Chrome کی اعلی ترین سیکیورٹی حاصل کرنے کے لیے <ph name="BEGIN_ENHANCED_PROTECTION_LINK" />بہتر کردہ حفاظت کو آن کریں<ph name="END_ENHANCED_PROTECTION_LINK" /></translation>
 <translation id="2634124572758952069">‏<ph name="HOST_NAME" /> کے سرور کا IP پتہ نہیں مل سکا۔</translation>
+<translation id="2638001509205834345">اپنے کارڈ کو مزید محفوظ بنائیں؟</translation>
 <translation id="2639739919103226564">صورتحال:</translation>
 <translation id="264810637653812429">کوئی مطابقت پذیر آلہ نہیں ملا۔</translation>
 <translation id="2649204054376361687"><ph name="CITY" />، <ph name="COUNTRY" /></translation>
@@ -664,6 +666,7 @@
 <translation id="3113284927548439113">تیسری شفٹ</translation>
 <translation id="3115874930288085374"><ph name="ENROLLMENT_DOMAIN" /> کا تقاضہ ہے کہ آپ اپنے ڈیٹا کا بیک اپ لیں اور اس <ph name="DEVICE_TYPE" /> کو واپس کریں۔</translation>
 <translation id="3116158981186517402">ورق چڑھائیں</translation>
+<translation id="311958134571892113">اس کے ساتھ لنک کیا گيا</translation>
 <translation id="3120730422813725195">ELO</translation>
 <translation id="31207688938192855"><ph name="BEGIN_LINK" />کنیکٹوٹی کی تشخیصات چلانے کی کوشش کریں<ph name="END_LINK" />۔</translation>
 <translation id="3121994479408824897"><ph name="DOMAIN" /> پر جائیں</translation>
@@ -737,12 +740,6 @@
 <translation id="3345782426586609320">آنکھیں</translation>
 <translation id="3355823806454867987">پراکسی ترتیبات تبدیل کریں…</translation>
 <translation id="3360103848165129075">ادائیگی ہینڈلر کی شیٹ</translation>
-<translation id="3361596688432910856">‏Chrome مندرجہ ذیل معلومات کو <ph name="BEGIN_EMPHASIS" />محفوظ نہیں کرے گا<ph name="END_EMPHASIS" />:
-        <ph name="BEGIN_LIST" />
-          <ph name="LIST_ITEM" />آپ کی براؤزنگ سرگزشت
-          <ph name="LIST_ITEM" />کوکیز اور سائٹ ڈیٹا
-          <ph name="LIST_ITEM" />فارمز میں درج کردہ معلومات
-        <ph name="END_LIST" /></translation>
 <translation id="3362968246557010467">یہ پالیسی خودکار طور پر فرسودہ <ph name="OLD_POLICY" /> پالیسی سے کاپی کی گئی تھی۔ اس کی بجائے، آپ کو اس کا پالیسی کا استعمال کرنا چاہیے۔</translation>
 <translation id="3364869320075768271"><ph name="URL" /> آپ کا ورچوئل ریئلٹی آلہ اور ڈیٹا استعمال کرنا چاہتا ہے</translation>
 <translation id="3366477098757335611">کارڈز دیکھیں</translation>
@@ -1223,12 +1220,6 @@
 <translation id="4819347708020428563">ڈیفالٹ منظر میں تشریحات میں ترمیم کریں؟</translation>
 <translation id="4825496307559726072">‏<ph name="CREATE_GOOGLE_SHEET_FOCUSED_FRIENDLY_MATCH_TEXT" />، تیزی سے ایک نئی Google Sheet تخلیق کرنے کیلئے Tab، پھر Enter دبائیں</translation>
 <translation id="4825507807291741242">طاقتور</translation>
-<translation id="4827402517081186284">پوشیدگی وضع آپ کو آن لائن غیر مرئی نہیں کرتی ہے:
-        <ph name="BEGIN_LIST" />
-          <ph name="LIST_ITEM" />سائٹس کو معلوم ہوتا ہے کہ آپ کب انہیں ملاحظہ کرتے ہیں<ph name="END_LIST_ITEM" />
-          <ph name="LIST_ITEM" />آجر یا اسکول براؤزنگ کی سرگرمی کو ٹریک کر سکتے ہیں<ph name="END_LIST_ITEM" />
-          <ph name="LIST_ITEM" />انٹرنیٹ سروس پرووائیڈرز ویب ٹریفک کو مانیٹر کر سکتے ہیں<ph name="END_LIST_ITEM" />
-        <ph name="END_LIST" /></translation>
 <translation id="4829962028570902310">نظر انداز کر دیا گیا کیونکہ پالیسی صرف کلاؤڈ صارف کی پالیسی کے ذریعے سیٹ کی جا سکتی ہے۔</translation>
 <translation id="483241715238664915">وارننگز کو آن کریں</translation>
 <translation id="4838327282952368871">خیالی</translation>
@@ -1799,7 +1790,6 @@
 <translation id="6757797048963528358">آپ کا آلہ سیلپ وضع میں چلا گیا۔</translation>
 <translation id="6767985426384634228">پتہ اپ ڈیٹ کریں؟</translation>
 <translation id="6768213884286397650">Hagaki ‎(Postcard)‎</translation>
-<translation id="6774185088257932239">پوشیدگی وضع کے بارے میں <ph name="BEGIN_LINK" />مزید جانیں<ph name="END_LINK" /></translation>
 <translation id="6775759552199460396">JIS B2</translation>
 <translation id="67862343314499040">وائلیٹ</translation>
 <translation id="6786747875388722282">توسیعات</translation>
@@ -2279,12 +2269,6 @@
 <translation id="8317207217658302555">‏ARCore کو اپ ڈیٹ کریں؟</translation>
 <translation id="831997045666694187">شام</translation>
 <translation id="8321476692217554900">اطلاعات</translation>
-<translation id="8328484624016508118">‏تمام پوشیدگی ٹیبز کو بند کرنے کے بعد، Chrome درج ذیل صاف کرتا ہے:
-        <ph name="BEGIN_LIST" />
-          <ph name="LIST_ITEM" />اس آلہ سے آپ کی براؤزنگ کی سرگرمی<ph name="END_LIST_ITEM" />
-          <ph name="LIST_ITEM" />اس آلہ سے آپ کی تلاش کی سرگزشت<ph name="END_LIST_ITEM" />
-          <ph name="LIST_ITEM" />فارمز میں درج کردہ معلومات<ph name="END_LIST_ITEM" />
-        <ph name="END_LIST" /></translation>
 <translation id="8332188693563227489"><ph name="HOST_NAME" /> تک رسائی مسترد کر دی گئی</translation>
 <translation id="833262891116910667">ہائی لائٹ کریں</translation>
 <translation id="8339163506404995330"><ph name="LANGUAGE" /> کے صفحات کا ترجمہ نہیں کیا جائے گا</translation>
@@ -2368,6 +2352,7 @@
 <translation id="8669306706049782872">ونڈوز کھولنے اور رکھنے کے لیے اپنی اسکرینز کے بارے میں معلومات کا استعمال کریں</translation>
 <translation id="867224526087042813">دستخط</translation>
 <translation id="8676424191133491403">کوئی تاخیر نہیں</translation>
+<translation id="8679903780129190080">ہاں میں شامل ہوں</translation>
 <translation id="8680536109547170164"><ph name="QUERY" />، جواب، <ph name="ANSWER" /></translation>
 <translation id="8681531050781943054"><ph name="PAGE" /> پر موجود ویب صفحہ لوڈ نہیں ہو سکا کیوںکہ:</translation>
 <translation id="8685155993131031756">Prc-16K</translation>
diff --git a/components/strings/components_strings_uz.xtb b/components/strings/components_strings_uz.xtb
index 92de294..fcaf9d68 100644
--- a/components/strings/components_strings_uz.xtb
+++ b/components/strings/components_strings_uz.xtb
@@ -20,7 +20,6 @@
 <translation id="1038842779957582377">noma’lum ism</translation>
 <translation id="1041998700806130099">Vazifa varagʻidagi xabar</translation>
 <translation id="1048785276086539861">Izohlarni tahrirlash vaqtida bu hujjat bir sahifali shaklga qaytadi</translation>
-<translation id="1049743911850919806">Inkognito</translation>
 <translation id="1050038467049342496">Boshqa ilovalarni yoping</translation>
 <translation id="1055184225775184556">&amp;Qo‘shishni bekor qilish</translation>
 <translation id="1056898198331236512">Ogohlantirish</translation>
@@ -737,12 +736,6 @@
 <translation id="3345782426586609320">Koʻzlar</translation>
 <translation id="3355823806454867987">Proksi-server sozlamalarini o‘zgartirish...</translation>
 <translation id="3360103848165129075">Toʻlovni qayta ishlash vositasi</translation>
-<translation id="3361596688432910856">Chrome quyidagi ma’lumotlarni <ph name="BEGIN_EMPHASIS" />saqlab qolmaydi<ph name="END_EMPHASIS" />:
-        <ph name="BEGIN_LIST" />
-          <ph name="LIST_ITEM" />Veb-sahifalarni ko‘rish tarixi;
-          <ph name="LIST_ITEM" />Cookie-fayllar va sayt ma’lumotlari;
-          <ph name="LIST_ITEM" />To‘ldirilgan shakllar.
-        <ph name="END_LIST" /></translation>
 <translation id="3362968246557010467">Bu parametr eskirgan <ph name="OLD_POLICY" /> siyosatidan avtomatik ravishda nusxa olgan. Oʻrniga bu parametrdan foydalaning.</translation>
 <translation id="3364869320075768271"><ph name="URL" /> virtual reallik qurilmangiz va uning maʼlumotlaridan foydalanmoqchi</translation>
 <translation id="3366477098757335611">Kartalarni ko‘rish</translation>
@@ -1221,12 +1214,6 @@
 <translation id="4819347708020428563">Izohlar standart shaklda tahrirlansinmi?</translation>
 <translation id="4825496307559726072"><ph name="CREATE_GOOGLE_SHEET_FOCUSED_FRIENDLY_MATCH_TEXT" />, yangi Google Sheetda yangi jadvalni tez yaratish uchun avval Tab, keyin Enter tugmasini bosing</translation>
 <translation id="4825507807291741242">Qudratli</translation>
-<translation id="4827402517081186284">Inkognito rejimida ayrim axborotlar yashirilmaydi:
-        <ph name="BEGIN_LIST" />
-          <ph name="LIST_ITEM" />Saytlar ularga qilgan tashrifingizni biladi<ph name="END_LIST_ITEM" />
-          <ph name="LIST_ITEM" />Ishxona va maktablarda brauzer tarixi kuzatilishi mumkin<ph name="END_LIST_ITEM" />
-          <ph name="LIST_ITEM" />Internet provayderlari ham trafikni kuzatishi mumkin<ph name="END_LIST_ITEM" />
-        <ph name="END_LIST" /></translation>
 <translation id="4829962028570902310">Parametr faqat bulutdagi foydalanuvchilar siyosati tomonidan belgilanishi mumkinligi uchun inkor etildi</translation>
 <translation id="483241715238664915">Ogohlantiruvlarni yoqish</translation>
 <translation id="4838327282952368871">Xayolparast</translation>
@@ -1795,7 +1782,6 @@
 <translation id="6757797048963528358">Qurilma uyqu rejimiga o‘tib qoldi.</translation>
 <translation id="6767985426384634228">Manzil yangilansinmi?</translation>
 <translation id="6768213884286397650">Hagaki (Postcard)</translation>
-<translation id="6774185088257932239">Inkognito haqida <ph name="BEGIN_LINK" />batafsil<ph name="END_LINK" /></translation>
 <translation id="6775759552199460396">JIS B2</translation>
 <translation id="67862343314499040">Siyohrang</translation>
 <translation id="6786747875388722282">Kengaytmalar</translation>
@@ -2275,12 +2261,6 @@
 <translation id="8317207217658302555">ARCore yangilansinmi?</translation>
 <translation id="831997045666694187">Kechqurun</translation>
 <translation id="8321476692217554900">bildirishnomalar</translation>
-<translation id="8328484624016508118">Barcha Inkognito varaqlar yopilganidan keyin Chrome quyidagilarni tozalaydi:
-        <ph name="BEGIN_LIST" />
-          <ph name="LIST_ITEM" />Bu qurilmadagi bauzer faoliyati tarixi<ph name="END_LIST_ITEM" />
-          <ph name="LIST_ITEM" />Bu qurilmadagi qidiruv tarixi<ph name="END_LIST_ITEM" />
-          <ph name="LIST_ITEM" />Shakllarda kiritilgan axborotlar<ph name="END_LIST_ITEM" />
-        <ph name="END_LIST" /></translation>
 <translation id="8332188693563227489"><ph name="HOST_NAME" /> saytiga kirish taqiqlangan</translation>
 <translation id="833262891116910667">Ajratib belgilash</translation>
 <translation id="8339163506404995330"><ph name="LANGUAGE" /> tilidagi sahifalar tarjima qilinmaydi</translation>
@@ -2538,7 +2518,6 @@
 <translation id="9215416866750762878">Ilova Chromening bu saytga xavfsiz ulanishiga xalaqit qilmoqda</translation>
 <translation id="9219103736887031265">Rasmlar</translation>
 <translation id="922152298093051471">Chromeni moslash</translation>
-<translation id="922274508605516859">Virtual karta haqiqiy kartani ehtimoliy firibgarlikdan himoya qiladi.</translation>
 <translation id="933712198907837967">Diners Club</translation>
 <translation id="935608979562296692">SHAKLNI TOZALASH</translation>
 <translation id="936474030629450166">Super-B</translation>
diff --git a/components/strings/components_strings_vi.xtb b/components/strings/components_strings_vi.xtb
index 0b2ca0a..29bd675b 100644
--- a/components/strings/components_strings_vi.xtb
+++ b/components/strings/components_strings_vi.xtb
@@ -20,7 +20,6 @@
 <translation id="1038842779957582377">tên không biết</translation>
 <translation id="1041998700806130099">Thông báo tờ công việc</translation>
 <translation id="1048785276086539861">Khi bạn chỉnh sửa chú thích, tài liệu này sẽ trở về chế độ xem một trang</translation>
-<translation id="1049743911850919806">Ẩn danh</translation>
 <translation id="1050038467049342496">Đóng các ứng dụng khác</translation>
 <translation id="1055184225775184556">&amp;Hoàn tác thêm</translation>
 <translation id="1056898198331236512">Cảnh báo</translation>
@@ -736,12 +735,6 @@
 <translation id="3345782426586609320">Mắt</translation>
 <translation id="3355823806454867987">Thay đổi cài đặt proxy...</translation>
 <translation id="3360103848165129075">Trang tính trình xử lý thanh toán</translation>
-<translation id="3361596688432910856">Chrome <ph name="BEGIN_EMPHASIS" />sẽ không lưu<ph name="END_EMPHASIS" /> thông tin sau đây:
-        <ph name="BEGIN_LIST" />
-          <ph name="LIST_ITEM" />Lịch sử duyệt web của bạn
-          <ph name="LIST_ITEM" />Cookie và dữ liệu trang web
-          <ph name="LIST_ITEM" />Thông tin đã nhập trong biểu mẫu
-        <ph name="END_LIST" /></translation>
 <translation id="3362968246557010467">Chính sách này được sao chép tự động từ chính sách <ph name="OLD_POLICY" /> không còn dùng nữa. Thay vào đó, bạn nên sử dụng chính sách này.</translation>
 <translation id="3364869320075768271"><ph name="URL" /> muốn sử dụng dữ liệu và thiết bị thực tế ảo của bạn</translation>
 <translation id="3366477098757335611">Xem thẻ</translation>
@@ -1222,12 +1215,7 @@
 <translation id="4819347708020428563">Chỉnh sửa chú thích ở chế độ xem mặc định?</translation>
 <translation id="4825496307559726072"><ph name="CREATE_GOOGLE_SHEET_FOCUSED_FRIENDLY_MATCH_TEXT" />, nhấn phím Tab rồi nhấn phím Enter để tạo nhanh một trang tính mới trong Google Trang tính</translation>
 <translation id="4825507807291741242">Mạnh mẽ</translation>
-<translation id="4827402517081186284">Chế độ ẩn danh không ẩn các hoạt động trực tuyến của bạn:
-        <ph name="BEGIN_LIST" />
-          <ph name="LIST_ITEM" />Các trang web biết thời điểm bạn truy cập<ph name="END_LIST_ITEM" />
-          <ph name="LIST_ITEM" />Người quản lý doanh nghiệp hoặc trường học có thể theo dõi hoạt động duyệt web<ph name="END_LIST_ITEM" />
-          <ph name="LIST_ITEM" />Nhà cung cấp dịch vụ Internet có thể giám sát lưu lượng truy cập web<ph name="END_LIST_ITEM" />
-        <ph name="END_LIST" /></translation>
+<translation id="4829962028570902310">Bỏ qua vì chỉ có chính sách người dùng đám mây mới thiết lập được chính sách này.</translation>
 <translation id="483241715238664915">Bật cảnh báo</translation>
 <translation id="4838327282952368871">Mơ mộng</translation>
 <translation id="4840250757394056958">Xem nhật ký Chrome của bạn</translation>
@@ -1796,7 +1784,6 @@
 <translation id="6757797048963528358">Thiết bị của bạn đã chuyển sang chế độ ngủ.</translation>
 <translation id="6767985426384634228">Cập nhật địa chỉ?</translation>
 <translation id="6768213884286397650">Hagaki (Bưu thiếp)</translation>
-<translation id="6774185088257932239"><ph name="BEGIN_LINK" />Tìm hiểu thêm<ph name="END_LINK" /> về Chế độ ẩn danh</translation>
 <translation id="6775759552199460396">JIS B2</translation>
 <translation id="67862343314499040">Tím vi-ô-lét</translation>
 <translation id="6786747875388722282">Tiện ích</translation>
@@ -2276,12 +2263,6 @@
 <translation id="8317207217658302555">Cập nhật ARCore?</translation>
 <translation id="831997045666694187">Buổi tối</translation>
 <translation id="8321476692217554900">thông báo</translation>
-<translation id="8328484624016508118">Sau khi bạn đóng tất cả thẻ Ẩn danh, Chrome sẽ xóa:
-        <ph name="BEGIN_LIST" />
-          <ph name="LIST_ITEM" />Hoạt động duyệt web của bạn trên thiết bị này<ph name="END_LIST_ITEM" />
-          <ph name="LIST_ITEM" />Nhật ký tìm kiếm của bạn trên thiết bị này<ph name="END_LIST_ITEM" />
-          <ph name="LIST_ITEM" />Thông tin bạn đã nhập vào các biểu mẫu<ph name="END_LIST_ITEM" />
-        <ph name="END_LIST" /></translation>
 <translation id="8332188693563227489">Quyền truy cập <ph name="HOST_NAME" /> bị từ chối</translation>
 <translation id="833262891116910667">Đánh dấu</translation>
 <translation id="8339163506404995330">Các trang viết bằng <ph name="LANGUAGE" /> sẽ không được dịch</translation>
diff --git a/components/strings/components_strings_zh-CN.xtb b/components/strings/components_strings_zh-CN.xtb
index 9f5009ea..e7b5967 100644
--- a/components/strings/components_strings_zh-CN.xtb
+++ b/components/strings/components_strings_zh-CN.xtb
@@ -20,7 +20,6 @@
 <translation id="1038842779957582377">未知名称</translation>
 <translation id="1041998700806130099">工作表消息</translation>
 <translation id="1048785276086539861">当您修改注释时,此文档会恢复为单页视图</translation>
-<translation id="1049743911850919806">无痕</translation>
 <translation id="1050038467049342496">关闭其他应用</translation>
 <translation id="1055184225775184556">撤消添加(&amp;U)</translation>
 <translation id="1056898198331236512">警告</translation>
@@ -212,6 +211,7 @@
 <translation id="1567040042588613346">此政策正在正常运作,但与别处设置的值相同且已覆盖该值。</translation>
 <translation id="1569487616857761740">输入失效日期</translation>
 <translation id="1581080074034554886">CVC</translation>
+<translation id="1581767074483369314">注册虚拟卡</translation>
 <translation id="1583294866416602487">Plex</translation>
 <translation id="1583429793053364125">显示此网页时出了点问题。</translation>
 <translation id="1586541204584340881">您已安装的扩展程序</translation>
@@ -373,6 +373,7 @@
 <translation id="2101225219012730419">版本:</translation>
 <translation id="2102134110707549001">建议安全系数高的密码…</translation>
 <translation id="2102495993840063010">Android 应用</translation>
+<translation id="2106249949168291652">已保存。要利用虚拟卡提升它的安全性吗?</translation>
 <translation id="2107021941795971877">打印方面的支持</translation>
 <translation id="2108755909498034140">重新启动计算机</translation>
 <translation id="2111166930115883695">按空格键即可开始游戏</translation>
@@ -528,6 +529,7 @@
 <translation id="262745152991669301">可以询问能否连接到 USB 设备</translation>
 <translation id="2629325967560697240">如果您想获得 Chrome 最高级别的安全保护,请<ph name="BEGIN_ENHANCED_PROTECTION_LINK" />开启增强型保护<ph name="END_ENHANCED_PROTECTION_LINK" /></translation>
 <translation id="2634124572758952069">找不到 <ph name="HOST_NAME" /> 的服务器 IP 地址。</translation>
+<translation id="2638001509205834345">要提升卡的安全性吗?</translation>
 <translation id="2639739919103226564">状态:</translation>
 <translation id="264810637653812429">找不到任何兼容设备。</translation>
 <translation id="2649204054376361687"><ph name="COUNTRY" /><ph name="CITY" /></translation>
@@ -660,6 +662,7 @@
 <translation id="3113284927548439113">第三批</translation>
 <translation id="3115874930288085374"><ph name="ENROLLMENT_DOMAIN" /> 要求您备份自己的数据并退还此 <ph name="DEVICE_TYPE" />。</translation>
 <translation id="3116158981186517402">粘合</translation>
+<translation id="311958134571892113">已关联</translation>
 <translation id="3120730422813725195">Elo</translation>
 <translation id="31207688938192855"><ph name="BEGIN_LINK" />尝试运行网络连接诊断<ph name="END_LINK" />。</translation>
 <translation id="3121994479408824897">前往 <ph name="DOMAIN" /></translation>
@@ -730,12 +733,6 @@
 <translation id="3345782426586609320">眼睛</translation>
 <translation id="3355823806454867987">更改代理服务器设置...</translation>
 <translation id="3360103848165129075">付款处理程序工作表</translation>
-<translation id="3361596688432910856">Chrome <ph name="BEGIN_EMPHASIS" />不会保存<ph name="END_EMPHASIS" />以下信息:
-        <ph name="BEGIN_LIST" />
-          <ph name="LIST_ITEM" />您的浏览记录
-          <ph name="LIST_ITEM" />Cookie 和网站数据
-          <ph name="LIST_ITEM" />在表单中填写的信息
-        <ph name="END_LIST" /></translation>
 <translation id="3362968246557010467">此政策的值是系统从已弃用的 <ph name="OLD_POLICY" /> 政策中自动复制而来的。您应改用此政策。</translation>
 <translation id="3364869320075768271"><ph name="URL" /> 想使用您的虚拟实境设备和数据</translation>
 <translation id="3366477098757335611">查看您的卡</translation>
@@ -1209,12 +1206,7 @@
 <translation id="4819347708020428563">在默认视图中修改注释?</translation>
 <translation id="4825496307559726072"><ph name="CREATE_GOOGLE_SHEET_FOCUSED_FRIENDLY_MATCH_TEXT" />,依次按 Tab 键和 Enter 键即可快速创建新的 Google 表格</translation>
 <translation id="4825507807291741242">强大</translation>
-<translation id="4827402517081186284">无痕模式无法让您在网上处于隐身状态:
-        <ph name="BEGIN_LIST" />
-          <ph name="LIST_ITEM" />网站会知道您何时访问了它们<ph name="END_LIST_ITEM" />
-          <ph name="LIST_ITEM" />雇主或学校可以跟踪浏览活动<ph name="END_LIST_ITEM" />
-          <ph name="LIST_ITEM" />互联网服务提供商可能会监控网络流量<ph name="END_LIST_ITEM" />
-        <ph name="END_LIST" /></translation>
+<translation id="4829962028570902310">被忽略了,因为此政策只能通过云端用户政策进行设置。</translation>
 <translation id="483241715238664915">开启警告</translation>
 <translation id="4838327282952368871">梦幻</translation>
 <translation id="4840250757394056958">查看您的 Chrome 历史记录</translation>
@@ -1782,7 +1774,6 @@
 <translation id="6757797048963528358">您的设备已进入休眠模式。</translation>
 <translation id="6767985426384634228">更新地址?</translation>
 <translation id="6768213884286397650">Hagaki (Postcard)</translation>
-<translation id="6774185088257932239"><ph name="BEGIN_LINK" />详细了解<ph name="END_LINK" />无痕模式</translation>
 <translation id="6775759552199460396">JIS B2</translation>
 <translation id="67862343314499040">紫罗兰色</translation>
 <translation id="6786747875388722282">扩展程序</translation>
@@ -2262,12 +2253,6 @@
 <translation id="8317207217658302555">更新 ARCore?</translation>
 <translation id="831997045666694187">晚上</translation>
 <translation id="8321476692217554900">通知</translation>
-<translation id="8328484624016508118">关闭所有无痕式标签页之后,Chrome 会清除:
-        <ph name="BEGIN_LIST" />
-          <ph name="LIST_ITEM" />您在这部设备上的浏览活动记录<ph name="END_LIST_ITEM" />
-          <ph name="LIST_ITEM" />您在这部设备上的搜索记录<ph name="END_LIST_ITEM" />
-          <ph name="LIST_ITEM" />您在表单中填写过的信息<ph name="END_LIST_ITEM" />
-        <ph name="END_LIST" /></translation>
 <translation id="8332188693563227489">访问 <ph name="HOST_NAME" /> 的请求遭到拒绝</translation>
 <translation id="833262891116910667">突出显示</translation>
 <translation id="8339163506404995330">系统不会自动翻译源语言为<ph name="LANGUAGE" />的网页</translation>
@@ -2352,6 +2337,7 @@
 <translation id="8669306706049782872">使用您的屏幕的相关信息打开并放置窗口</translation>
 <translation id="867224526087042813">签名</translation>
 <translation id="8676424191133491403">无延迟</translation>
+<translation id="8679903780129190080">我同意</translation>
 <translation id="8680536109547170164"><ph name="QUERY" />,答案,<ph name="ANSWER" /></translation>
 <translation id="8681531050781943054">位于 <ph name="PAGE" /> 的网页无法加载,因为:</translation>
 <translation id="8685155993131031756">Prc-16K</translation>
diff --git a/components/strings/components_strings_zh-HK.xtb b/components/strings/components_strings_zh-HK.xtb
index 792b067f..34b3cc5 100644
--- a/components/strings/components_strings_zh-HK.xtb
+++ b/components/strings/components_strings_zh-HK.xtb
@@ -20,7 +20,6 @@
 <translation id="1038842779957582377">不明名稱</translation>
 <translation id="1041998700806130099">工作表訊息</translation>
 <translation id="1048785276086539861">在您編輯註解時,此文件將會返回單頁檢視模式</translation>
-<translation id="1049743911850919806">無痕模式</translation>
 <translation id="1050038467049342496">關閉其他應用程式</translation>
 <translation id="1055184225775184556">復原新增(&amp;U)</translation>
 <translation id="1056898198331236512">警告</translation>
@@ -212,6 +211,7 @@
 <translation id="1567040042588613346">此政策運作正常,但與其他地方設定的值相同,並已取代該值。</translation>
 <translation id="1569487616857761740">輸入到期日</translation>
 <translation id="1581080074034554886">信用卡驗證碼 (CVC)</translation>
+<translation id="1581767074483369314">註冊虛擬卡片</translation>
 <translation id="1583294866416602487">Plex</translation>
 <translation id="1583429793053364125">顯示此網頁時發生錯誤。</translation>
 <translation id="1586541204584340881">您已安裝的擴充程式</translation>
@@ -373,6 +373,7 @@
 <translation id="2101225219012730419">版本:</translation>
 <translation id="2102134110707549001">建議安全性強的密碼…</translation>
 <translation id="2102495993840063010">Android 應用程式</translation>
+<translation id="2106249949168291652">已儲存。要透過虛擬卡片進一步保護卡片的安全嗎?</translation>
 <translation id="2107021941795971877">列印支援</translation>
 <translation id="2108755909498034140">重新啟動您的電腦</translation>
 <translation id="2111166930115883695">按一下空格鍵即可開始遊戲</translation>
@@ -528,6 +529,7 @@
 <translation id="262745152991669301">可要求連接 USB 裝置</translation>
 <translation id="2629325967560697240">如要獲得 Chrome 最高程度的安全防護,請<ph name="BEGIN_ENHANCED_PROTECTION_LINK" />啟用強化保護功能<ph name="END_ENHANCED_PROTECTION_LINK" /></translation>
 <translation id="2634124572758952069">找不到 <ph name="HOST_NAME" /> 的伺服器 IP 位址。</translation>
+<translation id="2638001509205834345">要進一步保護卡片的安全嗎?</translation>
 <translation id="2639739919103226564">狀態:</translation>
 <translation id="264810637653812429">找不到任何兼容的裝置。</translation>
 <translation id="2649204054376361687"><ph name="COUNTRY" />,<ph name="CITY" /></translation>
@@ -660,6 +662,7 @@
 <translation id="3113284927548439113">第三批</translation>
 <translation id="3115874930288085374"><ph name="ENROLLMENT_DOMAIN" /> 要求您備份資料,並歸還此 <ph name="DEVICE_TYPE" />。</translation>
 <translation id="3116158981186517402">粘合</translation>
+<translation id="311958134571892113">已連結到</translation>
 <translation id="3120730422813725195">Elo</translation>
 <translation id="31207688938192855"><ph name="BEGIN_LINK" />嘗試執行連線診斷<ph name="END_LINK" />。</translation>
 <translation id="3121994479408824897">前往 <ph name="DOMAIN" /></translation>
@@ -732,12 +735,6 @@
 <translation id="3345782426586609320">眼</translation>
 <translation id="3355823806454867987">變更 Proxy 設定…</translation>
 <translation id="3360103848165129075">付款處理常式工作表</translation>
-<translation id="3361596688432910856">Chrome <ph name="BEGIN_EMPHASIS" />不會儲存<ph name="END_EMPHASIS" />以下資料:
-        <ph name="BEGIN_LIST" />
-          <ph name="LIST_ITEM" />您的瀏覽記錄
-          <ph name="LIST_ITEM" />Cookie 和網站資料
-          <ph name="LIST_ITEM" />在表格中輸入的資料
-        <ph name="END_LIST" /></translation>
 <translation id="3362968246557010467">此政策是從已淘汰的 <ph name="OLD_POLICY" /> 政策自動複製而來,請改用此政策。</translation>
 <translation id="3364869320075768271"><ph name="URL" /> 要求使用您的虛擬實境裝置和資料</translation>
 <translation id="3366477098757335611">查看付款卡</translation>
@@ -1212,12 +1209,6 @@
 <translation id="4819347708020428563">要在預設檢視模式中編輯註解嗎?</translation>
 <translation id="4825496307559726072"><ph name="CREATE_GOOGLE_SHEET_FOCUSED_FRIENDLY_MATCH_TEXT" />,㩒一下 Tab 鍵,然後㩒一下 Enter 鍵就可以快速建立新嘅 Google 試算表</translation>
 <translation id="4825507807291741242">強大</translation>
-<translation id="4827402517081186284">無痕模式不會令您在網絡上隱身:
-        <ph name="BEGIN_LIST" />
-          <ph name="LIST_ITEM" />網站會知道您在瀏覽<ph name="END_LIST_ITEM" />
-          <ph name="LIST_ITEM" />僱主或學校可以追蹤瀏覽活動<ph name="END_LIST_ITEM" />
-          <ph name="LIST_ITEM" />互聯網服務供應商可能會監察網絡流量<ph name="END_LIST_ITEM" />
-        <ph name="END_LIST" /></translation>
 <translation id="4829962028570902310">由於此政策只能透過雲端使用者政策設定,因此系統已忽略。</translation>
 <translation id="483241715238664915">開啟警告</translation>
 <translation id="4838327282952368871">夢幻</translation>
@@ -1787,7 +1778,6 @@
 <translation id="6757797048963528358">您的裝置已進入休眠狀態。</translation>
 <translation id="6767985426384634228">要更新地址嗎?</translation>
 <translation id="6768213884286397650">Hagaki (明信片)</translation>
-<translation id="6774185088257932239"><ph name="BEGIN_LINK" />進一步瞭解<ph name="END_LINK" />「無痕模式」</translation>
 <translation id="6775759552199460396">JIS B2</translation>
 <translation id="67862343314499040">紫羅蘭色</translation>
 <translation id="6786747875388722282">擴充功能</translation>
@@ -2267,12 +2257,6 @@
 <translation id="8317207217658302555">要更新 ARCore 嗎?</translation>
 <translation id="831997045666694187">傍晚</translation>
 <translation id="8321476692217554900">通知</translation>
-<translation id="8328484624016508118">關閉所有無痕式分頁後,Chrome 就會清除以下資料:
-        <ph name="BEGIN_LIST" />
-          <ph name="LIST_ITEM" />您的瀏覽活動<ph name="END_LIST_ITEM" />
-          <ph name="LIST_ITEM" />您的搜尋記錄<ph name="END_LIST_ITEM" />
-          <ph name="LIST_ITEM" />您在表格中輸入的資料<ph name="END_LIST_ITEM" />
-        <ph name="END_LIST" /></translation>
 <translation id="8332188693563227489"><ph name="HOST_NAME" /> 的存取被拒</translation>
 <translation id="833262891116910667">突顯嘅內容</translation>
 <translation id="8339163506404995330">系統將不會自動翻譯來源語言為<ph name="LANGUAGE" />的網頁</translation>
@@ -2356,6 +2340,7 @@
 <translation id="8669306706049782872">使用螢幕中的資料開啟及放置視窗</translation>
 <translation id="867224526087042813">簽名</translation>
 <translation id="8676424191133491403">不延遲</translation>
+<translation id="8679903780129190080">是,我同意</translation>
 <translation id="8680536109547170164"><ph name="QUERY" />,答案:<ph name="ANSWER" /></translation>
 <translation id="8681531050781943054">無法載入 <ph name="PAGE" /> 的網頁,原因如下:</translation>
 <translation id="8685155993131031756">Prc-16K</translation>
diff --git a/components/strings/components_strings_zh-TW.xtb b/components/strings/components_strings_zh-TW.xtb
index 4dd6ab4..48ed529 100644
--- a/components/strings/components_strings_zh-TW.xtb
+++ b/components/strings/components_strings_zh-TW.xtb
@@ -20,7 +20,6 @@
 <translation id="1038842779957582377">不明名稱</translation>
 <translation id="1041998700806130099">工作表訊息</translation>
 <translation id="1048785276086539861">這份文件會在你編輯註解時重設為單頁檢視</translation>
-<translation id="1049743911850919806">無痕模式</translation>
 <translation id="1050038467049342496">關閉其他應用程式</translation>
 <translation id="1055184225775184556">復原新增(&amp;U)</translation>
 <translation id="1056898198331236512">警告</translation>
@@ -212,6 +211,7 @@
 <translation id="1567040042588613346">這項政策運作正常,但與其他地方設定的值相同,並已取代該值。</translation>
 <translation id="1569487616857761740">輸入到期日</translation>
 <translation id="1581080074034554886">CVC</translation>
+<translation id="1581767074483369314">註冊虛擬卡片</translation>
 <translation id="1583294866416602487">Plex</translation>
 <translation id="1583429793053364125">顯示這個網頁時發生錯誤。</translation>
 <translation id="1586541204584340881">你安裝的擴充功能</translation>
@@ -373,6 +373,7 @@
 <translation id="2101225219012730419">版本:</translation>
 <translation id="2102134110707549001">建議高強度密碼…</translation>
 <translation id="2102495993840063010">Android 應用程式</translation>
+<translation id="2106249949168291652">已儲存。要透過虛擬卡片進一步保護卡片的安全嗎?</translation>
 <translation id="2107021941795971877">列印支援</translation>
 <translation id="2108755909498034140">重新啟動電腦</translation>
 <translation id="2111166930115883695">按下空格鍵即可開始遊戲</translation>
@@ -528,6 +529,7 @@
 <translation id="262745152991669301">可以要求連線至 USB 裝置</translation>
 <translation id="2629325967560697240">要獲得 Chrome 最高等級的安全防護,請<ph name="BEGIN_ENHANCED_PROTECTION_LINK" />啟用強化防護功能<ph name="END_ENHANCED_PROTECTION_LINK" /></translation>
 <translation id="2634124572758952069">找不到 <ph name="HOST_NAME" /> 的伺服器 IP 位址。</translation>
+<translation id="2638001509205834345">要進一步保護卡片的安全嗎?</translation>
 <translation id="2639739919103226564">狀態:</translation>
 <translation id="264810637653812429">找不到相容的裝置。</translation>
 <translation id="2649204054376361687"><ph name="COUNTRY" />,<ph name="CITY" /></translation>
@@ -660,6 +662,7 @@
 <translation id="3113284927548439113">第三批</translation>
 <translation id="3115874930288085374"><ph name="ENROLLMENT_DOMAIN" /> 要求你備份自己的資料並退還這部「<ph name="DEVICE_TYPE" />」。</translation>
 <translation id="3116158981186517402">裱貼</translation>
+<translation id="311958134571892113">已連結到</translation>
 <translation id="3120730422813725195">Elo</translation>
 <translation id="31207688938192855"><ph name="BEGIN_LINK" />嘗試執行連線診斷<ph name="END_LINK" />。</translation>
 <translation id="3121994479408824897">前往 <ph name="DOMAIN" /></translation>
@@ -732,12 +735,6 @@
 <translation id="3345782426586609320">眼睛</translation>
 <translation id="3355823806454867987">變更 Proxy 設定...</translation>
 <translation id="3360103848165129075">付款處理常式工作表</translation>
-<translation id="3361596688432910856">Chrome <ph name="BEGIN_EMPHASIS" />不會儲存<ph name="END_EMPHASIS" />下列資訊:
-        <ph name="BEGIN_LIST" />
-          <ph name="LIST_ITEM" />你的瀏覽記錄
-          <ph name="LIST_ITEM" />Cookie 和網站資料
-          <ph name="LIST_ITEM" />你在表單中輸入的資訊
-        <ph name="END_LIST" /></translation>
 <translation id="3362968246557010467">這項政策是從已淘汰的 <ph name="OLD_POLICY" /> 政策自動複製而來。請改用這項政策。</translation>
 <translation id="3364869320075768271"><ph name="URL" /> 要求使用你的虛擬實境裝置和資料</translation>
 <translation id="3366477098757335611">查看卡片</translation>
@@ -1213,12 +1210,6 @@
 <translation id="4819347708020428563">要在預設檢視中編輯註解嗎?</translation>
 <translation id="4825496307559726072"><ph name="CREATE_GOOGLE_SHEET_FOCUSED_FRIENDLY_MATCH_TEXT" />;按下 Tab 鍵再按下 Enter 鍵即可快速建立新的 Google 試算表</translation>
 <translation id="4825507807291741242">強大</translation>
-<translation id="4827402517081186284">無痕模式無法讓你在網路上不留痕跡:
-        <ph name="BEGIN_LIST" />
-          <ph name="LIST_ITEM" />網站會知道你在瀏覽<ph name="END_LIST_ITEM" />
-          <ph name="LIST_ITEM" />雇主或學校可以追蹤瀏覽活動<ph name="END_LIST_ITEM" />
-          <ph name="LIST_ITEM" />網際網路服務供應商可能會監控網路流量<ph name="END_LIST_ITEM" />
-        <ph name="END_LIST" /></translation>
 <translation id="4829962028570902310">由於這項政策只能透過雲端使用者政策加以設定,因此系統予以忽略。</translation>
 <translation id="483241715238664915">開啟警告</translation>
 <translation id="4838327282952368871">夢幻</translation>
@@ -1788,7 +1779,6 @@
 <translation id="6757797048963528358">您的裝置已進入睡眠模式。</translation>
 <translation id="6767985426384634228">要更新地址嗎?</translation>
 <translation id="6768213884286397650">Hagaki (明信片)</translation>
-<translation id="6774185088257932239"><ph name="BEGIN_LINK" />進一步瞭解<ph name="END_LINK" />無痕模式</translation>
 <translation id="6775759552199460396">JIS B2</translation>
 <translation id="67862343314499040">紫羅蘭色</translation>
 <translation id="6786747875388722282">擴充功能</translation>
@@ -2268,12 +2258,6 @@
 <translation id="8317207217658302555">要更新 ARCore 嗎?</translation>
 <translation id="831997045666694187">傍晚</translation>
 <translation id="8321476692217554900">通知</translation>
-<translation id="8328484624016508118">關閉所有無痕分頁後,Chrome 就會從這部裝置上清除下列資料:
-        <ph name="BEGIN_LIST" />
-          <ph name="LIST_ITEM" />你的瀏覽活動<ph name="END_LIST_ITEM" />
-          <ph name="LIST_ITEM" />你的搜尋記錄<ph name="END_LIST_ITEM" />
-          <ph name="LIST_ITEM" />你在表單中輸入的資訊<ph name="END_LIST_ITEM" />
-        <ph name="END_LIST" /></translation>
 <translation id="8332188693563227489">存取 <ph name="HOST_NAME" /> 的要求遭到拒絕</translation>
 <translation id="833262891116910667">醒目顯示</translation>
 <translation id="8339163506404995330">系統將不會翻譯<ph name="LANGUAGE" />網頁</translation>
@@ -2357,6 +2341,7 @@
 <translation id="8669306706049782872">使用畫面中的資訊開啟及放置視窗</translation>
 <translation id="867224526087042813">簽名</translation>
 <translation id="8676424191133491403">不延遲</translation>
+<translation id="8679903780129190080">是,我同意</translation>
 <translation id="8680536109547170164"><ph name="QUERY" />,答案:<ph name="ANSWER" /></translation>
 <translation id="8681531050781943054">無法載入位於 <ph name="PAGE" /> 的網頁,原因如下:</translation>
 <translation id="8685155993131031756">Prc-16K</translation>
diff --git a/components/strings/components_strings_zu.xtb b/components/strings/components_strings_zu.xtb
index b5edc0a..e42234e 100644
--- a/components/strings/components_strings_zu.xtb
+++ b/components/strings/components_strings_zu.xtb
@@ -20,7 +20,6 @@
 <translation id="1038842779957582377">igama elingaziwa</translation>
 <translation id="1041998700806130099">Umlayezo weshidi lomsebenzi</translation>
 <translation id="1048785276086539861">Lapho uhlela izichasiselo, le dokhumenti izobuyela ekuhloleni ikhasi kuqala okukodwa</translation>
-<translation id="1049743911850919806">I-Incognito</translation>
 <translation id="1050038467049342496">Vala ezinye izinhlelo zokusebenza</translation>
 <translation id="1055184225775184556">&amp;Hlehlisa ukungeza</translation>
 <translation id="1056898198331236512">Isexwayiso</translation>
@@ -734,12 +733,6 @@
 <translation id="3345782426586609320">Amehlo</translation>
 <translation id="3355823806454867987">Guqula izilungiselelo zommeleli...</translation>
 <translation id="3360103848165129075">Isidi lesibambi senkokhelo</translation>
-<translation id="3361596688432910856">I-Chrome <ph name="BEGIN_EMPHASIS" />ngeke ilondoloze<ph name="END_EMPHASIS" /> ulwazi olulandelayo:
-        <ph name="BEGIN_LIST" />
-          <ph name="LIST_ITEM" />Umlando wakho wokuphequlula
-          <ph name="LIST_ITEM" />Amakhukhi nedatha yesayithi
-          <ph name="LIST_ITEM" />Ulwazi olufakwe kumafomu
-        <ph name="END_LIST" /></translation>
 <translation id="3362968246557010467">Le nqubomgomo ikopishelwe ngokuzenzakalela kusukela kunqubomgomo ehoxisiwe ye-<ph name="OLD_POLICY" />. Kuzomele usebenzise le nqubomgomo kunalokho.</translation>
 <translation id="3364869320075768271">I-<ph name="URL" /> ifuna ukusebenzisa idivayisi yakho yento engekho ngokoqobo nedatha</translation>
 <translation id="3366477098757335611">Buka amakhadi</translation>
@@ -1219,12 +1212,6 @@
 <translation id="4819347708020428563">Hlela izichasiselo kukubuka kokuzenzakalelayo?</translation>
 <translation id="4825496307559726072"><ph name="CREATE_GOOGLE_SHEET_FOCUSED_FRIENDLY_MATCH_TEXT" />, cindezela u-Tab bese u-Enter ukuze udale i-Google Sheet entsha ngokushesha</translation>
 <translation id="4825507807291741242">Kunamandla</translation>
-<translation id="4827402517081186284">I-Incognito ayikwenzi ukuthi ubonakale ku-inthanethi:
-        <ph name="BEGIN_LIST" />
-          <ph name="LIST_ITEM" />Amasayithi ayabona lapho uwavakashela<ph name="END_LIST_ITEM" />
-          <ph name="LIST_ITEM" />Abaqashi noma izikole bangakwazi ukulandelela umsebenzi woku-browser<ph name="END_LIST_ITEM" />
-          <ph name="LIST_ITEM" />Abahlinzeki nge-inthanethi bangase bagade ithrafikhi yewebhu<ph name="END_LIST_ITEM" />
-        <ph name="END_LIST" /></translation>
 <translation id="4829962028570902310">Kuzitshwe ngenxa yokuthi inqubomgomo ikwazi ukusethwa kuphela yinqubomgomo yomsebenzisi we-cloud.</translation>
 <translation id="483241715238664915">Vula izexwayiso</translation>
 <translation id="4838327282952368871">I-Dreamy</translation>
@@ -1794,7 +1781,6 @@
 <translation id="6757797048963528358">Idivayisi yakho iye yalala.</translation>
 <translation id="6767985426384634228">Buyekeza Ikheli?</translation>
 <translation id="6768213884286397650">Hagaki (Postcard)</translation>
-<translation id="6774185088257932239"><ph name="BEGIN_LINK" />Funda kabanzi<ph name="END_LINK" /> mayelana ne-Incognito</translation>
 <translation id="6775759552199460396">I-JIS B2</translation>
 <translation id="67862343314499040">Okuvayolethi</translation>
 <translation id="6786747875388722282">Izandiso</translation>
@@ -2274,12 +2260,6 @@
 <translation id="8317207217658302555">Buyekeza i-ARCore?</translation>
 <translation id="831997045666694187">Kusihlwa</translation>
 <translation id="8321476692217554900">izaziso</translation>
-<translation id="8328484624016508118">Ngemva kokuvala wonke amathebhu we-Incognito, i-Chrome isula:
-        <ph name="BEGIN_LIST" />
-          <ph name="LIST_ITEM" />Umsebenzi wakho woku-browser kule divayisi<ph name="END_LIST_ITEM" />
-          <ph name="LIST_ITEM" />Umlando wakho wokusesha kule divayisi<ph name="END_LIST_ITEM" />
-          <ph name="LIST_ITEM" />Ulwazi olufakwe kumafomu<ph name="END_LIST_ITEM" />
-        <ph name="END_LIST" /></translation>
 <translation id="8332188693563227489">Ukufinyelela ku-<ph name="HOST_NAME" /> kunqatshelwe</translation>
 <translation id="833262891116910667">Gqamisa</translation>
 <translation id="8339163506404995330">Amakhasi ngesi-<ph name="LANGUAGE" /> ngeke ahumushwe</translation>
diff --git a/components/sync/README.md b/components/sync/README.md
new file mode 100644
index 0000000..fdd3bd0
--- /dev/null
+++ b/components/sync/README.md
@@ -0,0 +1,4 @@
+The component responsible for syncing user data to their account.  
+Docs are in [docs/website/site/developers/design-documents/sync/](https://source.chromium.org/chromium/chromium/src/+/main:docs/website/site/developers/design-documents/sync).  
+You can also visit them via
+[chromium.org](https://www.chromium.org/developers/design-documents/sync).
diff --git a/components/sync/protocol/OWNERS b/components/sync/protocol/OWNERS
index 82031314..dfb5bce5 100644
--- a/components/sync/protocol/OWNERS
+++ b/components/sync/protocol/OWNERS
@@ -2,4 +2,3 @@
 #       Don't use owners from higher-level folders, and *never* TBR changes!
 mastiz@chromium.org
 treib@chromium.org
-tschumann@chromium.org
diff --git a/components/sync_bookmarks/README.md b/components/sync_bookmarks/README.md
new file mode 100644
index 0000000..5cb33a1
--- /dev/null
+++ b/components/sync_bookmarks/README.md
@@ -0,0 +1 @@
+See components/sync/README.md.
diff --git a/components/sync_device_info/README.md b/components/sync_device_info/README.md
new file mode 100644
index 0000000..5cb33a1
--- /dev/null
+++ b/components/sync_device_info/README.md
@@ -0,0 +1 @@
+See components/sync/README.md.
diff --git a/components/sync_preferences/README.md b/components/sync_preferences/README.md
new file mode 100644
index 0000000..5cb33a1
--- /dev/null
+++ b/components/sync_preferences/README.md
@@ -0,0 +1 @@
+See components/sync/README.md.
diff --git a/components/sync_sessions/README.md b/components/sync_sessions/README.md
new file mode 100644
index 0000000..5cb33a1
--- /dev/null
+++ b/components/sync_sessions/README.md
@@ -0,0 +1 @@
+See components/sync/README.md.
diff --git a/components/sync_user_events/README.md b/components/sync_user_events/README.md
new file mode 100644
index 0000000..5cb33a1
--- /dev/null
+++ b/components/sync_user_events/README.md
@@ -0,0 +1 @@
+See components/sync/README.md.
diff --git a/components/user_manager/user_manager_base.cc b/components/user_manager/user_manager_base.cc
index d92e43ef..c9b8c21 100644
--- a/components/user_manager/user_manager_base.cc
+++ b/components/user_manager/user_manager_base.cc
@@ -513,15 +513,15 @@
   UpdateUserAccountLocale(account_id, account_data.locale());
 }
 
-void UserManagerBase::ParseUserList(const base::ListValue& users_list,
-                                    const std::set<AccountId>& existing_users,
-                                    std::vector<AccountId>* users_vector,
-                                    std::set<AccountId>* users_set) {
+void UserManagerBase::ParseUserList(
+    const base::Value::ConstListView& users_list,
+    const std::set<AccountId>& existing_users,
+    std::vector<AccountId>* users_vector,
+    std::set<AccountId>* users_set) {
   users_vector->clear();
   users_set->clear();
-  base::Value::ConstListView users_list_view = users_list.GetList();
-  for (size_t i = 0; i < users_list_view.size(); ++i) {
-    const std::string* email = users_list_view[i].GetIfString();
+  for (size_t i = 0; i < users_list.size(); ++i) {
+    const std::string* email = users_list[i].GetIfString();
     if (!email || email->empty()) {
       LOG(ERROR) << "Corrupt entry in user list at index " << i << ".";
       continue;
@@ -820,8 +820,8 @@
   // Load regular users and supervised users.
   std::vector<AccountId> regular_users;
   std::set<AccountId> regular_users_set;
-  ParseUserList(base::Value::AsListValue(*prefs_regular_users),
-                device_local_accounts_set, &regular_users, &regular_users_set);
+  ParseUserList(prefs_regular_users->GetList(), device_local_accounts_set,
+                &regular_users, &regular_users_set);
   for (std::vector<AccountId>::const_iterator it = regular_users.begin();
        it != regular_users.end(); ++it) {
     if (IsDeprecatedSupervisedAccountId(*it)) {
diff --git a/components/user_manager/user_manager_base.h b/components/user_manager/user_manager_base.h
index 48543083..857ee12 100644
--- a/components/user_manager/user_manager_base.h
+++ b/components/user_manager/user_manager_base.h
@@ -18,6 +18,7 @@
 #include "base/observer_list.h"
 #include "base/synchronization/lock.h"
 #include "base/time/time.h"
+#include "base/values.h"
 #include "components/account_id/account_id.h"
 #include "components/user_manager/remove_user_delegate.h"
 #include "components/user_manager/user.h"
@@ -28,7 +29,6 @@
 class PrefRegistrySimple;
 
 namespace base {
-class ListValue;
 class SingleThreadTaskRunner;
 }
 
@@ -155,11 +155,10 @@
   // not full initialized yet" flag.
   virtual void SetIsCurrentUserNew(bool is_new);
 
-  // TODO(crbug.com/1187062): Refactor this to remove use of ListValue.
   // Helper function that converts users from |users_list| to |users_vector| and
   // |users_set|. Duplicates and users already present in |existing_users| are
   // skipped.
-  void ParseUserList(const base::ListValue& users_list,
+  void ParseUserList(const base::Value::ConstListView& users_list,
                      const std::set<AccountId>& existing_users,
                      std::vector<AccountId>* users_vector,
                      std::set<AccountId>* users_set);
diff --git a/content/browser/accessibility/dump_accessibility_browsertest_base.cc b/content/browser/accessibility/dump_accessibility_browsertest_base.cc
index 4fb5b00..47496f20 100644
--- a/content/browser/accessibility/dump_accessibility_browsertest_base.cc
+++ b/content/browser/accessibility/dump_accessibility_browsertest_base.cc
@@ -314,7 +314,7 @@
 
   // Execute and wait for specified string
   for (const auto& function_name : scenario_.execute) {
-    VLOG(1) << "executing: " << function_name;
+    DLOG(INFO) << "executing: " << function_name;
     base::Value result =
         ExecuteScriptAndGetValue(web_contents->GetMainFrame(), function_name);
     const std::string& str = result.is_string() ? result.GetString() : "";
diff --git a/content/browser/accessibility/dump_accessibility_tree_browsertest.cc b/content/browser/accessibility/dump_accessibility_tree_browsertest.cc
index 0d86ac69..4778984b 100644
--- a/content/browser/accessibility/dump_accessibility_tree_browsertest.cc
+++ b/content/browser/accessibility/dump_accessibility_tree_browsertest.cc
@@ -1446,7 +1446,14 @@
   RunAriaTest(FILE_PATH_LITERAL("aria-tree.html"));
 }
 
-IN_PROC_BROWSER_TEST_P(DumpAccessibilityTreeTest, AccessibilityAriaTreeGrid) {
+// TODO(crbug.com/1291575): Fix this test on Windows 7.
+#if BUILDFLAG(IS_WIN)
+#define MAYBE_AccessibilityAriaTreeGrid DISABLED_AccessibilityAriaTreeGrid
+#else
+#define MAYBE_AccessibilityAriaTreeGrid AccessibilityAriaTreeGrid
+#endif
+IN_PROC_BROWSER_TEST_P(DumpAccessibilityTreeTest,
+                       MAYBE_AccessibilityAriaTreeGrid) {
   RunAriaTest(FILE_PATH_LITERAL("aria-treegrid.html"));
 }
 
diff --git a/content/browser/attribution_reporting/attribution_policy.cc b/content/browser/attribution_reporting/attribution_policy.cc
index 5b3182b1..bc50a0b 100644
--- a/content/browser/attribution_reporting/attribution_policy.cc
+++ b/content/browser/attribution_reporting/attribution_policy.cc
@@ -50,28 +50,10 @@
 
 AttributionPolicy::~AttributionPolicy() = default;
 
-bool AttributionPolicy::ShouldNoiseTriggerData() const {
-  return base::RandDouble() <= .05;
-}
-
-uint64_t AttributionPolicy::MakeNoisedTriggerData(uint64_t cardinality) const {
-  return base::RandGenerator(cardinality);
-}
-
 uint64_t AttributionPolicy::SanitizeTriggerData(
     uint64_t trigger_data,
     CommonSourceInfo::SourceType source_type) const {
   const uint64_t cardinality = TriggerDataCardinality(source_type);
-
-  // Add noise to the conversion when the value is first sanitized from a
-  // conversion registration event. This noised data will be used for all
-  // associated impressions that convert.
-  if (!debug_mode_ && ShouldNoiseTriggerData()) {
-    const uint64_t noised_data = MakeNoisedTriggerData(cardinality);
-    DCHECK_LT(noised_data, cardinality);
-    return noised_data;
-  }
-
   return trigger_data % cardinality;
 }
 
@@ -106,14 +88,14 @@
   if (debug_mode_)
     return absl::nullopt;
 
-  // Add uniform random noise in the range of [0, 5 minutes] to the report time.
+  // Add uniform random noise in the range of [0, 1 minutes] to the report time.
   // TODO(https://crbug.com/1075600): This delay is very conservative. Consider
   // increasing this delay once we can be sure reports are still sent at
   // reasonable times, and not delayed for many browser sessions due to short
   // session up-times.
   return OfflineReportDelayConfig{
       .min = base::Minutes(0),
-      .max = base::Minutes(5),
+      .max = base::Minutes(1),
   };
 }
 
@@ -151,7 +133,7 @@
   if (base::RandDouble() < randomized_response_probability) {
     // The 0 value is reserved for `kNever`, so we add 1 here and subtract it
     // later.
-    uint64_t r = MakeNoisedTriggerData(1 + TriggerDataCardinality(source_type));
+    uint64_t r = base::RandGenerator(1 + TriggerDataCardinality(source_type));
     if (r == 0)
       return AttributionMode(AttributionLogic::kNever);
 
diff --git a/content/browser/attribution_reporting/attribution_policy.h b/content/browser/attribution_reporting/attribution_policy.h
index cbb7b69..8475b7d 100644
--- a/content/browser/attribution_reporting/attribution_policy.h
+++ b/content/browser/attribution_reporting/attribution_policy.h
@@ -96,11 +96,6 @@
   AttributionMode GetAttributionMode(
       CommonSourceInfo::SourceType source_type) const;
 
- protected:
-  virtual bool ShouldNoiseTriggerData() const;
-
-  virtual uint64_t MakeNoisedTriggerData(uint64_t max) const;
-
  private:
   // Whether the API is running in debug mode. No noise or delay should be used.
   const bool debug_mode_;
diff --git a/content/browser/attribution_reporting/attribution_policy_unittest.cc b/content/browser/attribution_reporting/attribution_policy_unittest.cc
index 4f324d5..a938f6d 100644
--- a/content/browser/attribution_reporting/attribution_policy_unittest.cc
+++ b/content/browser/attribution_reporting/attribution_policy_unittest.cc
@@ -4,8 +4,6 @@
 
 #include "content/browser/attribution_reporting/attribution_policy.h"
 
-#include <memory>
-
 #include "base/time/time.h"
 #include "content/browser/attribution_reporting/attribution_test_utils.h"
 #include "content/browser/attribution_reporting/common_source_info.h"
@@ -20,70 +18,34 @@
     CommonSourceInfo::SourceType::kEvent,
 };
 
-class ConfigurableAttributionPolicy : public AttributionPolicy {
- public:
-  explicit ConfigurableAttributionPolicy(bool should_noise)
-      : should_noise_(should_noise) {}
-
- protected:
-  bool ShouldNoiseTriggerData() const override { return should_noise_; }
-
-  uint64_t MakeNoisedTriggerData(uint64_t max) const override { return 1; }
-
- private:
-  bool should_noise_;
-};
-
 }  // namespace
 
 TEST(AttributionPolicyTest, HighEntropyTriggerData_StrippedToLowerBits) {
-  std::unique_ptr<AttributionPolicy> policy =
-      std::make_unique<ConfigurableAttributionPolicy>(/*should_noise=*/false);
+  AttributionPolicy policy;
 
-  EXPECT_EQ(0u, policy->SanitizeTriggerData(
+  EXPECT_EQ(0u, policy.SanitizeTriggerData(
                     8, CommonSourceInfo::SourceType::kNavigation));
-  EXPECT_EQ(1u, policy->SanitizeTriggerData(
+  EXPECT_EQ(1u, policy.SanitizeTriggerData(
                     9, CommonSourceInfo::SourceType::kNavigation));
 
   EXPECT_EQ(
-      0u, policy->SanitizeTriggerData(2, CommonSourceInfo::SourceType::kEvent));
+      0u, policy.SanitizeTriggerData(2, CommonSourceInfo::SourceType::kEvent));
   EXPECT_EQ(
-      1u, policy->SanitizeTriggerData(3, CommonSourceInfo::SourceType::kEvent));
+      1u, policy.SanitizeTriggerData(3, CommonSourceInfo::SourceType::kEvent));
 }
 
 TEST(AttributionPolicyTest, LowEntropyTriggerData_Unchanged) {
-  std::unique_ptr<AttributionPolicy> policy =
-      std::make_unique<ConfigurableAttributionPolicy>(/*should_noise=*/false);
+  AttributionPolicy policy;
 
   for (uint64_t trigger_data = 0; trigger_data < 8; trigger_data++) {
     EXPECT_EQ(trigger_data,
-              policy->SanitizeTriggerData(
+              policy.SanitizeTriggerData(
                   trigger_data, CommonSourceInfo::SourceType::kNavigation));
   }
   for (uint64_t trigger_data = 0; trigger_data < 2; trigger_data++) {
     EXPECT_EQ(trigger_data,
-              policy->SanitizeTriggerData(
-                  trigger_data, CommonSourceInfo::SourceType::kEvent));
-  }
-}
-
-TEST(AttributionPolicyTest, SanitizeTriggerData_OutputHasNoise) {
-  // The policy should include noise when sanitizing data.
-  for (auto source_type : kSourceTypes) {
-    EXPECT_EQ(1LU, ConfigurableAttributionPolicy(/*should_noise=*/true)
-                       .SanitizeTriggerData(0UL, source_type));
-  }
-}
-
-// This test will fail flakily if noise is used.
-TEST(AttributionPolicyTest, DebugMode_TriggerDataNotNoised) {
-  const uint64_t trigger_data = 0UL;
-  for (auto source_type : kSourceTypes) {
-    for (int i = 0; i < 100; i++) {
-      EXPECT_EQ(trigger_data,
-                AttributionPolicy(/*debug_mode=*/true)
-                    .SanitizeTriggerData(trigger_data, source_type));
-    }
+              policy.SanitizeTriggerData(trigger_data,
+                                         CommonSourceInfo::SourceType::kEvent));
   }
 }
 
diff --git a/content/browser/renderer_host/navigation_request.cc b/content/browser/renderer_host/navigation_request.cc
index badcf2559..02bd332 100644
--- a/content/browser/renderer_host/navigation_request.cc
+++ b/content/browser/renderer_host/navigation_request.cc
@@ -6739,17 +6739,7 @@
 absl::optional<network::mojom::BlockedByResponseReason>
 NavigationRequest::EnforceCOEP() {
   // https://html.spec.whatwg.org/C/#check-a-navigation-response's-adherence-to-its-embedder-policy
-  // Spec should be updated:
-  // https://github.com/shivanigithub/fenced-frame/issues/11
-
-  // Fenced frames should be treated as an embedded frame, thus COEP must apply.
-  // Note: we only check the outer document for fenced frames, because it's
-  // unclear if other embedded cases like Portals should behave the same.
-  // TODO(https://crbug.com/1278207): add other embedded cases if needed.
-  RenderFrameHostImpl* const parent_frame =
-      GetNavigatingFrameType() == FrameType::kFencedFrameRoot
-          ? GetParentFrameOrOuterDocument()
-          : GetParentFrame();
+  auto* parent_frame = GetParentFrame();
   if (!parent_frame) {
     return absl::nullopt;
   }
diff --git a/content/browser/shared_storage/shared_storage_worklet_host.cc b/content/browser/shared_storage/shared_storage_worklet_host.cc
index 4bfe0f4..2c4f18de 100644
--- a/content/browser/shared_storage/shared_storage_worklet_host.cc
+++ b/content/browser/shared_storage/shared_storage_worklet_host.cc
@@ -102,8 +102,8 @@
 }
 
 void SharedStorageWorkletHost::SharedStorageSet(
-    const std::string& key,
-    const std::string& value,
+    const std::u16string& key,
+    const std::u16string& value,
     bool ignore_if_present,
     SharedStorageSetCallback callback) {
   DCHECK(add_module_state_ == AddModuleState::kInitiated);
@@ -114,8 +114,8 @@
 }
 
 void SharedStorageWorkletHost::SharedStorageAppend(
-    const std::string& key,
-    const std::string& value,
+    const std::u16string& key,
+    const std::u16string& value,
     SharedStorageAppendCallback callback) {
   DCHECK(add_module_state_ == AddModuleState::kInitiated);
 
@@ -125,7 +125,7 @@
 }
 
 void SharedStorageWorkletHost::SharedStorageDelete(
-    const std::string& key,
+    const std::u16string& key,
     SharedStorageDeleteCallback callback) {
   DCHECK(add_module_state_ == AddModuleState::kInitiated);
 
@@ -144,7 +144,7 @@
 }
 
 void SharedStorageWorkletHost::SharedStorageGet(
-    const std::string& key,
+    const std::u16string& key,
     SharedStorageGetCallback callback) {
   DCHECK(add_module_state_ == AddModuleState::kInitiated);
 
diff --git a/content/browser/shared_storage/shared_storage_worklet_host.h b/content/browser/shared_storage/shared_storage_worklet_host.h
index 9c8fb78..f1090368b 100644
--- a/content/browser/shared_storage/shared_storage_worklet_host.h
+++ b/content/browser/shared_storage/shared_storage_worklet_host.h
@@ -68,17 +68,17 @@
   void EnterKeepAliveOnDocumentDestroyed(KeepAliveFinishedCallback callback);
 
   // shared_storage_worklet::mojom::SharedStorageWorkletServiceClient.
-  void SharedStorageSet(const std::string& key,
-                        const std::string& value,
+  void SharedStorageSet(const std::u16string& key,
+                        const std::u16string& value,
                         bool ignore_if_present,
                         SharedStorageSetCallback callback) override;
-  void SharedStorageAppend(const std::string& key,
-                           const std::string& value,
+  void SharedStorageAppend(const std::u16string& key,
+                           const std::u16string& value,
                            SharedStorageAppendCallback callback) override;
-  void SharedStorageDelete(const std::string& key,
+  void SharedStorageDelete(const std::u16string& key,
                            SharedStorageDeleteCallback callback) override;
   void SharedStorageClear(SharedStorageClearCallback callback) override;
-  void SharedStorageGet(const std::string& key,
+  void SharedStorageGet(const std::u16string& key,
                         SharedStorageGetCallback callback) override;
   void SharedStorageKeys(
       mojo::PendingRemote<
diff --git a/content/public/test/dump_accessibility_test_helper.cc b/content/public/test/dump_accessibility_test_helper.cc
index 25448895..29d3d55 100644
--- a/content/public/test/dump_accessibility_test_helper.cc
+++ b/content/public/test/dump_accessibility_test_helper.cc
@@ -289,10 +289,10 @@
     const std::vector<std::string>& expected_lines) {
   // Output the test path to help anyone who encounters a failure and needs
   // to know where to look.
-  VLOG(1) << "Testing: "
-          << test_file_path.NormalizePathSeparatorsTo('/').LossyDisplayName();
-  VLOG(1) << "Expected output: "
-          << expected_file.NormalizePathSeparatorsTo('/').LossyDisplayName();
+  LOG(INFO) << "Testing: "
+            << test_file_path.NormalizePathSeparatorsTo('/').LossyDisplayName();
+  LOG(INFO) << "Expected output: "
+            << expected_file.NormalizePathSeparatorsTo('/').LossyDisplayName();
 
   // Perform a diff (or write the initial baseline).
   std::vector<int> diff_lines = DiffLines(expected_lines, actual_lines);
@@ -323,9 +323,9 @@
     // the end of the file when parsing the actual output from remote logs.
     diff += kMarkEndOfFile;
     diff += "\n";
-    VLOG(1) << "Diff:\n" << diff;
+    LOG(ERROR) << "Diff:\n" << diff;
   } else {
-    VLOG(1) << "Test output matches expectations.";
+    LOG(INFO) << "Test output matches expectations.";
   }
 
   if (base::CommandLine::ForCurrentProcess()->HasSwitch(
diff --git a/content/renderer/render_thread_impl.cc b/content/renderer/render_thread_impl.cc
index 03f9fac..f6574e1 100644
--- a/content/renderer/render_thread_impl.cc
+++ b/content/renderer/render_thread_impl.cc
@@ -619,8 +619,24 @@
   if (base::FeatureList::IsEnabled(features::kEarlyEstablishGpuChannel)) {
     gpu_->EstablishGpuChannel(
         base::BindOnce([](scoped_refptr<gpu::GpuChannelHost> host) {
-          if (host)
-            GetContentClient()->SetGpuInfo(host->gpu_info());
+          if (!host)
+            return;
+          GetContentClient()->SetGpuInfo(host->gpu_info());
+          const bool create_compositor_worker_context =
+              base::GetFieldTrialParamByFeatureAsBool(
+                  features::kEarlyEstablishGpuChannel,
+                  "CreateCompositorWorkerContext", false);
+          if (create_compositor_worker_context) {
+            // Similarly, establish the SharedCompositorWorkerContextProvider as
+            // it involves a sync call. PostTask() is used as this may be called
+            // from within SharedCompositorWorkerContextProvider(), in which
+            // case we don't want to trigger reeentrancy.
+            g_main_task_runner.Get()->PostTask(
+                FROM_HERE, base::BindOnce([] {
+                  RenderThreadImpl::current()
+                      ->SharedCompositorWorkerContextProvider();
+                }));
+          }
         }));
   }
 
diff --git a/content/services/shared_storage_worklet/public/mojom/shared_storage_worklet_service.mojom b/content/services/shared_storage_worklet/public/mojom/shared_storage_worklet_service.mojom
index 37ade14..f2903c4 100644
--- a/content/services/shared_storage_worklet/public/mojom/shared_storage_worklet_service.mojom
+++ b/content/services/shared_storage_worklet/public/mojom/shared_storage_worklet_service.mojom
@@ -4,6 +4,7 @@
 
 module shared_storage_worklet.mojom;
 
+import "mojo/public/mojom/base/string16.mojom";
 import "mojo/public/mojom/base/time.mojom";
 import "services/network/public/mojom/url_loader_factory.mojom";
 import "url/mojom/origin.mojom";
@@ -13,8 +14,8 @@
 // would unify the handling for different type of iterators, such as for
 // sharedStorage.keys() and for sharedStorage.entries().
 struct SharedStorageKeyAndOrValue {
-  string key;
-  string value;
+  mojo_base.mojom.String16 key;
+  mojo_base.mojom.String16 value;
 };
 
 // Used by the SharedStorageWorkletServiceClient receiver (i.e. the worklet
@@ -36,16 +37,19 @@
  // Handle sharedStorage.set(): set `key`’s entry to `value`. If
   // `ignoreIfPresent` is true, the entry is not updated if `key` already
   // exists.
-  SharedStorageSet(string key, string value, bool ignore_if_present)
+  SharedStorageSet(mojo_base.mojom.String16 key,
+                   mojo_base.mojom.String16 value,
+                   bool ignore_if_present)
     => (bool success, string error_message);
 
   // Handle sharedStorage.append(): append `value` to the entry for `key`.
   // Equivalent to "set" if the `key` is not present.
-  SharedStorageAppend(string key, string value)
+  SharedStorageAppend(mojo_base.mojom.String16 key,
+                      mojo_base.mojom.String16 value)
     => (bool success, string error_message);
 
   // Handle sharedStorage.delete(): delete the entry at the given `key`.
-  SharedStorageDelete(string key)
+  SharedStorageDelete(mojo_base.mojom.String16 key)
     => (bool success, string error_message);
 
   // Handle sharedStorage.clear(): delete all entries.
@@ -54,8 +58,8 @@
 
   // Handle sharedStorage.get(): get the entry at `key`, or an empty string if
   // `key` is not present.
-  SharedStorageGet(string key)
-    => (bool success, string error_message, string value);
+  SharedStorageGet(mojo_base.mojom.String16 key)
+    => (bool success, string error_message, mojo_base.mojom.String16 value);
 
   // Returns (potentially in batches) the keys of the shared storage.
   SharedStorageKeys(pending_remote<SharedStorageEntriesListener> listener);
diff --git a/content/services/shared_storage_worklet/shared_storage.cc b/content/services/shared_storage_worklet/shared_storage.cc
index cbee729c..9f00e77 100644
--- a/content/services/shared_storage_worklet/shared_storage.cc
+++ b/content/services/shared_storage_worklet/shared_storage.cc
@@ -46,7 +46,7 @@
 
   v8::Local<v8::Promise> promise = resolver->GetPromise();
 
-  std::string arg0_key;
+  std::u16string arg0_key;
   if (!args->GetNext(&arg0_key)) {
     resolver
         ->Reject(
@@ -58,7 +58,7 @@
     return promise;
   }
 
-  std::string arg1_value;
+  std::u16string arg1_value;
   if (!args->GetNext(&arg1_value)) {
     resolver
         ->Reject(
@@ -106,7 +106,7 @@
 
   v8::Local<v8::Promise> promise = resolver->GetPromise();
 
-  std::string arg0_key;
+  std::u16string arg0_key;
   if (!args->GetNext(&arg0_key)) {
     resolver
         ->Reject(args->GetHolderCreationContext(),
@@ -117,7 +117,7 @@
     return promise;
   }
 
-  std::string arg1_value;
+  std::u16string arg1_value;
   if (!args->GetNext(&arg1_value)) {
     resolver
         ->Reject(args->GetHolderCreationContext(),
@@ -146,7 +146,7 @@
 
   v8::Local<v8::Promise> promise = resolver->GetPromise();
 
-  std::string arg0_key;
+  std::u16string arg0_key;
   if (!args->GetNext(&arg0_key)) {
     resolver
         ->Reject(args->GetHolderCreationContext(),
@@ -191,7 +191,7 @@
 
   v8::Local<v8::Promise> promise = resolver->GetPromise();
 
-  std::string arg0_key;
+  std::u16string arg0_key;
   if (!args->GetNext(&arg0_key)) {
     resolver
         ->Reject(
@@ -263,13 +263,13 @@
     v8::Global<v8::Promise::Resolver> global_resolver,
     bool success,
     const std::string& error_message,
-    const std::string& result) {
+    const std::u16string& result) {
   WorkletV8Helper::HandleScope scope(isolate);
   v8::Local<v8::Promise::Resolver> resolver = global_resolver.Get(isolate);
   v8::Local<v8::Context> context = resolver->GetCreationContextChecked();
 
   if (success) {
-    resolver->Resolve(context, gin::StringToV8(isolate, result)).ToChecked();
+    resolver->Resolve(context, gin::ConvertToV8(isolate, result)).ToChecked();
     return;
   }
 
diff --git a/content/services/shared_storage_worklet/shared_storage.h b/content/services/shared_storage_worklet/shared_storage.h
index f7c15f0..45e2f10 100644
--- a/content/services/shared_storage_worklet/shared_storage.h
+++ b/content/services/shared_storage_worklet/shared_storage.h
@@ -49,7 +49,7 @@
       v8::Global<v8::Promise::Resolver> global_resolver,
       bool success,
       const std::string& error_message,
-      const std::string& result);
+      const std::u16string& result);
 
   void OnLengthOperationFinished(
       v8::Isolate* isolate,
diff --git a/content/services/shared_storage_worklet/shared_storage_iterator.cc b/content/services/shared_storage_worklet/shared_storage_iterator.cc
index 7abf65e..04f6da8 100644
--- a/content/services/shared_storage_worklet/shared_storage_iterator.cc
+++ b/content/services/shared_storage_worklet/shared_storage_iterator.cc
@@ -151,10 +151,11 @@
 
   switch (mode_) {
     case Mode::kKey:
-      dict.Set<std::string>("value", entry->key);
+      dict.Set<std::u16string>("value", entry->key);
       break;
     case Mode::kKeyValue:
-      dict.Set<std::vector<std::string>>("value", {entry->key, entry->value});
+      dict.Set<std::vector<std::u16string>>("value",
+                                            {entry->key, entry->value});
       break;
   }
   return obj;
diff --git a/content/services/shared_storage_worklet/shared_storage_worklet_global_scope_unittest.cc b/content/services/shared_storage_worklet/shared_storage_worklet_global_scope_unittest.cc
index 80b1b07..45ad080 100644
--- a/content/services/shared_storage_worklet/shared_storage_worklet_global_scope_unittest.cc
+++ b/content/services/shared_storage_worklet/shared_storage_worklet_global_scope_unittest.cc
@@ -19,7 +19,8 @@
 namespace {
 
 std::vector<shared_storage_worklet::mojom::SharedStorageKeyAndOrValuePtr>
-CreateBatchResult(std::vector<std::pair<std::string, std::string>> input) {
+CreateBatchResult(
+    std::vector<std::pair<std::u16string, std::u16string>> input) {
   std::vector<shared_storage_worklet::mojom::SharedStorageKeyAndOrValuePtr>
       result;
   for (const auto& p : input) {
@@ -53,8 +54,8 @@
 }
 
 struct SetParams {
-  std::string key;
-  std::string value;
+  std::u16string key;
+  std::u16string value;
   bool ignore_if_present;
 };
 
@@ -64,8 +65,8 @@
   explicit TestClient(scoped_refptr<base::SingleThreadTaskRunner> task_runner)
       : task_runner_(task_runner) {}
 
-  void SharedStorageSet(const std::string& key,
-                        const std::string& value,
+  void SharedStorageSet(const std::u16string& key,
+                        const std::u16string& value,
                         bool ignore_if_present,
                         SharedStorageSetCallback callback) override {
     observed_set_params_.push_back({key, value, ignore_if_present});
@@ -77,8 +78,8 @@
         }));
   }
 
-  void SharedStorageAppend(const std::string& key,
-                           const std::string& value,
+  void SharedStorageAppend(const std::u16string& key,
+                           const std::u16string& value,
                            SharedStorageAppendCallback callback) override {
     task_runner_->PostTask(
         FROM_HERE,
@@ -89,12 +90,12 @@
         }));
   }
 
-  void SharedStorageDelete(const std::string& key,
+  void SharedStorageDelete(const std::u16string& key,
                            SharedStorageDeleteCallback callback) override {}
 
   void SharedStorageClear(SharedStorageClearCallback callback) override {}
 
-  void SharedStorageGet(const std::string& key,
+  void SharedStorageGet(const std::u16string& key,
                         SharedStorageGetCallback callback) override {
     task_runner_->PostTask(
         FROM_HERE,
@@ -102,7 +103,7 @@
           std::move(callback).Run(
               /*success=*/true,
               /*error_message=*/{},
-              /*value=*/"test-value");
+              /*value=*/u"test-value");
         }));
   }
 
@@ -255,7 +256,6 @@
   EXPECT_EQ(GetTypeOf("registerURLSelectionOperation"), "function");
   EXPECT_EQ(GetTypeOf("registerOperation"), "function");
   EXPECT_EQ(GetTypeOf("sharedStorage"), "object");
-  EXPECT_EQ(GetTypeOf("sharedStorage"), "object");
   EXPECT_EQ(GetTypeOf("sharedStorage.set"), "function");
   EXPECT_EQ(GetTypeOf("sharedStorage.append"), "function");
   EXPECT_EQ(GetTypeOf("sharedStorage.delete"), "function");
@@ -983,8 +983,8 @@
   }
 
   EXPECT_EQ(test_client()->observed_set_params().size(), 1u);
-  EXPECT_EQ(test_client()->observed_set_params()[0].key, "key");
-  EXPECT_EQ(test_client()->observed_set_params()[0].value, "value");
+  EXPECT_EQ(test_client()->observed_set_params()[0].key, u"key");
+  EXPECT_EQ(test_client()->observed_set_params()[0].value, u"value");
   EXPECT_FALSE(test_client()->observed_set_params()[0].ignore_if_present);
 }
 
@@ -1001,8 +1001,8 @@
   }
 
   EXPECT_EQ(test_client()->observed_set_params().size(), 1u);
-  EXPECT_EQ(test_client()->observed_set_params()[0].key, "key");
-  EXPECT_EQ(test_client()->observed_set_params()[0].value, "value");
+  EXPECT_EQ(test_client()->observed_set_params()[0].key, u"key");
+  EXPECT_EQ(test_client()->observed_set_params()[0].value, u"value");
   EXPECT_TRUE(test_client()->observed_set_params()[0].ignore_if_present);
 }
 
@@ -1169,7 +1169,7 @@
 
   remote_listener->DidReadEntries(
       /*success=*/true, /*error_message=*/{},
-      CreateBatchResult({{"key0", "value0"}}),
+      CreateBatchResult({{u"key0", u"value0"}}),
       /*has_more_entries=*/true);
   task_environment_.RunUntilIdle();
 
@@ -1179,7 +1179,7 @@
 
   remote_listener->DidReadEntries(
       /*success=*/true, /*error_message=*/{},
-      CreateBatchResult({{"key1", "value1"}, {"key2", "value2"}}),
+      CreateBatchResult({{u"key1", u"value1"}, {u"key2", u"value2"}}),
       /*has_more_entries=*/false);
   task_environment_.RunUntilIdle();
 
@@ -1209,7 +1209,7 @@
 
   remote_listener->DidReadEntries(
       /*success=*/true, /*error_message=*/{},
-      CreateBatchResult({{"key0", "value0"}}),
+      CreateBatchResult({{u"key0", u"value0"}}),
       /*has_more_entries=*/true);
   task_environment_.RunUntilIdle();
 
@@ -1253,7 +1253,7 @@
   // It's harmless to still send the `value` field. They will simply be ignored.
   remote_listener->DidReadEntries(
       /*success=*/true, /*error_message=*/{},
-      CreateBatchResult({{"key0", "value0"}, {"key1", "value1"}}),
+      CreateBatchResult({{u"key0", u"value0"}, {u"key1", u"value1"}}),
       /*has_more_entries=*/false);
   task_environment_.RunUntilIdle();
 
@@ -1296,7 +1296,7 @@
 
   remote_listener->DidReadEntries(
       /*success=*/true, /*error_message=*/{},
-      CreateBatchResult({{"key0", /*value=*/{}}}),
+      CreateBatchResult({{u"key0", /*value=*/{}}}),
       /*has_more_entries=*/true);
   task_environment_.RunUntilIdle();
 
@@ -1305,7 +1305,7 @@
 
   remote_listener->DidReadEntries(
       /*success=*/true, /*error_message=*/{},
-      CreateBatchResult({{"key1", /*value=*/{}}, {"key2", /*value=*/{}}}),
+      CreateBatchResult({{u"key1", /*value=*/{}}, {u"key2", /*value=*/{}}}),
       /*has_more_entries=*/true);
   task_environment_.RunUntilIdle();
 
@@ -1316,7 +1316,7 @@
 
   remote_listener->DidReadEntries(
       /*success=*/true, /*error_message=*/{},
-      CreateBatchResult({{"key3", /*value=*/{}}}),
+      CreateBatchResult({{u"key3", /*value=*/{}}}),
       /*has_more_entries=*/false);
   task_environment_.RunUntilIdle();
 
diff --git a/docs/README.md b/docs/README.md
index 16bf8f2d..4eee5a2a 100644
--- a/docs/README.md
+++ b/docs/README.md
@@ -144,10 +144,8 @@
     renderer to the screen.
 *   [Using the Origin Trials Framework](origin_trials_integration.md) - A
     framework for conditionally enabling experimental APIs for testing.
-*   [`ClientTagBasedModelTypeProcessor` in Unified Sync and Storage](sync/uss/client_tag_based_model_type_processor.md) -
-    Notes on the central data structure used in Chrome Sync.
-*   [Chrome Sync's Model API](sync/model_api.md) - Data models used for syncing
-    information across devices using Chrome Sync.
+*   [Chrome Sync](https://source.chromium.org/chromium/chromium/src/+/main:docs/website/site/developers/design-documents/sync) -
+    Docs for the subsystem that allows one to sync data across devices.
 *   [Ozone Overview](ozone_overview.md) - Ozone is an abstraction layer between
     the window system and low level input and graphics.
 *   [Optimizing Chrome Web UIs](optimizing_web_uis.md) - Notes on making webuis
diff --git a/docs/sync/DIR_METADATA b/docs/sync/DIR_METADATA
deleted file mode 100644
index 6ae00c05..0000000
--- a/docs/sync/DIR_METADATA
+++ /dev/null
@@ -1,12 +0,0 @@
-# Metadata information for this directory.
-#
-# For more information on DIR_METADATA files, see:
-#   https://source.chromium.org/chromium/infra/infra/+/main:go/src/infra/tools/dirmd/README.md
-#
-# For the schema of this file, see Metadata message:
-#   https://source.chromium.org/chromium/infra/infra/+/main:go/src/infra/tools/dirmd/proto/dir_metadata.proto
-
-monorail {
-  component: "Services>Sync"
-}
-team_email: "chromium-reviews@chromium.org"
\ No newline at end of file
diff --git a/docs/sync/model_api.md b/docs/sync/model_api.md
deleted file mode 100644
index 7905ccf..0000000
--- a/docs/sync/model_api.md
+++ /dev/null
@@ -1,302 +0,0 @@
-# Chrome Sync's Model API
-
-Chrome Sync operates on discrete, explicitly defined model types (bookmarks,
-preferences, tabs, etc). These model types are individually responsible for
-implementing their own local storage and responding to remote changes. This
-guide is for developers interested in syncing data for their model type to the
-cloud using Chrome Sync. It describes the newest version of the API, known as
-Unified Sync and Storage (USS). There is also the deprecated [SyncableService
-API] (aka Directory), which as of mid-2019 is still used by several legacy model
-types, but "wrapped into" USS (see [SyncableServiceBasedBridge]).
-
-[SyncableService API]: https://www.chromium.org/developers/design-documents/sync/syncable-service-api
-[SyncableServiceBasedBridge]: https://cs.chromium.org/chromium/src/components/sync/model/syncable_service_based_bridge.h
-
-[TOC]
-
-## Overview
-
-To correctly sync data, USS requires that sync metadata be stored alongside your
-model data in a way such that they are written together atomically. **This is
-very important!** Sync must be able to update the metadata for any local data
-changes as part of the same write to disk. If you attempt to write data to disk
-and only notify sync afterwards, a crash in between the two writes can result in
-changes being dropped and never synced to the server, or data being duplicated
-due to being committed more than once.
-
-[`ModelTypeSyncBridge`][Bridge] is the interface the model code must implement.
-The bridge is usually owned by a [`KeyedService`][KeyedService].
-The correct place for the bridge generally lies as close to where your model
-data is stored as possible, as the bridge needs to be able to inject metadata
-updates into any local data changes that occur.
-
-The bridge owns a [`ModelTypeChangeProcessor`][MTCP] object, which it uses to
-communicate local changes to sync using the `Put` and `Delete` methods.
-The processor will communicate remote changes from sync to the bridge using the
-`MergeSyncData` and `ApplySyncChanges` methods, respectively for the initial
-merge of remote and local data, and for incremental changes coming from sync.
-[`MetadataChangeList`][MCL] is the way sync communicates metadata changes to the
-storage mechanism. Note that it is typically implemented on a per-storage basis,
-not a per-type basis.
-
-[Bridge]: https://cs.chromium.org/chromium/src/components/sync/model/model_type_sync_bridge.h
-[KeyedService]: https://cs.chromium.org/chromium/src/components/keyed_service/core/keyed_service.h
-[MTCP]: https://cs.chromium.org/chromium/src/components/sync/model/model_type_change_processor.h
-[MCL]: https://cs.chromium.org/chromium/src/components/sync/model/metadata_change_list.h
-
-## Data
-
-### Specifics
-
-Model types will define a proto that contains the necessary fields of the
-corresponding native type (e.g. [`TypedUrlSpecifics`][TypedUrlSpecifics]
-contains a URL and a list of visit timestamps) and include it as a field in the
-generic [`EntitySpecifics`][EntitySpecifics] proto. This is the form that all
-communications with sync will use. This proto form of the model data is referred
-to as the specifics.
-
-[TypedUrlSpecifics]: https://cs.chromium.org/chromium/src/components/sync/protocol/typed_url_specifics.proto
-[EntitySpecifics]: https://cs.chromium.org/search/?q="message+EntitySpecifics"+file:sync.proto
-
-### Identifiers
-
-There are two primary identifiers for entities: **storage key** and **client
-tag**. The bridge will need to take an [`EntityData`][EntityData] object (which
-contains the specifics) and be able generate both of these from it. For
-non-legacy types without significant performance concerns, these will generally
-be the same.
-
-The storage key is meant to be the primary key in the local model/database.
-It’s what’s used to refer to entities most of the time and, as its name implies,
-the bridge needs to be able to look up local data and metadata entries in the
-store using it. Because it is a local identifier, it can change as part of
-database migrations, etc. This may be desirable for efficiency reasons.
-
-The client tag is used to generate the **client tag hash**, which will identify
-entities **across clients**. This means that its implementation can **never
-change** once entities have begun to sync, without risking massive duplication
-of entities. This means it must be generated using only immutable data in the
-specifics. If your type does not have any immutable fields to use, you will need
-to add one (e.g. a GUID, though be wary as they have the potential to conflict).
-While the hash gets written to disk as part of the metadata, the tag itself is
-never persisted locally.
-
-[EntityData]: https://cs.chromium.org/chromium/src/components/sync/protocol/entity_data.h
-
-## Storage
-
-A crucial requirement of USS is that the model must add support for keeping
-sync’s metadata in the same storage as its normal data. The metadata consists of
-one [`EntityMetadata`][EntityMetadata] proto for each data entity, and one
-[`ModelTypeState`][ModelTypeState] proto containing metadata pertaining to the
-state of the entire type (the progress marker, for example). This typically
-requires two extra tables in a database to do (one for each type of proto).
-
-Since the processor doesn’t know anything about the store, the bridge provides
-it with an implementation of the [`MetadataChangeList`][MCL] interface. The
-change processor writes metadata through this interface when changes occur, and
-the bridge simply has to ensure it gets passed along to the store and written
-along with the data changes.
-
-[EntityMetadata]: https://cs.chromium.org/chromium/src/components/sync/protocol/entity_metadata.proto
-[ModelTypeState]: https://cs.chromium.org/chromium/src/components/sync/protocol/model_type_state.proto
-
-### ModelTypeStore
-
-While the model type may store its data however it chooses, many types use
-[`ModelTypeStore`][Store], which was created specifically to provide a
-convenient persistence solution. It’s backed by a [LevelDB] to store serialized
-protos to disk. `ModelTypeStore` provides two `MetadataChangeList`
-implementations for convenience; both accessed via
-[`ModelTypeStore::WriteBatch`][WriteBatch]. One passes metadata changes directly
-into an existing `WriteBatch` and another caches them in memory until a
-`WriteBatch` exists to consume them.
-
-The store interface abstracts away the type and will handle setting up tables
-for the type’s data, so multiple `ModelTypeStore` objects for different types
-can share the same LevelDB backend just by specifying the same path and task
-runner. Sync already has a backend it uses for DeviceInfo that can be shared by
-other types via the [`ModelTypeStoreService`][StoreService].
-
-[Store]: https://cs.chromium.org/chromium/src/components/sync/model/model_type_store.h
-[LevelDB]: https://github.com/google/leveldb/blob/master/doc/index.md
-[WriteBatch]: https://cs.chromium.org/search/?q="class+WriteBatch"+file:model_type_store_base.h
-[StoreService]: https://cs.chromium.org/chromium/src/components/sync/model/model_type_store_service.h
-
-## Implementing ModelTypeSyncBridge
-
-### Initialization
-
-The bridge is required to load all of the metadata for its type from storage and
-provide it to the processor via the [`ModelReadyToSync`][ModelReadyToSync]
-method **before any local changes occur**. This can be tricky if the thread the
-bridge runs on is different from the storage mechanism. No data will be synced
-with the server if the processor is never informed that the model is ready.
-
-Since the tracking of changes and updating of metadata is completely
-independent, there is no need to wait for the sync engine to start before
-changes can be made. This prevents the need for an expensive association step in
-the initialization.
-
-[ModelReadyToSync]: https://cs.chromium.org/search/?q=ModelReadyToSync+file:/model_type_change_processor.h
-
-### MergeSyncData
-
-This method is called only once, when a type is first enabled. Sync will
-download all the data it has for the type from the server and provide it to the
-bridge using this method. Sync filters out any tombstones for this call, so
-`EntityData::is_deleted()` will never be true for the provided entities. The
-bridge must then examine the sync data and the local data and merge them
-together:
-
-*   Any remote entities that don’t exist locally must be be written to local
-    storage.
-*   Any local entities that don’t exist remotely must be provided to sync via
-    [`ModelTypeChangeProcessor::Put`][Put].
-*   Any entities that appear in both sets must be merged and the model and sync
-    informed accordingly. Decide which copy of the data to use (or a merged
-    version or neither) and update the local store and sync as necessary to
-    reflect the decision. How the decision is made can vary by model type.
-
-The [`MetadataChangeList`][MCL] passed into the function is already populated
-with metadata for all the data passed in (note that neither the data nor the
-metadata have been committed to storage yet at this point). It must be given to
-the processor for any `Put` or `Delete` calls so the relevant metadata can be
-added/updated/deleted, and then passed to the store for persisting along with
-the data.
-
-Note that if sync gets disabled and the metadata cleared, entities that
-originated from other clients will exist as “local” entities the next time sync
-starts and merge is called. Since tombstones are not provided for merge, this
-can result in reviving the entity if it had been deleted on another client in
-the meantime.
-
-[Put]: https://cs.chromium.org/search/?q=Put+file:/model_type_change_processor.h
-
-### ApplySyncChanges
-
-While `MergeSyncData` provides the state of sync data using `EntityData`
-objects, `ApplySyncChanges` provides changes to the state using
-[`EntityChange`][EntityChange] objects. These changes must be applied to the
-local state.
-
-Here’s an example implementation of a type using `ModelTypeStore`:
-
-```cpp
-absl::optional<ModelError> DeviceInfoSyncBridge::ApplySyncChanges(
-    std::unique_ptr<MetadataChangeList> metadata_change_list,
-    EntityChangeList entity_changes) {
-  std::unique_ptr<WriteBatch> batch = store_->CreateWriteBatch();
-  for (const EntityChange& change : entity_changes) {
-    if (change.type() == EntityChange::ACTION_DELETE) {
-      batch->DeleteData(change.storage_key());
-    } else {
-      batch->WriteData(change.storage_key(),
-                       change.data().specifics.your_type().SerializeAsString());
-    }
-  }
-
-  batch->TakeMetadataChangesFrom(std::move(metadata_change_list));
-  store_->CommitWriteBatch(std::move(batch), base::BindOnce(...));
-  NotifyModelOfChanges();
-  return {};
-}
-```
-
-A conflict can occur when an entity has a pending local commit when an update
-for the same entity comes from another client. In this case, the bridge’s
-[`ResolveConflict`][ResolveConflict] method will have been called prior to the
-`ApplySyncChanges` call in order to determine what should happen. This method
-defaults to having the remote version overwrite the local version unless the
-remote version is a tombstone, in which case the local version wins.
-
-[EntityChange]: https://cs.chromium.org/chromium/src/components/sync/model/entity_change.h
-[ResolveConflict]: https://cs.chromium.org/search/?q=ResolveConflict+file:/model_type_sync_bridge.h
-
-### Local changes
-
-The [`ModelTypeChangeProcessor`][MTCP] must be informed of any local changes via
-its `Put` and `Delete` methods. Since the processor cannot do any useful
-metadata tracking until `MergeSyncData` is called, the `IsTrackingMetadata`
-method is provided. It can be checked as an optimization to prevent unnecessary
-processing preparing the parameters to a `Put` or `Delete` call.
-
-Here’s an example of handling a local write using `ModelTypeStore`:
-
-```cpp
-void WriteLocalChange(std::string key, ModelData data) {
-  std::unique_ptr<WriteBatch> batch = store_->CreateWriteBatch();
-  if (change_processor()->IsTrackingMetadata()) {
-    change_processor()->Put(key, ModelToEntityData(data),
-                            batch->GetMetadataChangeList());
-  }
-  batch->WriteData(key, data.specifics->SerializeAsString());
-  store_->CommitWriteBatch(std::move(batch), base::BindOnce(...));
-}
-```
-
-## Error handling
-
-If any errors occur during store operations that could compromise the
-consistency of the data and metadata, the processor’s
-[`ReportError`][ReportError] method should be called. The only exception to this
-is errors during `MergeSyncData` or `ApplySyncChanges`, which should just return
-a [`ModelError`][ModelError].
-
-This will inform sync of the error, which will stop all communications with the
-server so bad data doesn’t get synced. Since the metadata might no longer be
-valid, the bridge will asynchronously receive an `ApplyStopSyncChanges` call
-with a non-null `MetadataChangeList` parameter. All the metadata will be cleared
-from the store (if possible), and the type will be started again from scratch on
-the next client restart.
-
-[ReportError]: https://cs.chromium.org/search/?q=ReportError+file:/model_type_change_processor.h
-[ModelError]: https://cs.chromium.org/chromium/src/components/sync/model/model_error.h
-
-## Sync Integration Checklist
-
-*   Define your specifics proto in [`//components/sync/protocol/`][protocol].
-*   Add a field for it to [`EntitySpecifics`][EntitySpecifics].
-*   Add it to the [`ModelType`][ModelType] enum and
-    [`kModelTypeInfoMap`][info_map].
-*   Add it to the [proto value conversions][conversions] files.
-*   Register a [`ModelTypeController`][ModelTypeController] for your type in
-    [`SyncApiComponentFactoryImpl::CreateCommonDataTypeControllers`][CreateCommonDataTypeControllers] or platform-specific equivalent in
-    [`ChromeSyncClient::CreateDataTypeControllers`][CreateDataTypeControllers].
-*   Add your KeyedService dependency to
-    [`SyncServiceFactory`][SyncServiceFactory].
-*   Add an field for encrypted data to [`NigoriSpecifics`][NigoriSpecifics].
-*   If your type should have its own toggle in sync settings, add an entry to
-    the [`UserSelectableType`][UserSelectableType] enum, add a
-    [preference][pref_names] for tracking whether your type is enabled, and
-    map your type to the pref in [`GetPrefNameForType`][GetPrefName].
-*   Otherwise, if your type should be included in an existing toggle in sync
-    settings, add it in [`GetUserSelectableTypeInfo`]
-    [GetUserSelectableTypeInfo].
-*   Add to the `SyncModelTypes` enum in [`enums.xml`][enums] and to the
-    `SyncModelType` suffix in [`histograms.xml`][histograms].
-
-[protocol]: https://cs.chromium.org/chromium/src/components/sync/protocol/
-[ModelType]: https://cs.chromium.org/chromium/src/components/sync/base/model_type.h
-[info_map]: https://cs.chromium.org/search/?q="kModelTypeInfoMap%5B%5D"+file:model_type.cc
-[conversions]: https://cs.chromium.org/chromium/src/components/sync/protocol/proto_value_conversions.h
-[ModelTypeController]: https://cs.chromium.org/chromium/src/components/sync/driver/model_type_controller.h
-[CreateCommonDataTypeControllers]: https://cs.chromium.org/search/?q="SyncApiComponentFactoryImpl::CreateCommonDataTypeControllers"
-[CreateDataTypeControllers]: https://cs.chromium.org/search/?q="ChromeSyncClient::CreateDataTypeControllers"
-[SyncServiceFactory]: https://cs.chromium.org/search/?q=:SyncServiceFactory%5C(%5C)
-[NigoriSpecifics]: https://cs.chromium.org/chromium/src/components/sync/protocol/nigori_specifics.proto
-[UserSelectableType]: https://cs.chromium.org/chromium/src/components/sync/base/user_selectable_type.h?type=cs&q="enum+class+UserSelectableType"
-[pref_names]: https://cs.chromium.org/chromium/src/components/sync/base/pref_names.h
-[GetPrefName]: https://cs.chromium.org/search/?q=GetPrefNameForType+file:sync_prefs.cc
-[GetUserSelectableTypeInfo]: https://cs.chromium.org/chromium/src/components/sync/base/user_selectable_type.cc?type=cs&q="UserSelectableTypeInfo+GetUserSelectableTypeInfo"+f:components/sync/base/user_selectable_type.cc
-[enums]: https://cs.chromium.org/chromium/src/tools/metrics/histograms/enums.xml
-[histograms]: https://cs.chromium.org/chromium/src/tools/metrics/histograms/histograms.xml
-[DataTypeHistogram]: https://cs.chromium.org/chromium/src/components/sync/base/data_type_histogram.h
-
-## Testing
-
-The [`TwoClientTypedUrlsSyncTest`][UssTest] suite is probably a good place to start
-for integration testing. Especially note the use of a `StatusChangeChecker` to
-wait for events to happen.
-
-[UssTest]: https://cs.chromium.org/chromium/src/chrome/browser/sync/test/integration/two_client_typed_urls_sync_test.cc
diff --git a/docs/sync/uss/client_tag_based_model_type_processor.md b/docs/sync/uss/client_tag_based_model_type_processor.md
deleted file mode 100644
index 5c0b6d5..0000000
--- a/docs/sync/uss/client_tag_based_model_type_processor.md
+++ /dev/null
@@ -1,120 +0,0 @@
-# ClientTagBasedModelTypeProcessor
-
-The [`ClientTagBasedModelTypeProcessor`][SMTP] is a crucial piece of the USS
-codepath. It lives on the model thread and performs the tracking of sync
-metadata for the [`ModelTypeSyncBridge`][MTSB] that owns it by implementing the
-[`ModelTypeChangeProcessor`][MTCP] interface, as well as sending commit requests
-to the [`ModelTypeWorker`][MTW] on the sync thread via the [`CommitQueue`][CQ]
-interface and receiving updates from the same worker via the
-[`ModelTypeProcessor`][MTP] interface.
-
-This processor supports types that use a client tag, which is currently
-includes all except bookmarks. This means all changes in flight (either incoming
-remote changes provided via the [`ModelTypeWorker`][MTW], or local changes
-reported by the [`ModelTypeSyncBridge`][MTSB]) must specify a client tag, which
-is considered (after being hashed) the main global identifier of a sync entity.
-
-[SMTP]: https://cs.chromium.org/chromium/src/components/sync/model/client_tag_based_model_type_processor.h
-[MTSB]: https://cs.chromium.org/chromium/src/components/sync/model/model_type_sync_bridge.h
-[MTCP]: https://cs.chromium.org/chromium/src/components/sync/model/model_type_change_processor.h
-[MTW]: https://cs.chromium.org/chromium/src/components/sync/engine/model_type_worker.h
-[CQ]: https://cs.chromium.org/chromium/src/components/sync/engine/commit_queue.h
-[MTP]: https://cs.chromium.org/chromium/src/components/sync/engine/model_type_processor.h
-
-[TOC]
-
-## Lifetime
-
-The bridge owns a processor object at all times and operates on the same thread
-as it. If sync is disabled, the processor is destroyed but a new one is
-immediately created to replace it.
-
-## Processor State Machines
-
-The processor sits between the model bridge and the sync engine. It has
-knowledge of what state each is in based on the calls it has received and
-performed. The states are not stored explicitly, but are implicit based on
-state stored in the processor. Here are the states of each, with notes on their
-transitions and how to determine them.
-
-### Model States
-
-*   `UNREADY`
-    *   Waiting for `ModelReadyToStart` to be called.
-    *   Determined by: `waiting_for_metadata_ && !model_error_`
-*   `NEEDS_DATA`
-    *   Waiting for data for pending commits to be loaded.
-    *   This state is skipped if there are no pending commits.
-    *   Determined by: `waiting_for_pending_data_ && !model_error_`
-*   `READY`
-    *   The model is completely ready to sync.
-    *   Determined by: `!waiting_for_metadata_ && !waiting_for_pending_data &&
-        !model_error`
-*   `ERROR`
-    *   Something in the model or storage broke.
-    *   This state is permanent until DisableSync destroys the object.
-    *   Determined by: `!!model_error_`
-
-### Sync States
-
-*   `DISCONNECTED`
-    *   Sync for this type has not started.
-    *   This state can be re-entered from any other state if Disconnect is
-        called.
-    *   Determined by: `!error_handler_`.
-*   `STARTED`
-    *   Sync has started but the model is not yet `READY` (or `ERROR`).
-    *   This state is skipped if the model is ready before sync is.
-    *   Determined by: `error_handler_ && start_callback_`
-*   `CONNECT_PENDING`
-    *   Both the model and sync are ready. The start callback has been called
-        and we're waiting to connect to the sync thread.
-    *   If the model was `ERROR`, the error is passed along and the callback is
-        cleared; we're really waiting for DisableSync instead of connect.
-    *   Determined by: `error_handler_ && !start_callback_`
-*   `CONNECTED`
-    *   We have a [`CommitQueue`][CQ] that passes changes to the
-        [`ModelTypeWorker`][MTW] on the sync thread.
-    *   Determined by: `!!worker_`
-
-### Processor States
-
-Based on the interplay of the model and sync states, the processor effectively
-progresses through 3 states worth noting:
-
-*   `UNINITIALIZED`
-    *    Metadata isn't loaded so we have no knowledge of entities.
-    *   `Put` and `Delete` calls are not allowed in this state (will DCHECK).
-*   `NOT_TRACKING`
-    *   Indicates that not metadata is being tracked and that `Put` and `Delete`
-        calls will be ignored.
-    *   This state is entered if the loaded metadata shows an initial merge
-        hasn't happened (`ModelTypeState::initial_sync_done` is false).
-    *   Exposed via `IsTrackingMetadata` for optimization, not correctness.
-*   `TRACKING`
-    *   Indicates that metadata is being tracked and `Put` and `Delete` calls
-        must happen for entity changes.
-    *   This state is entered if the loaded metadata shows an initial merge
-        has happened (`ModelTypeState::initial_sync_done` is true).
-*   `SYNCING`
-    *   Indicates that commits can be sent and updates can be received from the
-        sync server. This is a superstate of `TRACKING`.
-    *   If the processor was in `TRACKING`, it progresses to this state as soon
-        as it gets connected to the worker.
-    *   If the processor was in `NOT_TRACKING`, it progresses to this state
-        after `MergeSyncData` is called and the metadata is initialized.
-
-## Entity Tracker
-
-The [`ProcessorEntity`][PET] tracks the state of individual entities for
-the processor. It keeps the [`EntityMetadata`][EM] proto in memory, as well as
-any pending commit data until it gets acked by the server. It also stores the
-special `commit_requested_sequence_number_`, which tracks the sequence number of
-the last version that's been sent to the server.
-
-The tracker holds the metadata in memory forever, which is needed so we know
-what to update the on-disk memory with when we get a new local or remote change.
-Changing this would require being able to handle updates asynchronously.
-
-[PET]: https://cs.chromium.org/chromium/src/components/sync/model/processor_entity.h
-[EM]: https://cs.chromium.org/chromium/src/components/sync/protocol/entity_metadata.proto
diff --git a/extensions/browser/api/declarative/rules_registry_service.cc b/extensions/browser/api/declarative/rules_registry_service.cc
index cf90982..dd6ce9cf 100644
--- a/extensions/browser/api/declarative/rules_registry_service.cc
+++ b/extensions/browser/api/declarative/rules_registry_service.cc
@@ -20,6 +20,7 @@
 #include "extensions/browser/api/declarative_webrequest/webrequest_rules_registry.h"
 #include "extensions/browser/api/extensions_api_client.h"
 #include "extensions/browser/api/web_request/web_request_api.h"
+#include "extensions/browser/extension_util.h"
 #include "extensions/common/extension.h"
 #include "extensions/common/features/feature.h"
 #include "extensions/common/features/feature_provider.h"
@@ -197,7 +198,8 @@
   // declarativeWebRequest API is enabled. See crbug.com/693243.
   const bool is_api_enabled =
       FeatureProvider::GetAPIFeature("declarativeWebRequest")
-          ->IsAvailableToEnvironment()
+          ->IsAvailableToEnvironment(
+              util::GetBrowserContextId(browser_context_))
           .is_available();
   if (is_api_enabled) {
     // Persist the cache since it pertains to regular pages (i.e. not webviews).
diff --git a/extensions/browser/api/web_request/web_request_api.cc b/extensions/browser/api/web_request/web_request_api.cc
index 62df11c..29746eff 100644
--- a/extensions/browser/api/web_request/web_request_api.cc
+++ b/extensions/browser/api/web_request/web_request_api.cc
@@ -66,6 +66,7 @@
 #include "extensions/browser/extension_prefs.h"
 #include "extensions/browser/extension_registry.h"
 #include "extensions/browser/extension_system.h"
+#include "extensions/browser/extension_util.h"
 #include "extensions/browser/extensions_browser_client.h"
 #include "extensions/browser/guest_view/guest_view_events.h"
 #include "extensions/browser/guest_view/web_view/web_view_constants.h"
@@ -708,8 +709,9 @@
       if (guest_url.SchemeIs(content::kChromeUIScheme)) {
         auto* feature = FeatureProvider::GetAPIFeature("webRequestInternal");
         if (feature
-                ->IsAvailableToContext(nullptr, Feature::WEBUI_CONTEXT,
-                                       guest_url)
+                ->IsAvailableToContext(
+                    nullptr, Feature::WEBUI_CONTEXT, guest_url,
+                    util::GetBrowserContextId(browser_context))
                 .is_available()) {
           skip_proxy = false;
         }
diff --git a/extensions/browser/extension_action.cc b/extensions/browser/extension_action.cc
index 83376cb..b33485a 100644
--- a/extensions/browser/extension_action.cc
+++ b/extensions/browser/extension_action.cc
@@ -334,4 +334,18 @@
   return FallbackIcon().Width();
 }
 
+bool ExtensionAction::GetIsVisibleInternal(int tab_id,
+                                           bool include_declarative) const {
+  if (const bool* tab_is_visible = FindOrNull(&is_visible_, tab_id))
+    return *tab_is_visible;
+
+  if (include_declarative && base::Contains(declarative_show_count_, tab_id))
+    return true;
+
+  if (const bool* default_is_visible = FindOrNull(&is_visible_, kDefaultTabId))
+    return *default_is_visible;
+
+  return false;
+}
+
 }  // namespace extensions
diff --git a/extensions/browser/extension_action.h b/extensions/browser/extension_action.h
index 46714c60..649c465 100644
--- a/extensions/browser/extension_action.h
+++ b/extensions/browser/extension_action.h
@@ -187,17 +187,11 @@
   // leak information about hosts the extension doesn't have permission to
   // access.
   bool GetIsVisible(int tab_id) const {
-    if (const bool* tab_is_visible = FindOrNull(&is_visible_, tab_id))
-      return *tab_is_visible;
+    return GetIsVisibleInternal(tab_id, /*include_declarative=*/true);
+  }
 
-    if (base::Contains(declarative_show_count_, tab_id))
-      return true;
-
-    if (const bool* default_is_visible =
-            FindOrNull(&is_visible_, kDefaultTabId))
-      return *default_is_visible;
-
-    return false;
+  bool GetIsVisibleIgnoringDeclarative(int tab_id) const {
+    return GetIsVisibleInternal(tab_id, /*include_declarative=*/false);
   }
 
   // Remove all tab-specific state.
@@ -238,6 +232,13 @@
   // We should probably move this there too.
   int GetIconWidth(int tab_id) const;
 
+  // Returns whether the icon is visible on the given `tab`.
+  // `include_declarative` indicates whether this method should take into
+  // account declaratively-shown icons; this should only be true when the result
+  // of this function is not delivered (directly or indirectly) to the
+  // extension, since it can leak data about the page in the tab.
+  bool GetIsVisibleInternal(int tab_id, bool include_declarative) const;
+
   template <class T>
   struct ValueTraits {
     static T CreateEmpty() { return T(); }
diff --git a/extensions/browser/extension_action_unittest.cc b/extensions/browser/extension_action_unittest.cc
index 0ac9198..c22b0b7 100644
--- a/extensions/browser/extension_action_unittest.cc
+++ b/extensions/browser/extension_action_unittest.cc
@@ -178,4 +178,48 @@
   ASSERT_EQ(url_baz, action->GetPopupUrl(100));
 }
 
+TEST(ExtensionActiontest, DeclarativeShows) {
+  std::unique_ptr<ExtensionAction> action =
+      CreateAction(ActionInfo(ActionInfo::TYPE_ACTION));
+
+  // Set the default for the action to be not visible.
+  action->SetIsVisible(ExtensionAction::kDefaultTabId, false);
+  EXPECT_FALSE(action->GetIsVisible(1));
+  EXPECT_FALSE(action->GetIsVisibleIgnoringDeclarative(1));
+  EXPECT_FALSE(action->GetIsVisible(100));
+  EXPECT_FALSE(action->GetIsVisibleIgnoringDeclarative(100));
+
+  // With a declarative show on a given tab, the action should be visible on
+  // that tab only, but shouldn't indicate that if ignoring the declarative
+  // values.
+  action->DeclarativeShow(1);
+  EXPECT_TRUE(action->GetIsVisible(1));
+  EXPECT_FALSE(action->GetIsVisibleIgnoringDeclarative(1));
+  EXPECT_FALSE(action->GetIsVisible(100));
+  EXPECT_FALSE(action->GetIsVisibleIgnoringDeclarative(100));
+
+  // Undo the declarative show. The visibility is reset.
+  action->UndoDeclarativeShow(1);
+  EXPECT_FALSE(action->GetIsVisible(1));
+  EXPECT_FALSE(action->GetIsVisibleIgnoringDeclarative(1));
+  EXPECT_FALSE(action->GetIsVisible(100));
+  EXPECT_FALSE(action->GetIsVisibleIgnoringDeclarative(100));
+
+  // If there is both a declarative and imperative visibility, it should be
+  // considered visible whether or not declarative shows are considered.
+  action->DeclarativeShow(1);
+  action->SetIsVisible(1, true);
+  EXPECT_TRUE(action->GetIsVisible(1));
+  EXPECT_TRUE(action->GetIsVisibleIgnoringDeclarative(1));
+  EXPECT_FALSE(action->GetIsVisible(100));
+  EXPECT_FALSE(action->GetIsVisibleIgnoringDeclarative(100));
+
+  // Similarly, the default can be returned even if we ignore declarative shows.
+  action->SetIsVisible(ExtensionAction::kDefaultTabId, true);
+  EXPECT_TRUE(action->GetIsVisible(1));
+  EXPECT_TRUE(action->GetIsVisibleIgnoringDeclarative(1));
+  EXPECT_TRUE(action->GetIsVisible(100));
+  EXPECT_TRUE(action->GetIsVisibleIgnoringDeclarative(100));
+}
+
 }  // namespace extensions
diff --git a/extensions/browser/extension_util.cc b/extensions/browser/extension_util.cc
index 5a03d108..145ccc51 100644
--- a/extensions/browser/extension_util.cc
+++ b/extensions/browser/extension_util.cc
@@ -234,6 +234,7 @@
     iter =
         context_map->insert(std::make_pair(original_context, next_id++)).first;
   }
+  DCHECK(iter->second != kUnspecifiedContextId);
   return iter->second;
 }
 
diff --git a/extensions/browser/guest_view/extensions_guest_view_manager_delegate.cc b/extensions/browser/guest_view/extensions_guest_view_manager_delegate.cc
index 8321005..7026d6a 100644
--- a/extensions/browser/guest_view/extensions_guest_view_manager_delegate.cc
+++ b/extensions/browser/guest_view/extensions_guest_view_manager_delegate.cc
@@ -17,6 +17,7 @@
 #include "content/public/common/child_process_host.h"
 #include "extensions/browser/api/extensions_api_client.h"
 #include "extensions/browser/event_router.h"
+#include "extensions/browser/extension_util.h"
 #include "extensions/browser/guest_view/app_view/app_view_guest.h"
 #include "extensions/browser/guest_view/extension_options/extension_options_guest.h"
 #include "extensions/browser/guest_view/guest_view_events.h"
@@ -106,7 +107,7 @@
           owner_extension,
           guest->owner_web_contents()->GetMainFrame()->GetProcess()->GetID(),
           &owner_site_url),
-      owner_site_url);
+      owner_site_url, util::GetBrowserContextId(context_));
 
   return availability.is_available();
 }
diff --git a/extensions/common/BUILD.gn b/extensions/common/BUILD.gn
index ecca9989..f86aa01f 100644
--- a/extensions/common/BUILD.gn
+++ b/extensions/common/BUILD.gn
@@ -296,6 +296,8 @@
       "features/feature.h",
       "features/feature_channel.cc",
       "features/feature_channel.h",
+      "features/feature_developer_mode_only.cc",
+      "features/feature_developer_mode_only.h",
       "features/feature_flags.cc",
       "features/feature_flags.h",
       "features/feature_provider.cc",
diff --git a/extensions/common/extension_api.cc b/extensions/common/extension_api.cc
index cd246776..b13bcc21 100644
--- a/extensions/common/extension_api.cc
+++ b/extensions/common/extension_api.cc
@@ -173,7 +173,9 @@
   auto provider = dependency_providers_.find("api");
   CHECK(provider != dependency_providers_.end());
 
-  if (api.IsAvailableToContext(extension, context, url).is_available())
+  // TODO(ghazale): We should pass a context ID into these methods.
+  if (api.IsAvailableToContext(extension, context, url, kUnspecifiedContextId)
+          .is_available())
     return true;
 
   // Check to see if there are any parts of this API that are allowed in this
@@ -181,7 +183,11 @@
   const std::vector<const Feature*> features =
       provider->second->GetChildren(api);
   for (const Feature* feature : features) {
-    if (feature->IsAvailableToContext(extension, context, url).is_available())
+    // TODO(ghazale): We should pass a context ID into these methods.
+    if (feature
+            ->IsAvailableToContext(extension, context, url,
+                                   kUnspecifiedContextId)
+            .is_available())
       return true;
   }
 
@@ -210,8 +216,9 @@
                                  std::string("Unknown feature: ") + full_name);
   }
 
-  Feature::Availability availability =
-      feature->IsAvailableToContext(extension, context, url);
+  // TODO(ghazale): We should pass a context ID into these methods.
+  Feature::Availability availability = feature->IsAvailableToContext(
+      extension, context, url, kUnspecifiedContextId);
   if (availability.is_available() || check_alias != CheckAliasStatus::ALLOWED)
     return availability;
 
@@ -318,7 +325,9 @@
   CHECK(alias_feature) << "Cannot find alias feature " << alias
                        << " for API feature " << feature.name();
 
-  return alias_feature->IsAvailableToContext(extension, context, url);
+  // TODO(ghazale): We should pass a context ID into these methods.
+  return alias_feature->IsAvailableToContext(extension, context, url,
+                                             kUnspecifiedContextId);
 }
 
 base::StringPiece ExtensionAPI::GetSchemaStringPieceUnsafe(
diff --git a/extensions/common/features/complex_feature.cc b/extensions/common/features/complex_feature.cc
index 7552652..6263c94 100644
--- a/extensions/common/features/complex_feature.cc
+++ b/extensions/common/features/complex_feature.cc
@@ -37,16 +37,17 @@
     Manifest::Type type,
     mojom::ManifestLocation location,
     int manifest_version,
-    Platform platform) const {
+    Platform platform,
+    int context_id) const {
   Feature::Availability first_availability =
-      features_[0]->IsAvailableToManifest(hashed_id, type, location,
-                                          manifest_version, platform);
+      features_[0]->IsAvailableToManifest(
+          hashed_id, type, location, manifest_version, platform, context_id);
   if (first_availability.is_available())
     return first_availability;
 
   for (auto it = features_.cbegin() + 1; it != features_.cend(); ++it) {
     Availability availability = (*it)->IsAvailableToManifest(
-        hashed_id, type, location, manifest_version, platform);
+        hashed_id, type, location, manifest_version, platform, context_id);
     if (availability.is_available())
       return availability;
   }
@@ -59,15 +60,16 @@
     const Extension* extension,
     Context context,
     const GURL& url,
-    Platform platform) const {
-  Feature::Availability first_availability =
-      features_[0]->IsAvailableToContext(extension, context, url, platform);
+    Platform platform,
+    int context_id) const {
+  Feature::Availability first_availability = features_[0]->IsAvailableToContext(
+      extension, context, url, platform, context_id);
   if (first_availability.is_available())
     return first_availability;
 
   for (auto it = features_.cbegin() + 1; it != features_.cend(); ++it) {
-    Availability availability =
-        (*it)->IsAvailableToContext(extension, context, url, platform);
+    Availability availability = (*it)->IsAvailableToContext(
+        extension, context, url, platform, context_id);
     if (availability.is_available())
       return availability;
   }
@@ -76,14 +78,15 @@
   return first_availability;
 }
 
-Feature::Availability ComplexFeature::IsAvailableToEnvironment() const {
+Feature::Availability ComplexFeature::IsAvailableToEnvironment(
+    int context_id) const {
   Feature::Availability first_availability =
-      features_[0]->IsAvailableToEnvironment();
+      features_[0]->IsAvailableToEnvironment(context_id);
   if (first_availability.is_available())
     return first_availability;
 
   for (auto iter = features_.cbegin() + 1; iter != features_.cend(); ++iter) {
-    Availability availability = (*iter)->IsAvailableToEnvironment();
+    Availability availability = (*iter)->IsAvailableToEnvironment(context_id);
     if (availability.is_available())
       return availability;
   }
diff --git a/extensions/common/features/complex_feature.h b/extensions/common/features/complex_feature.h
index 13a4a4d..d03420f8 100644
--- a/extensions/common/features/complex_feature.h
+++ b/extensions/common/features/complex_feature.h
@@ -36,12 +36,14 @@
                                      Manifest::Type type,
                                      mojom::ManifestLocation location,
                                      int manifest_version,
-                                     Platform platform) const override;
+                                     Platform platform,
+                                     int context_id) const override;
   Availability IsAvailableToContext(const Extension* extension,
                                     Context context,
                                     const GURL& url,
-                                    Platform platform) const override;
-  Availability IsAvailableToEnvironment() const override;
+                                    Platform platform,
+                                    int context_id) const override;
+  Availability IsAvailableToEnvironment(int context_id) const override;
   bool IsIdInBlocklist(const HashedExtensionId& hashed_id) const override;
   bool IsIdInAllowlist(const HashedExtensionId& hashed_id) const override;
 
diff --git a/extensions/common/features/complex_feature_unittest.cc b/extensions/common/features/complex_feature_unittest.cc
index a3f0956..06d06b4 100644
--- a/extensions/common/features/complex_feature_unittest.cc
+++ b/extensions/common/features/complex_feature_unittest.cc
@@ -45,17 +45,18 @@
                 ->IsAvailableToManifest(kIdFoo, Manifest::TYPE_EXTENSION,
                                         ManifestLocation::kInvalidLocation,
                                         Feature::UNSPECIFIED_PLATFORM,
-                                        Feature::GetCurrentPlatform())
+                                        Feature::GetCurrentPlatform(),
+                                        kUnspecifiedContextId)
                 .result());
 
   // Test match 2nd rule.
   EXPECT_EQ(
       Feature::IS_AVAILABLE,
       feature
-          ->IsAvailableToManifest(kIdBar, Manifest::TYPE_LEGACY_PACKAGED_APP,
-                                  ManifestLocation::kInvalidLocation,
-                                  Feature::UNSPECIFIED_PLATFORM,
-                                  Feature::GetCurrentPlatform())
+          ->IsAvailableToManifest(
+              kIdBar, Manifest::TYPE_LEGACY_PACKAGED_APP,
+              ManifestLocation::kInvalidLocation, Feature::UNSPECIFIED_PLATFORM,
+              Feature::GetCurrentPlatform(), kUnspecifiedContextId)
           .result());
 
   // Test allowlist with wrong extension type.
@@ -64,15 +65,16 @@
                 ->IsAvailableToManifest(kIdBar, Manifest::TYPE_EXTENSION,
                                         ManifestLocation::kInvalidLocation,
                                         Feature::UNSPECIFIED_PLATFORM,
-                                        Feature::GetCurrentPlatform())
+                                        Feature::GetCurrentPlatform(),
+                                        kUnspecifiedContextId)
                 .result());
   EXPECT_NE(
       Feature::IS_AVAILABLE,
       feature
-          ->IsAvailableToManifest(kIdFoo, Manifest::TYPE_LEGACY_PACKAGED_APP,
-                                  ManifestLocation::kInvalidLocation,
-                                  Feature::UNSPECIFIED_PLATFORM,
-                                  Feature::GetCurrentPlatform())
+          ->IsAvailableToManifest(
+              kIdFoo, Manifest::TYPE_LEGACY_PACKAGED_APP,
+              ManifestLocation::kInvalidLocation, Feature::UNSPECIFIED_PLATFORM,
+              Feature::GetCurrentPlatform(), kUnspecifiedContextId)
           .result());
 }
 
@@ -98,14 +100,14 @@
   std::unique_ptr<ComplexFeature> feature(new ComplexFeature(&features));
 
   // Available to extensions because of the content_security_policy rule.
-  EXPECT_EQ(Feature::IS_AVAILABLE,
-            feature
-                ->IsAvailableToManifest(HashedExtensionId(std::string(32, 'a')),
-                                        Manifest::TYPE_EXTENSION,
-                                        ManifestLocation::kInvalidLocation,
-                                        Feature::UNSPECIFIED_PLATFORM,
-                                        Feature::GetCurrentPlatform())
-                .result());
+  EXPECT_EQ(
+      Feature::IS_AVAILABLE,
+      feature
+          ->IsAvailableToManifest(
+              HashedExtensionId(std::string(32, 'a')), Manifest::TYPE_EXTENSION,
+              ManifestLocation::kInvalidLocation, Feature::UNSPECIFIED_PLATFORM,
+              Feature::GetCurrentPlatform(), kUnspecifiedContextId)
+          .result());
 
   // Available to platform apps because of the serial rule.
   EXPECT_EQ(Feature::IS_AVAILABLE,
@@ -114,7 +116,8 @@
                                         Manifest::TYPE_PLATFORM_APP,
                                         ManifestLocation::kInvalidLocation,
                                         Feature::UNSPECIFIED_PLATFORM,
-                                        Feature::GetCurrentPlatform())
+                                        Feature::GetCurrentPlatform(),
+                                        kUnspecifiedContextId)
                 .result());
 
   // Not available to hosted apps.
@@ -124,7 +127,8 @@
                                         Manifest::TYPE_HOSTED_APP,
                                         ManifestLocation::kInvalidLocation,
                                         Feature::UNSPECIFIED_PLATFORM,
-                                        Feature::GetCurrentPlatform())
+                                        Feature::GetCurrentPlatform(),
+                                        kUnspecifiedContextId)
                 .result());
 }
 
diff --git a/extensions/common/features/feature.cc b/extensions/common/features/feature.cc
index 62a7ad8..a4e57f98 100644
--- a/extensions/common/features/feature.cc
+++ b/extensions/common/features/feature.cc
@@ -41,9 +41,9 @@
 
 Feature::Availability Feature::IsAvailableToExtension(
     const Extension* extension) const {
-  return IsAvailableToManifest(extension->hashed_id(), extension->GetType(),
-                               extension->location(),
-                               extension->manifest_version());
+  return IsAvailableToManifest(
+      extension->hashed_id(), extension->GetType(), extension->location(),
+      extension->manifest_version(), kUnspecifiedContextId);
 }
 
 Feature::Feature() : no_parent_(false) {}
diff --git a/extensions/common/features/feature.h b/extensions/common/features/feature.h
index e0af95b..a5cb791 100644
--- a/extensions/common/features/feature.h
+++ b/extensions/common/features/feature.h
@@ -17,6 +17,8 @@
 
 namespace extensions {
 
+constexpr int kUnspecifiedContextId = -1;
+
 class Extension;
 
 // Represents a single feature accessible to an extension developer, such as a
@@ -71,6 +73,7 @@
     FOUND_IN_BLOCKLIST,
     MISSING_COMMAND_LINE_SWITCH,
     FEATURE_FLAG_DISABLED,
+    REQUIRES_DEVELOPER_MODE,
   };
 
   // Container for AvailabiltyResult that also exposes a user-visible error
@@ -116,15 +119,17 @@
   Availability IsAvailableToManifest(const HashedExtensionId& hashed_id,
                                      Manifest::Type type,
                                      mojom::ManifestLocation location,
-                                     int manifest_version) const {
+                                     int manifest_version,
+                                     int context_id) const {
     return IsAvailableToManifest(hashed_id, type, location, manifest_version,
-                                 GetCurrentPlatform());
+                                 GetCurrentPlatform(), context_id);
   }
   virtual Availability IsAvailableToManifest(const HashedExtensionId& hashed_id,
                                              Manifest::Type type,
                                              mojom::ManifestLocation location,
                                              int manifest_version,
-                                             Platform platform) const = 0;
+                                             Platform platform,
+                                             int context_id) const = 0;
 
   // Returns true if the feature is available to |extension|.
   Availability IsAvailableToExtension(const Extension* extension) const;
@@ -133,13 +138,16 @@
   // extension and context.
   Availability IsAvailableToContext(const Extension* extension,
                                     Context context,
-                                    const GURL& url) const {
-    return IsAvailableToContext(extension, context, url, GetCurrentPlatform());
+                                    const GURL& url,
+                                    int context_id) const {
+    return IsAvailableToContext(extension, context, url, GetCurrentPlatform(),
+                                context_id);
   }
   virtual Availability IsAvailableToContext(const Extension* extension,
                                             Context context,
                                             const GURL& url,
-                                            Platform platform) const = 0;
+                                            Platform platform,
+                                            int context_id) const = 0;
 
   // Returns true if the feature is available to the current environment,
   // without needing to know information about an Extension or any other
@@ -150,7 +158,7 @@
   // relies on an Extension now - maybe it will, one day, so if there's an
   // Extension available (or a runtime context, etc) then use the more targeted
   // method instead.
-  virtual Availability IsAvailableToEnvironment() const = 0;
+  virtual Availability IsAvailableToEnvironment(int context_id) const = 0;
 
   virtual bool IsIdInBlocklist(const HashedExtensionId& hashed_id) const = 0;
   virtual bool IsIdInAllowlist(const HashedExtensionId& hashed_id) const = 0;
diff --git a/extensions/common/features/feature_developer_mode_only.cc b/extensions/common/features/feature_developer_mode_only.cc
new file mode 100644
index 0000000..34c2f30
--- /dev/null
+++ b/extensions/common/features/feature_developer_mode_only.cc
@@ -0,0 +1,39 @@
+// Copyright 2021 The Chromium Authors. All rights reserved.
+// Use of this source code is governed by a BSD-style license that can be
+// found in the LICENSE file.
+
+#include "extensions/common/features/feature_developer_mode_only.h"
+
+#include <map>
+
+#include "base/no_destructor.h"
+
+namespace {
+
+// A map between a profile (referenced by a unique id) and the current developer
+// mode for that profile. Since different profiles have different developer
+// modes, we need to have separate entries.
+using CurrentDeveloperModeMap = std::map<int, bool>;
+
+CurrentDeveloperModeMap& GetDeveloperModeMap() {
+  static base::NoDestructor<CurrentDeveloperModeMap> map;
+  return *map;
+}
+
+}  // namespace
+
+namespace extensions {
+
+// Returns the current developer mode for the given context_id.
+bool GetCurrentDeveloperMode(int context_id) {
+  CurrentDeveloperModeMap& map = GetDeveloperModeMap();
+  auto iter = map.find(context_id);
+  return iter == map.end() ? false : iter->second;
+}
+
+// static
+void SetCurrentDeveloperMode(int context_id, bool current_developer_mode) {
+  GetDeveloperModeMap()[context_id] = current_developer_mode;
+}
+
+}  // namespace extensions
diff --git a/extensions/common/features/feature_developer_mode_only.h b/extensions/common/features/feature_developer_mode_only.h
new file mode 100644
index 0000000..ae1030a
--- /dev/null
+++ b/extensions/common/features/feature_developer_mode_only.h
@@ -0,0 +1,18 @@
+// Copyright 2021 The Chromium Authors. All rights reserved.
+// Use of this source code is governed by a BSD-style license that can be
+// found in the LICENSE file.
+
+#ifndef EXTENSIONS_COMMON_FEATURES_FEATURE_DEVELOPER_MODE_ONLY_H_
+#define EXTENSIONS_COMMON_FEATURES_FEATURE_DEVELOPER_MODE_ONLY_H_
+
+namespace extensions {
+
+// Gets the developer mode as seen by the Feature system.
+bool GetCurrentDeveloperMode(int context_id);
+
+// Sets the current developer mode as seen by the Feature system.
+void SetCurrentDeveloperMode(int context_id, bool current_developer_mode);
+
+}  // namespace extensions
+
+#endif  // EXTENSIONS_COMMON_FEATURES_FEATURE_DEVELOPER_MODE_ONLY_H_
diff --git a/extensions/common/features/feature_provider_unittest.cc b/extensions/common/features/feature_provider_unittest.cc
index 10b5f77c..64bf766 100644
--- a/extensions/common/features/feature_provider_unittest.cc
+++ b/extensions/common/features/feature_provider_unittest.cc
@@ -54,29 +54,32 @@
       ExtensionBuilder("test extension").Build();
 
   const Feature* feature = provider->GetFeature("description");
-  EXPECT_EQ(Feature::IS_AVAILABLE,
-            feature
-                ->IsAvailableToContext(extension.get(),
-                                       Feature::UNSPECIFIED_CONTEXT, GURL())
-                .result());
+  EXPECT_EQ(
+      Feature::IS_AVAILABLE,
+      feature
+          ->IsAvailableToContext(extension.get(), Feature::UNSPECIFIED_CONTEXT,
+                                 GURL(), kUnspecifiedContextId)
+          .result());
 
   // This is a generic extension, so an app-only feature isn't allowed.
   feature = provider->GetFeature("app.background");
   ASSERT_TRUE(feature);
-  EXPECT_EQ(Feature::INVALID_TYPE,
-            feature
-                ->IsAvailableToContext(extension.get(),
-                                       Feature::UNSPECIFIED_CONTEXT, GURL())
-                .result());
+  EXPECT_EQ(
+      Feature::INVALID_TYPE,
+      feature
+          ->IsAvailableToContext(extension.get(), Feature::UNSPECIFIED_CONTEXT,
+                                 GURL(), kUnspecifiedContextId)
+          .result());
 
   // A feature not listed in the manifest isn't allowed.
   feature = provider->GetFeature("background");
   ASSERT_TRUE(feature);
-  EXPECT_EQ(Feature::NOT_PRESENT,
-            feature
-                ->IsAvailableToContext(extension.get(),
-                                       Feature::UNSPECIFIED_CONTEXT, GURL())
-                .result());
+  EXPECT_EQ(
+      Feature::NOT_PRESENT,
+      feature
+          ->IsAvailableToContext(extension.get(), Feature::UNSPECIFIED_CONTEXT,
+                                 GURL(), kUnspecifiedContextId)
+          .result());
 }
 
 // Tests that a real permission feature is available for the correct types of
@@ -111,7 +114,7 @@
   EXPECT_EQ(Feature::IS_AVAILABLE,
             feature
                 ->IsAvailableToContext(app.get(), Feature::UNSPECIFIED_CONTEXT,
-                                       GURL())
+                                       GURL(), kUnspecifiedContextId)
                 .result());
 
   // A permission only available to allowlisted extensions returns availability
@@ -124,7 +127,7 @@
   EXPECT_EQ(Feature::NOT_FOUND_IN_ALLOWLIST,
             feature
                 ->IsAvailableToContext(app.get(), Feature::UNSPECIFIED_CONTEXT,
-                                       GURL())
+                                       GURL(), kUnspecifiedContextId)
                 .result());
 #endif  // !BUILDFLAG(IS_FUCHSIA)
 
@@ -134,7 +137,7 @@
   EXPECT_EQ(Feature::NOT_PRESENT,
             feature
                 ->IsAvailableToContext(app.get(), Feature::UNSPECIFIED_CONTEXT,
-                                       GURL())
+                                       GURL(), kUnspecifiedContextId)
                 .result());
 }
 
diff --git a/extensions/common/features/manifest_feature.cc b/extensions/common/features/manifest_feature.cc
index 8f9676e..03d8ca4b 100644
--- a/extensions/common/features/manifest_feature.cc
+++ b/extensions/common/features/manifest_feature.cc
@@ -19,11 +19,10 @@
     const Extension* extension,
     Feature::Context context,
     const GURL& url,
-    Feature::Platform platform) const {
-  Availability availability = SimpleFeature::IsAvailableToContext(extension,
-                                                                  context,
-                                                                  url,
-                                                                  platform);
+    Feature::Platform platform,
+    int context_id) const {
+  Availability availability = SimpleFeature::IsAvailableToContext(
+      extension, context, url, platform, context_id);
   if (!availability.is_available())
     return availability;
 
diff --git a/extensions/common/features/manifest_feature.h b/extensions/common/features/manifest_feature.h
index ca851b5..e58b262f 100644
--- a/extensions/common/features/manifest_feature.h
+++ b/extensions/common/features/manifest_feature.h
@@ -18,11 +18,11 @@
   // that a permission or manifest feature can declare dependency on other
   // manifest features.
 
-  Feature::Availability IsAvailableToContext(
-      const Extension* extension,
-      Feature::Context context,
-      const GURL& url,
-      Feature::Platform platform) const override;
+  Feature::Availability IsAvailableToContext(const Extension* extension,
+                                             Feature::Context context,
+                                             const GURL& url,
+                                             Feature::Platform platform,
+                                             int context_id) const override;
 };
 
 }  // namespace extensions
diff --git a/extensions/common/features/permission_feature.cc b/extensions/common/features/permission_feature.cc
index fe63041..c67e5d9 100644
--- a/extensions/common/features/permission_feature.cc
+++ b/extensions/common/features/permission_feature.cc
@@ -19,11 +19,10 @@
     const Extension* extension,
     Feature::Context context,
     const GURL& url,
-    Feature::Platform platform) const {
-  Availability availability = SimpleFeature::IsAvailableToContext(extension,
-                                                                  context,
-                                                                  url,
-                                                                  platform);
+    Feature::Platform platform,
+    int context_id) const {
+  Availability availability = SimpleFeature::IsAvailableToContext(
+      extension, context, url, platform, context_id);
   if (!availability.is_available())
     return availability;
 
diff --git a/extensions/common/features/permission_feature.h b/extensions/common/features/permission_feature.h
index 8ff7f15e..5a36b3cb 100644
--- a/extensions/common/features/permission_feature.h
+++ b/extensions/common/features/permission_feature.h
@@ -18,11 +18,11 @@
   // that a permission or manifest feature can declare dependency on other
   // permission features.
 
-  Feature::Availability IsAvailableToContext(
-      const Extension* extension,
-      Feature::Context context,
-      const GURL& url,
-      Feature::Platform platform) const override;
+  Feature::Availability IsAvailableToContext(const Extension* extension,
+                                             Feature::Context context,
+                                             const GURL& url,
+                                             Feature::Platform platform,
+                                             int context_id) const override;
 };
 
 }  // namespace extensions
diff --git a/extensions/common/features/simple_feature.cc b/extensions/common/features/simple_feature.cc
index 7e2c7b08..c0919b5 100644
--- a/extensions/common/features/simple_feature.cc
+++ b/extensions/common/features/simple_feature.cc
@@ -19,6 +19,7 @@
 #include "components/crx_file/id_util.h"
 #include "extensions/common/extension_api.h"
 #include "extensions/common/features/feature_channel.h"
+#include "extensions/common/features/feature_developer_mode_only.h"
 #include "extensions/common/features/feature_flags.h"
 #include "extensions/common/features/feature_provider.h"
 #include "extensions/common/features/feature_session_type.h"
@@ -61,6 +62,7 @@
     ManifestLocation location,
     int manifest_version,
     Feature::Platform platform,
+    int context_id,
     const Feature* feature) {
   return feature->IsAvailableToManifest(hashed_id, type, location,
                                         manifest_version, platform);
@@ -70,12 +72,15 @@
                                                   Feature::Context context,
                                                   const GURL& url,
                                                   Feature::Platform platform,
+                                                  int context_id,
                                                   const Feature* feature) {
-  return feature->IsAvailableToContext(extension, context, url, platform);
+  return feature->IsAvailableToContext(extension, context, url, platform,
+                                       context_id);
 }
 
-Feature::Availability IsAvailableToEnvironmentForBind(const Feature* feature) {
-  return feature->IsAvailableToEnvironment();
+Feature::Availability IsAvailableToEnvironmentForBind(int context_id,
+                                                      const Feature* feature) {
+  return feature->IsAvailableToEnvironment(context_id);
 }
 
 // Gets a human-readable name for the given extension type, suitable for giving
@@ -234,9 +239,11 @@
     Manifest::Type type,
     ManifestLocation location,
     int manifest_version,
-    Platform platform) const {
-  Availability environment_availability = GetEnvironmentAvailability(
-      platform, GetCurrentChannel(), GetCurrentFeatureSessionType());
+    Platform platform,
+    int context_id) const {
+  Availability environment_availability =
+      GetEnvironmentAvailability(platform, GetCurrentChannel(),
+                                 GetCurrentFeatureSessionType(), context_id);
   if (!environment_availability.is_available())
     return environment_availability;
   Availability manifest_availability =
@@ -244,18 +251,20 @@
   if (!manifest_availability.is_available())
     return manifest_availability;
 
-  return CheckDependencies(base::BindRepeating(&IsAvailableToManifestForBind,
-                                               hashed_id, type, location,
-                                               manifest_version, platform));
+  return CheckDependencies(
+      base::BindRepeating(&IsAvailableToManifestForBind, hashed_id, type,
+                          location, manifest_version, platform, context_id));
 }
 
 Feature::Availability SimpleFeature::IsAvailableToContext(
     const Extension* extension,
     Feature::Context context,
     const GURL& url,
-    Platform platform) const {
-  Availability environment_availability = GetEnvironmentAvailability(
-      platform, GetCurrentChannel(), GetCurrentFeatureSessionType());
+    Platform platform,
+    int context_id) const {
+  Availability environment_availability =
+      GetEnvironmentAvailability(platform, GetCurrentChannel(),
+                                 GetCurrentFeatureSessionType(), context_id);
   if (!environment_availability.is_available())
     return environment_availability;
 
@@ -284,19 +293,20 @@
 
   // TODO(kalman): Assert that if the context was a webpage or WebUI context
   // then at some point a "matches" restriction was checked.
-  return CheckDependencies(base::BindRepeating(&IsAvailableToContextForBind,
-                                               base::RetainedRef(extension),
-                                               context, url, platform));
+  return CheckDependencies(base::BindRepeating(
+      &IsAvailableToContextForBind, base::RetainedRef(extension), context, url,
+      platform, context_id));
 }
 
-Feature::Availability SimpleFeature::IsAvailableToEnvironment() const {
+Feature::Availability SimpleFeature::IsAvailableToEnvironment(
+    int context_id) const {
   Availability environment_availability =
       GetEnvironmentAvailability(GetCurrentPlatform(), GetCurrentChannel(),
-                                 GetCurrentFeatureSessionType());
+                                 GetCurrentFeatureSessionType(), context_id);
   if (!environment_availability.is_available())
     return environment_availability;
   return CheckDependencies(
-      base::BindRepeating(&IsAvailableToEnvironmentForBind));
+      base::BindRepeating(&IsAvailableToEnvironmentForBind, context_id));
 }
 
 std::string SimpleFeature::GetAvailabilityMessage(
@@ -377,6 +387,10 @@
       return base::StringPrintf(
           "'%s' requires the '%s' feature flag to be enabled.", name().c_str(),
           feature_flag_->c_str());
+    case REQUIRES_DEVELOPER_MODE:
+      return base::StringPrintf(
+          "'%s' requires the user to have developer mode enabled.",
+          name().c_str());
   }
 
   NOTREACHED();
@@ -589,7 +603,8 @@
 Feature::Availability SimpleFeature::GetEnvironmentAvailability(
     Platform platform,
     version_info::Channel channel,
-    mojom::FeatureSessionType session_type) const {
+    mojom::FeatureSessionType session_type,
+    int context_id) const {
   base::CommandLine* command_line = base::CommandLine::ForCurrentProcess();
   if (!platforms_.empty() && !base::Contains(platforms_, platform))
     return CreateAvailability(INVALID_PLATFORM);
@@ -616,6 +631,9 @@
   if (!MatchesSessionTypes(session_type))
     return CreateAvailability(INVALID_SESSION_TYPE, session_type);
 
+  if (developer_mode_only_ && !GetCurrentDeveloperMode(context_id))
+    return CreateAvailability(REQUIRES_DEVELOPER_MODE);
+
   return CreateAvailability(IS_AVAILABLE);
 }
 
diff --git a/extensions/common/features/simple_feature.h b/extensions/common/features/simple_feature.h
index b8df3ea2..e40eebdc 100644
--- a/extensions/common/features/simple_feature.h
+++ b/extensions/common/features/simple_feature.h
@@ -57,18 +57,23 @@
   ~SimpleFeature() override;
 
   Availability IsAvailableToContext(const Extension* extension,
-                                    Context context) const {
-    return IsAvailableToContext(extension, context, GURL());
+                                    Context context,
+                                    int context_id) const {
+    return IsAvailableToContext(extension, context, GURL(), context_id);
   }
   Availability IsAvailableToContext(const Extension* extension,
                                     Context context,
-                                    Platform platform) const {
-    return IsAvailableToContext(extension, context, GURL(), platform);
+                                    Platform platform,
+                                    int context_id) const {
+    return IsAvailableToContext(extension, context, GURL(), platform,
+                                context_id);
   }
   Availability IsAvailableToContext(const Extension* extension,
                                     Context context,
-                                    const GURL& url) const {
-    return IsAvailableToContext(extension, context, url, GetCurrentPlatform());
+                                    const GURL& url,
+                                    int context_id) const {
+    return IsAvailableToContext(extension, context, url, GetCurrentPlatform(),
+                                context_id);
   }
 
   // extension::Feature:
@@ -76,12 +81,14 @@
                                      Manifest::Type type,
                                      mojom::ManifestLocation location,
                                      int manifest_version,
-                                     Platform platform) const override;
+                                     Platform platform,
+                                     int context_id) const override;
   Availability IsAvailableToContext(const Extension* extension,
                                     Context context,
                                     const GURL& url,
-                                    Platform platform) const override;
-  Availability IsAvailableToEnvironment() const override;
+                                    Platform platform,
+                                    int context_id) const override;
+  Availability IsAvailableToEnvironment(int context_id) const override;
   bool IsInternal() const override;
   bool IsIdInBlocklist(const HashedExtensionId& hashed_id) const override;
   bool IsIdInAllowlist(const HashedExtensionId& hashed_id) const override;
@@ -118,6 +125,9 @@
   void set_session_types(
       std::initializer_list<mojom::FeatureSessionType> types);
   void set_internal(bool is_internal) { is_internal_ = is_internal; }
+  void set_developer_mode_only(bool is_developer_mode_only) {
+    developer_mode_only_ = is_developer_mode_only;
+  }
   void set_disallow_for_service_workers(bool disallow) {
     disallow_for_service_workers_ = disallow;
   }
@@ -218,7 +228,8 @@
   Availability GetEnvironmentAvailability(
       Platform platform,
       version_info::Channel channel,
-      mojom::FeatureSessionType session_type) const;
+      mojom::FeatureSessionType session_type,
+      int context_id) const;
 
   // Returns the availability of the feature with respect to a given extension's
   // properties.
@@ -258,6 +269,7 @@
 
   bool component_extensions_auto_granted_;
   bool is_internal_;
+  bool developer_mode_only_{false};
   bool disallow_for_service_workers_;
 };
 
diff --git a/extensions/common/features/simple_feature_unittest.cc b/extensions/common/features/simple_feature_unittest.cc
index d48d35713..85a0ee6 100644
--- a/extensions/common/features/simple_feature_unittest.cc
+++ b/extensions/common/features/simple_feature_unittest.cc
@@ -20,6 +20,7 @@
 #include "extensions/common/extension_builder.h"
 #include "extensions/common/features/complex_feature.h"
 #include "extensions/common/features/feature_channel.h"
+#include "extensions/common/features/feature_developer_mode_only.h"
 #include "extensions/common/features/feature_flags.h"
 #include "extensions/common/features/feature_session_type.h"
 #include "extensions/common/manifest.h"
@@ -41,6 +42,7 @@
   ManifestLocation location;
   Feature::Platform platform;
   int manifest_version;
+  int context_id;
   Feature::AvailabilityResult expected_result;
 };
 
@@ -60,7 +62,8 @@
   return feature
       .IsAvailableToManifest(
           HashedExtensionId(std::string(32, 'a')), Manifest::TYPE_UNKNOWN,
-          ManifestLocation::kInvalidLocation, -1, Feature::GetCurrentPlatform())
+          ManifestLocation::kInvalidLocation, -1, Feature::GetCurrentPlatform(),
+          kUnspecifiedContextId)
       .result();
 }
 
@@ -79,9 +82,9 @@
     feature.set_location(feature_location);
     Feature::AvailabilityResult availability_result =
         feature
-            .IsAvailableToManifest(HashedExtensionId(), Manifest::TYPE_UNKNOWN,
-                                   manifest_location, -1,
-                                   Feature::UNSPECIFIED_PLATFORM)
+            .IsAvailableToManifest(
+                HashedExtensionId(), Manifest::TYPE_UNKNOWN, manifest_location,
+                -1, Feature::UNSPECIFIED_PLATFORM, kUnspecifiedContextId)
             .result();
     return availability_result == Feature::IS_AVAILABLE;
   }
@@ -93,21 +96,26 @@
 TEST_F(SimpleFeatureTest, IsAvailableNullCase) {
   const IsAvailableTestData tests[] = {
       {"", Manifest::TYPE_UNKNOWN, ManifestLocation::kInvalidLocation,
-       Feature::UNSPECIFIED_PLATFORM, -1, Feature::IS_AVAILABLE},
+       Feature::UNSPECIFIED_PLATFORM, -1, kUnspecifiedContextId,
+       Feature::IS_AVAILABLE},
       {"random-extension", Manifest::TYPE_UNKNOWN,
        ManifestLocation::kInvalidLocation, Feature::UNSPECIFIED_PLATFORM, -1,
-       Feature::IS_AVAILABLE},
+       kUnspecifiedContextId, Feature::IS_AVAILABLE},
       {"", Manifest::TYPE_LEGACY_PACKAGED_APP,
        ManifestLocation::kInvalidLocation, Feature::UNSPECIFIED_PLATFORM, -1,
+       kUnspecifiedContextId, Feature::IS_AVAILABLE},
+      {"", Manifest::TYPE_UNKNOWN, ManifestLocation::kInvalidLocation,
+       Feature::UNSPECIFIED_PLATFORM, -1, kUnspecifiedContextId,
+       Feature::IS_AVAILABLE},
+      {"", Manifest::TYPE_UNKNOWN, ManifestLocation::kComponent,
+       Feature::UNSPECIFIED_PLATFORM, -1, kUnspecifiedContextId,
        Feature::IS_AVAILABLE},
       {"", Manifest::TYPE_UNKNOWN, ManifestLocation::kInvalidLocation,
-       Feature::UNSPECIFIED_PLATFORM, -1, Feature::IS_AVAILABLE},
-      {"", Manifest::TYPE_UNKNOWN, ManifestLocation::kComponent,
-       Feature::UNSPECIFIED_PLATFORM, -1, Feature::IS_AVAILABLE},
+       Feature::CHROMEOS_PLATFORM, -1, kUnspecifiedContextId,
+       Feature::IS_AVAILABLE},
       {"", Manifest::TYPE_UNKNOWN, ManifestLocation::kInvalidLocation,
-       Feature::CHROMEOS_PLATFORM, -1, Feature::IS_AVAILABLE},
-      {"", Manifest::TYPE_UNKNOWN, ManifestLocation::kInvalidLocation,
-       Feature::UNSPECIFIED_PLATFORM, 25, Feature::IS_AVAILABLE}};
+       Feature::UNSPECIFIED_PLATFORM, 25, kUnspecifiedContextId,
+       Feature::IS_AVAILABLE}};
 
   SimpleFeature feature;
   for (size_t i = 0; i < base::size(tests); ++i) {
@@ -116,7 +124,8 @@
               feature
                   .IsAvailableToManifest(HashedExtensionId(test.extension_id),
                                          test.extension_type, test.location,
-                                         test.manifest_version, test.platform)
+                                         test.manifest_version, test.platform,
+                                         test.context_id)
                   .result());
   }
 }
@@ -132,37 +141,40 @@
             feature
                 .IsAvailableToManifest(kIdFoo, Manifest::TYPE_UNKNOWN,
                                        ManifestLocation::kInvalidLocation, -1,
-                                       Feature::UNSPECIFIED_PLATFORM)
+                                       Feature::UNSPECIFIED_PLATFORM,
+                                       kUnspecifiedContextId)
                 .result());
   EXPECT_EQ(Feature::IS_AVAILABLE,
             feature
                 .IsAvailableToManifest(kIdBar, Manifest::TYPE_UNKNOWN,
                                        ManifestLocation::kInvalidLocation, -1,
-                                       Feature::UNSPECIFIED_PLATFORM)
+                                       Feature::UNSPECIFIED_PLATFORM,
+                                       kUnspecifiedContextId)
                 .result());
 
   EXPECT_EQ(Feature::NOT_FOUND_IN_ALLOWLIST,
             feature
                 .IsAvailableToManifest(kIdBaz, Manifest::TYPE_UNKNOWN,
                                        ManifestLocation::kInvalidLocation, -1,
-                                       Feature::UNSPECIFIED_PLATFORM)
+                                       Feature::UNSPECIFIED_PLATFORM,
+                                       kUnspecifiedContextId)
                 .result());
-  EXPECT_EQ(
-      Feature::NOT_FOUND_IN_ALLOWLIST,
-      feature
-          .IsAvailableToManifest(HashedExtensionId(), Manifest::TYPE_UNKNOWN,
-                                 ManifestLocation::kInvalidLocation, -1,
-                                 Feature::UNSPECIFIED_PLATFORM)
-          .result());
+  EXPECT_EQ(Feature::NOT_FOUND_IN_ALLOWLIST,
+            feature
+                .IsAvailableToManifest(
+                    HashedExtensionId(), Manifest::TYPE_UNKNOWN,
+                    ManifestLocation::kInvalidLocation, -1,
+                    Feature::UNSPECIFIED_PLATFORM, kUnspecifiedContextId)
+                .result());
 
   feature.set_extension_types({Manifest::TYPE_LEGACY_PACKAGED_APP});
-  EXPECT_EQ(
-      Feature::NOT_FOUND_IN_ALLOWLIST,
-      feature
-          .IsAvailableToManifest(kIdBaz, Manifest::TYPE_LEGACY_PACKAGED_APP,
-                                 ManifestLocation::kInvalidLocation, -1,
-                                 Feature::UNSPECIFIED_PLATFORM)
-          .result());
+  EXPECT_EQ(Feature::NOT_FOUND_IN_ALLOWLIST,
+            feature
+                .IsAvailableToManifest(
+                    kIdBaz, Manifest::TYPE_LEGACY_PACKAGED_APP,
+                    ManifestLocation::kInvalidLocation, -1,
+                    Feature::UNSPECIFIED_PLATFORM, kUnspecifiedContextId)
+                .result());
 }
 
 TEST_F(SimpleFeatureTest, HashedIdAllowlist) {
@@ -176,31 +188,31 @@
 
   EXPECT_EQ(Feature::IS_AVAILABLE,
             feature
-                .IsAvailableToManifest(HashedExtensionId(kIdFoo),
-                                       Manifest::TYPE_UNKNOWN,
-                                       ManifestLocation::kInvalidLocation, -1,
-                                       Feature::UNSPECIFIED_PLATFORM)
+                .IsAvailableToManifest(
+                    HashedExtensionId(kIdFoo), Manifest::TYPE_UNKNOWN,
+                    ManifestLocation::kInvalidLocation, -1,
+                    Feature::UNSPECIFIED_PLATFORM, kUnspecifiedContextId)
                 .result());
   EXPECT_NE(Feature::IS_AVAILABLE,
             feature
-                .IsAvailableToManifest(HashedExtensionId(kIdFooHashed),
-                                       Manifest::TYPE_UNKNOWN,
-                                       ManifestLocation::kInvalidLocation, -1,
-                                       Feature::UNSPECIFIED_PLATFORM)
+                .IsAvailableToManifest(
+                    HashedExtensionId(kIdFooHashed), Manifest::TYPE_UNKNOWN,
+                    ManifestLocation::kInvalidLocation, -1,
+                    Feature::UNSPECIFIED_PLATFORM, kUnspecifiedContextId)
                 .result());
   EXPECT_EQ(Feature::NOT_FOUND_IN_ALLOWLIST,
             feature
                 .IsAvailableToManifest(
                     HashedExtensionId("slightlytoooolongforanextensionid"),
                     Manifest::TYPE_UNKNOWN, ManifestLocation::kInvalidLocation,
-                    -1, Feature::UNSPECIFIED_PLATFORM)
+                    -1, Feature::UNSPECIFIED_PLATFORM, kUnspecifiedContextId)
                 .result());
   EXPECT_EQ(Feature::NOT_FOUND_IN_ALLOWLIST,
             feature
                 .IsAvailableToManifest(
                     HashedExtensionId("tooshortforanextensionid"),
                     Manifest::TYPE_UNKNOWN, ManifestLocation::kInvalidLocation,
-                    -1, Feature::UNSPECIFIED_PLATFORM)
+                    -1, Feature::UNSPECIFIED_PLATFORM, kUnspecifiedContextId)
                 .result());
 }
 
@@ -215,28 +227,31 @@
             feature
                 .IsAvailableToManifest(kIdFoo, Manifest::TYPE_UNKNOWN,
                                        ManifestLocation::kInvalidLocation, -1,
-                                       Feature::UNSPECIFIED_PLATFORM)
+                                       Feature::UNSPECIFIED_PLATFORM,
+                                       kUnspecifiedContextId)
                 .result());
   EXPECT_EQ(Feature::FOUND_IN_BLOCKLIST,
             feature
                 .IsAvailableToManifest(kIdBar, Manifest::TYPE_UNKNOWN,
                                        ManifestLocation::kInvalidLocation, -1,
-                                       Feature::UNSPECIFIED_PLATFORM)
+                                       Feature::UNSPECIFIED_PLATFORM,
+                                       kUnspecifiedContextId)
                 .result());
 
   EXPECT_EQ(Feature::IS_AVAILABLE,
             feature
                 .IsAvailableToManifest(kIdBaz, Manifest::TYPE_UNKNOWN,
                                        ManifestLocation::kInvalidLocation, -1,
-                                       Feature::UNSPECIFIED_PLATFORM)
+                                       Feature::UNSPECIFIED_PLATFORM,
+                                       kUnspecifiedContextId)
                 .result());
-  EXPECT_EQ(
-      Feature::IS_AVAILABLE,
-      feature
-          .IsAvailableToManifest(HashedExtensionId(), Manifest::TYPE_UNKNOWN,
-                                 ManifestLocation::kInvalidLocation, -1,
-                                 Feature::UNSPECIFIED_PLATFORM)
-          .result());
+  EXPECT_EQ(Feature::IS_AVAILABLE,
+            feature
+                .IsAvailableToManifest(
+                    HashedExtensionId(), Manifest::TYPE_UNKNOWN,
+                    ManifestLocation::kInvalidLocation, -1,
+                    Feature::UNSPECIFIED_PLATFORM, kUnspecifiedContextId)
+                .result());
 }
 
 TEST_F(SimpleFeatureTest, HashedIdBlocklist) {
@@ -250,31 +265,31 @@
 
   EXPECT_EQ(Feature::FOUND_IN_BLOCKLIST,
             feature
-                .IsAvailableToManifest(HashedExtensionId(kIdFoo),
-                                       Manifest::TYPE_UNKNOWN,
-                                       ManifestLocation::kInvalidLocation, -1,
-                                       Feature::UNSPECIFIED_PLATFORM)
+                .IsAvailableToManifest(
+                    HashedExtensionId(kIdFoo), Manifest::TYPE_UNKNOWN,
+                    ManifestLocation::kInvalidLocation, -1,
+                    Feature::UNSPECIFIED_PLATFORM, kUnspecifiedContextId)
                 .result());
   EXPECT_NE(Feature::FOUND_IN_BLOCKLIST,
             feature
-                .IsAvailableToManifest(HashedExtensionId(kIdFooHashed),
-                                       Manifest::TYPE_UNKNOWN,
-                                       ManifestLocation::kInvalidLocation, -1,
-                                       Feature::UNSPECIFIED_PLATFORM)
+                .IsAvailableToManifest(
+                    HashedExtensionId(kIdFooHashed), Manifest::TYPE_UNKNOWN,
+                    ManifestLocation::kInvalidLocation, -1,
+                    Feature::UNSPECIFIED_PLATFORM, kUnspecifiedContextId)
                 .result());
   EXPECT_EQ(Feature::IS_AVAILABLE,
             feature
                 .IsAvailableToManifest(
                     HashedExtensionId("slightlytoooolongforanextensionid"),
                     Manifest::TYPE_UNKNOWN, ManifestLocation::kInvalidLocation,
-                    -1, Feature::UNSPECIFIED_PLATFORM)
+                    -1, Feature::UNSPECIFIED_PLATFORM, kUnspecifiedContextId)
                 .result());
   EXPECT_EQ(Feature::IS_AVAILABLE,
             feature
                 .IsAvailableToManifest(
                     HashedExtensionId("tooshortforanextensionid"),
                     Manifest::TYPE_UNKNOWN, ManifestLocation::kInvalidLocation,
-                    -1, Feature::UNSPECIFIED_PLATFORM)
+                    -1, Feature::UNSPECIFIED_PLATFORM, kUnspecifiedContextId)
                 .result());
 }
 
@@ -283,35 +298,35 @@
   feature.set_extension_types(
       {Manifest::TYPE_EXTENSION, Manifest::TYPE_LEGACY_PACKAGED_APP});
 
-  EXPECT_EQ(
-      Feature::IS_AVAILABLE,
-      feature
-          .IsAvailableToManifest(HashedExtensionId(), Manifest::TYPE_EXTENSION,
-                                 ManifestLocation::kInvalidLocation, -1,
-                                 Feature::UNSPECIFIED_PLATFORM)
-          .result());
   EXPECT_EQ(Feature::IS_AVAILABLE,
             feature
-                .IsAvailableToManifest(HashedExtensionId(),
-                                       Manifest::TYPE_LEGACY_PACKAGED_APP,
-                                       ManifestLocation::kInvalidLocation, -1,
-                                       Feature::UNSPECIFIED_PLATFORM)
+                .IsAvailableToManifest(
+                    HashedExtensionId(), Manifest::TYPE_EXTENSION,
+                    ManifestLocation::kInvalidLocation, -1,
+                    Feature::UNSPECIFIED_PLATFORM, kUnspecifiedContextId)
+                .result());
+  EXPECT_EQ(Feature::IS_AVAILABLE,
+            feature
+                .IsAvailableToManifest(
+                    HashedExtensionId(), Manifest::TYPE_LEGACY_PACKAGED_APP,
+                    ManifestLocation::kInvalidLocation, -1,
+                    Feature::UNSPECIFIED_PLATFORM, kUnspecifiedContextId)
                 .result());
 
-  EXPECT_EQ(
-      Feature::INVALID_TYPE,
-      feature
-          .IsAvailableToManifest(HashedExtensionId(), Manifest::TYPE_UNKNOWN,
-                                 ManifestLocation::kInvalidLocation, -1,
-                                 Feature::UNSPECIFIED_PLATFORM)
-          .result());
-  EXPECT_EQ(
-      Feature::INVALID_TYPE,
-      feature
-          .IsAvailableToManifest(HashedExtensionId(), Manifest::TYPE_THEME,
-                                 ManifestLocation::kInvalidLocation, -1,
-                                 Feature::UNSPECIFIED_PLATFORM)
-          .result());
+  EXPECT_EQ(Feature::INVALID_TYPE,
+            feature
+                .IsAvailableToManifest(
+                    HashedExtensionId(), Manifest::TYPE_UNKNOWN,
+                    ManifestLocation::kInvalidLocation, -1,
+                    Feature::UNSPECIFIED_PLATFORM, kUnspecifiedContextId)
+                .result());
+  EXPECT_EQ(Feature::INVALID_TYPE,
+            feature
+                .IsAvailableToManifest(
+                    HashedExtensionId(), Manifest::TYPE_THEME,
+                    ManifestLocation::kInvalidLocation, -1,
+                    Feature::UNSPECIFIED_PLATFORM, kUnspecifiedContextId)
+                .result());
 }
 
 TEST_F(SimpleFeatureTest, Context) {
@@ -339,9 +354,9 @@
   feature.set_allowlist({"monkey"});
   EXPECT_EQ(Feature::NOT_FOUND_IN_ALLOWLIST,
             feature
-                .IsAvailableToContext(extension.get(),
-                                      Feature::BLESSED_EXTENSION_CONTEXT,
-                                      Feature::CHROMEOS_PLATFORM)
+                .IsAvailableToContext(
+                    extension.get(), Feature::BLESSED_EXTENSION_CONTEXT,
+                    Feature::CHROMEOS_PLATFORM, kUnspecifiedContextId)
                 .result());
   feature.set_allowlist({});
 
@@ -349,7 +364,7 @@
   {
     Feature::Availability availability = feature.IsAvailableToContext(
         extension.get(), Feature::BLESSED_EXTENSION_CONTEXT,
-        Feature::CHROMEOS_PLATFORM);
+        Feature::CHROMEOS_PLATFORM, kUnspecifiedContextId);
     EXPECT_EQ(Feature::INVALID_TYPE, availability.result());
     EXPECT_EQ("'somefeature' is only allowed for themes, "
               "but this is a legacy packaged app.",
@@ -362,7 +377,7 @@
   {
     Feature::Availability availability = feature.IsAvailableToContext(
         extension.get(), Feature::BLESSED_EXTENSION_CONTEXT,
-        Feature::CHROMEOS_PLATFORM);
+        Feature::CHROMEOS_PLATFORM, kUnspecifiedContextId);
     EXPECT_EQ(Feature::INVALID_CONTEXT, availability.result());
     EXPECT_EQ("'somefeature' is only allowed to run in extension iframes and "
               "content scripts, but this is a privileged page",
@@ -375,7 +390,7 @@
   {
     Feature::Availability availability = feature.IsAvailableToContext(
         extension.get(), Feature::BLESSED_EXTENSION_CONTEXT,
-        Feature::CHROMEOS_PLATFORM);
+        Feature::CHROMEOS_PLATFORM, kUnspecifiedContextId);
     EXPECT_EQ(Feature::INVALID_CONTEXT, availability.result());
     EXPECT_EQ("'somefeature' is only allowed to run in extension iframes, "
               "content scripts, and web pages, but this is a privileged page",
@@ -387,21 +402,24 @@
     other_feature.set_location(SimpleFeature::COMPONENT_LOCATION);
     EXPECT_EQ(Feature::INVALID_LOCATION,
               other_feature
-                  .IsAvailableToContext(extension.get(),
-                                        Feature::BLESSED_EXTENSION_CONTEXT,
-                                        Feature::CHROMEOS_PLATFORM)
+                  .IsAvailableToContext(
+                      extension.get(), Feature::BLESSED_EXTENSION_CONTEXT,
+                      Feature::CHROMEOS_PLATFORM, kUnspecifiedContextId)
                   .result());
   }
 
   feature.set_contexts({Feature::BLESSED_EXTENSION_CONTEXT});
-  EXPECT_EQ(Feature::INVALID_PLATFORM, feature.IsAvailableToContext(
-      extension.get(), Feature::BLESSED_EXTENSION_CONTEXT,
-      Feature::UNSPECIFIED_PLATFORM).result());
+  EXPECT_EQ(Feature::INVALID_PLATFORM,
+            feature
+                .IsAvailableToContext(
+                    extension.get(), Feature::BLESSED_EXTENSION_CONTEXT,
+                    Feature::UNSPECIFIED_PLATFORM, kUnspecifiedContextId)
+                .result());
 
   {
     Feature::Availability availability = feature.IsAvailableToContext(
         extension.get(), Feature::LOCK_SCREEN_EXTENSION_CONTEXT,
-        Feature::CHROMEOS_PLATFORM);
+        Feature::CHROMEOS_PLATFORM, kUnspecifiedContextId);
     EXPECT_EQ(Feature::INVALID_CONTEXT, availability.result());
     EXPECT_EQ(
         "'somefeature' is only allowed to run in privileged pages, "
@@ -413,21 +431,27 @@
 
   EXPECT_EQ(Feature::IS_AVAILABLE,
             feature
-                .IsAvailableToContext(extension.get(),
-                                      Feature::LOCK_SCREEN_EXTENSION_CONTEXT,
-                                      Feature::CHROMEOS_PLATFORM)
+                .IsAvailableToContext(
+                    extension.get(), Feature::LOCK_SCREEN_EXTENSION_CONTEXT,
+                    Feature::CHROMEOS_PLATFORM, kUnspecifiedContextId)
                 .result());
 
   feature.set_min_manifest_version(22);
-  EXPECT_EQ(Feature::INVALID_MIN_MANIFEST_VERSION, feature.IsAvailableToContext(
-      extension.get(), Feature::BLESSED_EXTENSION_CONTEXT,
-      Feature::CHROMEOS_PLATFORM).result());
+  EXPECT_EQ(Feature::INVALID_MIN_MANIFEST_VERSION,
+            feature
+                .IsAvailableToContext(
+                    extension.get(), Feature::BLESSED_EXTENSION_CONTEXT,
+                    Feature::CHROMEOS_PLATFORM, kUnspecifiedContextId)
+                .result());
   feature.set_min_manifest_version(21);
 
   feature.set_max_manifest_version(18);
-  EXPECT_EQ(Feature::INVALID_MAX_MANIFEST_VERSION, feature.IsAvailableToContext(
-      extension.get(), Feature::BLESSED_EXTENSION_CONTEXT,
-      Feature::CHROMEOS_PLATFORM).result());
+  EXPECT_EQ(Feature::INVALID_MAX_MANIFEST_VERSION,
+            feature
+                .IsAvailableToContext(
+                    extension.get(), Feature::BLESSED_EXTENSION_CONTEXT,
+                    Feature::CHROMEOS_PLATFORM, kUnspecifiedContextId)
+                .result());
   feature.set_max_manifest_version(25);
 }
 
@@ -531,18 +555,18 @@
 
     EXPECT_EQ(kTestData[i].expected_availability,
               feature
-                  .IsAvailableToContext(extension.get(),
-                                        Feature::BLESSED_EXTENSION_CONTEXT,
-                                        Feature::CHROMEOS_PLATFORM)
+                  .IsAvailableToContext(
+                      extension.get(), Feature::BLESSED_EXTENSION_CONTEXT,
+                      Feature::CHROMEOS_PLATFORM, kUnspecifiedContextId)
                   .result())
         << "Failed test '" << kTestData[i].desc << "'.";
 
     EXPECT_EQ(kTestData[i].expected_availability,
               feature
-                  .IsAvailableToManifest(extension->hashed_id(),
-                                         Manifest::TYPE_UNKNOWN,
-                                         ManifestLocation::kInvalidLocation, -1,
-                                         Feature::CHROMEOS_PLATFORM)
+                  .IsAvailableToManifest(
+                      extension->hashed_id(), Manifest::TYPE_UNKNOWN,
+                      ManifestLocation::kInvalidLocation, -1,
+                      Feature::CHROMEOS_PLATFORM, kUnspecifiedContextId)
                   .result())
         << "Failed test '" << kTestData[i].desc << "'.";
   }
@@ -607,79 +631,79 @@
 TEST_F(SimpleFeatureTest, Platform) {
   SimpleFeature feature;
   feature.set_platforms({Feature::CHROMEOS_PLATFORM});
-  EXPECT_EQ(
-      Feature::IS_AVAILABLE,
-      feature
-          .IsAvailableToManifest(HashedExtensionId(), Manifest::TYPE_UNKNOWN,
-                                 ManifestLocation::kInvalidLocation, -1,
-                                 Feature::CHROMEOS_PLATFORM)
-          .result());
-  EXPECT_EQ(
-      Feature::INVALID_PLATFORM,
-      feature
-          .IsAvailableToManifest(HashedExtensionId(), Manifest::TYPE_UNKNOWN,
-                                 ManifestLocation::kInvalidLocation, -1,
-                                 Feature::UNSPECIFIED_PLATFORM)
-          .result());
+  EXPECT_EQ(Feature::IS_AVAILABLE,
+            feature
+                .IsAvailableToManifest(
+                    HashedExtensionId(), Manifest::TYPE_UNKNOWN,
+                    ManifestLocation::kInvalidLocation, -1,
+                    Feature::CHROMEOS_PLATFORM, kUnspecifiedContextId)
+                .result());
+  EXPECT_EQ(Feature::INVALID_PLATFORM,
+            feature
+                .IsAvailableToManifest(
+                    HashedExtensionId(), Manifest::TYPE_UNKNOWN,
+                    ManifestLocation::kInvalidLocation, -1,
+                    Feature::UNSPECIFIED_PLATFORM, kUnspecifiedContextId)
+                .result());
 }
 
 TEST_F(SimpleFeatureTest, ManifestVersion) {
   SimpleFeature feature;
   feature.set_min_manifest_version(5);
 
-  EXPECT_EQ(
-      Feature::INVALID_MIN_MANIFEST_VERSION,
-      feature
-          .IsAvailableToManifest(HashedExtensionId(), Manifest::TYPE_UNKNOWN,
-                                 ManifestLocation::kInvalidLocation, 0,
-                                 Feature::UNSPECIFIED_PLATFORM)
-          .result());
-  EXPECT_EQ(
-      Feature::INVALID_MIN_MANIFEST_VERSION,
-      feature
-          .IsAvailableToManifest(HashedExtensionId(), Manifest::TYPE_UNKNOWN,
-                                 ManifestLocation::kInvalidLocation, 4,
-                                 Feature::UNSPECIFIED_PLATFORM)
-          .result());
+  EXPECT_EQ(Feature::INVALID_MIN_MANIFEST_VERSION,
+            feature
+                .IsAvailableToManifest(
+                    HashedExtensionId(), Manifest::TYPE_UNKNOWN,
+                    ManifestLocation::kInvalidLocation, 0,
+                    Feature::UNSPECIFIED_PLATFORM, kUnspecifiedContextId)
+                .result());
+  EXPECT_EQ(Feature::INVALID_MIN_MANIFEST_VERSION,
+            feature
+                .IsAvailableToManifest(
+                    HashedExtensionId(), Manifest::TYPE_UNKNOWN,
+                    ManifestLocation::kInvalidLocation, 4,
+                    Feature::UNSPECIFIED_PLATFORM, kUnspecifiedContextId)
+                .result());
 
-  EXPECT_EQ(
-      Feature::IS_AVAILABLE,
-      feature
-          .IsAvailableToManifest(HashedExtensionId(), Manifest::TYPE_UNKNOWN,
-                                 ManifestLocation::kInvalidLocation, 5,
-                                 Feature::UNSPECIFIED_PLATFORM)
-          .result());
-  EXPECT_EQ(
-      Feature::IS_AVAILABLE,
-      feature
-          .IsAvailableToManifest(HashedExtensionId(), Manifest::TYPE_UNKNOWN,
-                                 ManifestLocation::kInvalidLocation, 10,
-                                 Feature::UNSPECIFIED_PLATFORM)
-          .result());
+  EXPECT_EQ(Feature::IS_AVAILABLE,
+            feature
+                .IsAvailableToManifest(
+                    HashedExtensionId(), Manifest::TYPE_UNKNOWN,
+                    ManifestLocation::kInvalidLocation, 5,
+                    Feature::UNSPECIFIED_PLATFORM, kUnspecifiedContextId)
+                .result());
+  EXPECT_EQ(Feature::IS_AVAILABLE,
+            feature
+                .IsAvailableToManifest(
+                    HashedExtensionId(), Manifest::TYPE_UNKNOWN,
+                    ManifestLocation::kInvalidLocation, 10,
+                    Feature::UNSPECIFIED_PLATFORM, kUnspecifiedContextId)
+                .result());
 
   feature.set_max_manifest_version(8);
 
-  EXPECT_EQ(
-      Feature::INVALID_MAX_MANIFEST_VERSION,
-      feature
-          .IsAvailableToManifest(HashedExtensionId(), Manifest::TYPE_UNKNOWN,
-                                 ManifestLocation::kInvalidLocation, 10,
-                                 Feature::UNSPECIFIED_PLATFORM)
-          .result());
-  EXPECT_EQ(
-      Feature::IS_AVAILABLE,
-      feature
-          .IsAvailableToManifest(HashedExtensionId(), Manifest::TYPE_UNKNOWN,
-                                 ManifestLocation::kInvalidLocation, 8,
-                                 Feature::UNSPECIFIED_PLATFORM)
-          .result());
-  EXPECT_EQ(
-      Feature::IS_AVAILABLE,
-      feature
-          .IsAvailableToManifest(HashedExtensionId(), Manifest::TYPE_UNKNOWN,
-                                 ManifestLocation::kInvalidLocation, 7,
-                                 Feature::UNSPECIFIED_PLATFORM)
-          .result());
+  EXPECT_EQ(Feature::INVALID_MAX_MANIFEST_VERSION,
+            feature
+                .IsAvailableToManifest(
+                    HashedExtensionId(), Manifest::TYPE_UNKNOWN,
+                    ManifestLocation::kInvalidLocation, 10,
+                    Feature::UNSPECIFIED_PLATFORM, kUnspecifiedContextId)
+                .result());
+  EXPECT_EQ(Feature::IS_AVAILABLE,
+            feature
+                .IsAvailableToManifest(
+                    HashedExtensionId(), Manifest::TYPE_UNKNOWN,
+                    ManifestLocation::kInvalidLocation, 8,
+                    Feature::UNSPECIFIED_PLATFORM, kUnspecifiedContextId)
+                .result());
+  EXPECT_EQ(Feature::IS_AVAILABLE,
+            feature
+                .IsAvailableToManifest(
+                    HashedExtensionId(), Manifest::TYPE_UNKNOWN,
+                    ManifestLocation::kInvalidLocation, 7,
+                    Feature::UNSPECIFIED_PLATFORM, kUnspecifiedContextId)
+                .result());
 }
 
 TEST_F(SimpleFeatureTest, CommandLineSwitch) {
@@ -687,39 +711,39 @@
   feature.set_command_line_switch("laser-beams");
   {
     EXPECT_EQ(Feature::MISSING_COMMAND_LINE_SWITCH,
-              feature.IsAvailableToEnvironment().result());
+              feature.IsAvailableToEnvironment(kUnspecifiedContextId).result());
   }
   {
     base::test::ScopedCommandLine scoped_command_line;
     scoped_command_line.GetProcessCommandLine()->AppendSwitch("laser-beams");
     EXPECT_EQ(Feature::MISSING_COMMAND_LINE_SWITCH,
-              feature.IsAvailableToEnvironment().result());
+              feature.IsAvailableToEnvironment(kUnspecifiedContextId).result());
   }
   {
     base::test::ScopedCommandLine scoped_command_line;
     scoped_command_line.GetProcessCommandLine()->AppendSwitch(
         "enable-laser-beams");
     EXPECT_EQ(Feature::IS_AVAILABLE,
-              feature.IsAvailableToEnvironment().result());
+              feature.IsAvailableToEnvironment(kUnspecifiedContextId).result());
   }
   {
     base::test::ScopedCommandLine scoped_command_line;
     scoped_command_line.GetProcessCommandLine()->AppendSwitch(
         "disable-laser-beams");
     EXPECT_EQ(Feature::MISSING_COMMAND_LINE_SWITCH,
-              feature.IsAvailableToEnvironment().result());
+              feature.IsAvailableToEnvironment(kUnspecifiedContextId).result());
   }
   {
     base::test::ScopedCommandLine scoped_command_line;
     scoped_command_line.GetProcessCommandLine()->AppendSwitch("laser-beams=1");
     EXPECT_EQ(Feature::IS_AVAILABLE,
-              feature.IsAvailableToEnvironment().result());
+              feature.IsAvailableToEnvironment(kUnspecifiedContextId).result());
   }
   {
     base::test::ScopedCommandLine scoped_command_line;
     scoped_command_line.GetProcessCommandLine()->AppendSwitch("laser-beams=0");
     EXPECT_EQ(Feature::MISSING_COMMAND_LINE_SWITCH,
-              feature.IsAvailableToEnvironment().result());
+              feature.IsAvailableToEnvironment(kUnspecifiedContextId).result());
   }
 }
 
@@ -733,21 +757,25 @@
   SimpleFeature simple_feature_1;
   simple_feature_1.set_feature_flag(features[0].name);
   EXPECT_EQ(Feature::IS_AVAILABLE,
-            simple_feature_1.IsAvailableToEnvironment().result());
+            simple_feature_1.IsAvailableToEnvironment(kUnspecifiedContextId)
+                .result());
 
   SimpleFeature simple_feature_2;
   simple_feature_2.set_feature_flag(features[1].name);
   EXPECT_EQ(Feature::FEATURE_FLAG_DISABLED,
-            simple_feature_2.IsAvailableToEnvironment().result());
+            simple_feature_2.IsAvailableToEnvironment(kUnspecifiedContextId)
+                .result());
 
   // Ensure we take any base::Feature overrides into account.
   base::test::ScopedFeatureList scoped_feature_list;
   scoped_feature_list.InitWithFeatures({features[1]} /* enabled_features */,
                                        {features[0]} /* disabled_features */);
   EXPECT_EQ(Feature::FEATURE_FLAG_DISABLED,
-            simple_feature_1.IsAvailableToEnvironment().result());
+            simple_feature_1.IsAvailableToEnvironment(kUnspecifiedContextId)
+                .result());
   EXPECT_EQ(Feature::IS_AVAILABLE,
-            simple_feature_2.IsAvailableToEnvironment().result());
+            simple_feature_2.IsAvailableToEnvironment(kUnspecifiedContextId)
+                .result());
 }
 
 TEST_F(SimpleFeatureTest, IsIdInArray) {
@@ -860,15 +888,16 @@
               feature
                   ->IsAvailableToManifest(kId1, Manifest::TYPE_EXTENSION,
                                           ManifestLocation::kInvalidLocation,
-                                          Feature::UNSPECIFIED_PLATFORM)
+                                          Feature::UNSPECIFIED_PLATFORM,
+                                          kUnspecifiedContextId)
                   .result());
-    EXPECT_EQ(
-        Feature::IS_AVAILABLE,
-        feature
-            ->IsAvailableToManifest(kId2, Manifest::TYPE_LEGACY_PACKAGED_APP,
-                                    ManifestLocation::kInvalidLocation,
-                                    Feature::UNSPECIFIED_PLATFORM)
-            .result());
+    EXPECT_EQ(Feature::IS_AVAILABLE,
+              feature
+                  ->IsAvailableToManifest(
+                      kId2, Manifest::TYPE_LEGACY_PACKAGED_APP,
+                      ManifestLocation::kInvalidLocation,
+                      Feature::UNSPECIFIED_PLATFORM, kUnspecifiedContextId)
+                  .result());
   }
   {
     ScopedCurrentChannel current_channel(Channel::STABLE);
@@ -876,15 +905,16 @@
               feature
                   ->IsAvailableToManifest(kId1, Manifest::TYPE_EXTENSION,
                                           ManifestLocation::kInvalidLocation,
-                                          Feature::UNSPECIFIED_PLATFORM)
+                                          Feature::UNSPECIFIED_PLATFORM,
+                                          kUnspecifiedContextId)
                   .result());
-    EXPECT_NE(
-        Feature::IS_AVAILABLE,
-        feature
-            ->IsAvailableToManifest(kId2, Manifest::TYPE_LEGACY_PACKAGED_APP,
-                                    ManifestLocation::kInvalidLocation,
-                                    Feature::UNSPECIFIED_PLATFORM)
-            .result());
+    EXPECT_NE(Feature::IS_AVAILABLE,
+              feature
+                  ->IsAvailableToManifest(
+                      kId2, Manifest::TYPE_LEGACY_PACKAGED_APP,
+                      ManifestLocation::kInvalidLocation,
+                      Feature::UNSPECIFIED_PLATFORM, kUnspecifiedContextId)
+                  .result());
   }
 }
 
@@ -915,18 +945,19 @@
               feature
                   ->IsAvailableToManifest(kId1, Manifest::TYPE_EXTENSION,
                                           ManifestLocation::kInvalidLocation,
-                                          Feature::UNSPECIFIED_PLATFORM)
+                                          Feature::UNSPECIFIED_PLATFORM,
+                                          kUnspecifiedContextId)
                   .result());
   }
   {
     ScopedCurrentChannel current_channel(Channel::BETA);
-    EXPECT_EQ(
-        Feature::IS_AVAILABLE,
-        feature
-            ->IsAvailableToManifest(kId2, Manifest::TYPE_LEGACY_PACKAGED_APP,
-                                    ManifestLocation::kInvalidLocation,
-                                    Feature::UNSPECIFIED_PLATFORM)
-            .result());
+    EXPECT_EQ(Feature::IS_AVAILABLE,
+              feature
+                  ->IsAvailableToManifest(
+                      kId2, Manifest::TYPE_LEGACY_PACKAGED_APP,
+                      ManifestLocation::kInvalidLocation,
+                      Feature::UNSPECIFIED_PLATFORM, kUnspecifiedContextId)
+                  .result());
   }
   {
     ScopedCurrentChannel current_channel(Channel::BETA);
@@ -934,7 +965,8 @@
               feature
                   ->IsAvailableToManifest(kId1, Manifest::TYPE_EXTENSION,
                                           ManifestLocation::kInvalidLocation,
-                                          Feature::UNSPECIFIED_PLATFORM)
+                                          Feature::UNSPECIFIED_PLATFORM,
+                                          kUnspecifiedContextId)
                   .result());
   }
 }
@@ -955,7 +987,7 @@
     EXPECT_EQ(Feature::IS_AVAILABLE,
               feature
                   .IsAvailableToContext(nullptr, Feature::WEBUI_CONTEXT,
-                                        kAllowlistedUrl)
+                                        kAllowlistedUrl, kUnspecifiedContextId)
                   .result());
   }
   {
@@ -964,7 +996,7 @@
     EXPECT_EQ(Feature::UNSUPPORTED_CHANNEL,
               feature
                   .IsAvailableToContext(nullptr, Feature::WEBUI_CONTEXT,
-                                        kAllowlistedUrl)
+                                        kAllowlistedUrl, kUnspecifiedContextId)
                   .result());
   }
 }
@@ -978,7 +1010,7 @@
     feature.set_extension_types({Manifest::TYPE_EXTENSION});
     feature.set_contexts({Feature::BLESSED_EXTENSION_CONTEXT});
     EXPECT_EQ(Feature::IS_AVAILABLE,
-              feature.IsAvailableToEnvironment().result());
+              feature.IsAvailableToEnvironment(kUnspecifiedContextId).result());
   }
 
   {
@@ -987,13 +1019,15 @@
     feature.set_channel(Channel::BETA);
     {
       ScopedCurrentChannel current_channel(Channel::BETA);
-      EXPECT_EQ(Feature::IS_AVAILABLE,
-                feature.IsAvailableToEnvironment().result());
+      EXPECT_EQ(
+          Feature::IS_AVAILABLE,
+          feature.IsAvailableToEnvironment(kUnspecifiedContextId).result());
     }
     {
       ScopedCurrentChannel current_channel(Channel::STABLE);
-      EXPECT_EQ(Feature::UNSUPPORTED_CHANNEL,
-                feature.IsAvailableToEnvironment().result());
+      EXPECT_EQ(
+          Feature::UNSUPPORTED_CHANNEL,
+          feature.IsAvailableToEnvironment(kUnspecifiedContextId).result());
     }
   }
 
@@ -1004,13 +1038,14 @@
     feature.set_command_line_switch(kFakeSwitch);
 
     EXPECT_EQ(Feature::MISSING_COMMAND_LINE_SWITCH,
-              feature.IsAvailableToEnvironment().result());
+              feature.IsAvailableToEnvironment(kUnspecifiedContextId).result());
     {
       base::test::ScopedCommandLine command_line;
       command_line.GetProcessCommandLine()->AppendSwitch(
           base::StringPrintf("enable-%s", kFakeSwitch));
-      EXPECT_EQ(Feature::IS_AVAILABLE,
-                feature.IsAvailableToEnvironment().result());
+      EXPECT_EQ(
+          Feature::IS_AVAILABLE,
+          feature.IsAvailableToEnvironment(kUnspecifiedContextId).result());
     }
   }
 
@@ -1024,7 +1059,7 @@
   auto test_feature = []() {
     SimpleFeature feature;
     feature.set_channel(version_info::Channel::UNKNOWN);
-    return feature.IsAvailableToEnvironment().result();
+    return feature.IsAvailableToEnvironment(kUnspecifiedContextId).result();
   };
 
   {
@@ -1040,6 +1075,36 @@
   }
 }
 
+TEST_F(SimpleFeatureTest, DeveloperModeOnly) {
+  constexpr int kContextId1 = 1;
+  constexpr int kContextId2 = 2;
+  SimpleFeature feature;
+
+  EXPECT_EQ(Feature::IS_AVAILABLE,
+            feature.IsAvailableToEnvironment(kContextId1).result());
+  EXPECT_EQ(Feature::IS_AVAILABLE,
+            feature.IsAvailableToEnvironment(kContextId2).result());
+
+  SetCurrentDeveloperMode(kContextId1, true);
+  EXPECT_EQ(Feature::IS_AVAILABLE,
+            feature.IsAvailableToEnvironment(kContextId1).result());
+
+  SetCurrentDeveloperMode(kContextId2, true);
+  EXPECT_EQ(Feature::IS_AVAILABLE,
+            feature.IsAvailableToEnvironment(kContextId2).result());
+
+  feature.set_developer_mode_only(true);
+  SetCurrentDeveloperMode(kContextId1, false);
+  EXPECT_EQ(Feature::REQUIRES_DEVELOPER_MODE,
+            feature.IsAvailableToEnvironment(kContextId1).result());
+  EXPECT_EQ(Feature::IS_AVAILABLE,
+            feature.IsAvailableToEnvironment(kContextId2).result());
+
+  SetCurrentDeveloperMode(kContextId1, true);
+  EXPECT_EQ(Feature::IS_AVAILABLE,
+            feature.IsAvailableToEnvironment(kContextId1).result());
+}
+
 TEST(SimpleFeatureUnitTest, DisallowForServiceWorkers) {
   SimpleFeature feature;
   feature.set_name("somefeature");
@@ -1060,17 +1125,17 @@
                     extension.get(), Feature::BLESSED_EXTENSION_CONTEXT,
                     extension->GetResourceURL(
                         ExtensionBuilder::kServiceWorkerScriptFile),
-                    Feature::CHROMEOS_PLATFORM)
+                    Feature::CHROMEOS_PLATFORM, kUnspecifiedContextId)
                 .result());
 
   // Check with a different script file, which should return available,
   // since it's not a service worker context.
   EXPECT_EQ(Feature::IS_AVAILABLE,
             feature
-                .IsAvailableToContext(extension.get(),
-                                      Feature::BLESSED_EXTENSION_CONTEXT,
-                                      extension->GetResourceURL("other.js"),
-                                      Feature::CHROMEOS_PLATFORM)
+                .IsAvailableToContext(
+                    extension.get(), Feature::BLESSED_EXTENSION_CONTEXT,
+                    extension->GetResourceURL("other.js"),
+                    Feature::CHROMEOS_PLATFORM, kUnspecifiedContextId)
                 .result());
 
   // Disable the feature for service workers. The feature should be disallowed.
@@ -1081,7 +1146,7 @@
                     extension.get(), Feature::BLESSED_EXTENSION_CONTEXT,
                     extension->GetResourceURL(
                         ExtensionBuilder::kServiceWorkerScriptFile),
-                    Feature::CHROMEOS_PLATFORM)
+                    Feature::CHROMEOS_PLATFORM, kUnspecifiedContextId)
                 .result());
 }
 
diff --git a/extensions/common/manifest.cc b/extensions/common/manifest.cc
index a6267d6e..ecd2c6e 100644
--- a/extensions/common/manifest.cc
+++ b/extensions/common/manifest.cc
@@ -165,9 +165,9 @@
       return true;
 
     return feature
-        ->IsAvailableToManifest(manifest.hashed_id(), manifest.type(),
-                                manifest.location(),
-                                manifest.manifest_version())
+        ->IsAvailableToManifest(
+            manifest.hashed_id(), manifest.type(), manifest.location(),
+            manifest.manifest_version(), kUnspecifiedContextId)
         .is_available();
   }
 
@@ -296,7 +296,7 @@
       continue;
 
     Feature::Availability result = map_entry.second->IsAvailableToManifest(
-        hashed_id_, type_, location_, manifest_version_);
+        hashed_id_, type_, location_, manifest_version_, kUnspecifiedContextId);
     if (!result.is_available())
       warnings->push_back(InstallWarning(result.message(), map_entry.first));
   }
diff --git a/gpu/config/gpu_finch_features.cc b/gpu/config/gpu_finch_features.cc
index 2625014..bd44aa78 100644
--- a/gpu/config/gpu_finch_features.cc
+++ b/gpu/config/gpu_finch_features.cc
@@ -125,7 +125,7 @@
 // Android and Linux.
 const base::Feature kDefaultEnableGpuRasterization{
   "DefaultEnableGpuRasterization",
-#if BUILDFLAG(IS_MAC) || BUILDFLAG(IS_WIN) || BUILDFLAG(IS_CHROMEOS_ASH) || \
+#if BUILDFLAG(IS_MAC) || BUILDFLAG(IS_WIN) || BUILDFLAG(IS_CHROMEOS) || \
     BUILDFLAG(IS_ANDROID) || BUILDFLAG(IS_FUCHSIA) || BUILDFLAG(IS_LINUX)
       base::FEATURE_ENABLED_BY_DEFAULT
 #else
diff --git a/ios/chrome/browser/providers/ui_utils/chromium_logo_controller.mm b/ios/chrome/browser/providers/ui_utils/chromium_logo_controller.mm
index b3f12fa..65f3fbd0 100644
--- a/ios/chrome/browser/providers/ui_utils/chromium_logo_controller.mm
+++ b/ios/chrome/browser/providers/ui_utils/chromium_logo_controller.mm
@@ -31,6 +31,10 @@
   return false;
 }
 
+- (void)setWebState:(web::WebState*)webState {
+  // Do nothing.
+}
+
 - (id<LogoAnimationControllerOwner>)logoAnimationControllerOwner {
   return nil;
 }
diff --git a/ios/chrome/browser/ui/autofill/manual_fill/password_view_controller_egtest.mm b/ios/chrome/browser/ui/autofill/manual_fill/password_view_controller_egtest.mm
index 99a0646..6a2cb7f 100644
--- a/ios/chrome/browser/ui/autofill/manual_fill/password_view_controller_egtest.mm
+++ b/ios/chrome/browser/ui/autofill/manual_fill/password_view_controller_egtest.mm
@@ -163,9 +163,16 @@
   [[EarlGrey selectElementWithMatcher:ManualFallbackManagePasswordsMatcher()]
       performAction:grey_tap()];
 
-  // Verify the password settings opened.
-  [[EarlGrey selectElementWithMatcher:SettingsPasswordMatcher()]
-      assertWithMatcher:grey_sufficientlyVisible()];
+  if ([ChromeEarlGrey isAddCredentialsInSettingsEnabled]) {
+    // Verify the password settings opened.
+    // Changed minimum visible percentage to 70% for Passwords table view in
+    // settings because subviews cover > 25% in smaller screens(eg. iPhone 6s).
+    [[EarlGrey selectElementWithMatcher:SettingsPasswordMatcher()]
+        assertWithMatcher:grey_minimumVisiblePercent(0.7)];
+  } else {
+    [[EarlGrey selectElementWithMatcher:SettingsPasswordMatcher()]
+        assertWithMatcher:grey_sufficientlyVisible()];
+  }
 }
 
 // Tests that returning from "Manage Passwords..." leaves the keyboard and the
diff --git a/ios/chrome/browser/ui/content_suggestions/ntp_home_mediator.mm b/ios/chrome/browser/ui/content_suggestions/ntp_home_mediator.mm
index e32343c..925d92d 100644
--- a/ios/chrome/browser/ui/content_suggestions/ntp_home_mediator.mm
+++ b/ios/chrome/browser/ui/content_suggestions/ntp_home_mediator.mm
@@ -47,6 +47,7 @@
 #import "ios/chrome/browser/ui/default_promo/default_browser_utils.h"
 #import "ios/chrome/browser/ui/ntp/discover_feed_wrapper_view_controller.h"
 #import "ios/chrome/browser/ui/ntp/feed_metrics_recorder.h"
+#import "ios/chrome/browser/ui/ntp/logo_vendor.h"
 #include "ios/chrome/browser/ui/ntp/metrics.h"
 #import "ios/chrome/browser/ui/ntp/new_tab_page_header_constants.h"
 #import "ios/chrome/browser/ui/ntp/new_tab_page_view_controller.h"
@@ -209,6 +210,9 @@
   }
   _webState = webState;
   self.NTPMetrics.webState = webState;
+  if (IsSingleNtpEnabled()) {
+    [self.logoVendor setWebState:webState];
+  }
   if (_webState && _webStateObserver) {
     if (IsSingleNtpEnabled()) {
       [self setContentOffsetForWebState:webState];
diff --git a/ios/chrome/browser/ui/ntp/logo_vendor.h b/ios/chrome/browser/ui/ntp/logo_vendor.h
index f57ef1410..5abf50ad 100644
--- a/ios/chrome/browser/ui/ntp/logo_vendor.h
+++ b/ios/chrome/browser/ui/ntp/logo_vendor.h
@@ -9,6 +9,10 @@
 
 #import "ios/chrome/browser/ui/ntp/logo_animation_controller.h"
 
+namespace web {
+class WebState;
+}  // namespace
+
 // Observer to listen for when the doodle is shown and hidden.
 @protocol DoodleObserver <NSObject>
 
@@ -36,6 +40,9 @@
 // query being issued at most once per hour.
 - (void)fetchDoodle;
 
+// Updates the vendor's WebState.
+- (void)setWebState:(web::WebState*)webState;
+
 @end
 
 #endif  // IOS_CHROME_BROWSER_UI_NTP_LOGO_VENDOR_H_
diff --git a/ios/chrome/browser/ui/overlays/infobar_banner/BUILD.gn b/ios/chrome/browser/ui/overlays/infobar_banner/BUILD.gn
index b0cbfdf..ec3a11f 100644
--- a/ios/chrome/browser/ui/overlays/infobar_banner/BUILD.gn
+++ b/ios/chrome/browser/ui/overlays/infobar_banner/BUILD.gn
@@ -50,6 +50,7 @@
     "//ios/chrome/browser/ui/overlays/infobar_banner/autofill_address_profile",
     "//ios/chrome/browser/ui/overlays/infobar_banner/confirm",
     "//ios/chrome/browser/ui/overlays/infobar_banner/passwords",
+    "//ios/chrome/browser/ui/overlays/infobar_banner/permissions",
     "//ios/chrome/browser/ui/overlays/infobar_banner/reading_list",
     "//ios/chrome/browser/ui/overlays/infobar_banner/save_card",
     "//ios/chrome/browser/ui/overlays/infobar_banner/translate:mediators",
diff --git a/ios/chrome/browser/ui/overlays/infobar_banner/infobar_banner_overlay_coordinator.mm b/ios/chrome/browser/ui/overlays/infobar_banner/infobar_banner_overlay_coordinator.mm
index 2575259..a6f1598c 100644
--- a/ios/chrome/browser/ui/overlays/infobar_banner/infobar_banner_overlay_coordinator.mm
+++ b/ios/chrome/browser/ui/overlays/infobar_banner/infobar_banner_overlay_coordinator.mm
@@ -21,6 +21,7 @@
 #import "ios/chrome/browser/ui/overlays/infobar_banner/infobar_banner_overlay_mediator.h"
 #import "ios/chrome/browser/ui/overlays/infobar_banner/passwords/save_password_infobar_banner_overlay_mediator.h"
 #import "ios/chrome/browser/ui/overlays/infobar_banner/passwords/update_password_infobar_banner_overlay_mediator.h"
+#import "ios/chrome/browser/ui/overlays/infobar_banner/permissions/permissions_infobar_banner_overlay_mediator.h"
 #import "ios/chrome/browser/ui/overlays/infobar_banner/reading_list/reading_list_infobar_banner_overlay_mediator.h"
 #import "ios/chrome/browser/ui/overlays/infobar_banner/save_card/save_card_infobar_banner_overlay_mediator.h"
 #import "ios/chrome/browser/ui/overlays/infobar_banner/translate/translate_infobar_banner_overlay_mediator.h"
@@ -56,6 +57,7 @@
     [SaveCardInfobarBannerOverlayMediator class],
     [SaveAddressProfileInfobarBannerOverlayMediator class],
     [AddToReadingListInfobarBannerOverlayMediator class],
+    [PermissionsBannerOverlayMediator class],
   ];
 }
 
diff --git a/ios/chrome/browser/ui/overlays/infobar_banner/permissions/BUILD.gn b/ios/chrome/browser/ui/overlays/infobar_banner/permissions/BUILD.gn
new file mode 100644
index 0000000..c2b333f
--- /dev/null
+++ b/ios/chrome/browser/ui/overlays/infobar_banner/permissions/BUILD.gn
@@ -0,0 +1,23 @@
+# Copyright 2022 The Chromium Authors. All rights reserved.
+# Use of this source code is governed by a BSD-style license that can be
+# found in the LICENSE file.
+
+source_set("permissions") {
+  sources = [
+    "permissions_infobar_banner_overlay_mediator.h",
+    "permissions_infobar_banner_overlay_mediator.mm",
+  ]
+
+  configs += [ "//build/config/compiler:enable_arc" ]
+
+  deps = [
+    "//base",
+    "//ios/chrome/browser/overlays",
+    "//ios/chrome/browser/overlays/public/infobar_banner",
+    "//ios/chrome/browser/overlays/public/infobar_modal",
+    "//ios/chrome/browser/ui/infobars/banners",
+    "//ios/chrome/browser/ui/overlays:coordinators",
+    "//ios/chrome/browser/ui/overlays/infobar_banner:mediators",
+    "//ui/base",
+  ]
+}
diff --git a/ios/chrome/browser/ui/overlays/infobar_banner/permissions/permissions_infobar_banner_overlay_mediator.h b/ios/chrome/browser/ui/overlays/infobar_banner/permissions/permissions_infobar_banner_overlay_mediator.h
new file mode 100644
index 0000000..f33aa43
--- /dev/null
+++ b/ios/chrome/browser/ui/overlays/infobar_banner/permissions/permissions_infobar_banner_overlay_mediator.h
@@ -0,0 +1,14 @@
+// Copyright 2022 The Chromium Authors. All rights reserved.
+// Use of this source code is governed by a BSD-style license that can be
+// found in the LICENSE file.
+
+#ifndef IOS_CHROME_BROWSER_UI_OVERLAYS_INFOBAR_BANNER_PERMISSIONS_PERMISSIONS_INFOBAR_BANNER_OVERLAY_MEDIATOR_H_
+#define IOS_CHROME_BROWSER_UI_OVERLAYS_INFOBAR_BANNER_PERMISSIONS_PERMISSIONS_INFOBAR_BANNER_OVERLAY_MEDIATOR_H_
+
+#import "ios/chrome/browser/ui/overlays/infobar_banner/infobar_banner_overlay_mediator.h"
+
+// Mediator that configures an infobar banner for the permissions infobar.
+@interface PermissionsBannerOverlayMediator : InfobarBannerOverlayMediator
+@end
+
+#endif  // IOS_CHROME_BROWSER_UI_OVERLAYS_INFOBAR_BANNER_PERMISSIONS_PERMISSIONS_INFOBAR_BANNER_OVERLAY_MEDIATOR_H_
diff --git a/ios/chrome/browser/ui/overlays/infobar_banner/permissions/permissions_infobar_banner_overlay_mediator.mm b/ios/chrome/browser/ui/overlays/infobar_banner/permissions/permissions_infobar_banner_overlay_mediator.mm
new file mode 100644
index 0000000..0a1166c
--- /dev/null
+++ b/ios/chrome/browser/ui/overlays/infobar_banner/permissions/permissions_infobar_banner_overlay_mediator.mm
@@ -0,0 +1,59 @@
+// Copyright 2022 The Chromium Authors. All rights reserved.
+// Use of this source code is governed by a BSD-style license that can be
+// found in the LICENSE file.
+
+#import "ios/chrome/browser/ui/overlays/infobar_banner/permissions/permissions_infobar_banner_overlay_mediator.h"
+
+#import "ios/chrome/browser/overlays/public/infobar_banner/permissions_infobar_banner_overlay_request_config.h"
+#import "ios/chrome/browser/ui/infobars/banners/infobar_banner_consumer.h"
+#import "ios/chrome/browser/ui/overlays/infobar_banner/infobar_banner_overlay_mediator+consumer_support.h"
+#import "ios/chrome/browser/ui/overlays/overlay_request_mediator+subclassing.h"
+
+#if !defined(__has_feature) || !__has_feature(objc_arc)
+#error "This file requires ARC support."
+#endif
+
+@interface PermissionsBannerOverlayMediator ()
+// The permissions banner config from the request.
+@property(nonatomic, readonly) PermissionsBannerRequestConfig* config;
+@end
+
+@implementation PermissionsBannerOverlayMediator
+
+#pragma mark - Accessors
+
+- (PermissionsBannerRequestConfig*)config {
+  return self.request
+             ? self.request->GetConfig<PermissionsBannerRequestConfig>()
+             : nullptr;
+}
+
+#pragma mark - OverlayRequestMediator
+
++ (const OverlayRequestSupport*)requestSupport {
+  return PermissionsBannerRequestConfig::RequestSupport();
+}
+
+#pragma mark - InfobarOverlayRequestMediator
+
+- (void)bannerInfobarButtonWasPressed:(UIButton*)sender {
+  // Present the modal if the 'Edit' button is pressed.
+  [self presentInfobarModalFromBanner];
+}
+
+@end
+
+@implementation PermissionsBannerOverlayMediator (ConsumerSupport)
+
+- (void)configureConsumer {
+  PermissionsBannerRequestConfig* config = self.config;
+  if (!self.consumer || !config)
+    return;
+
+  [self.consumer setTitleText:config->title_text()];
+  [self.consumer setButtonText:config->button_text()];
+  [self.consumer setIconImage:[UIImage imageNamed:config->icon_image_name()]];
+  [self.consumer setPresentsModal:NO];
+}
+
+@end
diff --git a/ios/chrome/browser/ui/settings/autofill/autofill_add_credit_card_egtest.mm b/ios/chrome/browser/ui/settings/autofill/autofill_add_credit_card_egtest.mm
index ea540c6a..6a571ee 100644
--- a/ios/chrome/browser/ui/settings/autofill/autofill_add_credit_card_egtest.mm
+++ b/ios/chrome/browser/ui/settings/autofill/autofill_add_credit_card_egtest.mm
@@ -22,6 +22,7 @@
 using chrome_test_util::ButtonWithAccessibilityLabelId;
 using chrome_test_util::IconViewForCellWithLabelId;
 using chrome_test_util::PaymentMethodsButton;
+using chrome_test_util::SettingsToolbarAddButton;
 using chrome_test_util::StaticTextWithAccessibilityLabelId;
 using chrome_test_util::TextFieldForCellWithLabelId;
 
@@ -104,8 +105,13 @@
   [super setUp];
   [ChromeEarlGreyUI openSettingsMenu];
   [ChromeEarlGreyUI tapSettingsMenuButton:PaymentMethodsButton()];
-  [[EarlGrey selectElementWithMatcher:AddPaymentMethodButton()]
-      performAction:grey_tap()];
+  if ([ChromeEarlGrey isAddCredentialsInSettingsEnabled]) {
+    [[EarlGrey selectElementWithMatcher:SettingsToolbarAddButton()]
+        performAction:grey_tap()];
+  } else {
+    [[EarlGrey selectElementWithMatcher:AddPaymentMethodButton()]
+        performAction:grey_tap()];
+  }
 }
 
 - (void)tearDown {
diff --git a/ios/chrome/browser/ui/settings/autofill/autofill_credit_card_settings_egtest.mm b/ios/chrome/browser/ui/settings/autofill/autofill_credit_card_settings_egtest.mm
index d379ec1d..9ba2c8f9 100644
--- a/ios/chrome/browser/ui/settings/autofill/autofill_credit_card_settings_egtest.mm
+++ b/ios/chrome/browser/ui/settings/autofill/autofill_credit_card_settings_egtest.mm
@@ -31,6 +31,7 @@
 using chrome_test_util::PaymentMethodsButton;
 using chrome_test_util::SettingsMenuBackButton;
 using chrome_test_util::SettingsDoneButton;
+using chrome_test_util::SettingsToolbarAddButton;
 using chrome_test_util::TabGridEditButton;
 
 namespace {
@@ -239,9 +240,15 @@
       performAction:chrome_test_util::TurnTableViewSwitchOn(NO)];
 
   // Expect Add Payment Method button to be disabled.
-  [[EarlGrey
-      selectElementWithMatcher:chrome_test_util::AddPaymentMethodButton()]
-      assertWithMatcher:grey_not(grey_enabled())];
+  if ([ChromeEarlGrey isAddCredentialsInSettingsEnabled]) {
+    [[EarlGrey
+        selectElementWithMatcher:chrome_test_util::SettingsToolbarAddButton()]
+        assertWithMatcher:grey_not(grey_enabled())];
+  } else {
+    [[EarlGrey
+        selectElementWithMatcher:chrome_test_util::AddPaymentMethodButton()]
+        assertWithMatcher:grey_not(grey_enabled())];
+  }
 
   // Toggle the Autofill credit cards switch back on.
   [[EarlGrey
@@ -250,9 +257,15 @@
       performAction:chrome_test_util::TurnTableViewSwitchOn(YES)];
 
   // Expect Add Payment Method button to be visible.
-  [[EarlGrey
-      selectElementWithMatcher:chrome_test_util::AddPaymentMethodButton()]
-      assertWithMatcher:grey_sufficientlyVisible()];
+  if ([ChromeEarlGrey isAddCredentialsInSettingsEnabled]) {
+    [[EarlGrey
+        selectElementWithMatcher:chrome_test_util::SettingsToolbarAddButton()]
+        assertWithMatcher:grey_sufficientlyVisible()];
+  } else {
+    [[EarlGrey
+        selectElementWithMatcher:chrome_test_util::AddPaymentMethodButton()]
+        assertWithMatcher:grey_sufficientlyVisible()];
+  }
 
   [self exitSettingsMenu];
 }
@@ -275,9 +288,15 @@
       performAction:grey_tap()];
 
   // Expect Add Payment Method to be removed.
-  [[EarlGrey
-      selectElementWithMatcher:chrome_test_util::AddPaymentMethodButton()]
-      assertWithMatcher:grey_not(grey_sufficientlyVisible())];
+  if ([ChromeEarlGrey isAddCredentialsInSettingsEnabled]) {
+    [[EarlGrey
+        selectElementWithMatcher:chrome_test_util::SettingsToolbarAddButton()]
+        assertWithMatcher:grey_not(grey_sufficientlyVisible())];
+  } else {
+    [[EarlGrey
+        selectElementWithMatcher:chrome_test_util::AddPaymentMethodButton()]
+        assertWithMatcher:grey_not(grey_sufficientlyVisible())];
+  }
 }
 
 // Checks that the toolbar always appears in edit mode.
@@ -302,6 +321,10 @@
 // Checks the 'Add Payment Method' button is always visible and directs a user
 // to the Add Payent method view.
 - (void)testToolbarAddPaymentMethodButtonFeatureEnabled {
+  if ([ChromeEarlGrey isAddCredentialsInSettingsEnabled]) {
+    EARL_GREY_TEST_SKIPPED(
+        @"The test is not supported when Add Credentials feature is enabled");
+  }
   [AutofillAppInterface saveLocalCreditCard];
   [self openCreditCardListInEditMode];
 
@@ -355,9 +378,16 @@
   [[EarlGrey selectElementWithMatcher:chrome_test_util::
                                           SettingsBottomToolbarDeleteButton()]
       assertWithMatcher:grey_nil()];
-  // If the done button is nil it is no longer in edit mode.
-  [[EarlGrey selectElementWithMatcher:SettingsDoneButton()]
-      assertWithMatcher:grey_nil()];
+  if ([ChromeEarlGrey isAddCredentialsInSettingsEnabled]) {
+    // If the done button in the nav bar is enabled it is no longer in edit
+    // mode.
+    [[EarlGrey selectElementWithMatcher:SettingsDoneButton()]
+        assertWithMatcher:grey_sufficientlyVisible()];
+  } else {
+    // If the done button is nil it is no longer in edit mode.
+    [[EarlGrey selectElementWithMatcher:SettingsDoneButton()]
+        assertWithMatcher:grey_nil()];
+  }
 }
 
 @end
diff --git a/ios/chrome/browser/ui/settings/language/BUILD.gn b/ios/chrome/browser/ui/settings/language/BUILD.gn
index 7708bb85..61ea2cd0f 100644
--- a/ios/chrome/browser/ui/settings/language/BUILD.gn
+++ b/ios/chrome/browser/ui/settings/language/BUILD.gn
@@ -147,6 +147,7 @@
     "//components/translate/core/browser:translate_pref_names",
     "//ios/chrome/app/strings:ios_strings_grit",
     "//ios/chrome/browser/ui:feature_flags",
+    "//ios/chrome/browser/ui/settings:settings_root_constants",
     "//ios/chrome/browser/ui/settings/language:eg_test_support+eg2",
     "//ios/chrome/test/earl_grey:eg_test_support+eg2",
     "//ios/testing/earl_grey:eg_test_support+eg2",
diff --git a/ios/chrome/browser/ui/settings/language/language_settings_egtest.mm b/ios/chrome/browser/ui/settings/language/language_settings_egtest.mm
index 7385d4b..2b368f0 100644
--- a/ios/chrome/browser/ui/settings/language/language_settings_egtest.mm
+++ b/ios/chrome/browser/ui/settings/language/language_settings_egtest.mm
@@ -9,6 +9,7 @@
 #include "components/translate/core/browser/translate_pref_names.h"
 #import "ios/chrome/browser/ui/settings/language/language_settings_app_interface.h"
 #import "ios/chrome/browser/ui/settings/language/language_settings_ui_constants.h"
+#import "ios/chrome/browser/ui/settings/settings_root_table_constants.h"
 #include "ios/chrome/grit/ios_strings.h"
 #include "ios/chrome/test/earl_grey/accessibility_util.h"
 #import "ios/chrome/test/earl_grey/chrome_actions.h"
@@ -25,7 +26,6 @@
 
 using chrome_test_util::ButtonWithAccessibilityLabel;
 using chrome_test_util::ButtonWithAccessibilityLabelId;
-using chrome_test_util::NavigationBarDoneButton;
 using chrome_test_util::SettingsMenuBackButton;
 using chrome_test_util::TabGridEditButton;
 using chrome_test_util::TableViewSwitchCell;
@@ -139,6 +139,11 @@
       grey_sufficientlyVisible(), nil);
 }
 
+// Matcher for the toolbar's edit button.
+id<GREYMatcher> SettingToolbarEditButton() {
+  return grey_accessibilityID(kSettingsToolbarEditButtonId);
+}
+
 }  // namespace
 
 @interface LanguageSettingsTestCase : ChromeTestCase
@@ -497,8 +502,13 @@
   [ChromeEarlGreyUI tapSettingsMenuButton:LanguageSettingsButton()];
 
   // Switch on edit mode.
-  [[EarlGrey selectElementWithMatcher:NavigationBarEditButton()]
-      performAction:grey_tap()];
+  if ([ChromeEarlGrey isAddCredentialsInSettingsEnabled]) {
+    [[EarlGrey selectElementWithMatcher:SettingToolbarEditButton()]
+        performAction:grey_tap()];
+  } else {
+    [[EarlGrey selectElementWithMatcher:NavigationBarEditButton()]
+        performAction:grey_tap()];
+  }
 
   // Verify that the Add Language button is disabled.
   [[EarlGrey selectElementWithMatcher:AddLanguageButton()]
diff --git a/ios/chrome/browser/ui/settings/password/passwords_settings_egtest.mm b/ios/chrome/browser/ui/settings/password/passwords_settings_egtest.mm
index 35d795e..461be8c 100644
--- a/ios/chrome/browser/ui/settings/password/passwords_settings_egtest.mm
+++ b/ios/chrome/browser/ui/settings/password/passwords_settings_egtest.mm
@@ -257,6 +257,11 @@
   return grey_accessibilityID(kPasswordsAddPasswordSaveButtonId);
 }
 
+// Matcher for the toolbar's edit done button.
+id<GREYMatcher> SettingToolbarEditDoneButton() {
+  return grey_accessibilityID(kSettingsToolbarEditDoneButtonId);
+}
+
 // Saves an example form in the store.
 void SaveExamplePasswordForm() {
   GREYAssert(
@@ -318,6 +323,13 @@
       performAction:grey_tap()];
 }
 
+id<GREYMatcher> EditDoneButton() {
+  if ([ChromeEarlGrey isAddCredentialsInSettingsEnabled]) {
+    return SettingToolbarEditDoneButton();
+  }
+  return NavigationBarDoneButton();
+}
+
 }  // namespace
 
 // Various tests for the Save Passwords section of the settings.
@@ -373,7 +385,7 @@
 
   TapEdit();
   [ChromeEarlGrey verifyAccessibilityForCurrentScreen];
-  [[EarlGrey selectElementWithMatcher:NavigationBarDoneButton()]
+  [[EarlGrey selectElementWithMatcher:EditDoneButton()]
       performAction:grey_tap()];
 
   // Inspect "password details" view.
@@ -1425,7 +1437,7 @@
   //      assertWithMatcher:grey_nil()];
 
   // Get out of edit mode.
-  [[EarlGrey selectElementWithMatcher:NavigationBarDoneButton()]
+  [[EarlGrey selectElementWithMatcher:EditDoneButton()]
       performAction:grey_tap()];
 
   // Remove filter search term.
@@ -1462,14 +1474,14 @@
   [[EarlGrey selectElementWithMatcher:PasswordDetailPassword()]
       performAction:grey_replaceText(@"")];
 
-  [[EarlGrey selectElementWithMatcher:NavigationBarDoneButton()]
+  [[EarlGrey selectElementWithMatcher:EditDoneButton()]
       assertWithMatcher:grey_allOf(grey_sufficientlyVisible(),
                                    grey_not(grey_enabled()), nil)];
 
   [[EarlGrey selectElementWithMatcher:PasswordDetailPassword()]
       performAction:grey_replaceText(@"new password")];
 
-  [[EarlGrey selectElementWithMatcher:NavigationBarDoneButton()]
+  [[EarlGrey selectElementWithMatcher:EditDoneButton()]
       performAction:grey_tap()];
 
   [[EarlGrey selectElementWithMatcher:EditConfirmationButton()]
@@ -1513,7 +1525,7 @@
   [[EarlGrey selectElementWithMatcher:PasswordDetailUsername()]
       performAction:grey_replaceText(@"")];
 
-  [[EarlGrey selectElementWithMatcher:NavigationBarDoneButton()]
+  [[EarlGrey selectElementWithMatcher:EditDoneButton()]
       performAction:grey_tap()];
 
   [[EarlGrey selectElementWithMatcher:EditConfirmationButton()]
@@ -1527,7 +1539,7 @@
   [[EarlGrey selectElementWithMatcher:PasswordDetailUsername()]
       performAction:grey_replaceText(@"new username")];
 
-  [[EarlGrey selectElementWithMatcher:NavigationBarDoneButton()]
+  [[EarlGrey selectElementWithMatcher:EditDoneButton()]
       performAction:grey_tap()];
 
   [[EarlGrey selectElementWithMatcher:EditConfirmationButton()]
@@ -1584,7 +1596,7 @@
   [[EarlGrey selectElementWithMatcher:PasswordDetailUsername()]
       performAction:grey_replaceText(@"concrete username2")];
 
-  [[EarlGrey selectElementWithMatcher:NavigationBarDoneButton()]
+  [[EarlGrey selectElementWithMatcher:EditDoneButton()]
       assertWithMatcher:grey_allOf(grey_sufficientlyVisible(),
                                    grey_not(grey_enabled()), nil)];
 
@@ -1850,7 +1862,7 @@
   [[EarlGrey selectElementWithMatcher:PasswordDetailUsername()]
       performAction:grey_replaceText(@"new username")];
 
-  [[EarlGrey selectElementWithMatcher:NavigationBarDoneButton()]
+  [[EarlGrey selectElementWithMatcher:EditDoneButton()]
       performAction:grey_tap()];
 
   [[EarlGrey selectElementWithMatcher:EditConfirmationButton()]
diff --git a/ios/chrome/browser/ui/settings/settings_root_table_constants.h b/ios/chrome/browser/ui/settings/settings_root_table_constants.h
index 359bb58..25e89d3 100644
--- a/ios/chrome/browser/ui/settings/settings_root_table_constants.h
+++ b/ios/chrome/browser/ui/settings/settings_root_table_constants.h
@@ -9,5 +9,7 @@
 
 extern NSString* const kSettingsToolbarAddButtonId;
 extern NSString* const kSettingsToolbarDeleteButtonId;
+extern NSString* const kSettingsToolbarEditButtonId;
+extern NSString* const kSettingsToolbarEditDoneButtonId;
 
 #endif  // IOS_CHROME_BROWSER_UI_SETTINGS_SETTINGS_ROOT_TABLE_CONSTANTS_H_
diff --git a/ios/chrome/browser/ui/settings/settings_root_table_constants.mm b/ios/chrome/browser/ui/settings/settings_root_table_constants.mm
index 87765d1..9d73099 100644
--- a/ios/chrome/browser/ui/settings/settings_root_table_constants.mm
+++ b/ios/chrome/browser/ui/settings/settings_root_table_constants.mm
@@ -12,3 +12,8 @@
 
 NSString* const kSettingsToolbarDeleteButtonId =
     @"SettingsToolbarDeleteButtonId";
+
+NSString* const kSettingsToolbarEditButtonId = @"SettingsToolbarEditButtonId";
+
+NSString* const kSettingsToolbarEditDoneButtonId =
+    @"kSettingsToolbarEditDoneButtonId";
diff --git a/ios/chrome/browser/ui/settings/settings_root_table_view_controller.mm b/ios/chrome/browser/ui/settings/settings_root_table_view_controller.mm
index e5e3514..114c0e9 100644
--- a/ios/chrome/browser/ui/settings/settings_root_table_view_controller.mm
+++ b/ios/chrome/browser/ui/settings/settings_root_table_view_controller.mm
@@ -284,17 +284,20 @@
                              : UIBarButtonItemStyleDone)target:self
              action:@selector(editButtonPressed)];
   [button setEnabled:[self editButtonEnabled]];
+  button.accessibilityIdentifier = kSettingsToolbarEditButtonId;
   return button;
 }
 
 - (UIBarButtonItem*)createEditModeDoneButtonForToolbar:(BOOL)toolbar {
   // Create a custom Done bar button item, as Material Navigation Bar does not
   // handle a system UIBarButtonSystemItemDone item.
-  return [[UIBarButtonItem alloc]
+  UIBarButtonItem* button = [[UIBarButtonItem alloc]
       initWithTitle:l10n_util::GetNSString(IDS_IOS_NAVIGATION_BAR_DONE_BUTTON)
               style:(toolbar ? UIBarButtonItemStylePlain
                              : UIBarButtonItemStyleDone)target:self
              action:@selector(editButtonPressed)];
+  button.accessibilityIdentifier = kSettingsToolbarEditDoneButtonId;
+  return button;
 }
 
 - (UIBarButtonItem*)createEditModeCancelButton {
diff --git a/ios/chrome/test/earl_grey/DEPS b/ios/chrome/test/earl_grey/DEPS
index f4bc5299..46a0e6c 100644
--- a/ios/chrome/test/earl_grey/DEPS
+++ b/ios/chrome/test/earl_grey/DEPS
@@ -2,6 +2,7 @@
   # To compile base::Feature under EG2
   "chrome_earl_grey_app_interface\.mm":[
    "+components/autofill/core/common/autofill_features.h",
+   "+components/password_manager/core/common/password_manager_features.h",
    "+components/payments/core/features.h",
    "+components/ukm/ios/features.h",
    "+services/metrics/public/cpp/ukm_recorder.h",
diff --git a/ios/chrome/test/earl_grey/chrome_earl_grey.h b/ios/chrome/test/earl_grey/chrome_earl_grey.h
index fbd88d1..5ca5705 100644
--- a/ios/chrome/test/earl_grey/chrome_earl_grey.h
+++ b/ios/chrome/test/earl_grey/chrome_earl_grey.h
@@ -620,6 +620,9 @@
 // Returns YES if a variation triggering server-side behavior is enabled.
 - (BOOL)isTriggerVariationEnabled:(int)variationID;
 
+// Returns YES if |kSupportForAddPasswordsInSettings| is enabled.
+- (BOOL)isAddCredentialsInSettingsEnabled;
+
 // Returns YES if UKM feature is enabled.
 - (BOOL)isUKMEnabled [[nodiscard]];
 
diff --git a/ios/chrome/test/earl_grey/chrome_earl_grey.mm b/ios/chrome/test/earl_grey/chrome_earl_grey.mm
index b4bc86c5..c02328b1 100644
--- a/ios/chrome/test/earl_grey/chrome_earl_grey.mm
+++ b/ios/chrome/test/earl_grey/chrome_earl_grey.mm
@@ -1196,6 +1196,10 @@
   return [ChromeEarlGreyAppInterface isTriggerVariationEnabled:variationID];
 }
 
+- (BOOL)isAddCredentialsInSettingsEnabled {
+  return [ChromeEarlGreyAppInterface isAddCredentialsInSettingsEnabled];
+}
+
 - (BOOL)isUKMEnabled {
   return [ChromeEarlGreyAppInterface isUKMEnabled];
 }
diff --git a/ios/chrome/test/earl_grey/chrome_earl_grey_app_interface.h b/ios/chrome/test/earl_grey/chrome_earl_grey_app_interface.h
index e4dfbae..0f276be 100644
--- a/ios/chrome/test/earl_grey/chrome_earl_grey_app_interface.h
+++ b/ios/chrome/test/earl_grey/chrome_earl_grey_app_interface.h
@@ -503,6 +503,9 @@
 // Returns YES if a variation triggering server-side behavior is enabled.
 + (BOOL)isTriggerVariationEnabled:(int)variationID;
 
+// Returns YES if |kSupportForAddPasswordsInSettings| is enabled.
++ (BOOL)isAddCredentialsInSettingsEnabled;
+
 // Returns YES if UKM feature is enabled.
 + (BOOL)isUKMEnabled [[nodiscard]];
 
diff --git a/ios/chrome/test/earl_grey/chrome_earl_grey_app_interface.mm b/ios/chrome/test/earl_grey/chrome_earl_grey_app_interface.mm
index 94de557..b430978 100644
--- a/ios/chrome/test/earl_grey/chrome_earl_grey_app_interface.mm
+++ b/ios/chrome/test/earl_grey/chrome_earl_grey_app_interface.mm
@@ -16,6 +16,7 @@
 #include "components/browsing_data/core/pref_names.h"
 #include "components/content_settings/core/browser/host_content_settings_map.h"
 #include "components/metrics/demographics/demographic_metrics_provider.h"
+#include "components/password_manager/core/common/password_manager_features.h"
 #include "components/prefs/pref_service.h"
 #include "components/sync/base/pref_names.h"
 #include "components/unified_consent/unified_consent_service.h"
@@ -1030,6 +1031,11 @@
   return std::find(ids.begin(), ids.end(), variationID) != ids.end();
 }
 
++ (BOOL)isAddCredentialsInSettingsEnabled {
+  return base::FeatureList::IsEnabled(
+      password_manager::features::kSupportForAddPasswordsInSettings);
+}
+
 + (BOOL)isUKMEnabled {
   return base::FeatureList::IsEnabled(ukm::kUkmFeature);
 }
diff --git a/ios/chrome/test/earl_grey/chrome_matchers.h b/ios/chrome/test/earl_grey/chrome_matchers.h
index cb9d7be..78b26fa5 100644
--- a/ios/chrome/test/earl_grey/chrome_matchers.h
+++ b/ios/chrome/test/earl_grey/chrome_matchers.h
@@ -520,6 +520,9 @@
 // Returns a matcher for a history entry with |url| and |title|.
 id<GREYMatcher> HistoryEntry(const std::string& url, const std::string& title);
 
+// Returns a matcher to the add button in the toolbar in the settings view.
+id<GREYMatcher> SettingsToolbarAddButton();
+
 #pragma mark - Manual Fallback
 
 // Returns a matcher for the scroll view in keyboard accessory bar.
diff --git a/ios/chrome/test/earl_grey/chrome_matchers.mm b/ios/chrome/test/earl_grey/chrome_matchers.mm
index 623f291..bd7c657 100644
--- a/ios/chrome/test/earl_grey/chrome_matchers.mm
+++ b/ios/chrome/test/earl_grey/chrome_matchers.mm
@@ -656,6 +656,10 @@
                    title:base::SysUTF8ToNSString(title)];
 }
 
+id<GREYMatcher> SettingsToolbarAddButton() {
+  return [ChromeMatchersAppInterface settingsToolbarAddButton];
+}
+
 #pragma mark - Manual Fallback
 
 id<GREYMatcher> ManualFallbackFormSuggestionViewMatcher() {
diff --git a/ios/chrome/test/earl_grey/chrome_matchers_app_interface.h b/ios/chrome/test/earl_grey/chrome_matchers_app_interface.h
index c2f06cf..580e86ef 100644
--- a/ios/chrome/test/earl_grey/chrome_matchers_app_interface.h
+++ b/ios/chrome/test/earl_grey/chrome_matchers_app_interface.h
@@ -516,6 +516,9 @@
 // Returns a matcher for a history entry with |url| and |title|.
 + (id<GREYMatcher>)historyEntryForURL:(NSString*)URL title:(NSString*)title;
 
+// Returns a matcher to the add button in the toolbar of the settings view.
++ (id<GREYMatcher>)settingsToolbarAddButton;
+
 #pragma mark - Manual Fallback
 
 // Returns a matcher for the scroll view in keyboard accessory bar.
diff --git a/ios/chrome/test/earl_grey/chrome_matchers_app_interface.mm b/ios/chrome/test/earl_grey/chrome_matchers_app_interface.mm
index 8052efaf..42f2b63 100644
--- a/ios/chrome/test/earl_grey/chrome_matchers_app_interface.mm
+++ b/ios/chrome/test/earl_grey/chrome_matchers_app_interface.mm
@@ -1004,6 +1004,10 @@
       grey_sufficientlyVisible(), nil);
 }
 
++ (id<GREYMatcher>)settingsToolbarAddButton {
+  return grey_accessibilityID(kSettingsToolbarAddButtonId);
+}
+
 #pragma mark - Manual Fallback
 
 + (id<GREYMatcher>)manualFallbackFormSuggestionViewMatcher {
diff --git a/media/capture/video/mac/video_capture_device_avfoundation_mac.h b/media/capture/video/mac/video_capture_device_avfoundation_mac.h
index c7418bf..9915c3e 100644
--- a/media/capture/video/mac/video_capture_device_avfoundation_mac.h
+++ b/media/capture/video/mac/video_capture_device_avfoundation_mac.h
@@ -103,6 +103,8 @@
   bool _capturedFrameSinceLastStallCheck GUARDED_BY(_lock);
   std::unique_ptr<base::WeakPtrFactory<VideoCaptureDeviceAVFoundation>>
       _weakPtrFactoryForStallCheck;
+  // Timestamp offset to subtract from all frames, to avoid leaking uptime.
+  base::TimeDelta start_timestamp_;
 
   // Used to rate-limit crash reports for https://crbug.com/1168112.
   bool _hasDumpedForFrameSizeMismatch;
diff --git a/media/capture/video/mac/video_capture_device_avfoundation_mac.mm b/media/capture/video/mac/video_capture_device_avfoundation_mac.mm
index 7c7c5dc..0245b04 100644
--- a/media/capture/video/mac/video_capture_device_avfoundation_mac.mm
+++ b/media/capture/video/mac/video_capture_device_avfoundation_mac.mm
@@ -906,7 +906,13 @@
   if (!_frameReceiver)
     return;
 
-  const base::TimeDelta timestamp = GetCMSampleBufferTimestamp(sampleBuffer);
+  const base::TimeDelta pres_timestamp =
+      GetCMSampleBufferTimestamp(sampleBuffer);
+  if (start_timestamp_.is_zero()) {
+    start_timestamp_ = pres_timestamp;
+  }
+  const base::TimeDelta timestamp = pres_timestamp - start_timestamp_;
+
   bool logUma = !std::exchange(_capturedFirstFrame, true);
   if (logUma) {
     media::LogFirstCapturedVideoFrame(_bestCaptureFormat, sampleBuffer);
diff --git a/services/audio/output_device_mixer_impl.cc b/services/audio/output_device_mixer_impl.cc
index b936f8c..b75d1c8 100644
--- a/services/audio/output_device_mixer_impl.cc
+++ b/services/audio/output_device_mixer_impl.cc
@@ -119,30 +119,51 @@
   double GetVolume() const { return volume_; }
 
   void StartProvidingAudioToMixingGraph() {
+    TRACE_EVENT1(TRACE_DISABLED_BY_DEFAULT("audio"),
+                 "MixTrack::StartProvidingAudioToMixingGraph", "this",
+                 static_cast<void*>(this));
     DCHECK(audio_source_callback_);
     RegisterPlaybackStarted();
     graph_input_->Start(audio_source_callback_);
   }
 
   void StopProvidingAudioToMixingGraph() {
+    TRACE_EVENT1(TRACE_DISABLED_BY_DEFAULT("audio"),
+                 "MixTrack::StopProvidingAudioToMixingGraph", "this",
+                 static_cast<void*>(this));
     DCHECK(audio_source_callback_);
     graph_input_->Stop();
     RegisterPlaybackStopped(PlaybackType::kMixed);
   }
 
+  bool OpenIndependentRenderingStream() {
+    TRACE_EVENT1(TRACE_DISABLED_BY_DEFAULT("audio"),
+                 "MixTrack::OpenIndependentRenderingStream", "this",
+                 static_cast<void*>(this));
+    DCHECK(!rendering_stream_);
+    rendering_stream_.reset(
+        mixer_->CreateAndOpenDeviceStream(graph_input_->GetParams()));
+
+    if (rendering_stream_) {
+      rendering_stream_->SetVolume(volume_);
+    } else {
+      LOG(ERROR) << "Failed to open individual rendering stream";
+    }
+    return !!rendering_stream_;
+  }
+
   void StartIndependentRenderingStream() {
+    TRACE_EVENT1(TRACE_DISABLED_BY_DEFAULT("audio"),
+                 "MixTrack::StartIndependentRenderingStream", "this",
+                 static_cast<void*>(this));
     DCHECK(audio_source_callback_);
     if (!rendering_stream_) {
       // Open the rendering stream if it's not open yet. It will be closed in
       // CloseIndependentRenderingStream() or during destruction.
-      rendering_stream_.reset(
-          mixer_->CreateAndOpenDeviceStream(graph_input_->GetParams()));
-
-      if (!rendering_stream_) {
+      if (!OpenIndependentRenderingStream()) {
         ReportError(TrackError::kIndependentOpenFailed);
         return;
       }
-      rendering_stream_->SetVolume(volume_);
     }
 
     RegisterPlaybackStarted();
@@ -150,6 +171,9 @@
   }
 
   void StopIndependentRenderingStream() {
+    TRACE_EVENT1(TRACE_DISABLED_BY_DEFAULT("audio"),
+                 "MixTrack::StopIndependentRenderingStream", "this",
+                 static_cast<void*>(this));
     DCHECK(audio_source_callback_);
     if (rendering_stream_) {
       rendering_stream_->Stop();
@@ -158,12 +182,17 @@
   }
 
   void CloseIndependentRenderingStream() {
+    TRACE_EVENT1(TRACE_DISABLED_BY_DEFAULT("audio"),
+                 "MixTrack::CloseIndependentRenderingStream", "this",
+                 static_cast<void*>(this));
     DCHECK(!audio_source_callback_);
     // Closes the stream.
     rendering_stream_.reset();
   }
 
   void ReportError(TrackError error) {
+    TRACE_EVENT1(TRACE_DISABLED_BY_DEFAULT("audio"), "MixTrack::ReportError",
+                 "this", static_cast<void*>(this));
     DCHECK(audio_source_callback_);
     DCHECK_NE(error, TrackError::kNone);
     LOG(ERROR) << "MixableOutputStream: " << TrackErrorToString(error);
@@ -172,6 +201,8 @@
   }
 
   void OnDeviceChange() {
+    TRACE_EVENT1(TRACE_DISABLED_BY_DEFAULT("audio"), "MixTrack::OnDeviceChange",
+                 "this", static_cast<void*>(this));
     DCHECK(!on_device_change_callback_.is_null());
     std::move(on_device_change_callback_).Run();
   }
@@ -269,9 +300,7 @@
       LOG(ERROR) << "Stream start failed: device changed";
       return false;
     }
-
-    // No-op: required resources are determened when the stream starts playing.
-    return true;
+    return mixer_->OpenStream(mix_track_);
   }
 
   void Start(AudioSourceCallback* callback) final {
@@ -467,6 +496,7 @@
   DCHECK_CALLED_ON_VALID_SEQUENCE(owning_sequence_);
   DCHECK(active_tracks_.empty());
   DCHECK(!HasListeners());
+  DCHECK(!MixingInProgress());
   DCHECK(!mixing_graph_output_stream_);
 
   TRACE_EVENT_NESTABLE_ASYNC_END0(TRACE_DISABLED_BY_DEFAULT("audio"),
@@ -508,11 +538,14 @@
   weak_factory_.InvalidateWeakPtrs();
 
   // Stop and close all audio playback.
-  if (mixing_graph_output_stream_) {
+  if (MixingInProgress()) {
     StopMixingGraphPlayback(MixingError::kNone);
   } else {
-    for (MixTrack* mix_track : active_tracks_)
+    for (MixTrack* mix_track : active_tracks_) {
       mix_track->StopIndependentRenderingStream();
+    }
+    // In case it was opened when listeners came:
+    mixing_graph_output_stream_.reset();
   }
 
   // For consistency.
@@ -550,26 +583,35 @@
   DVLOG(1) << "Reference output listener added for device [" << device_id()
            << "]";
 
+  TRACE_EVENT1(TRACE_DISABLED_BY_DEFAULT("audio"),
+               "OutputDeviceMixerImpl::StartListening", "device_id",
+               device_id());
+
   // A new listener came: cancel scheduled switch to independent playback.
   switch_to_unmixed_playback_delay_timer_.Stop();
   {
     base::AutoLock scoped_lock(listener_lock_);
     DCHECK(listeners_.find(listener) == listeners_.end());
     listeners_.insert(listener);
-    if (mixing_stats_) {
+    if (MixingInProgress()) {
       DCHECK(mixing_graph_output_stream_);  // We are mixing.
-      mixing_stats_->AddListener();
+      mixing_session_stats_->AddListener();
+      return;
     }
   }
-  if (!mixing_graph_output_stream_ && !active_tracks_.empty()) {
-    // Start reference playback only if at least one audio stream is playing.
-    for (MixTrack* mix_track : active_tracks_)
-      mix_track->StopIndependentRenderingStream();
-    StartMixingGraphPlayback();
-    // Note that if StartMixingGraphPlayback() failed, no audio will be playing
-    // and each client of a playing MixableOutputStream will receive OnError()
-    // callback call.
-  }
+  // Since we now have listeners, warm-up |mixing_graph_output_stream_|.
+  EnsureMixingGraphOutputStreamOpen();
+
+  // Start reference playback only if at least one audio stream is playing.
+  if (active_tracks_.empty())
+    return;
+
+  for (MixTrack* mix_track : active_tracks_)
+    mix_track->StopIndependentRenderingStream();
+  StartMixingGraphPlayback();
+  // Note that if StartMixingGraphPlayback() failed, no audio will be playing
+  // and each client of a playing MixableOutputStream will receive OnError()
+  // callback call.
 }
 
 void OutputDeviceMixerImpl::StopListening(Listener* listener) {
@@ -579,6 +621,11 @@
 #endif
   DVLOG(1) << "Reference output listener removed for device [" << device_id()
            << "]";
+
+  TRACE_EVENT1(TRACE_DISABLED_BY_DEFAULT("audio"),
+               "OutputDeviceMixerImpl::StopListening", "device_id",
+               device_id());
+
   {
     base::AutoLock scoped_lock(listener_lock_);
     auto iter = listeners_.find(listener);
@@ -586,21 +633,21 @@
     listeners_.erase(iter);
   }
 
-  if (mixing_stats_) {
-    DCHECK(mixing_graph_output_stream_);  // We are mixing.
-    mixing_stats_->RemoveListener();
-  }
-
   if (HasListeners()) {
-    // We still have some listeners left, so no need to switch to independent
-    // playback.
+    // We still have some listeners left, so no need to do anything.
     return;
   }
 
-  if (!mixing_graph_output_stream_)
+  if (!MixingInProgress()) {
+    // There is no mixing in progress and no more listeners left: closing
+    // the warmed up stream.
+    mixing_graph_output_stream_.reset();
     return;
+  }
 
-  // Mixing graph playback is ongoing.
+  mixing_session_stats_->RemoveListener();
+
+  DCHECK(mixing_graph_output_stream_);  // We are mixing.
 
   if (active_tracks_.empty()) {
     // There is no actual playback: we were just sending silence to the
@@ -615,6 +662,21 @@
   }
 }
 
+bool OutputDeviceMixerImpl::OpenStream(MixTrack* mix_track) {
+  DCHECK_CALLED_ON_VALID_SEQUENCE(owning_sequence_);
+#if DCHECK_IS_ON()
+  DCHECK(!device_changed_);
+#endif
+  DCHECK(mix_track);
+
+  // Defer opening the physical output stream, as the audio mix is requested.
+  // The physical stream will be open on start if needed.
+  if (HasListeners())
+    return true;
+
+  return mix_track->OpenIndependentRenderingStream();
+}
+
 void OutputDeviceMixerImpl::StartStream(
     MixTrack* mix_track,
     media::AudioOutputStream::AudioSourceCallback* callback) {
@@ -634,16 +696,16 @@
   mix_track->SetSource(callback);
   active_tracks_.emplace(mix_track);
 
-  if (mixing_graph_output_stream_) {
+  if (MixingInProgress()) {
     // We are playing all audio as a |mixing_graph_| output.
     mix_track->StartProvidingAudioToMixingGraph();
-    DCHECK(mixing_stats_);
-    mixing_stats_->AddActiveTrack();
+    mixing_session_stats_->AddActiveTrack();
   } else if (HasListeners()) {
     // Either we are starting the first active stream, or the previous switch to
     // playing via the mixing graph failed because the its output stream failed
     // to open. In any case, none of the active streams are playing individually
     // at this point.
+    EnsureMixingGraphOutputStreamOpen();
     StartMixingGraphPlayback();
   } else {
     // No reference signal is requested.
@@ -670,11 +732,10 @@
 
   active_tracks_.erase(mix_track);
 
-  if (mixing_graph_output_stream_) {
+  if (MixingInProgress()) {
     // We are playing all audio as a |mixing_graph_| output.
     mix_track->StopProvidingAudioToMixingGraph();
-    DCHECK(mixing_stats_);
-    mixing_stats_->RemoveActiveTrack();
+    mixing_session_stats_->RemoveActiveTrack();
 
     if (!HasListeners() && active_tracks_.empty()) {
       // All listeners are gone, which means a switch to an independent playback
@@ -763,37 +824,36 @@
   return TS_UNCHECKED_READ(listeners_).size();
 }
 
+void OutputDeviceMixerImpl::EnsureMixingGraphOutputStreamOpen() {
+  DCHECK_CALLED_ON_VALID_SEQUENCE(owning_sequence_);
+  DCHECK(HasListeners());
+  if (mixing_graph_output_stream_)
+    return;
+  TRACE_EVENT1(TRACE_DISABLED_BY_DEFAULT("audio"),
+               "OutputDeviceMixerImpl::EnsureMixingGraphOutputStreamOpen",
+               "device_id", device_id());
+  mixing_graph_output_stream_.reset(
+      CreateAndOpenDeviceStream(mixing_graph_output_params_));
+}
+
+// Expects |mixing_graph_output_stream_| to be already open; if not - this is
+// interpreted as a failure.
 void OutputDeviceMixerImpl::StartMixingGraphPlayback() {
   DCHECK_CALLED_ON_VALID_SEQUENCE(owning_sequence_);
-  DCHECK(!mixing_graph_output_stream_);
-
   TRACE_EVENT_NESTABLE_ASYNC_BEGIN1(TRACE_DISABLED_BY_DEFAULT("audio"),
                                     "OutputDeviceMixerImpl mixing", this,
                                     "device_id", device_id());
-
   TRACE_EVENT1(TRACE_DISABLED_BY_DEFAULT("audio"),
                "OutputDeviceMixerImpl::StartMixingGraphPlayback", "device_id",
                device_id());
 
-  // Unlike output streams for individual rendering, we create and open the
-  // mixing output stream each time we are about to start playing audio via the
-  // mixing graph, to provide the reference signal to the listeners; and stop
-  // and close it when the reference playback is not needed any more - just for
-  // simplicity. |switch_to_unmixed_playback_delay_timer_| helps to avoid
-  // situations when we recreate the stream immediately; also the physical
-  // stream is managed by media::AudioOutputDispatcher which optimizes reopening
-  // of an output device if it happens soon after it was closed, and starting
-  // such a stream after a period of inactivity is the same as
-  // recreating/opening/starting it.
-  mixing_graph_output_stream_.reset(
-      CreateAndOpenDeviceStream(mixing_graph_output_params_));
   if (!mixing_graph_output_stream_) {
     StopMixingGraphPlayback(MixingError::kOpenFailed);
     return;
   }
 
-  DCHECK(!mixing_stats_);
-  mixing_stats_ = std::make_unique<MixingStats>(
+  DCHECK(!mixing_session_stats_);
+  mixing_session_stats_ = std::make_unique<MixingStats>(
       device_id(), active_tracks_.size(), TS_UNCHECKED_READ(listeners_).size());
 
   for (MixTrack* mix_track : active_tracks_)
@@ -807,8 +867,9 @@
 void OutputDeviceMixerImpl::StopMixingGraphPlayback(MixingError error) {
   DCHECK_CALLED_ON_VALID_SEQUENCE(owning_sequence_);
 
-  if (mixing_graph_output_stream_) {
+  if (MixingInProgress()) {
     // Mixing was in progress, we should stop it.
+    DCHECK(mixing_graph_output_stream_);
     DCHECK_NE(error, MixingError::kOpenFailed);
 
     TRACE_EVENT1(TRACE_DISABLED_BY_DEFAULT("audio"),
@@ -820,8 +881,7 @@
     mixing_graph_output_stream_->Stop();
     mixing_graph_output_stream_.reset();  // Auto-close the stream.
 
-    DCHECK(mixing_stats_);
-    mixing_stats_.reset();
+    mixing_session_stats_.reset();
 
     DVLOG(1) << " Mixing stopped for device [" << device_id() << "]";
 
@@ -850,10 +910,13 @@
 void OutputDeviceMixerImpl::SwitchToUnmixedPlaybackTimerHelper() {
   DCHECK_CALLED_ON_VALID_SEQUENCE(owning_sequence_);
   NON_REENTRANT_SCOPE(reentrancy_checker_);
-  DCHECK(mixing_graph_output_stream_);
+  DCHECK(MixingInProgress());
 #if DCHECK_IS_ON()
   DCHECK(!device_changed_);
 #endif
+  TRACE_EVENT1(TRACE_DISABLED_BY_DEFAULT("audio"),
+               "OutputDeviceMixerImpl::SwitchToUnmixedPlaybackTimerHelper",
+               "device_id", device_id());
   StopMixingGraphPlayback(MixingError::kNone);
   for (MixTrack* mix_track : active_tracks_)
     mix_track->StartIndependentRenderingStream();
diff --git a/services/audio/output_device_mixer_impl.h b/services/audio/output_device_mixer_impl.h
index 367748d..1f2bf6b 100644
--- a/services/audio/output_device_mixer_impl.h
+++ b/services/audio/output_device_mixer_impl.h
@@ -104,6 +104,7 @@
   using Listeners = std::set<Listener*>;
 
   // Operations delegated by MixableOutputStream.
+  bool OpenStream(MixTrack* mix_track);
   void StartStream(MixTrack* mix_track,
                    media::AudioOutputStream::AudioSourceCallback* callback);
   void StopStream(MixTrack* mix_track);
@@ -122,6 +123,8 @@
 
   // Helpers to manage audio playback.
   bool HasListeners() const;
+  bool MixingInProgress() const { return !!mixing_session_stats_; }
+  void EnsureMixingGraphOutputStreamOpen();
   void StartMixingGraphPlayback();
   void StopMixingGraphPlayback(MixingError mixing_error);
   void SwitchToUnmixedPlaybackTimerHelper();
@@ -163,8 +166,9 @@
       GUARDED_BY_CONTEXT(owning_sequence_);
 
   // Non-null when the playback is being mixed. Collects mixing statistics.
-  // Logs them upon the destruction when mixing stops.
-  std::unique_ptr<MixingStats> mixing_stats_;
+  // Logs them upon the destruction when mixing stops. Non-null while mixing
+  // is in progress, and is used as an indicator of that.
+  std::unique_ptr<MixingStats> mixing_session_stats_;
 
 #if DCHECK_IS_ON()
   bool device_changed_ = false;
diff --git a/services/audio/output_device_mixer_impl_unittest.cc b/services/audio/output_device_mixer_impl_unittest.cc
index bced4c9f..ef0e5a6 100644
--- a/services/audio/output_device_mixer_impl_unittest.cc
+++ b/services/audio/output_device_mixer_impl_unittest.cc
@@ -192,7 +192,7 @@
     StrictMock<MockAudioSourceCallback> source_callback;
     // Set to true when independent rendering started successfully for the first
     // time.
-    bool independent_rendergin_stream_was_open = false;
+    bool independent_rendering_stream_was_open = false;
   };
 
   // Helper.
@@ -203,6 +203,9 @@
     MixTrackMock* mix_track_mock;
   };
 
+  OutputDeviceMixerImplTestBase() {
+    ON_CALL(*this, MockCreateOutputStream).WillByDefault(Return(true));
+  }
   // Registers physical output stream creation.
   MOCK_METHOD1(MockCreateOutputStream,
                bool(const media::AudioParameters& params));
@@ -235,9 +238,22 @@
             &mix_track_mocks_[mix_track_mocks_in_use_count_++]};
   }
 
+  void ExpectIndependentRenderingStreamStreamClosedIfItWasOpen(
+      StreamUnderTest& stream_under_test) {
+    if (stream_under_test.mix_track_mock
+            ->independent_rendering_stream_was_open) {
+      EXPECT_CALL(stream_under_test.mix_track_mock->rendering_stream, Close());
+    }
+  }
+
   // Opens a MixabeOutputStream created by the mixer under test and sets
   // expectations on associated mocks.
-  void OpenAndVerifyStreamUnderTest(StreamUnderTest& stream_under_test) {
+  void OpenAndVerifyStreamUnderTest(StreamUnderTest& stream_under_test,
+                                    PlaybackMode playback_mode) {
+    if (playback_mode == PlaybackMode::kIndependent) {
+      SetIndependentRenderingStreamOpenExpectations(
+          stream_under_test.mix_track_mock, /*open_success=*/true);
+    }
     EXPECT_TRUE(stream_under_test.mixable_stream->Open());
     VerifyAndClearAllExpectations();
   }
@@ -245,10 +261,7 @@
   // Closes a MixabeOutputStream created by the mixer under test and sets
   // expectations on associated mocks.
   void CloseAndVerifyStreamUnderTest(StreamUnderTest& stream_under_test) {
-    if (stream_under_test.mix_track_mock
-            ->independent_rendergin_stream_was_open) {
-      EXPECT_CALL(stream_under_test.mix_track_mock->rendering_stream, Close());
-    }
+    ExpectIndependentRenderingStreamStreamClosedIfItWasOpen(stream_under_test);
     stream_under_test.mixable_stream->Close();
     VerifyAndClearAllExpectations();
   }
@@ -274,35 +287,52 @@
     VerifyAndClearAllExpectations();
   }
 
-  // Sets expectations for the mixer to start rendeing mixed audio.
-  void ExpectMixingGraphOutputStreamStarted() {
+  // Sets expectations for the mixer to open the mixing stream.
+  void ExpectMixingGraphOutputStreamOpen() {
     EXPECT_CALL(*this,
-                MockCreateOutputStream(AudioParamsEq(mixer_output_params_)))
-        .WillOnce(Return(true));
+                MockCreateOutputStream(AudioParamsEq(mixer_output_params_)));
     EXPECT_CALL(mock_mixing_graph_output_stream_, Open())
         .WillOnce(Return(true));
+  }
+
+  void ExpectMixingGraphOutputStreamClosed() {
+    EXPECT_CALL(mock_mixing_graph_output_stream_, Close());
+  }
+
+  // Sets expectations for the mixer to start rendering mixed audio.
+  void ExpectMixingGraphOutputStreamStarted() {
     EXPECT_CALL(mock_mixing_graph_output_stream_, StartCalled());
     mixing_graph_output_stream_not_running_ = false;
   }
 
-  // Sets expectations for the mixer to stop rendeing mixed audio.
+  // Sets expectations for the mixer to stop rendering mixed audio.
   void ExpectMixingGraphOutputStreamStopped() {
     EXPECT_CALL(mock_mixing_graph_output_stream_, Stop);
-    EXPECT_CALL(mock_mixing_graph_output_stream_, Close);
     mixing_graph_output_stream_not_running_ = true;
   }
 
+  void SetIndependentRenderingStreamOpenExpectations(
+      MixTrackMock* mix_track_mock,
+      bool open_success) {
+    ASSERT_FALSE(mix_track_mock->independent_rendering_stream_was_open);
+    EXPECT_CALL(*this,
+                MockCreateOutputStream(AudioParamsEq(mix_track_mock->params)));
+    EXPECT_CALL(mix_track_mock->rendering_stream, Open())
+        .WillOnce(Return(open_success));
+    if (!open_success) {
+      EXPECT_CALL(mix_track_mock->rendering_stream, Close());
+    }
+    mix_track_mock->independent_rendering_stream_was_open = open_success;
+  }
+
   void ExpectPlaybackStarted(MixTrackMock* mix_track_mock,
                              PlaybackMode playback_mode) {
     if (playback_mode == PlaybackMode::kIndependent) {
-      if (!mix_track_mock->independent_rendergin_stream_was_open) {
-        // The rendering straem must be open on first start.
-        EXPECT_CALL(*this, MockCreateOutputStream(
-                               AudioParamsEq(mix_track_mock->params)))
-            .WillOnce(Return(true));
-        EXPECT_CALL(mix_track_mock->rendering_stream, Open())
-            .WillOnce(Return(true));
-        mix_track_mock->independent_rendergin_stream_was_open = true;
+      if (!mix_track_mock->independent_rendering_stream_was_open) {
+        // If opening rendering stream during creation failed, it must be open
+        // on first start.
+        SetIndependentRenderingStreamOpenExpectations(mix_track_mock,
+                                                      /*open_success=*/true);
       }
       EXPECT_CALL(mix_track_mock->rendering_stream, StartCalled());
     } else {
@@ -317,7 +347,7 @@
   void ExpectPlaybackStopped(MixTrackMock* mix_track_mock,
                              PlaybackMode playback_mode) {
     if (playback_mode == PlaybackMode::kIndependent) {
-      if (mix_track_mock->independent_rendergin_stream_was_open) {
+      if (mix_track_mock->independent_rendering_stream_was_open) {
         EXPECT_CALL(mix_track_mock->rendering_stream, Stop);
       }
     } else {
@@ -479,7 +509,7 @@
       .Times(0);
   EXPECT_CALL(mock_mixing_graph_output_stream_, Close()).Times(0);
 
-  stream_under_test.mixable_stream->Close();
+  CloseAndVerifyStreamUnderTest(stream_under_test);
 }
 
 TEST_F(OutputDeviceMixerImplTest, OneUmixedStream_PhysicalStreamCreateFailed) {
@@ -502,18 +532,8 @@
   EXPECT_CALL(mock_mixing_graph_output_stream_, Open()).Times(0);
   EXPECT_CALL(mock_mixing_graph_output_stream_, Close()).Times(0);
 
-  // Open() will work, but stream creation will fail on start and will result in
-  // OnError().
-  EXPECT_TRUE(stream_under_test.mixable_stream->Open());
-  EXPECT_CALL(stream_under_test.mix_track_mock->source_callback, OnError(_))
-      .Times(1);
-
-  stream_under_test.mixable_stream->Start(
-      &stream_under_test.mix_track_mock->source_callback);
-
-  stream_under_test.mixable_stream->Stop();
-
-  stream_under_test.mixable_stream->Close();
+  EXPECT_FALSE(stream_under_test.mixable_stream->Open());
+  CloseAndVerifyStreamUnderTest(stream_under_test);
 }
 
 TEST_F(OutputDeviceMixerImplTest, OneUmixedStream_PhysicalStreamOpenFailed) {
@@ -522,39 +542,21 @@
 
   // Fail opening physical stream for the mix track. Open() fails, physical
   // stream for independent rendering is not created.
-  EXPECT_CALL(*this, MockCreateOutputStream(AudioParamsEq(
-                         stream_under_test.mix_track_mock->params)))
-      .WillOnce(Return(true));
-  EXPECT_CALL(stream_under_test.mix_track_mock->rendering_stream, Open())
-      .WillOnce(Return(false));
-  EXPECT_CALL(stream_under_test.mix_track_mock->rendering_stream, Close());
+  SetIndependentRenderingStreamOpenExpectations(
+      stream_under_test.mix_track_mock,
+      /*open_success=*/false);
 
-  EXPECT_CALL(*this,
-              MockCreateOutputStream(AudioParamsEq(mixer_output_params_)))
-      .Times(0);
   EXPECT_CALL(mock_mixing_graph_output_stream_, Open()).Times(0);
   EXPECT_CALL(mock_mixing_graph_output_stream_, Close()).Times(0);
 
-  EXPECT_TRUE(stream_under_test.mixable_stream->Open());
-
-  // Open() will work, but stream creation will fail on start and will result in
-  // OnError().
-  EXPECT_TRUE(stream_under_test.mixable_stream->Open());
-  EXPECT_CALL(stream_under_test.mix_track_mock->source_callback, OnError(_))
-      .Times(1);
-
-  stream_under_test.mixable_stream->Start(
-      &stream_under_test.mix_track_mock->source_callback);
-
-  stream_under_test.mixable_stream->Stop();
-
-  stream_under_test.mixable_stream->Close();
+  EXPECT_FALSE(stream_under_test.mixable_stream->Open());
+  CloseAndVerifyStreamUnderTest(stream_under_test);
 }
 
 TEST_P(OutputDeviceMixerImplTestWithDefault, OneUmixedStream_CreateOpenClose) {
   std::unique_ptr<OutputDeviceMixer> mixer = CreateMixerUnderTest(GetParam());
   StreamUnderTest stream_under_test = CreateNextStreamUnderTest(mixer.get());
-  OpenAndVerifyStreamUnderTest(stream_under_test);
+  OpenAndVerifyStreamUnderTest(stream_under_test, PlaybackMode::kIndependent);
   CloseAndVerifyStreamUnderTest(stream_under_test);
 }
 
@@ -562,8 +564,8 @@
   std::unique_ptr<OutputDeviceMixer> mixer = CreateMixerUnderTest();
   StreamUnderTest stream_under_test1 = CreateNextStreamUnderTest(mixer.get());
   StreamUnderTest stream_under_test2 = CreateNextStreamUnderTest(mixer.get());
-  OpenAndVerifyStreamUnderTest(stream_under_test1);
-  OpenAndVerifyStreamUnderTest(stream_under_test2);
+  OpenAndVerifyStreamUnderTest(stream_under_test1, PlaybackMode::kIndependent);
+  OpenAndVerifyStreamUnderTest(stream_under_test2, PlaybackMode::kIndependent);
   CloseAndVerifyStreamUnderTest(stream_under_test2);
   CloseAndVerifyStreamUnderTest(stream_under_test1);
 }
@@ -574,29 +576,15 @@
   StreamUnderTest stream_under_test1 = CreateNextStreamUnderTest(mixer.get());
   StreamUnderTest stream_under_test2 = CreateNextStreamUnderTest(mixer.get());
 
-  OpenAndVerifyStreamUnderTest(stream_under_test1);
+  OpenAndVerifyStreamUnderTest(stream_under_test1, PlaybackMode::kIndependent);
   StartAndVerifyStreamUnderTest(stream_under_test1, PlaybackMode::kIndependent);
 
   // Failing to open stream_under_test2 does not affect stream_under_test2.
-  EXPECT_CALL(*this, MockCreateOutputStream(AudioParamsEq(
-                         stream_under_test2.mix_track_mock->params)))
-      .WillOnce(Return(true));
-  EXPECT_CALL(stream_under_test2.mix_track_mock->rendering_stream, Open())
-      .WillOnce(Return(false));
-  EXPECT_CALL(stream_under_test2.mix_track_mock->rendering_stream, Close());
-  EXPECT_CALL(stream_under_test2.mix_track_mock->source_callback, OnError(_))
-      .Times(1);
-
-  EXPECT_TRUE(stream_under_test2.mixable_stream->Open());
-
-  stream_under_test2.mixable_stream->Start(
-      &stream_under_test2.mix_track_mock->source_callback);
-
+  SetIndependentRenderingStreamOpenExpectations(
+      stream_under_test2.mix_track_mock, /*open_success=*/false);
+  EXPECT_FALSE(stream_under_test2.mixable_stream->Open());
   VerifyAndClearAllExpectations();
-
-  stream_under_test2.mixable_stream->Stop();
-  stream_under_test2.mixable_stream->Close();
-  VerifyAndClearAllExpectations();
+  CloseAndVerifyStreamUnderTest(stream_under_test2);
 
   StopAndVerifyStreamUnderTest(stream_under_test1, PlaybackMode::kIndependent);
   CloseAndVerifyStreamUnderTest(stream_under_test1);
@@ -623,7 +611,7 @@
   EXPECT_EQ(volume_result, volume2);
   EXPECT_EQ(stream_under_test.mix_track_mock->graph_input.GetVolume(), volume2);
 
-  OpenAndVerifyStreamUnderTest(stream_under_test);
+  OpenAndVerifyStreamUnderTest(stream_under_test, PlaybackMode::kIndependent);
 
   // Volume is propagated after MixableOutputStream::Open().
   stream_under_test.mixable_stream->GetVolume(&volume_result);
@@ -662,7 +650,7 @@
   std::unique_ptr<OutputDeviceMixer> mixer = CreateMixerUnderTest();
   StreamUnderTest stream_under_test = CreateNextStreamUnderTest(mixer.get());
 
-  OpenAndVerifyStreamUnderTest(stream_under_test);
+  OpenAndVerifyStreamUnderTest(stream_under_test, PlaybackMode::kIndependent);
 
   {
     InSequence s;
@@ -708,7 +696,8 @@
   CloseAndVerifyStreamUnderTest(stream_under_test);
 }
 
-TEST_P(OutputDeviceMixerImplTest, NStreamsOpen_StartStopListeningHasNoEffect) {
+TEST_P(OutputDeviceMixerImplTest,
+       NStreamsOpen_StartStopListeningDoesNotStartMixing) {
   std::unique_ptr<OutputDeviceMixer> mixer = CreateMixerUnderTest();
 
   int stream_count = GetParam();
@@ -716,14 +705,21 @@
   std::set<MixTrackMock*> playing_stream_mocks;
   for (int i = 0; i < stream_count; ++i) {
     streams_under_test.push_back(CreateNextStreamUnderTest(mixer.get()));
-    OpenAndVerifyStreamUnderTest(streams_under_test.back());
+    OpenAndVerifyStreamUnderTest(streams_under_test.back(),
+                                 PlaybackMode::kIndependent);
   }
 
   // The mixer may have streams open, but they are not playing, so
   // Start/StopListening has no effect.
   MockListener listener;
+  ExpectMixingGraphOutputStreamOpen();
   mixer->StartListening(&listener);
+  VerifyAndClearAllExpectations();
+
+  ExpectMixingGraphOutputStreamClosed();
   mixer->StopListening(&listener);
+  VerifyAndClearAllExpectations();
+
   FastForwardToUnmixedPlayback();
   for (auto& stream_under_test : streams_under_test) {
     CloseAndVerifyStreamUnderTest(stream_under_test);
@@ -740,7 +736,8 @@
   std::set<MixTrackMock*> playing_stream_mocks;
   for (int i = 0; i < stream_count; ++i) {
     streams_under_test.push_back(CreateNextStreamUnderTest(mixer.get()));
-    OpenAndVerifyStreamUnderTest(streams_under_test.back());
+    OpenAndVerifyStreamUnderTest(streams_under_test.back(),
+                                 PlaybackMode::kIndependent);
     StartAndVerifyStreamUnderTest(streams_under_test.back(),
                                   PlaybackMode::kIndependent);
     playing_stream_mocks.insert((&streams_under_test.back())->mix_track_mock);
@@ -752,6 +749,7 @@
   // We are playing at least one stream.
   // Expect switch to mixing when the first listener comes.
   ExpectIndependentPlaybackStopped(playing_stream_mocks);
+  ExpectMixingGraphOutputStreamOpen();
   ExpectMixingStarted(playing_stream_mocks);
   mixer->StartListening(&listener1);
   FastForwardToUnmixedPlayback();
@@ -776,6 +774,7 @@
   VerifyAndClearAllExpectations();
 
   // Expect switching to unmixed playback after we fast-forward to the future.
+  ExpectMixingGraphOutputStreamClosed();
   ExpectMixingStopped(playing_stream_mocks);
   ExpectIndependentPlaybackStarted(playing_stream_mocks);
   FastForwardToUnmixedPlayback();
@@ -798,7 +797,8 @@
   std::set<MixTrackMock*> playing_stream_mocks;
   for (int i = 0; i < stream_count; ++i) {
     streams_under_test.push_back(CreateNextStreamUnderTest(mixer.get()));
-    OpenAndVerifyStreamUnderTest(streams_under_test.back());
+    OpenAndVerifyStreamUnderTest(streams_under_test.back(),
+                                 PlaybackMode::kIndependent);
     StartAndVerifyStreamUnderTest(streams_under_test.back(),
                                   PlaybackMode::kIndependent);
     playing_stream_mocks.insert((&streams_under_test.back())->mix_track_mock);
@@ -809,6 +809,7 @@
   // We are playing at least one stream.
   // Expect switch to mixing when the listener comes.
   ExpectIndependentPlaybackStopped(playing_stream_mocks);
+  ExpectMixingGraphOutputStreamOpen();
   ExpectMixingStarted(playing_stream_mocks);
   mixer->StartListening(&listener);
   FastForwardToUnmixedPlayback();
@@ -824,6 +825,7 @@
 
   // Stop listening and expect the switch to unmixed playback upon the timeout.
   ExpectMixingStopped(playing_stream_mocks);
+  ExpectMixingGraphOutputStreamClosed();
   ExpectIndependentPlaybackStarted(playing_stream_mocks);
   mixer->StopListening(&listener);
   FastForwardToUnmixedPlayback();
@@ -844,12 +846,15 @@
     return;  // Not interesting.
 
   MockListener listener;
+  ExpectMixingGraphOutputStreamOpen();
   mixer->StartListening(&listener);
+  VerifyAndClearAllExpectations();
 
   std::vector<StreamUnderTest> streams_under_test;
   for (int i = 0; i < stream_count; ++i) {
     streams_under_test.push_back(CreateNextStreamUnderTest(mixer.get()));
-    OpenAndVerifyStreamUnderTest(streams_under_test.back());
+    OpenAndVerifyStreamUnderTest(streams_under_test.back(),
+                                 PlaybackMode::kMixing);
     StartAndVerifyStreamUnderTest(streams_under_test.back(),
                                   PlaybackMode::kMixing);
   }
@@ -881,6 +886,7 @@
   // Now when we stop the listener, rendering of the mixing graph should
   // stop immediately. Mixing graph output stream will be closed.
   ExpectMixingGraphOutputStreamStopped();
+  ExpectMixingGraphOutputStreamClosed();
   mixer->StopListening(&listener);
   VerifyAndClearAllExpectations();
 }
@@ -889,6 +895,7 @@
   std::unique_ptr<OutputDeviceMixer> mixer = CreateMixerUnderTest();
 
   MockListener listener;
+  ExpectMixingGraphOutputStreamOpen();
   mixer->StartListening(&listener);
   VerifyAndClearAllExpectations();
 
@@ -896,7 +903,8 @@
   std::vector<StreamUnderTest> streams_under_test;
   for (int i = 0; i < stream_count; ++i) {
     streams_under_test.push_back(CreateNextStreamUnderTest(mixer.get()));
-    OpenAndVerifyStreamUnderTest(streams_under_test.back());
+    OpenAndVerifyStreamUnderTest(streams_under_test.back(),
+                                 PlaybackMode::kMixing);
     StartAndVerifyStreamUnderTest(streams_under_test.back(),
                                   PlaybackMode::kMixing);
   }
@@ -908,6 +916,7 @@
 
   if (stream_count)
     ExpectMixingGraphOutputStreamStopped();
+  ExpectMixingGraphOutputStreamClosed();
   mixer->StopListening(&listener);
   mixer = nullptr;
   // Mixer output stream must be closed immediately.
@@ -919,17 +928,19 @@
   std::unique_ptr<OutputDeviceMixer> mixer = CreateMixerUnderTest();
 
   MockListener listener;
+  ExpectMixingGraphOutputStreamOpen();
   mixer->StartListening(&listener);
   VerifyAndClearAllExpectations();
 
   auto stream_under_test = CreateNextStreamUnderTest(mixer.get());
-  OpenAndVerifyStreamUnderTest(stream_under_test);
+  OpenAndVerifyStreamUnderTest(stream_under_test, PlaybackMode::kMixing);
   StartAndVerifyStreamUnderTest(stream_under_test, PlaybackMode::kMixing);
   mixer->StopListening(&listener);
 
   // Since there are no listeners left, mixing playback must be stopped as soon
   // as the stream is gone.
   ExpectMixingGraphOutputStreamStopped();
+  ExpectMixingGraphOutputStreamClosed();
   StopAndVerifyStreamUnderTest(stream_under_test, PlaybackMode::kMixing);
 
   CloseAndVerifyStreamUnderTest(stream_under_test);
@@ -946,13 +957,16 @@
     return;  // Not interesting.
 
   MockListener listener;
+  ExpectMixingGraphOutputStreamOpen();
   mixer->StartListening(&listener);
+  VerifyAndClearAllExpectations();
 
   std::vector<StreamUnderTest> streams_under_test;
   std::set<MixTrackMock*> playing_stream_mocks;
   for (int i = 0; i < stream_count; ++i) {
     streams_under_test.push_back(CreateNextStreamUnderTest(mixer.get()));
-    OpenAndVerifyStreamUnderTest(streams_under_test.back());
+    OpenAndVerifyStreamUnderTest(streams_under_test.back(),
+                                 PlaybackMode::kMixing);
     StartAndVerifyStreamUnderTest(streams_under_test.back(),
                                   PlaybackMode::kMixing);
     playing_stream_mocks.insert((&streams_under_test.back())->mix_track_mock);
@@ -962,6 +976,8 @@
     EXPECT_CALL(stream_under_test.mix_track_mock->source_callback, OnError(_));
 
   ExpectMixingStopped(playing_stream_mocks);
+  ExpectMixingGraphOutputStreamClosed();  // To be able to recover in the
+                                          // future.
   mock_mixing_graph_output_stream_.SimulateError();
   VerifyAndClearAllExpectations();
 
@@ -981,34 +997,41 @@
   std::unique_ptr<OutputDeviceMixer> mixer = CreateMixerUnderTest();
 
   MockListener listener;
+  ExpectMixingGraphOutputStreamOpen();
   mixer->StartListening(&listener);
+  VerifyAndClearAllExpectations();
 
   std::vector<StreamUnderTest> streams_under_test;
   std::set<MixTrackMock*> playing_stream_mocks;
   for (int i = 0; i < 2; ++i) {
     streams_under_test.push_back(CreateNextStreamUnderTest(mixer.get()));
-    OpenAndVerifyStreamUnderTest(streams_under_test.back());
+    OpenAndVerifyStreamUnderTest(streams_under_test.back(),
+                                 PlaybackMode::kMixing);
     StartAndVerifyStreamUnderTest(streams_under_test.back(),
                                   PlaybackMode::kMixing);
     playing_stream_mocks.insert((&streams_under_test.back())->mix_track_mock);
   }
 
+  // Simulate the mixing stream error.
   for (auto& stream_under_test : streams_under_test)
     EXPECT_CALL(stream_under_test.mix_track_mock->source_callback, OnError(_));
-
   ExpectMixingStopped(playing_stream_mocks);
+  ExpectMixingGraphOutputStreamClosed();
   mock_mixing_graph_output_stream_.SimulateError();
   VerifyAndClearAllExpectations();
 
   // Opening and starting a new stream: mixing should retry and start
   // successfully.
   streams_under_test.push_back(CreateNextStreamUnderTest(mixer.get()));
-  OpenAndVerifyStreamUnderTest(streams_under_test.back());
+  OpenAndVerifyStreamUnderTest(streams_under_test.back(),
+                               PlaybackMode::kMixing);
 
   // Mixing should restart now.
+  ExpectMixingGraphOutputStreamOpen();
   ExpectMixingStarted(playing_stream_mocks);
   StartAndVerifyStreamUnderTest(streams_under_test.back(),
                                 PlaybackMode::kMixing);
+  VerifyAndClearAllExpectations();
 
   for (auto& stream_under_test : streams_under_test) {
     StopAndVerifyStreamUnderTest(stream_under_test, PlaybackMode::kMixing);
@@ -1016,6 +1039,7 @@
 
   // No playback, the listener is gone - we should stop mixing.
   ExpectMixingGraphOutputStreamStopped();
+  ExpectMixingGraphOutputStreamClosed();
   mixer->StopListening(&listener);
   VerifyAndClearAllExpectations();
 
@@ -1033,7 +1057,8 @@
 
   for (int i = 0; i < stream_count; ++i) {
     streams_under_test.push_back(CreateNextStreamUnderTest(mixer.get()));
-    OpenAndVerifyStreamUnderTest(streams_under_test.back());
+    OpenAndVerifyStreamUnderTest(streams_under_test.back(),
+                                 PlaybackMode::kIndependent);
     if (i) {  // Leave one stream just open.
       StartAndVerifyStreamUnderTest(streams_under_test.back(),
                                     PlaybackMode::kIndependent);
@@ -1043,9 +1068,9 @@
   for (int i = 0; i < stream_count; ++i) {
     if (i) {
       EXPECT_CALL(streams_under_test[i].mix_track_mock->rendering_stream, Stop);
-      EXPECT_CALL(streams_under_test[i].mix_track_mock->rendering_stream,
-                  Close);
     }
+    ExpectIndependentRenderingStreamStreamClosedIfItWasOpen(
+        streams_under_test[i]);
     EXPECT_CALL(*this, OnDeviceChangeForMixMember(AudioParamsEq(
                            streams_under_test[i].mix_track_mock->params)));
   }
@@ -1068,12 +1093,15 @@
   int stream_count = GetParam();
 
   MockListener listener;
+  ExpectMixingGraphOutputStreamOpen();
   mixer->StartListening(&listener);
+  VerifyAndClearAllExpectations();
 
   std::vector<StreamUnderTest> streams_under_test;
   for (int i = 0; i < stream_count; ++i) {
     streams_under_test.push_back(CreateNextStreamUnderTest(mixer.get()));
-    OpenAndVerifyStreamUnderTest(streams_under_test.back());
+    OpenAndVerifyStreamUnderTest(streams_under_test.back(),
+                                 PlaybackMode::kMixing);
     if (i) {  // Leave one stream just open.
       StartAndVerifyStreamUnderTest(streams_under_test.back(),
                                     PlaybackMode::kMixing);
@@ -1084,12 +1112,15 @@
     if (i) {
       EXPECT_CALL(streams_under_test[i].mix_track_mock->graph_input, Stop);
     }
+    ExpectIndependentRenderingStreamStreamClosedIfItWasOpen(
+        streams_under_test[i]);
     EXPECT_CALL(*this, OnDeviceChangeForMixMember(AudioParamsEq(
                            streams_under_test[i].mix_track_mock->params)));
   }
 
   if (stream_count > 1)  // Since we do not start the first stream.
     ExpectMixingGraphOutputStreamStopped();
+  ExpectMixingGraphOutputStreamClosed();
 
   mixer->ProcessDeviceChange();
   VerifyAndClearAllExpectations();
@@ -1109,10 +1140,12 @@
   MockListener listener1;
   MockListener listener2;
 
+  ExpectMixingGraphOutputStreamOpen();
   mixer->StartListening(&listener1);
+  VerifyAndClearAllExpectations();
 
   StreamUnderTest stream_under_test = CreateNextStreamUnderTest(mixer.get());
-  OpenAndVerifyStreamUnderTest(stream_under_test);
+  OpenAndVerifyStreamUnderTest(stream_under_test, PlaybackMode::kMixing);
   StartAndVerifyStreamUnderTest(stream_under_test, PlaybackMode::kMixing);
 
   EXPECT_CALL(listener1, OnPlayoutData(_, _, _)).Times(1);
@@ -1136,20 +1169,26 @@
   CloseAndVerifyStreamUnderTest(stream_under_test);
 
   ExpectMixingGraphOutputStreamStopped();
+  ExpectMixingGraphOutputStreamClosed();
   mixer->StopListening(&listener2);
 }
 
 TEST_F(OutputDeviceMixerImplTest,
-       MixingStreamCreationFailureHandled_ListenerPresent) {
+       MixingStreamCreationFailureHandledOnMixingPlaybackStart) {
   std::unique_ptr<OutputDeviceMixer> mixer = CreateMixerUnderTest();
-
   MockListener listener;
-
+  // Fail creating the mixing stream.
+  EXPECT_CALL(*this,
+              MockCreateOutputStream(AudioParamsEq(mixer_output_params_)))
+      .WillOnce(Return(false));
   mixer->StartListening(&listener);
+  VerifyAndClearAllExpectations();
 
   StreamUnderTest stream_under_test = CreateNextStreamUnderTest(mixer.get());
-  OpenAndVerifyStreamUnderTest(stream_under_test);
+  OpenAndVerifyStreamUnderTest(stream_under_test, PlaybackMode::kMixing);
 
+  // Since the previous attempt to create the mixing stream failed, it will
+  // retry now when starting mixing playback. Fail it again.
   EXPECT_CALL(*this,
               MockCreateOutputStream(AudioParamsEq(mixer_output_params_)))
       .WillOnce(Return(false));
@@ -1175,17 +1214,24 @@
   std::unique_ptr<OutputDeviceMixer> mixer = CreateMixerUnderTest();
 
   MockListener listener;
-
-  mixer->StartListening(&listener);
-
-  StreamUnderTest stream_under_test = CreateNextStreamUnderTest(mixer.get());
-  OpenAndVerifyStreamUnderTest(stream_under_test);
-
+  // Fail opening the mixing stream.
   EXPECT_CALL(*this,
-              MockCreateOutputStream(AudioParamsEq(mixer_output_params_)))
-      .WillOnce(Return(true));
+              MockCreateOutputStream(AudioParamsEq(mixer_output_params_)));
   EXPECT_CALL(mock_mixing_graph_output_stream_, Open()).WillOnce(Return(false));
   EXPECT_CALL(mock_mixing_graph_output_stream_, Close());
+  mixer->StartListening(&listener);
+  VerifyAndClearAllExpectations();
+
+  StreamUnderTest stream_under_test = CreateNextStreamUnderTest(mixer.get());
+  OpenAndVerifyStreamUnderTest(stream_under_test, PlaybackMode::kMixing);
+
+  // Since the previous attempt to create the mixing stream failed, it will
+  // retry now when starting mixing playback. Fail it again.
+  EXPECT_CALL(*this,
+              MockCreateOutputStream(AudioParamsEq(mixer_output_params_)));
+  EXPECT_CALL(mock_mixing_graph_output_stream_, Open()).WillOnce(Return(false));
+  EXPECT_CALL(mock_mixing_graph_output_stream_, Close());
+
   EXPECT_CALL(stream_under_test.mix_track_mock->source_callback, OnError(_));
 
   stream_under_test.mixable_stream->Start(
@@ -1209,12 +1255,11 @@
   MockListener listener;
 
   StreamUnderTest stream_under_test = CreateNextStreamUnderTest(mixer.get());
-  OpenAndVerifyStreamUnderTest(stream_under_test);
+  OpenAndVerifyStreamUnderTest(stream_under_test, PlaybackMode::kIndependent);
   StartAndVerifyStreamUnderTest(stream_under_test, PlaybackMode::kIndependent);
 
   EXPECT_CALL(*this,
-              MockCreateOutputStream(AudioParamsEq(mixer_output_params_)))
-      .WillOnce(Return(true));
+              MockCreateOutputStream(AudioParamsEq(mixer_output_params_)));
   EXPECT_CALL(mock_mixing_graph_output_stream_, Open()).WillOnce(Return(false));
   EXPECT_CALL(mock_mixing_graph_output_stream_, Close());
   EXPECT_CALL(stream_under_test.mix_track_mock->rendering_stream, Stop);
@@ -1237,21 +1282,24 @@
   std::unique_ptr<OutputDeviceMixer> mixer = CreateMixerUnderTest();
 
   MockListener listener;
-
-  mixer->StartListening(&listener);
-
-  StreamUnderTest stream_under_test1 = CreateNextStreamUnderTest(mixer.get());
-  OpenAndVerifyStreamUnderTest(stream_under_test1);
-
+  // Fail creating the mixing stream.
   EXPECT_CALL(*this,
               MockCreateOutputStream(AudioParamsEq(mixer_output_params_)))
       .WillOnce(Return(false));
+  mixer->StartListening(&listener);
+  VerifyAndClearAllExpectations();
 
+  StreamUnderTest stream_under_test1 = CreateNextStreamUnderTest(mixer.get());
+  OpenAndVerifyStreamUnderTest(stream_under_test1, PlaybackMode::kMixing);
+
+  // Fail creating the mixing stream again.
+  EXPECT_CALL(*this,
+              MockCreateOutputStream(AudioParamsEq(mixer_output_params_)))
+      .WillOnce(Return(false));
   EXPECT_CALL(stream_under_test1.mix_track_mock->source_callback, OnError(_));
 
   stream_under_test1.mixable_stream->Start(
       &stream_under_test1.mix_track_mock->source_callback);
-
   VerifyAndClearAllExpectations();
 
   // Since mixing has not started, the mixer considers it as independent
@@ -1262,15 +1310,44 @@
 
   // This time mixing should be successful.
   StreamUnderTest stream_under_test2 = CreateNextStreamUnderTest(mixer.get());
-  OpenAndVerifyStreamUnderTest(stream_under_test2);
+  OpenAndVerifyStreamUnderTest(stream_under_test2, PlaybackMode::kMixing);
+
+  ExpectMixingGraphOutputStreamOpen();
   StartAndVerifyStreamUnderTest(stream_under_test2, PlaybackMode::kMixing);
   StopAndVerifyStreamUnderTest(stream_under_test2, PlaybackMode::kMixing);
   CloseAndVerifyStreamUnderTest(stream_under_test2);
 
   ExpectMixingGraphOutputStreamStopped();
+  ExpectMixingGraphOutputStreamClosed();
   mixer->StopListening(&listener);
 }
 
+TEST_F(OutputDeviceMixerImplTest,
+       StartListening_OpenStream_StopListening_StartIndependentPlayback) {
+  std::unique_ptr<OutputDeviceMixer> mixer = CreateMixerUnderTest();
+
+  MockListener listener;
+  ExpectMixingGraphOutputStreamOpen();
+  mixer->StartListening(&listener);
+  VerifyAndClearAllExpectations();
+
+  StreamUnderTest stream_under_test = CreateNextStreamUnderTest(mixer.get());
+  OpenAndVerifyStreamUnderTest(stream_under_test, PlaybackMode::kMixing);
+
+  ExpectMixingGraphOutputStreamClosed();
+  mixer->StopListening(&listener);
+  VerifyAndClearAllExpectations();
+
+  // Since there were listeners attached when |stream_under_test| was open, its
+  // physical rendering stream is not open yet.
+  SetIndependentRenderingStreamOpenExpectations(
+      stream_under_test.mix_track_mock,
+      /*open_success=*/true);
+  StartAndVerifyStreamUnderTest(stream_under_test, PlaybackMode::kIndependent);
+  StopAndVerifyStreamUnderTest(stream_under_test, PlaybackMode::kIndependent);
+  CloseAndVerifyStreamUnderTest(stream_under_test);
+}
+
 INSTANTIATE_TEST_SUITE_P(,
                          OutputDeviceMixerImplTest,
                          testing::Values(0, 1, 2, 3));
diff --git a/testing/variations/fieldtrial_testing_config.json b/testing/variations/fieldtrial_testing_config.json
index bde5d52c..5e753e0c 100644
--- a/testing/variations/fieldtrial_testing_config.json
+++ b/testing/variations/fieldtrial_testing_config.json
@@ -115,21 +115,6 @@
             ]
         }
     ],
-    "AndroidDynamicWideColorGamut": [
-        {
-            "platforms": [
-                "android"
-            ],
-            "experiments": [
-                {
-                    "name": "Enabled",
-                    "enable_features": [
-                        "DynamicColorGamut"
-                    ]
-                }
-            ]
-        }
-    ],
     "AndroidFixedUmaSessionResumeOrder": [
         {
             "platforms": [
@@ -208,28 +193,6 @@
             ]
         }
     ],
-    "AndroidInProductHelpDownloadSettings": [
-        {
-            "platforms": [
-                "android"
-            ],
-            "experiments": [
-                {
-                    "name": "Tracking",
-                    "params": {
-                        "availability": "any",
-                        "event_settings_accessed": "name:download_settings_access_through_download_home;comparator:==0;window:60;storage:360",
-                        "event_trigger": "name:download_settings_iph_trigger;comparator:any;window:90;storage:360",
-                        "event_used": "name:download_settings_opened;comparator:any;window:90;storage:360",
-                        "session_rate": "<1"
-                    },
-                    "enable_features": [
-                        "IPH_DownloadSettings"
-                    ]
-                }
-            ]
-        }
-    ],
     "AndroidInProductHelpPwaInstall": [
         {
             "platforms": [
@@ -573,27 +536,6 @@
             ]
         }
     ],
-    "AssistAutocorrect": [
-        {
-            "platforms": [
-                "chromeos"
-            ],
-            "experiments": [
-                {
-                    "name": "Enabled_20200925",
-                    "enable_features": [
-                        "AssistAutoCorrect"
-                    ]
-                },
-                {
-                    "name": "Enabled_20200201",
-                    "enable_features": [
-                        "AssistAutoCorrect"
-                    ]
-                }
-            ]
-        }
-    ],
     "AsyncFontAccess": [
         {
             "platforms": [
@@ -1583,21 +1525,6 @@
             ]
         }
     ],
-    "ChromeOSHeuristicPalm": [
-        {
-            "platforms": [
-                "chromeos"
-            ],
-            "experiments": [
-                {
-                    "name": "Enabled",
-                    "enable_features": [
-                        "EnableHeuristicPalmDetectionFilter"
-                    ]
-                }
-            ]
-        }
-    ],
     "ChromeOSKstaled": [
         {
             "platforms": [
@@ -1625,25 +1552,6 @@
             ]
         }
     ],
-    "ChromeOSNeuralPalm": [
-        {
-            "platforms": [
-                "chromeos"
-            ],
-            "experiments": [
-                {
-                    "name": "Enabled",
-                    "params": {
-                        "neural_palm_radius_polynomial": "0.17889799, 4.22584412"
-                    },
-                    "enable_features": [
-                        "EnableNeuralPalmDetectionFilter",
-                        "EnableNeuralStylusReportFilter"
-                    ]
-                }
-            ]
-        }
-    ],
     "ChromeOSRawPSIMetrics": [
         {
             "platforms": [
@@ -1852,26 +1760,6 @@
             ]
         }
     ],
-    "ClientSideDetectionReferrerChain": [
-        {
-            "platforms": [
-                "android",
-                "chromeos",
-                "chromeos_lacros",
-                "linux",
-                "mac",
-                "windows"
-            ],
-            "experiments": [
-                {
-                    "name": "Enabled",
-                    "enable_features": [
-                        "ClientSideDetectionReferrerChain"
-                    ]
-                }
-            ]
-        }
-    ],
     "CombinedNavigationOptimizations": [
         {
             "platforms": [
@@ -2521,21 +2409,6 @@
             ]
         }
     ],
-    "DesynchronizedScrolling": [
-        {
-            "platforms": [
-                "android"
-            ],
-            "experiments": [
-                {
-                    "name": "Enabled",
-                    "disable_features": [
-                        "SynchronizedScrolling"
-                    ]
-                }
-            ]
-        }
-    ],
     "DetectFormSubmissionOnFormClearIOS": [
         {
             "platforms": [
@@ -2880,6 +2753,9 @@
             "experiments": [
                 {
                     "name": "Enabled",
+                    "params": {
+                        "CreateCompositorWorkerContext": "true"
+                    },
                     "enable_features": [
                         "EarlyEstablishGpuChannel"
                     ]
@@ -3029,29 +2905,6 @@
             ]
         }
     ],
-    "FirstPartySetsOriginTrial": [
-        {
-            "platforms": [
-                "android",
-                "chromeos",
-                "chromeos_lacros",
-                "linux",
-                "mac",
-                "windows"
-            ],
-            "experiments": [
-                {
-                    "name": "Enabled",
-                    "params": {
-                        "FirstPartySetsIsDogfooder": "false"
-                    },
-                    "enable_features": [
-                        "FirstPartySets"
-                    ]
-                }
-            ]
-        }
-    ],
     "ForceSynchronousHTMLParsing": [
         {
             "platforms": [
@@ -3998,25 +3851,6 @@
             ]
         }
     ],
-    "MojoPosixUseWritev": [
-        {
-            "platforms": [
-                "android",
-                "chromeos",
-                "chromeos_lacros",
-                "linux",
-                "ios"
-            ],
-            "experiments": [
-                {
-                    "name": "Enabled",
-                    "enable_features": [
-                        "MojoPosixUseWritev"
-                    ]
-                }
-            ]
-        }
-    ],
     "MojoStructuredMetrics": [
         {
             "platforms": [
@@ -4714,8 +4548,8 @@
             ],
             "experiments": [
                 {
-                    "name": "Enabled",
-                    "enable_features": [
+                    "name": "Disabled",
+                    "disable_features": [
                         "PartitionAllocLargeThreadCacheSize"
                     ]
                 }
@@ -5691,24 +5525,6 @@
             ]
         }
     ],
-    "ShareButtonInTopToolbar": [
-        {
-            "platforms": [
-                "android"
-            ],
-            "experiments": [
-                {
-                    "name": "Enabled",
-                    "params": {
-                        "minimum_width": "360"
-                    },
-                    "enable_features": [
-                        "ShareButtonInTopToolbar"
-                    ]
-                }
-            ]
-        }
-    ],
     "ShareUsageRanking": [
         {
             "platforms": [
@@ -5988,26 +5804,6 @@
             ]
         }
     ],
-    "TabRanker": [
-        {
-            "platforms": [
-                "chromeos"
-            ],
-            "experiments": [
-                {
-                    "name": "Enabled",
-                    "params": {
-                        "disable_background_log_with_TabRanker": "false",
-                        "number_of_oldest_tabs_to_log_with_TabRanker": "0",
-                        "number_of_oldest_tabs_to_score_with_TabRanker": "0"
-                    },
-                    "enable_features": [
-                        "TabRanker"
-                    ]
-                }
-            ]
-        }
-    ],
     "TabSearchFuzzySearch": [
         {
             "platforms": [
@@ -6139,29 +5935,6 @@
             ]
         }
     ],
-    "ToolbarMicIphAndroid": [
-        {
-            "platforms": [
-                "android"
-            ],
-            "experiments": [
-                {
-                    "name": "EnabledDefault",
-                    "params": {
-                        "availability": ">=14",
-                        "event_trigger": "name:mic_toolbar_iph_triggered;comparator:==0;window:90;storage:90",
-                        "event_used": "name:successful_voice_search;comparator:==0;window:14;storage:90",
-                        "generic_message": "true",
-                        "session_rate": "<1"
-                    },
-                    "enable_features": [
-                        "IPH_MicToolbar",
-                        "ToolbarMicIphAndroid"
-                    ]
-                }
-            ]
-        }
-    ],
     "TopCat": [
         {
             "platforms": [
@@ -6180,47 +5953,6 @@
             ]
         }
     ],
-    "TranslateRankerModel": [
-        {
-            "platforms": [
-                "chromeos",
-                "linux",
-                "windows"
-            ],
-            "experiments": [
-                {
-                    "name": "launch_20180628_model_20170329_with_blacklist_override_default",
-                    "params": {
-                        "translate-ranker-model-url": "https://www.gstatic.com/chrome/intelligence/assist/ranker/models/translate/2017/03/translate_ranker_model_20170329.pb.bin"
-                    },
-                    "enable_features": [
-                        "TranslateRankerAutoBlacklistOverride",
-                        "TranslateRankerEnforcement",
-                        "TranslateRankerQuery"
-                    ]
-                }
-            ]
-        },
-        {
-            "platforms": [
-                "ios",
-                "mac"
-            ],
-            "experiments": [
-                {
-                    "name": "20180123_launch",
-                    "params": {
-                        "translate-ranker-model-url": "https://www.gstatic.com/chrome/intelligence/assist/ranker/models/translate/translate_ranker_20180123.model"
-                    },
-                    "enable_features": [
-                        "TranslateRankerAutoBlacklistOverride",
-                        "TranslateRankerEnforcement",
-                        "TranslateRankerQuery"
-                    ]
-                }
-            ]
-        }
-    ],
     "TreatPreconnectAsDefault": [
         {
             "platforms": [
diff --git a/third_party/blink/renderer/core/dom/document.cc b/third_party/blink/renderer/core/dom/document.cc
index ab3e273..c0ad986 100644
--- a/third_party/blink/renderer/core/dom/document.cc
+++ b/third_party/blink/renderer/core/dom/document.cc
@@ -3646,7 +3646,6 @@
   PageDismissalScope in_page_dismissal;
   auto& before_unload_event = *MakeGarbageCollected<BeforeUnloadEvent>();
   before_unload_event.initEvent(event_type_names::kBeforeunload, false, true);
-  const base::TimeTicks beforeunload_event_start = base::TimeTicks::Now();
 
   {
     // We want to avoid progressing to kBeforeUnloadEventHandled if the page
@@ -3660,12 +3659,6 @@
     dom_window_->DispatchEvent(before_unload_event, this);
   }
 
-  const base::TimeTicks beforeunload_event_end = base::TimeTicks::Now();
-  DEFINE_STATIC_LOCAL(
-      CustomCountHistogram, beforeunload_histogram,
-      ("DocumentEventTiming.BeforeUnloadDuration", 0, 10000000, 50));
-  beforeunload_histogram.CountMicroseconds(beforeunload_event_end -
-                                           beforeunload_event_start);
   if (!before_unload_event.defaultPrevented())
     DefaultEventHandler(before_unload_event);
 
diff --git a/third_party/blink/renderer/core/editing/local_caret_rect_test.cc b/third_party/blink/renderer/core/editing/local_caret_rect_test.cc
index 73276ad..991e499 100644
--- a/third_party/blink/renderer/core/editing/local_caret_rect_test.cc
+++ b/third_party/blink/renderer/core/editing/local_caret_rect_test.cc
@@ -919,8 +919,7 @@
   InsertStyleElement("pre{ font: 10px/10px Ahem; width: 300px }");
   const Position& caret =
       SetCaretTextToBody("<pre dir='ltr'>foo\n|<bdo dir='ltr'>abc</bdo></pre>");
-  PhysicalRect position_rect, visible_position_rect;
-  std::tie(position_rect, visible_position_rect) = GetPhysicalRects(caret);
+  auto [position_rect, visible_position_rect] = GetPhysicalRects(caret);
   EXPECT_EQ(PhysicalRect(0, 10, 1, 10), position_rect);
   EXPECT_EQ(PhysicalRect(0, 10, 1, 10), visible_position_rect);
 }
@@ -930,8 +929,7 @@
   InsertStyleElement("pre{ font: 10px/10px Ahem; width: 300px }");
   const Position& caret =
       SetCaretTextToBody("<pre dir='ltr'>foo\n|<bdo dir='rtl'>abc</bdo></pre>");
-  PhysicalRect position_rect, visible_position_rect;
-  std::tie(position_rect, visible_position_rect) = GetPhysicalRects(caret);
+  auto [position_rect, visible_position_rect] = GetPhysicalRects(caret);
   EXPECT_EQ(PhysicalRect(0, 10, 1, 10), position_rect);
   EXPECT_EQ(PhysicalRect(0, 10, 1, 10), visible_position_rect);
 }
@@ -941,8 +939,7 @@
   InsertStyleElement("pre{ font: 10px/10px Ahem; width: 300px }");
   const Position& caret =
       SetCaretTextToBody("<pre dir='rtl'>foo\n|<bdo dir='ltr'>abc</bdo></pre>");
-  PhysicalRect position_rect, visible_position_rect;
-  std::tie(position_rect, visible_position_rect) = GetPhysicalRects(caret);
+  auto [position_rect, visible_position_rect] = GetPhysicalRects(caret);
   EXPECT_EQ(PhysicalRect(299, 10, 1, 10), position_rect);
   EXPECT_EQ(PhysicalRect(299, 10, 1, 10), visible_position_rect);
 }
@@ -952,8 +949,7 @@
   InsertStyleElement("pre{ font: 10px/10px Ahem; width: 300px }");
   const Position& caret =
       SetCaretTextToBody("<pre dir='rtl'>foo\n|<bdo dir='rtl'>abc</bdo></pre>");
-  PhysicalRect position_rect, visible_position_rect;
-  std::tie(position_rect, visible_position_rect) = GetPhysicalRects(caret);
+  auto [position_rect, visible_position_rect] = GetPhysicalRects(caret);
   EXPECT_EQ(PhysicalRect(299, 10, 1, 10), position_rect);
   EXPECT_EQ(PhysicalRect(299, 10, 1, 10), visible_position_rect);
 }
@@ -963,8 +959,7 @@
   LoadAhem();
   InsertStyleElement("body { font: 10px/10px Ahem; width: 300px }");
   const Position& caret = SetCaretTextToBody("<div>foo\n|</div>");
-  PhysicalRect position_rect, visible_position_rect;
-  std::tie(position_rect, visible_position_rect) = GetPhysicalRects(caret);
+  auto [position_rect, visible_position_rect] = GetPhysicalRects(caret);
   EXPECT_EQ(PhysicalRect(30, 0, 1, 10), position_rect);
   EXPECT_EQ(PhysicalRect(30, 0, 1, 10), visible_position_rect);
 }
diff --git a/third_party/blink/renderer/core/exported/web_page_popup_impl.cc b/third_party/blink/renderer/core/exported/web_page_popup_impl.cc
index 3888658..792e6117 100644
--- a/third_party/blink/renderer/core/exported/web_page_popup_impl.cc
+++ b/third_party/blink/renderer/core/exported/web_page_popup_impl.cc
@@ -346,30 +346,12 @@
       main_settings.GetAvailablePointerTypes());
   page_->GetSettings().SetPrimaryPointerType(
       main_settings.GetPrimaryPointerType());
+  page_->GetSettings().SetPreferredColorScheme(
+      main_settings.GetPreferredColorScheme());
+  page_->GetSettings().SetForceDarkModeEnabled(
+      main_settings.GetForceDarkModeEnabled());
 
-  // The style can be out-of-date if e.g. a key event handler modified the
-  // OwnerElement()'s style before the default handler started opening the
-  // popup. If the key handler forced a style update the style may be up-to-date
-  // and null.
-  // Note that if there's a key event handler which changes the color-scheme
-  // between the key is pressed and the popup is opened, the color-scheme of the
-  // form element and its popup may not match.
-  // If we think it's important to have an up-to-date style here, we need to run
-  // an UpdateStyleAndLayoutTree() before opening the popup in the various
-  // default event handlers.
-  if (const auto* style = popup_client_->OwnerElement().GetComputedStyle()) {
-    // Avoid using dark color scheme stylesheet for popups when forced colors
-    // mode is active.
-    // TODO(iopopesc): move this to popup CSS when the FocedColors feature is
-    // enabled by default.
-    bool in_forced_colors_mode =
-        popup_client_->OwnerElement().GetDocument().InForcedColorsMode();
-    page_->GetSettings().SetPreferredColorScheme(
-        style->UsedColorScheme() == mojom::blink::ColorScheme::kDark &&
-                !in_forced_colors_mode
-            ? mojom::blink::PreferredColorScheme::kDark
-            : mojom::blink::PreferredColorScheme::kLight);
-  }
+  popup_client_->AdjustSettings(page_->GetSettings());
   popup_client_->CreatePagePopupController(*page_, *this);
 
   ProvideContextFeaturesTo(*page_, std::make_unique<PagePopupFeaturesClient>());
diff --git a/third_party/blink/renderer/core/exported/web_view_test.cc b/third_party/blink/renderer/core/exported/web_view_test.cc
index 5432869..0ea29bb 100644
--- a/third_party/blink/renderer/core/exported/web_view_test.cc
+++ b/third_party/blink/renderer/core/exported/web_view_test.cc
@@ -3005,9 +3005,10 @@
           web_view->MainFrameImpl()->GetFrame()));
 }
 
-// Tests that a touch drag context menu is enabled, a dragend does not show a
-// context menu after a drag.
-TEST_F(WebViewTest, TouchDragContextMenuWithDrag) {
+// Tests that a dragend does not show a context menu after a drag when
+// touch-drag-context-menu is enabled.
+TEST_F(WebViewTest, TouchDragContextMenuAtDragEnd) {
+  ScopedTouchDragAndContextMenuForTest touch_drag_and_context_menu(false);
   RegisterMockedHttpURLLoad("long_press_draggable_div.html");
 
   WebViewImpl* web_view = web_view_helper_.InitializeAndLoad(
@@ -3040,12 +3041,16 @@
   web_view->MainFrameViewWidget()->DragSourceEndedAt(
       dragend_point, dragend_point, ui::mojom::blink::DragOperation::kNone,
       base::DoNothing());
+
+  // TODO(https://crbug.com/1290905): When TouchDragAndContextMenu is enabled,
+  // this becomes true.  This shouldn't be the case.
   EXPECT_FALSE(
       web_view->GetPage()->GetContextMenuController().ContextMenuNodeForFrame(
           web_view->MainFrameImpl()->GetFrame()));
 }
 
-TEST_F(WebViewTest, showContextMenuOnLongPressingLinks) {
+TEST_F(WebViewTest, ContextMenuOnLinkAndImageLongPress) {
+  ScopedTouchDragAndContextMenuForTest touch_drag_and_context_menu(false);
   RegisterMockedHttpURLLoad("long_press_links_and_images.html");
 
   url_test_helpers::RegisterMockedURLLoad(
@@ -3064,15 +3069,61 @@
 
   EXPECT_TRUE(
       TapElementById(WebInputEvent::Type::kGestureLongPress, anchor_tag_id));
-  EXPECT_EQ("anchor contextmenu",
-            web_view->MainFrameImpl()->GetDocument().Title());
+  EXPECT_EQ("contextmenu@a,", web_view->MainFrameImpl()->GetDocument().Title());
 
   EXPECT_TRUE(
       TapElementById(WebInputEvent::Type::kGestureLongPress, image_tag_id));
-  EXPECT_EQ("image contextmenu",
+  EXPECT_EQ("contextmenu@a,contextmenu@img,",
             web_view->MainFrameImpl()->GetDocument().Title());
 }
 
+TEST_F(WebViewTest, ContextMenuAndDragOnImageLongPress) {
+  ScopedTouchDragAndContextMenuForTest touch_drag_and_context_menu(true);
+  RegisterMockedHttpURLLoad("long_press_links_and_images.html");
+
+  url_test_helpers::RegisterMockedURLLoad(
+      ToKURL("http://www.test.com/foo.png"),
+      test::CoreTestDataPath("white-1x1.png"));
+  WebViewImpl* web_view = web_view_helper_.InitializeAndLoad(
+      base_url_ + "long_press_links_and_images.html");
+
+  web_view->SettingsImpl()->SetTouchDragDropEnabled(true);
+  web_view->MainFrameViewWidget()->Resize(gfx::Size(500, 300));
+  UpdateAllLifecyclePhases();
+  RunPendingTasks();
+
+  WebString image_tag_id = WebString::FromUTF8("imageTag");
+
+  EXPECT_TRUE(
+      TapElementById(WebInputEvent::Type::kGestureLongPress, image_tag_id));
+  EXPECT_EQ("dragstart@img,contextmenu@img,",
+            web_view->MainFrameImpl()->GetDocument().Title().Ascii());
+}
+
+TEST_F(WebViewTest, ContextMenuAndDragOnLinkLongPress) {
+  ScopedTouchDragAndContextMenuForTest touch_drag_and_context_menu(true);
+
+  RegisterMockedHttpURLLoad("long_press_links_and_images.html");
+
+  url_test_helpers::RegisterMockedURLLoad(
+      ToKURL("http://www.test.com/foo.png"),
+      test::CoreTestDataPath("white-1x1.png"));
+  WebViewImpl* web_view = web_view_helper_.InitializeAndLoad(
+      base_url_ + "long_press_links_and_images.html");
+
+  web_view->SettingsImpl()->SetTouchDragDropEnabled(true);
+  web_view->MainFrameViewWidget()->Resize(gfx::Size(500, 300));
+  UpdateAllLifecyclePhases();
+  RunPendingTasks();
+
+  WebString anchor_tag_id = WebString::FromUTF8("anchorTag");
+
+  EXPECT_TRUE(
+      TapElementById(WebInputEvent::Type::kGestureLongPress, anchor_tag_id));
+  EXPECT_EQ("dragstart@a,contextmenu@a,",
+            web_view->MainFrameImpl()->GetDocument().Title().Ascii());
+}
+
 TEST_F(WebViewTest, LongPressEmptyEditableSelection) {
   RegisterMockedHttpURLLoad("long_press_empty_editable_selection.html");
 
@@ -6078,7 +6129,7 @@
 }
 
 // Regression test for https://crbug.com/1112987
-TEST_F(WebViewTest, LongPressAndThenLongTapLinkInIframeShouldShowContextMenu) {
+TEST_F(WebViewTest, LongPressThenLongTapLinkInIframeStartsContextMenu) {
   RegisterMockedHttpURLLoad("long_press_link_in_iframe.html");
 
   WebViewImpl* web_view = web_view_helper_.InitializeAndLoad(
@@ -6101,15 +6152,15 @@
           ->GetFrameView()
           ->FrameToScreen(anchor->GetLayoutObject()->AbsoluteBoundingBoxRect())
           .CenterPoint();
-  WebGestureEvent event(WebInputEvent::Type::kGestureLongPress,
-                        WebInputEvent::kNoModifiers,
-                        WebInputEvent::GetStaticTimeStampForTests(),
-                        WebGestureDevice::kTouchscreen);
-  event.SetPositionInWidget(gfx::PointF(center.x(), center.x()));
 
+  WebGestureEvent longpress_event(WebInputEvent::Type::kGestureLongPress,
+                                  WebInputEvent::kNoModifiers,
+                                  WebInputEvent::GetStaticTimeStampForTests(),
+                                  WebGestureDevice::kTouchscreen);
+  longpress_event.SetPositionInWidget(gfx::PointF(center.x(), center.x()));
   EXPECT_EQ(WebInputEventResult::kHandledSystem,
             web_view->MainFrameWidget()->HandleInputEvent(
-                WebCoalescedInputEvent(event, ui::LatencyInfo())));
+                WebCoalescedInputEvent(longpress_event, ui::LatencyInfo())));
 
   WebGestureEvent tap_event(WebInputEvent::Type::kGestureLongTap,
                             WebInputEvent::kNoModifiers,
@@ -6117,7 +6168,14 @@
                             WebGestureDevice::kTouchscreen);
   tap_event.SetPositionInWidget(gfx::PointF(center.x(), center.x()));
 
-  EXPECT_EQ(WebInputEventResult::kNotHandled,
+  // If touch-drag-and-context-menu is enabled, we expect an ongoing drag
+  // operation at the moment a tap is dispatched.  This changes the outcome of
+  // the tap event-handler below to "suppressed".
+  WebInputEventResult expected_tap_handling_result =
+      RuntimeEnabledFeatures::TouchDragAndContextMenuEnabled()
+          ? WebInputEventResult::kHandledSuppressed
+          : WebInputEventResult::kNotHandled;
+  EXPECT_EQ(expected_tap_handling_result,
             web_view->MainFrameWidget()->HandleInputEvent(
                 WebCoalescedInputEvent(tap_event, ui::LatencyInfo())));
   EXPECT_EQ("anchor contextmenu",
diff --git a/third_party/blink/renderer/core/frame/visual_viewport_test.cc b/third_party/blink/renderer/core/frame/visual_viewport_test.cc
index 20c7f5a..b205a151 100644
--- a/third_party/blink/renderer/core/frame/visual_viewport_test.cc
+++ b/third_party/blink/renderer/core/frame/visual_viewport_test.cc
@@ -2594,7 +2594,7 @@
   UpdateAllLifecyclePhases();
 
   auto check_scrollbar = [](const cc::Layer* scrollbar, float scale) {
-    EXPECT_TRUE(scrollbar->DrawsContent());
+    EXPECT_TRUE(scrollbar->draws_content());
     EXPECT_FALSE(scrollbar->HitTestable());
     EXPECT_TRUE(scrollbar->IsScrollbarLayerForTesting());
     EXPECT_EQ(
diff --git a/third_party/blink/renderer/core/frame/web_local_frame_impl.cc b/third_party/blink/renderer/core/frame/web_local_frame_impl.cc
index 4b3d2914..dd163e2 100644
--- a/third_party/blink/renderer/core/frame/web_local_frame_impl.cc
+++ b/third_party/blink/renderer/core/frame/web_local_frame_impl.cc
@@ -2190,9 +2190,7 @@
     HTMLPortalElement* portal,
     mojo::PendingAssociatedReceiver<mojom::blink::Portal> portal_receiver,
     mojo::PendingAssociatedRemote<mojom::blink::PortalClient> portal_client) {
-  WebRemoteFrame* portal_frame;
-  PortalToken portal_token;
-  std::tie(portal_frame, portal_token) = client_->CreatePortal(
+  auto [portal_frame, portal_token] = client_->CreatePortal(
       std::move(portal_receiver), std::move(portal_client), portal);
   return {To<WebRemoteFrameImpl>(portal_frame)->GetFrame(), portal_token};
 }
diff --git a/third_party/blink/renderer/core/html/forms/color_chooser_popup_ui_controller.cc b/third_party/blink/renderer/core/html/forms/color_chooser_popup_ui_controller.cc
index 60eb2242..b4e7c72 100644
--- a/third_party/blink/renderer/core/html/forms/color_chooser_popup_ui_controller.cc
+++ b/third_party/blink/renderer/core/html/forms/color_chooser_popup_ui_controller.cc
@@ -285,4 +285,8 @@
   LOG(INFO) << "OpenSystemColorChooser() Called";
 }
 
+void ColorChooserPopupUIController::AdjustSettings(Settings& popup_settings) {
+  AdjustSettingsFromOwnerColorScheme(popup_settings);
+}
+
 }  // namespace blink
diff --git a/third_party/blink/renderer/core/html/forms/color_chooser_popup_ui_controller.h b/third_party/blink/renderer/core/html/forms/color_chooser_popup_ui_controller.h
index 20cdaff6..3d3a80a 100644
--- a/third_party/blink/renderer/core/html/forms/color_chooser_popup_ui_controller.h
+++ b/third_party/blink/renderer/core/html/forms/color_chooser_popup_ui_controller.h
@@ -66,6 +66,7 @@
   Element& OwnerElement() override;
   void DidClosePopup() override;
   PagePopupController* CreatePagePopupController(Page&, PagePopup&) override;
+  void AdjustSettings(Settings& popup_settings) override;
 
   void OpenEyeDropper();
   void EyeDropperResponseHandler(bool success, uint32_t color);
diff --git a/third_party/blink/renderer/core/html/forms/date_time_chooser_impl.cc b/third_party/blink/renderer/core/html/forms/date_time_chooser_impl.cc
index 93d448fc..b893bf10 100644
--- a/third_party/blink/renderer/core/html/forms/date_time_chooser_impl.cc
+++ b/third_party/blink/renderer/core/html/forms/date_time_chooser_impl.cc
@@ -272,4 +272,8 @@
   client_->DidEndChooser();
 }
 
+void DateTimeChooserImpl::AdjustSettings(Settings& popup_settings) {
+  AdjustSettingsFromOwnerColorScheme(popup_settings);
+}
+
 }  // namespace blink
diff --git a/third_party/blink/renderer/core/html/forms/date_time_chooser_impl.h b/third_party/blink/renderer/core/html/forms/date_time_chooser_impl.h
index c95e32a..16bbbf6 100644
--- a/third_party/blink/renderer/core/html/forms/date_time_chooser_impl.h
+++ b/third_party/blink/renderer/core/html/forms/date_time_chooser_impl.h
@@ -69,6 +69,7 @@
   Element& OwnerElement() override;
   ChromeClient& GetChromeClient() override;
   void DidClosePopup() override;
+  void AdjustSettings(Settings& popup_settings) override;
 
   Member<LocalFrame> frame_;
   Member<DateTimeChooserClient> client_;
diff --git a/third_party/blink/renderer/core/html/forms/internal_popup_menu.cc b/third_party/blink/renderer/core/html/forms/internal_popup_menu.cc
index ede9cec..0dca50750 100644
--- a/third_party/blink/renderer/core/html/forms/internal_popup_menu.cc
+++ b/third_party/blink/renderer/core/html/forms/internal_popup_menu.cc
@@ -68,6 +68,26 @@
                         value->CssText().Utf8().c_str());
 }
 
+const String SerializeColorScheme(const ComputedStyle& style) {
+  // Only serialize known color-scheme values to make sure we do not allow
+  // injections via <custom-ident> into the popup.
+  StringBuilder buffer;
+  bool first_added = false;
+  for (const AtomicString& ident : style.ColorScheme()) {
+    if (ident == AtomicString("only") || ident == AtomicString("light") ||
+        ident == AtomicString("dark")) {
+      if (first_added)
+        buffer.Append(" ");
+      else
+        first_added = true;
+      buffer.Append(ident);
+    }
+  }
+  if (!first_added)
+    return String("normal");
+  return buffer.ToString();
+}
+
 ScrollbarPart ScrollbarPartFromPseudoId(PseudoId id) {
   switch (id) {
     case kPseudoIdScrollbar:
@@ -272,10 +292,16 @@
 
   float scale_factor = chrome_client_->WindowToViewportScalar(
       owner_element.GetDocument().GetFrame(), 1.f);
-  PagePopupClient::AddString(
-      "<!DOCTYPE html><head><meta charset='UTF-8'><meta name='color-scheme' "
-      "content='light dark'><style>\n",
-      data);
+  PagePopupClient::AddString("<!DOCTYPE html><head><meta charset='UTF-8'>",
+                             data);
+
+  const ComputedStyle& owner_style = owner_element.ComputedStyleRef();
+
+  // Add the color-scheme of the <select> element to the popup as a color-scheme
+  // meta.
+  PagePopupClient::AddString("<meta name='color-scheme' content='", data);
+  PagePopupClient::AddString(SerializeColorScheme(owner_style), data);
+  PagePopupClient::AddString("'><style>\n", data);
 
   LayoutObject* owner_layout = owner_element.GetLayoutObject();
 
@@ -337,8 +363,7 @@
       "window.dialogArguments = {\n",
       data);
   AddProperty("selectedIndex", owner_element.SelectedListIndex(), data);
-  const ComputedStyle* owner_style = owner_element.GetComputedStyle();
-  ItemIterationContext context(*owner_style, data);
+  ItemIterationContext context(owner_style, data);
   context.SerializeBaseStyle();
   PagePopupClient::AddString("children: [\n", data);
   const HeapVector<Member<HTMLElement>>& items = owner_element.GetListItems();
@@ -359,7 +384,7 @@
   AddProperty("anchorRectInScreen", anchor_rect_in_screen, data);
   AddProperty("zoomFactor", 1, data);
   AddProperty("scaleFactor", scale_factor, data);
-  bool is_rtl = !owner_style->IsLeftToRightDirection();
+  bool is_rtl = !owner_style.IsLeftToRightDirection();
   AddProperty("isRTL", is_rtl, data);
   AddProperty("paddingStart",
               is_rtl ? owner_element.ClientPaddingRight().ToDouble()
@@ -393,15 +418,24 @@
   }
   if (IsOverride(style->GetUnicodeBidi()))
     AddProperty("unicodeBidi", String("bidi-override"), data);
+  bool color_applied = false;
   Color foreground_color = style->VisitedDependentColor(GetCSSPropertyColor());
   if (base_style.VisitedDependentColor(GetCSSPropertyColor()) !=
-      foreground_color)
+      foreground_color) {
     AddProperty("color", foreground_color.Serialized(), data);
+    color_applied = true;
+  }
   Color background_color =
       style->VisitedDependentColor(GetCSSPropertyBackgroundColor());
-  if (context.BackgroundColor() != background_color &&
-      background_color != Color::kTransparent)
+  if (background_color != Color::kTransparent &&
+      (context.BackgroundColor() != background_color ||
+       base_style.ColorSchemeForced() != style->ColorSchemeForced())) {
     AddProperty("backgroundColor", background_color.Serialized(), data);
+    color_applied = true;
+  }
+  if (color_applied)
+    AddProperty("colorScheme", SerializeColorScheme(*style), data);
+
   const FontDescription& base_font = context.BaseFont();
   const FontDescription& font_description =
       style->GetFont().GetFontDescription();
diff --git a/third_party/blink/renderer/core/html/forms/resources/listPicker.js b/third_party/blink/renderer/core/html/forms/resources/listPicker.js
index 26f3e923..aaa7f41 100644
--- a/third_party/blink/renderer/core/html/forms/resources/listPicker.js
+++ b/third_party/blink/renderer/core/html/forms/resources/listPicker.js
@@ -444,6 +444,7 @@
   style.color = styleConfig.color ? styleConfig.color : '';
   style.backgroundColor =
       styleConfig.backgroundColor ? styleConfig.backgroundColor : '';
+  style.colorScheme = styleConfig.colorScheme ? styleConfig.colorScheme : '';
   style.fontSize =
       styleConfig.fontSize !== undefined ? styleConfig.fontSize + 'px' : '';
   style.fontWeight = styleConfig.fontWeight ? styleConfig.fontWeight : '';
diff --git a/third_party/blink/renderer/core/input/gesture_manager.cc b/third_party/blink/renderer/core/input/gesture_manager.cc
index 5fd3e00d..9ec1e1e 100644
--- a/third_party/blink/renderer/core/input/gesture_manager.cc
+++ b/third_party/blink/renderer/core/input/gesture_manager.cc
@@ -390,23 +390,32 @@
 
   gesture_context_menu_deferred_ = false;
 
-  bool hit_test_contains_links = hit_test_result.URLElement() ||
-                                 !hit_test_result.AbsoluteImageURL().IsNull() ||
-                                 !hit_test_result.AbsoluteMediaURL().IsNull();
-  if (!hit_test_contains_links &&
-      mouse_event_manager_->HandleDragDropIfPossible(targeted_event)) {
-    gesture_context_menu_deferred_ = true;
-    return WebInputEventResult::kHandledSystem;
+  bool drag_started = false;
+  if (RuntimeEnabledFeatures::TouchDragAndContextMenuEnabled()) {
+    drag_started =
+        mouse_event_manager_->HandleDragDropIfPossible(targeted_event);
+  } else {
+    bool hit_test_contains_links =
+        hit_test_result.URLElement() ||
+        !hit_test_result.AbsoluteImageURL().IsNull() ||
+        !hit_test_result.AbsoluteMediaURL().IsNull();
+    if (!hit_test_contains_links &&
+        mouse_event_manager_->HandleDragDropIfPossible(targeted_event)) {
+      gesture_context_menu_deferred_ = true;
+      return WebInputEventResult::kHandledSystem;
+    }
   }
 
   Node* inner_node = hit_test_result.InnerNode();
-  if (inner_node && inner_node->GetLayoutObject() &&
+  if (!drag_started && inner_node && inner_node->GetLayoutObject() &&
       selection_controller_->HandleGestureLongPress(hit_test_result)) {
     mouse_event_manager_->FocusDocumentView();
   }
 
   if (frame_->GetSettings() &&
       frame_->GetSettings()->GetShowContextMenuOnMouseUp()) {
+    // TODO(https://crbug.com/1290905): Prevent a contextmenu after a
+    // finger-drag when TouchDragAndContextMenu is enabled.
     gesture_context_menu_deferred_ = true;
     return WebInputEventResult::kNotHandled;
   }
diff --git a/third_party/blink/renderer/core/inspector/inspector_layer_tree_agent.cc b/third_party/blink/renderer/core/inspector/inspector_layer_tree_agent.cc
index 1a54032..3f05db59 100644
--- a/third_party/blink/renderer/core/inspector/inspector_layer_tree_agent.cc
+++ b/third_party/blink/renderer/core/inspector/inspector_layer_tree_agent.cc
@@ -191,7 +191,7 @@
   // because the non-DrawsContent root layer is the parent of all DrawsContent
   // layers. We have to cheat the front-end by setting drawsContent to true for
   // the root layer.
-  bool draws_content = root == layer || layer->DrawsContent();
+  bool draws_content = root == layer || layer->draws_content();
 
   // TODO(pdr): Now that BlinkGenPropertyTrees has launched, we can remove
   // setOffsetX and setOffsetY.
@@ -388,7 +388,7 @@
   Response response = LayerById(layer_id, layer);
   if (!response.IsSuccess())
     return response;
-  if (!layer->DrawsContent())
+  if (!layer->draws_content())
     return Response::ServerError("Layer does not draw content");
 
   auto picture = layer->GetPicture();
diff --git a/third_party/blink/renderer/core/layout/layout_box.cc b/third_party/blink/renderer/core/layout/layout_box.cc
index 0d2857d3..6522408 100644
--- a/third_party/blink/renderer/core/layout/layout_box.cc
+++ b/third_party/blink/renderer/core/layout/layout_box.cc
@@ -3376,7 +3376,19 @@
           To<NGPhysicalBoxFragment>(result->PhysicalFragment());
       // If we have reached the end, remove surplus results from previous
       // layout.
-      if (!box_fragment.BreakToken()) {
+      //
+      // Note: When an OOF is fragmented, we wait to lay it out at the
+      // fragmentation context root. If the OOF lives above a column spanner,
+      // though, we may lay it out early to make sure the OOF contributes to the
+      // correct column block-size. Thus, if an item broke as a result of a
+      // spanner, remove subsequent sibling items so that OOFs don't try to
+      // access old fragments.
+      //
+      // TODO(layout-dev): Other solutions to handling interactions between OOFs
+      // and spanner breaks may need to be considered.
+      if (!box_fragment.BreakToken() ||
+          To<NGBlockBreakToken>(box_fragment.BreakToken())
+              ->IsCausedByColumnSpanner()) {
         // Before forgetting any old fragments and their items, we need to clear
         // associations.
         if (box_fragment.IsInlineFormattingContext())
diff --git a/third_party/blink/renderer/core/layout/layout_outside_list_marker.cc b/third_party/blink/renderer/core/layout/layout_outside_list_marker.cc
index 3aa27266..05b40ed 100644
--- a/third_party/blink/renderer/core/layout/layout_outside_list_marker.cc
+++ b/third_party/blink/renderer/core/layout/layout_outside_list_marker.cc
@@ -37,9 +37,7 @@
 
 void LayoutOutsideListMarker::UpdateMargins() {
   NOT_DESTROYED();
-  LayoutUnit margin_start;
-  LayoutUnit margin_end;
-  std::tie(margin_start, margin_end) = ListMarker::InlineMarginsForOutside(
+  auto [margin_start, margin_end] = ListMarker::InlineMarginsForOutside(
       GetDocument(), StyleRef(), list_marker_.ListItem(*this)->StyleRef(),
       PreferredLogicalWidths().min_size);
   SetMarginStart(margin_start);
diff --git a/third_party/blink/renderer/core/layout/layout_replaced.cc b/third_party/blink/renderer/core/layout/layout_replaced.cc
index 4bdfbff6..bd90833 100644
--- a/third_party/blink/renderer/core/layout/layout_replaced.cc
+++ b/third_party/blink/renderer/core/layout/layout_replaced.cc
@@ -1022,9 +1022,7 @@
     const PhysicalOffset& point) const {
   NOT_DESTROYED();
 
-  LayoutUnit top;
-  LayoutUnit bottom;
-  std::tie(top, bottom) = SelectionTopAndBottom(*this);
+  auto [top, bottom] = SelectionTopAndBottom(*this);
 
   LayoutPoint flipped_point_in_container =
       LocationContainer()->FlipForWritingMode(point + PhysicalLocation());
diff --git a/third_party/blink/renderer/core/layout/ng/inline/ng_inline_layout_algorithm_test.cc b/third_party/blink/renderer/core/layout/ng/inline/ng_inline_layout_algorithm_test.cc
index 9e98b22..9ff050db 100644
--- a/third_party/blink/renderer/core/layout/ng/inline/ng_inline_layout_algorithm_test.cc
+++ b/third_party/blink/renderer/core/layout/ng/inline/ng_inline_layout_algorithm_test.cc
@@ -359,9 +359,7 @@
     </div>
   )HTML");
   // ** Run LayoutNG algorithm **
-  NGConstraintSpace space;
-  scoped_refptr<const NGPhysicalBoxFragment> html_fragment;
-  std::tie(html_fragment, space) = RunBlockLayoutAlgorithmForElement(
+  auto [html_fragment, space] = RunBlockLayoutAlgorithmForElement(
       GetDocument().getElementsByTagName("html")->item(0));
   auto* body_fragment =
       To<NGPhysicalBoxFragment>(html_fragment->Children()[0].get());
diff --git a/third_party/blink/renderer/core/layout/ng/inline/ng_ruby_utils.cc b/third_party/blink/renderer/core/layout/ng/inline/ng_ruby_utils.cc
index f68a1ea4..44f212c2 100644
--- a/third_party/blink/renderer/core/layout/ng/inline/ng_ruby_utils.cc
+++ b/third_party/blink/renderer/core/layout/ng/inline/ng_ruby_utils.cc
@@ -78,8 +78,7 @@
   const LayoutUnit line_height = IsHorizontalWritingMode(writing_mode)
                                      ? rect.size.height
                                      : rect.size.width;
-  LayoutUnit over, under;
-  std::tie(over, under) = AdjustTextOverUnderOffsetsForEmHeight(
+  auto [over, under] = AdjustTextOverUnderOffsetsForEmHeight(
       LayoutUnit(), line_height, style, *shape_view);
   const LayoutUnit over_diff = over;
   const LayoutUnit under_diff = line_height - under;
diff --git a/third_party/blink/renderer/core/layout/ng/ng_block_layout_algorithm_test.cc b/third_party/blink/renderer/core/layout/ng/ng_block_layout_algorithm_test.cc
index 48db647..a9d005d 100644
--- a/third_party/blink/renderer/core/layout/ng/ng_block_layout_algorithm_test.cc
+++ b/third_party/blink/renderer/core/layout/ng/ng_block_layout_algorithm_test.cc
@@ -426,9 +426,7 @@
     )HTML");
 
   // ** Run LayoutNG algorithm **
-  NGConstraintSpace space;
-  scoped_refptr<const NGPhysicalBoxFragment> fragment;
-  std::tie(fragment, space) = RunBlockLayoutAlgorithmForElement(
+  auto [fragment, space] = RunBlockLayoutAlgorithmForElement(
       GetDocument().getElementsByTagName("html")->item(0));
   ASSERT_EQ(fragment->Children().size(), 1UL);
   PhysicalOffset body_offset = fragment->Children()[0].Offset();
@@ -508,9 +506,7 @@
     )HTML");
 
   // ** Run LayoutNG algorithm **
-  NGConstraintSpace space;
-  scoped_refptr<const NGPhysicalBoxFragment> fragment;
-  std::tie(fragment, space) = RunBlockLayoutAlgorithmForElement(
+  auto [fragment, space] = RunBlockLayoutAlgorithmForElement(
       GetDocument().getElementsByTagName("html")->item(0));
 
   auto* body_fragment =
@@ -1210,9 +1206,7 @@
     )HTML");
 
   // ** Run LayoutNG algorithm **
-  NGConstraintSpace space;
-  scoped_refptr<const NGPhysicalBoxFragment> fragment;
-  std::tie(fragment, space) = RunBlockLayoutAlgorithmForElement(
+  auto [fragment, space] = RunBlockLayoutAlgorithmForElement(
       GetDocument().getElementsByTagName("html")->item(0));
 
   const auto* body_fragment =
@@ -1315,9 +1309,7 @@
       )HTML");
 
   // ** Run LayoutNG algorithm **
-  NGConstraintSpace space;
-  scoped_refptr<const NGPhysicalBoxFragment> fragment;
-  std::tie(fragment, space) = RunBlockLayoutAlgorithmForElement(
+  auto [fragment, space] = RunBlockLayoutAlgorithmForElement(
       GetDocument().getElementsByTagName("html")->item(0));
 
   // ** Verify LayoutNG fragments and the list of positioned floats **
diff --git a/third_party/blink/renderer/core/layout/ng/svg/ng_svg_text_query.cc b/third_party/blink/renderer/core/layout/ng/svg/ng_svg_text_query.cc
index 1b1c072..85eb3a5 100644
--- a/third_party/blink/renderer/core/layout/ng/svg/ng_svg_text_query.cc
+++ b/third_party/blink/renderer/core/layout/ng/svg/ng_svg_text_query.cc
@@ -84,9 +84,7 @@
 std::tuple<const NGFragmentItem*, StringView, unsigned, unsigned>
 FindFragmentItemForAddressableCodeUnitIndex(const LayoutObject& query_root,
                                             unsigned index) {
-  Vector<const NGFragmentItem*> item_list;
-  const NGFragmentItems* items;
-  std::tie(item_list, items) = FragmentItemsInLogicalOrder(query_root);
+  auto [item_list, items] = FragmentItemsInLogicalOrder(query_root);
 
   unsigned character_index = 0;
   for (const auto* item : item_list) {
@@ -134,10 +132,7 @@
 std::tuple<const NGFragmentItem*, gfx::RectF> ScaledCharacterRectInContainer(
     const LayoutObject& query_root,
     unsigned code_unit_index) {
-  const NGFragmentItem* item;
-  unsigned start_ifc_offset, end_ifc_offset;
-  StringView item_text;
-  std::tie(item, item_text, start_ifc_offset, end_ifc_offset) =
+  auto [item, item_text, start_ifc_offset, end_ifc_offset] =
       FindFragmentItemForAddressableCodeUnitIndex(query_root, code_unit_index);
   DCHECK(item);
   DCHECK_EQ(item->Type(), NGFragmentItem::kSvgText);
@@ -153,9 +148,7 @@
 gfx::PointF StartOrEndPosition(const LayoutObject& query_root,
                                unsigned index,
                                QueryPosition pos) {
-  const NGFragmentItem* item;
-  gfx::RectF char_rect;
-  std::tie(item, char_rect) = ScaledCharacterRectInContainer(query_root, index);
+  auto [item, char_rect] = ScaledCharacterRectInContainer(query_root, index);
   DCHECK_EQ(item->Type(), NGFragmentItem::kSvgText);
   if (item->IsHiddenForPaint())
     return gfx::PointF();
@@ -184,9 +177,7 @@
 }  // namespace
 
 unsigned NGSvgTextQuery::NumberOfCharacters() const {
-  Vector<const NGFragmentItem*> item_list;
-  const NGFragmentItems* items;
-  std::tie(item_list, items) = FragmentItemsInLogicalOrder(query_root_);
+  auto [item_list, items] = FragmentItemsInLogicalOrder(query_root_);
 
   unsigned addressable_code_unit_count = 0;
   for (const auto* item : item_list)
@@ -198,9 +189,7 @@
                                       unsigned length) const {
   if (length <= 0)
     return 0.0f;
-  Vector<const NGFragmentItem*> item_list;
-  const NGFragmentItems* items;
-  std::tie(item_list, items) = FragmentItemsInLogicalOrder(query_root_);
+  auto [item_list, items] = FragmentItemsInLogicalOrder(query_root_);
 
   float total_length = 0.0f;
   // Starting addressable code unit index for the current NGFragmentItem.
@@ -234,10 +223,7 @@
 }
 
 gfx::RectF NGSvgTextQuery::ExtentOfCharacter(unsigned index) const {
-  const NGFragmentItem* item;
-  gfx::RectF char_rect;
-  std::tie(item, char_rect) =
-      ScaledCharacterRectInContainer(query_root_, index);
+  auto [item, char_rect] = ScaledCharacterRectInContainer(query_root_, index);
   DCHECK_EQ(item->Type(), NGFragmentItem::kSvgText);
   if (item->IsHiddenForPaint())
     return gfx::RectF();
@@ -248,10 +234,7 @@
 }
 
 float NGSvgTextQuery::RotationOfCharacter(unsigned index) const {
-  const NGFragmentItem* item;
-  unsigned start_ifc_offset, end_ifc_offset;
-  StringView item_text;
-  std::tie(item, item_text, start_ifc_offset, end_ifc_offset) =
+  auto [item, item_text, start_ifc_offset, end_ifc_offset] =
       FindFragmentItemForAddressableCodeUnitIndex(query_root_, index);
   DCHECK(item);
   DCHECK_EQ(item->Type(), NGFragmentItem::kSvgText);
@@ -282,9 +265,7 @@
   // The specification says we should do hit-testing in logical order.
   // However, this does it in visual order in order to match to the legacy SVG
   // <text> behavior.
-  Vector<const NGFragmentItem*> item_list;
-  const NGFragmentItems* items;
-  std::tie(item_list, items) = FragmentItemsInVisualOrder(query_root_);
+  auto [item_list, items] = FragmentItemsInVisualOrder(query_root_);
 
   const NGFragmentItem* hit_item = nullptr;
   for (const auto* item : item_list) {
diff --git a/third_party/blink/renderer/core/page/page_popup_client.cc b/third_party/blink/renderer/core/page/page_popup_client.cc
index dae6bdd..489466d 100644
--- a/third_party/blink/renderer/core/page/page_popup_client.cc
+++ b/third_party/blink/renderer/core/page/page_popup_client.cc
@@ -33,6 +33,7 @@
 #include "third_party/blink/renderer/core/css/css_font_selector.h"
 #include "third_party/blink/renderer/core/dom/node_computed_style.h"
 #include "third_party/blink/renderer/core/frame/local_frame.h"
+#include "third_party/blink/renderer/core/frame/settings.h"
 #include "third_party/blink/renderer/core/page/chrome_client.h"
 #include "third_party/blink/renderer/core/page/page_popup_controller.h"
 #include "third_party/blink/renderer/platform/text/platform_locale.h"
@@ -175,4 +176,43 @@
   return MakeGarbageCollected<PagePopupController>(page, popup, this);
 }
 
+void PagePopupClient::AdjustSettingsFromOwnerColorScheme(
+    Settings& popup_settings) {
+  // Color picker and and date/time chooser popups use HTML/CSS/javascript to
+  // implement the UI. They are themed light or dark based on media queries in
+  // the CSS. Whether the control is styled light or dark can be selected using
+  // the color-scheme property on the input element independently from the
+  // preferred color-scheme of the input's document.
+  //
+  // To affect the media queries inside the popup accordingly, we set the
+  // preferred color-scheme inside the popup to the used color-scheme for the
+  // input element, and disable forced darkening.
+
+  popup_settings.SetForceDarkModeEnabled(false);
+
+  if (const auto* style = OwnerElement().GetComputedStyle()) {
+    // The style can be out-of-date if e.g. a key event handler modified the
+    // OwnerElement()'s style before the default handler started opening the
+    // popup. If the key handler forced a style update the style may be
+    // up-to-date and null. Note that if there's a key event handler which
+    // changes the color-scheme between the key is pressed and the popup is
+    // opened, the color-scheme of the form element and its popup may not match.
+    // If we think it's important to have an up-to-date style here, we need to
+    // run an UpdateStyleAndLayoutTree() before opening the popup in the various
+    // default event handlers.
+    //
+    // Avoid using dark color scheme stylesheet for popups when forced colors
+    // mode is active.
+    // TODO(iopopesc): move this to popup CSS when the ForcedColors feature is
+    // enabled by default.
+    bool in_forced_colors_mode =
+        OwnerElement().GetDocument().InForcedColorsMode();
+    popup_settings.SetPreferredColorScheme(
+        style->UsedColorScheme() == mojom::blink::ColorScheme::kDark &&
+                !in_forced_colors_mode
+            ? mojom::blink::PreferredColorScheme::kDark
+            : mojom::blink::PreferredColorScheme::kLight);
+  }
+}
+
 }  // namespace blink
diff --git a/third_party/blink/renderer/core/page/page_popup_client.h b/third_party/blink/renderer/core/page/page_popup_client.h
index 39dad8c2..98ed9ee3 100644
--- a/third_party/blink/renderer/core/page/page_popup_client.h
+++ b/third_party/blink/renderer/core/page/page_popup_client.h
@@ -47,6 +47,7 @@
 class Page;
 class PagePopup;
 class PagePopupController;
+class Settings;
 
 class CORE_EXPORT PagePopupClient {
  public:
@@ -93,9 +94,13 @@
   // This is called when popup content or its owner's position changed.
   virtual void Update(bool force_update) {}
 
+  // Called when creating the popup to allow the popup implementation to adjust
+  // the settings used for the popup document.
+  virtual void AdjustSettings(Settings& popup_settings) {}
+
   virtual ~PagePopupClient() = default;
 
-  // Helper functions to be used in PagePopupClient::writeDocument().
+  // Helper functions to be used in PagePopupClient::WriteDocument().
   static void AddString(const String&, SharedBuffer*);
   static void AddJavaScriptString(const String&, SharedBuffer*);
   static void AddProperty(const char* name, const String& value, SharedBuffer*);
@@ -108,6 +113,9 @@
                           SharedBuffer*);
   static void AddProperty(const char* name, const gfx::Rect&, SharedBuffer*);
   void AddLocalizedProperty(const char* name, int resource_id, SharedBuffer*);
+
+ protected:
+  void AdjustSettingsFromOwnerColorScheme(Settings& popup_settings);
 };
 
 inline void PagePopupClient::AddString(const String& str, SharedBuffer* data) {
diff --git a/third_party/blink/renderer/core/paint/compositing/compositing_test.cc b/third_party/blink/renderer/core/paint/compositing/compositing_test.cc
index d37067e..dbbbb49 100644
--- a/third_party/blink/renderer/core/paint/compositing/compositing_test.cc
+++ b/third_party/blink/renderer/core/paint/compositing/compositing_test.cc
@@ -1482,9 +1482,9 @@
   Compositor().BeginFrame();
 
   auto* inner_element_layer = CcLayerByDOMElementId("inner");
-  EXPECT_FALSE(inner_element_layer->DrawsContent());
+  EXPECT_FALSE(inner_element_layer->draws_content());
   auto* outer_element_layer = CcLayerByDOMElementId("outer");
-  EXPECT_TRUE(outer_element_layer->DrawsContent());
+  EXPECT_TRUE(outer_element_layer->draws_content());
 
   // The inner element layer is only needed for hit testing and does not draw
   // content, so it should not cause a render surface.
@@ -2528,7 +2528,7 @@
       <div id="animation"></div>
   )HTML");
   Compositor().BeginFrame();
-  EXPECT_TRUE(CcLayerByDOMElementId("animation")->DrawsContent());
+  EXPECT_TRUE(CcLayerByDOMElementId("animation")->draws_content());
 }
 
 TEST_P(CompositingSimTest, CompositorAnimationOfNonInvertibleTransform) {
@@ -2552,7 +2552,7 @@
   )HTML");
   Compositor().BeginFrame();
   EXPECT_TRUE(CcLayerByDOMElementId("animation"));
-  EXPECT_TRUE(CcLayerByDOMElementId("animation")->DrawsContent());
+  EXPECT_TRUE(CcLayerByDOMElementId("animation")->draws_content());
 }
 
 TEST_P(CompositingSimTest, CompositorAnimationRevealsChild) {
@@ -2589,11 +2589,11 @@
   )HTML");
   Compositor().BeginFrame();
   EXPECT_TRUE(CcLayerByDOMElementId("animation"));
-  EXPECT_TRUE(CcLayerByDOMElementId("animation")->DrawsContent());
+  EXPECT_TRUE(CcLayerByDOMElementId("animation")->draws_content());
   // Though #child is not initially visible, it should be painted because it can
   // animate into view.
   EXPECT_TRUE(CcLayerByDOMElementId("child"));
-  EXPECT_TRUE(CcLayerByDOMElementId("child")->DrawsContent());
+  EXPECT_TRUE(CcLayerByDOMElementId("child")->draws_content());
 }
 
 }  // namespace blink
diff --git a/third_party/blink/renderer/core/svg/svg_animation_element.cc b/third_party/blink/renderer/core/svg/svg_animation_element.cc
index 53ccaef..146c83c4 100644
--- a/third_party/blink/renderer/core/svg/svg_animation_element.cc
+++ b/third_party/blink/renderer/core/svg/svg_animation_element.cc
@@ -80,7 +80,7 @@
 }
 
 static bool ParseKeyTimes(const String& string,
-                          Vector<float>& result,
+                          HeapVector<float>& result,
                           bool verify_order) {
   result.clear();
   Vector<String> parse_list;
@@ -163,6 +163,13 @@
   return true;
 }
 
+void SVGAnimationElement::Trace(Visitor* visitor) const {
+  visitor->Trace(key_times_from_attribute_);
+  visitor->Trace(key_times_for_paced_);
+  visitor->Trace(key_points_);
+  SVGSMILElement::Trace(visitor);
+}
+
 void SVGAnimationElement::ParseAttribute(
     const AttributeModificationParams& params) {
   const QualifiedName& name = params.name;
@@ -372,7 +379,7 @@
   use_paced_key_times_ = true;
   key_times_for_paced_.clear();
 
-  Vector<float> calculated_key_times;
+  HeapVector<float> calculated_key_times;
   float total_distance = 0;
   calculated_key_times.push_back(0);
   for (unsigned n = 0; n < values_count - 1; ++n) {
diff --git a/third_party/blink/renderer/core/svg/svg_animation_element.h b/third_party/blink/renderer/core/svg/svg_animation_element.h
index 779b21a..635dc6e 100644
--- a/third_party/blink/renderer/core/svg/svg_animation_element.h
+++ b/third_party/blink/renderer/core/svg/svg_animation_element.h
@@ -81,6 +81,8 @@
   // previous animations are rendered useless.
   bool OverwritesUnderlyingAnimationValue() const;
 
+  void Trace(Visitor* visitor) const override;
+
  protected:
   SVGAnimationElement(const QualifiedName&, Document&);
 
@@ -146,7 +148,7 @@
   // or key_times_for_paced_ by toggling the flag use_paced_key_times_.
   void CalculateKeyTimesForCalcModePaced();
 
-  Vector<float> const& KeyTimes() const {
+  HeapVector<float> const& KeyTimes() const {
     return use_paced_key_times_ ? key_times_for_paced_
                                 : key_times_from_attribute_;
   }
@@ -179,10 +181,10 @@
   // Storing two sets of values to avoid overwriting (or reparsing) when
   // calc-mode changes. Fix for Issue 231525. What list to use is
   // decided in CalculateKeyTimesForCalcModePaced.
-  Vector<float> key_times_from_attribute_;
-  Vector<float> key_times_for_paced_;
+  HeapVector<float> key_times_from_attribute_;
+  HeapVector<float> key_times_for_paced_;
 
-  Vector<float> key_points_;
+  HeapVector<float> key_points_;
   Vector<gfx::CubicBezier> key_splines_;
   String last_values_animation_from_;
   String last_values_animation_to_;
diff --git a/third_party/blink/renderer/core/testing/data/long_press_links_and_images.html b/third_party/blink/renderer/core/testing/data/long_press_links_and_images.html
index ea0b29fe7..bf918e1 100644
--- a/third_party/blink/renderer/core/testing/data/long_press_links_and_images.html
+++ b/third_party/blink/renderer/core/testing/data/long_press_links_and_images.html
@@ -2,18 +2,20 @@
 <head>
  <script>
    function onLoad() {
-    var anchor = document.getElementById("anchorTag");
-    anchor.addEventListener("dragstart", function(event) { document.title = "anchor dragstart"; });
-    anchor.addEventListener("contextmenu", function(event) { document.title = "anchor contextmenu"; });
+     document.title = "";
+
+     var anchor = document.getElementById("anchorTag");
+     anchor.addEventListener("dragstart", function(event) { document.title += "dragstart@a,"; });
+     anchor.addEventListener("contextmenu", function(event) { document.title += "contextmenu@a,"; });
 
     var image = document.getElementById("imageTag");
-    image.addEventListener("dragstart", function(event) { document.title = "image dragstart"; });
-    image.addEventListener("contextmenu", function(event) { document.title = "image contextmenu"; })
+    image.addEventListener("dragstart", function(event) { document.title += "dragstart@img,"; });
+    image.addEventListener("contextmenu", function(event) { document.title += "contextmenu@img,"; })
   }
 </script>
 </head>
 <body onload="onLoad()">
   <a id="anchorTag" href="http://www.example.com">Link to example.com</a>
-    <img id="imageTag" src="foo.png" width="100" height="100"> Link to an image. </img>
+  <img id="imageTag" src="foo.png" width="100" height="100">Link to an image.</img>
 </body>
 <html>
diff --git a/third_party/blink/renderer/modules/mediasource/media_source.cc b/third_party/blink/renderer/modules/mediasource/media_source.cc
index 86b41d7..22a2a68 100644
--- a/third_party/blink/renderer/modules/mediasource/media_source.cc
+++ b/third_party/blink/renderer/modules/mediasource/media_source.cc
@@ -693,9 +693,7 @@
 // method directly.
 bool MediaSource::RunUnlessElementGoneOrClosingUs(
     MediaSourceAttachmentSupplement::RunExclusivelyCB cb) {
-  scoped_refptr<MediaSourceAttachmentSupplement> attachment;
-  MediaSourceTracer* tracer;
-  std::tie(attachment, tracer) = AttachmentAndTracer();
+  auto [attachment, tracer] = AttachmentAndTracer();
   DCHECK(IsMainThread() ||
          !tracer);  // Cross-thread attachments do not use a tracer.
 
@@ -1071,9 +1069,7 @@
 
   // 6. Update the media controller duration to new duration and run the
   //    HTMLMediaElement duration change algorithm.
-  scoped_refptr<MediaSourceAttachmentSupplement> attachment;
-  MediaSourceTracer* tracer;
-  std::tie(attachment, tracer) = AttachmentAndTracer();
+  auto [attachment, tracer] = AttachmentAndTracer();
   attachment->NotifyDurationChanged(tracer, new_duration);
 }
 
@@ -1311,9 +1307,7 @@
     // to just mark end of stream, and move the duration reduction logic to here
     // so we can just run DurationChangeAlgorithm(...) here.
     double new_duration = GetDuration_Locked(pass_key);
-    scoped_refptr<MediaSourceAttachmentSupplement> attachment;
-    MediaSourceTracer* tracer;
-    std::tie(attachment, tracer) = AttachmentAndTracer();
+    auto [attachment, tracer] = AttachmentAndTracer();
     attachment->NotifyDurationChanged(tracer, new_duration);
   } else {
     // Even though error didn't change duration, the transition to kEnded
diff --git a/third_party/blink/renderer/modules/mediasource/source_buffer.cc b/third_party/blink/renderer/modules/mediasource/source_buffer.cc
index 929f8122..151473f 100644
--- a/third_party/blink/renderer/modules/mediasource/source_buffer.cc
+++ b/third_party/blink/renderer/modules/mediasource/source_buffer.cc
@@ -219,9 +219,7 @@
   DCHECK(web_source_buffer_);
   DCHECK(source_);
 
-  scoped_refptr<MediaSourceAttachmentSupplement> attachment;
-  MediaSourceTracer* tracer;
-  std::tie(attachment, tracer) = source_->AttachmentAndTracer();
+  auto [attachment, tracer] = source_->AttachmentAndTracer();
   DCHECK(attachment);
 
   if (GetExecutionContext()->IsWindow()) {
@@ -1231,9 +1229,7 @@
   DCHECK(HTMLMediaElement::MediaTracksEnabledInternally());
   DCHECK(source_);
 
-  scoped_refptr<MediaSourceAttachmentSupplement> attachment;
-  MediaSourceTracer* tracer;
-  std::tie(attachment, tracer) = source_->AttachmentAndTracer();
+  auto [attachment, tracer] = source_->AttachmentAndTracer();
   DCHECK(attachment);
 
   // One path leading to here is from |source_|'s ContextDestroyed(), so we
@@ -1345,9 +1341,7 @@
 
 double SourceBuffer::GetMediaTime() {
   DCHECK(source_);
-  scoped_refptr<MediaSourceAttachmentSupplement> attachment;
-  MediaSourceTracer* tracer;
-  std::tie(attachment, tracer) = source_->AttachmentAndTracer();
+  auto [attachment, tracer] = source_->AttachmentAndTracer();
   DCHECK(attachment);
   return attachment->GetRecentMediaTime(tracer).InSecondsF();
 }
@@ -1521,9 +1515,7 @@
   DCHECK(source_);
   source_->AssertAttachmentsMutexHeldIfCrossThreadForDebugging();
 
-  scoped_refptr<MediaSourceAttachmentSupplement> attachment;
-  MediaSourceTracer* tracer;
-  std::tie(attachment, tracer) = source_->AttachmentAndTracer();
+  auto [attachment, tracer] = source_->AttachmentAndTracer();
   DCHECK(attachment);
   DCHECK_EQ(!tracer, !IsMainThread());
 
@@ -1931,9 +1923,7 @@
   // 3. If the HTMLMediaElement.error attribute is not null, then throw an
   //    InvalidStateError exception and abort these steps.
   DCHECK(source_);
-  scoped_refptr<MediaSourceAttachmentSupplement> attachment;
-  MediaSourceTracer* tracer;
-  std::tie(attachment, tracer) = source_->AttachmentAndTracer();
+  auto [attachment, tracer] = source_->AttachmentAndTracer();
   DCHECK(attachment);
   DCHECK_EQ(!tracer, !IsMainThread());
   if (attachment->GetElementError(tracer)) {
diff --git a/third_party/blink/renderer/modules/mediastream/media_stream_constraints_util_audio.cc b/third_party/blink/renderer/modules/mediastream/media_stream_constraints_util_audio.cc
index 1b80be4..2337161 100644
--- a/third_party/blink/renderer/modules/mediastream/media_stream_constraints_util_audio.cc
+++ b/third_party/blink/renderer/modules/mediastream/media_stream_constraints_util_audio.cc
@@ -864,8 +864,7 @@
     absl::optional<int> requested_buffer_size;
     if (processing_type_ == ProcessingType::kUnprocessed && latency &&
         !constraint_set.latency.IsUnconstrained()) {
-      int min_buffer_size, max_buffer_size;
-      std::tie(min_buffer_size, max_buffer_size) =
+      auto [min_buffer_size, max_buffer_size] =
           GetMinMaxBufferSizesForAudioParameters(parameters);
       requested_buffer_size = media::AudioLatency::GetExactBufferSize(
           base::Seconds(*latency), parameters.sample_rate(),
@@ -1066,8 +1065,7 @@
       case ProcessingType::kNoApmProcessed:
         return DoubleRangeSet::FromValue(allowed_latency);
       case ProcessingType::kUnprocessed:
-        double min_latency, max_latency;
-        std::tie(min_latency, max_latency) =
+        auto [min_latency, max_latency] =
             GetMinMaxLatenciesForAudioParameters(device_parameters);
         return DoubleRangeSet(min_latency, max_latency);
     }
@@ -1212,12 +1210,9 @@
       std::string default_device_id) const {
     DCHECK(!IsEmpty());
     Score score(0.0);
-    double sub_score = 0.0;
 
-    std::string device_id;
-    std::tie(sub_score, device_id) =
-        device_id_container_.SelectSettingsAndScore(constraint_set.device_id,
-                                                    default_device_id);
+    auto [sub_score, device_id] = device_id_container_.SelectSettingsAndScore(
+        constraint_set.device_id, default_device_id);
     score += sub_score;
 
     std::tie(sub_score, std::ignore) =
@@ -1250,12 +1245,8 @@
       if (container.IsEmpty())
         continue;
 
-      Score container_score(0.0);
-      AudioProcessingProperties container_properties;
-      absl::optional<int> requested_buffer_size;
-      int num_channels;
-      std::tie(container_score, container_properties, requested_buffer_size,
-               num_channels) =
+      auto [container_score, container_properties, requested_buffer_size,
+            num_channels] =
           container.SelectSettingsAndScore(
               constraint_set, should_disable_hardware_noise_suppression,
               device_parameters_);
@@ -1422,9 +1413,7 @@
     AudioCaptureSettings best_settings;
     Score best_score(-1.0);
     for (const auto& candidate : devices_) {
-      Score score(0.0);
-      AudioCaptureSettings settings;
-      std::tie(score, settings) = candidate.SelectSettingsAndScore(
+      auto [score, settings] = candidate.SelectSettingsAndScore(
           constraint_set, is_desktop_source,
           should_disable_hardware_noise_suppression, default_device_id_);
 
@@ -1618,8 +1607,7 @@
 
 std::tuple<double, double> GetMinMaxLatenciesForAudioParameters(
     const media::AudioParameters& parameters) {
-  int min_buffer_size, max_buffer_size;
-  std::tie(min_buffer_size, max_buffer_size) =
+  auto [min_buffer_size, max_buffer_size] =
       GetMinMaxBufferSizesForAudioParameters(parameters);
 
   // Doing the microseconds conversion to match what is done in
diff --git a/third_party/blink/renderer/modules/native_io/native_io_file.cc b/third_party/blink/renderer/modules/native_io/native_io_file.cc
index 08936e1..b6fe03c 100644
--- a/third_party/blink/renderer/modules/native_io/native_io_file.cc
+++ b/third_party/blink/renderer/modules/native_io/native_io_file.cc
@@ -621,9 +621,7 @@
       << "File I/O operation queued after file closed";
   DCHECK(resolver_task_runner);
 
-  int64_t length;
-  base::File::Error get_length_error;
-  std::tie(length, get_length_error) = file_state->GetLength();
+  auto [length, get_length_error] = file_state->GetLength();
 
   PostCrossThreadTask(
       *resolver_task_runner, FROM_HERE,
@@ -680,9 +678,7 @@
   DCHECK(resolver_task_runner);
   DCHECK_GE(expected_length, 0);
 
-  int64_t actual_length;
-  base::File::Error set_length_error;
-  std::tie(actual_length, set_length_error) =
+  auto [actual_length, set_length_error] =
       file_state->SetLength(expected_length);
 
   PostCrossThreadTask(
@@ -814,9 +810,7 @@
   DCHECK_LE(static_cast<size_t>(read_size), result_buffer_data->DataLength());
 #endif  // DCHECK_IS_ON()
 
-  int read_bytes;
-  base::File::Error read_error;
-  std::tie(read_bytes, read_error) =
+  auto [read_bytes, read_error] =
       file_state->Read(result_buffer_data.get(), file_offset, read_size);
 
   PostCrossThreadTask(
@@ -879,10 +873,7 @@
   DCHECK_LE(static_cast<size_t>(write_size), result_buffer_data->DataLength());
 #endif  // DCHECK_IS_ON()
 
-  int written_bytes;
-  int64_t actual_file_length_on_failure = 0;
-  base::File::Error write_error;
-  std::tie(actual_file_length_on_failure, written_bytes, write_error) =
+  auto [actual_file_length_on_failure, written_bytes, write_error] =
       file_state->Write(result_buffer_data.get(), file_offset, write_size);
 
   PostCrossThreadTask(
diff --git a/third_party/blink/renderer/modules/webaudio/audio_param.cc b/third_party/blink/renderer/modules/webaudio/audio_param.cc
index c226481..bd8da8a4 100644
--- a/third_party/blink/renderer/modules/webaudio/audio_param.cc
+++ b/third_party/blink/renderer/modules/webaudio/audio_param.cc
@@ -169,9 +169,7 @@
   // Update value for timeline.
   float v = IntrinsicValue();
   if (GetDeferredTaskHandler().IsAudioThread()) {
-    bool has_value;
-    float timeline_value;
-    std::tie(has_value, timeline_value) = timeline_.ValueForContextTime(
+    auto [has_value, timeline_value] = timeline_.ValueForContextTime(
         DestinationHandler(), v, MinValue(), MaxValue(),
         GetDeferredTaskHandler().RenderQuantumFrames());
 
@@ -200,9 +198,7 @@
 bool AudioParamHandler::Smooth() {
   // If values have been explicitly scheduled on the timeline, then use the
   // exact value.  Smoothing effectively is performed by the timeline.
-  bool use_timeline_value = false;
-  float value;
-  std::tie(use_timeline_value, value) = timeline_.ValueForContextTime(
+  auto [use_timeline_value, value] = timeline_.ValueForContextTime(
       DestinationHandler(), IntrinsicValue(), MinValue(), MaxValue(),
       GetDeferredTaskHandler().RenderQuantumFrames());
 
@@ -308,10 +304,8 @@
     CalculateTimelineValues(values, number_of_values);
   } else {
     // Calculate control-rate (k-rate) intrinsic value.
-    bool has_value;
     float value = IntrinsicValue();
-    float timeline_value;
-    std::tie(has_value, timeline_value) = timeline_.ValueForContextTime(
+    auto [has_value, timeline_value] = timeline_.ValueForContextTime(
         DestinationHandler(), value, MinValue(), MaxValue(),
         GetDeferredTaskHandler().RenderQuantumFrames());
 
diff --git a/third_party/blink/renderer/modules/webaudio/audio_param_timeline.cc b/third_party/blink/renderer/modules/webaudio/audio_param_timeline.cc
index 81e3643..7d6f8cae 100644
--- a/third_party/blink/renderer/modules/webaudio/audio_param_timeline.cc
+++ b/third_party/blink/renderer/modules/webaudio/audio_param_timeline.cc
@@ -970,14 +970,11 @@
   }
 
   // Maintain a running time (frame) and index for writing the values buffer.
-  size_t current_frame = start_frame;
-  unsigned write_index = 0;
-
   // If first event is after startFrame then fill initial part of values buffer
   // with defaultValue until we reach the first event time.
-  std::tie(current_frame, write_index) =
+  auto [current_frame, write_index] =
       HandleFirstEvent(values, default_value, number_of_values, start_frame,
-                       end_frame, sample_rate, current_frame, write_index);
+                       end_frame, sample_rate, start_frame, 0);
 
   float value = default_value;
 
@@ -1000,23 +997,19 @@
     }
 
     // If there's no next event, set nextEventType to LastType to indicate that.
-    ParamEvent::Type next_event_type =
+    ProcessSetTargetFollowedByRamp(
+        i, event,
         next_event ? static_cast<ParamEvent::Type>(next_event->GetType())
-                   : ParamEvent::kLastType;
-
-    ProcessSetTargetFollowedByRamp(i, event, next_event_type, current_frame,
-                                   sample_rate, control_rate, value);
+                   : ParamEvent::kLastType,
+        current_frame, sample_rate, control_rate, value);
 
     float value1 = event->Value();
     double time1 = event->Time();
 
-    float value2 = next_event ? next_event->Value() : value1;
-    double time2 =
-        next_event ? next_event->Time() : end_frame / sample_rate + 1;
-
     // Check to see if an event was cancelled.
-    std::tie(value2, time2, next_event_type) =
-        HandleCancelValues(event, next_event, value2, time2);
+    auto [value2, time2, next_event_type] = HandleCancelValues(
+        event, next_event, next_event ? next_event->Value() : value1,
+        next_event ? next_event->Time() : end_frame / sample_rate + 1);
 
     DCHECK(!std::isnan(value1));
     DCHECK(!std::isnan(value2));
diff --git a/third_party/blink/renderer/platform/fonts/simple_font_data.cc b/third_party/blink/renderer/platform/fonts/simple_font_data.cc
index 64919f8..d087012 100644
--- a/third_party/blink/renderer/platform/fonts/simple_font_data.cc
+++ b/third_party/blink/renderer/platform/fonts/simple_font_data.cc
@@ -314,8 +314,7 @@
 void SimpleFontData::ComputeNormalizedTypoAscentAndDescent() const {
   // Compute em height metrics from OS/2 sTypoAscender and sTypoDescender.
   SkTypeface* typeface = platform_data_.Typeface();
-  int16_t typo_ascender, typo_descender;
-  std::tie(typo_ascender, typo_descender) = TypoAscenderAndDescender(typeface);
+  auto [typo_ascender, typo_descender] = TypoAscenderAndDescender(typeface);
   if (typo_ascender > 0 &&
       TrySetNormalizedTypoAscentAndDescent(typo_ascender, typo_descender)) {
     return;
diff --git a/third_party/blink/renderer/platform/graphics/compositing/layers_as_json.cc b/third_party/blink/renderer/platform/graphics/compositing/layers_as_json.cc
index 1019086b..61f8c73 100644
--- a/third_party/blink/renderer/platform/graphics/compositing/layers_as_json.cc
+++ b/third_party/blink/renderer/platform/graphics/compositing/layers_as_json.cc
@@ -50,7 +50,7 @@
   else if (layer.contents_opaque_for_text())
     json->SetBoolean("contentsOpaqueForText", true);
 
-  if (!layer.DrawsContent())
+  if (!layer.draws_content())
     json->SetBoolean("drawsContent", false);
 
   if (layer.should_check_backface_visibility())
@@ -132,7 +132,7 @@
 void LayersAsJSON::AddLayer(const cc::Layer& layer,
                             const TransformPaintPropertyNode& transform,
                             const LayerAsJSONClient* json_client) {
-  if (!(flags_ & kLayerTreeIncludesAllLayers) && !layer.DrawsContent() &&
+  if (!(flags_ & kLayerTreeIncludesAllLayers) && !layer.draws_content() &&
       (layer.DebugName() == "LayoutView #document" ||
        layer.DebugName() == "Inner Viewport Scroll Layer" ||
        layer.DebugName() == "Scrolling Contents Layer"))
diff --git a/third_party/blink/renderer/platform/graphics/compositing/paint_artifact_compositor.cc b/third_party/blink/renderer/platform/graphics/compositing/paint_artifact_compositor.cc
index 08385734..a54a9fb7 100644
--- a/third_party/blink/renderer/platform/graphics/compositing/paint_artifact_compositor.cc
+++ b/third_party/blink/renderer/platform/graphics/compositing/paint_artifact_compositor.cc
@@ -804,7 +804,7 @@
         property_tree_manager.EnsureCompositorTransformNode(transform);
     int clip_id = property_tree_manager.EnsureCompositorClipNode(clip);
     int effect_id = property_tree_manager.SwitchToEffectNodeWithSynthesizedClip(
-        effect, clip, layer->DrawsContent());
+        effect, clip, layer->draws_content());
 
     // We need additional bookkeeping for backdrop-filter mask.
     if (effect.RequiresCompositingForBackdropFilterMask() &&
diff --git a/third_party/blink/renderer/platform/graphics/compositing/paint_artifact_compositor_test.cc b/third_party/blink/renderer/platform/graphics/compositing/paint_artifact_compositor_test.cc
index e62e4c3b..dff0977 100644
--- a/third_party/blink/renderer/platform/graphics/compositing/paint_artifact_compositor_test.cc
+++ b/third_party/blink/renderer/platform/graphics/compositing/paint_artifact_compositor_test.cc
@@ -2246,7 +2246,7 @@
   ASSERT_EQ(2u, LayerCount());
   // This is the empty layer forced by |transform|.
   EXPECT_EQ(gfx::Size(33, 44), LayerAt(0)->bounds());
-  EXPECT_FALSE(LayerAt(0)->DrawsContent());
+  EXPECT_FALSE(LayerAt(0)->draws_content());
   // This is the layer containing the paint chunks with |blend_effect1| and
   // |blend_effect2| decomposited.
   EXPECT_EQ(gfx::Size(300, 300), LayerAt(1)->bounds());
@@ -2498,7 +2498,7 @@
   UpdateWithEffectivelyInvisibleChunk(false, false);
   ASSERT_EQ(1u, LayerCount());
   EXPECT_EQ(gfx::Size(10, 10), LayerAt(0)->bounds());
-  EXPECT_FALSE(LayerAt(0)->DrawsContent());
+  EXPECT_FALSE(LayerAt(0)->draws_content());
   EXPECT_FALSE(LayerAt(0)->GetPicture());
 }
 
@@ -2507,7 +2507,7 @@
   UpdateWithEffectivelyInvisibleChunk(true, false);
   ASSERT_EQ(1u, LayerCount());
   EXPECT_EQ(gfx::Size(20, 10), LayerAt(0)->bounds());
-  EXPECT_TRUE(LayerAt(0)->DrawsContent());
+  EXPECT_TRUE(LayerAt(0)->draws_content());
   EXPECT_THAT(LayerAt(0)->GetPicture(),
               Pointee(DrawsRectangles(
                   {RectWithColor(gfx::RectF(0, 0, 10, 10), Color::kBlack)})));
@@ -2518,7 +2518,7 @@
   UpdateWithEffectivelyInvisibleChunk(false, true);
   ASSERT_EQ(1u, LayerCount());
   EXPECT_EQ(gfx::Size(20, 20), LayerAt(0)->bounds());
-  EXPECT_TRUE(LayerAt(0)->DrawsContent());
+  EXPECT_TRUE(LayerAt(0)->draws_content());
   EXPECT_THAT(LayerAt(0)->GetPicture(),
               Pointee(DrawsRectangles(
                   {RectWithColor(gfx::RectF(0, 10, 10, 10), Color::kWhite)})));
@@ -2529,7 +2529,7 @@
   UpdateWithEffectivelyInvisibleChunk(true, true);
   ASSERT_EQ(1u, LayerCount());
   EXPECT_EQ(gfx::Size(20, 20), LayerAt(0)->bounds());
-  EXPECT_TRUE(LayerAt(0)->DrawsContent());
+  EXPECT_TRUE(LayerAt(0)->draws_content());
   EXPECT_THAT(LayerAt(0)->GetPicture(),
               Pointee(DrawsRectangles(
                   {RectWithColor(gfx::RectF(0, 0, 10, 10), Color::kBlack),
@@ -2639,7 +2639,7 @@
   EXPECT_TRUE(mask_isolation_0.HasRenderSurface());
 
   EXPECT_EQ(SynthesizedClipLayerAt(0), clip_mask0);
-  EXPECT_TRUE(clip_mask0->DrawsContent());
+  EXPECT_TRUE(clip_mask0->draws_content());
   EXPECT_TRUE(clip_mask0->HitTestable());
   EXPECT_EQ(gfx::Size(300, 200), clip_mask0->bounds());
   // c1 should be applied in the clip mask layer.
@@ -2732,7 +2732,7 @@
   EXPECT_TRUE(mask_isolation_0.HasRenderSurface());
 
   EXPECT_EQ(SynthesizedClipLayerAt(0), clip_mask0);
-  EXPECT_TRUE(clip_mask0->DrawsContent());
+  EXPECT_TRUE(clip_mask0->draws_content());
   EXPECT_TRUE(clip_mask0->HitTestable());
   EXPECT_EQ(gfx::Size(300, 200), clip_mask0->bounds());
   EXPECT_EQ(c1_id, clip_mask0->clip_tree_index());
@@ -2744,7 +2744,7 @@
 
   // The masks DrawsContent because it has content that it masks which also
   // DrawsContent.
-  EXPECT_TRUE(clip_mask0->DrawsContent());
+  EXPECT_TRUE(clip_mask0->draws_content());
 }
 
 TEST_P(
diff --git a/third_party/blink/renderer/platform/graphics/compositing/property_tree_manager.cc b/third_party/blink/renderer/platform/graphics/compositing/property_tree_manager.cc
index 60de2a1..98665ff 100644
--- a/third_party/blink/renderer/platform/graphics/compositing/property_tree_manager.cc
+++ b/third_party/blink/renderer/platform/graphics/compositing/property_tree_manager.cc
@@ -1236,7 +1236,7 @@
   Vector<int> effect_layer_counts(static_cast<wtf_size_t>(effect_tree.size()));
   // Initialize the vector to count directly controlled layers.
   for (const auto& layer : layers) {
-    if (layer->DrawsContent())
+    if (layer->draws_content())
       effect_layer_counts[layer->effect_tree_index()]++;
   }
 
diff --git a/third_party/blink/renderer/platform/graphics/graphics_context.cc b/third_party/blink/renderer/platform/graphics/graphics_context.cc
index 3799694..52e4103 100644
--- a/third_party/blink/renderer/platform/graphics/graphics_context.cc
+++ b/third_party/blink/renderer/platform/graphics/graphics_context.cc
@@ -528,9 +528,7 @@
   auto stroke_style = GetStrokeStyle();
   DCHECK_NE(stroke_style, kWavyStroke);
   if (ShouldUseStrokeForTextLine(stroke_style)) {
-    gfx::Point start;
-    gfx::Point end;
-    std::tie(start, end) = GetPointsForTextLine(pt, width, StrokeThickness());
+    auto [start, end] = GetPointsForTextLine(pt, width, StrokeThickness());
     DrawLine(start, end, auto_dark_mode, true, paint_flags);
   } else {
     if (paint_flags) {
@@ -1228,9 +1226,7 @@
   Path path;
   DCHECK_NE(stroke_style, kWavyStroke);
   if (ShouldUseStrokeForTextLine(stroke_style)) {
-    gfx::Point start;
-    gfx::Point end;
-    std::tie(start, end) = GetPointsForTextLine(pt, width, stroke_thickness);
+    auto [start, end] = GetPointsForTextLine(pt, width, stroke_thickness);
     path.MoveTo(gfx::PointF(start));
     path.AddLineTo(gfx::PointF(end));
   } else {
diff --git a/third_party/blink/renderer/platform/heap/collection_support/heap_vector_backing.h b/third_party/blink/renderer/platform/heap/collection_support/heap_vector_backing.h
index 46e8d26d..d982c04 100644
--- a/third_party/blink/renderer/platform/heap/collection_support/heap_vector_backing.h
+++ b/third_party/blink/renderer/platform/heap/collection_support/heap_vector_backing.h
@@ -144,17 +144,14 @@
     //   This is fine because the fact that the object can be initialized
     //   with memset indicates that it is safe to treat the zerod slot
     //   as a valid object.
-    static_assert(!IsTraceableInCollectionTrait<Traits>::value ||
-                      Traits::kCanClearUnusedSlotsWithMemset ||
-                      std::is_polymorphic<T>::value,
-                  "HeapVectorBacking doesn't support objects that cannot be "
-                  "cleared as unused with memset.");
+    static_assert(
+        Traits::kCanClearUnusedSlotsWithMemset || std::is_polymorphic<T>::value,
+        "HeapVectorBacking doesn't support objects that cannot be "
+        "cleared as unused with memset.");
 
-    // This trace method is instantiated for vectors where
-    // IsTraceableInCollectionTrait<Traits>::value is false, but the trace
-    // method should not be called. Thus we cannot static-assert
-    // IsTraceableInCollectionTrait<Traits>::value but should runtime-assert it.
-    DCHECK(IsTraceableInCollectionTrait<Traits>::value);
+    // Bail out early if the contents are not actually traceable.
+    if constexpr (!IsTraceableInCollectionTrait<Traits>::value)
+      return;
 
     const T* array = reinterpret_cast<const T*>(self);
     const size_t length =
diff --git a/third_party/blink/renderer/platform/loader/fetch/resource_loader.cc b/third_party/blink/renderer/platform/loader/fetch/resource_loader.cc
index 9fe9bef..ff7e160 100644
--- a/third_party/blink/renderer/platform/loader/fetch/resource_loader.cc
+++ b/third_party/blink/renderer/platform/loader/fetch/resource_loader.cc
@@ -1357,14 +1357,11 @@
   WebBlobInfo downloaded_blob;
 
   if (CanHandleDataURLRequestLocally(request)) {
-    ResourceResponse response;
-    scoped_refptr<SharedBuffer> data;
-    int result;
-    // It doesn't have to verify mime type again since it's allowed to handle
+    // We don't have to verify mime type again since it's allowed to handle
     // the data url with invalid mime type in some cases.
     // CanHandleDataURLRequestLocally() has already checked if the data url can
     // be handled here.
-    std::tie(result, response, data) =
+    auto [result, response, data] =
         network_utils::ParseDataURL(resource_->Url(), request.HttpMethod());
     if (result != net::OK) {
       error_out = WebURLError(result, resource_->Url());
@@ -1587,14 +1584,11 @@
   }
 
   // Extract a ResourceResponse from the data url.
-  ResourceResponse response;
-  scoped_refptr<SharedBuffer> data;
-  int result;
-  // We doesn't have to verify mime type again since it's allowed to handle the
+  // We don't have to verify mime type again since it's allowed to handle the
   // data url with invalid mime type in some cases.
   // CanHandleDataURLRequestLocally() has already checked if the data url can be
   // handled here.
-  std::tie(result, response, data) = network_utils::ParseDataURL(
+  auto [result, response, data] = network_utils::ParseDataURL(
       resource_->Url(), resource_->GetResourceRequest().HttpMethod());
   if (result != net::OK) {
     HandleError(ResourceError(result, resource_->Url(), absl::nullopt));
diff --git a/third_party/blink/renderer/platform/loader/fetch/resource_loader_test.cc b/third_party/blink/renderer/platform/loader/fetch/resource_loader_test.cc
index 09fd868f..1ba0731 100644
--- a/third_party/blink/renderer/platform/loader/fetch/resource_loader_test.cc
+++ b/third_party/blink/renderer/platform/loader/fetch/resource_loader_test.cc
@@ -258,9 +258,7 @@
   // Read through the bytes consumer passed back from the ResourceLoader.
   auto* test_reader = MakeGarbageCollected<BytesConsumerTestReader>(
       raw_resource_client->body());
-  Vector<char> body;
-  BytesConsumer::Result result;
-  std::tie(result, body) = test_reader->Run(task_runner);
+  auto [result, body] = test_reader->Run(task_runner);
   EXPECT_EQ(result, BytesConsumer::Result::kDone);
   EXPECT_EQ(resource->GetStatus(), ResourceStatus::kCached);
   EXPECT_EQ(std::string(body.data(), body.size()), "Hello World!");
diff --git a/third_party/blink/renderer/platform/loader/fetch/shared_buffer_bytes_consumer_test.cc b/third_party/blink/renderer/platform/loader/fetch/shared_buffer_bytes_consumer_test.cc
index 2cec6cd..4fd028c 100644
--- a/third_party/blink/renderer/platform/loader/fetch/shared_buffer_bytes_consumer_test.cc
+++ b/third_party/blink/renderer/platform/loader/fetch/shared_buffer_bytes_consumer_test.cc
@@ -33,9 +33,7 @@
   auto task_runner = base::MakeRefCounted<scheduler::FakeTaskRunner>();
   auto* test_reader =
       MakeGarbageCollected<BytesConsumerTestReader>(bytes_consumer);
-  Vector<char> data_from_consumer;
-  BytesConsumer::Result result;
-  std::tie(result, data_from_consumer) = test_reader->Run(task_runner.get());
+  auto [result, data_from_consumer] = test_reader->Run(task_runner.get());
   EXPECT_EQ(BytesConsumer::Result::kDone, result);
   EXPECT_EQ(PublicState::kClosed, bytes_consumer->GetPublicState());
   EXPECT_EQ(flatten_expected_data,
diff --git a/third_party/blink/renderer/platform/runtime_enabled_features.json5 b/third_party/blink/renderer/platform/runtime_enabled_features.json5
index 9665fccc..14099f59 100644
--- a/third_party/blink/renderer/platform/runtime_enabled_features.json5
+++ b/third_party/blink/renderer/platform/runtime_enabled_features.json5
@@ -2267,6 +2267,14 @@
       name: "TimeZoneChangeEvent",
       status: "experimental",
     },
+    // This feature allows touch dragging and a context menu to occur
+    // simultaneously, with the assumption that the menu is non-modal.  Without
+    // this feature, a long-press touch gesture can start either a drag or a
+    // context-menu in Blink, not both (more precisely, a context menu is shown
+    // only if a drag cannot be started).
+    {
+      name: "TouchDragAndContextMenu",
+    },
     // Many websites disable mouse support when touch APIs are available.  We'd
     // like to enable this always but can't until more websites fix this bug.
     // Chromium sets this conditionally (eg. based on the presence of a
diff --git a/third_party/blink/renderer/platform/scheduler/main_thread/frame_task_queue_controller_unittest.cc b/third_party/blink/renderer/platform/scheduler/main_thread/frame_task_queue_controller_unittest.cc
index cfc6d2b..3a31764 100644
--- a/third_party/blink/renderer/platform/scheduler/main_thread/frame_task_queue_controller_unittest.cc
+++ b/third_party/blink/renderer/platform/scheduler/main_thread/frame_task_queue_controller_unittest.cc
@@ -5,7 +5,6 @@
 #include "third_party/blink/renderer/platform/scheduler/main_thread/frame_task_queue_controller.h"
 
 #include <memory>
-#include <tuple>
 #include <utility>
 
 #include "base/bind.h"
@@ -192,9 +191,7 @@
             frame_task_queue_controller_->GetAllTaskQueuesAndVoters().size());
   for (const auto& task_queue_and_voter :
        frame_task_queue_controller_->GetAllTaskQueuesAndVoters()) {
-    MainThreadTaskQueue* task_queue_ptr;
-    TaskQueue::QueueEnabledVoter* voter;
-    std::tie(task_queue_ptr, voter) = task_queue_and_voter;
+    auto [task_queue_ptr, voter] = task_queue_and_voter;
 
     EXPECT_NE(task_queue_ptr, nullptr);
     EXPECT_TRUE(all_task_queues.find(task_queue_ptr) != all_task_queues.end());
diff --git a/third_party/blink/renderer/platform/wtf/vector.h b/third_party/blink/renderer/platform/wtf/vector.h
index 38e7158..0df62e1 100644
--- a/third_party/blink/renderer/platform/wtf/vector.h
+++ b/third_party/blink/renderer/platform/wtf/vector.h
@@ -339,25 +339,23 @@
   const T* Buffer() const { return buffer_; }
   wtf_size_t capacity() const { return capacity_; }
 
+  static constexpr bool NeedsToClearUnusedSlots() {
+    // Tracing and finalization access all slots of a vector backing. In case
+    // there's work to be done there unused slots should be cleared.
+    return Allocator::kIsGarbageCollected &&
+           (IsTraceableInCollectionTrait<VectorTraits<T>>::value ||
+            VectorTraits<T>::kNeedsDestruction);
+  }
+
   void ClearUnusedSlots(T* from, T* to) {
-    // If the vector backing is garbage-collected and needs tracing or
-    // finalizing, we clear out the unused slots so that the visitor or the
-    // finalizer does not cause a problem when visiting the unused slots.
-    static_assert(
-        !Allocator::kIsGarbageCollected ||
-            IsTraceableInCollectionTrait<VectorTraits<T>>::value,
-        "Type in garbage collected vectors should be traceable in collection");
-    if constexpr (Allocator::kIsGarbageCollected)
+    if constexpr (NeedsToClearUnusedSlots()) {
       AtomicMemzero(reinterpret_cast<void*>(from), sizeof(T) * (to - from));
+    }
   }
 
   void CheckUnusedSlots(const T* from, const T* to) {
 #if DCHECK_IS_ON() && !defined(ANNOTATE_CONTIGUOUS_CONTAINER)
-    static_assert(
-        !Allocator::kIsGarbageCollected ||
-            IsTraceableInCollectionTrait<VectorTraits<T>>::value,
-        "Type in garbage collected vectors should be traceable in collection");
-    if constexpr (Allocator::kIsGarbageCollected) {
+    if constexpr (NeedsToClearUnusedSlots()) {
       const unsigned char* unused_area =
           reinterpret_cast<const unsigned char*>(from);
       const unsigned char* end_address =
@@ -2033,8 +2031,6 @@
 Vector<T, inlineCapacity, Allocator>::Trace(VisitorDispatcher visitor) const {
   static_assert(Allocator::kIsGarbageCollected,
                 "Garbage collector must be enabled.");
-  static_assert(IsTraceableInCollectionTrait<VectorTraits<T>>::value,
-                "Type must be traceable in collection");
 
   const T* buffer = BufferSafe();
 
diff --git a/third_party/blink/web_tests/NeverFixTests b/third_party/blink/web_tests/NeverFixTests
index f953fc01..1519512 100644
--- a/third_party/blink/web_tests/NeverFixTests
+++ b/third_party/blink/web_tests/NeverFixTests
@@ -68,6 +68,7 @@
 [ Mac ] fast/forms/select/menulist-onchange-fired-with-key-up-down.html [ Skip ]
 [ Mac ] fast/forms/select/popup-with-display-none-optgroup.html [ Skip ]
 [ Mac ] fast/forms/select-popup/* [ Skip ]
+[ Mac ] dark-mode/colors/select-popup.html [ Skip ]
 
 # These tests are specific to Windows and Linux.
 [ Mac ] fast/forms/calendar-picker/date-open-picker-with-f4-key.html [ Skip ]
diff --git a/third_party/blink/web_tests/TestExpectations b/third_party/blink/web_tests/TestExpectations
index 51cf64a..47b15b27 100644
--- a/third_party/blink/web_tests/TestExpectations
+++ b/third_party/blink/web_tests/TestExpectations
@@ -4488,6 +4488,9 @@
 
 crbug.com/664450 http/tests/devtools/console/console-on-animation-worklet.js [ Skip ]
 
+# [css-transitions]
+crbug.com/1289685 external/wpt/css/css-transitions/properties-value-inherit-001.html [ Failure Pass ]
+
 crbug.com/826419 external/wpt/html/semantics/embedded-content/media-elements/track/track-element/track-remove-track-inband.html [ Skip ]
 
 crbug.com/825798 external/wpt/html/semantics/embedded-content/media-elements/track/track-element/track-webvtt-non-snap-to-lines.html [ Failure ]
@@ -7215,6 +7218,10 @@
 crbug.com/930462 external/wpt/animation-worklet/worklet-animation-pause-resume.https.html [ Skip ]
 crbug.com/930462 virtual/threaded/external/wpt/animation-worklet/worklet-animation-pause-resume.https.html [ Skip ]
 crbug.com/1287915 virtual/off-main-thread-css-paint/external/wpt/css/css-paint-api/non-registered-property-value.https.html [ Skip ]
+crbug.com/1233826 virtual/off-main-thread-css-paint/external/wpt/css/css-paint-api/parse-input-arguments-010.https.html [ Skip ]
+crbug.com/1233826 virtual/off-main-thread-css-paint/external/wpt/css/css-paint-api/registered-property-interpolation-010.https.html [ Skip ]
+crbug.com/1233826 virtual/off-main-thread-css-paint/external/wpt/css/css-paint-api/registered-property-value-012.https.html [ Skip ]
+crbug.com/1233826 virtual/off-main-thread-css-paint/external/wpt/css/css-paint-api/registered-property-value-017.https.html [ Skip ]
 
 # Sheriff 2021-09-29
 crbug.com/1254163 [ Mac ] virtual/scroll-unification/ietestcenter/css3/bordersbackgrounds/background-attachment-local-scrolling.htm [ Failure ]
@@ -7576,14 +7583,13 @@
 # Flakiness of WIP MediaStreamTrack on workers.
 crbug.com/1290767 external/wpt/mediacapture-insertable-streams/MediaStreamTrackGenerator-in-worker.https.html [ Crash Pass ]
 crbug.com/1290767 external/wpt/mediacapture-insertable-streams/MediaStreamTrackGenerator-pipes-data-in-worker.https.html [ Crash Pass ]
+crbug.com/1290976 external/wpt/mediacapture-insertable-streams/MediaStreamTrackGenerator-in-shared-worker.https.html [ Crash Pass ]
 
 # Temporarily disable tests to land branded types related changes.
 crbug.com/1253323 [ Win ] http/tests/devtools/sources/debugger-breakpoints/nodejs-set-breakpoint.js [ Skip ]
 crbug.com/1253323 http/tests/devtools/persistence/automapping-urlencoded-paths.js [ Skip ]
 crbug.com/1253323 http/tests/devtools/sources/debugger/navigator-view.js [ Skip ]
 
-crbug.com/1290780 [ Mac10.15 ] virtual/off-main-thread-css-paint/external/wpt/css/css-paint-api/registered-property-value-012.https.html [ Failure ]
-
 # Sheriff 2022-01-26
 crbug.com/1290978 [ Win ] external/wpt/css/CSS2/normal-flow/crashtests/block-in-inline-ax-crash.html [ Crash Failure Pass Timeout ]
 crbug.com/1290978 [ Mac ] external/wpt/css/CSS2/normal-flow/crashtests/block-in-inline-ax-crash.html [ Crash Failure Pass Timeout ]
diff --git a/third_party/blink/web_tests/dark-mode/colors/select-popup-expected.html b/third_party/blink/web_tests/dark-mode/colors/select-popup-expected.html
new file mode 100644
index 0000000..4e92cfe6
--- /dev/null
+++ b/third_party/blink/web_tests/dark-mode/colors/select-popup-expected.html
@@ -0,0 +1,18 @@
+<!doctype html>
+<script src="../../fast/forms/resources/picker-common.js"></script>
+<style>
+  select, option { background-color: white; }
+</style>
+<select id="menu">
+  <option></option>
+  <option>OPTION1</option>
+  <option>OPTION2</option>
+  <option>OPTION3</option>
+  <option>OPTION4</option>
+</select>
+<script>
+  if (window.testRunner) {
+    testRunner.waitUntilDone();
+    openPickerAppearanceOnly(document.getElementById("menu"), () => testRunner.notifyDone());
+  }
+</script>
diff --git a/third_party/blink/web_tests/dark-mode/colors/select-popup.html b/third_party/blink/web_tests/dark-mode/colors/select-popup.html
new file mode 100644
index 0000000..5e91c27
--- /dev/null
+++ b/third_party/blink/web_tests/dark-mode/colors/select-popup.html
@@ -0,0 +1,21 @@
+<!doctype html>
+<script src="../../fast/forms/resources/picker-common.js"></script>
+<style>
+  .black-on-white { color: black; background-color: white; }
+  .light-scheme { color-scheme: light; }
+  .dark-scheme { color-scheme: dark; }
+  .light-only-scheme { color-scheme: only light; }
+</style>
+<select id="menu" style="background-color:white">
+  <option></option>
+  <option>OPTION1</option>
+  <option class="black-on-white light-scheme">OPTION2</option>
+  <option class="black-on-white dark-scheme">OPTION3</option>
+  <option class="black-on-white light-only-scheme">OPTION4</option>
+</select>
+<script>
+  if (window.testRunner) {
+    testRunner.waitUntilDone();
+    openPickerAppearanceOnly(document.getElementById("menu"), () => testRunner.notifyDone());
+  }
+</script>
diff --git a/third_party/blink/web_tests/external/wpt/css/css-break/fragmented-oof-in-inline-crash.html b/third_party/blink/web_tests/external/wpt/css/css-break/fragmented-oof-in-inline-crash.html
new file mode 100644
index 0000000..8428f32
--- /dev/null
+++ b/third_party/blink/web_tests/external/wpt/css/css-break/fragmented-oof-in-inline-crash.html
@@ -0,0 +1,13 @@
+<!DOCTYPE html>
+<link rel="help" href="https://bugs.chromium.org/p/chromium/issues/detail?id=1290093">
+<div style="columns:2;">
+  <span style="position:relative;">
+    <div style="position:absolute;"></div>
+    <div id="spanner" style="column-span:all;"></div>
+  </span>
+</div>
+<script>
+  document.body.offsetTop;
+  // This doesn't actually affect layout, but changing display type requires re-attach.
+  spanner.style.display = "flow-root";
+</script>
diff --git a/third_party/blink/web_tests/virtual/dark-mode-default/dark-mode/colors/select-popup-expected.html b/third_party/blink/web_tests/virtual/dark-mode-default/dark-mode/colors/select-popup-expected.html
new file mode 100644
index 0000000..b5d1648
--- /dev/null
+++ b/third_party/blink/web_tests/virtual/dark-mode-default/dark-mode/colors/select-popup-expected.html
@@ -0,0 +1,22 @@
+<!doctype html>
+<meta name="color-scheme" content="dark">
+<script src="../../../../fast/forms/resources/picker-common.js"></script>
+<style>
+  select, option {
+    color: white;
+    background-color: #121212;
+  }
+</style>
+<select id="menu">
+  <option></option>
+  <option>OPTION1</option>
+  <option>OPTION2</option>
+  <option style="color:black;background:white">OPTION3</option>
+  <option style="color:black;background:white">OPTION4</option>
+</select>
+<script>
+  if (window.testRunner) {
+    testRunner.waitUntilDone();
+    openPickerAppearanceOnly(document.getElementById("menu"), () => testRunner.notifyDone());
+  }
+</script>
diff --git a/third_party/blink/web_tests/virtual/dark-mode-increase-text-contrast/dark-mode/colors/select-popup-expected.html b/third_party/blink/web_tests/virtual/dark-mode-increase-text-contrast/dark-mode/colors/select-popup-expected.html
new file mode 100644
index 0000000..a2c296a
--- /dev/null
+++ b/third_party/blink/web_tests/virtual/dark-mode-increase-text-contrast/dark-mode/colors/select-popup-expected.html
@@ -0,0 +1,25 @@
+<!doctype html>
+<meta name="color-scheme" content="dark">
+<script src="../../../../fast/forms/resources/picker-common.js"></script>
+<style>
+  select, option {
+    color: white;
+    background-color: #121212;
+  }
+</style>
+<select id="menu">
+  <option></option>
+  <option>OPTION1</option>
+  <!-- Not able to reproduce the effect of the text contrast effect in "normal"
+       rendering. Ideally OPTION2 should not have any styles in this
+       expectation. -->
+  <option style="color-scheme:light;color:black;background:white">OPTION2</option>
+  <option style="color:black;background:white">OPTION3</option>
+  <option style="color:black;background:white">OPTION4</option>
+</select>
+<script>
+  if (window.testRunner) {
+    testRunner.waitUntilDone();
+    openPickerAppearanceOnly(document.getElementById("menu"), () => testRunner.notifyDone());
+  }
+</script>
diff --git a/third_party/blink/web_tests/wpt_internal/fenced_frame/embedder-no-coep.https.html b/third_party/blink/web_tests/wpt_internal/fenced_frame/embedder-no-coep.https.html
index 1aa623d..75980a1 100644
--- a/third_party/blink/web_tests/wpt_internal/fenced_frame/embedder-no-coep.https.html
+++ b/third_party/blink/web_tests/wpt_internal/fenced_frame/embedder-no-coep.https.html
@@ -2,7 +2,6 @@
 <title>Test COEP properties set for a Fenced Frame Tree</title>
 <script src="/resources/testharness.js"></script>
 <script src="/resources/testharnessreport.js"></script>
-<script src="/common/get-host-info.sub.js"></script>
 <script src="/common/utils.js"></script>
 <script src="resources/utils.js"></script>
 <script src="resources/embedder-policy.js"></script>
diff --git a/third_party/blink/web_tests/wpt_internal/fenced_frame/embedder-require-corp.https.html b/third_party/blink/web_tests/wpt_internal/fenced_frame/embedder-require-corp.https.html
index fbf20d43..029fcc82 100644
--- a/third_party/blink/web_tests/wpt_internal/fenced_frame/embedder-require-corp.https.html
+++ b/third_party/blink/web_tests/wpt_internal/fenced_frame/embedder-require-corp.https.html
@@ -2,7 +2,6 @@
 <title>Test COEP properties set for a Fenced Frame Tree</title>
 <script src="/resources/testharness.js"></script>
 <script src="/resources/testharnessreport.js"></script>
-<script src="/common/get-host-info.sub.js"></script>
 <script src="/common/utils.js"></script>
 <script src="resources/utils.js"></script>
 <script src="resources/embedder-policy.js"></script>
@@ -23,13 +22,5 @@
   const result = await nextValueFromServer(uuid);
   assert_unreached("embedded page should not be loaded.");
 }, "Create fencedframe without COEP header");
-
-promise_test(async (t) => {
-  const uuid = token();
-  t.step_timeout(() => t.done(), 3000);
-  const frame = setupTest("cross:coep:require-corp", uuid);
-  const result = await nextValueFromServer(uuid);
-  assert_unreached("violating CORP, embedded page should not be loaded.");
-}, "Create fencedframe with a cross site COEP:require-corp and CORP:same-orign");
 </script>
 </body>
diff --git a/third_party/blink/web_tests/wpt_internal/fenced_frame/embedder-require-corp.https.html.headers b/third_party/blink/web_tests/wpt_internal/fenced_frame/embedder-require-corp.https.html.headers
index 7b5e364d..8df9847 100644
--- a/third_party/blink/web_tests/wpt_internal/fenced_frame/embedder-require-corp.https.html.headers
+++ b/third_party/blink/web_tests/wpt_internal/fenced_frame/embedder-require-corp.https.html.headers
@@ -1,2 +1 @@
 cross-origin-embedder-policy: require-corp
-cross-origin-resource-policy: same-origin
diff --git a/third_party/blink/web_tests/wpt_internal/fenced_frame/resources/embedder-policy.js b/third_party/blink/web_tests/wpt_internal/fenced_frame/resources/embedder-policy.js
index 895ac1a3..9929b522 100644
--- a/third_party/blink/web_tests/wpt_internal/fenced_frame/resources/embedder-policy.js
+++ b/third_party/blink/web_tests/wpt_internal/fenced_frame/resources/embedder-policy.js
@@ -1,6 +1,4 @@
-// This file should be loaded alongside with utils.js and
-// /common/get-host-info.sub.js.
-//
+// This file should be loaded alongside with utils.js.
 // This file is loaded by:
 // - embedder-no-coep.https.html
 // - embedder-require-corp.https.html
@@ -19,27 +17,17 @@
 // Setup a fenced frame for embedder-* WPTs.
 async function setupTest(test_type, uuid) {
   let headers = ["Supports-Loading-Mode,fenced-frame"];
-  let hostname = ''
   switch (test_type) {
     case "coep:require-corp":
       headers.push("cross-origin-embedder-policy,require-corp");
       break;
     case "no coep":
       break;
-    case "cross:coep:require-corp":
-      // Make sure a different site is used.
-      hostname = get_host_info().REMOTE_HOST;
-      headers.push("cross-origin-embedder-policy,require-corp");
-      break;
     default:
       assert_unreachable("unknown test_type:" + test_type);
       break;
   }
-  const tmp_url = new URL('resources/embeddee.html', location.href);
-  if (hostname) {
-    tmp_url.hostname = hostname;
-  }
-  tmp_url.searchParams.append("pipe", generateHeader(headers));
-  const url = generateURL(tmp_url.toString(), [uuid]);
+  const header_pipe = generateHeader(headers);
+  const url = generateURL('resources/embeddee.html?pipe=' + header_pipe, [uuid]);
   return attachFencedFrame(url);
 }
diff --git a/third_party/blink/web_tests/wpt_internal/fenced_frame/resources/utils.js b/third_party/blink/web_tests/wpt_internal/fenced_frame/resources/utils.js
index 536ee12c..89b5b7506 100644
--- a/third_party/blink/web_tests/wpt_internal/fenced_frame/resources/utils.js
+++ b/third_party/blink/web_tests/wpt_internal/fenced_frame/resources/utils.js
@@ -74,9 +74,6 @@
 
   "background-fetch"                            : "00000000-0000-0000-0000-00000000002C",
 
-  "window.outersize"                            : "00000000-0000-0000-0000-00000000002D",
-  "window.innersize"                            : "00000000-0000-0000-0000-00000000002E",
-
   "fenced_history_length"                       : "00000000-0000-0000-0000-00000000002F",
   "outer_page_ready_for_next_navigation"        : "00000000-0000-0000-0000-000000000030",
 
diff --git a/third_party/blink/web_tests/wpt_internal/fenced_frame/resources/window-outer-dimensions-inner.html b/third_party/blink/web_tests/wpt_internal/fenced_frame/resources/window-outer-dimensions-inner.html
index 4a8b9c3..81dee80 100644
--- a/third_party/blink/web_tests/wpt_internal/fenced_frame/resources/window-outer-dimensions-inner.html
+++ b/third_party/blink/web_tests/wpt_internal/fenced_frame/resources/window-outer-dimensions-inner.html
@@ -7,12 +7,10 @@
     async function report() { // Needed in order to use top-level await.
       // This file is meant to run in a <fencedframe>. It reports its dimensions
       // back to the outermost page, which in turn checks for correctness.
-      const window_outer_size_key = KEYS["window.outersize"];
-      const window_inner_size_key = KEYS["window.innersize"];
+      const [window_outer_size_key, window_inner_size_key, dimension,
+             extra_children] = parseKeylist();
 
       const url = new URL(location.href);
-      const dimension = url.searchParams.get("dimension");
-      const extra_children = url.searchParams.get("extra_children");
 
       if (extra_children == "0") {
         let outer_result = (dimension == "width") ?
@@ -25,8 +23,10 @@
         writeValueToServer(window_inner_size_key, inner_result);
       } else {
           const iframe = document.createElement('iframe');
-          iframe.src = "window-outer-dimensions-inner.html?dimension="
-                       + dimension + "&extra_children=" + (parseInt(extra_children) - 1);
+          const frame_url = generateURL('window-outer-dimensions-inner.html',
+            [window_outer_size_key, window_inner_size_key, dimension,
+            (parseInt(extra_children) - 1)]);
+          iframe.src = frame_url;
           document.body.append(iframe);
       }
 
diff --git a/third_party/blink/web_tests/wpt_internal/fenced_frame/window-outer-dimensions.html b/third_party/blink/web_tests/wpt_internal/fenced_frame/window-outer-dimensions.html
index 041ceb8..6766b8e 100644
--- a/third_party/blink/web_tests/wpt_internal/fenced_frame/window-outer-dimensions.html
+++ b/third_party/blink/web_tests/wpt_internal/fenced_frame/window-outer-dimensions.html
@@ -8,16 +8,15 @@
 <body>
   <script>
     async function runTest(dimension, extra_children) {
-      const window_outer_size_key = KEYS["window.outersize"];
-      const window_inner_size_key = KEYS["window.innersize"];
+      const window_outer_size_key = token();
+      const window_inner_size_key = token();
 
       const window_outer_size_from_top_frame = (dimension == "width" ?
         window.outerWidth : window.outerHeight).toString();
 
-      const new_frame = attachFencedFrame(
-        "resources/window-outer-dimensions-inner.html?dimension=" + dimension
-        + "&extra_children=" + extra_children
-      );
+      const frame_url = generateURL('resources/window-outer-dimensions-inner.html',
+        [window_outer_size_key, window_inner_size_key, dimension, extra_children]);
+      const new_frame = attachFencedFrame(frame_url);
 
       // Get the outer and inner width/height from either the top level
       // fencedframe or the nested iframe.
diff --git a/third_party/blink/web_tests/external/wpt/reporting/path-absolute-endpoint.https.sub.html b/third_party/blink/web_tests/wpt_internal/reporting/path-absolute-endpoint.https.sub.html
similarity index 100%
rename from third_party/blink/web_tests/external/wpt/reporting/path-absolute-endpoint.https.sub.html
rename to third_party/blink/web_tests/wpt_internal/reporting/path-absolute-endpoint.https.sub.html
diff --git a/third_party/blink/web_tests/external/wpt/reporting/path-absolute-endpoint.https.sub.html.sub.headers b/third_party/blink/web_tests/wpt_internal/reporting/path-absolute-endpoint.https.sub.html.sub.headers
similarity index 100%
rename from third_party/blink/web_tests/external/wpt/reporting/path-absolute-endpoint.https.sub.html.sub.headers
rename to third_party/blink/web_tests/wpt_internal/reporting/path-absolute-endpoint.https.sub.html.sub.headers
diff --git a/third_party/blink/web_tests/wpt_internal/reporting/resources/fail.png b/third_party/blink/web_tests/wpt_internal/reporting/resources/fail.png
new file mode 100644
index 0000000..b5933803
--- /dev/null
+++ b/third_party/blink/web_tests/wpt_internal/reporting/resources/fail.png
Binary files differ
diff --git a/third_party/blink/web_tests/wpt_internal/reporting/resources/report-helper.js b/third_party/blink/web_tests/wpt_internal/reporting/resources/report-helper.js
index cc4f07f0..213a635 100644
--- a/third_party/blink/web_tests/wpt_internal/reporting/resources/report-helper.js
+++ b/third_party/blink/web_tests/wpt_internal/reporting/resources/report-helper.js
@@ -3,7 +3,7 @@
 }
 
 async function pollReports(endpoint, id, min_count) {
-  const res = await fetch(`${endpoint}?reportID=${id}${min_count ? `&min_count=${min_count}` : ''}`, {cache: 'no-store'});
+  const res = await fetch(`${endpoint}?reportID=${id}${min_count ? `&min_count=${min_count}` : ''}`, { cache: 'no-store' });
   const reports = [];
   if (res.status === 200) {
     for (const report of await res.json()) {
@@ -14,7 +14,7 @@
 }
 
 async function pollCookies(endpoint, id) {
-  const res = await fetch(`${endpoint}?reportID=${id}&op=retrieve_cookies`, {cache: 'no-store'});
+  const res = await fetch(`${endpoint}?reportID=${id}&op=retrieve_cookies`, { cache: 'no-store' });
   const dict = await res.json();
   if (dict.reportCookies == 'None')
     return {};
@@ -22,11 +22,11 @@
 }
 
 async function pollNumResults(endpoint, id) {
-  const res = await fetch(`${endpoint}?reportID=${id}&op=retrieve_count`, {cache: 'no-store'});
+  const res = await fetch(`${endpoint}?reportID=${id}&op=retrieve_count`, { cache: 'no-store' });
   const dict = await res.json();
   if (dict.report_count == 'None')
     return 0;
-  return JSON.parse(dict.report_count);
+  return dict.report_count;
 }
 
 function checkReportExists(reports, type, url) {
diff --git a/third_party/blink/web_tests/wpt_internal/reporting/resources/report.py b/third_party/blink/web_tests/wpt_internal/reporting/resources/report.py
index 244feb5b..4d0aa1f 100644
--- a/third_party/blink/web_tests/wpt_internal/reporting/resources/report.py
+++ b/third_party/blink/web_tests/wpt_internal/reporting/resources/report.py
@@ -52,6 +52,18 @@
             (b"Access-Control-Allow-Headers", b"Content-Type"),
         ], u"CORS allowed"
 
+    # Delete reports as requested
+    if request.method == u'POST':
+        body = json.loads(request.body)
+        if (isinstance(body, dict) and "op" in body):
+            if body["op"] == "DELETE" and "reportIDs" in body:
+                with request.server.stash.lock:
+                    for key in body["reportIDs"]:
+                        request.server.stash.take(key=key)
+                return "reports cleared"
+            response.status = 400
+            return "op parameter value not recognized"
+
     if b"reportID" in request.GET:
         key = request.GET.first(b"reportID")
     elif b"endpoint" in request.GET:
@@ -90,10 +102,9 @@
                                             u"\"None\"")) + u"}"
 
         if op == b"retrieve_count":
-            return [(b"Content-Type", b"application/json")], json.dumps({
-                u'report_count':
-                str(retrieve_from_stash(request, count_key, timeout, 0))
-            })
+            return [(b"Content-Type", b"application/json")
+                    ], u"{ \"report_count\": %s }" % retrieve_from_stash(
+                        request, count_key, timeout, 0)
 
         response.status = 400
         return "op parameter value not recognized."
diff --git a/third_party/freetype/README.chromium b/third_party/freetype/README.chromium
index 2bf143a5..318fc73 100644
--- a/third_party/freetype/README.chromium
+++ b/third_party/freetype/README.chromium
@@ -1,7 +1,7 @@
 Name: FreeType
 URL: http://www.freetype.org/
-Version: VER-2-11-1-78-g837f0345a
-Revision: 837f0345a9a6f3f64c94a41d944b097ffa359e5a
+Version: VER-2-11-1-81-gab1c98ac1
+Revision: ab1c98ac183d07e2ac0e38c5a2a6ec607f14aeb0
 CPEPrefix: cpe:/a:freetype:freetype:2.11.1
 License: Custom license "inspired by the BSD, Artistic, and IJG (Independent
          JPEG Group) licenses"
diff --git a/tools/binary_size/libsupersize/viewer/upload_html_viewer.py b/tools/binary_size/libsupersize/viewer/upload_html_viewer.py
index a4e29cc7..ad187f9 100755
--- a/tools/binary_size/libsupersize/viewer/upload_html_viewer.py
+++ b/tools/binary_size/libsupersize/viewer/upload_html_viewer.py
@@ -6,6 +6,7 @@
 
 import argparse
 import os
+import pathlib
 import shutil
 import subprocess
 import sys
@@ -13,17 +14,19 @@
 import urllib.request
 import uuid
 
-FIREBASE_PROJECT = 'chrome-supersize'
-PROD_URL = 'https://chrome-supersize.firebaseapp.com/'
-CASPIAN_FILES = [
+_STATIC_FILES_DIR = (pathlib.Path(__file__).parent / 'static').resolve()
+
+_FIREBASE_PROJECT = 'chrome-supersize'
+_PROD_URL = 'https://chrome-supersize.firebaseapp.com/'
+_WASM_FILES = [
     'caspian_web.js',
     'caspian_web.wasm',
     'caspian_web.wasm.map',
 ]
 
-PROD = 'prod'
-STAGING = 'staging'
-DEV = 'dev'
+_PROD = 'prod'
+_STAGING = 'staging'
+_DEV = 'dev'
 
 
 def _FirebaseLogin():
@@ -58,42 +61,38 @@
   return static_dir
 
 
-def _FirebaseDeploy(project_dir, deploy_mode=PROD):
+def _FirebaseDeploy(project_dir, deploy_mode=_PROD):
   """Deploy the project to firebase hosting."""
-  if deploy_mode == DEV:
+  if deploy_mode == _DEV:
     subprocess.check_call([
-        'firebase', '-P', FIREBASE_PROJECT, 'emulators:start', '--only',
+        'firebase', '-P', _FIREBASE_PROJECT, 'emulators:start', '--only',
         'hosting'
     ],
                           cwd=project_dir)
-  elif deploy_mode == STAGING:
+  elif deploy_mode == _STAGING:
     print('Note: deploying to staging requires firebase cli >= 8.12.0')
     subprocess.check_call([
-        'firebase', '-P', FIREBASE_PROJECT, 'hosting:channel:deploy', 'staging'
+        'firebase', '-P', _FIREBASE_PROJECT, 'hosting:channel:deploy', 'staging'
     ],
                           cwd=project_dir)
   else:
-    subprocess.check_call(['firebase', 'deploy', '-P', FIREBASE_PROJECT],
+    subprocess.check_call(['firebase', 'deploy', '-P', _FIREBASE_PROJECT],
                           cwd=project_dir)
 
 
-def _DownloadCaspianFiles(project_static_dir):
-  for f in CASPIAN_FILES:
-    with urllib.request.urlopen(PROD_URL + f) as response:
-      with open(os.path.join(project_static_dir, f), 'wb') as output:
-        shutil.copyfileobj(response, output)
+def _MaybeDownloadWasmFiles(force_download):
+  """Download WASM files if they are missing or stale."""
+  if not force_download:
+    if not all(_STATIC_FILES_DIR.joinpath(f).exists() for f in _WASM_FILES):
+      print(f'Some WASM files do not exist in: {_STATIC_FILES_DIR}')
+      force_download = True
 
-
-def _CopyStaticFiles(project_static_dir):
-  """Copy over static files from the static directory."""
-  static_files = os.path.normpath(
-      os.path.join(os.path.dirname(__file__), 'static'))
-  shutil.copytree(static_files, project_static_dir)
-  if not all(
-      os.path.exists(os.path.join(static_files, f)) for f in CASPIAN_FILES):
-    print(f'Some wasm files do not exist in ({static_files}). Using copies '
-          f'from {PROD_URL} instead.')
-    _DownloadCaspianFiles(project_static_dir)
+  if force_download:
+    for f in _WASM_FILES:
+      print(f'Downloading: {_PROD_URL + f}')
+      with urllib.request.urlopen(_PROD_URL + f) as response:
+        with open(_STATIC_FILES_DIR / f, 'wb') as output:
+          shutil.copyfileobj(response, output)
 
 
 def _FillInAndCopyTemplates(project_static_dir):
@@ -118,33 +117,37 @@
   deployment_mode_group.add_argument('--local',
                                      action='store_const',
                                      dest='deploy_mode',
-                                     const=DEV,
+                                     const=_DEV,
                                      help='Deploy a locally hosted server.')
   deployment_mode_group.add_argument(
       '--staging',
       action='store_const',
       dest='deploy_mode',
-      const=STAGING,
+      const=_STAGING,
       help='Deploy to staging channel (does not support authenticated '
       'requests).')
   deployment_mode_group.add_argument('--prod',
                                      action='store_const',
                                      dest='deploy_mode',
-                                     const=PROD,
+                                     const=_PROD,
                                      help='Deploy to prod.')
+  parser.add_argument('--download-wasm',
+                      action='store_true',
+                      help='Update local copy of WASM files.')
   options = parser.parse_args()
 
-  message = (f'This script deploys the viewer to {PROD_URL}.\n'
+  message = (f'This script deploys the viewer to {_PROD_URL}.\n'
              'Are you sure you want to continue?')
 
-  if options.deploy_mode != PROD or _Prompt(message):
+  if options.deploy_mode != _PROD or _Prompt(message):
     _CheckFirebaseCLI()
-    if options.deploy_mode != DEV:
+    if options.deploy_mode != _DEV:
       _FirebaseLogin()
     with tempfile.TemporaryDirectory(prefix='firebase-') as project_dir:
-      static_dir = _FirebaseInitProjectDir(project_dir)
-      _CopyStaticFiles(static_dir)
-      _FillInAndCopyTemplates(static_dir)
+      _MaybeDownloadWasmFiles(options.download_wasm)
+      project_static_dir = _FirebaseInitProjectDir(project_dir)
+      shutil.copytree(_STATIC_FILES_DIR, project_static_dir)
+      _FillInAndCopyTemplates(project_static_dir)
       _FirebaseDeploy(project_dir, deploy_mode=options.deploy_mode)
   else:
     print('Nothing was deployed.')
diff --git a/tools/clang/blink_gc_plugin/tests/optional_gc_object.cpp b/tools/clang/blink_gc_plugin/tests/optional_gc_object.cpp
index b348e9c..c8a2e44 100644
--- a/tools/clang/blink_gc_plugin/tests/optional_gc_object.cpp
+++ b/tools/clang/blink_gc_plugin/tests/optional_gc_object.cpp
@@ -15,10 +15,11 @@
 };
 
 void DisallowedUseOfUniquePtr() {
-  [[maybe_unused]] absl::optional<Base> optional_base;  // Must be okay.
+  absl::optional<Base> optional_base;  // Must be okay.
+  (void)optional_base;
 
-  [[maybe_unused]] absl::optional<Derived>
-      optional_derived;  // Must also be okay.
+  absl::optional<Derived> optional_derived;  // Must also be okay.
+  (void)optional_derived;
 
   new absl::optional<Base>;  // New expression with gced optionals are not
                              // allowed.
diff --git a/tools/json_schema_compiler/feature_compiler.py b/tools/json_schema_compiler/feature_compiler.py
index b23dca5..d7241d5 100644
--- a/tools/json_schema_compiler/feature_compiler.py
+++ b/tools/json_schema_compiler/feature_compiler.py
@@ -196,6 +196,9 @@
             'subtype': str
         }
     },
+    'developer_mode_only': {
+        bool: {}
+    },
     'disallow_for_service_workers': {
         bool: {}
     },
diff --git a/tools/json_schema_compiler/feature_compiler_test.py b/tools/json_schema_compiler/feature_compiler_test.py
index 40a7f851..93c4838 100755
--- a/tools/json_schema_compiler/feature_compiler_test.py
+++ b/tools/json_schema_compiler/feature_compiler_test.py
@@ -51,6 +51,7 @@
       ],
       'default_parent': True,
       'dependencies': ['dependency1', 'dependency2'],
+      'developer_mode_only': True,
       'disallow_for_service_workers': True,
       'extension_types': ['extension'],
       'location': 'component',
diff --git a/tools/json_schema_compiler/test/features_test.json b/tools/json_schema_compiler/test/features_test.json
index d042512b..6a57d763 100644
--- a/tools/json_schema_compiler/test/features_test.json
+++ b/tools/json_schema_compiler/test/features_test.json
@@ -67,6 +67,7 @@
     "contexts": ["blessed_extension"],
     "extension_types": ["extension"],
     "allowlist": ["0123456789ABCDEF0123456789ABCDEF01234567"],
+    "developer_mode_only": false,
     "disallow_for_service_workers": false
   }, {
     "channel": "stable",
diff --git a/tools/metrics/histograms/enums.xml b/tools/metrics/histograms/enums.xml
index 22a4d9d2..c96b6ea 100644
--- a/tools/metrics/histograms/enums.xml
+++ b/tools/metrics/histograms/enums.xml
@@ -52113,6 +52113,7 @@
   <int value="-1301167148" label="WebViewZeroCopyVideo:disabled"/>
   <int value="-1298273481" label="http2-grease-settings"/>
   <int value="-1297079591" label="EnableRemovingAllThirdPartyCookies:disabled"/>
+  <int value="-1296499702" label="WebViewEmptyComponent:enabled"/>
   <int value="-1295288468" label="MemoriesDebug:enabled"/>
   <int value="-1294050129" label="ContentFullscreen:disabled"/>
   <int value="-1293987566" label="OmniboxZeroSuggestionsOnNTPRealbox:disabled"/>
@@ -52455,6 +52456,7 @@
       label="OmniboxEnableClipboardProviderImageSuggestions:enabled"/>
   <int value="-1056629722" label="AssistantIntentTranslateInfo:enabled"/>
   <int value="-1056310158" label="disable-memory-pressure-chromeos"/>
+  <int value="-1055902091" label="WebViewEmptyComponent:disabled"/>
   <int value="-1055845287" label="SensorContentSetting:enabled"/>
   <int value="-1055523523" label="ForceMinorVersion100InUserAgent:disabled"/>
   <int value="-1052782474" label="enable-cloud-devices"/>
diff --git a/tools/metrics/histograms/metadata/others/histograms.xml b/tools/metrics/histograms/metadata/others/histograms.xml
index d773e037..1cc2cb0 100644
--- a/tools/metrics/histograms/metadata/others/histograms.xml
+++ b/tools/metrics/histograms/metadata/others/histograms.xml
@@ -5054,23 +5054,8 @@
   <owner>sullivan@chromium.org</owner>
   <summary>
     Milliseconds spent in beforeunload dialog. Does not include time to process
-    beforeunload event in JavaScript (see
-    DocumentEventTiming.BeforeUnloadDuration). Recorded immediately after
-    closing dialog, upon user confirmation to navigate away from the page.
-  </summary>
-</histogram>
-
-<histogram name="DocumentEventTiming.BeforeUnloadDuration" units="microseconds"
-    expires_after="M77">
-  <owner>panicker@chromium.org</owner>
-  <summary>
-    Microseconds spent in beforeunload.
-
-    Warning: This metric may include reports from clients with low-resolution
-    clocks (i.e. on Windows, ref. |TimeTicks::IsHighResolution()|). Such reports
-    will cause this metric to have an abnormal distribution. When considering
-    revising this histogram, see UMA_HISTOGRAM_CUSTOM_MICROSECONDS_TIMES for the
-    solution.
+    beforeunload event in JavaScript. Recorded immediately after closing dialog,
+    upon user confirmation to navigate away from the page.
   </summary>
 </histogram>
 
diff --git a/tools/metrics/histograms/metadata/page/histograms.xml b/tools/metrics/histograms/metadata/page/histograms.xml
index 7429ebb..e900771 100644
--- a/tools/metrics/histograms/metadata/page/histograms.xml
+++ b/tools/metrics/histograms/metadata/page/histograms.xml
@@ -481,12 +481,12 @@
     Measures the maximum cumulative layout shift (bit.ly/cls-explainer) that has
     occurred in the AMP subframe. The gap between two consecutive shifts in a
     window is not bigger than 1000ms and the maximum window size is 5000ms. This
-    metric's integral value is 10x the fractional cumulative layout shift score
-    described in the explainer. If {Bfcache} is triggered, we record the metric
-    when the user navigates away or closes the page after the page was restored
-    from back-forward cache. Otherwise, we record it at the end of the page
-    lifetime, such as when the page is being navigated away from or when a tab
-    is being closed.
+    metric's integral value is 10000x the fractional cumulative layout shift
+    score described in the explainer. If {Bfcache} is triggered, we record the
+    metric when the user navigates away or closes the page after the page was
+    restored from back-forward cache. Otherwise, we record it at the end of the
+    page lifetime, such as when the page is being navigated away from or when a
+    tab is being closed.
 
     Recorded for non same-document AMP navigations in the main frame, at the end
     of the AMP document lifetime, such as when the document is being navigated
@@ -1996,7 +1996,7 @@
     Measures the maximum cumulative layout shift (bit.ly/cls-explainer) that has
     occurred in after back forward cache restore. The gap between two
     consecutive shifts in a window is not bigger than 1000ms and the maximum
-    window size is 5000ms. This metric's integral value is 10x the fractional
+    window size is 5000ms. This metric's integral value is 10000x the fractional
     cumulative layout shift score described in the explainer. If {Bfcache} is
     triggered, we record the metric when the user navigates away or closes the
     page after the page was restored from back-forward cache. Otherwise, we
@@ -2021,12 +2021,12 @@
     Measures the maximum cumulative layout shift (bit.ly/cls-explainer) that has
     occurred in a Window. The gap between two consecutive shifts in a window is
     not bigger than 1000ms and the maximum window size is 5000ms. This metric's
-    integral value is 10x the fractional cumulative layout shift score described
-    in the explainer. If {Bfcache} is triggered, we record the metric when the
-    user navigates away or closes the page after the page was restored from
-    back-forward cache. Otherwise, we record it at the end of the page lifetime,
-    such as when the page is being navigated away from or when a tab is being
-    closed.
+    integral value is 10000x the fractional cumulative layout shift score
+    described in the explainer. If {Bfcache} is triggered, we record the metric
+    when the user navigates away or closes the page after the page was restored
+    from back-forward cache. Otherwise, we record it at the end of the page
+    lifetime, such as when the page is being navigated away from or when a tab
+    is being closed.
 
     Replaces
     PageLoad.LayoutInstability.MaxCumulativeShiftScore.SessionWindow.Gap1000ms.Max5000ms
@@ -2137,17 +2137,6 @@
   </summary>
 </histogram>
 
-<histogram name="PageLoad.PageTiming.NavigationToFailedProvisionalLoad"
-    units="ms" expires_after="M77">
-  <owner>bmcquade@chromium.org</owner>
-  <owner>shivanisha@chromium.org</owner>
-  <summary>
-    Measures the time from navigation timing's navigation start to the time the
-    provisional load failed. Only measures provisional loads that failed in the
-    foreground.
-  </summary>
-</histogram>
-
 <histogram name="PageLoad.PageTiming.NavigationToFirstForeground" units="ms"
     expires_after="2022-06-26">
   <owner>bmcquade@chromium.org</owner>
diff --git a/tools/metrics/histograms/metadata/password/histograms.xml b/tools/metrics/histograms/metadata/password/histograms.xml
index 77ef01e..6d0ddfb 100644
--- a/tools/metrics/histograms/metadata/password/histograms.xml
+++ b/tools/metrics/histograms/metadata/password/histograms.xml
@@ -579,6 +579,16 @@
   </summary>
 </histogram>
 
+<histogram name="PasswordManager.AffiliationFetcher.FailedToParseResponse"
+    enum="Boolean" expires_after="2022-04-01">
+  <owner>vsemeniuk@google.com</owner>
+  <owner>vasilii@chromium.org</owner>
+  <summary>
+    Recorded only when serialized response from the Affiliation Service can't be
+    parsed.
+  </summary>
+</histogram>
+
 <histogram name="PasswordManager.AffiliationFetcher.FetchErrorCode"
     enum="NetErrorCodes" expires_after="2022-07-03">
   <owner>vsemeniuk@google.com</owner>
diff --git a/tools/perf/core/perfetto_binary_roller/binary_deps.json b/tools/perf/core/perfetto_binary_roller/binary_deps.json
index 92dc464..12a9dc2 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 @@
             "remote_path": "perfetto_binaries/trace_processor_shell/linux_arm64/49b4b5dcbc312d8d2c3751cf29238b8efeb4e494/trace_processor_shell"
         },
         "win": {
-            "hash": "b72104a2c634c6a0077ba53e276d3cc8cf0f4879",
-            "remote_path": "perfetto_binaries/trace_processor_shell/win/a0de991bf39c5744ab4eef00eae823c378eb99a9/trace_processor_shell.exe"
+            "hash": "9a67df2e38d08a8179971d986d915479b5e0fb47",
+            "remote_path": "perfetto_binaries/trace_processor_shell/win/383df8c3092e183e0335ba3f1c502cc660c523dc/trace_processor_shell.exe"
         },
         "linux_arm": {
             "hash": "58893933be305d3bfe0a72ebebcacde2ac3ca893",
@@ -14,7 +14,7 @@
         },
         "mac": {
             "hash": "7270d5dd8c35977685779103677c14d9b2839ddc",
-            "remote_path": "perfetto_binaries/trace_processor_shell/mac/a0de991bf39c5744ab4eef00eae823c378eb99a9/trace_processor_shell"
+            "remote_path": "perfetto_binaries/trace_processor_shell/mac/383df8c3092e183e0335ba3f1c502cc660c523dc/trace_processor_shell"
         },
         "mac_arm64": {
             "hash": "c0397e87456ad6c6a7aa0133e5b81c97adbab4ab",
@@ -22,7 +22,7 @@
         },
         "linux": {
             "hash": "ee50898c0a4577b4a7ab121c958522c13dc0ab0c",
-            "remote_path": "perfetto_binaries/trace_processor_shell/linux/a0de991bf39c5744ab4eef00eae823c378eb99a9/trace_processor_shell"
+            "remote_path": "perfetto_binaries/trace_processor_shell/linux/383df8c3092e183e0335ba3f1c502cc660c523dc/trace_processor_shell"
         }
     },
     "power_profile.sql": {
diff --git a/ui/chromeos/translations/ui_chromeos_strings_ka.xtb b/ui/chromeos/translations/ui_chromeos_strings_ka.xtb
index fa4b66cd..9b5a2ae 100644
--- a/ui/chromeos/translations/ui_chromeos_strings_ka.xtb
+++ b/ui/chromeos/translations/ui_chromeos_strings_ka.xtb
@@ -680,6 +680,7 @@
 <translation id="6935521024859866267">გადაბრუნებულად</translation>
 <translation id="6943836128787782965">HTTP-ს შეცდომა</translation>
 <translation id="6949408524333579394">სერბული ტრანსლიტერაცია</translation>
+<translation id="6954309393500027528">ამ ფაილის ჩასმა დაბლოკილია თქვენი ადმინისტრატორის მიერ</translation>
 <translation id="6960565108681981554">არ არის გააქტიურებული. დაუკავშირდით თქვენს ოპერატორს.</translation>
 <translation id="696203921837389374">მობილურ მონაცემებზე სინქრონიზაციის ჩართვა</translation>
 <translation id="6965382102122355670">კარგი</translation>
diff --git a/ui/chromeos/translations/ui_chromeos_strings_km.xtb b/ui/chromeos/translations/ui_chromeos_strings_km.xtb
index 82fb71c5..b2321394 100644
--- a/ui/chromeos/translations/ui_chromeos_strings_km.xtb
+++ b/ui/chromeos/translations/ui_chromeos_strings_km.xtb
@@ -680,6 +680,7 @@
 <translation id="6935521024859866267">ផ្កាប់ចុះក្រោម</translation>
 <translation id="6943836128787782965">HTTP បានបរាជ័យ</translation>
 <translation id="6949408524333579394">ការសរសេរតាម​សូរសព្ទជាភាសាស៊ែប៊ី</translation>
+<translation id="6954309393500027528">ការដាក់​ឯកសារនេះចូល​ត្រូវបាន​ទប់ស្កាត់ដោយ​អ្នកគ្រប់គ្រង​របស់អ្នក</translation>
 <translation id="6960565108681981554">មិនបាន​បើកដំណើរការ​ទេ។ សូម​ទាក់ទង​​ក្រុមហ៊ុន​សេវា​ទូរសព្ទ​របស់​អ្នក។</translation>
 <translation id="696203921837389374">បើកដំណើរការធ្វើសមកម្មនៅលើទិន្នន័យចល័ត</translation>
 <translation id="6965382102122355670">យល់ព្រម</translation>
diff --git a/ui/chromeos/translations/ui_chromeos_strings_ml.xtb b/ui/chromeos/translations/ui_chromeos_strings_ml.xtb
index 543a3f4..1b9f219 100644
--- a/ui/chromeos/translations/ui_chromeos_strings_ml.xtb
+++ b/ui/chromeos/translations/ui_chromeos_strings_ml.xtb
@@ -681,6 +681,7 @@
 <translation id="6935521024859866267">അപ്‌സൈഡ് ഡൗൺ</translation>
 <translation id="6943836128787782965">HTTP പരാജയപ്പെട്ടു</translation>
 <translation id="6949408524333579394">സെർബിയൻ ലിപ്യന്തരണം</translation>
+<translation id="6954309393500027528">ഈ ഫയൽ ഒട്ടിക്കുന്നത് നിങ്ങളുടെ അഡ്‌മിൻ ബ്ലോക്ക് ചെയ്തിരിക്കുന്നു</translation>
 <translation id="6960565108681981554">സജീവമാക്കിയിട്ടില്ല. നിങ്ങളുടെ സേവനദാതാവിനെ ബന്ധപ്പെടുക.</translation>
 <translation id="696203921837389374">മൊബൈൽ ഡാറ്റയിലൂടെയുള്ള സമന്വയം പ്രവർത്തനക്ഷമമാക്കുക</translation>
 <translation id="6965382102122355670">ശരി</translation>
diff --git a/ui/chromeos/translations/ui_chromeos_strings_ne.xtb b/ui/chromeos/translations/ui_chromeos_strings_ne.xtb
index 4d8c228..d766f74 100644
--- a/ui/chromeos/translations/ui_chromeos_strings_ne.xtb
+++ b/ui/chromeos/translations/ui_chromeos_strings_ne.xtb
@@ -680,6 +680,7 @@
 <translation id="6935521024859866267">उल्टो</translation>
 <translation id="6943836128787782965">HTTP प्राप्त असफल भयो</translation>
 <translation id="6949408524333579394">सर्बियाली लिपि रूपान्तरण</translation>
+<translation id="6954309393500027528">तपाईंका एड्मिनले यो फाइल पेस्ट गर्ने सुविधा ब्लक गरेका छन्</translation>
 <translation id="6960565108681981554">सक्रिय गरिएको छैन। आफ्नो सेवा प्रदायकमा सम्पर्क गर्नुहोस्।</translation>
 <translation id="696203921837389374">मोबाइल डेटामा सिंक सक्षम गर्नुहोस्</translation>
 <translation id="6965382102122355670">ठिक छ</translation>
diff --git a/ui/chromeos/translations/ui_chromeos_strings_te.xtb b/ui/chromeos/translations/ui_chromeos_strings_te.xtb
index b0c7c90..3cc7f82e 100644
--- a/ui/chromeos/translations/ui_chromeos_strings_te.xtb
+++ b/ui/chromeos/translations/ui_chromeos_strings_te.xtb
@@ -681,6 +681,7 @@
 <translation id="6935521024859866267">తలక్రిందులుగా</translation>
 <translation id="6943836128787782965">HTTP పొందడంలో విఫలమైంది</translation>
 <translation id="6949408524333579394">సెర్బియన్ ట్రాన్స్‌లిటరేషన్</translation>
+<translation id="6954309393500027528">ఈ ఫైల్‌ను పేస్ట్ చేయడాన్ని మీ అడ్మినిస్ట్రేటర్ బ్లాక్ చేశారు</translation>
 <translation id="6960565108681981554">యాక్టివేట్ చేయబడలేదు. మీ క్యారియర్‌ను సంప్రదించండి.</translation>
 <translation id="696203921837389374">మొబైల్ డేటా ఉపయోగించి సింక్ చేయడం ప్రారంభించు</translation>
 <translation id="6965382102122355670">సరే</translation>
diff --git a/ui/chromeos/translations/ui_chromeos_strings_th.xtb b/ui/chromeos/translations/ui_chromeos_strings_th.xtb
index 37e199e..fbca5df 100644
--- a/ui/chromeos/translations/ui_chromeos_strings_th.xtb
+++ b/ui/chromeos/translations/ui_chromeos_strings_th.xtb
@@ -681,6 +681,7 @@
 <translation id="6935521024859866267">กลับหัว</translation>
 <translation id="6943836128787782965">การรับ HTTP ล้มเหลว</translation>
 <translation id="6949408524333579394">เซอร์เบีย (การทับศัพท์)</translation>
+<translation id="6954309393500027528">ผู้ดูแลระบบได้บล็อกการวางไฟล์นี้</translation>
 <translation id="6960565108681981554">ไม่ได้เปิดการใช้งาน โปรดติดต่อผู้ให้บริการเครือข่าย</translation>
 <translation id="696203921837389374">เปิดใช้การซิงค์ผ่านข้อมูลมือถือ</translation>
 <translation id="6965382102122355670">ตกลง</translation>
diff --git a/ui/chromeos/translations/ui_chromeos_strings_uz.xtb b/ui/chromeos/translations/ui_chromeos_strings_uz.xtb
index 9c81b883..c803430a 100644
--- a/ui/chromeos/translations/ui_chromeos_strings_uz.xtb
+++ b/ui/chromeos/translations/ui_chromeos_strings_uz.xtb
@@ -680,6 +680,7 @@
 <translation id="6935521024859866267">Oyog‘i osmonda</translation>
 <translation id="6943836128787782965">HTTP GET so‘rovida xatolik yuz berdi</translation>
 <translation id="6949408524333579394">Serb (transliteratsiya)</translation>
+<translation id="6954309393500027528">Bu faylning joylanishi administrator tomonidan bloklandi</translation>
 <translation id="6960565108681981554">Faollashtirilmagan. Aloqa operatoringizga murojaat qiling.</translation>
 <translation id="696203921837389374">Mobil internet orqali sinxronlash parametrini yoqish</translation>
 <translation id="6965382102122355670">OK</translation>
diff --git a/ui/compositor/layer_unittest.cc b/ui/compositor/layer_unittest.cc
index fff81a2a..e56abc6 100644
--- a/ui/compositor/layer_unittest.cc
+++ b/ui/compositor/layer_unittest.cc
@@ -1055,7 +1055,7 @@
   l1->SetSubtreeCaptureId(kSubtreeCaptureId);
 
   EXPECT_EQ(gfx::Point3F(), l1->cc_layer_for_testing()->transform_origin());
-  EXPECT_TRUE(l1->cc_layer_for_testing()->DrawsContent());
+  EXPECT_TRUE(l1->cc_layer_for_testing()->draws_content());
   EXPECT_TRUE(l1->cc_layer_for_testing()->contents_opaque());
   EXPECT_TRUE(l1->cc_layer_for_testing()->hide_layer_and_subtree());
   EXPECT_EQ(gfx::Size(4, 5), l1->cc_layer_for_testing()->bounds());
@@ -1080,7 +1080,7 @@
   EXPECT_NE(before_layer, l1->cc_layer_for_testing());
 
   EXPECT_EQ(gfx::Point3F(), l1->cc_layer_for_testing()->transform_origin());
-  EXPECT_TRUE(l1->cc_layer_for_testing()->DrawsContent());
+  EXPECT_TRUE(l1->cc_layer_for_testing()->draws_content());
   EXPECT_TRUE(l1->cc_layer_for_testing()->contents_opaque());
   EXPECT_TRUE(l1->cc_layer_for_testing()->hide_layer_and_subtree());
   EXPECT_EQ(gfx::Size(4, 5), l1->cc_layer_for_testing()->bounds());
@@ -1105,7 +1105,7 @@
   // Show solid color instead.
   l1->SetShowSolidColorContent();
   EXPECT_EQ(gfx::Point3F(), l1->cc_layer_for_testing()->transform_origin());
-  EXPECT_TRUE(l1->cc_layer_for_testing()->DrawsContent());
+  EXPECT_TRUE(l1->cc_layer_for_testing()->draws_content());
   EXPECT_TRUE(l1->cc_layer_for_testing()->contents_opaque());
   EXPECT_TRUE(l1->cc_layer_for_testing()->hide_layer_and_subtree());
   EXPECT_EQ(gfx::Size(4, 5), l1->cc_layer_for_testing()->bounds());
@@ -1128,7 +1128,7 @@
   EXPECT_NE(before_layer, l1->cc_layer_for_testing());
 
   EXPECT_EQ(gfx::Point3F(), l1->cc_layer_for_testing()->transform_origin());
-  EXPECT_TRUE(l1->cc_layer_for_testing()->DrawsContent());
+  EXPECT_TRUE(l1->cc_layer_for_testing()->draws_content());
   EXPECT_TRUE(l1->cc_layer_for_testing()->contents_opaque());
   EXPECT_TRUE(l1->cc_layer_for_testing()->hide_layer_and_subtree());
   EXPECT_EQ(gfx::Size(4, 5), l1->cc_layer_for_testing()->bounds());
diff --git a/ui/events/ozone/evdev/BUILD.gn b/ui/events/ozone/evdev/BUILD.gn
index 063ea79..8e6a5774 100644
--- a/ui/events/ozone/evdev/BUILD.gn
+++ b/ui/events/ozone/evdev/BUILD.gn
@@ -184,7 +184,6 @@
   }
 
   visibility += [
-    "//ash/webui/diagnostics_ui/*",
     "//ui/chromeos/*",
     "//ui/ozone/*",
   ]
diff --git a/ui/gl/init/create_gr_gl_interface.cc b/ui/gl/init/create_gr_gl_interface.cc
index b35f4b0..b44b09def 100644
--- a/ui/gl/init/create_gr_gl_interface.cc
+++ b/ui/gl/init/create_gr_gl_interface.cc
@@ -7,6 +7,7 @@
 #include "base/metrics/histogram_macros.h"
 #include "base/no_destructor.h"
 #include "base/trace_event/trace_event.h"
+#include "base/traits_bag.h"
 #include "build/build_config.h"
 #include "ui/gl/gl_bindings.h"
 #include "ui/gl/gl_implementation.h"
@@ -105,103 +106,102 @@
 namespace {
 
 template <typename R, typename... Args>
-GrGLFunction<R GR_GL_FUNCTION_TYPE(Args...)> bind(R (gl::GLApi::*func)(Args...),
-                                                  gl::GLApi* api) {
+GrGLFunction<R GR_GL_FUNCTION_TYPE(Args...)> bind_with_api(
+    R (gl::GLApi::*func)(Args...),
+    gl::GLApi* api) {
   return [func, api](Args... args) { return (api->*func)(args...); };
 }
 
-template <typename R, typename... Args>
-GrGLFunction<R GR_GL_FUNCTION_TYPE(Args...)> bind_slow(
+struct FlushHelper {
+  FlushHelper() {
+    TRACE_EVENT0("gpu",
+                 "CreateGrGLInterface - bind_with_flush_on_mac - beforefunc");
+    glFlush();
+  }
+  ~FlushHelper() {
+    TRACE_EVENT0("gpu",
+                 "CreateGrGLInterface - bind_with_flush_on_mac - afterfunc");
+    glFlush();
+  }
+};
+
+template <bool droppable,
+          bool slow,
+          bool need_flush,
+          typename R,
+          typename... Args>
+GrGLFunction<R GR_GL_FUNCTION_TYPE(Args...)> bind_impl(
     R(GL_BINDING_CALL* func)(Args...),
     gl::ProgressReporter* progress_reporter) {
-  if (!progress_reporter)
-    return func;
-  return [func, progress_reporter](Args... args) {
-    gl::ScopedProgressReporter scoped_reporter(progress_reporter);
-    return func(args...);
-  };
-}
+  // Don't wrap missing functions.
+  if (!func)
+    return nullptr;
 
-template <bool droppable_call, typename R, typename... Args>
-GrGLFunction<R GR_GL_FUNCTION_TYPE(Args...)> maybe_drop_call(
-    R(GL_BINDING_CALL* func)(Args...)) {
-  // One branch is optimized away because droppable_call is set at compile time.
-  if (droppable_call) {
-    return [func](Args... args) {
-      if (!HasInitializedNullDrawGLBindings())
-        func(args...);
+  constexpr bool need_wrap = droppable || slow || need_flush;
+  if constexpr (need_wrap) {
+    return [func, progress_reporter](Args... args) -> R {
+      if constexpr (droppable) {
+        if (HasInitializedNullDrawGLBindings())
+          return R();
+      }
+
+      absl::optional<gl::ScopedProgressReporter> scoped_reporter;
+      // Not using constexpr if here to avoid unused progress_reporter warning.
+      if (slow && progress_reporter)
+        scoped_reporter.emplace(progress_reporter);
+
+      absl::optional<FlushHelper> flush_helper;
+      if constexpr (need_flush)
+        flush_helper.emplace();
+      return func(args...);
     };
   } else {
     return func;
   }
 }
 
-template <bool droppable_call = false, typename R, typename... Args>
-GrGLFunction<R GR_GL_FUNCTION_TYPE(Args...)> bind_slow_on_mac(
-    R(GL_BINDING_CALL* func)(Args...),
-    gl::ProgressReporter* progress_reporter) {
-#if BUILDFLAG(IS_APPLE)
-  if (!progress_reporter) {
-    return maybe_drop_call<droppable_call>(func);
-  }
-  return [func, progress_reporter](Args... args) {
-    gl::ScopedProgressReporter scoped_reporter(progress_reporter);
-    // Conditional may be optimized out because droppable_call is set at compile
-    // time.
-    if (!droppable_call || !HasInitializedNullDrawGLBindings())
-      return func(args...);
-  };
-#endif
-  return maybe_drop_call<droppable_call>(func);
-}
+// Call can be dropped for tests that setup null draw gl bindings.
+struct Droppable {};
+// Call needs to be wrapped with ProgressReporter.
+struct Slow {};
+// Call needs to be wrapped with glFlush call, used on MacOS.
+struct NeedFlush {};
 
-template <bool droppable_call = false, typename R, typename... Args>
-GrGLFunction<R GR_GL_FUNCTION_TYPE(Args...)> bind_with_flush_on_mac(
-    R(GL_BINDING_CALL* func)(Args...),
-    bool is_angle) {
 #if BUILDFLAG(IS_APPLE)
-  // If running on Apple silicon or ANGLE, regardless of the architecture,
-  // disable this workaround.  See https://crbug.com/1131312.
-  const bool needs_flush =
-      base::mac::GetCPUType() == base::mac::CPUType::kIntel && !is_angle;
-  if (needs_flush) {
-    return [func](Args... args) {
-      // Conditional may be optimized out because droppable_call is set at
-      // compile time.
-      if (!droppable_call || !HasInitializedNullDrawGLBindings()) {
-        {
-          TRACE_EVENT0(
-              "gpu",
-              "CreateGrGLInterface - bind_with_flush_on_mac - beforefunc");
-          glFlush();
-        }
-        func(args...);
-        {
-          TRACE_EVENT0(
-              "gpu",
-              "CreateGrGLInterface - bind_with_flush_on_mac - afterfunc");
-          glFlush();
-        }
-      }
-    };
-  }
+using SlowOnMac = Slow;
+using NeedFlushOnMac = NeedFlush;
+#else
+using SlowOnMac = void;
+using NeedFlushOnMac = void;
 #endif
-  return maybe_drop_call<droppable_call>(func);
-}
 
-template <bool droppable_call = false, typename R, typename... Args>
-GrGLFunction<R GR_GL_FUNCTION_TYPE(Args...)> bind_slow_with_flush_on_mac(
-    R(GL_BINDING_CALL* func)(Args...),
-    gl::ProgressReporter* progress_reporter,
-    bool is_angle) {
-  if (!progress_reporter) {
-    return bind_with_flush_on_mac<droppable_call>(func, is_angle);
+template <typename... Traits>
+struct BindWithTraits {
+  template <typename R, typename... Args>
+  static GrGLFunction<R GR_GL_FUNCTION_TYPE(Args...)> bind(
+      R(GL_BINDING_CALL* func)(Args...),
+      gl::ProgressReporter* progress_reporter,
+      bool is_angle) {
+    constexpr bool droppable =
+        base::trait_helpers::HasTrait<Droppable, Traits...>();
+    constexpr bool slow = base::trait_helpers::HasTrait<Slow, Traits...>();
+    constexpr bool need_flush =
+        base::trait_helpers::HasTrait<NeedFlush, Traits...>();
+
+#if BUILDFLAG(IS_APPLE)
+    if (need_flush && base::mac::GetCPUType() == base::mac::CPUType::kIntel &&
+        !is_angle) {
+      return bind_impl<droppable, slow, /*need_flush=*/true>(func,
+                                                             progress_reporter);
+    } else {
+      return bind_impl<droppable, slow, /*need_flush=*/false>(
+          func, progress_reporter);
+    }
+#else
+    return bind_impl<droppable, slow, need_flush>(func, progress_reporter);
+#endif
   }
-  return [func, progress_reporter, is_angle](Args... args) {
-    gl::ScopedProgressReporter scoped_reporter(progress_reporter);
-    return bind_with_flush_on_mac<droppable_call>(func, is_angle)(args...);
-  };
-}
+};
 
 const GLubyte* GetStringHook(const char* gl_version_string,
                              const char* glsl_version_string,
@@ -276,11 +276,11 @@
       return GetStringHook(version.gl_version, version.glsl_version, name);
     };
   } else {
-    get_string = bind(&gl::GLApi::glGetStringFn, api);
+    get_string = bind_with_api(&gl::GLApi::glGetStringFn, api);
   }
 
-  auto get_stringi = bind(&gl::GLApi::glGetStringiFn, api);
-  auto get_integerv = bind(&gl::GLApi::glGetIntegervFn, api);
+  auto get_stringi = bind_with_api(&gl::GLApi::glGetStringiFn, api);
+  auto get_integerv = bind_with_api(&gl::GLApi::glGetIntegervFn, api);
 
   GrGLExtensions extensions;
   if (!extensions.init(standard, get_string, get_stringi, get_integerv)) {
@@ -290,41 +290,38 @@
   for (const char* extension : kBlocklistExtensions)
     extensions.remove(extension);
 
+#define BIND_EXTENSION(skia_name, chrome_name, ...)            \
+  functions->f##skia_name = BindWithTraits<__VA_ARGS__>::bind( \
+      gl->gl##chrome_name##Fn, progress_reporter, version_info.is_angle)
+#define BIND(fname, ...) BIND_EXTENSION(fname, fname, __VA_ARGS__)
+
   GrGLInterface* interface = new GrGLInterface();
   GrGLInterface::Functions* functions = &interface->fFunctions;
-  functions->fActiveTexture = gl->glActiveTextureFn;
-  functions->fAttachShader = gl->glAttachShaderFn;
-  functions->fBindAttribLocation = gl->glBindAttribLocationFn;
-  functions->fBindBuffer = gl->glBindBufferFn;
-  functions->fBindFragDataLocation = gl->glBindFragDataLocationFn;
-  functions->fBindUniformLocation = gl->glBindUniformLocationCHROMIUMFn;
-  functions->fBeginQuery = gl->glBeginQueryFn;
-  functions->fBindSampler = gl->glBindSamplerFn;
-  functions->fBindTexture =
-      bind_slow_on_mac(gl->glBindTextureFn, progress_reporter);
-
-  functions->fBlendBarrier = gl->glBlendBarrierKHRFn;
-
-  functions->fBlendColor = gl->glBlendColorFn;
-  functions->fBlendEquation = gl->glBlendEquationFn;
-  functions->fBlendFunc = gl->glBlendFuncFn;
-  functions->fBufferData = gl->glBufferDataFn;
-  functions->fBufferSubData = gl->glBufferSubDataFn;
-  functions->fClear = bind_slow_with_flush_on_mac<true>(
-      gl->glClearFn, progress_reporter, version_info.is_angle);
-  functions->fClearColor = gl->glClearColorFn;
-  functions->fClearStencil = gl->glClearStencilFn;
-  functions->fClearTexImage = gl->glClearTexImageFn;
-  functions->fClearTexSubImage = gl->glClearTexSubImageFn;
-  functions->fColorMask = gl->glColorMaskFn;
-  functions->fCompileShader =
-      bind_slow(gl->glCompileShaderFn, progress_reporter);
-  functions->fCompressedTexImage2D = bind_slow_with_flush_on_mac(
-      gl->glCompressedTexImage2DFn, progress_reporter, version_info.is_angle);
-  functions->fCompressedTexSubImage2D =
-      bind_slow(gl->glCompressedTexSubImage2DFn, progress_reporter);
-  functions->fCopyTexSubImage2D =
-      bind_slow(gl->glCopyTexSubImage2DFn, progress_reporter);
+  BIND(ActiveTexture);
+  BIND(AttachShader);
+  BIND(BindAttribLocation);
+  BIND(BindBuffer);
+  BIND(BindFragDataLocation);
+  BIND_EXTENSION(BindUniformLocation, BindUniformLocationCHROMIUM);
+  BIND(BeginQuery);
+  BIND(BindSampler);
+  BIND(BindTexture, SlowOnMac);
+  BIND_EXTENSION(BlendBarrier, BlendBarrierKHR);
+  BIND(BlendColor);
+  BIND(BlendEquation);
+  BIND(BlendFunc);
+  BIND(BufferData);
+  BIND(BufferSubData);
+  BIND(Clear, Droppable, SlowOnMac, NeedFlushOnMac);
+  BIND(ClearColor);
+  BIND(ClearStencil);
+  BIND(ClearTexImage);
+  BIND(ClearTexSubImage);
+  BIND(ColorMask);
+  BIND(CompileShader, Slow);
+  BIND(CompressedTexImage2D, Slow, NeedFlushOnMac);
+  BIND(CompressedTexSubImage2D, Slow);
+  BIND(CopyTexSubImage2D, Slow);
 #if BUILDFLAG(IS_APPLE)
   functions->fCreateProgram = [func = gl->glCreateProgramFn]() {
     auto& program_create_times = GetProgramCreateTimesMap();
@@ -333,12 +330,11 @@
     return program;
   };
 #else
-  functions->fCreateProgram = gl->glCreateProgramFn;
+  BIND(CreateProgram);
 #endif
-  functions->fCreateShader = gl->glCreateShaderFn;
-  functions->fCullFace = gl->glCullFaceFn;
-  functions->fDeleteBuffers =
-      bind_slow(gl->glDeleteBuffersARBFn, progress_reporter);
+  BIND(CreateShader);
+  BIND(CullFace);
+  BIND_EXTENSION(DeleteBuffers, DeleteBuffersARB, Slow);
 #if BUILDFLAG(IS_APPLE)
   functions->fDeleteProgram = [func = gl->glDeleteProgramFn](GLuint program) {
     auto& program_create_times = GetProgramCreateTimesMap();
@@ -346,69 +342,60 @@
     func(program);
   };
 #else
-  functions->fDeleteProgram =
-      bind_slow(gl->glDeleteProgramFn, progress_reporter);
+  BIND(DeleteProgram, Slow);
 #endif
-  functions->fDeleteQueries = gl->glDeleteQueriesFn;
-  functions->fDeleteSamplers = gl->glDeleteSamplersFn;
-  functions->fDeleteShader = bind_slow(gl->glDeleteShaderFn, progress_reporter);
-  functions->fDeleteTextures = bind_slow_with_flush_on_mac(
-      gl->glDeleteTexturesFn, progress_reporter, version_info.is_angle);
-  functions->fDepthMask = gl->glDepthMaskFn;
-  functions->fDisable = gl->glDisableFn;
-  functions->fDisableVertexAttribArray = gl->glDisableVertexAttribArrayFn;
-  functions->fDiscardFramebuffer = gl->glDiscardFramebufferEXTFn;
-  functions->fDrawArrays =
-      bind_slow_on_mac<true>(gl->glDrawArraysFn, progress_reporter);
-  functions->fDrawBuffer = gl->glDrawBufferFn;
-  functions->fDrawBuffers = gl->glDrawBuffersARBFn;
-  functions->fDrawElements =
-      bind_slow_on_mac<true>(gl->glDrawElementsFn, progress_reporter);
-
-  functions->fDrawArraysInstanced = bind_slow_on_mac<true>(
-      gl->glDrawArraysInstancedANGLEFn, progress_reporter);
-  functions->fDrawArraysInstancedBaseInstance = bind_slow_on_mac<true>(
-      gl->glDrawArraysInstancedBaseInstanceANGLEFn, progress_reporter);
-  functions->fMultiDrawArraysInstancedBaseInstance = bind_slow_on_mac<true>(
-      gl->glMultiDrawArraysInstancedBaseInstanceANGLEFn, progress_reporter);
-  functions->fDrawElementsInstanced = bind_slow_on_mac<true>(
-      gl->glDrawElementsInstancedANGLEFn, progress_reporter);
-  functions->fDrawElementsInstancedBaseVertexBaseInstance =
-      bind_slow_on_mac<true>(
-          gl->glDrawElementsInstancedBaseVertexBaseInstanceANGLEFn,
-          progress_reporter);
-  functions->fMultiDrawElementsInstancedBaseVertexBaseInstance =
-      bind_slow_on_mac<true>(
-          gl->glMultiDrawElementsInstancedBaseVertexBaseInstanceANGLEFn,
-          progress_reporter);
+  BIND(DeleteQueries);
+  BIND(DeleteSamplers);
+  BIND(DeleteShader, Slow);
+  BIND(DeleteTextures, Slow, NeedFlushOnMac);
+  BIND(DepthMask);
+  BIND(Disable);
+  BIND(DisableVertexAttribArray);
+  BIND_EXTENSION(DiscardFramebuffer, DiscardFramebufferEXT);
+  BIND(DrawArrays, Droppable, SlowOnMac);
+  BIND(DrawBuffer);
+  BIND_EXTENSION(DrawBuffers, DrawBuffersARB);
+  BIND(DrawElements, Droppable, SlowOnMac);
+  BIND_EXTENSION(DrawArraysInstanced, DrawArraysInstancedANGLE, Droppable,
+                 SlowOnMac);
+  BIND_EXTENSION(DrawArraysInstancedBaseInstance,
+                 DrawArraysInstancedBaseInstanceANGLE, Droppable, SlowOnMac);
+  BIND_EXTENSION(MultiDrawArraysInstancedBaseInstance,
+                 MultiDrawArraysInstancedBaseInstanceANGLE, Droppable,
+                 SlowOnMac);
+  BIND_EXTENSION(DrawElementsInstanced, DrawElementsInstancedANGLE, Droppable,
+                 SlowOnMac);
+  BIND_EXTENSION(DrawElementsInstancedBaseVertexBaseInstance,
+                 DrawElementsInstancedBaseVertexBaseInstanceANGLE, Droppable,
+                 SlowOnMac);
+  BIND_EXTENSION(MultiDrawElementsInstancedBaseVertexBaseInstance,
+                 MultiDrawElementsInstancedBaseVertexBaseInstanceANGLE,
+                 Droppable, SlowOnMac);
 
   // GL 4.0 or GL_ARB_draw_indirect or ES 3.1
-  functions->fDrawArraysIndirect =
-      bind_slow_on_mac<true>(gl->glDrawArraysIndirectFn, progress_reporter);
-  functions->fDrawElementsIndirect =
-      bind_slow_on_mac<true>(gl->glDrawElementsIndirectFn, progress_reporter);
+  BIND(DrawArraysIndirect, Droppable, SlowOnMac);
+  BIND(DrawElementsIndirect, Droppable, SlowOnMac);
 
-  functions->fDrawRangeElements =
-      bind_slow_on_mac<true>(gl->glDrawRangeElementsFn, progress_reporter);
-  functions->fEnable = gl->glEnableFn;
-  functions->fEnableVertexAttribArray = gl->glEnableVertexAttribArrayFn;
-  functions->fEndQuery = gl->glEndQueryFn;
-  functions->fFinish = bind_slow(gl->glFinishFn, progress_reporter);
-  functions->fFlush = bind_slow(gl->glFlushFn, progress_reporter);
-  functions->fFrontFace = gl->glFrontFaceFn;
-  functions->fGenBuffers = gl->glGenBuffersARBFn;
-  functions->fGetBufferParameteriv = gl->glGetBufferParameterivFn;
-  functions->fGetError = gl->glGetErrorFn;
-  functions->fGetIntegerv = gl->glGetIntegervFn;
-  functions->fGetMultisamplefv = gl->glGetMultisamplefvFn;
-  functions->fGetQueryObjectiv = gl->glGetQueryObjectivFn;
-  functions->fGetQueryObjectuiv = gl->glGetQueryObjectuivFn;
-  functions->fGetQueryObjecti64v = gl->glGetQueryObjecti64vFn;
-  functions->fGetQueryObjectui64v = gl->glGetQueryObjectui64vFn;
-  functions->fQueryCounter = gl->glQueryCounterFn;
-  functions->fGetQueryiv = gl->glGetQueryivFn;
-  functions->fGetProgramBinary = gl->glGetProgramBinaryFn;
-  functions->fGetProgramInfoLog = gl->glGetProgramInfoLogFn;
+  BIND(DrawRangeElements, Droppable, SlowOnMac);
+  BIND(Enable);
+  BIND(EnableVertexAttribArray);
+  BIND(EndQuery);
+  BIND(Finish, Slow);
+  BIND(Flush, Slow);
+  BIND(FrontFace);
+  BIND_EXTENSION(GenBuffers, GenBuffersARB);
+  BIND(GetBufferParameteriv);
+  BIND(GetError);
+  BIND(GetIntegerv);
+  BIND(GetMultisamplefv);
+  BIND(GetQueryObjectiv);
+  BIND(GetQueryObjectuiv);
+  BIND(GetQueryObjecti64v);
+  BIND(GetQueryObjectui64v);
+  BIND(QueryCounter);
+  BIND(GetQueryiv);
+  BIND(GetProgramBinary);
+  BIND(GetProgramInfoLog);
 #if BUILDFLAG(IS_APPLE)
   functions->fGetProgramiv = [func = gl->glGetProgramivFn](
                                  GLuint program, GLenum pname, GLint* params) {
@@ -424,295 +411,271 @@
     }
   };
 #else
-  functions->fGetProgramiv = gl->glGetProgramivFn;
+  BIND(GetProgramiv);
 #endif
-  functions->fGetShaderInfoLog = gl->glGetShaderInfoLogFn;
-  functions->fGetShaderiv = gl->glGetShaderivFn;
+  BIND(GetShaderInfoLog);
+  BIND(GetShaderiv);
   functions->fGetString = get_string;
-  functions->fGetStringi = gl->glGetStringiFn;
-  functions->fGetShaderPrecisionFormat = gl->glGetShaderPrecisionFormatFn;
-  functions->fGetTexLevelParameteriv = gl->glGetTexLevelParameterivFn;
-  functions->fGenQueries = gl->glGenQueriesFn;
-  functions->fGenSamplers = gl->glGenSamplersFn;
-  functions->fGenTextures = gl->glGenTexturesFn;
-  functions->fGetUniformLocation = gl->glGetUniformLocationFn;
-  functions->fIsTexture = gl->glIsTextureFn;
-  functions->fLineWidth = gl->glLineWidthFn;
-  functions->fLinkProgram = bind_slow(gl->glLinkProgramFn, progress_reporter);
-  functions->fMapBuffer = gl->glMapBufferFn;
+  BIND(GetStringi);
+  BIND(GetShaderPrecisionFormat);
+  BIND(GetTexLevelParameteriv);
+  BIND(GenQueries);
+  BIND(GenSamplers);
+  BIND(GenTextures);
+  BIND(GetUniformLocation);
+  BIND(IsTexture);
+  BIND(LineWidth);
+  BIND(LinkProgram, Slow);
+  BIND(MapBuffer);
 
   // GL 4.3 or GL_ARB_multi_draw_indirect or ES+GL_EXT_multi_draw_indirect
-  // functions->fMultiDrawArraysIndirect = gl->glMultiDrawArraysIndirectFn;
-  // functions->fMultiDrawElementsIndirect = gl->glMultiDrawElementsIndirectFn;
+  // BIND(MultiDrawArraysIndirect);
+  // BIND(MultiDrawElementsIndirect);
 
-  functions->fPatchParameteri = gl->glPatchParameteriFn;
-  functions->fPixelStorei = gl->glPixelStoreiFn;
-  functions->fPolygonMode = gl->glPolygonModeFn;
+  BIND(PatchParameteri);
+  BIND(PixelStorei);
+  BIND(PolygonMode);
+
+  // TODO(vasilyt): Figure out why BIND(fProgramBinary) doesn't fit in
+  // GrFunction
   functions->fProgramBinary = gl->glProgramBinaryFn;
-  functions->fProgramParameteri = gl->glProgramParameteriFn;
+
+  BIND(ProgramParameteri);
 
   // GL_EXT_raster_multisample
-  // functions->fRasterSamples = gl->glRasterSamplesEXTFn;
+  // BIND_EXTENSION(RasterSamples , RasterSamplesEXT);
 
-  functions->fReadBuffer = gl->glReadBufferFn;
-  functions->fReadPixels = gl->glReadPixelsFn;
-  functions->fSamplerParameteri = gl->glSamplerParameteriFn;
-  functions->fSamplerParameteriv = gl->glSamplerParameterivFn;
-  functions->fScissor = gl->glScissorFn;
-  functions->fShaderSource = gl->glShaderSourceFn;
-  functions->fStencilFunc = gl->glStencilFuncFn;
-  functions->fStencilFuncSeparate = gl->glStencilFuncSeparateFn;
-  functions->fStencilMask = gl->glStencilMaskFn;
-  functions->fStencilMaskSeparate = gl->glStencilMaskSeparateFn;
-  functions->fStencilOp = gl->glStencilOpFn;
-  functions->fStencilOpSeparate = gl->glStencilOpSeparateFn;
-  functions->fTexBuffer = gl->glTexBufferFn;
-  functions->fTexBufferRange = gl->glTexBufferRangeFn;
-  functions->fTexImage2D = bind_slow_with_flush_on_mac(
-      gl->glTexImage2DFn, progress_reporter, version_info.is_angle);
-  functions->fTexParameterf = gl->glTexParameterfFn;
-  functions->fTexParameterfv = gl->glTexParameterfvFn;
-  functions->fTexParameteri = gl->glTexParameteriFn;
-  functions->fTexParameteriv = gl->glTexParameterivFn;
-  functions->fTexStorage2D = bind_slow_with_flush_on_mac(
-      gl->glTexStorage2DEXTFn, progress_reporter, version_info.is_angle);
-  functions->fTexSubImage2D = bind_slow_with_flush_on_mac(
-      gl->glTexSubImage2DFn, progress_reporter, version_info.is_angle);
+  BIND(ReadBuffer);
+  BIND(ReadPixels);
+  BIND(SamplerParameteri);
+  BIND(SamplerParameteriv);
+  BIND(Scissor);
+  BIND(ShaderSource);
+  BIND(StencilFunc);
+  BIND(StencilFuncSeparate);
+  BIND(StencilMask);
+  BIND(StencilMaskSeparate);
+  BIND(StencilOp);
+  BIND(StencilOpSeparate);
+  BIND(TexBuffer);
+  BIND(TexBufferRange);
+  BIND(TexImage2D, Slow, NeedFlushOnMac);
+  BIND(TexParameterf);
+  BIND(TexParameterfv);
+  BIND(TexParameteri);
+  BIND(TexParameteriv);
+  BIND_EXTENSION(TexStorage2D, TexStorage2DEXT, Slow, NeedFlushOnMac);
+  BIND(TexSubImage2D, Slow, NeedFlushOnMac);
 
   // GL 4.5 or GL_ARB_texture_barrier or GL_NV_texture_barrier
-  // functions->fTextureBarrier = gl->glTextureBarrierFn;
-  // functions->fTextureBarrier = gl->glTextureBarrierNVFn;
+  // BIND(TextureBarrier);
+  // BIND_EXTENSION(TextureBarrier , TextureBarrierNV);
 
-  functions->fUniform1f = gl->glUniform1fFn;
-  functions->fUniform1i = gl->glUniform1iFn;
-  functions->fUniform1fv = gl->glUniform1fvFn;
-  functions->fUniform1iv = gl->glUniform1ivFn;
-  functions->fUniform2f = gl->glUniform2fFn;
-  functions->fUniform2i = gl->glUniform2iFn;
-  functions->fUniform2fv = gl->glUniform2fvFn;
-  functions->fUniform2iv = gl->glUniform2ivFn;
-  functions->fUniform3f = gl->glUniform3fFn;
-  functions->fUniform3i = gl->glUniform3iFn;
-  functions->fUniform3fv = gl->glUniform3fvFn;
-  functions->fUniform3iv = gl->glUniform3ivFn;
-  functions->fUniform4f = gl->glUniform4fFn;
-  functions->fUniform4i = gl->glUniform4iFn;
-  functions->fUniform4fv = gl->glUniform4fvFn;
-  functions->fUniform4iv = gl->glUniform4ivFn;
-  functions->fUniformMatrix2fv = gl->glUniformMatrix2fvFn;
-  functions->fUniformMatrix3fv = gl->glUniformMatrix3fvFn;
-  functions->fUniformMatrix4fv = gl->glUniformMatrix4fvFn;
-  functions->fUnmapBuffer = gl->glUnmapBufferFn;
-  functions->fUseProgram = gl->glUseProgramFn;
-  functions->fVertexAttrib1f = gl->glVertexAttrib1fFn;
-  functions->fVertexAttrib2fv = gl->glVertexAttrib2fvFn;
-  functions->fVertexAttrib3fv = gl->glVertexAttrib3fvFn;
-  functions->fVertexAttrib4fv = gl->glVertexAttrib4fvFn;
+  BIND(Uniform1f);
+  BIND(Uniform1i);
+  BIND(Uniform1fv);
+  BIND(Uniform1iv);
+  BIND(Uniform2f);
+  BIND(Uniform2i);
+  BIND(Uniform2fv);
+  BIND(Uniform2iv);
+  BIND(Uniform3f);
+  BIND(Uniform3i);
+  BIND(Uniform3fv);
+  BIND(Uniform3iv);
+  BIND(Uniform4f);
+  BIND(Uniform4i);
+  BIND(Uniform4fv);
+  BIND(Uniform4iv);
+  BIND(UniformMatrix2fv);
+  BIND(UniformMatrix3fv);
+  BIND(UniformMatrix4fv);
+  BIND(UnmapBuffer);
+  BIND(UseProgram);
+  BIND(VertexAttrib1f);
+  BIND(VertexAttrib2fv);
+  BIND(VertexAttrib3fv);
+  BIND(VertexAttrib4fv);
 
-  functions->fVertexAttribDivisor = gl->glVertexAttribDivisorANGLEFn;
+  BIND_EXTENSION(VertexAttribDivisor, VertexAttribDivisorANGLE);
 
-  functions->fVertexAttribIPointer = gl->glVertexAttribIPointerFn;
+  BIND(VertexAttribIPointer);
 
-  functions->fVertexAttribPointer = gl->glVertexAttribPointerFn;
-  functions->fViewport = gl->glViewportFn;
-  functions->fBindFragDataLocationIndexed = gl->glBindFragDataLocationIndexedFn;
+  BIND(VertexAttribPointer);
+  BIND(Viewport);
+  BIND(BindFragDataLocationIndexed);
 
-  functions->fBindVertexArray = gl->glBindVertexArrayOESFn;
-  functions->fGenVertexArrays = gl->glGenVertexArraysOESFn;
-  functions->fDeleteVertexArrays = gl->glDeleteVertexArraysOESFn;
+  BIND_EXTENSION(BindVertexArray, BindVertexArrayOES);
+  BIND_EXTENSION(GenVertexArrays, GenVertexArraysOES);
+  BIND_EXTENSION(DeleteVertexArrays, DeleteVertexArraysOES);
 
-  functions->fMapBufferRange = gl->glMapBufferRangeFn;
-  functions->fFlushMappedBufferRange = gl->glFlushMappedBufferRangeFn;
+  BIND(MapBufferRange);
+  BIND(FlushMappedBufferRange);
 
-  functions->fGenerateMipmap = gl->glGenerateMipmapEXTFn;
-  functions->fGenFramebuffers = gl->glGenFramebuffersEXTFn;
-  functions->fGetFramebufferAttachmentParameteriv =
-      gl->glGetFramebufferAttachmentParameterivEXTFn;
-  functions->fGetRenderbufferParameteriv =
-      gl->glGetRenderbufferParameterivEXTFn;
-  functions->fBindFramebuffer = bind_slow_with_flush_on_mac(
-      gl->glBindFramebufferEXTFn, progress_reporter, version_info.is_angle);
-  functions->fFramebufferTexture2D = gl->glFramebufferTexture2DEXTFn;
-  functions->fCheckFramebufferStatus = gl->glCheckFramebufferStatusEXTFn;
-  functions->fDeleteFramebuffers = bind_slow_with_flush_on_mac(
-      gl->glDeleteFramebuffersEXTFn, progress_reporter, version_info.is_angle);
-  functions->fRenderbufferStorage = bind_with_flush_on_mac(
-      gl->glRenderbufferStorageEXTFn, version_info.is_angle);
-  functions->fGenRenderbuffers = gl->glGenRenderbuffersEXTFn;
-  functions->fDeleteRenderbuffers = bind_with_flush_on_mac(
-      gl->glDeleteRenderbuffersEXTFn, version_info.is_angle);
-  functions->fFramebufferRenderbuffer = gl->glFramebufferRenderbufferEXTFn;
-  functions->fBindRenderbuffer = gl->glBindRenderbufferEXTFn;
-  functions->fRenderbufferStorageMultisample = bind_with_flush_on_mac(
-      gl->glRenderbufferStorageMultisampleFn, version_info.is_angle);
-  functions->fFramebufferTexture2DMultisample =
-      gl->glFramebufferTexture2DMultisampleEXTFn;
-  functions->fRenderbufferStorageMultisampleES2EXT = bind_with_flush_on_mac(
-      gl->glRenderbufferStorageMultisampleEXTFn, version_info.is_angle);
-  functions->fBlitFramebuffer =
-      bind_with_flush_on_mac(gl->glBlitFramebufferFn, version_info.is_angle);
+  BIND_EXTENSION(GenerateMipmap, GenerateMipmapEXT);
+  BIND_EXTENSION(GenFramebuffers, GenFramebuffersEXT);
+  BIND_EXTENSION(GetFramebufferAttachmentParameteriv,
+                 GetFramebufferAttachmentParameterivEXT);
+  BIND_EXTENSION(GetRenderbufferParameteriv, GetRenderbufferParameterivEXT);
+  BIND_EXTENSION(BindFramebuffer, BindFramebufferEXT, Slow, NeedFlushOnMac);
+  BIND_EXTENSION(FramebufferTexture2D, FramebufferTexture2DEXT);
+  BIND_EXTENSION(CheckFramebufferStatus, CheckFramebufferStatusEXT);
+  BIND_EXTENSION(DeleteFramebuffers, DeleteFramebuffersEXT, Slow,
+                 NeedFlushOnMac);
+  BIND_EXTENSION(RenderbufferStorage, RenderbufferStorageEXT, NeedFlushOnMac);
+  BIND_EXTENSION(GenRenderbuffers, GenRenderbuffersEXT);
+  BIND_EXTENSION(DeleteRenderbuffers, DeleteRenderbuffersEXT, NeedFlushOnMac);
+  BIND_EXTENSION(FramebufferRenderbuffer, FramebufferRenderbufferEXT);
+  BIND_EXTENSION(BindRenderbuffer, BindRenderbufferEXT);
 
-  functions->fCoverageModulation = gl->glCoverageModulationNVFn;
+  BIND(RenderbufferStorageMultisample, NeedFlushOnMac);
+  BIND_EXTENSION(FramebufferTexture2DMultisample,
+                 FramebufferTexture2DMultisampleEXT);
+  BIND_EXTENSION(RenderbufferStorageMultisampleES2EXT,
+                 RenderbufferStorageMultisampleEXT, NeedFlushOnMac);
+  BIND(BlitFramebuffer, NeedFlushOnMac);
 
-  functions->fInsertEventMarker = gl->glInsertEventMarkerEXTFn;
-  functions->fPushGroupMarker = gl->glPushGroupMarkerEXTFn;
-  functions->fPopGroupMarker = gl->glPopGroupMarkerEXTFn;
+  BIND_EXTENSION(CoverageModulation, CoverageModulationNV);
+
+  BIND_EXTENSION(InsertEventMarker, InsertEventMarkerEXT);
+  BIND_EXTENSION(PushGroupMarker, PushGroupMarkerEXT);
+  BIND_EXTENSION(PopGroupMarker, PopGroupMarkerEXT);
 
   // GL 4.3 or GL_ARB_invalidate_subdata
-  // functions->fInvalidateBufferData = gl->glInvalidateBufferDataFn;
-  // functions->fInvalidateBufferSubData = gl->glInvalidateBufferSubDataFn;
-  // functions->fInvalidateTexImage = gl->glInvalidateTexImageFn;
-  // functions->fInvalidateTexSubImage = gl->glInvalidateTexSubImageFn;
+  // BIND(InvalidateBufferData);
+  // BIND(InvalidateBufferSubData);
+  // BIND(InvalidateTexImage);
+  // BIND(InvalidateTexSubImage);
 
-  functions->fInvalidateFramebuffer = gl->glInvalidateFramebufferFn;
-  functions->fInvalidateSubFramebuffer = gl->glInvalidateSubFramebufferFn;
+  BIND(InvalidateFramebuffer);
+  BIND(InvalidateSubFramebuffer);
 
   // GL_NV_bindless_texture
-  // functions->fGetTextureHandle = gl->glGetTextureHandleNVFn;
-  // functions->fGetTextureSamplerHandle = gl->glGetTextureSamplerHandleNVFn;
-  // functions->fMakeTextureHandleResident =
-  //     gl->glMakeTextureHandleResidentNVFn;
-  // functions->fMakeTextureHandleNonResident =
-  //     gl->glMakeTextureHandleNonResidentNVFn;
-  // functions->fGetImageHandle = gl->glGetImageHandleNVFn;
-  // functions->fMakeImageHandleResident = gl->glMakeImageHandleResidentNVFn;
-  // functions->fMakeImageHandleNonResident =
-  //     gl->glMakeImageHandleNonResidentNVFn;
-  // functions->fIsTextureHandleResident = gl->glIsTextureHandleResidentNVFn;
-  // functions->fIsImageHandleResident = gl->glIsImageHandleResidentNVFn;
-  // functions->fUniformHandleui64 = gl->glUniformHandleui64NVFn;
-  // functions->fUniformHandleui64v = gl->glUniformHandleui64vNVFn;
-  // functions->fProgramUniformHandleui64 = gl->glProgramUniformHandleui64NVFn;
-  // functions->fProgramUniformHandleui64v =
-  //     gl->glProgramUniformHandleui64vNVFn;
+  // BIND_EXTENSION(GetTextureHandle , GetTextureHandleNV);
+  // BIND_EXTENSION(GetTextureSamplerHandle , GetTextureSamplerHandleNV);
+  // BIND_EXTENSION(MakeTextureHandleResident , MakeTextureHandleResidentNV);
+  // BIND_EXTENSION(MakeTextureHandleNonResident ,
+  // MakeTextureHandleNonResidentNV); BIND_EXTENSION(GetImageHandle ,
+  // GetImageHandleNV); BIND_EXTENSION(MakeImageHandleResident ,
+  // MakeImageHandleResidentNV); BIND_EXTENSION(MakeImageHandleNonResident ,
+  // MakeImageHandleNonResidentNV); BIND_EXTENSION(IsTextureHandleResident ,
+  // IsTextureHandleResidentNV); BIND_EXTENSION(IsImageHandleResident ,
+  // IsImageHandleResidentNV); BIND_EXTENSION(UniformHandleui64 ,
+  // UniformHandleui64NV); BIND_EXTENSION(UniformHandleui64v ,
+  // UniformHandleui64vNV); BIND_EXTENSION(ProgramUniformHandleui64 ,
+  // ProgramUniformHandleui64NV); BIND_EXTENSION(ProgramUniformHandleui64v ,
+  // ProgramUniformHandleui64vNV);
 
   // GL_EXT_direct_state_access
-  // functions->fTextureParameteri = gl->glTextureParameteriEXTFn;
-  // functions->fTextureParameteriv = gl->glTextureParameterivEXTFn;
-  // functions->fTextureParameterf = gl->glTextureParameterfEXTFn;
-  // functions->fTextureParameterfv = gl->glTextureParameterfvEXTFn;
-  // functions->fTextureImage1D = gl->glTextureImage1DEXTFn;
-  // functions->fTextureImage2D = gl->glTextureImage2DEXTFn;
-  // functions->fTextureSubImage1D = gl->glTextureSubImage1DEXTFn;
-  // functions->fTextureSubImage2D = gl->glTextureSubImage2DEXTFn;
-  // functions->fCopyTextureImage1D = gl->glCopyTextureImage1DEXTFn;
-  // functions->fCopyTextureImage2D = gl->glCopyTextureImage2DEXTFn;
-  // functions->fCopyTextureSubImage1D = gl->glCopyTextureSubImage1DEXTFn;
-  // functions->fCopyTextureSubImage2D = gl->glCopyTextureSubImage2DEXTFn;
-  // functions->fGetNamedBufferParameteriv =
-  //     gl->glGetNamedBufferParameterivEXTFn;
-  // functions->fGetNamedBufferPointerv = gl->glGetNamedBufferPointervEXTFn;
-  // functions->fGetNamedBufferSubData = gl->glGetNamedBufferSubDataEXTFn;
-  // functions->fGetTextureImage = gl->glGetTextureImageEXTFn;
-  // functions->fGetTextureParameterfv = gl->glGetTextureParameterfvEXTFn;
-  // functions->fGetTextureParameteriv = gl->glGetTextureParameterivEXTFn;
-  // functions->fGetTextureLevelParameterfv =
-  //     gl->glGetTextureLevelParameterfvEXTFn;
-  // functions->fGetTextureLevelParameteriv =
-  //     gl->glGetTextureLevelParameterivEXTFn;
-  // functions->fMapNamedBuffer = gl->glMapNamedBufferEXTFn;
-  // functions->fNamedBufferData = gl->glNamedBufferDataEXTFn;
-  // functions->fNamedBufferSubData = gl->glNamedBufferSubDataEXTFn;
-  // functions->fProgramUniform1f = gl->glProgramUniform1fEXTFn;
-  // functions->fProgramUniform2f = gl->glProgramUniform2fEXTFn;
-  // functions->fProgramUniform3f = gl->glProgramUniform3fEXTFn;
-  // functions->fProgramUniform4f = gl->glProgramUniform4fEXTFn;
-  // functions->fProgramUniform1i = gl->glProgramUniform1iEXTFn;
-  // functions->fProgramUniform2i = gl->glProgramUniform2iEXTFn;
-  // functions->fProgramUniform3i = gl->glProgramUniform3iEXTFn;
-  // functions->fProgramUniform4i = gl->glProgramUniform4iEXTFn;
-  // functions->fProgramUniform1fv = gl->glProgramUniform1fvEXTFn;
-  // functions->fProgramUniform2fv = gl->glProgramUniform2fvEXTFn;
-  // functions->fProgramUniform3fv = gl->glProgramUniform3fvEXTFn;
-  // functions->fProgramUniform4fv = gl->glProgramUniform4fvEXTFn;
-  // functions->fProgramUniform1iv = gl->glProgramUniform1ivEXTFn;
-  // functions->fProgramUniform2iv = gl->glProgramUniform2ivEXTFn;
-  // functions->fProgramUniform3iv = gl->glProgramUniform3ivEXTFn;
-  // functions->fProgramUniform4iv = gl->glProgramUniform4ivEXTFn;
-  // functions->fProgramUniformMatrix2fv = gl->glProgramUniformMatrix2fvEXTFn;
-  // functions->fProgramUniformMatrix3fv = gl->glProgramUniformMatrix3fvEXTFn;
-  // functions->fProgramUniformMatrix4fv = gl->glProgramUniformMatrix4fvEXTFn;
-  // functions->fUnmapNamedBuffer = gl->glUnmapNamedBufferEXTFn;
-  // functions->fTextureImage3D = gl->glTextureImage3DEXTFn;
-  // functions->fTextureSubImage3D = gl->glTextureSubImage3DEXTFn;
-  // functions->fCopyTextureSubImage3D = gl->glCopyTextureSubImage3DEXTFn;
-  // functions->fCompressedTextureImage3D = gl->glCompressedTextureImage3DEXTFn;
-  // functions->fCompressedTextureImage2D = gl->glCompressedTextureImage2DEXTFn;
-  // functions->fCompressedTextureImage1D = gl->glCompressedTextureImage1DEXTFn;
-  // functions->fCompressedTextureSubImage3D =
-  //     gl->glCompressedTextureSubImage3DEXTFn;
-  // functions->fCompressedTextureSubImage2D =
-  //     gl->glCompressedTextureSubImage2DEXTFn;
-  // functions->fCompressedTextureSubImage1D =
-  //     gl->glCompressedTextureSubImage1DEXTFn;
-  // functions->fGetCompressedTextureImage =
-  //     gl->glGetCompressedTextureImageEXTFn;
-  // functions->fProgramUniformMatrix2x3fv =
-  //     gl->glProgramUniformMatrix2x3fvEXTFn;
-  // functions->fProgramUniformMatrix3x2fv =
-  //     gl->glProgramUniformMatrix3x2fvEXTFn;
-  // functions->fProgramUniformMatrix2x4fv =
-  //     gl->glProgramUniformMatrix2x4fvEXTFn;
-  // functions->fProgramUniformMatrix4x2fv =
-  //     gl->glProgramUniformMatrix4x2fvEXTFn;
-  // functions->fProgramUniformMatrix3x4fv =
-  //     gl->glProgramUniformMatrix3x4fvEXTFn;
-  // functions->fProgramUniformMatrix4x3fv =
-  //     gl->glProgramUniformMatrix4x3fvEXTFn;
-  // functions->fNamedRenderbufferStorage = gl->glNamedRenderbufferStorageEXTFn;
-  // functions->fGetNamedRenderbufferParameteriv =
-  //     gl->glGetNamedRenderbufferParameterivEXTFn;
-  // functions->fNamedRenderbufferStorageMultisample =
-  //     gl->glNamedRenderbufferStorageMultisampleEXTFn;
-  // functions->fCheckNamedFramebufferStatus =
-  //     gl->glCheckNamedFramebufferStatusEXTFn;
-  // functions->fNamedFramebufferTexture1D =
-  //     gl->glNamedFramebufferTexture1DEXTFn;
-  // functions->fNamedFramebufferTexture2D =
-  //     gl->glNamedFramebufferTexture2DEXTFn;
-  // functions->fNamedFramebufferTexture3D =
-  //     gl->glNamedFramebufferTexture3DEXTFn;
-  // functions->fNamedFramebufferRenderbuffer =
-  //     gl->glNamedFramebufferRenderbufferEXTFn;
-  // functions->fGetNamedFramebufferAttachmentParameteriv =
-  //     gl->glGetNamedFramebufferAttachmentParameterivEXTFn;
-  // functions->fGenerateTextureMipmap = gl->glGenerateTextureMipmapEXTFn;
-  // functions->fFramebufferDrawBuffer = gl->glFramebufferDrawBufferEXTFn;
-  // functions->fFramebufferDrawBuffers = gl->glFramebufferDrawBuffersEXTFn;
-  // functions->fFramebufferReadBuffer = gl->glFramebufferReadBufferEXTFn;
-  // functions->fGetFramebufferParameteriv =
-  //     gl->glGetFramebufferParameterivEXTFn;
-  // functions->fNamedCopyBufferSubData = gl->glNamedCopyBufferSubDataEXTFn;
-  // functions->fVertexArrayVertexOffset = gl->glVertexArrayVertexOffsetEXTFn;
-  // functions->fVertexArrayColorOffset = gl->glVertexArrayColorOffsetEXTFn;
-  // functions->fVertexArrayEdgeFlagOffset =
-  //     gl->glVertexArrayEdgeFlagOffsetEXTFn;
-  // functions->fVertexArrayIndexOffset = gl->glVertexArrayIndexOffsetEXTFn;
-  // functions->fVertexArrayNormalOffset = gl->glVertexArrayNormalOffsetEXTFn;
-  // functions->fVertexArrayTexCoordOffset =
-  //     gl->glVertexArrayTexCoordOffsetEXTFn;
-  // functions->fVertexArrayMultiTexCoordOffset =
-  //     gl->glVertexArrayMultiTexCoordOffsetEXTFn;
-  // functions->fVertexArrayFogCoordOffset =
-  //     gl->glVertexArrayFogCoordOffsetEXTFn;
-  // functions->fVertexArraySecondaryColorOffset =
-  //     gl->glVertexArraySecondaryColorOffsetEXTFn;
-  // functions->fVertexArrayVertexAttribOffset =
-  //     gl->glVertexArrayVertexAttribOffsetEXTFn;
-  // functions->fVertexArrayVertexAttribIOffset =
-  //     gl->glVertexArrayVertexAttribIOffsetEXTFn;
-  // functions->fEnableVertexArray = gl->glEnableVertexArrayEXTFn;
-  // functions->fDisableVertexArray = gl->glDisableVertexArrayEXTFn;
-  // functions->fEnableVertexArrayAttrib = gl->glEnableVertexArrayAttribEXTFn;
-  // functions->fDisableVertexArrayAttrib = gl->glDisableVertexArrayAttribEXTFn;
-  // functions->fGetVertexArrayIntegerv = gl->glGetVertexArrayIntegervEXTFn;
-  // functions->fGetVertexArrayPointerv = gl->glGetVertexArrayPointervEXTFn;
-  // functions->fGetVertexArrayIntegeri_v = gl->glGetVertexArrayIntegeri_vEXTFn;
-  // functions->fGetVertexArrayPointeri_v = gl->glGetVertexArrayPointeri_vEXTFn;
-  // functions->fMapNamedBufferRange = gl->glMapNamedBufferRangeEXTFn;
-  // functions->fFlushMappedNamedBufferRange =
-  //     gl->glFlushMappedNamedBufferRangeEXTFn;
-  // functions->fTextureBuffer = gl->glTextureBufferEXTFn;
+  // BIND_EXTENSION(TextureParameteri , TextureParameteriEXT);
+  // BIND_EXTENSION(TextureParameteriv , TextureParameterivEXT);
+  // BIND_EXTENSION(TextureParameterf , TextureParameterfEXT);
+  // BIND_EXTENSION(TextureParameterfv , TextureParameterfvEXT);
+  // BIND_EXTENSION(TextureImage1D , TextureImage1DEXT);
+  // BIND_EXTENSION(TextureImage2D , TextureImage2DEXT);
+  // BIND_EXTENSION(TextureSubImage1D , TextureSubImage1DEXT);
+  // BIND_EXTENSION(TextureSubImage2D , TextureSubImage2DEXT);
+  // BIND_EXTENSION(CopyTextureImage1D , CopyTextureImage1DEXT);
+  // BIND_EXTENSION(CopyTextureImage2D , CopyTextureImage2DEXT);
+  // BIND_EXTENSION(CopyTextureSubImage1D , CopyTextureSubImage1DEXT);
+  // BIND_EXTENSION(CopyTextureSubImage2D , CopyTextureSubImage2DEXT);
+  // BIND_EXTENSION(GetNamedBufferParameteriv , GetNamedBufferParameterivEXT);
+  // BIND_EXTENSION(GetNamedBufferPointerv , GetNamedBufferPointervEXT);
+  // BIND_EXTENSION(GetNamedBufferSubData , GetNamedBufferSubDataEXT);
+  // BIND_EXTENSION(GetTextureImage , GetTextureImageEXT);
+  // BIND_EXTENSION(GetTextureParameterfv , GetTextureParameterfvEXT);
+  // BIND_EXTENSION(GetTextureParameteriv , GetTextureParameterivEXT);
+  // BIND_EXTENSION(GetTextureLevelParameterfv , GetTextureLevelParameterfvEXT);
+  // BIND_EXTENSION(GetTextureLevelParameteriv , GetTextureLevelParameterivEXT);
+  // BIND_EXTENSION(MapNamedBuffer , MapNamedBufferEXT);
+  // BIND_EXTENSION(NamedBufferData , NamedBufferDataEXT);
+  // BIND_EXTENSION(NamedBufferSubData , NamedBufferSubDataEXT);
+  // BIND_EXTENSION(ProgramUniform1f , ProgramUniform1fEXT);
+  // BIND_EXTENSION(ProgramUniform2f , ProgramUniform2fEXT);
+  // BIND_EXTENSION(ProgramUniform3f , ProgramUniform3fEXT);
+  // BIND_EXTENSION(ProgramUniform4f , ProgramUniform4fEXT);
+  // BIND_EXTENSION(ProgramUniform1i , ProgramUniform1iEXT);
+  // BIND_EXTENSION(ProgramUniform2i , ProgramUniform2iEXT);
+  // BIND_EXTENSION(ProgramUniform3i , ProgramUniform3iEXT);
+  // BIND_EXTENSION(ProgramUniform4i , ProgramUniform4iEXT);
+  // BIND_EXTENSION(ProgramUniform1fv , ProgramUniform1fvEXT);
+  // BIND_EXTENSION(ProgramUniform2fv , ProgramUniform2fvEXT);
+  // BIND_EXTENSION(ProgramUniform3fv , ProgramUniform3fvEXT);
+  // BIND_EXTENSION(ProgramUniform4fv , ProgramUniform4fvEXT);
+  // BIND_EXTENSION(ProgramUniform1iv , ProgramUniform1ivEXT);
+  // BIND_EXTENSION(ProgramUniform2iv , ProgramUniform2ivEXT);
+  // BIND_EXTENSION(ProgramUniform3iv , ProgramUniform3ivEXT);
+  // BIND_EXTENSION(ProgramUniform4iv , ProgramUniform4ivEXT);
+  // BIND_EXTENSION(ProgramUniformMatrix2fv , ProgramUniformMatrix2fvEXT);
+  // BIND_EXTENSION(ProgramUniformMatrix3fv , ProgramUniformMatrix3fvEXT);
+  // BIND_EXTENSION(ProgramUniformMatrix4fv , ProgramUniformMatrix4fvEXT);
+  // BIND_EXTENSION(UnmapNamedBuffer , UnmapNamedBufferEXT);
+  // BIND_EXTENSION(TextureImage3D , TextureImage3DEXT);
+  // BIND_EXTENSION(TextureSubImage3D , TextureSubImage3DEXT);
+  // BIND_EXTENSION(CopyTextureSubImage3D , CopyTextureSubImage3DEXT);
+  // BIND_EXTENSION(CompressedTextureImage3D , CompressedTextureImage3DEXT);
+  // BIND_EXTENSION(CompressedTextureImage2D , CompressedTextureImage2DEXT);
+  // BIND_EXTENSION(CompressedTextureImage1D , CompressedTextureImage1DEXT);
+  // BIND_EXTENSION(CompressedTextureSubImage3D,
+  //                CompressedTextureSubImage3DEXT);
+  // BIND_EXTENSION(CompressedTextureSubImage2D,
+  //                CompressedTextureSubImage2DEXT);
+  // BIND_EXTENSION(CompressedTextureSubImage1D,
+  //                CompressedTextureSubImage1DEXT);
+  // BIND_EXTENSION(GetCompressedTextureImage, GetCompressedTextureImageEXT);
+  // BIND_EXTENSION(ProgramUniformMatrix2x3fv, ProgramUniformMatrix2x3fvEXT);
+  // BIND_EXTENSION(ProgramUniformMatrix3x2fv, ProgramUniformMatrix3x2fvEXT);
+  // BIND_EXTENSION(ProgramUniformMatrix2x4fv, ProgramUniformMatrix2x4fvEXT);
+  // BIND_EXTENSION(ProgramUniformMatrix4x2fv, ProgramUniformMatrix4x2fvEXT);
+  // BIND_EXTENSION(ProgramUniformMatrix3x4fv, ProgramUniformMatrix3x4fvEXT);
+  // BIND_EXTENSION(ProgramUniformMatrix4x3fv, ProgramUniformMatrix4x3fvEXT);
+  // BIND_EXTENSION(NamedRenderbufferStorage, NamedRenderbufferStorageEXT);
+  // BIND_EXTENSION(GetNamedRenderbufferParameteriv,
+  //                GetNamedRenderbufferParameterivEXT);
+  // BIND_EXTENSION(NamedRenderbufferStorageMultisample,
+  //                NamedRenderbufferStorageMultisampleEXT);
+  // BIND_EXTENSION(CheckNamedFramebufferStatus,
+  //                CheckNamedFramebufferStatusEXT);
+  // BIND_EXTENSION(NamedFramebufferTexture1D, NamedFramebufferTexture1DEXT);
+  // BIND_EXTENSION(NamedFramebufferTexture2D, NamedFramebufferTexture2DEXT);
+  // BIND_EXTENSION(NamedFramebufferTexture3D, NamedFramebufferTexture3DEXT);
+  // BIND_EXTENSION(NamedFramebufferRenderbuffer,
+  //                NamedFramebufferRenderbufferEXT);
+  // BIND_EXTENSION(GetNamedFramebufferAttachmentParameteriv,
+  //                GetNamedFramebufferAttachmentParameterivEXT);
+  // BIND_EXTENSION(GenerateTextureMipmap, GenerateTextureMipmapEXT);
+  // BIND_EXTENSION(FramebufferDrawBuffer, FramebufferDrawBufferEXT);
+  // BIND_EXTENSION(FramebufferDrawBuffers, FramebufferDrawBuffersEXT);
+  // BIND_EXTENSION(FramebufferReadBuffer, FramebufferReadBufferEXT);
+  // BIND_EXTENSION(GetFramebufferParameteriv, GetFramebufferParameterivEXT);
+  // BIND_EXTENSION(NamedCopyBufferSubData, NamedCopyBufferSubDataEXT);
+  // BIND_EXTENSION(VertexArrayVertexOffset, VertexArrayVertexOffsetEXT);
+  // BIND_EXTENSION(VertexArrayColorOffset, VertexArrayColorOffsetEXT);
+  // BIND_EXTENSION(VertexArrayEdgeFlagOffset, VertexArrayEdgeFlagOffsetEXT);
+  // BIND_EXTENSION(VertexArrayIndexOffset, VertexArrayIndexOffsetEXT);
+  // BIND_EXTENSION(VertexArrayNormalOffset, VertexArrayNormalOffsetEXT);
+  // BIND_EXTENSION(VertexArrayTexCoordOffset, VertexArrayTexCoordOffsetEXT);
+  // BIND_EXTENSION(VertexArrayMultiTexCoordOffset,
+  //                VertexArrayMultiTexCoordOffsetEXT);
+  // BIND_EXTENSION(VertexArrayFogCoordOffset, VertexArrayFogCoordOffsetEXT);
+  // BIND_EXTENSION(VertexArraySecondaryColorOffset,
+  //                VertexArraySecondaryColorOffsetEXT);
+  // BIND_EXTENSION(VertexArrayVertexAttribOffset,
+  //                VertexArrayVertexAttribOffsetEXT);
+  // BIND_EXTENSION(VertexArrayVertexAttribIOffset,
+  //                VertexArrayVertexAttribIOffsetEXT);
+  // BIND_EXTENSION(EnableVertexArray, EnableVertexArrayEXT);
+  // BIND_EXTENSION(DisableVertexArray, DisableVertexArrayEXT);
+  // BIND_EXTENSION(EnableVertexArrayAttrib, EnableVertexArrayAttribEXT);
+  // BIND_EXTENSION(DisableVertexArrayAttrib, DisableVertexArrayAttribEXT);
+  // BIND_EXTENSION(GetVertexArrayIntegerv, GetVertexArrayIntegervEXT);
+  // BIND_EXTENSION(GetVertexArrayPointerv, GetVertexArrayPointervEXT);
+  // BIND_EXTENSION(GetVertexArrayIntegeri_v, GetVertexArrayIntegeri_vEXT);
+  // BIND_EXTENSION(GetVertexArrayPointeri_v, GetVertexArrayPointeri_vEXT);
+  // BIND_EXTENSION(MapNamedBufferRange, MapNamedBufferRangeEXT);
+  // BIND_EXTENSION(FlushMappedNamedBufferRange,
+  //                FlushMappedNamedBufferRangeEXT);
+  // BIND_EXTENSION(TextureBuffer, TextureBufferEXT);
 
   // Some drivers report GL_KHR_debug but do not provide functions. Validate and
   // remove reported extension from the list if necessary
@@ -720,42 +683,42 @@
   if (gl->glDebugMessageControlFn && gl->glDebugMessageInsertFn &&
       gl->glDebugMessageCallbackFn && gl->glGetDebugMessageLogFn &&
       gl->glPushDebugGroupFn && gl->glPopDebugGroupFn && gl->glObjectLabelFn) {
-    functions->fDebugMessageControl = gl->glDebugMessageControlFn;
-    functions->fDebugMessageInsert = gl->glDebugMessageInsertFn;
-    functions->fDebugMessageCallback = gl->glDebugMessageCallbackFn;
-    functions->fGetDebugMessageLog = gl->glGetDebugMessageLogFn;
-    functions->fPushDebugGroup = gl->glPushDebugGroupFn;
-    functions->fPopDebugGroup = gl->glPopDebugGroupFn;
-    functions->fObjectLabel = gl->glObjectLabelFn;
+    BIND(DebugMessageControl);
+    BIND(DebugMessageInsert);
+    BIND(DebugMessageCallback);
+    BIND(GetDebugMessageLog);
+    BIND(PushDebugGroup);
+    BIND(PopDebugGroup);
+    BIND(ObjectLabel);
   } else {
     extensions.remove("GL_KHR_debug");
   }
 
   // GL_EXT_window_rectangles
-  functions->fWindowRectangles = gl->glWindowRectanglesEXTFn;
+  BIND_EXTENSION(WindowRectangles, WindowRectanglesEXT);
 
   // GL_QCOM_tiled_rendering
-  functions->fStartTiling = gl->glStartTilingQCOMFn;
-  functions->fEndTiling = gl->glEndTilingQCOMFn;
+  BIND_EXTENSION(StartTiling, StartTilingQCOM);
+  BIND_EXTENSION(EndTiling, EndTilingQCOM);
 
   // EGL_KHR_image / EGL_KHR_image_base
   // functions->fCreateImage = nullptr;
   // functions->fDestroyImage = nullptr;
 
-  functions->fFenceSync = gl->glFenceSyncFn;
-  functions->fIsSync = gl->glIsSyncFn;
-  functions->fClientWaitSync = gl->glClientWaitSyncFn;
-  functions->fWaitSync = gl->glWaitSyncFn;
-  functions->fDeleteSync = gl->glDeleteSyncFn;
+  BIND(FenceSync);
+  BIND(IsSync);
+  BIND(ClientWaitSync);
+  BIND(WaitSync);
+  BIND(DeleteSync);
 
   if (!gl->glFenceSyncFn) {
     // NOTE: Skia uses the same function pointers without APPLE suffix
     if (extensions.has("GL_APPLE_sync")) {
-      functions->fFenceSync = gl->glFenceSyncAPPLEFn;
-      functions->fIsSync = gl->glIsSyncAPPLEFn;
-      functions->fClientWaitSync = gl->glClientWaitSyncAPPLEFn;
-      functions->fWaitSync = gl->glWaitSyncAPPLEFn;
-      functions->fDeleteSync = gl->glDeleteSyncAPPLEFn;
+      BIND_EXTENSION(FenceSync, FenceSyncAPPLE);
+      BIND_EXTENSION(IsSync, IsSyncAPPLE);
+      BIND_EXTENSION(ClientWaitSync, ClientWaitSyncAPPLE);
+      BIND_EXTENSION(WaitSync, WaitSyncAPPLE);
+      BIND_EXTENSION(DeleteSync, DeleteSyncAPPLE);
     } else if (g_driver_egl.ext.b_EGL_KHR_fence_sync) {
       // Emulate APPLE_sync via egl
       extensions.add("GL_APPLE_sync");
@@ -774,13 +737,16 @@
   }
 
   // Skia can fall back to GL_NV_fence if GLsync objects are not available.
-  functions->fDeleteFences = gl->glDeleteFencesNVFn;
-  functions->fFinishFence = gl->glFinishFenceNVFn;
-  functions->fGenFences = gl->glGenFencesNVFn;
-  functions->fSetFence = gl->glSetFenceNVFn;
-  functions->fTestFence = gl->glTestFenceNVFn;
+  BIND_EXTENSION(DeleteFences, DeleteFencesNV);
+  BIND_EXTENSION(FinishFence, FinishFenceNV);
+  BIND_EXTENSION(GenFences, GenFencesNV);
+  BIND_EXTENSION(SetFence, SetFenceNV);
+  BIND_EXTENSION(TestFence, TestFenceNV);
 
-  functions->fGetInternalformativ = gl->glGetInternalformativFn;
+  BIND(GetInternalformativ);
+
+#undef BIND
+#undef BIND_EXTENSION
 
   interface->fStandard = standard;
   interface->fExtensions.swap(&extensions);